13.11.2012 Aufrufe

Java Settlers - Intelligente agentenbasierte Spielsysteme für intuitive ...

Java Settlers - Intelligente agentenbasierte Spielsysteme für intuitive ...

Java Settlers - Intelligente agentenbasierte Spielsysteme für intuitive ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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].

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!