%%------------------------------------------------ %%%%%%%JOSE RAFAEL RODRIGUEZ OCHOA%%%%%%%%%%%%%%%% %%------------------------------------------------ %%%%%%SISTEMA EXPERTO DE INFERENCIA BAYESIANO%%%%% %%%%%%MOTOR DE INFERENCIA BAYESIANO%%%%%%%%%%%%%%% main :- inicializacion(H,E),bucle(H,E,Hi,Phi),conclusion(Hi,Phi). inicializacion(H,E) :- findall([NH,PH,1,1,1],e(NH,PH,_),H), valor_sintoma, findall([NE,VE],valor(NE,VE),E), abolish(valor/2). valor_sintoma(P,PY,PN,Valor) :- absoluto(Valor,P*PY/(P*PY+(1-P)*PN)-P*(1-PY)/(P*(1-PY)+(1-P)*(1-PN))), [!(PY = 0,PN = 0.2,P > 0.98,write(Valor-P-PY-PN),nl,get0(_); true)!]. absoluto(A,B) :- B >= 0,!,A is B. absoluto(A,B) :- A is - B,!. valor_sintoma :- abolish(valor/2),fail; e(A,P,L),miembro(B,PY,PN,L), valor_sintoma(P,PY,PN,Inc), [!(recorded(valor(_,_),valor(B,V),Ref), V2 is V + Inc, replace(Ref,valor(B,V2)); assert(valor(B,Inc)))!],fail; !. miembro(X,Y,Z,[X,Y,Z|L]). miembro(X,Y,Z,[_,_,_|L]) :- miembro(X,Y,Z,L). bucle(H,E,Hi2,Phi) :- pregunta(Em,Resp,E,E2), incrementoph(H,Resp,Em,H2), incrementorv(H2,H3,E2,E3), maximomi(H3,Hi,Vhi),!, (mayorquetodoma(Hi,Vhi,H3),miembro2(Hi,Phi,H3),Hi2=Hi,!; bucle(H3,E3,Hi2,Phi)). pregunta(Em,Resp,E,E3) :- maximo([Em,Vm],E),Vm > 0,!, s(Em,NEm), write(NEm),nl, repeat, write($Responda en una escala entre -5 (no) y +5 (si), de enteros$),nl, write($no olvides terminar con punto (Ej: 5.<CR> )$),nl, read(Resp), integer(Resp), Resp >= -5, Resp =< 5, quitarpreguntado(E,Em,E2), anular(E2,E3),!; write($No hay nuevos sintomas$),fail. anular([[A,B]|C],[[A,0]|C2]) :- !,anular(C,C2). anular([],[]). maximo([E,V],[[E2,V2]|LE]) :- maximo([E3,V3],LE),(V2 =< V3,E-V = E3-V3;V2 > V3,E-V = E2-V2). maximo([E,V],[[E,V]]). quitarpreguntado([[E,V]|LE],E2,[[E,V]|LE2]) :- E \= E2,!,quitarpreguntado(LE,E2,LE2). quitarpreguntado([[E,V]|LE],E,LE). incrementoph([[H,P,EO0,MA,MI]|LH],Resp,Em,[[H,Pb,EO0b,MA,MI]|LH2]) :- EO0 = 0,EO0b = EO0,Pb = P,!,incrementoph(LH,Resp,Em,LH2); EO0 \= 0, e(H,_,L),assert(val(P)), [!(miembro(Em,PY,PN,L), recorded(val(_),val(Pi),Ref), [!(Resp > 0,Pi2 is Pi*(1+(PY/(Pi*PY+(1-Pi)*PN)-1)*Resp/5); Resp =< 0,Pi2 is Pi*(1+(PY-(1-PY)*(Pi*PY+(1-Pi)*PN)/(1-(Pi*PY+(1-Pi)*PN)))*Resp/5))!], replace(Ref,val(Pi2)),fail; val(Pi2),abolish(val/1))!], [!(Pi2 =:= integer(Pi2),EO0b = 0; Pi2 =\= integer(Pi2),EO0b = EO0)!], Pb = Pi2, !, incrementoph(LH,Resp,Em,LH2). incrementoph([],_,_,[]). incrementorv([[H,P,EO0,MA,MI]|LH],[[H,P,EO0b,MAb,MIb]|LH2],E2,En) :- EO0 = 0,!,EO0b = 0,MAb = P,MIb = P,incrementorv(LH,LH2,E2,En); EO0 \= 0, e(H,Pap,L), [!(miembro4(S,Rv,E2),assert(vals(S,Rv)),fail; true)!],assert(vals(1,1,1,1)), [!(miembro(S,PY,PN,L),recorded(vals(_,_),vals(S,Rv),Ref), recorded(vals(_,_,_,_),vals(A1,A2,A3,A4),Ref1), valor_sintoma(P,PY,PN,Inc),Rv2 is Rv+Inc, [!(PN > PY,A1b is A1*(1-PY), A2b is A2*(1-PN), A3b is A3*PY, A4b is A4*PN; PN=< PY,A1b is A1*PY, A2b is A2*PN, A3b is A3*(1-PY), A4b is A4*(1-PN))!], replace(Ref1,vals(A1b,A2b,A3b,A4b)), % write(H-pasa-de-A1-A2-A3-A4-a-A1b-A2b-A3b-A4b-con-sin(S,PY,PN)-y-p(P)),get0(_), replace(Ref,vals(S,Rv2)),fail; findall([S,Rv],vals(S,Rv),E3),vals(A1,A2,A3,A4), abolish(vals/2),abolish(vals/4))!], MAb is P*A1/(P*A1+(1-P)*A2), MIb is P*A3/(P*A3+(1-P)*A4), [!(MAb < Pap,EO0b = 0; MAb >= Pap,EO0b = EO0)!], !,incrementorv(LH,LH2,E3,En). incrementorv([],[],E3,E3). miembro2(S,Vs,[[S,Vs,_,_,_]|_]). miembro2(S,Vs,[_|L]) :- miembro2(S,Vs,L). miembro4(S,Vs,[[S,Vs]|_]). miembro4(S,Vs,[_|L]) :- miembro4(S,Vs,L). maximomi([[H1,_,_,_,MI1]|LH],H2,MI2) :- LH \= [],maximomi(LH,H3,MI3),!, (MI3 > MI1,MI2=MI3,H2=H3;MI3 =< MI1,MI2=MI1,H2=H1),!. maximomi([[H1,_,_,_,MI1]],H1,MI1). mayorquetodoma(Hi,Vmi,[[H,_,_,Ma,_]|LH]) :- (Vmi > Ma;Hi = H),!,mayorquetodoma(Hi,Vmi,LH). mayorquetodoma(Hi,Vmi,[]). conclusion(Hi,Phi) :- write($El resultado mas probable es: $),write(Hi),nl, write($con una probabilidad de: $),write(Phi),nl. %%%%%%BASE DE CONOCIMIENTO: MEDICINA GENERAL%%%%%% % ENFERMEDADES e($resfriado comun$,0.02,[1,0.9,0.05,2,0.8,0.02,3,0.8,0.02,5,0.6,0.01, 6,1,0.01,7,0.2,0.01,8,0.5,0.01,15,0.8,0.01,34,0,0.01]). e($rinitis alergica$,0.01,[1,1,0.01,2,1,0.01,6,0.9,0.01,10,0.7,0.01,11, 0.7,0.01,12,0.6,0.01,20,0.9,0.01]). e($sinusitis$,0.01,[14,0.8,0.01,13,0.9,0.01,15,0.8,0.01,7,0.8,0.01,22,0.5, 0.01,2,0.5,0.01,6,0.5,0.01,63,0.9,0.01]). e($faringitis$,0.02,[3,1,0.01,16,0.9,0.01,8,0.5,0.01,11,0.9,0.01,37,0.8, 0.3,64,0.4,0.01]). e($amigdalitis$,0.001,[3,1,0.01,7,0.9,0.01,15,1,0.01,16,0.7,0.01,19,0,0.5, 8,0.9,0.01,34,0,0.01,64,0.8,0.01]). e($gripe$,0.01,[3,0.9,0.01,1,0.9,0.01,6,0.5,0.01,7,0.7,0.01,8,1,0.01,15,1, 0.01,17,0.8,0.01,18,0.6,0.01,34,0,0.01]). e($laringitis$,0.01,[4,1,0.01,8,0.6,0.01,15,0.05,0.01,16,0.7,0.01,37,0.8, 0.3,5,0.9,0.01,21,0.1,0.01]). e($tumor de laringe$,0.00004,[4,1,0.01,34,0.99,0.01,37,0.8,0.3]). e($bronquitis aguda$,0.005,[5,1,0.01,8,1,0.01,12,1,0.01,15,1,0.01,18,0.5, 0.01,21,1,0.01,31,0.9,0.01,34,0,0.01,22,0.9,0.01]). e($bronquitis cronica$,0.005,[5,1,0.01,12,0.9,0.01,14,0.5,0.01,21,1,0.01, 22,0.8,0.01,34,1,0.01,36,0.9,0.01,37,0.8,0.3]). e($asma$,0.02,[12,0.8,0.01,22,1,0.01,23,0.5,0.01,24,0.5,0.01,25,0.5,0.01, 26,0.5,0.01,31,0.8,0.01]). e($enfisema pulmonar$,0.01,[22,1,0.01,5,0.6,0.01,26,0.8,0.01,12,0.6,0.01, 21,0.6,0.01,37,0.8,0.3]). e($neumonia$,0.003,[8,1,0.01,15,1,0.01,18,0.8,0.01,22,1,0.01,23,0.5,0.01, 26,0.5,0.01,28,0.1,0.01,29,0.02,0.01,27,0.2,0.01,31,0.9,0.01,36, 0.1,0.9,7,0.9,0.01,17,0.9,0.01,32,0.5,0.005]). e($pleuresia$,0.001,[31,0.8,0.01,32,0.8,0.01,22,0.5,0.01,5,0.8,0.01,8,0.9, 0.01,15,1,0.01,34,0,0.01]). e($neumotorax$,0.0002,[18,0.8,0.01,22,0.8,0.01,32,0.8,0.005]). e($bronquiectasia$,1e-5,[21,1,0.01,27,0.5,0.01,5,1,0.01,14,0.5,0.01]). e($abceso pulmonar$,1e-5,[33,0.9,0.01,18,0.5,0.01,21,0.5,0.01,27,0.5,0.01]). e($neumoconiosis$,0.001,[22,1,0.01,36,1,0.01,21,0.8,0.01,9,1,0.01]). e($cancer de pulmon$,0.001,[5,1,0.01,21,0.8,0.01,27,0.5,0.01,22,0.5,0.01, 18,0.8,0.01,12,0.5,0.01,37,0.99,0.3]). e($fibrosis intersticial$,1e-5,[22,0.8,0.01,35,0.8,0.01,21,0.6,0.01]). e($edema pulmonar$,0.001,[22,0.9,0.01,25,0.9,0.01,30,0.5,0.01,27,0.5,0.01, 26,0.5,0.01,12,0.8,0.01]). e($gastritis$,0.01,[41,0.8,0.01,43,0.8,0.01,42,0.5,0.01,8,0.4,0.01,37,0.9, 0.5]). e($hernia del hiato$,0.001,[18,0.9,0.01,32,0.5,0.005,42,0.8,0.005,57,0.9, 0.01,16,0.9,0.01,41,0.8,0.01]). e($ulcera duodenal$,0.01,[37,0.8,0.2,42,0.99,0.005,41,0.8,0.01,57,0.7,0.01]). e($ulcera gastrica$,0.01,[42,0.9,0.005,46,0.5,0.01,20,0.8,0.01,41,0.7,0.01, 56,0.9,0.01,57,0.7,0.01,62,0.0001,0.01]). e($diverticulitis intestinal$,0.001,[42,0.6,0.005,43,0.5,0.01,41,0.5,0.01, 8,0.5,0.01,56,0.8,0.01]). e($enterocolitis$,0.0001,[42,0.9,0.005,43,0.7,0.01,23,0.3,0.01,41,0.3,0.01, 8,0.3,0.01]). e($enfermedad de crohn$,0.0001,[42,0.9,0.005,43,0.9,0.01,15,0.9,0.01,8,0.7, 0.01,62,0.00001,0.01]). e($oclusion intestinal$,0.00001,[42,0.9,0.005,43,0.8,0.01,41,0.5,0.01]). e($apendicitis$,0.001,[34,0.1,0.9,42,0.9,0.005,41,0.8,0.01,8,0.8,0.01, 44,0,0.5]). e($intoxicacion alimentaria$,0.001,[42,0.5,0.005,41,0.9,0.01,43,0.9,0.01, 7,0.8,0.01]). e($gastroenteritis$,0.01,[41,0.8,0.01,42,0.7,0.005,43,0.9,0.01,8,0.5,0.01]). e($litiasis renal$,0.001,[42,0.7,0.005]). e($pielonefritis aguda$,0.001,[42,0.9,0.005,8,0.8,0.01,41,0.7,0.01,67,0.9, 0.01]). e($litiasis biliar$,0.01,[42,0.5,0.005,41,0.5,0.01,57,0.9,0.01]). e($colecistitis$,0.001,[42,0.8,0.005,8,0.9,0.01,41,0.8,0.01,45,0.8,0.001]). e($herpes$,0.001,[14,0.8,0.01,18,0.5,0.01,60,0.9,0.01,59,0.9,0.01,2,0.6,0.01, 8,0.5,0.01]). e($tromboflebitis$,0.0005,[40,0.8,0.01]). e($artritis reumatoide$,0.001,[15,0.8,0.01,17,0.8,0.01,40,0.5,0.001]). e($insuficiencia cardiaca$,0.001,[22,0.9,0.01,36,0.5,0.01,25,0.5,0.001,12, 0.6,0.01,18,0.5,0.01,32,0.3,0.001,39,0.5,0.01,42,0.5,0.01,26,0.3, 0.001,47,0.9,0.01]). e($ansiedad$,0.01,[46,0.9,0.01,28,0.3,0.01,47,0.6,0.01,39,0.8,0.01,23,0.6, 0.01,48,0.6,0.01,16,0.3,0.01,43,0.2,0.01,22,0.5,0.01,50,0.5,0.01, 57,0.5,0.01,58,0.5,0.01,15,0.5,0.01,7,0.5,0.01,38,0.5,0.01]). e($depresion$,0.01,[47,0.5,0.01,7,0.5,0.01,49,0.5,0.01,50,0.5,0.01,15,0.5, 0.01,62,0.8,0.01]). e($trombosis coronaria$,0.01,[18,0.5,0.01,32,0.9,0.001,20,0.5,0.01,36,0,0.2, 38,0.5,0.01,22,0.5,0.01,23,0.5,0.01,41,0.5,0.01,15,0.9,0.01]). e($angina de pecho$,0.01,[37,0.8,0.3,18,0.9,0.01,36,0.9,0.01,22,0.5,0.01, 23,0.5,0.01,38,0.5,0.01,20,0.9,0.01,32,1,0.001]). e($embolia pulmonar$,0.0001,[22,1,0.01,18,0.7,0.01,21,0.6,0.01,27,0.5,0.001, 25,0.5,0.001,26,0.4,0.001]). e($apoplegia$,0.001,[28,0.8,0.01,38,0.7,0.01,51,0.8,0.001,58,0.9,0.01,61,0.9, 0.01]). e($ataque isquemico transitorio$,0.001,[28,0.8,0.01,38,0.7,0.01,51,0.8,0.001, 34,0,0.01,20,0.5,0.01,58,0.9,0.01,61,0.9,0.01]). e($tuberculosis$,0.0001,[7,0.5,0.01,8,0.5,0.01,12,0.5,0.01,15,0.5,0.01,18, 0.5,0.01,5,0.5,0.01,30,0.5,0.01,27,0.5,0.001,22,0.5,0.01,62,0.0001, 0.01,23,0.5,0.01]). e($hemorroides$,0.01,[52,0.9,0.001,49,0.8,0.01,56,0.9,0.01,59,0.5,0.01]). e($hipotiroidismo$,0.001,[49,0.8,0.01,17,0.5,0.01,24,0,0.01,23,0.001,0.01, 39,0.001,0.01,4,0.5,0.01,43,0,0.01,46,0.001,0.01,48,0.001,0.01,62, 0.9,0.05]). e($colon irritable$,0.0007,[43,0.5,0.01,49,0.5,0.01,42,0.8,0.001,41,0.3,0.01, 57,0.9,0.01,56,0.5,0.01]). e($cancer intestinal$,0.001,[43,0.9,0.01,49,0.9,0.01,52,0.5,0.001,42,0.5, 0.005,56,0.9,0.01,62,0.0001,0.01]). e($colitis ulcerosa$,0.0004,[42,0.8,0.005,43,0.8,0.01,52,0.6,0.001,23,0.5, 0.01,41,0.5,0.01,8,0.5,0.01,34,0.4,0.01,56,0.9,0.01]). e($enfermedad de meniere$,0.0005,[38,0.9,0.001,41,0.8,0.01,34,0.5,0.01,20, 0.9,0.01]). e($espondilosis cervical$,0.006,[54,0.9,0.01,7,0.5,0.01,38,0.5,0.01,58,0.9, 0.01,61,0.5,0.01]). e($hemorragia subdural$,1e-6,[55,0.99,0.001,28,0.9,0.001,29,0.9,0.01,7,0.9, 0.01,41,0.9,0.01,38,0.9,0.01,20,0.5,0.01,34,0.5,0.01]). e($tumor cerebral$,1e-6,[7,0.9,0.01,41,0.9,0.01,38,0.8,0.01,50,0.8,0.01, 34,0.5,0.01]). e($meningitis$,1e-6,[8,0.9,0.01,7,0.9,0.01,41,0.9,0.01,28,0.7,0.01,54,0.9, 0.01,2,0.9,0.01,60,0.5,0.01]). e($hemorragia subaracnoidea$,1e-5,[7,0.99,0.01,54,0.9,0.01,38,0.7,0.01,28, 0.7,0.01,41,0.8,0.01,2,0.8,0.01]). e($glaucoma agudo$,0.01,[2,0.9,0.01,7,0.9,0.01,41,0.7,0.01,20,0.8,0.01,34, 0.8,0.01,63,0.8,0.01,68,0.9,0.01]). e($arteritis de la temporal$,0.001,[7,0.9,0.01,8,0.7,0.01,17,0.7,0.01,23,0.8, 0.01,63,0.99,0.01]). e($dispepsia$,0.1,[7,0.7,0.01,57,0.7,0.01,42,0.7,0.01,41,0.7,0.01,62,0.001, 0.01,20,0.9,0.01]). e($bloqueo cardiaco$,0.0003,[22,0.5,0.01,58,0.8,0.01,39,0.6,0.01,18,0.6, 0.01]). e($anemia perniciosa$,0.0004,[22,0.9,0.01,58,0.9,0.01,39,0.9,0.01,36,0.9, 0.01,45,0.5,0.01,42,0.5,0.01,50,0.5,0.01,28,0.4,0.01]). e($jaqueca$,0.1,[7,1,0.01,15,0.9,0.01,41,0.9,0.01,43,0.5,0.01,2,0.9,0.01,20, 0.9,0.01,34,0.9,0.01,63,0.99,0.01]). e($hipertension esencial$,0.15,[7,0.5,0.01,39,0.5,0.01,15,0.9,0.01,34,0.9, 0.01]). e($eccema$,0.03,[59,0.9,0.01,60,1,0.01]). e($urticaria$,0.03,[59,0.9,0.01,60,1,0.01,46,0.5,0.01]). e($sarna$,0.001,[59,1,0.01,60,1,0.01]). e($sarampion$,0.02,[15,1,0.01,8,1,0.01,6,0.9,0.01,2,0.9,0.01,11,0.9,0.01,5, 0.9,0.01,43,0.5,0.01,60,1,0.01,7,0.5,0.01,34,0,0.01]). e($rubeola$,0.01,[8,0.5,0.01,60,0.9,0.01,54,0.2,0.01,34,0,0.01,64,0.5,0.01]). e($varicela$,0.001,[60,1,0.01,59,1,0.01,8,0.8,0.01,7,0.5,0.01,15,0.5,0.01, 34,0,0.01]). e($psoriasis$,0.02,[46,0.6,0.01,3,0.5,0.01,60,0.99,0.01,59,0.5,0.01]). e($pitiriasis rubra$,0.01,[60,1,0.01,59,0.9,0.01,34,0.5,0.01]). e($acne rosaceo$,0.01,[60,0.9,0.01,2,0.5,0.01,34,0.8,0.01]). e($tirotoxicosis$,0.001,[46,0.9,0.01,47,0.8,0.01,48,0.9,0.01,23,0.9,0.01, 39,0.9,0.01,22,0.8,0.01,43,0.8,0.01,62,0.00001,0.01,2,0.5,0.01,24, 0.9,0.01,64,0.3,0.01,68,0.3,0.01]). e($diabetes mellitus$,0.01,[62,0.0001,0.01,61,0.5,0.01,2,0.5,0.01,66,0.99, 0.01,68,1,0.01]). e($cancer de estomago$,0.0003,[41,0.5,0.01,42,0.7,0.005,62,0.0001,0.01,52, 0.6,0.001,56,0.5,0.01]). e($fibrilacion auricular$,0.001,[39,0.8,0.01,38,0.5,0.01,20,0.4,0.01,58,0.5, 0.01]). e($enfermedad de hodgkin$,0.0001,[23,0.5,0.01,63,0.6,0.01,54,0.8,0.01,59,0.7, 0.01,64,0.99,0.01]). e($fiebre glandular$,0.001,[8,0.9,0.01,7,0.9,0.01,3,0.9,0.01,15,0.9,0.01,64, 0.8,0.01,54,0.8,0.01,45,0.5,0.001,60,0.5,0.01]). e($linfoma$,0.0001,[64,0.9,0.01,54,0.8,0.01,15,0.8,0.01,62,0.001,0.01,8,0.8, 0.01,23,0.5,0.01,59,0.8,0.01]). e($paperas$,0.01,[64,0.99,0.01,8,0.8,0.01,15,0.9,0.01,16,0.7,0.01,54,0.6, 0.01,3,0.8,0.01]). e($paralisis facial$,0.0003,[51,0.9,0.01,63,0.5,0.01,2,0.9,0.01]). e($enfermedad de parkinson$,0.001,[48,0.9,0.01,51,0.8,0.01,53,0.8,0.5,50,0.2, 0.01,28,0.2,0.01,34,1,0.01]). e($artritis reumatoide $,0.01,[7,0.8,0.01,15,0.8,0.01,8,0.8,0.01,64,0.8,0.01, 60,0.5,0.01,59,0.001,0.01,48,0.1,0.01]). e($cistitis$,0.01,[66,0.9,0.01,65,0.9,0.01,67,0.9,0.01,8,0.5,0.01]). e($tumor renal$,0.001,[8,0.6,0.01,62,0.0001,0.01,41,0.5,0.01,42,0.5,0.01,65, 0.7,0.01]). e($tumor en la vejiga$,0.0004,[65,0.9,0.01,42,0.5,0.01,66,0.5,0.01,67,0.5, 0.01,8,0.3,0.01]). e($iritis$,0.0005,[2,0.9,0.01,68,0.9,0.01]). e($hepatitis aguda$,0.001,[8,0.8,0.01,15,0.8,0.01,17,0.5,0.01,42,0.5,0.01, 45,0.5,0.01,41,0.5,0.01]). % SINTOMAS aire viciado o polvoriento?$). continuamente?$). fisicamente relajado)$). 60 y 80 pulsaciones por minuto, y algo mas rapida para personas de edad superior a 70 o inferior a 20)$). a preocuparte?$). ligeramente azulado?$). incoherente y con mala coordinacion muscular?$). sintomas?$). excesivamente hacia la punta)$). esfuerzo?$). numero de cigarrillos diarios (asi, si fumas 20, has de responder 4) Recuerda que el numero maximo para la respuesta es 5.$). o mas rapido, o menos regularmente de lo que debiera)$). costillas inferiores y las ingles?$). Con frecuencia es mas patente en los ojos: la parte blanca se torna amarillenta)$). noche?$). ya sea ocasional o regularmente?$). palabras?$). respuesta 0 hace que el diagnostico sea independiente del sexo$). durante las ultimas semanas (un golpe incluso leve puede ser importante)$). desfallecido y mareado, incluso, quizas, con perdida de consciencia?$). u hormigueo, como de "agujas y alfileres"?$). con -5 si es excesivamente bajo y o si es normal$). cuerpo?$). luces destellantes? (no cuentan los defectos que pueden corregirse con gafas)$).