Subido por Alicia Esther Joy Ramirez

Prácticas - 1

Anuncio
DASI 2020‐2021 – Práctica de Drools
Problema
Dado un grafo dirigido arbitrario, determinar si existe un camino entre dos nodos cualesquiera.
Solución con CLIPS
Ver fichero “Paths.clp” en el Campus Virtual. Tienes Clips instalado en el laboratorio.
3 tipos de hechos:



edge. Define que existe un arco directo desde el nodo marcado como initial
hasta el nodo marcado como final.
path. Define que existe un camino desde el nodo marcado como initial hasta el
nodo marcado como final.
question. Utilizado para preguntar si existe un camino desde el nodo marcado
como initial hasta el nodo marcado como final.
Los hechos iniciales (deffacts) sólo necesitan indicar cuales son los arcos (edge) que
existen en el grafo y las preguntas a responder (question). Los caminos existentes (path)
se calculan mediante las reglas dinámicamente.
2 grupos de reglas:


Cálculo de caminos (path) con las reglas path-direct y path-indirect. La
primera es el camino básico del nodo inicial al final cuando hay un arco directo del
nodo inicial al final. La segunda es el camino del nodo inicial al final pasando por al
menos un nodo intermedio.
Respuesta a preguntas (question) con las reglas question-yes y questionno. La primera responde afirmativamente a la pregunta porque existe un camino
entre los nodos indicados. La segunda responde negativamente a la pregunta porque
no existe un camino entre los nodos indicados.
Ejercicio
Traslada la solución anterior a Java + Drools. Tendrás que


Crear el fichero drl de reglas Drools que traduce el fichero Clips. No introduzcas las
preguntas.
Crear el código Java para cargar las preguntas, ejecutar la base de reglas sobre los
hechos y mostrar la respuesta.
Usa el ejemplo disponible en la presentación de la clase de teoría.
Descargar