ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Algoritmos


Enviado por   •  20 de Marzo de 2015  •  363 Palabras (2 Páginas)  •  200 Visitas

Página 1 de 2

Objetos

-Simples Constantes Átomos

Números

Variables

-Estructuras

Átomos: cualquier cosa que empiece por minúscula

Números: un número cualquiera(naturales positivos principalmente.)

Variables: cualquier cosa que empieza por mayúscula o que empiece por guion bajo “_”. Al guion bajo se le denomina variable anónima.

Estructura: es un functor/aridad. El functor se desarrolla en lógica de primer orden y va a ser un átomo, ya que empieza por minúscula, y la aridad es el número de argumentos que va a tener esa estructura. Puede tener desde 0 hasta lo que queramos.

Archivos

Están formados por predicados. Son los archivos “___.pl”.

Predicados

Un predicado es un conjunto de cláusulas que comparten la cabeza.

Una clausula podrá ser un hecho o una regla

Un hecho es una estructura que acaba en un punto.

Una regla es un hecho o conjuntos de hechos.

Hecho:-

Hecho,

… Si esto se cumple, se cumple la regla.

Hecho.

La aritmética de Peano

Dice que los números son:

0 0

S(0) 1

S(S(0))2

Pero definir los naturales de Peano sería muy extenso (∞). Lo realizaremos de manera recursiva.

C1: natural (0).

C2: natural (S(X)):-

natural (X).

El prompt de prolog es el símbolo “?-“

Luego si ponemos en prolog:

?-natural(S(S(0)).

YES  Sera lo que devolverá prolog

?-natural(S(S(1)).

NO

?-natural(X).

X=0 Esto será lo primero que devuelva prompt y si pulsamos “N” o “;”

X=S(0) nos devolverá la siguiente instrucción de la query.

Ejemplo

Suma/3 Es decir, que el 3º sea la suma del 1º y el 2º.

Caso base:

C3 Suma(0,X,X):-

natural(X).

Caso recursivo:

C4: Suma(S(X),Y,S(Z)):-  X+1+Y=Z+1

Suma(X,Y,Z) X+Y=Z

Este caso de pie a otros como por ejemplo:

Suma(X,Y,S(S(0)))

X=0 Y=S(S(0))

X=S(0) Y=S(0)

Y salen muchos más casos solo desde uno. Así funciona prolog. Con poco código se pueden realizar varias “querys” o consultas.

El concepto de árbol de búsqueda

Si metiésemos a prolog lo siguiente:

?-suma(S(0), S(0), X) Esto encajaría solo con la C4

C4

X1=0

Y1=S(0)

X=S(Z1)

Suma(0,S(0),Z1) Esta encajaría con la C3

C3

X2=S(0)

Z1=S(0)

natural(S(0)) Esta encaja con C2

C2

X3=0

Natural(0) Encaja

...

Descargar como (para miembros actualizados) txt (3 Kb)
Leer 1 página más »
Disponible sólo en Clubensayos.com