146 KAPITEL 6. BERECHNUNG VON ANTWORTENDamit wäre also folgender Algorithmus korrekt und vollständig, aber sehr aufwendig:In der ersten Phase der Anfragebeantwortung wurden die potentiellen Antworten{θ i,1 , . . . , θ i,ki } mit ihren Begründungen D i berechnet, und auch die Konflikte Ω j . Nachder Methode von Lemma 6.1.28 kann man nun zu jeder Begründung D i e<strong>in</strong>e vollständigeMenge widersprechender Begründungen berechnen. Nach Lemma 6.1.34 kann man fürjede Teilmenge der potentiellen Antworten die vollständigen Mengen widersprechenderBegründungen zusammensetzen. Nach Lemma 6.1.30 und Lemma 6.1.32 s<strong>in</strong>d geradedie zusammengesetzten Antworten korrekt, deren vollständige Menge widersprechenderBegründungen leer ist.Dieser Algorithmus ist aber bei e<strong>in</strong>er größeren Menge potentieller Antworten nichtpraktisch durchführbar, weil exponentiell viele Teilmengen betrachtet werden müssen.Man möchte natürlich nur solche potentiellen Antworten zusammensetzten, die etwas zudem Ziel beitragen, alle Extensionen zu überdecken. Hier hilft das folgende Lemma:Lemma 6.1.35: Seien { ˆD i,1 , . . . , ˆD i,mi } (i = 1, . . . , n) vollständige Mengen widersprechenderBegründungen zu D i mit(| ˆD1,1 | ∪ · · · ∪ | ˆD 1,m1 | ) ∩ · · · ∩ ( | ˆD n,1 | ∪ · · · ∪ | ˆD n,mn | ) = ∅.Sei n > 1 und D i nötig <strong>in</strong> dem S<strong>in</strong>n, daß sonst der entsprechende Schnitt nicht leerwäre. Dann gibt es e<strong>in</strong> i ′ ≠ i sowie j und j ′ und e<strong>in</strong>en Konflikt Ω mit Ω ∩ ˆD i,j ≠ ∅ undΩ ∩ ˆD i ′ ,j ′ ≠ ∅.Beweis: Wenn man(| ˆD1,1 | ∪ · · · ∪ | ˆD 1,m1 | ) ∩ · · · ∩ ( | ˆD n,1 | ∪ · · · ∪ | ˆD n,mn | ) (∗)ausmultipliziert, erhält man e<strong>in</strong>e Vere<strong>in</strong>igung von Schnitten, von der jeder e<strong>in</strong>zelne leer se<strong>in</strong>muß, d.h. für jede Auswahl von j 1 , . . . , j n gilt:| ˆD 1,j1 | ∩ · · · ∩ | ˆD n,jn | = ∅.Andererseits ist (∗) ohne | ˆD i,1 | ∪ · · · ∪ | ˆD i,mi | nicht leer, man kann also j 1 , . . . , j n so wählen, daß| ˆD 1,j1 | ∩ · · · ∩ | ˆD i−1,ji−1 | ∩ | ˆD i+1,ji+1 | ∩ · · · ∩ | ˆD n,jn | ≠ ∅.Also ist Φ∪ ˆD 1,j1 ∪· · ·∪ ˆD n,jn <strong>in</strong>konsistent und es gibt e<strong>in</strong>en Konflikt Ω mit Ω ⊆ ˆD 1,j1 ∪· · ·∪ ˆD n,jn .Andererseits istΦ ∪ ˆD 1,j1 ∪ · · · ∪ ˆD i−1,ji−1 ∪ ˆD i+1,ji+1 ∪ · · · ∪ ˆD n,jnkonsistent, Ω kann also ke<strong>in</strong>e Teilmenge hiervon se<strong>in</strong>, d.h. Ω ∩ ˆD i,ji ≠ ∅. Es ist aber natürlichauch Φ ∪ ˆD i,ji konsistent, also Ω ⊈ ˆD i,ji , es muß daher e<strong>in</strong> i ′ ≠ i geben mit Ω ∩ ˆD i ′ ,j i ′≠ ∅.Damit ist die Behauptung für j := j i und j ′ := j i ′ gezeigt. ✷Dies führt zu folgendem Algorithmus: Man berechne wieder die potentiellen Antworten{θ i,1 , . . . , θ i,ki } und jeweils e<strong>in</strong>e vollständige Menge widersprechender Begründungen{ ˆD i,1 , . . . , ˆD i,mi }. Falls e<strong>in</strong> m i = 0 ist, kann man die Antwort {θ i,1 , . . . , θ i,ki } ausgebenund sie von den noch zu überprüfenden Antworten streichen. Sonst setzt man jeweils zweipotentielle Antworten {θ i,1 , . . . , θ i,ki } und {θ i ′ ,1, . . . , θ i ′ ,k i ′ } zusammen, für die es j, j ′ unde<strong>in</strong>en Konflikt Ω mit Ω ∩ ˆD i,j ≠ ∅ und Ω ∩ ˆD i ′ ,j′ ≠ ∅ gibt. Diese Zusammensetzung liefert
6.1. BOTTOM-UP 147die potentielle Antwort {θ i,1 , . . . , θ i,ki , θ i ′ ,1, . . . , θ i ′ ,k i ′ }. Die zugehörige vollständige Mengewidersprechender Begründungen ist entsprechend Lemma 6.1.34:{ˆDi,ν ∪ ˆD i ′ ,ν ′ ∣ ∣ es gibt ke<strong>in</strong>en Konflikt Ω ′ mit Ω ′ ⊆ ˆD i,ν ∪ ˆD i ′ ,ν ′ }.Falls die Menge leer ist, kann man die Antwort ausgeben und braucht sie nicht weiterzu berücksichtigen. Man iteriert diese paarweise Zusammensetzung, bis sich nichts mehrändert.Beispiel 6.1.36: Im laufenden Beispiel s<strong>in</strong>d die Mengen widersprechender Begründungenzu {¬p(d)} und {¬p(e)} leer, die Antworten 〈X ⊳ d〉 und 〈X ⊳ e〉 können also sofortausgegeben werden. Dagegen hat {¬p(b)} die widersprechende Begründung {¬p(c)}und umgekehrt. Weil die beiden widersprechenden Begründungen sich mit dem Konflikt{¬p(b), ¬p(c)} überlappen, werden sie zusammengesetzt, das Ergebnis enthält aber geradediesen Konflikt, so daß es gelöscht wird. Das bedeutet, daß die Antwort {〈X⊳ b〉, 〈X⊳ c〉}ke<strong>in</strong>e widersprechender Begründungen hat, und ausgegeben werden kann. Damit ist dieMenge der noch zu überprüfenden potentiellen Antworten leer, die Iteration endet alsoschon nach dem ersten Schritt.✷Beispiel 6.1.37: Es soll jetzt noch e<strong>in</strong> etwas komplizierteres Beispiel betrachtet werden.Die <strong>Defaults</strong> seien∆ := {p 1 , . . . , p 4 , q 1 , . . . , q 5 }.Als Axiome seien nun e<strong>in</strong>erseits solche gegeben, die e<strong>in</strong>e Begründung für die Antwort ”ja“auf die Anfrage r liefern:r ← p 1 , r ← p 2 ∧ p 3 , r ← p 4 .Andererseits seien Axiome gegeben, die gerade den Konflikten entsprechen:¬p 1 ∨ ¬q 1 , ¬p 1 ∨ ¬q 2 ∨ ¬q 3 , ¬p 2 ∨ ¬q 4 , ¬p 4 ∨ ¬q 4 , ¬q 1 ∨ ¬q 4 ∨ ¬q 5 , ¬q 3 ∨ ¬q 5 .Es gibt also folgende Begründungen und widersprechende Begründungen:θ D ˆD” ja“ {p 1} {q 1 }, {q 2 , q 3 }” ja“ {p 2, p 3 } {q 4 }” ja“ {p 4} {q 5 }Im ersten Iterationsschritt läßt sich nun jede Zeile mit jeder anderen zusammensetzen undman erhält:θ D ˆD” ja“ {p 1}, {p 2 , p 3 } {q 1 , q 4 }, {q 2 , q 3 , q 4 }” ja“ {p 1}, {p 4 } {q 1 , q 5 }, [{q 2 , q 3 , q 5 }]” ja“ {p 2, p 3 }, {p 4 } {q 4 , p 5 }Die <strong>in</strong> eckigen Klammern angegebene Menge von <strong>Defaults</strong> enthält e<strong>in</strong>en Konflikt und wirdgelöscht. Im zweiten Iterationsschritt ergibt sich:θ D ˆD” ja“ {p 1}, {p 2 , p 3 }, {p 4 } [{q 1 , q 4 , q 5 }], [{q 1 , q 2 , q 3 , q 4 , q 5 }]