Regeln
Wenn <Vorbedingung> dann <Aktion>
Zwei Aktionstypen:
• Implikation (Deduktionen): Monotonie-Eigenschaft
• Handlungen: keine Monotonie
Beispiel für Implikationsregel:
wenn (1) Nackensteife und (2) hohes Fieber
und (3) Bewußtseinstrübung dann Verdacht auf Menigites
Beispiel für Handlungsregel:
Operation Absetzen (Klotz1, Klotz2) wenn (1) frei (Klotz1)
und (2) im Greifarm (Klotz2) dann (1) auf (Klotz2, Klotz1)
und (2) frei (Klotz2) und (3) im Greifarm ()
Kommutative Regelsysteme
Für alle anwendbaren Regeln R1 und R2 gilt:
R1 (R2 (DB)) = R2 (R1 (DB))
Bei kommunikativen Regelsystemen irreversible Kontrollstrategie (ohne Backtracking) ausreichend!
DB
R1 R2
DB'''
R1 R2
DB''
DB'
Aufbau eines Regelinterpreters
Programmierer legt fest, was getan wird,
die Reihenfolge bestimmt der Regelinterpreter.
Komponenten: Datenbasis Regelbasis
Abarbeitungsstrategien:
• Vorwärtsverkettung (Forward Reasoning)
• Rückwärtsverkettung (Backward Reasoning)
Vorwärtsverkettung
Komponenten: Datenbasis Regelbasis (1) DATEN Å Ausgangsdatenbasis
(2) Until DATEN erfüllt Terminierungskriterium or keine Regel anwendbar do
(2.1) wähle anwendbare Regel (Vorbedingung durch DATEN erfüllt)
(2.2) DATEN Å Ergebnis der Anwendung von Aktion auf DATEN
Selektionsverfahren in Schritt (2.1) meist in 2 Stufen:
• Vorauswahl (Ermittlung aller anwendbaren Regeln)
• Auswahl (Auswahl einer Regel mit Konfliktlösungsstrategie) Beispiele für Konfliktlösungsstrategien:
• Auswahl nach Reihenfolge, z.B.:
- Erste anwendbare Regel (Trivialstrategie)
- Aktuellste Regel (deren Vorbedingung sich auf möglichst neue Einträge in der Datenbasis bezieht)
• Auswahl nach syntaktischer Struktur der Regel, z.B.:
- Spezifischste Regel (Vorbedingung „A & B & C“ ist spezifischer als „A & C“)
- Die syntaktisch größte Regel ( Vorbedingung mit den meisten Aussagen)
• Auswahl mittels Zusatzwissen, z.B.:
- höchsten Priorität (repräsentiert z.B. als Zahl) - Auswahl durch Meta-Regeln
Rückwärtsverkettung
Sind weitere Aussagen zu überprüfen?
BESTIMME (Parameter)
Parameter der Aussage
bekannt?
Prozedur (ZIEL)BESTIMME
(ZIEL abgeleitet werden kann),
(Setze REGELLISTE = Liste aller Regeln, deren Aktionsteil ZIEL erfüllt),
(frage ZIEL).
If then
else
until or do(REGELLISTE = leer) (ZIEL hergeleitet)
PRÜFE_REGEL (erste bzw. nächste Regel aus REGELLISTE) und lösche diese Regel aus der REGELLISTE,
(1) (2) (3)
(4)
Prozedur PRÜFE REGEL (REGEL)
ja ja
nein nein
Überprüfe die erste Aussage des Bedingungsteils der REGEL
nein Überprüfe die
nächste Aussage REGEL
ja PARAMETER
der Aussage bekannt?
Aussage wahr?
BESTIMME (PARAMETER)
REGEL nicht ausführbar, ENDE
Führe Aktionsteil der REGEL aus, ENDE
Komplexität der Vorbedingung
Nachschauen in der Datenbasis
Nachschauen in der Datenbasis und Rechnen
Pattern Matching (und Rechnen) Unifikation
Ist Bauklotz_1 rot?
Ist Bauklotz_1 größer als Bauklotz_2?
Welcher Bauklotz ist der größte rote Bauklotz auf dem Tisch?
f (g (x), a) ?= f (g (a), x) Beispiel Art der Auswertung
Erfassung
zunehmend
komplizierterer
Zusammenhänge Aussagetyp
Regelstrukturierung
Beispiel (aus MYCIN):
Wenn 1. der Typ der Infektion Meningitis ist, 2. keine Labordaten verfügbar sind, 3. der Typ der Meningitis bakteroid ist, 4. der Patient älter als 15 Jahre ist und 5. der Patient Alkoholiker ist,
dann gibt es Evidenz für E. Coli (0.2) & Dipplococcus (0.3) Verbesserungen:
1. Verschiedene Regeltypen (Aufteilung nach Regelaktion) - Inferenzregel
- Dialogsteuerung
- (Plausibilitätskontrolle, ...)
2. Strukturierung der Regelvorbedingung - Kernbedingung
- Kontext - Ausnahmen
Objekte / Frames
Frames aus kognitiver Sicht (Minsky 1975):
Frames liefern das Hintergrundwissen, vor dem alltägliche Situationen und Geschichten (Betreten eines Wohnzimmer, Kindergeburtstag usw.) verstanden werden:
1. Frame (Skript) aus Gedächtnis wählen
2. Überprüfen und Adaptieren der Erwartungswerte bzw.
Alternativen
Bedeutung von Frames:
1. Wiedererkennen stereotyper Objekte 2. Handeln bei sterotypen Ereignissen
3. Beantworten von Fragen über stereotype Objekte und Ereignisse (nur letzteres in FRL!)
Objektorientierte Sicht:
• Zusammenfassung aller Daten und Methoden
• Unterscheidung zwischen privaten und öffentlichen Methoden
• Vererbung
• Polymorphismus
• Initialbelegung von Attributen
FRL – Frame Representation Language:
• Zusammenfassung aller Attribute über ein Objekt
• zugeordnete Prozeduren
• Vererbung
• Erwartungswerte (Defaults)
sehr ähnlich: Semantische Netze (graphische Repräsentation) Beschreibungslogik (KL-One-Sprachen):
• Logische Beschreibung von Konzepthierarchien
• Automatische Begriffs-Klassifikation aufgrund von Attributen
FRL (Frame Representation Language)
Erweiterung von LISP
Struktur: Objekt – Attribut – Facette – Wert
Neu: Aktive Objekte (Reagieren auf Wertänderungen) Vererbungshierarchie mit vordefiniertem Attribut:
AKO (A Kind Of):
Vordefinierte Facetten:
$value : tatsächlicher Wert des Slots,
$require: Wertebereich (zugelassene Werte für $value),
$default: Erwartungswert (gilt, wenn kein Wert für
$value ermittelt werden kann),
$if-added: zugeordnete Prozedur, die ausgeführt wird, wenn ein Wert unter $value eingetragen wird,
$if-removed: zugeordnete Prozedur, die ausgeführt wird, wenn ein Wert unter $value gelöscht wird,
$if-needed: zugeordnete Prozedur, die angibt, wie der Wert unter $value ermittelt werden soll.
Beispiel:
Frame:
Slots:
Expertensystem
AKO: $value Programm Programmierumgebung:
$require:
$default:
$if-needed
LISP, PROLOG,…
LISP
„Referenzen nachlesen“
MYCIN
AKO: $value Expertensystem Frame:
Slots:
Kritik:
• Keine Repräsentation von notwendigen Konzepteigenschaften
• Keine Semantik der Art der Spezialisierung bei AKO
• Keine Unterscheidung zwischen Unterklassen und Instanzen
Beschreibungslogik (KL-ONE)
• Strikte Konzeptbeschreibung in der T-Box (Terminological Box)
• Optionale Eigenschaften in der A-Box (Assertional Box)
• T-Box: Neues Konzept kann durch „Classifier“ in Hierarchie an richtiger Stelle eingeordnet werden. Komplexität des Classifier sensibel für Sprachumfang (meist exponentiell im worst case)
• T-Box: Konzepte verfeinern andere Konzepte:
- durch Konjunktion von Konzepten
- durch Einschränkung des Wertebereichs von Rollen (Attribute) - durch Einschränkung der Kardinalitäten von Rollen
Beispiel:
MannMann FrauFrau Person
Person hat_Kind
[3, ∞]
← N/R
hat_Kind hat_Kind
[1, ∞]
← N/R
hat_Kind
hat_Vater [1, 1]
← N/R
hat_Vater
hat_Mutter [1, 1]
← N/R
hat_Mutter ledige_Person
ledige_Person
Familie Familie
Junggeselle
Junggeselle Kinderreiche_FamilieKinderreiche_Familie
[a, b]
N/R ←
=
=
=
Konzepte Rollen
Kardinalitätsbeschränkung der Rolle, a = Untergrenze und b = Obergrenze
Beispiel: =
=
mindestens 1 genau 1 [1, 1]
N/R ←
[1, ∞]
N/R ←
Konzept-Konzept-Beziehungen Konzept-Rollen-Beziehungen
=
=
Typische Sprachstrukturen der Beschreibungslogik
1. Definition von Konzepten:
• Konjunktion (Conj-Generic): Konzept ist Vereinigung der Eigenschaften mehrerer Konzepte.
- Bsp.: Junggeselle = Konjunktion (ledige_Person Mann)
• Wert-Beschränkung (VR-Generic): Wertemenge einer Rolle ist im Vergleich zum übergeordneten Konzept eingeschränkt.
- Bsp.: Altstadt = Wert-Beschränkung (Stadtteil hat_Gebäude alte_Häuser)
- „Ein Stadteil, in dem die Gebäude alte Häuser sind.“
• Zahlen-Beschränkung (NR-Generic): Kardinalität einer Rolle ist im Vergleich zum übergeordneten Konzept eingeschränkt.
- Bsp.: Kinderreiche_Familie = Zahl-Beschränkung (Familie hat_Kinder [3,∞])
- „Eine Familie mit mindestens drei Kindern.“
• Spezialisierung (Prim-Generic): Spezialisierung ohne hinreichende Bedingung.
- Bsp.: Mann = Spezialisierung (Person)
- „Ein Mann ist eine Person, aber es wird nicht spezifiziert, welche zusätzlichen Eigenschaften Männer im Vergleich zu Personen haben.“
2. Definition von Rollen:
• Wertdifferenzierung (VR Diffrole): Eine Rolle, deren Wertemenge beschränkt ist.
- Bsp.1: hat_Tochter = Wertdifferenzierung (hat_Kind Frau) - „Ein Kind, das eine Frau ist.“
- Bsp.2: hat_Vater = Wertdifferenzierung (hat_Elter Mann)
• Verkettung (Role Chain): Eine Rolle, die der Verkettung mehrerer Rollen entspricht.
- Bsp.: hat_Enkel = Verkettung (hat_Kind hat_Kind)
• Spezialisierung (Prim-Role): Spezialisierung ohne hinreichende Bedingung.
- Bsp.: hat_technischen_Beruf = Spezialisierung (hat_Beruf)
Constraints
Repräsentation ungerichteter Relationen zwischen Variablen (Regeln repräsentieren dagegen gerichtete Relationen)
1. Def. Constraint: {Name, Variablen, Definition}
Bsp. für Constraint: {Widerstand, (I, U1, U2), (U1-U2 = I*R)}
Grafische Darstellung:
U1 U
2 I
Widerstand U1 – U
2 = R ∗ I
2. Def. Constraintnetz: Menge von durch gemeinsame Variablen verbundene Constraints.
Bsp. für Constraintnetz (grafische Darstellung):
3. Def. Constraint-Problem: {Constraint-Netz, Variablenbelegung}
Bsp. für Constraintproblem: {Celsius-Fahrenheit-Netz, (F=90)}
4. Lösung eines Constraint-Problems: Widerspruch oder eine oder mehrere vollständige Variablenbelegungen.
Bsp. für Lösung: (F=90, C=32,22)
Add Mult1 Mult2
32 5 9
Temp. in Celsius Temp. in
Fahrenheit
(F - 32) * 5 / 9 = C (C * 9 / 5) + 32 = F
Darstellung von Constraints
• als Tabelle,
z.B. Vorzeichenmultiplikation A*B=C
* 0 + - 0 0 0 0 + 0 + - - 0 - +
• als Menge von Regeln
z.B. A*B=C
wenn A,B dann C=A*B
wenn A,C und A≠0 dann B=C/A wenn A=0 dann C=0
wenn A=1 dann B=C usw.
• als Programmcode
Propagierungstypen
(Zwischenwerte von Variablen)
• feste Werte (z.B. X=3)
• Wertemenge (z.B. X ∈ {3,4,5})
• Ungleichungen (z.B. X < 5)
• symbolische Ausdrücke (z.B. X = 2Y)
Einfacher Propagierungsalgorithmus (nur feste Werte und Wertemengen):
Eingabe: Constraint-Problem
Ausgabe: Variablenbelegung(en) oder Widerspruch 1. Weise allen Variablen Anfangsbelegung zu
2. Setze alle Constraints auf Liste AKTIV 3. Solange Constraints in AKTIV
3.1 Wähle ein Constraint C aus und entferne C aus AKTIV 3.2 Berechne für alle Variablen aus C neue Einschränkungen 3.3 Falls Wertemenge für Variable leer, STOP (Widerspruch) 3.4 Setze alle Constraints auf AKTIV, die auf Variablen Bezug
nehmen, für die neue Einschränkungen berechnet wurden 4. Gib aktuelle Variablenbelegung als Ergebnis aus.
Verbesserungen:
• durch Fallunterscheidung (Backtracking) Æ Kontrollproblem
• durch Propagierung von Ungleichungen oder symbolischen Werten Æ Symbolische Algebra
Beispiel: Kryptarithmetisches Rätsel:
SEND + MORE
MONEY Wertebereiche der disjunkten Variablen:
D, E, N, O, R, Y, M, S ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9},
Formulierung als Constraint-Problem
E
D + E = Y + 1 0 ∗ U C 1
1 :
U2 U1
E + O + U
2 = N + 1 0 ∗ U C 3
3 : U3
U4 M = U C 4
5 :
Y D
N + R + U 2
1 = E + 1 0 ∗ U
C2 : R
N
O
M S + M + U
3 = O + 1 0 ∗ U C 4
4 : S
Die Wertebereiche der einzelnen Variablen sind:
D, E, N, O, R, Y ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, M, S ∈ {1, 2, 3, 4, 5, 6, 7, 8, 9}
U1, U2, U3, U4 ∈ {0, 1}
Außerdem gilt: (D, E, N, O, R, Y, M, S) sind disjunkt.