sábado, 6 de noviembre de 2010

*Prolog

  Materia: Laboratorio  
Hora: Jueves V1



Hola a todos en esta entrada les hablaré un poquito sobre en lenguaje Prolog en sí.

Prolog es un lenguaje que se utiliza para resolver problemas lógicos, y también se utiliza en  la inteligencia artificial, éste lenguaje se creó en los años 70 por los profesores  Alain Colmerauer y Philippe Roussel, el término PROLOG viene del francés PROgrammation en LOGique.

Los programas en PROLOG utilizan cláusulas de Horn que son reglas del tipo:  "Si es verdad el antecedente, entonces es verdad el consecuente", la manera de escribir las cláusulas de Horn es un poco extraña, primero se escribe el consecuente y después el antecedente, éste es una conjunción de condiciones que se llama secuencia de objetivos, por medio de la unificación cada objetivo determina un subconjunto de cláusulas susceptibles de ser ejecutadas. Cada una de ellas se denomina punto de elección. Prolog selecciona el primer punto de elección y sigue ejecutando el programa hasta determinar si el objetivo es verdadero o falso.

Algunas expresiones utilizadas en Prolog son :

  • X is Y %unificación con evaluación.
  • X = Y %unificación simbólica
  • X=:=Y %comparación con evaluación
  • X == Y %comparación simbólica.
Ejemplos:

?- X is 10+4.

    X = 14

?- X = 10+4.
   X = 10+4

?- 10+4 =:= 8+3.

yes

?- 10+4 == 8+3.

no

?- 10+4 == 10+4.

yes

Las listas son colecciones de elementos en Prolog, ésta se divide en dos partes: cabeza y cola, la cabeza es el primer elemento de la lista y la cola es una lista con el resto de los elementos de la lista. La cabeza y la cola de una lista se separan con el símbolo " | ".

Aquí les pondre un ejemplo que saque del tutorial que les dejaré el link más abajo, y el ejemplo dice así

Veamos un predicado compuesto por una simple cláusula:


es_viejo(Individuo) :-

edad(Individuo,Valor),

Valor > 60.


Ahora invocamos el objetivo es_viejo(luis). Para ello supongamos que la edad de Luis es 32 años, es decir, el objetivo edad(luis,32) tiene éxito. Primero unificamos es_viejo(luis) y es_viejo(Individuo). Produciendose la relación entre la variable individuo y la variable luis. Después se ejecuta, y la variable valor va a ligar al valor con la edad de luis que es de 32.

es_viejo(luis) :-

edad(luis,Valor),
Valor > 60.

(32>60 es falso). Con lo que concluimos que Luis no es un viejo.




Bueno está fue una pequeña entrada de PROLOG, aquí les dejo un Manual de PROLOG, cualquier comentario hagánmelo saber. Saludos :) 
  

1 comentario: