Künstliche Intelligenz

Ähnliche Dokumente
Uninformierte Suche in Java Informierte Suchverfahren

Einführung in Heuristische Suche

9. Heuristische Suche

Spielregeln für Schach

Greenfoot: Verzweigungen

Intelligente Agenten

Klausur Informatik-Propädeutikum (Niedermeier/Hartung/Nichterlein, Wintersemester 2012/13)

Technische Universität München Zentrum Mathematik Propädeutikum Diskrete Mathematik. Weihnachtsblatt

Vortrag. Suchverfahren der Künstlichen Intelligenz. Sven Schmidt (Technische Informatik)

Mathematik B-Tag Freitag, 20. November, 8:00 15:00 Uhr. Um die Ecke. Mathematik B-Tag Seite 1 von 9 -

1.5 Umsatzsteuervoranmeldung

1. Das Schachbrett und die Figuren

Untersuchen Sie, inwiefern sich die folgenden Funktionen für die Verwendung als Hashfunktion eignen. Begründen Sie Ihre Antwort.

Intelligente Agenten

Unterscheidung: Workflowsystem vs. Informationssystem

Pacman. Projektbeschreibung. Aus was wir Pacman nachgebaut haben. Anpassungen and die physikalische Welt, oder wie wir das

Kara-Programmierung AUFGABENSTELLUNG LERNPARCOURS. Abb. 1: Programmfenster. Welt neu erstellen; öffnen; erneut öffnen; speichern; speichern unter

Kara programmieren als Automat

Algorithmen & Datenstrukturen 1. Klausur

Grundlagen der Künstlichen Intelligenz

Klausur Algorithmen und Datenstrukturen

Pflichtteilaufgaben zu Stochastik (Pfadregeln, Erwartungswert, Binomialverteilung) Baden-Württemberg

Vorlesung. Vollständige Induktion 1

Effiziente Algorithmen I

Programmablaufplan. Vorkurs Informatik. Sommersemester Institut für Informatik Heinrich-Heine-Universität Düsseldorf

Kara-Programmierung. Mag. Karen Hollweger, BG/BRG Bad Ischl Informatik, Mathematik

Vorlesung Diskrete Strukturen Eulersche und Hamiltonsche Graphen

6 Conways Chequerboard-Armee

F A Q. (Häufig gestellte Fragen)

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

3. Das Reinforcement Lernproblem

5 Malen mit Turtles. 5.1 Wie man Pythons Modul turtle benutzt

Spieler: Alter: Dauer: Inhalt:

Modul Entscheidungsunterstützung in der Logistik. Einführung in die Programmierung mit C++ Übung 2

Reihungen. Martin Wirsing. in Zusammenarbeit mit Matthias Hölzl und Nora Koch 11/03

Projektarbeit. Roboterbau. Von Natascha Gieser Gruppe 6

Theoretische Grundlagen der Informatik

Vorlesung Diskrete Strukturen Eulersche und Hamiltonsche Graphen

Beispiellösungen zu den Übungen Datenstrukturen und Algorithmen SS 2008 Blatt 6

Schleifen dienen dazu, bestimmte Anweisungen immer wieder abzuarbeiten.

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

Fragen? Wie komme ich effizient zu einem Programm? Wie beschreibe/dokumentiere ich meine Idee?

Algorithmen, Datenstrukturen und Programmieren II SS 2001

Klausur Informatik B April Teil I: Informatik 3

WS 2009/10. Diskrete Strukturen

Computer Graphik II Tesselierung impliziter Kurven und Flächen

Technische Universität Wien Institut für Computergraphik und Algorithmen Arbeitsbereich für Algorithmen und Datenstrukturen

1 Karol stellt sich vor

Abgabe: (vor der Vorlesung) Aufgabe 2.1 (P) O-Notation Beweisen Sie die folgenden Aussagen für positive Funktionen f und g:

Übung Theoretische Grundlagen

Definition eines Spiels

Prof. Dr. Heinrich Müller; Dr. Frank Weichert 7. September 2015

Safari Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2017 Brettspielnetz.de

Hackenbusch und Spieltheorie

Grundlagen der Künstlichen Intelligenz

Kapitel 2: Analyse der Laufzeit von Algorithmen Gliederung

Vorkurs Mathematik und Informatik Mengen, natürliche Zahlen, Induktion

ANIMATION - GRUNDLAGEN

Dame Spielanleitung/Spielregeln. Brettspielnetz.de Team Copyright 2016 Brettspielnetz.de

