Artificial Intelligence, Wintersemester 2013/2014

Werbung
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“.
”
Herunterladen