Sistema Experto Comidas-Enfermedades

7
INFORME ARBOL:

Transcript of Sistema Experto Comidas-Enfermedades

Page 1: Sistema Experto Comidas-Enfermedades

INFORME

ARBOL:

Page 2: Sistema Experto Comidas-Enfermedades

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

Page 3: Sistema Experto Comidas-Enfermedades

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

Page 4: Sistema Experto Comidas-Enfermedades

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

Page 5: Sistema Experto Comidas-Enfermedades

%================================

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

Page 6: Sistema Experto Comidas-Enfermedades

%=============================

% 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

Page 7: Sistema Experto Comidas-Enfermedades

sintoma_recomienda_comida(X,Z) :- tiene_sintoma(Y,X), es_prevenido_por(Y,W), contiene(Z,W).

Pruebas del Programa: