1 / 6

JUI - 11. přednáška Příklad využití Prologu pro tvorbu expertních systémů

JUI - 11. přednáška Příklad využití Prologu pro tvorbu expertních systémů. RNDr. Jiří Dvořák, CSc. dvorak@uai.fme.vutbr.cz. Nová syntaxe pravidel a faktů. Pravidla: if podmínka then závěr Podmínka může být složena z jednoduchých podmínek spojených pomocí and a or .

walter
Télécharger la présentation

JUI - 11. přednáška Příklad využití Prologu pro tvorbu expertních systémů

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. JUI - 11. přednáškaPříklad využití Prologu pro tvorbu expertních systémů RNDr. Jiří Dvořák, CSc. dvorak@uai.fme.vutbr.cz

  2. Nová syntaxe pravidel a faktů • Pravidla: • if podmínka then závěr • Podmínka může být složena z jednoduchých podmínek spojených pomocí and a or. • Zavedení nových operátorů • :-op(800,fx,if). • :-op(700,xfx,then). • :-op(300,xfy,or). • :-op(200,xfy,and). • Fakta: • fact(tvrzení).

  3. Interpret pro novou syntaxi • is_true(P):-fact(P). • is_true(P):-if Podmínka then P, • is_true(Podmínka). • is_true(P1 and P2):-is_true(P1),is_true(P2). • is_true(P1 or P2) :-is_true(P1);is_true(P2). • Nevýhodou této jednoduché inferenční procedury je skutečnost, že uživatel musí zadat všechna relevantní fakta ještě před zahájením procesu usuzování. • Fakta by se měla zadávat interaktivně v dialogu s expertním systémem v okamžiku, kdy jsou zapotřebí.

  4. Mechanismus dopředného řetězení • forward:-new_derived_fact(P),, • write('Odvozeno:'),write(P),nl, • assert(fact(P)),forward; • write('Zadna dalsi fakta:'). • new_derived_fact(Zaver):- • if Podm then Zaver, not fact(Zaver), • composed_fact(Podm). • composed_fact(Podm):-fact(Podm). • composed_fact(Podm1 and Podm2):- • composed_fact(Podm1),composed_fact(Podm2). • composed_fact(Podm1 or Podm2):- • composed_fact(Podm1);composed_fact(Podm2).

  5. Vysvětlovací mechanismus • :-op(800,xfx,<=). • is_explained(P,P):-fact(P). • is_explained(P,P <= DukazPodm):- • if Podm then P,is_explained(Podm,DukazPodm). • is_explained(P1 and P2, Dukaz1 and Dukaz2):- • is_explained(P1,Dukaz1),is_explained(P2,Dukaz2). • is_explained(P1 or P2,Dukaz):- • is_explained(P1,Dukaz);is_explained(P2,Dukaz). • Tento mechanismus poskytne vysvětlení, jak se dospělo k výsledku. Jde v podstatě o generování důkazního stromu. • is_explained(P,Dukaz) platí, jestliže Dukaz je důkaz, že P platí.

  6. Zpracování neurčitosti • :-op(900,xfx,::). • certainty(P,Jist):-given(P,Jist). • certainty(P,Jist):- • if Podm then P :: J1, • certainty(Podm,J2), • Jist is J1*J2. • certainty(Podm1 and Podm2,Jist):- • certainty(Podm1,Jist1), • certainty(Podm2,Jist2), • Jist is min(Jist1,Jist2). • certainty(Podm1 or Podm2,Jist):- • certainty(Podm1,Jist1), • certainty(Podm2,Jist2), • Jist is max(Jist1,Jist2).

More Related