jueves, 30 de julio de 2009

AGENTES INTELIGENTES: EL SIGUIENTE PASO EN LA INTELIGENCIA ARTIFICIAL

Univ. Gerardo Valdez Balcazar

bravocacha@hotmail.com

http://bravokcha.blogspot.com

Monografía realizada para la materia de: Metodología de la Investigación

Doc.: Guillermo Choque Aspiazu PHD

1. Introducción

La Inteligencia Artificial IA, se esta considerando como una de las disciplinas más nuevas, siendo curiosamente considerada a la vez como una gran ciencia desconocida y una de las que más interés despierta. Esto es debido a que poca gente tiene claro qué es la IA, pero sin embargo es considerada por una gran mayoría de científicos como la disciplina donde han pensado alguna vez en trabajar. Pero, ¿qué es realmente la IA? Existen gran variedad de definiciones respecto a lo que es la IA, algunas más válidas que otras, pero podríamos intentar resumirlas comentando que la IA trata de «desarrollar sistemas que piensen y actúen racionalmente».


En los últimos años la IA ha ido evolucionando, quizás con mayor celeridad que otras disciplinas, motivada probablemente por su propia inmadurez. Todo esto ha llevado a que la IA actualmente abarque una gran cantidad de áreas, desde algunas muy generales como razonamiento, búsqueda, etc. a otras más específicas como los sistemas expertos, sistemas de diagnóstico, etc. Podríamos indicar, sin lugar a dudas, que la IA puede ser aplicada hoy en día a infinidad de disciplinas científicas y es que la IA es susceptible de aparecer allí donde se requiera el intelecto humano. En este aspecto cada nueva incursión de la IA en un campo diferente supone el empleo de una metodología de aplicación propia del investigador que lo intenta pues a diferencia de otras disciplinas, no existen ciertos estándares o criterios consensuados que unifiquen el proceso de aproximación de la IA a otras áreas y, en consecuencia, a problemas reales. La aparición de una metodología común a la hora de abordar la aplicabilidad de la IA puede resultar un elemento muy positivo en la corta vida de esta disciplina.


Actualmente en la IA ha surgido un nuevo paradigma conocido como «paradigma de agentes», el cual está tomando un gran auge entre los investigadores. Dicho nuevo paradigma aborda el desarrollo de entidades que puedan actuar de forma autónoma y razonada. Si retomamos la definición dada anteriormente donde se consideraba a la IA como un medio para el desarrollo de sistemas que piense y actúen racionalmente, podemos pensar que la IA, en su conjunto, trata realmente de construir precisamente dichas entidades autónomas e inteligentes.

De acuerdo con esta visión, se puede considerar a la IA como una disciplina orientada a la construcción de agentes inteligentes donde se integran las diferentes áreas que ésta comprende. Desde hace relativamente poco tiempo esta idea está siendo ya adoptada por investigadores en la materia; el propio Stuart Russell ha remodelado su conocido libro Inteligencia Artificial, un enfoque moderno [Russell1996] para dar un enfoque de la IA orientado totalmente al desarrollo de agentes. Es importante resaltar que en el momento en que se disponga de una metodología clara para la construcción de dichos agentes inteligentes, la aplicabilidad de las técnicas de IA a cualquier tipo de problema podrá abordarse de una manera más clara y unificada.


De momento, se puede asegurar que, hoy en día, existe una idea generalizada dentro de la IA de que nos encontramos ante el nacimiento de una nueva tecnología, la de agentes inteligentes, que permite abordar de una manera más apropiada la construcción de sistemas inteligentes más complejos aplicados a muy diversos campos. Veamos en los siguientes puntos del artículo una descripción más detallada de lo que es y lo que promete esta nueva tecnología hacia la que está orientada actualmente la IA.


2. Inteligencia artificial distribuida


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).



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

3. ¿Que es un agente?

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.


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].


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í:


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]



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


9. Comunicaciones
Los 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.




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.


Además de los modelos existen dos tipos de coordinación :


c). Coordinación orientada por los problemas: En este tipo de coordinación, los agentes deben coordinar los planes de realización de acciones para prevenir interbloqueos, repetición de acciones y creación de inconsistencias.


d). Coordinación orientada por la cooperación: En este tipo de coordinación los agentes no se coordinan a nivel de planes, sino a nivel de acciones. Esto significa que los agentes se coordinan en el momento de ejecutar acciones [Lab93].


13.4 Negociación


Para que los mecanismos de cooperación y coordinación sean exitosos en un sistema de agentes que actúan interdependientemente, debe existir un mecanismo adicional, por medio del cual, los integrantes de un sistema se puedan poner de acuerdo cuando cada agente defiende sus propios intereses, llevándolos a una situación que los beneficie a todos teniendo en cuenta el punto de vista de cada uno. Este mecanismo es llamado negociación [Her95, Lab93].

