20 Mayıs 2015 Çarşamba

basit yapay zeka programı

merhabalar. prolog bir yapay zeka dilidir ve uzman sistem de yapay zekanın bir alt koludur. aşağıdaki  program uzman sistem adı altında prolog diliyle kodlanmış basit bir hastalık tespit programıdır. programı swi prolog derleyicisinde çalıştırabilirsiniz.

go :- hypothesize(Animal),
      write('hastalığınız bu olabilir: '),
      write(Animal),
      nl,
      undo.
hypothesize(grip)   :- grip,!.
hypothesize(astim)   :- astim,!.
hypothesize(akciger_kanseri)   :- akciger_kanseri,!.
hypothesize(losemi)   :- losemi,!.
hypothesize(bobrek_iltihabi)   :- bobrek_iltihabi,!.

hypothesize(bilinmiyor).

grip :-   ates,
verify(titreme),
agri,
verify(yorgunluk),
verify(bulantı),
kusma,
verify(ishal).

akciger_kanseri :-
oksuruk,
agri,
nefes,
verify(pozitif_lab_sonucu).

astim:-
oksuruk,
nefes,
verify(hısiltili_solunum).

losemi:-
agri,
kusma,
verify(kas_zayıflaması),
ates,
verify(hatirlama_guclugu),
verify(istahsizlik),
verify(burun_kanamasi),
verify(yuksek_kan_degeri),
oksuruk.
bobrek_iltihabi:-
agri,
verify(yuksek_tansiyon),
verify(kilo_kaybi),
verify(kansizlik).

ates:- verify(yuksek_ates).

nefes:- verify(nefes_darligi).

agri:- verify(bas_agrisi),!.
agri:-       verify(eklem_agrisi),!.
agri:- verify(gogus_agrisi),!.
agri:- verify(agrili_idrar).

kusma:-verify(kusma),!.
kusma:-       verify(kanli_kusma).

oksuruk:-verify(kanli_oksuruk),!.
oksuruk:- verify(kuru_oksuruk).

ask(Question) :-
    write('Hastaliginizda su belirti var mi : '),
    write(Question),
    write('? '),
    read(Response),
    nl,
    ( (Response == yes ; Response == y)
      ->
       assert(yes(Question)) ;
       assert(no(Question)), fail).

:- dynamic yes/1,no/1.
verify(S) :-
   (yes(S)
    ->
    true ;
    (no(S)
     ->
     fail ;
     ask(S))).

undo :- retract(yes(_)),fail.
undo :- retract(no(_)),fail.
undo.

video programın çalışma mantığını göstermektedir. Kolay gelsin :)

Hiç yorum yok:

Yorum Gönder