Maschinelles Lernen: Symbolische Ansätze

Binary Decision Diagrams (Einführung)

Übung 6 - Planen, Schliessen unter Unsicherheit, Logik. Aufgabe 1 - Block-Welt-Planung Gegeben sei das nachfolgende Planungsproblem aus der Blockwelt:

Grundlegende Programmierkonzepte: Abläufe mit Wiederholungen (Schleifen)

CasinoBot The Best for the Better Casino

hnefatafl spielanleitung

Grundlagen der Theoretischen Informatik, SoSe 2008

Bericht vom 1. Leipziger Seminar am 25. November 2006

Mathematik ohne Formeln gibt s denn das?

Weitere Beweistechniken und aussagenlogische Modellierung

Version: Chladni-Figuren

Sortierverfahren für Felder (Listen)

Die NXT-Motoren im Detail

Oberstufe (11, 12, 13)

Seminar künstliche Intelligenz

Das heisse Spiel um Stars und Hits

Klausur Grundlagen der Künstlichen Intelligenz

Fallunterscheidung: if-statement

Grundlagen der Theoretischen Informatik Musterlösungen zu ausgewählten Übungsaufgaben

Einschub: Anweisungen und Bedingungen für PAP und Struktogramme (1)

Spielregeln 14/1-ENDLOS (Professionelle und Weltregel)

Einführung in das Invarianzprinzip

TECHNISCHE UNIVERSITÄT MÜNCHEN

Robot Karol - ein Lehrgang

Was bisher geschah Alphabet, Wort, Sprache

Klausur: Diskrete Strukturen I

Technische Universität München Zentrum Mathematik. Übungsblatt 7

Graphentheorie. Eulersche Graphen. Eulersche Graphen. Eulersche Graphen. Rainer Schrader. 14. November Gliederung.

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen

Leitprogramm Bubblesort

Übungsblatt 1. f(n) = f(n) = O(g(n)) g(n) = O(f(n)) Zeigen oder widerlegen Sie: 3 n = Θ(2 n ) Aufgabe 1.2 Gegeben sei die folgende Funktion:

Satz 16 (Multiplikationssatz)

Dialognetze. Ziel : Beschreibung von Methoden und Beschreibungstechniken für den Entwurf und die Dokumentation von Dialogabläufen

a) Wie viele ROM-Bausteine benötigen Sie für den Aufbau des 64x16 ROMs? c) Wie viele Bytes Daten können im 64x16 ROM insgesamt gespeichert werden?

Kapitel 2: Programmfluss steuern

Verbesserungsheuristiken

Präzedenz von Operatoren

DENKEN VERSTEHEN LERNEN Computational Thinking in der Grundschule

Satz 18 (Satz von der totalen Wahrscheinlichkeit)

Computational Intelligence

Transkript:

Künstliche Intelligenz Übungsblatt #1 Modellierung & Suche Prof. Dr. J. Fürnkranz, Dr. G. Grieser Aufgabe 1.1 Wir betrachten folgende Welt: Welt: Die Welt der Staubsauger-Akteure besteht aus Räumen, die rasterförmig angelegt sind. Jeder Raum ist entweder sauber oder dreckig und das Saugen von dreckigen Räumen reinigt sie zuverlässig. Versucht der Akteur die Welt zu verlassen (d.h. er läuft gegen eine Wand), so bleibt er stehen und der Berührungssensor spricht an. Wahrnehmungen: Ein Staubsauger-Akteur bekommt in jedem Schritt einen dreielementigen binären Wahrnehmungsvektor. Das erste Element ist ein Berührungssensor, der bei einer Kollision wahr liefert. Ein Fotosensor liefert wahr, falls der aktuelle Raum dreckig ist und ein Infrarotsensor liefert wahr, falls der Akteur sich an in seinem Ausgangsraum befindet. Die Eingabe der Sensorwerte in das System geschieht, indem die Variable sensor mit einem Array der Größe 3 belegt ist. Aktionen: Ein Staubsauger-Akteur hat für jeden Schritt folgende Möglichkeiten: vorwärts (geradeaus in den nächsten Raum gehen bzw. stehenbleiben, falls er vor einer Wand steht), drehen(gradzahl) (Gradzahl Grad nach rechts drehen), saugen und abschalten. Programm: Wir beschreiben die Programme in einer Pseudonotation. Die aktuellen Werte der Sensoren können Das Programm des Akteurs besteht aus einer Liste von Anweisungen der Form Fakten/Wahrnehmungen --> Aktion/NeuerFakt. Die Anweisungen werden der Reihe nach bearbeitet. Die Regeln werden von oben nach unten durchgesehen. Wenn alle Fakten der linken Seite einer Anweisung wahr sind bzw. die erwähnten Wahrnehmungen gemacht werden, wird die rechte Seite ausgeführt, ansonsten wird mit der nächsten Regel weitergemacht. Wenn die rechte Seite eine Aktion ist, so wird diese ausgeführt und der neue Wahrnehmungsvektor berechnet (d.h. ein Schritt in der Welt gemacht). Ist die rechte Seite ein Fakt, so wird dieser Fakt als wahr gespeichert und die Regelliste von vorn durchsucht. 1

