Ejercicios_Prolog

Páginas: 13 (3034 palabras) Publicado: 14 de enero de 2016
Inteligencia en Redes de Comunicaciones

Prolog
El objetivo es poner en práctica los conocimientos de Prolog estudiados en
teoría. Vamos a utilizar SWI-Prolog:
http://www.swi-prolog.org/
La versión para Linux está instalada en
/var/home/asig/ircit/pl-5.6.23
y para ejecutar un programa sólo tienes que hacer:
/var/home/asig/ircit/pl-5.6.23/bin/pl –s
También puedes descargar e instalarla versión para Windows, si tienes
suficientes permisos de instalación.
Primero, a tu ritmo, estudia y prueba en el ordenador los siguientes programas
Prolog, los que más te gusten y hasta donde llegues, no te preocupes:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

MONTY PYTHON AND THE HOLY GRAIL (1975)
CANCIÓN ESTÚPIDA
DIAGNÓSTICO DE ENFERMEDADES
PLANIFICADOR DE GASTOS
ÁRBOL GENEALÓGICO
RED SEMÁNTICAHORÓSCOPO
OPERADOR DE CORTE
MANEJO DE LISTAS
ANALIZADOR MORFOLÓGICO
JUEGO DE LÓGICA

Una vez que te hayas familiarizado un poco con el lenguaje, aborda el diseño e
implementación de un sistema experto en Prolog, ya sea un sistema de
diagnóstico mediante reglas (ejercicio 3) o bien que sea capaz de responder a
preguntas basado internamente en una red semántica (ejercicio 6). Hazlo en el
dominio quequieras. Como único requisito, el sistema debe disponer de reglas
para al menos tres niveles de inferencia.
Calificación de la práctica (a sumar directamente a la nota final):
Construir un sistema experto básico: +0.1 puntos
Sistema avanzado: +0.1 puntos

1. Monty Python and the Holy Grail (1975)
A witch is a female who burns. Witches burn - because they're made of wood.
Wood floats. What else floatson water? A duck; if something has the same
weight as a duck it must float. A duck and scales are fetched. The girl and the
duck balance perfectly. "It's a fair cop."
witch(X)
burns(X)

:- burns(X),female(X).
:- wooden(X).

1

Inteligencia en Redes de Comunicaciones

Prolog
wooden(X) :- floats(X).
floats(X) :- sameweight(duck, X).
female(girl).
sameweight(duck,girl).
? witch(girl).

2. Canciónestúpida
cancionestupida(0):-nl,write('Gomo ya no gueda shevvezza, -hic- be boy a doddmig...').
cancionestupida(N):-N>1,nl,write(N),write(' botellas de cerveza en el suelo'),nl,
write(N),write(' botellas de cerveza'),nl,
write('Cojo una y me la bebo'),nl,
A is N-1, cancionestupida(A).
cancionestupida(N):-N=1,nl,write(N),write(' bodellia de shegvezza en el zsduelo'),nl,
write(N),write(' bodella desegbezha'),nl,
write('La gojo y be la bhebo'),nl,
A is N-1, cancionestupida(A).

3. Diagnóstico de enfermedades
enfermo_de(manuel,gripe).
tiene_sintoma(alicia,cansancio).
sintoma_de(fiebre,gripe).
sintoma_de(tos,gripe).
sintoma_de(cansancio,anemia).
elimina(vitaminas,cansancio).
elimina(aspirinas,fiebre).
elimina(jarabe,tos).
recetar_a(X,Y):-enfermo_de(Y,A),alivia(X,A).alivia(X,Y):-elimina(X,A),sintoma_de(A,Y).
enfermo_de(X,Y):-tiene_sintoma(X,Z),sintoma_de(Z,Y).

4. Planificador de gastos
transporte(roma,20000).
transporte(londres,25000).
transporte(tunez,15000).
alojamiento(hotel,roma,25000).
alojamiento(hotel,londres,15000).
alojamiento(hotel,tunez,10000).
alojamiento(hostal,roma,15000).
alojamiento(hostal,londres,10000).
alojamiento(hostal,tunez,8000).
alojamiento(camping,roma,10000).alojamiento(camping,londres,5000).
alojamiento(camping,tunez,5000).
viaje(W,X,Y,Z):-transporte(W,A),alojamiento(Y,W,C),B is C*X,Z is A+B.

2

Inteligencia en Redes de Comunicaciones

Prolog
5. Árbol genealógico

Definir en Prolog los predicados que definen por extensión todas las relaciones
familiares directas, padre(Padre, Hijo) y madre(Madre, Hijo) del árbol
genealógico de la familia Tudor.Definir la relación progenitor, utilizando las relaciones de padre y madre.
Definir recursivamente la relación antepasado. Probar definiciones alternativas
de esta relación cambiando el orden de los predicados. Comprobar cómo afecta
al comportamiento del programa el orden usado en las distintas definiciones de
antepasado.
Definir nuevas relaciones (como hermano, hermana, abuelo, abuela)
añadiendo...
Leer documento completo

Regístrate para leer el documento completo.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS