Drools y Drools4Jade..

Download Report

Transcript Drools y Drools4Jade..

Alejandro Ramírez José Sáurez A44310 A44994

        Introducción.

Algoritmo Rete.

Algoritmo ReteOO.

Drools.

Encadenamiento hacia adelante.

Reglas.

Base de Conocimiento.

Manipulación de Hechos.

     Activación de Reglas.

Drools4JADE.

Behaviours.

Creación de un Agente.

Creación de Reglas GUI.

 Conforme se incrementa la dificultad de los problemas se incrementa el manejo de las reglas de negocio.

 Esto produce software más complejo y susceptible a fallas.

 Regla de Negocio

"Las reglas de negocio describen las políticas, normas, operaciones, definiciones y restricciones presentes en una organización y que son de vital importancia para alcanzar sus objetivos. Las reglas de negocio especifican en detalle lo que una organización puede hacer."

 El trabajar con reglas permite:  Estabilidad: Un motor de reglas puede manejar miles de hechos automáticamente siendo más estable que validaciones realizadas manualmente.

 Escalabilidad: Con un motor de reglas se pueden agregar reglas en tiempo dinámico cuanto sea necesario, haciendo escalable el sistema.

 El trabajar con reglas permite:  Mantenimiento: El mantenimiento de las reglas de negocio se hace más fácil, separando el qué? Del cómo?.

 Repositorio central de reglas: Manipulación y evaluación de reglas se realiza en un mismo lugar, bajo los mismos parámetros y con toda la información disponible.

    Charles Forgy – Rete: A Fast Algorithm for the

Many Pattern / Many Object Pattern Match

Problem – 1982.

Basado en un grafo donde se encuentra la información de las reglas a utilizar.

Sacrifica memoria para incrementar la velocidad de procesamiento de las reglas.

Rendimiento independiente de número de reglas del sistema.

   Es la adaptación del algoritmo Rete para que interactúe con lenguajes orientados a objetos.

Los hechos son objetos Java.

Existen relaciones entre objetos en lugar de tuplas como en Rete.

 Motor open source de manejo de reglas  Bussiness Rule Management System (BRMS)   Manejado por Jboss Utiliza como base el algorimo ReteOO  Mejor integración con objetos (Object Oriented).

 Hechos son objetos comunes.

 Utiliza encadenamiento hacia adelante.

  Es un método de razonamiento utilizando inferencia.

Se basa en datos para inferir más datos hasta alcanzar una meta.

 Ejemplo- Reglas Base:  Si X come mozcas, entonces X es una rana.

 Si X canta, entonces X es un canario.

 Si X es una rana, entonces X es color verde.

  Si X es un canario, entonces X es color amarillo.

Averiguar el color de un animal que canta:  Se activa regla 2 y se obtiene que es un canario.

 Con la información obtenida de 2 se activa la regla 4, determinando que el color es amarillo.

 Se declaran utilizando sintaxis y lenguaje DRL.

 Archivos con extensión .drl

 Semántica Base (o general):  rule-set: Declara exactamente un elemento, el cual lleva un nombre único para el conjunto de reglas.

 import: Importa namespaces para clases utilizadas en las reglas.

 rule: Representa una regla. Debe contener un nombre único y al menos un parámetro (aunque sea vacío).

 Semántica Base (o general):  parameter: Parámetro de una regla. Debe inluir una clase, la cual representa el tipo del parámetro.

 class: La clase de la regla. Puede ser una clase con namespace completo o una clase dentro de un namespace importado.

 Semántica para Java:  namespace: Se dede indicar el namespace xmlns:java=http://drools.org/semantics/java para utilizar semántica Java.

 Condition: Determina si una condición existe. Pertenece a una regla y si se evalúa con True, la condición se ejecuta.

 consequence: Código Java que altera la base de conocimiento cuando se dispara la regla que la contiene.

    Llamado Working Memory.

 También llamado Espacio de Hechos.

Lugar donde se almacena todo el conocimiento del sistema.

Cada elemento del conocimiento se llama hecho.

El conocimiento se puede manipular mediante la manipulación de hechos.

 assertObject:  Agregar un nuevo hecho a la base de conocimiento.

 Hace que el algoritmo Rete actualice el grafo pues nuevas condiciones son verdaderas.

 Se agregan simples objetos Java.

 modifyObject:  Modifica un hecho guardado actualmente en la base de conocimiento.

 retractObject:  Utilizado para retractar o eliminar un hecho de la base de conocimiento.

 Una vez eliminado, el hecho no se puede usar para satisfacer ninguna parte de la condición de activación de una regla.

 Se pueden manipular en código o por ejecución de alguna regla.

 Conforme se manipula la base de conocimiento, las reglas no se ejecutan automáticamente.

 Simplemente quedan activadas: Listas para ser ejecutadas.

 fireAllRules:  Ejecuta todas las activaciones de reglas pendientes.

 El ejecutar activaciones puede manipular la base de conocimiento, generando nuevas activaciones.

 Modificar hechos puede hacer que la regla que se ejecuta se vuelva a activar  Atributo no-loop

  Como su nombre lo indica: Drools + JADE Esto implica:  Uso del motor de reglas Drools  Uso de la plataforma de Agentes JADE  Creación de agentes inteligentes con razonamiento basado en reglas.

  Son el enlace fundamental entre el motor de reglas de Drools y la plataforma JADE.

Existen 2 tipos:  OneShotDroolsBehaviour: Permite hacer asserts una sola vez antes de validarlos contra el motor de reglas  CyclicDroolsBehavour: Permite hacer asserts, validarlos y hacer nuevos asserts, haciendo unn ciclo de validaciones.

      Crear una clase que herede de jade.core.Agent y reimplementar el método setup().

Crear las reglas que el agente seguirá Instanciar un Behaviour (OneShoot o Cyclic).

Agregar las reglas al Behaviour.

Agregar hechos al Espacio de Hechos por medio de asserts.

Manejar los resultados del motor de reglas.

   Drools 4 JADE contiene un agente especial creado para manejar reglas.

Se pueden crear nuevas reglas Se pueden guardar conjuntos de reglas en formato de mensajes ACL, objeto Java o arhivo XML de Drools (.drl).

    http://www.drools.org

http://legacy.drools.codehaus.org/ Extending JADE for Agent Grid Applications. Poggi, Tomaiuolo, Turci. http://etngrid.diit.unict.it/2004/presentations /poggi.pdf

Drools4Jade User Manual.