Descargar

Integración Objetos-Reglas – Java (página 2)

Enviado por Pablo Turmero


Partes: 1, 2, 3
edu.red Extender Jess Se pueden añadir nuevas funciones a Jess programadas en Java (Userfunction)

También se puede añadir paquetes de funciones (Userpackage)

edu.red Acceso a objetos Java Desde Jess se puede crear una instancia de cualquier clase de Java y acceder a sus métodos y atributos públicos: (defglobal ?*str-buf* = (new java.lang.StringBuffer 100)) (call ?*str-buf* append "Some String Data To Append")

El orden de los argumentos es el que realiza el enlace entre la llamada y el método, y la equivalencia de tipos es la contemplada en la clase “jess.Value”.

edu.red Jess en la WWW Se permite el uso libre en ámbitos educativos, sin fines comerciales. En esa página se puede descargar Jess, aceptando los términos de su licencia. Es la página con información relevante sobre Jess

edu.red EL CASO DEL ASCENSOR

edu.red Descripción Se trata de implementar una parte del ejercicio que se propone en el apéndice F del libro de Deitel & Deitel “Cómo programar en Java”. El ejercicio propone una aproximación incremental a la implementación de un simulador de un edificio con ascensores. El ejercicio completo toca todos los aspectos interesantes de la programación en Java (threads,excepciones,clases….).

edu.red Historia del trabajo Se realiza una primera versión del problema del ascensor controlado por reglas. Dicha implementación posee una interfaz gráfica estática y un conjunto de reglas básico . Posteriormente, se realiza una nueva versión ampliando y mejorando diferentes aspectos.

edu.red Primera versión La situación inicial era una implementación parcial del problema del ascensor. Objetivo: hacer funcionar un motor de inferencia conjuntamente con el ascensor. Se pretende que la política de movimientos del ascensor sea configurable mediante ficheros de reglas Clips.

edu.red Ampliaciones realizadas (1) Se rediseña la GUI de la aplicación para facilitar el seguimiento de la ejecución de una forma más intuitiva.

Se revisa el conjunto de reglas para eliminar o unificar reglas.

Objetivo: desarrollar clases genéricas para simplificar al máximo la integración Java – Jess (paquete ISBC_Jess)

edu.red Ampliaciones realizadas (2) Se amplía a múltiples ascensores.

La aplicación es más genérica y fácilmente parametrizable.

Se corrigen errores detectados.

edu.red Comparación entre versiones (1)

edu.red Comparación entre versiones (2)

edu.red Comparación entre versiones (3)

edu.red Comparación entre versiones (4)

edu.red El motor de inferencia

edu.red Control del edificio

edu.red ¿ Dónde interviene Jess ? El programa contiene una clase llamada “Controlador” que se ocupa de decidir la dirección del ascensor y su parada.

Se trata de sustituir el engorroso código que contiene, por una base de conocimiento y un motor de inferencia en Jess.

edu.red ¿ Dónde interviene Jess ? (2) Se intentará que el programa al arrancar lea unos ficheros Clips en el que aparecen las reglas que usará para estas decisiones.

Para ello, se utilizarán las clases desarrolladas para facilitar la integración Java – Jess (ISBC_Jess)

edu.red Objetivos Aprender a enlazar el lenguaje Java con otro diferente (en este caso, Jess) Utilizar la interfaz gráfica de forma más sofisticada. Desarrollar la capacidad de análisis de código desarrollado anteriormente con el fin de optimizarlo y/o detectar errores. Manejo de Threads y excepciones en Java.

edu.red Posibles ampliaciones Revisión de las reglas Clips con el objetivo de optimizarlas y dotarlas de mayor “inteligencia” (algoritmo del elevador). Intentar reducir el número de hechos que se asertan desde el código Java, para simplificarlo. Permitir que la interfaz gráfica no esté limitada a un número máximo de elementos (pisos, ascensores…) en la pantalla.

edu.red Posibles ampliaciones (2) Incluir limitaciones físicas: ascensores con capacidad máxima… Generación de pasajeros más realista: en lugar de generarlos periódicamente y con destino aleatorio, establecer unas probabilidades de origen y destino.

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