INTELIGENCIA DE ENJAMBRES
Juan Camilo Varela López UNIVERSIDAD DE CALDAS Sistemas Inteligentes 2
INTELIGENCIA DE ENJAMBRES (SWARM INTELLIGENCE) Sistemas Intelig entes II Juan Camilo Varela López
[email protected] Ingeniería de Sistemas y Computación. Facultad de Ingeniería Universidad de Caldas Manizales, Colombia Resumen Este documento tiene la intencionalidad de resaltar el enfoque que tiene la inteligencia artificial (IA) para la solución de problemas de alta complejidad por medio de la inteligencia de enjambres, en donde se dará a conocer una comparación de esta contra los algoritmos evolutivos, el surgimiento de su rama la cual es la computación evolutiva, el diseño que deben tener los algoritmos de computación evolutiva, entender cómo se comportan los sistemas de inteligencia de enjambres compuestos por un conjunto de agentes computacionales simples, que perciben su entorno basados en la comunicación que tiene con los demás integrantes de su población y se explicará algunos de los algoritmos más reconocidos de esta temática.
1) Introducción La inteligencia artificial (IA) desde de sus paradigmas convencional (Este se basa en el análisis formal y estadístico de cómo se desenvuelve el comportamiento humano ante un problema, en donde son resultado de este el razonamiento basado en casos, los sistemas expertos y las redes bayesianas; entre otros), y computacional (Este se enfoca en el desarrollo de sistemas complejos que interactúan con otros, estableciendo un desarrollo o aprendizaje interactivo, sin hacer uso de heurísticas, son resultado de éste las redes neuronales, la inteligencia por enjambres y los sistemas difusos);en donde se ha tenido un alto interés en la búsqueda de soluciones optimas en aquellos problemas que tienen un alto grado de complejidad, en todo tipo de espacios como lo son los continuos (Son todos aquellos donde el número de sucesos son infinitos) y los discretos (Estos se caracterizan por tener un numero de sucesos finitos o infinito contable), lo cual se ha venido desarrollando con el pasar de los tiempos con el desarrollo de algoritmos de optimización en espacios n-dimensionales de búsquedas con la intencionalidad de encontrar la minimización o maximización de una función objetivo al momento de dar solución a dichos problemas cumpliendo con que dicha solución será óptima. Las metodologías para encontrar las respectivas soluciones a problemas complejos de optimización, han tenido una gran evolución partiendo de métodos constructivos a métodos de búsqueda local (búsqueda de la mejor de entre las soluciones posibles alcanzables en un tiempo razonable) y por ultimo llegar a los algoritmos basados en poblaciones; estos utilizan los métodos nombrados anteriormente con el objetivo de mejorar la solución para la población, incluso llegan a combinar buenas soluciones en un orden respectivo donde luego se podrán otras mejores a estas (Hertz & Kobler, 2000).
2) Algoritm os de Computación Evolutiva Estos algoritmo basados en poblaciones, son conocidos como algoritmos de computación evolutiva, los cuales emplean una serie de técnicas iterativas para el manejo de una población de individuos, los cuales evolucionarán a partir de un conjunto de reglas específicas. A partir de cada iteración existen 2 componentes para estos individuos, los cuales son:
‐
Au to adap tac ió n: En donde el individuo obtiene cambios por si mismo.
‐
Cooperación: Los individuos intercambian in formación entre ellos.
El diseño de los algoritmos de computación evolutiva, según (Muñoz, López, & Caicedo, 2008) deben tener las siguientes características:
‐
Existencia de individuos que representan las soluciones del problema, en donde dichas soluciones pueden llegar a ser factibles o no, parciales o completas, individuales o grupales.
‐
Existencia de un proceso de evolución el cual establece los cambios en la población a cada generación de esta en forma continua.
‐
Una definición de vecindad que establezca el protocolo de cómo será el intercambio de información entre los individuos.
‐
Un mecanismo que permita detectar las fuentes de información de un individuo, y cuál es la más conveniente de utilizar.
‐
Una medida de factibilidad de la solución encontrada, de tal forma que se pueda evaluar si es buena, óptima o inadecuada, comparándola con las demás soluciones.
‐
Un mecanismo de intensificación, que contribuyen al componente de autoadaptación, sin tener en cuenta la información dada por los demás individuos.
‐
Un mecanismo de diversificación, el cual permite evitar que varios individuos lleguen a un mismo punto óptimo local.
Los algoritmos que se basan en programación evolutiva resuelven instancias de problemas que tienen un alto grado de dificultad, a través de una exploración bastante grande del espacio de las soluciones, reduciendo dicho espacio y haciendo una búsqueda eficiente sobre este, además de basarse en los mecanismos de la evolución biológica, la cual se enfatiza en estudiar las transformaciones o cambios en una determinada forma de vida a través del tiempo y su comportamiento en su entorno. La historia de la computación evolutiva inicia en el año de 1950 cuando se reúne los conceptos de Charles Darwin y en los descubrimientos realizados por Gregor Mendel, para la resolución de problemas (Jiménez). La computación evolutiva, se compone de 2 grandes ramas, las cuales son:
‐
Los algoritmos evolutivos: Utiliza los conceptos de la evolución biológica, los cuales intervienen en una población de soluciones potenciales, utilizando los principios de diversidad de individuos y supervivencia del más fuerte para producir mejores soluciones.
‐
Inteligencia de enjambres: Esta se compone de una serie de técnicas que se basan en el estudio del comportamiento colectivo en sistemas auto-organizados (en estos existe un proceso de coordinación, el cual surge de las interacciones locales entre los componentes de un sistema inicialmente desordenado) y descentralizados(también conocidos como distribuidos, ya que estos están separados físicamente y conectadas entre sí por una red) (Suárez Tirado)
De tal forma que las técnicas más importantes de la Inteligencia Artificial (IA) de la rama computación evolutiva se pueden ver en el Esquema 1, pero en este documento nos centraremos en los algoritmos más utilizados en la inteligencia por enjambres como lo son: Optimización por Colonia de Hormigas (Ant Colony Optimization – ACO), Optimización por nube de partículas u Optimización enjambre de partículas (Particle Swarm Optimization - PSO), la optimización por enjambre de bacterias y los algoritmos de colonias de abejas (SBC) Esquema 1 : Computación evolutiva
3) Inteligenc ia de Enjambres Como se mencionó anteriormente esta es una sub-rama emergente de la inteligencia Artificial, perteneciente a la computación evolutiva, la cual aplica ciertas técnicas inspiradas en el comportamiento de los insectos sociales. Donde los ejemplos de dichos comportamientos son tomados de la naturaleza como lo son las bandadas de aves, jaurías, cardúmenes, colmenas de abejas y de las colonias de hormigas. Los comportamientos más significativos, para el modelamiento de si stemas basados en inteligencia de enjambres provienen de las hormigas, las abejas y las avispas, donde la característica principal de estos insectos se nota en la cooperación en la realización de tareas complejas, en donde cada individuo de la población contribuye a una solución determinada, y no existe espacio para el individualismo por el bienestar de su comunidad (Hassan, s.f.) Los sistemas de inteligencia de enjambres, están compuestos por una población de agentes computacionales simples, en donde estos están en la capacidad de percibir y modificar su ambiente de manera local, para hacer posible la comunicación con los demás sujetos pertenecientes a la población, así estos también notaran los cambios generados en su entorno. Estos sistemas no tienen una estructura centralizada de control que determine el comportamiento de los agentes, esto se da por medio de interacciones locales entre los mismos agentes (Tercero Talavera, 2009). Es importante tener en cuenta que los agentes lo que hacen es seguir un conjunto de reglas simples, y dichos agentes son homogéneos, es decir los integrantes de la población son idénticos. 4) Principios de los Sistemas basados en Inteligencia de Enjambres Los principios que caracterizan a los sistemas basados en inteligencia de enjambres (Hassan, s.f.), básicamente son:
‐
La retroalimentación positiva: Este principio se enfatiza en reforzar las buenas soluciones que se van encontrando en el sistema, y asegura que la población se estabilice siempre hacia la mejor solución, de tal forma que llega a manejar resultados mejores en una probabilidad mayor para un mismo evento.
‐
‐
‐
El voto negativo: Este minimiza las probabilidades de llegar a encontrar soluciones malas y que se pueda encontrar un óptimo local conocido para casos que tienen casi que una solución directa y con muy bajo costo computacional. La aleatoriedad: Este permite explorar y descubrir nuevas soluciones, el cual es un buen complemento de la retroalimentación positiva, ya que presenta nuevos candidatos de soluciones encontradas, para que puedan ser comparadas y el egir la mejor. Múltiples Interacciones: Esta hace que el flujo de información y los datos generados por los individuos de la población se puedan transmitir por medio de la red.
5) Ventajas de los Sistemas de Inteligenc ia de Enjambres Los sistemas basados en inteligencia por enjambres tienen las siguientes ventajas (Kutsenok):
‐
Flexibilidad, la colonia puede adaptarse a un entorno cambiante, extremo, adverso; tienen la capacidad de auto-recuperarse.
‐
Eficiencia, los agentes no piensan en el futuro y no utilizan razonamiento simbólico, lo cual computacionalmente es costoso.
‐
Robustez, es decir, cuando uno o más individuos fallan, es decir se equivocan o mueren, el grupo puede seguir ejecutando la tarea.
‐
Auto-organización, es decir las actividades no se controla centralizadamente ni se supervisan localmente. No se tiene una gobernanza para su comportamiento.
6) Optimi zación enjambre de partícul as (Partic le Swarm Optimization - PSO) Este algoritmo fue desarrollado por Kennedy y Eberhart en el año de 1995, el cual es trabajado para funciones no lineales en todo tipo de espacios (continuos y discretos); este se basa en la simulación del desplazamiento de cardúmenes y bandadas. En todos los sistemas PSO, se cuenta con una población de partículas (individuos), en donde cada uno representa una posible solución al problema. Partiendo de que estas partículas cambian su estado, en el momento que interactúan en un entorno determinado con los demás integrantes de su población buscando un estado más estable que conlleve a la solución. En este modelo los individuos ignoran su propia experiencia, ya que existen mejores soluciones a la encontrada este cambia su criterio por la más óptima, de acuerdo a la creencias exitosas de los demás integrantes de su población. Es así como se contempla el funcionamiento de PSO. Tomando como ejemplo, el desplazamiento que tiene una bandada, al momento de que están volando cada integrante trata de hallar las soluciones factibles, siguiendo a quienes van por buen camino para llegar a este. El algoritmo consiste en tener una determinada poblaci ón (enjambre), y unas soluciones candidatas ubicándolas aleatoriamente (partículas), en donde dichas partículas se mueven por el espacio del problema planteado, como se muestra en la Imagen 1, cada partícula luego será tratada con la Ecuación 1 y la Ecuación 2, en donde cada partícula está representada por la variable Xi, la mejor posición encontrada para cada partícula en relación al costo estará asociada por Pi, la velocidad para cada partícula estará relacionada con Vi, las variables C1 y C2 serán constantes mayores a cero, R1 y R2 serán 2 números en el intervalo cerrado comprendido entre 0 y 1, w será un peso inercial. El cual facilita la exploración global de nuevas soluciones en el espacio del problema (Muñoz, López, & Caicedo, 2008).
Ecuación 1 : Ecuación para la velocidad de cada partícula
Ecuación 2: Ecuación para el desplazamiento de cada partícula
Imagen 1: Algor itmo de PSO
7) Optimi zación por Coloni a de Hormig as (Ant Colon y Optimi zation – ACO) La optimización por Colonia de Hormigas, está basada en el comportamiento social que tienen las hormigas, en donde existe una comunicación a través de feromonas, la cual es una sustancia química que es depositada por las hormigas que avanzan por un camino determinado, para notificarles a las demás que camino escoger; dependiendo de la concentración de cada sustancia estas escogen el mejor camino el cual lleva a fuentes de alimento o a su nido. Ya en cuestión de los algoritmos ACO, se cuenta con una cantidad de agentes que construyen la solución, o una pequeña parte de esta a medida que se va generando el camino con mayor cantidad de feromona; partiendo de un estado inicial y desplazándose por una serie de estados vecinos que pertenecen a un conjunto finito, haciendo uso de 2 importantes fuentes de información, la visibilidad y los rastros de feromona en los caminos que se van explorando, que le permite a cada hormiga desplazarse de un nodo a otro para elaborar su camino solución. Partiendo para ello de la Ecuación 3, donde se tiene la variable (t), la cual define la probabilidad de que la k-ésima hormiga se desplace del nodo i al nodo j, la cantidad de feromona acumulada en cada arco (i,j) identificado por , una información heurística asociada , siendo además los estados válidos.
Ecuación 3
Los rastros de la feromona varían para cambiar el estado del problema, es decir que tantas soluciones se han llegado a encontrar, la cual es utilizada por cada hormiga para tomar decisiones de que nodos visitar para construir su camino solución, de tal forma que esta sustancia se convierte en términos computacionales en una memoria local compartida, que contribuye a la elección del mejor camino por medio de su comportamiento cooperativo, estableciendo una comunicación indirecta por medio del cambio d e su entorno (Muñoz, López, & Caicedo, 2008). La optimización por Colonia de Hormigas, tiene diversas aplicaciones como lo son la selección de características, procesamiento de imágenes, optimización para el control del tráfico, programación en sistemas de manufactura, descubrimiento de recursos naturales (Kabir, Shahjahan, & Murase, 2013). Para conocer más acerca de ACO, una de los ejemplos clásicos conocido como el problema del viajero (the traveling salesman problema - TSP) es tratado por medio de los algoritmos de ACO, en donde se tienen un conjunto de ciudades interconectadas entre sí y se debe poder visitar cada una de ellas sin repetir con el menor costo posible, como se muestra en la Imagen 2, donde los puntos rojos son las ciudades a visitar, los enlaces grises es la cantidad de feromona existente por cada camino, en donde se toma el que tenga más feromona como solución al problema, es decir el que esté más gris y la línea roja es el resultado del problema, con la mejor solución (Borgelt, 2005). Imagen 2: Solución de TSP por Optimización de Colonia de Hormigas
8) Optimi zación por enjambre de bacterias Este fue desarrollado con base en el comportamiento de la bacteria Escherichia Coli, ya que ha sido de lo microorganismo más comprendidos por las ciencias biológicas, el cual se compone de una capsula que contiene sus órganos vitales y unos flagelos que le permiten desplazarse, este incluso llega a detectar alimento y evitar algunas sustancias nocivas. La Escherichia Coli, se basa en dos estados de locomoción, los cuales son el deslazamiento y el giro, en donde este cambia de un estado al otro dependiendo de la concentración de nutrientes o sustancias nocivas en su entorno. La optimización por enjambre de bacterias se centra en encontrar soluciones que se aproximen a los problemas de alta complejidad que son casi que intratables por medio de la maximización o la minimización (McCaffrey, Optimización de la recolección bacteriana, 2012).
9) Algo ritm os de Coloni a de Abejas (SBC) Este se basa en seguir el comportamiento de alimentación de las abejas melíferas, tienes 3 fases haciendo uso de varios tipos de abejas, como lo son: la abeja empleada u obrera, la espectadora y la exploradora, en donde se realiza una explotación masiva de todas las fuentes de búsqueda de las soluciones durante la fase de trabajo intensivo y la fase espectadora. Luego en la fase de exploratoria se eliminan las soluciones que no tienen un beneficio relevante para el progreso de la búsqueda, así que se opta por abandonarlos y se insertan nuevas soluciones para explorar nuevas regiones del dominio del espacio de la búsqueda. Los algoritmos basados en SBC, establecen modelos de comportamientos de abejas y son utilizados para descubrir soluciones a problemas de combinatoria que pueden ser casi imposibles de resolver, también es utilizado para resolver el problema del viajero (TSP). Estos algoritmos frecuentemente son llamados como meta-heurística, ya que fuera de entregar argumentos de la solucione encontrada de forma detallada, proporcionan un marco general y una serie de instrucciones para dar soluciones a los problemas (McCaffrey, 2011).
10) Referencias
Borgelt, C. (2005). http://www.borgelt.net/ . Obtenido de http://www.borgelt.net/: http://www.borgelt.net/acopt.html Hassan. (s.f.). hassam.hubpages.com. Obtenido de hassam.hubpages.com: http://hassam.hubpages.com/hub/Swarm‐Intelligence Hertz, A., & Kobler, D. (2000). A framework for the description of evolutionary algorithms. European Journal of Operational Research, 126(1), 1‐12. Jiménez, M. A. (s.f.). www.dia.fi.upm.es/. Obtenido de www.dia.fi.upm.es/: http://www.dia.fi.upm.es/~ajimenez/Docu_Metaheuristicas/Transparencias/Tema5Evolut ivos.pdf Kabir, M., Shahjahan, M., & Murase, K. (2013). Ant Colony Optimization ‐ Techniques and Applications. Obtenido de http://www.intechopen.com/books/ant‐colony‐optimization‐ techniques‐and‐applications Kutsenok, A. (s.f.). http://www.dreamspike.com/. Obtenido de http://www.dreamspike.com/: http://www.dreamspike.com/kutsenok/attachments/File/SwarmAI04_(unpublished).pdf McCaffrey, J. (Abril de 2011). Use Bee Colony Algorithms to Solve Impossible Problems. MSDN Magazine. Obtenido de http://msdn.microsoft.com/en‐us/magazine/gg983491.aspx McCaffrey, J. (2012). Optimización de la recolección bacteriana. MSDN Magazine. Obtenido de http://msdn.microsoft.com/es‐es/magazine/hh882453.aspx Muñoz, M. A., López, J. A., & Caicedo, E. F. (Agosto de 2008). Inteligencia de enjambres: sociedades para la solución de problemas (una revisión). Ingeniería e Investigación ‐ Universidad Nacional, 28(2). Suárez Tirado, J. (s.f.). Inteligencia de enjambre y retos para su aplicación en las organizaciones: Análisis a partir del control. Obtenido de http://www.fce.unal.edu.co/publicaciones/index.php?option=com_content&view=article &id=124:7‐inteligencia‐de‐enjambre‐y‐retos‐para‐su‐aplicacion‐en‐las‐ organizaciones&catid=41:documentos‐eaecp‐fce‐cid&Itemid=55 Tercero Talavera, I. (20 de Agosto de 2009). coevolucion.net. Obtenido de coevolucion.net: http://coevolucion.net/index.php?option=com_content&view=article&id=89:inteligencia‐ de‐enjambre