Artificial Intelligence in computer games

Größe: px
Ab Seite anzeigen:

Download "Artificial Intelligence in computer games"

Transkript

1 Künstliche Intelligenz in Computerspielen Recherche von Konzepten und Techniken zur Entwicklung eines Verkehrsagenten für die Lernspiel Plattform C.I.T.Y. Artificial Intelligence in computer games Research on concepts and techniques for the development of traffic agents in the serious game platform C.I.T.Y. Praxisprojekt-Dokumentation ausgearbeitet von Marco Reitano vorgelegt an der Fachhochschule Köln Campus Gummersbach Fakultät für Informatik und Ingenieurwissenschaften im Studiengang Medieninformatik Erster Betreuer: Zweiter Betreuer: Prof. Dr.-Ing. Friedbert Jochum Fachhochschule Köln Dipl.-Inform. Alex Maier Fachhochschule Köln Gummersbach, im November 2013

2 Adressen: Marco Reitano Virchowstraße Leverkusen Prof. Dr.-Ing. Friedbert Jochum Fachhochschule Köln Institut für Informatik Steinmüllerallee Gummersbach [email protected] Dipl.-Inform. Alex Maier Fachhochschule Köln Institut für Informatik Steinmüllerallee Gummersbach [email protected]

3 3 Kurzfassung Die vorliegende Arbeit beschäftigt sich mit der Entwicklung einer Straßenverkehrssimulation für das Projekt C.I.T.Y.. Sie dokumentiert meine Recherche zum Thema Künstliche Intelligenz in Computerspielen und fasst die Grundlagen zusammen. Verschiedene etablierte Techniken werden kurz umrissen und im Hinblick auf die spätere Entwicklung eines Straßenverkehrsagenten bewertet. Erste implementierte Proof-of- Concepts werden kurz erläutert und die resultierenden Probleme kurz umrissen. Die Ergebnisse dieses Praxisprojekts dienen als Grundlage für eine genauere Konzeption eines Straßenverkehrsagenten in meiner Bachelorarbeit.

4 4 Inhaltsverzeichnis 1 Einleitung Hintergrund und Motivation Vision und Zielsetzung des Praxisprojekts Aufbau der Arbeit Künstliche Intelligenz Grundlagen Rationale Agenten Aufgaben- und Arbeitsumgebung Spezifizierung für C.I.T.Y. Verkehrsagent Aufbau von Agenten Grundlegender Aufbau Agentenarten Aufgaben des Agentenprogramms Entscheidungsfindung Grundlagen Entscheidungsbaum Zustandsautomat Verhaltensbaum Zusammenfassung Bewegung Steering Behaviors Einige grundlegende Steering Behavior Kombination mehrerer Steering Behaviors Pfadfindung Repräsentation der Spielwelt als Graph Graphen Grundlagen Suche im Graph Hierarchische Pfadfindung Pfadfindung mit offenem Ziel Dynamische Pfadfindung Zeitkontinuierliche Pfadfindung Unterstützende Techniken Cached Polling Stations

5 5 6.2 Interruptible Processes Anytime Algorithms Scheduling Proof of Concepts Pfadfindung Steering Behaviors Behavior Editor Fazit 42 Literaturverzeichnis 43 Eidesstattliche Erklärung 44

6 6 1 Einleitung Das hier dokumentierte Praxisprojekt entstand im Rahmen meiner Arbeit im Forschungsschwerpunktes Software Qualität an der Fachhochschule Köln Campus Gummersbach. Schon seit dem Jahr 2000 entwickelt das Projekt in Kooperation mit der Städtischen Förderschule für geistige Entwicklung in Köln-Vogelsang auf deren Schüler zugeschnittene Lernspiele. Hauptsächliches Ziel dieser Spiele ist die Vermittlung von Alltagskompetenzen, die den Schülern mit geistiger Behinderung ein selbstständigeres Leben ermöglichen sollen. Die in der Vergangenheit erfolgreich abgeschlossenen Entwicklungsprojekte 1 behandelten Themen wie Einkaufen im Supermarkt, Erlernen eines üblichen Tagesablaufs oder das Einrichten eines Zimmers in der eigenen Wohnung und werden zum Teil heute noch im Unterricht eingesetzt. Das seit dem Jahr 2008 in der Entwicklung befindliche Projekt C.I.T.Y. (Computer Integrated Training for Young urban people) verfolgt das Ziel eine umfassendere Lösung zu schaffen als dessen Vorgängerprojekte, es thematisiert allgemein das Leben in der Stadt. Anstatt in sich abgeschlossene Insellösungen für die einzelnen Themengebiete zu schaffen, strebt das Projekt eine Plattform an, die die verschiedenen Lerninhalte zusammenfasst und sie so in einen globalen Kontext einbettet. Des Weiteren wird eine möglichst einfache und kostengünstige Erweiterbarkeit um neue Themengebiete und eine größtmögliche Anpassbarkeit auf die speziellen Bedürfnisse der verschiedenen Schülern angestrebt. Die Vision des Projekts ist es, dass die Schüler sich frei in einer virtuellen, interaktiven, dreidimensionalen Stadt bewegen und dabei verschiedene, aufeinander aufbauende Lektionen zu den jeweiligen Lerninhalten absolvieren können. Die Handlungen des Schülers werden durch das System protokolliert, sodass sie später durch den Lehrer bewertet werden können. Die Lernplattform soll dem Schüler eine gefahrenfreie Umgebung bereitstellen und so die Möglichkeit für ein stressfreies Lernen schaffen. Des Weiteren soll sichergestellt werden, dass eine hohe Transferleistung seitens der Schüler der, zuerst noch virtuellen, Lerninhalte auf den realen Alltag möglich ist. Des- 1 Vgl. vorgaenger-projekte, abgerufen am

7 7 halb wird eine möglichst hohe Realitätsnähe der virtuellen Umgebung angestrebt. Dies umfasst zum einen eine sehr detaillierte und genaue visuelle Abbildung der Stadtumgebung (Straßen, Gebäude, Beschilderung, usw.), zum anderen eine präzise Modellierung des Verhaltens der in der Stadt befindlichen Systeme, Objekte und Personen. Der Schüler kann so die virtuellen Orte, Objekte und Personen, sowie deren Verhalten in der Realität wiedererkennen und im Spiel Gelerntes leicht auf seinen realen Alltag übertragen. Die derzeitige Entwicklung der C.I.T.Y. Lernplattform erfolgt am beispielhaften Lernspiel Benutzung öffentlicher Verkehrsmittel und konzentriert sich auf Lerninhalte wie Orientierung im Stadtraum, Fahren mit der Straßenbahn und Verhalten im Straßenverkehr. Zum Zeitpunkt der Erstellung sind bereits zahlreiche 3D-Modelle von Gebäuden, Stadtmobiliar, Fahrzeugen und Ähnlichem erstellt und zu einer großteils wirklichkeitsnahen Abbildung der Umgebung der Kooperationsschule zusammengesetzt worden. Verschiedene Softwarekomponenten, wie unter anderem ein frei editierbares Straßenund Schienennetz, sowie die Simulation von Straßenbahnen inklusive zugehörigen Fahrkartenautomaten, sind bereits prototypisch umgesetzt und werden bereits in einfachen Lektionen eingesetzt. Eine erste Vorführung des aktuellen Entwicklungsstands in der Kooperationsschule erbrachte überwiegend positives Feedback. Eine produktiv einsetzbare Lösung zur Simulation von Straßenverkehr, insbesondere von Autos, fehlt bislang. Dadurch war die Erstellung von Lektionen zum Thema Verhalten im Straßenverkehr bisher noch nicht möglich. 1.1 Hintergrund und Motivation Bereits Ende 2012 erstellte ich deshalb ein erstes Proof-of-Concept zur Simulation von Straßenverkehr. Eine drastisch im Funktionsumfang reduzierte Lösung führte recht schnell zu ersten Teilerfolgen. Die Fahrzeuge folgten einer zufälligen Route auf dem Straßennetz und simulierten einfache Verhalten wie Halte Abstand zum Vordermann und Gewähre an Kreuzungen früher Ankommenden Vorfahrt. Die virtuelle (Teil-) Stadt wirkte durch das deutliche Mehr an sichtbarer Bewegung sehr viel belebter und deutlich realistischer. Es zeigte sich jedoch schnell, dass die implementierte Lösung wenig robust und kaum performant war. Schon eine geringe Anzahl von Fahrzeugen benötigte einen Großteil der Rechenleistung, die dem Spiel zu Verfügung steht, und das Verhalten der Fahrzeuge zeigte deutliche Fehler. Erste Versuche diese Probleme zu lösen erwiesen sich als kompliziert. Eine fehlende Modularisierung der Codebasis und das Fehlen einer klar erkennbaren Softwarearchitektur machten eine Überarbeitung sehr arbeitsaufwändig.

8 8 Auch die Erweiterung um neue Verhaltensregeln erwies sich als problematisch und war geprägt durch ständige Restrukturierung des schon vorhandendenen Codes. Aus diesen Gründen entschloss ich mich dazu, die vorhandene Lösung zu verwerfen und zuerst ein umfassendes Konzept zu entwicklen. Dazu war es nötig mich in das Feld der künstlichen Intelligenz einzuarbeiten und dem Problem angemessene Techniken zu recherchieren. Die Vielfältigkeit und Aktualität des Gebietes erweckten schnell mein Interesse, sodass ich mich dazu entschloss diese Aufgabe zum Thema meines Praxisprojekts zu machen. 1.2 Vision und Zielsetzung des Praxisprojekts Vision Das hier dokumentierte Praxisprojekt ist in die Vision einer Softwarekomponente eingebettet, die es ermöglicht Straßenverkehr in Echtzeit im Umfeld eines 3D-Lernspiels zu simulieren. Das Verhalten der simulierten Fahrzeuge soll dabei, soweit wie möglich, mit dem realen Verhalten von Fahrzeugen und deren Fahrern übereinstimmen. Die genaueren Anforderungen sind: 1. Fahrzeuge folgen den Straßenverkehrsregeln 2. Simulation von verschiedenen Fahrstilen unterschiedlicher Fahrer 3. Simulation von möglichem Fehlverhalten von Fahrern 4. Dynamische Reaktion auf Handlungen anderer Agenten, sowie des Spielers Zielsetzung des Praxisprojekts Die Ziele meines Praxisprojekts sind: Umfassende Recherche der allgemeinen Grundlagen der Künstlichen Intelligenz Einarbeitung in die übliche Vorgehensweise und etablierte Techniken bei der Entwicklung von künstlicher Intelligenz in Computerspielen Bewertung der recherchierten Ergebnisse auf ihre Anwendbarkeit im Projekt C.I.T.Y. Vorarbeit für eine umfassende Konzeption und spätere Implementierung der Straßenverkehrsagenten in der Bachelorarbeit

9 9 1.3 Aufbau der Arbeit Im Kapitel 2 Künstliche Intelligenz fasse ich die erarbeiteten Grundlagen zum Thema künstliche Intelligenz und Agenten kurz zusammen. Verschiedene Typen von Agenten werden vorgestellt und ihre grundlegender Aufbau besprochen. Die verschiedenen Aufgabengebiete, die der Agent erfüllen muss, werden voneinander abgegrenzt und kurz definiert. Die Kapitel 3 Entscheidungsfindung, 4 Bewegung und 5 Pfadfindung beschreiben die im Kapitel 2 definierten Teilaufgaben näher und stellen jeweils gängige Techniken und mögliche Architekturen kurz vor. Die Vor- und Nachteile der einzelnen Methoden werden abgewägt und auf ihre Anwendbarkeit für den C.I.T.Y. Verkehrsagenten eingegangen. Das Kapitel 6 Unterstützende Techniken beschäftigt sich mit ausgewählten unterstützenden Implementierungstechniken zur Performanceoptimierung. Das Kapitel 7 beschreibt erste Proof-Of-Concepts, die neben der Recherche entstanden sind und bespricht bei der Implementierung aufgetretene Probleme. Das Kapitel 8 Fazit fasst die Ergebnisse zusammen und bietet einen Ausblick auf die nächsten Schritte in der Entwicklung des Verkehrsagenten.

10 10 2 Künstliche Intelligenz 2.1 Grundlagen Das Gebiet der Künstlichen Intelligenz (abgekürzt: KI) beschäftigt sich mit der Systematisierung und Automatisierung intellektueller Aufgaben. Ziel ist die Erstellung von intelligenten Einheiten, die zum einen menschliche Denkprozesse und die menschliche Fähigkeit zum logischen Schließen nachbilden und zum anderen menschliches Verhalten imitieren. Der Erfolg einer KI kann dabei sowohl an menschlichen Leistungen gemessen werden, als auch den Anspruch an eine ideale Intelligenz verfolgen, welche oft übermenschliche Leistungen hervorbringt. Dieses Konzept einer idealen Intelligenz wird oft als vollständig rational bezeichnet. [RN04, S.17 f] Ein System ist rational, wenn es das seinen Kenntnissen entsprechende Richtige macht. [RN04, S. 18] Aufgrund der verschiedenen Ansprüche lassen sich die KI-Systeme in die vier folgenden Kategorien einteilen: Systeme, die wie Menschen denken Systeme, die rational denken Systeme, die wie Menschen agieren Systeme, die rational agieren Aufgrund der Anforderung ein möglichst realistisches menschliches Fahrverhalten zu simulieren, beschäftigt sich diese Arbeit vor allem mit Systemen, die wie Menschen agieren. 2.2 Rationale Agenten Der Begriff Agent beschreibt eine abgeschlossene Einheit, die autonom handelt. Ein Agent sammelt Informationen über seine Umgebung und trifft auf deren Grundlage Entscheidungen und handelt dementsprechend.

11 11 Ein Agent ist alles, was seine Umgebung über Sensoren wahrnehmen kann und in dieser Umgebung durch Aktuatoren handelt. [RN04, S. 55] Ein rationaler Agent trifft darüber hinaus Entscheidungen, welche das (wahrscheinlich) beste Ergebnis erzielen. Man kann also sagen, dass [...] jeder rationale Agent sich so verhalten muss, als besäße er eine Nutzenfunktion, deren erwarteten Wert er zu maximieren versucht. [RN04, S.78] Abhängig von der konkreten Implementierung, kann diese Nutzenfunktion, durch den Agenten selbst, durch Auswahl geeigneter Aktionen, maximiert werden oder schon durch den Entwickler, durch Auswahl geeigneter Regeln, implizit maximiert werden. Sie verfügen also über eine künstliche Intelligenz. Handelt es sich bei der Umgebung des Agenten um ein Softwaresystem, so spricht man von Softwareagenten. Im vorliegenden Fall handelt es sich bei der Umgebung um: die Game-Engine Unity bereits erstellte 3D-Modelle der Stadt verschiedene andere, bereits umgesetzte, Softwarekomponenten der Lernplattform Beim zu entwickelnden Straßenverkehrsagenten handelt es sich also um einen Softwareagenten Aufgaben- und Arbeitsumgebung Nach [RN04, S. 63] sollte eine möglichst vollständige Spezifizierung der Aufgabenumgebung immer der erste Schritt bei der Entwicklung eines Agenten sein. Die Aufgabenumgebung beschreibt das vom rationalen Agenten zu lösende Problem genauer und grenzt das zu erwartende Verhalten der fertigen Lösung ein. Diese Spezifizierung geschieht in Form der sogenannten PEAS-Beschreibung (Performance, Enviroment, Actuators, Sensors - Leistungsbewertung, Umgebung, Aktuatoren, Sensoren). Der zweite Schritt ist eine genauere Betrachtung der Arbeitsumgebung des Agenten, diese variieren entlang mehrerer wesentlicher Dimensionen. Die Ergebnisse dieser Spezifizierung wirken sich direkt darauf aus, welches Design für das Agentenprogramm geeignet ist [RN04, S. 62]. PEAS-Beschreibung Die einzelnen Kategorien der PEAS-Beschreibung werden im folgenden kurz aufgezählt und ihre Bedeutung erläutert: Performance - Leistungsbewertung beschreibt zum einen Kriterien, nach denen der Agent seine in der Vergangenheit

12 12 liegenden Handlungen bewerten kann, um aus eventuellen Fehlern zu lernen. Die Leistungsbewertung beschreibt zum anderen aber auch Kriterien nach denen der Agent zukünftige Handlungsmöglichkeiten bewertet, um so eine Entscheidung zu treffen. Enviroment - Umgebung umfasst alle für den Agenten wichtigen Aspekte seiner Umwelt, also alles was seine Entscheidungen beeinflussen können soll. Acutators - Aktuatoren sind die dem Agenten zur Verfügung stehenden Mittel um mit seiner Umwelt zu interagieren. Sensors - Sensoren beschreibt die Mittel, die dem Agenten zur Verfügung stehen um Informationen über seine Umwelt zu sammeln. Eigenschaften der Arbeitsumgebungen Arbeitsumgebungen variieren entlang mehrerer wesentlicher Dimensionen. Diese Dimensionen legen zu einem großen Ausmaß das geeignete Design für einen Agenten fest ebenso wie die Anwendbarkeit der grundlegenden Technikfamilien für die Implementierung von Agenten. [RN04, S. 66] Die einzelnen Dimensionen werden im folgenden aufgelistet und kurz erläutert: vollständig beobachtbar / teilweise beobachtbar Eine Arbeitsumgebung ist dann vollständig beobachtbar, falls der Agent jederzeit alle für seine Entscheidung wichtigen Informationen über seine Sensoren wahrnehmen kann. Teilweise beobachtbare Arbeitsumgebungen zeichnen sich dadurch aus, dass einige Aspekte der Umwelt dem Agenten verborgen bleiben können oder mit einer gewissen Unsicherheit behaftet sind. Beispielsweise dann wenn Objekte aus dem Sichtfeld eines Sensors geraten oder durch andere Objekte verdeckt werden können. Vollständig beobachtbare Umgebungen sind praktisch, weil der Agent keinen internen Zustand verwalten muss. [RN04, S. 66] deterministisch / stochastisch Eine Arbeitsumgebung ist deterministisch, falls ihr nachfolgender Zustand ausschließlich vom aktuellen Zustand und den Aktionen des Agenten abhängig ist. Ein Agent kann also zukünftige Zustände vorrausberechnen und anhand dessen

13 13 sichere Aussagen über das Ergebnis seiner Handlung treffen. In einer stochastischen Arbeitsumgebung kann ein Agent zukünftige Zustände nur mit einer gewissen Wahrscheinlichkeit vorraussagen. Seine Handlungen führen also nicht immer zum erwartetem Ergebnis. episodisch / sequentiell Episodische Arbeitsumgebungen sind dadurch gekennzeichnet, dass sie aus atomaren, zeitlichen, voneinander unabhängigen Einheiten bestehen. Das heißt, Erfahrungen aus vergangenen Epdisoden und bereits getätigte Aktionen sind für die aktuelle Episode nicht relevant. Im Falle einer sequentiellen Arbeitsumgebung beeinflussen getätigte Aktionen und Entscheidungen den Zustand der aktuellen Umwelt. statisch / dynamisch In einer statischen Arbeitsumgebung kann sich ein Agent sicher sein, dass sich seine Umwelt während seinem Entscheidungsfindungsprozess nicht verändert. Eine dynamische Arbeitsumgebung hingegen kann sich verändern, während der Agent eine Aktion auswählt. Es müssen also geeignete Maßnahmen getroffen werden, damit der Entscheidungsfindungsprozess des Agenten auf solche Änderungen schon während der Ausführung reagieren kann und eine geeignete Aktion aufgrund der neuen Informationen auswählt. diskret / stetig Diskrete Arbeitsumgebungen zeichnen sich durch eine endliche Anzahl von möglichen Zuständen, Wahrnehmungen und Aktionen aus. Eine stetige Arbeitsumgebung hat eine unendliche Anzahl unterschiedlicher Zustände und möglicher Aktionen. Wahrnehmungen haben einen durchgängigen Wertebereich und können alle denkbaren Zwischenwerte annehmen. Einzelagent- / Multiagent-Umgebung Die Entscheidung, ob es sich um eine Einzelagent- oder Multiagent-Umgebung handelt, ist dadurch gekennzeichnet, ob sich in der Umgebung mehrere sich verhaltende Entitäten befinden, die versuchen eine Leistungsbewertung zu maximieren. Die Art dieser Entität ist dabei unwichtig, so muss ein Agent auch einen Menschen, der sich in seiner Umgebung befindet, als anderen Agenten betrachten.

14 Spezifizierung für C.I.T.Y. Verkehrsagent PEAS-Beschreibung Performance - Leistungsbewertung aus Sicht realen Straßenverkehrs Straßenverkehrsregeln folgend größtmögliche Sicherheit Vermeidung von Unfällen kürzester Weg und/oder schnellster Weg minimale Kosten Vermeidung von Stau aus Softwaresicht Beispiele: Berechnung der Wegstrecke eines Pfades Berechnung eines nötigen Mindestabstands Aus Softwaresicht handelt es sich um eine Vielzahl von unterschiedlichen Funktionen, die die in aus Sicht realen Straßenverkehrs aufgeführten Kriterien berechenbar machen und eine Bewertung und späteren Vergleich von verschiedener Handlungsmöglichkeiten ermöglichen. Konkrete Nutzenfunktionen sind Teil einer späteren, genaueren Konzeption (in der Bachelorarbeit). Enviroment - Umgebung aus Sicht realen Straßenverkehrs Straßen Fahrstreifen Fahrbahnmarkierungen Straßenschilder Lichtsignalanlagen Andere Fahrzeuge Fußgänger, im speziellen der Spieler aus Softwaresicht Straßennetz andere Fahrzeugagenten Passantenagenten Spielercharakter Actuators - Aktuatoren aus Sicht realen Straßenverkehrs Gas Bremsen Lenkung Hupe Fahrzeugbeleuchtung aus Softwaresicht WheelCollider.Torque WheelCollider.BrakeTorque WheelCollider.SteeringAngle AudioSource SpotLights Sensors - Sensoren

15 15 aus Sicht realen Straßenverkehrs Position Abstand -zu anderen Fahrzeugen -zu Fußgängern -zur Umgebung Geschwindigkeit (Richtung und Betrag) -eigenen Geschwindigkeit -Geschwindigkeit anderer Fahrzeuge und Fußgänger Beschleunigung aus Softwaresicht Transform.Position Transform.Rotation Rigidbody.Velocity Raycasts Eigenschaften der Arbeitsumgebung C.I.T.Y. vollständig beobachtbar / teilweise beobachtbar Grundsätzlich könnte die Arbeitsumgebung C.I.T.Y. als vollständig beobachtbar angesehen werden, da der Agent auf die gesamte Spielumgebung Zugriff hat und den Zustand aller Objekte innerhalb der Game-Engine abfragen kann. Allerdings ist die Arbeitsumgebung absichtlich teilweise beobachtbar, da verschiedene Sensoren des Fahrzeugagenten nur auf seine unmittelbare Umgebung Zugriff haben sollen. So kann das begrenzte Wahrnehmungsvermögen eines realen Autofahrers simuliert werden und unter Umständen ein realistischeres Verhalten erzielt werden. deterministisch / stochastisch Insbesondere der Spieler hat einen Einfluss auf den zukünftigen Zustand der Umgebung, welcher vom System nicht vorausberechnet werden kann. Auch verschiedene Aspekte der Physiksimulation der Spieleengine lassen sich kaum für jeden Agenten berechnen, da dies zu sehr rechenintensive Operationen führen würde. Diese Einflüsse müssen also als nicht vorhersagbar betrachtet werden. Es handelt sich somit um eine stochastische Arbeitsumgebung. episodisch / sequentiell Die Arbeitsumgebung ist sequentiell, da der zukünftige Zustand der Welt von den in der Vergangenheit ausgewählten Aktionen des Agenten abhängt. Entscheidet sich der Agent beispielsweise dafür in eine Sackgasse abzubiegen, so beschränkt dies seine zukünftigen Handlungsmöglichkeiten und er hat nur noch die Möglichkeit zu wenden. statisch / dynamisch Es handelt sich um eine statische Arbeitsumgebung, falls Entscheidungsfin-

16 16 dung des Agenten innerhalb eines Frames (d.h. innerhalb eines Updatezyklus der Spiele-Engine) abgeschlossen ist. Während dieses Frames verändert sich die Umwelt nicht. Es handelt sich um eine dynamische Arbeitsumgebung, falls das KI-System eine der verschiedenen Scheduling Techniken aus Kapitel 6.4 implementiert und dadurch die Entscheidungsfindung ihre Berechnungen über mehrere Frames verteilt. diskret / stetig Es handelt sich um eine stetige Arbeitsumgebung, da sie eine unendliche Anzahl von Zuständen annehmen kann. Wahrnehmung und Aktionen verfügen über einen kontinuierlichen Werte- und Definitionsbereich. Einzelagent- / Multiagenten-Umgebung Die Arbeitsumgebung ist eine Multiagenten-Umgebung, da es eine große Anzahl von Fahrzeugagenten geben soll, die miteinander interagieren. Das gemeinsame Ziel der Agenten Unfälle zu vermeiden, spricht für eine kooperative Multiagent- Umgebung. Andererseits spricht beispielsweise der Wettbewerb der Fahrzeugagenten um freie Parkplätze dafür, dass auch Aspekte einer konkurrierenden Multiagent-Umgebung vorhanden sind. Die Spezifizierung der Eigenschaften der Arbeitsumgebung C.I.T.Y. erwies sich als schwierig. Dies hat den Grund, dass sich die Arbeitsumgebung des Agenten zur Zeit auch noch in der Entwicklung befindet. Des Weiteren hängen einige der erwähnten Dimensionen nicht nur von der Arbeitsumgebung selbst ab, sondern auch von der späteren Implementierung des Verkehrsagenten (siehe Punkt statisch / dynamisch ). 2.3 Aufbau von Agenten Grundlegender Aufbau Nach [RN04] wird ein Agent definiert durch seine Architektur und eine Agentenfunktion. Die Architektur umfasst die zur Verfügung stehenden Sensoren und Aktuatoren. Das Agentenprogramm implementiert die Agentenfunktion. Die Agentenfunktion hat die Aufgabe eine Wahrnehmungsfolge auf eine Aktion bzw. auf eine Verhalten abzubilden. Die Agentenprogramme [...] haben alle denselben Aufbau: Sie nehmen die aktuelle Wahrnehmung als Eingabe von den Sensoren entgegen und geben eine Aktion an die Aktuatoren zurück. [RN04, S. 71]

17 Agentenarten Einfacher Reflex-Agent Der einfache Reflex-Agent wählt eine Aktion auf Basis der aktuellen Wahrnehmung aus. Wahrnehmungen aus der Vergangenheit, die sogenannte Wahrnehmungsfolge, wird von ihm nicht beachtet. Die Auswahl der Aktion erfolgt über einen Satz von Bedingung/Aktion-Regeln. (siehe Abbildung 2.1) Ein Reflex-Agent funktioniert nur dann, wenn die korrekte Entscheidung auf der Grundlage nur der aktuellen Wahrnehmung getroffen werden kann - das bedeutet, nur wenn die Umgebung vollständig beobachtbar ist. [RN04, S.74] Abbildung 2.1: Schematische Darstellung eines einfachen Reflex-Agenten Modellbasierter Reflex-Agent Der Modellbasierte Reflex-Agent wird vor Allem in teilweise beobachtbaren Arbeitsumgebungen eingesetzt. Er verfügt neben einem Satz von Bedingung/Aktion-Regeln auch über einen internen Zustand. Dieser interne Zustand hängt sowohl von der aktuellen Wahrnehmung und als auch der Wahrnehmungsfolge (Wahrnehmungen aus der Vergangenheit) ab und führt so einen Teil der nicht beobachtbaren Aspekte des aktuellen Zustands mit. Die aktuell nicht beobachtbaren Aspekte des aktuellen Zustands werden über die sogenannte Zustandsaktualisierung extrapoliert. (siehe Abbildung 2.2) Diese Zustandsaktualisierung benötigt zwei Arten von Wissen: Wissen darüber, wie sich die Umgebung unabhängig vom Agenten entwickelt

