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