lunes, 26 de septiembre de 2016

Algoritmos genéticos en optimización multiobjetivo


En la tesis de maestría de Gutiérrez Méndez, publicada el año 2011 con el título “Optimización multiobjetivo usando algoritmos genéticos culturales”, se menciona que la optimización multiobjetivo tiene amplias aplicaciones en distintas aéreas de la ingeniería y las ciencias computacionales. Muchos de estos problemas tienen espacios de búsqueda bastante grandes por lo que, en algunos casos, no pueden ser resueltos mediante técnicas exactas en un tiempo razonable. Para resolver este tipo de problemas suelen utilizarse meta heurísticas. Dentro de las meta heurísticas destacan los algoritmos basados en computación evolutiva, los cuales simulan el proceso de selección del más apto en una computadora, a fin de resolver problemas, por ejemplo de optimización y clasificación. En los algoritmos evolutivos, las soluciones de un problema son modeladas como individuos de una población, a las cuales se les aplican operadores inspirados en la evolución biológica. Este tipo de algoritmos han sido capaces de obtener muy buenos resultados en diversos problemas del mundo real, de alta complejidad.
Nocedal y Wright, en el libro publicado el año 2006 con el título “Optimización numérica”, mencionan que existen problemas para los cuales las variables de decisión solo son validas si sus valores son enteros. A los problemas de este tipo se les denomina problemas de programación entera. Estos son un caso particular de los llamados problemas de optimización discreta. En dichos problemas los valores de las variables de decisión son tomados de un conjunto finito de elementos. En contraste, para los problemas de optimización continua, las variables de decisión toman valores de un conjunto infinito de elementos, en teoría, debido a que los reales se representan de forma finita en una computadora. Los problemas de optimización continua suelen ser más sencillos de resolver pues la información sobre la función objetivo y las restricciones en un punto particular ayudan a deducir información sobre todos los puntos cercanos. En el caso de los problemas discretos el comportamiento de la función objetivo y las restricciones pueden variar considerablemente entre dos puntos considerados cercanos. Esta idea es complementada por Dantzig y Thapa, en el libro publicado el año 1997 con el título “Introducción a la programación lineal”, quienes señalan que un caso particular de los problemas de optimización ocurre cuando la función objetivo y las restricciones son funciones lineales. En este caso se dice que se trata de un problema de programación lineal. Existen varios métodos para resolver problemas de este tipo que garantizan encontrar la solución exacta, como por ejemplo el llamado método simplex.
Jensen, en el artículo publicado el año 2003 con el título “Reducción de la complejidad del tiempo de corrida de algoritmos evolutivos multiobjetivo”, señala que cuando por lo menos una de las restricciones o la función objetivo son funciones no lineales, se dice que el problema es de programación no lineal. Para este tipo de problemas no existe un método general que garantice encontrar la mejor solución posible en tiempo polinomial. La mayoría de los algoritmos para problemas de optimización no lineal encuentran únicamente óptimos locales, es decir, puntos óptimos respecto a una región cercana, en contraste con los óptimos globales, los cuales son los mejores respecto a todos los demás puntos factibles. Según Kirkpatrick y sus colegas, en el artículo publicado el año 1983 con el título “Optimización mediante el recocido simulado”, existen métodos para resolver problemas de optimización no lineal pero generalmente requieren de la primera derivada de la función objetivo. Esta información no siempre se encuentra disponible o es costosa de calcular. En la práctica, suelen utilizarse heurísticas para resolver problemas de programación no lineal. Un ejemplo de heurística es el recocido simulado. Una familia de heurísticas bastante popular es la computación evolutiva, la cual ha mostrado resultados competitivos en una amplia variedad de problemas, según lo indica Lamont y sus colegas en el libro publicado el año 2002 con el título “Algoritmos evolutivos para resolver problemas multiobjetivo”.
Los algoritmos de optimización son métodos iterativos. Comienzan con una aproximación, posiblemente aleatoria, y generan una secuencia de estimaciones hasta alcanzar una cierta condición de paro. La estrategia que decide cómo pasar de una estimación a otra es lo que distingue a un algoritmo de otro. Nocedal y Wright, en el libro mencionado en párrafos anteriores, mencionan que un buen algoritmo de optimización debe tener las siguientes características: (1) Robustez. Debe desempeñarse bien en una amplia variedad de problemas. (2) Eficiencia. No debe requerir de recursos de cómputo excesivos. (3) Exactitud. Debe identificar la solución con precisión. Un buen algoritmo debe ofrecer un compromiso adecuado entre estas características. En el artículo de Lagunas y sus colegas, publicado el año 2013 con el título “Optimización multiobjetivo mediante algoritmos genéticos: Aplicación a controladores PID robustos”, se menciona que el problema de optimización multiobjetivo tiene sentido cuando los índices de desempeño involucrados están en conflicto, de lo contrario el problema de optimización multiobjetivo puede ser considerado como monobjetivo, ya que los mismos valores, podrían minimizar o maximizar todos los objetivos de manera simultánea. Los algoritmos genéticos han sido utilizados exitosamente en optimización multiobjetivo. Una de las primeras aplicaciones fue realizada por Fonseca y Fleming en el año 1988, en el artículo titulado “Optimización multiobjetivo y manejo de restricciones múltiples con algoritmos evolutivos”, donde se utiliza un algoritmo genético multiobjetivo para el control de una turbina de gas. En el año 2000, Herreros propuso en su tesis doctoral, titulada “Diseño de controladores robustos multiobjetivo por medio de algoritmos genéticos”, un algoritmo llamado diseño de control robusto multiobjetivo, para el diseño de controladores robustos. Para la sintonización de los controladores robustos, el problema de control, se presenta como un problema de optimización multiobjetivo, de un conjunto de funciones, donde se incluyen los parámetros del controlador.

No hay comentarios:

Publicar un comentario