18 18 Wissen darüber, wie sich die eigene Aktionen des Agenten auf seine Umgebung auswirken Dieses Wissen darüber, wie die Welt funktioniert [...] wird als Modell der Welt bezeichnet. [RN04, S.73 f] Abbildung 2.2: Schematische Darstellung eines modellbasierten Reflex-Agenten Zielbasierter Agent Das Wissen über den aktuellen Zustand der Umgebung ist nicht immer ausreichend, um zu entscheiden, was zu tun ist. [RN04, S.77] Der zielbasierte Agent erweitert den Modellbasierten Reflex-Agent um Information über ein Ziel (Goal). Dieses Ziel kann unter Umständen durch verschiedene Aktionsfolgen erreicht werden. Der zielbasierte Agent wählt eine der möglichen Aktionen aus, die ihn ans Ziel führt. Falls das Ziel nicht innerhalb einer Aktion erreichbar ist, ist die Berechnung einer Aktionsfolge, deren Folge die Erreichung des Ziels ist. Mit der Berechnung dieser Aktionsfolge beschäftigen sich die Teilbereiche der Künstlichen Intelligenz: Suchen und Planen. (siehe Abbildung 2.3) Nutzenbasierter Agent Ein nutzenbasierter Agent erweitert den zielbasierten Agenten um eine Nutzenfunktion. Diese bildet einen Zustand (oder eine Zustandsfolge) auf eine reelle Zahl ab, die den zugehörigen Grad der Glücklichkeit [den Nutzen] beschreibt. [RN04, S.78] Der Agent unterscheidet so nichtmehr nur zwischen Zielzuständen und Nicht-Zielzuständen, sondern ordnet jedem Zustand einen Erreichungsgrad des Ziels bzw. der Ziele zu. Die

19 19 Abbildung 2.3: Schematische Darstellung eines modellbasierten, zielbasierten Agenten Maximierung dieser Funktion erlaubt es dem Agenten eine Abwägung zwischen mehreren (zueinander in Konflikt stehenden) Zielen zu treffen. Ein Agent kann so einerseits eine Auswahl zwischen den verschiedenen Zielen treffen und andererseits Zwischenzustände anstreben, die mehrere Ziele gleichzeitig bestmöglich erfüllen. (siehe Abbildung 2.4) Die in spezifizierten Leistungsbewertungen des C.I.T.Y.-Verkehrsagenten können als unterschiedliche Ziele, die der Agent verfolgen muss aufgefasst werden. Da alle diese Ziele gleichzeitig verfolgt werden müssen und einige zueinander in Konflikt stehen, ist die Möglichkeit einer Abwägung verschiedener Ziele zwingend erforderlich. Die Verwendung eines nutzenbasierten Agenten erscheint deshalb sinnvoll. Lernender Agent Im Gegensatz zu den vorangegangenen Agentenarten ist das Verhalten eines lernenden Agenten nicht allein durch seinen Entwickler und dessen Programmierung bestimmt. Vielmehr bewerten lernende Agenten die Resultate vorheriger Aktionen im Hinblick auf einen bestimmten Leistungsstandard und verändern ihren Entscheidungsfindungsprozess mit dem Ziel die Erreichung der Lernziele zu maximieren. Um dies zu ermöglichen schlägt [RN04] eine Aufteilung des Agenten in vier Komponenten vor: Leistungselement - die eigentliche Entscheidungsfindung - trifft die Auswahl von Aktionen anhand bestimmter Regeln

20 20 Abbildung 2.4: Schematische Darstellung eines nutzenbasierten Agenten Kritik - bewertet das Resultat vorangegangener Aktionen im Hinblick auf einen festgelegten (externen) Leistungsstandard Lernelement - ist dafür verantwortlich Verbesserungen zu erzielen - verändert das Leistungselement Problemgenerator - schlägt Aktionen vor, die zu neuen, informative Erfahrungen führen - ermöglicht so forschendes / sondierendes Verhalten - verbessert so langfristig den Lernerfolg, indem die zugrundeliegende Wissensbasis erweitert wird Nach [RN04, S. 79] sind lernende Agenten besonders dazu geeignet: 1. in zunächst unbekannten Umgebungen zu arbeiten und darin kompetenter zu werden, als das Ausgangswissen es erlauben würde [RN04, S. 79] 2. eine manuelle Programmierung und den damit verbundenen Arbeitsaufwand zu vermeiden und stattdessen das Verhalten des Agenten zu lehren Der Lernprozess eines solchen lernenden Agenten kann dabei sowohl Offline als auch Online stattfinden. Beim Offline Lernen findet der Lernprozess zur Entwicklungszeit

21 21 der Agentensoftware statt. Online lerndene Agenten hingegen verändern ihren Entscheidungsfindungsprozess auch noch, wenn sie sich schon im produktiven Einsatz befinden. Die wohl bekanntesten Ansätze für lernende Agenten (und lernende künstliche Intelligenz allgemein) finden sich in der Umsetzung als neuronale Netze oder den genetischen Algorithmen. Prinzipiell lassen sich allerdings alle Agentenarten um eine lernende Komponente erweitern. (siehe Abbildung 2.5) Abbildung 2.5: Schematische Darstellung eines lernenden Agenten Bewertung der Agentenarten in Hinblick auf C.I.T.Y. Die Umsetzung der Fahrzeugagenten als einfachen Reflex-Agenten erscheint wenig sinnvoll. Wie schon in der Spezifizierung der Arbeitsumgebung angegeben handelt es sich um eine teilweise beobachtbare Arbeitsumgebung. Einem einfachen Reflex-Agenten ist es in einer solchen Umgebung kaum möglich sich rational zu verhalten. Bereits getroffene Entscheidungen, wie etwa die Entscheidung einen Überholvorgang zu beginnen, müssen durch den Agenten persistiert werden. Der Agent muss also über einen internen Zustand verfügen. Dieser Umstand macht eine Umsetzung als modellbasierten Reflex-Agenten zur Mindestvorraussetzung. Nach [MF09, S.21] sollte das Wahrnehmungsfenster (englisch: Perception Window) des Spielers bei der Entwicklung in Betracht gezogen werden. Sieht der Spieler einen Agenten nur für einen kurzen Zeitabschnitt, so ist es ihm kaum möglich höhere Beweggründe für das Verhalten der Agenten zu erkennen. Eine Modellierung solcher höheren Beweggründe ist in solchen Fällen also unnötig und eine Umsetzung als nutzenbasierter Agent erscheint unter diesem Aspekt überflüssig. Da die in spezifizierten

22 22 Leistungsbewertungen allerdings zum Teil gegenläufige Ziele beschreiben, ist es nötig ein eine Abwägung dieser zu ermöglichen. Dies macht die Wahl einer nutzenbasierten Agentenart unumgänglich. Auch eine spätere Erweiterung um beispielsweise Taxifahrten wird so ermöglicht. Der Spieler kann in diesem Fall den (Taxi-)Verkehrsagenten über längere Zeit beobachten und hat so die Möglichkeit eine fehlende Nutzenabschätzung seitens des Agenten zu erkennen. Die zuvor angesprochenen höheren Beweggründe des Taxiagenten rücken in das Wahrnehmungsfenster des Spielers und müssen deshalb modelliert werden. Des Weiteren stellt sich die Frage, ob eine Implementierung als lernender Agent sinnvoll ist: Offline lernende Agenten sind in der Spieleentwicklung bereits weit verbreitet. Grund hierfür ist der hohe Zeitaufwand ein bestehendes KI System auf die speziellen Bedürfnisse des jeweiligen Spiels anzupassen. Durch das Offline lernen kann dieser Prozess automatisiert werden und so Kosten eingespart werden. Online lernende Agenten hingegen sind in der Spieleentwicklung eher selten anzutreffen. Gründe hierfür sind nach [MF09, S.579 f.] verschiedene Probleme mit der Vorhersagbarkeit und dem Testen des Verhaltens der Agenten. Es ist für den Entwickler kaum vorhersagbar in welche Richtung sich ein online lernender Agent entwickelt. Vorstellbar sind Situationen, die vom Entwickler bei der Definition der Leistungsstandards nicht bedacht wurden. Solche Situationen führen dazu, dass der Agent ein für den Spieler offensichtlich, falsches Verhalten erlernt. Diese Situationen können hingegen beim Offline Lernprozess erkannt werden und der entsprechende Leistungsstandard frühzeitig angepasst bzw. erweitert werden. Eine abschließende Entscheidung, ob eine Umsetzung des Fahrzeugagenten als lernender Agent sinnvoll ist, erscheint zum gegenwärtigen Zeitpunkt schwierig. Diese Entscheidung hängt vor allem davon ab, ob und welche Aspekte der Umgebung dem Agenten unbekannt bleiben und ob diese einen Einfluss auf das Verhalten des Agenten haben. Vorstellbar sind Einflüsse durch die Physik-Engine, die sich nicht (oder nur mit sehr aufwändigen Berechnungen) im Voraus durch den Agenten selbst berechnen lassen. Für den Umgang mit solchen Einflüssen bietet sich eine Umsetzung als offline lernender Agent an. Ein online lernender Agent ist nur sinnvoll für Einflüsse, die erst zur eigentlichen Laufzeit des Spiels entstehen. Soll der Agent sich beispielsweise auf bestimmte Handlungsweisen des aktuellen Spielers einstellen ist ein online Lernen unumgänglich. Im vorliegenden Fall geht es allerdings, um die Simulation möglichst realitätsnahen Straßenverkehrs, welche unabhängig ist vom jeweiligen Spieler. Ein online lernender Agent kann deshalb schon jetzt ausgeschlossen werden.

23 Aufgaben des Agentenprogramms Sowohl [MF09], [Buc04], als auch [Rey99] schlagen eine weitere Aufteilung des Agentenprogramms in verschiedene Komponenten aus Sicht der verschiedenen Aufgabengebiete vor. (Vgl. Abbildungen 2.6 und 2.7) Entscheidungsfindung english: Decision making / Action selection Die Entscheidungsfindung hat zur Aufgabe die Auswahl einer Aktion anhand der Leistungsfunktion zu treffen. Diese Auswahl basiert auf der aktuellen Wahrnehmung und/oder dem Wissensmodell des Agenten Pfadfindung englisch: Pathfinding Die Pfadfindung umfasst die Suche des kürzesten Pfades durch einen aus der Spielgeometrie vorgegeben oder zur Laufzeit erzeugten Graph Lokale Steuerung / Bewegung english: Local Steering / Movement Bei der lokalen Steuerung handelt es sich um die Berechnung der Bewegung von Agenten. Dynamische, situationsbedingte Reaktionen auf die Umgebung des Agenten werden berechnet. Im Gegensatz zur Pfadfindung handelt sich hierbei um Berechnungen mit möglichst geringem Rechenaufwand, die in einer hochfrequenten Schleife ablaufen und so eine möglichst zeitnahe Reaktion auf die unmittelbare, sich verändernde, Umgebung liefern. Lokomotion english: Locomotion Bei der Lokomotion handelt es sich um die eigentliche Interaktion mit der Umgebung des Agenten. Die Aktuatoren des Agenten werden angesteuert und so die ausgewählte Aktion ausgeführt. Handelt es sich bei der Arbeitsumgebung des Agenten um eine Spiele-Engine werden an dieser Stelle die Funktionalitäten der Engine aufgerufen, wie etwa das Starten einer Animation oder die Durchführung einer Translation oder Rotation eines Spieleobjekts.

24 24 Abbildung 2.6: Aufteilung der Aufgaben des Agentenprogramms aus [MF09, S.39] Abbildung 2.7: Aufteilung der Aufgaben des Agentenprogramms aus [Rey87]

25 25 3 Entscheidungsfindung 3.1 Grundlagen Die Komponente der Entscheidungsfindung hat die Aufgabe zu berechnen welche Aktion bzw. welches Verhalten zum gegenwärtigen Zeitpunkt vom Agenten ausgeführt werden soll. Internes Wissen (Zustand des Agenten) und/oder externes Wissen (die Wahrnehmung) wird über verschiedene Algorithmen interpretiert und eine zu diesem Wissen passende(s) Aktion/Verhalten ausgewählt. Ausgewählte Techniken der Entscheidungsfindungs werden im folgenden kurz beschrieben und Vor- und Nachteile der jeweiligen Umsetzung aufgeführt. 3.2 Entscheidungsbaum Ein Entscheidungsbaum (englisch: Decision Tree) nutzt eine Baumstruktur für die Entscheidungsfindung. Die Knoten diese Baums repräsentieren Entscheidungen (Decisions), die Blätter des Baums repräsentieren die dem Agenten möglichen Aktionen. Der Agent traversiert den Entscheidungsbaum beginnend an der Wurzel in zyklischen (zeitlichen) Abständen. An jedem Knoten wird die Wahrnehmung des Agenten ausgewertet und ein Kindknoten ausgewählt. Kommt der Algorithmus an einem Blatt des Baums(also einer Aktion) an, wird diese ausgewählt und vom Agenten ausgeführt. Es ist nach [MF09] allgemein üblich den Entscheidungsbaum als Binärbaum zu implementieren, das heißt jeder Knoten besitzt höchstens zwei Kindknoten. Dies hat den Vorteil, dass die Entscheidugen als einfacher Wertevergleich mit boolschem Ergebnis implementiert werden können. Da der Entscheidungsbaum bei jedem Aufruf komplett von der Wurzel aus traversiert wird und falls Entscheidungen ausschließlich aufgrund der aktuellen Wahrnehmung getroffen werden, benötigt der Agent keinen internen Zustand. In diesem Fall handelt es sich also um einen einfachen Reflex Agent. Performance O(log n) in Laufzeit mit n als Anzahl der Knoten des Baums O(n) in Speicher Vorteile:

