04.11.2014 Aufrufe

Grundlagen der Logik und Logikprogrammierung

Grundlagen der Logik und Logikprogrammierung

Grundlagen der Logik und Logikprogrammierung

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

sich um ein Prädikat <strong>und</strong> keine Funktion handelt.<br />

R nil : appprs, X, Xq<br />

R cons : appprX|Y s, Z, rX|W sq Ð apppY, Z, W q<br />

Nun wollen wir wissen, in welche Teillisten man r0|1s zerlegen kann. Wir beginnen also mit <strong>der</strong><br />

Ergebnisliste"r0 1s <strong>und</strong> fragen Prolog, welche möglichen Belegungen für die Teillisten X <strong>und</strong> Y es<br />

gibt.<br />

Ð apppX, Y, r01sq Rcons<br />

ù<br />

Ð apppY 0 , Z 0 , r1sq R nil<br />

ù<br />

Ð ˝<br />

ñ Refutation, weil es keine weiteren Unterziele mehr gibt.<br />

Da die Resolution eine Refutation ergeben hat, gibt es eine Antwort, die aus <strong>der</strong> angesammelten<br />

Substitution besteht: Die Unifikation <strong>der</strong> ursprünglichen Anfrage mit <strong>der</strong> linken Seite <strong>der</strong> R cons -<br />

Regel hat die Substitution rX ÞÑ r0|Y 0 s, Y ÞÑ Z 0 , X 0 ÞÑ 0, W 0 ÞÑ r1ss erzeugt, die Unifikation <strong>der</strong><br />

Unteranfrage mit <strong>der</strong> linken Seite <strong>der</strong> R nil -Regel zusätzlich noch rY 0 ÞÑ rs, X 1 ÞÑ r1s, Z 0 ÞÑ r1ss.<br />

Einsetzen <strong>der</strong> zweiten Substitution in die erste bringt uns zu <strong>der</strong> Substitution<br />

rX ÞÑ r0|rss, Y ÞÑ r1s, X 0 ÞÑ 0, W 0 ÞÑ r1ss<br />

Einschränkung auf die Variablen X <strong>und</strong> Y (alle an<strong>der</strong>en sind nach <strong>der</strong> Definition für eine Antwort<br />

egal) führt zu <strong>der</strong> Antwort rX ÞÑ r0s, Y ÞÑ r1ss<br />

Beispiel: nochmal append<br />

Ð append r1s X rZ | Y s<br />

R cons<br />

ù append rs | X | Y<br />

R nil<br />

ù<br />

Antwort:<br />

rX 0 ÞÑ 1, Y 0 ÞÑ rs, Z 0 ÞÑ X, W 0 ÞÑ Y, Z ÞÑ 1s;<br />

rX 1 ÞÑ X, Z ÞÑ 1, Y ÞÑ Xs | X,Y,Z<br />

“ rZ ÞÑ 1, Y ÞÑ Xs<br />

Aus <strong>der</strong> Korrektheit <strong>der</strong> Gr<strong>und</strong>regel (Res) <strong>der</strong> Resolution können wir die Korrektheit <strong>der</strong> SLD-Resolution<br />

Folgern.<br />

Satz 17. Korrektheit <strong>der</strong> SLD-Resolution<br />

δ “ Q 0 ù ¨ ¨ ¨ ù Q n ñ P Y tQ 0 σpδqu ( Q n σpδq<br />

insbeson<strong>der</strong>e:<br />

Q n “<br />

ñ P Y tQ 0 σpδqu unerfüllbar, d.h. P ( @␣Q 0 σpδq<br />

Korrektheit heißt, dass wir keine falschen Dinge Herleiten können, also dass alles dass wenn wir eine<br />

Antwort von <strong>der</strong> SLD-Resolution erhalten, diese korrekt ist.<br />

35

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!