Multiagent Simulator

MODELOWNIE ZACHOWAŃ TŁUMU Z WYKORZYSTANIEM SYSTEMÓW AGENTOWYCH

Modelowanie zachowań tłumu stało się ostatnimi laty bardzo popularne. Zapoczątkowane przez nowatorskie produkcje filmowe znalazło zastosowanie w wielu projektach badawczych analizujących na przykład zachowania cząsteczek, systemów złożonych.

Tworzony przez nas symulator ma umożliwić zaprogramowanie złożonych zachowań pojedynczych użytkowników, jak i całych grup. Wykorzystanie w nim systemu multiagentowego daje możliwość nadawania indywidualnych cech pojedynczym jednostkom, co pozwala na doświadczalne sprawdzanie zachowań całych mas w danych sytuacjach. Takich jak ucieczka z płonących budynków, ale również współdziałanie na polu walki.
Wykorzystanie grafiki trójwymiarowej do wizualizacji zachowań agentów daje możliwość wykorzystania aplikacji także do tworzenia animacji.

Prezentacja:

multisim_final_2009

Autorzy:

Artur Kosztyła

Piotr Jakubas

Inspiracja:

Do pracy nad projektem zainspirowała nas filmowa trylogia „Władca pierścieni”, a dokładnie przedstawione w niej sceny batalistyczne. Po krótkim rozpoznaniu udało nam się dowiedzieć jakich technik użyto do stworzenia tych wspaniałych ujęć. W scenach batalistycznych wykorzystano system multi agentowy, połączony z bardzo rozbudowaną siecią stanów oraz technikami motion capture. Postanowiliśmy więc sami sprawdzić „how hard can it be”.

Przyświecające nam cele:

Chcieliśmy stworzyć proste narzędzie umożliwiające modelowanie zaawansowanych zachowań tłumu. Narzędzie takie miało być wykorzystywane w badaniach socjologicznych zachowań grup ludzi, np. w czasie ewakuacji z płonącego budynku, panicznej ucieczce lub w prostej symulacji pola bitwy.

Konstrukcja programu:

Wizualizacjia:

Do wizualizacji zachowań tłumu wykorzystaliśmy Jave3d do stworzenia trójwymiarowej przestrzeni w której poruszają się nasi agenci. Dodatkowo postanowiliśmy zastosować wielopoziomowość terenu, która umożliwiła by nam projektowanie bardziej rozbudowanych terenów ( np wielopiętrowych budynków, terenów górzystych, pomieszczeń zamkniętych ). Całość programu napisana jest zgodnie z metodologią MVC, dzięki czemu możliwa jest podmiana sposobu wyświetlania naszego świata oraz agentów.

Dwa słowa o agentach:

Stworzeni przez nas agenci cechują się zdolnością podejmowania „inteligentych” decyzji w oparciu o otoczenie w jakim się aktualnie znajdują. W oparciu o zebrane informacje potrafią zmieniać swój cel, np. uciekać jeżeli przewaga wroga jest zbyt duża, podążać do wyjścia z płonącego budynku. Zasięg widzenia agentów jak i zasięg w jakim mogą walczyć ( zasięg broni ) jest ograniczany.

Zasięg widzenia agenta - symulator multiagentowy
Zasięg widzenia agenta - symulator multiagentowy

Na potrzeby walki można indywidualnie zmieniać ilość życia każdego z agentów, a także wielkość obrażeń jakie zadają. Dodatkowo każdy z agentów „zapamiętuje” część informacji oraz ma jasno zdefiniowany stan w jakim się znajduje.

Algorytm poruszania się agentów:

Stworzony przez nas algorytm poruszania się agentów po trójwymiarowym obszarze, jest odporny na zacinanie się agentów np. w rogu pomieszczenia lub przy samych drzwiach. Algorytm bazuje na dyskretyzacji przestrzeni agentowej, która umożliwiło przeprowadzenie szeregu optymalizacji poszczególnych algorytmów przemieszczania się agenta.

Przemieszczanie się agentów:

YouTube Preview Image

Film przestawia podstawowy algorytm poruszania się agentów po płaskiej zamkniętej powierzchni.

Algorytmy:

Algorytm 1 – śledzenie:

YouTube Preview Image

Film przedstawia efekty działania algorytmu śledzenia, polegającego w uproszczeniu na wybraniu przez każdego z agentów jednego z sąsiadów i próby utrzymania stałej odległości od niego. Ponieważ agenci posiadają zawężone pole widzenia w pierwszej części zbierają się ze sobą w małe grupki, dopiero pod sam koniec zbierają się w całość.

Algorytm 2 – odrębne grupy, unikanie nieprzyjaciela:

YouTube Preview Image

Film przedstawia algorytm poruszania się w grupach ( odróżnionych kolorem ), grupa czerwona bardzo tchórzliwa musi unikać odważnego agenta z drużyny zielonej. Przykład jest oczywiście przerysowany ale dobitnie obrazuje sposób zachowywania się tchórzliwych grup agentów.

Algorytm 3 – ewakuacja budynku:

YouTube Preview Image

Na filmie zaobserwować można wygląd wielopoziomowego budynku wraz z klatką schodową. Niewielka grupa agentów ma za zadanie wydostać się z budynku przez wyjście znajdujące się na parterze.

Algorytm 4 – ewakuacja budynku:

YouTube Preview Image

Ewakuacja budynku w trochę większej skali, agenci mogą wybierać jedną z 4 klatek schodowych w celu dostania się na parter budynku. Wyjście ewakuacyjne jest tylko jedno na parterze.

Algorytm 5 – symulacja pola bitwy:

YouTube Preview Image

Film przedstawia pełne wykorzystanie naszego symulatora oraz jego funkcji do przeprowadzenia symulacji pola bitwy. Zaobserwować można grupowanie się agentów, ograniczony zasięg widzenia, podobnie jak różnice w zasięgu broni.

I mała perełka na sam koniec. Symulacja pola bitwy z Władcy pierścieni:

YouTube Preview Image

Nawiązując do dzieła, które nas zainspirowało postanowiliśmy stworzyć prostą symulację bitwy przedstawionej w filmie „Władca pierścieni”. Dwie ogromne armie elfów i orków, różniące się nie tylko wzrostem siłą ale też męstwem, starły się ze sobą w epickiej bitwie 🙂

Symulator multi agentowy doczekał się też drugiej odsłony, zapraszamy do zapoznania się z nowszą wersją aplikacji.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.


*