Ich möchte den Pseudo-Code für minmax Algorithmus erhalten. Ich muss zwei Funktionen machen, def maxAgent (gameState, Tiefe) und minAgent. Gibt es eine Stelle, die das Recht und die einfachen Pseudo-Code für sie hat.
pseudcode für minmax Algorithmus
Der minmax Algorithmus versucht, den Score für Spieler A zu maximieren und die Punktzahl für Spieler B. Bei einem gegebenen Knoten zu minimieren, können Sie das Endergebnis von optimal Spiel finden, indem Sie die max (für A) einnehmen oder min (B) die Punktzahl Nachfolgerknoten.
Unter der Annahme, dass die Blattknoten ein zugewiesenes Gewinner haben (1 A, 1 für B), während alle anderen Knoten einen Wert von 0 haben, können Sie dann die endgültige Gewinnergebnis mit etwas für A berechnen wie
getMaxScore(node) {
score = node.score;
for each child node
score = max(score, getMaxScore(node))
next
return score;
}
Dies ist der grundlegende Algorithmus. Sie können die Auswertung Kurzschluss, sobald die Partitur wird 1 dann Sie einen bekannten Sieg für A. haben
Der Algorithmus ist für B, getMinScore, nur Sie die min-Funktion verwenden, und wenn ein Kurzschluss, sucht -1.
Zwei Spieler, A und B, abwechselnd zu spielen.
Wir werden eine Bewertungsfunktion f gegeben, die eine gegebene Plattenposition auswertet, P. Größere Werte von f (P) sind besser für A und schlechter für B (dh f (P) ist eine Schätzung, wie „gut“ P ist für eine ohne weiteres Look-Ahead zu tun).
Betrachten wir eine Vorstandsposition P.
Wenn P ein Blattknoten ist (das heißt, P eine Gewinnstellung oder haben wir so weit voraus sah aus, als wir wollen), dann für diesen Knoten wir f (P) als die Partitur zurückzukehren.
Ansonsten ist P kein Blattknoten und hat Kinder C1, ..., Cn. Wir berechnen rekursiv die Noten für die Kinder, so dass S1, ..., Sn.
Wenn A bei P spielt dann für P die Partitur max {S1, ..., Sn} da A wird immer seinen Vorteil zu maximieren spielen.
Wenn B bei P spielt dann für P die Partitur min {S1, ..., Sn} da B immer A den Vorteil zu minimieren spielen.
Das sollte in dem Code genug zu drehen sein.
Sobald Sie das getan haben, haben Sie einen Blick auf Alpha-Beta-Suche, die (drastisch) sollte die Menge der Such reduzieren Sie tun müssen. Alpha-Beta-Suche basiert auf der Idee basiert, dass, wenn A folgert, dass B A maximalen Vorteil zu zwingen spielen kann M zu sein, dann hat es keinen Sinn jede Teilstruktur, deren Punktzahl bei der Betrachtung größer als M, da B wird nie die Option A zulassen!













