Trabajo en ACL2 - Dpto. Ciencias de la Computación e Inteligencia

Anuncio
Razonamiento Automático
ACL 2: Diagramas de Decisión Binarios
F.-J. Martı́n-Mateos
Dpto. Ciencias de la Computación e Inteligencia Artificial
Universidad de Sevilla
Razonamiento Automático - Trabajo ACL 2 – p. 1/13
Diagramas de Decisión Binarios
• Un diagrama de decisión binario (DDB) es un grafo binario acíclico
dirigido en el que los nodos internos representan decisiones binarias
que llevan a una acción representada en los nodos finales
• Ejemplo: cualquier árbol binario
d1
d2
d2
d3
d3
d4
b
d4
a
a
d4
b
a
a
b
d4
a
a
b
Razonamiento Automático - Trabajo ACL 2 – p. 2/13
Diagramas de Decisión Binarios
• El interés de los DDB es que evitan el almacenamiento de información
redundante, al poder compartir los nodos de la estructura
d1
d1
d2
d2
d2
d3
d4
a
d3
d3
d4
b
d2
a
d4
b
a
a
b
d4
d4
a
a
b
d4
a
b
Razonamiento Automático - Trabajo ACL 2 – p. 3/13
Diagramas de Decisión Binarios
• La eliminación de información redundante en un DDB se consigue
mediante ciertos procesos de reducción
• Un proceso de reducción es la eliminación de nodos redundantes: si un
nodo n1 de un DDB tiene como hijos izquierdo y derecho a un mismo
nodo n2 , entonces se puede eliminar el nodo n1 , reemplazando en la
estructura cualquier arco dirigido a n1 por un arco dirigido a n2
d1
d1
d2
d2
d3
a
b
d1
d3
b
b
b
a
b
b
a
b
Razonamiento Automático - Trabajo ACL 2 – p. 4/13
Formalización en ACL 2
• Representamos los nodos internos como listas con:
◦ Un identificador de nodo
◦ El identificador del nodo hijo izquierdo
◦ El identificador del nodo hijo derecho
◦ Para este trabajo se puede prescindir de la decisión asociada al
nodo
• Para los nodos finales usamos la misma representación, en la que los
identificadores de los nodos hijos no están asociados a ningún nodo
• Para asegurar la aciclicidad de la estructura exigimos que los
identificadores de los nodos hijos sean estrictamente mayores que el
identificador del nodo
Razonamiento Automático - Trabajo ACL 2 – p. 5/13
Formalización en ACL 2
• Caracterización de los nodos
(defun nodo-p (nodo)
(and (true-listp nodo)
(equal (len nodo) 3)
(< (car nodo) (cadr nodo))
(< (car nodo) (caddr nodo))))
• Un DDB es una lista de nodos
(defun ddb-p (ddb)
(if (endp ddb)
t
(and (nodo-p (car ddb))
(ddb-p (cdr ddb)))))
Razonamiento Automático - Trabajo ACL 2 – p. 6/13
Formalización en ACL 2
• Un nodo redundante es aquel cuyo segundo y tercer elementos son
iguales
(defun redundante (nodo)
(= (cadr nodo)
(caddr nodo)))
• La siguiente función busca un nodo redundante en un DDB
(defun busca-redundante (ddb)
(cond ((endp ddb) nil)
((redundante (car ddb)) (car ddb))
(t (busca-redundante (cdr ddb)))))
Razonamiento Automático - Trabajo ACL 2 – p. 7/13
Formalización en ACL 2
• La eliminación de un nodo redundante supone sustituir en la estructura
unos identificadores por otros
• La siguiente función reemplaza el indice i por el indice j en un nodo
(defun reemplaza-nodo (i j nodo)
(list (car nodo)
(if (= (cadr nodo) i) j (cadr nodo))
(if (= (caddr nodo) i) j (caddr nodo))))
• La siguiente función reemplaza el indice i por el indice j en un ddb
(defun reemplaza-ddb (i j ddb)
(if (endp ddb)
nil
(cons (reemplaza-nodo i j (car ddb))
(reemplaza-ddb i j (cdr ddb)))))
Razonamiento Automático - Trabajo ACL 2 – p. 8/13
Formalización en ACL 2
• El proceso de eliminación de nodos redundantes en un DDB consiste
en localizar un nodo redundante en el DDB, eliminarlo y sustituir
cualquier referencia al identificador del nodo redundante por el
identificador de su nodo hijo izquierdo (o derecho)
• La siguiente función elimina un nodo de un ddb
(defun elimina-nodo (nodo ddb)
(cond ((endp ddb) nil)
((equal nodo (car ddb)) (cdr ddb))
(t (cons (car ddb) (elimina-nodo nodo (cdr ddb))))))
Razonamiento Automático - Trabajo ACL 2 – p. 9/13
Formalización en ACL 2
• Finalmente la siguiente función implementa el proceso de eliminación
de nodos redundantes
(defun reduce-redundantes (ddb)
(let ((nodo (busca-redundante ddb)))
(if nodo
(reduce-redundantes
(reemplaza-ddb (car nodo) (cadr nodo)
(elimina-nodo nodo ddb)))
ddb)))
Razonamiento Automático - Trabajo ACL 2 – p. 10/13
Trabajo: Propiedades de la eliminación de nodos redundantes
• La eliminación de nodos redundantes en un DDB mantiene la
estructura de DDB
(defthm reduce-redundantes-es-ddb
(implies (ddb-p ddb)
(ddb-p (reduce-redundantes ddb))))
• La estrutura obtenida como resultado de eliminar los nodos
redundantes de un DDB no tiene más nodos redundantes
(defthm reduce-redundantes-funciona
(implies (ddb-p ddb)
(not (busca-redundante (reduce-redundantes ddb)))))
Razonamiento Automático - Trabajo ACL 2 – p. 11/13
Trabajo: Propiedades de la eliminación de nodos redundantes
• Valoración del trabajo: 2 puntos
• Se evaluarán
◦ corrección de la solución
◦ documentación del trabajo
◦ presentación del trabajo (si se estima necesario)
Razonamiento Automático - Trabajo ACL 2 – p. 12/13
Trabajo: Propiedades de la eliminación de nodos redundantes
• Condiciones del trabajo
◦ el trabajo se desarrollará en un único fichero admisible como fichero
◦
◦
◦
◦
de entrada para el sistema ACL 2; la documentación del trabajo se
incluirá en dicho fichero como comentario
el trabajo es individual: en caso de coincidencia extrema entre
varios trabajos la nota será repartida
forma parte tanto de la evaluación tradicional como de la alternativa
la entrega se realizará vía Web a través de la página de la
asignatura
el plazo de entrega es hasta el día 31 de Enero de 2007
Razonamiento Automático - Trabajo ACL 2 – p. 13/13
Descargar