Descargar

Agentes Inteligentes: El siguiente pasó en la inteligencia artificial (página 2)


Partes: 1, 2, 3

En [Iglesias, 98] se define la Inteligencia Artificial Distribuida (IAD) como "aquella parte de la IA que se centra en comportamientos inteligentes colectivos que son producto de la cooperación de diversos agentes". Estos agentes, son las entidades que colaboran.

La descripción de un sistema desde el punto de vista de la IAD, puede hacerse de acuerdo a dos elementos fundamentales [Dem, 90]. El primero se concentra en las componentes fundamentales del sistema como una composición de estos, o sea como la sociedad en que viven nuestros agentes (IAD clásica).

edu.red

Fig. 1 Modelo de casos de uso para el SBC-ED

3. ¿Que es un agente?

edu.red

Figura 2. Visión esquemática de un Agente Inteligente

Varios investigadores y grupos de investigación han definido el término de agente desde diferentes puntos de vista, esto ha influido a que en la actualidad existan diferentes definiciones de lo que es un agente.

La dificultad se debe especialmente a que los agentes se pueden emplear en muchos dominios de aplicación, llevando consigo a que cada dominio asocie varios y diferentes atributos a la definición de agente. Por lo tanto es conveniente dar una corta definición de agente que no involucre las características que debe tener un agente inteligente. Un agente es un sistema que esta en algún ambiente y que es capaz de tomar acciones autónomas de acuerdo al estado del ambiente para cumplir sus objetivos de diseño. Lo anterior no quiere decir que el agente tenga dominio completo del ambiente, por el contrario en la mayoría de situaciones este es muy complejo y el agente solo tendrá un control parcial de este. Así mismo puede suceder que para un estado del ambiente muy similar, dos acciones diferentes tomadas por el agente produzcan efectos heterogéneos en el ambiente.

4. ¿Cómo se caracteriza un agente?

Un agente va a venir caracterizado por una serie de calificativos, los cuales vienen a denotar ciertas propiedades a cumplir por el agente. Esto nos lleva a plantear otra definición bastante aceptada de agente donde se emplean tres calificativos que, según, el autor se consideran básicos. Esta definición ve a un agente como un sistema de computación capaz de actuar de forma autónoma y flexible en un entorno [Wooldridge1995], entendiendo por flexible que sea:

Reactivo, el agente es capaz de responder a cambios en el entorno en que se encuentra situado.

Pro-activo, a su vez el agente debe ser capaz de intentar cumplir sus propios planes u objetivos.

Social, debe de poder comunicarse con otros agentes mediante algún tipo de lenguaje de comunicación de agentes.

Como vemos en este caso, hemos identificado una serie de características o apellidos que de por sí debe tener un agente.

Atendiendo a esta idea, para poder asociar a una herramienta el término «agente» debe ser capaz de cumplir los requerimientos anteriormente expuestos. Actualmente, un pequeño porcentaje del SW de propósito general existente se adapta a dicha definición. Apliquemos estas características a nuestro agente de información de ejemplo: ¿sería reactivo?

Podemos pensar que sí a juzgar por el hecho de que el agente debería reaccionar frente a los mandatos que le indicamos, además debe poder reaccionar frente a posible eventos que le lleguen de la red. ¿Sería pro-activo?, evidentemente que sí, nuestro agente debería autoplantearse su curso de acción para poder realizar todas sus tareas adelantándose a las peticiones de su usuario. Por último debemos pensar si nuestro agente sería social. Esta característica desde nuestro punto de vista no sería básica en una definición general de agente, no obstante, sí que podemos claramente identificar una conducta social en nuestro ejemplo si observamos que debería poder comunicarse con infinidad de recursos en la red y, por qué no, con otros agentes existentes en la misma.

Pero, en definitiva, ¿cuáles son las características básicas y de qué mas características disponemos para poder calificar a un agente?. Revisemos a algunas de las características que en la literatura se suelen atribuir a los agentes en mayor o menor grado para resolver problemas particulares y que han sido descritos por autores tales como Franklin y Graesser [Franklin1996], y Nwana [Nwana1996], éstas son:

Continuidad Temporal: se considera un agente un proceso sin fin, ejecutándose continuamente y desarrollando su función.

Autonomía: un agente es completamente autónomo si es capaz de actuar basándose en su experiencia. El agente es capaz de adaptarse aunque el entorno cambie severamente. Por otra parte, una definición menos estricta de autonomía sería cuando el agente percibe el entorno.

Sociabilidad: este atributo permite a un agente comunicar con otros agentes o incluso con otras entidades.

Racionalidad: el agente siempre realiza «lo correcto» a partir de los datos que percibe del entorno.

Reactividad: un agente actúa como resultado de cambios en su entorno. En este caso, un agente percibe el entorno y esos cambios dirigen el comportamiento del agente.

Pro-actividad: un agente es pro-activo cuando es capaz de controlar sus propios objetivos a pesar de cambios en el entorno.

Adaptatividad: está relacionado con el aprendizaje que un agente es capaz de realizar y si puede cambiar su comportamiento basándose en ese aprendizaje.

Movilidad: capacidad de un agente de trasladarse a través de una red telemática.

Veracidad: asunción de que un agente no comunica información falsa a propósito.

Benevolencia: asunción de que un agente está dispuesto a ayudar a otros agentes si esto no entra en conflicto con sus propios objetivos.

No existe un consenso sobre el grado de importancia de cada una de estas propiedades para un agente. Sin embargo, se puede afirmar que estas propiedades son las que distinguen a los agentes de meros programas. Según hemos visto en la definición de Wooldridge, las características de autonomía, reactividad, pro-actividad y sociabilidad son las caracte-rísticas básicas. Podríamos encontrar otras definiciones donde varían ligeramente las características a aplicar a un agente básico.

edu.red

Figura 3. Navaja suiza de Parunak representando los conceptos que puede integrar un agente

Tal como indica el Dr. H. Van Dyke Parunak en su trabajo [Parunak1999], un agente es como una navaja del ejército suizo en el que se puede ver la definición básica como sólo la navaja y en el que si se necesita algún accesorio más se le añade y, si no se necesita, no hay necesidad de acarrear con todos los accesorios (figura 3).

Entonces:

Un Agente puede definirse como una entidad, semi o completamente autónoma, la cual actúa racionalmente de acuerdo a sus percepciones del exterior y el estado de su conocimiento.

Desde un punto de vista estructural, y de acuerdo a [Ber, 92] , el agente puede dividirse en dos partes principales. La primera está relacionada con el conocimiento que el agente posee acerca del mundo exterior, las habilidades de otros agentes y las suyas propias, así como sus tópicos de interés; el segundo aspecto abarca el procesamiento dinámico que el agente realiza de los mensajes y que definirá su actividad de razonamiento ante problemas e informaciones nuevas. Por esto se basa en un lenguaje de comunicación externo, para interactuar con otros agentes, uno interno, para la comunicación entre sus propias componentes, y un conjunto de métodos que permite el procesamiento de estos mensajes.

5. La sociedad de agentes

Está organizada como una red en la cual los nodos representan dichas entidades, y los enlaces los puentes de intercambio de información entre los mismos. A partir de la organización de los enlaces, el intercambio de información puede hacerse o bien directamente, o bien indirectamente a través de un intermediario.

A partir del control esbozado en el párrafo anterior, se puede decir que existen dos tipos fundamentales de sociedades en la Inteligencia Artificial Distribuida: la centralizada y la descentralizada.

5.1. Sistemas Multi Agente

Los Sistemas MultiAgente se preocupan por coordinar la conducta inteligente de agentes autónomos. Estos agentes hacen parte de una colección y pueden coordinar su conocimiento, objetivos, habilidades y planes juntamente para tomar una acción o resolver una meta global, al igual que los DPS estos pueden tener conocimiento parcial sobre el problema y las soluciones. En estos sistemas debe haber un proceso de racionalización para la coordinación del conjunto de agentes [BOND 1988].

Por lo general en estos sistemas MA los agentes con sus creencias, deseos e intenciones construyen el problema y el plan o secuencia de acciones para solucionarlo.

5.2 Planeación

El proceso de generación de un plan es llamado planeación, como ya se vio los planes en la IA son vistos como una secuencia de acciones de un agente, de tal manera que es capaz de cambiar su entorno y lograr uno o más objetivos.

Las entradas esenciales para un proceso de planeación son: estado inicial del mundo y el conjunto de las posibles acciones, el agente pude cambiar el mundo o ambiente con sus acciones. Una buena planeación solo seria efectiva en entornos altamente predecibles, mientras que en dominios caóticos es poco efectiva, en este caso el agente solo podría reaccionar ante eventos y percepciones.

Los métodos de planeación para DPS y sistemas MA son diferentes, la planeación para múltiples agentes se utiliza en DPS, mientras que los métodos para planeación distribuida se aplican a los sistemas MA.

Como se vera en las siguientes secciones, en los sistemas DPS un plan debe ser resulto por los agentes, mientras que en los sistemas multiagente se debe generar y ejecutar un plan por los agentes

5.2.1 Planeación para múltiples agentes

La planeación para múltiples agentes puede ser considerada como un problema distribuido que los agentes tiene que resolver. Cuando se construye este problema distribuido se tienen que hacer algunas suposiciones de las principales propiedades de sus elementos [LUBO 2002].

Existen dos métodos de colaboración entre agentes cuando se soluciona un problema distribuido, la colaboración esta basada en la repartición de tareas y en compartir resultados.

5.2.3 Repartición de tareas

Se basa en la descomposición y repartición de tareas y la habilidad de los agentes para trabajar en paralelo. El método se basa en la descomposición de subtareas a cargo de un agente cuando este se ve sobrecargado por una tarea, la asignación de las subtareas resultantes se hace a los agentes del sistema que tengan las habilidades que se necesiten para resolverla. Una subtarea puede ser dividida y asignada recursivamente si es necesario. Cuando se termine la subtarea(s) el resultado es devuelto a un agente que crea la solución final del problema, generalmente este agente es el que descompuso el problema, ya que es muy probable que este sepa sintetizar los resultados.

La repartición de tareas se puede hacer en diferentes tipos de sistemas según las capacidades de los agentes:

En sistemas homogéneos la repartición de tareas es sencilla ya que los agentes cuentan con las mismas capacidades. En este caso las subtareas pueden ser asignadas aleatoriamente a los agentes inactivos del sistema.

En sistemas homogéneos la repartición de tareas exige mecanismos más complejos ya que los agentes poseen diferentes habilidades. En este caso cada subtarea debe ser asignada a un gente que tenga las capacidades adecuadas para resolverla, esto conlleva a que el agente que descompone el problema debe guardar información sobre las habilidades de cada uno de los agentes del sistema.

5.2.4 Compartir resultados

Los agentes con capacidades, conocimiento y representaciones del entorno diferentes pueden llegar a diferentes resultados al ejecutar una misma tarea, de esta manera se busca que estos resultados se compartan de forma que los agentes cooperen para encontrar la solución global del problema. Al basarse en las diferentes soluciones de los agentes, se pueden obtener los siguientes beneficios:

Mayor confianza, debido a que si muchos agentes producen la misma solución para un problema determinado, incrementa la probabilidad de que el resultado sea correcto.

Mayor integración, ya que cada agente comparte con otros los resultados de todas las tareas que se han completado, de esta manera el grupo de agentes puede completar la solución global de la tarea.

Mayor Precisión, teniendo una mayor visión sobre el conjunto de tareas, se permite a los agentes refinar cada uno de los resultados.

Mayor Puntualidad, el intercambio de resultados permite a los agentes trabajar en paralelo, minimizando el tiempo gastado en la solución de un mismo problema por muchos agentes.

5.3 Planeación Distribuida

En la planeación distribuida, las tareas y resultados de esta, pueden ser fuente de distribución en un sistema MA, es decir el proceso de planeación es distribuido entre muchos agentes. El resultado de este proceso de planeación (el cual es un plan) se distribuye y es ejecutado por varios agentes, a esto se le conoce con el nombre de plan distribuido.

Los agentes pueden participan en la creación de un plan distribuido, actuar tras un plan distribuido o participar de las dos maneras. A continuación se presentaran técnicas para planeación distribuida.

5.3.1 Planeación centralizada para planes distribuidos

En la planeación centralizada un solo agente debe crear un plan. Este plan tiene que ser distribuido entre los agentes del sistema. El agente que genero el plan o un agente coordinador divide el plan en hilos que pueden ser ejecutados en paralelo. Los hilos son distribuidos entre los agentes utilizando técnicas de asignación de tareas y cada agente actúa sobre el subplan que recibe.

5.3.2 Planeación distribuida para planes centralizados

La planificación distribuida puede existir incluso cuando el plan resultante es ejecutado por un solo agente, la distribución se hace necesaria cuando no hay la suficiente capacidad o conocimiento del agente para hacer el plan y por lo tanto debe buscar cooperación con otros agentes especialistas en planeación.

En este tipo de planeación el problema es descompuesto y distribuido entre los agentes especialistas de planeación usando alguna técnica de repartición de tareas. La coordinación se puede lograr mediante los siguientes métodos: [LUBO 2002]

Intercambio de un plan parcial especializado en el cual un planificador modifica y expande un plan parcial de acuerdo con sus objetivos.

Combinación de resultados en el cual los planificadores generan planes parciales en paralelo e intentan integrarlos para formar un plan general.

5.3.3 Planeación distribuida para planes distribuidos

Es la forma más compleja de planeación distribuida, en este método tanto la planeación como la ejecución de los planes son distribuidos.

En los sistemas MA este es el caso más general de planeación, como cada agente esta generando su plan, puede suceder que los agentes no sean consientes de la conducta de los otros agentes, debido a esto es imposible e innecesario probar un plan multiagente completo que comprenda todas las acciones que tomen los agentes del sistema. La mejor forma para que cada uno de los agentes respete los planes de los otros, es tener una buena cooperación entre ellos. [LUBO 2002]

Un agente puede ser clasificado por su rol o papel en una sociedad de agentes (SMA al que pertenece), por su especialidad o actividad en la que es experto, por sus objetivos o metas en el SMA, por su funcionalidad o lo que es capaz de hacer, por sus creencias, por su capacidad de comunicación y por su capacidad de aprendizaje [Lab93].

6. Agentes Cognitivos y Reactivos

Un AGENTE COGNITIVO es aquel que es capaz de efectuar operaciones complejas, es individualmente inteligente (es un sistema más o menos experto, con capacidad de razonamiento sobre su base de conocimiento), puede comunicarse con los demás agentes y llegar a un acuerdo con todos o algunos de ellos, sobre alguna decisión. Un sistema cognitivo está compuesto por un pequeño número de agentes cognitivos.

Un AGENTE REACTIVO es un agente de bajo nivel, que no dispone de un protocolo ni de un lenguaje de comunicación y cuya única capacidad es responder a estímulos. Los agentes reactivos no son individualmente inteligentes, sino globalmente inteligentes. Los sistemas reactivos por lo general están compuestos por un gran número de agentes reactivos que realizan acciones entre todos, para esto es necesario tener en cuenta nuevas teorías de cooperación y comunicación que permitan el desempeño de estas acciones (Figura 3).

Es posible concebir sistemas heterogéneos cuyo comportamiento se derive de los dos tipos de agentes y tenga características de ambos. Es decir, es posible dotar a los agentes cognitivos de capacidades de reacción a los eventos, a tales agentes se les puede llamar AGENTES HÍBRIDOS. [Lab93].

Sistemas Cognitivos

Sistemas Reactivos

Representación explícita del ambiente

No tiene

Pueden tener conocimiento del pasado

No tienen memoria

Agentes complejos

Funcionamiento estímulo/respuesta

Pocos agentes

Muchos agentes

Figura 4. Clasificación de sistemas de agentes

7. Características de un Agente Cognitivo

Los avances en los trabajos de IAD en SMA permitieron definir las siguientes características [Lab93] : .

A). Intencionalidad: Un agente cognitivo es guiado por sus metas, las cuales describen las situaciones que son deseables para el agente. Una intención es la declaración explícita de sus metas y medios para llegar a ellas, y los planes se pueden definir como secuencia de acciones que lleven a un agente a obtener su meta.

b). Racionalidad: Un agente cognitivo posee criterios de evaluación de acciones y de selección, de tal manera que lo que decida sea en beneficio de él (adquirir más conocimiento, obtener respuestas, etc.). Además, es capaz de justificar sus decisiones.

1. La base de conocimiento es un conjunto de representaciones de hechos del mundo. [Rus et al95]. 2. Globalmente inteligentes: Solo en grupo pueden resolver un problema.

c). Compromiso: Un agente cognitivo cooperativo3 planifica sus acciones por coordinación y negociación con los otros agentes. Los agentes que participan en la coordinación de actividades obran bajo el supuesto de que en condiciones normales, cada uno de los participantes cumplirá con el plan con el que se comprometió.

d). Adaptabilidad: Un agente cognitivo es capaz de controlar sus aptitudes y comportamiento de acuerdo al rol que asuma en un sistema.

e). Inteligente: Un agente cognitivo es inteligente si es racional, intencional y adaptable. Un agente inteligente debe ser capaz de operar exitosamente en varios ambientes, si se toma el suficiente tiempo para adaptarse [Rus et al95].

8. Arquitectura de un Agente Cognitivo

La estructura interna de un agente cognitivo se puede clasificar de manera general así:

edu.red

Figura 5. Arquitectura de un agente cognitivo.

8.1 Funcionalidad

Es el conjunto de funciones o tareas que el agente sabe hacer y que los demás agentes pueden conocer que él hace [Lab93]. Dentro de estas funciones pueden estar las funciones de comunicación con otros agentes, de selección de agentes para una tarea específica, de obtener información del sistema, de información del estado interno del agente, etc.

8.2 Creencias

Son el conocimiento subjetivo o conjunto de opiniones que el agente tiene de él mismo y de los demás agentes [Lab93]. Puede comenzar como una opinión o conocimiento inicial y cambiar con las acciones y desempeño de cada uno de los agentes, incluido él mismo, cuando el sistema esté en funcionamiento.

8.3 Conocimiento

Es el conocimiento que cada agente tiene y que usa para la resolución de un problema [Lab93], es decir, es la representación de lo que sabe y del conocimiento que ha adquirido en experiencias pasadas y que le sirve para hallar soluciones o seleccionar acciones a seguir en cualquier momento. El conocimiento le permite al agente entender el mundo, lo que los demás agentes tratan de decirle y sus razonamientos internos y explicar sus ideas y decisiones a los demás agentes.Hay tres clases de conocimiento importantes a tener en cuenta:

8.3.1 Conocimiento Inicial:

Es el conocimiento propio o básico del agente una vez éste existe, y no puede cambiar con el tiempo. [Sin93]

8.3.1.1 Know-That: Es el conocimiento de hechos o saber qué hacer ante un problema o un conjunto de acciones [Sin93]. Este tipo de conocimiento puede cambiar con el tiempo y la experiencia adquirida por el agente.

8.3.1.2 Know-How: Es el conocimiento de cómo actuar o cómo hacer las cosas. Es decir, es la habilidad para ejecutar acciones convenientes (dependiendo de la solución del problema) en un mundo cambiante. Más concretamente se puede definir como la habilidad o potencial de un agente para tomar una acción efectiva, y las destrezas que él demuestra cuando hace cosas que le atribuyen inteligencia. Al igual que el Know-That este tipo de conocimiento puede cambiar con el tiempo y la experiencia adquirida por el agente.

Se puede decir que:"Un agente conoce cómo alcanzar p al realizar la acción a, si el agente tiene el know-that que le indica que ejecutar a lo lleva a alcanzar p". Además, "Un agente conoce cómo ejecutar a, si el agente tiene el know-how que le indica cómo ejecutar a". [Sin93]

8.4 Control El control en un agente está representado por la estructura local de metas que el agente tiene. Para un manejo más efectivo de estas estructuras se adicionan los conceptos de intenciones, planes y acciones que el agente tiene.

3. Un agente es llamado cooperativo, si pertenece a un sistema de agentes que resuelve tareas de manera cooperativa.

8.4.1 Metas: Las metas, son el conjunto de estados deseables en el ambiente en el que se desenvuelve un agente. Un agente puede decidir alcanzar o no cada una de tales metas de acuerdo a las ventajas que esta represente. En un SMA hay una meta global o principal que debe ser alcanzada con la colaboración de todos los agentes del sistema. Esta meta global puede ser dividida en submetas, las cuales son asignadas como metas a los agentes del sistema, de acuerdo a alguna política organizacional. Los planes que desarrolle cada agente para alcanzar estas submetas, pueden ser combinados para alcanzar la meta global. Es decir, los planes que desarrolle un agente para alcanzar sus metas, contribuirán a alcanzar las metas globales del sistema. [Eph et al95]

8.4.2 Plan: Es un conjunto de estrategias para resolver un problema o alcanzar una meta [Sin93]. Como se dijo en la descripción de Metas, la meta global puede ser dividida en submetas, las cuales son asignadas como metas a los agentes del sistema. Los planes que desarrolla cada agente para alcanzar su propia meta, pueden ser combinados para desarrollar un plan global que sirve para alcanzar la meta global [Eph et al95]. Se puede decir que: "Un agente sabe cómo alcanzar a p sólo si él conoce que algún plan P contempla a p, y él es capaz de ejecutarlo." [Sin93]

Los planes son una de las plataformas para el desarrollo de mecanismos de coordinación, porque describen a alto nivel el comportamiento de los agentes y por ello posibilitan la predicción de las acciones de un agente. Esta predicción permite que un agente actúe de manera coherente con las acciones de los demás agentes.

8.4.3 Estrategias: Una estrategia es la descripción de las acciones de los agentes a un nivel grueso de detalle, corresponden a abstracciones de los posibles comportamientos de los agentes y hacen más simple entender, especificar e implementar agentes inteligentes.

Las estrategias no adicionan habilidades a los agentes, simplemente ayudan a diseñar, analizar y organizar mejor las destrezas que los agentes ya poseen. Se puede usar las estrategias para describir agentes que no tienen un plan específico, es decir, que no representan ni describen simbólicamente el conjunto de acciones a seguir; por lo tanto puede haber estrategias que no correspondan a un plan.

8.4.4Intenciones: Una intención se puede definir como el objetivo concreto o el fin que se pretende alcanzar al realizar una o varias acciones, este objetivo se puede describir con proposiciones lógicas. Las metas adoptadas por un agente son las intenciones (Las metas que un agente decide alcanzar). Se puede decir que las intenciones son la causa de las acciones de un agente. Por otro lado, un agente realiza acciones tratando de seguir sus estrategias (Figura 5).

Estudiar las intenciones es importante, porque de ellas se deriva la capacidad con la cual los agentes pueden usar conceptos para predecir y explicar el comportamiento de otros agentes, además, son muy útiles porque son abstracciones de los estados y comportamiento de los agentes.

Cuando un agente tiene varias intenciones, éstas tienen que ser mutuamente consistentes o por lo menos intentar que así lo sean, y también deben ser consistentes con el conocimiento y las experiencias adquiridas en el pasado. Si un agente cree algo (p) o lo conoce por experiencia del pasado, intentará hacerlo; pero si por el contrario no cree en él o sabe que algo no es así (-p), no lo intentará. Las intenciones de dos o más agentes pueden no ser mutuamente consistentes, ya que pueden estar compitiendo por algún recurso.Una intención puede ser confundida con hacer algo intencionalmente, sin embargo, una intención es querer hacer algo y hacer intencionalmente se refiere a las acciones y estados que un agente realiza a propósito. Un agente puede adoptar y modificar sus intenciones basándose en su conocimiento. No se puede garantizar el éxito de las intenciones de un agente si él no tiene el know-how para alcanzarlas. Por el contrario, si un agente tiene la intención de hacer algo y tiene el knowhow para hacerlo, entonces lo hará exitosamente. [Sin93]

edu.red

