Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional...

41
1 Lógica Computacional y Sistemas Multiagente. Situación actual. Belén Baldonedo del Río Curso de Lógica Computacional Doctorado en Computación - 2006

Transcript of Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional...

Page 1: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

1

Lógica Computacional y Sistemas Multiagente. Situación actual.

Belén Baldonedo del RíoCurso de Lógica Computacional

Doctorado en Computación - 2006

Page 2: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

2

1. IntroducciónGran auge de la programación orientada a agentes.Motivo: adelantos tecnológicos:

ordenadores cada vez más rápidos y económicosredes rápidas y fiables creciente expansión de Internet

Nuevas áreas de aplicación (p.e. comercio electrónico)Nuevos problemas:

la integración de grandes cantidades de información. la construcción de software complejo

Page 3: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

3

1. IntroducciónSurgen:

numerosos talleres, conferencias y publicaciones (CLIMA).una red europea de excelencia (AgentLink).una organización internacional para la creación de estándares en este campo: FIPA (Foundation forIntelligent Physical Agents).

Page 4: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

4

1. IntroducciónDefinición de agente: ente computacional (software o hardware) que posee las siguientes propiedades :

Autonomía: capacidad de actuar sin la intervención de otros agentes.Reactividad: capacidad para percibir su entorno y responder a cambios en el mismo.Proactividad: capacidad de exhibir comportamiento dirigido a cumplir sus objetivos.

Page 5: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

5

1. IntroducciónSistema Multi-Agente (SMA): conjunto de agentes que cooperan para conseguir sus metas individuales y también metas conjuntas. Para que un agente funcione en un SMA debe estar dotado de un comportamiento social, esto es, debe permitir:

Comunicación: enviar/recibir información.Cooperación: negociación con otros agentes para alcanzar metas individuales o colectivas.Revisión de creencias: actualizar su información (creencias) mediante información proporcionada por otros agentes.

Page 6: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

6

1. IntroducciónLa computación basada en agentes está relacionada con otras áreas de computación como son:

ingeniería del softwarecomputación distribuidainteracción hombre-máquinatelecomunicacionesinteligencia artificial (IA)

Dentro de la IA han sido propuestas varias aproximaciones basadas en lógica. Dos de ellas son BDI (Belief-Desire-Intention) y Agent0.

Page 7: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

7

1. IntroducciónEn BDI un agente se caracteriza por lo siguiente:

creencias (sobre sí mismo y sobre otros agentes)entorno (donde reside)metas, deseos e intencionesplanes (que debe ejecutar)

En Agent0 un agente se caracteriza por sus creencias y obligaciones (reglas de producción referidas a estados del entorno en el que opera el agente).

Page 8: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

8

1. IntroducciónEn estas dos aproximaciones la lógica se usaba para representar los agentes pero su modelo de ejecución no está basado en lógica: desfase entre teoría y práctica.En consecuencia se desarrollaron varias propuestas donde la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo de ejecución.

Page 9: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

9

1. IntroducciónRazones para usar LC en sistemas de agentes y SMAs:

Los agentes necesitan “razonar” sobre cambios ocurridos en el entorno y sobre cómo realizar los cambios deseados.Su rendimiento puede incrementarse si tienen la capacidad de aprender.Trabajan en entornos donde la información es incompleta y hay que elegir entre varias acciones.Necesitan modificar dinámicamente sus creencias y, al mismo tiempo, realizar pruebas de integridad.En un SMA los agentes necesitan “negociar” para resolver conflictos.

Page 10: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

10

1. IntroducciónContribuciones de la LC a los SAs y SMAs:

razonamiento temporalrazonamiento abductivorazonamiento inductivorazonamiento sobre acciones y planificaciónrazonamiento con prioridades y preferenciasrevisión de creencias y argumentación

Page 11: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

11

1. IntroducciónConceptos de la LC que usan las propuestas de SMAspresentadas:

programación lógica extendidaprogramación lógica abductiva y restricciones de integridadformalismos para razonamiento sobre acciones en el tiempo:

cálculo de eventoslenguaje Acálculo de situación Lenguaje GOLOG (formalizado en lógica de segundo orden e implementado en Prolog)

Page 12: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

12

1. IntroducciónA continuación analizaremos algunas de esas propuestas desde el punto de vista de la representación del conocimiento.También haremos un recorrido por los principales lenguajes de programación para agentes y SMAs

Page 13: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

13

2. Propuestas de agentes basadas en LC

Esta parte se centra en analizar:La forma de representar las creencias, deseos/metas e intenciones de los agentes.Mecanismos empleados para conseguir en los agentes reactividad y planificación (esto es, comportamiento proactivo).

Page 14: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

14

2. Propuestas de agentes basadas en LC

