Java Settlers - Intelligente agentenbasierte Spielsysteme für intuitive ...
Java Settlers - Intelligente agentenbasierte Spielsysteme für intuitive ...
Java Settlers - Intelligente agentenbasierte Spielsysteme für intuitive ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
32 Verwandte Arbeiten<br />
über einem anderen Spieler in einer stärkeren Position verbünden. Dieses Allianzen werden<br />
dynamisch im Laufe des Spiels gebildet und wieder aufgelöst. Die Frage ist jetzt, wie sich<br />
ein Spieler im Verhältnis zu anderen Spieler sieht, wo<strong>für</strong> es mehrere Möglichkeiten gibt. Ein<br />
„paranoider“ Spieler geht immer davon aus, dass er alleine gegen die restlichen Spieler als Al-<br />
lianz spielt und somit alle gegnerischen Aktionen ihn benachteiligen [35, 37]. Damit wird das<br />
Mehrspielerproblem auf ein Zweispielerproblem reduziert. Die Abbildung 8 illustriert einen<br />
paranoiden Spieler.<br />
Diese Variante ist <strong>für</strong> <strong>Java</strong> <strong>Settlers</strong> jedoch zu drastisch, denn tatsächlich wird mehr mitein-<br />
ander kooperiert, anstatt dass konkurrierend agiert wird. In einer Art und Weise repräsentiert<br />
der max n -Algorithmus eine komplett optimistische Sicht auf die Kooperationen, wo ein Spieler<br />
nicht auf die Gegner achtet, sondern nur auf sich selber schaut. Die paranoide Version dage-<br />
gen zeigt eine komplett pessimistische Ansicht, wo der suchende Spieler alle Gegner als einen<br />
einzelnen sieht, der versucht die eigene Bewertung zu minimieren. Beide Varianten vergleichen<br />
Zustände miteinander, indem nur die absoluten Nutzenwerte des jeweiligen Spielers in Betracht<br />
gezogen werden. Stattdessen ist es sinnvoller den Nutzen relativ zu den Gegenspieler zu sehen.<br />
Da<strong>für</strong> muss eine Umwandlung des absoluten Nutzenvektors in einen relativen Nutzenvektor<br />
erfolgen. Einige Lösungen dazu werden in Kapitel 5 vorgestellt.<br />
Für <strong>Java</strong> <strong>Settlers</strong> wäre eine Zwischenlösung optimal, die den Nutzenwert des Spielers mit dem<br />
Durchschnitt der anderen Spieler vergleicht. Ziel des Spielers ist es also, sich möglichst weit<br />
abzusetzen gegenüber dem durchschnittlichen Rest, was auch die Interpretation des Spiels als<br />
Rennen widerspiegelt. Der Durchschnitt jedoch ist anfällig <strong>für</strong> Ausreißer und somit nicht gänz-<br />
lich geeignet. Abhilfe schafft hier noch ein zusätzliches Entropie-Maß in <strong>Java</strong> <strong>Settlers</strong>, welches<br />
ebenfalls in Kapitel 5 erklärt wird.<br />
Um die Laufzeit des Minimax-Algorithmus zu verbessern, kann der Spielbaum an geeigneten<br />
Stellen beschnitten werden. Das bekannte Alpha-Beta-Pruning berechnet während der Suche<br />
einen α-Wert mit der bestmöglichen und einen β-Wert mit der schlechtmöglichsten Alternative<br />
[38]. Stellt sich bei einem Knoten heraus, dass die Kinder keine bessere bzw. schlechtere Be-<br />
wertung mehr liefern können, als anhand des α-Wert bzw. β-Wert, so kann der Ast abgeschnitten<br />
werden und benötigt nicht mehr berechnet zu werden. Abbildung 9 zeigt den Verlauf von einer<br />
Alpha-Beta-Kürzung. Bei einer theoretisch perfekten Sortierung der Knoten schafft Alpha-Beta<br />
die Laufzeit auf O(b m/2 ) zu drücken [38]. Leider ist bis heute keine äquivalente Lösung <strong>für</strong><br />
Mehrspieler bekannt, daher ist in <strong>Java</strong> <strong>Settlers</strong> keine Alpha-Beta-Kürzung vorgesehen.<br />
Weitere Optimierungen bieten Transpositionstabellen, Ruhesuche, Datenbanken usw., auf die<br />
hier nicht näher eingegangen und stattdessen auf die Literatur verwiesen wird [39, 40, 41].