Los procesos de negociación tienen como resultado la modificación o confirmación de las creencias de cada agente involucrado, en lo relacionado con los demás agentes y con el mundo en el que se desenvuelve.

La negociación se puede mirar bajo una perspectiva racional, la cual describe la negociación como un proceso de seis pasos [Her95]:


Definir el problema.

Identificar aspectos.

Ponderar criterios.

Generar alternativas.

Evaluar alternativas.

Formular solución.

En los SMA la mayoría de las veces el problema está bien definido, es decir, el primer paso no es relevante. Los demás pasos se pueden o no seguir, dependiendo del problema para el cual un grupo de agentes busca una solución [Nea et al 92].

Los mecanismos de negociación utilizan diferentes reglas en lo relacionado con la distribución de recursos del sistema [Alb92,Baz93,Her95,Nea et al 92,Rai82]:


Regla equitativa: consiste en dividir los recursos disponibles en proporción a los aportes de cada miembro de grupo.


Regla igualitaria: establece una distribución de recursos en partes iguales para todos los miembros.


Regla según las necesidades: consiste en la distribución de acuerdo a las necesidades individuales de cada miembro del grupo.


Regla según el pasado: rige la distribución siguiendo patrones o experiencias en negociaciones pasadas.


Hay otro tipo de reglas usadas en negociación, relacionadas con la toma de decisiones [Her95] :


a). Consenso o unanimidad: Una decisión es tomada cuando todos los miembros de un grupo están de acuerdo con dicha decisión. Es muy posible que se llegue a esto después de negociar varias veces la decisión.


Mayoría: Una decisión es tomada cuando la mayoría de los miembros de un grupo está de acuerdo con dicha decisión. La definición de "mayoría" depende del sistema y se puede relacionar con el número de votos a favor de una decisión o con el peso de tales votos.


La negociación se caracteriza por tener los siguientes elementos:


Un número adecuado de agentes involucrados en el proceso.


Un conjunto minimal de acciones que se llevan a cabo en el proceso, como: proponer, evaluar, refutar, contraproponer, aceptar, rechazar, modificar, etc. [Lab93]. Este conjunto es llamado lenguaje: "El principal componente de la negociación como actividad social es el lenguaje" [Her95]. Este conjunto de acciones puede ser visto como un conjunto de actos de habla con una lógica y una semántica especial, en [Her95] se propone un lenguaje para negociación, basado en actos de habla.


Para que una negociación sea exitosa es necesario un protocolo que facilite y en lo posible garantice la convergencia de ideas a una solución común. Un protocolo establece un conjunto de pasos que debe seguir un proceso de negociación, así como las posibles respuestas de un agente, a las acciones de otro agente.

Un ejemplo simple de protocolo de negociación entre dos agentes A y B es el siguiente :

1. A lanza una propuesta.

2. B evalúa esta propuesta y determina si es buena para él.

3. Si la propuesta de A satisface a B, el proceso termina. De lo contrario, B debe lanzar una contrapropuesta con sus argumentos.

4. Si A considera que los argumentos de B son buenos, el proceso termina. Si no se logran poner de acuerdo, se necesita la intervención de un tercer agente que tenga en cuenta los puntos de vista de ambos y tome una decisión [Lab93].


En este documento se exponen brevemente algunos de los temas relacionados con la negociación. Para explicaciones detalladas se recomienda ver [Her95].


13.5 Control


El control es el mecanismo básico que provee apoyo para la implementación de mecanismos de coordinación en un SMA. El control se relaciona directamente con:


Determinar cuáles son las subtareas más importantes a realizar en un momento dado.


Determinar qué contexto (resultados intermedios de otros agentes) deben ser usados en la solución de una subtarea.


Estimar el tiempo de generación de la solución a una subtarea.


Evaluar si la solución de un problema ha sido generada. (Problema de la terminación).


El control puede ser considerado desde dos puntos de vista: control global y control local. El control global se relaciona con tomar decisiones basándose en datos obtenidos y consolidados a partir de la información de todos los agentes del sistema, el control local se relaciona con tomar decisiones basándose solo en datos locales. Estos dos controles deben ser balanceados por varias razones:


El aumento del poder de control local lleva a que los agentes actúen eficientemente desde el punto de vista "rapidez en la toma de decisiones y en la ejecución de tales decisiones". Pero, se puede llegar a la pérdida de mecanismos de cooperación efectivos y como consecuencia a la realización de tareas no deseables.


El aumento del poder del control global lleva a aumentar los costos de computación del sistema, porque la información de los agentes cambia dinámicamente, como consecuencia para mantener información global coherente, se deben revisar e incorporar constantemente los cambios en cada uno de los agentes.


