Upload
raul-silencer
View
190
Download
2
Embed Size (px)
Citation preview
INFORME
ARBOL:
CODIGO DEL PROGRAMA arbolcomidas.pl:
%============================
% ESPECIFICACION DE HECHOS
%============================
% Lista de las enfermedades
%============================
enfermedad(colesterol).
enfermedad(vista).
enfermedad(gripe).
enfermedad(diabetes).
%=====================================
% Ingredientes que contiene cada plato
%=====================================
contiene(arroz_con_pollo,pollo).
contiene(arroz_con_pollo,cerveza_blanca).
contiene(arroz_con_pollo,cerveza_negra).
contiene(arroz_con_pollo,aceite).
contiene(arroz_con_pollo,comino).
contiene(arroz_con_pollo,pimienta_negra).
contiene(arroz_con_pollo,aji_amarillo).
contiene(arroz_con_pollo,culantro).
contiene(arroz_con_pollo,arroz).
contiene(arroz_con_pollo,zanahoria).
contiene(arroz_con_pollo,alverjitas).
contiene(arroz_con_pollo,pimiento).
contiene(arroz_con_pollo,sal).
contiene(papa_a_la_huancaina,queso).
contiene(papa_a_la_huancaina,papa).
contiene(papa_a_la_huancaina,leche).
contiene(papa_a_la_huancaina,galleta).
contiene(causa_rellena,pescado).
contiene(causa_rellena,papa).
contiene(causa_rellena,cebolla).
contiene(causa_rellena,limon).
contiene(causa_rellena,aceite).
contiene(tallarin_verde,fideos).
contiene(tallarin_verde,espinaca).
contiene(tallarin_verde,queso).
contiene(jugo_surtido,papaya).
contiene(jugo_surtido,platano).
contiene(jugo_surtido,pina).
contiene(jugo_surtido,algarrobina).
contiene(jugo_surtido,beterraga).
%============================================
% Ingredientes que contiene cada plato con listas
%============================================
contiene_lista(arroz_con_pollo,
[pollo,cerveza_blanca,cerveza_negra,aceite,comino,pimienta_negra,aji_amarillo,culantro,arro
z,zanahoria,alverjitas,pimiento,sal]).
contiene_lista(papa_a_la_huancaina,[queso,papa,leche,galleta]).
contiene_lista(causa_rellena,[pescado,papa,cebolla,limon,aceite]).
contiene_lista(tallarin_verde,[fideos,espinaca,queso]).
contiene_lista(jugo_surtido,[papaya,platano,pina,algarrobina,beterraga]).
%===========================================
% La enfermedad es causada por tal ingrediente
%===========================================
es_causado_por(colesterol,aceite).
es_causado_por(colesterol,leche).
es_causado_por(vista,sal).
es_causado_por(diabetes,cerveza_negra).
es_causado_por(diabetes,algarrobina).
%==============================================
% La enfermedad es prevenida por tal ingrediente
%==============================================
es_prevenido_por(vista,zanahoria).
es_prevenido_por(vista,cebolla).
es_prevenido_por(gripe,alverjas).
es_prevenido_por(gripe,limon).
es_prevenido_por(diabetes,papaya).
es_prevenido_por(colesterol,platano).
%================================
% Síntomas de las Enfermedades
%================================
tiene_sintoma(colesterol,dolores_en_extremidades_inferiores).
tiene_sintoma(colesterol,dolor_en_el_pecho).
tiene_sintoma(colesterol,mareos).
tiene_sintoma(vista,ver_mal).
tiene_sintoma(vista,dolores_de_cabeza).
tiene_sintoma(vista,guinan_los_ojos).
tiene_sintoma(gripe,escalofrios).
tiene_sintoma(gripe,dolor_muscular).
tiene_sintoma(gripe,cansancio).
tiene_sintoma(diabetes,aumento_de_la_sed).
tiene_sintoma(diabetes,orinar_frecuentemente).
tiene_sintoma(diabetes,tener_mucha_hambre).
%================================
% Personas con Enfermedades
%================================
esta_enfermo_de(gullet,colesterol).
esta_enfermo_de(jonel,vista).
esta_enfermo_de(keyner,gripe).
esta_enfermo_de(raul,diabetes).
%=============================
% ESPECIFICACION DE REGLAS
%=============================
tiene_como_ingredientes(X,Y) :- contiene(X,Y).
longitud([],0).
longitud([X|Y],S) :- longitud(Y,T), S is T + 1.
tiene_como_ingredientes_lista(X,Y) :- contiene_lista(X,Y).
cantidad_ingredientes_lista(X,Y) :- contiene_lista(X,W),longitud(W,Y).
% el paciente X esta enfermo de la enfermedad Y
tiene(X,Y) :- esta_enfermo_de(X,Y).
% el paciente X no debe comer W
no_debe_comer(X,W) :- esta_enfermo_de(X,Y),es_causado_por(Y,Z),contiene(W,Z).
% el paciente X puede comer W
puede_comer(X,W) :- esta_enfermo_de(X,Y),es_prevenido_por(Y,Z),contiene(W,Z).
% el paciente X solo debe comer W
debe_comer(X,W) :- puede_comer(X,W),not(no_debe_comer(X,W)).
% si tengo enfermedad Z tengo que comer X
contraresta(X,Z) :- es_prevenido_por(Z,Y),contiene(X,Y),not(es_causado_por(Z,Y)).
% la enfermedad X es producto de la comida Z
es_producto_de(X,Z) :- es_causado_por(X,Y),contiene(Z,Y).
% la enfermedad X es producto de los ingredientes Y
es_producto_de_ingredientes(X,Y) :- es_causado_por(X,Y).
% la enfermedad X tiene como síntomas a Y
tiene_como_sintomas(X,Y) :- tiene_sintoma(X,Y).
% si tienes el síntoma X se recomienda la comida Z
sintoma_recomienda_comida(X,Z) :- tiene_sintoma(Y,X), es_prevenido_por(Y,W), contiene(Z,W).
Pruebas del Programa: