Inteligencia en enjambre (Swarm Intelligence)
Acabo de leer un libro bastante interesante que hace referencia a la llamada Inteligencia en Enjambre o Inteligencia Colectiva.
La idea del libro parte de cómo solucionar problemas complejos con sistemas alternativos a los tradicionales basándose en sistemas distribuidos con nodos conectados entre sí pero con poca inteligencia o potencia de cálculo.
Pongamos un ejemplo.
Si quisiéramos solucionar el llamado “problema del vendedor” que consiste en buscar el camino más corto entre dos puntos dados en el menor tiempo posible.
La solución típica a este problema es representar los distintos puntos de un mapa como un grafo y aplicar la técnica de backtraking para encontrar el camino más corto entre dos nodos.
Esta técnica es válida pero es bastante costosa en tiempo y recursos.
Una técnica alternativa es aplicar la llamada Inteligencia colectiva o en enjambre.
La idea surgió al estudiar cómo algunos insectos o animales que de forma individual tienen poca inteligencia por sí mismos al unirse en una comunidad o colmena pueden hacer algunas cosas realmente asombrosas.
Un ejemplo es como una colonia de hormigas buscan comida y encuentran el camino para llevarla a la colonia.
El proceso, a grandes rasgos, es el siguiente.
Un grupo de hormigas llamadas exploradoras salen de la colonia en busca de comida.
Cada hormiga deja un rastro de feromonas en los lugares que van recorriendo.
Las hormigas en su proceso de exploración van avanzando por un camino sin rastro de feromonas y van dejando su rastro por donde pasan.
Invariablemente alguna hormiga alcanza comida y regresa por el camino marcado con sus feromonas. La primera hormiga que llega a la colonia es la que ha encontrado el camino más corto a la comida.
La exploradora informa al resto de hormigas que salen por el camino marcado por la hormiga exploradora y van marcando más intensamente el camino con feromonas.
Al cabo de un rato muchas hormigas llegan a la comida y la llevan a la colonia por el camino fuertemente marcado.
Este procedimiento bastante ingenioso puede aplicarse para la resolución de problemas al basarse en pequeños nodos con poca autonomía por sí mismo pero que unidos nos permiten solucionar el problema en su conjunto.
En el caso de problema del vendedor podríamos idear un sistema de bots que recorrieran un mapa y que fueran marcando el camino que van recorriendo, una vez encontrado volverían por el camino marcado hasta el origen y el primero que regrese habrá encontrado el camino más corto.
Este tipos de sistemas también tienes algunas ventajas adicionales
. no necesitan un supervisor y se ejecutan de forma autónoma
. son sistemas muy escalables, si el sistema crece bastaría con incrementar los bots participantes.
. son muy dinámicos, en el sistema del vendedor si de repente hay cortes en el camino se pueden encontrar caminos alternativos de forma dinámica.
Os aconsejo leer el libro
Swarm Intelligence (Autor Fouad Sabry)
Un saludo a todos.