Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

PROLOG

Proveniente del francés PROgrammation en LOGique, es un lenguaje de programación lógico e interpretado, bastante conocido en el medio de investigación en Inteligencia Artificial.

PROLOG está orientado a la resolución de problemas mediante el cálculo de predicados, basado en:

Preguntas a la base de datos.

Pruebas matemáticas.

Tipos de datos primitivos: variables y constantes:

 Enteros

 Reales

 Caracteres

La ejecución de prolog consiste en una búsqueda en profundidad de un árbol conteniendo todas las posibles soluciones. Para cada una de ellas se evaluará su corrección. La búsqueda se puede hacer más eficiente mediante la poda del árbol de búsqueda (corte).

PROLOG tiene dos modos:

• Modo consulta, se introducen nuevas relaciones (hechos) en el almacenamiento dinámico de la base de datos.

• Modos pregunta, se ejecuta un intérprete basado en pilas para evaluar las preguntas del usuario.

Evaluación del lenguaje

PROLOG va bien para problemas de relaciones, p.e. Tratamiento del lenguaje natural, y consulta de bases de datos.

A pesar de que es posible desarrollar programas sin especificar el algoritmo de resolución a veces hay que echar mano de otro tipo de programación para hacer los programas más eficientes, y a menudo se emplea el corte para limitar el espacio de búsqueda.

HISTORIA

Programacion en Prolog:

Existen dos tipos de clausulas: HECHOS Y REGLAS.

gato(tom).

que es equivalente a la regla:

gato(tom) :- true.

El predicado predefinido true/0 siempre es verdad.

Prolog también posee varios predicados predefinidos para interacción con el sistema operativo, como entrada/salida, gráficos y comunicaciones de datos.

Expresiones:

Prolog cuenta con operadores para la unificación y comparación, sea con evaluación o sea simbólica, como los siguientes:

 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.

?- X is 3+5.

X = 8

?- X = 3+5.

X = 3+5

?- 3+5 =:= 2+6.

yes

?- 3+5 == 2+6.

no

Listas

La representación de hechos simples no es lo común en la clasificación de elementos, sino que se agrupan los elementos de un mismo tipo en una lista.

Las listas son colecciones de elementos en Prolog. Una lista se divide en dos partes: Cabeza. Es el primer elemento de la lista. 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 "|".

%%

%% declaraciones

%%

padrede('juan', 'maria'). % juan es padre de maria

padrede('pablo', 'juan'). % pablo es padre de juan

padrede('pablo', 'marcela').

padrede('carlos', 'debora').

Creación y consulta de listas

plantas([manzana, naranja, limon, espinaca, gardenia, alfalfa,pino]).

lista([1,2,3]).

?-lista([H|T]).

H=1

T=[2,3]

?-lista([H,J|T]).

H=1

J=2

T=[3]

Longitud de una lista

% Si queremos hallar la longitud de una lista.

% La longitud de una lista vacia es 0.

% La longitud de cualquier lista es la longitud de la cola + 1.

Concatenar listas

% Si queremos concatenar dos listas lista.

% Concatenar una lista vacia con L es L.

% Concatenar X|L1 con L2 es poner el primer

% elemento de la primera lista (X) más la

% concatenación del resto de la lista (L1) con L2

concatenar([],L,L).

concatenar([X|L1],L2,[X|L3]):-concatenar(L1,L2,L3).

BACKTRACKING

Que consiste en deshacer todo lo ejecutado situando el programa en el mismo estado en el que estaba justo antes de llegar al punto de elección. Entonces se toma el siguiente punto de elección que estaba pendiente y se repite de nuevo el proceso.

Learn more about creating dynamic, engaging presentations with Prezi