carolina puyuelo césar esandi ingeniería de los sistemas basados en el conocimiento curso...

60
Carolina Puy César Es Ingeniería de los Sistemas Basados en el Conocimi Curso 2000-

Upload: victor-manuel-carrizo-maestre

Post on 24-Jan-2016

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Carolina PuyueloCésar Esandi

Ingeniería de los Sistemas Basados en el ConocimientoCurso 2000-2001

Page 2: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesEntorno de simulación basado en Agentes

•Introducción

•AgentSheets

•Objetivos

•SIMS: Entorno de simulación basado en Agentes

•Herramientas para SIMS

•Ampliaciones

•Conclusiones

Índice

Page 3: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001
Page 4: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Introducción

Qué es un Simulador

Simulacrum retratoSimular representar alguna cosa,

fingiendo lo que no es

•Simulador Herramienta que intenta reproducir la evolución de un sistema.•Requerimientos:

•Estado inicial•Leyes de evolución

•Aplicaciones:•Meteorología, grupos de individuos, ingeniería...

Page 5: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Introducción

Qué es un Agente

Agens, agentis agere actuar

La informática actual está haciendo un uso abusivo del término “Agente” utilizándolo en disciplinas muydispares, desde el intercambio de datos en programación distribuida hasta el estudio de roles de comportamiento.

Algunas características de los agentes :- Autonomía- Adaptabilidad / Aprendizaje- Orientados a un objetivo- Flexibles- .......

Page 6: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Introducción

Qué es un Agente

Agentes Reactivos (Reactive Agents) [HN96]

En el presente estudio se ha trabajado con una categoría especial de agentes: los Agentes Reactivos

•Los agentes se encuentran embebidos en un entorno•Los agentes pueden captar el estado actual de dicho

entorno. (O al menos, una parte del mismo)•Cada agente tiene definido un comportamiento: unas reglas

que le dictan cómo actuar ante una situación determinada.

Page 7: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Introducción

Clasificación de los agentes software según Nwana

Agentes Reactivos (Reactive Agents) [HN96]

Cooperación

Autonomía

Aprendizaje

Agentes Colaborativos

Page 8: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001
Page 10: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

¿Qué ofrece AgentSheets ? Un entorno de desarrollo de simulaciones muy potente orientado a los

usuarios finales. Se pueden construir simulaciones interactivas para la web sin ningún conocimiento de programación en Java.

“Programación Tactil”[ARJA96]. – Construcción de escenarios desde un entorno visual– Definición del comportamiento de los agentes a través de la definición de un

conjunto de reglas creado visualmente

Se permite a los usuarios crear sus propios agentes imponiéndoles un comportamiento mendiante reglas.

Los agentes creados pueden ser compartidos entre los usuarios de AgentSheets mediante un fórum en la Web.

Page 11: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

¿Qué ofrece AgentSheets ?Desarrollo de escenarios

•Agentes “Pasivos” (Hierba)•Agentes “Activos” (Coche)

Page 12: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

¿Qué ofrece AgentSheets ?Piezas: Agentes, Percepción, Eventos, Acciones

Page 13: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

¿Qué ofrece AgentSheets ?Modelado del comportamiento:

Definición de Reglas Sencillas

Page 14: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

¿Qué ofrece AgentSheets ?Modelado del comportamiento:

Definición de Reglas Sencillas

Page 15: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

¿Qué ofrece AgentSheets ?Modelado del comportamiento:

Definición de Reglas Sencillas

Page 16: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

¿Qué ofrece AgentSheets ?Generación de todo tipo de escenarios

Page 17: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001
Page 18: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

ObjetivosDesarrollar una plataforma de simulación genéricacuyos elementos sean agentes reactivos.

Cada agente actuará de forma autónoma, interaccionando con el entorno.El conjunto de las actuaciones de todos los agentes constituirá la evolución del sistema.

Desarrollar un método que permita definir el comportamiento de cada agente

Page 19: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Objetivos

Desarrollar un método que permita definir el comportamiento de cada agente [AS2000]

•Flexible: Definición del comportamiento para cualquier agente•Potente: Definición de comportamientos relativamente complejos•Sencillo: de fácil aprendizaje

Page 20: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Objetivos

Desarrollar un conjunto de herramientas visuales [AS2000] [ARJA96]

•Creador de Escenarios• Permite diseñar un escenario (para simular) concreto, con su entorno, sus agentes y los comportamientos de los mismos.

