viernes, 5 de noviembre de 2010

Lenguaje Lógico. PROLOG

Hola a todos, en esta entrada explicaré un poco de este lenguaje lógico Prolog.
Prolog proviene de Programmation en logique, es un lenguaje de programación lógico que se utiliza en la rama de Inteligencia Artificial. Prolog fue desarrollado a principios de los años 70 por los maestros Alain Colmerauer y Philippe Roussel. A finales de 1971 se unió a estre proyecto Robert Kowalski  y se lanzó en 1972 una versión de Prolog.


Los programas en Prolog se caracterizan por unas reglas que son de tipo "modus ponendo ponens" esto es decir, "Si es verdad el antecedente, entonces es verdad el consecuente". Pero la forma de escribir esto se hace de forma contraria primero se pone el consecuente y luego el antecedente. El antecedente es una secuencia de objetivos, cada objetivo es separado por una coma. La ejecución de prolog se basa en dos conceptos: unificación y el backtracking. Backtracking es una estrategia que se utiliza para encontrar soluciones que satisfacen restricciones.

Un objeto es algo que puede representarse simbolicamente.

Ejemplo. 
Mario             perro           borrador

Relación es el grupo al que pertenecen los objetos

Ejemplo.

personas    animales    herramientas

Hecho es la unión del objeto y relación

Ejemplo.

personas(Mario)
animales(perro)
herramientas(borrador)

 
Programación

Existen dos tipos de cláusulas, las cuales son hechos y reglas.


Reglas
La estructura de una regla es


Condicion         :-            Si ... entonces ...

Por ejemplo.
Si Mario estudia Matemáticas entonces aprobará el examen.

Conjunción      ,             y


Por ejemplo.

La casa es verde y roja



Disyunción       ;            o

Por ejemplo.
Hago la tarea o estudio

 

Hechos
Los hechos en prolog se representan de la siguiente manera:


Por ejemplo si queremos decir que una persona tiene trabajo, este hecho contiene dos objetos persona y trabajo y su relación es tiene. En prolog se representa:

tiene(persona, trabajo)

NOTAS. 
-  LOS NOMBRES QUE SE LES DA A LOS OBJETOS TIENEN QUE COMENZAR CON UNA LETRA                    MINUSCULA
-  SE ESCRIBE PRIMERO LA RELACION Y DESPUÉS LOS OBJETOS SEPARADOS POR COMAS                 Y ENCERRADOS ENTRE PARENTESIS.
-  AL FINAL DE CADA HECHO DEBE IR UN PUNTO (.)



Variables
Las variables representan los objetos que utilizaste, puede ser instanciada que es cuando existe un objeto que tu determinas con una variable.

Continuando con el ejemplo anterior podriamos preguntar ¿Una persona tiene Y? ó ¿X tiene trabajo?

Prolog buscará en la primera pregunta en los hechos que tiene una persona y responderá trabajo. LOS NOMBRES DE LAS VARIABLES COMIENZAN SIEMPRE CON MAYÚSCULA.


Operadores
Los operadores son predicados que se utilizan en Prolog para las operaciones matemáticas básicas. 

Por ejemplo. 
El operador de resta ("-") se pondría '-(6 3) 
 
También existen predicados de igualdad y desigualdad

X = Y     IGUAL

X \= Y    DISTINTO

X < Y     MENOR

X > Y     MAYOR

X =< Y   MENOR O IGUAL

X => Y   MAYOR O IGUAL



Aquí les dejo un manual en inglés de Prolog que está muy completo. También les dejo un manual en español donde también vienen ejemplos que les pueden ayudar en su reporte. Espero que les haya ayudado en algo mi entrada, saludos:)


Bibliografía
http://es.wikipedia.org/wiki/Prolog

1 comentario: