Agentes Inteligentes y Sistemas Multiagentes
Agente Inteligente
Se pueden definir a los agentes inteligentes como un sistema computacional que se encuentra en algún ambiente y que es capaz de llevar a cabo acciones autónomas dentro de dicho ambiente con el fin de lograr el objetivo por el que fue diseñado como indica Wooldridge (2002). Aunque como el mismo indica, no existe una definición que abarque todas las características que un agente pueda contener ya que estos pueden diferir en ciertas propiedades dependiendo del problema que atacan y de la implementación específica de su solución.
Los agentes deben cumplir con ciertas características para poder ser catalogados como inteligentes como definieron Wooldridge y Jennings (1995), dichas características son:
- Reactividad
- Pro actividad
- Habilidad social
La reactividad logra que los agentes puedan percibir su ambiente y los cambios del mismo para lograr reaccionar de forma acorde a ello. La pro actividad dentro de este concepto permite que cada agente tome cierta iniciativa para satisfacer su objetivo. Por último la habilidad social se emplea para que cada uno de los agentes pueda interactuar con sus semejantes para llevar a cabo su objetivo en común.
Además cada uno de los agentes debe cumplir con ciertas cualidades que son específicas de esta investigación como lo son la interacción con factores externos, la colaboración, el aprendizaje sobre cada una de las situaciones que se presenten dentro del ambiente y la colaboración con otros agentes reflejadas en estrategias adaptativas.
En el caso particular que se aborda en el cual existen agentes externos los cuales para este caso tienen un fin contrario al de nuestros agentes debemos asegurarnos que nuestros agentes sigan estos protocolos para su colaboración sin embargo habrá que definir una forma de lidiar con los agentes rivales.
Sistema Multiagente
El uso de sistemas multiagentes es un campo relativamente nuevo en cuanto al campo de la computación dado a que sus orígenes datan de la década de los 1990’s cuando se planteaba la posibilidad de resolver alguna situación utilizando pequeños componentes denominados agentes para lograrlo. El interés en desarrollar este tipo de sistemas empezó a crecer de una manera considerable haciendo que hoy en día sea objeto de atención de diversas publicaciones y conferencias.
Los agentes inteligentes son la base del desarrollo de los sistemas multiagentes, debido a que dependen completamente de estos ya que son los encargados de llevar a cabo tareas pequeñas e individualizadas para llegar a un objetivo de mayor complejidad que requiere de su colaboración para ser llevado a cabo con éxito.
Una propiedad fundamental en el desarrollo de los sistemas que incorporan agentes es la interacción de los mismos con el medio en el que se encuentran debido a que se espera que a cada acción realizada dentro del ambiente produzca una reacción en el mismo o una salida del sistema. Los agentes en la mayoría de los casos no tienen una vista global de su ambiente y tampoco ejercen un control total sobre el mismo, debido a esto no se puede asegurar que una acción realizada por un agente de forma idéntica dos veces tenga el mismo resultado o incluso que este sea correcto.
Un aspecto que se debe tomar en cuenta sobre el ambiente radica en que no en todos los casos se mantiene estático, es decir no cambia el estado de los elementos que lo conforman a menos que algún agente haga una acción directa sobre alguno de ellos. Tomando lo anterior a consideración debemos prever que el ambiente puede cambiar el entorno en el que se encuentran los agentes ya sea por la misma interacción de los agentes o por algún otro factor externo.
Retomando el contexto de sistemas multiagentes ahora que han sido definidos los agentes inteligentes que interactúan dentro del mismo, debemos tener otras consideraciones sobre el funcionamiento de este tipo de sistemas.
La principal característica y razón por la cual se optó por crear los sistemas multiagentes es la habilidad que tienen estos para resolver o simular problemas que necesitan de la intervención de distintos elementos con acciones autónomas y que sean capaces de tomar ciertas decisiones que los lleven a colaborar entre sí para llegar a un fin común. Debido a esto las áreas en donde los sistemas multiagentes pueden colaborar a la resolución de problemas es realmente extensa y entre las cuales encontramos ejemplos como lo son teoría de juegos, economía, biología, ambientes de aprendizaje, etc.
Las consideraciones sobre el ambiente en el cual se desenvuelven los agentes don prácticamente las mismas que se han expuesto en puntos anteriores agregando que al ser un ambiente compartido, este puede ser modificado por cualquiera de los agentes envueltos en él. Además en el enfoque dado en este documento se debe tomar en cuenta a los agentes externos y que ellos tienen la misma capacidad de modificar los elementos del ambiente que nuestros propios agentes.
Aunado a las consideraciones sobre el ambiente y mencionado el hecho de cómo pueden influir en el mismo los agentes externos, se debe recalcar otro aspecto el cual es la interacción entre agentes. Dado que se espera un resultado a cada acción llevada a cabo por los agentes, ahora dicho resultado depende de la combinación de acciones de cada uno de los agentes que intervengan. Esto puede alterar los resultados esperados y se debe tener un control o una forma de prever lo que pueda suceder así como posiblemente coordinarlo.
Comportamiento Social
Las acciones realizadas por los diversos agentes deben cumplir con los puntos anteriores y se logra de forma que cada agente tenga una noción sobre qué acciones conllevan el mejor resultado y son premiados con algún sistema de puntuación. Cada acción tiene cierto marcador y de esta forma pueden realizar la más adecuada para el momento en que se encuentran haciendo una evaluación de los pasos que deben seguir y el acumulado de puntos, también conocido como utilidad, que tendrán al finalizar cada posible camino que pueden tomar para llevar a cabo la labor.
Sin embargo la interacción de los agentes y los caminos que pueden tomar pueden interferir con las decisiones tomadas por el resto del conjunto. Esto se puede solucionar de diversas formas que comprenden las estrategias de interacción entre agentes, las cuales deben evaluar cada agente las opciones que tiene a seguir de forma que elija la que le sea más conveniente.
Normalmente en los sistemas multiagentes donde se busca llegar a una meta en común se emplean protocolos que se aseguran de ello y necesitan cumplir ciertos requisitos como lo son:
- Se garantiza el éxito del sistema si se asegura que eventualmente los agentes que están involucrados llegan a un acuerdo para realizar el trabajo.
- Se asegura que el resultado al que se llegue implique que se utilizaron los agentes de forma que todos lleguen a su máxima utilidad posible.
- El protocolo será pareto eficiente si se llega a una situación donde para cualquier agente no puede recibir una utilidad mayor sin disminuir la utilidad de algún otro agente.
- El protocolo debe ser individualmente razonable, esto es que siguiendo el protocolo cada agente tenga el conocimiento que siguiendo las reglas definidas en el sistema es la mejor forma de llegar a su utilidad.
- El protocolo debe asegurarse que exista estabilidad en el sistema, esto se logra dando incentivos a los agentes para que actúen de una manera que se busca y también se le conoce como el equilibrio de Nash.
- El protocolo debe ser simple asegurándose que cada agente al utilizarlo pueda determinar de una forma sencilla que estrategia debe seguir.
- Además el protocolo debe cerciorarse que no existe un punto de falla común, por ejemplo que no existe un solo árbitro o coordinador, así asegura esta propiedad también llamada como distribución.
Lo anterior es logrado por un sistema de comunicación que varía en cada implementación de sistemas multiagentes pero el cual tiene el fin de coordinar cada uno de los agentes. Esto resulta muy útil puesto que es lo más cercano que tienen los agentes a una visión global del ambiente con la cual pueden negociar y llevar a cabo la situación que mejor convenga a su desempeño.
Este sistema de comunicación se lleva comúnmente a cabo por el paso de mensajes en los cuales se indican datos relevantes para cada uno de los agentes. La estructura de dichos mensajes depende de cada implementación pero se conocen comúnmente dos representaciones:
- Knowledge Query and Manipulation Language (KQML)
- Knowledge Interchange Format (KIF)
Mientras que KQML se encuentra enfocado a la comunicación entre agentes como tal asegurándose de proveer una estructura que define destinatario, tipo de mensaje, etc., KIF se asegura de incluir la información sobre el entorno dentro de los mensajes, la parte relevante para la toma de decisiones.