1 / 51

Rescue team simulation

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

tyler-moses
Download Presentation

Rescue team simulation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rescue team simulation Multiagentensystem I. M., Christian Lange, U. P.

  2. Gliederung • Aufgabe • Agenten Unterschiede/Funktion • Umsetzung • Entity-Package • Control-Package • GUI-Package

  3. Gliederung • (No)CollisionNoCoordination Agenten • search-Algorithmus • (No)CollisionCoordination Agenten • Erweiterungen, Verbesserungen • Programmvorstellung • Ergebnisse der Simulation

  4. 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

  5. Agenten • Random • Bewegen sich zufällig • Strafversetzung beim Kollidieren mit anderen Agenten • Survivor gerettet durch Betreten des Feldes

  6. Agenten • NoCollisionNoCoordination / CollisionNoCoordination • Bewegen sich mittels intelligente Algorithmen • Kollisionen • Vermeiden • Strafversetzung • Survivor werden gerettet durch Betreten des Survivor-Feldes

  7. Agenten • NoCollisionCoordination / CollisionCoordination • Bewegen sich mittels intelligente Algorithmen • Kollisionen • Vermeiden • Strafversetzung • Rettet den Survivor durch Umkreisen dieses

  8. Aufgabe • Einstellungen • Anzahl der Agenten • Anzahl der Survivor • Größe des Feldes • Episoden • Eine Episode beendet, wenn alle Survivor gerettet worden sind Statistik • Durchschnittliche Rettungszeit • Durchschnittliche gerettete Survivor je Agentenart

  9. Umsetzung • Erarbeiten der Agentenfunktionalität • Recherche nach ähnlichen Projekten • Sehr komplexe Algorithmen • Klassendiagramm erstellt • - • Implementierung des Simulators • Aufgabenverteilung

  10. Aufgabenverteilung

  11. Entwicklungsumgebung • Java 1.5 Update 9 • Plattformunabhängig • Eclipse 3.2.1 • Freeware • Bibliotheken • JFreeChart

  12. Entity-Package

  13. 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?

  14. 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

  15. Agent & Survivor • Agent • ID • Aktuelle Position • Zielpositon • nearestSurvivor • Survivor • ID • Gesundheitszustand • rescued

  16. Control-Package

  17. 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

  18. „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

  19. GUI-Package

  20. GUI • Swing • JMenuBar • JToolBar • JTabbedPane • JPanel

  21. Einstellungen • Anzahl der Agenten • Sichtweite • Wahrscheinlichkeit • Gesundheitszustand • Anzahl der Survivor • Anzahl der Episode und die Pausenzeit

  22. 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

  23. (No)CollisionNoCoordinationAgent I. M. Ines Moosdorf, Christian Lange, Ulrike Plötner

  24. Einleitung NoCollisionNoCoordination & CollisionNoCoordination • Beide gleiche Art, um Survivor zu befreien  • haben beide gleiche Algorithmen • Unterschied nur bei Kollisionskonfliktlösen • Sind keine Individualisten, sondern kommunizieren

  25. Ablauf Agent Sensorik Überlegung Aktorik

  26. Sensorik Agent: lookAround() • schaut sich x Kästchen weit um • trägt Entdeckungen in TeamWorld ein

  27. Ü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

  28. Berechnung „Expected Utility“ = Probability x Utility P.. Probability S.. Summe aller kürzesten Wege eines Agenten k.. Kürzester Weg zum aktuellen Survivor Utility.. Kehrwert des Gesundheitszustand des Survivors

  29. 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

  30. Kommunikation zwischen den Agenten - Details

  31. 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

  32. Kollisionsprüfung CollisionManager • Control-Klasse • solveCollisions()

  33. 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

  34. TODO – (No)CollisionNoCoordination • search()-Algorithmus nicht optimal • NoCollision-Agenten •  Kollisionsalgorithmus

  35. (No)CollisionCoordinationAgent U. P. Ines Moosdorf, Christian Lange, Ulrike Plötner

  36. Ablauf lookAround findDestinations move

  37. findDestination findDestination if no survivor found else search coordinateRescue

  38. search definiere geradeaus not possible while possible laufe geradeaus

  39. Grundgedanken • Einteilung der Agenten in Rettungsteams • ANIM – AgentsNotInMission • SNIM – SurvivorsNotInMission • SIM – SurvivorsInMission

  40. findDestinations() findDestinations() { checkDisappearedSurvivors(); checkNewSurvivors(); coordinateRescue(); }

  41. coordinateRescue() • SIM: calcNextPositionRescueTeam() • Bildung der Rettungsteams aus ANIM wenn es SNIM gibt: • calcAgentsForRescue() • calcShortestWays() • putPrioritySurviovrInMission()

  42. Erweiterungen • CollisionManager • Sichtweite der Agenten • momentan können sie hinter Mauern sehen

  43. Erweiterungen

  44. Verbesserungen • search-Algorithmus • Coordination-Agents: • flexiblere Teams • prioritySurvivor

  45. Programmvorstellung

  46. Ergebnisse der Simulation

  47. Ergebnisse der Simulation

  48. Ergebnisse der Simulation • Größe 30x30 • 2 RandomAgents • 1 CollisionNoCoordinationAgent • 3 CollisionCoordinationAgent • Sichtweite 2 • Survivors 30 • Episoden 10

More Related