monkey(a), at(a,q), on_floor(a), pos(q), pos(p) monkey(a), box(k), at(a,p), at(k,p), on_floor(a), pos(p)



Ähnliche Dokumente
Einführung in die Künstliche Intelligenz. SS 17 - Prof. Dr. J. Fürnkranz. Beispiellösung für das 4. Übungsblatt. Aufgabe 1 Planen, STRIPS

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

1 topologisches Sortieren

Primzahlen und RSA-Verschlüsselung

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

1 Mathematische Grundlagen

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

Erstellen von x-y-diagrammen in OpenOffice.calc

Mathematischer Vorbereitungskurs für Ökonomen

Lineare Gleichungssysteme

Informationsblatt Induktionsbeweis

Grundlagen der Theoretischen Informatik, SoSe 2008

Leere Zeilen aus Excel-Dateien entfernen

7 Rechnen mit Polynomen

Bevor lineare Gleichungen gelöst werden, ein paar wichtige Begriffe, die im Zusammenhang von linearen Gleichungen oft auftauchen.

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Handbuch. NAFI Online-Spezial. Kunden- / Datenverwaltung. 1. Auflage. (Stand: )

Einführung in. Logische Schaltungen

1. Kennlinien. 2. Stabilisierung der Emitterschaltung. Schaltungstechnik 2 Übung 4

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

Einführung in die Algebra

Lineare Gleichungssysteme

MORE Profile. Pass- und Lizenzverwaltungssystem. Stand: MORE Projects GmbH

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Schrittweise Anleitung zur Erstellung einer Angebotseite 1. In Ihrem Dashboard klicken Sie auf Neu anlegen, um eine neue Seite zu erstellen.

Anleitung zur Erstellung von Serienbriefen (Word 2003) unter Berücksichtigung von Titeln (wie Dr., Dr. med. usw.)

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Musterlösungen zur Linearen Algebra II Blatt 5

Elemente der Analysis I Kapitel 2: Einführung II, Gleichungen

Das sogenannte Beamen ist auch in EEP möglich ohne das Zusatzprogramm Beamer. Zwar etwas umständlicher aber es funktioniert

Arbeiten mit UMLed und Delphi

Lernmaterial für die Fernuni Hagen effizient und prüfungsnah

WinVetpro im Betriebsmodus Laptop

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Feiertage in Marvin hinterlegen

Hohe Kontraste zwischen Himmel und Landschaft abmildern

Klassenarbeit zu linearen Gleichungssystemen

Anleitung über den Umgang mit Schildern

Aufgaben Leiten Sie die Formeln (9) und (10) her! Vorbetrachtungen. Der High-Fall

Lineare Gleichungssysteme

Animationen erstellen

Erfahrungen mit Hartz IV- Empfängern

Theoretische Grundlagen der Informatik

Fax einrichten auf Windows XP-PC

Wie Sie mit Mastern arbeiten

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

R. Brinkmann Seite Schriftliche Übung Mathematik Stochastik II (Nachschreiber) Jan. 2007

Synchronisierung. Kommunikationstechnik, SS 08, Prof. Dr. Stefan Brunthaler 73

Pädagogische Hochschule Thurgau. Lehre Weiterbildung Forschung

Lineare Differentialgleichungen erster Ordnung erkennen

ANLEITUNG - WIE UNTERSTÜTZE ICH AUF STARTNEXT?

Serienbrieferstellung in Word mit Kunden-Datenimport aus Excel

Übungsaufgaben Tilgungsrechnung

Korrelation (II) Korrelation und Kausalität

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Lösung. Prüfungsteil 1: Aufgabe 1

Kurzanleitung: Verbinden mehrerer PDF-Dokumente zu einem einzigen PDF-Dokument mit FreePDF XP Join

impact ordering Info Produktkonfigurator

TECHNISCHE UNIVERSITÄT MÜNCHEN

Wir machen neue Politik für Baden-Württemberg

Lizenzierung von SharePoint Server 2013

Alle Schlüssel-Karten (blaue Rückseite) werden den Schlüssel-Farben nach sortiert und in vier getrennte Stapel mit der Bildseite nach oben gelegt.

Im Jahr t = 0 hat eine Stadt Einwohner. Nach 15 Jahren hat sich die Einwohnerzahl verdoppelt. z(t) = at + b

Datenbanken Kapitel 2

Java-Programmierung mit NetBeans