Para mantener el balance entre el control global y el control local, los componentes del control local de cada agente deben:


Proveer al control cooperativo una descripción de su estado actual y actividades esperadas.


Interactuar con el control cooperativo para modificar las actividades locales y estar más "inline" con las necesidades de los otros agentes.


Ser suficientemente sofisticado en la toma de decisiones de manera que pueda tolerar cierto nivel de error en el control cooperativo.


En [Les91] se presentan algunos mecanismos y estrategias para la implementación del control en un SMA. El mecanismo básico propuesto es la creación y manejo de estructuras que puedan acceder todos los agentes y en las que se representen organicen e integren, a alto nivel, las metas globales locales del sistema. Cada una de estas metas se relaciona con la intención de realización de alguna tarea. La estructura global de metas no necesita ser totalmente desarrollada para la resolución distribuida de problemas, la estructura puede ser construida a medida que la solución del problema progresa.

Para poder manejar estas estructuras de objetivos, los agentes que integran el SMA deben tener la habilidad de transmitir sus estructuras locales de metas. La transmisión de las metas puede indicar a los otros agentes qué tipo de información es más necesaria para el desarrollo de una solución. Por otro lado, la generación de submetas a partir de las metas facilita la generación de resultados intermedios que lleven a la satisfacción de la meta inicial. De esta forma, la incertidumbre en el control cooperativo se disminuye porque más información es generada y comunicada. Sin embargo, la comunicación de estructuras de metas genera costos adicionales de comunicación en el sistema.

A partir de la información de la estructura de metas se debe decidir cuáles son las metas de mayor importancia, para su realización. Para ello es importante distinguir entre la creencia local en un resultado parcial (creencias) y la importancia de incorporar tal resultado en una solución (evaluación global de la importancia de un resultado). La evaluación local de la importancia de metas externas, determina el balance entre responder a las necesidades de otros agentes y a las propias. La escogencia del balance preciso depende de como los agentes desde su perspectiva local juzguen sus resultados parciales y la importancia de sus metas desde una perspectiva cooperativa.

Entre las estrategias para la implementación de los mecanismos de control se mencionan [Les91]:


Metacontrol estático asociado con la estructura organizacional de un sistema : Para alcanzar una resolución cooperativa óptima es necesario eliminar la incertidumbre que se genera de manera natural en un sistema distribuido, dado que no se cuenta en todo momento con la información actualizada de cada uno de los componentes del sistema. Esto implica que cada decisión debe ser reevaluada constantemente a la luz de la nueva información generada. Pero esto es bastante costoso desde el punto de vista de procesamiento y comunicaciones.


Otra opción, que no requiere reevaluación constante y por ello es menos costosa, es tomar decisiones de control cooperativo por medio de un proceso de decisión de dos niveles. Un nivel llamado nivel de diseño organizacional, se refiere a decisiones estratégicas que no necesitan ser constantemente reevaluadas para obtener un desempeño razonable. El otro nivel, llamado nivel de agente, se refiere a decisiones tácticas que son constantemente reevaluadas. El nivel de diseño organizacional define políticas a largo plazo que pueden ser usadas al nivel de agente para restringir el conjunto de escogencias o información que debe ser evaluado para tomar decisiones. Estas políticas definen la estructura organizacional del sistema distribuido para resolución de problemas. De alguna manera la estructura organizacional representa decisiones precomputadas acerca de la estructura de metas de cada agente. Para diferentes aspectos de control cooperativo, las políticas individuales especifican estrategias globales a largo plazo que pueden ayudar a la solución coherente de problemas entre agentes. Las políticas guían y restringen las decisiones de control local para que ellas estén de acuerdo con la estrategia global. Una forma cruda de conocimiento organizacional compilado puede ser implementada por medio de la especificación de áreas de interés asociadas con cada agente.


