Métodos de optimización en COMSOL Multiphysics
- Detalles
- Categoría: Comsol
- Visto: 3510
Recientemente hemos realizado un Webinar sobre Optimización en COMSOL Multiphysics, utilizando el módulo con el mismo nombre [1]. En esta noticia abordaremos algunos detalles que no se alcanzaron a cubrir. En particular, hablaremos más sobre los Resolvedores del módulo de Optimización.
Antes de entrar en detalle hay que aclarar que en general existen 2 enfoques: Optimización global y Optimización local. Para dar más contexto y poder entender estos conceptos diremos lo siguiente. En un problema de optimización, la función objetivo podría tener múltiples mínimos y máximos (locales). Un algoritmo de optimización global intentará alcanzar, entre todos los mínimos y máximos locales, aquel mínimo o máximo. Por lo tanto, encontrar el mínimo o máximo global es una tarea de mayor complejidad que encontrar un mínimo o máximo local. Así, los métodos analíticos tienen un gran desafío si se quiere trabajar de manera global. Por otro lado, si se especifican buenas condiciones de partida, los métodos locales si pueden ser bastante efectivos, y los métodos analíticos harán su trabajo. Para implementar métodos de optimización global en COMSOL, se puede utilizar el LiveLink for MATLAB.
En el caso del Optimization Module de COMSOL, la mayoría de los métodos de optimización son del tipo local, con excepción del método Montecarlo que si es global. Ahora nos centraremos en las bondades de este módulo, donde la idea es ver las diferencias entre los resolvedores. En la Figura 1, se puede ver una lista de métodos incorporados en el módulo.
Figura 1: Algoritmos de optimización en COMSOL Multiphysics.
Métodos de optimización en COMSOL
Dependiendo del tipo de problema, hay métodos de optimización más apropiados que otro. Por ejemplo, si alguno de los parámetros de control o diseño implica un cambio en la geometría significa que habrá un remallado. En este caso habrá cambios de geometría inducidos por la modificación de las variables de control. Luego, las variables conducen a diferentes mallas de elementos finitos, superponiendo diferentes errores de discretización en la función objetivo cuando se evalúan para diferentes valores de variable de control.
Teniendo en cuenta lo anterior, podemos distinguir entre métodos de optimización libres del cálculo de derivadas, y que en su defecto realizan una aproximación; y por otro lado, algoritmos de optimización basados en cálculo exacto del gradiente. Una descripción una uno de los métodos libres del cálculo del gradiente y los métodos basando en el cálculo del gradiente viene a continuación.
Métodos libres del gradiente
- Coordinate Search: No evalúa de forma directa el gradiente, sino que va probando algunas direcciones y, de acuerdo con el valor de la función, estima la pendiente de la función en estas direcciones.
- Monte-Carlo: Consiste en probar puntos de manera puramente aleatoria en el espacio de búsqueda.
- Nelder-Mead: Es un método que utiliza simplex que en cada iteración intenta acercarse al mínimo local.
- Bound Optimization BY Quadratic Approximation (BOBYQA): Aproxima la función a minimizar por una función cuadrática. A cada iteración reactualiza su aproximación en función del valor mínimo encontrado al paso anterior. No se basa en el uso de gradiente.
- Constrained optimization by linear approximation (COBYLA): Es similar al algoritmo BOBYQA pero aproxima el problema de optimización con problemas lineales.
Métodos basados en el cálculo exacto del gradiente
- SNOPT (Sparse Nonlinear OPTimizer): Es un método quasi-Newton, el cual debido a que aproxima de forma iterativa las derivadas segundas de la función, puede manejar funciones con muchas dimensiones.
- Mixed Moving Asymptotes (MMA): Es un método de optimización lineal. Se basa en la creación de sub-problemas lineales de optimización donde las cuotas inferiores y superiores (asíntotas) van convergiendo hacia la solución. Usa la información del gradiente para resolver cada subproblema.
- Levenberg-Marquardt: Está basado en una versión del algoritmo de Gauss-Newton. Aproxima de forma iterativa las derivadas segundas lo que le permite trabajar en grandes dimensiones.
Puede verse una comparación de métodos en la Tabla 1.
Comparación de métodos de optimización
En el caso de métodos libre del gradiente, no hay limitaciones extraordinarias. Por otro lado, en el caso de métodos basdos en el gradiente, sí los hay La función objetivo debe ser suave y diferenciable. Asimismo, modificaciones en la geometría tienen como consecuencia que los métodos de optimización libres del gradiente toleren de mejor manera este hecho. Eso porque éstos no confían en la dirección del gradiente para avanzar. La desventaja puede ser el mayor coste computacional y con ello mayor tiempo para resolver.
Gradiente aproximado | Gradiente exacto | |
Función objetivo | Cualquier salida escalar | Debe ser suave y diferenciable |
Variables de diseño | Parámetros globales, incluyendo geométricos | Cualquiera que no resulte en remallado |
Remallado | Sí | No |
Restricciones | Solo salidas escalares | Deben ser diferenciables y suaves, pueden estar en cualquier punto del espacio |
Posibles análisis | Cualquier combinación de los tipos de análisis | Cualquier estudio con sólo un Estacionario, Transitorio o en Frecuencia |
Desempeño | Aumenta exponencialmente con el número de variables de diseño | No es muy sensible al nº de variables de diseño |
Tabla 1: Comparación de métodos de optimización según cálculo del gradiente. |
App para comparar los resolvedores de optimización
El usuario de COMSOL Multiphysics puede estudiar la convenciencia o no de un método u otro considerando funciones conocidas del ámbito matemático. Dichas funciones están incorporadas como funciones objetivo en una App de COMSOL, descargable de [2]. Pulsando sobre el botón para probar la App, ya se puede utilizar (Ver Figura 2).
Ahora describiremos la App con el fin que el usuario de COMSOL pueda llegar a sus propias conclusiones cuando compare cada uno de los métodos y se aplique a funciones objetivo de distintas características.
En primer lugar, la parte superior izquierda tiene opciones para escoger la función objetivo, todas en el plano XY, y con el valor de la función objetivo pintada de colores cuya leyenda se ve a la derecha del gráfico. Por ejemplo, se tiene: Rosenbrock, Quadratic, Himmelblau, Rastrigin, Beale, Goldstein-Price, Quadratic (discrete), Fish bone, Spiral, Pyramid, etc. Dichas funciones pueden ser lineales, cuadráticas, sueves diferenciables o no, continuas o discretas. Existe una pestaña para añadir restricciones (Constraints). Más abajo se puede especificar los límites inferior y superior para las variables x e y. En la parte media de la pantalla de la App se puede escoger el algoritmo de optimización, así como otras características como la tolerancia y el número de evaluaciones. El resultado se puede visualizar en el gráfico a la derecha. En este caso, se ha usado el algoritmo Nelder-Mead para encontrar el mínimo de la función Rosenbrock. Dicho punto es el (1,1). El botón para iniciar el proceso de optimización se encuentra justo a la derecha donde se escoge el método de optimización.
Figura 2: App de COMSOL Multiphysics para comparar métodos de optimización.
Referencias
[1] https://www.addlink.es/eventos/comsol/webinar-taller-introduccion-practica-a-la-optimizacion-con-comsol-multiphysics
[2] https://www.comsol.com/model/optimization-tutorials-71171