Agentes de Kowalski y Sadri: Las creencias de los agentes se representan mediante:

iff-definiciones: “un agente puede tener un objeto sólo si lo compra o lo roba”restricciones de integridad: son implicaciones para expresar reglas de condición-acción, obligaciones, prohibiciones y metas.observaciones

Page 15: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

15

2. Propuestas de agentes basadas en LC

Agentes de Kowalski y Sadri: Ejemplos de restricciones de integridad:

“Los agentes sin dinero no pueden comprar objetos”(prohibición).“Cada vez que un agente compre una TV debe conseguir una licencia de TV” (obligación).“Siempre que un agente que esté robando un objeto y escuche a la policía llamar a la puerta debe huir” (regla de condición-acción).

Si el objetivo es “tener TV” un posible plan sería “comprar una TV y conseguir su correspondiente licencia”.

Page 16: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

16

2. Propuestas de agentes basadas en LC

Agentes de Kowalski y Sadri:Los agentes son reactivos en dos sentidos:

reconocen la necesidad de replanificación cuando surgen nuevas observacionespueden generar dinámicamente nuevas metas mediante la activación de restricciones de integridad (además de las metas iniciales).

Page 17: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

17

2. Propuestas de agentes basadas en LC

Agentes de Kowalski y Sadri: :Ejemplo:

Si un agente recibe una notificación de que no tiene dinero, el plan anterior quedaría invalidado y deberá replanificar. El único plan posible es robar un TV. Si el agente ejecuta este plan y observa la presencia de la policía → la regla condición-acción generará un nuevo objetivo: huir (nuevameta dinámica).

Page 18: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

18

2. Propuestas de agentes basadas en LC

Agentes de Shanahan: Las creencias de los agentes se representan mediante el cálculo de eventos (“una puerta dada conecta dos habitaciones” ).Acciones de dos tipos:

primitivas (“atravesar la puerta” ) compuestas (“pasar de una habitación a otra”) que pueden describirse en términos de acciones primitivas (“atravesar la puerta que conecta una habitación con la otra”).

Page 19: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

19

2. Propuestas de agentes basadas en LC

Agentes de Shanahan: El cálculo de eventos permite la planificación jerárquica que genera un plan completo, aunque no toda acción en el plan tiene que estar totalmente descompuesta en acciones primitivas. La planificación jerárquica permite la planificación progresiva donde se van generando primero las acciones del plan que se realizarán antes.Los agentes de Shanahan (al igual que los de Kowalski y Sadri) incrementan sus creencias mediante observacionesdel entorno. Son agentes reactivos mediante replanificación.

Page 20: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

20

2. Propuestas de agentes basadas en LC

Agentes de Baral and Gelfond: Las creencias de los agentes se expresan mediante teorías en lenguaje A junto con una historia de observaciones pasadas. Las metas de los agentes son propiedades que deben tener en el futuro. La programación lógica se usa proactivamente para transformar metas en planes.Son reactivos por replanificación.

Page 21: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

21

2. Propuestas de agentes basadas en LC

Agentes de Pereira y Quaresma: Representan las creencias de los agentes mediante estados que vienen dados por un programa de lógica extendida compuesto por:

una formulación en programación lógica extendida del cálculo de eventosun conjunto de reglas y restricciones de integridad (por ej. que una propiedad y su negación explicita no pueden ser ciertas al mismo tiempo)un conjunto de reglas que describen la transferencia de creencias entre agentes y la asimilación de nueva información.

Page 22: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

22

2. Propuestas de agentes basadas en LC

Agentes de Pereira y Quaresma: Son reactivos: pueden revisar sus creencias en respuesta a observaciones.Ejemplos de reglas lógicas:

un agente ingenuo acepta siempre información nueva que provenga de otro agente que considere sincero. un agente cauto aceptará nueva información de otro agente sólo si cree que este es sincero y además la nueva información no contradice sus propias creencias.

Page 23: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

23

2. Propuestas de agentes basadas en LC

Vivid Agents:

Se caracterizan por tener:metascreencias (en programación lógica extendida) reglas de reacción (que generalizan reglas de tipo evento-condición-acción) → comportamiento reactivoreglas de acción (similares a las de reacción pero no disparadas por eventos, de tipo condición-acción) →comportamiento proactivo (se usan para generar planes que permitan alcanzar las metas).

Page 24: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

24

2. Propuestas de agentes basadas en LC

Vivid Agents: Ejemplo de regla de reacción para un agente (en una aplicación carga y descarga de mercancías):

“si un agente A recibe un mensaje de otro agente B de que B tiene una mercancía que debe ser cargada, entonces el agente A envía un mensaje de respuesta confirmando la recepción del mensaje”. Regla de acción: “si está en una posición y quiere dirigirse al norte entonces debería dar un paso en dirección norte, es decir, buscar una posición diferente más cercana a su objetivo”.

