20.03.2014 Aufrufe

Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...

Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...

Einführung in die Methoden der Künstlichen Intelligenz - Goethe ...

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.

6.4 Untersuchungen zum Kalkül<br />

Algorithmus Allenscher Abschluss, Variante 2<br />

E<strong>in</strong>gabe: (n × n)-Array R, mit E<strong>in</strong>trägen R[i, j] ⊆ R<br />

Algorithmus:<br />

queue := {(i, k, j) | 1 ≤ i ≤ n, 1 ≤ k ≤ n, 1 ≤ j ≤ n};<br />

while queue ≠ ∅ do<br />

Wähle und entferne Tripel (i, k, j) aus queue;<br />

R ′ := R[i, j] ∩ (R[i, k] ◦ R[k, j]);<br />

if R[i, j] ≠ R ′ then<br />

R[i, j] := R;<br />

queue := queue ∪{(i, j, m) | 1 ≤ m ≤ n} ∪ {(m, i, j) | 1 ≤ m ≤ n}<br />

endif<br />

endwhile<br />

Die Korrekheit des Algorithmus ergibt sich daraus, dass bei e<strong>in</strong>er Än<strong>der</strong>ung des Werts<br />

R[i, j] wie<strong>der</strong> alle Nachbarn, <strong>der</strong>en Wert evtl. neu berechnet werden muss, <strong>in</strong> <strong>die</strong> Queue<br />

e<strong>in</strong>gefügt werden.<br />

Die Laufzeit des Algorithmus ist im Worst-Case O(n 3 ): Am Anfang enthält <strong>die</strong> Menge<br />

queue O(n 3 ) Tripel. Jedes R[i, j] kann maximal 13 mal verän<strong>der</strong>t werden. Bei e<strong>in</strong>er Än<strong>der</strong>ung<br />

an R[i, j] werden 2 ∗ n Tripel <strong>in</strong> queue e<strong>in</strong>gefügt. Da es nur n 2 viele R[i, j] gibt,<br />

werden <strong>in</strong>sgesamt maximal 13 ∗ 2 ∗ n ∗ n 2 = O(n 3 ) Tripel zu queue h<strong>in</strong>zugefügt. Also gibt<br />

es nicht mehr als O(n 3 ) Durchläufe <strong>der</strong> while-Schleife, von denen maximal O(n 2 ) Durchläufe<br />

O(n) Laufzeit verbrauchen und <strong>die</strong> restlichen O(n) <strong>in</strong> konstanter Laufzeit laufen.<br />

Das ergibt <strong>in</strong> <strong>der</strong> Summe e<strong>in</strong>e Laufzeit von O(n 3 ).<br />

6.4.2 Korrektheit<br />

Es gilt:<br />

Satz 6.4.1. Der Allensche Kalkül ist korrekt.<br />

Beweis. Die Korrekheit muss man mittels <strong>der</strong> Semantik nachweisen. Für <strong>die</strong> aussagenlogischen<br />

Umformungen ist <strong>die</strong>s offensichtlich.<br />

• A R 1 B ∧ A R 2 B ist äquivalent zu A (R 1 ∩ R 2 ) B:<br />

Sei R 1 = {r 1 , . . . , r k }, R 2 = {r ′ 1 , . . . , r′ k ′ }. Dann ist A R 1 B ∧ A R 2 B äquivalent zu<br />

∨ {(A ri B) ∧ (A r ′ i ′ B) | 1 ≤ i ≤ k, 1 ≤ i ′ ≤ k ′ }. Wenn man nun <strong>die</strong> Eigenschaft h<strong>in</strong>zunimmt,<br />

dass alle Basisrelationen echt disjunkt s<strong>in</strong>d, so sieht man, dass <strong>die</strong> Formel<br />

äquivalent zu ∨ {(A r i B) ∧ (A r ′ i ′ B) | 1 ≤ i ≤ k, 1 ≤ i ′ ≤ k ′ , r i = r ′ i ′ } ist, was gerade<br />

genau A (R 1 ∩ R 2 ) B entspricht.<br />

• A ∅ B und 0 s<strong>in</strong>d äquivalent, da für jede Interpretation I per Def<strong>in</strong>ition I(A∅B) = 0<br />

gilt.<br />

M. Schmidt-Schauß & D. Sabel, Skript KI, WS 2012/13 207 Stand: 17. Januar 2013

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!