Enunciados de septiembre de 2003

Anuncio
PROGRAMACIÓN ORIENTADA A LA INTELIGENCIA ARTIFICIAL
Códigos: INFORMÁTICA DE SISTEMAS
Código Carrera: 40
Septiembre 2003, Original, Duración: 2 HORAS
ASIGNATURA: 3144
Material permitido: NINGUNO
Advertencias: Deben responderse en hojas separadas las cuestiones de LISP y PROLOG. Poner el nombre
en todas las hojas. Se valorará especialmente el estilo, la adecuada documentación del código, que el examen
esté compensado y que no incluya errores conceptuales importantes.
1- Considere un sistema basado en reglas que realiza inferencia mediante encadenamiento hacia
atrás. Los hechos ciertos se almacenan en una lista asignada a la variable *hechos*:
(defvar
*hechos*
‘(A H J M) )
y las reglas en otra lista asignada a la variable *reglas*:
(defvar
*reglas*
‘( (
(
(
(
(
(A H) (C) )
(C D R) (L) )
(B J) (C) )
(J M) (D) )
(D A) (R) ) ) )
donde cada regla consta de dos sublistas. La primera sublista almacena el antecedente: conjunto
de condiciones que se deben cumplir conjuntamente para que la regla pueda ser aplicada. La
segunda sublista contiene el consecuente: hecho que pasa a ser cierto cuando la regla sea
ejecutada.
En un proceso de encadenamiento hacia atrás, aquel hecho cuya veracidad pretendamos
verificar da lugar a un árbol Y-O en función del contenido de *reglas*. Por ejemplo,
> (arbol-YO ‘R)
(enlaceY (enlaceY J M) A)
> (arbol-YO ‘L)
(enlaceY (enlaceO (enlaceY A H) (enlaceY B J) ) (enlaceY J M) (enlaceY (enlaceY J M) A) )
> (arbol-YO ‘A)
A
Por tanto, cualquier árbol Y-O generado en un proceso de encadenamiento hacia atrás no
contendrá ningún hecho que pertenezca al consecuente de una regla perteneciente a *reglas*. Se
pide, en primer lugar, escribir el procedimiento LISP, denominado “arbol-YO”, que calcule el
árbol Y-O asociado a cierto hecho, teniendo en cuenta el contenido de *reglas*.
En segundo lugar, dado un árbol Y-O cualquiera, no generado necesariamente a partir de
*reglas*, construir un procedimiento LISP, denominado “evaluar-arbol-YO”, que determine si
el hecho asociado a ese árbol puede o no ser considerado como cierto en función del contenido
de *hechos*. Por ejemplo,
> (evaluar-arbol-YO
T
> (evaluar-arbol-YO
T
> (evaluar-arbol-YO
NIL
> (evaluar-arbol-YO
T
Valoración: 3,5 puntos.
‘(enlaceY A H))
‘(enlaceO A B))
‘K)
‘(enlaceY (enlaceO A K) A M))
CONTINÚA AL DORSO...
2- Escriba un procedimiento LISP que solicite al usuario dos matrices numéricas, las
multiplique y muestre el resultado en pantalla de manera que cada fila de la matriz resultante
aparezca en un renglón y se reserven 7 espacios para escribir cada número.
Valoración: 2,5 puntos.
3- Considere el siguiente programa escrito en Prolog:
escritorFrances:-
escritor(X),
write(X),write(‘es un escritor’),nl,
frances(X),
write(‘y frances’),nl.
escritorFrances:-
write(‘error’),nl.
escritor(X):-
nombre(X).
escritor(X):-
write(‘no se encuentran mas’),nl,
fail.
nombre(joyce). nombre(cervantes). nombre(witman).
frances(sartre).frances(camus).
Indique qué mensajes generaría por pantalla un intérprete de Prolog ante la consulta
escritorFrances. A continuación, sitúe predicados de corte donde juzgue conveniente de modo
que los mensajes sean:
a)
b)
c)
d)
e)
joyce es un autor
no se encuentran mas
error
joyce es un autor
cervantes es un autor
witman es un autor
no se encuentran mas
joyce es un autor
error
joyce es un autor
joyce es un autor
cervantes es un autor
witman es un autor
error
Valoración: 2 puntos.
4- Defina en Prolog los siguientes predicados:
a) juntoA(X,Y,List), que pueda utilizarse para enumerar los pares consecutivos de una
lista (ejemplo: juntoA(X,Y,[1,2,3]) debe generar las soluciones X=1,Y=2 y X=2,Y=3).
b) parImpar(List,Par,Impar), que pueda utilizarse para separar una lista en sus elementos
pares e impares (ejemplo: parImpar ([a,b,c,d],P,I) debe generar las soluciones P = [b,d],
I = [a,c]).
Describa las trazas de ejecución de las consultas:
juntoA( X,Y,[] ), juntoA ( X, Y, [1,2] ) y juntoA (1,2, List );
y asimismo de las consultas:
parImpar ( [], P, I ), parImpar ( [a,b], P, I) y parImpar ( L, [a,b], [c,d] )
Valoración: 2 puntos.
Documentos relacionados
Descargar