Deductive Reasoning Agents
Transcription
Deductive Reasoning Agents
Multiagentensysteme Deductive Reasoning Agents Volkan Aksu & Sebastian Ptock Überblick Einleitung Deductive Reasoning Agents Der Staubsauger-Roboter Agentenorientierte Programmierung (AOP) Concurrent MetateM (CMM) Zusammenfassung Einleitung Vorher ein bisschen Logik Argument : ist eine Aussage oder eine Folge von Aussagen, die zur Begründung oder zur Widerlegung einer Behauptung (These) angeführt wird. (http://de.wikipedia.org/wiki/Argument) Argumente bestehen aus einer Schlussfolgerung oder Konklusion und einer oder mehreren Prämissen. Einleitung Vorher ein bisschen Logik Überlegen Sie, ob das folgende Beispiel nach unserer Definition ein gültiges Argument ist! Hubschrauber sind Vögel. Alle Vögel sind Lebewesen. —————————————— Hubschrauber sind Lebewesen Einleitung Deduktive Gültigkeit Deduktive Gültigkeit: Wenn alle Prämissen wahr sind, dann muss die Konklusion wahr sein. Es ist Benzin im Tank oder der Motor läuft nicht. Der Motor läuft. —————————————————————— Benzin ist im Tank. Einleitung Deduktion Die Deduktion (v. lat.: deducere = herabführen) (…) ist in (…) der Logik eine Schlussfolgerungsweise vom Allgemeinen auf das Besondere. Genauer gesagt werden mithilfe der Deduktion spezielle Einzelerkenntnisse aus allgemeinen Theorien gewonnen. Sie bezeichnet das Verfahren, aus gegebenen Prämissen (...) Schlussfolgerungen abzuleiten. http://de.wikipedia.org/wiki/Deduktion Beispiel: Alle Menschen sind sterblich. Sokrates ist ein Mensch. Sokrates ist sterblich. Einleitung Deduktion & Induktion Im Gegensatz zur Induktion: Die Induktion geht vom Einzelnen zum Allgemeinen. Beispiel: Platon war ein Mensch. Aristoteles war ein Mensch. Epikur war ein Mensch. Platon ist gestorben. Aristoteles ist gestorben. Epikur ist gestorben. ----------------------------------------------------------- Alle Menschen sind sterblich. Deductive Reasoning Agents Agenten lassen sich in deliberative Agenten und reaktive Agenten unterscheiden. Deliberative Agenten : denken gewissermaßen nach, bevor sie handeln. Reaktive Agenten : reagieren sofort auf Signale. Die logische Schlussfolgerung ist dabei nicht möglich. Deductive Reasoning Agents RALPH Aufbau von RALPH: K amera: sieht Tür Interpretation : übersetzt Wis s ens bas is : kennt Tür Plan : stoppen Aktion : anhalten Deductive Reasoning Agents Probleme Schwierigkeiten bei den deduktiv schließenden Agenten: The transduction problem: Übersetzen der Informationen über die Umgebung in eine adäquate symbolische Repräsentation. The representation/reasoning problem: adäquate, zeitnahe Manipulation / Schlussfolgerung symbolisch repräsentierter Informationen. Deductive Reasoning Agents Formale Definition Wie kann man den Aufbau und Funktionsweise eines solchen Agenten formal beschreiben? >>>Agent als Theorembeweiser Der Agent hat einen internen Zustand Δ. Beispiele für prädikatenlogische Formeln: Offen(ventil221) Temperatur(reaktor4726, 321) Druck(tank7776, 28) Deductive Reasoning Agents Formale Definition L: Menge von Sätzen in PL-1 D: Menge von Datenbanken (L) / Menge von Mengen von PL-1 Formeln D=℘(L) ∆iD: Zustand des Agenten ρ: Menge von Deduktionsregeln ∆├ ρφ heißt: Die Formel φ kann aus ∆ mit den Deduktionsregeln ρ bewiesen werden. Ac: Menge von ausführbaren Aktionen α: Aktion αAc see: S -> Per next: D x Per -> D action: D -> Ac // Objekt als Symbol wahrnehmen // Wahrnehmung in interne Repräsentation aufnehmen // Passende Aktion wählen Deductive Reasoning Agents Formale Defintion Beispiel für Funktion action Der Staubsauger-Roboter Funktionen: vorwärts saugen drehen (nur eine Richtung 90°) Sensor: Dreck Null Blickrichtung: Nord Ost Süd West Der Staubsauger-Roboter Next-Funktion Drei Domänen-Prädikate: In(x,y): Agent ist auf Block(x,y) Dreck(x,y): Dreck auf Block(x,y) Blick(d): Blickrichtung des Agenten Wir möchten eine Funktion “next” entwerfen, die die aktuelle, wahrgenommene Information der Datenbank hinzufügt und alte, nicht mehr benötigte Informationen löscht. So werden Domänen-Prädikate aktualisiert. Der Staubsauger-Roboter Next-Funktion old(∆) = {P(t1...tn) | P ∈ {In, Dreck, Blick} & P(t1…tn) ∈ ∆} Zustand als Prädikat aus Domäne new: D x Per -> D Datenbank aktualisieren next(∆,p) = (∆ \ old(∆)) ∪ new(∆,p) Der Staubsauger-Roboter Deduktionsregeln Deduktionsregeln haben die Form: φ(...) → ψ(...) Ziel: Wenn Dreck vorhanden, dann saugen! In(x,y) Λ Dreck(x,y) → Do(saugen) Wie kommt dieser Agent vorwärts? In(0,0) Λ Blick(Nord) Λ ¬Dreck(0,0) → Do(vorwärts) In(0,1) Λ Blick(Nord) Λ ¬Dreck(0,1) → Do(vorwärts) In(0,2) Λ Blick(Nord) Λ ¬Dreck(0,2) → Do(drehen) In(0,2) Λ Blick(Ost) → Do(vorwärts) Agentenorientierte Programmierung entwickelt von Yoav Shoham Idee: Agenten mit mentalen Eigenschaften zu programmieren (Wünsche, Glauben,Bedürfnisse, Intention etc.) Mentale Eigenschaften – die Eigenschaften zu zweifeln, einzusehen, zu bejahen, zu verneinen, zu wollen, nicht zu wollen, bildlich vorzustellen und zu empfinden – sind Eigenschaften der Seele, nicht des Körpers. (Ansgar Beckermann, Mentale Eigenschaften und mentale Substanzen– Antworten der Analytischen Philosophie auf das 'Leib-Seele-Problem' (2002)) Agentenorientierte Programmierung Programmiersprache Agent0 Erste Programmiersprache für agentenorientiertes Programmieren Ein Agent wird spezifiziert durch: Überzeugungen (beliefs) Verpflichtungen (commitments) Fähigkeiten (capabilities) Verpflichtungsregeln (commitment rules) Agentenorientierte Programmierung commitment rules bestimmen, wie der Agent agiert. Jede Regel enthält: Nachrichtenzustand (message condition) geistigen Zustand (mental condition) Aktion Beispiel einer Verpflichtungsregel (commitment rules): COMMIT( ( agent, REQUEST, DO(time, action) ), ;;; msg conditon ( B, [now, Friend agent] AND CAN (self, action) AND NOT [time, CMT(self, anyaction)] ), ;;; mental condition self, DO(time, action) ) Agentenorientierte Programmierung Concurrent MetateM (CMM) Entwickelt von Michael Fisher Basiert auf direkter Ausführung logischer Formeln Mehrere, konkurrierende Agenten, die über „Broadcast“-Nachrichten kommunizieren Agenten haben zwei Komponenten: Schnittstelle „Computational Engine“ Concurrent MetateM (CMM) Schnittstelle Interaktion mit der Umwelt & anderen Agenten „agent identifier“: Jeder Agent hat eine eigene ID „environment propositions“: Menge von Symbolen, die definiert, welche Nachrichten empfangen werden können „component propositions“: Menge von Symbolen, die definiert, welche Nachrichten gesendet werden können Beispiel: stack(pop, push)[popped, full] agent identifier: stack environment propositions: pop, push component propositions: popped, full Concurrent MetateM (CMM) Computational Engine History: Zustände des Agenten & empfangene Nachrichten Deduktionsregeln: Vorbedingung (Vergangenheit) -> Konsequenz (Zukunft) Aktionsauswahl: Nachricht verschicken Concurrent MetateM (CMM) Regeln Propostional MetateM Logic (PML) basiert auf temporaler Logik: Concurrent MetateM (CMM) Zyklus 1. History aktualisieren, wenn Nachrichten empfangen wurden 2. Regeln auswählen (Vergangenheit der Regeln mit History vergleichen) 3. Den Regeln entsprechend agieren/Nachrichten verschicken: a. Vorher zurückgestellte Aktionen aufgreifen b. Nicht erfüllbare Aktionen für nächsten Durchlauf „merken“ 4. GOTO 1 Concurrent MetateM (CMM) Beispiel Zusammenfassung & Fragen Was sind die zwei Grundprobleme beim deduktiven Schließen? Worin unterscheiden sich reaktive und deliberative Agenten? Was wäre, wenn man den Staubsauger-Roboter auf ein 10x10 Feld setzt? Wie „elegant“ wäre die Implementierung mit logischen Formeln? (Beispiel: Niki der Roboter) Was ist das Grundkonzept der agentenorientierten Programmierung(AOP)? Was versteht man unter “commitment rules”? Aus welchen Komponenten besteht die Schnittstelle eines Agenten in einem Concurrent MetateM System?