Metacontrol dinámico asociado con la planeación global parcial : Es claro que para que los agentes cooperen de manera efectiva necesitan una vista razonablemente precisa de la estructura de metas de otros agentes. Ellos necesitan ser capaces de reconocer y anticipar dónde hay interacción o subproblemas redundantes, cuándo planear trabajar sobre los problemas, qué tan difíciles son los problemas y la flexibilidad que tiene el agente para reasignar sus actividades. Un conjunto de preguntas interrelacionadas se derivan de manera natural : qué aspectos dinámicos de la estructura de metas son importantes, qué tan precisa debe ser la vista global de metas, qué tanto de la evolución de la estructura de metas debe ser capturada. Las propuestas para proveer y operar sobre esta información son guiadas por dos principios. El primero se basa en satisfacer la vista del control cooperativo y en que los agentes no tienen que ser totalmente coherentes en su comportamiento, este principio es importante en situaciones donde el control permite reducciones significantes en la cantidad de cómputo y procesamiento requerido para implementar los algoritmos de control cooperativo. El segundo principio es que el control cooperativo efectivo es consecuencia del control local sofisticado. Esto es, los agentes deben ser capaces de representar y razonar no solo sobre sus actividades locales sino también de acomodarse a los requerimientos de otros agentes. La propuesta desarrollada en [Les91], llamada planeación global parcial se basa en la vista de metas a corto plazo de los agentes. Esta vista también contiene el orden esperado en el cual los agentes intentarán alcanzar las metas y estima tiempo y calidad de la solución. Uno puede considerar esto como un plan de alto nivel para la resolución local de problemas. Hay una tensión obvia entre la posibilidad de reasignación de problemas globales y el grado de predicción en el plan de alto nivel. A menor predicción, se requiere mayor comunicación y procesamiento para alcanzar un comportamiento cooperativo coherente. Los agentes intercambian esta vista parcial y aumentada de la estructura local de metas esperada. Por medio de la combinación de fragmentos de estructuras de metas de diferentes agentes un agente construye planes de metas globales y parciales. Un agente usa esta información para comprender cómo sus actividades se relacionan con otros agentes.


Esta información guía a un agente, para reorganizar sus metas locales, buscando resultados tales como:


Explotar los resultados parciales disponibles de otros agentes.


Proveer resultados parciales que puedan restringir el campo de búsqueda de la solución a las metas de otros agentes.


Evitar soluciones redundantes a metas, excepto cuando sea deseable.


Reevaluar la importancia de alcanzar una meta.


14. Ambientes


accesibles (los sensores detectan todos los aspectos relevantes y no se necesitan estados internos) o inaccesibles


determinísticos (el siguiente estado está determinado por el actual y las acciones del agente) o indeterminísticos. En ambientes complejos se considera un ambiente determinístico o no desde el punto de vista del agente episódicos (la calidad de la acción depende solo del episodio) o no espisódicos estáticos o dinámicos (si el ambiente puede cambiar mientras el agente piensa) o semidinámicos (el desempeño del agente cambia) discretos (número limitado y distinguible de percepciones y acciones) o continuos


Los agentes son capaces de intercambiar y compartir información / conocimiento (metas y soluciones parciales), representar la información desde puntos de vista diferentes, y cooperar para llegar incrementalmente a una solución.


Cuando tienen metas comúnes o que se traslapan, deben de actuar en forma cooperativa.


Si tienen metas con conflictos, deben de competir inteligentemente.


Su protocolo de comunicación a veces involucra ``actos de habla'' (speech acts) que reflejan creencias, intenciones, etc., de los agentes.


DAI es apropiado cuando se tiene distribuída: la experiencia y el diseño, la información (e.g., oficina), los datos (e.g., sensores), las decisiones (e.g., control de manufactura), las bases de conocimiento se desarrollan independientemente y pueden interconectarse y reutilizarse.


Caracteristicas de arquitecturas distribuídas:


concurrencia

procesamiento asíncrono

indeterminismo

influencia restringida de cada agente (i.e., modularidad y encapsulamiento de agentes)

control decentralizado

negociación entre agentes

habilidad de manejar información inconsistente

evolución continua


Elementos que se distribuyen:


acciones

foco de atención

autoridad/responsabilidad

credibilidad

confiabilidad

interpretación

conocimiento

percepción

recursos

evaluación

trabajo


Ejemplo: Se tiene una ficha roja (R) y 4 azules (A1, A2, A3, A4) en un tablero de NxN. El propósito del juego es capturar a la ficha roja.



Reglas:



En cada paso, cada ficha puede quedarse donde está o moverse hacia arriba, abajo, izquierda o derecha

Los azules ganan si ocupan los 4 cuadros alrededor del rojo


Los azules pierden si el rojo llega a un borde

En general, cada agente tiene una representación interna (que puede ser parcial o incorrecta) del problema que puede diferir de la de los otros agentes, e.g.,

1. Cada Ai puede tratar de ocupar un punto que rodea a R. Por si solo cada agente no resuelve el problema original, pero en conjunto si lo solucionan


2. Un agente es el que controla y el resto son sus esclavos. En este caso, solo el que controla debe de conocer el problema, el resto solo sigue órdenes y pueden no tener representado nada


15. Esquemas de Control


a) Control central

Un agente (A1) controla todo y ordena a los demas (A2, A3 y A4) que hacer.

Algoritmo:

1. A1 ve la posición de R y de los Aks

2. A1 calcúla cuadrantes y asigna uno por agente (dependiendo de su posición)

3. A1 dice como moverse para entrar a los cuadrantes

4. Los esclavos se mueven

Para determinar los movimientos:

IF R no se mueve, moverse más cerca a R

