martes, 9 de mayo de 2017

PROLOG

1-) INSTALAR PROLOG ✔


2-) APRENDER A USAR ✔

3-) ¿QUE ES PROLOG?

Prolog es un lenguaje de programación lógica cuya primera versión fue desarrollada a principios de la década de 1970 por Colmerauer en la universidad de Marsella. Contrariamente a otros lenguajes de programación basados es estructuras de control y definición de funciones para calcular resultados, Prolog está orientado a la especificación de relaciones para responder consultas. En ese sentido Prolog es similar a un sistema de base de datos, aunque en el contexto de la inteligencia artificial se prefiere hablar de bases de conocimiento, enfatizando la complejidad estructural de los datos y de las deducciones que se pueden obtener de ellos.

Por ejemplo, para especificar la relación el padre de X es Y, se crea una base de conocimiento con hechos expresados mediante un predicado padre(X,Y) de la siguiente manera:

padre(juan,pedro).
padre(josé,pedro).
padre(maría,pedro).
padre(pedro,pablo).
padre(ana,alberto).
...
Esto es muy parecido a crear una tabla en una base de datos, sólo que cada caso se  especifica mediante una cláusula independiente terminada por '.' . Si además se quiere incorporar conocimiento sobre la madre, se puede proceder de la misma manera agregando por ejemplo:

madre(juan,ana).
madre(josé,ana).
madre(maría,ana).
madre(pedro,juanita).
madre(ana,julia).
...

En prolog todas las cláusulas terminan con el delimitador '.' . Las cláusulas de consulta se interpretan como ecuaciones lógicas y pueden incluir variables. Por ejemplo:

?- padre(maría,pablo).

No
?- padre(ana,alberto).

Yes
?- padre(maría,X).

X = pedro ;

No
?- padre(X,Y).

X = juan
Y = pedro ;

X = josé
Y = pedro ;

X = maría
Y = pedro ;

X = pedro
Y = pablo ;

X = ana
Y = alberto ;

No

EJEMPLO:
% La sintaxis es factorial(N, F) -> Factorial de N es F (el resultado se guarda en F)factorial(0, 1).factorial(1, 1).factorial(N, F) :- N>0, N1 is N - 1, factorial(N1, F1), F is N * F1. %el factorial se llama recursivamente dejando el resultado en F

4-) ¿CUAL ES LA RELACIÓN ENTRE PROLOG Y LÓGICA PREDICADOS?


Algoritmo de búsqueda
********************

Un query consise en una conjunción de predicados que Prolog debe
demostrar que es verdadero, mostrando además las restricciones bajo
las cuales se cumple.

Ejemplo 1:

1.- member(2,[1,2,3]).

  Se considera (A): no unifica
  Se considera (B): unifica con X=2, L=[2,3]
  Se insertan las condiciones de (B) en la lista de metas reemplazando
  la variables pro las restricciones.

  2.- member(2,[2,3]).

    Se considera (A): unifica con X=2, L=[3].
    Como no hay condiciones => exito.
    El interprete arroja yes.
















0 comentarios:

Publicar un comentario