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“