taller sistemas expertos
TRANSCRIPT
-
7/30/2019 Taller Sistemas Expertos
1/2
Ejercicio 1.8
Dado el siguiente programa:
Lnea 1. f(1,uno).
Lnea 2. f(s(1),dos).Lnea 3. f(s(s(1)),tres).
Lnea 4. f(s(s(s(X))),N):- f(X,N).
Cmo se comporta PROLOG ante las siguientes preguntas?
a) ?-f(s(1),A).
A=dos
Ante la pregunta PROLOG busca la respuesta entre las lneas de la parte superior, y
equivale a la lnea 2.
f(s(1),A). = f(s(1),dos) f(s(1),dos).
b)?-f(s(s(1)),dos).false
Esta pregunta al buscar la respuesta en el programa PROLOG no encuentra ningunalnea que d solucin, por lo tanto la respuesta es false.
c)?-f(s(s(s(s(s(s(1)))))),C).C=uno
En esta pregunta el programa PROLOG acude a la lnea 4.
f(s(s(s(X))),N):- f(X,N). y toma de la pregunta el valor de X= s(s(s(1)))quedando asi: f(s(s(s(X))),C),
Nuevamente el programa acude recursivamente a la lnea 4.f(s(s(s(X))),N):- f(X,N). y queda asi: f(X,C).
Luego el programa acude a lnea 1, donde la variable C, toma el valor de uno
d)?-f(D,tres).Para la primera respuesta PROLOG busca en la lnea tres equivalente af(s(s(1)),tres), donde:
D=s(s(1));Ya tomado este valor quedara f(s(s(1)),tres), y recurrira a la lnea 4,f(s(s(s(X))),N):- f(X,N), conociendo que D=s(s(1)); tomara el siguiente valor
D=s(s(s(s(s(1)))));En la siguiente respuesta el valor D equivalente a s(s(s(s(s(1))))), tomara el valorde
D=s(s(s(s(s(s(s(s(l))))))));
-
7/30/2019 Taller Sistemas Expertos
2/2
LuegoD=s(s(s(s(s(s(s(s(s(s(s(1)))))))))));...
Convirtindose en un ciclo que se vuelve infinito
Se muestra grfico que demuestra la realizacin de las pruebas