PROLOG

Embed Size (px)

DESCRIPTION

PROLOG

Citation preview

  • ESCUELA SUPERIOR POLITCNICA AGROPECUARIA DE

    MANAB MANUEL FLIX LPEZ

    CARRERA INFORMTICA

    SEMESTRE SPTIMO PERODO ABRIL-SEPT/2015

    TEMA:

    PROLOG

    MATERIA:

    INTELIGENCIA ARTIFICIAL II

    AUTORA:

    LUISA KATERINE FARIAS CHICA

    FACILITADORA:

    ING. HIRAIDA SANTANA

    MISIN

    Formacin de profesionales ntegros que conjuguen ciencia, tecnologa y valores en

    su accionar, comprometidos con la sociedad en el manejo adecuado de programas

    y herramientas computacionales de ltima generacin.

    VISIN

    Ser referente en la formacin de profesionales de prestigio en el desarrollo de

    aplicaciones informticas y soluciones de hardware.

    CALCETA, JUNIO 2015

  • En este tema le vamos hablar un poco sobre un programa la cual me

    parece muy interesante ya que se pueden resolver ciertos problemas y

    llegar y a su meta con mucho xito, de quien le estamos hablando es de

    PROLOG es un software para la programacin de sistemas expertos

    basados en reglas, usa lgica de predicados de primer orden (restringida a

    clusulas de horn) para representar datos y conocimiento, utiliza

    encadenamiento hacia atrs y una estrategia de control retroactiva sin

    informacin heurstica como todo lenguaje tiene sus propias restricciones

    o sus propias sintaxis pero estas se las voy a explicar ms adelante x ahora

    solo quera dejarle un pequeo adelanto sobre el tema a tratar a

    continuacin.

    Aprender a manejar prolong para poder resolver los ejercicios en el aula

    de clases.

  • EVOLUCION HISTORICA

    Prolog (del francs, PROgrammation en LOGique) fue el primer lenguaje

    de programacin basado en el paradigma de la programacin logica. Se

    implement por primera vez a principios delos aos setenta en la

    Universidad de Marsella (Francia), por un equipo dirigido por A. Colme-

    raeur, utilizando resultados tericos aportados por R. Kowalski

    (Universidad de Edimburgo). Aunque con ciertas dificultades iniciales,

    debido principalmente a la novedad del paradigma y a la escasa eficiencia

    de las implementaciones disponibles, el lenguaje se fue expandiendo

    rpidamente, sobre todo en Europa y en Japn (en este ltimo pas la

    programacin lgica se incluy como parte central del proyecto de

    ordenadores de quinta generacin de los aos ochenta). En 1995 el

    lenguaje se normaliza con el correspondiente estndar ISO. En la

    actualidad Prolog se ha convertido en una herramienta de desarrollo de

    software practica y de gran aceptacin para la que se dispone de mltiples

    compiladores, tanto comerciales como de libre distribucin.

    PROLOG es un lenguaje de programacin declarativo. Los lenguajes

    declarativos se diferencian de los lenguajes imperativos o procedurales en

    que estn basados en formalismos abstractos (PROLOG est basado en la

    lgica de predicados de primer orden y LISP, otro lenguaje de

    programacin declarativa, en lambda calculo), y por tanto su semntica no

  • depende de la mquina en la que se ejecutan. Las sentencias en estos

    lenguajes se entienden sin necesidad de hacer referencia al nivel mquina

    para explicar los efectos colaterales. Por tanto, un programa escrito en un

    lenguaje declarativo puede usarse como una especificacin o una

    descripcin formal de un problema. Otra ventaja de los programas escritos

    en lenguajes declarativos es que se pueden desarrollar y comprobar poco a

    poco, y pueden ser sintetizados o transformados sistemticamente se

    encuentra basado en Reglas y Hechos de lgica, cuya informacin es

    retribuido en forma de consultas.

    LOS HECHOS PROLOG

    Es algo que est ocurriendo en el mundo, caracterstica o relacin entre

    objetos. Expresan relaciones entre objetos. Los nombres de objetos y

    relaciones deben comenzar con una letra minscula.

    Primero se escribe la relacin, y luego los objetos separados por

    comas y encerrados entre parntesis.

    Al final de un hecho debe ir un punto (".").

    Para explicar los fundamentos de PROLOG vamos a utilizar el tpico

    ejemplo de las relaciones familiares.

  • Para decir que Laura es uno de los dos progenitores de Damin,

    podramos declarar el siguiente hecho PROLOG:

    Progenitor(laura, damian).

    progenitor es el nombre de la relacin o nombre de predicado y laura

    y damian son los argumentos. Los hechos acaban siempre con punto.

    Nosotros interpretaremos que Laura, primer argumento de la relacin, es

    la madre de Damin, segundo argumento de la relacin. Sin embargo, este

    orden es arbitrario y cada programador puede darle su propio significado.

    Los nombres de las relaciones y los argumentos que se refieren a objetos o

    personas concretas se escribirn con minscula.

    le_gusta_a(juan, maria).

    Valioso (oro).

    Tiene (juan, libro).

    da(juan,libro,maria).

    Los nombres tambin son arbitrarios y el programador decidir la

    interpretacin que haga de ellos. La relacin le_gusta_a(juan,maria) es

    equivalente a la relacin a(b,c), aunque para que la interpretacin sea ms

    sencilla, se recomienda que los nombres se elijan de forma que ayuden a

    su interpretacin.

    Los hechos no tienen que reflejar el mundo real necesariamente, pero ser

    nica y exclusivamente lo que prolog tomar como verdadero. Un conjunto

    de hechos (tambin llamados clusulas), junto con un conjunto de reglas,

    forman lo que se llama una base de datos prolog.

  • REGLAS

    Las reglas se utilizan en PROLOG para significar que un hecho depende

    de uno o ms hechos. La posibilidad de definir la relacin abuelo(X,Y)

    o la relacin tio(X,Y) como reglas, adems de poderlo hacer como

    hechos o como conjuncin de objetivos.

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

    tio(X,Y):- progenitor(Z,Y), progenitor(V,Z),

    progenitor(V,X).

    A la primera parte de la regla se le llama cabeza o conclusin, el smbolo

    ":-" es el condicional (SI), y a la parte de la regla que est despus de :-

    es el cuerpo o parte condicional. El cuerpo puede ser una conjuncin de

    objetivos separados por comas. Para demostrar que la cabeza de la regla

    es cierta, se tendr que demostrar que es cierto el cuerpo de la regla.

    Las preguntas PROLOG

    Sobre un conjunto de hechos se pueden realizar una serie de preguntas.

    Por ejemplo:

    ?- le_gusta_a(juan,maria).

    Prolog busca automticamente en la base de datos si existe un hecho que

    se puede unificar (es decir, tiene el mismo nombre de predicado, el mismo

    nmero de argumentos y cada uno de los argumentos tiene el mismo

    nombre, uno a uno) con el hecho que aparece en la pregunta. PROLOG

    contestar SI si encuentra ese hecho y NO si no lo encuentra. La

    contestacin NO no implica que el hecho sea falso (aunque s lo sea

    para nuestra base de datos), sino que no se puede probar (en general) que

    sea verdadero con el conocimiento almacenado en la base de datos.

  • Para realizar preguntas ms interesantes, como por ejemplo, qu le gusta

    a Mara o cules son los padres de Damin, se usarn las variables. En

    PROLOG las variables empiezan por mayscula. Por ejemplo:

    ?-le_gusta_a(maria,X).

    ?-progenitor(Y,damian).

    Para obtener la o las respuestas, PROLOG recorre la base de datos hasta

    encontrar el primer hecho que coincide con el nombre de la relacin y su

    aridad y con los argumentos que no son variables. Marca esa posicin

    para poder recordar dnde se qued en el recorrido por la base de datos.

    Con todo lo que vimos anteriormente llegamos a la conclusin que las

    clusulas PROLOG son de tres tipos: hechos, reglas y pregunta y

    consisten en una cabeza y un cuerpo. Los hechos son clusulas que tienen

    cabeza pero no tienen cuerpo, y preguntas slo tienen cuerpo. Las reglas

    tienen siempre cabeza y cuerpo. Los hechos son siempre ciertos. Adems

    entendimos que cada regla declaran cosas que son ciertas dependiendo

    de una condicin. Las preguntas se le hacen al programa para determinar

    qu cosas son ciertas

  • Cubero, J; Berzal, F. _____. (En lnea). Sistemas Inteligentes de

    Gestin (En lnea). Consultado 04 Jun. de 2015. Formato: PDF.

    Disponible en: http://elvex.ugr.es/decsai/intelligent/workbook/ai/PROLOG.pdf

    Escrig, T. 2012. Lenguaje de Programacion Prolog. (En lnea).

    Consultado 04 Jun. de 2015. Formato: PDF. Consultado

    http://www.gedlc.ulpgc.es/docencia/lp/documentacion/GB_Prolog.pdf