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