JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

19
JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Transcript of JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Page 1: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

JENNIFER MONCALEANO VELASQUEZ

PROGRAMACION EN PROLOG.

Page 2: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Contenido…

Que es?HistoriaPuntos basesSintaxisOperadoresEjemploEjemplo de programación en prolog

Page 3: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

¿Que es?...

Es un lenguaje de programación lógico e interpretado, basado en la lógica de predicados de primer orden.

Es útil para resolver problemas que implican objetos y relaciones entre objetos.

Page 4: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Historia…

Fue creado a principio de los años 70 por los profesores Alain Colmerauer y Philippe Roussel , nació de un proyecto en el que se pretendía implementar el procesamiento de lenguajes naturales, se trabajo tanto en la parte del procesado del lenguaje natural como en la parte de deducción e inferencia del sistema.

Page 5: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Como funciona?...

En un programa de Prolog existen solo dos componentes, los hechos  y las reglas.

El sistema Prolog lee y almacena el programa.

El usuario luego puede hacer una serie de preguntas.

El sistema responderá utilizando los hechos y reglas disponibles

(Hechos, reglas, preguntas)

Page 6: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Términos en prolog…

Page 7: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Puntos bases…

UnificaciónEstructuras de datos basadas en árboles Backtracking automático

Page 8: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Sintaxis

consiste en : Declarar hechos sobre objetos y sus

relacionesHacer preguntas sobre objetos y sus

relacionesDefinir reglas sobre objetos y sus relaciones

Page 9: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Hechos

Un conjunto de hechos constituye un programa (la forma más simple de programa lógico) que puede ser visto como una base de datos que describe una situación.

Un hecho es una fórmula atómica que indica que se verifica la relación (predicad0).

Page 10: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Hechos

Sintaxis de Prolog: Constantes y predicadosempiezan por minúscula. Los hechos acaban en

punto.Variables comienzan por mayúscula. Los

nombres de las relaciones y los argumentos que se refieren a objetos o personas concretas se escribirán con minúscula (constantes).

Los hechos no tienen que reflejar el mundo real necesariamente

Page 11: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Hechos-Ejemplos

progenitor(laura, damian).

“progenitor” es el nombre de la relación o nombre de predicado y “laura” y “damian” son los argumentos.

Page 12: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Preguntas…

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

Para responder esta pregunta PROLOG busca automáticamente en la base de datos si existe un hecho que se puede unificar .(si tiene el mismo nombre de predicado, el mismo número de argumentos -o aridad-y cada uno de los argumentos tiene el mismo nombre,uno a uno) con el hecho que aparece en la pregunta.

Page 13: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Preguntas-Sintaxis

las variables empiezan por mayúscula.

Por ejemplo:?-le_gusta_a(maria,X).?-progenitor(Y,damian)

Page 14: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Preguntas- Ejemplo

Page 15: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Reglas…

A la primera parte de la regla se le llama cabeza o conclusión. El símbolo ":-" es el condicional (SI). A la parte de la regla que está después de “:-“ es el cuerpo o

parte condicional. El cuerpo puede ser una conjunción de objetivos separados

porcomas. Para demostrar que la cabeza de la regla es cierta, se tendrá

quedemostrar que es cierto el cuerpo de la regla.

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

Page 16: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Clausulas Prolog

son de tres tipos: hechos, reglas y preguntas. Las cláusulas PROLOG consisten en una

cabeza y un cuerpo. Los hechos son cláusulas que tienen cabeza

pero no tienen cuerpo. Las preguntas sólo tienen cuerpo. Las reglas tienen siempre cabeza y cuerpo. Los hechos son siempre ciertos. Las reglas declaran cosas que son ciertas

dependiendo de una condición.

Page 17: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Ejemplo en prolog

quiere_a(maria,enrique). quiere_a(juan,jorge). quiere_a(maria,susana). quiere_a(maria,ana). quiere_a(susana,pablo). quiere_a(ana,jorge). varon(juan). varon(pablo). varon(jorge). varon(enrique). hembra(maria). hembra(susana). hembra(ana). teme_a(susana,pablo). teme_a(jorge,enrique). teme_a(maria,pablo). /*  Esta linea es un comentario  */ quiere_pero_teme_a(X,Y) :- quiere_a(X,Y), teme_a(X,Y). querido_por(X,Y) :- quiere_a(Y,X). puede_casarse_con(X,Y) :- quiere_a(X,Y), varon(X), hembra(Y). puede_casarse_con(X,Y) :- quiere_a(X,Y), hembra(X), varon(Y)

Page 18: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

Ejemplo de Programación

Page 19: JENNIFER MONCALEANO VELASQUEZ PROGRAMACION EN PROLOG.

GRACIAS!