Figura 6. Relación entre estrategias, metas, intenciones y acciones.

9. ComunicacionesLos agentes cognitivos cuentan con mecanismos de comunicación que les permiten interactuar con los otros agentes para la resolución cooperativa de problemas, para la coordinación o sincronización de acciones, para resolver conflictos con recursos, para participar en una negociación, o simplemente para enviar información [Lab93]. Uno de los mecanismos de comunicación entre agentes en SMA es el paso de mensajes, estos mensajes han sido estudiados ampliamente bajo la perspectiva de la teoría de actos de habla [Flo82] con muy buenos resultados. La comunicación establecida por dos o más agentes puede ser vista desde varios puntos de vista, algunos de ellos son explicados a continuación: procesos que componen el episodio de comunicación, protocolos utilizados en la comunicación, arquitecturas de comunicación y tipos de comunicación.Un episodio típico de comunicación entre cualquier par de entidades está compuesto por siete procesos, de ellos tres son realizados por la entidad emisora E y cuatro por la entidad receptora R.

a). Intención: E decide que hay algo que quiere comunicarle a R.

b). Generación: E escoge las palabras que expresan el significado de la proposición p (contenido del mensaje) que quiere comunicar.

c). Síntesis: Cuando E expresa las palabras.

d). Percepción: R percibe las palabras, aunque estas pueden no ser las mismas que el emisor expresó (las palabras pueden ser alteradas por el medio). En este paso se puede decir que hubo el "reconocimiento del acto".

e). Análisis: R infiere los posibles significados de lo que escuchó, este paso se divide en dos partes: la interpretación sintáctica y la interpretación semántica. La segunda parte requiere no sólo comprensión del significado de las palabras, sino también incorporar conocimiento o interpretación pragmática.

f). Escoger un significado: Algunas expresiones pueden tener varias interpretaciones, pero R se toma el trabajo de escoger cuál es la interpretación que E quería transmitir. Este proceso depende del razonamiento de R, en la que puede tener en cuenta muchos factores como: la probabilidad de que un hecho ocurra en el mundo, la probabilidad de que una secuencia particular de palabras sea generada por E, etc.

g). Incorporación: el receptor puede creer todo lo que escucha (ingenuo) o puede tomar la decisión de creer o no y además generar proposiciones adicionales [Rus et al95] .

Muchas de las características y propiedades de la comunicación entre agentes, en especial los protocolos, dependen de los pasos mencionados anteriormente. Los protocolos de comunicación entre agentes en SMA, son las reglas que debe seguir un agente para comunicarse con los demás de manera coherente. Los protocolos permiten estructurar de manera estándar las interacciones y tienen la ventaja de llevar a un diseño modular de los agentes, porque permiten separar el diseño interno del diseño de la interfaz de comunicación.El protocolo de interacción de un grupo de agentes se construye a partir de las posibilidades de respuesta de un agente a cada uno de los mensajes que recibe. En este documento se propone manejar estas posibilidades basándose en "La teoría de actos de habla" o "Speech Acts".La teoría de actos de habla ha sido muy estudiada en filosofía, antropología, lingüística. etc. y constituye un fundamento teórico de la comunicación. Su interés radica en la uniformidad de mecanismos que propone integrando información de las disciplinas que la estudian. Un acto de habla puede estar clasificado dentro de las siguientes tres categorías:

i). Actos de Emisión: Corresponden a la acción física de emitir (formular y articular) un enunciado.

ii). Actos Ilocucionarios : Corresponden a enunciados que llevan una intención, es decir, cuando un emisor transmite un mensaje con alguna intención (preguntar, afirmar, solicitar, etc.) y su contenido correspondiente; y este mensaje es comprendido por el receptor u oyente.

iii). Actos Perlocucionarios : O acciones que ocurren como resultado de los actos ilocucionarios o de emisión de manera indirecta o directa [Sin93, Lab93].

Los actos que más interesan en el marco de SMA son los ilocucionarios. La razón es que tienen dos aplicaciones importantes en SMA : la primera es que el lenguaje usado en un SMA para la comunicación debe permitir diferentes tipos de mensajes, los cuales son asociados con los diferentes tipos de actos de habla y la segunda es la intención de utilizar las teorías lingüísticas de la semántica de actos de habla para aplicarlas a la descripción de las interacciones entre agentes. Además, la semántica de actos de habla permite establecer las condiciones en las que el acto es exitoso o satisfecho, asignar un operador para cada tipo de mensaje con el cual se pueda distinguir de los demás tipos, etc. [Sin93].Algunos actos de habla ilocucionarios son [Her95]:

i). Afirmar: Un agente está afirmando algo. El acto es satisfecho si el contenido del mensaje es verdad en el momento en que es emitido.

ii). Ordenar: Un agente está ordenando algo a otro u otros agentes. El acto es satisfecho sólo si se cumple la orden más tarde.

iii). Consultar: Un agente consulta algo a otro u otros agentes agente. El acto es satisfecho si el agente recibe la consulta más tarde.

iv). Responder: Un agente responde algo a otro u otros agentes. El acto es satisfecho si el agente oyente recibe la respuesta del agente emisor.

v). Prometer: Un agente promete algo. El acto es satisfecho si el agente cumple la promesa más tarde.

vi).Preguntar: Un agente pregunta algo. El acto es satisfecho si el o los agentes oyentes reciben la pregunta.

Se pueden definir gran cantidad de actos de habla, dependiendo del contexto en el que van a ser manejados [Flo82,Sin 93, Her95].Otro de los puntos de vista desde el que se puede observar un episodio de comunicación entre dos agentes es la arquitectura, ella es determinada por la topología lógica de comunicación entre los agentes. Algunas de las arquitecturas básicas son:

i). Distribuida en anillo: son agentes forman un anillo lógico, por medio del cual intercambian mensajes.

ii). Centralizada en estrella : n agentes forman una estrella lógica por medio de la cual se comunican; uno de los agentes, que puede ser llamado supervisor, es el que está situado lógicamente en el nodo de la estrella, esto significa que es el que recibe y reenvía los mensajes.

iii).Todos con todos: cada agente tiene comunicación lógica directa con todos los demás agentes del sistema.

iv). Híbridas: Estas arquitecturas presentan combinaciones de varias arquitecturas como la de anillo o la de estrella [Lab93].

La mayoría de los SMA tienen una arquitectura híbrida de comunicación, ya que a veces se puede necesitar que el mensaje llegue a un solo agente y a través de él comunicárselo a los demás, o que todos los agentes se comuniquen con todos directamente. El último de los puntos de vista considerado en este documento y desde el cual se puede observar un episodio de comunicación entre agentes es el relacionado con tipos de comunicación establecida. Un agente puede contar con funciones de selección que indiquen los agentes a los que se debe enviar un mensaje. A continuación se describen brevemente algunos tipos de comunicación.

9.1 Comunicación selectiva o difusa: En la comunicación selectiva, los agentes destino de los mensajes son escogidos por medio de alguna función de selección; en la comunicación difusa o "broadcast", por el contrario, el mensaje es enviado a todos los agentes.

9.2 Comunicación con o sin espera de confirmación: Se dice que existe comunicación con espera de confirmación, si el agente emisor espera un mensaje de "acknowledge" de recepción por parte del agente receptor. Si el agente emisor no espera dicho mensaje de acknowledge, se dice que existe comunicación sin espera de confirmación.

9.3 Comunicación de transmisión simple o con retransmisión : En la comunicación de transmisión simple, el emisor transmite sólo una vez un mensaje, en la comunicación con retransmisión, el emisor retransmite varias veces un mensaje [Lab93] .

En un SMA, cada uno de los agentes debe seleccionar el tipo de comunicación que establecerá de acuerdo a las características del mensaje que comunicará y a las características del grupo de agentes a los que enviará tal mensaje. Por ejemplo, si se desea comunicar un mensaje de gran importancia, se debería establecer una comunicación con espera de confirmación, de esta manera se garantizaría la recepción de tal mensaje.

En la figura 4 se indica el esquema gráfico del funcionamiento de un agente, integrando los aspectos que acaban de ser descritos. Una vez decididas las metas locales, algunas de ellas son adoptadas por el agente como intenciones y a partir de ellas, cada agente realiza la planificación. Es decir, cada agente crea su propio plan de actividades [Lab93, Sin93]. Luego de tener el plan de acción, un agente ejecuta cada una de las acciones que componen tal plan, de acuerdo con su experiencia y conocimiento. Claro que este plan de actividades puede cambiar porque se obtiene nueva información del ambiente.

edu.red

Figura 7. Esquema del funcionamiento de un agente.

10. Arquitecturas para agentes inteligentes

Una arquitectura permite descomponer un sistema computacional en componentes más pequeños y determinar como es la relación entres estos. Una arquitectura para agentes en particular permite descomponer un sistema de agentes, y determinar como deben interactuar entre ellos y con el ambiente.

Se distinguen tres arquitecturas diferentes que se clasifican según el modelo de razonamiento que utilizan.

10.1 Arquitecturas deliberativas

Una arquitectura deliberativa es aquella en la que el comportamiento y conocimiento de los agentes están explícitamente representados mediante un modelo simbólico. El modelo simbólico consta generalmente de un conjunto de símbolos físicos, es decir un conjunto físicamente realizable de entidades y estructuras. Además de esto en la arquitectura deliberativa las decisiones de los agentes son hechas mediante razonamiento lógico o seudo lógico.

Para construir una arquitectura deliberativa se deben solucionar los siguientes dos problemas.

. Trasladar el mundo real a una acertada y suficiente descripción simbólica.

. La forma en la que se representará simbólicamente la información de las entidades y procesos complejos del mundo real, y la manera de conseguir que los agentes razonen con esta información.

Un ejemplo de agentes que se pueden desarrollar con la arquitectura deliberativa, son los agentes intencionales en los cuales se define una planificación teniendo en cuenta sus creencias y deseos. La arquitectura BDI es una de las arquitecturas más utilizada en nuestros días, en ella se definen los deseos, creencia e intenciones de los agentes [CORC 1999].

10.2 Arquitecturas reactivas

Una arquitectura reactiva es aquella que no incluye alguna clase central de modelo simbólico del mundo y no usa un razonamiento simbólico complejo. Las acciones que toman sus entidades se basan en una asignación de lectura del medio ambiente con una operación a efectuar. Esta clase de arquitectura también es llamada alternativa, ya que surgió como una opción a las arquitecturas deliberativas que presentan problemas que en ocasiones no se pueden solucionar y además se aleja de la representación del conocimiento mediante un modelo simbólico.

10.3 Arquitecturas Híbridas

Los investigadores sugieren que ninguna de las dos arquitecturas vistas anteriormente es del todo apropiada para la construcción de agentes, por eso se plantean soluciones de arquitecturas híbridas en la cual se integran los dos métodos (deliberativa y reactiva).

Una propuesta de tal arquitectura es la construcción en base a dos subsistemas: uno deliberativo en el cual los planes desarrollados y las decisiones hechas sean planteadas por un conjunto de símbolos y uno reactivo el cual tenga la capacidad de reaccionar ante eventos del entorno sin emplear razonamiento complejo. Esta clase de metodología se puede desarrollar en capas en la que una o más capas pueden tener acceso a los datos suministrados por el entorno y una o más capas pueden efectuar acciones en el entorno. A continuación se presentan dos clases en la que esta propuesta de arquitectura híbrida se puede desarrollar.

. Horizontal: Todas las capas tienen acceso a los datos del entorno y a realizar acciones en el entorno.

. Vertical: Una capa tiene accesos a los datos del entorno y a realizar acciones en el entorno.

En este caso de arquitectura en capas, el correcto comportamiento del agente viene dado por la interacción entre los diferentes niveles y en el nivel de información de cada capa.

11. Estructura de un Agente

Agente = Arquitectura + Programa

Podemos describir agentes en términos de sus percepciones, acciones, metas y ambiente.

No importa tanto si es ambiente “real'' o “artificial'' (e.g., softbots) sino la interacción entre percepción, comportamiento, ambiente y metas.

El usar una tabla acciones – secuencia de percepciones en general no es adecuada por:

Requiere tablas muy grandes mucho tiempo para construir la tabla no hay autonomía, por lo que si cambia el ambiente el agente deja de saber que hacer aunque se le de aprendizaje, necesitaría mucho tiempo para aprender todas las entradas de la tabla

Para construir un mapeo entre percepciones y acciones podemos pensar en varios tipos de agentes.

Agentes de reflejos simples: construir una tabla es imposible, pero podemos considerar algunas asociaciones comunes en términos de reglas situación-acción. e.g.,

IF el coche de enfrente esta frenando

THEN empieza a frenar

Agentes de reflejos simples y estado interno. Esto es muy simple, y normalmente se necesita un estado interno para (i) ver como cambia el ambiente independientemente del agente y (ii) como afectan las acciones del agente al ambiente.

Agentes con información de metas. El agente necesita información de sus metas para escoger que acciones las pueden cumplir (pueden usarse técnicas de búsqueda y planificación).

Esto lo puede hacer más flexible (e.g., si está lloviendo ajustar la efectividad de los frenos).

Agentes con medida de utilidad. Las metas por si solas no son suficientes para generar un comportamiento de buena calidad. Para esto necesitamos una medida de utilidad (función que mapea un estado o secuencia de estados con un número real).

Agentes con aprendizaje. La idea es que las percepciones no se usen solo para actuar, sino también para mejorar su desempeño en el futuro.

12. Clasificación de los agentes inteligentes

. Movilidad.

. Arquitectura de construcción

. Atributos principales

. Roles

. Híbridos y Heterogéneos

12.1 Clases de agentes inteligentes

12.1.1 Agentes colaborativos

Este tipo de agentes se enfatiza en la autonomía y las habilidades sociales con otros agentes para ejecutar las tareas de sus usuarios. La coordinación de los agentes se logra mediante la negociación para alcanzar acuerdos que sean aceptables para los agentes negociantes.

Los agentes colaborativos son capaces de actuar racionalmente y autónomamente en ambientes multiagente y con restricciones de recursos. Otras características de estos agentes es que poseen habilidades sociales, son proactivos, benévolos, estáticos y veraces.

Los agentes colaborativos se pueden utilizar es la solución de algunos de los siguientes problemas:

. Para resolver problemas que son muy grandes para un agente centralizado.

. Para permitir la interconexión e interoperabilidad de sistemas de IA existentes como sistemas expertos, sistemas de soporte de decisión etc.

. Solucionar problemas que son inherentemente distribuidos.

. Proporcionar soluciones que simulen recursos de información distribuidos.

. Incrementar la modularidad, velocidad, confiabilidad, flexibilidad y reutilización en sistemas de información.

12.1.2 Agentes de Interfase

Los agentes de interfaz se enfatizan en la autonomía y la adaptabilidad para realizar tareas a sus usuarios. Este tipo de agentes básicamente presta soporte y asistencia a un usuario que esta aprendiendo una nueva aplicación o nuevos conceptos.

El agente puede aprender mediante alguna de las siguientes cuatro técnicas, observando y monitoreando la interfaz:

1. Por observación e imitación del usuario.

2. A través de una retroalimentación positiva o negativa del usuario.

3. Recibiendo instrucciones explicitas del usuario.

4. Asesorándose de otros agentes.

De esta manera el agente puede actuar como un asistente personal y autónomo del usuario, cooperando con él para terminar una cierta tarea.

12.1.3 Agentes móviles

Estos agentes se enfatizan en las habilidades sociales y la autonomía, a diferencia de los agentes cooperativos, estos son móviles.

Los agentes móviles son procesos de software que son capaces de transitar por una red, generalmente una WAN, interactuando con computadores alejados, reuniendo información para el usuario y volviendo a su origen cuando las tareas fijadas por el usuario se hayan completado. Las tareas que se pueden realizar son por ejemplo reservaciones de vuelos, manejo de una red de telecomunicaciones entre otras.

Los agentes móviles traen con si grandes beneficios aunque no son funcionales, esto quiere decir que una tarea que realiza un agente móvil puede ser realizada por un agente colaborativo, la diferencia radica en que para movilizar el agente se requiere de un costo muy alto de recursos.

Algunas de las ventajas que se pueden obtener al usar agentes móviles son:

. Reducen el costo de comunicación, por ejemplo cuando en una ubicación hay un gran volumen de información que necesita ser examinada y transmitida, esto ocuparía una gran cantidad de recursos en la red y consumiría mucho tiempo. En este caso el agente móvil puede determinar la información relevante al usuario y transmitir un resumen comprimido de esta información.

. Facilitar la coordinación, es más sencillo coordinar un cierto número de requerimientos remotos e independientes al comparar solo los resultados localmente.

. Reduce los recursos locales, los agentes móviles pueden ejecutar sus tareas en computadores diferentes del local, de tal manera que no consuman recursos de procesamiento, memoria y almacenamiento en estos.

. Computación asíncrona, mientras que un agente móvil realiza su tarea el usuario puede ir realizando otra, de tal manera que después de un tiempo el resultado del agente móvil sea enviado al usuario.

12.1.4 Agentes de información

Los agentes de información nacieron debido a la gran cantidad de herramientas que surgieron para el manejo y recuperación de información. Los agentes de información tienen los roles de manejar, manipular, e integrar información de muchas fuentes de datos distribuidas.

La hipótesis fundamental de los agentes de información es que puedan mejorar de algún modo, pero no completamente el problema de la sobrecarga de información y en general el manejo de esta.

13. SISTEMAS MULTI-AGENTE

Un SMA está constituido por un conjunto de entidades inteligentes llamadas agentes que coordinan sus habilidades para la resolución de problemas individuales o globales. Estos sistemas considerados como un todo, exhiben características particulares, que se presentan a continuación.

13.1 Organización Social

Es la manera como el grupo de agentes está constituido en un instante dado. La organización social está relacionada con la estructura de los componentes funcionales del sistema, sus características, sus responsabilidades, sus necesidades y la manera como realizan sus comunicaciones. Esta organización puede ser estática o dinámica, dependiendo de las unciones o tareas de cada agente. Se puede considerar que una sociedad de agentes está constituida por tres elementos:

