SLD-Widerlegungsprozeduren SLD-Baum Beispiel
Transcription
SLD-Widerlegungsprozeduren SLD-Baum Beispiel
SLD-Baum Definition: SLD-Widerlegungsprozeduren Sei P ein definites Programm und G ein definites Ziel. Ein SLD-Baum für P∪{G} ist ein Baum der folgenden Bedingungen genügt: a. Jeder Knoten ist ein (evtl. leeres) Ziel b. Der Wurzelknoten ist G. c. Jeder Knoten mit Ziel ← A1,…., Am,…, Ak mit selektiertem Atom Am hat für jede Eingabeklausel A ← B1,….,Bq, deren Kopf mit Am mittels MGU θ unifizierbar ist einen Tochterknoten ← (A1,…., B1,….,Bq,…, Ak)θ d. Knoten mit leerem Ziel haben keine Kinder Steffen Staab ISWeb – Vorlesung „Datenbanken II“ Steffen Staab ISWeb – Vorlesung „Datenbanken II“ Beispiel: Endlicher SLD-Baum 1. 2. 3. p(x,z) ← q(x,y), p(y,z). p(x,x) ← q(a,b) ← 2 {x/b} success 3 ← p(b,b) ← q(b,u), p(u,b) failure p(x,z) ← q(x,y), p(y,z). p(x,x) ← q(a,b) ← □ ← q(x,y), p(y,b) 1 1. 2. 3. ←p(x,b) 1 Beispiel: Unendlicher SLD-Baum □ {x/a} success Steffen Staab ISWeb – Vorlesung „Datenbanken II“ 2 1 □ ← q(x,y), p(y,b) 1 ← q(x,y),q(z,u),p(u,b) 1 2 ←p(x,b) 2 ← q(x,y),q(z,u),q(u,v), p(v,b) … … ← q(x,b) … 3 … failure 3 □ {x/a} success Steffen Staab ISWeb – Vorlesung „Datenbanken II“ {x/b} success Variationen der Theoreme aus dem Kapitel „Berechnungsregeln“ Theorem Sei P ein definites Programm und G ein definites Ziel und R eine Berechnungsregeln. Wenn P∪{G} nicht erfüllbar ist, dann hat der SLD-Baum für P∪{G} mittels R mindestens einen Erfolgszweig. Theorem Sei P ein definites Programm und G ein definites Ziel und R eine Berechnungsregel. Dann wird jede korrekte Antwort θ für P∪{G} auf dem entsprechenden SLDBaum „angezeigt“. „Angezeigt“ bedeutet hierbei, dass es einen Erfolgszweig gibt so dass θ die Instanz einer berechneten Antwort ist, die aus der Widerlegung dieses Erfolgszweigs resultiert. Steffen Staab ISWeb – Vorlesung „Datenbanken II“ Suchregel Definition Eine Suchregel ist eine Strategie zum Durchsuchen von SLD-Bäumen, um Erfolgszweige zu finden. Eine SLD-Widerlegungsprozedur ist definiert durch eine Berechnungsregel und eine Suchregel. Steffen Staab ISWeb – Vorlesung „Datenbanken II“ Unabhängigkeit der Berechnungsregel für SLD-Bäume Theorem Sei P ein definites Programm und G ein definites Ziel. Dann hat jeder SLD-Baum für P∪{G} unendliche viele Erfolgszweige oder jeder SLDBaum hat die gleiche endliche Anzahl von Erfolgszweigen. Beweisidee Mittels Switching Lemma erfolgt eine Bijektion zwischen den Erfolgszweigen von SLD-Bäumen. Steffen Staab ISWeb – Vorlesung „Datenbanken II“ Standard Prolog: SLDWiderlegungsprozedur • Selektiere das Atom, das am weitesten links steht • Tiefensuche Steffen Staab ISWeb – Vorlesung „Datenbanken II“ Probleme mit der Tiefensuche 1. verwandtMit(a,b) ← 2. verwandtMit(c,b) ← 3. verwandtMit(x,z) ← verwandtMit(x,y), verwandtMit(y,z). 4. verwandtMit(x,y) ← verwandtMit(y,x) Ziel: ← verwandtMit(a,c). Steffen Staab ISWeb – Vorlesung „Datenbanken II“