a) Das Beispiel aus der Vorlesung Wenn der aktuelle Raum schmutzig ist, dann sauge, ansonsten gehe in den anderen Raum für die 2-Raum-Welt (der Staubsauger mit seiner Blickrichtung ist als Pfeil dargestellt) ist beispielsweise wie folgt: sensor[2]==wahr --> sauge % saugen, wenn der Raum dreckig ist sensor[1]==wahr --> drehe(180) % umdrehen, falls wir vor einer Wand stehen --> vorwärts % in den anderen Raum gehen (a) Analysieren Sie diesen reflexbasierten Agenten. (b) Ändern Sie ihn so, daß zunächst aus den Sensordaten eine interne Weltbeschreibung erzeugt wird, die dann (anstelle der direkten Sensordaten) als Bedingungen in den Condition-Action-Rules benutzt werden. (c) Was passiert, wenn man diesen Agenten in eine 2x2-Welt setzt? Ändern Sie ihn so, daß er auch dort vernünftig funktioniert. (d) Was passiert in einer 3x3-Welt? Wie könnte hier ein reflexbasierter Agent aussehen? b) Die Welt unseres Staubsauger-Akteurs bestehe nun aus einem 2 2 Schachbrett von Räumen, mit dem Raum links oben als Ausgangsposition. 1 2 3 4 Das Ziel eines Staubsauger-Akteurs nach seiner Aktivierung ist die schnellste Reinigung seiner Welt, d.h. in der kleinsten Anzahl von Schritten. Kollisionen sollen dabei möglichst vermieden werden. Um unnötige Störungen zu vermeiden, soll nur dort gesaugt werden, wo auch Dreck ist. Am Ende soll eine Selbstabschaltung an der Ausgangsposition erfolgen. (a) Der Roboter schaue zunächst in Richtung Raum 2 und der einzige dreckige Raum sei Raum 3. Geben Sie das Programm an, das das Ziel des Akteurs am besten erfüllt. (b) Geben Sie ein allgemeines Programm an, das das Ziel des Akteurs am besten erfüllt. c) Verändern Sie den Roboter so, daß man ihn in eine beliebige (aber endliche) Welt setzen kann. Zu jedem Zeitpunkt gibt es einen Pluspunkt pro sauberem Raum, einen Minuspunkt pro schmutzigen Raum und (da diese dann neu gestrichen werden muß) 10 Minuspunkte pro Wand, gegen die gefahren wurde. (a) Konzipieren Sie einen Roboter, der sich rational in dieser Welt verhält. (b) Was ändert sich, wenn Sie zusätzlich noch einen Minuspunkt pro Bewegung (vorwärts, drehen, saugen) erhalten? 2

Aufgabe 1.2 Gegeben ist ein Spielbrett mit 7 Feldern, auf dem 3 weiße und drei schwarze Steine verteilt sind (auf jedem Feld darf nur maximal ein Stein liegen): Ein Stein darf nun wie folgt bewegt werden: Ein Stein darf in ein benachbartes leeres Feld gezogen werden. Kosten: 1. Ein Stein darf über einen oder zwei andere Steine in ein leeres Feld gezogen werden. Kosten: Anzahl der übersprungenen Steine. Das Ziel ist nun, die Ausgangssituation w s w w s s mit minimalen Kosten in die Zielkonfiguration w w w s s s zu bringen, d.h. links alle weißen und rechts alle schwarzen Steine und das Loch genau in der Mitte zu haben. a) Wenden sie die unterschiedlichen uninformierten Suchverfahren auf das Problem an, jeweils einmal mit und ohne closed list. Wenn Sie einen Knoten expandieren erzeugen Sie die Nachfolgeknoten jeweils so, daß zunächst der am weitesten links stehende Stein bewegt wird, dann der zweitlinkeste usw. b) Welche Heuristik würden Sie für eine informierte Suche verwenden? Ist Ihre Heuristik admissible und/oder consistent? Es bieten sich die beiden Heuristiken h MIS und h MAN aus der Vorlesung an. h MAN ist jedoch nicht konsistent, da die Kosten für das Überspringen eines einzelnen Steines 1 betragen, die Heuristik jedoch hier den Wert 2 berechnet. h MAN ist für diese Aufgabe nicht geeignet. h MIS dagegen ist admissible und konsistent. (Begründung analog zu nächsten Teilaufgabe.) c) Wenden Sie den A -Algorithmus an. Als Heuristik verwenden wir h MIS, d.h. die Anzahl falsch platzierter Steine. Wir beginnen mit w s w w s s und expandieren diesen Knoten. Als Nachfolger ergeben sich: 3

