Tarea 5 - Pontificia Universidad Católica de Chile

Anuncio
Pontificia Universidad Católica de Chile
Escuela de Ingenierı́a
Departamento de Ciencia de la Computación
Tarea 5
IIC2212 - Lógica para Ciencia de la Computación
Primer Semestre, 2004
Entrega: Jueves 10 de junio, hasta las 23:59 hrs., en archivos separados a [email protected].
Estructuras de datos
La estructura de dato árbol binario puede ser representada en Prolog a través el functor arb/3.
Ası́, arb(Key,Iz,Der) representa a un árbol cuyo nodo raı́z contiene el valor Key, y cuyos subárboles
izquierdo y derecho son, respectivamente, Iz y Der. Adicionalmente, la constante nil representa
al árbol vacı́o. De esta manera el árbol de la siguiente figura
a
b
c
d
queda representado por el término arb(a,arb(b,nil,nil),arb(c,nil,arb(d,nil,nil))).
Escriba los siguientes predicados Prolog.
1. pertenece/2, tal que pertenece(Key,Arb) se satisface ssi el elemento Key está presente en
el árbol Arb.
2. de busqueda/1, tal que de_busqueda(Arb) se satisface ssi Arb contiene sólo números naturales1 y es un árbol binario de búsqueda (ABB); es decir, uno que cumple que para todo nodo
interno, los elementos que se encuentran en el subárbol izquierdo son menores o iguales a él
y los que se encuentran al lado derecho son mayores que él.
3. menor/2, tal que menor(X,Arb) se satisface ssi X es el menor elemento del ABB Arb.
4. insertar/3, tal que insertar(X,Arb,Arb2), cuando Arb contiene un ABB y X es un número,
unifica a Arb2 con un ABB con exactamente todos los elementos de Arb más X.
5. abusqueda/2, tal que abusqueda(Arb1,Arb2) se satisface ssi Arb2 es un ABB que tiene los
mismos elementos que el árbol Arb1. (Puede suponer que Arb1 sólo contiene números.)
6. juntar/3, tal que juntar(Arb1,Arb2,Arb3) se satisface ssi Arb3 es un ABB que contiene
todos y sólo los elementos de Arb1 y de Arb2. Suponga que Arb1 y Arb2 son ABBs.
1
Estos números están representados en la notación s(. . . (0) . . .) vista en clases.
Prolog y mundos dinámicos
En el mundo del laberinto con persecución (MLP) existen dos agentes, bueno y malo, quienes
se pueden desplazar sobre una matriz de 10 × 9 celdas (ver figura). Los agentes pueden ubicarse
sobre exactamente una celda libre (marcada con blanco en el dibujo). Cada agente puede ejecutar
cuatro movimientos: arriba, abajo, izquierda y derecha, que lo llevan a la celda vecina en la dirección
homóloga.
...
Y
3
Salida
2
1
2
3
...
1
X
Para representar el MLP en el Cálculo de Situaciones sobre Prolog se ha escogido ocupar los
siguientes predicados y fluentes.
muro(X,Y) se satisface ssi existe un muro en la posición (X, Y) de la matriz.
posicion(A,X,Y,S) se satisface ssi el agente A se encuentra en la posición (X, Y) en la situación
S.
1.
Represente en Prolog la situación inicial tal como la que se muestra en la figura2 .
2.
Escriba axiomas de precondición para cada una de las acciones (identificando por separado
las del agente bueno y las de malo), y de estado sucesor para el fluente posicion/2.
3.
Escriba el predicado salida/1, tal que salida(S) se satisface si S es una situación en la cual
bueno ha salido del laberinto3 .
4.
Una persecución es una sucuencia finita de pasos, que a su vez se componen de una movida
de malo seguida de una movida de bueno. Escriba el predicado escape/1, tal que escape(N)
se satisface si no existe una persecución de N pasos en la que malo alcanza a bueno.
Esta tarea vale por dos notas
2
3
Considere que la situación inicial se representa usando la constante s 0.
Se considera que el sujeto ha salido cuando está sobre la celda marcada con la palabra “Salida”.
2
Descargar