taller sistemas expertos

Upload: josman97

Post on 14-Apr-2018

217 views

Category:

Documents


0 download

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