IF R se mueve (a un cuadrante) entonces:

si se mueve junto a Ak, Ak no se mueve

un Ak se debe de mover para permanecer en su cuadrante

El agente en el cuadrante opuesto debe de seguir a R los otros, se deben de mover perpendicularmente a R y dentro de su cuadrante


Requerimientos:

A1 debe de saber la posición de R y de los Aks todo el tiempo

A1 debe de poder calcular cuadrantes

A1 sabe que comandos obedecen los Aks y sabe como comunicarlos

A1 puede calcular movimientos adecuados


Los esclavos deben de percibir comandos (no necesitan reportar nada, porque A1 sabe todo el tiempo su posición)


b) Control central + agentes con percepción


Ahora los agentes pueden percibir su posición y se la reportan a A1 el cual debe de poder combinarla para decidir como actuar.


c) Control central + agentes buscan a R

Todos los agentes tienen la capacidad de detectar la posición de R dentro de un rango limitado.


Variación al algoritmo:

1. cada Ak informa su posición

2. A1 asigna una región a cada Ak

3. A1 comanda que cada Ak ``patrulle'' su región

4. Cada Ak busca a R y si lo detecta le informa a A1

Requerimientos:

A1 sabe el rango de visibilidad de cada Ak y puede calcular su región de patrullaje

Los esclavos pueden transmitir la posición de R al controlador

d) Control central con comandos abstractos

Los agentes pueden ejecutar comandos más complejos por si solos e.g, patrullar, ir a su región designada, acercarse al rojo, por lo que tienen cierta planeación limitada


A1 no necesita saber las acciones de los Aks


A1 debe de calcular los comandos de alto nivel para los esclavos y los de bajo nivel solo para él.


El esclavo puede ahora transmitir su posición solo cuando se le pide o cuando se mueve a una nueva región.


e) Control distribuido


Todos los agentes pueden participar en las decisiones globales. Una simplificación es que cada agente comunica toda su información a los otros agentes y todos usen el mismo método global para decidir que tareas hacer.


Algoritmo:


todos los agentes dan su posición a los otros

cada agente calcula la asignación global de agentes a regiones para patrullar y sigue su propia tarea

el que detecta a R lo anuncia

cada agente calcula los cuadrantes y se va al que le corresponde

Requerimientos:


cada agente anuncia a los otros

cada agente calcula una asignación global (siempre viendo lo óptimo desde una perspectiva global)


f) Control distribuído + agentes individuales

Los agentes calculan sus costos locales (información local) pero tratan de optimizar sobre estimaciones globales.


Se asume que los agentes son ``honestos''.


Algoritmo:


cada agente estima su propio costo de ocupar diferentes regiones en el tablero


cada agente anuncia su estimación a los otros agentes


cada agente hace una estimación global

Requerimientos: cada agente estima su costo y puede determinar una asignación global dado un conjunto de estimaciones

Se necesita tener una representación (preferiblemente explícita) de lo que saben los agentes y de sus capacidades.


Que se requiere especificar:


los estados del ambiente y de los agentes

las transiciones de estados legales del ambiente

restricciones en el estado del ambiente

las habilidades de los agentes (razonamiento, percepción, comunicación, acciones permisibles)


Los recursos disponibles de los agentes y como tratan de optimizar su uso la organización de los agentes


Esto se puede simplificar, especificando los protocolos de comunicación de los agentes en las diversas organizaciones y sus habilidades y disposición en la organización.


Sistemas ``Reactivos'':


el ambiente cambia rápidamente y de manera impredecible

los agentes tienen razonamiento limitado

los agentes pueden percibir una pequeña parte del ambiente

los agentes pueden actuar concurrentemente entre ellos y con los eventos del ambiente

Agentes que dan servicios a otros son vistos como recursos.

Si un agente no interactua con otro es mejor ignorarlo o tratarlo como parte del medio ambiente.


La información de cada agente puede ser:


el estado del medio ambiente de acuerdo al agente

el problema que el agente quiere resolver

un plan abstracto de su ejecución

una agenda de tareas por hacer

Las tareas actuales (algunas derivadas de cambios en el medio ambiente) los recursos disponibles (protocolo de acceso, métrica de costo, modelo de uso del recurso, el estado del recurso) asignación de recursos a las tareas actuales las acciones que se están realizando


Tendencia de muchos: combinación de métodos centralizados y distribuídos.


Actualmente también existe mucha investigación en la interacción Humanos - Agentes Computacionales.



16. Tecnologías involucradas


a). Lenguajes de agentes



Un lenguaje de agentes es un sistema que permite programar sistemas de computación en términos de algunos conceptos desarrollados por la teoría de agente. Se espera que aunque sea haya una estructura que represente a un agente, aunque se debería esperar que dicho lenguaje tuviera más conceptos de la teoría de agentes como creencias, metas, objetivos, planificación etc.