26 26 gute Performance, da einfache boolsche Wertevergleiche einfach zu implementieren Nachteile: Aktionsfolgen sind schlecht zu modellieren, da kein Wissen über vorangegangene Aktionen vorhanden ist 3.3 Zustandsautomat Zustandsautomaten (englisch: State Machines) nutzen die Datenstruktur eines Graphen. Die Menge der Knoten des Graphen modellieren die Zustände (States) in denen sich ein Agent befinden kann. Die Kanten des Graphen repräsentieren Transitionen zwischen den einzelnen Zuständen. Jede Transition verfügt über einen Satz von Bedingungen, sind diese Bedingungen erfüllt, wird der Transition gefolgt und der Agent nimmt einen neuen Zustand ein. Jedem Zustand ist eine Aktion zugeordnet, die solange ausgeführt wird bis der Agent den Zustand verlässt. Außerdem ist jedem Zustand ein Eingangs- und einen Ausgangsaktion zugeordnet, die ausgeführt wird, sobald der Agent den Zustand einnimmt bzw. wieder verlässt. Auch jeder Transition ist eine Aktion zugeordnet, die einmalig ausgeführt wird, sobald der Agent der Transition folgt. Ein Agent, der eine State Machine implementiert, verfügt über einen internen Zustand und ist somit (mindestens) ein einfacher modellbasierter RelexAgent. Performance O(n) in Laufzeit, mit n als Anzahl der Transitionen pro Zustand O(n+m) in Speicher, mit m als Anzahlt aller Zustände und n als Anzahl der Transitionen pro Zustand Vorteile: klar geordnete Aktionsfolgen sind möglich einfache Berücksichtigung von Wahrnehmungsfolgen (also der Vergangenheit) möglich Nachteile: immer nur eine Aktion gleichzeitig möglich, da sich ein Agent zu jeder Zeit nur in einem Zustand befindet

27 Verhaltensbaum Hauptbaustein der Verhaltensbäume (englisch: Behavior Trees) sind Aufgaben (englisch: Tasks), die in einer Baumstruktur hierarchisch voneinander abhängen. Der Baum wird beginnend an der Wurzel in die Tiefe durchlaufen und der aktuell gewählte Ast auf Erfolg hin überprüft. Bei Misserfolg wird der nächste Kindknoten ausgewählt und ausgeführt. Im Gegensatz zum Entscheidungsbaum (Decisiontree) handelt es sich bei den Knoten des Baums nicht nur um reine Wertevergleiche mit boolschem Ergebnis. Vielmehr fassen die Aufgabenknoten drei unterschiedliche Konstrukte zusammen: Konditionen Wertevergleiche mit boolschem Ergebnis ähnlich den Entscheidungsknoten eines Entscheidungsbaums. Input sind Wahrnehmungen aus der Umgebung und Werteabfragen über den internen Zustand des Agenten. Aktionen Eine atomare Aktion, die durch die Aktuatorebene des Agenten ausgeführt werden können Komposition (Composition) Fassen andere Aufgaben (Tasks) als Kindknoten zusammen. Ihr Verhalten wird durch das Verhalten ihrer Kindknoten bestimmt. Auswahl (Selector) Eine Liste von Aufgaben, die der Reihe nach auf Erfolg geprüft und ausgeführt werden. Gibt Erfolg zurück, sobald einer der Kindknoten erfolgreich ist. Gibt Misserfolg nur dann zurück, wenn alle Kindknoten nicht erfolgreich sind. Abfolge (Sequence) Eine Folge von Aufgaben, die der Reihe nach auf Erfolg geprügt und ausgeführt werden. Gibt Erfolg zurück, nur wenn alle Kindknoten erfolgreich sind. Gibt Misserfolg zurück, sobald auch nur ein Kindknoten nicht erfolgreich ist. Durch die Zusammenführung der verschiedenen Aufgabentypen auf ein gemeinsames Interface lassen sich komplexe Teilaufgaben einfach zusammenfassen und als Teilbaum in den Baum einsetzen. Diese Teilaufgaben kapseln nicht nur die Aktionen an sich,

28 28 sondern kümmern sich auch selbst um ihre eigene Gültigkeit. Deshalb ist es für den Verhaltensdesigner sehr einfach zuerst konzeptionell einen Verhaltenbaum aufzubauen, ohne sich mit der späteren Implementation der einzelnen Aufgaben zu kümmern. Diese Eigenschaft macht den Verhaltensbaum in der Spieleindustrie äußerst beliebt. O(log n) in Laufzeit mit n als Anzahl der Knoten des Baums O(n) in Speicher Vorteile: Durch Komposition verschiedener Teilaufgaben ist der Aufbau komplexerer Aktionen leicht möglich Teilaufgaben bestimmen ihre Gültigkeit selbst Hohe Beliebheit in der Spieleentwicklung, dadurch hohe Verfügbarkeit weiterführender Literatur Nachteile: Zustandsbasiertes Verhalten ist schwer zu realisieren (ähnlich wie beim Entscheidungsbaum) 3.5 Zusammenfassung Es zeigt sich, dass jede Technik der Entscheidungsfindung Vor- und Nachteile hat. Zustandsautomaten eignen sich besonders für Agenten mit diskreten, voneinander unabhängigen Zuständen. Lassen sich solche Zustände nicht klar umreißen eignet sich eher ein Entscheidungsbaum oder ein Verhaltensbaum. Als Zwischenlösung schlägt [MF09] eine Zusammenführung und gleichzeitige Nutzung der unterschiedlichen Entscheidungsfindungstechniken vor. Dies bedeutet einen erheblichen Mehraufwand bei der Implementierung. Im vorliegenden Fall des Verkehrsagenten erscheint ein solches Vorgehen aber als sinnvoll. So können auf der einen Seite diskrete Zustände für beispielsweise Parkend, Wartend und Fahrend oder auch Überholend und Einem anderen Fahrzeug folgend genutzt werden. Auf der anderen Seite können aber auch Entscheidungen modelliert werden denen stetige Weltzustände zugrunde liegen.

29 29 4 Bewegung Die Bewegung eines Agenten (Charakters) wird über den sogenannten Bewegungsalgorithmus gesteuert. Dieser formuliert aus Daten über den Zustand des Agenten und den Zustand dessen Umgebung einen Bewegungswunsch. Dieser Wunsch wird dann von der Aktuatorebene entsprechend den Möglichkeiten des Agenten umgesetzt. Die Gruppe dieser Algorithmen lässt sich in zwei Kategorien unterteilen: Kinematische Algorithmen berücksichtigen die Position und Orientierung eines Agenten (Charakter) und formulieren ihren Bewegungswunsch als neue Geschwindigkeit. Die Änderung der Geschwindigkeit (durch die Aktuatorebene) erfolgt instantan. Die Masse bzw. die Trägheit des sich bewegenden Agentenobjektes wird also gänzlich außer Acht gelassen. Eine unrealistische, physikalisch nicht korrekte Bewegung ist oft die Folge. Dynamische Algorithmen berücksichtigen neben der Position und der Orientierung auch den Geschwindigkeitsvektor eines Agenten und formulieren ihren Bewegungswunsch als Änderung der Beschleunigung bzw. als Kraft. Der Bewegungswunsch beschreibt also die Ursache einer Geschwindigkeitsänderung anstatt nur die Geschwindigkeitsänderung selbst. Somit wird ein physikalisch korrekte Modellierung des Verhalten der Objektmasse/-trägheit ermöglicht. 4.1 Steering Behaviors Steering Behaviors (deutsch etwa: Steuerungs Verhalten) stellen eine Variation der oben beschriebenen Bewegungsalgorithmen dar. Sie wurden Ende der 80er Jahre von Craig Reynold dazu entwickelt, um das Flugverhalten von Vögelschwärmen zu simulieren. Anders als bis dahin weitgehend üblich werden bei dieser Technik die Wege der einzelnen Vögel nicht schon im Vorfeld festgelegt. Vielmehr ist es den einzelnen Agenten selbst überlassen den Weg zur Laufzeit der Simulation dynamisch zu berechnen. Vgl. [Rey87]

30 30 Reynolds identifizierte zu diesem Zweck einzelne, von einander unabhängige Grundbausteine (die Steering Behaviors), die einen Einfluss auf diesen Weg haben. Im Fall von Vögelschwärmen sind diese Grundbausteine [Rey87]: Separation Das Bestreben der Vögel nicht zu dicht zusammen zu fliegen und so Zusammenstöße zu vermeiden. Cohesion Das Bestreben der Vögel zusammen zu bleiben, also einen Schwarm zu bilden. Alignment Das Bestreben der Vögel in die selbe Richtung zu fliegen. Die einzelnen Steering Behaviors berechnen jeweils unabhängig voneinander einen Bewegungswunsch. Die verschiedenen Ergebnisse werden miteinander kombiniert bzw. eines wird je nach Priorität ausgewählt 1 und vom Agenten ausgeführt. Dieses Vorgehen brachte wesentlich realistischere Resultate hervor als es bis dahin möglich war. Die Entwickler von Schwarmsimulationen waren nichtmehr vor die kaum überschaubare Aufgabe gestellt hunderte Flugpfade für die einzelnen Vögel zu erstellen. Außerdem konnte der Schwarm dynamisch auf neue (zur Entwicklungszeit nicht geplante) Situationen reagieren. In späteren Arbeiten [Rey99] erweiterte Reynolds seine Technik um eine Vielzahl weiterer Steering Behaviors und ermöglichte so die Nutzung der Technik für eine größere Anzahl von Agententypen. Sie entwickelten sich so bis heute zum De-Facto-Standard für Bewegungsalgorithmen in der Spieleentwicklung. Je nach Anforderung können Steering Behaviors sowohl als kinematische als auch als dynamische Bewegungsalgorithmen implementiert werden. 4.2 Einige grundlegende Steering Behavior Im folgenden werden die Steering Behavior Seek, Flee und Arrive kurz erläutert und deren Funktion beschrieben. Danach werden einige weitere, eventuell für die Verkehrsagenten wichtige, Steering Behavior und deren Einsatzgebiet kurz aufgezählt. Seek Das Seek (deutsch: Suche) Steering Behavior beschreibt das Bestreben eines Agenten eine Zielposition zu verfolgen. Diese Zielposition kann sowohl ein fester Punkt in der 1 Verschiede mögliche Vorgehen bei der Kombination und Auswahl von Bewegungswünschen werden im Kapitel 4.2 näher erläutert

31 31 Umgebung sein als auch ein sich selbst bewegendes Ziel, wie etwa ein anderer Agent sein. Das Behavior berechnet den Differenzvektor zwischen der Position des Agenten und der Position des Ziels. Als Ergebnis liefert das Behavior eine Bewegungwunsch in Richtung dieses Vektor mit der maximal möglichen Beschleunigung. Seek wird vor Allem in Situationen eingesetzt in denen der Agent das Ziel nicht erreicht bzw. es noch nicht erreicht hat. Die von Seek berechnete Bewegung mit maximaler Beschleunigung würde ansonsten dafür sorgen, dass der Agent sein Ziel überschießt und beginnt um die Zielposition zu oszillieren. Flee Das Flee (deutsch: Flucht) Steering Behavior modelliert das Verhalten einer Flucht vor einer bestimmten (Ziel-)position. Das Behavior berechntet den Differenzvektor zwischen der Position des Agenten und der Position des Ziels. Als Ergebnis liefert Flee einen Bewegungswunsch in entgegengesetzter Richtung dieses Vektor mit der maximal möglichen Beschleunigung. Arrive Das Arrive (deutsch: Ankunft) Steering Behavior wird eingesetzt wenn ein Agent eine Zielposition nicht nur verfolgt, sondern sie auch auch erreichen soll. Arrive beschreibt eine Bremsbewegung, die den Agenten genau an der Zielposition zum stehen kommen lässt. Es berechnet zunächst, genau wie das Seek Behavior, den Differenzvektor zwischen der aktuellen Position und der Position des Ziels. Unterhalb eines definierten Abstands zum Ziel wird ein Bremsfaktor berechnet. Weitere Steering Behaviors Align Orientierung an die eines Ziels angleichen Face Ausrichten in Richtung eines Ziels Velocity Matching Angleichen der Geschwindigkeit an die eines anderen Agenten Pursue Abfangen eines sich bewegenden Ziels Path Following Verfolgung eines (durch die Pfadfindung berechneten) Pfades

