Artificial Intelligence, Wintersemester 2013/2014
Transcription
Artificial Intelligence, Wintersemester 2013/2014
Math. - Naturwiss. Fakultät Fachbereich Informatik Kognitive Systeme . Prof. A. Zell Artificial Intelligence, Wintersemester 2013/2014 Übungsblatt 8 Abgabe: 12.12.2013, Besprechung: 19.12.2013 Aufgabe 1 Alpha-Beta-Pruning - Korrektheit [6 Punkte] Beweisen Sie die Korrektheit des Alpha-Beta-Pruning Verfahrens. Gehen Sie von der folgenden Situation aus, in der ein Knoten nj betrachtet wird: n1 n2i n2 nj Es soll entschieden werden, ob nj abgeschnitten (pruned ) werden kann. Dies ist genau dann der Fall, wenn der Minimax-Wert von n1 unabhängig von nj ist. Der direkte Pfad von n1 nach nj sei hierbei durch (ni )1≤i≤j gegeben. Außerdem seien die restlichen Knoten in Ebene i durch ni1 bis nibi bezeichnet, wobei bi die Anzahl der übrigen Knoten repräsentiere. (a) Der MAX-Knoten nj ist ein Kind des MIN-Knotens nj−1 . Es gilt also: nj−1 = min nj , nj1 , · · · , njbj Geben Sie ähnliche Formeln für n1 und n2 an. Wie hängen n1 und nj zusammen? (b) Für einen MAX-Knoten ni sei li das Minimum der schon besuchten Knoten der Ebene i links von ni . ri sei das Minimum der noch nicht besuchten Knoten derselben Ebene. Für MIN-Knoten seien li und ri entsprechend die Maximalwerte. Formulieren Sie Ihre Formeln für n1 und n2 mittels dieser Definitionen um, so dass diese keine Knoten der Form nibi mehr enthalten. (c) Leiten Sie nun einen Ausdruck für die obere Schranke β des Wertes von nj her, oberhalb dessen der Wert von n1 unabhängig von nj wird. Hinweis: Ihre Formel für β sollte nur noch von Teilen der Hilfsvariablen li , ri abhängen. (d) Übertragen Sie ihre Ergebnisse für den Fall, dass nj ein MIN-Knoten ist und geben sie einen Ausdruck für α an. Aufgabe 2 Alpha-Beta-Pruning [7 Punkte] Während einer Spielsituation, in der MAX am Zug ist, ergebe sich ein Vorausschau auf die unten dargestellten Bewertungen der Nachfolgesituation. (a) Geben Sie den minimax-Wert für jeden Knoten an. Welchen Zug wählt MAX optimalerweise? Welchen Zustand an den Blättern des Baumes erwartet MAX zu erreichen? (b) Wenden Sie die Alpha-Beta-Pruning-Strategie gemäß des Algorithmus im Skript auf diesen Baum an. Kennzeichnen Sie dazu auch, welche Werte (α, β , v ) in welcher Reihenfolge berechnet werden. Welche Teile des Suchbaums fallen weg und warum? 57 60 0 80 43 23 -13 -7 89 -38 -10 -10 9 -11 1 -81 -75 -63 Aufgabe 3 Alpha-Beta-Pruning - Mystery Game [7 Punkte] Implementieren Sie eine Minimax-Suche mit Alpha-Beta-Pruning in Java. Der Agent soll eine Variante des 7Cell Spieles des letzten Blattes spielen: MysteryGame. (a) Implementieren Sie einen Agenten AlphaBetaAgent, der ein reines Alpha-Beta-Pruning ohne Cutoff-Test durchführt. Laden sie sich herfür das Framework mystery.zip von der Übungsseite herunter und implementieren Sie die Klasse AlphaBetaAgent.java. Testen Sie ihre Implementierung mit 7 Zellen und 2 Steinen mittels der main-Methode der Klasse MysteryGame. (b) Implementieren Sie nun einen Cutoff-Test. Erstellen Sie hierfür eine Klasse, die das Interface AlphaBetaHeuristic implementiert. Die Klasse RandomMysteryGameHeuristic stellt ein Beispiel hierfür dar. Benutzen Sie Ihre Klasse in Ihrem AlphaBetaAgenten, um einen Cutoff durchzuführen. Die Heuristik muss Werte im Interval [−1, 1] liefern. Überlegen Sie sich eine möglichst gute Heuristik und testen Sie diese gegen die gelieferte Zufallsheuristik in der Klasse MysteryGame mit 15 Zellen und 3 Steinen. Sie haben diese Teilaufgabe nur dann erfüllt, wenn Ihr Agent den Zusfallsagenten sowohl als erster, als auch als zweiter Spieler besiegt. Dokumentieren Sie für beide Fälle den Verlauf des Spielfeldes. Bonus: Alle Agenten werden gegeneinander antreten. Die Gruppe(n) mit den meisten Siegen erhält volle Punkte auf dieses Blatt. Jede Planung darf maximal 2s dauern, sonst wird der Agent disqualifiziert. Senden Sie Ihren kommentierten Quellcode, sowie ihre Ergebnisse an [email protected] und [email protected] mit dem Betreff Abgabe KI-Uebung 08“. ”