prolog - ingenier­a en sistemas computacionales | .el lenguaje prolog prolog es un lenguaje...

Download Prolog - Ingenier­a en Sistemas Computacionales | .El lenguaje Prolog Prolog es un lenguaje Declarativo,

If you can't read please download the document

Post on 03-Oct-2018

231 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • PrologProlog

    II.4

  • El lenguaje PrologProlog es un lenguaje Declarativo, a diferencia de otros lenguajes que son orientados a objetos o procedurales

    Creador: Robert Kowalski Algoritmo = Lgica + Control Aspectos importantes:

    La forma de representar la informacin. Las tcnicas de bsqueda que se implementan en el

    lenguaje.

  • De Lgica de Primer Orden a Programas Lgicos

    Slo se permiten implicaciones en la representacin de predicados.El formato es:Xi (P1 P 2 P n H)

    Se denominan clusulas de HornP1 P 2 P n es el cuerpoH es el encabezadoPrograma Lgico: Es una coleccin de clusulas de Horn.

  • De Programas Lgicos a Prolog1. Eliminar los cuantificadores universales:

    Son asumidos por Prolog2. Invertir la clusula:

    P1 P 2 P n H Se escribe: H P1 P 2 P n

    3. Escribir como :- Se escribe: H :- P1 P 2 P n

    4. Escribir como comas y con un punto al final: Se escribe: H :- P1, P2, , Pn.

  • EjemploEn cualquier clase, si el maestro es bueno, o si el tema de la

    materia es de inters, entonces los estudiantes estn atentos y animados

    X (tiene_buen_maestro(X) tema_de_inters(X) estudiantes_atentos(X) estudiantes_animados(X))

    Escrito en un programa de Prolog:

    estudiantes_animados(X) :- tiene_buen_maestro(X).estudiantes_animados(X) :- tema_de_interes(X).estudiantes_atentos(X) :- tiene_buen_maestro(X).estudiantes_atentos(X) :- tema_de_interes(X).

  • Bsqueda en PrologLos programas de Prolog son una base de datos con clusulas de HornPara hacer una consulta: ?- busqueda_predicado(X).

    Prolog busca en la base de datos: De forma secuencial, buscando la

    correspondencia del encabezado y la aridad del predicado.

  • Bsqueda en PrologSi encuentra una correspondencia: Verifica si puede hacer correspondencia con los argumentos: Usando las variables en el cuerpo de la clusula Haciendo Unificacin:

    Las variables son instanciadas con constantes

    Si existe correspondencia, la consulta es true.Si no encuentra correspondencia, se asume falsa.

  • Ejemplo deEjemplo dePrologProlog

    II.4

  • EjemploPamela Toms

    Roberto Elizabeth

    Ana Patricia

    Jaime

  • EjemploPamela Toms

    Roberto Elizabeth

    Ana Patricia

    Jaime

    padre(pamela,roberto).padre(tomas,roberto).padre(tomas,elizabeth).padre(roberto,ana).padre(roberto,patricia).padre(patricia,jaime).

    Familia.pl

  • Ejemplo

    Se carga el programa usando [nombre].

  • Ejemplo

    Una consulta con xito

    Una consulta sin xito

  • EjemploOtras consultas:

    ?- padre(X, elizabeth).?- padre(roberto,X).?- padre(X,Y).

  • EjemploQuin es el abuelo de Jaime?

    ?- padre(X, jaime),padre(Y,X).

    Quin es el nieto de Toms?

    ?- padre(tomas,X),padre(X,Y).

    Ana y Patricia tienen el mismo padre?

    ?- padre(X,ana),padre(X,patricia).

  • 17

    Tarea 40:

    1.- Utilizando el programa lgico familia.pl, cul es el resultado de las siguientes consultas? a).- ?- padre(jaime,X). b).- ?- padre(X,jaime). c).- ?- padre(pamela,X), padre(X,patricia). d).- ?- padre(pamela,X), padre(X,Y), padre(Y,jaime).2.- Cul es el significado de los incisos c y d?3.- Formule una consulta en Prolog para lo siguiente: a).- Quin es el padre de Patricia? b).- Tiene Elizabeth un hijo? c).- Quin es el abuelo de Patricia?

  • 18

    Clusula de Horn

    La relacin definida en el programa lgico es padre de.Cmo se puede definir es hijo de?

  • 19

    Clusula de Horn

    La relacin definida en el programa lgico es padre de.Cmo se puede definir es hijo de?

    si X es padre de Y, entonces Y es hijo de X

    padre(X,Y) eshijo(Y,X).

  • 20

    Clusula de Horn

    La relacin definida en el programa lgico es padre de.Cmo se puede definir es hijo de?

    si X es padre de Y, entonces Y es hijo de X

    padre(X,Y) eshijo(Y,X).

    En Prolog:

    eshijo(Y,X) :- padre(X,Y).

  • 21

    Clusula de Horn

    Cmo se puede definir es madre de?

    Es necesario definir el concepto de sexo en la persona:

    mujer(pamela).hombre(tomas).hombre(roberto).mujer(elizabeth).mujer(patricia).mujer(ana).hombre(jaime).

  • 22

    Clusula de Horn

    Cmo se puede definir es madre de?

    Si X es padre de Y, y X es mujer, entonces X es madre de Y

    padre(X,Y) mujer(X) madre(X,Y).

    En Prolog:

    madre(X,Y) :- padre(X,Y),mujer(X).

  • 23

    Clusula de Horn

    Cmo se puede definir es abuelo de?

  • 24

    Clusula de Horn

    Cmo se puede definir es abuelo de?

    padre(X,Y) padre(Y,Z) abuelo(X,Z).

    En Prolog:

    abuelo(X,Z) :- padre(X,Y),padre(Y,Z).

  • 25

    Clusula de Horn

    Cmo se puede definir es hermana de?

    padre(Z,X) padre(Z,Y) mujer(X) hermana(X,Y).

    En Prolog:

    hermana(X,Y) :- padre(Z,X),padre(Z,Y),mujer(X).

  • 26

    Tarea 41:

    1.- Formule las clusulas de Horn para lo siguiente: a).- Cualquiera que tiene un hijo es feliz (Defina la relacin feliz). b).- Para todo X, si X tiene un hijo que tiene una hermana, entonces X tiene dos hijos (Defina la relacion tienedoshijos).

    2.- Defina la relacin nieto usando la relacin padre. sta es similar a la relacin abuelo.

    3.- Defina la relacin tia(X,Y) en trminos de las relaciones padre y hermana.

    Pgina 1Pgina 2Pgina 3Pgina 4Pgina 5Pgina 6Pgina 7Pgina 8Pgina 9Pgina 10Pgina 11Pgina 12Pgina 13Pgina 14Pgina 15Pgina 16Pgina 17Pgina 18Pgina 19Pgina 20Pgina 21Pgina 22Pgina 23Pgina 24Pgina 25Pgina 26

View more