künstliche intelligenz und maschinelles lernen in computerspielen di michael pfeiffer...
TRANSCRIPT
Künstliche Intelligenz und Maschinelles Lernen in
Computerspielen
DI Michael [email protected]
Institut für Grundlagen der Informationsverarbeitung
Maschinelles Lernen A, WS 2003/2004
Überblick Einführung Spieltheorie Minimax – Suche Lernen in Spielen Reinforcement Learning
Warum Spiele? „Computer Games are the biggest AI success story to date“ [Schaeffer]
„Game Playing is to AI as Grand Prix motor racing is to the car industry“ [Russell, Norvig]
„Programming computers to play games helps understanding the mechanisms of understanding intellectual behaviour. We assume that these newer techniques will be applied to real life situations in the future, and the effort devoted to games will decrease. Perhaps we have not yet reached this turning point, and so we may still have much to learn from the study of games“ [Samuel, 1960]
Erfolgsstories (1) Deep Blue vs.
Kasparov (1997)
Chinook vs. Tinsley (1994)
Erfolgsstories (2) Reversi (Othello)
Programm Logistello: kein Mensch nimmt Herausforderung an (letzte WM: 6-0 für Programm)
Komplett gelöste Spiele 4 Gewinnt (1988) Go-Moku (~ 5 Gewinnt) (1994) Mühle (1995) Awari (2002) Dame (wahrscheinlich 2004) etc.
Warum besteht Interesse an Spielen? Interessante und „bequeme“
Testprobleme für neue Methoden der KI Intellektuelle Herausforderung Wirtschaftliches Interesse
Kommerzielle Spiele
Aktuelle Forschung an Spielen (1) Kongress „Advances in Computer Games 10“
24-27 November 2003, Graz Parallel mit Computer-Schach-WM und Olympiade Veranstaltet von ICGA (www.icga.org)
Zentren der Spiele – Forschung University of Alberta, Edmonton (Kanada) Universität Maastricht (Niederlande) Japan ...
Aktuelle Forschung an Spielen (2) Konzentration auf Brettspiele
Schach Go
Konzentration auf Suchtechniken Verbesserungen von bekannten Techniken Machine Learning eher „exotisch“
Überblick Einführung Spieltheorie Minimax – Suche Lernen in Spielen Reinforcement Learning
Spieltheorie (1) Teilgebiet der Mathematik
Kommt ursprünglich aus Analyse von Gesellschaftsspielen
Wird u.A. für wirtschaftliche Fragen oft eingesetzt Optimierungsproblem:
Mit welcher Strategie maximiert man den eigenen Gewinn, unter Berücksichtigung von anderen Mitspielern / Gegnern?
Spieltheorie (2) Definition: Nichtkooperatives Spiel
Spielermenge I = {1, ..., n} Strategiemengen Si
Auszahlungsfunktion hi: S1... Sn R
Auszahlung für einen Spieler hängt von Strategien aller Spieler ab
Spieler agieren rational Jeder Spieler versucht seine Auszahlung zu maximieren unter
Kenntnis der Möglichkeiten der anderen
Spieltheorie (3) Matrix – Spiele, Nullsummenspiele
G NG -2 -5
-2 -1
N -1 0
-5 0
„Gefangenendilemma“G ... Gestehen
N ... Nicht Gestehen
Stein Papier Schere
Stein 0 -1 1
Papier 1 0 -1
Schere -1 1 0
Stein-Papier-Schere (RoShamBo)
Nullsummenspiel
Nash - Gleichgewicht „Lösung“ von Spielen
Wahl von Strategien, sodass sich kein Spieler einseitig verbessern kann
Z.B. Gefangenendilemma: (G, G) ist Nash-Ggw. In RoShamBo z.B. existiert kein Nash-Ggw. in
reinen Strategien Abhilfe: Gemischte Strategien:
Wahrscheinlichkeitsverteilung auf allen Strategien Erwartete Auszahlung Z.B. in RoShamBo: optimal ist gleichverteilte Auswahl
von Strategien (1/3 Stein, 1/3 Papier, 1/3 Schere)
Minimax - Prinzip Für Nullsummenspiele
Zwei Spieler Max und Min Positive Auszahlung ist gut für Max Beide Aktionen werden gleichzeitig gewählt
Max wählt jene Strategie, die bei optimalem Verhalten von Min die größtmögliche Auszahlung liefert
Min wählt jene Strategie, die bei optimalem Verhalten von Max die kleinstmögliche Auszahlung liefert
Funktioniert auch bei Spielen mit mehreren Zügen Spielbäume
Überblick Einführung Spieltheorie Minimax – Suche Lernen in Spielen Reinforcement Learning
Game Trees1
Anfangszustand Operatoren: legale Spielzüge Endbedingungen Auszahlungsfunktion
Anfangszustand plus wiederholte Anwendung der Operatoren bis Endzustand erreicht ist bildet einen Game Tree (mit Bewertungen)
1: Quelle: [Russell, Norvig: Artificial Intelligence: A Modern Approach] (in LBS erhältlich)
Beispiel: Tic-Tac-Toe
Minimax - Algorithmus1. Bewerte alle Endzustände2. Gehe ein Level hoch und bewerte dort alle
Zustände In Min-Knoten: Wert ist Minimum-Wert aller Nachfolger In Max-Knoten: Wert ist Maximum-Wert aller Nachfolger Wiederhole diesen Schritt bis Root erreicht
3. Wähle Aktion (als Max): wähle jene Aktion, die in den am höchsten bewerteten Zustand führt
Beispiel für Minimax:
Komplexität: O(bm) b ... Legale Züge pro Blatt, „Branching Factor“ m ... Maximale Tiefe des Suchbaums
Eigenschaften von Minimax Findet bei endlichem Baum immer optimale
Lösung gegen optimalen Gegner Dadurch manchmal zu „konservativ“
Exponentielle Laufzeit Für die meisten Spiele unbrauchbar
Z.B. Schach: b=35, m=50 (pro Spieler) ca. 35100 Knoten im Spielbaum
Macht keine Unterscheidung zwischen „unsinnigen“ und „sinnvollen“ Zügen
Bewertungs - Funktionen Idee: Beschränke Suchtiefe
Minimax nicht bis zum Ende ausführen Suche nach gewisser Tiefe abbrechen Bewerte Zustände in dieser Ebene heuristisch mit einer
Bewertungsfunktion (Evaluation Function) Berechne damit Minimax-Wert für aktuellen Zustand
Bewertungsfunktion Muss auf Endzuständen mit Auszahlungsfunktion übereinstimmen Muss effizient berechenbar sein Muss die Gewinnchancen in jedem Zustand möglichst genau
wiedergeben
Bewertung von Spielsituationen (1)
Bewertungsfunktion muss viele Features der momentanen Situation in einen Wert packen z.B. Materialwert, Zugmöglichkeiten für König, etc.
Bewertung von Spielsituationen (2) Typische Bewertungs-Funktion:
Gewichtete Linearkombination von Features
Was sind Features? Bekannte, wichtige Bewertungskriterien z.B. Anzahl von Figuren, Schach (ja/nein), etc.
Woher kommen Gewichte? Expertenwissen Lernen!
nn fwfwfwV ...2211
Unvollständige Suche Frage: Wie tief sucht man?
Gegeben durch Laufzeitbeschränkung Quiescence Search:
Bewerte nur Positionen, in denen keine großen Veränderungen mehr möglich sind (sonst suche weiter)
Horizont Problem: durch ungenügende Suche glaubt man, einen schlechten Zug
vermeiden zu können, zögert ihn aber nur hinaus
Suchtiefe Spielstärke! Suchtiefe wird kleiner, je mehr Zweige man besuchen muss Wie kann man die Anzahl von Zweigen beschränken?
- - Pruning : Bester (größter) Max-Wert bisher : Bester (kleinster) Min-Wert bisher
Wenn in Min-Knoten ein kleinerer Wert als berechnet wird Prune
Wenn in Max-Knoten ein größerer Wert als berechnet wird Prune
Prune: berechne keine weiteren Nachfolger in diesem Knoten
Beispiel: - - Pruning
Effizienz hängt von Reihenfolge der durchsuchten Knoten ab Move Ordering bringt Verbesserung
Spiele mit Zufallsfaktor Füge Zufalls-Knoten in
Game Tree ein Für jedes mögliche Zufallsereignis
bilde eigenen Pfad vom Zufallsknoten aus
ExpectiMiniMax – Algorithmus Ähnlich wie MiniMax Bei Zufallsknoten bilde Erwartungswert Dadurch noch mehr Pfade zu
durchsuchen Suchtiefe noch stärker beschränkt
Zusammenfassung: MiniMax Wird für fast alle Brettspiele verwendet Spielstärke steigt mit Suchtiefe Hauptprobleme:
Gute Bewertungs-Funktionen Viel Vorwissen notwendig (z.B. Definition der Features)
Frühzeitiges Erkennen unsinniger Pfade Dadurch mehr Zeit für sinnvolle Suche
Beispiel: Deep Blue Massiv Parallele Hardware-Lösung
30 Prozessoren, 480 Schach – Chips Bis zu 330 Mio. Positionen / Sekunde
Evaluation Function Summe von ca. 8000 Feature-Werten Hardware-Evaluation Function
Eröffnungsbuch Von 4 Großmeistern geschrieben Teilweise auf Kasparov spezialisiert
Großmeister-Datenbank 700,000 Spiele gespeichert
Endspiel – Datenbank Perfektes Spiel mit 5 Figuren
Was hat Deep Blue gebracht? Inspiration
„Real-World-Probleme“ sind lösbar! Paralleles Computing
Technologie wird heute für Simulationen von Molekülen in der Pharmazie verwendet
„Werbung“ für Parallele Technologie Kein großer Fortschritt für KI-Techniken!
Trotzdem wichtig für das ganze Gebiet!
Überblick Einführung Spieltheorie Minimax – Suche Lernen in Spielen Reinforcement Learning
Wo wird ML in Spielen eingesetzt? Lernen von Bewertungsfunktionen Lernen von Features Lernen von Pruning-Regeln Klassifizieren von Spielsituationen Lernen von Eröffnungs- und Endspiel-
Büchern Modellieren des Gegners Lernen von ganzen Strategien
Wo wird ML in Spielen eingesetzt? Lernen von Bewertungsfunktionen Lernen von Features Lernen von Pruning-Regeln Klassifizieren von Spielsituationen Lernen von Eröffnungs- und Endspiel-
Büchern Modellieren des Gegners Lernen von ganzen Strategien
Learning to Score Final Positions in Go by Eric van der Werf, H. Jaap van den
Herik, Jos Uiterwijk Univ. Maastricht, Niederlande Präsentiert bei ACG 10, Graz
Themen: Lernen von Bewertungsfunktionen Lernen aus Spieldatenbanken
Kurze Go-Anleitung 2 Spieler Plaziere Steine auf
Kreuzungen von Linien Verbundene Blöcke
werden entfernt, wenn sie an kein freies Feld mehr grenzen
Kein „Selbstmord“ Spieler können passen Ziel: größtes Gebiet
abgrenzen
Probleme in Go Kein Computerprogramm kann
mit Menschen mithalten 1 Mio. $ Preis ausgelaufen
Branching Factor zu hoch für Brute-Force Suche
Sogar Bewerten der Endstellung ist schwierig
Bewerten der Endstellung Spiel endet wenn beide Spieler passen Zähle gefangene Steine +
eingeschlossenes leeres Territorium Spieler mit größtem Gebiet gewinnt
Vor dem Zählen: ermittle Leben und Tod der Blöcke Tote Steine werden vom Brett entfernt Erst dann wird gezählt
Leben und Tod in Go Wann lebt ein
Block? Ein Block lebt, wenn er
auf keine mögliche Weise gefangen werden kann
Z.B. Blöcke mit „Augen“ leben
Alle anderen Blöcke sind tot
all blocks alive
white block is dead
eye
Lernaufgabe Klassifiziere tote Blöcke Lerne aus Datenbank von 9x9 Go
Spielen, die auf Internet Server gesammelt wurden ~ 18,000 Spiele, starke und schwache Gegner Gegeben: nur endgültiger Score der Partie Features sind bekannte geometrische und andere
berechnete Merkmale
Probleme beim Lernen Bewertungsfehler der Spieler
Durch händische Korrektur und Hilfe von GnuGo-Programm Labels generiert sehr aufwendig
Vergleich von Verschiedenen Classifiers Verschiedene Daten-Repräsentation
Classifier Vergleich
Neuronale Netze (Backprop) schneiden am besten ab Auch lineare Classifier sind gut geeignet Nearest Neighbour ungeeignet
n = 10,000 Training Examples
Classifier Training Error (%) Test Error (%) Training Time (s)
Linear 2.2 1.9 0.9
Log-Linear 1.0 1.2 5.6
Nearest Neighbour
0 10.2 4100
Backprop 0.5 1.0 190
Einfluss der Daten-Repräsentation
PCA: wie viel % Varianz wird beibehalten Hand-Crafted Features sind für gute Performance
notwendig Simples PCA-Preprocessing alleine reicht nicht aus
Test Error (%) using n Training Examples
Hand-Crafted Features
Raw PCA (100%)
PCA (90%)
n = 100 3.6 29.1 22.9 23.3
n = 1000 1.5 13.7 16.7 14.2
n = 10,000 1.0 7.5 9.9 8.9
Zusammenfassung Bewertung von Endpositionen aus großer
Spieldatenbank gelernt 98.9% Genauigkeit
Genauer als Durchschnitts-Spieler Keine Suche notwendig
Geplante Forschung: Machine Learning in nicht-finalen Positionen anwenden Noch größere Datenbanken zum Lernen verwenden
Lernen von Features Woher kommen Features in
Bewertungsfunktionen? Wissen von menschlichen Experten
Ziel: Identifikation von Features automatisieren
Ansatz: Logische Ableitung von Features aus Spielregeln Constructive Induction [Fawcett, 1993]
Lernen von Pruning-Regeln Problem von Minimax: Ganzer Baum muss
durchsucht werden Selective Search:
Prune jene Teilbäume, die höchstwahrscheinlich den Minimax – Wert nicht verändern
ProbCut [Buro, 1995]: Minimax-Wert in verschiedenen Suchtiefen ist korreliert Vorhersage von Minimax-Wert in größerer Tiefe durch Wert
in geringerer Tiefe (mit linearer Regression) Liegt Vorhersage außerhalb Konfidenzintervall Prune
Klassifizieren von Spielsituationen Klassifiziere Brettstellung als
Gewinn in x Zügen Verlust in x Zügen Unentschieden
Wird vor allem für Endspiel eingesetzt
Beispiel in Weka: KR-vs-KP Datensatz
Lernen von Eröffnungsbüchern Verwende große Datenbanken von
gesammelten Spielen Großmeister-Spiele Internet Server Logs
Bewerte Eröffnungszüge nach Ausgang der Partie Spielstärke (ELO-Zahl) des Spielers
Opponent Modelling Spieltheorie geht immer von worst-case aus
Gegner spielt optimale Strategie Konservative Taktik: vermeide Niederlage
Bei Ausnützen von Informationen über Gegner ist bessere Performance möglich Optimale Strategie spielt immer gleich gut, egal wie gut oder
schlecht der Gegner ist Mit Opponent Model: Spieler besiegt schwächere Gegner
öfter als die optimale Strategie
Opponent Modelling in Poker Nichtvollständige
Information Suche nutzlos
Gegner einschätzen Bluffer, konservativ, ...
Lerne aus vorigen Spielen
Lerne aus Setz-Strategie der Gegner
Gegner – Modell prob (Karten | Verhalten)
Verhalten besteht aus Setz-Verhalten des Gegners und anderer verfügbarer Information
Programme Loki und Poki [Billings, 1999] Gewinnen regelmäßig auf Internet Server Noch nicht auf WM – Niveau
RoShamBo (Stein-Papier-Schere): Mit Opponent-Modelling besseres Turnier-Spiel als optimale
Strategie Kann schwache Strategien ausnützen
Learning to Fly [Sammut, et.al. 1992] Supervised Learning für
Strategien-Lernen
Lerne die Steuerung eines Flugzeugs in einem Flugsimulator
Lerne von gesammelten Daten erfahrener Piloten
Trainiere einen C4.5 Entscheidungsbaum
Learning to Fly (2) Attribute sind durch 20 Zustands-
Variablen gegeben (Höhe, Geschwindigkeit, ...)
Target Output ist die Reaktion von 3 Piloten in je 30 Flugversuchen 90.000 Trainingsbeispiele
Mehrere Entscheidungsbäume gelernt: für jede Steuerung einen (z.B. Schub,
Höhenruder, Seitenruder, Landeklappen)
Learning to Fly (3) Beispiel für gelernte
Strategie Schub (Thrust) in
diskrete Stufen eingeteilt z_feet ist Abstand zur
Rollbahn elevation ist Neigung des
Flugzeugs Lerne verschiedene
Regeln für jede Flugphase
Learning to Fly: Ergebnis Programm lernt tatsächlich fliegen Flugkurve ist besser als die der
erfahrenen Piloten Effekt von Generalisierung Weniger Korrekturen notwendig
Eher „exotische“ Anwendung
Überblick Einführung Spieltheorie Minimax – Suche Lernen in Spielen Reinforcement Learning
Reinforcement Learning (RL) Vorschau auf Maschinelles Lernen B
SS 2004: 2 VO + 1 UE
Themen der Vorlesung: Lernen von Strategien Reinforcement Learning Genetische Algorithmen
Grundidee von Reinforcement Learning Lernen durch Interaktion mit der Umwelt Agent befindet sich in einem Zustand s Agent führt eine Aktion a aus Agent bekommt von der Umwelt einen Reward
r(s, a)
Ziel: Maximiere den langfristigen gesammelten Reward
Lerne dazu eine Bewertung Q(s,a) von Aktionen in jedem möglichen Zustand
Rewards Rewards geben an, wie „gut“ die gewählte Aktion
war Beispiele (aus dem täglichen Leben):
Herdplatte: Kind greift auf heiße Herdplatte Stark negativer „Reward“
Dressur: Hund apportiert geworfenen Stock Belohnung durch Herrchen: positiver „Reward“
Beispiele (aus der KI): Spielende: Spieler gewinnt / verliert das Spiel
Je nach Ausgang positiver / negativer Reward Roboter erreicht sein Ziel / fährt gegen ein Hindernis
Positiv / Negativ
Lernverfahren1. Starte mit beliebiger Strategie2. Führe im momentanen Zustand die von der
aktuellen Strategie vorgeschlagene Aktion aus3. Beobachte Feedback der Umwelt beim Ausführen
einer Aktion (reward, neuer Zustand)4. Verbessere dadurch die geschätzte Bewertung
dieser Aktion im momentanen Zustand5. Ändere die Strategie entsprechend der neuen
Bewertung der Aktionen6. Wiederhole 2. – 5. bis Ende erreicht
Beispiel: Grid - World
Ziel: Gehe in ein graues Eckfeld
Gehen „bringt“ Reward –1 Links: Bewertung der
zufälligen Policy Rechts: Neue Policy, die
auf Bewertung basiert Anfangs völlig zufällige
Policy Mit zunehmender
Erfahrung wird Policy immer besser
Zum Schluss ist sie optimal
TD Gammon [Tesauro, 1995] Größter Erfolg von
Reinforcement Learning Programm spielt auf
Weltmeisterniveau Programm lernt völlig
selbständig Kaum a-priori Wissen
Training durch Spiele gegen sich selbst
TD Gammon: Technik (1) Evaluation Function
Wird durch Neuronales Netzwerk dargestellt
NN gibt die Gewinn-Wahrscheinlichkeit für jede Position an
Kurze ExpectiMiniMax-Suche (2 plies)
Input – Repräsentation binäre Darstellung der
momentanen Brettsituation Später: komplexere
Backgammon-Features
TD Gammon: Technik (2) Training
Spielt Trainingsspiele gegen sich selbst Rewards: +1 für Sieg, –1 für Niederlage, sonst 0 Temporal Difference (TD) Learning verbessert Schätzung
für Nicht-Endpositionen Neuronales Netzwerk wird auf neue Schätzwerte trainiert
(mit Backprop-Algorithmus)
Leistung Steigt mit Anzahl der Trainingsspiele Bis zu 1.5 Mio. Trainingsspiele
TD Gammon: Resultate (1) Original-Version (ohne Vorwissen)
Erreicht Level anderer Programme Mit Verbesserungen
Unter den Top-3 Spielern der Welt (menschlich und Computer)
Anzeichen von Kreativität TD-Gammon spielte Eröffnungszüge anders als
menschliche Großmeister Heute spielen die Menschen die selben Züge!
TD Gammon: Resultate (2) Funktioniert das Konzept immer?
Bei Schach und Go nicht Möglicherweise große Anzahl von
Trainingsspielen mitentscheidend Durch Zufallsfaktor dürfte Backgammon besser
geeignet für Reinforcement Learning sein Warum?
Mehr Zustände werden ausprobiert Bewertung auch für seltene Züge gelernt
Siedler von Catan (1) Beliebtes modernes
Brettspiel (© Klaus Teuber, 1995)
Spielbrett Produktion Bauen Tauschhandel Siegpunkte Taktiken
Siedler von Catan (2) Diplomarbeit [Pfeiffer, 2003]
Lerne Strategie für gesamtes Spiel durch Reinforcement Learning
Probleme 4 Spieler statt nur 2 Hoher Zufallsfaktor Komplexe Spielregeln Unterschiedliche Spielteile (Handeln, Bauen, etc.) Lang- und kurzfristige Planung Verschiedenste Gewinnstrategien Gegnerbeobachtung usw.
Siedler von Catan (3) Vorgangsweise: Hierarchisches RL
Lerne High-level Strategie: gibt langfristiges Ziel an Lerne Low-level Strategie: wie erreicht man das Ziel der
High-level Strategie? Primitive Aktionen: mit Vorwissen ausprogrammiert Self – play: Lernen durch Spielen gegen sich selbst
Komplexer Feature-Raum 494 binäre Attribute Verwende Model-Tree zur Approximation (Verallgemeinerte
Entscheidungsbäume für reellwertige Funktionen)
Siedler von Catan (4) Handeln
Kombination von Vorwissen und Lernen Deterministische Handelsstrategie „Preise“ für den Handel werden aus gelernter
Bewertungsfunktion gelernt Bsp.: Welcher Handel bringt mich dem
momentanen Subgoal am nächsten? Gegner-Modellierung: Wie gut ist ein Handel für
den Gegner?
Siedler von Catan: Ergebnisse Ohne Vorwissen
Schlechter Lernerfolg durch Overfitting Kein Erfolg gegen Menschen
Mit Vorwissen High-level Strategie vorgegeben Schlägt alle vorhergehenden Strategien Gewinnt ca. 20 % gegen Menschen Lernen durch Imitieren der deterministischen Strategie bringt
Verbesserung gegenüber vorherigen Ansätzen
Siedler von Catan: Neue Erkenntnisse Erster Versuch von Reinforcement Learning
für ein Spiel dieser Komplexität Könnte auch bei kommerziellen Spielen anwendbar sein Neue Richtung von Forschung über Spiele
Ansatz kann bei Einbringen von genügend Vorwissen gut funktionieren
„Tabula-Rasa“-Lernen funktioniert nicht Lernen von Teilstrategien funktioniert gut
Kommerzielle Spiele (1) Für Menschen einfacher, für Computer
komplizierter Schach oder Backgammon „liegen“ dem
Computer besser als Ego-Shooter, Sportspiele, Echtzeit-Strategiespiele
Stand der KI in kommerziellen Spielen ist seit min. 10 Jahren (fast) unverändert!
Kommerzielle Spiele (2) Lernen in Kommerziellen Spielen
Fehlerrate zurückdrehen Fixierte Neuronale Netze (kein online Lernen)
Reinforcement Learning in Spielen Creatures Black & White
Kommerzielle Spiele (3) Sehr Großes Potential
Siehe Online Spiele Ziel: Menschen-ähnliche KI
Lernen gehört dazu
Trotz wirtschaftlicher Bedeutung noch wenig Forschung Daher viel Platz für neue Ideen!
Pläne für RL in Computerspielen Robotic Soccer (RoboCup) Bewegungslernen
Rennspiele, Sportspiele (Kommerzielle) Strategiespiele Opponent Modelling
Demnächst: Projekte oder Diplomarbeiten in diesem Bereich
Quellen (1)Papers J. Schaeffer: The Games Computers (and People) play; Advances in
Computers 50:189-266, 2000 J. Fürnkranz: Machine Learning in Games: A Survey; Technical Report
OEFAI-TR-2000-31, 2000 C. Sammut: Learning to Fly, Proceedings of ICML 9, 1992
Bücher J. Schaeffer, J. van den Herik: Chips Challenging Champions; Elsevier
Amsterdam, 2002 Advances in Computer Games: Many Games, Many Challenges;
Proceedings of ACG-10, Kluwer 2003 Russell, Norvig: Artificial Intelligence, A Modern Approach; Prentice
Hall, 1995 (in LBS)
Quellen (2)Online M. Pfeiffer: Machine Learning Applications in Computer Games
(Diplomarbeit), 2003 (www.igi.tugraz.at/cluster/pfeifferDA.pdf) ICGA: International Computer Games Association (www.icga.org) University of Alberta GAMES Group (www.cs.ualberta.ca/~games) Universität Maastricht Computer-Games Group (www
.cs.unimaas.nl/~uiterwyk/cg.html)
Weitere Links auf meiner Homepage: (www.igi.tugraz.at/pfeiffer)