jueves, 18 de septiembre de 2014

Inteligencia artificial distribuida

Autor:
PhD. Guillermo Choque Aspiazu
http://www.eldiario.net/
Publicado en:
Mayo 10 de 2010

La existencia de un único formalismo de representación puede no ser suficiente para capturar todos los atributos relevantes de un dominio en el que muy diferentes tareas confluyen. En problemas complejos diversas tareas han de ser aprendidas, pues la solución satisfactoria de estos problemas requiere la concurrencia de muy diversas habilidades, los métodos aplicados en unos casos pueden no ser los apropiados en otros. No es de esperar que un único sistema sea capaz de aprender funciones discontinuas. Una función discontinua puede representar diferentes comportamientos en diferentes regiones del dominio, y el conocimiento aprendido en una región, puede no ser aplicable en otras. Por consiguiente, los sistemas monolíticos están limitados a una única manera de interpretar sus entradas y producir soluciones, es decir, a una única forma de resolver problemas. Este planteamiento puede resultar inadecuado cuando los datos provienen de fuentes heterogéneas, reflejan diferentes comportamientos y llegan por flujos de entrada en paralelo.


En contraposición a los sistemas monolíticos, la inteligencia artificial distribuida integra los conceptos de dos campos del conocimiento: la inteligencia artificial y los sistemas distribuidos. El campo de la inteligencia artificial intenta comprender las entidades inteligentes, pero diferente de la filosofía y la sicología que también intentan hacer lo mismo, la inteligencia artificial intenta construir entidades inteligentes. El campo de los sistemas distribuidos estudia las propiedades de conjuntos de procesadores autónomos que no comparten memoria primaria, pero sí cooperan comunicándose por medio del envío de mensajes sobre una red de comunicación. A partir de los conceptos de inteligencia artificial y sistema distribuido mencionados, la inteligencia artificial distribuida puede ser definida como un campo del conocimiento que estudia e intenta construir conjuntos de entidades autónomas e inteligentes que cooperan para desarrollar un trabajo y se comunican por medio de mecanismos basados en el envío y recepción de mensajes.

La inteligencia artificial distribuida es un campo de la inteligencia artificial dedicada al estudio de las técnicas y el conocimiento necesario para la coordinación y distribución del conocimiento y las acciones en un entorno con múltiples agentes. Se puede distinguir dos áreas principales de desarrollo: (1) Solución cooperativa de problemas distribuidos. Estudia como unos conjuntos de módulos, o nodos, cooperan para dividir y compartir el conocimiento de un problema y en el desarrollo de la solución. (2) Sistemas multiagente. Estudia la coordinación de la conducta inteligente entre un conjunto de agentes inteligentes autónomos.

La principal diferencia entre ambas áreas estriba en la flexibilidad de la coordinación entre los agentes. En la solución cooperativa de problemas distribuidos, las interacciones y tareas que cada agente realiza, están prefijadas de antemano, hay un plan centralizado de resolución de problemas. Suele haber un miembro que ejerce un control global que centraliza los resultados parciales y datos entre el resto de los componentes del sistema. En contraposición en los sistemas multiagente, los agentes tienen un grado de autonomía mayor y pueden decidir dinámicamente que interacciones son adecuadas, que tareas deben realizar, quien realiza cada tarea y, además, es posible mantener conocimiento que no es globalmente consistente, incluso los agentes pueden mantener objetivos globales diferentes. Esta definición permite distinguir entre sistemas que se centran en el comportamiento global, con una conducta fija de los agentes, Solución cooperativa de problemas distribuidos, y sistemas que se centran en la conducta de los individuos que como resultado, obtenían una conducta del sistema, sistema multiagente. Vista como una sociedad, seria escoger entre un estado que planifica y regula las conductas de los individuos (que serán predecibles) o dejar que el sistema se resuelva por la libre iniciativa de los individuos.

La inteligencia artificial distribuida aparece en la década de los años 1980 como una nueva rama de la inteligencia artificial que tiene el fin de estudiar sistemas inteligentes formados por un conjunto de varios agentes, estos intentan resolver problemas en donde una conducta colectiva es más eficiente que una conducta individual, como lo estudia la inteligencia artificial que hace el análisis de un único agente que se encuentra en un ambiente no cambiante y que intenta resolver todo el problema con solo esta entidad. La dimensión y la complejidad de los nuevos sistemas de información son cada vez mayores, los planes para encontrar una solución global ante cierto problema necesitan integrar soluciones de problemas más pequeños. Lo anterior se asemeja a la idea de “divide y vencerás”, en la cual los planes para resolver subproblemas son más simples y precisos.