•Simulador de Escenarios•Permite contemplar la evolución de los agentes de un escenario concreto.

•Implementar un escenario concreto

Page 21: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001
Page 22: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesCaracterísticas

•Escenarios en 2D•Geometría reticular: Mapas en cuadrícula•Evolución por ciclos•Plataforma JAVA 2•Swing

•Pretende cumplir todos los objetivos anteriores

Page 23: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Mundo

•Se trata de un mapa del terreno•El mapa está dividido en casillas rectangulares•Cada unidad de terreno se denomina “Posición”•Publica información sobre sí mismo:

•Posiciones vecinas a una dada•Croquis (plano esquemático) del mapa

Page 24: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Mundo

public class Mundo{ private Vector posiciones; Mundo (); private void borrarMundo (); public void size (int x, int y); public Posicion posicionDe(int xAbs, int yAbs); public Vector posicionesVecinasDe (Posicion pos); public int[][] croquis(Vector tipoInformaciones);}

Page 25: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Posición

•Representa una celda del tablero (Mundo)•Debe ser de un tipo determinado: Carretera, río, hierba...•Los agentes “caminan” sobre las distintas Posiciones del Mundo•Cada Posición anota los agentes que actualmente se encuentran sobre ella

PosiciónAgente

Mundo

Page 26: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Posición (1): Ubicación

