Expectiminimax-Algorithmus
# Expectiminimax-Algorithmus

Der Expectiminimax-Algorithmus ist eine erweiterte Version des Minimax-Algorithmus, welcher Zufallselemente wie das Fallen eines Würfels berücksichtigt. Der Algorithmus findet daher bei der Spieleprogrammierung von Nullsummenspielen mit zwei Teilnehmern wie beispielsweise Backgammon seine häufigste Anwendung.

## Eigenschaften

Der Algorithmus gleicht in weiten Teilen dem herkömmlichen MiniMax-Algorithmus, wird allerdings durch eine Fallunterscheidung erweitert. Alle möglichen Ereignisse (die z. B. aus unterschiedlichen Augenzahlen resultieren) werden getrennt berechnet, als wären sie real. Anschließend werden alle so entstehenden Wahrscheinlichkeitsäste einer Wahrscheinlichkeitstiefe dann mit der Wahrscheinlichkeit ihres Eintretens multipliziert und addiert. Die Summe bildet dann das Kriterium für den bekannten Minimierungs-/Maximierungsprozess. Die Werte im Baum gleichen damit formal der mathematischen Definition des Erwartungswertes (engl. Expected value).

## Pseudo-Code

Der Expectiminimax-Algorithmus wurde zuerst von Donald Michie vorgeschlagen. Im Folgenden ist der Pseudocode gegeben:
function expectiminimax(Ast, Tiefe)

## Bewertungsfunktion

Die Bewertungsfunktion muss wie im MiniMax-Algorithmus auf Grundlage von Heuristiken die aktuelle Stellung im Baum bewerten. Anders als beim MiniMax-Algorithmus spielt der Wertebereich der Funktion jedoch eine entscheidende Rolle. Werden im MiniMax-Algorithmus Gewinn- oder Verluststellungen mit $+\infty$ bzw. $-\infty$ gekennzeichnet, führt eine derartige Handhabung im Expectiminimax-Algorithmus zu Informationsverlust. Kann ein Spieler beispielsweise mit einer 1, 2 und 3 als Augenzahl eine gute Situation erreichen, verliert aber, wenn er eine 4 würfelt, so ergibt sich im Algorithmus bei gleichen Wahrscheinlichkeiten: $\left(76{\frac {1}{4}}\right)+\left(112{\frac {1}{4}}\right)+\left(86{\frac {1}{4}}\right)+\left(-\infty {\frac {1}{4}}\right)=-\infty$ Der Zug wird verworfen, obwohl er nur mit einer geringen Wahrscheinlichkeit zum Verlieren des Spieles führt. Problematisch wird dieser Effekt besonders zum Ende eines Spiels, wenn sich Gewinn- und Verlustbewertungen häufen und eventuell in der gleichen Wahrscheinlichkeitstiefe auftreten. Um solche Fehler zu verhindern, müssen feste Wertebereiche definiert und Gewinn- und Verlustbewertungen getrennt behandelt werden. In der Praxis werden meist komplexe Datentypen als Bewertungswerte verwendet, in denen die Bewertung der Situation in Grundbewertung und Gewinn/Verlust-Chance geteilt ist.

## Pruning

Eine effizientere Gestaltung der Berechnung durch ein Wegschneiden von Ästen (Pruning) wie im Alpha-Beta-Algorithmus ist auch beim Expectiminimax-Algorithmus möglich. Die Implementierung gestaltet sich jedoch durch die Festlegung bestimmter Wertebereiche komplexer und unterscheidet sich bei unterschiedlichen Anwendungen.