Download - Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001
![Page 1: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/1.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/2.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/3.jpg)
![Page 4: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/4.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/5.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/6.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/7.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/8.jpg)
![Page 9: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/9.jpg)
Punto de referencia
http://www.agentsheets.com
![Page 10: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/10.jpg)
¿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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/11.jpg)
¿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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/12.jpg)
¿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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/13.jpg)
¿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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/14.jpg)
¿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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/15.jpg)
¿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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/16.jpg)
¿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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/17.jpg)
![Page 18: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/18.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/19.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/20.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/21.jpg)
![Page 22: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/22.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/23.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/24.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/25.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/26.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/27.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/28.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/29.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/30.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/31.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/32.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/33.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/34.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/35.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/36.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/37.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/38.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/39.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/40.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/41.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/42.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/43.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/44.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/45.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/46.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/47.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/48.jpg)
![Page 49: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/49.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/50.jpg)
•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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/51.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/52.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/53.jpg)
![Page 54: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/54.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/55.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/56.jpg)
![Page 57: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/57.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/58.jpg)
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](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/59.jpg)
![Page 60: Carolina Puyuelo César Esandi Ingeniería de los Sistemas Basados en el Conocimiento Curso 2000-2001](https://reader035.vdocumento.com/reader035/viewer/2022062217/5665b4961a28abb57c926ded/html5/thumbnails/60.jpg)
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]