Aprendiendo prolog

Solo disponible en BuenasTareas
  • Páginas : 5 (1025 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de marzo de 2011
Leer documento completo
Vista previa del texto
Prolog

Práctica 1: Introducción a Prolog

Prolog es un lenguaje de programación. Implementa la lógica de predicados o lógica de primer orden. Prolog es un lenguaje que es muy útil para el manejo de entidades simbólicas, por lo que resulta muy útil en los diferentes campos de la IA.

A continuación se verá la manera en como Prolog trabaja y los conceptos fundamentales del lenguaje.- Un hecho es un tipo de cláusula que relaciona objetos.
Prolog tiene 3 cláusulas:
• Hechos (Axioma)
• Metas o preguntas (Teorema)
• Reglas (Axioma)

La figura muestra una parte de un árbol genealógico en donde se representan las relaciones entre sus miembros:

Hay 6 hechos y 6 flechas

Desarrollo:

1) Entre a: Arity Prolog.

2) Con la tecla F8 se alternan la pantallade preguntas (fondo azul) con la pantalla de edición.

3.- Copie en la pantalla de edición (fondo negro) las relaciones escritas anteriormente. Los hechos se escriben en minúsculas. Y se terminan de escribir con un punto.
4.- Compile el programa yendo al menu con F10 opción: buffers/ Reconsult Buffer

5.- El prompt ?_ indica ahora que Prolog puede responder a preguntas. También se lesllama metas o goals, y son el segundo tipo de cláusulas en Prolog.

Pregunte si:
• bob es parent de pat parent(bob,pat)
• liz es parent de pat parent(liz, pat)
• tom es parent de ben parent(tom, ben)
Respuestas siempre de sí o no, utilizando un algoritmo de búsqueda.
6.- Una cadena de caracteres alfanuméricos iniciando con una mayúscula, representan una VARIABLE.Pregunte ahora:
• Quién es el parent de liz? parent(Parent,liz).
o Parent = tom ->
Esta variable queda instanciada, NO es igual.
• Quién es el hijo de bob? parent(Parent,bob).
o Parent = tom ->; (Colocar un ; porque hay más valores)
o Parent = pam ->
• Quién es parent de quién? parent(Padre, Hijo).
No podemos usar la misma variable parapreguntar (es decir: parent(Padre, Padre)).
[pic]
7.- Prolog usa una coma (,) como operador AND y un punto y coma (;) como OR.
Pregunte:
• ¿Quién es el abuelo de jim? (buscar el papa de jim, supongamos que es X y luego el papa de ese X.
[pic]
• ¿Quiénes son los nietos de tom?
[pic]
• ¿ann y pat tienen el mismo parent?
[pic]
8.- Prolog busca satisfacer metas(responder a preguntas).
¿Cómo podría definir un programa en Prolog?
Un programa en PROLOG es un conjunto de cláusulas. Consiste en hacer preguntas en base a una serie de hechos.

9.- Cada uno de los elementos del grafo tienen un sexo determinado. Asigne el sexo correspondiente a cada uno de los elementos del grafo. P. ejemplo, pat es mujer se escribiría como:

female(pat).sexo(pat,female). //Forma alternativa
Podemos escribir los hechos como nos dé la gana, el significado lo damos nosotros.

Note que female y male (para los hombres) son predicados unarios.

Agregue en la pantalla de edición el sexo correspondiente a cada objeto. No olvide recompilar el programa. Pregunte:

¿Quienes son las mujeres?
[pic]
10.- Las reglas en Prolog son un tipo de cláusula que permitengeneralizar las relaciones. Una regla es el tercer tipo de cláusula.

Supongamos que se quiere definir la relación offspring (que es la relación contraria a parent). Una alternativa sería escribir los hechos de parent... volteando los objetos. Pero el escribir la relación como regla nos ayuda a generalizar.

Una regla tiene la forma de : conclusión :- condiciones.
Es un if, pero se escribe demanera distinta. Una conclusión depende de varias condiciones.

Defina la regla para offspring:
offspring(Hijo,Padre):-
parent(Padre,Hijo).

Papa de la algoritmia computacional: Donald Nut.
Dice que debemos esforzarnos por escribir programas que sean muy entendibles (identación, coherencia con variables, comentar programas, etc.) por otras personas.

[pic]

Defina...
tracking img