Professionelle Seminare im Bereich MS-Office

ICT-Cloud.com XenApp 6.5 Configuration Teil 2

Erstellen einer Collage. Zuerst ein leeres Dokument erzeugen, auf dem alle anderen Bilder zusammengefügt werden sollen (über [Datei] > [Neu])

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint

Satz. Für jede Herbrand-Struktur A für F und alle t D(F ) gilt offensichtlich

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!

Kurzanleitung MAN E-Learning (WBT)

Abschlussprüfung Realschule Bayern II / III: 2009 Haupttermin B 1.0 B 1.1

Datenbanken Microsoft Access 2010

Vorkurs Mathematik Übungen zu Differentialgleichungen

Der Gabelstapler: Wie? Was? Wer? Wo?

Monatstreff für Menschen ab 50 Temporäre Dateien / Browserverlauf löschen / Cookies

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

Verkehrsteilnehmer. Beispiel: Wir betrachten die Modellierung von Handlungskomponenten wie Verkehrsteilnehmern und Straßen.

Zwischenablage (Bilder, Texte,...)

Schleswig-Holstein Kernfach Mathematik

CAQ Software für Ihr Qualitätsmanagement. Ablauf für die Erfassung der Fehler in der Fertigung

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Stellvertretenden Genehmiger verwalten. Tipps & Tricks

Anleitung Postfachsystem Inhalt

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Teiltransparente Bilder

6.2 Scan-Konvertierung (Scan Conversion)

15.3 Bedingte Wahrscheinlichkeit und Unabhängigkeit

Einbau bzw. Umbau einer USB-Schnittstelle für das Testboard TB1 nicht nur für il-troll

Satzhilfen Publisher Seite Einrichten

Hier ist die Anleitung zum Flashen des MTK GPS auf der APM 2.0. Prinzipiell funktioniert es auch auf der APM 2.5 und APM 1.

Jetzt neu: Online Reporting Schritt für Schritt durch das Online Reporting (OLR) Online Liedmeldung

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

IBIS Professional. z Dokumentation zur Dublettenprüfung

Simulation LIF5000. Abbildung 1

1: 9. Hamburger Gründerpreis - Kategorie Existenzgründer :00 Uhr

(C)opyright 2009 by Jochen Vajda

Transkript:

Einführung in die Künstliche Intelligenz WS 14/15 - Prof. Dr. J. Fürnkranz Beispiellösung für das 4. Übungsblatt (9.12.2014) Aufgabe 1 Planen, STRIPS In dieser Beispiellösung wurde eine sehr direkte Modellierung benutzt. a) pos(p1) % p1 ist eine Position box(k) % k ist eine Kiste pos(p2) % p2 ist eine Position at(k,p3) % Kiste k ist auf Position p3 pos(p3) % p3 ist eine Position toy(s1) % s1 ist ein Spielzeug monkey(a) % a ist ein Affe toy(s2) % s2 ist ein Spielzeug at(a,p1) % Affe a ist auf Position p1 toy(s3) % s3 ist ein Spielzeug hungry(a) % Affe a ist hungrig at(s1,p1) % Spielzeug s1 ist auf Position p1 on_floor(a) % Affe a ist auf dem Boden at(s2,p2) % Spielzeug s2 ist auf Position p2 banana(b) % b ist eine Banane at(s3,p3) % Spielzeug s3 ist auf Position p3 at(b,p2) % Banane b ist auf Position p2 b) go(a,p) monkey(a), at(a,q), on_floor(a), pos(q), pos(p) at(a,p) at(a,q) push(a,k,p) monkey(a), box(k), at(a,q), at(k,q), on_floor(a), pos(q), pos(p) at(a,p), at(k,p) at(a,q), at(k,q) throw(a,s,p) monkey(a), toy(s), at(a,q), at(s,q), on_floor(s), pos(q), pos(p) at(s,p) at(s,q) up(a,k) monkey(a), box(k), at(a,p), at(k,p), on_floor(a), pos(p) on_box(a) on_floor(a) down(a) monkey(a), on_box(a) on_floor(a) on_box(a) eat(a,b) monkey(a), banana(b), at(a,p), at(b,p), on_box(a), pos(p) full(a) hungry(a), at(b,p) 1

