Loading AI tools
técnicas probabilísticas para resolver problemas computacionales que pueden reducirse a encontrar buenos caminos a través de grafos De Wikipedia, la enciclopedia libre
En ciencias de la computación y en investigación operativa, el algoritmo de la colonia de hormigas, algoritmo hormiga u optimización por colonia de hormigas (Ant Colony Optimization, ACO) es una técnica probabilística para solucionar problemas computacionales que pueden reducirse a buscar los mejores caminos o rutas en grafos.
Este algoritmo es un miembro de la familia de los algoritmos de colonia de hormigas, dentro de los métodos de inteligencia de enjambres. Inicialmente propuesto por Marco Dorigo en 1992 en su tesis de doctorado,[1][2] el primer algoritmo surgió como método para buscar el camino óptimo en un grafo, basado en el comportamiento de las hormigas cuando estas están buscando un camino entre la colonia y una fuente de alimentos. La idea original se ha diversificado para resolver una amplia clase de problemas numéricos, y como resultado, han surgido gran cantidad de problemas nuevos, basándose en diversos aspectos del comportamiento de las hormigas.
En nuestro mundo natural, las hormigas (inicialmente) vagan de manera aleatoria, al azar, y una vez encontrada comida regresan a su colonia dejando un rastro de feromonas. Si otras hormigas encuentran dicho rastro, es probable que estas no sigan caminando aleatoriamente, puede que estas sigan el rastro de feromonas, regresando y reforzándolo si estas encuentran comida finalmente.[3]
Sin embargo, al paso del tiempo el rastro de feromonas comienza a evaporarse, reduciéndose así su fuerza de atracción. Cuanto más tiempo le tome a una hormiga viajar por el camino y regresar de vuelta otra vez, más tiempo tienen las feromonas para evaporarse. Un camino corto, en comparación, es marchado más frecuentemente, y por lo tanto la densidad de feromonas se hace más grande en caminos cortos que en los largos. La evaporación de feromonas también tiene la ventaja de evitar convergencias a óptimos locales. Si no hubiese evaporación en absoluto, los caminos elegidos por la primera hormiga tenderían a ser excesivamente atractivos para las siguientes hormigas. En este caso, el espacio de búsqueda de soluciones sería limitado.
Por tanto, cuando una hormiga encuentra un buen camino entre la colonia y la fuente de comida, hay más posibilidades de que otras hormigas sigan este camino y con una retroalimentación positiva se conduce finalmente a todas las hormigas a un solo camino. La idea del algoritmo colonia de hormigas es imitar este comportamiento con "hormigas simuladas" caminando a través de un grafo que representa el problema en cuestión.
La idea original proviene de la observación de la explotación de los recursos alimentarios entre hormigas, en el que las habilidades cognitivas de las hormigas son individualmente limitadas y en conjunto son capaces de buscar el menor camino existente entre la fuente de comida y su nido o colonia.
En una serie de experimentos en una colonia de hormigas donde existe la elección de dos rutas de distancias diferentes que llevan hasta la fuente de comida, los biólogos observaron que las hormigas tienden a usar la ruta más corta.[4] [5] El siguiente modelo explica este comportamiento:
Las hormigas utilizan el entorno como medio de comunicación. Intercambian información de manera indirecta depositando feromonas en su trayectoria, detallando el estado de su trabajo. La información intercambiada tiene un ambiente local, solamente una hormiga ubicada cerca de donde las feromonas fueron depositadas va a tener una noción de estas. Este sistema es llamado "Estigmergia (Stigmergy)" y ocurre en muchas sociedades de animales (este sistema ha sido estudiado en el caso de la construcción de los pilares en los nidos de termitas). El mecanismo para resolver un problema demasiado complejo para ser abordado por hormigas solamente es un buen ejemplo de un sistema auto-organizado. Este sistema es basado en la retroalimentación positiva (el depósito de feromonas atrae otras hormigas y estas fortalecerán dicha retroalimentación) y la retroalimentación negativa (disipación de la ruta por evaporación). Teóricamente, si la cantidad de feromonas fue la misma en todas las rutas durante todo el tiempo, ninguna ruta fue elegida. Sin embargo, debido a la retroalimentación, una ligera variación en una arista amplificará y entonces se permitirá elegir una ruta. El algoritmo se moverá de un estado inestable en el que ninguna arista es más fuerte que otra, a un estado estable donde una ruta está compuesta por las aristas más fuertes.
La filosofía básica del algoritmo implica el movimiento de una colonia de hormigas a través de los diferentes estados del problema influenciado por dos políticas de decisión a nivel local, rutas y atracción. De esta manera, cada hormiga incrementalmente construye una solución del problema. Cuando una hormiga completa una solución, o durante la fase de construcción, las hormigas evalúan la solución y modifican el valor de la ruta sobre las componentes utilizadas en la solución. Esta información de feromonas dirigirá la búsqueda de futuras hormigas. Además el algoritmo incluye dos mecanismos más, evaporación del rastro y acciones daemon. La evaporación del rastro reduce todos los valores de los rastros evitando la posibilidad de caer en óptimos locales. Las acciones daemon son usadas para desviar el proceso de búsqueda de una perspectiva local.
Estas son algunas de las variaciones más populares de los algoritmos de colonia de hormigas (ACO Algorithms).
El sistema de hormigas es el primer algoritmo OCH propuesto. Se corresponde con el funcionamiento descrito en la anterior sección
La mejor solución global deposita feromonas en cada iteración junto con todas las otras hormigas.
Agregada la cantidad máxima y mínima de feromonas [tmax,tmin] Solamente la mejor iteración deposita feromonas. Todas las aristas son inicializadas con tmax y re-inicializadas con tmax cuando se acerca a un estancamiento. [6]
Se ha presentado anteriormente.[7]
Todas las soluciones se clasifican de acuerdo su longitud. La cantidad de feromonas depositadas es ponderada para cada solución, de tal manera que las soluciones con los caminos más cortos depositan más feromonas que las soluciones que con los caminos más largos.
El mecanismo de depósito de feromonas de COAC es permitir a las hormigas la búsqueda de soluciones en conjunto y efectiva. Usando un método de diseño ortogonal, las hormigas en un dominio factible pueden explorar las regiones elegidas de una manera rápida y eficiente, con mayor capacidad de búsqueda global y precisión. [8]
Este método introduce inteligencia difusa dentro de las hormigas para acelerar las habilidades de búsqueda. [9]
Para algunas variaciones del algoritmo, es posible demostrar que es convergente. La primera evidencia de la convergencia del algoritmo colonia de hormigas fue hecha en el año 2000, el algoritmo de sistema de hormigas basado en grafos, y por tanto los algoritmos para ACS y MMAS. Como muchas metaheurísticas, es bastante difícil estimar la velocidad teórica de convergencia. En el año 2004, Zlochin y sus colegas[10] demostraron que los algoritmos de tipo COA podrían asimilar los métodos de descenso de gradiente estocástico, sobre la entropía cruzada y estimaciones de algoritmos de distribución.
procedure ACO_MetaHeuristic
while(not_termination)
generateSolutions()
daemonActions()
pheromoneUpdate()
end while
end procedure
Una hormiga es un simple agente computacional en el algoritmo de optimización colonia de hormigas. Se construye iterativamente una solución para el problema en cuestión. Las soluciones intermedias se denominan estados solución. En cada iteración del algoritmo, cada hormiga se mueve de un estado a un estado , correspondiendo a una solución intermedia más completa. Por tanto, cada hormiga computa un conjunto de expansiones factibles de su estado actual en cada iteración y se mueve a una de estas de manera probabilística. Para una hormiga , la probabilidad de moverse de un estado a un estado depende de la combinación de dos valores , de el atractivo del movimiento, computado por alguna heurística que indica a priori la conveniencia de dicho movimiento y el nivel de rastro del movimiento, indicando que tan competente ha sido en el pasado este particular movimiento.
El nivel de rastro representa a posteriori una indicación de la conveniencia de ese movimiento. Los rastros son actualizados por lo general cuando todas las hormigas han completado su solución, aumentando o disminuyendo los niveles de los rastros de los movimientos correspondientes que fueron partes de "buenas" o "malas" soluciones respectivamente.
En general, la th hormiga se mueve del estado al estado con probabilidad
donde
es la cantidad de feromonas depositadas en la transición del estado a , 0 ≤ es un parámetro para controlar la influencia de , es la conveniencia del estado de transición (un conocimiento a priori , típicamente , donde es la distancia) y ≥ 1 es un parámetro para controlar la influencia de .
Cuando todas las hormigas han completado un solución, los rastros son actualizados por
donde
es la cantidad de feromonas depositadas para un estado de transición, es el coeficiente de evaporación de feromonas y es la cantidad de feromonas depositadas por la th hormiga, típicamente dado para el Problema del Viajante (con movimientos correspondientes a los arcos del grafo) por
donde es el costo de la ruta de la th hormiga (en la mayoría de los casos es la longitud) y es una constante.
Los algoritmos de optimización de colonias de hormigas son aplicados en muchos algoritmos de optimización combinatorios. Muchos métodos derivados han sido adaptados a problemas dinámicos en variables reales, problemas estocásticos, programación paralela y multi-objetivo. Incluso han sido usados para producir soluciones bastante cercanas a las soluciones óptimas del problema del viajante. Ellos tienen una ventaja sobre los enfoques: recocido simulado y los algoritmos genéticos en problemas similares cuando el grafo puede cambiar su estructura de manera dinámica, el algoritmo de colonia de hormigas puede seguir corriendo continuamente y adaptar los cambios en tiempo real. Esto es de interés en los campos de enrutamiento de redes y en los sistemas de transportes urbanos.
El primer algoritmo de colonia de hormigas, llamado Ant System[11] , tenía como objetivo resolver el problema del viajante, que consiste en encontrar el camino hamiltoniano más corto en un grafo completo. El algoritmo general es relativamente simple y está basado en un conjunto de hormigas, cada una haciendo una posible ruta entre las ciudades. En cada estado las hormigas eligen moverse de una ciudad a otra teniendo en cuenta las siguientes reglas:
Los usos del algoritmo se utilizan para máquinas de aprendizaje y para problemas con una gran cantidad de datos. Por ejemplo, se ha estudiado crear un modelo del mantenimiento del cementerio donde las hormigas arraciman los cadáveres de sus semejantes.
Esto se ha adaptado a la tarea de supervisión de las máquinas de aprendizaje, encargadas de agrupar los grupos de objetos que son similares. De hecho se han demostrado que tales formas modificadas de algoritmos dan un funcionamiento y una exactitud mejores que los métodos clásicos tales como el bien conocido k-means.
Un ejemplo de aplicación de este tipo de algoritmos es la optimización de estructuras de hormigón armado, en especial, pilas de puentes[12]
En la práctica una gran cantidad de algoritmos se dicen llamar "algoritmos de colonia de hormigas", sin compartir ni siquiera el framework de optimización de colonias de hormigas canónicas (COA). En la práctica, el hecho de intercambiar información entre hormigas mediante el entorno (un principio llamado "Stigmergy") se considera suficiente para que un algoritmo pertenezca a la clase de algoritmos de colonia de hormigas. Este principio ha llevado a algunos a autores a crear el término "valor" para organizar los métodos y el comportamiento basado en la búsqueda de alimentos, clasificación de larvas, división del trabajo y en el transporte cooperativo.[13]
Cronología de los algoritmos de optimización de colonias de hormigas.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.