razonamiento automático acl2: diagramas de decisión binarios · pdf...
TRANSCRIPT
Razonamiento Automático - Trabajo ACL2 – p. 1/13
Razonamiento Automático
ACL2: Diagramas de Decisión Binarios
F.-J. Martın-Mateos
Dpto. Ciencias de la Computacion e Inteligencia Artificial
Universidad de Sevilla
Razonamiento Automático - Trabajo ACL2 – p. 2/13
Diagramas de Decision Binarios
• Un diagrama de decisión binario (DDB) es un grafo binario acíclicodirigido en el que los nodos internos representan decisiones binariasque llevan a una acción representada en los nodos finales
• Ejemplo: cualquier árbol binario
d1
d3
d4 d4
ab a ba
d2
d3
d4 d4
b a ba
d2
a
Razonamiento Automático - Trabajo ACL2 – p. 3/13
Diagramas de Decision Binarios
• El interés de los DDB es que evitan el almacenamiento de informaciónredundante, al poder compartir los nodos de la estructura
d1
d3
d4 d4
ab a ba
d2
d3
d4 d4
b a ba
d2
a
d1
d2 d2
d3
a b
d4 d4
Razonamiento Automático - Trabajo ACL2 – p. 4/13
Diagramas de Decision Binarios
• La eliminación de información redundante en un DDB se consiguemediante ciertos procesos de reducción
• Un proceso de reducción es la eliminación de nodos redundantes: si unnodo n1 de un DDB tiene como hijos izquierdo y derecho a un mismonodo n2, entonces se puede eliminar el nodo n1, reemplazando en laestructura cualquier arco dirigido a n1 por un arco dirigido a n2
d3
b b bb
d1
d2
d3
a
d1
d2
a b b
d1
a b
Razonamiento Automático - Trabajo ACL2 – p. 5/13
Formalizacion en ACL2
• 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 alnodo
• Para los nodos finales usamos la misma representación, en la que losidentificadores de los nodos hijos no están asociados a ningún nodo
• Para asegurar la aciclicidad de la estructura exigimos que losidentificadores de los nodos hijos sean estrictamente mayores que elidentificador del nodo
Razonamiento Automático - Trabajo ACL2 – p. 6/13
Formalizacion en ACL2
• 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 ACL2 – p. 7/13
Formalizacion en ACL2
• Un nodo redundante es aquel cuyo segundo y tercer elementos soniguales
(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 ACL2 – p. 8/13
Formalizacion en ACL2
• La eliminación de un nodo redundante supone sustituir en la estructuraunos 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 ACL2 – p. 9/13
Formalizacion en ACL2
• El proceso de eliminación de nodos redundantes en un DDB consisteen localizar un nodo redundante en el DDB, eliminarlo y sustituircualquier referencia al identificador del nodo redundante por elidentificador 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 ACL2 – p. 10/13
Formalizacion en ACL2
• Finalmente la siguiente función implementa el proceso de eliminaciónde 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 ACL2 – p. 11/13
Trabajo: Propiedades de la eliminacion de nodos redundantes
• La eliminación de nodos redundantes en un DDB mantiene laestructura de DDB
(defthm reduce-redundantes-es-ddb(implies (ddb-p ddb)
(ddb-p (reduce-redundantes ddb))))
• La estrutura obtenida como resultado de eliminar los nodosredundantes 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 ACL2 – p. 12/13
Trabajo: Propiedades de la eliminacion 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 ACL2 – p. 13/13
Trabajo: Propiedades de la eliminacion de nodos redundantes
• Condiciones del trabajo◦ el trabajo se desarrollará en un único fichero admisible como ficherode entrada para el sistema ACL2; la documentación del trabajo seincluirá en dicho fichero como comentario
◦ el trabajo es individual: en caso de coincidencia extrema entrevarios 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 laasignatura
◦ el plazo de entrega es hasta el día 31 de Enero de 2007