c) Die Formulierung des Ziels lautet: full(a) Der kürzeste Plan hierfür ist: go(a,p3) push(a,k,p2) up(a,k) eat(a,b) Die folgende Tabelle veranschaulicht die geltenden Fakten vor bzw. nach der Abarbeitung einer Aktion. Start go(a,p3) push(a,k,p2) up(a,k) eat(a,b) pos(p1) pos(p1) pos(p1) pos(p1) pos(p1) pos(p2) pos(p2) pos(p2) pos(p2) pos(p2) pos(p3) pos(p3) pos(p3) pos(p3) pos(p3) monkey(a) monkey(a) monkey(a) monkey(a) monkey(a) at(a,p1) at(a,p3) at(a,p2) at(a,p2) at(a,p2) hungry(a) hungry(a) hungry(a) hungry(a) full(a) on_floor(a) on_floor(a) on_floor(a) on_box(a) on_box(a) banana(b) banana(b) banana(b) banana(b) banana(b) at(b,p2) at(b,p2) at(b,p2) at(b,p2) - box(k) box(k) box(k) box(k) box(k) at(k,p3) at(k,p3) at(k,p2) at(k,p2) at(k,p2) toy(s1) toy(s1) toy(s1) toy(s1) toy(s1) toy(s2) toy(s2) toy(s2) toy(s2) toy(s2) toy(s3) toy(s3) toy(s3) toy(s3) toy(s3) at(s1,p1) at(s1,p1) at(s1,p1) at(s1,p1) at(s1,p1) at(s2,p2) at(s2,p2) at(s2,p2) at(s2,p2) at(s2,p2) at(s3,p3) at(s3,p3) at(s3,p3) at(s3,p3) at(s3,p3) Aufgabe 2 Vorwärts-, Rückwartsplanen a) Je nach Implementierung der Breitensuche werden die gestrichelt umrandeten Knoten erzeugt oder nicht, d.h. falls der Goal-Test unmittelbar nach Expandierung eines Knotens angewendet wird, werden die die gestrichelt umrandeten Knoten nicht erzeugt. Es wird der Plan (a 2, a 3 ) gefunden., f3, f4 f1,, f3, f4 f1,, f4 f1,, f3, f4 f1,, f3, f4 f1,, f4 Eine Tiefensuche ohne besondere Vorkehrungen könnte also immer wieder die Aktion A2 versuchen und in einer unendlichen Rekursion am Ziel vorbeilaufen. b) Es werden folgende Pläne gefunden: (a 3, a 2 ), (a 3, a 2, a 1, a 3 ) und (a 2, a 3 ) 2

f1, f1, f4, f4 a1 f1,, f3 f1, Der durch die Rückwärtssuche entstehende Suchraum ist also im Gegensatz zur Vorwärtssuche in a) endlich und klein. Aufgabe 3 Partial-Order Planning a) Im Partial-Order Planning Algorithmus finden verschiedene Selektionen, z.b. die Wahl der nächsten open precondition oder die Wahl der nächsten Aktion für die Verfeinerung des Plans, statt, die auf den Vorlesungs-Folien und in der Aufgabenstellung nicht näher erläutert bzw. spezifiziert werden. Hier war es erlaubt, eine mehr oder weniger beliebige gültige Selektion vorzunehmen. Für diese Beispiellösung wurde eine Abarbeitungsfolge benutzt, die ein Konflikt beinhaltet und nicht zu aufwendig ist. In blau werden die Änderungen dargestellt. Der Anfangszustand sieht folgendermaßen aus: Actions = {Start, Finish} Orderings = {Start < Finish} Causal Links = {} Open preconditions = {on(a,table), on(b,table), on(c,table), on(d,table)} putdown(a), putdown(b), putdown(c), putdown(d), Start Es wird putdown(a) ausgewählt. Actions = {Start, Finish, putdown(a)} Start < putdown(a), putdown(a) < Finish} Causal Links = {putdown(a) on(table(a) Finish} Open preconditions = {on(b,table), on(c,table), on(d,table), holding(a)} putdown(b), putdown(c), putdown(d), Start, unstack(a,b) Es wird unstack(a,b) ausgewählt. Hier handelt es sich um einen Fall, in dem Variablen ungebunden vorkommen. Wir wählen den Ansatz, jetzt eine beliebige Substitution vorzunehmen (siehe Folie 21), nämlich {b/b} (also unstack(a,b)). Actions = {Start, Finish, putdown(a), unstack(a,b)} unstack(a,b) < putdown(a)} unstack(a,b) holding(a) putdown(a)} Open preconditions = {on(b,table), on(c,table), on(d,table), handempty, b(a), b(b), on(a,b)} putdown(b), putdown(c), putdown(d), Start Es wird Start ausgewählt. Actions = {Start, Finish, putdown(a), unstack(a,b) } unstack(a,b) < putdown(a)} Start handempty unstack(a,b)} Open preconditions = {on(c,table)} 3

