You are on page 1of 31

Alejandro Ramírez A44310

José Sáurez 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.