32 32 Collision Avoidance Vermeidung von Kollisionen zwischen sphärischen Agenten Obstacle and Wall Avoidance Vermeidung von Kollisionen mit (nicht-sphärischen) Hindernissen und Wänden 4.3 Kombination mehrerer Steering Behaviors Die formulierten Bewegungswünsche einzelner Steering Behaviors können dabei unter Umständen gegenläufig zueinander sein. Es stellt sich also die Frage wie die einzelnen Ergebnisse miteinander kombiniert werden. Gewichtetes Mischen (Weighted Blending) Jedem Steering Behavior wird eine Gewichtung zugeordnet. Die einzelnen berechneten Bewegungswünsche der Steering Behaviors werden mit dieser Gewichtung multipliziert und die Ergebnisse aufsummiert. Daraus ergibt sich ein zusammengefasster Bewegungswunsch als Resultat der gewichteten Mischung, der dann durch die Lokomotion ausgeführt wird. Priorisierung (Priority) Eine Priorisierung der verschiedenen Verhalten ermöglicht es einzelnen Steering Behaviors oder Gruppen von Steering Behaviors eine exklusiv Steuerung durchzusetzen. So kann vermieden werden, dass wichtige Bewegungseinflüsse, wie etwa Weiche dem Hindernis aus, durch andere aktuell eher unwichtige Bewegungseinflüsse verwässert werden. Die verschiedenen Behaviors werden hierbei in Prioritätsgruppen (meist implementiert als geordnete Liste) eingeteilt. Wird vom Agenten der Bewegungsalgorithmus aufgerufen wird die Liste beginnend mit der Gruppe höchster Priorität durchlaufen. Liefert eine Gruppe einen signifikanten Bewegungswunsch (d.h. größer als ein frei definierbares Epsilon), so wird dieser als Ergebnis zurückgeliefert und alle späteren Prioritätsgruppen ignoriert. Üblicherweise wird am Ende der Liste ein einzelnes, nicht zusammengesetztes Steering Behavior gehalten. Dadurch soll gewährleistet werden, dass der Agent nicht in einem stabilen Gleichgewicht zwischen verschiedenen Bewegungswünschen stecken bleibt.

33 33 5 Pfadfindung Agenten müssen sich in der Spielwelt bewegen, zu diesem Zweck werden manchmal mögliche Pfade durch den Entwickler bzw. dem Leveldesigner fest vorgegeben. Solche festen Routen sind einfach zu implementieren, können sich aber nicht an eine sich verändernde Umwelt anpassen. Falls zum Beispiel ein Hindernis die feste Route versperrt, nimmt der Charakter dies nicht wahr und kollidiert mit ihm. Er hat keine Möglichkeit einen Weg um das Hindernis herum zu berechnen. Eine heutzutage weiter verbreitete Lösung ist die automatische Generierung von Pfaden anhand der aktuellen Geometrie der Spieleumgebung. 5.1 Repräsentation der Spielwelt als Graph Die Geometrie der virtuellen Welt ist für eine KI allerdings kaum greifbar. Berechnungen auf konkreter Geometrie wären rechenaufwändig und extrem schwer zu implementieren. Deshalb wird die Spielgeometrie meist zusätzlich aufbereitet und ein vereinfachtes Modell als Graph erstellt. Für den Agenten erreichbare Positionen bzw. begehbare oder befahrbare Flächen werden durch die Knoten des Graphen repräsentiert, Wege zwischen den einzelnen Positionen und Flächen werden als Kanten modelliert. 5.2 Graphen Grundlagen Graphen sind mathematische Modelle für netzartige Strukturen in Natur und Technik [Tit11, S.11] Ein Graph besteht aus einer Knotenmenge V und einer Kantenmenge E, wobei jeder Kante zwei Knoten aus V zugeordnet sind. Ein Pfad in einem Graphen bezeichnete eine endliche Folge von Knoten und Kanten die von einem Startknoten zu einem Endknoten führen. Ein Pfad heißt einfach, wenn er keine Kante mehr als einmal durchläuft. Er ist elementar, wenn zusätzlich dazu auch kein Knoten mehr als einmal berührt wird.

34 Suche im Graph Für die Suche von Pfaden in Graphen stehen verschiedene Suchalgorithmen zur Verfügung: Algorithmus von Dijkstra Beim Algorithmus von Dijkstra handelt es sich um einen uninformierten Suchalgorithmus, das heißt er verfügt über keine Heuristikfunktion. Der Algorithmus berechnet nicht den Pfad bis zu einem bestimmten Ziel, sondern berechnet Wegkosten zwischen einem Startknoten und allen anderen im Graph befindlichen Knoten. Die eigentliche Pfadsuche zur Laufzeit besteht nurnoch aus dem Auslesen des kürzestens Pfades aus den berechneten Daten. Dieser Algorithmus eignet sich nur bedingt, da extrem viele unnötige Berechnungen für jedes mögliche Paar von Knoten des Graphen ausgeführt werden. Diese Berechnungen könnten zwar zur Entwicklungszeit geschehen, die errechneten Daten bedeuten aber einen extrem hohen Speicherbedarf. A* Algorithmus Besser als uninformierte Suchalgorithmen sind informierte Varianten wie der A*-Algorithmus geeignet. Dieser verfügt über eine Heuristikfunktion, die zur Laufzeit des Algorithmus eine Abschätzung über die Entfernung eines Folgeknoten zum Zielknoten liefert. Der Algorithmus kann so immer zuerst den Folgeknoten auswählen, welcher am wahrscheinlichsten zum kürzesten Pfad gehört. Unwahrscheinliche Folgeknoten, die etwa in entgegengesetzter Richtung zum Ziel liegen, können so vorerst ignoriert werden. Dies führt zu erheblicher Einsparung von Rechenzeit. Des Weiteren gibt es eine Vielzahl von Optimierungen mit denen sich der A*-Algorithmus an beliebige Anforderungen anpassen lässt: Memorybounded A* Begrenzt die Anzahl der im Speicher befindlichen Graphknoten IDA* - Iterative Deepening A* Berechnet Pfade unterhalb eines CutOff Wertes, der bei jedem Durchlauf erhöht wird bis der Zielknoten erreicht wurde. So wird Speicherplatz gespart, allerdings werden Berechnungen wiederholt und mehr Rechenzeit benötigt. SMA* - Simplified Memory-Bounded A* Eine Kombination aus Memorybounded und Iterative Deepening A*. Spart Speicherplatz, ohne die Ergebnisse aller vorherigen Berechnungen zu verwerfen.

35 Hierarchische Pfadfindung Je nach Größe des Graphen, kann eine Pfadfindung einen erheblichen Rechenaufwand bedeuten. Der Einsatz einer hierarchischen Pfadfindung (englisch: Hierachical Pathfinding) versucht diesen Aufwand zu minimieren. Anstatt direkt einen konkreten Pfad zu ermittelt, wird zuerst ein abstrakter Pfad berechnet, der einen groben Weg widerspiegelt. Dieser abstrakte Pfad wird später sukzessiv verfeinert bis hin zu einem konkreten, durch den Agenten verfolgbaren Pfad. Diese Methode macht es nötig, dass auch der Graph verschiedene Abstraktionstiefen mit entsprechenden Kantengewichtungen zur Verfügung stellt. 5.4 Pfadfindung mit offenem Ziel Pfadfindung mit offenem Ziel (english: Open Goal Pathfinding) erweitert die allgemeine Pfadfindung um mehrere mögliche Zielknoten. Gesucht wird nun der kürzeste Weg zwischen einem Start und mehreren Zielknoten. Diese Zielknoten sind meist nicht konkret definiert, sondern werden über eine Zielfunktion bewertet. Genügt ein Knoten bestimmten in der Zielfunktion beschriebenen Bedingungen so handelt es sich um einen Zielknoten. Im vorliegenden Fall könnte über eine Pfadfindung mit offenem Ziel beispielsweise die Route für bis zur nächsten (offenen) Tankstelle oder zum nächsten freien Parkplatz berechnet werden. 5.5 Dynamische Pfadfindung Veränderungen im Graphen machen bei oben genannten Algorithmen einen vollständig neuen Durchlauf der Pfadfindung nötig. Dies bedeutet (je nach Größe des Graphen) eine erhebliche Belastung der verfügbaren Ressourcen. Eine mögliche Lösung dieses Problems ist durch die dynamische Pfadfindung (Dynamic Pathfinding) gegeben. Diese Technik bezeichnet die Verwendung spezieller Suchalgorithmen, wie zum Beispiel D*, die Informationen vorangegangener Suchen vorhalten und nur die Abschnitte des Pfades, die von der Veränderung betroffen sind, neu berechnet. Dadurch kann die benötigte Rechenzeit der Suche drastisch verkürzt werden. 5.6 Zeitkontinuierliche Pfadfindung Zeitkontinuierliche Pfadfindung (englisch: Continuous Time Pathfinding) kommt dann zum Einsatz, wenn absehbar ist, dass (für die Pfadfindung relevante) Veränderungen

36 36 der Umwelt nichtmehr nur vereinzelt und sporadisch, sondern regelmäßig auftreten. Bei der zeitkontinuierlichen Pfadfindung wird der Graph erst zum Beginn der Pfadfindung aufgebaut. Dieser Graph ist im Umfang begrenzt auf die für die Pfadfindung aktuell relevanten Daten und spart so Speicher und Rechenzeit. Außerdem ist durch den zeitnahen Aufbau des Graphen auch die Aktualität der Daten gewährleistet. Eine solche zeitkontinuierliche Pfadfindung eignet sich vor Allem zur Berechnung von Überholmanövern. Die verschiedenen Fahrzeugagenten konkurrieren um den vorhandenen Platz auf den einzelnen Fahrspuren. Durch die Bewegung der Fahrzeuge werden ständig neue Lücken im Verkehr verfügbar oder werden wieder geschlossen. Eine solche dynamische Umwelt lässt sich gut durch einen begrenzten, aktuell aufgebauten Graphen modellieren und auf dessen Grundlage dann ein Überholpfad für die einzelnen Agenten berechnen.

37 37 6 Unterstützende Techniken Bei der Entwicklung von KI Computerspielen ist ein Ressourcen sparender Umgang mit der zur Verfügung stehenden Rechenleistung und Speicher besonders wichtig, da es sich im Normalfall nur um einen kleinen Teil des Systems handelt. Viele weitere Komponenten wie etwas Grafik- und Physikengine benötigen einen Großteil der Resourcen und haben eine höhere Priorität, da sie für einen flüssige Darstellung der Spielewelt verantwortlich sind. Deshalb wird oft schon zu Beginn der Entwicklung eine Budgetierung der Ressourcen durchgeführt. Ein KI - Budget beträgt im Normalfall (je nach Art des Spiels) zwischen 5% - 25% der zur Verfügung stehenden Rechenleistung. Falls das Hauptaugenmerk des Spiel auf der KI liegt im Ausnahmefall sogar bis zu 50%. (Vgl. S. 713 [MF09] ) Diese Begrenzung der Resourcen machen verschiedene Optimierungen nötig von denen einige wichtige im folgenden beschrieben werden. 6.1 Cached Polling Stations Abfragen der selben Information(en) durch unterschiedliche Agenten oder durch unterschiedliche Teile der KI verbrauchen viel Rechenleistung. Berechnungen können sehr umfangreich sein. Ein Weg dieses Problem zu lösen, sind die sogenannten Cached Polling Stations. Die erste Abfrage innerhalb eines Frames stößt die Berechnung der Information an. Das Resultat wird für weitere Abfragen im gleichen Frame in einem Cache vorgehalten und eine erneute Berechnung so vermieden. 6.2 Interruptible Processes Interruptible Processes (auf deutsch: Unterbrechbare Prozesse) erlauben es aufwändige Berechnungen schrittweise abzuarbeiten. Der Prozess kehrt nach jedem Arbeitsschritt zum aufrufenden Prozess zurück. Nachdem nach mehreren Aufrufen alle Arbeitsschritte ausgeführt wurden liefert der Prozess ein Ergebnis zurück. Interruptible Processes erlauben so auch zeitintensive Berechnungen ohne dabei den aufrufenden Prozess zu blockieren. Eine Implementierung als interruptible Processes sind desweiteren Grundvorraussetzung für die Nutzung der verschiedenen unten beschriebenen Scheduling Tech-

38 38 niken. In der Künstlichen Intelligenz sind solch zeitintensiven Berechnungen vor allem die Graphensuche bei der Pfadfindung. 6.3 Anytime Algorithms Anytime Algorithms (zu deutsch etwa Jederzeit Algorithmen ) erweitern die Interruptible Processes darum, dass sie zu jederzeit eine bestmögliche, vorläufige Abschätzung des Ergebnisses basierend auf dem aktuellen Wissensstand des Algorithmus bereithalten. Ein Agent, der einen solchen Anytime Algortihmus verwendet, kann so schon ein vorrübergehendes Ziel verfolgen und die Zeit bis zu vollständigen Berechnung eines Ergebnis überbrücken (Nach [Zil96]). 6.4 Scheduling Anstatt bei jedem Zyklus der Entscheidungsfindung alle Verhaltenskomponenten neu zu berechnen, wird jeder Komponente eine Frequenz zugewiesen. Diese bestimmt wie häufig, dass Ergebnis der jeweiligen Komponente aktualisiert werden muss. Bis dahin wird das alte Ergebnis weiterverwendet. So können etwa rechenintensive Verhaltenskomponenten deren Ergebnisse sich eher unwahrscheinlich ändern seltener berechnet werden und Rechenzeit für wichtigere Verhaltenskomponenten frei gemacht werden. Beispiel: Die Planung einer Fahrroute von Deutschland nach Italien muss weniger häufig aktualisiert werden als die Planung von Überholmanövern auf der Autobahn. Das Ergebnis des Scheduling kann durch fortgeschrittene Techniken noch weiter verbessert werden: Load-Balancing Scheduler Der Scheduler teilt die durch das KI-Budget festgelegte Rechenzeit pro Frame auf die verschiedenen Agenten und ihre Verhaltenskomponenten auf. Die Kontrolle wird dann an eine der Verhaltenskomponenten abgegeben, welche die ermittelte Zeitspanne für Teilberechnungen nutzt und danach die Kontrolle zurück an den Scheduler gibt. Dieser wiederum berechnet erneut die verbleibende Rechenzeit und teilt sie unter den restlichen Komponenten auf. Der Scheduler ruft nach gleichem Prinzip die nächste Verhaltenskomponente auf bis alle zur Berechnung anstehenden Komponenten bearbeitet wurden. Hierbei wird jeder Komponente der gleiche Anteil an Rechenzeit zugesprochen.