putdown(c) Die Wahl ist eindeutig und es wird putdown(c) ausgewählt. Actions = {Start, Finish, putdown(a), unstack(a,b), putdown(c) } Start < putdown(c), putdown(c) < Finish} Causal Links = {putdown(a) on(table(a) Finish, putdown(c) on(c,table) Finish} Open preconditions = {holding(c)} unstack(c,b) Die Wahl ist eindeutig und es wird hier unstack(c,b) mit der Substitution {d/b}, also unstack(c,d) ausgewählt. Es wird nun in zwei Schritten das Refining dargestellt, da hier ein Konflikt auftritt. Im folgenden ist der Zustand vor der Konflikt-Auflösung dargestellt. Actions = {Start, Finish, putdown(a), unstack(a,b), putdown(c), unstack(c,d) } Start < unstack(c,d), unstack(c,d) < Finish} unstack(c,d) holding(c) putdown(c)} Open preconditions = {handempty, b(c), b(d), on(c,d)} Die Aktion unstack(c,d) verursacht ein Konflikt mit dem kausalen Link da es handempty als Effekt hat und zwischen Start und unstack(a,b) eintreten kann. Dieser Konflikt kann nur dadurch gelöst werden, in dem das Ordering unstack(a,b) < unstack(c,d) eingefügt wird. Es gilt nun also: Actions = {Start, Finish,putdown(a), unstack(a,b), putdown(c), unstack(c,d) } unstack(c,d) holding(c) putdown(c)} Open preconditions = {handempty, b(c), b(d), on(c,d)} Refining - folgende mögliche Aktionen stehen zur Auswahl (*): Start, putdown(x) Es wird Start gewählt. 4

Actions = {Start, Finish, putdown(a), unstack(a,b), putdown(c), unstack(c,d) } Start handempty unstack(c,d), Start b(c) unstack(c,d), Start b(d) unstack(c,d), Start on(c,d) unstack(c,d)} Open preconditions = {} Die Aktion unstack(a,b) verursacht ein Konflikt mit dem kausalen Link Start handempty unstack(c,d), da es handempty als Effekt hat und zwischen Start und unstack(c,d) eintreten kann. Dieser Konflikt kann nur dadurch gelöst werden, in dem das Ordering unstack(c,d) < unstack(a,b) eingefügt wird. Das allerdings wäre ein Widerspruch zu dem bereits eingefügten Ordering unstack(a,b) < unstack(c,d). Damit müssen wir ein Backtracking zu (*) machen und eine andere Aktion, nämlich putdown(a), auswählen: Actions = {Start, Finish, putdown(a), unstack(a,b), putdown(c), unstack(c,d) } putdown(a) < unstack(c,d)} putdown(a) handempty unstack(c,d)} Open preconditions = {b(c), b(d), on(c,d)} Start Es wird Start gewählt. Das geschieht nun drei Mal, je für b(c), b(d) und on(c,d): 5

Actions = {Start, Finish, putdown(a), unstack(a,b), putdown(c), unstack(c,d) } putdown(a) < unstack(c,d)} putdown(a) handempty unstack(c,d), Start b(c) unstack(c,d), Start b(d) unstack(c,d), Start on(c,d) unstack(c,d)} Open preconditions = {} Da nun keine Preconditions mehr offen sind, sind wir fertig. Unten sieht man eine Version der Lösung, in der redundante Ordering Bedingungen entfernt wurden. Actions = {Start, Finish, putdown(a), unstack(a,b), putdown(c), unstack(c,d) } Orderings = {Start < unstack(a,b), unstack(c,d) < putdown(c), putdown(c) < Finish, unstack(a,b) < unstack(c,d), putdown(a) < unstack(c,d)} putdown(a) handempty unstack(c,d), Start b(c) unstack(c,d), Start b(d) unstack(c,d), Start on(c,d) unstack(c,d)} Open preconditions = {} b) Der oben gefundene Plan ist linear, und erlaubt daher nur eine Abarbeitung. 6