Page 25: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

25

2. Propuestas de agentes basadas en LC

IMPACT:Patrocinado por DARPA.Las creencias se representan mediante programas agente: “Un tanque T1 está obligado a atacar a otro tanque T2 si el tanque T1 está obligado a seguir una ruta que está siendo bloqueada por el tanque T2 y este último pertenece al enemigo”.Las restricciones de integridad especifican situaciones que no pueden darse o acciones que no pueden ocurrir al mismo tiempo: “la velocidad de un tanque no debería superar la velocidad máxima permitida” o “dos aviones no pueden volar en la misma ruta en el mismo momento”.

Page 26: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

26

2. Propuestas de agentes basadas en LC

INTERRAP: Usa el cálculo de eventos para razonar sobre el tiempo y las acciones e incorpora planificación jerárquica Estructura las creencias en tres tipos:

modelo del mundo (historia del agente y sus acciones)modelo mental (teoría del cálculo de eventos)modelo social (creencias sobre otros agentes y cómo interactuar con ellos)

Page 27: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

27

2. Propuestas de agentes basadas en LC

3APL: Combina programación imperativa y lógica.Los agentes en 3APL son entidades con creencias, metas y reglas de planificación:

Las creencias se especifican mediante sentencias de un lenguaje lógico (de primer orden). Las metas mediante programas de estilo imperativo formadas por metas primitivas. Las reglas de planificación se proporcionan en estilo de reglas de programación lógica con metas primitivas y compuestas

Page 28: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

28

3. Lenguajes de programación lógica orientados a agentes

Características comunes: multi-threading (múltiples que procesos pueden compartir el mismo espacio de ejecución).comunicación inter-thread.reglas de condición-acción/reacción.movilidad de código sobre una red de ordenadores

Page 29: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

29

3. Lenguajes de programación lógica orientados a agentes

Qu-Prolog: Lenguaje de programación lógica (extensión de Prolog). Actualmente se utiliza la versión 7.2.Inicialmente desarrollado para implementar probadores de teoremas interactivos.Adecuado para el desarrollo de aplicaciones de IA tales como SMA’s.Contiene todas las características del Prolog estándar más multi-threading y comunicación inter-thread.

Page 30: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

30

3. Lenguajes de programación lógica orientados a agentes

Qu-Prolog: Las creencias de los agentes se recogen en una BD dinámica que puede ser consultada y modificada por los procesos agente (agent’s threads) y proporciona un mecanismo de pizarra para comunicación entre procesos agente.Los procesos están provistos de un conjunto de reglas de reacción que especifican de qué modo deben reaccionar a los mensajes que reciben.

Page 31: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

31

3. Lenguajes de programación lógica orientados a agentes

Jinni: Java INference-engine and Networked Interactor.Permite integrar, en aplicaciones distribuidas, componentes de procesamiento de conocimiento, basados en Prolog y objetos Java.La coordinación entre los procesos se consigue mediante pizarras.Se ha utilizado, por ejemplo, para desarrollar un simulador del mercado de acciones, con agentes inteligentes programables por el usuario. Una de las posibles aplicaciones previstas para Jinni es la asistencia a clientes de aplicaciones inteligentes como TV via web, teléfonos móviles, ordenadores para coches.

Page 32: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

32

3. Lenguajes de programación lógica orientados a agentes

Ciao Prolog: Subsumido en ISO-Prolog. Tiene características para implementar software basado en agentes. Soporta threads, actualizaciones atómicas sobre una BD compartida, objetos y comunicación remota de alto nivel entre procesos (incluyendo interfaces para BDs locales y remotas y acceso a WWW).Genera ejecutables multiplataforma basados en compilación en bytecode lo cual permite la ejecución dinámica del código en distintas plataformas.

Page 33: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

33

3. Lenguajes de programación lógica orientados a agentes

Eel: Usa una aproximación basada en eventos para procesar comunicación . se basa en un modelo limitado de comunicación que permite solo comunicación síncrona punto a punto . No implementa los conceptos de envío y recepción de mensajes sino que utiliza la unificación de mensajes como método para el intercambio de información entre procesos concurrentes.Sintácticamente es similar a Prolog y comparte la semántica operacional de Prolog excepto por predicados reservados especiales para sincronizar la comunicación.

Page 34: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

34

3. Lenguajes de programación lógica orientados a agentes

GAEA: Extensión de Prolog con las siguientes características:

módulos y herencia entre ellosmulti-proceso (multi-threading)comunicación entre procesos (threads) mediante memoria compartida que permite la sincronización entre procesos.

