viernes, 10 de mayo de 2013

Sistemas multiagente


Los sistemas de información actuales se encuentran en pleno proceso de cambio, cuyo principal motor de transformación, en esta primera década del siglo veintiuno, ha sido y sigue siendo Internet, desde las primeras páginas Web estáticas hasta los actuales servidores de aplicaciones, integrados en portales corporativos, se ha recorrido un largo camino en el que han nacido numerosas tecnologías de lenguajes y plataformas, cada vez mejor integradas con el resto de los sistemas de información empresariales para ofrecer a las personas nuevos servicios a través de la red. Y la revolución continúa. Todavía una gran parte de los sistemas de información siguen siendo sistemas legados, propietarios, cuyos costos de integración y de mantenimiento son muy elevados. Los factores de cambio derivados de Internet son varios. En primer lugar, los protocolos de Internet se han introducido en las redes dentro de la empresa, y cada vez es más usual la sustitución de aplicaciones cliente-servidor clásicas por aplicaciones Web sobre redes internas o intranets, con el ahorro en costos de integración y mantenimiento que conllevan. En segundo lugar, los estándares recientes relativos a los servicios Web y el Lenguaje de Modelado Extendido, permiten la realización de transacciones entre plataformas tecnológicas heterogéneas a través de Internet. Otro factor importante que impulsará el desarrollo de los futuros sistemas de información es la Web semántica que, apoyada en los lenguajes de descripción de ontologías, impulsarán significativamente el acceso y procesamiento de los contenidos de Internet por las aplicaciones, y su integración en el nivel semántico.


La evolución de los sistemas informáticos para resolver nuevas necesidades, aprovechando la disponibilidad de equipos cada vez más potentes, conlleva el desarrollo de aplicaciones cada vez más complejas. En esta evolución, el esfuerzo de desarrollo no puede aumentar de forma proporcional a la complejidad del software producido. Es por ello que la ingeniería del software se enfrenta al problema de construir software cada vez más complejo con unos recursos productivos limitados, mediante la utilización de paradigmas cada vez más abstractos. De este modo, en la historia de la informática se han sucedido constantemente cambios de paradigmas de programación, desde la electrónica al ensamblador, de aquí a la programación simbólica y la descomposición funcional y más recientemente a la orientación a objetos y servicios. Existe un esfuerzo creciente en la elaboración de estándares que permitan utilizar internet como infraestructura para la comunicación de sistemas ad-hoc. Los lenguajes semánticos, el Lenguaje de Modelado Extendido o los estándares de Servicios Web son algunos ejemplos.

Sistemas complejos, entornos abiertos y una necesidad creciente de abstracción para construir software a un costo razonable son requisitos que el paradigma de orientación a agentes resuelve mediante un modelo donde el control y la información están distribuidos en entidades autónomas, proactivas y deliberativas, capaces de colaborar y de organizarse. Los agentes son, en definitiva, una solución adecuada para aplicaciones descentralizadas, mal estructuradas, cambiantes y complejas.

Al interior de la inteligencia artificial, la inteligencia artificial distribuida se define como “el campo de la inteligencia artificial que se centra en los comportamientos inteligentes colectivos que son producto de la cooperación de diversas entidades denominadas agentes”. Dentro de la inteligencia artificial distribuida se pueden considerar tres ramas: (1) Inteligencia artificial distribuida “clásica”, estudia la conducta colectiva, a diferencia de la inteligencia artificial, que estudia la conducta individual. Se pueden diferenciar dos áreas de investigación: la resolución cooperativa de problemas distribuidos y los sistemas multiagente. La diferencia entre ambas es de flexibilidad, en la resolución de problemas distribuidos las tareas e interacciones están prefijadas según un plan centralizado. Se abordan los temas de: Descripción, descomposición y asignación de tareas; Comunicación; Coordinación; Resolución de conflictos. (2) Inteligencia artificial distribuida “autónoma”, estudia los agentes individuales en un mundo social. Se ocupa de la perspectiva interna del agente y engloba: Teoría de agentes; Propiedades, caracterización, taxonomía; Arquitecturas de agentes; Lenguajes de agentes. (3) Inteligencia artificial distribuida “comercial”, se centra en la aplicación de la inteligencia artificial distribuida clásica y autónoma, desarrollando agentes software que están siendo explotados de forma comercial.

El dominio del sistema multiagente o de inteligencia artificial distribuida es una ciencia y una técnica que trata con los sistemas de inteligencia artificial en red. El bloque fundamental de construcción de un sistema multiagente, como es de esperarse, son los agentes. Los agentes, por lo general, son vistos como entidades inteligentes, equivalentes en términos computacionales a un proceso del sistema operativo, que existen dentro de cierto contexto o ambiente, y que se pueden interrelacionar a través de un mecanismo de comunicación inter-proceso, usualmente un sistema de red, utilizando protocolos de comunicación. En cierto modo, un sistema multiagente es un sistema distribuido en el cual los nodos o elementos son sistemas de inteligencia artificial, o bien un sistema distribuido donde la conducta combinada de dichos elementos produce un resultado en conjunto inteligente.

En el intento de establecer algunas definiciones puntuales se dice que: “Un agente es un sistema de computación que es capaz de una acción independiente en beneficio de su usuario o propietario y que en lugar de que se le esté diciendo constantemente lo que necesita hacerse para satisfacer los objetivos diseñados, lo encuentra por sí mismo”. Del mismo modo: “Un sistema multiagente es uno que consiste de un número de agentes que interactúan entre sí. En la mayoría de los casos, los agentes estarán actuando a favor de usuarios con diferentes metas y motivaciones. Para interactuar con éxito, requieren la capacidad de cooperar, coordinar y negociar entre sí, tal como lo hacen las personas. Las características principales de los sistemas multiagente son las siguientes: (1) Poseen un número de agentes superior a uno. (2) Estos agentes son autónomos, distribuidos, heterogéneos, individualistas o cooperativos. (3) Los agentes tienen información incompleta, o capacidades limitadas para resolver problemas. (4) Son abiertos y sin un diseño centralizado. (5) El sistema no tiene un control global. (6) Los datos son descentralizados. (7) La computación es asíncrona. (8) Su infraestructura posee protocolos de comunicación e interacción.

Se debe notar que los agentes no son necesariamente inteligentes. Existen como en todo el resto del dominio de la inteligencia artificial, dos enfoques para construir sistemas multiagentes: (1) El enfoque formal o clásico, que consiste en dotar de los agentes de la mayor inteligencia posible utilizando descripciones formales del problema a resolver y de hacer reposar el funcionamiento del sistema en tales capacidades cognitivas. Usualmente la inteligencia es definida utilizando un sistema formal, como los sistemas de inferencia lógica, para la descripción, raciocinio, inferencia de nuevo conocimiento y planificación de acciones a realizar en el medio ambiente. (2) El enfoque constructivista, que persigue la idea de brindarle inteligencia al conjunto de todos los agentes, para que a través de mecanismos ingeniosamente elaborados de interacción, el sistema mismo genere comportamiento inteligente que no necesariamente estaba planificado desde un principio o definido al interior de los agentes mismos. Este tipo de conducta es habitualmente denominada comportamiento emergente.

El año 2008, se celebraron los 30 años de investigación en sistemas multiagente en la Universidad de Massachussets Amherst. En un artículo relacionado sobre los aportes de esa universidad a este tema se presentan también las tendencias actuales de investigación que se encuentran centradas principalmente en: (1) Organizaciones / empresas de Agentes virtuales de miles de agentes: cómo se ensamblan ellos; como se determina y evoluciona su estructura; cómo se diseñan e integran las organizaciones; y cómo construir agentes situados organizacionalmente. (2) Comprensión de las relaciones entre la coordinación de agentes cooperadores versus agentes auto-interesados. (3) Cómo pueden interactuar las diferentes representaciones de las actividades del agente para adaptar sus estrategias y políticas a las necesidades de otros niveles. (4) Cómo pueden adaptarse desde una perspectiva de largo plazo, cuáles son los mecanismos de aprendizaje en un contexto multiagente. (5) Cómo se origina la conducta emergente. (6) Cómo desarrollar una visión integrada de satisfacción que tome en cuenta la solución de problemas aproximada, la comunicación parcial y abstracta de los resultados y la coordinación aproximada. (7) Cómo caracterizar las interdependencias entre las actividades de los agentes y relacionar esa caracterización a la satisfacción adecuada del protocolo de coordinación multiagente, tomando en cuenta las limitaciones de recursos y los criterios de utilidad.

No hay comentarios: