Einführung in die Methoden der Künstlichen Intelligenz

Werbung
Einführung in
die Methoden
der Künstlichen Intelligenz
Vorlesung im SS 2002
Wolfgang Wahlster
Universität des Saarlandes
FR 6.2 Informatik
Stuhlsatzenhausweg, Geb. 36
66123 Saarbrücken
Tel.: (0681) 302-5252/2363
Fax: (0681) 302-5341
E-mail: [email protected]
WWW: http://www.dfki.de/~wahlster
KI, Kognitionswissenschaft und Intellektik
Die KI hat:
ingenieurswissenschaftliche Ziele
kognitionswissenschaftliche Ziele
Ingenieurswissenschaften
Informatik
Biowissenschaften
Psychologie
KI
Kognitionswissenschaft
Philosophie
Linguistik
2
Kerngebiete und Anwendungsfelder der KI
NatürlichNatürlichsprachliche
sprachliche
Systeme
Systeme
BildBildverstehende
verstehende
Systeme
Systeme
ExpertenExpertensysteme
systeme
Robotik
Robotik
Subsymbolische Verarbeitung
Signal-Symbol-Transformation
Wissensrepräsentation
Wissensverarbeitung
- Suchen
- Inferieren
- Lernen
KI-Hardware
KI-Werkzeuge
KI-Programmiermethoden
Wissenspräsentation
KI-Programmiersprachen
MultiMultiAgenten
Agenten
Systeme
Systeme
Intelligente
Intelligente
Tutorielle
Tutorielle
Systeme
Systeme
Intelligente
Intelligente
HilfeHilfesysteme
systeme
Intelligente
Intelligente
BenutzerBenutzerschnittstellen
schnittstellen
3
Die Notwendigkeit hybrider KI-Systeme
Hybrides KI-System
Symbolische Ebene
- Semantische Netze
- Regelbasierte Verfahren
- Constraintbasierte Techniken
Subsymbolische Ebene
- Neuronale Netze
- Genetische Algorithmen
- Fuzzy Control
Beispiel: Autofahren
Fahrzeug
Fahrzeuggemäß
gemäßVerkehrsregeln
Verkehrsregeln
und
undZielvorgabe
Zielvorgabelenken
lenken
wissensintensive
wissensintensivehöhere
höherekognitive
kognitive
Prozesse
Prozessemit
mitErklärungsmöglichkeit
Erklärungsmöglichkeit
weniger
wenigerzeitzeit-und
undstörkritische
störkritische
Verarbeitung
Verarbeitung
Fahrzeug
Fahrzeugauf
aufder
derFahrbahn
Fahrbahnhalten
halten
unbewußter
unbewußtersenso-motorischer
senso-motorischer
Prozeß,
Prozeß,keine
keineErklärungsmöglichkeit
Erklärungsmöglichkeit
sehr
sehrschnelle,
schnelle,robuste
robusteVerarbeitung
Verarbeitung
4
Datenverarbeitung vs. Wissensverarbeitung am Beispiel
Bahnauskunft
Bahnbeamter mit
Bahnkunde
Sprachlichem Wissen
Konzeptionellem Wissen
Inferentiellem Wissen
Partnermodell
Handbuch oder DV-System
Kursbuch
Preisliste
Klassische Auskunftssituation ggf. mit DV-Einsatz zur Unterstützung des Beraters
Informationssystem
Bahnkunde
Kursbuch
Preisliste
Minderung der Dienstleistungsqualität bei Rationalisierung durch konventionellen DV-Einsatz
Wissensbasiertes System
Wissensbasis
Datenbasis
Bahnkunde
Sprachliches Wissen
Konzeptionelles Wissen
Inferentielles Wissen
Partnermodell
Kursbuch
Preisliste
Vervielfachung der Beratungskapazität ohne Qualitätsverlust bei der Dienstleistung durch
die Kombination von Wissens- und Datenverarbeitung
5
Die wichtigsten Unterschiede zwischen
Datenverarbeitung und Wissensverarbeitung
Inhaltliche Kriterien
Datenverarbeitung
Wissensverarbeitung
Automatisierung monotoner, klar strukturierter
und wohldefinierter Informationsverarbeitungsprozesse
Automatisierung komplexer Informationsverarbeitungsprozesse, die den intelligenten
Umgang mit diffusem Wissen erfordern
Zu automatisierende Verarbeitungsabläufe sind
aus nichtautomatisierten Informationsverarbeitungsprozessen bekannt
Zu automatisierende Verarbeitungsabläufe
sind kognitive Prozesse und daher nicht
direkt beobachtbar
Systementwickler schreibt mit Hilfe seines
Wissens über den Anwendungsbereich ein
Programm
Nur der Programmierer, nicht das System selbst
kann einen ausgeführten Verarbeitungsprozeß
erklären und rechtfertigen
Hauptsächlich Verarbeitung homogen strukturierter Massendaten (viele Instanzen, wenigTypen)
Bei formaler Ein-/Ausgabespezifikation ist
prinzipiell die Möglichkeit eines Korrektheitsbeweises gegeben
Komplexität entsteht hauptsächlich durch den
Umfang der Datenmenge
Wissensträger transferiert sein Wissen über den
Anwendungsbereich in ein wissensbasiertes
System
Das wissensbasierte System selbst kann
prinzipiell einen ausgeführten Verarbeitungsprozeß erklären und rechtfertigen
Verarbeitung heterogen strukturierter Wissenseinheiten (wenig Instanzen, viele Typen)
Da die Verarbeitung durch Heuristiken und
diffuses Wissen gesteuert ist, sind
Korrektheitsbeweise nicht immer möglich
Komplexität entsteht hauptsächlich durch die
Reichhaltigkeit der Wissensstruktur
6
Grundbegriffe der Wissensrepräsentation
Wissen: Ansammlung von Kenntnissen, Erfahrungen und Problemlösemethoden, die den
Hintergrund für komplexe Informationsverarbeitungsprozesse bilden.
Wissensrepräsentation: Operationale sowie formale und damit computergerechte Darstellung
von Wissensinhalten.
Wissensrepräsentationssprache: Formale Sprache zur systematischen
Wissensrepräsentation.
Repräsentationskonstruktion: Teilmenge einer Wissensrepräsentationssprache.
Wissensbasis: Gesamtheit an Wissen, die einem KI-System zur Verfügung steht.
Wissensbasis
Wissensquellen
Wissenseinheiten
Metawissen: Wissen, das sich auf anderes Wissen innerhalb einer Wissensbasis bezieht.
Heterogene Wissensbasis: Wissensbasis, in der unterschiedliche Wissensrepräsentationssprachen zur Codierung von Wissensquellen verwendet werden.
Multiple Repräsentation: Darstellung der gleichen Wissensinhalte in verschiedenen
Wissenseinheiten mit Hilfe unterschiedlicher Wissensrepräsentationssprachen.
7
Informatik
Repräsentation von Daten
KI-Forschung
Kerninformatik
Theorie der Repräsentation von Wissen
Theorie der Datenstrukturen
Wissensrepräsentationssprachen
Logikkalküle ProduktionenSysteme
Semantische
Netze
Prädikatenlogik
Sortenlogik
Modallogik
Zeitlogik
Fuzzy Logik
Nichtmonotone Logik
Frames
InferenzNetze
Actor- KI-ProgrammierSysteme
sprachen
8
Das Umfeld terminologischer Logiken
Prädikatenlogik
Prädikatenlogik
Thue
Thue Systeme
Systeme
Polymodale
Polymodale
Logiken
Logiken
Modelltheorie
Modelltheorie
Reguläre
Reguläre
Sprachen
Sprachen
Dynamische
Dynamische
Logiken
Logiken
Constraint
Constraint
Solving
Solving
Feature
Feature
Logiken
Logiken
Terminologische
Terminologische Logiken
Logiken
Die
Die KL-ONE
KL-ONE Sprachfamilie
Sprachfamilie
Feature
Feature Logiken
Logiken
Komplexe
Komplexe Objekte
Objekte
-- Mengenwertige
Mengenwertige Features
Features
-- Functional
Functional Uncertainty
Uncertainty
-- Subtyp-Inferenz
Subtyp-Inferenz
-- Erfüllbarkeit
Erfüllbarkeit
nach B. Nebel
9
Hybride, KL-ONE-basierte Systeme
TBox
Father
Father == (and
(and Man
Man Parent)
Parent)
ABox
Father(a)
Father(a)
c x:
x: Man(x)
Man(x) / ...
...
Beispiele: KL-TWO, BACK, SB-ONE, KRIS, CLASSIC, LOOM, FACTS, RACER
10
Wissensrepräsentation mit Terminologischen Logiken
Terminologische Logik = Konzeptsprachen = Termsubsumptionssprachen
= KL-ONE (Knowledge Language) Derivate
Hauptziel:
Repräsentation von terminologischem Wissen auf der Basis
strukturierter Vererbungsnetze
Konzepte und Taxonomien:
‚Konzept‘ als atomare Wissensenheit repräsentiert Klasse von Entitäten einer
Diskurswelt
Konzept wird benannt nach den Elementen der Klasse
graphisch dargestellt als Ellipse, die den Namen umrahmt
Ein Konzept, das eine Menge S repräsentiert, wird mit |C|S bezeichnet
Wenn S 3 T, dann ist:
|C|S Unterkonzept (Sub C) von |C|T
|C|T Oberkonzept (SuperC) von |C|S
Diese Relation wird als:
Konzeptsubsumption bezeichnet und
graphisch als dicker, gerichteter Pfeil von |C|S nach
|C|T dargestellt
Man sagt:
|C|T subsumiert |C|S
|C|S spezialisiert |C|T
11
Konzepte und Taxonomien
Die Konzeptsubsumption
ist transitiv :
Falls |C|A subsumiert |C|B und |C|B subsumiert |C|C, dann gilt |C|A subsumiert |C|C.
ist antisymmetrisch :
Falls |C|A subsumiert |C|A‘ und |C|A‘ subsumiert |C|A, dann gilt |C|A = |C|A‘
induziert eine partielle Ordnung über eine Menge von Konzepten führt graphisch zu einem
gerichteten azyklischen Graph, dessen Kanten Subsumptionsrelationen entsprechen.
Jedes Netzwerk enthält als Wurzel ein allgemeinstes Oberkonzept THING, das immer alle
anderen Konzepte eines Netzes autark subsumiert.
Wenn ein neues Konzept in ein bestehendes Netzwerk aufgenommen werden soll, muß es an
der richtigen Stelle in der Taxonomie plaziert werden.
Regel:
Das neue Konzept |C|A soll gleichzeitig die allgemeinsten Konzepte subsumieren, die weniger
allgemein sind als |C|A
und: es soll alle spezifischsten Konzepte spezialisieren, die weniger spezifisch sind als |C|A
Dieser Prozeß der Aufnahme eines neuen Konzeptes gemäß einer Regel wird als
Klassifikation bezeichnet, und wird von einem sogenannten Classifier durchgeführt.
Die Reihenfolge der inkrementellen Aufnahme in ein zyklenfreies Netz hat keinen Einfluß auf
die Gestalt des Netzes.
12
Subsumptionsrelation in NIKL
THING
DEVICE
MOUSETRAP
VEGETABLE
COMPUTINGCOMPUTINGDEVICE
DEVICE
ELECTRICALDEVICE
DIGITALCOMPUTER
ANALOGCOMPUTER
RADIO
SUPERCOMPUTER
MICROCOMPUTER
SLIDERULE
WINDTUNNEL
Beachte: MICRO-COMPUTER spezialisiert DIGITAL-COMPUTER und ELECTRICAL-DEVICE.
RADIO ist kein VEGETABLE, da diese Subsumptionsrelation nicht repräsentiert ist.
13
Primitive und disjunkte Klassen
Ein als primitive Klasse markiertes Konzept (graphisch durch ⌧ gekennzeichnet)
spezifiziert notwendige, aber nicht hinreichende Bedingungen für die Zugehörigkeit zu der
Klasse, die es repräsentiert.
Andere Konzepte können nur dann von einem als primitive Klasse markierten Konzept
subsumiert werden, wenn dies explizit in ihrer Definition angegeben wird, d.h. der Classifier
stellt keine Subsumptionsrelation zwischen neuen Konzepten und primitiven Klassen her.
Man kann Konzepte zu einer Disjunktheitsklasse zusammenfassen (Graphisch:
Verbindungslinie, die Subsumptionspfeile ‚überbrückt‘) um auszudrücken, daß diese
Konzepte disjunkte Mengen repräsentieren.
Die Eigenschaft, zu einer Disjunktheitsklasse zu gehören, ist transitiv, d.h. Konzepte, die
von verschiedenen Zweigen einer Disjunktheitsklasse subsumiert werden, sind auch disjunkt.
VEHICLE
VEHICLE
MOTORMOTOR⌧
CYCLE
CYCLE
TRUCK
TRUCK ⌧
SAILSAIL⌧
BOAT
BOAT
AIRAIR⌧
PLANE
PLANE
14
Überdeckung und Partitionen
Ein Konzept |C|A wird überdeckt (graphisch: ‚Schleifen‘-Verbindungen der
Subsumptionspfeile) von einer Menge von Konzepten X, wenn jede Instanz von |C|A auch
eine Instanz von wenigstens einem Konzept aus X ist.
DIGITALDIGITALCOMPUTER
COMPUTER
SUPER
SUPER ⌧
COMPUTER
COMPUTER
MAINMAIN⌧
FRAME
FRAME
MICROMICRO- ⌧
COMPUTER
COMPUTER
MINIMINI⌧
COMPUTER
COMPUTER
Jeder Computer muss in eine der vier Klassen fallen, aber kann auch mehrere davon
spezialisieren.
Eine Partition ist eine Überdeckung, die gleichzeitig auch eine Disjunktheitsklasse ist.
Es handelt sich um eine Zusammenfassung wechselseitig disjunkter Mengen, deren
Vereinigung eine Obermenge der partitionierten Menge ist.
ELECTRICELECTRICCHARGE
CHARGE
POSITIV
POSITIV ⌧
NEUTRAL
NEUTRAL ⌧
NEGATIV
NEGATIV ⌧
Eine Ladung kann nur genau eine Eigenschaft haben: positiv, negativ oder neutral
15
Rollen und Rollenfüller
• Eine Rolle definiert eine Beziehung zwischen zwei Konzepten.
Eine Rolle wird als zweistellige Relation graphisch durch ein umkreistes Quadrat
dargestellt.
Vom Definitionsbereich der Rolle führt eine ungerichtete Kante zu Rollensymbol.
Vom Rollensymbol führt eine gerichtete Kante zum Bildbereich der Rolle.
• Eine Instanz des Bildbereichs einer Rolle nennt Rollenfüller.
INHABITED
INHABITED
PLANET
PLANET ⌧
INHABITANT
LIFELIFE- ⌧
FORM
FORM
• ‚Alle Bewohner eines belebten Planeten sind Lebensformen.‘
• c x 2 INHABITED-PLANET(x) d y 2 LIFE-FORM(y) o INHABITANT(x,y)
• Die Rolle |R| INHABITANT repräsentiert eine Relation, die auf alle Unterkonzepte
des Definitionsbereiches vererbt wird.
• Eine allgemeine Methode zur Definition von Unterkonzepten ist die Restriktion
des Bildbereichs der ererbten Rolle.
16
Rollentaxonomie
• Wenn eine Rolle |R|A eine speziellere Relation repräsentiert als |R|B, dann nennen wir
|R|A Unterrolle (SubR) von |R|B und
|R|B Oberrolle (SuperR) von |R|A.
• |R|A differenziert |R|B und |R|B verallgemeinert |R|A.
RELATION
FRIEND
USE
PET
LOVER
PARTNER
RENT
LEASE
SPOUSE
• Die allgemeinste Oberrolle ist MostGeneralRole. Sieht man diese Oberrolle als Konzept an
(kann man für alle Rollen tun), so ergibt sich:
THING
THING
range
domain
(1 1)
(1 1)
MostGeneralRole
MostGeneralRole
• Primitive Rollen sind Rollen, die ihre Oberrolle in einer Weise differenzieren, die dem System
unzugänglich ist.
17
Inverse Rollen
• Eine weitere Möglichkeit, eine Rolle zu definieren, besteht darin,
sie als inverse Rolle einer anderen anzugeben.
Die inverse Rolle wird auf alle Unterrollen vererbt.
Für jedes Instanz/Füller-Paar einer Rolle gibt es ein korrespondierendes
Instanz/Füller-Paar der inversen Rolle.
• Graphisch wird eine Rolle jeweils mit einer bidirektionalen Kante zu der inversen
Rolle gekennzeichnet.
⌧
Government
RULED-BY
inverse role
RULES
⌧
Country
• Eine Regierung herrscht über ein Land, und ein Land wird von einer Regierung
beherrscht.
Bei inversen Rollen wird lediglich der Definitions- und Bildbereich vertauscht.
Der Classifier berücksichtigt inverse Rollen nicht
18
Rollenrestriktionen
• Eine Rollenrestriktion hat zwei Komponenten:
– eine Werterestriktion (VR)
– eine Anzahlrestriktion (NR)
• Die Werterestriktion schränkt die Menge möglicher Rollenfüller ein.
• Eine Anzahlrestriktion legt eine untere und obere Schranke für die Kardinalität der
Menge der Rollenfüller ein.
• Dabei sei:
0 := keine untere Schranke
N(oder NIL) := keine obere Schranke
(u o) := u ist untere und o ist obere Schranke, u ! o; u, o P 0
(k k) = (k) := genau k Elemente.
POWERED-BY
VEHICLE
⌧
ENGINE
⌧
POWERED-BY
JET-PLANE
⌧
(1 N)
JET-ENGINE
⌧
• c x 2 JET-PLANE(x) d y 2 JET-ENGINE(y) o POWERED-BY(x,y)
19
Rollenbeziehungen
• Um ein Konzept exakt zu definieren, ist es häufig notwendig, nicht nur isoliert für
einzelne Rollen Restriktionen zu formulieren, sondern auch Beziehungen zwischen
den Rollenfüllermengen zweier Rollen bezüglich eines Konzeptes zu fordern.
• Dazu dienen Rollenbeziehungen (engl. oft role constraints oder role value maps),
die aus zwei Rollenketten und einem Beschränkungstyp (Teilmenge, Obermenge,
Gleichheit) bestehen.
• Eine Rollenkette ist eine Liste von Rollen, deren erstes Element mit dem Konzept
verbunden ist, für das die Rollenbeziehung definiert wird.
• Da jede Rolle in einer Rollenkette einer Relation entspricht, ergibt eine Rollenkette
eine Komposition der Relationen. Der Definitionsbereich der komponierten Relation
ist das Konzept, für das die Rollenbeziehung definiert ist.
• Mit Rollenbeziehungen können also Relationen repräsentiert werden, die
verschiedene Konzepte, Rollen und Taxonomieebenen ‚überspannen‘.
• Graphisch wird ein Beschränkungstyp durch einen Rhombus dargestellt , der das
Symbol für die entsprechende Mengenbeziehung enthält.
• Von dem Rhombus gehen gestrichelte Linien aus, die den Rollenketten
entsprechen.
20
Beispiel für Rollenbeziehungen
• Im folgenden Beispiel wird die Muttersprache einer Person als die Sprache definiert, welche
die Bewohner der Stadt sprechen, in der die Person geboren wurde.
⌧
MOTHER-TONGUE
PERSON
BIRTH
⌧
⌧
LANGUAGE
SPEAK
HOSPITAL
=
⌧
⌧
(PERSON)
CITY
LOCATION
RESIDENTS
•
•
Rollenkette: MOTHER-TONGUE (PERSON) =
Rollenkette: SPEAK (RESIDENTS (LOCATION (BIRTH (PERSON))))
Darstellung ohne Knotenkopie für Person:
MOTHER-TONGUE
⌧
BIRTH
PERSON
⌧
LANGUAGE
SPEAK
⌧
HOSPITAL
=
RESIDENTS
LOCATION
⌧
CITY
21
Beispiel für eine Konzeptdefinition: das Wasserstoffatom
THING
THING
UNIT-OFUNIT-OFMATTER
MATTER
ATOM-OR-ION
ATOM-OR-ION
HYDROGENHYDROGENATOM
ATOM
PARTICLE
PARTICLE
CONTAINS-1
(0 N)
NEUTRON
NEUTRON
CHARGEDCHARGEDPARTICLE
PARTICLE
CONTAINS-2
(1 N)
(1 1)
CONTAINS-3
ELECTRON
ELECTRON
PROTON
PROTON
(1 1)
CONTAINS-4
22
Definitionen für Wasserstoffatom
(DEFCONCEPT UNIT-OF-MATTER PRIMITIVE (SPECIALIZES THING))
(DEFCONCEPT PARTICLE PRIMITIVE (SPECIALIZES UNIT-OF-MATTER))
(DEFCONCEPT NEUTRON PRIMITIVE (SPECIALIZES PARTICLE))
(DEFCONCEPT CHARGED-PARTICLE PRIMITIVE (SPECIALIZES PARTICLE))
(DEFCONCEPT ELECTRON PRIMITIVE (SPECIALIZES CHARGED-PARTICLE))
(DEFCONCEPT PROTON PRIMITIVE (SPECIALIZES CHARGED-PARTICLE))
(DEFCONCEPT CHARGE-DICHOTOMY (ELECTRON PROTON))
(DEFCONCEPT ATOM-OR-ION PRIMITIVE (SPECIALIZES UNIT-OF-MATTER)
(ROLE CONTAINS-1
(VRCONCEPT NEUTRON)
(MIN 0) (MAX NIL))
(ROLE CONTAINS-2
(VRCONCEPT CHARGED-PARTICLE)
(MIN 1) (MAX NIL)))
(DEFCONCEPT HYDROGEN-ATOM PRIMITIVE (SPECIALIZES ATOM-OR-ION)
(ROLE CONTAINS-3
(DIFFERENTIATES CONTAINS-2)
(VRCONCEPT ELECTRON (NUMBER 1))
(ROLE CONTAINS-4
(DIFFERENTIATES CONTAINS-2)
(VRCONCEPT PROTON) (NUMBER 1)))
23
Definition eines Kreises als Subkonzept von Ellipse
THING
THING
MATHEMATICAL
MATHEMATICAL
OBJECT
OBJECT
⌧
⌧
LINELINESEGMENT
SEGMENT
=
MINOR-AXIS
(1 1)
(1 1)
MAJOR-AXIS
(1 1)
MAJOR-AXIS
⌧
⌧
CLOSEDCLOSEDCURVE
CURVE
MINOR-AXIS
(1 1)
⌧
⌧
ELLIPSE
ELLIPSE
CIRCLE
CIRCLE
(DEFCONCEPT MATHEMATICAL-OBJECT (SPECIALIZES THING))
(DEFCONCEPT LINE-SEGMENT
PRIMITIVE (SPECIALIZES MATHEMATICAL-OBJECT))
(DEFCONCEPT CLOSED-CURVE
PRIMITIVE (SPECIALIZES MATHEMATICAL-OBJECT))
(DEFCONCEPT ELLIPSE
PRIMITIVE (SPECIALIZES CLOSED-CURVE)
(ROLE MINOR-AXIS (VRCONCEPT LINE-SEGMENT) (NUMBER 1))
(ROLE MAJOR-AXIS (VRCONCEPT LINE-SEGMENT) (NUMBER 1)))
(DEFCONCEPT CIRCLE (SPECIALIZES ELLIPSE) ( = (MINOR-AXIS) (MAJOR-AXIS)))
24
Automatische Klassifikation
(DEFCONCEPT GROSSVATER
(SPECIALIZES MANN)
(ROLE KIND (VR ELTERNTEIL) (MIN 1)))
MENSCH
S
⌧
RR
GELD
VR
S
ELTERNTEIL
⌧
MANN
S
RR
P1
EINKOMMEN
KIND
GROSSVATER
VR
MENSCH
RR
RR
P1
KIND
ENKEL
P1
VR
ELTERNTEIL
(DEFCONCEPT ELTERNTEIL
(SPECIALIZES MENSCH)
(ROLE KIND (MIN 1)))
SPECIALIZES-Kante
VR
MENSCH
S
25
Automatische Klassifikation
(DEFCONCEPT GROSSVATER
(SPECIALIZES MANN)
(ROLE KIND (VR ELTERNTEIL) (MIN 1)))
MENSCH
S
⌧
RR
GELD
VR
S
ELTERNTEIL
⌧
MANN
S
RR
P1
EINKOMMEN
KIND
GROSSVATER
VR
MENSCH
RR
RR
P1
KIND
ENKEL
P1
VR
ELTERNTEIL
(DEFCONCEPT ELTERNTEIL
(SPECIALIZES MENSCH)
(ROLE KIND (MIN 1)))
SPECIALIZES-Kante
Berechnete
Subsumptionsbeziehung
VR
MENSCH
S
26
Inferenzdienste in Konzeptsprachen
In der T-Box:
Sind alle Konzepte verschieden oder stimmen welche überein?
Welche Unterbegriffsbeziehungen bestehen?
(Äquivalenz)
(Subsumption/Klassifikation)
Welche Rollen-Beziehungen gelten daher für die Begriffe?
(Vererbung)
Ist ein definierter Begriff sinvoll oder ist die Klasse grundsätzlich leer?
(Inkohärenz)
Haben zwei Klassen gemeinsame Instanzen oder nicht?
(Disjunktheit)
In der gesamten Wissenbasis (T-Box und A-Box):
Ist die WB konsistent?
Welche Klassen instantiiert ein gegebenes Objekt?
(Konsistenz)
(Instantiierung/Realisierung)
Welche der bekannten Elemente enthält eine vorgegebene Klasse?
Welche (Rollen-)Beziehungen bestehen zwischen verschiedenen Objekten?
(Retrieval)
(Vererbung)
27
Inferenzdienste
T-Box:
Subsumption: cx LKW(x) 0 Transportfahrzeuge(x)?
Vererbung:
cx Mutter_ohne_Söhne(x) 0 dy Kinder(x,y)
Inkohärenz:
cx lGroßvater(x)? oder: ex. Interpretation I ~dx Großvater(x)?
Disjunktheit:
l dx Vater(x) o Mutter(x)?
Wissensbasis (WB):
Konsistenz:
existiert ein Modell der WB, d.h. ex. Interpretation I ~ WB?
Instantiierung/Realisierung:
Güterzug(Z#521)?
bzw. Finde alle Konzepte C mit C(Z#521)!
Retrieval:
Finde alle Objekte c mit Frau(c)!
Vererbung:
Kinder(Karin,Eva)?
28
Eine formale Semantik von Konzeptsprachen
Warum?
Präzisierung der Bedeutung von Repräsentationskonstrukten
Vergleichbarkeit mit anderen Formalismen
Algorithmisierung
Entscheidbarkeit und Komplexität
Wie?
Konzepte beziehen sich auf Mengen von Instanzen: Konzeptextension
Rollen beschreiben Relationen zwischen diesen Instanzen: Rollenextension
Konzeptbeschreibungen geben notwendige und hinreichende Bedingungen
für Instanzen an
Subsumption ist die notwendige Inklusion von Konzeptextensionen
Inkonsistenz ist die notwendige Leerheit von Konzeptextensionen
29
Rollen, Konzepte und ihre Interpretation
A: Menge von atomaren Konzepten (Variablen: A, B)
S: Menge von atomaren Rollen (Variablen: S)
Interpretation:
Funktion:
I Z 6D, 8%9I7 mit D beliebige Menge und
8%9I:
A / 2D
S / 2D / 2D3
8A9I
heißt Konzeptextension
heißt Rollenextension
8S9I
8S9I(d) heißt Rollenfüllermenge der Rolle S für d
R: Menge von Rollenbeschreibungen
R/S
atomare Rolle
- R l R#
Rollenkonjunktion
Rollenrestriktion
- R-C
Die Interpretation wird induktiv definiert:
8R l R#9I Z $d → !8R9I(d) h 8R#9I(d)#%
8R-C9I Z $d → !8R9I(d) h 8C9I#%
30
Terminologien, Modelle, Subsumption
Eine Terminologie (T) ist eine Menge von Gleichungen und Ungleichungen der
folgenden Form (keine Doppeldefinitionen):
A^C
definiertes Konzept
A8C
primitives Konzept
S^R
definierte Rolle
S8R
primitive Rolle.
Eine Interpretation I erfüllt eine solche Gleichung (symbolisch ~I):
~I
~I
~I
~I
A^C
A8C
S^R
S8R
def
5
def
5
def
5
def
5
8A9I Z 8C9I
8A9I 4 8C9I
8S9I(d) Z 8R9I(d) für alle d 2 D
8S9I(d) 4 8R9I(d) für alle d 2 D
I ist ein Modell von T gdw. I alle Gleichungen erfüllt.
Der intuitive Subsumptionsbegriff ergibt sich dann wie folgt:
C wird von D in T subsumiert (C 7T D) gdw.
8C9I ⊆ 8D9I für alle Modelle I von T.
31
Konzeptbeschreibungen und ihre Interpretation
C, D /
P, Q /
8u9I
8t9I
8C l D9I
8cR: C9I
8dR: C9I
8dPn R9I
8d#n R9I
8PYQ9I
8(R1 R2 ... Rn)9I
A
u
t
ClD
cR: C
dR: C
dPn R
d#n R
PYQ
(R1 R2 ... Rn)
atomares Konzept
universelles Konzept
leeres Konzept
Konzeptkonjunktion
Werterestriktion
Existenzrestriktion
Minimumrestriktion
Maximumrestriktion
Koreferenzrestriktion
Rollenkette
ZD
Zt
Z 8C9I h 8D9I
Z & d 2 D - 8R9I(d) 4 8C9I (
Z & d 2 D - 8R9I(d) h 8C9I s \ (
Z & d 2 D - / 8R9I(d) / P n (
Z & d 2 D - / 8R9I(d) / # n (
Z & d 2 D - 8P9I(d) Z 8Q9I(d) (
Z 8Rn9I + ... + 8R29I + 8R19I
32
Konzeptbildende Operatoren
Abstrakte Form:
C, D / A
|ClD
|CkD
| lC
| cR : C
| dR
| Pn R
| #n R
|nR
| (0nPn) R
| dR: C
| Pn R: C
| #n R: C
| Zn R: C
| RC Z SC
| RC s SC
| RC 4 SC
|r:C
|r:i
| rc Z sc
| rc s sc
Y
| rc Z
sc
Y
| rc s sc
| {i1 , i2 , . . . , in}
| datatype
| fn
Konkrete From:
A
(and C D)
(or C D)
(not C)
(all R C)
(some R)
(atleast n R)
(atmost n R)
(exact n R)
(optatleast n R)
(some R C)
(atleast n R C)
(atmost n R C)
(exact n R C)
(eq RC SC)
(neq RC SC)
(subset RC SC)
(in r C )
(is r i )
(opteq rc sc )
(optneq rc sc )
(eq rc sc )
(neq rc sc )
(oneof i1 . . . in)
(apply fn)
Interpretation:
3[A]
3[C] h 3[D]
3[C] g 3[D]
D \ 3[C]
{ d 2 D | 3[R](d) 4 3[C] }
{ d 2 D | 3[R](d) s \ }
{ d 2 D | | 3[R](d) | P n }
{ d 2 D | | 3[R](d) | # n }
{ d 2 D | | 3[R](d) | Z n }
{ d 2 D | 3[R](d) Z \ n | 3[R](d) | P n }
{ d 2 D | 3[R](d) h 3[C] s \ }
{ d 2 D | | 3[R](d) h 3[C] | P n }
{ d 2 D | | 3[R](d) h 3[C] | # n }
{ d 2 D | | 3[R](d) h 3[C] | Z n }
{ d 2 D | 3[RC](d) Z 3[SC](d) }
{ d 2 D | 3[RC](d) s 3[SC](d) }
{ d 2 D | 3[RC](d) 4 3[SC](d) }
{ d 2 D | \ s 3[r](d) 4 3[C] }
{ d 2 D | 3[i](d) 2 3[r](d) }
{ d 2 D | 3[rc](d) Z 3[sc](d) }
{ d 2 D | 3[rc](d) s 3[sc](d) }
{ d 2 D | 3[rc](d) Z 3[sc](d) s \ }
{ d 2 D | \ s 3[rc](d) s 3[sc](d) s \ }
{ 3[i1], 3[i2], . . . , 3[in] }
Bezeichnung:
Atomares Konzept
Konzeptkonjunktion
Konzeptdisjunktion
Konzeptnegation
Wertrestriktion
Existenzrestriktion
Minimum-Zahlenrestriktion
Maximum-Zahlenrestriktion
Exakte Zahlenrestriktion
(Opt.) Minimum-Zahlenrestriktion
(Qual.) Existenzrestriktion
(Qual.) Minimum-Zahlenrestriktion
(Qual.) Maximum-Zahlenrestriktion
(Qual.) Exakte Zahlenrestriktion
Rollenketten-Gleichheit
Rollenketten-Ungleichheit
Rollenketten-Teilmengenbeziehung
Attributrestriktion auf Konzept
Attributrestriktion auf Individuum
(Opt.) Attributketten-Gleichheit
(Opt.) Attributketten-Ungleichheit
Attributketten-Gleichheit
Attributketten-Ungleichheit
Aufzählung
Abstrakter Datentyp
Aufruf externer Funktion
33
Vier Beschreibungsebenen für Wissensrepräsentationssprachen
1) Implementationsebene
Objekte
Pointer
2) Logische Ebene:
Prädikate
Quantoren
3) Epistemologische Ebene
Vererbungsrelationen
Strukturierungsprimitive
4) Ontologische Ebene
Primitive Konzepte
Primitive Relationen
34
Beispiel für initiale Konzepttaxonomie: NIKL
THING
⌧
⌧
RELATION
⌧
LISPDATA
PREDICATED
THING
⌧
CONSP
⌧
⌧
2-PLACE
RELATION
⌧
ATOM
SYMBOLP
⌧
CHARACTERP
⌧
⌧
NULL
⌧
⌧
ARRAYP
⌧
ROLERELATION
NUMBERP
⌧
⌧
INTEGERP
SD
⌧
PLACE
VECTORP
⌧
⌧
FLOATP
RATIONALP
⌧
BIT_VECTORP
⌧
STRINGP
⌧
SECONDPLACE
⌧
FIRSTPLACE
⌧
COMPLEXP
⌧
⌧
RANGE
DOMAIN
35
Zur Entwicklung semantischer Netzwerke
Einfache semantische Netzwerke
Quillian 1966
Semantische Netzwerke mit Kasusrahmen Simmons 1971
Norman/Rummelhart
1972
konzeptuelle Dependenz-Netze
Schank 1972
(CD-Graphen)
partitionierte semantische Netze
Hendrix 1977
(LN2)
gerichtete rekursive BewertungsknotenBoley 1975
Hypergraphen (DRLH)
prozedurale semantische Netze
Levesque 1977
(PSN)
Strukturierte Vererbungsnetze
Brachmann 1978
(SI-Netze, z.B. KL-ONE)
36
Frühe Semantische Netze in HAM-RPM
Konzeptuelles semantisches Netz von HAM-RPM (v. Hahn, Wahlster)
DING
thing
U
FLUESSIGKEIT
liquid
AGGREGATZUSTAND
state
E
D
FEST
solid
U
D
U
GETRAENK
drink
FLUESSIG
fluid
U
U
GEGENSTAND
object
V
E
SAFT
juice
U
U
MOEBEL
piece of
furniture
MUSIKINSTRUMENT
musical instrument
U
APFELSAFT
apple juice
U
D 0.8
SCHWARZ
black
ISA
)
:4
L
H
ZA
N
(A
T
BEIN
leg
APFELSAFT 1
ISA
KLAVIER 1
WEISS
white
U
KLAVIER
piano
ISA
7
0.
V
TISCH
table
U
SESSEL
arm-chair
STUHL
chair
T
0.8
HL:4)
A
Z
N
(A
U
KLAVIERSTUHL
piano-stool
REF
ISA
ISA
ISA
KLAVIERSTUHL 1
BEIN 1
SCHWARZ
black
SITZGELEGENHEIT
seating
U
U
U
7
0.
WEISS
white
V
FARBE
colour
U
WASSER
water
ROT
red
ISA
HAP
BEIN 2
STUHL 2
BEIN 3
STUHL 1
REF
REF
BRAUN
Referentielles semantisches Netz von HAM-RPM
KAPUTT
damaged
SESSEL 1
REF
HEIL
intact
BRAUN
brown
37
OIL führt drei Sprachfamilien zusammen
Framesprachen
Konzeptsprachen/
Terminologische Logiken
Modellierungsprimitive
OKBC-Lite
Formale Semantik
Subsumption, Inferenzen
OIL
Websprachen
XML- und RDF-Syntax
38
Drei Ebenen von Mark-up-Sprachen im Web
Inhalt
OIL
Struktur
XML
Form
HTML
WWW-Dokument
Inhalt : Struktur : Form = 1 : n : m
39
OIL: Erweitert Frame-Sprachen
• Klassen können primitiv sein (notwendige
Bedingungen)
– elephant 0 animal that has-colour grey
• oder definiert (notwendige und hinreichende
Bedingungen)
– vegetarian 5 person who eats meat nor fish
• Klassen sind als Slot-Constraints zugelassen
– slot-constraint eats has-value meat
(eats some meat)
– slot-constraint eats value-type meat
(eats only meat)
40
OIL: Erweitert Frame-Sprachen
• Verwendung arbiträrer Klassennamen
– slot-constraint eats value-type NOT (OR meat fish)
• Kardinalitätsrestriktion kann Klassennamen
enthalten
– slot-constraint eats max-cardinality 1 plant
• Die sub-slot-Relation wird unterstützt
– daughter-of sub-slot of child-of
• Slot-Eigenschaften können spezifiziert werden
– transitive (e.g., part-of )
– symmetrical (e.g., connected-to)
41
OIL: Beispiel einer Ontologie für Drucker (Teil 1)
class-def Product
slot-def Price
domain Product
slot-def ManufacturedBy
domain Product
class-def PrintingAndDigitalImagingProduct
subclass-of Product
class-def HPProduct
subclass-of Product
slot-constraint ManufacturedBy
has-value "Hewlett Packard"
class-def Printer
subclass-of PrintingAndDigitalImagingProduct
slot-def PrinterTechnology
domain Printer
slot-def Printing Speed
domain Printer
slot-def PrintingResolution
domain Printer
class-def PrinterForPersonalUse
subclass-of Printer
class-def HPPrinter
subclass-of HPProduct and Printer
42
OIL: Beispiel einer Ontologie für Drucker (Teil 2)
class-def LaserJetPrinter
subclass-of Printer
slot-constraint PrintingTechnology
has-value "Laser Jet"
class-def HPLaserJetPrinter
subclass-of LaserJetPrinter and HPProduct
class-def HPLaserJet1100Series
subclass-of HPLaserJetPrinter and PrinterForPersonalUse
slot-constraint PrintingSpeed
has-value "8 ppm"
slot-constraint PrintingResolution
has-value "600 dpi"
class-def HPLaserJet1100se
subclass-of HPLaserJet1100Series
slot-constraint Price
has-value "$479"
class-def HPLaserJet1100xi
subclass-of HPLaserJet1100Series
slot-constraint Price
has-value "$399"
43
Einige Begriffe zur Repräsentation einer
Aktionssemantik in terminologischen Logiken
Aktionen ändern den Zustand der Welt.
Aktionsparameter:
Objekte, die für Aktionen relevant sind,
formale Objektparameter,
Typ beschränkt auf Konzept,
(Cup1 CUP)
Zustände:
beschrieben mittels Attributen,
durch Restriktion der Attributwerte oder
‘Agreements‘ auf Attributketten,
(Cup1.contents.temperature: HOT)
(Cup1.position = Agent.hand.inside)
Vor/Nachbedingungen:
Konjunktion von Zuständen
44
Aktionstypen
Atomare Aktionen:
nicht zerlegbar,
definiert durch Vor- und Nachbedingungen,
Vorbedingung muss erfüllt sein, damit Aktion ausgeführt
werden kann,
Nachbedingung wird hergestellt, nachdem Aktion erfolgreich
abgelaufen ist.
Aktionssequenzen:
Sequenz von Aktionen mit optionalen Einschränkungen bzgl.
der Aktionsparameter der Teilaktionen
45
(defaction PUT-CUP-UNDER-WATEROUTLET
(actpars ( (Cup1 CUP)
(Agent PERSON)
(Duo1 ESPRESSO-MACHINE))
(before (Cup1.position = Agent.hand.inside))
(after (Cup1.position = Duo1.wateroutlet.under))))
(defaction TURN-SWITCH-TO-ESPRESSO
(actpars ( (EM1 ESPRESSO-MACHINE)
(Agent PERSON))
(before (EM1.state: (and OFF READY)))
(before (EM1.has-on/off-switch.position:
OFF-POSITION))
(after (EM1.state: ON)
(EM1.has-on/off-switch.position:
ESPRESSO-POSITION))))
46
(defaction MAKE-ESPRESSO
(actpars ( (EM ESPRESSO-MACHINE)
(Agent PERSON)...)
(sequence
(A1...)
...
(A5 PUT-CUP-UNDER-WATEROUTLET)
(A6 TURN-SWITCH-TO-ESPRESSO)
...)
(constraints
(equal Agent (A5 Agent) (A6 Agent) ...)
(equal EM
(A5 Duo1) (A6 EM1) ...)
...)))
47
LIVING-OBJECT
PHYSICAL-OBJECT
position
part
LOCATION
COMPOUND-PHYSICAL-OBJECT
inside
under
PERSON
PART-OF-BODY
WATEROUTLET
ESPRESSO-MACHINE
CONTAINER
wateroutlet
HAND
(defaction PUT-CUP-UNDER-WATEROUTLET
(actpars ((Agent PERSON)
(Duo1 ESPRESSO-MACHINE))
(Cup1 CUP))
(before (Cup1.position = Agent.hand.inside))
(after (Cup1.position = Duo1.wateroutlet.under))))
CUP
CONCEPT
role
48
RAT
TBox
Aktionen
R
A
T
K
R
I
S
P1
Plan
P2
Action
Action
Action
Action
Action
WERKZEUGE
ABox
Ereignisse
Aktions-Subsumption
Aktions-Subsumption
Ausführbarkeitstest
Ausführbarkeitstest
Take-Cup#5
Plan
Plan Instantiierung
Instantiierung
Place-Cup#13
Simulation
Simulation
Turn-Switch#6
Zwischenzustände
Zwischenzustände
Realisation
Realisation
Switch#2
*TOP*
Phys. Obj.
Beings
Machine
Cup
Human
Duo
Konzepte
R
A
T
Konzept
Konzept Instantiierung
Instantiierung
Konsistenz
Konsistenz
Konzept-Subsumption
Konzept-Subsumption
Klassifikation
Klassifikation
Cup#9
User#5
K
R
I
S
Objekte
49
RAT: Services
• Feasibility Test: ist der Plan P generell ausführbar?
• Instantiierung: Erzeuge eine Planinstanz I mit den angegebenen
Parameterwerten.
• Applicability Test: Ist die Planinstanz I im aktuellen Weltzustand
anwendbar?
• Simulation: Simuliere die Ausführung der Planinstanz I bis zu einer
bestimmten Stelle innerhalb des Plans.
• Intermediate States: Berechne den Weltzustand an einer
bestimmten Stelle des Plans.
50
Ausführbarkeitstest
• Gegeben: Aktionssequenz P = (A1 A2 A3)
Gesucht: Globale Vor- und Nachbedingungen von P
• Algorithmus: (temporal projection) Propagieren der Bedingungen
• Berechnung der schwächsten (allgemeinsten) Vorbedingung
und der stärksten (speziellsten) Nachbedingung
51
Instantiierung
• Bei der Instantiierung einer Aktionssequenz werden alleTeilaktionen
instantiiert. Dafür können für die formalen Aktionsparameter konkrete
Objekte der KRIS-Abox angegeben werden.
• Danach kann mit Hilfe der gespeicherten ADD- und DELETE-Listen
eine Simulation des Planablaufs auf verschiedenen Ebenen
durchgeführt werden.
• Die KRIS-ABox repräsentiert dabei den jeweiligen aktuellen
Weltzustand.
52
Subsumption
Subsumption zwischen Aktionen kann auf Subsumption zwischen
Vor- und Nachbedingungen reduziert werden.
Vier verschiedene Subsumptionsbeziehungen:
Goal Subsumption (z.B. plan retrieval)
A 8a B 5 Post(A) 8 Post(B)
Abstraction Subsumption (z.B. hierarchical planning)
A 8b B 5 Pre(A) 8 Pre(B) o Post(A) 8 Post(B)
Applicability Subsumption (z.B. plan optimization)
A 8g B 5 Pre(B) 8 Pre(A) o Post(A) 8 Post(B)
o Par(A) 8 Par(B)
Action Parameter Subsumption (z.B. lexical choice)
A 8d B 5 Par(A) 8 Par(B) o A 8b B
53
LIFT-LID
UNSCREW-COVER-OF-WATERCONTAINER
PREPARE-WATER
REMOVE-COVER-OF-WATERCONTAINER
LIFT-COVER-OF-WATERCONTAINER
FILL-WATER-INTO-WATERCONTAINER
PUT-IN-COVER-OF-WATERCONTAINER
INSTALL-COVER-OF-WATERCONTAINER
SCREW-IN-COVER-OF-WATERCONTAINER
PUL-BACKWARD-CLIP-OF-FILTER
INSTALL-FILTER-IN-HOLDER
PUT-FILTER-INTO-HOLDER
PREPARE-ESPRESSO-POWDER
FILL-IN-ESPRESSO-POWDER
FILL-FILTER-HOLDER
BREWESPRESSO
COMPRESS-ESPRESSO-POWDER
PLACE-FILTER-HOLDER
INSTALL-FILTER-HOLDER
SCREW-FILTER-HOLDER
TAKE-CUP
PLACE-CUP-UNDER-OUTLET
action57543
PRESS-BUTTON
TURN-MACHINE-ON
action57544
ESPRESSO-DROPS-INTO-CUP
TURN-MACHINE-OFF
54
Action Sequence „Put_cup_under_drain“
(defaction put_cup_under_drain
(actpars ((Agent USER)
(Object CUP)
(EM1 DUO5649))
(sequence (A1 take_cup) (A2 put_down_cup))
(constraints
(eq Agent (A1 Agent)) (eq Agent (A2 Agent))
(eq Object
(eq Object (A1 Object)) (eq EM1 (A2 EM1)))))
(A1 Object))
(defaction take_cup
(actpars ((Agent USER)
(Object CUP))
(before (is (Object position) LOCATION)
(is (Agent has-hand contents) *BOTTOM*))
(after
(eq (Object position) (Agent
has-hand region-inside))
(eq (Agent has-hand contents) CUP))))
(defaction put_down_cup
(actpars ((Agent USER)
(Object CUP)
(EM1 DUO5649))
(before (eq (Object position) (Agent
has-hand region-inside))
(eq (Agent has-hand contents) Object)
(is (EM1
has-drain occupied-by) *BOTTOM*))
(after
(eq (Object position) (EM1 has-drain region-below))
(eq (EM1 has-drain occupied-by) Object)
(is (Agent has-hand contents) *BOTTOM*))))
55
Ausführbarkeitstest Fortsetzung
Dabei:
Konsistenz aller Zwischenzustände
Prüfung der Anwendbarkeit für jede Teilaktion (ist Vorbedingung der Teilaktion allgemeiner als der aktuelle Weltzustand?)
Seiteneffekt:
Speicherung der ADD- und DELETE-Listen von Zustandsbeschreibungen
56
Ausführbarkeitstest Fortsetzung
• Abbildung der Anwendbarkeitstests in TL
‘Aktion A anwendbar in Weltzustand S‘/
‘Vorbedingung von A subsumiert S‘
• Zustandsbeschreibung / Konzeptbeschreibung
(defaction . . . (actpars ((Cup1 CUP)) . . .) . . .))
(Cup1.position = Agent.hand.inside) /
(and (all Cup1 CUP)
(equal (compose Cup1 position)
(compose Agent hand inside)))
(Cup.contents.temperature: HOT) /
(and (all Cup1 CUP)
(some (compose Cup1 contents temperature)
HOT))
57
Architektur eines Produktionensystems
Produktionsregeln
Datenbasis
C1 + C2
C3
C1 + C3
C4
C5
C5 C1 C3
A1
A2
A3
A4
A5
Regelinterpreter
Erkennung
Match
Produktionsregeln
gegen
Datenbasis
Aktion
Konfliktmenge
C3
C1 + C3
C5
A2
A3
A5
C3
A2
Evaluiere A2
58
Entwicklung der Produktionensysteme
Post
1943
Markov
1954
Chomsky
1957
Newell/Simon
1965
59
Produktionensystem für „P minus Q“
Datenbasis: (START) (P 5)
(Q 3)
Variablen:
X1 X2
Produktionsregeln:
R1: (START)
LÖSCHE ((START)), ERGÄNZE ((COUNT 0))
R2: (COUNT X1) & (P X2) & (Q X2))
DRUCKE (X1), STOP
R3: (COUNT X1) & (Q X2)
ERSETZE (X1, SUCC(X1), (COUNT X1)),
ERSETZE (X2, SUCC(X2), (Q X2))
DB1: (COUNT 0) (P 5) (Q 3)
DB2: (COUNT 1) (P 5) (Q 4)
DB3: (COUNT 2) (P 5) (Q 5)
“2“
<R1>
<R3>
<R3>
<R2>
60
Das kanonische System von Emil Post als
Vorläufer von Produktionensystemen
Postsche Systeme sind Ersetzungssysteme, die über einem endlichen
Alphabet V definiert sind und aus
- einer endlichen Menge von Ersetzungsregeln und
- einer endlichen Menge von Zeichenketten über V (Axiome)
bestehen.
Beispiel: Erzeugung aller Palindrome (Zeichenketten, die in beiden
Leserichtungen gleich sind: ‘Reliefpfeiler‘, ‘Ein Neger mit Gazelle zagt
im Regen nie‘) über einem Alphabet.
Alphabet:
V = {a, b, c}
Axiome:
a, b, c, aa, bb, cc
Ersetzungsregeln:
$
a$a
$
b$b
$
c$c
$ kann durch beliebige Zeichenketten über V ersetzt werden.
$
aca
bacab
cbacabc
Unterschiede zu Produktionensystemen:
- Datenbasis (Arbeitsspeicher, Working Memory) besteht aus nicht weiter strukturierten
Symbolfolgen
- Rechte Regelseite enthält nur Ersetzungsvorschriften, aber keine Löschungen oder
andere Operationen über der Datenbasis
- Konfliktauflösung bleibt ungeklärt (nicht-deterministische Auswahl der passenden Regel)
61
Grundbegriffe der Produktionensysteme
jede Produktion (Synonym: Inferenzregel)
besteht aus 2 Teilen:
A
Prämisse
Antezedens
Evidenz
Wenn - Teil
Linke Seite (LHS)
Bedingung
B
Konklusion
Konsequenz
Hypothese
Dann – Teil
Rechte Seite (RHS)
Aktion
Die Produktionen werden über der Datenbasis (nicht: Datenbank!) ausgewertet, die
auch als ‚Arbeitsspeicher‘ (WM) oder bei Anwendung in der Kognitiven Psychologie als
‚Kurzzeitgedächtnis‘ (STM) bezeichnet wird.
Es werden zwei Modi der Auswertung von Produktionen unterschieden:
Vorwärtsverkettung
Rückwärtsverkettung
A
B
Datengesteuertes Inferieren
Antezedens-orientiertes Inferieren
Bottom-up Inferieren
If-added Methoden
LHS-gesteuerte Verkettung
A  B
Zielgesteuertes Inferieren
Konsequenz-orientiertes Inferieren
Top-down Inferieren
If-needed Methoden
RHS-gesteuerte Verkettung
62
Auswertungsmodi von Produktionensystemen
Problem
...
...
Rückwärtsverkettung
...
...
Vorwärtsverkettung
anfängliches Wissen
Ein Problem P kann durch Vorwärtsverkettung (P) oder Rückwärtsverkettung (P) gelöst werden.
Vorwärtsverkettung (X)
WM := anfängliches Wissen
UNTIL P ist gelöst oder keine Produktion kann mehr feuern
DO:
(1) Bestimme die Menge K aller Regeln, deren Prämissen durch WM erfüllt sind
(2) Wähle aus K aufgrund der Konfliktauflösungsstrategie eine Regel R aus
(3) WM := Ergebnis der Auswertung von R über WM
Rückwärtsverkettung (X)
WM := anfängliches Wissen
UNTIL P ist gelöst oder keine Produktion kann mehr feuern
DO:
(1) Bestimme die Menge K aller Regeln, deren Konklusion mit P unifiziert werden kann
(2) Wähle aus K aufgrund der Konfliktauflösungsstrategie eine Regel R aus
(3) Falls die Prämisse von R nicht im WM steht, führe
Rückwärtsverkettung(Prämisse von R) aus
Für Schritt (2) ist jeweils backtracking möglich
63
Kommutative Produktionensysteme
In Ausnahmefällen können für Produktionensysteme unwiderrufliche Auswertungsmodi
verwendet werden, bei denen kein backtracking notwendig ist.
Ein Produktionensystem heißt kommutativ, wenn es bzgl. jeder beliebigen Datenbasis D
folgende Eigenschaften hat:
- Jede Produktion, die auf D anwendbar ist, ist auch noch auf alle Datenbasen
anwendbar, die durch eine anwendbare Regel erzeugt werden.
- Wenn die Terminierungsbedingung für D erfüllt ist, ist sie auch noch für jede
Datenbasis erfüllt, die durch eine auf D anwendbare Regel erzeugt wird.
- Die Datenbasis, die durch Anwendung einer beliebigen Folge von auf D anwendbaren Regeln auf D entsteht, ist invariant bzgl. Permutationen der Regelfolge.
Beispiel für ein kommutatives Produktionensystem:
R1
S11
R1
R2
R3 R3
R2 R1
R2
R2
R3
R1
SO
S3
S12
R1
S2
R1
R2
R3
R3
R3 R1
S13
R2
R3
R3
R2
SG
R1
S1
R2
Hier führt die Anwendung einer ‘ungünstigen Regel‘ nur zu einer Verlängerung des
Inferenzpfades, ohne jedoch die erfolgreiche Terminierung zu verhindern.
64
Dekomponierbare Produktionensysteme
Ein Produktionensystem heißt dekomponierbar, wenn seine Datenbasis und die
Terminierungsbedingung dekomponierbar ist.
Die Datenbasis ist dekomponierbar, wenn sie in Komponenten zerlegt werden kann, die unabhängig
voneinander (prinzipiell parallel) vom Produktionensystem-Interpretierer bearbeitet werden können.
Die Terminierungsbedingungen ist dekomponierbar, wenn sie durch die Terminierungsbedingungen über den Komponenten der dekomponierten Datenbasis ausgedrückt werden kann.
Beispiel: Datenbasis: (C,B,Z)
Terminierungsbedingung: Datenbasis enthält nur M‘s
Produktionen: R1: C
(D,L)
R2: C
(B,M)
R3: B
(M,M)
R4: Z
(B,B,M)
(C,B,Z)
(C)
R1
R2
(D,L)
D
(B)
R3
(B,M)
L
(Z)
B
M
R4
(M,M)
M
(B,B,M)
B
M
B
M
R3
R3
R3
(M,M)
(M,M)
(M,M)
M
M
M
M
M
M
Dekomposition der Datenbasis: C,B,Z
Dekomposition der Terminierungsbedingungen: Jede dekomponierte Datenbasis führt
nur zu M‘s
65
Vor- und Nachteile von Produktionensystemen
Mächtigkeit
Mächtigkeit der
der
RepräsentationsRepräsentationssprache
sprache
Erweiterbarkeit
Erweiterbarkeit
-
Nachteile
-
-
+
Maschinelle
Maschinelle
Weiterverarbeitung
Weiterverarbeitung
+
KonsistenzKonsistenzprüfung
prüfung
-
Programmieren
Programmieren durch
durch
Seiteneffekte
Seiteneffekte
+
Vorteile
Realisierung
Realisierung
komplexer
komplexer
Kontrollstrukturen
Kontrollstrukturen
Indirekte
Indirekte
Regelinteraktion
Regelinteraktion über
über
die
Datenbasis
die Datenbasis
Stark
Stark
eingeschränkte
eingeschränkte
Syntax
Syntax
Merkmale
Statische
Statische Analyse
Analyse
des
des Kontrollflusses
Kontrollflusses
+
ErklärungsErklärungskomponente
komponente
Modulare
Modulare
Wissensrepräsentation
Wissensrepräsentation
+
Wissenserwerb
Wissenserwerb
+
Fehlerkorrektur
Fehlerkorrektur
66
Zur Verwendung von Metaregeln in regelbasierten
Systemen
Metawissen ist Wissen, das sich auf andere Wissenseinheiten in der Wissensbasis bezieht.
Metaregeln beziehen sich auf die Form und den Inhalt von Produktionen, die in der
Wissensbasis gespeichert sind.
(1) Metaregeln zur Konfliktauflösung
Angenommen in einem Expertensystem, das bei chemischen Verunreinigungen berät, gibt es
folgende Regeln:
R1: Falls die Verunreinigung durch Schwefelsäure verursacht wurde, verwende Verfahren A.
R2: Falls die Verunreinigung durch Schwefelsäure verursacht wurde, verwende Verfahren B.
Bei der Vorwärtsverkettung kann sich als Konfliktmenge {R1, R2} ergeben.
Angenommen die Wissensbasis enthält folgende Information:
- Verfahren A ist teuer, Verfahren B ist billig
- Verfahren A ist nicht gefährlich, Verfahren B ist gefährlich
- R1 wurde von dem Experten Meyer eingegeben, R2 von dem Novizen Schulz
Metaregeln:
R3: Bevorzuge Regeln, die billige Verfahren vorschlagen, gegenüber denen, die teure
Verfahren vorschlagen.
R4: Bevorzuge Regeln, die weniger gefährliche Verfahren vorschlagen, gegenüber denen, die
gefährliche Verfahren vorschlagen.
R5: Bevorzuge Regeln, die von Experten eingegeben wurden, gegenüber denen, die von
Novizen eingegeben wurden.
67
Konfliktauflösung mit Metaregeln
(1) R4, R5: R1 vor R2
(2) R3: R2 vor R1
Die Entscheidung hängt ab:
- bei gemeinsamem Interpreter für Regeln und Metaregeln: Auswertungsreihenfolge
- bei getrennten Interpretern für Metaregeln:
- bei zufälliger Auswahl: (1) wahrscheinlicher
- bei ‘Mehrheitsentscheidung‘: (1)
Reflexive Verwendung von Metaregeln als Meta-Meta-Regeln
- Angenommen die Wissensbasis enthält folgende Information:
R4 wurde vom Experten Meyer eingegeben,
R3 vom Novizen Schulz
R5: R4 vor R3: R1 vor R2
- Angenommen die Wissensbasis enthält die folgende Information:
Die Anwendung von R3 ist gefährlich,
die von R5 weniger gefährlich,
die von R4 ungefährlich,
R4: R4 vor R3, R5: R1 vor R2
Bei einem Konflikt zwischen Metaregeln wird ggf. wiederum eine Konfliktauflösungsstrategie
benötigt.
Ein infiniter Regreß wird dabei durch zufällige Wahl einer Produktion aus der Konfliktmenge auf
einer bestimmten Metaebene verhindert.
Mehr als 2 Metaebenen sind bisher in der Praxis nicht notwendig gewesen.
68
Die Regelpyramide
Die typischen Größenverhältnisse bei der Schichtung von Objektregel- und
Metaregelebenen in Produktionensystemen können in einer Regelpyramide
veranschaulicht werden.

10 * z
Meta2-Regeln
102 * y Metaregeln
103 * x Objektregeln
Auf den höheren Metaebenen wird aufgrund der geringeren Zahl von Regeln die
Wahrscheinlichkeit, daß die Konfliktmenge mehr als ein Element enthält, immer
kleiner.
Der Aufwand für eine intelligente Konfliktauflösung im Sinne einer best-first
Suche lohnt sich nur auf den unteren Ebenen der Regelpyramide.
69
Konfliktauflösung aufgrund eines Prioritätenschemas für Regeln,
Spezialisierungsrelationen zwischen Instantiierungen und Verweilzeiten im WM
WM ( (P S) (Q T) (P T) (R V) (Q S) (P V) ... (W V) (W T) )
P1 ( (Q =X) (P =X) / ... )
I11 [ P1 ((Q T) (P T)) ]
I12 [ P1 ((Q S) (P S)) ]
P2 ( (P S) (P =X) (W =X) / ... )
I21 [ P2 ((P S) (P T) (W T)) ]
I22 [ P2 ((P S) (P V) (W V)) ]
P3 ( (=X S) (=X =Y) (W =Y) (R =Y) (Q S) / ... )
I3 [ P3 ((P S) (P V) (W V) (R V) (Q S)) ]
P4 ( (Q S) l(U S) (P =X) l(U V) l(U T) / ... )
I41 [ P4 ((Q S) (P S)) ]
I42 [ P4 ((Q S) (P T)) ]
I43 [ P4 ((Q S) (P V)) ]
PO1 {I11 I12}
PO2 {I11 I12 I3}
SC1 {I21 I22 I3 I41 I42 I43}
SC2 {I11 I21 I3 I42}
SC3 {I11 I21 I3 I41 I42 I43}
Rl
{I12 I21 I22 I3 I41}
R2 {I11 I12 I21 I22 I3 I41}
R3 {I11}
R4 {I11 I12 I41 I42 I43}
R5 {I21}
70
Konfliktauflösungsstrategien
Im WM sind die Datenelemente von links nach rechts auf der Basis steigender
Verweildauer geordnet.
(P S) und (Q T) sind beim letzten Zyklus, (P T) und (R V) beim vorletzten Zyklus,
(Q S) und (P V) vor 3 Zyklen und (W V) sowie (W T) vor 101 Zyklen im WM
abgespeichert worden.
Die Produktionen sind in der Reihenfolge der Eingabe abgelegt. Variablen sind
mit ‘=’ präfigiert.
(1) Konfliktauflösung aufgrund von Regelprioritäten
- PO1: Totale Ordnung auf Regeln, z.B. Eingabereihenfolge.
Damit wird P1 selektiert.
- PO2: Partielle Ordnung auf den Regeln, z.B. P1 dominiert P2, P3 dominiert P4.
Dann werden P1 und P3 selektiert.
PO2 ist bei strukturierten Regelmengen relevant.
71
Konfliktauflösungsstrategien
(2) Konfliktauflösung aufgrund von Spezialisierungsrelationen
zwischen Instantiierungen und Produktionen
- SC1: S ist Spezialfall von Produktion A, falls
* S hat mindestens soviele Prämissen wie A und
* zu jeder Prämisse in A, die Konstanten enthält, gibt es eine
entsprechende in S, die diese Konstanten als Teilmenge enthält, und
* S und A sind nicht identisch
P4 ist damit Spezialfall von P1, so daß bei Instantiierung von P4 die Instantiierungen
von P1 ausgeschlossen sind. Zwischen P2, P3 und den anderen Produktionen
bestehen keine Spezialisierungsbeziehungen im Sinne von SC1.
- SC2: S ist Spezialfall von Instantiierung A, falls S die Datenelemente von A
als eine echte Teilmenge enthält.
Damit ist I3 Spezialfall von I12, I22, I41 und I43.
- SC3: Zusätzlich zu SC2 muß für Spezialfall noch gelten, daß die Produktion
zu S mehr Prämissen hat als die zu A.
Daher fallen I41 und I43 als Spezialfälle fort, da P4 und P3 die gleiche
Anzahl von Prämissen haben.
72
Konfliktauflösungsstrategien
aufgrund von Verweilzeiten im WM
- R1: Ordnung aufgrund des Elementes einer lnstantiierung, das die kürzeste Verweilzeit
im WM hat, wobei die Zeit als Anzahl der Aktionen gemessen wird, die seit dem
Eintrag ausgeführt wurden.
- R2: wie R1, wobei die Zeit als Anzahl der Interpreter-Zyklen gemessen wird, die seit
dem letzten Eintrag ausgeführt wurden.
- R3: Geprüft werden die ältesten Elemente aller Instantiierungen. Es wird dann die
Instantiierung mit dem Element gewählt, die unter den ältesten die kürzeste
Verweilzeit im Sinn von R1 hat.
- R4: Die Zeit wird wie in R2 gemessen. Geprüft werden wie in R3 die ältesten Elemente
aller Instantiierungen. Diejenigen, deren ältestes Element ≤100 Zyklen Verweilzeit
hat, werden gegenüber den Instantiierungen mit einer Verweilzeit von ≥101 Zyklen
bevorzugt.
- R5: Die Zeit wird als Anzahl der ausgeführten Aktionen gemessen. Es werden die
Elemente aller Instantiierungen verglichen. Zunächst werden die Elemente mit der
kürzesten Verweilzeit verglichen. Bei Zeitgleichheit werden die Elemente mit der
nächstkürzeren Verweilzeit betrachtet. Sobald eine Instantiierung gefunden wird,
die ein Element mit kürzerer Verweildauer als die Vergleichselemente hat, wird
diese Instantiierung selektiert. Wenn beim sukzessiven Vergleich einigen
Instantiierungen die Elemente ausgehen, so werden diese Instantiierungen nicht
selektiert. Unter R5 sind also nur Instantiierungen mit identischen Elementen gleich.
73
Konfliktauflösungsstrategien
aufgrund eines Vergleichs der Instantiierungen in der Konfliktmenge mit vorher
verwendeten Instantiierungen.
- D1: Es wird versucht, Produktionen am Feuern in zwei unmittelbar aufeinanderfolgenden
Zyklen zu hindern. Zwei Instantiierungen sind verschieden, wenn die dazugehörigen
Produktionen verschieden sind. Es wird geprüft, ob vor einem Interpreter-Zyklus eine
andere Instantiierung als die zur Wahl stehende gefeuert hat. Bei positivem
Vergleichsresultat wird die entsprechende Instantiierung bevorzugt.
- D2: Es wird versucht, Instantiierungen nicht mehr als einmal feuern zu lassen. Zwei
Instantiierungen sind verschieden, wenn ihre Produktionen oder Datenelemente
verschieden sind. Es wird die gesamte Feuerfolge betrachtet, wobei
Instantiierungen, die von allen bisher ausgeführten verschieden sind, bevorzugt
werden.
zufällige Wahl einer Instantiierung AD1 als letzte Entscheidungshilfe
74
Kombination von Konfliktauflösungsstrategien
‘!’ 
‘/’ 
‘[ ]’ 
die Strategien werden auf die gleiche Menge von Instantiierungen angewendet.
Ergebnis ist der Durchschnitt der berechneten Teilmengen
die rechte Strategie wird auf das Ergebnis der linken angewendet
alle Instantiierungen, die von der in Klammern angegebenen Strategie nicht
präferiert werden, sind von der weiteren Auswertung ausgeschlossen
WM ( (P S) (Q T) (P T) (R V) (Q S) (P V) ... (W V) (W T) )
P1 ( (Q =X) (P =X) / ... )
I11 [ P1 ((Q T) (P T)) ]
I12 [ P1 ((Q S) (P S)) ]
P2 ( (P S) (P =X) (W =X) / ... )
I21 [ P2 ((P S) (P T) (W T)) ]
I22 [ P2 ((P S) (P V) (W V)) ]
P3 ( (=X S) (=X =Y) (W =Y) (R =Y) (Q S) / ... )
I3 [ P3 ((P S) (P V) (W V) (R V) (Q S)) ]
P4 ( (Q S) l(U S) (P =X) l(U V) l(U T) / ... )
I41 [ P4 ((Q S) (P S)) ]
I42 [ P4 ((Q S) (P T)) ]
I43 [ P4 ((Q S) (P V)) ]
[D2] / R1 / SC2 / R3 {I3}
[D2 ! R4] / Rl / SC2 {I12 I41}
[D2 ! R4] / R5 {I12 I41}
[D2 ! R4] / R5 / PO1 / AD1 {I12}
75
Mehrfachableitung als multipler And/Or-Baum
Z
Inferenzregeln:
Zielanweisung
(A o (B n C) / Z, EV1)
(D n E / Z, EV2)
(F / B, EV3)
(G / B, EV4)
(H o I / D, EV5)
Rückwärtsverkettung
Z'
Z''
Z'''
D
B
A
F
G
C H
I
E
Faktenwissen
76
Die grundlegende Syntax von OPS5
1) Die Struktur von Elementen der Datenbasis
<element> ::= <vector-element> | <av-element>
<vector-element> ::= ({<value>}+)
<av-element> ::= (<object>{^<attribute><value>}+)
2) Die Struktur der Produktionsregeln
<rule> ::= ( P <rule-name> <antecedent> → <consequent> )
<antecedent> ::= {<condition>}+
<condition> ::= <pattern> | -<pattern>
<pattern> ::= (<object>{^<attribute><value>}+)
<consequent> ::= {<action>}+
<action> ::= (MAKE <object>{^<attribute><value>}+) |
(MODIFY <pattern-number>{^<attribute><value>}+) |
(REMOVE <pattern-number>) |
(WRITE {<value>}+)
77
Konfliktauflösungsstrategien im OPS5-Regelinterpreter
In OPS5 gibt es zwei Konfliktauflösungsstrategien, wobei in beiden mehrere Filter
hintereinandergeschaltet sind: LEX und MEA.
LEX (voreingestellte Strategie)
Die Bezeichnung 'LEX' basiert auf der Tatsache, daß im zweiten Filter die
lexikographische Ordnung eine wichtige Rolle spielt.
LEX eignet sich vor allem für kleine Regelmengen und Probleme, bei denen es nicht
auf die Reihenfolge der Lösung von Teilaufgaben ankommt.
MEA
Die Bezeichnung ‘MEA’ soll an das Problemlöseverfahren der ‘Means Ends Analysis’
erinnern.
Die Priorisierung der ersten Einzelbedingung eignet sich zur Steuerung des Systems,
indem diese Bedingung jeweils das aktuelle Unterziel beschreibt.
78
OPS: Die Konfliktauflösungsstrategien
LEX und MEA
Filter 4
Filter 4
Filter 3
Filter 3
Willkür
Willkür
Spezifität
Spezifität
Filter 2
Filter 1
Neuheit
Neuheit Einmaligkeit
Filter 2
Filter 1
Einmaligkeit
Konfliktmenge
Konfliktmenge
79
OPS: Die Konfliktauflösungsstrategien
LEX und MEA
Willkür
Spezifität
Neuheit der
Instantiierung
Neuheit der Arbeitsspeicherelemente,
die die erste Einzelbedingung erfüllen
Einmaligkeit
LEX MEA
80
Konfliktauflösungsstrategien im OPS5-Regelinterpreter
Einmaligkeit
Es werden alle Instantiierungen ausgefiltert, die bereits einmal gefeuert haben, aber
seitdem noch immer in der Konfliktmenge sind, da ihr Bedingungsteil mit denselben
Arbeitsspeicherelementen erfüllt blieb.
Diesem Filter liegt die Heuristik zugrunde, daß ein erneutes Feuern derselben
Instantiierungen nichts Neues bringen würde.
Neuheit
Diesem zweiten Filter liegt im wesentlichen eine Verweilzeitstrategie zugrunde, die
diejenigen Instantiierungen bevorzugt, die auf möglichst jungen Datenelementen beruhen.
Dazu werden die Zeitstempel, die zu einer Instantiierung gehören, der Größe nach in
absteigender Reihenfolge geordnet und als Vektor aufgefaßt.
Der größte Vektor in dieser Ordnung entspricht der Instantiierung, die diesen Filter
passieren kann.
81
Konfliktauflösungsstrategien im OPS5-Regelinterpreter
Neuheit
(Fortsetzung)
Es ist möglich, daß verschiedene Instantiierungen denselben Vektor von Zeitstempeln
haben, so daß mehrere Instantiierungen diesen Filter passieren können.
Ist ein Vektor in einem anderen enthalten, so wird der längere Vektor als größer in dieser
Ordnung angesehen. Dadurch wird neben einer Verweildauerstrategie auch eine
Spezialfallstrategie realisiert.
Beispiel:
Eingabe in diese Filterstufe sei:
Ausgabe des Filters:
Regel_3
Regel_1
Regel_2
Regel_7
Regel_2
Regel_4
Regel_3
Regel_1
27
27
27
27
21
17
19
19
19
19
19
12
11 6
11 6
11
11
11
13 6
2
27 19 11 6
27 19 11 6
1
82
Konfliktauflösungsstrategien im OPS5-Regelinterpreter
Spezifität
Alle Instantiierungen, die den Neuheitsfilter verlassen, werden mit der gleichen Menge von
Arbeitsspeicherelementen gebildet. Der dritte Filter, dem diese Instantiierungen zugeleitet
werden, ist eine weitere Spezialfallstrategie.
Als Maß für die Spezifität wird die Anzahl der Tests von Variablen und Konstanten eines
Bedingungsteils verwendet.
Als ein Test zählt:
Jede (mit einem Prädikat versehene) Konstante
Jede Auswahl einer Konstanten
Jeder Vergleich mit einer gebundenen Variablen
Die Instantiierung der Regeln, die die maximale Anzahl an Tests durchführt, passiert den
Spezifitätsfilter.
Willkür
Zuletzt wird eine willkürliche (aber nicht zufällige) Entscheidung für genau eine
Instantiierung getroffen, so daß eine reproduzierbare und eindeutige Wahl getroffen wird.
83
Konfliktauflösungsstrategien im OPS5-Regelinterpreter
LEX-Algorithmus
1. Entferne alle Instantiierungen, die schon gefeuert haben.
2. Ordne die restlichen Instantiierungen entsprechend der Neuheit der an sie
gebundenen Elemente und wähle die größte Instantiierung gemäß dieser Ordnung.
3. Gibt es mehrere gleich große Instantiierungen gemäß voriger Ordnung, ordne
diese nach der Zahl der Tests und wähle die größte Instantiierung gemäß dieser
Ordnung.
4. Gibt es auch in dieser Ordnung mehrere gleich große Instantiierungen, wähle
willkürlich eine der größten.
84
Konfliktauflösungsstrategien im OPS5-Regelinterpreter
MEA-Algorithmus
1. Entferne alle Instantiierungen, die schon gefeuert haben.
2. Ordne die restlichen Instantiierungen entsprechend der Neuheit der Elemente, die
die erste Einzelbedingung erfüllen und wähle die größte lnstantiierung gemäß
dieser Ordnung.
3. Gibt es mehrere lnstantiierungen mit gleich neuem ersten Element, ordne diese
entsprechend der Neuheit aller an sie gebundenen Elemente und wähle die größte
Instantiierung gemäß dieser Ordnung.
4. Gibt es mehrere gleich große Instantiierungen gemäß voriger Ordnung, ordne
diese nach der Zahl der Tests und wähle die größte Instantiierung gemäß dieser
Ordnung.
5. Gibt es auch in dieser Ordnung mehrere gleich große Instantiierungen, wähle
willkürlich eine der größten.
85
Der RETE-Algorithmus in OPS5
Eine naive Implementation des Erkennungs/Aktionszyklus, in der bei jedem Schleifendurchlauf alle Elemente der Datenbasis mit den Bedingungsteilen aller Regeln verglichen werden, würde zu einem völlig indiskutablen Laufzeitverhalten bei großen
Regelmengen führen.
Zwei grundlegende Ideen zur Effizienzsteigerung:
1) Einschränkung der zu überprüfenden Datenbasiseinträge:
Bei der Auswertung einer Regel wird jeweils nur ein kleiner Teil des Arbeitsspeichers
verändert, und ein Mustervergleich mit den unveränderten Elementen ändert die
Konfliktmenge nicht.
Man kann also die Ergebnisse einer Vergleichsphase speichern und beim nächsten
Zyklus nur die Änderungen der Datenbasis daraufhin prüfen, ob sie zur Instantiierung
neuer Regeln führen oder ob sie bestehende Instantiierungen aufheben.
2) Einschränkung der zu überprüfenden Bedingungen:
Da die Bedingungsteile der Regeln im allgemeinen nicht disjunkt sind, kann der Aufwand für
die Erkennungsphase auch dadurch reduziert werden, daß gleichartige Tests nur einmal
durchgeführt werden.
86
Der RETE-Algorithmus in OPS5
Der RETE-Algorithmus erlaubt eine effiziente Implementierung der Mustervergleichsphase in
Produktionensystemen.
Er erhält alle Änderungen der Datenbasis als Eingabe und berechnet die sich daraus
ergebenden Änderungen der Konfliktmenge.
Die Regeln werden durch ein Netz aus Code-Stücken übersetzt, welche Bedingungsteile
repräsentieren (RETE = Netz im Lateinischen).
Das Netz besteht aus:
• Einerknoten: Darstellung von Bedingungen, die nur ein Datenbasiselement betreffen
• Zweierknoten: Beziehungen zwischen den Einzelbedingungen.
Eine Einzelbedingung wird in eine Folge von Einerknoten übersetzt:
(Pyramide ^Farbe
<< Gelb Weiß >>
^steht_auf <Quader_1>
^Gewicht
<> schwer)
Klassenname
Klassenname
== Pyramide
Pyramide ??
^Farbe
^Farbe
<<
<< gelb
gelb weiß
weiß >>
>> ??
^Gewicht
^Gewicht
¹¹ schwer
schwer ??
87
Der RETE-Algorithmus in OPS5
Jeder Netzknoten wird durch eine Prozedur realisiert, welche die Einschränkungen für
ein Attribut überprüft.
Für Variablenbindungen gibt es keine Knoten, solange die Variable nur einmal
auftaucht. Sonst wird der Knoten erzeugt:
(Tonne
^Material Holz
^Höhe <X>
^Durchmesser >= <X>)
Klassenname
Klassenname
== Tonne
Tonne ??
^Material
^Material
== Holz
Holz ??
^Durchmesser
^Durchmesser
³³ Wert
Wert von
von Höhe
Höhe ??
Als Eingabe erhält eine solche Folge von Einerknoten Token, die den Wert und
Zeitstempel von Datenbasiselementen zusammen mit einer Markierung darstellen:
+ : neu zu erzeugendes Element
- : zu löschendes Element
88
Der RETE-Algorithmus in OPS5
Jeder Knoten gibt an den Nachfolgerknoten nur Token weiter, die seine Bedingung
erfüllen.
Mehrere Einzelbedingungen auf der linken Seite einer Regel können durch einen
Zweierknoten verbunden werden.
(Quader
^Name
^steht_auf
(Würfel
^Gewicht
<Quader_1>
Boden)
schwer)
Klassenname
Klassenname
== Quader
Quader ??
Klassenname
Klassenname
== Würfel
Würfel ??
^Steht_auf
^Steht_auf
== Boden
Boden ??
^Gewicht
^Gewicht
== schwer
schwer ??
Alpha-Speicher
Beta-Speicher
89
Der RETE-Algorithmus in OPS5
Ein Zweierknoten hat zwei Eingänge. Wenn der Bedingungsteil einer Regel mehr als
zwei Klauseln umfaßt, werden weitere Zweierknoten gebildet, wobei je ein Eingang
mit dem Ausgang eines vorangegangenen Zweierknotens verbunden wird.
Zweierknoten verwalten zwei Listen, in denen Token gespeichert werden können.
Im Alpha- und Betaspeicher werden die Ausgaben der beiden Vorgängerknoten
gespeichert.
Ist einer der beiden Vorgängerknoten ein Zweierknoten, so wird dessen Ausgabe im
Betaspeicher abgelegt.
Wenn die beiden Eingänge eines Zweierknotes keine gemeinsamen Variablen haben,
so liefert der Zweierknoten als Ergebnis das Kreuzprodukt seines Alpha- und
Betaspeichers.
Wenn gemeinsame Variablen vorkommen, prüft der Zweierknoten, welche Elemente
im Betaspeicher zusammenpassen, so daß eine konsistente Variablenbelegung
entsteht.
Die Ausgabe des letzten Zweierknotens, der zu einer Regel gehört, stellt die
Änderung der Konfliktmenge dar.
90
Der RETE-Algorithmus in OPS5
Wird der Datenbasis ein neues Element hinzugefügt, so wandert dieses als PlusToken durch das Netz, wobei ggf. die Alpha- und Betaspeicher aktualisiert werden.
Soll ein Element aus der Datenbasis gelöscht werden, so wandert dieses als MinusToken durch das Netz, wobei die zugehörigen Einträge im Alpha- und Betaspeicher
ebenfalls gelöscht werden.
Beispiel für die Verwendung von Alpha- und Betaspeicher
(P Suche_Pyramide
(Quader
^Name
<Quader_1>
^steht_auf Boden )
(Würfel
^Gewicht
schwer )
(Pyramide
^Farbe
<< Gelb Weiß >>
^steht_auf <Quader_1>
^Gewicht
<> schwer )
--> (Aktionsteil)
)
91
Der RETE-Algorithmus in OPS5
Die Token in den Speichern sind durch ihre Zeitstempel repräsentiert. Die
Zeitst.
Klasse
Name
Farbe
Gewicht
Steht_auf
fettgedruckten Einträge
zeigen
die
Änderungen
nach
dem
Einfügen
1
Quader
Q1
Blau
Schwer
Boden des folgenden
4
Quader
Q2
Rot
Leicht
Boden
Elements in die Datenbasis:
(15,
Würfel,
Schwer,
Nil)
6
Pyramide
P1 W2, Blau,
Gelb
Leicht
Boden
9
Pyramide
Zeitst. 12 Klasse Würfel
Name
1
Q1
15 Quader Würfel
4
Quader
Q2
6
Pyramide
P1
9
Pyramide
P2
Klassenname
Klassenname
12
Würfel
W1
== Quader
Quader ??
P2
Weiß
NIL
Q1
Steht_aufBoden
W1 Farbe BlauGewicht Schwer
Boden Nil
W2 Blau
BlauSchwer Schwer
Rot
Leicht
Boden
Gelb
Leicht
Boden
Weiß
NIL
Q1
Klassenname
Klassenname
Klassenname
Blau
Schwer
Boden Klassenname
== Würfel
Würfel ??
== Pyramide
Pyramide ??
Klassenname
Klassenname
^Steht_auf
^Steht_auf
== Quader
??
Quader
== Boden
??
Boden
Klassenname
Klassenname
^Gewicht
^Gewicht
== Würfel
Würfel==??schwer
schwer ??
Klassenname
Klassenname
^Farbe
^Farbe
== Pyramide
?? weiß>> ?
Pyramide
<<gelb
<<gelb
weiß>> ?
^Steht_auf
^Steht_auf
== Boden
Boden ??
^Gewicht
^Gewicht
== schwer
schwer ?? 12 15
^Farbe
^Farbe ^Gewicht
^Gewicht
<<gelb
?? ?
<<gelb weiß>>
weiß>>
¹¹ schwer
schwer
?
(P Suche_Pyramide
(Quader
1
^Name
<Quader_1>
^steht_auf
Boden ) 4
(Würfel
^Gewicht
schwer )
(Pyramide
^Farbe
<< Gelb Weiß >> 1
^steht_auf
<Quader_1>
4
^Gewicht
<>schwer )
1
--> (Aktionsteil)
)
4
1
4
^Gewicht
^Gewicht
¹¹ schwer
schwer ??
^Steht_auf von Token im Alpha-Speicher
=^Name des ersten Token des Beta-Speichers ?
12 15
1 12
4 12
12
12
15
15
^Steht_auf von Token im Alpha-Speicher
1 15
1 12
9
9 Beta-Speichers
=^Name des ersten Token des
?
4 15
1 15 9
6 9
6 9
1 12 9
1 15 9
92
Der RETE-Algorithmus in OPS5
Bisher hätte das Netz, das aus der Übersetzung einer Regel entsteht, so viele Einträge, wie die Regel Einzelbedingungen enthalten hat, und einen Ausgang, der die
Instantiierung der Regel liefert.
Das Gesamtnetz für die Regelbasis bestünde aus einer Menge nebeneinanderliegender Einzelnetze.
Regel 1
Regel 2
Regel 3
Regel 4
Regel 5
Der RETE-Algorithmus verschmelzt nun gleiche Anfangsstücke von den Einzelnetzen.
Regel 1
Regel 2
Regel 3
Regel 4
Regel 5
93
Der RETE-Algorithmus in OPS5
Bei der Übersetzung werden die Bedingungen nicht umgeordnet, so daß trotz inhaltlicher Gleichheit für
die folgenden Einzelbedingungen nur der Test auf den Klassennamen verschmolzen wird.
(Kiste
(Kiste
^Farbe blau
^Material Holz
^Material Holz ^Größe <= 100 )
^Farbe blau
^Größe <= 100 )
Die folgenden beiden Regeln können für den Anfang ihrer ersten Bedingung ein gemeinsames
Netzstück benutzen.
(P Regenwarnung
(Wettervorhersage
^Status
aktuell
^Quelle
Rundfunknachrichten
^Wetter
Regen)
(Beobachtung
^Art
Dunkle-Wolken)
--> (WRITE |Es wird wohl Regen geben.| (CRLF)
|Ich empfehle, einen Schirm mitzunehmen.|)
)
(P Ausflugsempfehlung
(Wettervorhersage
^Status
aktuell
^Quelle
Bauernregel
^Wetter
Sonnenschein)
(Datum
^Wochentag Freitag
^Monat
<< Juni Juli August September >>)
--> (WRITE |Das Wetter wird prima.| (CRLF)
|Ich empfehle, dieses Wochenende| (CRLF)
|ans Meer zu fahren.|)
)
94
Der RETE-Algorithmus in OPS5
Klassenname
Klassenname
== Wettervorhersage
Wettervorhersage ??
^Status
^Status
== aktuell
aktuell ??
Klassenname
Klassenname
== Beobachtung
Beobachtung ??
^Art
^Art
== Dunkle_Wolken
Dunkle_Wolken ??
^Quelle
^Quelle
== Rundfunknachricht
Rundfunknachricht ??
^Wetter
^Wetter
== Regen
Regen ??
^Quelle
^Quelle
== Bauernregel
Bauernregel ??
^Wetter
^Wetter
== Sonnenschein
Sonnenschein ??
Klassenname
Klassenname
== Datum
Datum ??
^Wochentag
^Wochentag
== Freitag
Freitag ??
^Monat
^Monat
«« Jun
Jun Jul
Jul Aug
Aug Sep
Sep »» ??
Instantiierungen der Regel
Ausflugsempfehlung
Instantiierungen der
Regel Regenwarnung
Die Namen der verwendeten Variablen spielen für eine mögliche Verschmelzung keine Rolle, so daß z.B.
folgende Einzelbedingungen auf eine Knotenfolge abgebildet werden:
(Kiste
(Kiste
^Höhe <H>
^Höhe <Höhe>
^Breite >= <H>
^Breite >= <Höhe>
^Material Holz)
^Material Holz)
95
Der RETE-Algorithmus in OPS5
Es kann vorkommen, daß Zweierknoten mehr als einen Ausgang haben, z.B. wenn der Bedingungsteil
einer Regel den einer anderen umfaßt.
(Regel_1
(Bedingung_1)
(Bedingung_2)
--> (Aktionsteil)
)
Instantiierungen
von Regel_1
(Regel_2
(Bedingung_1)
(Bedingung_2)
(Bedingung_3)
--> (Aktionsteil)
)
Instantiierungen
von Regel_2
96
Der RETE-Algorithmus in OPS5
Zum Ändern eines Elementes in der Datenbasis wird ein Plus-Token und ein Minus-Token durch das
Netz geschickt, so daß das Ändern doppelt so aufwendig ist wie das Erzeugen oder Löschen eines
Elements.
Ein Nachteil des RETE-Algorithmus besteht darin, daß Regeln die zur Laufzeit neu erzeugt werden, nur
auf diejenigen Elemente der Datenbasis reagieren, die nach der Regelerzeugung in die Datenbasis
eingetragen wurden.
Die Kenntnis des RETE-Algorithmus ermöglicht eine effizientere Programmierung mit
Produktionensystemen.
So sollte man versuchen, den Inhalt der einzelnen Alphaspeicher zu minimieren. Dies kann dadurch
geschehen, daß man die Bedingungen der Regeln so speziell wie möglich formuliert.
Beispiel: Regel, die zu allen Personen in der Datenbasis den Ort des Arbeitsplatzes ausgibt.
(P Ort_des_Arbeitsplatzes
(Steuerelement
^Kontext
Anfrage
^Status
aktiv)
(Person
^Name
<Name>
^beschäftigt_bei <Arbeitgeber>)
(Firma
^Name
<Arbeitgeber>
^Ort
<gesuchter_0rt>)
--> (WRITE <Name> |arbeitet in| <gesuchter_Ort>)
)
97
Der RETE-Algorithmus in OPS5
Wenn wir zusätzlich wissen, daß Personen unter 16 und über 65 sowie Schüler und
Studenten keinen Arbeitgeber haben, so können wir dadurch den Alphaspeicher kleiner
halten.
(P Ort_des_Arbeitsplatzes
(Steuerelement
^Kontext
Anfrage
^Status
aktiv)
(Person
^Name
<Name>
^Alter
{ >= 16 <= 65 }
^Beruf
{ <> Schüler <> Student }
^beschäftigt_bei <Arbeitgeber>)
(Firma
^Name
<Arbeitgeber>
^Ort
<gesuchter_Ort>)
--> (WRITE <Name> |arbeitet in| <gesuchter_Ort>)
)
98
Der RETE-Algorithmus in OPS5
Der Inhalt des Betaspeichers läßt sich
verkleinern, indem der davorliegende
Zweierknoten nur eine Teilmenge des von
ihm gebildeten Kreuzproduktes weitergibt.
A
B
C
D
Beispiel:
(Bedingung_A
(Bedingung_B
(Bedingung_C
(Bedingung_D
<var_1>)
<var_2>)
<var_3>)
<var_1> <var_2> <var_3>)
Die ersten drei Bedingungen sind
voneinander unabhängig, während zwischen
der vierten und den drei ersten eine
Abhängigkeit besteht.
Im Beispiel nehmen wir an, daß es zu jeder
der vier Bedingungen 10 passende Elemente
der Datenbasis gibt. Die in der vierten
Bedingung formulierte Abhängigkeit soll zu 10
verschiedenen Instantiierungen führen.
Hier muß im Knoten Z3 das aus 10.000
Elementen bestehende Kreuzprodukt
untersucht werden, wobei nur 10
Instantiierungen übrig bleiben.
Z1
10 Token
10
Tupel
Z2
10 Token
100
Tupel
Z3
10 Token
1000
Tupel
10
Inst.
99
Der RETE-Algorithmus in OPS5
Durch eine Umstellung der
Einzelbedingungen, bei der die
Einschränkungen möglichst früh ausgewertet
werden, kann der Aufwand in den
Zweierknoten erheblich reduziert werden.
(Bedingung_D
(Bedingung_A
(Bedingung_B
(Bedingung_C
D
A
B
C
<var_1> <var_2> <var_3>)
<var_1>)
<var_2>)
<var_3>)
Z1’
10 Token
10
Tupel
Z2’
10 Token
10
Tupel
Z3’
10 Token
10
Tupel
10
Inst.
100
Beispiel einer OPS5-Produktion im Fertigungsplanungssystem FERPLAN
(p w18
(goal
^lauf
^status
^type
^object
(Zähler
^lauf
^value1
^value2
^value3
(Werkzeug
^lauf
^type
^pnr
(Werkzeug
^lauf
^type
^pnr
^schugi
^empty
Schutzgitter
<u>
active
legen
Werkstück)
<u>
<n>
<m>
<l>)
<u>
<p>
<l>)
<u>
<s>
<n>
ja
ja)
^state open)
(write
|Lege das
(remove 1)
(modify 4
^empty
(make goal ^lauf
^status
^type
^object
Werkstück in | <s>)
-->
nein)
<u>
active
schließen
Schutzgitter)
Wenn ein aktives Ziel
existiert, ein Werkstück
in ein Werkzeug ‘s’ zu legen
‘Zähler’ so besetzt ist, daß
ein Werkzeug mit Namen ‘p’
und Positionsnummer ‘l’ existiert,
ein nachfolgendes Werkzeug
mit Namen ‘s’ und
Positionsnummer ‘n’, zu dessen
Bedienung man ein Schutzgitter
benötigt,
dieses geöffnet ist,
dann
lösche das erreichte Ziel,
ändere Wert des Attributs
und erzeuge ein Ziel,
das die Schließung des
Schutzgitters veranlaßt
)
101
Erweiterung der Regelmenge durch Regeln
Zur Laufzeit können in OPS neue Regeln mit der Aktion BUILD generiert werden, z.B.
um die Wissensbasis zu erweitern oder die Laufzeiteffizienz zu erhöhen.
Als Parameter werden ein eindeutiger Regelname, der Bedingungsteil, das Atom ‘-->’
und der Aktionsteil der neuen Regel an BUILD übergeben.
Beispiel:
(P Regelbauer
(Endwert
^Wert
<x>)
--> (BUILD
\\ (GENATOM)
(Ergebnis ^Wert \\ <x> )
-->
(WRITE |Endwert erreicht| )
(HALT) )
Falls die Datenbasis das Element (Endwert ^Wert 1986) enthält, wird folgende neue
Regel erzeugt:
(P G:372
(Ergebnis ^Wert 1986 )
-->
(WRITE |Endwert erreicht| )
(HALT) )
102
Literatur zu Produktionensystemen
Brownston, L., Farrell, R., Kant, E., Martin, N.,:
Programming Expert Systems in OPS5. An Introduction to Rule-Based Programming.
Reading: Addison-Wesley 1985.
Davis, R., King, J.:
An Overview of Production Systems. In: Elcock, E.W., Michie, D. (eds): Machine
Intelligence. New York: Wiley 1976, 300-331.
Davis, R.:
Meta-Rules: Reasoning about Control. In: Artificial Intelligence, 15, 1980, 179-222.
Forgy, C.L.:
RETE: A Fast Algorithm for the Many Pattern / Many Object Pattern Match Problem.
In: Artificial Intelligence, 19, 1982, 17-37.
Krickhahn, R., Radig, B.:
Die Wissensrepräsentationssprache OPS5. Sprachbeschreibung und Einführung in
die regelorientierte Programmierung. Braunschweig: Vieweg 1987.
McDermott, J., Forgy, C.L.:
Production System Conflict Resolution Strategies. In: Waterman, D.A., Hayes-Roth,
F. (eds): Pattern-Directed Inference Systems. New York: Academic 1978.
103
Motivation
Oft möchte man allgemeine Eigenschaften bei Oberbegriffen angeben, ohne daß die
Eigenschaften universell gelten
= Überschreiben von Eigenschaften
Animal
gray
Elephant
African
Elephant
Clyde ist nicht grau!
Fish
Royal
Elephant
non-gray
Clyde
Eine logische Interpretation des Netzes ist jetzt nicht mehr möglich, aber intuitiv ist es
kein Problem, solange die Verarbeitungshierarchie ein Baum ist (positive und negative
Eigenschaften nicht mitgerechnet).
104
Probleme
Animal
Elephant
gray
African
Elephant
Fish
Royal
Elephant
non-gray
Royal African
Elephant
Clyde
Clyde könnte grau oder nicht grau sein! Welche Schlussfolgerung ist „richtig“?
105
Bipolare Vererbungsnetze
Azyklischer, gerichteter Graph. Knoten sind Begriffe (z.B. Elephant), Eigenschaften
(z.B. gray) oder Individuen (Clyde).
Kanten sind positiv oder negativ (nicht strikt).
x/y positiv: x ist typischerweise y
xKy negativ:x ist typischerweise nicht y
Quadruped
Mammal
Biped
Elephant
Human
Clyde
John
106
NETL: Kürzeste Pfade
Das NETL-System [Fahlman 1979] löst das Inferenzproblem durch
Markerpropagierung (der schnellste Marker gewinnt).
Quadruped
Mammal
Biped
Elephant
Human
Clyde
John
John ererbt Biped und lQuadruped, d.h. wir folgern John/Biped und
JohnKQuadruped
107
Redundante Pfade
Quadruped
Mammal
Biped
Elephant
Human
Clyde
John
Jetzt ist lQuadruped und Quadruped in gleich vielen Schritten erreichbar.
108
Vererbungsstrategien und multiple Extensionen
Vererbung über kürzeste Pfade macht intuitiv keinen Sinn
Auch Vererbung bzgl. anderer prozeduraler Mechanismen (z.B.
Tiefensuche, links zuerst) ist nicht intuitiv.
Konstruktion von Extensionen = Mengen von „zulässigen“ Pfaden
(u.U. mehrere Extensionen)
= Wenn z.B. der Pfad
John/./Quadruped
in einer Extension ist, kann nicht auch
John/.KQuadruped
in dieser Extension sein (und umgekehrt)
109
Definitionen
Vererbungsnetz.
Ein Vererbungsnetz besteht aus einer Menge von Knoten N und einer Menge von
Kanten G 4 N ! {0,1} ! N
wobei die 0/1-Werte Polarität heißen (0 = negativ = K, 1 = positiv = /).
Pfad.
Ein Pfad ist eine Sequenz von Kanten von x0 nach x1 nach . xn-1 nach xn, wobei
die ersten n-1 Kanten positiv sind. Die Polarität eines Pfades ist die Polarität der
letzten Kante.
Schreibweise sZx0/./xi/./xn (oder .Kxn)
Folgerung.
Ein Pfad sZx0/./xi/./xn (oder .Kxn) unterstützt die Folgerung
x0/xn (oder x0Kxn).
Extension.
Eine Extension ist dann eine Menge von Pfaden, die bestimmte Bedingungen
erfüllt.
Folgerungsmenge.
Die Folgerungsmenge ist die Menge der von einer Extension unterstützten
Folgerungen.
110
Widerspruch
Sei F eine beliebige (endliche) Menge von Pfaden.
Widerspruch.
Ein Pfad s widerspricht einer Menge von Pfaden F , falls F einen Pfad mit
denselben Start- und Endpunkten aber entgegengesetzter Polarität enthält.
Pacifist(P)
Quaker(Q)
Republican(R)
Nixon(N)
Sei FZ{N/Q/P}. Dann widerspricht sZN/RKP der Menge F.
111
Spezifität
Manchmal kann man einen Widerspruch nicht auflösen (= mehrere Extensionen)
Manchmal kann man aber Spezifitätsinformation benutzen, um einen Widerspruch
aufzulösen.
gray (g)
Elephant (E)
Royal Elephant (RE)
Clyde (C)
Clyde ist nicht grau, da Royal Elephant die spezifischere Information hat:
C/REKg unterdrückt C/RE/E/g.
112
Spezifität: Redundante Pfade
gray (g)
Elephant (E)
Royal Elephant (RE)
Clyde (C)
Die Kante C/E ist neu, aber redundant (wir wissen sowieso, dass C/RE/E).
Sollte der Pfad C/E/g unterdrückt werden?
Ja, da C/E redundant ist.
113
Alternativen:
„A Clash of Intuitions“
[Touretzky et al, IJCAI-87]
Pfadunterdrückung.
Es sind andere Möglichkeiten der Unterdrückung denkbar:
auf-Pfad (on-path), nicht-auf-Pfad (off-path)
Vererbung.
Alternative Formen der Konkatenierung:
abwärts/gekoppelt (downward/coupled) vs.
aufwärts/entkoppelt (upward/decoupled)
Extensionen.
Statt mehrerer Extensionen nur eine, die nur „unwidersprochene“ Pfade
enthält: leichtgläubig (credulous) vs. skeptisch (skeptical)
114
Pfadunterdrückung
Pfadunterdrückung (preemption).
Ein Pfad sZx0/./xi/./xn(.Kxn), mit 0!i!n, wird in F unterdrückt,
falls es einen Pfad g von x0 bis xi in F gibt, der bis xi-1 identisch mit s ist und
einen Teilpfad y0/./ym mit xi-1Zy0 und xiZym enthält, und es eine Kante
yjKxn (yj/xn) in F gibt.
Beispiel: (Unterdrückung eines positiven Pfades)
xn
xn
xn-1
xn-1
xi
oder
xi Zym
yj
xi-1
xi-1 Zy0Zyj
x0
x0
115
Beispiel
gray (g)
Elephant (E)
Royal Elephant (RE)
Clyde (C)
Annahme FZG g {C/RE/E}
sZC/E/g wird von F unterdrückt, da
1. C/RE/E 2F
2. REKg
2F
116
Pfadunterdrückung: Alternative Definition
Nicht-auf-Pfad Unterdrückung (off-path preemption).
Ein Pfad sZx0/./xn-1/xn (xn-1Kxn) wird in F unterdrückt, falls es einen Pfad
gZx0/. /y/xn-1 gibt und yKxn (y/xn) eine Kante in F ist.
Beispiel:
xn
xn-1
y
x0
117
Pfadunterdrückung: off-path
Beispiel:
g
E
RE
AE
C
Gilt CKg in allen Extensionen?
Nein: C/AE/E/g ist nicht unterdrückt.
Aber: Die Information, daß AE’s g sind, ist nicht explizit gegeben. Stattdessen wird sie
durch einen Knoten E ererbt, der auch auf dem Pfad C/RE/E/g liegt, welcher
allerdings durch die spezifischere Information bei RE unterdrückt werden würde.
Deshalb: Sollte auch in diesem Fall die spezifischere Information bei RE Präzedenz
haben.
118
Konkatenierung
Konkatenierung.
Ein Pfad s ist eine Konkatenierung von Pfaden in F gdw. g1, g2 2 F und g1 alle
Kanten von s bis auf die erste und g2 alle Kanten von s bis auf die letzte enthält.
xn
xn
xn-1
xn-1
xn-1
xi-1
xi-1
xi-1
x0
x0
119
Konkatenierung: Alternative Definition
Konkatenierung (aufwärts/entkoppelt).
Ein Pfad s ist eine Konkatenierung von Pfaden in F gdw. g 2 F und g alle bis auf
die letzte Kante von s enthält und die letzte Kante von s in F ist.
xn-1
x0
xn
xn
xn-1
xn-1
x0
120
Vererbbarkeit und Extension
Vererbbarkeit.
Ein Pfad s ist in F, gdw.
•
s eine Konkatenierung von Pfaden in F ist
•
s nicht F widerspricht
•
s nicht in F unterdrückt ist
Extension (credulous grounded extension).
F ist eine Extension von G, gdw.
•
•
G4F
für alle Pfade s, s 2 F – G gdw. s ist vererbbar in F.
121
Beispiel: Extension
Pacifist (P)
Quaker (Q)
Republican (R)
Nixon (N)
1.
2.
G g {N/RKP}
G g {N/Q/P}
Zwei Extensionen, eine mit NKP, eine mit N/P.
122
Vererbung
employed (e)
adult (A)
student (S)
adult student (AS)
Jill (J)
Nach der angegebenen Definition gilt in jeder Extension, in der J/e (JKe) gilt,
auch AS/e (ASKe). D.h. ein Wert für eine Unterklasse gilt auch in der Oberklasse
(in ambigen Netzen).
= Eigenschaften werden von oben nach unten vererbt.
123
Entkoppelte Vererbung: Beispiel
employed (e)
adult (A)
student (S)
adult student (AS)
Jill (J)
Sei FZ{J/AS/A, AS/SKe, A/e}
Bei entkoppelter Vererbung können wir J/AS/A/e hinzunehmen bei gekoppelter Vererbung nicht.
124
Beispiel: Extension
gray (g)
Elephant (E)
Royal Elephant (RE)
Clyde(C)
Konstruktion:
1. G
2. g {C/RE/E}
3. g {RE/E/g} ? geht nicht: Widerspruch
4. g {C/E/g} ?
geht nicht: Unterdrückung
5. g {C/REKg}
6. Fertig.
Achtung: Mögliche Sackgasse: 1, 4, 3W, 5W, 2: nun ist 4 unterdrückt!
125
Beispiel: Extension (mögliche Sackgasse)
gray (g)
Elephant (E)
Royal Elephant (RE)
Clyde(C)
Konstruktion:
1. G
2. g {C/E/g}
3. g {RE/E/g} ? geht nicht: Widerspruch
4. g {C/REKg} ? geht nicht: Widerspruch
5. g {C/RE/E}
6. {C/E/g}
wird unterdrückt / Sackgasse
126
Multiple vs. eine Extension
Netze, die Ambiguitäten enthalten, führen zu mehreren Extensionen. Statt dessen
könnte man eine einzige Extension aufbauen, die nur Pfade enthält, denen nicht
widersprochen werden kann.
employed (e)
adult (A)
student (S)
adult student (AS)
Jill (J)
F = G W {J/AS/S, J/AS/A}
D.h. wir folgern nichts über e.
127
Skeptische Extension
Grad eines Pfades.
Der Grad eines Pfades von x nach y ist die Länge des längsten Pfades von
x und y (wobei die Polarität der Kanten ignoriert wird).
Skeptische Extension (skeptical grounded extension).
∞
F ist eine skeptische Extension von G gdw. F = U fi, wobei fi wie folgt
i =1
definiert ist:
(a) f1 = G
(b) fi+1 enthält alle Pfade aus fi und jeden Pfad s des Grades i+1
mit den folgenden Eigenschaften:
• s kann aus der Konkatenierung zweier Pfade aus fi gewonnen
werden.
• es gibt keinen Pfad in fi und keinen Pfad, der durch Vererbung
aus fi gewonnen werden könnte, der dieselben Start- und
Endpunkte wie s hat, aber entgegengesetzte Polarität besitzt.
128
Skeptisch vs. ideal skeptisch
Man könnte vermuten, dass skeptische Vererbung genau die Folgerungen unterstützt,
die von allen „leichtgläubigen“ Extensionen unterstützt werden.
Gegenbeispiel:
f
e
d
b
c
a
Die skeptische Extension unterstützt aKf, obwohl sie nicht in allen leichtgläubigen
Extensionen unterstützt wird.
129
Probleme und Algorithmen
Vererbung.
Berechne eine Folgerungsmenge – die Menge der Folgerungen, die von einer
Extension unterstützt werden (im skeptischen Fall eindeutig).
Zielorientierte Vererbung.
Prüfe, ob eine Folgerung in einer Extension liegt (im skeptischen Fall: in der
einzigen Extension).
Ideal-skeptische Vererbung.
Prüfe, ob eine Folgerung in allen Extensionen liegt (im skeptischen Fall, dasselbe
wie oben, im leichtgläubigen Fall: ideal skeptisch).
/ Generiere eine Extension (bzw. alle), berechne Folgerungsmenge(n) (Start- und
Endpunkte + Polarität), ..., fertig!
, Wieviele Folgerungsmengen gibt es? Wie groß können eine Folgerungsmenge und
eine Extension werden?
130
Die FRAME-Konzeption
Frames sind:
• aus Erfahrungen abstrahierte, große Wissenseinheiten zur erwartungsgesteuerten
Erkennung von Objekten oder Ereignisfolgen
• größere Wissenseinheiten als Netzwerkknoten, Produktionen, logische Formeln
• Erwartungsrahmen, die zu konkreten Beschreibungen spezialisiert werden
können
• Eine objektorientierte Wissensrepräsentationssprache
Frames dienen zur:
• Verarbeitung von Wissen in größeren Einheiten
• Erkennung durch partielle Instantiierung von Prototypen
• Fokussierung von Erkennungs- und Inferenzprozessen
• Unterstützung von Analogieschlüssen
131
FRAMES als Datenstrukturen
FRAMES sind
zusammengesetzte Datenstrukturen mit eindeutigen Namen, die aus einer Menge
von innerhalb eines FRAMES eindeutig bezeichneten Attributen (engl. SLOTS)
bestehen. Mit den Attributen sind Deskriptoren oder Attributwerte assoziiert. Mit den
Attributen können auch Verweise auf andere Attribute assoziiert sein.
Typische Eigenschaften von FRAME-Systemen sind:
• FRAME-Vernetzung (z.B. AKO-, SELF-Attribute)
• verschiedene Vererbungsmechanismen in FRAME-Hierarchien
• Standardwertbelegungen (engl. DEFAULT VALUES) als Erwartungswerte
• objektbezogene Prozedurdefinitionen (engl. PROCEDURAL ATTACHMENT):
IF-ADDED, IF-NEEDED
•
•
•
•
partielle Instantiierung von Prototype-FRAMES
mehrfache Sichten (engl. PERSPECTIVES) eines Objekt-FRAMES
Meta-Merkmale zur Klassifikation von Deskriptoren (KRL) oder Attributen (AIMDS)
FRAME-Wechselhinweise bei fehlgeschlagener Instantiierung
132
Zur Entwicklung
der Wissensrepräsentationssprache ‘FRAMES‘
1) Konzeption:
psychologische Grundlagen:
- Gestaltpsychologie (Bartlett 1932, Wertheimer 1938)
als Schemata gespeicherte ‘ideale’ Typen unter den Perzeptionsstimuli als eine Art
Ankerpunkt für die Wahrnehmung
- Prototypentheorie in der kognitiven Psychologie (Rosch 1973-)
FRAMES als Wissensrepräsentationssprache:
Minsky 1975, MIT
Scripts zur Beschreibung stereotyper Erisfolgen:
Schank/Abelson 1977, Yale
2) Realisierung in Softwaresystemen:
KRL (Bobrow/Winograd 1977, Xerox)
FRL (Roberts/Goldstein 1977, MIT)
AIMDS (Sridharan 1978, Rutgers Univ.)
UNITS (Stefik 1980, Stanford Univ.)
OBJTALK (Laubsch 1982, Univ. Stuttgart)
auch in Expertensystem-Shells wie: KEE, ART, BABYLON, KNOWLEDGE CRAFT
Entwurf beeinflußt von: SIMULA, CLU, SMALLTALK
133
FRAME REPRESENTATION LANGUAGE FRL
1) Definition eines FRAMES mit FASSERT
(FASSERT MINSKY
(NAME ($VALUE (|MARVIN MINSKY|)))
(ADDRESS ($VALUE (|545 TECHNOLOGY SQUARE,
ROOM 821, CAMBRIDGE, MA 02139|)))
(PUBLICATIONS ($VALUE (|A FRAMEWORK FOR REPRESENTATION
KNOWLEDGE|)))
(INTERESTS ($VALUE (REPRESENTATION))))
2) Ergänzung des FRAMES mit FPUT
(FPUT ‘MINSKY ‘INTERESTS ‘$VALUE ‘ROBOTICS ‘SOURCE: ‘RBR)
(MINSKY
…
(INTERESTS ($VALUE (REPRESENTATION) (ROBOTICS (SOURCE: RBR))))
…)
3) Zugriff auf einen FRAME mit FGET
(FGET ‘MINSKY ‘INTERESTS ‘$VALUE)
(REPRESENTATION ROBOTICS)
(FGET ‘MINSKY ‘INTERESTS ‘$VALUE ‘ROBOTICS ‘SOURCE:)
(RBR)
134
FRAME REPRESENTATION LANGUAGE FRL
4) Löschen von Teilen eines FRAMES mit FREMOVE
(FREMOVE ‘MINSKY ‘INTERESTS ‘$VALUE ‘ROBOTICS)
5) Vererbung über die AKO-Hierarchie:
(FASSERT MIT-AI
(STREET
($VALUE
(CITY
($VALUE
(STATE
($VALUE
(ZIP
($VALUE
(|545 TECHNOLOGY SQUARE|)))
(|CAMBRIDGE|)))
(|MA|)))
(|02139|))))
(FREMOVE ‘MINSKY ‘ADDRESS)
(FASSERT MINSKY
(AKO
($VALUE (MIT-AI)))
(OFFICE
($VALUE (821))))
(FGET ‘MINSKY ‘CITY ‘$VALUE)
(|CAMBRIDGE|)
135
FRAME REPRESENTATION LANGUAGE FRL
6) Berechnung von Attributwerten
(FASSERT AI-WORLD
…
(ADDRESS ($VALUE (!GET-ADDRESS: FRAME)))
…)
(FGET ‘MINSKY ‘ADDRESS ‘$VALUE)
7) Objektbezogene Prozedurdefinitionen:
(FPUT ‘MIT ‘INTERESTS ‘$IF-ADDED
‘(PUSH :VALUE MASTER-LIST))
(FPUT ‘MIT ‘INTERESTS ‘$IF-REMOVED
‘(POP :VALUE MASTER-LIST))
(FPUT ‘AI-WORLD ‘STREET ‘$IF-NEEDED
‘(ASK-FOR-STREET :FRAME))
136
FRAME REPRESENTATION LANGUAGE FRL
8) Standartwertbelegungen mit der $DEFAULT-FACETTE
(FPUT ‘MIT-AI ‘OFFICE ‘$DEFAULT 817)
(FREMOVE ‘MINSKY ‘OFFICE)
(FGET ‘MINSKY ‘OFFICE ‘$VALUE)
(817)
9) Wertrestriktionen in der $REQUIRE-FACETTE
(FASSERT AI-WORLD
…
(STATE ($REQUIRE ((OR
(MEMBER :VALUE STATE-ABBREVIATIONS)
(MEMBER :VALUE STATES)))))
…)
137
FRAME REPRESENTATION LANGUAGE FRL
10) Suchprozesse in einer FRAME-Wissensbasis
(FQUERY ‘?FRAME
(CITY
($VALUE (|CAMBRIDGE|)))
(INTERESTS ($VALUE ( ?INTEREST ))
($REQUIRE ((AKO? :VALUE
‘NATURAL-LANGUAGE)))))
11) Zusammenfassung der FRAME-Syntax von FRL
(FRAME1
(SLOT1 (FACET1 (DATUM1 (LABEL1 MESSAGE1 MESSAGE2
… MESSAGE_N1)
… COMMENT_N2)
(DATUM2 (LABEL1 MESSAGE1 …))
… DATUM_N3)
(FACET2 (DATUM1 (LABEL1 MESSAGE1 MESSAGE2 …)))
… FACET_N4))
(SLOT2 (FACET1 (DATUM1 (LABEL1 MESSAGE1 …)…)…)…)
… SLOT_N5)
138
Leistungsfähige Deduktionssysteme
(nach 20 Jahren Grundlagenforschung)
• Aura (Automatic Reasoning Assistant, Wos et al., Argonne Nat. Lab.)
Haupterfolge:
• Beweis eines offenen Theorems des Algebraikers Kaplansky aus dem Bereich der endlichen
Halbgruppen (2 Min. Rechenzeit) - angenommen in mathematischer Fachzeitschrift
• Beweis eines offenen Problems aus dem Äquivalenzen-Kalkül angenommen in Fachzeitschrift für
Logik
• BMTP (Boyer-Moore Theorem Proofer, Boyer/Moore, SRI)
Haupterfolg:
• neuer Beweis für Unentscheidbarkeit des Halteproblems
• MKRP (Markgraf Karl Refutation Procedure, Siekmann/Deussen et al., Univ. Karlsruhe)
Ziel: Alle Beweise des Buches ‘Halbgruppen und Automaten’ von Deussen automatisch erstellen.
Arbeitet nach Connection-Graph-Verfahren (Kowalski)
Aufgaben von Deduktionssystemen:
• Beweise und Gegenbeispiele finden
• Modelle finden
• Hypothesentest
Vielseitige Anwendungsmöglichkeiten:
• Lösen offener mathematischer Probleme
• Programmverifikation und -Synthese (LOPS, BIBEL, TU München)
• VLSI-Entwurf
• deduktive Datenbanksysteme
• Inferenzkomponente in natürlich-sprachlichen Systemen, Expertensystemen
139
Aussagenkalkül
Sätze der Sprache heißen Aussagen, aufgebaut aus
• Aussagenvariablen {P, Q, R, S, T, ...}
• Verknüpfungsoperationen (Junktoren) {l, o, n, ...}
• Klammern {(,)}
z.B. “Wenn der Wind weht und die Sonne nicht scheint, ist es kalt.”
P - der Wind weht
Q - die Sonne scheint
R - es ist kalt
(P o lQ) / R
äquivalente Schreibweisen: l(P o lQ) n R
oder
lP n Q n R
Werden Wahrheitswerte {T, F} für Aussagenvariablen substituiert, so kann man nach den logischen
Verknüpfungsregeln einen Wahrheitswert für die Aussage bestimmen.
P
F
F
F
F
T
T
T
T
Q
F
F
T
T
F
F
T
T
R
F
T
F
T
F
T
F
T
lP n Q n R
T
T
T
T
F
T
T
T
Ist eine Aussage immer wahr, heißt sie Tautologie.
140
Aussagenkalkül
Typische Anwendung des Aussagenkalküls:
• Gegeben Prämissen, d.h. Aussagen, deren Wahrheit zugesichert wird.
• Gegeben Theorem, d.h. Aussage, deren Wahrheit behauptet wird.
• Gesucht
Beweis, d.h. Demonstration, dass Theorem aus Prämissen folgt.
Formulierung im Aussagenkalkül:
Ist
(Prämisse1 o Prämisse2 o .) / Theorem
eine Tautologie?
Beispiel:
Prämissen:
Theorem:
1)
2)
3)
4)
‘Wenn der Wind weht und die Sonne nicht scheint, ist es kalt.’
‘Wenn es kalt ist, muß geheizt werden.’
‘Der Wind weht.’
‘Die Sonne scheint nicht.’
‘Es muß geheizt werden.’
P = Der Wind weht.
Q = Die Sonne scheint.
R = Es ist kalt.
S = Es muß geheizt werden.
Prämisse1 = lP n Q n R
Prämisse2 = lR n S
Prämisse3 = lP
Prämisse4 = lQ
Theorem = S
Ist A = ((lP n Q n R) o (lR n S) o P o (lQ) / S) eine Tautologie?
Äquivalent: A
= l(lP n Q n R) n l(lR n S) n lP n l(lQ) n S
= (P o lQ o lR) n (R o lS) n lP n Q n S
141
1. Lösungsmethode: Wahrheitswerttabelle
Prüfe für alle Belegungen der Aussagevariablen, ob der Satz
(Prämisse1 o Prämisse2 o .) / Theorem wahr ist.
(Beweis durch erschöpfende Fallunterscheidung)
Beispiel (s.o.)
P
FFFF
FFFF
TTTT
TTTT
Q
FFFF
TTTT
FFFF
TTTT
R
FFTT
FFTT
FFTT
FFTT
S
FTFT
FTFT
FTFT
FTFT
A
TTTT
TTTT
TTTT
TTTT
/ ‘Es muss geheizt werden.’
• Nachteil: Bei Sätzen mit n Aussagevariablen sind 2n Evaluierungen erforderlich.
• Vorteil: simpler Algorithmus
142
2. Lösungsmethode: Wangs Algorithmus
(Wang 1960)
Schreibe Prämissen und Theorem wie folgt: Prämisse1, Prämisse2, . / Theorem
Falls einer der durch Kommata getrennten Teilausdrücke links oder rechts negiert ist,
überführe ihn unnegiert zur anderen Seite.
Falls der Hauptverknüpfungsoperator einer Aussage zur linken ‘o’ ist oder zur rechten ‘n’ ist,
ersetze ihn durch Komma.
Falls der Hauptverknüpfungsoperator einer Aussage zur linken ‘n’ ist oder zur rechten ‘o’ ist,
erzeuge daraus 2 Zeilen, jeweils nur mit einem der verknüpften Teilausdrücke.
Alle Zeilen müssen bewiesen werden.
Falls links und rechts identische Aussagen auftreten, ist die Zeile bewiesen.
Falls eine Zeile keine Verknüpfungsoperatoren mehr enthält, und keine Aussagenvariablen sowohl links
als auch rechts auftritt, kann die Zeile nicht bewiesen werden.
Belegt man alle Variablen links mit T und rechts mit F, so ist dies ein Gegenbeispiel für das Theorem.
Beispiele:
zu
:
P n Q, l(R o S), lQ, P n R / S, lP
zu
: P o Q, R o (lP n S) / lQ n lR
P, Q, R, lP n S / lQ, lR
P n Q, P n R, P / S, R o S, Q
zu
:
R, lP n S / lQ, lR o S
R, lP / lQ, lR o S
R, S / lQ, lR o S
143
2. Lösungsmethode: Wangs Algorithmus
(Wang 1960)
Merke:
• eine Zeile L1, L2, L3 / R1, R2, R3 bedeutet logisch
(L1 o L2 o L3) / (R1 n R2 n R3) oder lL1 n lL2 n lL3 n R1 n R2 n R3
• Tautologie 5 di, j: Li = Rj
• Bei m Verknüpfungsoperatoren in Prämissen und Theorem können bis zu 2m Zeilen entstehen.
Beispiel:
(l(P o lQ) n R), (lR n S), P, lQ / S
(l(P o lQ) n R), (lR n S), P / S, Q
l(P o lQ), (lR n S), P / S, Q
R, (lR n S), P / S, Q
(lR n S), P / S, Q, (P o lQ)
R, lR, P / S, Q
R, S, P / S, Q
bewiesen
lR, P / S, Q, (P o lQ)
S, P / S, Q, (P o lQ)
bewiesen
lR, P / S, Q, P
R, P / S, Q, R
bewiesen
lR, P / S, Q, lQ
bewiesen
lR, P, Q / S, Q
bewiesen
Alle Zeilen bewiesen / Theorem folgt aus den Prämissen. 144
3. Lösungsmethode: Resolution im Aussagenkalkül
(Robinson 1964)
Spezielle Schlussregel:
(P n Q) o (lP n R) / Q n R
Vefahrensidee:
Nimm an, das Theorem wäre falsch. Zeige, dass Prämissen und negiertes Theorem zu
einem Widerspruch führen, d.h. nicht gemeinsam wahr sein können.
Prämisse1 o Prämisse2 o . o Negiertes Theorem / F
Bringe den Ausdruck
Prämisse1 o Prämisse2 o . o Negiertes Theorem
in die konjunktive Normalform. Die disjunktiven Teilausdrücke heißen Klauseln.
Wähle zwei Klauseln, in denen je die gleiche Aussagenvariable auftritt, in einer jedoch
negiert.
Vereinige alle anderen Aussagenvariablen dieser Klauseln zu einer neuen Klausel und füge
sie den anderen bei.
Das Theorem ist bewiesen, sobald eine leere Klausel abgeleitet werden kann.
145
3. Lösungsmethode: Resolution im Aussagenkalkül
(Robinson 1964)
Beispiel:
Finde Widerspruch in
Negiertes Theorem
(lP n Q n R) o (lR n S) o P o lQ o lS
lP n Q n S
QnS
S
NIL
Leere Klausel
Eigenschaften des Verfahrens:
• Vollständig, d.h. findet Beweis für jedes Theorem, das aus den Prämissen folgt.
• Entscheidbar, d.h. man erfährt in jedem Fall, ob das Theorem beweisbar ist. (Es gibt nur
endlich viele verschiedene Klauseln, die erzeugt werden können und damit endlich viele
Resolutionsschritte.)
• Die Zahl der Klauseln kann sehr groß werden, Buchführung erforderlich.
146
4. Lösungsmethode: die Konnektionsmethode (Bibel 1970)
{P, lP} nennt man eine Konnektion
Problem: (lP n Q n R) o (lR n S) o P o lQ / S
Disjunktive Normalform:
(P o lQ o lR) n (R o lS) n lP n Q n S
Mengennotation:
{{P, lQ, lR}, {R, lS}, {lP}, {Q}, {S}}
Matrixnotation:
P
R
lQ
lP Q
S
lS
lR
Einen Pfad durch eine Matrix erhält man bei ihrer horizontalen Traversierung, indem
man aus jeder ihrer Spalten genau ein Literal auswählt und sie zu einer Menge
zusammenfaßt.
147
4. Lösungsmethode: die Konnektionsmethode (Bibel 1970)
Satz: Eine Matrix repräsentiert eine gültige Formel genau dann, wenn jeder ihrer
Pfade eine Konnektion enthält.
Konnektionsableitung:
P
R
lQ
lP Q
S
lS
lR
Pfade:
{P, R, lP, Q, S}, {P, lS, lP, Q, S}
{lQ, R, lP, Q, S}, {lQ, lS, lP, Q, S}
{lR, R, lP, Q, S}, {lR, lS, lP, Q, S}
Alle Pfade enthalten Konnektionen / Theorem bewiesen
148
Prädikatenkalkül 1. Stufe
Aussagenkalkül ist beschränkt tauglich:
Aussagen sind nicht weiter in Nicht-Aussagen zerlegbar,
z.B. Otto schläft
‘Subjekt‘
‘Prädikat‘
All- und Existenzaussagen sind nicht möglich,
z.B. es gibt Menschen, die alle Tiere hassen
Formale Sprache:
Besteht aus
Konstanten {OTTO, A1, 13, GELB, ...}
Variablen {x, y, z1, ...}
Funktionen {f, g, h, Vater, PLUS, ...}
Prädikatensymbolen {P, Q, R1, GROß, ...}
Verknüpfungsoperatoren {o, n, l, /}
Quantoren {d, c}
Klammern, Kommata
<Term> := <Konstante> | <Variable> |
<Funktion> (<Term> {, <Term>}*)
z.B. f(x), OTTO, g(OTTO), h(x, y), z)
<Atomare Formel> := <Prädikat> | <Prädikat> (<Term> {, <Term>}*)
z.B. P(f(x)), GROß(OTTO), KLEINER(x, 7)
149
Prädikatenkalkül 1. Stufe
<Literal> := <atomare Formel> | l<atomare Formel>
z.B.lQ(x), P(x, y), lGUT
<Quantor> := (d <Variable>) | (c <Variable>)
z.B.(c x), (d z)
<quantorfreie Formel> := <Prädikat> |
(l<qf Formel>) |
(<qf Formel> o <qf Formel>) |
(<qf Formel> n <qf Formel>) |
(<qf Formel> / <qf Formel>)
z.B.lP(g (x, y), Otto) o GROß(z)
Q(z) o ((P(x, z) n R) n (R1 / R2))
<Formel> := {<Quantoren>}* <quantorenfreie Formel>
z.B.(d x) (∃ y) (lGRÖßER(x, y) o lKLEINER(x, y))
(c z) (ALT(vater(z)) / ALT(mutter(z))
Zusätze: Alle Quantoren-Variablen einer Formel müssen verschieden sein.
Nichtquantifizierte Variablen heißen „frei“, sonst „gebunden“,
Formeln ohne freie Variablen heißen „Sätze“.
Im folgenden werden vorwiegend Sätze interessieren.
150
Interpretation
bisher formale Sprache, keine Semantik
Bedeutungszuweisung (= Interpretation) durch Abbildung von
- Konstanten
- Variablen
- Funktionen
- Prädikaten
in eine Diskurswelt (Domäne).
z.B.
A
f
P
3
UNGERADE 4
plus1
GERADE
minus1
Domäne
5
Für die gezeigte Interpretation ist P(f(A)) wahr!
Variablen können alle Werte einer Diskurswelt annehmen
/ häufig unendlich viele Interpretationen möglich!
Eine Formel heißt gültig, wenn sie für alle Interpretationen wahr ist.
Es gibt kein allgemeingültiges Verfahren zum Feststellen der Gültigkeit einer
Formel: der Prädikatenkalkül ist unentscheidbar.
Jedoch: es gibt ein Verfahren, welches gültige Formeln beweist
(und bei ungültigen womöglich nicht terminiert)
151
Ableitungsregeln
Ableitungsregeln erzeugen aus Formeln neue Formeln
z.B. Modus Ponens
F1
/ F2
o (F1 / F2)
oder (F1 o (F1 / F2)) / F2
z.B. Spezialisierung
(c x) (F(x)) / F(A)
A Konstante
z.B. Resolution (s. Aussagenkalkül)
(P1 n P2)
/ P2 n P3
(Resolvente)
o (lP1 n P3)
Ableiten einer Formel durch (wiederholtes) Anwenden von Ableitungsregeln heißt
beweisen.
Unifizieren
Substitution von Termen für Variable, um identische Teilausdrücke in 2 Formeln zu
erhalten.
z.B.
P(A)
P(x) / Q(x)
Spezialisierung unifiziert
P(A) / Q(A)
Modus Ponens kann angewendet werden
Q(A)
152
Unifikation
Substitution von Termen für Variable erzeugt eine Substitutionsinstanz eines
Ausdrucks.
Enthält eine Substitutionsinstanz keine Variable, so heißt sie Grundinstanz des
Ausdrucks.
Ist die Substitutionsinstanz durch bloßes Umbenennen einer Variablen erzeugt
worden, so heißt sie alphabetische Variante des Ausdrucks.
Eine Substitution wird repräsentiert als Folge von geordneten Paaren.
s = {t1/v1, t2/v2, ., tn/vn}
Term ti wird für alle Vorkommen von vi substituiert.
z.B. F = P(x, f(y), A)
s = {z/x, B/y} / P(z, f(B), A) = Fs
Notation für Substitutionsinstanz von F mit s
Verknüpfung zweier Substitutionen:
s1s2 = s3 enthält s1 mit Termen modifiziert durch s2, dazu alle Paare von s2
mit Variablen, die nicht unter den Variablen von s1 sind.
z.B. {g(x,y)/z} {A/x, B/y, D/z} = {g(A,B)/z, A/x, B/y}
Die Verknüpfung ist assoziativ: (s1s2)s3 = s1(s2s3)
Es gilt auch: (Fs1)s2 = F(s1s2)
153
Unifikation
Eine Menge von Formeln {F1, F2, . Fn} heißt unifizierbar, wenn es eine
Substitution s gibt, die alle Fi gleich macht, d.h.
F1s = F2s = . = Fns
s heißt dann Unifizierer.
Man ist am allgemeinsten Unifizierer (Abk.: MGU) g interessiert, der keine
‘überflüssigen’ Substitutionen vornimmt.
Ein Unifizierer g für {F1, F2, . Fn} ist genau dann der MGU, wenn es für alle
Unifizierer s für die Menge von Ausdrücken {F1, F2, . Fn} eine Substitution r
gibt, so daß s = gr,
z.B. {P(x,f(y),B), P(x,f(B),B)} wird unifiziert durch
s = {A/s, B/y} oder
g = {B/y}
:: = MGU
Die Menge der Ausdrücke, ab denen zwei Ausdrücke nicht übereinstimmen,
heißt Differenzmenge.
154
Unifikationsalgorithmus
w soll unifiziert werden, gesucht ist der MGU
1) K := 0, wK := w, sK := NIL
2) Wenn wK aus einzelnem Element besteht
dann: STOP; sK ist MGU für w.
sonst: bilde Differenzmengen DK von wK.
3) Wenn es ein vK und tK in DK gibt, so daß vK eine Variable ist, die
nicht in tK auftritt
dann: GOTO 4
sonst: w ist nicht unifizierbar.
4) sK+1 := sK{tK/vK} und wK+1 := wK{tK/vK}
5) K := K + 1; GOTO 2
155
Unifikationsalgorithmus
Beispiel: Unifikation von w = {P(a, x, f(g(y))), P(z, f(z), f(u))}
1)
K := 0, w0 := w, s0 := NIL
2)
D0 := {a, z}
4)
s1 := s0{a/z} = NIL{a/z} = {a/z}
w1 := w0{a/z} = {P(a, x, f(g(y))), P(a, f(a), f(u))}
5)
K := 1
2’) D1 := {x, f(a)}
z ist Variable, a ist Konstante
x ist Variable, f(a) ist Term ohne x
4’) s2 := s1{f(a)/x} = {a/z}{f(a)/x} = {a/z, f(a)/x}
w2 := {P(a, f(a), f(g(y))), P(a, f(a), f(u))}
5’) K := 2
2’’) D2 := {f(g(y)), f(u)} u ist Variable, die nicht in g(y) auftritt
4’’) s3 := s2{g(y)/u} = {a/z, f(a)/x, g(y)/u}
w3 := {P(a, f(a), f(g(y)))}
5’’) K := 3
2’’’) w3 besteht aus einzelnem Element, daher: s3 ist MGU; STOP
156
Unifikationsalgorithmus
Unifikationstheorem:
ist w eine nichtleere endliche Menge von unifizierbaren
Ausdrücken, dann hält der Unifikationsalgorithmus
immer und liefert den MGU.
In der allgemeineren Form der Unifikation werden
Eigenschaften der Funktionen in den Termen gleich
mitberücksichtigt.
So sind die beiden Terme 3 + 5 und x + 3 unifizierbar
mit s = {5/x}, wenn man berücksichtigt, dass die
Addition kommutativ ist.
157
Rahmenprozedur zur Resolution in
Widerlegungssystemen
(1) Klauseln := Basismenge
(2) Falls Klauseln NIL enthalten, ist der Beweis gefunden.
(3) Wähle zwei resolvierbare Klauseln Ki und Kj aus Klauseln
(4) Berechne eine Resolvente Rij aus Ki und Kj.
(5) Füge Rij in Klauseln ein;
GOTO (2)
158
Strategien zur Auswahl resolvierbarer Klauseln
1) Breitensuche
= Klauseln der Ebene i
Ei
= alle Resolventen mit der Eigenschaft:
R(Ei)
- eine der beteiligten Klauseln stammt aus Ei
- die andere stammt aus Ej, j # i
= R(Ei)
Ei + 1
Erzeuge zuerst alle Resolventen der jeweils niedrigeren Ebene.
Vollständiges, aber sehr ineffizientes Verfahren.
2) Stützmengen-Strategie
Stützmenge = {Klauseln aus negiertem Theorem n Nachfolger davon}
Satz: Wenn eine Widerlegung überhaupt möglich ist, so läßt sich ein
Widerlegungsgraph ableiten, wenn an einer Resolution stets
mindestens eine Klausel der Stützmenge beteiligt ist.
Diese Strategie führt zu einer Art Rückwärtsverkettung.
3) Linear-Input Strategie
Forderung: An jeder Resolution ist mindestens ein Element der Basismenge
beteiligt.
Es gibt Klauselmengen, die sich auf diese Weise nicht widerlegen lassen,
obwohl die Widerlegung prinzipiell möglich ist.
159
Beispiel für die Breitensuche bei der Resolution
Basismenge
l(A)
l(A)
ll(z)
ll(z) n
n R(z)
R(z)
Ebene 1
R(A)
R(A)
Ebene 2
L(A)
L(A)
lD(A)
lD(A)
Ebene 3
...
NIL
NIL
lD(y)
lD(y) n
n lL(y)
lL(y)
lR(x)
lR(x) n
n L(x)
L(x)
lR(y)
lR(y) n
n lD(y)
lD(y)
ll(z)
ll(z) n
n L(z)
L(z)
ll(z)
ll(z) n
n lD(z)
lD(z) ll(z)
ll(z) n
n lD(z)
lD(z) lR(A)
lR(A)
lL(A)
lL(A)
ll(A)
ll(A)
...
L(A)
L(A)
D(A)
D(A)
...
160
Beispiel für die Stützmengen-Strategie
Basismenge
Ebene 1
ll(z)
ll(z) n
n R(z)
R(z)
l(A)
l(A) lR(x)
lR(x) n
n L(x)
L(x)
lD(y)
lD(y) n
n lL(y)
lL(y)
D(A)
D(A)
R(A)
R(A)
ll(z)
ll(z) n
n L(z)
L(z)
Ebene 2
Ebene 3
L(A)
L(A)
ll(y)
ll(y) n
n lD(y)
lD(y)
lD(A)
lD(A)
lI(A)
lI(A)
L(A)
L(A)
lD(A)
lD(A)
lD(A)
lD(A)
161
Beispiel für die Linear-Input Strategie
Basismenge
Ebene 1
l(A)
l(A)
ll(z)
ll(z) n
n R(z)
R(z)
lR(x)
lR(x) n
n L(x)
L(x)
R(A)
R(A)
lD(y)
lD(y) n
n lL(y)
lL(y)
D(A)
D(A)
lR(x)
lR(x) n
n lD(y)
lD(y) lL(A)
lL(A)
ll(z)
ll(z) n
n L(z)
L(z)
Ebene 2
Ebene 3
L(A)
L(A)
L(A)
L(A)
ll(y)
ll(y) n
n lD(y)
lD(y)
ll(z)
ll(z) n
n lD(z)
lD(z)
...
ll(A)
ll(A)
lR(A)
lR(A)
...
162
Strategien zur Auswahl resolvierbarer Klauseln
Beispiel für eine nicht durch Linear-Input Strategie widerlegbare Klauselmenge:
Q(u) n P(A),
lQ(w) n P(w),
lQ(x) n lP(x),
Q(y) n lP(y)
4) Vorfahr-Filter Strategie
Forderung: Jede Resolvente muß entweder
• einen direkten Vorgänger aus der Basismenge oder
• einen direkten Vorgänger, der Vorfahre des anderen direkten
Vorgängers der Resolvente ist
haben.
lQ(x) n lP(x)
lP(x)
Q(y) n lP(y)
lQ(w) n P(w)
lQ(w)
Q(u) n P(A)
P(A)
NIL
163
Strategien zur Auswahl resolvierbarer Klauseln
5) Einzelelement-Bevorzugungsstrategie
Verfeinerung der Stützmengen-Strategie: Resolviere zuerst mit Klauseln, die nur
aus einem Literal bestehen. Dabei wird die Resolvente stets kürzer als die
resolvierten Klauseln.
Beispiel
(1) Jeder, der lesen kann, ist gebildet. (c x) (R(x) / L(x))
(2) Delphine sind nicht gebildet.
(c x) (D(x) / lL(x))
(3) Es gibt intelligente Delphine.
(d x) (D(x) o I(x))
/
(4) Es gibt jemanden, der intelligent ist und nicht lesen kann. (d x) (I(x) o lR(x))
Basismenge: lR(x) n L(x)
lD(y) n lL(y)
lD(A), I(A)
lI(z) n R(z)
lI(z) n R(z)
I(A)
lR(x) n L(x)
R(A)
L(A)
lD(y) n lL(y)
lD(A)
D(A)
NIL
164
Möglichkeiten zur Vereinfachung von Klauselmengen
Die Zahl der neu generierten Klauseln kann dadurch beschränkt werden, dass die
Vereinfachungsregeln auf die Klauseln angewandt werden, von denen bekannt ist,
dass sie die Widerlegbarkeit der Klauselmenge nicht beeinflussen.
1) Elimination von Tautologien
Jede Klausel, die ein Literal und seine Negation (d.h. eine Tautologie) enthält, kann
nicht zur Widerlegung beitragen und kann deshalb eliminiert werden.
z.B. P(x) n B(y) n lB(y)
2) Partielle Interpretation
Der Resolutionsmechanismus gilt für alle Interpretationen. Häufig ist in einer
Anwendung eine bestimmte Interpretation beabsichtigt, d.h. Funktionen und
Prädikate entsprechen bestimmten Prozeduren.
Sobald diese in einer Grundinstanz verwendet werden, können sie evaluiert
werden.
z.B. ‘E(2,3)’ wird interpretiert als S-Ausdruck ‘(EQ 2 3)’.
Dabei wird das Prädikatensymbol ‘E’ durch das LISP-Prädikat ‘EQ’ interpretiert und
die Konstanten ‘2’ und ‘3’ als die LISP-Atome ‘2’ und ‘3’.
Die Evaluation durch den LISP-Interpretierer ergibt den Wahrheitswert F. Auf diese
Weise kann eine Klausel, die ‘E(2,3)’ enthält, vereinfacht werden.
165
Möglichkeiten zur Vereinfachung von Klauselmengen
z.B. Vater(OTTO, KARL) läßt sich auswerten, wenn der Stammbaum der Familie
beispielsweise als Assertion (VATER OTTO KARL) ... in einer Wissensquelle des
Systems zur Verfügung steht.
Falls ein Literal in einer Klausel zu T evaluiert, kann die gesamte Klausel eliminiert
werden.
z.B. P(x) n E(2,2) n P(f(g(x)))
Falls ein Literal in einer Klausel zu F evaluiert, kann dieses Literal aus der Klausel
entfernt werden.
z.B. P(x) n Q(A) n E(2,3) wird vereinfacht zu: P(x) n Q(A)
3) Elimination subsumierter Klauseln
Eine Klausel {L} subsumiert eine Klausel {M}, wenn es eine Substitution s gibt
derart, dass
{L}s 4 {M}
Subsumierte Klauseln einer widerlegbaren Klauselmenge können eliminiert werden,
ohne die Widerlegbarkeit zu beeinflussen.
Durch diese Elimination kann häufig die Zahl der notwendigen Resolutionsschritte
deutlich reduziert werden.
z.B. P(x) subsumiert P(y) n Q(z)
Q(y) subsumiert Q(A)
P(x) n Q(A) subsumiert P(f(A)) n Q(A) n R(y)
166
Antwortextraktion aus Resolutionsbeweisen
Bisher: Es können nur Entscheidungsfragen beantwortet werden.
z.B. Frage: Kann ich ein Buch über Affen und Löwen einsehen?
Antwortmöglichkeiten: Ja, Nein
Beantwortung von W-Fragen mit dem Greenschen Antwortprädikat
Faktenwissen: Wolfgang ist der Ehemann von Doris.
Frage: Wer ist der Ehemann von Doris?
Es gibt ein x, das Ehemann von Doris ist.
(1)
(2)
G(W,D)
(d x) G(x,D)
(C1)
(C2)
G(W,D)
lG(x,D)
{W/x}
(C1) + (C2): (C3) NIL
Um die Antwort ‘Wolfgang’ zu erhalten, muß die Variable x verfolgt werden.
167
Automatisches Problemlösen mit dem Resolutionsverfahren
Beispiel:
Das Affe-Banane-Problem: Affe, Banane, Stuhl, in einem Raum; Affe ist zu kurz, um
Banane, die an der Decke hängt, zu erreichen; aber er kann auf den Stuhl klettern.
Frage: Wie kann der Affe die Banane erreichen?
Formalisierung:
P(x,y,z,s) Zustand s, Affe an Ort x, Banane an Ort y, Stuhl an Ort z
R(s)
Zustand, in dem Affe die Banane erreicht
Funktionen:
walk(y,z,s) vom Zustand s geht Affe von y nach z
carry(y,z,s) Stuhl aus Zustand s von y nach z tragen
climb(s)
Affe klettert im Zustand s auf Stuhl
Ausgangssituation:
Affe sei an Ort A, Banane an Ort B, Stuhl an Ort C, Anfangszustand S1
Axiome:
(c x)(c y)(c z)(c s) P(x,y,z,s) / P(z,y,z,walk(x,z,s))
Affe kann immer zu Stuhl gehen
(c x)(c y)(c z)(c s) P(x,y,x,s) / P(y,y,y,carry(x,y,s))
falls Affe am Stuhl steht, kann er Stuhl zur Banane tragen
(c s) P(B,B,B,s) / R(climb(s))
falls Affe mit Stuhl am Bananenplatz, kann er Banane erreichen
Ausgangssituation: P(A,B,C,S1)
Frage: (c s) R(s) / ANS(s)
168
(C1)
(C2)
(C3)
(C4)
(C5)
lP(x,y,z,s) n P(z,y,z,walk(x,z,s))
lP(x,y,x,s) n P(y,y,y,carry(x,y,s))
lP(B,B,B,s) n R(climb(s))
lP(A,B,C,S1)
lR(s) n ANS(s)
(C3) + (C5) Heuristik: gleich Antwortprädikat ins Spiel bringen
(C6)
lP(B,B,B,s) n ANS(climb(s))
{climb(s)/s}
(C6) + (C2) {B/y} {carry(x,B,s)/s}
(C7)
lP(x,B,x,s) n ANS(climb(carry(x,B,s)))
(C7’)
lP(z,B,z,s) n ANS(climb(carry(z,B,s)))
Variablenumbenennung
(C7’) + (C1) {B/y} {walk(x,z,s)/s}
(C8)
lP(x,B,z,s) n ANS(climb(carry(z,B,(walk(x,z,s))))
(C8) + (C4) {A/x, C/z, S1/s}
(C9)
ANS(climb(carry(C,B,(walk(A,C,S1))))
Antwort: Zunächst geht der Affe zum Stuhl.
Dann trägt er den Stuhl zur Banane.
Schließlich klettert er auf den Stuhl.
Vollständigkeit der Resolution bei Antwortextraktion
S1 sei die Menge der Klauseln, welche die Fakten repräsentieren.
Frage: Finde Werte x1, ..., xn, so dass Q(x1, ..., xn) wahr ist.
S2: lQ(x1, ..., xn) n ANS(x1, ..., xn)
Satz:
Sei S = S1 n S2. Die Frage ist beantwortbar genau dann, wenn es eine
Deduktion aus S gibt, welche die Antwortklausel erzeugt.
169
Default Reasoning - Motivation
• Das meiste, was wir über die Welt wissen, ist nur „fast immer“ wahr.
• Wir haben nie vollständiges Wissen über die Welt.
/ Ein Vogel fliegt typischerweise, soweit es nicht gerade ein Pinguin,
Strauß, Kiwi, usw. ist. Mögliche Formalisierung:
cx: Vogel(x) o lPinguin(x) o lStrauß(x) ...
0 Fliegt(x)
/ Probleme:
1) Können wir je „...“ vollständig angeben?
2) Wir können nicht für irgendeinen Vogel schließen, dass er fliegen
kann, wenn wir nicht wissen, dass er kein Pinguin, kein Strauß,
kein Kiwi und kein ... ist.
170
Lösungsansatz
/ Wir würden gern etwas wie „Vögel fliegen typischerweise“ haben.
• Möglichkeit: Zusätzliche (nicht-logische) Inferenzregeln:
Vogel(x) : Fliegt(x)
Fliegt(x)
Intendierte Bedeutung:
Wenn x ein Vogel ist, und die Annahme Fliegt(x) möglich ist ohne zu
Inkonsistenz zu führen, dann nehme Fliegt(x) an.
• Ausnahmen werden dann durch einfache Implikationen dargestellt:
cx: Pinguin(x) 0 lFliegt(x)
cx: Strauß(x) 0 lFliegt(x)
cx: Kiwi(x) 0 lFliegt(x)
171
Eigenschaften des Default Reasoning
• Nicht-Monotonie
:A
Nimm an, es gibt genau ein Default B und sonst ist nichts bekannt. Dann
können wir B erschließen.
Wenn der Fakt lA hinzukommt, kann B nicht mehr erschlossen werden!
• Nicht-Determinismus
Spouse(x, y) ∧ hometown(y ) = z : hometown(x ) = z
hometown(x ) = z
Employer(x , y) ∧ location(y) = z : hometown(x ) = z
hometown(x ) = z
Außerdem:
Spouse(mary, tom), hometown(tom) = toronto,
Employer(mary, univ), location(univ) = vancouver
/ Default-Regeln dienen zur Ergänzung von unvollständigen Theorien.
Dabei können verschiedene Ergänzungen möglich sein: „Multiple
Extensionen“ (leichtgläubige Strategie).
/ Man könnte auch den Schnitt über alle möglichen Extensionen nehmen
(skeptische Strategie).
172
Weitere Beispiele
• Default-Annahmen in Frames und semantischen Netzen.
Beispiel: Der Heimatort einer Person ist defaultmäßig Palo Alto.
[Person UNIT Basic
.
.
.
<hometown {(a city) Palo Alto; DEFAULT}>
.
.
.
]
Person(x) : hometown(x ) = y
hometown(x ) = y
/ Aber beachte, dass wir keine Priorisierung im Sinne von Spezialisierung haben.
• Closed World Assumption. Für jede Basisrelation R in einer DB:
: ¬R( x 1 ,..., x n )
¬R( x 1 ,..., x n )
• Frame Default (als Ersatz für Frame-Axiome). Für jede Relation R mit einem
Situationsargument s und Transitionsfunktion f:
R(x,s) : R(x,f(x,s))
R(x,f(x,s))
/ Aber beachte das „Yale Shooting Problem“.
173
Formaler Rahmen
• PL1 mit “w“ klassische Beweisbarkeit und Cn Konsequenzoperation. Wir
betrachten nur Mengen von abgeschlossenen Formeln.
r
r
r
• Defaultregeln
α( x) : β1( x),..., β m ( x)
r
γ( x)
r
r
r
r
r
x
wobei α ( x ), β1 ( x ),..., β m ( x ), γ ( x ) Formeln mit freien Variablen = x 1,..., x n sind.
r
o α (x ) : Voraussetzung (prerequisite) / soll beweisbar sein
r
r
o β 1 ( x ),..., β m ( x ) : Begründung (justification) / konsistente Annahmen
r
o γ( x) : Konsequenz (consequent)
Eine Defaultregel heißt abgeschlossen, wenn sie keine freien Variablen enthält.
• Defaulttheorie: Ein Paar (D, W), wobei D eine abzählbare Menge von
Defaultregeln ist und W eine abzählbare Menge von PL1-Formeln ist.
• Abgeschlossene Defaulttheorie: Alle Defaultregeln sind abgeschlossen.
/ Im weiteren erstmal nur abgeschlossene Defaulttheorien.
174
Probleme mit der Default Logik:
Fallunterscheidung in der Default Logik
Beispiel:
Ostrich( x) : ¬Fly( x)
Emu( x) : ¬Fly( x)
,
¬Fly( x)
¬Fly( x)
Von (Emu(Tweety) n Ostrich(Tweety)) können wir nicht auf lFly(Tweety) schließen.
Zwei Lösungen:
1) Entweder die Defaultregel zusammenfassen zu einem Default:
Big − Bird( x) : ¬Fly( x)
¬Fly( x)
und zu den Fakten Emu(x) n Ostrich(x) 0 Big-Bird(x) hinzunehmen.
2) Wie eben, Defaults umformulieren:
: Emu( x) ⇒ ¬Fly( x) , : Ostrich( x) ⇒ ¬Fly( x)
Ostrich( x) ⇒ ¬Fly( x)
Emu( x) ⇒ ¬Fly( x)
175
Extensionen von Defaulttheorien
Die Defaultregeln D erweitern die durch W gegebene PL1-Theorie: Extensionen von
(D, W).
Wünschenswerte Eigenschaften einer Extension E von (D, W):
• Enthält die Fakten: W 4 E
• Ist deduktiv abgeschlossen: E = Cn(E)
• Alle anwendbaren Defaults wurden „gefeuert“:
Falls
1)
 α : β1,..., βm 
 2

γ


D,
2) a 2 E,
3) ¬ β1,..., ¬ β m ; E
dann 2 E.
• E enthält nur die Fakten, die nach diesen Bedingungen in E sein müssen.
176
Extensionen - Formal
Sei D = (D, W) eine abgeschlossene Defaulttheorie. Für jede Menge von
abgeschlossenen Formeln S sei G(S) die kleinste Menge, die folgende
Bedingungen erfüllt:
D1: W 4 G(S),
D2: Cn(G(S)) = G(S),
D3: Falls
1)
 α : β1,..., βm 


γ


2 D,
2) a 2 G(S) und
3) ¬ β1,..., ¬ β m ; S,
dann 2 G(S).
Eine Menge von abgeschlossenen Formeln E ist eine Extension von D falls
E = G(E).
177
Beispiele
1) D = : A , : B , : C  , W = {B 0 lA o lC},
B
C
A
E1 = Cn(W W {A, C}), E2 = Cn(W W {B})
:D
:E 
 :C
,
,
 , W = \, E1 = Cn({lD, lF})
2) D = 
 ¬D ¬ E ¬F 
:C
:D 
3) D = 
,
 , W = \,
 ¬D ¬C 
E1 = Cn({lC}), E2 = Cn({lD})
 A : ∃x P ( x ) : A : ¬ A 
4) D = 
,
,
 , W = \,
A
¬A 
 ∃x P ( x )
E1 = Cn({lA}), E2 = Cn({A, dx P(x)})
178
Normale Defaults
α :β
Normale Defaults haben die Form: β
Beachte: Alle unsere Beispiele hatten diese Form! Defaulttheorien, die nur normale
Defaults benutzen, heißen normale Defaulttheorien.
Normale Defaults haben sehr angenehme Eigenschaften.
Theorem: Normale Defaulttheorien haben immer mindestens eine Extension
Beweisskizze: Falls W inkonsistent, trivial. Ansonsten konstruiere:
E0 = W
Ei+1 = Cn(Ei) W Ti
wobei Ti eine maximale Menge ist mit
Ei W Ti ist konsistent und
(1)
α :β
(2)
wenn 2 Ti, dann ex. β 2 D, a 2 Ei.
Zu zeigen:


α
:
β
Ti =  β |
∈ D, α ∈ E i, ¬ β ∉ E 
β


179
Semi-normale Defaults
Neben den normalen Defaults haben die semi-normalen Defaults eine gewisse
Bedeutung: α : β ∧ γ
γ
Wichtig für interagierende Defaults:
Adult( x) : Employed( x) , Dropout( x) : Adult( x) , Dropout( x) : ¬Employed( x)
Employed( x)
Adult( x)
¬Employed( x)
besser:
Adult( x) : Employed( x) ∧ ¬Dropout( x)
Employed( x)
Für sog. „geordnete Defaulttheorien“ gibt es eine Beweistheorie [Etherington 88].
Allerdings ist diese Art der Konfliktauflösung nicht sehr einfach, insbesondere wenn
die Theorien größer werden.
180
Allgemeine Defaulttheorien
Die Beispiele am Anfang enthielten offene Defaults. Bisher haben wir aber nur
abgeschlossene Defaults behandelt.
r
r
α( x) :rβ( x)
Wenn wir einen Default der Form
haben, sollen die Variablen ja
γ( x)
mindestens für alle benennbaren Objekte stehen.
Problem: Implizite Einführung von Objekten: dx: P(x).
Lösung: Skolemisierung aller Formeln in W und D.
Interpretation: Ein offener Default steht für die rekursiv aufzählbare Menge
von geschlossenen Defaults, die durch Einsetzung mit
Grundtermen entstehen. D.h. für jedes Objekt kann ein Default
angewendet werden.
: P( x )
Aber: Man kann keine universell quantifizierte Aussage ableiten. Z.B. P( x )
und P(x) konsistent für jede Substitution von x. Trotzdem gibt es keinen
Defaultbeweis für cx: P(x), falls es nicht schon aus W alleine ableitbar ist.
181
Temporale Projektion im Situationskalkül
Gegeben die Beschreibung einer Situation und einer Folge von Ereignissen:
Welche Eigenschaften gelten, nachdem die Ereignisse stattgefunden haben?
Situationen: Si, s, ... (Intervalle, in denen sich nichts ändert).
Eigenschaften: awake, dead, f, ... (Situationen, in denen die Eigenschaft gilt)
Situationsaussagen: Holds(awake, Si), ...
Ereignisse: wakeup, shoot, e, ...
Resultate von Ereignissen sind wieder Situationen: Result(wakeup, S0), ...
Kausalgesetze: cs: Holds(awake, Result(wakeup, s)), ...
182
Das Frame-Problem
Gegeben:
cs: Holds(awake, Result(wakeup, s))
S1 = Result(wakeup, S0)
S2 = Result(eat-breakfast, S1)
Gilt dann Holds(awake, S2)?
Hinzufügen von Frame-Axiomen. Aber
1) erfordert eine riesige Anzahl von Axiomen (|Eigenschaften| ! |Ereignisse|);
2) müssen diese Frame-Axiome ja auch gar nicht immer zutreffen.
/ Default: Holds(f, s) 0 Holds(f, Result(e, s)).
McCarthy´s Formulierung: Alle „normalen“ Fakten gelten nach „normalen“ Ereignissen:
cf, e, s: Holds(f, s) o lab(f, e, s) 0 Holds(f, Result(e, s))
„Minimierung“ des ab-Prädikats (/ Circumscription).
: ¬ab(f ,e,s )
Gleiches Resultat mit DL: ¬ab(f ,e,s )
183
Heuristische Suchverfahren
Suchprozesse sind ein wichtiger Bestandteil unterschiedlicher Problemlöseverfahren
z.B.
Bestimmung der Konfliktmenge in Produktionssystemen
Suche nach resolvierbaren Klauseln in Deduktionssystemen
Suche nach passendem Objektmodell bei der Objekterkennung
Suche in einem Lexikon nach der Grundform eines flektierten Wortes
Suche nach einem freien Weg für einen Roboter
Erster Schritt zur systematischen Suche: Formalisierung der Problemzustände in einem
Zustandsgraph.
Ein Suchschritt wird als Transformation eines Zustandes mit Hilfe eines Operators
aufgefasst.
Meist liegt ein Zustandsgraph nur implizit vor, d.h. seine Knoten und Kanten werden erst
während des Suchprozesses erzeugt.
Die Generierung von Nachfolgern eines Knotens wird als Expansion des Knotens
bezeichnet.
Wichtige Suchverfahren in der KI sind:
Algorithmus A
Algorithmus A*
Minimax-Verfahren
Alpha-Beta-Verfahren
Bidirektionale Suche
184
Algorithmus Graphsearch
zur systematischen Suche eines Lösungsknoten in einem Zustandsgraphen
1) Liste neu enthält Startknoten S, Liste alt ist leer.
2) Falls neu leer ist, breche ohne Erfolg ab.
3) Wähle Knoten aus neu, nenne ihn K, entferne K aus neu, füge ihn zu alt
hinzu.
4) Falls K Lösungsknoten ist, gib Lösungsweg mit Hilfe Zeigerkette von K
nach S aus, breche ab.
5) Expandiere K, m enthalte alle Nachfolger, die nicht Vorfahren von K sind.
6) Alle Knoten aus m, die weder in neu noch in alt sind, erhalten einen
Zeiger auf K und werden zu neu hinzugefügt.
Entscheide für alle Knoten aus m, die entweder in neu oder in alt sind, ob
ihre Zeiger auf K gerichtet werden sollen.
Entscheide für alle Nachfahren der Knoten in m, die bereits in alt sind, ob
ihre Zeiger umgesetzt werden sollen.
7) Gehe nach 2)
185
Startknoten
Startknoten
1
6
1
2
6
3
neu
alt
4
2
3
5
Suchgraph und Suchbaum
vor Expansion von Knoten 1
4
5
Suchgraph und Suchbaum
nach Expansion von Knoten 1
186
Eigenschaften von Graphsearch
A) Graphsearch entwickelt einen Zustandsbaum durch Vermeiden
von Duplikationen bis ein Lösungsknoten gefunden ist.
B) Die Kanten im Zustandsbaum sind durch Zeiger von jedem Knoten
zu seinem Vorgänger repräsentiert.
C) Die Kanten des Zustandsgraphen können mit unterschiedlichen
Kosten markiert sein. Schritt (6) erlaubt es, Knoten so in den Baum
aufzunehmen, dass sie von S auf dem kostengünstigsten (nicht
notwendigerweise kürzesten) Pfad erreicht werden.
D) In Schritt (3) sind verschiedene Auswahlkriterien möglich.
187
Variationen von Graphsearch (Michie/Ross 1970)
Erzeuge in Schritt (5) jeweils nur einen Nachfolger pro Durchlauf,
setze K erst dann auf alt, wenn alle Nachfolger erzeugt sind.
Auf diese Weise können ggf. Expansionskosten eingespart werden
(z.B. wenn der Lösungsknoten als Nachfolger eines Knotens Y erzeugt
wird, bevor alle Nachfolger von Y generiert sind.)
188
Spezielle Baumsuchmethoden
Graphsearch
Nicht-informierte Methoden
‘blinde Suche‘:
z.B. Breitensuche
Tiefensuche
Informierte Methoden – Heuristiken
Heuristische Suche:
z.B. Bewertungsfunktionen
A*-Algorithmus
Breitensuche
Auswahlkriterium für Schritt (3) in Graphsearch: ‚Wähle Knoten geringster Tiefe.‘
- Breitensuche findet kürzesten Pfad zu einem Zielknoten (falls es einen gibt).
Tiefensuche
Auswahlkriterium für Schritt (3) in Graphsearch: ‚Wähle Knoten größter Tiefe.‘
- Tiefenbeschränkung notwendig (z.B. 8-er Puzzle: maximale Tiefe = 5)
Backtracking
Entspricht Tiefensuche , bei der jeweils ein Nachfolger generiert und nur ein Pfad (vom
aktuellen Knoten zur Wurzel) gespeichert wird.
Eigenschaften Nicht-informierter Methoden:
- einfache Kontrollstruktur
- Expansion vieler Knoten
Verringerung des Aufwandes durch Berücksichtigung zusätzlicher Probleminformation –
Informierte Methoden, Heuristische Suche
189
Suchbaum für 8-er Puzzle bei Tiefensuche
1
2 8 3
1 6 4
7 5
2
2 8 3
1 6 4
7 5
5
8 3
2 6 4
1 7 5
6
8 3
2 6 4
1 7 5
18
2 8 3
1 4
7 6 5
3
2 8 3
6 4
1 7 5
19
2 8 3
1 4
7 6 5
8
2 8 3
6 4
1 7 5
20
8 3
2 6 4
1 7 5
9
2 3
6 8 4
1 7 5
12
2 8 3
6 4
1 7 5
4
7 10
8 6 3
2 3
2 4 6 8 4
1 7 5 1 7 5
11
2 3
6 8 4
1 7 5
13
2 8
6 4 3
1 7 5
Startknoten
15
2 8 3
6 7 4
1 5
14 16
2 8 3 2 8 3
6 4 5 6 7 4
1 7
1 5
17
2 8 3
6 7 4
1 5
2 8 3
1 6 4
7 5
28
2 3
1 8 4
7 6 5
24
2 8 3
7 1 4
6 5
29
8 3
2 1 4
7 6 5
21
8 3
2 1 4
7 6 5
25
2 8 3
7 1 4
6 5
30
1 2 3
8 4
7 6 5
22
8 3
2 1 4
7 6 5
23
8 1 3
2 4
7 6 5
26
2 8 3
7 4
6 1 5
27
2 8 3
7 1 4
6 5
2 3
1 8 4
7 6 5
31
1 2 3
8 4
7 6 5
2 8 3
1 4
7 6 5
2 3
1 8 4
7 6 5
1 2 3
7 8 4
6 5
Zielknoten
190
Suchbaum für 8-er Puzzle bei Breitensuche
1
2 8 3
1 6 4
7 5
2
2 8 3
1 6 4
7 5
20
8 3
2 6 4
1 7 5
8 3
2 6 4
1 7 5
8 6 3
2 4
1 7 5
3
2 8 3
1 4
7 6 5
5
2 8 3
6 4
1 7 5
6
2 8 3
1 4
7 6 5
11
2 8 3
6 4
1 7 5
12
8 3
2 6 4
1 7 5
21
2 3
6 8 4
1 7 5
22
2 8 3
6 4
1 7 5
10
2 3
6 8 4
1 7 5
2 3
6 8 4
1 7 5
2 8
6 4 3
1 7 5
2 8 3
6 4 5
1 7
23
2 8 3
6 7 4
1 5
2 8 3
6 7 4
1 5
2 8 3
6 7 4
1 5
Startknoten
4
2 8 3
1 6 4
7 5
7
2 3
1 8 4
7 6 5
8
2 8 3
1 4
7 6 5
13
2 8 3
7 1 4
6 5
14
8 3
2 1 4
7 6 5
2 3
1 8 4
7 6 5
15
2 3
1 8 4
7 6 5
16
2 8
1 4 3
7 6 5
17
2 8 3
1 4 5
7 6
24
8 3
2 1 4
7 6 5
25
2 8 3
7 1 4
6 + 5
26
1 2 3
8 4
7 6 5
2 3 4
1 8
7 6 5
2 8
1 4 3
7 6 5
2 8 3
1 4 5
7 6
27
1 2 3
8 4
7 6 5
1 2 3
7 8 4
6 5
8 3
2 1 4
7 6 5
8 1 3
2 4
7 6 5
2 8 3
7 4
6 1 5
2 8 3
7 1 4
6 5
Zielknoten
9
2 8 3
1 6
7 5 4
18
2 8 3
1 6
7 5 4
2 8 3
1 6
7 5 4
2 3
1 8 6
7 5 4
19
2 8
1 6 3
7 5 4
2 8 3
1 5 6
7 4
2 8
1 6 3
7 5 4
191
Bewertungsfunktionen zur Steuerung der Knotenauswahl
In Schritt (3) von Graphsearch wird für einen Knoten K geprüft:
„Wahrscheinlichkeit, daß K auf dem Lösungspfad liegt“, „Abstand von Lösung“, „Qualität der
Teillösung“
Ansatz: f(K) reellwertige Funktion, f(K1) ! f(K2) / K1 vor K2 untersuchen
Algorithmus A
S Startknoten, K beliebiger Knoten, Ti Zielknoten, i = 1, 2, 3, ...
f(K) sei Kostenschätzung für günstigsten Pfad von S über K zu einem Zielknoten Ti.
Ki mit geringstem f(Ki)-Wert wird als nächster expandiert.
k(Ki, Kj) seien die tatsächlichen Kosten für günstigsten Pfad zwischen Ki und Kj (undefiniert, falls
kein Pfad existiert).
h*(K) = mini k(K, Ti) Minimalkosten für Weg von K zu einem Zielknoten Ti (i = 1, 2, 3, ...)
g*(K) = k(S,K) Minimalkosten für Weg von S nach K
f*(K) = g*(K) + h*(K) Minimalkosten für Lösungsweg über K
Zerlege f(K) in 2 Bestandteile: f(K) = g(K)
+
h(K)
[
[
schätzt g*(K) schätzt h*(K)
Wahl für g(K): Summe der bisherigen Kantenkosten von S bis K / g(K) P g*(K)
Wahl für h(K): beliebige heuristische Funktion
Graphsearch mit dieser Bewertungsfunktion heißt Algorithmus A.
Sonderfall: g(K) = Tiefe von K, h = 0, Breitensuche ist ein Algorithmus A.
192
Türme von Hanoi
Es gibt 3 Turmgerüste und 64 gelochte Scheiben unterschiedlicher Größe.
Beginn:
Alle Scheiben sind nach Größe geordnet auf dem ersten Turmgerüst.
Ziel:
Turm auf 3. Turmgerüst transferieren.
Randbedingung:
Nur jeweils eine Scheibe darf in einem Schritt bewegt werden.
Keine Scheibe darf zwischenzeitlich auf einer kleineren Scheibe liegen.
Legenden:
Einige Mönche in der Nähe von Hanoi arbeiten an dem Puzzle und wenn es fertig ist,
ist das Weltende gekommen.
Endturmgerüst
h
0
1
f(N) = Tiefe(N) + Endturmgerüstbewertung(N)
2
3
193
Zustandsgraph für den Turm von Hanoi
Start
h=2
f=2
h=2
f=3
h=3
f=4
g = 1:
h=1
f=3
g = 2:
h=3
f=5
h=2
f=4
g = 3:
h=2
f=5
Ziel
h=0
f=3
h=1
f=4
Start
Ziel
194
Bewertungsfunktionen zur Steuerung der Knotenauswahl
Algorithmus A*
Ein Algorithmus A mit der Eigenschaft, dass gilt h(K) # h*(K), findet den optimalen
Lösungsweg. Ein solcher Algorithmus heißt A*.
Da h(K) = 0 # h*(K) folgt: Breitensuche ist ein Algorithmus A*.
Def.: Ein Suchalgorithmus heißt zulässig, wenn er für alle Graphen den optimalen
Lösungsweg findet und damit terminiert, falls ein solcher existiert.
Es gilt: A* ist zulässig.
h = 0 ergibt Zulässigkeit, aber führt zu ineffizienter Breitensuche.
h als größte obere Schranke von h* expandiert am wenigsten Knoten und garantiert
Zulässigkeit.
Oftmals: Zulässigkeit aufgeben, um härtere Probleme durch heuristische Verfahren
lösen zu können.
195
Bewertungsfunktionen zur Steuerung der Knotenauswahl
Die relative Gewichtung von g und h für f kann durch eine positive Zahl w gesteuert
werden: f(K) = g(K) + w h(K).
grosses w: betont die heuristische Komponente
kleines w: führt zu einer Annäherung an eine Breitensuche
oft günstig: w umgekehrt proportional zur Tiefe der untersuchten Knoten variieren:
bei geringer Suchtiefe: hauptsächlich gesteuert durch Heuristik
bei großer Suchtiefe: stärker breitenorientiert, um Ziel nicht zu verfehlen.
Zusammenfassung:
3 wichtige Einflussgrößen für die heuristische Stärke des Algorithmus A:
- Die Pfadkosten
- Die Zahl der expandierten Knoten zum Finden des Lösungsweges
- Der Aufwand zur Berechnung von h.
196
Fokussierung der Suche
durch h(N) = P(N) + 3S(N)
P(N): Summe der Abstände jeder
Kachel von ihrem Zielfeld
S(N): Für alle Kacheln, die nicht in
der Mitte liegen:
Wert := 2, falls Kachel nicht
neben ihrem richtigen
Nachfolger liegt
Wert := 0, sonst
Für Kacheln in der Mitte gilt:
Wert := 1
Bsp:
1 3
8 2 4
7 6 5
P(N) = 2
S(N) = 2 + 1
197
Leistungsmaße
1. Penetranz
P = L/T
L = Länge des Lösungspfades
T = Anzahl der insgesamt expandierten Knoten
‘Keine Lösung‘
‘Buschiger Baum‘
0#P#1
‘Zielstrebig‘
‘Schlanker Baum
2. Effektiver Verzweigungsfaktor
B + B2 + ... + BL = T
B(BL – 1)/(B – 1) = T
Keine explizite Lösung für B
B P 1,
B = 1: Es werden nur Knoten auf dem Lösungspfad expandiert.
Kleines B: Schlanker Baum Großes B: Buschiger Baum
Merksatz: Mehr Wissen bedeutet weniger Suchaufwand.
198
Penetranz P
P zu L für verschiedene Werte von B
P = L/T
T := Gesamtzahl
expandierter Knoten
B := effektiver
Verzweigungsfaktor
Länge des Lösungspfades L
199
B = effektiver Verzweigungsfaktor
B zu T für verschiedene Werte von L
T = Gesamtzahl der expandierten Knoten
Für 8-er Puzzle mit f(N) = g(N) + P(N) + 3 S(N) ergibt sich B = 1.08.
Bei 30-er Schrittlösung werden 120 Knoten expandiert.
200
Aufwandsreduktion durch Berücksichtigung
zusätzlicher Probleminformation
Betriebsmittelaufwand
Gesamtkosten
Aufwand für
Steuerungsstrategie
Expansionskosten
0
0
“Probleminformation”
vollständig
201
Effizienzgewinn durch bidirektionale Breitensuche
Beispiel für nichtexpandierten
Knoten bei direktionaler Suche
Terminierter
unidirektionaler
Suchprozess
Startknoten
Zielknoten
Terminierte
bidirektionale
Suchprozesse
202
Effizienzverlust bei heuristischer bidirektionaler
Suche mit ungünstiger Bewertungsfunktion
Rückwärtssuche
Startknoten
Zielknoten
Vorwärtssuche
203
Das Minimax-Verfahren
Bei Problemen, in denen nichtkooperative Aktoren beteiligt sind (klassisches Beispiel:
Gesellschaftsspiele wie Schach, Go, Tic-Tac-Toe), ist der Suchgraph meist extrem
groß.
z.B.:
Schach, Verzweigungsfaktor: ca. 35,
Züge pro Spieler: ca. 50;
Suchgraph hätte also ca. 35100 Knoten.
daher: Zu Beginn eines Spiels ist sogar eine heuristische Suche nach einem
vollständigen Lösungsweg aussichtslos.
Ziel der Suche daher:
Bewertung des nächsten Handlungsschrittes
Allgemeines Vorgehen:
Vorausschau und Bewertung einiger Züge, für die eine Expansion des
Suchgraphen vorgenommen wird.
204
Das Minimax-Verfahren
Speziell Minimax:
• Zwei Spieler Max und Min, statische Bewertungsfunktion für Knoten K des Suchgraphen sei
B(K), Knoten entspricht z.B. Brettposition bei Spielen.
• Falls K Vorteil für Max: B(K) O 0 (Max sucht maximalen Wert)
• Falls K Vorteil für Min: B(K) ! 0 (Min sucht minimalen Wert)
• Bei ‘ausgeglichener‘ Position gilt: B(K) z 0
• Max soll als nächster agieren (wählt höchstbewerteten Knoten).
• Expandiere Suchgraph bis zur Tiefe D = 2 N - 1, N P 2.
• Bewerte alle Blätter mit der statischen Bewertungsfunktion B.
• Verteile die Bewertungen nach folgendem Schema weiter zu den Vorgängern:
• Knoten der Tiefe D - 1 erhalten jeweils das Minimum der Bewertungen ihrer Nachfolger
(‘Min-Zug’).
• Knoten der Tiefe D - 2 erhalten jeweils das Maximum der Bewertungen ihrer Nachfolger
(‘Max-Zug’).
• Knoten der Tiefe 0 erhalten das Maximum.
Der Wechsel zwischen der Wahl von Knoten mit minimaler und maximaler Bewertung gab dem
Minimax-Verfahren seinen Namen.
Annahmen bei Minimax:
• Die durch die Vorausschau erhaltene Bewertung der Nachfolger des Startknotens ist
zuverlässiger als die durch direkte Bewertung der Nachfolger mit B erhaltenen Hinweise.
• Der jeweilige Gegenspieler entscheidet sich immer rational für den bestbewertesten Zug
nach dem Minimax-Verfahren.
205
Das Minimax-Verfahren am Beispiel von Tic-Tac-Toe
Statische Bewertungsfunktion:
B(K) = <Anzahl der noch offenen, vollständigen Reihen und Spalten sowie Diagonalen für Max bei K> K
<Anzahl der noch offenen, vollständigen Reihen und Spalten sowie Diagonalen für Min>
Dadurch, dass Symmetrien bei der Expansion der Knoten berücksichtigt werden
können (Drehung und Spiegelung am Gitter), bleibt der Verzweigungsfaktor zu
Beginn klein.
Später bleibt er durch die verringerte Zahl der noch offenen Gitterplätze klein.
Im Beispiel: Breitensuche bis alle Knoten der Tiefe 2 expandiert sind.
Nachteile:
• Eine Zahl als Positionsbewertung ist wenig aussagekräftig; sie sagt nichts darüber
aus, wie sie entstanden ist.
• Hoher Aufwand von Minimax:
• Alle möglichen Nachfolger werden erzeugt.
• Für alle möglichen Pfade wird erst statische Bewertungsfunktion berechnet.
206
Das Minimax-Verfahren am Beispiel von Tic-Tac-Toe: erster Spielzug
207
Das Minimax-Verfahren am Beispiel von Tic-Tac-Toe: zweiter Spielzug
208
Das Minimax-Verfahren am Beispiel von Tic-Tac-Toe: dritter Spielzug
209
Das Alpha-Beta-Verfahren
Ausgangspunkt: Bei der Tiefensuche schon während der Expansion die
Bewertungsfunktion auf Blätter anwenden und Werte nach
Minimax-Verfahren nach oben verteilen.
Wenn im dritten Spielzug des Tic-Tac-Toe-Beispiels Knoten A erzeugt ist, lohnt es
sich nicht mehr B, C und D zu erzeugen, da Min auf jeden Fall A präferiert (bester
möglicher Zug für A).
• Alpha-Wert eines Max-Knotens ist die jeweils größte geerbte Bewertung seiner
Nachfolger.
• Beta-Wert eines Min-Knotens ist der jeweils kleinste geerbte Wert seiner Nachfolger.
2 Typen von Beschneidungen des Suchbaums:
• Alpha-Schnitt: Suche wird abgebrochen an einem Min-Knoten,
dessen Beta-Wert # Alpha-Wert von irgendeinem seiner Max-Vorgänger.
Der Beta-Wert bleibt der vererbte Wert des Min-Knotens, der gemäß Minimax
weiterverarbeitet wird.
• Beta-Schnitt: Suche wird abgebrochen an einem Max-Knoten,
dessen Alpha-Wert P Beta-Wert von irgendeinem seiner Min-Vorgänger.
Der Alpha-Wert bleibt der vererbte Wert des Max-Knotens.
210
Das Alpha-Beta-Verfahren
Die jeweilige Umsetzung der Alpha-Beta-Werte und die entsprechende Beschneidung
des Suchbaums wird als Alpha-Beta-Prozedur bezeichnet.
Die meisten Alpha-Beta-Schnitte würden erfolgen:
• wenn Nachfolger von Max-Knoten in absteigender endgültiger Minimax-Bewertung
• wenn Nachfolger von Min-Knoten in aufsteigender endgültiger Minimax-Bewertung
entwickelt würden.
Wichtig:
• Die Alpha-Werte von Max-Knoten können nicht kleiner werden.
• Die Beta-Werte von Min-Knoten können nicht größer werden.
Während der Suche werden die Alpha- und Beta-Werte wie folgt berechnet:
• Der Alpha-Wert eines Max-Knotens wird gleich gesetzt mit dem größten aktuellen
backed-up-Wert seiner Nachfolger.
• Der Beta-Wert eines Min-Knotens wird gleich gesetzt mit dem kleinsten aktuellen
backed-up-Wert seiner Nachfolger.
211
Teil des ersten Spielzuges bei Tic-Tac-Toe mit Alpha und Beta
212
Beispiel für die Alpha-Beta-Prozedur
213
Plangenerierungsverfahren
• Jede Roboter-Aktion besteht aus einer Folge primitiver Teilaktionen.
• Eine Aktionsfolge kann sich auch verzweigen (Greifen mit zwei Armen:
Wechselwirkungen, Synchronisationsprobleme).
• Bei außengesteuerten Aktionen: Teilfolgen hängen von sensorischer Information ab.
1969: STRIPS (Stanford Research Institute Problem Solver)
Repräsentation der Umwelt:
nur Grundinstanzen prädikatenlogischer Literale
Planungsziele und -zwischenziele:
Konjunktion von Literalen, alle Variablen existenzquantifiziert
Ein STRIPS-Operator besteht aus:
• einem Bezeichner
• Parametern (Variablen), die sich auf Objekte und Konzepte der Diskurswelt
beziehen
• einer Vorbedingung (Precondition): Konjunktion von Literalen mit implizit
existenzquantifizierten Variablen
• einer Liste zu löschender Assertionen (Delete-Liste)
• einer hinzuzufügenden Formel (Add-Formel)
214
Plangenerierungsverfahren
Randbedingungen: Alle freien Variablen in der Add- und
Delete-Liste müssen in der Vorbedingung
enthalten sein.
Die gesamte Vorbedingung wird mit der Weltrepräsentation
unifiziert und die dabei gewählte Substitution wird dann auf
die Delete-Liste und Add-Formel angewandt, wobei
Grundinstanzen entstehen.
Beispiel für STRIPS-Operator:
pickup(x)
Precondition: ONTABLE(x) o HANDEMPTY o CLEAR(x)
Delete-Liste: ONTABLE(x), HANDEMPTY, CLEAR(x)
Add-Formula: HOLDING(x)
215
STRIPS-Operatoren als Produktionensystem mit Vorwärtsverkettung
Roboterhand
C
A
CLEAR(B)
CLEAR(C)
B
ON(C,A)
ONTABLE(A)
HANDEMPTY ONTABLE(B)
Ausgangssituation in Blockwelt
1) pickup(x)
P & D: ONTABLE(x), CLEAR(x), HANDEMPTY
A: HOLDING(x)
2) putdown(x)
P & D: HOLDING(x)
A: ONTABLE(x), CLEAR(x), HANDEMPTY
3) stack(x,y)
P & D: HOLDING(x), CLEAR(y)
A: HANDEMPTY, ON(x,y), CLEAR(x)
A
B
C
4) unstack(x,y)
P & D: HANDEMPTY, CLEAR(x), ON(x,y)
A: HOLDING(x), CLEAR(y)
GOAL: [ON(B,C) o ON(A,B)]
Zielsituation in Blockwelt
216
Zustandsraum für Stapelproblem
217
Dreieckstabellen zur Darstellung des Planungskontextes
• Tabelleneinträge in der Zeile links von einem Operator:
Vorbedingungen des Operators
• Tabelleneinträge in der Spalte unter einem Operator:
Literale der Add-Formel des Operators, welche von nachfolgenden Operatoren
benötigt werden oder Teil der Zielbeschreibung sind.
Der n-te Kern der Tabelle: Durchschnitt der n-ten Zeile und aller darunter liegenden
Zeilen mit allen Spalten, die links von der n-ten Spalte liegen.
Der n-te Kern enthält also alle Bedingungen, die erfüllt sein müssen, um den n-ten
Operator und alle darauffolgenden Operatoren ausführen zu können, um das
Planungsziel zu erreichen.
Die Kerne dienen zur Planüberwachung:
Oft durch ungeplante Effekte: Plötzlich näher am oder weiter vom Ziel: Dann keine
neue Plangenerierung notwendig, sondern nach jeder Ausführung einer Aktion
erfüllten Kern mit maximalem n suchen: (Nur wenn kein Kern erfüllt ist, erfolgt
Neuplanung)
218
Dreieckstabellen zur Darstellung des Planungskontextes
Erfüllten Kern mit maximalem n suchen:
1) Beginne in der untersten Zeile, die Tabelle von links nach rechts zu
durchsuchen nach einem Eintrag, der ein Literal enthält, das mit der
gültigen Zustandsbeschreibung nicht unifiziert werden kann.
2) Falls kein Eintrag gefunden: Ziel erreicht,
sonst: n = Nummer der Spalte in der Eintrag gefunden.
3) Gehe zur nächsthöheren Zeile und durchsuche diese bis Spalte n.
4) Falls vor Spalte n ein nicht unifizierbares Literal in Spalte m gefunden
wird, setze n := m.
5) Falls in der n-ten Zeile von unten bis zur Spalte n alle Literale unifiziert
werden können: STOP,
sonst: gehe nach 3)
219
Darstellung eines Plans als Dreieckstabelle
Voraussetzungen für Aktion 1
0
1
HANDEMPTY
CLEAR(C)
ON(C,A)
1
unstack(C,A)
HOLDING(C)
2
3
2
putdown(C)
ONTABLE(B)
CLEAR(B)
3
pickup(B)
4. Kern enthält alle
Vorbedingungen für 4
Teilplan
5
Anzahl der
Teilaktionen + 1
Zeile enthält jeweils Voraussetzungen für Aktion
HANDEMPTY
CLEAR(C)
HOLDING(B)
4
stack(B,C)
ONTABLE(A)
CLEAR(A)
HANDEMPTY
6
CLEAR(B)
7
ON(B,C)
Spalte enthält jeweils die durch die
Aktion hinzugefügten Literale,
welche für weitere Aktionen oder
Ziele benötigt werden.
5
pickup(A)
HOLDING(A)
6
stack(A,B)
ON(A,B)
220
Rückwärtsverkettung von STRIPS-Operatoren
Für effiziente Plangenerierung oft: Rückwärtsverkettung vom Planungsziel zur
Ausgangssituation
• Ausgehend von einem Zielausdruck wird ein Operator gewählt, dessen Add-Liste ein
Literal enthält, das mit einem Literal des Zielausdrucks unifiziert werden kann.
• Eine neue Teilzielbeschreibung wird dadurch erzeugt, dass
• die übrigen Literale des bearbeiteten Teilausdrucks einem Regressionsprozess
durch die Substitutionsinstanz des Operators unterworfen werden und
• das Ergebnis des Regressionsprozesses mit der Substitutionsinstanz der
Vorbedingung des Operators konjunktiv verknüpft wird.
Regression eines Zielausdrucks:
G1´, G2´, ..., GN´ sind eine Regression von G1, G2, ..., GN durch die Instanz eines
Operators OP, wenn die Anwendung von OP auf jede Zustandsbeschreibung,
die mit G1´, G2´, ..., GN´ unifiziert werden kann, zu einer Zustandsmenge führt,
die mit G1, G2, ..., GN unifiziert werden kann.
221
Beispiele für Regressionsprozesse
Operator: unstack(x,y)
P & D: HANDEMPTY, CLEAR(x), ON(x,y)
A: HOLDING(x), CLEAR(y)
(1) goal: HOLDING(B)
Substitutionsinstanz:
unstack(B,y)
P & D: HANDEMPTY, CLEAR(B), ON(B,y)
A: HOLDING(B), CLEAR(y)
A)
B)
C)
D)
Regression von HOLDING(B) = T (immer wahr nach Aktion)
Regression von HANDEMPTY = F (immer falsch, direkt nach Aktion)
Regression von ONTABLE(C) = ONTABLE(C) (keine Änderung durch Aktion)
Regression von CLEAR(C) = T, falls y = C,
sonst: CLEAR(C)
Daher werden 2 alternative Teilbeziehungen generiert:
- eine mit P von unstack(B,C)
- eine mit P von unstack(B,y) o (y s C)
E) Regression von CLEAR(B) = T, falls y = B, aber unstack(B,B) unmöglich 222
Beispiele für Regressionsprozesse
(2) Substitutionsinstanz:
unstack(x,B)
P & D: HANDEMPTY, CLEAR(x), ON(x,B)
A: HOLDING(x), CLEAR(B)
Regression von CLEAR(C) = F,
falls x = C,
sonst: CLEAR(C)
d.h. Teilziel lautet: (x s C) o CLEAR(C)
223
Teil einer Rückwärtsverkettung bei der Plangenerierung
ON(B,C)
= unmögliche Ziele
ON(A,B)
stack(A,B)
pickup(A)
ONTABLE(A)
CLEAR(A)
HANDEMPTY
ON(B,C)
CLEAR(B)
stack(B,C)
HOLDING(A)
HOLDING(B)
CLEAR(B)
CLEAR(C)
ON(B,C)
ON(A,B)
stack(B,C)
HOLDING(B)
CLEAR(C)
HOLDING(A)
unstack(x,B)
HANDEMPTY
CLEAR(x)
ON(x,B)
(x s A)
HOLDING(A)
ON(B,C)
unstack(A,B)
HANDEMPTY
CLEAR(A)
ON(A,B)
ON(B,C)
Spezialisierung
des Originalziels
224
Fortsetzung der Rückwärtsverkettung
ONTABLE(A)
CLEAR(A)
unstack(x,A)
putdown(A)
HANDEMPTY
Durch
Regression von
HANDEMPTY
HANDEMPTY
CLEAR(x)
ON(x,A)
ONTABLE(A)
F
ON(B,C)
CLEAR(B)
(x s B)
Identisch mit
Vorgängerzustand
ON(B,C)
CLEAR(B)
putdown(A)
HOLDING(A)
ON(B,C)
CLEAR(B)
putdown(x)
unstack(x,B)
Durch
Regression von
HANDEMPTY
HANDEMPTY
CLEAR(x)
ON(x,B)
ONTABLE(A)
CLEAR(A)
(x s A)
F
ON(B,C)
putdown(B)
HOLDING(B)
ONTABLE(A)
CLEAR(A)
ON(B,C)
stack(B,C)
HOLDING(B)
CLEAR(C)
ONTABLE(A)
CLEAR(A)
HOLDING(x)
ONTABLE(A)
CLEAR(A)
(x s A)
ON(B,C)
CLEAR(B)
Nur X = B n X = C
225
Ende der Rückwärtsverkettung
HOLDING(A)
ONTABLE(B)
CLEAR(B)
CLEAR(C)
pickup(B)
HOLDING(B)
ONTABLE(B)
CLEAR(C)
CLEAR(B)
ONTABLE(A)
HANDEMPTY
CLEAR(A)
CLEAR(C)
unstack(B,A)
unstack(B,y)
HANDEMPTY
CLEAR(B)
ON(B,A)
CLEAR(C)
ONTABLE(A)
HANDEMPTY
CLEAR(B)
ON(B,y)
CLEAR(C)
CLEAR(A)
(y s C)
(y s A)
ONTABLE(A)
putdown(A)
Identisch zu einem
putdown(B) Vorgängerknoten
ONTABLE(A)
CLEAR(A)
HOLDING(B)
CLEAR(C)
ONTABLE(A)
CLEAR(A)
putdown(x)
putdown(C)
HOLDING(C)
ONTABLE(B)
unstack(C,y)
CLEAR(B)
unstack(C,A)
unstack(C,B)
unstack(B,C)
HANDEMPTY
CLEAR(B)
ON(B,C)
CLEAR(A)
ONTABLE(A)
Identisch zu einem
Vorgängerknoten
HANDEMPTY
CLEAR(C)
ON(C,y)
ONTABLE(B)
CLEAR(B)
(y s B)
ONTABLE(A)
CLEAR(A)
(y s A)
ONTABLE(A)
HANDEMPTY
CLEAR(C)
ON(C,B)
ONTABLE(B)
ONTABLE(A)
CLEAR(A)
CLEAR(A)
unstack(C,A)
HANDEMPTY
CLEAR(C)
ON(C,A)
ONTABLE(B)
CLEAR(B)
ONTABLE(A)
Anfangssituation 226
Interagierende Ziele
Problem der redundanten Auswertung von Literalen in der Zielbeschreibung durch Mehrfachauswertung derselben Zielkomponenten bei der Bearbeitung unterschiedlicher Subziele
Mögliche Lösung:
Dekomposition der gesamten Zielbeschreibung mit sequentieller Bearbeitung
der Zielkomponenten.
Beispiel (Ausgangssituation wie oben):
ON(A,B) o ON(B,C)
ON(A,B)
ON(B,C)
Fall 1: Zunächst ON(B,C) bearbeiten: pickup(B), stack(B,C) ergibt: ON(B,C), ON(C,A), ...
Nachteile:
- Lösung von ON(A,B) wird schwieriger,
- um ON(A,B) zu erreichen, muss ON(B,C) rückgängig gemacht werden.
Fall 2: Zunächst ON(A,B) bearbeiten: unstack(C,A), putdown(C), stack(A,B) ergibt:
ON(A,B), CLEAR(C), ...
Nachteile:
- Lösung von ON(B,C) wird schwieriger,
- um ON(B,C) zu erreichen, muss ON(A,B) rückgängig gemacht werden.
227
Interagierende Ziele
Die Lösung eines Ziels macht die unabhängig entwickelte Lösung eines anderen Ziels
wieder rückgängig.
In der Praxis der Plangenerierung sind interagierende Ziele selten. Daher Annahme in
Strips zunächst: Zielkomponenten interagieren nicht. Falls dann doch Interaktionen
auftreten, erfolgt Spezialbehandlung. Strips arbeitet mit Zielkeller, oberstes
Kellerelement = Fokus
Grundzüge des Strips-Verfahrens:
- Falls Fokus mit Weltrepräsentation unifizierbar, wird Substitution auf alle
Kellerelemente angewandt und Fokuselement gelöscht.
- Zusammengesetzte, ungelöste Ziele im Fokus werden zerlegt und die Literale der
Zielkomponenten werden im Keller über dem zusammengesetzten Ziel abgelegt.
Durch Wiederauswertung des zusammengesetzten Ziels nach Einzelauswertung der
Zielkomponenten werden interagierende Ziele erkannt, und die rückgängig
gemachten Zielkomponenten werden erneut aufgebaut.
228
Interagierende Ziele
- Falls im Fokus ein ungelöstes Literal A steht, sucht Strips einen Operator, dessen
Add-Liste ein Literal enthält, das mit A unifiziert werden kann. Der instantiierte
Operator ersetzt dann A und die instantiierte Vorbedingung des Operators wird der
neue Fokus.
- Falls der Fokus ein Operator ist, wird der Operator ausgeführt (vorher wurde
Vorbedingung durch Unifikation mit Weltrepräsentation gelöscht) und danach
gelöscht.
Für das Ziel ON(A,B) Y ON(B,C) erzeugt Strips einen suboptimalen Plan:
unstack(C,A), putdown(C)
pickup(A), stack(A,B), unstack(A,B), putdown(A)
Umweg: ON(A,B)
pickup(B), stack(B,C), pickup(A), stack(A,B)
229
Rückwärtsverkettung in STRIPS - Teil 1
) Planungsziel
Zerlegung eines
zusammengesetzten Ziels
ON(x,y)
in Add-Liste
von
stack(x,y)
Instantiiere
Vorbedingung
von
stack(C,B)
Zerlegung
230
Rückwärtsverkettung in STRIPS - Teil 2
{A/y} unifiziert Weltrepräsentation mit
oberstem Element des Zielkellers.
unstack(C,A) wird ausgeführt, dann gilt
HOLDING(C), so dass stack(C,B)
ausgeführt werden kann.
Vorbedingung von pickup(A)
erfüllt. HOLDING(A) gilt nach
pickup(A), so dass stack(A,C)
ausgeführt werden kann.
Terminierung bei leerem Zielkeller, nachdem letztes
Kellerelement wegen Übereinstimmung mit Weltrepräsentation
gelöscht
231
Die Kontrollstruktur des STRIPS-Systems
Entscheidungspunkte in STRIPS u. a.:
- Reihenfolge von Zielkomponenten im Keller bei Zieldekomposition
- Auswahl eines Operators, falls mehrere Operatoren zum Erreichen des
fokussierten Ziels angewandt werden können
Der entstehende Planungsgraph kann mit den verschiedensten heuristischen Suchverfahren
traversiert werden. In die Bewertungsfunktion können z.B. die Länge des Zielkellers, der
Schwierigkeitsgrad des fokussierten Ziels oder die Operatorkosten einfließen.
Beispiel für eine einfache, rekursive Version von STRIPS mit Backtracking:
Sei S eine globale Variable, die mit der Bechreibung der Ausgangssituation
initialisiert ist. Sei G das Planungsziel.
STRIPS(G)
UNTIL S unifiziert mit G DO
G::= eine Zielkomponente von G, die nicht mit S unifiziert werden kann
;hier ist Backtracking möglich
F::= ein Operator, dessen Add-Liste ein Literal enthält, das mit G unifiziert werden kann
;hier ist Backtracking möglich
P::= instantiierte Vorbedingung von F
STRIPS(P); Rekursion
S::= Resultat der Anwendung des instantiierten F auf S
OD
232
GPS (General Problem Solver) (Newell, Shaw, Simon 1960, CMU)
GPS war Vorläufer von STRIPS; entwickelt zur Simulation kognitiver Prozesse; Anwendung von
GPS wird auch als Mittel-Zweck-Analyse bezeichnet.
Auswahl der Operatoren durch Vergleich zwischen aktuellem Zustand der Planung und
Planungsziel: Berechnung einer Differenz
Die Operatoren sind in einer Differenztabelle verzeichnet, die diskursbereichsabhängig ist. In
der Differenztabelle sind die Operatoren geordnet nach Ihrer Relevanz für die Reduktion
möglicher Differenzen.
Rekursive Formulierung von GPS:
Sei S eine globale Variable, die mit einer Beschreibung der Ausgangssituation initialisiert ist.
Sei G das Planungsziel.
GPS(G)
UNTIL S unifiziert mit G DO
D::= eine Differenz zwischen S und G ;hier ist Backtracking möglich
F::= ein Operator, der relevant ist zur Reduktion von D ;hier ist Backtracking möglich
P::= eine instantiierte Vorbedingung von F
GPS(P); Rekursion
S::= Resultat der Anwendung des instantiierten F auf S
OD
STRIPS als Spezialfall von GPS:
Differenz zwischen S und G in STRIPS: nicht mit S unifizierbare Zielkomponenten von G
Zur Reduktion relevante Operatoren: Operatoren, deren Add-Liste G enthält.
233
Beispiel für Mittel-Zweck-Analyse mit GPS:
Reiseplanung
Differenztabelle:
Verkehrsmittel
Entfernung in km
Flug
DB
PKW
Bus
Gehen
D O 1000
+
-
-
-
-
100 # D # 1000
-
+
+
-
-
1 # D ! 100
-
-
+
+
-
D!1
-
-
-
-
+
Vorbedingung der Operatoren:
Flug
: sei am Flugzeug
DB
: sei am Bahnhof
PKW : sei am PKW
Bus
: sei an der Haltestelle
Gehen : nil
Problem: Reise von Wohnung in Saarbrücken nach UC Berkeley
D O 1000
1 # D ! 100
D!1
D!1
1 # D ! 100
D!1
D!1
Flug
PKW
Gehen
Gehen
Bus
sei am Flugzeug
sei am PKW
nil
;zum PKW
nil
;zum Flugzeug
sei an der Haltestelle
;hier wird PKW verworfen, da er in Saarbrücken steht
und Flug zurück weiter vom Ziel abbringt
Gehen nil
;zur Haltestelle
Gehen nil
;UC Berkeley
234
Ein für STRIPS unlösbares Planungsproblem: Registeraustausch
Problem: Plan für Programm zum
Austausch der Inhalte zweier
Register X, Y
CONT(X,A) bedeutet:
Register X hat den Inhalt A
Operator:
assign(U,R,T,S)
P: CONT(R,S) Y CONT(U,T)
D: CONT(U,T) ; T geht also verloren
A: CONT(U,S)
U, R Register; T, S Inhalte
Z als zusätzliches Hilfsregister
1
State Description
CONT(X,A)
CONT(Y,B)
CONT(Z,0)
Goal Stack
CONT(X,B) Y CONT(Y,A)
Zieldekomposition
2
State Description
CONT(X,A)
CONT(Y,B)
CONT(Z,0)
Goal Stack
CONT(X,B)
CONT(Y,A)
CONT(X,B) Y CONT(Y,A)
Wahl von ASSIGN(X,r,t,B)
3
State Description
CONT(X,A)
CONT(Y,B)
CONZ(Z,0)
{Y/r,A/t} und
Anwendung von
assign(X,Y,A,B)
4
State Description
CONT(X,B)
CONT(Y,B)
CONT(Z,0)
Goal Stack
CONT(r,B) Y CONT(X,t)
assign(X,r,t,B)
CONT(Y,A)
CONT(X,B) Y CONT(Y,A)
Fehler: Verlust von A
Goal Stack
CONT(Y,A)
CONT(X,B) Y CONT(Y,A)
235
Planung bei Ziel-Interaktionen
1) RSTRIPS (vgl. Warplan von Warren 1974 in Prolog), spezielle Art der Regressionsanalyse
2) DCOMP (vgl. Sacerdoti 1975, Tate 1976): nichtlineare Planung
RSTRIPS verwendet im Zielkeller zusätzlich zu STRIPS die folgenden drei Markierungen:
- senkrechte Klammer: Bereich der Zieldekomposition
- waagerechte Linie: aktuelles Ziel
- *-Markierung: gesicherte Ziele
Beispiel für die Plangenerierung mit RSTRIPS,
zunächst ohne Zielinteraktion für das Ziel: ON(C,B) Y ON(A,C)
Bis zur Anwendung des ersten Operators: gleicher Ablauf wie bei STRIPS.
HANDEMPTY Y CLEAR(C) Y ON(C,y)
unstack(C,y)
HOLDING(C)
CLEAR(B)
HOLDING(C) Y CLEAR (B)
stack(C,B)
ON(C,B)
ON(A,C)
ON(C,B) Y ON(A,C)
Zusammengesetzte Vorbedingung kann unter {A/y} mit Weltrepräsentation unifiziert werden.
Im Gegensatz zu STRIPS wird dann P nicht gestrichen.
Waagerechte Linie unter HOLDING(C): Dieses Subziel wurde erreicht.
Neuer Fokus: CLEAR(B)
236
Planung bei Ziel-Interaktionen
Falls waagerechte Linien durch Klammer läuft, gibt es oberhalb der Linie bereits
erreichte Ziele. Diese werden durch die *-Markierung gesichert: Es wird in der
Klammer kein Operator ausgeführt, der ein gesichertes Subziel falsifiziert oder löscht.
HANDEMPTY  CLEAR(C)  ON(C,A)
unstack(C,A)
*HOLDING(C)
CLEAR(B)
HOLDING(C)  CLEAR (B)
stack(C,B)
ON(C,B)
ON(A,C)
ON(C,B)  ON(A,C)
C
A
B
Ausführung von Operatoren in RSTRIPS unnötig: statt Aufbau neuer
Weltrepräsentation erfolgt eine Regressionsanalyse für das zu lösende Teilziel durch
alle Operatoren oberhalb der Markierung.
Bsp.: Regression von CLEAR(B) durch unstack(C,A) ergibt CLEAR(B),
was bereits in Ausgangssituation gilt.
Beide Vorbedingungen von stack(C,B) sind erfüllt: waagrechte Linie wird nach unten
verschoben (d.h. Operator virtuell ausgeführt).
ON(C,B) wird als gelöstes Subziel gesichert (*-Markierung).
237
Planung bei Ziel-Interaktionen
Dann wird Teilziel ON(A,C) bearbeitet und schließlich folgender Zielkeller aufgebaut:
HANDEMPTY  CLEAR(C)  ON(C,A)
unstack(C,A)
HOLDING(C)
CLEAR(B)
HOLDING(C)  CLEAR (B)
stack(C,B)
*ON(C,B)
C
A
B
HANDEMPTY  CLEAR(A)  ONTABLE (A)
pickup(A)
HOLDING(A)
REGRESSION DURCH
CLEAR(C)
unstack(C,A)
HOLDING(A)  CLEAR (C)
stack(C,B)
stack(A,C)
ON(A,C)
ON(C,B)  ON(A,C)
Regressionsanalyse ergibt: P von pickup(A) erfüllt.
Interaktionsanalyse bevor pickup angewandt wird:
Sicherheitscheck – Falls Regression von ON(C,B) durch pickup(A) = F, dann wird Operator
blockiert.
Hier ist Sicherheit von ON(C,B) gewährleistet: pickup(A) ausführen
Regressionsanalyse für CLEAR(C) und ON(C,B) durch stack(A,C) verläuft positiv, so dass
stack(A,C) ausgeführt werden kann.
Terminierung: waagerechte Linie unterhalb des untersten Kellerelements
238
Löschung nach Interaktionsanalyse
RSTRIPS bei interagierenden Zielen: ON(A,B) Y ON(B,C) als Beispiel
Sicherheitsbedingungen für
ON(A,B) durch unstack(A,B)
verletzt. ON(A,B) muss nur am
Ende der senkrechten Klammer
gelten, temporäre Verletzungen
können toleriert werden.
239
RSTRIPS bei interagierenden Zielen: ON(A,B) Y ON(B,C) als Beispiel
Falls es Operatoren unterhalb der Linie aber vor Klammerende gibt, die ON(A,B)
wieder herstellen, kann unstack(A,B) doch ausgeführt werden.
Hier ist dies durch pickup(B) und stack(B,C) aber nicht erreichbar.
störendes Teilziel: Das Teilziel, dessen Lösung einen Operator erfordert, der
ein gesichertes Teilziel rückgängig machen würde.
Strategie zum Vermeiden der Verletzung von Sicherheitsbedingungen:
Unterwirf das störende Teilziel einer Regressionsanalyse rückwärts durch die
Sequenz der Operatoren im Zielkeller bis hin zu dem Operator, der das gesicherte
Teilziel ergab und versuche das Ergebnis der Regression des störenden Teilziels
direkt vor dem Operator zu erreichen.
240
ON(A,B) Y ON(B,C) als Beispiel
Im Beispiel:
Regression von ON(B,C) durch stack(A,B) ergibt ON(B,C). Der verworfene Plan für
ON(B,C) wird aus dem Zielkeller entfernt, und die waagerechte Linie wird wieder
über ON(B,C) platziert.
Sicherung, da Linie durch
Klammer wandert
P ergänzt duch
ON(B,C)
241
ON(A,B) o ON(B,C) als Beispiel
neuer Subplan
für ON(B,C)
Es wird ein neuer Plan für ON(B,C)
erzeugt, der allerdings durch
putdown(A) das gesicherte Ziel
HOLDING(A) nicht nur temporär
verletzt.
zur Erreichung von HANDEMPTY, {A/x}
242
ON(A,B) o ON(B,C) als Beispiel
RSTRIPS unterwirft das störende Teilziel ON(B,C) einer weiteren Regression rückwärts, bis
durch pickup(A). Der verworfenen Plan zum Erreichen von ON(B,C) wird vom Zielkeller entfernt
und das ergänzte Literal ON(B,C) in der Vorbedingung von stack(A,B) wird gelöscht. Die
waagerechte Linie wird wieder über ON(B,C) platziert.
P ergänzt durch ON(B,C)
243
ON(A,B) o ON(B,C) als Beispiel
Es wird erneut ein anderer Subplan für ON(B,C) erzeugt, der wiederum mit pickup(B) das
gesicherte Ziel HANDEMPTY verletzt: allerdings nur temporär, da später stack(B,C) die
Gültigkeit von HANDEMPTY sichert.
Jetzt können Fokus und Weltrepräsentation unifiziert werden und alle Operatoren im Zielkeller
angewandt werden, so dass RSTRIPS terminiert. RSTRIPS findet einen kürzeren Plan als
STRIPS (siehe oben):
unstack(C,A), putdown(C), pickup(B), stack(B,C), pickup(A), stack(A,B).
244
Lösung des Registeraustauschproblems mit dem System RSTRIPS
Für RSTRIPS ergibt sich die erste Schwierigkeit, sobald CONT(r1,A) im Fokus ist.
CONT(r1,A) kann unmöglich unifiziert werden, da nach assign(X,Y,A,B) A in keinem
Register mehr enthalten ist.
Wie bei der Verletzung gesicherter Ziele verwendet RSTRIPS bei unmöglichen Zielen
eine Regressionsanalyse. Das unmögliche Ziel erfährt eine Regressionsanalyse durch
den zuletzt angewandten Operator, um zu prüfen, ob es dann möglicherweise
erfüllbar ist.
245
Lösung des Registeraustauschproblems mit dem System RSTRIPS
Im Beispiel ergibt die Regressionsanalyse für CONT(r1,A) durch assign(X,Y,A,B) den
Wert: CONT(r1,A) o lEQUAL(r1,X), welcher der Vorbedingung von assign(X,Y,A,B)
hinzugefügt wird.
Z:0 X:A Y:B
CONT(r1,A)
lEQUAL(r1,X)
CONT(X,A)
CONT(Y,B)
CONT(X,A) o CONT(Y,B) o CONT(r1,A) o lEQUAL(r1,X)
assign(X,Y,A,B)
CONT(X,B)
CONT(Y,t1)
CONT(r1,A) o CONT(Y,t1)
assign(Y,r1,t1,A)
CONT(Y,A)
CONT(X,B) o CONT(Y,A)
Fokus von RSTRIPS ist jetzt CONT(r1,A), der zwar unter {X/r1} mit der
Ausgangssituation CONT(X,A) unifiziert werden könnte, aber das nächste Ziel mit
lEQUAL(X,X) unmöglich machen würde.
246
Lösung des Registeraustauschproblems mit dem System RSTRIPS
Es muss daher nochmals ein assign-Operator angewandt werden:
Z:0 X:A Y:B
CONT(r,A)
CONT(X,A)
CONT(r1,t)
CONT(Z,0)
CONT(r,A) o CONT(r1,t)
assign(r1,r,t,A)
assign(Z,X,0,A)
CONT(r1,A)
CONT(Z,A)
lEQUAL(r1,X)
lEQUAL(Z,A)=T
CONT(X,A)
ok
CONT(Y,B)
CONT(X,A) o CONT(Y,B) o CONT(r1,A) o lEQUAL(r1,X)
assign(X,Y,A,B)
CONT(X,B)
CONT(Y,t1)
CONT(Y,B)
CONT(r1,A) o CONT(Y,t1)
assign(Y,r1,t1,A)
assign(Y,Z,B,A)
CONT(Y,A)
CONT(X,B) o CONT(Y,A)
Im Gegensatz zu STRIPS findet RSTRIPS also einen Lösungsplan: assign(Z,X,0,A),
assign(X,Y,A,B), assign(Y,Z,B,A).
Eine allgemeinere Lösung für das Problem des Registeraustauschs umfasst noch
einen weiteren Operator genreg zur Erzeugung des Hilfsregisters Z. Dann würde
CONT(r1,t) zur Anwendung von genreg führen.
247
DCOMP: Ein System zur Erzeugung nichtlinearer Pläne
DCOMP arbeitet in zwei Phasen:
1) Die erste Phase erstellt eine vorläufige Lösung, in der mögliche Ziel-Interaktionen
unberücksichtigt bleiben.
2) Die zweite Phase überarbeitet die tentative Lösung und versucht, die Interaktionen
zu beseitigen.
In DCOMP wird der Zielgraph als und/oder-Graph dargestellt. Falls keine
Interaktionen festgestellt werden, können die verschiedenen Äste des und/oderGraphen parallel ausgeführt werden. Dies ist z.B. für einen Roboter relevant, der
seine Position ändern und dabei gleichzeitig seinen Arm bewegen kann.
Phase 1 von DCOMP erstellt einen und/oder-Graphen, dessen Blätter mit der
Ausgangssituation unifiziert werden können.
In Phase 2 sucht DCOMP nach Operatoren, welche in anderen Zweigen des Graphen
benötigte Vorbedingungen zerstören. Dies führt dann zu einer weiteren Beschränkung
der partiellen Ordnung, die durch den und/oder-Graphen dargestellt wird. Im
Extremfall führt Phase 2 zu einem linearen Plan.
248
Ergebnis der ersten Phase von DCOMP 1
Join als virtueller
Kompositionsoperator
Unifikation als
Ausgangssituation
löscht HANDEMPTY als P von 2
löscht HANDEMPTY als P von 4
Im Beispiel führt die erste Phase zu
zwei Operator-Sequenzen, die parallel
ausgeführt werden könnten:
{unstack(C,A), stack(C,B)} und
{unstack(C,A), pickup(A), stack(A,C)}.
249
Nichtinteragierende partielle Ordnung
Sei Cij das i-te Literal der Vorbedingung von Operator j.
Für jedes Cij bildet DCOMP zwei (möglicherweise leere) Mengen:
• Dij als die Menge der Operatoren, die Cij löschen und nicht Vorfahr von j sind
(Deleters von Cij).
• Aij als die Menge der Operatoren, die Cij hinzufügen und nicht Vorfahr von j sind
(Adders von Cij).
Die partielle Ordnung eines Plans weist keine Interaktion auf, falls für alle Cij
1) der Operator j vor allen Elementen von Dij auftritt oder
2) es einen Operator k in Aij gibt, der vor j auftritt, und kein Element von Dij zwischen k
und j auftritt.
250
Ergebnis der ersten Phase von DCOMP mit allen Aij und Dij
Interaktionen nach der ersten Phase im
Beispiel:
u.a. C12 = HANDEMPTY, D12 = {4,5}, A12 = {3}
2 liegt aber nicht vor 4 und 5
3 tritt nicht vor 2 auf
251
Beseitigung von Interaktionen
Zwei Möglichkeiten, um in der zweiten Phase die aufgedeckten Interaktionen zu
beseitigen:
1) Weitere Restriktionen in der Plansequenz, so dass eine der Bedingungen für den
Ausschluss von Interaktionen gilt.
2) Streichen eines Operators, dessen Effekt durch Umordnung von einem anderen
Adder übernommen wird.
Beispiel:
• 3 2 D22 für das Literal CLEAR(C). Wenn DCOMP 2 vor 3 ordnet, kann 3 aus D22
gestrichen werden.
• 5 2 D14 für Literal HANDEMPTY, 4 ist bereits Vorfahr von 5, so dass die Ordnung
nicht mehr so eingeschränkt werden kann, dass 4 vor 5 liegt. Aber zwischen 5 und
4 kann als Adder 1 eingeschoben werden.
Problem:
Die zusätzlichen Ordnungsbedingungen müssen untereinander konsistent sein.
Dies kann DCOMP nicht in allen Fällen gewährleisten.
252
Beseitigung von Interaktionen
Im Beispiel führt DCOMP folgende Operationen in der Phase 2 aus:
1) 2 vor 4 und Löschung von 5. 4 und 5 können dann als Deleter von 2 gestrichen
werden. Da 2 vor 3 liegt, kann auch 3 als Deleter von Literalen der Vorbedingung
von 2 gestrichen werden.
2) 1 vor 4. 1 stellt die Vorbedingungen wieder her, die 4 und 3 benötigen, die aber
von 2 gestrichen werden.
1 2 A23 für CLEAR(C) und 1 2 A14 für HANDEMPTY
2 2 D23 für CLEAR(C) und 2 2 D14 für HANDEMPTY
Insgesamt entsteht die totale Ordnung {2, 1, 4, 3}, d.h.
die Plansequenz {unstack(C,A), stack(C,B), pickup(A), stack(A,C)}.
253
Plangenerierung für zweiarmige Roboter mit dem DCOMP-Verfahren
Die bisher verwendeten Operatoren werden mit einem weiteren Argument versehen,
das angibt, ob Hand 1 oder Hand 2 die Aktion ausführt.
1) pickup(x,h)
P&D: ONTABLE(x), CLEAR(x), HANDEMPTY(h)
A: HOLDING(x,h)
2) putdown(x,h)
P&D: HOLDING(x,h)
A: ONTABLE(x), CLEAR(x), HANDEMPTY(h)
3) stack(x,y,h)
P&D: HOLDING(x,h), CLEAR(y)
A: HANDEMPTY(h), ON(x,y), CLEAR(x)
3) unstack(x,y,h)
P&D: HANDEMPTY(h), CLEAR(x), ON(x,y)
A: HOLDING(x,h), CLEAR(y)
254
Ergebnis der ersten DCOMP-Phase für Roboter mit zwei Händen
Der zweiarmige Roboter kann
Aktionen parallel ausführen,
so dass ein partiell
geordneter Plan angemessen
ist.
Weniger Deleters als bei
einarmigem Roboter
Phase 2:
2 vor 4, Löschung von 5,
2 vor 3
255
join*
Ein partiell geordneter Plan für
einen zweiarmigen Roboter
Darstellung des Plans als prozedurales Netz
256
Korrektur von fehlerhaften, approximativen Plänen
Falls in Phase 2 von DCOMP durch zusätzliche Ordnungsbedingungen Interaktionen
nicht beseitigt werden können, wird in einer dritten Phase versucht, den fehlerhaften
Plan (mit Löschungen von notwendigen Vorbedingungen) dadurch zu korrigieren,
dass die gelöschten Bedingungen durch Einfügung zusätzlicher Planungsschritte
wieder hergestellt werden. Die zusätzlichen Planungsschritte dürfen natürlich mit dem
zu korrigierenden Plan nicht interagieren.
CLEAR(A) o HANDEMPTY
0
join
HANDEMPTY
CLEAR(A)
Adders:
Deleters: 1
1
1
ON(C,A)
unstack(C,A)
CLEAR(C)
Keine Umordnung möglich;
HANDEMPTY wird gelöscht
HANDEMPTY
Ein Ergebnis der ersten Phase, das berücksichtigt werden muss.
257
Korrektur von fehlerhaften, approximativen Plänen
Zwischen 1 und 0 muss eine Ergänzung eingeschoben werden, die HANDEMPTY wieder
herstellt.
Die Vorbedingungen der Plan-Ergänzung sollen bei einer Regression durch 1 zu Bedingungen
führen, die mit der Ausgangssituation unifizierbar sind (damit die Plan-Ergänzung ohne weitere
Bedingungen ausführbar ist) und CLEAR (A) soll bei Regression durch die Plan-Ergänzung
unverändert bleiben, so dass die Wirkung von 1 erhalten bleibt.
Im Beispiel:
putdown(x) bei Rückwärtsverkettung auf HANDEMPTY angewandt führt zum Teilziel
HOLDING(x), Regression von HOLDING(x) durch unstack(C,A) ergibt unter {C/x} T.
CLEAR(A) bleibt bei Regression durch putdown(C) erhalten.
CLEAR(A) o HANDEMPTY
putdown(C)
Berichtigung des
fehlerhaften Plans
CLEAR(A) o HOLDING(C)
unstack(C,A)
ON(C,A) o CLEAR(C) o HANDEMPTY
korrigierter Plan
258
Ergebnis der ersten Phase mit interagierenden Zielen
Im allgemeinen Fall werden mehrere
Vorbedingungen von dem noch
fehlerhaften Plan gelöscht. Dann
beginnt der Korrekturprozess an der
gelöschten Vorbedingung, die am
nächsten an der Ausgangssituation
liegt und traversiert den
Planungsgraph, bis alle Interaktionen
beseitigt sind.
259
Erste Näherung des Plans
Ziel
*: Bedingungen, die
in Näherung unerfüllt
bleiben
durch 3 gelöscht
durch 3 gelöscht
Ausgangssituation
260
Korrektur von fehlerhaften, approximativen Plänen
Phase 3 schiebt zunächst eine Ergänzung zwischen 3 und 5, um HANDEMPTY zu
erhalten.
putdown(C) ist die angemessene Ergänzung.
Dann muss das gelöschte CLEAR(C) erwirkt werden. In diesem Fall ergibt die
Regressionsanalyse durch 5 CLEAR(C) und durch die Ergänzung putdown(C) ergibt
sich T für CLEAR(C), so dass keine weitere Ergänzung mehr notwendig ist.
Der korrigierte Plan lautet also:
unstack(C,A), putdown(C), pickup(B), stack(B,C), pickup(A), stack(A,B).
Für das allgemeine Problem der Korrektur nicht-linearer Pläne durch Einsetzung
zusätzlicher Teilpläne sind noch keine Lösungen bekannt.
261
Hierarchische Planungssysteme
Häufig ist es sinnvoll, manche der Bedingungen des vorgegebenen Planungsziels und einige
der durch den Planungsprozess generierten Subziele zunächst als Details zu betrachten, deren
Lösung bis zu einem späteren Stadium der Planung zurückgestellt werden kann.
Beispiel: Ziel sei Hausbau
Planung auf höchster Ebene: Fundament, Mauern, Fenster, ...
Planung auf niedrigster Ebene: schrauben, bohren, ...
Bei der Planung nur auf einer Ebene kann der Plan so lang und komplex werden, dass die
Planungsverfahren scheitern.
Man führt daher mehrere Planungsebenen ein.
Auf jeder Ebene werden die üblichen Planungsverfahren wie STRIPS, RSTRIPS und DCOMP
verwendet.
Auf jeder Planungsebene werden gewisse Bedingungen als Details angesehen und zunächst
absichtlich ‘übersehen‘.
Der auf einer höheren Ebene erstellte Plan muss dann bei Übergang zu detaillierterer Ebene
durch Einfügen zusätzlicher Operatoren verfeinert werden.
ABSTRIPS ist ein hierarchisches Planungssystem auf der Basis von STRIPS. Es wird eine
Hierarchie für die Literale der Vorbedingungen und der Delete-Liste aller Operatoren eingeführt,
indem Wichtigkeitsbewertungen eingeführt werden.
262
Hierarchische Planungssysteme
Erste Ebene der Planung: Es wird nur mit Bedingungen gearbeitet, welche den höchsten
Wichtigkeitswert haben (im Beispiel: 3), alle anderen
Bedingungen bleiben unsichtbar.
• Beim Ziel ON(C,B) o ON(A,C) beginnt ABSTRIPS mit der Dekomposition des
Hauptziels, da beide ON-Literale mit 3 bewertet sind.
• Um ON(C,B) zu erreichen, wird der Operator stack(C,B) auf dem Zielkeller abgelegt,
wobei beide Vorbedingungen des Operators entfallen, da ihr Wichtigkeitswert mit 2 zu
gering ist.
• stack(C,B) wird ausgeführt und bewirkt eine neue Weltrepräsentation, in der ON(C,B)
ergänzt ist.
• Dann ist ON(A,C) im Fokus und führt zur Anwendung von stack(A,C). Die
Weltrepräsentation wird um ON(A,C) ergänzt, der Zielkeller ist leer, so dass ABSTRIPS
terminiert.
Die Grobplanung ergibt also die Sequenz: stack(C,B), stack(A,C).
Dabei entstehen teilweise inkonsistente Weltrepräsentationen wie der Endzustand mit
ONTABLE(A), ON(A,C), CLEAR(C).
Die auf der ersten Ebene erzielte Plansequenz wird dann an die zweite Planungsebene
übergeben, auf der Bedingungen mit einem Wichtigkeitswert P 2 betrachtet werden.
Die Plansequenz wird über der Zielbeschreibung jeweils mit den nun sichtbaren
Vorbedingungen im Zielkeller abgelegt.
263
Hierarchische Planungssysteme
Es ergibt sich zu Beginn der zweiten Planungsstufe der folgende Zielkeller:
HOLDING(C) o CLEAR(B)
stack(C,B)
HOLDING(A) o CLEAR(C)
stack(A,C)
ON(C,B) o ON(A,C)
Daraus wird in der zweiten Planungsphase die Sequenz
unstack(C,A), stack(C,B), pickup(A), stack(A,C) erzeugt.
Falls ABSTRIPS auf einer Ebene keine Lösung findet, wird ein Backtrackingprozess
ausgelöst und auf der darüberliegenden Ebene eine andere Lösung gesucht.
Auf der dritten Planungsebene (Wichtigkeitswert P 1) muß noch HANDEMPTY
berücksichtigt werden.
Im Beispiel zeigt sich auf der dritten Ebene, dass die Lösung auf der zweiten Ebene
alle Details bereits richtig behandelt.
Für komplexere Planungsprobleme ist ABSTRIPS effizienter als das einstufige
STRIPS-Verfahren, da die Grobpläne den Suchraum auf den unteren
Planungsebenen stark einschränken.
264
Hierarchische Planungssysteme
1) pickup(x)
2
2
1
P&D: ONTABLE(x), CLEAR(x), HANDEMPTY
A: HOLDING(x)
2) putdown(x)
2
P&D: HOLDING(x)
A: ONTABLE(x), CLEAR(x), HANDEMPTY
3) stack(x,y)
2
2
P&D: HOLDING(x), CLEAR(y)
A: HANDEMPTY, ON(x,y), CLEAR(x)
3) unstack(x,y)
1
2
3
P&D: HANDEMPTY, CLEAR(x), ON(x,y)
A: HOLDING(x), CLEAR(y)
Ein hoher Wert bedeutet, dass diese Bedingung besonders schwer erreichbar ist (z.B. ON(x,y)).
Ein niedriger Wert bedeutet, dass diese Bedingung leicht zu erreichen ist (z.B. HANDEMPTY).
Bei der Anwendung eines Operators werden alle Literale der Add-Formel zur
Weltrepräsentation hinzugefügt (unabhängig von der Wichtigkeitsbewertung).
265
Lösung auf erster Ebene für ABSTRIPS
266
Eine Variante von ABSTRIPS mit P-Vorbedingungen
P-Vorbedingungen eines Operators werden immer zurückgestellt bis auf die nächste
Planungsebene.
1) pickup(x)
P&D: ONTABLE(x), CLEAR(x), P-HANDEMPTY
A: HOLDING(x)
2) putdown(x)
P&D: HOLDING(x)
A: ONTABLE(x), CLEAR(x), HANDEMPTY
3) stack(x,y)
P&D: P-HOLDING(x), CLEAR(y)
A: HANDEMPTY, ON(x,y), CLEAR(x)
3) unstack(x,y)
P&D: P-HANDEMPTY, CLEAR(x), ON(x,y)
A: HOLDING(x), CLEAR(y)
267
STRIPS-Lösung mit P-Vorbedingungen auf der ersten Planungsebene
268
Wichtige Eigenschaften des Inferenzmodells
(1) Eine approximative Inferenzregel stellt eine abgeschwächte
Implikation dar, jeder approximativen Inferenzregel wird daher eine
bestimmte Implikationsstärke zugeordnet.
(2) Oft sind die Prämissen einer approximativen Inferenzregel nur zu
einem gewissen Grad erfüllt. Dies wird bei der Berechnung des
Evidenzwertes für die Konklusion einer Inferenz berücksichtigt.
(3) Eine approximative Inferenzregel ist oft nur zu einem gewissen Grad
anwendbar, weil in ihr enthaltene Sortenrestriktionen nur graduell
erfüllt sind.
(4) Die Ergebnisse mehrerer voneinander unabhängiger Inferenzen
können sich in Mehrfachableitungen verstärken.
269
Das CF-Modell von MYCIN
Das Regelbewertungsmodell
Die Inferenzregeln in MYCIN werden durch 2 unterschiedliche Werte beurteilt:
MB (measure of increased belief)
MD (measure of increased disbelief)
MB[H,E]
ist ein Maß (measure) für den, durch das Vorhandensein der Evidenz E bestärkten
Glauben (belief) an das Zutreffen der Hypothese H.
MD[H,E]
ist ein Maß für den, durch das Vorhandensein der Evidenz E abgeschwächten
Glauben an das Zutreffen der Hypothese H.
Definition:
 P (H | E ) − P ( H )
für P (H | E ) ≥ P (H ) ∧ P (H ) ≠ 1

1 − P (H )


für P (H ) = 1
MB[H, E ] := 1

0
für P (H | E ) < P (H )

 P ( H ) − P (H | E )
für P (H | E ) ≤ P (H ) ∧ P (H ) ≠ 0

P (H )


MD[H, E ] := 1
für P (H ) = 0

0
für P (H | E ) > P (H )

270
Beziehungen zwischen MB und MD
Forderungen an die Definitionen von MB und MD:
MB und MD sollen so definiert sein, dass eine positive (unterstützende)
Evidenz für H keinen negativen Einfluss auf lH hat; d.h.
vergrößert E den Glauben an ein Zutreffen von H, so hat dies keinen
Einfluss auf den Glauben, dass H nicht zutrifft.
Vergrößert umgekehrt E den Glauben an ein Zutreffen von lH, so hat dies
keinen Einfluss auf den Glauben, dass H zutrifft.
Das bedeutet formal:
MB[H,E] O 0 0 MD[H,E] Z 0
MD[H,E] O 0 0 MB[H,E] Z 0
Die Definitionen von MB und MD erfüllen diese Forderungen, wenn man für
die beiden Extremfälle, dass die Hypothese H bereits a-priori als sicher
zutreffend (P(H) = 1) oder als unmöglich (P(H) = 0) erachtet wird, folgende
Voraussetzungen macht:
271
Beziehungen zwischen MB und MD
1) a-priori P(H) Z 0 0 P(H8E) Z 0
Hieraus folgt: MB[H,E] Z 0
Interpretation: Wenn man sicher ist, dass H nicht zutrifft, kann keine Evidenz E
einen positiven Einfluss auf die Wahrscheinlichkeit von H erzielen.
2) a-priori P(H) Z 1 0 P(H8E) Z 1
Hieraus folgt: MD[H,E] Z 0
Interpretation: Wenn man sicher ist, dass H zutrifft, kann keine Evidenz E einen
negativen Einfluss auf die Wahrscheinlichkeit von H verüben.
Weiterhin lässt sich zeigen:
MB[H,E] Z MD[lH,E]
MD[H,E] Z MB[lH,E]
Dagegen gilt auf Wahrscheinlichkeitenniveau:
P(H8E) Z x 5 P(lH8E) Z 1 K x
Jedoch ist im allgemeinen, d.h. für P(H8E) 2 ]0, 1[:
MB[H,E] s 1 K MB[lH,E]
MD[H,E] s 1 L MD[lH,E]
272
Die Bewertungsfunktion CF
Die CF-Funktion (certainty factor) vereinigt die Information des MB- und MD-Wertes
bei der Bewertung einer Regel. MB und MD sind so definiert, dass eine Evidenz
niemals gleichzeitig positiven und negativen Einfluss auf eine Hypothese ausüben
kann. Daher ist es möglich bei der Regelbewertung nur einen einzigen CF-Wert,
anstatt eines MB- und MD-Wertes, einer Regel zuzuordnen, ohne Information zu
verlieren.
Diese Eigenschaft ist aus der folgenden Definition der CF-Funktion direkt ersichtlich.
Definition:
CF [H , E ] := MB[H , E ] − MD[H , E ]
Folgerungen:
CF [H, E ] ∈ [− 1,1]
CF [¬H, E ] = −CF [H, E ]
für P (H | E ) > P (H ) ∨ P (H ) = 1
MB[H, E ]

CF [H, E ] := 0
für P (H | E ) = P (H ) ∧ 0 ≠ P (H ) ≠ 1
− MD[H, E ] für P (H | E ) < P (H ) ∨ P (H ) = 0

MB[H, E ] = max [0,CF [H, E ]]
MD[H, E ] = max [0,−CF [H , E ]]
273
Interpretation der CF-Werte
CF [ H ,E ]
Sei eine mithilfe der CF-Funktion bewertete Regel der Form E 

→ H gegeben.
0 < CF [H, E ] ≤ 1
⇔ MB[H, E ] > 0 ∧ MD[H, E ] = 0
⇔ P (H | E ) > P (H ) ∨ P (H ) = 1
Interpretation: Die Evidenz E vergrößert die Wahrscheinlichkeit für das Zutreffen der
Hypothese H. E ist positive (confirming) Evidenz für H.
Speziell: CF [H, E ] = 1
⇔ MB[H, E ] = 1 ∧ MD[H, E ] = 0
⇔ P (H | E ) = 1
Interpretation: Das Auftreten der Evidenz E ist hinreichend für das Zutreffen der
Hypothese H. E impliziert H. H trifft mit Sicherheit zu.
274
Interpretation der CF-Werte
CF [H, E ] = 0
⇔ MB[H, E ] = 0 ∧ MD[H, E ] = 0
⇔ P (H | E ) = P (H ) ∧ 0 ≠ P (H ) ≠ 1
Interpretation: Das Ereignis E hat keinen Einfluss auf die Wahrscheinlichkeit für
das Zutreffen von H. E ist keine Evidenz für H. E und H sind
unabhängige Ereignisse.
− 1 ≤ CF [H, E ] < 0
⇔ MB[H, E ] = 0 ∧ MD[H, E ] > 0
⇔ P (H | E ) < P (H ) ∨ P (H ) = 0
Interpretation: Die Evidenz E verringert die Wahrscheinlichkeit für das Zutreffen der
Hypothese H. E ist negative (disconfirming) Evidenz für H.
Speziell: CF [H, E ] = −1
⇔ MB[H, E ] = 0 ∧ MD[H, E ] = 1
⇔ P (H | E ) = 0
Interpretation: Die Beobachtung der Evidenz E schließt ein Zutreffen der Hypothese
H mit Sicherheit aus. E impliziert lH.
275
Interpretation der CF-Werte
Da die Anzahl der Hypothesen oft sehr groß ist, sind ihre a-priori Wahrscheinlichkeiten
verschwindend klein.
Formal:
P(H) / 0
Sei E positive Evidenz für die Hypothese H.
Formal:
P(H8E) > P(H)
Dann folgt für den CF-Wert:
P (H | E ) − P (H )
≈ P (H | E )
1 − P (H )
Bedeutung: Der CF-Wert der Hypothese H, unterstützt durch die Evidenz E,
entspricht ungefähr der bedingten Wahrscheinlichkeit für H unter E.
CF [H, E ] =
Den Hypothesen aller Regeln von MYCIN sind MB- und MD-Werte zugeordnet, die zu
Anfang des Dialogs (der Untersuchung) auf Null gesetzt sind. Werden nun ständig
neue Evidenzen (Symptome) beobachtet, so werden die Regeln aktiviert, welche
diese Evidenzen als Prämisse besitzen. Bei jeder Aktivierung („Feuern“) einer Regel
werden mithilfe des regeleigenen CF-Wertes die MB- und MD-Werte ihrer Hypothese
aktualisiert.
276
H ist Konklusionsteil mehrerer feuernder Regeln
Eine Hypothese H kann den Konklusionsteil mehrerer feuernder Regeln bilden. Das bedeutet,
dass unterschiedliche Evidenzen E1, ..., En beobachtet wurden, die alle einen positiven oder
negativen Einfluss auf H ausüben.
Wiederum werden Approximationsregeln benötigt, um die MB- und MD-Werte solcher
Hypothesen zu berechnen.
Die Evidenzen E1 und E2 seien beobachtet worden. Dadurch feuern die beiden Regeln
CF [H ,E 2 ]
CF [H ,E1 ]
→H
E1 
→ H und E 2  
Approximation der kombinierten MB- und MD-Werte für H
MB[H,E1 Y E2] = MB[H,E1] + MB[H,E2] - MB[H,E1] ) MB[H,E2]
MD[H,E1 Y E2] = MD[H,E1] + MD[H,E2] - MD[H,E1] ) MD[H,E2]
Approximation des kombinierten CF-Wertes für H

MB[H , E1 ∧ E 2 ]

CF [H , E1 ] + CF [H , E2 ]

CF [H, E1 ∧ E2 ] := 
1 − min[CF [H , E1 ], CF [H, E 2 ] ]

− MD[H, E1 ∧ E2 ]

für E1 und E2 positive Evidenzen für H
falls eine Evidenz positiv und die
andere negativ für H ist
für E1 und E2 negative Evidenzen für H
Ist (o.E.d.A.) E1 positive Evidenz für H und E2 negative Evidenz für H, so folgt:
MB[H , E1] − MD[H , E2 ]
CF [H , E1 ∧ E2 ] :=
1 − min[MB[H , E1], MD[H , E2 ]]
277
E ist Prämisse mehrerer Regeln
Andererseits kann eine einzelne Evidenz E die Prämissen mehrerer Regeln bilden,
falls E Einfluss auf mehrere Hypothesen H1, ..., Hn besitzt. Die Beobachtung von E
kann dann mehrere Regeln feuern. Man benötigt also Approximationsregeln, mit
deren Hilfe man einen zusammengesetzten MB- und MD-Wert für konjunktiv bzw.
disjunktiv verknüpfte Hypothesen bzgl. der Evidenz E berechnen kann.
Sei die Evidenz E gegeben, welche die beiden Regeln
[
]
CF H1 ,E
E 
 → H1 und
CF [ H 2 ,E ]
E 

→ H2
feuert.
Approximation der kombinierten MB- und MD-Werte bzgl. E
Konjunktive Verknüpfung der Hypothesen:
MB[H1 Y H2,E] = min[MB[H1,E], MB[H2,E]]
MD[H1 Y H2,E] = max[MD[H1,E], MD[H2,E]]
Disjunktive Verknüpfung der Hypothesen:
MB[H1 Z H2,E] = max[MB[H1,E], MB[H2,E]]
MD[H1 Z H2,E] = min[MD[H1,E], MD[H2,E]]
278
E ist nicht mit Sicherheit vorhanden
Es ist möglich, dass eine Evidenz E nicht mit Sicherheit vorhanden ist, sondern nur
Beobachtungen E# gegeben sind, die mit einer gewissen Wahrscheinlichkeit für das
Vorhandensein von E sprechen. Die Regel
E   → H
CF [ H , E ]
kann also nicht „sicher“ feuern. Bei der Berechnung des MB- und MD-Wertes für H
aus dem CF-Wert der Regel muss also die Unsicherheit bzgl. dem Vorhandensein von
E berücksichtigt werden. Dies kann durch Eingabe eines CF-Wertes für die Regel
E´   → E
CF [ E , E´ ]
geschehen.
Man benötigt also eine Approximationsvorschrift für die Berechnung des MB- und MDWertes von H in der zusammengesetzten Regel
E´   → E   → H
CF [ E , E´ ]
CF [ H , E ]
279
E ist nicht mit Sicherheit vorhanden
Approximation der zusammengesetzten MB- und MD-Werte
MB[H,E#] := max[0, CF[H,E]] )max[0, CF[E,E#]] = MB[H,E] ) MB[E,E#]
MD[H,E#] := max[0, -CF[H,E]] )max[0, CF[E,E#]] = MD[H,E] ) MB[E,E#]
CF[E,E#] % 0 0 MB[H,E#] = 0 Y MD[H,E#] = 0
Folgerung:
Interpretation: Gibt es Argumente gegen ein Vorhandensein von E, so kann E nicht
mehr als Evidenz fungieren.
Bemerkung:
MB[H,E] und MD[H,E] sind die durch CF[H,E] gegebenen Belief- bzw.
Disbeliefwerte, welche davon ausgehen, dass E mit Sicherheit
vorhanden ist.
Die Ergebniswerte sind die aktualisierten MB- und MD-Werte, aus denen am Ende der
Untersuchung die endgültigen CF-Werte der Hypothese errechnet werden. Im Verlauf
einer Untersuchung können sowohl positive als auch negative Evidenzen bzgl. einer
Hypothese H auftreten. Die sequentielle Abarbeitung dieser Evidenzen führt zu einer
schrittweisen Aktualisierung der MB- und MD-Werte der betroffenen Hypothese H. Am
Ende der Untersuchung können also sowohl der MB-Wert, als auch der MD-Wert
einer Hypothese verschieden von 0 sein.
280
Eigenschaften der aktualisierten MB- und MD-Werte
Sei E+ (E-) die Summe aller bisher während der Untersuchung beobachteten positiven
(negativen) Evidenzen bzgl. der Hypothese H, so gilt:
Grenzwerte:
MB[H,E+] wächst gegen 1 mit jeder weiteren positiven Evidenz für H, die beobachtet
wird.
Der Grenzwert 1 wird jedoch nur dann erreicht, wenn eine Evidenz auftritt,
die schon für sich alleine, ohne Berücksichtigung der bisher beobachteten
positiven Evidenz E+, die Hypothese H logisch impliziert.
MD[H,E-] wächst gegen 1 mit jeder weiteren negativen Evidenz für H, die beobachtet
wird.
Der Grenzwert 1 wird jedoch nur dann erreicht, wenn eine Evidenz auftritt,
die schon für sich alleine, ohne Berücksichtigung der bisher beobachteten
negativen Evidenz E-, die Hypothese H mit Sicherheit verwirft.
Für die CF-Funktion gilt:
CF[H,E-] % CF[H,E- Y E+] % CF[H,E+]
281
Eigenschaften der aktualisierten MB- und MD-Werte
Logische Implikation (sicheres Bestätigen bzw. Verwerfen einer Hypothese):
MB[H,E+] = 1 0 MD[H,E-] = 0 0 CF[H,E+] = 1
Interpretation: Falls es eine Evidenz gibt, die H logisch impliziert, so darf keine
Evidenz existieren, die gegen H spricht.
MD[H,E-] = 1 0 MB[H,E+] = 0 0 CF[H,E-] = -1
Interpretation: Falls es eine Evidenz gibt, die H mit Sicherheit verwirft, so darf
keine Evidenz existieren, die für H spricht.
Kommutativität:
Die zeitliche Reihenfolge mit der die einzelnen Evidenzen während der Untersuchung
auftreten, hat keinen Einfluss auf die resultierenden MB- und MD-Werte bzw. den
endgültigen CF-Wert der Hypothesen. Die Schreibweise E1 Y E2 induziere die
Reihenfolge, dass zuerst E1, später E2 beobachtet werden. Wegen der Kommutativität
in der Abarbeitung der Evidenzen gilt:
MB[H,E1 Y E2] = MB[H,E2 Y E1]
MD[H,E1 Y E2] = MD[H,E2 Y E1]
CF[H,E1 Y E2] = CF[H,E2 Y E1]
282
Eigenschaften der endgültigen CF-Werte
Mithilfe der aktualisierten MB- und MD-Werte werden die endgültigen CF-Werte der
Hypothesen berechnet.
Diese CF-Werte stellen die gewünschten Untersuchungsergebnisse dar. Sie dienen
als Auswahlkriterien bei der Selektion der am wahrscheinlichsten zutreffenden
Hypothesen (Diagnosen).
Sei E die Summe aller bisher während der Untersuchung beobachteten Evidenzen
bzgl. der Hypothese H, so gilt für:
CF[H,E] > 0: Insgesamt gibt es mehr bzw. stärkere Evidenzen für ein Zutreffen von H.
CF[H,E] = 0: Die Summe der Evidenzen für ein Zutreffen von H sind genau gleich
stark wie die Summe der Evidenzen gegen H, oder es gibt überhaupt
keine Evidenzen für bzw. gegen H.
CF[H,E] < 0: Insgesamt gibt es mehr bzw. stärkere Evidenz für eine Ablehnung von H.
283
Modellbasierte Diagnose
Modell
Diagnose
tatsächliches
System
vorhergesagtes
Verhalten
Verhaltensunterschiede
beobachtetes
Verhalten
Ein modellbasiertes Diagnosesystem besteht aus folgenden Komponenten:
1) Ein Modell des zu diagnostizierenden Gerätes.
Darunter verstehen wir im allgemeinen eine Systembeschreibung über einer
Menge von Bauteilen, eine Menge von Beobachtungen, sowie eine Menge
von Korrektheitsannahmen dieser Komponenten.
Die Systembeschreibung kann logische, algebraische oder andere
Formalismen verwenden.
Angegeben werden dabei im allgemeinen die vorhandenen Bauteile des
Systems, ihre Verbindungen und ihr Verhalten.
Tatsächliche Beobachtungen bestehen etwa aus Werten von Ein- und
Ausgängen, usw. Annahmen über die Korrektheit der einzelnen Bauteile sind
dynamisch und hängen von den gemachten Beobachtungen ab.
284
Diagnosealgorithmus und Auswahl von optimalen Messpunkten
2) Ein Diagnosealgorithmus.
Die Aufgabe dieses Algorithmus ist es, mögliche Diagnosen für eine
bestimmte Konstellation von Beobachtungen zu finden, d.h. Mengen von
fehlerhaften Bauteilen, die die gemachten Beobachtungen erklären.
Der Algorithmus versucht also, das durch die Beobachtungen inkonsistent
gewordene Modell so zu verändern, dass es wieder konsistent wird. Dabei
werden insbesondere die Annahmen über die Korrektheit der einzelnen
Bauteile variiert.
Die Menge der schließlich als fehlerhaft angenommenen Bauteile wird als
Diagnose bezeichnet.
3) Eine Prozedur zur Auswahl von optimalen Messpunkten.
Diese Prozedur soll Messpunkte so auswählen, dass mit möglichst wenigen
Messpunkten eine eindeutige Diagnose gefunden werden kann. Jeder
zusätzlich gemessene Messpunkt erweitert die Systembeschreibung, worauf
wieder der Diagnosealgorithmus aufgerufen wird.
285
Grundprinzipien
Im folgenden wollen wir die Grundprinzipien der modellbasierten Diagnose an einem
einfachen elektronischen Schaltkreis beschreiben.
Als Diagnosealgorithmus können wir ein einfaches Modellgenerierungssystem
verwenden, das in Prolog implementiert ist und auf einem vorwärtsverkettenden
Metainterpreter basiert.
Auch das Verhalten des Schaltkreises wird durch (vorwärtsverkettende) Regeln
beschrieben.
Als zu diagnostizierenden Schaltkreis verwenden wir den Schaltkreis, der nachfolgend
beschrieben ist.
a
3
b
2
c
2
d
3
e
3
m1
m2
m3
x
6
a1
f
10
a2
g
12
y
6
z
6
Wobei mi Multiplizierer und aj Addierer sind.
286
type(M,multiplier) Y ok(M) Y val(in1(M), V1) Y val(in2(M), V2) Y V3 is V1 * V2
/ val(out(M), V3)
type(M,multiplier) Y ok(M) Y val(out(M), V3) Y val(in2(M), V2) Y V1 is V3 O V2
/ val(in1(M), V1)
type(M,multiplier) Y ok(M) Y val(out(M), V3) Y val(in1(M), V1) Y V2 is V3 O V1
/ val(in2(M), V2)
type(A,adder) Y ok(A) Y val(in1(A), V1) Y val(in2(A), V2) Y V3 is V1 + V2
/ val(out(A), V3)
type(A,adder) Y ok(A) Y val(out(A), V3) Y val(in2(A), V2) Y V1 is V3 – V2
/ val(in1(A), V1)
type(A,adder) Y ok(A) Y val(out(A), V3) Y val(in1(A), V1) Y V2 is V3 – V1
/ val(in2(A), V2)
val(P, V1) Y val(P, V2) Y V1 s V2 / false.
conn(P1, P2) Y val(P1, V) / val(P2, V)
conn(P1, P2) Y val(P2, Y) / val(P1, Y)
287
type(m1, multiplier).
type(m2, multiplier).
type(m3, multiplier).
type(a1, adder).
type(a2, adder).
conn(out(m1), in1(a1)).
conn(out(m2), in2(a1)).
conn(out(m2), in1(a2)).
conn(out(m3), in2(a2)).
conn(in2(m1), in1(m3)).
conn(a, in1(m1)).
conn(b, in1(m2)).
conn(c, in1(m3)).
conn(d, in2(m2)).
conn(e, in2(m3)).
conn(x, out(m1)).
conn(y, out(m2)).
conn(z, out(m3)).
conn(f, out(a1)).
conn(g, out(a2)).
val(a, 3).
val(b, 2).
val(c, 2).
val(d, 3).
val(e, 3).
val(f, 10).
val(g, 12).
val(x, 6).
val(y, 6).
val(z, 6).
288
Bedeutung der Prädikate
1) ok(C) ist wahr, falls das Bauteil C korrekt funktioniert. Es ist falsch, wenn C fehlerhaft ist.
2) val(P,V) besagt, dass am Ein- oder Ausgang P der Wert V beobachtet wird. Falls
verschiedene Werttypen (Spannung, Stromstärke) verwendet werden, kann dies
durch Funktionssymbole ausgedrückt werden (z.B. val(spannung(in1(a), hoch))). Wir
nehmen an, dass nur endlich viele verschiedene Werte an den Ein- und Ausgängen
anliegen können. Eine neue Beobachtung wird durch ein neues val(P,V) Fakt
dargestellt. Wenn z.B. f = 10 gemessen wird, stellen wir das durch val(f,10) dar.
3) conn(X,Y) beschreibt eine (bidirektionale) Verbindung zwischen Ein- und
Ausgängen(X und Y) zweier Komponenten (z.B. conn(out(m1), in1(a1))). Außerdem
wird dieses Prädikat verwendet, um Ein- oder Ausgänge mit den Namen
entsprechender Messpunkte gleichzusetzen (z.B. conn(a, in1(m1))).
4) type(C,T) gibt an, welchen Typ T die Komponente C hat.
5) false gilt, wenn ein Widerspruch hergeleitet werden kann. In unserem Modell wird
dieses Prädikat verwendet, um die Tatsache auszudrücken, dass in einem
konsistenten Modell nur ein einziger Wert für einen Messpunkt existieren kann.
Andernfalls stimmt ein Wert, der durch eine Beobachtung festgestellt wurde, nicht mit
dem vorhergesagten Wert überein. Eine konsistente Theorie kann dann nur erzeugt
werden, wenn man eine oder mehrere Komponenten als fehlerhaft annimmt (lok(C))
und ihr Verhalten dadurch unbestimmt wird.
289
Modellbasierte Diagnose
Wenn alle Bauteile korrekt funktionieren, dann ist die Systembeschreibung inklusive
der gemachten Beobachtungen konsistent mit der Annahme, dass alle Bauteile in
Ordnung sind (ok(ci)).
Falls wir false herleiten können, bedeutet das, dass beobachtete Werte nicht mit
vorhergesagten Werten übereinstimmen.
Wir müssen daher für eine geeignete Menge von Bauteilen annehmen, dass sie defekt
sind. In unserem Modell drücken wir das durch lok(ci) aus.
Falls wir dann die strittigen Werte nicht mehr herleiten können und keinen
Widerspruch mehr erhalten, haben wir ein konsistentes Modell. Diese Menge der als
defekt angenommenen Bauteile ist dann ein möglicher Kandidat für eine Diagnose.
Im Extremfall können wir natürlich alle Bauteile als defekt annehmen, wodurch keine
Vorhersagen mehr gemacht werden können und daher auch false nicht hergeleitet
werden kann. Auch diese Menge aller Bauteile ist ein möglicher Kandidat für eine
Diagnose.
Es ist aber sinnvoll, nur minimale Kandidaten als Diagnose zu bezeichnen, d.h.
Kandidaten, die nicht Übermenge von anderen Kandidaten sind.
290
Modellbasierte Diagnose
Wir definieren daher eine Diagnose als minimalen Kandidaten, d.h. als minimale
Menge von defekten Bauteilen, die zu einem konsistenten Modell führen, in dem false
nicht hergeleitet werden kann.
Formal können wir das wie folgt definieren. Gegeben seien
- SD, eine Systembeschreibung (ohne Beobachtung)
- OBS, eine Menge von Beobachtungen
- COMP, eine Menge von Bauteilen
Eine Diagnose für (SD, OBS, COMP) ist eine minimale Menge D von fehlerhaften
Bauteilen, so dass
SD W OBS W {lok(C)| C 2 D} W {ok(C)| C 2 COMP - D}
konsistent ist.
In unserem Beispiel ist eine mögliche Menge von Beobachtungen am Ende der
Modellbeschreibung angegeben. Eine Diagnose für diese Beobachtungen ist [a1].
291
Aufgaben des Diagnosesystems
Im Normalfall werden die Beobachtungen dem System nicht alle auf einmal mitgeteilt,
sondern das System schlägt optimal Messungen basierend auf den bisherigen
Ergebnissen vor. Diese Messungen erweitern dann jeweils die Wissensbasis um neue
Beobachtungen, die durch die val(P, V) Fakten dargestellt werden.
Das modellbasierte Diagnosesystem hat daher zwei Aufgaben:
1) Diagnosen müssen berechnet und ausgegeben werden. Eine mögliche
Vorgangsweise ist die Ausgabe aller Diagnosen, nicht aber ihre Obermengen (der
möglichen Kandidaten). Die Diagnose wird beendet, falls nur mehr eine Diagnose
möglich ist, die deutlich wahrscheinlicher ist als die anderen Diagnosen (z. B. eine
Einfachdiagnose und einige Mehrfachfehlerdiagnosen).
2) Es müssen Messpunkte vorgeschlagen werden, die möglichst gut zwischen den
verschiedenen Diagnosen differenzieren. Das Ziel dabei ist, mit möglichst
wenigen Messungen auf eine eindeutige Diagnose zu kommen.
292
Messungen
Am Anfang messen wir eine Reihe von Werten, die noch keine Widersprüche
erzeugen. Der Wert von a, d und e werde mit 3 gemessen, der von b und c mit 2.
Wir erhalten eine konsistente Menge von Fakten (für jeden Messpunkt erhalten wir nur
einen Wert), auch wenn wir alle ok(C) Fakten als wahr annehmen. Wir können daher
daraus schließen, dass der Schaltkreis fehlerlos ist.
Messen wir zusätzlich am Punkt f den Wert 10, erhalten wir einen Widerspruch (false
kann hergeleitet werden), weil für f der Wert 12 vorhergesagt wird.
Um diese Vorhersage zu vermeiden, müssen wir eine der Komponenten m1, m2, a1
oder eine Obermenge davon als fehlerhaft ansehen.
Diagnosen sind daher [m1], [m2] und [a1].
Nach einer weiteren Messung (g = 12) können wir [m2] aus der Menge der potentiellen
Diagnosen ausschließen.
Diagnosen sind daher [m1], [a1], [m2, m3] und [m2, a2].
Bei den Doppelfehlerdiagnosen kompensieren sich die Fehler der beiden Defekte
gegenseitig, so daß an g wieder der richtige Wert anliegt.
293
Messungen
Die Beobachtung x = 6 schließlich führt uns zu der Diagnose, dass a1 die fehlerhafte
Komponente sein muss, da es als einzige Einfachfehlerdiagnose übrigbleibt.
Zusätzliche Diagnosen sind [m2, m3] und [m2, a2].
Durch zusätzliche Messungen an y und z können noch beide Doppelfehlerdiagnosen mit
Bestimmtheit ausgeschlossen werden.
Dies ist jedoch im Normalfall nicht notwendig, da [a1] schon ohne Messungen eine deutlich
höhere Wahrscheinlichkeit als die anderen möglichen Diagnosen hat und daher schon vorher
mit ausreichender Wahrscheinlichkeit als endgültige Diagnose betrachtet werden kann.
Messung
Diagnosen
:
[]
f = 10
[[m1], [m2], [a1]]
g = 12
[[m1], [a1], [m2, m3], [m2, a2]]
x=6
[[a1], [m2, m3], [m2, a2]]
Die nach den Messungen immer wieder erforderlichen Konsistenztests können durchgeführt
werden durch: Resolutionswiderlegungen, um Widersprüche herauszufinden oder
Modellgenerierung, um gültige Modelle zu finden, Constraint-Propagation Systeme, TruthMaintenance-Systeme.
294
Beispiel: Drei Glühbirnen und eine Batterie
w3
w1
b1
s
w2
w5
b2
w4
b3
w6
Drei Glühbirnen und eine Batterie
ok(C) Y type(C, bulb) Y val(port(C), +) / val(light(C), on).
ok(C) Y type(C, bulb) Y val(port(C), 0) / val(light(C), off).
ok(C) Y type(C, bulb) Y val(light(C), on) / val(port(C), +).
ok(C) Y type(C, bulb) Y val(light(C), off) / val(port(C), 0).
ok(C) Y type(C, supply) / val(port(C), +).
Nehmen wir nun an, dass die folgenden Beobachtungen gemacht wurden.
val(light(b1), off).
val(light(b2), off).
val(light(b3), on).
295
Beispiel: Drei Glühbirnen und eine Batterie
Die minimalen Diagnosen, die gefunden werden, sind [b1,b2] und [s,b3]. Während die
erste Diagnose nicht überrascht, scheint die zweite Diagnose intuitiv falsch zu sein, da
wir von defekten Glühbirnen nicht erwarten, dass sie brennen.
Um diese Diagnose ausschließen zu können, müssen wir zusätzlich zum korrekten
Verhalten angeben, welches Verhalten unmöglich ist. Das ist notwendig, da die
Beschreibung des korrekten Verhaltens nicht den Fall ausschließt, dass eine Lampe
defekt ist, aber trotzdem leuchtet.
type(C, bulb) Y val(light(C), on) Y
val(port(C), 0) / false.
In unserem Fall kann dieses Axiom der physikalischen Unmöglichkeit in eines der
physikalischen Notwendigkeit umgeformt werden.
Wir verwenden dabei die Tatsache, dass das Licht einer Lampe nur die Werte on oder
off haben kann, und die Spannungsdifferenz entweder 0 oder + sein kann.
296
Beispiel: Drei Glühbirnen und eine Batterie
Die folgenden zwei Regeln subsumieren übrigens Teile unserer Beschreibung des
korrekten Verhaltens.
type(C, bulb) Y val(port(C), 0)
/ val(light(C), off).
type(C, bulb) Y val(light(C), on)
/ val(port(C), +).
Um unmögliches Verhalten auszuschließen, können auch Fehlermodelle eingeführt
werden, die den verschiedenen Fehlerzuständen außerdem noch
Wahrscheinlichkeiten zuordnen können.
Fehlermodelle erhöhen allerdings die Komplexität des Diagnoseprozesses im
Gegensatz zu den rein negativen Axiomen der physikalischen Unmöglichkeit
beträchtlich (weil die Fehlermodelle auch manchen nicht-minimalen Kandidaten
ausschließen).
297
Beispiel: Zentralheizungssystem
Beispiel der Fehlfunktionsdiagnose eines Zentralheizungssystems in einem Haus.
Das System besteht u.a. aus einem Boiler, einem Thermostat in einem Raum, sowie
mehreren Heizkörpern. Der Boiler enthält eine elektrische Wasserpumpe.
298
Beispiel: Zentralheizungssystem
Es gibt zahlreiche Fehlerarten in einem Zentralheizungssystem:
•
•
•
•
•
•
zu geringer Wasserdruck
Wärmeverluste in Leitungen
Thermostat defekt
Stromversorgung für Boiler defekt
Brenner verschmutzt
Wasserleitungsbruch ...
Hier sollen nur zwei Fehlertypen betrachtet werden:
• Luft im Umlaufsystem
• Pumpe defekt
Es gibt viele mögliche Beobachtungen im Heizungssystem, von denen einige sehr
einfach, andere eher aufwendig sind (z.B. Geräuschprüfung vs.
Wasserdurchlaufmessung)
299
Beispiel: Zentralheizungssystem
Wir betrachten hier nur sehr einfache Beobachtungen:
Die Pumpe erzeugt ein Geräusch, wenn sie arbeitet. Außerdem fließt dann auf der
einen Seite Wasser in die Pumpe und wird an der anderen Seite herausgedrückt.
Falls die Pumpe nicht arbeitet, hört man kein Geräusch und es fließt kein Wasser rein
und raus.
Wenn ein Heizkörper korrekt arbeitet, hört man kein Geräusch. Die Wassermenge, die
aus dem Heizkörper zurückfließt, hängt dann von der Einstellung des Radiators und
der Einlaufmenge ab.
Wenn man ein Blubbern hört, arbeitet er nicht korrekt. Dabei muss allerdings Wasser
durch den Radiator laufen.
300
Modellbeschreibung Zentralheizungssystem
Die Modellbeschreibung umfasst 8 Komponenten:
radiator
correct RadNoise(t) = False, WaterOut(t + dt) = WaterIn(t) * RadControl(t)
faulty RadNoise(t) = (WaterIn(t) > 0) Y (RadControl(t) > 0)
pump
correct WaterOut(t + dt) = PumpControl(t) * WaterIn(t), PumpNoise(t) = PumpControl(t)
faulty WaterOut(t) = 0, PumpNoise(t) = False
pipe
correct Out(t + dt) = In(t)
joint1
correct Out(t + dt) = In1(t) + In2(t)
joint2
correct Out1(t + dt) = In1(t) / 2, Out2(t + dt) = In1(t) / 2
control circuitry
correct Out(t + dt) = In(t)
cable
correct Out(t) = In(t)
thermostat
correct Out(t) = (Tset(t) > Tact(t))
301
Diagnosen Zentralheizungssystem
Es gibt folgende Diagnosen:
Radiator
correct
fault
correct
fault
Pump
correct
correct
fault
fault
False
RadControl(t + 3dt)
Y(Tset(t) > Tact(t))
False
False
Tset(t) > Tact(t)
Tset(t) > Tact(t)
False
False
RadNoise(t + 3dt)
PumpNoise(t)
Luft im Heizkörper kann bei defekter Pumpe nicht geprüft werden.
RadNoise
RadControl
Pipe3
RadWaterOut
Radiator
RadWaterIn
Pipe2
Joint 1
Joint 2
PumpWaterIn
Pipe4
Control
Pump
PumpWaterOut
Pipe1
PumpNoise
PumpControl
Tset
Cable
Thermostat
Tact
302
Historisches
Die erste Publikation über modellbasierte Diagnosesysteme erschien erst 1982.
Davis vom AI Labor des MIT berichtete über sein System HT (Hardware
Troubleshooting).
Man spricht auch von Expertensystemen der zweiten Generation.
GDE (General Diagnostic Engine) wurde unter de Kleer ab 1986 bei Xerox
PARC entwickelt.
Während HT nur Einfachfehler suchte, konnte GDE auch Mehrfachfehler
diagnostizieren.
Die Komplexität des ursprünglichen GDE-Verfahrens war sehr hoch: bei
Komponenten mit endlicher Wertemenge ist die Berechnung der kombinierten
Fehlerannahmen NP-vollständig, bei unendlicher Wertemenge sogar
unentscheidbar.
303
Modellbasierte Systeme vs. XPS der 1. Generation
Modellbasierte Systeme sollen gegenüber den Expertensystemen der ersten
Generation zwei Probleme überwinden:
• den Flaschenhals der Wissensakquisition
• die mangelnde Robustheit
Die Wissensakquisition bei regel- und frame-basierten Systemen beruht auf
Interviews mit Experten. Es wird nach Zusammenhängen zwischen
Beobachtungen und Fehlern gesucht.
Da die Produktlebensdauer immer kürzer und die Fehlerhäufigkeit immer
geringer wird, dauert der Aufbau eines Erfahrungsschatzes zu lange, um früh
zu einem Wirkeinsatz des XPS zu kommen
304
Modellbasierte Systeme vs. XPS der 1. Generation
Die mangelnde Robustheit klassischer Expertensysteme im Diagnosebereich
beruht darauf, dass letztlich nur solche Fehler diagnostiziert werden können,
die dem Experten bekannt waren.
Neuartige Fehler können bei einer direkten Assoziation zwischen Beobachtung
und Diagnose nicht gefunden werden.
Fundamental für den Ansatz der Modellbasierten Diagnose ist die Trennung
zwischen dem Modell eines Systems und der Diagnosekomponente, die über
dem Modell arbeitet.
Das Wissen, wie eine Diagnose auszuführen ist, steckt nicht im Modell,
sondern in der Diagnosekomponente – im Unterschied zur Vermischung in
klassischen Expertensystemen.
305
Aufgaben von Reason-Maintenance-Systemen
Ein nichtmonotones Schlussfolgerungssystem muss mit einer veränderlichen
Prämissenmenge und Widersprüchen in der Menge der Überzeugungen umgehen
können.
Folgende Aufgaben sind zu erledigen:
(1) Falls eine Prämisse zurückgezogen wird, ist zu untersuchen, ob von ihr aus
irgendeine Überzeugung abgeleitet wurde.
(2) Falls eine Prämisse hinzugefügt wird, ist zu untersuchen, ob es Überzeugungen gibt,
die ausdrücklich vom Fehlen dieser Prämisse abhängen, d.h. ob die neue Prämisse
irgendwelche Konsistenzannahmen verletzt.
(3) Falls ein Widerspruch festgestellt wird, ist zu untersuchen, wo der Ursprung dieses
Widerspruchs liegt und ob weitere Inferenzen aus widersprüchlichen Überzeugungen
gezogen wurden.
Für (1) und (2) gäbe es eine einfache, aber unbefriedigende Lösung: Jedesmal, wenn sich
die Prämissenmenge ändert, werden alle abgeleiteten Überzeugungen verworfen und der
Inferenzprozeß erneut gestartet.
Zur effizienten Lösung der drei Aufgaben sind Reason-Maintenance-Systeme (RMS)
entwickelt worden.
Die zentrale Idee von RMS ist, in einem Abhängigkeitsnetz (Dependenznetz) explizit zu
beschreiben, wie die Überzeugungen voneinander abhängen.
306
Das Abhängigkeitsnetz in einem RMS
Ein Abhängigkeitsnetz DN besteht aus einer Menge von Knoten, die in zwei
Teilmengen unterteilt ist:
- die Menge der Überzeugungsknoten U
- die Menge der Rechtfertigungsknoten R
Es werden drei Funktionen betrachtet, die jedem Rechtfertigungsknoten drei Mengen
von Überzeugungsknoten zuordnen:
IN-SET, OUT-SET, SUP-SET: R / 2U
DN wird dann als gerichteter Graph DN = (N,E) definiert:
(i) N = U W R
(ii) E 4 N ! N, definiert durch
(u,v) 2 E 5 u 2 U, v 2 R, u 2 (IN-SET(v) W OUT-SET(v)) oder
u 2 R, v 2 U, v 2 SUP-SET(u).
Eine Kante verbindet also immer jeweils ein Element aus U und ein Element aus R
miteinander, niemals zwei Elemente aus U oder zwei Elemente aus R.
Ein Überzeugungsknoten kann durch mehrere Rechtfertigungsknoten unterstützt sein,
d.h. es können von mehreren Knoten in R Kanten zum selben Knoten in U führen.
307
Das Abhängigkeitsnetz in einem RMS
Die Überzeugungen im SUP-SET eines Rechtfertigungsknotens beruhen auf dem
Vorhandensein der Überzeugungen im IN-SET und auf dem Fehlen der
Überzeugungen im OUT-SET.
Die Knoten im DN werden daher immer um R-Knoten herumgruppiert.
Ein Rechtfertigungsknoten r und das Tripel (IN-SET(r), OUT-SET(r), SUP-SET(r)) wird
graphisch folgendermaßen dargestellt:
IN-SET(r)
SUP-SET(r)
OUT-SET(r)
Die Kanten sind von links nach rechts gerichtet.
Einem Abhängigkeitsnetz wird eine Wahrheitssemantik auf der Basis von drei
Elementen {IN, OUT, UNDET} zugeordnet.
STATUS: U / {IN, OUT, UNDET}
Die Abbildung STATUS heißt Markierung.
308
Das Abhängigkeitsnetz in einem RMS
Die Abbildung STATUS wir erweitert auf Rechtfertigungsknoten:
STATUS: R / {IN, OUT, UNDET}
mit
IN,
falls cu 2 IN-SET(r): STATUS(u) = IN und
cu 2 OUT-SET(r): STATUS(u) = OUT
STATUS(r) =
OUT,
falls du 2 IN-SET(r): STATUS(u) = OUT oder
du 2 OUT-SET(r): STATUS(u) = IN
UNDET, sonst
Ist STATUS(r) = IN für einen Rechtfertigungsknoten r, so heißt r gültig.
Eine Markierung heißt vollständig, wenn kein Knoten den Wert UNDET hat.
Eine Markierung heißt konsistent, wenn für jeden Überzeugungsknoten u gilt:
STATUS(u) = IN 0 dr 2 R: [u 2 SUP-SET(r) Y STATUS(r) = IN]
STATUS(u) = OUT 0 cr 2 R: [u 2 SUP-SET(r) 0 STATUS(r) = OUT]
Für eine konsistente und vollständige Markierung gelten Äquivalenzen statt der
Implikationen.
309
Markierungstypen in Abhängigkeitsnetzen
310
Das Abhängigkeitsnetz in einem RMS
Eine Prämissen-Rechtfertigung ist eine Rechtfertigung mit leerem IN-SET und leerem
OUT-SET (siehe r1).
Sie wird immer als gültig angenommen, unabhängig von ihrer Markierung.
Eine Prämisse ist eine Überzeugung, die eine Prämissen-Rechtfertigung hat (siehe
u1).
Eine Annahme-Rechtfertigung ist eine gültige Rechtfertigung mit nichtleerem OUTSET (siehe r2).
Eine Annahme ist eine Überzeugung, für die gilt, dass alle ihre gültigen
Rechtfertigungen Annahme-Rechtfertigungen sind (siehe u2).
311
Schleifen in Abhängigkeitsnetzen
Falls das Netz eine Schleife enthält, ist eine Voraussetzung dafür, dass u IN ist, die
Tatsache, dass u IN ist.
Ein solcher Zusammenhang soll vermieden werden. Man fordert daher von einer
Markierung, dass sie wohlfundiert ist.
Sei rank: U W R / N eine Funktion, für die gilt:
(i) cu 2 U: STATUS(u) = IN 0dr 2 R: u 2 SUP-SET(r) Y rank(r) ! rank(u)
(ii) cr 2 R: STATUS(r) = IN 0cu 2 IN-SET(r): rank(u) ! rank(r)
Dann heißt die Markierung STATUS wohlfundiert.
312
Unterstützungsbaum und Unterstützungsmenge
Ist eine Markierung vollständig, konsistent und wohlfundiert, so kann man zu jedem
Überzeugungsknoten u einen Unterstützungsbaum T(u) nach folgender Vorschrift konstruieren:
1) u ist die Wurzel von T(u).
2) Für jeden Knoten v in T(u) mit STATUS(v) = IN wird eine der unterstützenden
Rechtfertigungen, etwa r, mit rank(r) < rank(v) als Nachfolger in T(u) gewählt.
3) Für jede gültige Rechtfertigung r in T(u) werden alle Überzeugungsknoten
v 2 (IN-SET(r) W OUT-SET(r)) als Nachfolger in T(u) aufgenommen,
wobei für die v 2 IN-SET(r) gelten muss: rank(v) < rank(r).
Jedem Überzeugungsknoten u wird eine aktuelle Unterstützungsmenge AU(u) zugeordnet, die
folgendermaßen definiert ist:
1) Ist u IN und ist r eine gültige Rechtfertigung von u
(d.h. u 2 SUP-SET(r) und STATUS(r) = IN), dann ist
AU(u) = IN-SET(r) W OUT-SET(r).
2) Sei u OUT und seien r1, ..., rk alle Rechtfertigungen von u.
Alle diese Rechtfertigungen sind ungültig. Wähle für jedes ri (i = 1, ..., k)
einen Überzeugungsknoten ui 2 IN-SET(ri), der OUT ist, oder
einen Überzeugungsknoten ui 2 OUT-SET(ri), der IN ist. Setze
AU(u) = {u1, ..., uk}.
313
Wohlfundierte Markierungen und Unterstützungsbäume
Ein Abhängigkeitsnetz mit einer vollständigen, konsistenten und wohlfundierten
Markierung:
Ein Unterstützungsbaum für den Knoten u:
314
Rückwirkungen und Begründungen
Ist DN = (N,E) das Abhängigkeitsnetz, so induziert die Definition der aktuellen
Unterstützungsmengen einen Teilgraphen von DN,
nämlich DN# = (N,E#), wobei zu E# nur noch die Kanten aus E gehören,
die auf einem Pfad (der Länge 2) von AU(u) zu u führen, für jedes u 2 U.
Die Rückwirkungen RW(u) eines Überzeugungsknotens u ist die Menge aller
Überzeugungsknoten, die von u aus in DN# erreichbar sind, also
RW(u) = {v 2 U| es gibt einen Pfad von u nach v in DN#}.
Ein Unterstützungsbaum in DN# heißt aktueller Unterstützungsbaum.
Die Unterstützungsknoten in einem solchen aktuellen Unterstützungsbaum für
den Überzeugungsknoten u heißen Begründungen von u.
Aus der Sicht des RMS ist ein widersprüchlicher Überzeugungsknoten einer, der
unter jeder Markierung die Marke OUT hat, also das Gegenstück zu einer
Prämisse.
315
Aktuelle Unterstützungsbäume
Ein Abhängigkeitsnetz mit konsistenter und wohlfundierter Markierung:
Teilgraph DN# mit aktuellen Unterstützungsbäumen:
316
Der Revisionsalgorithmus
Über das Entfernen und Hinzufügen von Prämissen hinaus kann der dem RMS übergeordnete
Problemlöser auch andere Knoten kreieren. Diese werden ebenfalls in das Abhängigkeitsnetz
eingebaut.
Das Hauptproblem für das RMS ist es, für das veränderte Netz eine neue konsistente
Markierung zu bestimmen.
Dies geschieht in zwei Schritten:
1) Entfernen der aktuellen Markierung:
Beginnend bei der Stelle, an der eine Änderung erfolgt ist, werden entlang der Kanten die
Marken der betroffenen Knoten auf UNDET gesetzt.
Ist u der geänderte Knoten, so kann man die Marken aller im Netz von u aus erreichbaren
Knoten auf UNDET setzen, oder – effizienter – nur eine geeignete Auswahl. Eine solche
bietet die Menge RW(u).
2) Bestimmen einer neuen Markierung:
Durch Vorwärtspropagierung entlang der Kanten wird versucht, die mit UNDET markierten
Knoten mit anderen Marken zu versehen.
Hat ein solcher Überzeugungsknoten eine gültige Rechtfertigung, dann erhält er die Marke
IN, sind alle seine Rechtfertigungen ungültig, so erhält er die Marke OUT, entsprechend für
die Rechtfertigungsknoten.
Man erreicht mit diesem Schritt nicht immer eine vollständige Markierung.
317
Die Behandlung von Widersprüchen
Es bleibt noch die Lösung der dritten Aufgabe zu klären, nämlich die Behandlung von
Widersprüchen.
Das RMS selbst kann keine Widersprüche entdecken, da es ja den Inhalt der
Überzeugungen nicht kennt, vielmehr wird ihm vom Problemlöser mitgeteilt, welcher
Knoten widersprüchlich ist.
Die Durchführung dieser Veränderung heißt abhängigkeitsgesteuertes Rücksetzen.
Dabei geht man von folgender Situation aus:
Ein Überzeugungsknoten ist als widersprüchlicher Knoten gekennzeichnet (diese
Kennzeichnungen werden vom RMS intern verwaltet). Durch Hinzufügen von Knoten
passiert es, dass der widersprüchliche Knoten eine neue Rechtfertigung bekommt.
Also hat er einen aktuellen Unterstützungsbaum.
In diesem werden die maximalen Annahmen identifiziert, etwa a1, ..., an und zu einer
Nogood-Menge NM zusammengefaßt, also NM = {a1, ..., an}.
Eine maximale Annahme ist eine Annahme, die so im Unterstützungsbaum liegt, dass
zwischen ihr und der Wurzel des Baums keine andere Annahme liegt.
Ein Nogood-Knoten wird kreiert. Er ist ein Überzeugungsknoten und repräsentiert die
Konjunktion der maximalen Annahmen.
318
Die Behandlung von Widersprüchen
Sei nun u der widersprüchliche Knoten und S die Menge seiner Begründungen. Durch
Entfernen der maximalen Annahmen und aller ihrer Rückwirkungen aus S erhält man die
Menge S#:
S# = S – [RW(a1) W ... W RW(an) W {a1, ..., an}]
S$ sei die Menge aller Rückwirkungen der Nogood-Menge in S, die mit IN markiert sind:
S$ = { x | x 2 [(RW(a1) W ... W RW(an)) X S] und STATUS(x) = IN }
u selbst liegt in S$, aber in S$ liegen keine Annahmen, wegen der Definition der maximalen
Annahmen.
Nun wird ein Rechtfertigungsknoten für den Nogood-Knoten auf folgende Weise
konstruiert:
Sei T die Menge aller Überzeugungsknoten aus S#, die zur aktuellen Unterstützungsmenge AU(v) irgendeines Überzeugungsknotens v 2 S$ gehören.
Dann gilt für den Rechtfertigungsknoten NGR des Nogood-Knotens:
IN-SET(NGR) = {v 2 T| STATUS(v) = IN}
OUT-SET(NGR) = {v 2 T| STATUS(v) = OUT} = {}
Dass OUT-SET(NGR) leer ist, liegt wiederum an der Definition der maximalen Annahmen.
Die maximalen Annahmen sind nicht in S# enthalten, also sind alle Überzeugungsknoten in
S#, die zur aktuellen Unterstützungsmenge eines Knotens in S$ gehören können, keine
Annahmen, haben also ein leeres OUT-SET.
319
Die Behandlung von Widersprüchen
Nun wird eine der maximalen Annahmen als Schuldiger ausgewählt und
„vernichtet“, indem man einen der Überzeugungsknoten im OUT-SET des
Schuldigen mit einer gültigen Rechtfertigung r versieht, die folgendermaßen
definiert ist:
IN-SET(r) = (NM – {Schuldiger}) W {Nogood-Knoten}
OUT-SET(r) = OUT-SET(r – Sch) – {Vernichtungsknoten}
SUP-SET(r) = {Vernichtungsknoten}
Hierbei ist r – Sch die aktuelle, den Schuldigen unterstützende Rechtfertigung
und der Vernichtungsknoten derjenige Knoten im OUT-SET von r – Sch, der für
die Vernichtung des Schuldigen ausgewählt wurde.
Man geht also im Unterstützungsbaum des widersprüchlichen Überzeugungsknotens zurück bis zur ersten Annahme in jedem Zweig. Das sind gerade die
maximalen Annahmen. Abgeleitete Überzeugungen werden dabei übergangen.
320
Die Behandlung von Widersprüchen
Mindestens eine der maximalen Annahmen war falsch und hat den Widerspruch
verursacht. Angenommen, diese werde als Schuldiger ausgewählt.
Sie wird unschädlich gemacht, indem einer ihrer OUT-SET-Knoten eine gültige
Rechtfertigung erhält. Dieser hängt von den übrigen maximalen Annahmen (im
Beispiel u10) und von dem neukreierten Nogood-Knoten ab, dessen Inhalt die
maximalen Annahmen repräsentiert.
Dieser erhält eine sichere Unterstützung, also die Marke IN, durch diejenigen
Überzeugungen, die zur Unterstützung des widersprüchlichen Knotens beitragen,
aber mit den maximalen Annahmen nichts zu tun haben (im Beispiel u3 und u9).
Das heißt, zum Ausschluss der als Schuldiger ausgewählten maximalen
Annahme werden praktisch alle übrigen Überzeugungen, die den
widersprüchlichen Knoten unterstützen, herangezogen, was zur Folge hat, dass
dieser seine Unterstützung verliert.
321
Die Behandlung von Widersprüchen
Aktueller Unterstützungsbaum für widersprüchlichen Knoten u1.
S = {u1, ..., u13}, S# = {u3, u5, ..., u9, u11, ..., u13},
S$ = {u1, u4}, u11 ist nicht-maximale Annahme, T = {u3, u9},
AU(u1) X S# = {u3}, AU(u4) X S# = {u9}
322
Die Behandlung von Widersprüchen
Veränderter aktueller Unterstützungsbaum mit Nogood-Knoten u14,
Schuldigem u2, Vernichtungsknoten u6 und neuer Markierung:
323
Was ist „Bildverstehen“?
= Die Bedeutung von Bildern mit Hilfe von exakt definierten Prozessen ermitteln
Bilder
menschl.
Sehvermögen
Physik
Optik
Konzepte
Kontext
Erfahrung
Zweck
Wissen
Bedeutung
Gefühle
Hauptproblemkreise:
• Zerlegen des Verstehensprozesses in geeignete Teilprozesse
• Repräsentationsformen für Zwischen- und Endresultate
• Identifizieren und Ausnutzen von physikalischen Gesetzmäßigkeiten
• Identifizieren, Repräsentieren und Ausnutzen von Erfahrung und Wissen
324
Schematischer Aufbau eines bildverstehenden Systems
Vorwissen, Weltmodell,
Szenen- und Objektmodell
8
rp
te
n
i
en
n
e
Sz
4
Bildinterpretation 1
Objekte
9
7
3
5
Szenenelemente
Objektteile, 3D-Information
11
10
2
n
15
te
en
m
le
e
n
ne
e
Sz
17
te
en
m
le
e
ild
B
e
nd
e
r
16
ie per
d
r
on Kö
p
s e
re egt
r
o
K ew
B
de
en
r
,
e
te
di
e
n
i
o
b
sp
ge
e
s
r
g
or
un
K
r
ne
,r A
19
e s
ild lus
b
z F
en her
r
e c
Zeit
iff is
D pt
O
18
6
Bildelemente, Bereiche
Kanten, Markante Punkte
1
io
at
t
re
13
12
Bild 3
Bild 2
Bild 1
14
325
Prozesse in einem bildverstehenden System
1:
Segmentierung, Zerlegung eines Bildes in geeignete Bildelemente, dabei
Übergang von ikonischer zu symbolischer Repräsentation, wesentliche
Datenreduktion.
2:
Deutung von Bildelementen als Szenenbestandteile, z.B. Interpretation einer
Helligkeitsdiskontinuität als verdeckende Kontur. Übergang von 2D nach 3D.
Identifizierung von Beleuchtungsphänomenen, z.B. Schatten.
3+4:
Generieren von Objekthypothesen und Einzelbildinterpretationen.
Prozess 3 bringt Szenenhinweise, Prozess 4 bringt Weltwissen, z.B. über
typische Objektformen, ein. Realisierbar durch Vergleich („Match“) einer
unbekannten Beschreibung mit Modellbeschreibungen oder durch
Relaxationstechniken. Gefahr kombinatorischer Explosion bei umfangreichem
Modellrepertoire.
5:
Hypothesenverifikation. Prüfen, ob (vermutete) Objekt- oder Szenenansichten
in einem Bild vorliegen, ggf. Zurückweisung einer durch die Prozesse 3 und 4
erzeugten Hypothese. Bewertungskriterium erforderlich.
326
Prozesse in einem bildverstehenden System
6:
Rückprojektion eines (vermuteten) 3D-Objektes in die Bildebene.
Hypothesenverifikation oder „Interpretationsgesteuerte Segmentierung“.
7+8:
Aufbau einer Szeneninterpretation für die gesamte Bildfolge. Erzeugen von
Bewegungshypothesen mit Hilfe von zeitspezifischen Modellen.
9:
Generieren von Einzelbildhypothesen aus dem zeitlichen Kontext heraus.
Wichtige Komponente für Szenen mit Bewegung: Sobald eine
Szeneninterpretation vorliegt, können weitere Bilder vorwiegend Top-down
interpretiert werden.
10+11: Entsprechen den Prozessen 7 und 8 auf niedrigerer Repräsentationsebene.
Aus zeitlich korrespondierenden Szenenelementen können volumetrische
Objektbeschreibungen abgeleitet werden.
12+13: Bewegungsanalyse durch Vergleich von Bildelementen, z.B. von Bereichen
oder markanten Punkten, Korrespondenzproblem.
14:
Bewegungsanalyse auf Pixelebene. Erzeugen von Differenzbildern,
Änderungsgebieten, Masken für bewegte Objekte und dergleichen.
Berechnungen von Verschiebungsvektorfeldern („optischer Fluß“).
327
Prozesse in einem bildverstehenden System
15+16: Generieren und Verifizieren durch Bewegungshypothesen in 3D, auch mit
Hilfe von Modellwissen (Prozess 8).
17:
3D-Rekonstruktion einer Objektform durch verfolgen bewegter
Bildelemente (Bewegungsstereo). Ausnutzen der geometrischen
Abbildungsgesetze für orthographische Projektionen bzw. perspektivische
Projektionen. Die photometrischen Abbildungsgesetze können auf
ähnliche Weise zur Formbestimmung herangezogen werden.
18:
Rückprojektion von bewegten Szenenelementen, Prädikation von
Trajektorien.
19:
Bewegungsgesteuerte Segmentierung. Aus Änderungsgebieten oder
Diskontinuitäten im optischen Fluß können Objektgrenzen abgeleitet
werden. Steuerung höherer bewegungsspezifischer Prozesse, z.B. von
Gruppierungsverfahren.
328
4 Formen der Repräsentation von Bildmaterial
(A) ikonisch
(C) geometrisch
(B) segmentiert
(D) relational
329
Beispiele für Standardannahmen als Basis
niedriger Bildverstehensprozesse
A1: Benachbarte Pixel gehören zu dem gleichen Objekt, falls es keine
gegenteilige Evidenz gibt.
Dies ist ein Kohärenzprinzip: Objekte sind meist zusammenhängende Einheiten,
die nicht in beliebig kleinen Teilen in einer Szene verteilt sind (Problem: Äste
eines Baumes im Winter). A1 liegt vielen Segmentationsalgorithmen zugrunde.
A2: Ein Objektpunkt, der in einem gewissen Bild an einer bestimmten Stelle
erkannt wird, ist im nächsten Bild ungefähr an der gleichen Stelle zu sehen.
Prinzip der kontinuierlichen Veränderung: Objekte erscheinen oder verschwinden
nicht plötzlich und verändern auch ihre Gestalt, Farbe und Position nicht in einem
Zeitakt. A2 wird bei Bewegungsanalyse angenommen (Problem: Verdeckung,
Verlassen des Bildausschnittes). Es wird z.B. mit A2 der optische Fluss (HORN)
als Feld von Pixel-Verschiebungsvektoren aus lokalen Grauwertveränderungen
berechnet. Außerdem dient A2 zur Auffindung korrespondierender Punkte in
Bildfolgen.
A3: Objekte sind feste Körper, falls es keine gegenteilige Evidenz gibt.
A3 wird bei Bewegungsanalysen zur Rekonstruktion der 3D-Gestalt und zur
Trajektorienbestimmung ausgenutzt.
330
Beispiele für Standardannahmen als Basis
niedriger Bildverstehensprozesse
A4: An Stellen mit geringer Helligkeitsvariation sind keine Objektgrenzen zu
erwarten.
Dagegen werden Helligkeitsdiskontinuitäten meist als Hinweis auf
Objektgrenzen gedeutet. Die Helligkeit hängt ab von:
- der Beleuchtung
- der Reflexivität (physikalische Eigenschaften der Objektoberfläche)
- der Objektgeometrie (Oberflächenorientierung in Relation zu Lichtquelle und
Beobachterposition)
- dem Sensor
Sensor kann künstlich konstant gehalten werden.
Problem: Durch Zusammenfallen von Beleuchtungsdiskontinuitäten und
Objektgrenzen können ebenfalls geringe Helligkeitsunterschiede
auftreten.
A5: Die Position der Lichtquellen und des Beobachters sind möglichst
allgemein zu wählen, falls es keine gegenteilige Evidenz gibt.
Aus A5 folgt eine Reihe wichtiger anderer Annahmen: z.B. Eine Gerade im Bild
entspricht einer Gerade in der beobachteten Szene, da eine gekrümmte Linie
nur unter speziellem Beobachterstandpunkt als gerade erscheint.
331
Bildverstehen bei Strichzeichnungen
Ausganspunkt: natürliches Bild bereits in Strichzeichnung umgesetzt
Arbeiten mit Bauklotz-Welten (Polyeder):
- GUZMANN 1969 (einzelne Polyeder)
- HUFFMANN, CLOWES 1971 (ohne Schatten, nur Tetraeder-Verzweigungen)
- WALTZ 1975 (50 verschiedene Kantenmarkierungen)
- KANADE 1978 (Origami-Welt, offene ‚Kästen‘)
Ziel: Erkennen der einzelnen Objekte, räumliche Relation zwischen den Teilen
Ziel wird erreicht durch Interpretation aller Linien im Bild
Beispiel für eine typische Szene:
332
Klassifikation von Linien und Verzweigungen
Polyeder ohne Schatten weisen folgende Linientypen auf:
1) Begrenzung (markiert durch ‚>‘ oder ‚<‘)
2) innen
2.1) konvex (markiert durch ‚+‘)
2.2) konkav (markiert durch ‚-‘)
Der Pfeil an der Objektbegrenzungslinie ist stets so gerichtet, dass er einer ‚Tour‘ um den
Objektrand entspricht, bei der das Objekt jeweils möglichst rechts liegt.
Beispiel für eine Markierung eines L-förmigen Polyeders:
+
+
+
-
+
Verstehen der physischen Gegebenheiten
Grundidee für Verfahren:
Umkehrung des Prozesses:
Interpretation der Linien
+
+
/
Interpretation der Linien
/
Bildverstehen
Vereinfachende Annahmen zunächst:
- keine Schatten und Spalten
- Alle Verzweigungen enstehen aus der Kreuzung von genau 3 Objektflächen.
- allgemeiner Beobachterstandpunkt
333
Verzweigungstypen in der Polyeder-Welt
L
X
ARROW
K
Falls vereinfachende Annahmen,
nur L, ARROW, FORK und T möglich,
dabei sind allerdings z.B. folgende
Konfigurationen ausgeschlossen
(keine Tetraeder-Verzweigungen):
3
4
FORK
T
PEAK
4
12
4
32
1
KA
4 3
2
1
PSI
334
Verzweigungstypen in der Polyeder-Welt
Bei folgender Konfiguration liegt kein allgemeiner Beobachterstandpunkt vor, da bei
geringfügiger Bewegung des Beobachters andere Verzweigungstypen entstehen:
Wichtigste Einschränkung zunächst: nur Tetraeder-Verzweigungen.
Beispiele für Objekte mit Tetraeder-Verzweigungen (nur L, FORK, ARROW, T):
335
Verzweigungstypen der Polyeder-Welt
Bei 4 Linientypen gibt es 4²=16 Arten, ein L zu markieren
und 4³=64 Arten FORK-, ARROW- und T-Verzweigungen zu markieren.
Obere Schranke: 208 Möglichkeiten
Davon können nur 18 physisch auftreten.
Es kann also die Methode der fortschreitenden Einschränkungen angewandt werden (wie beim
Puzzle)
Beispiele für unmögliche Markierungen von Tetraeder-Verzweigungen:
+
-
-
+
-
Verfahren zum Auffinden der 18 physisch möglichen
Verzweigungen: Jede Verzweigung aus allen möglichen
Blickwinkeln ansehen und Markierungen anbringen.
3 Ebenen für eine Tetraeder-Verzweigung, also 8 OKTANTEN.
336
Verzweigungstypen der Polyeder-Welt
Alle Möglichkeiten untersuchen, die 8 OKTANTEN mit Material zu füllen, und dann
alle entsprechenden Verzweigungen von den ungefüllten OKTANTEN betrachten.
Bei 7 gefüllten OKTANTEN ergibt sich folgender
FORK (nur 1 Blickwinkel möglich)
-
-
Verzweigungsarten bei nur 1 gefüllten OKTANTEN:
+
L
T
T+
+R
L
T+
L
L
+R
R
L
R
+ T
R
337
Verzweigungstypen der Polyeder-Welt
Situationen, in denen nur 2, 4, oder 6 OKTANTEN gefüllt sind, widersprechen der
Annahme von Tetraeder-Verzweigungen.
Beispiel: 2 Fälle: Gegenüberliegend oder im Zentrum zusammenstoßend.
Bei 2 gefüllten Oktanten: Jeweils 4 Flächen an einer Verzweigung.
3 gefüllte Oktanten ergeben 5 Sichten und je 3 neue L- und FORK-Typen
+
L
-
+
R
+
+
R
L
L
- R
338
Verzweigungstypen der Polyeder-Welt
Bei Füllung von 5 Oktanten ergeben sich 3 Blickwinkel: Es werden 2 neue L-Typen
und 1 neuer ARROW-Typ gefunden.
+
- -
-
-
Aufgrund der physischen Beschränkungen ergeben sich insgesamt
folgende 18 Verzweigungstypen:
+
-
-
+
+ +
+
-
+
-
+
-
-
-
-
+ +
+ -
Die Liste ist vollständig, d.h. jeder nicht in der Liste enthaltene Typ kann keiner echten
Tetraederverzweigung entsprechen.
339
Bildverstehen als Suche nach korrekten Markierungen
für Verzweigungen
3 auffällige Bedingungen:
(A) An den Objektgrenzen gibt es nur ‚>‘-Markierungen, die einen Ring im Uhrzeigersinn bilden
müssen.
(B) Es gibt nur einen Typ ARROW, der ‚>‘-Markierungen an der Pfeilspitze trägt. Der Schaft
diese Pfeiles muss mit ‚+‘ markiert sein.
(C) Es gibt nur einen Typ FORK mit einer ‚+‘-Markierung. Für diesen Verzweigungstyp müssen
alle Linien mit ‚+‘ markiert sein.
Beispiel für Markierungsverfahren:
+
+
+
1)
2)
3)
Rand markieren
Eckpunkte müssen ‚+‘ tragen nach (B)
Bildmitte ‚+‘-FORK nach (C)
+ +
+
+ +
+
+
+
+
+ +
+
+
+
+
+
-
-
-
+
-
+
-
-
-
Zusätzlich zu (A)-(C): nur ein ARROW-Typ mit ‚+‘-Spitze: hat weitere ‚+‘ Spitze und ‚-‘-Schaft.
(Dual für ‚+‘-Schaft)
340
Bildverstehen als Suche nach korrekten Markierungen
für Verzweigungen
Falls der Markierungsprozess im Inneren eines Objektes beginnt, entstehen Mehrdeutigkeiten,
die sich erst bei Erreichen des Objektrandes auflösen. Dies ist auch eine Erklärung für
Ambiguitäten bei der menschlichen Wahrnehmung.
Beispiel (bei Konzentration auf das Bildzentrum: Sägeblätter in Reihe oder Treppe?)
Strichzeichnungen, die nicht mit einer konsistenten Markierung versehen werden können,
entsprechen keinem realen Objekt (z.B. Z mit ‚-‘ oder ‚>‘-Markierung). Allerdings gibt es
Strichzeichnungen, die konsistent markiert werden können und trotzdem keinem realen Objekt
entsprechen (planare Flächen A und B treffen an 2 verschiedenen Linien X, Y zusammen).
A
+
+
x
? z
+
y
x
+
y
+
B
341
Bildverstehen als Suche nach korrekten Markierungen
für Verzweigungen
Falls Objekte vor einem Hintergrund (z.B. Tisch, Wand) dargestellt werden, entstehen leicht
Mehrdeutigkeiten.
Beispiel: Welche Objekte liegen
und welche hängen?
Betrachten von Schatten löst Mehrdeutigkeiten in diesen Fällen. Das Einbeziehen von Schatten
vereinfacht das Problem also, anstatt – wie vorher angenommen – es zu verkomplizieren.
Beispiel (Spalten mit c gekennzeichnet)
auf dem Boden
senkrecht festgeklebt
senkrecht festgeklebt
c
c
c
c
c
c
Zeiger im
Schattengebiet
342
Bildverstehen als Suche nach korrekten Markierungen
für Verzweigungen
Die Linien-Typen können noch weiter verfeinert werden. Konkave Kante als Naht
zwischen Objekten wird weiter klassifiziert durch Auseinanderrücken der Objekte und
Analyse der Begrenzungslinie. Das gleiche gilt für Spalten.
-
-
-
-
-
-
343
Bildverstehen als Suche nach korrekten Markierungen
für Verzweigungen
Auf diese Weise kommt man zu folgenden 11 Arten von Linien:
boundaries
real edges
convex
interiors
concave
all lines
+
-
shadows
pseudo edges
c
cracks
c
344
Bildverstehen als Suche nach korrekten Markierungen
für Verzweigungen
Weitere Einschränkungen ergeben sich durch Einbeziehen von Beleuchtungseffekten. Es
werden drei Möglichkeiten für Flächen eines Polyeders betrachtet:
-I
-S
(illuminated):
(shadowed):
Fläche beleuchtet
Schatten eines anderen
Objektes
-SS (self-shadowed): Fläche des Objektes, die
nicht im Licht liegt
I
SS
I
S
I
Bei 3²=9 Beleuchtungskombinationen und 11 Linientypen entstehen max. 99 Möglichkeiten, von
denen lediglich rund 50 möglich sind (z.B. kein Beleuchtungswechsel an konkaver Kante).
Abschätzung der Markierungen
Verzweigungstyp
L
FORK
T
ARROW
kombinatorisch
16
64
64
64
physisch
6
5
4
3
%
37.5
7.8
6.2
4.7
345
Bildverstehen als Suche nach korrekten Markierungen
für Verzweigungen
Waltz hat folgendes empirische Resultat erzielt:
Typ
L
FORK
T
ARROW
PSI
K
X
MULTI
PEAK
KA
kombinatorisch
2.50 x103
1.25 x105
1.25 x105
1.25 x105
6.25 x106
6.25 x106
6.25 x106
6.25 x106
6.25 x106
3.12 x108
Abschätzung der Markierungen
physisch
%
80
3.20 x 100 %
500
4.0 x 10-1%
500
4.0 x 10-1%
70
5.6 x 10-2%
300
4.8 x 10-3%
100
1.6 x 10-3%
100
1.6 x 10-3%
100
1.6 x 10-3%
10
1.6 x 10-4%
30
9.6 x 10-6%
Auch für komplexe Szenen konvergiert der Markierungsprozess durch die Vielzahl der
Nebenbedingungen schnell. Sogar Szenen mit Beleuchtungskoinzidenzen, Objekten mit
Hohlräumen, nicht Tetraeder-Verzweigungen und speziellem Beobachterstandpunkt können mit
dem Waltz-Verfahren markiert werden.
Der Aufwand wächst nur linear mit der Zahl der Objekte in der Szene, da sich die
Nebenbedingungen jeweils nur lokal auswirken.
Problem: In einigen Fällen ergeben sich für eine Konfiguration mehrere Markierungen, falls
keine Schatten vorhanden sind.
346
Bildverstehen als Suche nach korrekten Markierungen
für Verzweigungen
Szenen, die mit dem Markierungsverfahren von Waltz bearbeitet werden können
347
Mehrdeutigkeit bei der Markierung ohne Schatten und
Linienlänge
Für die erste Konfiguration enstehen 3 verschiedene konsistente Markierungen, Davon scheint
zunächst nur die erste plausibel zu sein. Wenn man den Quader aber zu einem Keil verformt
(ohne Änderung von Verzweigungstypen), werden die Interpretationen mit den separierbaren
Begrenzungslinien plausibel.
Problem: Das Modell ist noch zu abstrakt. Die Unterschiede zwischen den drei Konfigurationen
können durch die angegebene Taxonomie von Verzweigungen und Linien nicht erfasst werden.
+
+
+
+
+
+
-
-
+
+
+
348
Mehrdeutigkeit bei der Markierung ohne Schatten und
Linienlänge
Schatten ergeben meist genügend Einschränkungen, die zu
einer eindeutigen Markierung führen.
mehrdeutig
eindeutig
349
Mehrdeutigkeit bei der Markierung ohne Schatten und
Linienlänge
Um die Frage zu beantworten, ob R ein Schatten oder ein Objekt ist,
wird zusätzliches Wissen benötigt: Analyse der Beleuchtungsrichtung
und Suche nach einer Verzweigung, die Schatten verursachen könnte,
schlägt fehl. / R ist Objekt.
?
j
R
350
Mehrdeutigkeit bei der Markierung ohne Schatten und
Linienlänge
Suchproblem bei Markierung: Welche
Verzweigung als nächste markieren?
Für A, B und C gibt es jeweils 2 FORK-Typen.
B
D
E
G
-
C
A
F
-
-
-
Prüfung von Verzweigungen günstigere Reihenin Reihenfolge lexikographi- folge der Markierung
scher Ordnung verursacht
starke Verzweigung
351
Der WALTZ-Algorithmus
Relaxationsmethode = Erreichen eines stabilen Gleichgewichts
Methode der fortschreitenden Einschränkungen
1) Wähle eine erste Verzweigung Vi (Heuristik: mit Begrenzungslinien) und
speichere auf Pi alle Verzweigungstypen, die gemäß ‚VerzweigungsLexikon‘ möglich sind.
2) Falls alle Verzweigungen bearbeitet wurden, Stop.
3) Wähle eine Verzweigung Vi+1, die eine Linie mit einer bereits
bearbeiteten Verzweigung Vj gemeinsam hat, und speichere auf Pi+1 die
Verzweigungen, die mit mindestens einem Element von Pj kompatibel
sind.
4) Prüfe rekursiv für alle benachbarten Verzweigungen, ob sich durch Pi+1
weitere Einschränkungen für die jeweiligen Ps ergeben.
5) Falls alle benachbarten Verzweigungen bearbeitet sind und sich keine
weiteren Änderungen der Ps mehr ergeben, setze i:=i+1, GOTO 2.
352
Der WALTZ-Algorithmus
4
A2
+
+
7
F
+
+
L
A1
2, 5
-
-
2
+
+
+
+
1, 3, 6
-
+
1, 3
1, 3
353
Beispiel für die schnelle Konvergenz des Relaxationsverfahrens
15
16
14
10
9
8
20
7
11
18
6
19
12
5
13
Schritt
Verzweigung
vorher mögliche
Alternativen
aktuell mögliche
Alternativen
17
1
2
3
4
5
6
7
8
9
10
11
12
1
1
2
2
1
3
3
2
1
4
4
3
123
79
76
388
52
9
79
78
123
76
79
52
32
388
78
34
26
79
15
20
2
1
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
1
5
5
4
6
6
7
7
7
6
5
4
6
7
5
4
34
26
79
15
123
593
42
28
33
14
11
18
7
6
4
3
14
20
79
33
14
123
28
593
42
18
11
7
6
22
1
1
1
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
6
3
2
1
8
8
9
9
10
10
11
11
10
12
12
11
10
2
20
14
20
79
123
593
79
9
593
7
8
1
2
2
2
79
1
123
2
593
9
79
7
8
593
12
5
6
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
9
13
13
13
12
2
1
3
14
14
15
15
16
16
16
15
17
2
593
4
12
2
2
2
79
123
79
5
2
-
1
593
4
1
3
1
1
1
79
1
123
2
79
5
1
1
123
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
17
17
12
11
18
18
18
10
11
19
19
19
20
20
20
10
18
123
5
3
5
388
20
6
2
1391
5
123
4
4
4
5
1
1
2
38
20
4
4
1
1391
5
1
123
4
1
1
1 354
Auffinden von Linien in einem heterarchischen
System (SHIRAI 1975)
Beim Verfolgen von Linien wird heuristisches Wissen verwendet:
Zunächst werden die begrenzenden Linien gesucht (starker Kontrast zwischen Objekt und
Hintergrund). Es wird dann nach parallelen Linien gesucht (typisch bei Blöcken). Auch Wissen
über mögliche und erwartete Verzweigungen fließt in die Linienverfolgung ein.
Problem: Bei natürlichen Szenen ist unklar, ob schon bei den unteren Bildverarbeitungsebenen
spezielles Weltwissen einfließen sollte.
355
Bayes’sche Netze
Zur Behandlung und Repräsentation von unsicherem Wissen
Burglary
Earthquake
• die Knoten des Netzes sind Zufallsvariablen
• Intuitive Bedeutung einer Kante von Knoten A zu Knoten B:
A hat einen direkten Einfluss auf B.
• Jeder Knoten hat eine Tabelle mit bedingten
Wahrscheinlichkeiten, die den Einfluss der Eltern auf den
Knoten quantifizieren. P(xi|Parents(Xi))
Alarm
JohnsCall
MaryCall
• Im Graphen gibt es keine Zyklen / gerichteter, azyklischer
Graph (DAG).
• diskrete Zufallsvariablen mit einer endlichen Anzahl von
Zuständen. z. B.: die Variable Earthquake kann folgende Werte
annehmen: {kein, schwach, mittel, stark}
Bedingte Wahrscheinlichkeit: P (B | A ) =
erlaubt
nicht erlaubt
P (A ∧ B )
, P (A ) ≠ 0
P (A )
Produktregel: P (A ∧ B ) = P (A | B )P (B ) = P (B | A )P (A )
Bayes’sche Regel: P (A | B ) =
P (B | A )P (A )
P (B )
356
Bedingte Unabhängigkeitsbeziehungen
D-Separations-Kriterium: (direction-dependent separation)
(1)
X
E
Y
Z
(2)
Z
(3)
Z
E d-separiert X und Y, wenn jeder ungerichtete Pfad von einem Knoten in X zu einem Knoten in
Y bei gegebenem E blockiert wird. Bei gegebenem E wird ein Pfad blockiert, wenn es auf dem
Pfad einen Knoten Z gibt, für den eine der drei folgenden Bedingungen gilt:
(1) Z 2 E und Z hat auf dem Pfad eine eingehende und eine ausgehende Kante.
(2) Z 2 E und Z hat auf dem Pfad zwei ausgehende Kanten.
(3) Weder Z noch einer seiner Nachfolger liegen in E, und Z hat auf dem Pfad zwei
eingehende Kanten.
357
Bedingte Unabhängigkeitsbeziehungen
Beispiel: Bayes’sches Netz, das einige Eigenschaften des elektrischen Systems und des
Motors eines Autos beschreibt.
Batterie
Radio
Benzin
Zündung
Startet
Fährt
(1) Evidenz darüber, ob Zündung funktioniert / Benzin und Radio unabhängig voneinander
(2) Zustand der Batterie bekannt / Benzin und Radio unabhängig voneinander
(3) Keine Evidenz überhaupt / Benzin und Radio unabhängig voneinander
Evidenz darüber, ob Auto startet / Benzin und Radio abhängig voneinander
Auto startet nicht und Radio läuft 0erhöhte Evidenz, dass Benzin alle ist.
358
4 Arten von Inferenz
Q
E
Q
E
E
Q
E
Q
Diagnostic
Causal
(Explaining Away)
Intercausal
E
Mixed
• Diagnostische Inferenz (von den Auswirkungen zu den Ursachen)
• Kausale Inferenz (von den Ursachen zu den Auswirkungen)
• Interkausale Inferenz (zwischen Ursachen einer gemeinsamer Auswirkung)
Die Gegenwart des einen macht das andere weniger wahrscheinlich. / Explaining Away.
• gemischte Inferenz (mehrere der obigen werden kombiniert)
359
4 Arten von Inferenz
P(Burglary|JohnCalls) = 0.016
Anfangswahrscheinlichkeiten
Diagnostische
Inferenz
Kausale
Inferenz
P(JohnCalls|Burglary) = 0.86
P(MaryCalls|Burglary) = 0.67
360
4 Arten von Inferenz
P(Burglary|Alarm) = 0.376
P(Burglary|Alarm o Earthquake) = 0.003
(Explaining Away)
Interkausale
Inferenz
Mixed
P(Alarm|JohnCalls o lEarthquake) = 0.03
(diagnostische und kausale Inferenz)
P(Burglary|JohnCalls o lEarthquake) = 0.017
(interkausale und diagnostische Inferenz)
361
Beispielnetz
• Struktur
Krebsmetastasen A
C Gehirntumor
Calciumspiegel B
Koma D
E Kopfschmerzen
P(a,b,c,d,e) = P(a))P(b|a))P(c|a))P(d|b,c))P(e|c)
• apriori- und bedingte Wahrscheinlichkeiten
Calciumspiegel (B: b1 = normal, b2 = erhöht)
P(b|a): P(b1|a1) = 0.80 P(b2|a1) = 0.20
P(b1|a2) = 0.20 P(b2|a2) = 0.80
Koma (D: d1 = nicht im Koma, d2 = komatös)
P(d|b,c): P(d1|b1,c1) = 0.95
P(d2|b1,c1) = 0.05
P(d1|b1,c2) = 0.20
P(d2|b1,c2) = 0.80
P(d1|b2,c1) = 0.20
P(d2|b2,c1) = 0.80
P(d1|b2,c2) = 0.20
P(d2|b2,c2) = 0.80
Gehirntumor (C: c1 = nein, c2 = ja)
P(c|a): P(c1|a1) = 0.95
P(c2|a1) = 0.05
P(c1|a2) = 0.80
P(c2|a2) = 0.20
Kopfschmerzen (E: e1 = keine, e2 = starke)
P(e|c): P(e1|c1) = 0.40
P(e2|c1) = 0.60
P(e1|c2) = 0.20
P(e2|c2) = 0.80
Krebsmetastasen (A: a1 = nein, a2 = ja)
P(a): P(a1) = 0.80
P(a2) = 0.20
362
Bayes’sche Netze - Lösungsverfahren
• Berechnung der Gesamtwahrscheinlichkeit
A
B
a2 
 a1
P (a ) = 

0.80 0.20 
b1
b2 

P (b | a ) =  a1 0.95 0.05 


a2 0.80 0.20 
– Multiplikation aller apriori- und bedingten Wahrscheinlichkeiten
b1
b2 

P (a, b ) = P (a ) ∗ P (b | a ) =  a1 0.76 0.04 


a2 0.16 0.04 
– Nur an der Wahrscheinlichkeit für einen einzelnen Knoten interessiert:
b1
b2 

b2 
 b
P (b ) = ∑ P (a, b ) = ∑  a1 0.76 0.04 =  1
 0.92 0.08
a
a 
a2 0.16 0.04
– Sehr ineffizient: Tabelle für ein Netz mit n Knoten, die jeweils 2 Hypothesen
haben, hat 2n Einträge.
363
Bayes’sche Netze - Lösungsverfahren
Es existieren 3 Hauptklassen von Algorithmen, die mehrfach verknüpfte
Bayes’sche Netze lösen:
•
Clustering Methoden
Das mehrfach verknüpfte Netz wird in einen einfach verknüpften Polytree
umgewandelt, indem gewisse Knoten zu Megaknoten zusammengefügt
werden.
•
Conditioning Methoden
Es werden Variablen im Netz aufgebrochen, so daß ein Polytree entsteht.
Dieser Polytree wird für jede mögliche Instantiierung der aufgebrochenen
Variablen ausgewertet.
•
Stochastic Simulation Methoden
Das Netz wird dazu benutzt, eine große Anzahl von konkreten Modellen der
Domäne zu erzeugen, die konsistent mit der Wahrscheinlichkeitsverteilung
im Netz sind. Diese Verfahren sind approximativ.
364
Clustering Methoden
F 
T
P (C ) = 

0.5 0.5
F 
T
P (C ) = 

0.5 0.5
Cloudy
Cloudy
C P (R )
C P (S )
T
F
0.10
0.50
Sprinkler
Rain
T
0.80
F
0.20
Sprinkler+Rain
F
Wet Grass
Wet Grass
S R P (W )
S + R P (W )
T
T
0.99
TT
0.99
T F
F T
0.90
0.90
TF
FT
0.90
0.90
F
0.00
FF
0.00
F
P (S + R = x )
C TT
TF
FT
FF
T 0.08 0.02 0.72 0.18
0.40 0.10 0.40 0.10
Problem: Auswahl der richtigen Megaknoten
365
Conditioning Methoden
Anstatt eines komplexen Polytrees viele einfache Polytrees
+Cloudy
+Cloudy
-Cloudy
-Cloudy
Sprinkler
Rain
Sprinkler
Rain
Wet Grass
Wet Grass
P(X|E) wird berechnet als gewichteter Durchschnitt über den Werten, die von
den einzelnen Polytrees berechnet werden.
Problem: möglichst eine kleine Menge von Knoten bestimmen, die das Netz
aufspalten.
366
Stochastic Simulation
Wiederholt Simulationen über der durch das Bayes’sche Netz beschriebenen Welt
Cloudy
Cloudy
Cloudy
Cloudy
Cloudy
Cloudy=T
Sprinkler
Rain
Sprinkler
Rain
Sprinkler
Rain
Sprinkler
Rain
Sprinkler
Rain
Sprinkler=F
Rain=T
Wet Grass
Wet Grass
Wet Grass
Wet Grass
Wet Grass
Cloudy
Sprinkler
Rain
Wet Grass
Wet Grass=T
Bestimmung der interessierenden Wahrscheinlichkeit durch Berechnung der
Frequenz mit der die relevanten Ereignisse auftreten.
Problem: benötigt viel Zeit, um akurate Wahrscheinlichkeiten für
unwahrscheinliche Ereignisse zu berechnen.
367
Herunterladen