Publicado el 10 de Julio del 2018
373 visualizaciones desde el 10 de Julio del 2018
60,2 KB
7 paginas
Creado hace 15a (11/08/2008)
Introducción a Prolog
Conceptos Básicos (1/2)
• Prolog es un lenguaje de programación
basado en la programación lógica
deductiva
– Desarrollado por la Universidad de
Edimburgo
– Poderoso para la deducción de conocimiento
basado en una serie de hechos
– La base de prolog es el “backtracking”
1
Conceptos Básicos (2/2)
• Existen diversos compiladores de prolog
– B-prolog
– Strawberry Prolog
– DGKS Prolog
– GNU Prolog
– Logtalk
– SWI Prolog
SWI-Prolog
• Desarrollado por la Universidad de
Amsterdam
• Disponible para varias plataformas
– Unix
– Linux
– Windows
2
Iniciando
• Para iniciar una sesión de trabajo se tienen dos
opciones
– Ejecutando un archivo prolog (.pl)
– Ejecutando la aplicación (no recomendable)
Leer Archivos
• Para cargar archivos se usa la sintaxis
?- load_files([listas,familia2]).
?- [listas, familia2].
• Si los archivos no se encuentran en el
archivo activo de swi-prolog (comando
“pwd”), se usa la sintaxis:
?- [‘d:/itesm/archivo’].
3
Sobre Archivos Prolog
• Los archivos se pueden editar en
cualquier editor de texto sin formato
• También se pueden editar archivos con el
editor de swi o con emacs
?- emacs.
Sintaxis
• Toda instrucción se ejecuta llamando a la
función específica
• Si se encuentra una solución, significa que
la consulta se pudo empatar con una
función previamente definida
– Si existe más de una solución, se usa ; para
mostrar otras soluciones en backtracking
• En caso contrario, reporta con ‘no’
4
Ejemplos
• familiar(padre,jesus,pepe).
• familiar(hermano,pepe,carlos).
• quees(X,Y,Z):-familiar(Z,X,Y).
• quees(X,Y,Z):-familiar(Z,Y,X).
• En prolog, las consultas se hacen de dos
formas:
– Buscando un “empate” con variables
– Buscando un “empate” con constantes
Ejemplos
• Como sería la consulta
– ¿quién es el padre de pepe?
– ¿Qué relación tiene pepe con jesus y carlos?
– ¿Qué tendrías que hacer para sacar la
relación entre jesus y carlos?
5
Factorial
• En prolog también es posible usar e
implementar funciones aritméticas
• ¿Cómo se calcularía el factorial de un número
“n”
• TIP: directamente se pueden usar las
comparaciones.
• La asignación del valor a al valor b es “b is a”
Listas
• Las listas se manipulas básicamente a
través de la cabeza y el resto
• Sintaxis
[X|Y]
Una cabeza también puede ser una lista
6
Ejercicio
• Realizar un programa en prolog que dada
una lista, invierta sus valores
• Realizar un programa en prolog que
ordene de forma ascendente a la lista
7
Comentarios de: Introducción a Prolog (0)
No hay comentarios