Refraktion, Negation, Konfliktlösungsstrategien - www2.inf.h
Transcription
Refraktion, Negation, Konfliktlösungsstrategien - www2.inf.h
3. Regelsysteme Vorwärtsverkettung Das Refraktionsprinzip Das letzte Beispiel zeigte einen möglichen Verlauf des Chipsspiel mit den definierten Regeln. Ein anderer möglicher Verlauf wäre: Iteration 1 2 3 Konfliktmenge R1(2, 2)∗, R2(2, 2) R1(2, 2)∗, R2(2, 2) R1(2, 2)∗, R2(2, 2) ... neues Faktum status(0, 3) ... • Hier wird stets die gleiche Regelinstanz aus der Konfliktmenge ausgewählt. • Problem: Eine Regelinstanz die einmal feuert, kann immer wieder feuern. 141 3. Regelsysteme Vorwärtsverkettung • Konsequenz: Die Vorwärtsverkettung terminiert nicht. • Die Löschung des alten Zustandes würde aber verhindern, daß man auf einen Zustand verschiedene Regeln anwenden kann. • Man muß sich also merken, welche Regel auf welchen Zustand (also welche Regelinstanz) angewendet wurde. Refraktionsprinzip: Eine Regelinstanz darf höchstens einmal feuern! 142 3. Regelsysteme Vorwärtsverkettung Implementierung der Vorwärtsverkettung Algorithmus 3.2. Eine einfache Implementierung der Vorwärtsverkettung mit Refraktion: 1. Berechne die Konfliktmenge km. Setze gefeuert := ∅. 2. Wenn km = ∅ dann STOP. Ansonsten gehe zu 3. 3. Sei r die erste Regelinstanz in km. Füge die Konklusion von r in die Faktionbasis ein. Setze gefeuert := gefeuert ∪ {r}. 143 3. Regelsysteme Vorwärtsverkettung 4. Berechne die Konfliktmenge km. Setze km := km \ gefeuert. Gehe zu 2. Zur Berechnung der Konfliktmenge: km := ∅ for r in der Regelmenge do inst := Menge der anwendbaren Instanzen von r km := km ∪ inst return km 144 3. Regelsysteme Vorwärtsverkettung Negative Prämissen mit Variablen • Prinzipiell kann man für die Vorwärtsverkettung die gleiche Form der Negation wie in der Rückwärtsverkettung benutzen, d.h. negation as failure. • Eine variablenfreie negative Prämisse −a ist erfüllt, wenn die Prämisse +a nicht erfüllt ist. • Enthält eine Prämisse allerdings Variablen, so sind mehrere Interpretationen denkbar. • Man betrachte die Regel R1 : +p(x) ∧ −q(x, y) → r(x) und die Faktenbasis {p(a), q(a, b), p(c)}. 145 3. Regelsysteme Vorwärtsverkettung • Formal ist die Regel anwendbar mit σ = {x/a, y/c}. • Es ist aber auch eine andere Interpretation denkbar, die verlangt, daß es für beliebiges y kein Faktum der Form q(a, y) geben darf. • Letzteres wäre analog zur Interpretation in Prolog. • Beispiel für eine Regel, wo dies sinnvoll ist: R1 : +Mann(x) ∧ −Verheiratet(x, y) → Junggeselle(x) 146 3. Regelsysteme Vorwärtsverkettung Bestimmung der Anwendbarkeit einer Regel • In Algorithmus 3.2 blieb offen, wie die anwendbaren Instanzen zu einer Regel bestimmt werden können. • Sei P = {p1, . . . , pn} die Menge der positiven Prämissen einer Regel r. • Um eine anwendbare Instanz σ(r) zu bestimmen, müssen zunächst Fakten a1, . . . , an gefunden werden, für die es eine Substitution σ mit σ(pi) = ai gibt. • Anschließend muß gepüft werden, ob die negativen Prämissen und die prozeduralen Prämissen von σ(r) in der Faktenbasis erfüllt sind. 147 3. Regelsysteme Vorwärtsverkettung Beispiel 3.7. Gegen sei die Regel +a(x, y) ∧ +a(y, z) ∧ +a(z, w) → a(x, w) und die Faktenbasis FB = {a(1, 2), a(2, 3), a(3, 4)}. Wir suchen nach einer Instanziierung der Variablen, die die linke Seite der Regel erfüllt. Wir können hierzu wie in Prolog vorgehen. Mittels Unifikation und Suche wird nach allen Unifikationen gesucht, die die linke Regelseite erfüllen. Prämisse a(x,y) a(2,z) a(3,w) Fakt a(1,2) a(2,3) a(3,4) Substitution {x/1, y/2} {x/1, y/2, z/3} {x/1, y/2, z/3, w/4} 148 3. Regelsysteme Vorwärtsverkettung Effizientere Bestimmung der Konfliktmenge • Die Prozedur zur Bestimmung der Konfliktmenge in Algorithmus 3.2 berechnet die Konfliktmenge, indem alle Regeln auf Anwendbarkeit geprüft werden. • Im ungünstigsten Fall müssen dabei für eine Regel alle Fakten aus der Faktenbasis mit den Prämissen dieser Regel unifiziert werden. • Weiterhin wird in jedem Zyklus die Konfliktmenge komplett neu berechnet. • Dies ist ineffizient, denn üblicherweise wird sich die Konfliktmenge von einem Zyklus zum nächsten nur geringfügig ändern. 149 3. Regelsysteme Vorwärtsverkettung • Man sollte also möglichst nur die Änderungen der Konfliktmenge in einem Zyklus betrachten. • Das feuern einer Regel führt dazu, daß ein neues Faktum in die Faktenbasis eingefügt wird. • Es reicht also aus, die Regeln zu betrachten, bei denen das Faktum als Prämisse auftaucht (bezüglich einer geeigneten Substitution). • Hierbei können zwei Fälle auftreten: 1. Eine Regelinstanz kann aufgrund des neuen (positiven Faktums) anwendbar werden. 2. Eine Regelinstanz ist nicht mehr anwendbar, weil eine negative Prämisse nun nicht mehr erfüllt ist. 150 3. Regelsysteme Vorwärtsverkettung Beispiel 3.8. Gegeben sei das folgende Regelsystem: → Q(x, y) R1(x, y) : +P(x, y) → S(x, x) R2(x, y) : +Q(x, y) R3(x, y) : +P(x, y) ∧ −S(x, x) → P(y, x) und die Faktenbasis {P(a, b)}. 1. Zunächst besteht die Konfliktmenge aus den Regelinstanzen R1(a, b) und R3(a, b). R1(a, b) feuert und Q(a, b) wid in die Faktenbasis eingetragen. 2. Im zweiten Zyklus muß nur R2 überprüft werden. R2(a, b) ist anwendbar. Die Instanz feuert und S(a, a) wid in die Faktenbasis aufgenommen. 151 3. Regelsysteme Vorwärtsverkettung 3. R3(a, b) ist bisher in der Konfliktmenge, aber durch die Aufnahme von S(a, a) in die Faktenbasis verliert R3(a, b) ihre Anwendbarkeit. Algorithmus 3.3. procedure km update( faktneu ) for r in der Regelmenge do if ∃ positive Prämisse b zu r mit faktneu ist unifizierbar mit b bezüglich σ then km := km ∪ σ(r) end for σ(r) ∈ km do if r hat negative Prämisse b mit σ(b) = faktneu then km := km \ σ(r) end 152 3. Regelsysteme Vorwärtsverkettung Konfliktlösungsstrategien • Das Problem, das dem Refraktionsprinzip zugrunde liegt, ist ein typischer Fall eines Regelkonflikts. • Häufig sind mehrere Regeln auf verschiedene Situationen anwendbar. • Allgemein spielt das Problem der Regelkonflikte bei vorwärtsverketteten Systemen eine weitaus größere Rolle als bei rückwärtsverketteten. • Das allgemeine Vorgehen der Konfliktlösung in vorwärtsverketteten Systemen besteht in einer sukzessiven Filterung der Konfliktmenge. 153 3. Regelsysteme Vorwärtsverkettung Struktur eines Vorwärtsinterpreters mit Konfliktlösung: Faktenbasis Regelbasis Unifikation Filter 1 Filter n KM leer? Regel feuert 154 3. Regelsysteme Vorwärtsverkettung • In der Regel steigt die Anzahl der Regelinstanzen in der Konfliktmenge während der Vorwärtsverkettung stark an. • Das Refraktionsprinzip löscht genau eine Regelinstanz aus der Konfliktmenge. • Wir brauchen also weitere Konfliktlösungsstrategien. Aus der Rückwärtsverkettung kennen wir bereits das Konzept der dynamischen Prioritäten. Prioritätsprinzip: Lösche alle Instanzen σ(r) zur Regel r aus der Konfliktmenge, wenn die Konfliktmenge eine Regelinstanz σ(r 0) enthält und die Priorität von r 0 höher ist als die von r. 155 3. Regelsysteme Vorwärtsverkettung Eine weitere Art der Steuerung beruht auf dem gleichen Gedanken wie das Prioritätsprinzip, nämlich dem der unterschiedlichen Wichtigkeit verschiedener Regeln. Beispiel: R1 : Wenn t > tkrit ist, dann aktiviere das Küklsystem R2 : Wenn t > tkrit und d > dkrit ist, dann löse Alarm aus. Offensichtlich scheint R2 dringender zu sein als R1. Sie beschreibt eine spezifischere Situation. 156 3. Regelsysteme Vorwärtsverkettung Definition 3.2. Unter dem Anwendungsbereich einer Regel r verstehen wir die Menge der Faktenbasen, in denen die Regel r anwendbar ist. Eine Regel r heißt spezifischer als eine Regel r 0 gdw. der Anwendungsbereich von r eine echte Teilmenge des Anwendungsbereichs von r 0 ist. Spezifitätsprinzip: Lösche eine Regelinstanz σ(r) aus der Konfliktmenge, wenn die Konfliktmenge eine Regelinstanz σ(r 0) enthält und r 0 spezifischer als r ist. Eine andere Formulierung des Spezifitätsprinzips, die operational anwendbar ist, lautet: Ist die Menge der Prämissen von r eine Teilmenge der Menge der Prämissen von r 0, dann ist r 0 spezifischer als r. 157 3. Regelsysteme Vorwärtsverkettung • Priorität und Spezifität können Konflikte nicht vollständig auflösen, wenn sich zu einer Regel mehrere Instanzen in der Konfliktmenge befinden, • denn Priorität und Spezifität sind Eigenschaften einer Regel und nicht einer Regelinstanz. • Um Konflikte zwischen Instanzen einer Regel aufzulösen, hat sich eine Vorgehensweise bewährt, die sich an der Aktualität der Fakten orientiert. • Dabei wird die Regelinstanz bevorzugt, die sich auf aktuelle Fakten in der Faktenbasis bezieht. • Dies entspricht der Tiefensuche (expandiere das, was zuletzt entstanden ist). 158 3. Regelsysteme Vorwärtsverkettung • Technisch läßt sich dies realisieren, indem jedem Faktum in der Wissensbasis eine Zeitmarke zugeordnet wird, die angibt, wann das Faktum erzeugt wurde. • Beim Vergleich zweier Regelinstanzen zu einer Regel r σ1(r) und σ2(r) wird die Instanz bevorzugt, deren Prämisse die aktuellere Zeitmarke trägt. • Problematischer wird der Fall, wenn die Regel r mehr als eine Prämisse aufweist. In diesem Fall benutzt man einen komplexeren Vergleich (lexikographisch, Vergleich der Maxima, etc.) Aktualitätsprinzip: Lösche eine Regelinstanz σ(r) aus der Konfliktmenge, wenn die Konfliktmenge eine aktuelle Regelinstanz σ 0(r) enthält. 159