Upload
tyler-moses
View
33
Download
0
Embed Size (px)
DESCRIPTION
Rescue team simulation. Multiagentensystem. Gliederung. Aufgabe Agenten Unterschiede/Funktion Umsetzung Entity-Package Control-Package GUI-Package. Gliederung. (No)CollisionNoCoordination Agenten search-Algorithmus (No)CollisionCoordination Agenten Erweiterungen, Verbesserungen - PowerPoint PPT Presentation
Citation preview
Gliederung
1) Aufgabe Agenten Unterschiede/Funktion
2) Umsetzung3) Entity-Package4) Control-Package5) GUI-Package
Gliederung
5) (No)CollisionNoCoordination Agenten
6) search-Algorithmus7) (No)CollisionCoordination Agenten8) Erweiterungen, Verbesserungen9) Programmvorstellung10) Ergebnisse der Simulation
Aufgabe MAS zum Retten von Unfallopfern Survivor
Verschlechtert seinen Gesundheitszustand mit einer Wahrscheinlichkeit von 60% je Zeiteinheit
Ausgangsgesundheit globaler Parameter Agent
Random NoCollisionNoCoordination CollisionNoCoordination NoCollisionCoordination CollisionCoordination
Agenten RandomRandom
Bewegen sich zufällig Strafversetzung beim Kollidieren mit
anderen Agenten Survivor gerettet durch Betreten des
Feldes
AA S
Agenten NoCollisionNoCoordination / NoCollisionNoCoordination /
CollisionNoCoordinationCollisionNoCoordination Bewegen sich mittels intelligente
Algorithmen Kollisionen
Vermeiden Strafversetzung
Survivor werden gerettet durch Betreten des Survivor-Feldes
AA S
Agenten NoCollisionCoordination / NoCollisionCoordination /
CollisionCoordinationCollisionCoordination Bewegen sich mittels intelligente
Algorithmen Kollisionen
Vermeiden Strafversetzung
Rettet den Survivor durch Umkreisen dieses
A A
A S
A A
A A A
A S A
A A A
A A A
S A
A A
Aufgabe Einstellungen
Anzahl der Agenten Anzahl der Survivor Größe des Feldes Episoden
Eine Episode beendet, wenn alle Survivor gerettet worden sind
StatistikStatistik Durchschnittliche Rettungszeit Durchschnittliche gerettete Survivor je
Agentenart
Umsetzung Erarbeiten der Agentenfunktionalität Recherche nach ähnlichen Projekten
Sehr komplexe Algorithmen Klassendiagramm erstellt
- Implementierung des Simulators
Aufgabenverteilung
Aufgabenverteilung
I. M.I. M. U. P.U. P. Christian Christian LangeLange
Erstellen des CollisionManagerErstellen der NoCollisionNoCoordination/ CollisionNoCoordination AgentenImplementieren der abstracten Agenten, Teams
Team Agenten (NoCollisionCoordination/ CollisionCoordination Agenten)Erweiterung Rescued Manager
Grafische Darstellung der Welt und der AgentenGrafische Auswertung der ErgebnisseImplementieren der abstracten Agenten, Welt, Surviors, Random Agenten, Rescued Manager
Entwicklungsumgebung Java 1.5 Update 9
Plattformunabhängig Eclipse 3.2.1
Freeware Bibliotheken
JFreeChart
World Klasse, welche die Welt repräsentiert
kapselt Teams und Survivor Enthält das „Spielfeld“
Field-Objekte Was befindet sich auf dem Feld? Was ist der Zustand des Feldes?
explored?
Team
Ein Team für jede Agentenart Enthält die Agenten Besitzt die „TeamWorld“ Steuert Agenten und gibt Anweisungen
des Systems weiter Stellt globale Teamvariablen bereit Kommunikation innerhalb des Teams Teams konkurrieren
Agent & Survivor Agent
ID Aktuelle Position Zielpositon nearestSurvivor
Survivor ID Gesundheitszustand rescued
Control-Klassen „RescueSystem“
steuert den Ablauf in einem Zeitschritt & in den Episoden
ruft die Manager auf Manager
„CollisionManager“ Prüft, ob Kollisionen und löst diese
„RescuedManager“ Prüft, ob Survivors gerettet wurden
„RescueSystem“ steuert den Ablauf
Nachricht an die Teams Agenten „sollen sich umschauen“ & ihre „Wunschposition“
Aufruf „CollisionManager“ Nachricht an die Teams
Agenten auf nächste Position updaten der World/TeamWorld
Felder setzen (durch Teams) „RescuedManager“ Gesundheitszustand der Survivors verändern GUI neu zeichnen
Einstellungen Anzahl der Agenten Sichtweite Wahrscheinlichkeit Gesundheitszustand Anzahl der Survivor Anzahl der Episode und die Pausenzeit
Statistiken 3 Arten Implementiert
Ø gerettete Survivors je Agent pro Episode je Team pro Episode
Ø Zeit für das Retten eines Survivors Exportieren und Drucken der
Diagramme
Einleitung
NoCollisionNoCoordination &CollisionNoCoordination
Beide gleiche Art, um Survivor zu befreien
haben beide gleiche Algorithmen Unterschied nur bei Kollisionskonfliktlösen Sind keine Individualisten, sondern
kommunizieren
Überlegung
Team: findDestinations() kürzeste Wege für alle Agenten zu
allen Survivors ermittelt Utilities übergibt diese Daten dem Agenten
Agent: berechnet daraus „Expected Utilities“und bestimmt damit seinen optimalen Survivor
Berechnung „Expected Utility“
= Probability x UtilityP.. ProbabilityS.. Summe aller kürzesten Wege eines Agentenk.. Kürzester Weg zum aktuellen Survivor
Utility.. Kehrwert des Gesundheitszustand des
Survivors
S
kSP
health
1
Kommunikation zwischen den Agenten wird vom Team angestoßen klären, wer welchen Survivor bekommt für jeden Survivor ein Agent (s=a) wenn weniger Survivor als Agenten
die besten laufen zu den Survivors & die restlichen durchsuchen andere Felder (search())
wenn noch kein Survivor Agent ruft search()-Methode auf
Nächster Schritt Agenten, die einen Survivor
festzugeordnet bekommen haben: Nächste Position: Feld, welches näher
am Survivor dran ist als ihr aktuelles Feld
Agenten, die keinen Survivor haben: search()-Algorithmus:
solange in eine Richtung gerade aus laufen, bis sie gegen eine Wand laufen
Aktorik Team: moveAllAgents()
Ruft move() der Agenten auf ändert Status der Felder in der
TeamWorld und in der „echten“ Welt Änderung in der Umgebung
Agent: move() Gewünschte Position wird zur
aktuellen Position Änderung im Agenten
TODO – (No)CollisionNoCoordination
search()-Algorithmus nicht optimal NoCollision-Agenten
Kollisionsalgorithmus
Ines Moosdorf, Christian Lange, Ulrike Plötner
(No)CollisionCoordinationAgent
U. P.
A A
A S
A A
A A A
A S A
A A A
A A A
S A
A A
Grundgedanken
Einteilung der Agenten in Rettungsteams
ANIM – AgentsNotInMission SNIM – SurvivorsNotInMission SIM – SurvivorsInMission
findDestinations()
findDestinations() {
checkDisappearedSurvivors();
checkNewSurvivors();
coordinateRescue();
}
coordinateRescue()
SIM: calcNextPositionRescueTeam() Bildung der Rettungsteams aus ANIM
wenn es SNIM gibt: calcAgentsForRescue() calcShortestWays() putPrioritySurviovrInMission()
Ergebnisse der Simulation Größe 30x30 2 RandomAgents 1 CollisionNoCoordinationAgent 3 CollisionCoordinationAgent Sichtweite 2 Survivors 30 Episoden 10