El interés por los lenguajes de agentes surgió de la propuesta de Shoham para crear un nuevo paradigma de programación orientada a agentes. El lenguaje propuesto fue el Agent0, en este la principal entidad es el agente y su estado es un conjunto de creencias, habilidades, acciones y objetivos. También existen métodos para intercambio de mensajes, solicitud y asignación de tareas



Otra alternativa son los enfoques orientados a teorías de agentes, en donde se enuncia definiciones de los SMA para luego tratar estas como implementaciones. Un lenguaje ejemplo de esta alternativa es ConCOLOG en donde se modela la ejecución de tareas asignadas a varios agentes y como afectan al entorno. La implementación de estas características de un SMA se basa en entidades de conocimiento modificables por las tareas. El conjunto de aplicaciones que se pueden dar sobre las tareas son axiomas de precondición de tareas y axiomas de marco que afectan a la ejecución de tareas



El problema de estos tipos de lenguajes es que su desarrollo se hace para aplicaciones pequeñas y medianas, ante aplicaciones de complejidad mayor se deben utilizar lenguajes de alto nivel como C++ y Java, el problema de utilizar estos lenguajes es que no conciben una entidad agente como tal, claro esta que existen plataformas como JADE que definen clases que representan entidades de agentes y métodos que representan en muchos casos implementaciones de los temas de la IAD.


b). Lenguajes de programación


En principio, cualquier lenguaje de programación puede ser utilizado. Siendo así de amplio el espectro en el cual se puede escoger un lenguaje para programar un sistema experto. Atendiendo a la forma de estructurar sus instrucciones, se los puede dividir en:


IMPERATIVOS: PASCAL, C/C++.

FUNCIONALES: LISP.

DECLARATIVOS: PROLOG, CHIP, OPS5.

ORIENTADOS A OBJETOS: SmallTalk, Hypercard, CLOS.

Tradicionalmente LISP y PROLOG han sido los lenguajes que se han utilizado para la programación de sistemas expertos.

i). Lisp


Su nombre se deriva de LISt Processor. LISP fue el primer lenguaje para procesamiento simbólico. John McCarthy lo desarrolló en 1958, en el Instituto de Tecnología de Massachusetts (MIT), inicialmente como un lenguaje de programación con el cual los investigadores pudieran implementar eficientemente programas de computadora capaces de razonar.


Rápidamente LISP se hizo popular por su capacidad de manipular símbolos y fue escogido para el desarrollo de muchos sistemas de Inteligencia Artificial.


ii). Prolog


PROgramming in LOGic (PROLOG), es otro de los lenguajes de programación ampliamente utilizados en IA. PROLOG fue desarrollado en Francia, en 1973 por Alain Colmenauer y su equipo de investigación en la Universidad de Marseilles.


Inicialmente fue utilizado para el procesamiento de lenguaje natural, pero posteriormente se popularizó entre los desarrolladores de aplicaciones de IA por su capacidad de manipulación simbólica. Utilizando los resultados del grupo francés, Robert Kowalski de la Universidad de Edimburgo, en Escocia, desarrolló la teoría de la programación lógica. La sintaxis propuesta por Edimburgo, se considera el estándar de facto del PROLOG.


17. Conclusiones

Los ejemplos comentados en este artículo no son ciencia ficción, sino que describen lo que, se supone, nos espera de aquí a pocos años. La IA ha dado un paso más hacia delante.


Existen ya prototipos que están siendo probados tanto en el ámbito académico como industrial y ya empiezan a aparecer los primeros productos comerciales. Cabe indicar que, como siempre ocurre cuando aparece una nueva tecnología, no debemos pensar que todo son agentes y lo que había antes no es válido. Las opciones a la hora de emplear agentes, tal y como hemos descrito, son múltiples, pero no conviene creer que cualquier problema es tratable de forma sencilla con una aproximación de sistema basado en agentes. Es posible que en ocasiones el empleo de técnicas clásicas resulte más adecuado en función de la naturaleza del problema a resolver.


El contraste anotado nos lleva a una conclusión que queremos consignar aquí como nota final de este artículo. Todo parece indicar que las computadoras, debidamente programados con las técnicas de alto nivel propias de la IA, pueden descollar en el campo de la pericia, es decir, de la solución de problemas especializados; por su parte, el intelecto humano parece insustituible en relación con la solución de problemas de sentido común. Se impone entonces fomentar la asociación de hombre y máquina en sistemas de cooperación simbiótica y sinergética; hombre y máquina se necesitan mutuamente para solucionar eficazmente los problemas, y de la interacción entre ambos resulta una energía intelectual muy superior a la de la suma de sus partes.