Un grupo de agentes.

Un conjunto de tareas a realizar.

Un conjunto de recursos.

La realización de las tareas por parte de los agentes, puede ser organizada de varias formas, por ejemplo: cada agente ejecuta una de las tareas, o bien, las tareas son divididas en subtareas, por medio de algún mecanismo de descomposición de problemas y estas subtareas son las realizadas por los agentes. Las tareas que debe realizar un agente dependen, entre otros factores, del rol que este agente asume en el sistema. Por ejemplo, en un sistema oficina, un agente persona asume el rol de secretaria y realiza las labores relacionadas con ese rol; este mismo agente podría asumir el rol de jefe y realizaría labores muy diferentes, relacionadas con su nuevo rol. Para la realización de tareas un agente puede necesitar recursos del sistema, en este caso tiene que coordinarse con los otros agentes del sistema que deseen usar el mismo recurso.La organización en los SMA depende del tipo de comunicación y el modo de cooperación entre agentes, así como del tipo de agentes que conforman el grupo. En general se pueden distinguir tres tipos de configuraciones organizacionales:

a). Estructura Centralizada: En este tipo de configuración existe un agente que controla la interacción de los demás agentes del sistema, porque tiene la información o la funcionalidad para hacerlo.

b). Estructura Horizontal: Este tipo de configuración existe cuando todos los agentes que integran un sistema están al mismo nivel, es decir, no hay ningún agente que haga las veces de maestro o supervisor, ni tampoco agentes esclavos.

c). Estructura Jerárquica: Esta configuración existe cuando los agentes trabajan diferentes niveles de abstracción de un problema, es decir, la configuración es de niveles. En un mismo nivel se establece una configuración horizontal, si hay más de un agente. Para resolver un problema cada agente divide el problema en subproblemas que él puede resolver, subproblemas que puede resolver con la cooperación de los agentes que están al mismo nivel y subproblemas que sabe que los agentes de niveles inferiores de la jerarquía pueden resolver.

d). Estructura "ad hoc" : Esta configuración puede ser una mezcla de las tres anteriores, se caracteriza porque la dinamicidad de la estructura está regida por el ajuste mutuo entre los pequeños grupos de agentes en el sistema.

Escoger una u otra estructura de organización depende de las funciones que deben cumplir los agentes del sistema, de las características de ellos y de qué tan complejo se quiere el sistema [Lab93].

13.2 Cooperación

En un SMA existen dos tipos de tareas que deben ser realizadas: las tareas locales y las tareas globales. Las tareas locales son las tareas relacionadas con los intereses individuales de cada agente y las tareas globales son las tareas relacionadas con los intereses globales del sistema. Estas tareas globales son descompuestas y cada subtarea es realizada por un agente, de acuerdo a sus habilidades y bajo el supuesto de que la integración de la solución de las subtareas, llevará a la solución global. La descomposición de la tarea global no necesariamente garantiza la independencia de cada una de las subtareas, por ello se necesitan mecanismos de cooperación que permitan compartir resultados intermedios que lleven al progreso en la resolución de las tareas de otros agentes y al progreso de la solución global que debe alcanzar el sistema.Para que los agentes puedan cooperar de manera eficiente, cada uno de ellos debe tener ciertas características:

Tener un modelo bien definido del mundo, que le permite localizar a los demás agentes, saber cómo comunicarse con ellos, qué tareas pueden realizar, etc.

Poder integrar información de otros agentes con la suya, para formar conceptos globales o conocimiento conformado por varios agentes.

Poder interrumpir un plan que se este llevando a cabo para ayudar o atender a otros agentes para que puedan cooperar entre sí cuando los agentes lo necesiten.

La cooperación depende mucho de la configuración organizacional del grupo de agentes. Si la estructura es centralizada los agentes dependientes piden colaboración casi que permanente al agente maestro, si la estructura es jerárquica, la cooperación puede hacerse por niveles (en un mismo nivel) o de niveles superiores a niveles inferiores y si la estructura es horizontal la cooperación se hace entre todos los agentes. Existen varios modelos de cooperación, dentro de los cuales se pueden mencionar:

a). Cooperación compartiendo tareas y resultados: Los agentes tienen en cuenta las tareas y los resultados intermedios de los demás para realizar las tareas propias.

b). Cooperación por delegación: Un agente supervisor o maestro descompone una tarea en subtareas y las distribuye entre los agentes esclavos, para que sean resueltas. Después, el supervisor integra las soluciones para hallar la solución al problema inicial.

c). Cooperación por ofrecimiento: Un agente maestro descompone una tarea en subtareas y las difunde en una lista a la que tienen acceso los agentes que integran el sistema, esperando que ellos ofrezcan su colaboración de acuerdo a sus habilidades. El supervisor escoge entre los ofrecimientos y distribuye las subtareas [Lab93] .

13.3 Coordinación

La coordinación entre un grupo de agentes les permite considerar todas las tareas a realizar y coordinarlas para no ejecutar acciones no deseables, por ejemplo:

Los agentes no generen y comuniquen subsoluciones que lleven al progreso en la solución de un problema.

Los agentes generen y comuniquen resultados redundantes.

Distribución inapropiada de la carga de trabajo entre los agentes.

Esta coordinación está relacionada con la planificación de acciones para la resolución de tareas, porque estos planes permiten:

Conocer a alto nivel y predecir el comportamiento de otros agentes del sistema.

Intercambiar resultados intermedios que lleven al progreso en la solución a la tarea global.

Evitar acciones redundantes, si ellas no son deseables.

Hay varios modelos de coordinación de acciones entre agentes, pero dos principales (que se mencionan a continuación) y gran cantidad de modelos intermedios.

a). Coordinación Global: Cuando el SMA determina y planifica globalmente las acciones de los diferentes agentes.

b). Coordinación Individual: Cuando el SMA le da completa autonomía a los agentes, es decir, cada agente decide qué hacer y resuelve localmente los conflictos que detecte con otros agentes.

Partes: 1, 2, 3
 Página anterior Volver al principio del trabajoPágina siguiente