Las principales razones de transición de la inteligencia artificial hacia la inteligencia artificial distribuida son: (1) Razones epistemológicas. Las razones epistemológicas surgen principalmente cuando las propuestas para solucionar problemas mediante la inteligencia artificial se muestran insuficientes ante la aparición de otros agentes en el entorno social de agentes que es manejado por la inteligencia artificial y la consideración de que los agentes son inteligentes en gran medida en cuanto sociales. (2) Razones técnicas. La primera razón técnica es que en esta época muchos problemas son esencialmente distribuidos y la segunda es la integración de los sistemas de inteligencia artificial para mejorar la capacidad mediante la distribución del conocimiento lo que conlleva a un manejo descentralizado ofreciendo las siguientes ventajas: (a) Incremento de la flexibilidad. Se permite la adición de nuevos agentes. (b) Mejor seguridad y efectividad. Los agentes se pueden especializar en una tarea específica. (c) Mejor tiempo de respuesta. Los agentes pueden resolver sus problemas particulares al mismo tiempo. (d) Reducción de la complejidad. Una tarea puede ser descompuesta en varias subtareas y ser asignadas a los agentes. (e) Reutilización: La solución presentada por un agente en un sistema puede ser incorporada a otro.

Los problemas básicos que estudia la inteligencia artificial distribuida y que son comunes a todos los sistemas son: (1) Como formular, describir, descomponer y asignar problemas y sintetizar los resultados entre un grupo de agentes inteligentes. (2) Como capacitar a los agentes para que se comuniquen e interactúen, que lenguajes de comunicación o protocolos deben utilizarse, que y cuando deben comunicarse, etc. (3) Como asegurar que los agentes actúen coherentemente al tomar decisiones o realizar acciones, como acomodar los efectos globales de las decisiones locales y prevenir interacciones no deseadas. (4) Como capacitar a los agentes para representar y razonar sobre acciones, planes y conocimientos de otros agentes para coordinarse; como razonar sobre el estado de su proceso de coordinación, en el inicio o la terminación. (5) Como reconocer y reconciliar puntos de vista e intenciones conflictivas entre un conjunto de agentes para coordinar sus acciones; como sintetizar los puntos de vista y los resultados. (6) Como utilizar técnicas ingenieriles y desarrollar sistemas con inteligencia artificial distribuida. Como desarrollar plataformas de sistema multiagente y metodologías de desarrollo con temas de inteligencia artificial distribuida.

Los anteriores problemas básicos que intenta atacar la inteligencia artificial distribuida se solucionan mediante diferentes teorías que se ven reflejadas en distintas áreas de trabajo, las cuales se pueden descomponer en cuatro perspectivas: (1) Perspectiva de grupo. Estudia las teorías y técnicas que caracterizan a un grupo de agentes, es decir los métodos necesarios para formar una sociedad de agentes para que exista cierto grado de planeación, coordinación, comunicación y coherencia entre sus entidades. (2) Perspectiva de agente. Estudia la entidad agente, arquitecturas para desarrollo de agentes, lenguajes para desarrollo y comunicación de agentes, clasificación de tipo comercial y estructural, además como puede este cooperar en la sociedad de agentes. (3) Perspectivas particulares.

Estudia las relaciones existentes de campos de la informática como la inteligencia artificial, ingeniería del software con la inteligencia artificial distribuida. Por ejemplo sistemas de información abiertos que reaccionan a casos imprevistos, por lo que son inconsistentes, asíncronos, concurrentes, con control descentralizado; ecosistemas para evaluar un agente o la sociedad de agentes con base en una analogía ecológica y ver como esta evoluciona con el paso de las iteraciones; ingeniería de software basada en agentes los agentes encapsulan los programas y mediante la definición de unas primitivas, permiten el intercambio de órdenes y datos entre los programas. En este proyecto se utilizaran algunos campos de la inteligencia artificial para relacionarlos con los agentes como: algoritmos genéticos para desarrollar el ecosistema de agentes y la recuperación de información. (4) Perspectivas del diseñador. Estudia metodologías y herramientas para desarrollar software basado en agentes. Las metodologías asisten al desarrollador de sistemas de inteligencia artificial distribuida en el ciclo de vida, y las herramientas le sirven en la implementación de dichos sistemas.

Para conocer más acerca del Doctor Choque y sus publicaciones, haz clic en el siguiente vínculo: