Künstliche Intelligenz und Ameisen · Was ist künstliche Intelligenz? • Automatisierung...

Preview:

Citation preview

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

Recommended