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.
28 Verwandte Arbeiten<br />
2.3.2 Der Agent<br />
„An agent is a computational system, situated in some environment, that is ca-<br />
pable of intelligent, autonomous action in order to meet its design objectives.“ –<br />
Nicholas Jennings (Intelligent Agents, 1995) [28]<br />
Wenn von dem Agent die Rede ist, wird meist das Verhalten eines Agentenprogramms betrach-<br />
tet, welches auf eine Anfrage eine Aktion berechnet. Dabei erhält der Agent die aktuelle Wahr-<br />
nehmung von Sensoren als Eingabe und gibt eine Aktion als Ausgabe aus. Eine sehr einfache<br />
Form eines Agenten wäre alle möglichen Eingabe-Ausgabe-Paare in eine Tabelle abzuspei-<br />
chern und die benötigte Aktion nachzuschlagen. Für die meisten relevanten Probleme ist dies<br />
aber nicht praktikabel, da der Speicherplatz <strong>für</strong> die Tabelle nicht realisierbar wäre und nicht<br />
immer alle Paare ermittelt werden können. Beim Schach zum Beispiel müssten bei 20 Züge pro<br />
Stellung, einer Halbzugtiefe von 16 und ohne Optimierungen ca. 600.000.000.000.000.000.000<br />
mögliche Varianten betrachtet werden.<br />
Ein etwas verbesserter, aber immer noch einfacher Agent, ist der Reflex-Agent. Diese Agenten<br />
bestimmen aufgrund der aktuellen Wahrnehmung und aus einer Menge einfacher Regeln eine<br />
durchzuführende Aktion [4]. Diese Agenten sind einfach und schnell, aber nur begrenzt intel-<br />
ligent, da sie weder die Vergangenheit noch die Zukunft in Betracht ziehen und sich nur lokal<br />
aufgrund einer kleinen Menge an Regeln entscheiden.<br />
Ein verbesserter Reflex-Agent führt einen internen Zustand mit sich. Der sogenannte Modell-<br />
basierte Reflex-Agent versucht also sich die Welt aufgrund der Wahrnehmungshistorie zu mo-<br />
dellieren und hat nun die Möglichkeit Entwicklungen und Auswirkungen auf das Modell zu<br />
übertragen und vom Modell basierend neue Aktionen zu ermitteln [4].<br />
Damit auch Auswirkungen auf die Zukunft in Erwägung gezogen werden, benötigt es Zielba-<br />
sierte Agenten, die zusätzlich noch Zielinformationen mit sich führen [4]. Damit ist es möglich,<br />
zielgerecht nach einer Aktion zu suchen, die den Agenten näher zum Ziel bringt.<br />
Um zwischen Zuständen vergleichen zu können, die sich auf dem Weg zum Ziel befinden, wird<br />
eine Leistungsbewertung benötigt, die den Nutzen ermittelt. Solche Nutzenbasierte Agenten<br />
können durch Heuristiken schneller zum Ziel gelangen [4]. Da<strong>für</strong> führen sie temporäre Aktio-<br />
nen auf ihrem internen Zustand aus, bewerten den neuen Zustand und ziehen die Aktion zurück.<br />
Somit können verschiedene Aktionsfolgen in Hinsicht auf die Leistungsbewertung simuliert<br />
werden und der beste ausgewählt werden. Zusätzlich können bei mehreren Zielen abgeschätzt<br />
werden, wie groß der Nutzen im Verhältnis zur Wahrscheinlichkeit ist oder bei in Konflikt ste-<br />
henden Zielen abgewogen werden, welcher geeigneter ist.<br />
Für <strong>Java</strong> <strong>Settlers</strong> soll ein Nutzenbasierter Agent entwickelt werden, der durch geeignete Heuris-<br />
tiken und einer Bewertungsfunktion das Ziel erreichen soll, das Spiel zu gewinnen. Dabei soll<br />
mit einer adversarialen Suche der bestmögliche Zug in einer vertretbaren Zeit ermittelt werden.<br />
Im Folgenden soll nun näher auf die Suche eingegangen werden.