En cada uno de los temas relacionados con agentes y SMA se puede profundizar tanto como se quiera, pero a veces se llega a problemas que no son relevantes en el contexto de SMA. Lo importante, es entender que la noción de agente es tan amplia o ten reducida como se quiera y/o se necesite.

Una de las características más importantes de un SMA es que el grupo de agentes que lo integran debe trabajar de manera cooperativa e individual. Los agentes trabajan de manera cooperativa para satisfacer las metas globales que se derivan de la búsqueda de las soluciones a los problemas globales y de manera individual, porque las metas globales son descompuestas en submetas, generando metas locales para los agentes que participarán en el desarrollo de las soluciones a los problemas.

Cuando dos o más entidades trabajan en grupo, se presentan conflictos de intereses de manera natural. Es necesario que el ambiente en el que se desenvuelven provea procesos para la resolución de tales conflictos. En este documento se propone como mecanismo básico para manejar este aspecto, la negociación en grupo. Este mecanismo puede ser visto como un proceso de toma de decisiones en el cual dos o más entidades, representando sus propios intereses, se ponen de acuerdo acerca de cómo resolver un conflicto de preferencias. Algunas de estas tareas de decisión están caracterizadas por las relaciones cooperativas entre los miembros del grupo, en las cuales los individuos trabajan por el desempeño del grupo en general; o por relaciones competitivas en las cuales los miembros del grupo plantean posiciones definidas y discuten entre sí, defendiendo sus propios intereses [Her95].

Por otro lado los mecanismos de control propuestos en este documento son básicos para la implementación de los mecanismos de coordinación porque permiten predecir con cierto nivel de precisión el comportamiento de los integrantes de un SMA y posibilitan a cada integrante estar más "in-line" con los comportamientos de los otros. También son básicos para la evaluación de la terminación en el desarrollo de la solución a un problema.

Un SMA es un sistema distribuido, por ello, en él nunca se cuenta con información global consolidada totalmente actualizada. Por esta razón, los agentes deberían reevaluar las decisiones tomadas, a la luz de cada nueva información obtenida, generando sobrecostos de comunicación. Es importante que los mecanismos de negociación y control sean coherentes con las necesidades de los sistemas a los que pertenecen, es decir, ser sofisticados si el sobrecosto generado es menor que el sobrecosto generado con la implementación de un SMA sencillo, para la resolución de un problema.

18. Desafíos técnicos del futuro


Los tres desafíos más importantes en el desarrollo dentro de la A I son su facilidad de uso, la flexibilidad de la infraestructura computacional y la disponibilidad de herramientas de desarrollo cada vez más poderosas.

El empleo de una interfaz inteligente ayudará a las personas a encontrar lo que ellas deseen, hará lo que éstas deseen cuando lo deseen, en forma natural y sin requerir el conocimiento de detalles irrelevantes.

En fin, todo parece indicar que las computadoras programadas con la A I son el campo de la solución de problemas del futuro; sin embargo, el intelecto humano parece ser irremplazable en relación con la solución de problemas de sentido común. Se sugiere entonces, dado lo complicado de la mente humana, que hombre y máquina interactúen juntos ya que necesitan uno del otro para solucionar eficazmente los problemas.


19. BIBLIOGRAFIA

-[Botti1999] V. Botti, C. Carrascosa, V. Julian, J. Soler. The ARTIS Agent

Architecture: Modelling Agents in Hard Real-Time Environments. Proceedings of the AAMAW’99. Lecture Notes In Computer Science, vol. 1647. Springer

- Verlag (pag. 63-76), Valencia 1999. ISBN 3-540-66281-2.

-[Franklin1996] Franklin, S., Graesser, A.: Is it an Agent, or just a

Program?: A Taxonomy for Autonomous Agents. Proceedings of the Third

International Workshop on Agent Theories, Architectures, and Languages.

Springer-Verlag (1996).

-[Huhns 1998] Huhns, M., Singh, M. P.: Readings in Agents. Readings in

Agents. Chapter 1, 1-24 (1998).

-[Jennings1998] Jennings, N. Wooldridge, M.: Applications of Intelligent

Agents. Queen Mary & Westfield College. University of London.

-[Nwana1996] Nwana, H. S.: Software Agents: An Overview. Intelligent

Systems Research. AA&T, BT Laboratories, Ipswich, United Kingdom (1996).

-[Parunak1999] Parunak, H. Van Dyke and Odell, James: Engineering

Artifacts for Multi-Agent Systems, ERIM CEC. (1999).

-[Russell1996] Russell, S: Inteligencia Artificial: un enfoque moderno.

Prentice - Hall. México, (1996).

-[Wooldridge1995] Wooldridge, M. and Jennings, N. R.: Intelligent

agents: Theory and practice. The Knowledge Engineering Review,

