ALGORITMOS DE OPTIMIZACIÓN METAHEURÍSTICA Y SU APLICACIÓN EN INGENIERÍA
INTELIGENCIA COMPUTACIONAL. Inspiraciones desde la naturaleza.
El Proyecto Fondecyt: "Un Sistema de búsqueda autónoma para la configuración de Metaheurísticas de variable continua para la resolución de problemas combinatoriales", da continuidad a una línea de investigación que se comenzó a desarrollar en nuestra Universidad hace más de una década. Esta línea de investigación inicialmente tuvo el propósito de estudiar y aplicar técnicas clásicas de optimización, para la resolución de problemas de Optimización Combinatoria, técnicas de la Investigación de Operaciones y Programación con Restricciones.
Nuevas técnicas de optimización
Pero, la profundización del tema y la propia evolución internacional de las técnicas han llevado a extender nuestro estudio a nuevas técnicas de optimización, inspiradas en la naturaleza o bio-inspiradas, denominadas Metaheurísticas, han permitido abordar problemas de mayor complejidad, o mayor dimensión, con más variables, a los posibles de abordar con técnicas clásicas. El término Metaheurística fue introducido en 1986 por Fred Glover, y deriva de dos palabras griegas: meta, que significa "más allá o en un nivel superior" y heuristic, que significa "encontrar". Hoy, este término es ampliamente utilizado como sinónimo de "heurísticas modernas".
Muchos problemas de optimización, ya sean de relevancia teórica/académica o práctica/industrial, buscan la mejor asignación de valores a un conjunto de variables para alcanzar cierto objetivo, por ejemplo, minimizar costos o maximizar beneficios. Básicamente, los problemas se dividen en dos tipos: aquellos cuyas soluciones están codificadas con variables reales y aquellos que usan variables discretas. Dentro de esta última clase de problemas están los denominados de Optimización Combinatoria. Pero, dado que la mayoría de las Metaheurísticas han sido concebidas para trabajar en dominios reales, surge nuestro interés de ponerlas a trabajar en dominios discretos o binarios.
Muchas Metaheurísticas han mostrado un desempeño igual o superior a las técnicas clásicas resolviendo problemas de Optimización Combinatoria. Más aún, también han podido abordar problemas imposibles de resolver con técnicas clásicas. Lo interesante, es que el asunto no es sólo un ejercicio académico, ya que en muchos casos los resultados obtenidos en proyectos de ciencia y tecnología se han llevado a la práctica, implementándose aplicaciones computacionales basadas en Metaheurísticas que se están utilizando en múltiples organizaciones.
Diferentes sistemas naturales, como las colonias de hormigas, enjambres de abejas, cardúmenes, bandadas, manadas, grupos de gatos, colonias de murciélagos, grupos de ranas, la propagación de semillas, la formación de ríos, las migraciones, la atracción de los planetas y otros como la improvisación jazzística y la interacción que ocurre en una sala de clases, sólo por nombrar algunos, se utilizan actualmente como base para el diseño e implementación de Metaheurísticas que resuelven muchos problemas de optimización en Ingeniería.
Ejemplos de problemas abordados
Algunos son: diseño de antenas de telecomunicaciones, optimización de circuitos de reconocimiento de voz, diseño de espacios físicos, diseño de alas de aviones, planificación de órbitas de satélites, planes tácticos militares, enrutamiento en redes de telecomunicaciones, ubicación de contenedores en puertos, planificación de proyectos, planificación de turnos de trabajo y diseño de líneas de montaje entre muchos otros.
Si bien la inspiración desde la biología ha acompañado desde sus inicios a la computación, el uso de algoritmos que imitan directamente el comportamiento de los organismos naturales es de desarrollo reciente. Esta clase de algoritmos son descentralizados y presentan un comportamiento emergente. Es decir, al sistema no se le dice cómo lograr el objetivo, si no que, a través del desempeño individual de elementos, que comparten cierta información de sus logros, se produce el comportamiento general esperado. Siendo este comportamiento emergente capaz de resolver el problema, probablemente no de manera óptima pero sí obteniendo soluciones suficientemente buenas, baratas y a tiempo. Son muy útiles cuando no existe un método que asegure encontrar el óptimo, cuando existe un método que consume mucho tiempo para obtener una solución óptima, cuando existen limitaciones de tiempo o para obtener una solución inicial como entrada a otra técnica.