PROLOG EDITOR
Sistemas expertos
PROLOG
SWI-Prolog.- es un compilador de Prolog de
dominio pblico diseado e implementado en la
Universidad de Amsterdam, compatible con el
estndar ISO y disponible para distintas
plataformas. Se puede obtener en la direccin
http://www.swi-prolog.org. La versin para Windows
consta de un nico fichero ejecutable que instala
automticamente el sistema. ste se utiliza de
acuerdo con el esquema general de trabajo en
Prolog.
PROLOG
Trminos Simples
Constantes: Nmeros
tomos
No son frmulas atmicas de LPO, se utilizan para dar nombres
especficos a individuos
Cadenas formadas por letras, dgitos y el smbolo de subrayado,
que empiezan por una letra minscula
Cualquier cadena de caracteres encerradas entre comillas
Variables
Las variables en Prolog se representan mediante cadenas
formadas por letras, dgitos y el smbolo de subrayado, pero
deben necesariamente empezar por una letra mayscula o por un
smbolo de subrayado.
Las variables que empiezan con un guin bajo se denominan
variables annimas y son aquellas de las que no sus posibles
valores no interesan.
PROLOG
Sintaxis.
Programas lgicos definidos y estn compuestos
por una serie de clusulas de Horn positivas
(hechos y reglas)
Los smbolos de predicados se denotan con
tomos, los hechos y las reglas siempre terminan
con un punto.
Los smbolos de variables se escriben empezando
con una letra mayscula o por un guin bajo
Los smbolos de predicados se escriben con una
letra minscula, as como los signos de funcin y
las constantes.
PROLOG
Semntica
Mecanismo de demostracin automtica utilizada
por Prolog es el sistema de Resolucin, que se
implementa utilizando la
Unificacin : Algoritmo de unificacin estndar
Funcin de seleccin: Selecciona el literal ms a la
izquierda
Regla de ordenacin: Elige las clusulas de
acuerdo con el orden en el que stas aparecen en
el programa
Estrategia de bsqueda: Bsqueda en profundidad
PROLOG
El orden en que aparecen las clusulas y el orden de los
argumentos pueden afectar las soluciones y la solucin de las
consultas
Aunque no existe ninguna regla general que establezca el orden
ptimo de las clusulas ni el orden ptimo de los literales dentro
de ellas, suelen ser recomendables los siguientes principios
bsicos, basados en la idea de hacer antes lo ms sencillo.
1. Colocar las clusulas que expresan las condiciones de parada
de la recursividad antes que las otras.
2. Evitar las reglas con recursin a la izquierda, es decir, las reglas
tales que el primer literal de su cuerpo es una llamada recursiva al
mismo predicado de la cabeza de la regla.
EJEMPLOS Y PREGUNTAS
Ejemplo #1
le_gusta(luisa, tenis)
le_gusta(jhon, futbol)
le_gusta(pathy, nadar)
le_gusta(ruth, Actividad) :- le_gusta (luisa,
Actividad)
Preguntas
A quien le gusta el tenis?
Qu actividad le gusta a ruth?
Otro
Aadir ms deportes
EJEMPLOS
Ejemplo #2
le_gusta(carlos,mazda).
le_gusta(pepe,hyundai).
le_gusta(judith,pizza).
tiene_dinero(carlos).
puede_comprar(Pers,Cosa):-
le_gusta(Pers,Cosa),tiene_dinero(Pers).
PREGUNTAS-INFERENCIAS
Puede comprar Carlos un hyundai?
puede_comprar(carlos, hyundai).
Res: No
Puede comprar Carlos un mazda?
puede_comprar(carlos, mazda).
Res: Si
Quin puede comprar un mazda?
Res:Carlos
Qu le gusta a judith?
Res:pizza
Para determinar si existe solucin para Existe a
alguien que le guste la pizza?, se utiliza la variable
annima "_"
le_gusta(_,pizza)
Res:Si
EJEMPLOS
es_pais(ecuador). % ecuador es un pas
es_pais(argentina).
es_pais(colombia).
es_pais(chile).
es_pais(peru).
limita_con(colombia,ecuador).%colombia limita con
ecuador
limita_con(peru,ecuador).%per limita con ecuador
PREGUNTAS
Para que aparezca en modo consulta toda la lista
es_pais(X),nl,write(X),fail.
REPRESENTE LOS SIGUIENTES HECHOS
BSICOS EN PROLOG
Juan es un hombre
Mara es una mujer
Jos es un hombre
Milton es un hombre
A Milton le gusta bailar
Roco es una mujer
A Jos le gusta el ajedrez
A Mara le gusta cocinar
A Roco le gusta bailar
Mara es hermana de Roco
A Jos le gusta todo lo que le gusta a Milton
EJERCICIO 1.
Si X est encima de Y, entonces Y soporta a X.
Si X est arriba de Y y se tocan una y otra,
entonces X est encima de Y.
La taza est arriba del libro.
La taza toca al libro.
Identificar las respuestas para:
Qu soporta la taza?
Qu est encima del libro?
EJERCICIO 2. - PROLOG
Mara, Alfredo, Toms, Juan Susana son personas
Alfredo y Mara leen libros
Alfredo y Mara asisten a clases
Alfredo y Mara realizan ejercicios.
Toms sabe todo lo necesario
Mara es tutor de juan
Juan es tutor de Susana
Las personas que saben todo estn preparados para el
examen
Las personas que asisten a clases, realizan los ejercicios y
leen los libros estn preparados para el examen
Todas las personas que tengan un tutor y ste ltimo est
preparado para el examen, estn preparados para el examen.
Todos los que estn preparados para el examen, aprueban el
examen
CONSULTAS
Juan aprueba el examen?
Susana est preparada para el examen?
Cul es el sabio del grupo?
Quines aprueban el examen?
PREDICADOS COMPUESTOS
auto (peugeot_404,90000,1980,azul,15000)
auto (ford_taunus,13800,1986,rojo,30000)
auto (renault_12,90000,1984,gris,25000)
auto (dodge_1500,13000,1983,rojo,12000)
auto (volkswagen,39000,1985,rojo,20000)