39 39 Priority Scheduling Den einzelnen Verhaltenskomponenten können neben einer Ausführungsfrequenzen auch eine Ausführungspriorität zugeordnet werden. Diese Priorität wird vom Scheduler genutzt um wichtigen Komponenten mehr Rechenzeit zuzuweisen als anderen, um so eine möglichst zeitnahen Abschluss der Berechnung zu gewährleisten. Hierarchical Scheduling Anstatt ein einzelnes, zentrales Scheduling System zu implementieren, gibt es auch die Möglichkeit einer Scheduler Hierarchie. Beispielsweise können so Agenten zu Gruppen zusammengefasst werden und ihnen ein gruppenweites Schedulingsystem zugewiesen werden. Die einzelnen Mitglieder dieser Gruppen besitzen wiederum ein eigenes Scheduling, die die Rechenzeit der einzelnen Verhaltenskomponenten verwaltet. So können nicht nur einzelnen Agenten bestimmte Prioritäten zugeordnet werden, sondern auch logisch zusammenhängenden Gruppen von Agenten. Genauere Beschreibungen und Hinweise zur Implementierung dieser Techniken finden sich in [MF09, S. 724 ff].

40 40 7 Proof of Concepts Neben der Recherche und Einarbeitung in die verschiedenen Konzepte der Künstlichen Intelligenz habe ich mich dazu entschieden verschiedene Proof of Concepts zu den einzelnen Teilgebieten zu erstellen. Diese dienen neben einer tieferen Einarbeitung in die verschiedenen Techniken vor allem zum Identifizieren von auftretenden Schwierigkeiten an der Schnittstelle zur vom Projekt verwendeten Spiele-Engine Unity. Die implementierten Proof of Concepts beschäftigen sich mit den ausgewählten Teilbereiche des KI-Systems: 7.1 Pfadfindung Das erste Proof of Concept Pfadfindung umfasst eine einfache A*-Graphensuche auf dem, im Projekt vorhandenen, Straßennetzgraph. Dies hatte zum Ziel mögliche zusätzliche Anforderungen seitens des KI-Systems an den Straßennetz-Komponente zu identifizieren. Diese zusätzlichen Anforderungen habe ich im vorhandenen Straßennetz implementiert und in Schnittstellen zusammengefasst. So wird eine mögliche neue Version der Straßennetzkomponente frühzeitig unterstützt. 7.2 Steering Behaviors Im zweiten Proof of Concept wurden verschiedene ausgewählte Steering Behaviors umgesetzt. Begonnen wurde mit grundlegenden Verhalten wie Seek, Flee und ähnlichen, später sind speziellere Steering Behaviors hinzugekommen, die auf Daten des Straßennetzes zugreifen, etwa Folge der Fahrspur und Spurwechsel. Dieses Proof of Concept hatte zum Ziel einen detaillierteres Verständnis der Steering Behaviors aufzubauen und vor Allem die kaum dokumentierten Kombinationen verschiedener Steering Behaviors näher zu untersuchen. Die Abbildung 7.1 bietet eine Übersicht über die implementierten Steering Behaviors.

41 41 Abbildung 7.1: Übersicht der implementierten Steering Behaviors (Screenshot Unity) 7.3 Behavior Editor Die Arbeit mit den implementierten Steering Behaviors machte schnell den hohen Aufwand deutlich, der durch das Testen verschiedener Parameter und verschiedener Kombinationsmöglichkeiten der Bewegungswünsche entstand. Jede Veränderung geschah zunächst im Sourcecode, welcher jedes Mal neu kompiliert werden musste, um die Resultate bewerten zu können. Mit der Umsetzung eines Behavior Editors sind nun auch Änderungen zu Laufzeit des Spiels einfach möglich. Dies bedeutet eine hohe Zeitersparnis bei der Entwicklung und Komposition der verschiedenen Verhalten.

42 42 8 Fazit Die vorliegende Arbeit dokumentiert die ersten Schritte bei der Entwicklung eines Verkehrsagenten für die Lernspielplattform C.I.T.Y.. Die Problemstellung wurde näher identifiziert und die Umgebung des Problems genauer definiert. Übliche Techniken und Vorgehen im Bereich der KI in Computerspielen wurden kurz zusammengefasst und der Versuch gemacht zur Problemstellung passende Techniken zu identifizieren. Zusammenfassend lässt sich sagen, dass kaum eine der vorgestellten Techniken generell ausgeschlossen werden kann. Vielmehr wurde deutlich, dass jede Technik ihre Daseinsberechtigung hat, da sie auf einer der vielen Teilaspekte der Problemstellung passt. Des Weiteren wurde deutlich, dass es sich bei der Entwicklung eines Verkehrsagenten um eine äußerst komplexe und vielschichtige Aufgabe handelt. Ich komme deshalb zum Schluss, dass es sinnvoll ist einen Grundstock der verschiedenen Techniken und Algorithmen aufzubauen und zu einem gemeinsamen KI-Framework zusammenzufassen. Die verschiedenen Technikfamilien sollten nach Möglichkeit auf eine gemeinsame Schnittstelle hin implementiert werden. So ist es möglich die verschiedenen Ansätze miteinander zu mischen und ihre jeweiligen Vorteile an der passenden Stelle zu nutzen. Dadurch kann unter Umständen Rechenleistung und Speicher eingespart werden, der durch die generelle Nutzung nur einer ausgewählten Lösung sonst verschwendet worden wäre. Ausblick Wie bereits in der Einleitung berichten dient die vorliegende Dokumentation als Grundlage für meine spätere Bachelorarbeit. Ziel ist es die Ergebnisse der Recherche und die aus den implementierten Proof-of-Concepts gemachten Erfahrungen in ein detaillierteres Konzept einfließen zu lassen. Die bisher noch unabhängig Komponenten der verschiedenen Proof-of-Concepts sollen zusammengeführt werden und so ein Framework für Künstliche Intelligenz im Projekt C.I.T.Y. geschaffen werden.

43 43 Literaturverzeichnis [Buc04] Buckland, Mat: Programming Game AI by Example. Jones and Bartlett Publishers, 1 Auflage, [MF09] Millington, Ian und John Funge: Artificial Intelligence for Games. CRC Press, 2 Auflage, [Rey87] Reynolds, Craig W: Flocks, herds and schools: A distributed behavioral model. In: ACM SIGGRAPH Computer Graphics, Band 21, Seiten ACM, [Rey99] Reynolds, Craig W: Steering behaviors for autonomous characters. Game Developers Conference, 1999: , [RN04] Russell, Stuart und Peter Norvig: Kuenstliche Intelligenz: Ein moderner Ansatz. Prentice Hall, 2 Auflage, [Tit11] [Zil96] Tittmann, Peter: Graphentheorie. Hanser Fachbuchverlag, 2., aktualisierte Auflage. Auflage, Zilberstein, Shlomo: Using Anytime Algorithms in Intelligent Systems. AI Magazine, 17:73 83, 1996.

44 44 Eidesstattliche Erklärung Ich versichere, die von mir vorgelegte Arbeit selbständig verfasst zu haben. Alle Stellen, die wörtlich oder sinngemäß aus veröffentlichten oder nicht veröffentlichten Arbeiten anderer entnommen sind, habe ich als entnommen kenntlich gemacht. Sämtliche Quellen und Hilfsmittel, die ich für die Arbeit benutzt habe, sind angegeben. Die Arbeit hat mit gleichem Inhalt bzw. in wesentlichen Teilen noch keiner anderen Prüfungsgbehörde vorgelegen. Gummersbach, 5. November 2013 Marco Reitano

Künstliche Intelligenz

Künstliche Intelligenz Künstliche Intelligenz Intelligente Agenten Claes Neuefeind Sprachliche Informationsverarbeitung Universität zu Köln 26. Oktober 2011 Agenten Konzept des Agenten Rationalität Umgebungen Struktur von Agenten

Mehr

Intelligente Agenten

Intelligente Agenten KI Wintersemester 2013/2014 Intelligente Agenten Grundlagen der Künstlichen Intelligenz Wintersemester 2014/2015 Marc Toussaint 2006-2014 Heidemann, Bruhn, Toussaint Überblick Überblick Agentenbegriff,

Mehr

3. Das Reinforcement Lernproblem

3. Das Reinforcement Lernproblem 3. Das Reinforcement Lernproblem 1. Agierender Agent in der Umgebung 2. Discounted Rewards 3. Markov Eigenschaft des Zustandssignals 4. Markov sche Entscheidung 5. Werte-Funktionen und Bellman sche Optimalität

Mehr

Intelligente Agenten

Intelligente Agenten Intelligente Agenten Einige einfache Überlegungen zu Agenten und deren Interaktionsmöglichkeiten mit ihrer Umgebung. Agent benutzt: Sensoren Aktuatoren (Aktoren; Effektoren) zum Beobachten/Mess seiner

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Algorithmen für Computerspiele

Algorithmen für Computerspiele Algorithmen für Computerspiele Künstliche Intelligenz von Manuel Bischof 3. Mai 2010 Gliederung Einleitung Was umfasst die KI? Nutzung in verschiedenen Genres Wo sind Verbesserungen notwendig? Möglichkeiten,

Mehr

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele.

Inhalt. 1. Einführung in die Informatik. 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele. 1. Einführung in die Informatik Inhalt 2. Algorithmen Definition, Eigenschaften, Entwurf Darstellung von Algorithmen Beispiele Peter Sobe 1 Einführende Beispiele 2. Algorithmen Täglich werden Verarbeitungsvorschriften

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 2. Agenten, Umgebungen und Lösungsverfahren Malte Helmert Universität Basel 4. März 2013 Rationale Agenten Heterogene Einsatzgebiete KI-Systeme erfüllen sehr unterschiedliche

Mehr

Teil III. Komplexitätstheorie

Teil III. Komplexitätstheorie Teil III Komplexitätstheorie 125 / 160 Übersicht Die Klassen P und NP Die Klasse P Die Klassen NP NP-Vollständigkeit NP-Vollständige Probleme Weitere NP-vollständige Probleme 127 / 160 Die Klasse P Ein

Mehr

bzw. die Entscheidugen anderer Spieler (teilweise) beobachten Erweitert das Analysespektrum erheblich Beschreibung des Spiels (extensive Form)

bzw. die Entscheidugen anderer Spieler (teilweise) beobachten Erweitert das Analysespektrum erheblich Beschreibung des Spiels (extensive Form) 1 KAP 9. Dynamische Spiele Bisher: alle Spieler ziehen simultan bzw. können Aktionen der Gegenspieler nicht beobachten Nun: Dynamische Spiele Spieler können nacheinander ziehen bzw. die Entscheidugen anderer

Mehr

Einführung in die Informatik Turing Machines

Einführung in die Informatik Turing Machines Einführung in die Informatik Turing Machines Eine abstrakte Maschine zur Präzisierung des Algorithmenbegriffs Wolfram Burgard Cyrill Stachniss 1/14 Motivation und Einleitung Bisher haben wir verschiedene

Mehr

Modellgestützte Analyse und Optimierung Übungsblatt 8

Modellgestützte Analyse und Optimierung Übungsblatt 8 Fakultät für Informatik Lehrstuhl 4 Peter Buchholz, Jan Kriege Sommersemester 2015 Modellgestützte Analyse und Optimierung Übungsblatt 8 Ausgabe: 25.05.2015, Abgabe: 01.06.2015 (12 Uhr) Aufgabe 8.1: Berechnung

Mehr

Der Alpha-Beta-Algorithmus

Der Alpha-Beta-Algorithmus Der Alpha-Beta-Algorithmus Maria Hartmann 19. Mai 2017 1 Einführung Wir wollen für bestimmte Spiele algorithmisch die optimale Spielstrategie finden, also die Strategie, die für den betrachteten Spieler

Mehr

Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen

Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen Künstliche Intelligenz - Optimierungsprobleme - Suche in Spielbäumen Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Optimierungsprobleme

Mehr

3 Programmierung von Robotern

3 Programmierung von Robotern 3 Programmierung von Robotern 3.1 Arten der Programmierung Arten Programmierung durch Beispiele Programmierung durch Training roboterorientierte Programmierung aufgabenorientierte Programmierung 3.1.1

Mehr

Seminar Künstliche Intelligenz Wintersemester 2013/14

Seminar Künstliche Intelligenz Wintersemester 2013/14 Seminar Künstliche Intelligenz Wintersemester 2013/14 Martin Hacker Richard Schaller Künstliche Intelligenz Department Informatik FAU Erlangen-Nürnberg 31.10.2013 2 / 13 Überblick Teilgebiete der KI Problemlösen,

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

RE Unterricht an Hochschulen: Eine modellorientierte Einführung an der FH Dortmund

RE Unterricht an Hochschulen: Eine modellorientierte Einführung an der FH Dortmund RE Unterricht an Hochschulen: Eine modellorientierte Einführung an der FH Dortmund Erik Kamsties und Fabian Kneer Fachhochschule Dortmund {erik.kamsties, fabian.kneer}@fh-dortmund.de GI Fachgruppentreffen

Mehr

Operations Research II: Fortgeschrittene Methoden der Wirtschaftsinformatik

Operations Research II: Fortgeschrittene Methoden der Wirtschaftsinformatik Operations Research II: Fortgeschrittene Methoden der Wirtschaftsinformatik Michael H. Breitner, Frank Köller und Hans-Jörg v. Mettenheim 18. Juli 2007 Hans-Jörg von Mettenheim Operations Research II 1

Mehr

1. Einleitung wichtige Begriffe

1. Einleitung wichtige Begriffe 1. Einleitung wichtige Begriffe Da sich meine besondere Lernleistung mit dem graziösen Färben (bzw. Nummerieren) von Graphen (speziell von Bäumen), einem Teilgebiet der Graphentheorie, beschäftigt, und

Mehr

Informatische Modellbildung

Informatische Modellbildung Informatische Modellbildung Informatik als Wissenschaft von der Herstellung ausführbarer Modelle bzw. der Simulation künstlicher Welten hier: formale Methoden zur Präzisierung des Modellbegriffs Begriffsdefinition

Mehr

2 Geschäftsprozesse realisieren

2 Geschäftsprozesse realisieren 2 Geschäftsprozesse realisieren auf fünf Ebenen Modelle sind vereinfachte Abbilder der Realität und helfen, Zusammenhänge einfach und verständlich darzustellen. Das bekannteste Prozess-Modell ist das Drei-Ebenen-Modell.

Mehr

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST

J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim Goltz. Workshop Echtzeit Fraunhofer FIRST Modellbasierte Generierung von statischen Schedules für sicherheitskritische, eingebettete Systeme mit Multicore Prozessoren und harten Echtzeitanforderungen J. Reinier van Kampenhout Robert Hilbrich Hans-Joachim

Mehr

1 EINLEITUNG PROJEKTABLAUF Allgemeine Zielsetzung Projektstruktur und Zeitplan ANFORDERUNGSANALYSE...

1 EINLEITUNG PROJEKTABLAUF Allgemeine Zielsetzung Projektstruktur und Zeitplan ANFORDERUNGSANALYSE... Inhaltsverzeichnis Inhaltsverzeichnis 1 EINLEITUNG... 1 2 PROJEKTABLAUF... 4 2.1 Allgemeine Zielsetzung... 4 2.2 Projektstruktur und Zeitplan... 4 3 ANFORDERUNGSANALYSE... 8 3.1 Der Prototyp des Anlagenmodells...

Mehr

Die Erweiterung vom Satz des Pythagoras anhand der resultierenden Kraft FR

Die Erweiterung vom Satz des Pythagoras anhand der resultierenden Kraft FR Michael B. H. Middendorf 1 Die Erweiterung vom Satz des Pthagoras anhand der resultierenden Kraft FR Bei meinen Überlegungen als Maschinenbauer bzgl. eines Impulsantriebes, stieß ich auf das Problem, ständig

Mehr

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge

1.4! Einführung. Systemmodellierung. Methoden und Werkzeuge Einführung. Vorbemerkungen und Überblick. Die elektronischen e des Fahrzeugs. Prozesse in der Fahrzeugentwicklung im Überblick,.4 Grundlagen. Steuerungs- und regelungstechnische e (Prof. Schumacher). Diskrete

Mehr

Grundlagen der Künstlichen Intelligenz

Grundlagen der Künstlichen Intelligenz Grundlagen der Künstlichen Intelligenz 3. Einführung: Rationale Agenten Malte Helmert Universität Basel 2. März 2015 Einführung: Überblick Kapitelüberblick Einführung: 1. Was ist Künstliche Intelligenz?

Mehr

4 Greedy-Algorithmen (gierige Algorithmen)

4 Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen (gierige Algorithmen) Greedy-Algorithmen werden oft für die exakte oder approximative Lösung von Optimierungsproblemen verwendet. Typischerweise konstruiert ein Greedy-Algorithmus eine

Mehr

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing SE Data Cleansing Domain-independent independent Duplicate Detection Vortrag von Marko Pilop & Jens Kleine http://www.informatik.hu-berlin.de/~pilop/didd.pdf {pilop jkleine}@informatik.hu-berlin.de 1.0

Mehr

Diversifikation und Kernkompetenzen

Diversifikation und Kernkompetenzen Wirtschaft Markus Klüppel Diversifikation und Kernkompetenzen Masterarbeit RheinAhrCampus Remagen Fachbereich: Betriebs- und Sozialwirtschaft Studiengang: MBA Masterthesis Diversifikation und Kernkompetenzen

Mehr

2.4 Stoßprozesse. entweder nicht interessiert o- der keine Möglichkeit hat, sie zu untersuchen oder zu beeinflussen.

2.4 Stoßprozesse. entweder nicht interessiert o- der keine Möglichkeit hat, sie zu untersuchen oder zu beeinflussen. - 52-2.4 Stoßprozesse 2.4.1 Definition und Motivation Unter einem Stoß versteht man eine zeitlich begrenzte Wechselwirkung zwischen zwei oder mehr Systemen, wobei man sich für die Einzelheiten der Wechselwirkung

Mehr

Wiederholte Spiele. Grundlegende Konzepte. Zwei wichtige Gründe, wiederholte Spiele zu betrachten: 1. Wiederholte Interaktionen in der Realität.

Wiederholte Spiele. Grundlegende Konzepte. Zwei wichtige Gründe, wiederholte Spiele zu betrachten: 1. Wiederholte Interaktionen in der Realität. Spieltheorie Sommersemester 2007 1 Wiederholte Spiele Grundlegende Konzepte Zwei wichtige Gründe, wiederholte Spiele zu betrachten: 1. Wiederholte Interaktionen in der Realität. 2. Wichtige Phänomene sind

Mehr

Informatik 1. Teil 1 - Wintersemester 2012/2013. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Informatik 1. Teil 1 - Wintersemester 2012/2013. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Informatik 1 Teil 1 - Wintersemester 2012/2013 Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Dieser Foliensatz wurde z.t. von Herrn Prof. Grossmann übernommen 0. Rechner und Programmierung

Mehr

Routing Algorithmen. Begriffe, Definitionen

Routing Algorithmen. Begriffe, Definitionen Begriffe, Definitionen Routing (aus der Informatik) Wegewahl oder Verkehrslenkung bezeichnet in der Telekommunikation das Festlegen von Wegen für Nachrichtenströme bei der Nachrichtenübermittlung über

Mehr

Vorlesung Datenstrukturen

Vorlesung Datenstrukturen Vorlesung Datenstrukturen Binärbaum Suchbaum Dr. Frank Seifert Vorlesung Datenstrukturen - Sommersemester 2016 Folie 356 Datenstruktur Binärbaum Strukturrepräsentation des mathematischen Konzepts Binärbaum

Mehr

zum Thema Lissajous-Figuren

zum Thema Lissajous-Figuren Ratsgymnasium Rotenburg Gerberstraße 14 27356 Rotenburg Wümme Facharbeit im Leistungskurs Physik zum Thema Lissajous-Figuren Verfasser: Christoph Siemsen Fachlehrer: Herr Konrad Abgabetermin: 24.05.04

Mehr

Projektentwicklung mit dem. Logical Framework Approach

Projektentwicklung mit dem. Logical Framework Approach Projektentwicklung mit dem Logical Framework Approach Jens Herrmann, 06/2014 Der Logical Framework Approach Der Logical Framework Ansatz ist ein Werkzeug zur Erstellung, Monitoring und der Evaluation von

Mehr

Suche in Spielbäumen Projektvorschläge

Suche in Spielbäumen Projektvorschläge Suche in Spielbäumen Projektvorschläge Nullsummenspiele sind Spiele mit zwei Spielern, bei denen der Vorteil des einen Spielers dem Nachteil des anderen Spieler entspricht. Im einfachsten Fall binär (Sieg

Mehr

Reinforcement Learning

Reinforcement Learning Reinforcement Learning 1. Allgemein Reinforcement Learning 2. Neuronales Netz als Bewertungsfunktion 3. Neuronales Netz als Reinforcement Learning Nils-Olaf Bösch 1 Allgemein Reinforcement Learning Unterschied

Mehr

Der organisationstheoretische Ansatz der Außenpolitikanalyse

Der organisationstheoretische Ansatz der Außenpolitikanalyse Der organisationstheoretische Ansatz der Außenpolitikanalyse These: Die organisatorische Vermittlung außenpolitischer Entscheidungen ist für die inhaltliche Ausgestaltung der Außenpolitik von Bedeutung

Mehr

Bachelorarbeit Sport mit Schlaganfallpatienten: Ein neuer Ansatz - Der Gehweg von SpoMobil

Bachelorarbeit Sport mit Schlaganfallpatienten: Ein neuer Ansatz - Der Gehweg von SpoMobil Universität Paderborn Fakultät der Naturwissenschaften Department Sport und Gesundheit Angewandte Sportwissenschaften Betreuer: Prof. Dr. med. Weiß Zweitprüfer: PD Dr. med. Baum Bachelorarbeit Sport mit

Mehr

Rationale Agenten Rationalität

Rationale Agenten Rationalität Rationale Agenten Rationalität des Agentenverhaltens hängt ab von Performanzmaß (auf dem Ergebnis der Agentenfunktion) vorgegebenem Wissen des Agenten über die Umgebung ausführbaren Aktionen aktueller

Mehr

Analyse des Betriebszustandes der ZKS-Abfall. Empfehlungen für den zukünftigen Betrieb

Analyse des Betriebszustandes der ZKS-Abfall. Empfehlungen für den zukünftigen Betrieb Analyse des Betriebszustandes der ZKS-Abfall Empfehlungen für den zukünftigen Betrieb Stand: 21. März 2011 Neutrale Prüfung der ZKS-Abfall Nachdem die ZKS-Abfall ab 1. April 2010, dem Inkrafttreten der

Mehr

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee

1 AVL-Bäume. 1.1 Aufgabentyp. 1.2 Überblick. 1.3 Grundidee AVL-Bäume. Aufgabentyp Fügen Sie in einen anfangs leeren AVL Baum die folgenden Schlüssel ein:... Wenden Sie hierbei konsequent den Einfüge /Balancierungsalgorithmus an und dokumentieren Sie die ausgeführten

Mehr

9. Heuristische Suche

9. Heuristische Suche 9. Heuristische Suche Prof. Dr. Rudolf Kruse University of Magdeburg Faculty of Computer Science Magdeburg, Germany [email protected] S Heuristische Suche Idee: Wir nutzen eine (heuristische)

Mehr

Kapitel 2, Führungskräftetraining, Kompetenzentwicklung und Coaching:

Kapitel 2, Führungskräftetraining, Kompetenzentwicklung und Coaching: Führungskräftetraining mit Pferden. Können Menschen von Tieren lernen? von Tanja Hollinger 1. Auflage Führungskräftetraining mit Pferden. Können Menschen von Tieren lernen? Hollinger schnell und portofrei

Mehr

Konzepte der AI: Maschinelles Lernen

Konzepte der AI: Maschinelles Lernen Konzepte der AI: Maschinelles Lernen Nysret Musliu, Wolfgang Slany Abteilung für Datenbanken und Artificial Intelligence Institut für Informationssysteme, TU-Wien Übersicht Was ist Lernen? Wozu maschinelles

Mehr

Algorithmen und Datenstrukturen 2

Algorithmen und Datenstrukturen 2 Algorithmen und Datenstrukturen 2 Sommersemester 2007 11. Vorlesung Peter F. Stadler Universität Leipzig Institut für Informatik [email protected] Das Rucksack-Problem Ein Dieb, der einen Safe

Mehr

Kapitel 4: Netzplantechnik Gliederung der Vorlesung

Kapitel 4: Netzplantechnik Gliederung der Vorlesung Gliederung der Vorlesung 1. Grundbegriffe 2. Elementare Graphalgorithmen und Anwendungen 3. Kürzeste Wege 4. Netzplantechnik 5. Minimal spannende Bäume 6. Traveling Salesman Problem 7. Flüsse in Netzwerken

Mehr

Vorlesung 1: Einleitung

Vorlesung 1: Einleitung Vorlesung 1: Einleitung Georg Nöldeke Wirtschaftswissenschaftliche Fakultät, Universität Basel Entscheidung VL 1, FS 12 Einleitung 1/17 1.1 Motivation In der Vorlesung Intermediate Microecoomics haben

Mehr

Genetische Algorithmen von der Evolution lernen

Genetische Algorithmen von der Evolution lernen Genetische Algorithmen von der Evolution lernen (c) Till Hänisch 2003, BA Heidenheim Literatur zusätzlich zum Lit. Verz. Nils J. Nilsson Artificial Intelligence Morgan Kaufmann, 1998 Ansatz Bisher: Problemlösung

Mehr

Thema: Analyse des Verhaltens dynamischer Wirkungsgefüge

Thema: Analyse des Verhaltens dynamischer Wirkungsgefüge Rahmenbedingungen: - Klasse 10, da einige Voraussetzungen (Anwendersysteme, Algorithmen) nötig sind - Bezug zu Inhalten aus der Mathematik, Physik, Politische Bildung, Biologie, Erdkunde - Software: Dynasys,

Mehr

Kodieren Von Graphen

Kodieren Von Graphen Kodieren Von Graphen Allgemeine Anwendungen: Routenplaner Netzpläne Elektrische Schaltungen Gebäudeerkennung aus Luftaufnahmen Definitionen:? Graph Ein Graph G besteht aus einem geordneten Paar G = (V,E)

Mehr

Modellierung von Non Player Chareacters

Modellierung von Non Player Chareacters Modellierung von Non Player Chareacters Konzeption Künstlicher Charaktere Games Summer Camp 2006 Cindy Löther Inhalt 1 Einleitung 2 Definitionen 3 Non Player Characters (NPC) 4 Modellierung von NPCs 5

Mehr

Standardisierte Vorgehensweisen und Regeln zur Gewährleistung von: Eindeutigkeit Schlussfolgerungen aus empirischen Befunden sind nur dann zwingend

Standardisierte Vorgehensweisen und Regeln zur Gewährleistung von: Eindeutigkeit Schlussfolgerungen aus empirischen Befunden sind nur dann zwingend Standardisierte Vorgehensweisen und Regeln zur Gewährleistung von: Eindeutigkeit Schlussfolgerungen aus empirischen Befunden sind nur dann zwingend oder eindeutig, wenn keine alternativen Interpretationsmöglichkeiten

Mehr

Datenstrukturen & Algorithmen

Datenstrukturen & Algorithmen Datenstrukturen & Algorithmen Matthias Zwicker Universität Bern Frühling 2010 Übersicht Binäre Suchbäume Einführung und Begriffe Binäre Suchbäume 2 Binäre Suchbäume Datenstruktur für dynamische Mengen

Mehr

Improving the Accuracy of GPS

Improving the Accuracy of GPS Improving the Accuracy of GPS Stephan Kopf, Thomas King, Wolfgang Effelsberg Lehrstuhl für Praktische Informatik IV Universität Mannheim Gliederung Motivation ierungsfehler von GPS Steigerung der Genauigkeit

Mehr

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik

Informatik. Teil 1 Wintersemester 2011/2012. Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Informatik Teil 1 Wintersemester 2011/2012 Prof. Dr.-Ing. habil. Peter Sobe Fachkultät Informatik / Mathematik Dieser Foliensatz wurde z.t. von Herrn Prof. Grossmann übernommen Inhalt 1. Algorithmen -

Mehr

MBEES Research Abstract Ein Framework zur automatisierten Ermittlung der Modellqualität bei eingebetteten Systemen

MBEES Research Abstract Ein Framework zur automatisierten Ermittlung der Modellqualität bei eingebetteten Systemen MBEES 2010 - Research Abstract Ein Framework zur automatisierten Ermittlung der Modellqualität bei eingebetteten Systemen Jan Scheible ([email protected]) Daimler AG Group Research and Advanced

Mehr

Intelligente Transportsysteme

Intelligente Transportsysteme Intelligente Transportsysteme Universität Ulm Fakultät für Informatik Proseminar Künstliche Intelligenz SS 2004 Michael Arnold Typen intelligenter Transportsysteme Fahrer-Assistenz-Systeme Mensch hat Kontrolle

Mehr

Bayes-Netze (1) Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg

Bayes-Netze (1) Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg Bayes-Netze (1) Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg (Lehrstuhl KI) Bayes-Netze (1) 1 / 22 Gliederung 1 Unsicheres Wissen 2 Schließen

Mehr

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke

Theoretische Informatik 1 WS 2007/2008. Prof. Dr. Rainer Lütticke Theoretische Informatik 1 WS 2007/2008 Prof. Dr. Rainer Lütticke Inhalt der Vorlesung Grundlagen - Mengen, Relationen, Abbildungen/Funktionen - Datenstrukturen - Aussagenlogik Automatentheorie Formale

Mehr

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie Gliederung 1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie 4/2, Folie 1 2014 Prof. Steffen Lange - HDa/FbI

Mehr

Quelle: Wikipedia.org. Roger Penrose. Fabian Pawlowski, Hendrik Borghorst, Simon Theler

Quelle: Wikipedia.org. Roger Penrose. Fabian Pawlowski, Hendrik Borghorst, Simon Theler Quelle: Wikipedia.org 1 Biografie 2 Grundlegende Fragen 3 Schwache und starke KI 4 Turing-Test 5 Chinesiches Zimmer 6 Bewusstsein 7 Gehirn 8 Turing-Maschine 9 Fazit Biografie Biografie geb.: 8.August 1931

Mehr

Seminar zum Thema Künstliche Intelligenz Software-Agenten. Kay Hasselbach mi5482

Seminar zum Thema Künstliche Intelligenz Software-Agenten. Kay Hasselbach mi5482 Seminar zum Thema Künstliche Intelligenz Software-Agenten Kay Hasselbach mi5482 Agenda 1. Einführung 2. Grundlagen 3. Agenten-Strukturen 4. Architekturen 5. Beispiel: RoboCup 6. Quellen Kay Hasselbach

Mehr

Targetsim Toolbox. 20 gute Gründe für Brettsimulationen. Dr. Gudrun G. Vogt Targetsim Gründerin & Managing Partner Targetsim AG targetsim.

Targetsim Toolbox. 20 gute Gründe für Brettsimulationen. Dr. Gudrun G. Vogt Targetsim Gründerin & Managing Partner Targetsim AG targetsim. Targetsim Toolbox. Dr. Gudrun G. Vogt Targetsim Gründerin & Managing Partner 20 gute Gründe für Brettsimulationen 2015 Targetsim AG targetsim.com 1 1. Realitätsnah, ohne Computer. Bei Brettsimulationen

Mehr

Verfeinerungen des Bayesianischen Nash Gleichgewichts

Verfeinerungen des Bayesianischen Nash Gleichgewichts Spieltheorie Sommersemester 007 Verfeinerungen des Bayesianischen Nash Gleichgewichts Das Bayesianische Nash Gleichgewicht für Spiele mit unvollständiger Information ist das Analogon zum Nash Gleichgewicht

Mehr

14. Rot-Schwarz-Bäume

14. Rot-Schwarz-Bäume Bislang: Wörterbuchoperationen bei binären Suchbäume effizient durchführbar, falls Höhe des Baums klein. Rot-Schwarz-Bäume spezielle Suchbäume. Rot-Schwarz-Baum mit n Knoten hat Höhe höchstens 2 log(n+1).

Mehr

Software-Engineering SS03. Zustandsautomat

Software-Engineering SS03. Zustandsautomat Zustandsautomat Definition: Ein endlicher Automat oder Zustandsautomat besteht aus einer endlichen Zahl von internen Konfigurationen - Zustände genannt. Der Zustand eines Systems beinhaltet implizit die

Mehr

Teil 2: Dynamische Spiele mit vollständigen Informationen

Teil 2: Dynamische Spiele mit vollständigen Informationen Teil : Dynamische Spiele mit vollständigen Informationen Kapitel 5: Grundsätzliches Literatur: Tadelis Chapter 7 Problem Manche Spiele entwickeln sich über die Zeit Dynamik kann aber nicht in Spielen in

Mehr

Frage 8.3. Wozu dienen Beweise im Rahmen einer mathematischen (Lehramts-)Ausbildung?

Frage 8.3. Wozu dienen Beweise im Rahmen einer mathematischen (Lehramts-)Ausbildung? 8 Grundsätzliches zu Beweisen Frage 8.3. Wozu dienen Beweise im Rahmen einer mathematischen (Lehramts-)Ausbildung? ˆ Mathematik besteht nicht (nur) aus dem Anwenden auswendig gelernter Schemata. Stattdessen

Mehr

Künstliche Intelligenz Unsicherheit. Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln

Künstliche Intelligenz Unsicherheit. Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Künstliche Intelligenz Unsicherheit Stephan Schwiebert WS 2009/2010 Sprachliche Informationsverarbeitung Institut für Linguistik Universität zu Köln Rückblick Agent in der Wumpuswelt konnte Entscheidungen

Mehr

Software-Praktikum. Überblick und Zeitplan

Software-Praktikum. Überblick und Zeitplan Standort Hagen Fachbereich Technische Betriebswirtschaft Software-Praktikum Überblick und Zeitplan Andreas de Vries und Volker Weiß Version: 26. September 2016 Inhaltsverzeichnis 1 Einführung und Überblick

Mehr

Abiturfach Informatik. Rahmenbedingungen und Aufgabenbeispiele

Abiturfach Informatik. Rahmenbedingungen und Aufgabenbeispiele Abiturfach Informatik Rahmenbedingungen und Aufgabenbeispiele Inhalt Formale Rahmenbedingungen Hinweise zu Lösung und Bewertung Hinweise zu den Inhalten der Prüfung Beispielaufgaben Formale Rahmenbedingungen

Mehr

Rollen- und Berechtigungskonzepte in der IT-Prüfung. Bachelorarbeit

Rollen- und Berechtigungskonzepte in der IT-Prüfung. Bachelorarbeit Rollen- und Berechtigungskonzepte in der IT-Prüfung Bachelorarbeit zur Erlangung des akademischen Grades Bachelor of Science (B.Sc.) im Studiengang Wirtschaftswissenschaft der Wirtschaftswissenschaftlichen

Mehr

Management - Strategische Unternehmensführung

Management - Strategische Unternehmensführung Inhalt der Vorlesung 1. Gegenstand der BWL und Betriebswirtschaftliche Funktionen 2. Wissenschaftstheorie und Wissenschaftsprogramme 3. Entscheidungen als Grundelemente der BWL 4. Rahmenbedingungen wirtschaftlichen

Mehr

Algorithmen und Datenstrukturen

Algorithmen und Datenstrukturen Algorithmen und Datenstrukturen Dipl. Inform. Andreas Wilkens [email protected] Überblick Grundlagen Definitionen Eigene Entwicklungen Datenstrukturen Elementare Datentypen Abstrakte Datentypen Elementare

Mehr

Diskussion der Theorie des Seins

Diskussion der Theorie des Seins Diskussion der Theorie des Seins Es gibt nur Bewusstsein über Ideen, sonst nichts. Quantenphysik im Geistuniversum von Peter Richard - Stand: Sonntag, 10. April 2016 1 / 6 Quantenphysik im Geistuniversum

Mehr

das usa team Ziegenberger Weg Ober-Mörlen Tel Fax: mail: web:

das usa team Ziegenberger Weg Ober-Mörlen Tel Fax: mail: web: Effektive Beurteilung das usa team Ziegenberger Weg 9 61239 Ober-Mörlen Tel. 06002 1559 Fax: 06002 460 mail: [email protected] web: www.dasusateam.de 1 Beurteilung Mitarbeiter zu beurteilen stellt immer

Mehr

Randomisierte Algorithmen 2. Erste Beispiele

Randomisierte Algorithmen 2. Erste Beispiele Randomisierte Algorithmen Randomisierte Algorithmen 2. Erste Beispiele Thomas Worsch Fakultät für Informatik Karlsruher Institut für Technologie Wintersemester 2016/2017 1 / 35 Randomisierter Identitätstest

Mehr

Requirements Engineering

Requirements Engineering Ident-Nr styp (z.b. Performance, GUI,..) Titel der Beschreibung identifizieren Messkriterien zur Erfüllbarkeit Komplexität in der Realisierung/Abnahme Aufwand bewerten Priorität (hoch, mittel, klein) Realisierungstermin

Mehr

Topologieerkennung von Sensornetzwerken

Topologieerkennung von Sensornetzwerken [email protected] Institut für Theoretische Informatik - Algorithmik I 26. Januar 2010 Übersicht Motivation Definitionen Überlegungen Algorithmus Resultate Motivation Definitionen Überlegungen Algorithmus

Mehr

Scheduling- Algorithmen. Handbuch für Endnutzer

Scheduling- Algorithmen. Handbuch für Endnutzer Scheduling- Algorithmen Handbuch für Endnutzer Stand 15.03.2005 1. Vorwort... 1 2. Systemvoraussetzungen... 2 3. Programmarten... 2 4. Sicherheit der Endnutzer... 2 5. Handhabung... 3 5.1. Prozesseingabe...

Mehr

ES-Projektseminar (SS 2012)

ES-Projektseminar (SS 2012) ES-Projektseminar (SS 2012) Endvortrag Team Justice League of America Dominik Matthias [Team ] Pascal Stephen Vorname Name; ES Real-Time Systems Lab Prof. Dr. rer. nat. Andy Schürr Dept. of Electrical

Mehr

Genetische Programmierung

Genetische Programmierung 15. Juli 2007 Anfang der 90er von John R. Koza entwickelt. Verfahren zur automatisierten Erstellung von Programmen. Von der Evolution inspiriert. Anforderungen an die Möglichst korrekte Lösung ergeben

Mehr

Ein Modell für den Qualitätstest - Welche Fehler sind möglich?

Ein Modell für den Qualitätstest - Welche Fehler sind möglich? 1.1 1 Ein Modell für den Qualitätstest - Welche Fehler sind möglich? Das einführende Beispiel von den Knallkörpern schildert einen statistischen Qualitätstest. Anhand dieses praktischen Beispiels erfahren

Mehr

Staatliche Seminare für Didaktik und Lehrerbildung (Berufliche Schulen) Dokumentation einer Unterrichtseinheit (Stand )

Staatliche Seminare für Didaktik und Lehrerbildung (Berufliche Schulen) Dokumentation einer Unterrichtseinheit (Stand ) Staatliche Seminare für Didaktik und Lehrerbildung (Berufliche Schulen) Dokumentation einer Unterrichtseinheit (Stand 01.08.2012) Erläuterung Die folgenden Hinweise beziehen sich auf die Dokumentation

Mehr

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck

Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen. Clusteranalyse. Tobias Scheffer Thomas Vanck Universität Potsdam Institut für Informatik Lehrstuhl Maschinelles Lernen Clusteranalyse Tobias Scheffer Thomas Vanck Überblick Problemstellung/Motivation Deterministischer Ansatz: K-Means Probabilistischer

Mehr

HM I Tutorium 1. Lucas Kunz. 27. Oktober 2016

HM I Tutorium 1. Lucas Kunz. 27. Oktober 2016 HM I Tutorium 1 Lucas Kunz 27. Oktober 2016 Inhaltsverzeichnis 1 Theorie 2 1.1 Logische Verknüpfungen............................ 2 1.2 Quantoren.................................... 3 1.3 Mengen und ihre

Mehr

Isomorphie von Bäumen

Isomorphie von Bäumen Isomorphie von Bäumen Alexandra Weinberger 23. Dezember 2011 Inhaltsverzeichnis 1 Einige Grundlagen und Definitionen 2 1.1 Bäume................................. 3 1.2 Isomorphie..............................

Mehr

Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen

Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Szenengraph-Architekturen - 1 Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen Hauptseminar Medieninformatik Christina Eicher 10. Mai 2004 Inhalt Szenengraph-Architekturen - 2 Teil 1: Szenengraphen

Mehr

Vorlesung Informatik 2 Algorithmen und Datenstrukturen

Vorlesung Informatik 2 Algorithmen und Datenstrukturen Vorlesung Informatik 2 Algorithmen und Datenstrukturen (18 Bäume: Grundlagen und natürliche Suchbäume) Prof. Dr. Susanne Albers Bäume (1) Bäume sind verallgemeinerte Listen (jedes Knoten-Element kann mehr

Mehr

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Studiengang Informatik der FH Gießen-Friedberg Sequenz-Alignment Jan Schäfer WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Überblick Einführung Grundlagen Wann ist das Merkmal der Ähnlichkeit erfüllt?

Mehr