Da wir nun zwei Knoten mit Bewertung 2 haben, wählen wir einen aus, z.b. Da der vorletzte Knoten bereits mit geringeren bisherigen Kosten (d.h. g(n) = 1 statt 2 erzeugt wurde, wird er geprunt und unsere Openlist besteht also aus Wir wählen den Knoten mit dem geringsten Wert, also w s w s w s g(n) = 3, h MIS = 3 f(n) = 6 w s w s w s g(n) = 2, h MIS = 2 f(n) = 4 Auch hier werden wieder der vorletzte und der letzte Knoten ignoriert, unsere Openlist ist nun: w s w s w s g(n) = 3, h MIS = 3 f(n) = 6 w s w s w s g(n) = 2, h MIS = 2 f(n) = 4 Wählen wir nun wieder zufällig einen unter den Knoten mit der Bewertung 4 aus, sagen wir 4

w w w s s s g(n) = 4, h MIS = 1 f(n) = 5 w w w s s s g(n) = 4, h MIS = 1 f(n) = 5 w w w s s s g(n) = 4, h MIS = 0 f(n) = 4 w s w w s s g(n) = 5, h MIS = 2 f(n) = 7 Der Knoten w w w s s s ist ein Endknoten, wir sind jedoch im allgemeinen noch nicht fertig! Wir wissen jetzt, daß das Ziel höchstens mit Kosten 4 erreicht werden kann. Es gibt zwar noch Knoten in unserer Openlist, diese sind jedoch alle ebenfalls mit 4 oder höher bewertet. Da unsere Heuristik admissible ist, d.h. die realen Kosten unterschätzt, werden jedoch alle noch offenen Knoten mindestens die Kosten 4 verursachen und wir sind tatsächlich fertig. Im allgemeinen jedoch kann der Fall eintreten, daß in der Openlist noch Knoten mit Kosten < unseren gefunden Zielkosten enthalten sind. In diesem Fall müssen die auch noch untersucht werden, da es ja noch einen kürzeren Weg geben kann. Aufgabe 1.3 a) Beweisen Sie, daß die Heuristiken h MIS und h MAN aus der Vorlesung consistent sind. Die Heuristik h MIS zählt die Anzahl der falsch platzierten Steine. Mit jedem Zug kann maximal ein Stein mehr in die richtige Position gebracht werden, d.h. es gilt h MIS (n) h MIS (n ) + 1, falls n eine Nachfolgeposition von n ist. Auf der anderen Seite sind die Kosten für einen Zug (d.h. die Bewegung eines Steines) jeweils 1, d.h. es gilt h MIS (n) c + h MIS (n ) für alle Nachfolgepositionen n. Die Manhattan-Distanz h MAN zählt die Anzahl der Felder, die jeder Stein minimal überqueren muß, um zur Zielposition zu gelangen. Auch hier gilt wieder, daß mit jedem Zug sich die Manhattan-Distanz maximal um 1 verringern kann, d.h. h MAN (n) h MAN (n ) + 1, ergo h MAN (n) c + h MAN (n ). b) Beweisen Sie, daß die Kombination zweier admissible Heuristiken mittels max wieder admissible ist. Seien h 1 und h 2 zwei admissible Heuristiken, d.h. es gilt h 1 (n) h (n) und h 2 (n) h (n), für alle Zustände n. Daraus folgt direkt max{h 1 (n), h 2 (n)} h (n) für alle Zustände n. Somit ist die Heuristik h 3 (n) = max{h 1 (n), h 2 (n)} ebenfalls admissible. 5