10(2):115–152, (1995).

-Workshop on Distributed Artificial Intelligence. Glen Arbor, Febrero 1992.

-[Dem,90] Y.Demazeau & Mueller, “Descentralized Artificial Intelligence”, en “Descentralized AI”, Demazeau & Mueller eds., North-Holland/Elsevier, pp 3-13,1990.

-[Dem,92] Y. Demazeau & O. Boissier, “A Distributed Artificial Intelligence View on --General Purpose Vision Systems”, en “Descentralized AI 3”, Demazeau & Werner eds., North-Holland/Elsevier, pp 311-330, 1992.

-[Dem,93] Y.Demazeau, “Distributed Artificial Intelligence & Multi – Agent Systems”. -Conferencia impartida en el X Simposio Brasileño de Inteligencia Artificial, 1993.

-[Iglesias,96] C.A. Iglesias, J.C. González and J.R. Velasco. “MIX: A general purpose -multiagent architecture” en Intelligent Agent II: Agent Theories, Architectures, and -Languages, volume 1037 of Lecture Notes in Artificial Intelligence, pages 251-266. Springer-Verlag, 1996.

-[Iglesias,98] C.A. Iglesias, “Definición de una Metodología para el Desarrollo de Sistemas Multiagentes. Tesis Doctoral”, Febrero 1998, Departamento de Ingeniería de Sistemas Telemáticos de la Universidad Politécnica de Madrid.

-[KADS,93] R. De Hoog, R.Martil, B. Wielinga, R. Taylor, C. Bright, and W. van de Velde. The CommonKADS model set. ESPRIT Project P5248 KADS--II/M1/DM..1b/UvA/018/5.0, University of Ámsterdam, Lloyd`s Register, Touche Ross Management Consultants & Free University of Brussels, Dec.1993.

-[Mor,94] F. Morales, “Sistemas Tutoriales Basados en Casos”, en Informática 94, Cuarta Convención Internacional y Feria de Software, La Habana, Cuba, Febrero 1994.

-[Mor,95] F. Morales, “Implementando Cooperación en un Mundo MultiAgente”. Reporte Interno de Investigaciones. Universidad de La Habana, Fac. Matemática y Computación. 1995.


http://bloghost.cl/bernardobello/2009/03/16/descarga-directa-de-libros-gratis/

http://es.wikibooks.org/wiki/Inteligencia_artificial


http://ccc.inaoep.mx/~emorales/Cursos/RdeC/node115.html

http://www.virtual.unal.edu.co/cursos/ingenieria/2001394/docs_curso/capitulo1/leccion1.1.htm

https://adenu.ia.uned.es/web/en/members/jgb/teaching/etsi_informatica/ia_e_ingenieria_del_conocimiento/contenidos_a/contenido/inteligencia_artificial_distribuid

http://alek.pucp.edu.pe/ma_cont

http://delicias.dia.fi.upm.es/

http://www.dia.fi.upm.es/

http://www.fortunecity.com/skyscraper/chaos/279/principal.htm

http://go.to/inteligencia_artificial

http://www.itba.edu.ar/

http://www.publispain.com/supertutoriales/matematica/inteligencia_artificial

http://www.redcientifica.com/doc/doc200106170001.html

MARTÍN BONAFIO, Redes neuronales y Sistemas Difusos, Madrid, Ediciones Alfaomega, 2001.

Enciclopedia CLARÍN, La Ciencia Explicada, Buenos Aires, Editorial Clarín, 1995.

http://www.uv.mx/cienciahombre/revistae/vol17num3/articulos/inteligencia/index.htm - Luís Alberto García Fernández.

http://es.wikibooks.org/wiki/Portada - Jon Alava (14/10/1998)

http://es.wikipedia.org/wiki/Inteligencia_Artificial

Tirso de Andrés, Homo Cybersapiens. La Inteligencia artificial y la humana, 2002, ISBN 84-313-1982-8

Luis Mª Gonzalo, Inteligencia Humana e Inteligencia Artificial, Madrid, 1987. ISBN 84-7118-490-7

Víctor Gómez Pin, Entre lobos y autómatas. La causa del hombre, Espasa, Madrid, 2006. ISBN 978-84-670-2303-9

Revista "Inteligencia Artificial" Revista Iberoamericana de Inteligencia Artificial. ISSN 1137-3601


Agradecimientos


En primer lugar agradezco a Dios por darme la salud para seguir adelante y a mis padres por darme el apoyo incondicional, en segundo lugar agradezco a mi Docente de esta materia que con su experiencia en el campo de la investigación supo instruirme en los métodos de la investigación científica, a los autores de los libros citados en la bibliografía por compartir el conocimiento y a los creadores de las paginas Web que se dedican en la área de la investigación.