Equipado con un entorno de desarrollo (tipo X-window) y una interfaz de red para entornos multiproceso distribuidos.Los procesos ejecutan un programa lógico en un entorno dado por un conjunto de módulos. Puede aplicarse herencia y sobrecarga entre módulos. Se utilizó en entornos tipo RoboCup.

Page 35: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

35

4. CLIMA (Computational Logic in Multi-Agent Systems)

Conferencia en el campo de la lógica computacional aplicada a SMA’s.Se organiza anualmente desde Diciembre de 1999 y en ella se exponen los avances más recientes de la investigación en el campo de la lógica computacional aplicada a agentes y SMA’s. La última conferencia celebrada es CLIMA VII (Mayo-2006, Japón).

Page 36: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

36

4. CLIMA (Computational Logic in Multi-Agent Systems)

Objetivos:Promover el uso de la Lógica Computacional (LC) en SMAsdonde la LC proporciona un marco de trabajo bien-definido, general y riguroso para el estudio de la sintaxis, semántica y procedimientos, aportando implementaciones, entornos, herramientas y estándares, y permitiendo la especificación y verificación de propiedades, tanto para agentes individuales como para SMAs.Discutir y confrontar diferentes técnicas y aproximaciones basadas en lógica computacional para representación, programación e implementación de razonamiento en agentes y SMAs y presentar el estado actual de la investigación en este campo difundiendo los avances más recientes entre investigadores y estudiantes.

Page 37: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

37

4. CLIMA (Computational Logic in Multi-Agent Systems)

CLIMA Contest:Competición creada en la anterior edición, CLIMA VI (Junio-2005, Londres). Busca estimular la investigación en el área de SMAs pero siempre haciendo hincapié en el uso de la LC.Trata de establecer un escenario para agentes lo suficientemente genérico para poder aplicar un amplio rango de técnicas de lógica computacional pero suficientemente preciso para poder comparar diferentes aproximaciones entre sí.

Page 38: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

38

4. CLIMA (Computational Logic in Multi-Agent Systems)

CLIMA Contest VI: Escenario propuestoSe trata de una rejilla donde los agentes pueden moverse a una casilla vecina si no hay un agente en esa rejilla. Puede aparecer comida en todas las casillas excepto en una casilla depósito en la cual los agentes pueden dejar su comida. Un agente puede observar si hay comida en la casilla que está visitando. Inicialmente la comida puede situarse en algunas casillas seleccionadas aleatoriamente. Durante la ejecución puede aparecer comida en casillas adicionales seleccionadas aleatoriamente excepto en la casilla depósito. Los agentes pueden interpretar diferentes papeles (como explorador o colector), comunicarse y cooperar para encontrar y recoger comida de modo eficiente y efectivo.

Page 39: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

39

4. CLIMA (Computational Logic in Multi-Agent Systems)

CLIMA Contest VI: Ganadores (execuo)Simon Coffey and Dorian Gaertner, del Imperial CollegeLondon, UK con la propuesta “Implementing Pheromone-Based, Negotiating Forager Agents” que describe una implementación de agentes distribuidos de tipo BDI, quecooperan eficientemente en el escenario propuesto.Carlos Cares, Xavier Franch and Enric Mayol, de la Universitat Politècnica de Catalunya, Barcelona, España, y Universidad de la Frontera, Temuco, Chile con la propuesta “Extending Tropos for a PrologImplementation: A Case Study Using the Food Collecting Agent Problem” donde trasladan una metodología orientada al diseño de agentes (Tropos) a una implementación en LC (en Prolog).

Page 40: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

40

4. CLIMA (Computational Logic in Multi-Agent Systems)

CLIMA Contest VII: Escenario propuestoSe trata de simular dos equipos de buscadores de oro que se encuentran explorando la misma zona capaces de esquivar obstáculos (árboles y arbustos) y que deben competir por las pepitas de oro diseminadas por un bosque. Los mineros de cada equipo deben coordinar sus acciones para recoger tanto oro como sea posible y entregarlo al agente situado en un depósito donde se guarda el oro.

Page 41: Lógica Computacional y Sistemas Multiagentecabalar/curso0506/lcsma.pdf · la lógica computacional (LC) se usa tanto para la representación del conocimiento como para el modelo

41

5. Bibliografía consultada

“Computational Logic and Multi-Agent Systems: A roadmap”. Fariba sadri, Francesca Toni. Department ofComputing. Imperial College, UK. 1999.“An introduction to Multiagent Systems”. Michael Wooldrige. 2001. Ed. Wiley.Home page de CLIMA: http://clima.deis.unibo.it/Página del CLIMA Contest VII: http://cig.in.tu-clausthal.de/index.php?id=clima7contestPágina de Dorian Gaertner (ganador del CLIMA Contest VI): http://tweetypie.doc.ic.ac.uk/~dg00/twiki/bin/view/Publications/WebHome