künstliche intelligenz und ameisen · was ist künstliche intelligenz? • automatisierung...
TRANSCRIPT
Künstliche Intelligenz und Ameisen
Microsoft C# spielerisch erlernen
Was ist künstliche Intelligenz?
• Automatisierung intelligenten Verhaltens.
• In Spielen hat sich die ereignisorientierte KI • In Spielen hat sich die ereignisorientierte KI durchgesetzt. Menschen programmieren die Aktionen, basierend auf Ereignissen.
• Genetische Algorithmen können zum Finden möglichst optimaler Strategien verwendet werden. Häufig: Rundenbasierte Strategiespiele.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 2
Ablauf des Vortrags
• Vorstellung der Systematik und einer beispielhaften Anwendung genetischer beispielhaften Anwendung genetischer Algorithmen.
• Ausführliche Demonstration der Entwicklung einer ereignisorientieren künstlichen Intelligenz.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 3
Genetische Algorithmen in der KI
• Stark vereinfachte Adaption des Evolutionsprinzip „Survival of the fittest“.Evolutionsprinzip „Survival of the fittest“.
• Gute Lösungen für ein Problem werden untereinander gepaart.
• Schlechte Lösungen sterben aus.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 4
Genetische Algorithmen in der KI
• Voraussetzungen– Lösungsvorschlag kann bepunktet werden.– Lösungsvorschlag kann bepunktet werden.
– Lösungsvorschläge bestehen aus mehreren unabhängigen Einzel- oder Gruppenanweisungen.
– Es gibt eine große Menge von Lösungsvorschlägen. Das Durchgehen eines jeden wäre sehr aufwändig.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 5
Genetische Algorithmen (Ablauf)
1. Zufälliges Generieren von x Lösungen (z.B. 100)100)
2. Scoring anhand einer „Fitnessfunktion“
3. Die besten y (z.B. 5) Lösungen ermitteln.
4. Toplösungen miteinander kreuzen.
5. Die schlechtesten y Lösungen verwerfen.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 6
Beispiel für einen genetischen Algo
• Platzieren Sie eine gegebene Menge gegebene Menge verschieden großer Ellipsen und Kreisen in einem Rechteck, ohne dass sich diese berühren.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 7
Was spricht gegen genetische Algos?
• Sehr schlechte Performance, daher für die meisten Spiele ungeeignet.meisten Spiele ungeeignet.
• Sie suchen nach optimalen Lösungen, in Spielen genügt meist eine akzeptable Lösung.
• Dennoch: Ungewissheit, ob die Lösung optimal ist.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 8
Eine Alternative: Ereignisorientierte KI
• Gängige Praxis in den meisten Spielen.
Gegner besitzen Ereignisse, beispielsweise • Gegner besitzen Ereignisse, beispielsweise „Gegner in 10 Metern gesichtet“.
• Einfache Abfragen regeln dann das Verhalten (Flucht? Kampf?)
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 9
Was ist AntMe?
• Ein Spiel, bei dem die Programmierung von künstlicher Intelligenz (KI) das zentrale künstlicher Intelligenz (KI) das zentrale Spielprinzip ist.
• Eine prima Möglichkeit, die Sprachen C# oder Visual Basic .NET zu erlernen.
• Demonstriert ereignisorientierte KI in Computerspielen.
04.06.2008 Johannes Fritsch 10Künstliche Intelligenz und Ameisen
Das Spielprinzip
• Jeder Spieler kontrolliert ein Ameisenvolk.
Das Spielfeld enthält begrenzte • Das Spielfeld enthält begrenzte Nahrungsresourcen.
• Außerdem tummeln sich auf dem Spielfeld ameisenfressende Käfer.
04.06.2008 Johannes Fritsch 11Künstliche Intelligenz und Ameisen
Wie wird gespielt?
• Das Verhalten der eigenen Ameisen wird durch ein Programm gesteuert.ein Programm gesteuert.
• Durch Programmcode kann auf Ereignisse reagiert werden.
• Durch ausgefeilte Strategie-Routinen kann dem eigenen Volk zu einem Vorteil verholfen werden.
04.06.2008 Johannes Fritsch 12Künstliche Intelligenz und Ameisen
Was brauche ich?
• Visual Studio (Express oder Standard)
Microsoft DirectX für die Darstellung der 3D-• Microsoft DirectX für die Darstellung der 3D-Grafik.
• Aktuelles AntMe-Release von www.antme.net
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 13
Erste Schritte
• Installieren Sie Microsoft DirectX und Visual Studio.Studio.
• Laden Sie das Release für ihre Version von Visual Studio.
• Öffnen Sie die Datei Spieler.sln durch einen Doppelklick.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 14
Die Entwicklungsumgebung
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 15
Ein Testlauf
• Starten Sie die Simulation durch Drücken von Strg + F5Strg + F5
• Wählen Sie ein beliebiges Volk und verfolgen Sie die Geschehnisse.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 16
Demonstration I
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 17
Ein erster Testlauf
Die Datei Vorlage.cs
• Dient dem Erstellen eigener Völker.
Definiert leere Methoden, welche angepasst • Definiert leere Methoden, welche angepasst werden sollten.
• Sollte kopiert und angepasst werden.
• Ändern Sie nicht die Originaldatei.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 18
Erweiterbare Methoden
• Gliedern sich in 5 Kategorien
– Fortbewegung– Fortbewegung
– Nahrung
– Kommunikation
– Kampf
– Sonstiges
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 19
Demonstration II
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 20
Übersicht über die überschreibbaren Methoden
Ein eigenes Volk erstellen
• Kopieren Sie die Datei Vorlage.cs
Benennen Sie die Datei um• Benennen Sie die Datei um
• Ändern Sie den Namespace
• Geben Sie Ihrem Volk einen Namen
• Tragen Sie den Autor ein
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 21
Demonstration III
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 22
Ein neues Volk anlegen und simulieren
Problemstellung
ProblemProblem
• Ameisen stehen untätig am Rand des Baus
Lösung
• Wartet-Methode überschreiben
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 23
Demonstration IV
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 24
Ameisen bewegen sich kreisartig
Problemstellung
ProblemProblem
• Ameisen verhungern
Lösung
• WirdMüde-Methode überschreiben
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 25
Demonstration V
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 26
Ameisen kehren um, wenn sie müde sind
Problemstellung
ProblemProblem
• Ameisen laufen an Nahrung vorbei
Lösung
• Sieht-Methoden überschreiben
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 27
Demonstration VI
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 28
Ameisen laufen zu Nahrung
Problemstellung
ProblemProblem
• Ameisen stehen untätig an der Nahrung
Lösung
• ZielErreicht-Methode überschreiben
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 29
Demonstration VII
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 30
Ameisen nehmen Nahrung auf und gehen zu Bau
Ausblick
• Weitere Probleme müssen gelöst werden– Das Käferproblem– Das Käferproblem
– Ameisen verschenken Reichweite
– Keine Kommunikation
• Beispiele für taktisches Vorgehen– Kreisameisen
– Kampfameisen
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 31
Wie geht es weiter?
• Beim Microsoft Imagine Cup kämpfen KI-Fans aus der ganzen Welt um wertvolle Preise.aus der ganzen Welt um wertvolle Preise.
• Also: Mit den Ameisen warmspielen, und dann beim Imagine Cup loslegen.
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 32
VIELEN DANK FÜR IHRE
AUFMERKSAMKEIT
Ende der Präsentation
04.06.2008 Johannes Fritsch Künstliche Intelligenz und Ameisen 33