Prolog

Páginas: 9 (2106 palabras) Publicado: 2 de mayo de 2012
Prolog
Probar y resolver los siguientes problemas, no necesariamente en orden correlativo.

1. 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).

2. 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.

3. Red semántica
Las redes semánticas son grafos orientados que proporcionan una representación declarativa de objetos, propiedades y relaciones. Los nodos se utilizan para representar objetos o propiedades. Losarcos representan relaciones entre nodos del tipo es_un, es_parte_de, etc. El mecanismo de inferencia básico en las redes semánticas es la herencia de propiedades. La figura representa esquemáticamente un ejemplo de red semántica:

Representar en Prolog la red semántica de la figura. Se sugiere emplear un predicado binario por cada relación. Para las propiedades se sugiere que se emplee el predicadoatributo(Objeto, Atributo, Valor). Por ejemplo, atributo(albatros, vuela, muy_bien).
Incluir las reglas necesarias para que todo objeto herede los atributos y las propiedades de todas las clases a las que pertenece.
En ocasiones algunos de los atributos heredados por un objeto deben ser sustituidos por otros particulares. Así es posible tratar las excepciones, por ejemplo, las aves que novuelan (como el avestruz). Representar adecuadamente las excepciones que se señalan en el ejemplo. Se sugiere emplear el predicado particular(Objeto, Atributo, Valor), con el que se especifica que ese atributo es particular de ese objeto y sustituye al heredado.
Emplear Prolog para hacer consultas sobre la información almacenada en la red semántica. Por ejemplo, ¿tiene pelo el avestruz?, ¿quiénespueden volar?, etc.

4. Horóscopo
/* horoscopo(Signo,DiaIni,MesIni,DiaFin,MesFin)
<- son del signo Signo los nacidos entre el DiaIni/MesIni y el DiaFin/MesFin */
horoscopo(aries,21,3,21,4).
horoscopo(tauro,21,4,21,5).
horoscopo(geminis,21,5,21,6).
horoscopo(cancer,21,6,21,7).
horoscopo(leo,21,7,21,8).
horoscopo(virgo,21,8,21,9).
horoscopo(libra,21,9,21,10).horoscopo(escorpio,21,10,21,11).
horoscopo(sagitario,21,11,21,12).
horoscopo(capricornio,21,12,21,1).
horoscopo(acuario,21,1,21,2).
horoscopo(piscis,21,2,21,3).
/* signo(Dia,Mes,Signo) <- los nacidos el Dia/Mes pertenecen al signo Signo */
signo(Dia,Mes,Signo) :- horoscopo(Signo,D1,M1,D2,M2),
( (Mes=M1,Dia>=D1) ; (Mes=M2,Dia=<D2) ).

% CONCULTAS PROPUESTAS
?- signo(8,5,tauro).
?- signo(7,8,Signo).
?-signo(7,X,Signo).
?- signo(X,7,Signo).
Realiza las modificaciones pertinentes a este programa para que el día esté comprendido dentro del rango permitido para cada mes. Por ejemplo no podemos poner el 30 de febrero. No es necesario comprobar si el año es bisiesto. Añadir los hechos que se consideren oportunos (“el mes de marzo tiene 31 días”).

5. Operador de corte
/* sumatorio(Num,Sum) <- Sumes el sumatorio desde 1 hasta Num */
sumatorio(1,1) :- !.
sumatorio(N,S) :- N1 is N-1, sumatorio(N1,S1),
S is N+S1.
/* natural(Num) <- Num es un número perteneciente a los Naturales */
natural(0).
natural(X) :- natural(Y), X is Y+1.
/* diventera(Dividendo,Divisor,Cociente) <- Cociente es el resultado de la división */
diventera(A,B,C) :- natural(C), Y1 is C*B, Y2 is (C+1)*B,...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • prologo
  • Prologo
  • Prologo
  • Prólogo
  • prologo
  • Prólogo
  • prologar
  • Prologo

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS