Math. - Naturwiss. Fakultät Fachbereich Informatik Kognitive Systeme . Prof. A. Zell Artificial Intelligence, Wintersemester 2011/2012 Übungsblatt 4 Abgabe: 22.11.2011, Besprechung: 24.11.2011 Aufgabe 1 Recursive Best-First Search (RBFS) [6 Punkte] Bestimmen Sie den kürzesten Weg von Berlin nach Hamburg, indem Sie den Recursive Best-First Search Algorithmus selbst ausführen. Zeichnen Sie dazu den Suchbaum und beschriften Sie ihn so, wie der Algorithmus vorgehen würde. Der Lösungsweg muss erkennbar bleiben, Sie dürfen also keine Zwischenschritte weglassen und nur das Endergebnis hinschreiben. Die Beschriftung soll dem in der Vorlesung vorgestellten Schema folgen: Städte: als Elipse mit dem Stadtnamen beschriftet f limit : in einem Kästchen oben am Stadtknoten f (n): als g(n) + h(n) = f (n) unter dem Stadtknoten Benutzen Sie den Graphen mit den Verbindungen und Entfernungen, den Sie für Übungsblatt 3 in der Datei treesearchastar.lsp bekommen haben. Als Schätzfunktion nehmen Sie die Luftlinien-Entfernung. Zur Bestimmung der Luftlinien-Entfernung zwischen zwei Städten können Sie die für Übungsblatt 3 implementierte Funktion nehmen, falls Sie diese dort benutzt haben, oder eine andere gültige Informationsquelle (z.B. http://www.luftlinie.org/). Geben Sie in jedem Fall an, was Sie benutzt haben. Zur Erleichterung der Korrektur können Sie in Stichpunkten kurz die Schritte beschreiben, die Sie bei der Ausführung der RBFS durchführen. Aufgabe 2 Recursive Best-First Search Programmierung in Lisp [8 Punkte] Laden Sie sich von der Übungsseite die Datei treesearchrbfs.lsp herunter. In diesem finden Sie einen vordefinierten Funktionsrumpf für rbfs sowie die Funktionen (expand city), (getdistance city1 city2) und (getcoordinates city). (expand city) liefert eine Liste der von city aus errreichbaren weiteren Städte und (getcoordinates city) liefert Ihnen die geographische Breite und Länge der betreffenden Stadt. (getdistance city1 city2) gibt ihnen die Distanz zwischen den Städten city1 und city2 zurück sowie nil, falls city1 und city2 nicht benachbart sind. (a) Implementieren Sie RBFS in LISP mit der Luftlinien-Entfernung als Schätzfunktion. (b) Führen Sie die von Ihnen implementierten Funktionen für die folgenden Suchanfragen ( KölnKoblenz; Berlin-Hamburg; Freiburg-Dresden ) aus. (c) Welche Städte wurden besucht und wie ist der gefundene Pfad? (d) Vergleichen Sie das Ergebnis mit den durch A* und greedy-best-first-search gefundenen Routen. Aufgabe 3 Effektiver Verzweigungsfaktor [6 Punkte] Geben Sie die Kosten, also die Anzahl der generierten Knoten, und den effektiven Verzweigungsfaktor für die folgenden Suchalgorithmen für die drei Routen (Köln-Koblenz; Berlin-Hamburg; Freiburg-Dresden) an: Iterative Tiefensuche A∗ mit h1 = 0 A∗ mit h2 = Luftlinien-Entfernung von der aktuellen Stadt zum Ziel Senden Sie Ihre kommentierte Implementierung sowie Ihre Ergebnisse an [email protected], [email protected] UND [email protected] mit dem Betreff “Abgabe KI-Uebung 04”.