Download Drools y Drools4Jade..

Document related concepts
no text concepts found
Transcript
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.