public class Posicion{ Posicion (Mundo mundo, int nuevaPosX, int nuevaPosY,

int anchoEspacio, int altoEspacio);

public int posX(); public int posY();

public void nuevaDescripcion (String d); // A partir de d se extrae la imagen correspondiente public String descripcion(); // Tipo de posición: Carretera, hierba, río...

Page 27: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Posición (2): Ayudas a los agentes

public Vector agentes = new Vector (); //Agentes sobre esta posición public void draw (); public void dibujar (Image frame, int xFrame, int yFrame, int anchoFrame, int altoFrame); // 1º La posición se dibuja a sí misma // 2º Se dibujan todos los agentes del vector agentes

public void tick(); //Pide a los agentes de esta posición que actúen

•Dibuja cada uno de los agentes situados sobre la posición•Indica a cada uno de los agentes que actúe

Page 28: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Agente: Características

•Clase abstracta•Soporte para implementaciones concretas como coches, personas, semáforos...•Cada agente se sitúa sobre una posición•La función tick() hace que el agente se mueva según el entorno actual y su comportamiento•La función draw() dibuja al agente en la pantalla periódicamente

Public abstract class Agente {}

Page 29: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Agente: Características

Percepción del mundo

Ejecuciónde acciones

Aplicación de las reglas de

comportamiento

Page 30: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Agente: Estructuras de datos (I)

protected int orientacionAgente;private Posicion posicion;public Posicion nuevaPosicion;public int frecuencia; //cada cuántos turnos actuamos.public int turnoActual;protected Vector mensajes; //tipos de mensajes a recibirpublic abstract int framesTotal ();public abstract int framesHorizontal ();// Identicacion del tipo de agente. Ej: Persona, Coche... protected String tipo;// Nombre del agente en particular. Ejemplo: Carlos, Rubénprotected String nombre;

Page 31: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Agente: Estructuras de datos (II)

•Lista de posiciones sobre las que puede estar un agente•Lista de acciones que puede realizar un agente•Lista de estados que puede tomar un agente•Pila de objetivos pendientes que debe realizar el agente•Estado actual del agente•Tabla de comportamiento

•Entradas: Estado del agente y agente cercano•Devuelve: acción a realizar ante esa situación

protected Vector posicionesPermitidas;protected Vector accionesPosibles;protected Vector estadosPosibles;private Vector pilaObjetivos;protected String estado;protected Hashtable tablaComportamientos

Page 32: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Agente: Estructuras de datos (III)

ParadoAndando

RojoÁmbar

PitarPararPararPararSemáforo

Coche

Verde Andar

Cuando encuentres...

En estado...

Realizar acción...

Funcionamiento de la tabla de Comportamientos

de ...

Page 33: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Agente: Funciones

//Gestión de los objetivos a alcanzar por el agente

void apilaObjetivo(Accion accion);

void desapilaObjetivo();

int calculaOrientacion(Posicion pIni, Posicion pFin);

boolean estaEnfrente(Posicion pos);

void reorientarse(); // toma la orientación correspondi.

void recibeMensaje(Vector mensaje); //desde el exterior

protected void ejecutaSiguienteAccion(); //ag. concreto

void actualizarPosicion();//Actualiza después del tick()

void draw(Graphics g);

void tick();

Page 34: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Agente: Función tick()

public void tick(){ if(turnoActual != 0) return; else... // Espera turno Vector accionesARealizar = new Vector();

// ENTORNO + COMPORTAMIENTO = ACCION para cada posición vecina p { para cada agente a que se encuentra en p { Accion accion = getAccion(a.getTipo(), a.getEstado()); accionesARealizar.addElement(accion);//Comportam. } } Operaciones posteriores: -Ordenar las acciones por prioridades -Reorientar el agente -Apilar una o varias acciones en la pila de objetivos

ejecutaSiguienteAccion(); // Agente Concreto}

Page 35: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Simulador: Integración de lo anterior

•(Posible inicialización a partir de un fichero de texto)•Mundo (escenario de n x m Posiciones)•Agentes•Sistema de visualización

Page 36: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Simulador: Integración de lo anterior

•Por ser un applet:void init(); void start(); void stop(); void run();

•Para la ejecución:void elegirModo (String s);//"CONTINUO" => por tiempo cada SLEEP_MILLIS

milisegundos//"TECLADO" => por pulsación de ENTER. String modoActual (); // Devuelve el modo

actual

•Gestión de los agentes:void addAgente (Agente);void removeAgente (Agente);boolean handleRequestedEvent (Event);void clickRaton(Point p); //El usuario selecciona un agentevoid seleccionarAgente(Agente a);void deSeleccionarAgente();

Page 37: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Concreta Semáforo

•Implementación de la clase Agente•Estructura de datos personalizada

class Semaforo extends AgenteTipo = “Semáforo”Posiciones permitidas = {“road”,”cebra”}Estados = {“rojo”,”ámbar”,”verde”}Acciones = {“Intermitencia”}Comportamiento: {} (No reacciona ante ningún agente)Representación = semaforo.gif

Page 38: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Concreta Coche

•Implementación de la clase Agente•Estructura de datos personalizada

class Coche extends AgenteTipo = “Coche”Posiciones permitidas = {“road”,”cebra”}Estados = {“andando”,”parado”}Acciones = {“Ir_a”,”parar”,”andar”}Comportamiento:Representación = coche.gif

ParadoAndando

RojoÁmbar

PararPararPararPararSemáforo

Coche

Verde Andar

Cuando encuentres...

En estado... Realizar acción...

Page 39: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en Agentes

Clase Concreta Persona

Implementación de la clase Agente Estructura de datos personalizada class Persona extends Agente Tipo = “Persona” Posiciones permitidas = {“acera”,”cebra”} Estados = {“andando”,”parado”} Acciones = {“Ir_a”,”parar”,”andar”,”coger”} Comportamiento: Representación = persona.gif

Page 40: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en Agentes

Clase Concreta Tesoro

Implementación de la clase Agente Estructura de datos personalizada class Tesoro extends Agente Tipo = “Tesoro” Posiciones permitidas = {“acera”} Estados = {“activado”,”oculto”} Acciones = {“Intermitencia”} Comportamiento: No reacciona ante ningún agente Representación = tesoro.gif

Page 41: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase Concreta CarreteraAutoCarga•Permite simular un escenario almacenado previamente en un fichero

Public class CarreteraAutoCarga extends Simulador{ CarreteraAutoCarga();

// Solicita al usuario un escenario previamente almacenado // Extrae datos (Parser) de dicho fichero // Inicializa el objeto Mundo con las Posiciones adecuadas // Crea los agentes correspondientes y les asigna Posición boolean cargaEscenario();

//Dado el nombre de un agente, devuelve una instancia //del mismo Agente creaAgentePorNombre(String nombre);

}

Page 42: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase ResuelveRutasJESS

•El usuario selecciona un agente con el ratón•El usuario ordena al agente que se desplace hacia una posición determinada•Esta clase halla el camino más corto para ir de la posición actual del agente a otra dada•Los cálculos se realizan sobre un croquis del terreno con las posiciones sobre las que se puede mover el agente•Se introduce el objetivo (IR_A) en la pila del agente•El agente se va desplazando hacia esa posición, teniendo en cuenta objetivos más prioritarios, como por ejemplo, parar ante un semáforo.

Page 43: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase ResuelveRutasJESS

1º Seleccionoagente...

2º Fijo destino

Page 44: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase ResuelveRutasJESS: Implementación

•Integración de JAVA con JESS (CLIPS)•Algoritmo de RETE•Procedimiento:

1º.- JAVA•Crear motor Rete•Especificar fichero .clp•Introducir parámetros (Objetos) en una tabla de intercambio

2º.- JESS•Extraer parámetros de la tabla de intercambio a la memoria de trabajo•Ejecutar acciones

3º.- JAVA•Ejecutar fichero .clprete.run();

4º.- JESS•Ejecución del fichero CLIPS tal y como se ha estudiado en el curso•Colocar resultados en tabla de intercambio

5º.- JAVA•Extracción de resultados•Eliminar objeto Rete (si

procede)

Page 45: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase ResuelveRutasJESS: Implementación (II)

1º JAVA String ficheroJESS = "(batch \"ir_a.clp"\)"; String bindAltoTablero = "(bind ?*alto-tablero*” +tablero.length + " )"; ...Más parámetros iniciales...Rete rete = new Rete();rete.store ("RUTA-SOLUCION", sol); // Sol es Vector

3º JAVA

rete.executeCommand(ficheroJESS);rete.executeCommand(bindAltoTablero);// ...Más.. rete.executeCommand ("(assert (ruta-solucion (fetch RUTA-SOLUCION)))");rete.executeCommand(“(reset)”);

rete.run ();

Value val = rete.fetch ("RUTA-SOLUCION");sol = (Vector)val.externalAddressValue( rete.getGlobalContext());

2º JESS

4º JESS: Ejecución del fichero .clp

5º JAVA

Page 46: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase ResuelveRutasJESS: Implementación (III)(defrule inicial (initial-fact)=> ... (assert (nodo (estado ?*inicial*) (camino ?indice-inicial) (heuristica (heuristica ?*inicial*)) (coste 0) (clase abierto))) (assert (encontrada no)))

(defrule paso-arriba ; También reglas paso-abajo, paso-izquierda... (nodo (estado ?x ?y&:(and (> ?y 0) (= ?*ok* (valor-de (create$ ?x (- ?y 1)))))) (camino $?cam) (coste ?cost) (clase cerrado))=> (bind ?punto (create$ ?x (- ?y 1))) (assert (nodo (estado ?punto) (camino $?cam (indice-de ?punto)) (heuristica (heuristica ?punto)) (coste (+ 1 ?cost)) (clase abierto))))

Page 47: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Entorno de simulación basado en AgentesClase ResuelveRutasJESS: Implementación (IV); Expandimos el nodo mas prometedor(defrule pasa-el-mejor-a-cerrado (declare (salience -10)) ?nodo <- (nodo (clase abierto) (heuristica ?h1)) (not (nodo (clase abierto) (heuristica ?h2&:(< ?h2 ?h1)))) => (modify ?nodo (clase cerrado)))

(defrule borra-repetido ... ) ; Borra nodos repetidos(defrule borra-costoso ...) ; Borra nodos con coste mayor que la mejor heurística

(defrule encontrada-solucion (declare (salience 50)) ... (ruta-solucion ?rs) ; Vector colocado desde java => ; Rellenamos el vector solución para que se pueda rescatar desde java (while (<= ?i ?lon) do (bind ?coor-x (nth$ 1 (coordenadas-de (nth$ ?i $?pasos)))) (bind ?coor-y (nth$ 2 (coordenadas-de (nth$ ?i $?pasos)))) ;Añadimos las coordenadas de la casilla al vector solucion (call ?rs addElement (implode$ (create$ ?coor-x)) ) (call ?rs addElement (implode$ (create$ ?coor-y)) ) (bind ?i (+ ?i 1)) ))

Page 48: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001
Page 49: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Herramientas para SIMSGenerador de Escenarios

•Permite generar o editar un escenario•Interfaz gráfica

Creación

OBJETO ESCENARIO

ALTO_TOTAL 4000 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0

TIPOS_SUELO 3

treeNUMERO_AGENTES 3

6 13 0

TIPOS_AGENTE 2coche

Edición

Page 50: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

•Tamaño del mapa•Descripción del mapa•Leyenda que permite averiguar a qué tipo de Posición pertenece cada código•Coordenadas y tipo de los agentes•Leyenda que resuelve el tipo de agentes

Herramientas para SIMS Descripción de escenarios:

ficheros de texto

OBJETO ESCENARIONOMBRE PaisajeRuralCASILLAS_ANCHO 15CASILLAS_ALTO 10ANCHO_TOTAL 600ALTO_TOTAL 400

0 0 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1 1 1 0 0 0 1 0 0 0 0 1 0 0 1 1 0 1 0 0 0 1 0 0 0 0 1 0 0 1 0 1 1 1 1 1 1 1 1 1 1 1 0 0 1 0 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 0 1 0 0 0 0 1 1 1 1 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 0 1 0 0 2 0 1 1 0 0 1 1 0 1 0 0 1 0 0 2 0 0 1 1 1 1 1 1 1 0 0 1 0 0 2 0 0 0 0 0 1 0 2 1 1 1 1 0

TIPOS_SUELO 3groundroadtree

NUMERO_AGENTES 36 13 07 3 07 10 1

TIPOS_AGENTE 2coche

semaforo

Paisaje.txt

Page 51: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Herramientas para SIMSOtros aspectos

•Paquete com.next.gt [GAMELET]•Agiliza la visualización de imágenes en la ventana•Basado en Applets•Soporte para juegos tipo Arcade en dos dimensiones

•Paquete JESS [JESS]•Integra en Java toda la funcionalidad que ofrece CLIPS•Ofrece su notación para escribir reglas•La sintaxis nos recuerda a LISP

Page 52: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Herramientas para SIMSOtros aspectos

•Trabajo anterior [FAB2000] Correcto enfoque del problema Resultado vistoso Integración de los paquetes anteriores Intento de generalizar a n dimensiones

•Estructuras de datos ineficientes•Dificultad para seguir el código•Imposibilidad de visualizar más de 2 dim.

Muy escaso uso de los paquetes

Page 53: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001
Page 54: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Ampliaciones

•Función tick() del Agente implementada en JESS•Facilidad para “ver” el entorno en un radio de varias

casillas•Flexibilidad para programar la forma de percibir•Potencia: se puede extraer muchísima información

del entorno

Page 55: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Ampliaciones

•Más atributos propios de cada agente•Coche: nivel de gasolina, color, nº pasajeros...

•Comportamiento Simple (Actual)

Acción simple(Terreno + Otros Agentes) + Estado propio

•Comportamiento Complejo

Acción CompuestaEj: Adelantamiento, ir a gasolinera, montar “autoestopista”

(Terreno + Otros Agentes) + Estado propio Acción simple

Acción simple

Acción simple

Page 56: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001
Page 57: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

SIMS: Características•Entorno de simulación basado en agentes (reactivos)

•Definición y edición rápida y sencilla de escenarios

•Modelado del comportamiento

•Integración con JESS

ConclusionesCampo abierto

Page 58: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

ConclusionesCampo abierto

SIMS: Puntos a favor•Comenzando con unidades sencillas, surgen simulaciones complejas•A partir de reglas sencillas se pueden modelar comportamientos muy complejos•Grandes posibilidades de ampliación (en la línea de los comportamientos de los agentes•Configuración mediante ficheros: Posibilidad de intercambiar escemarios, agentes, comportamientos... (Ver AgentSheets [AS2000])

SIMS: Puntos en contra•Consumo de recursos proporcional al nº de agentes•Movimiento discreto: Ciclos de reloj

•El resultado depende a veces de qué agente ejecuta su tick() antes

Page 59: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001
Page 60: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001

Referencias•[HN96] “Software Agents: An Overview”, Hyacinth S. Nwana, Knowledge Engineering Review, Vol 11, No 3, pp.1-40, Sept 1996•[AS2000] AgentSheets http://www.agentsheets.com•[FAB2000] “Simulación con agentes”, Luis Fabiani Bendicho, ISBC Enero 2000•[ARJA96] “Tactile Programming: A Unified Manipulation Paradigm Supporting Program Comprehension, Composition and Sharing”, Alexander Repenning and James Ambach, in Proceeding of Visual Languages 1996, Boulder, Colorado: IEEE Computer Society. •[JESS] Jess, The Java Expert System Shell, http://herzberg.ca.sandia.gov/jess •[GAMELET] GAMELET, Mark G. Tacchi, [email protected]