Ogólny symulator multiagentowy do modelowania zachowań tłumu Piotr Jakubas Artur Kosztyła Koło Naukowe „Glider” Kraków, 14.05.2009 Plan wykładu • • • • Przyświecające nam cele Konstrukcja programu Algorytmy Podsumowanie PRZYŚWIECAJĄCE NAM CELE Przyświecające nam cele Inspiracja – czyli „how hard can it be” Przyświecające nam cele • Uniwersalne narzędzie • Proste metody umożliwiające konstruowanie złożonych zachowań • Badania socjologiczne KONSTRUKCJA PROGRAMU Wizualizacja • Java3D – Przestrzenni, wymienni agenci – Wielopoziomowy teren • Model MVC - wizualizacja odłączona od obliczeń • Możliwość zmiany metody wyświetlania • W planach możliwość renderowania w narzędziach zewnętrznych Dwa słowa o Agentach • Cechy: – – – – – – – – – „inteligencja” , podejmowanie decyzji Cel Zasięg widzenia Zasięg walki Wielkość obrażeń Ilość życia Kolor Pamięć Stan Diagram stanów • Rozróżniane stany: Idzie Stoi Ucieka Walczy Duch Śpi Siedzi Poruszanie się • Algorytm przemieszczania odporny na „zacinanie się” Agentów. • Dyskretyzacja przestrzeni w której znajdują się agenci ALGORYTMY Algorytm 1 - śledzenie • Wybieramy jednego z sąsiadów i staramy się do niego podejść. Algorytm 1 – śledzenie Algorytm 2 - tłum • Sprawdzamy ilu Agentów w moim otoczeniu jest w tej samej drużynie, na tej podstawie decydujemy o ucieczce lub ataku. Algorytm 2 – tłum Algorytm 3 - ewakuacja • Staram się przemieszczać w kierunku wyjścia. Algorytm 3 - ewakuacja Algorytm 4 - walka • Jeżeli jestem w stanie „atakuj” i w zasięgu mojej broni znajduje się przeciwnik to zaczynam zadawać obrażenia. • Możliwość zróżnicowania jednostek: – Wielkość obrażeń ( rodzaj broni ) – Zasięg ( łucznicy i piechurzy ) – Ilość życia ( rodzaj zbroi ) Algorytm 4 - walka Algorytm 4 - walka PODSUMOWANIE Podsumowanie • • • • Prosty i łatwy w obsłudze symulator Duża konfigurowalność Szerokie spektrum zastosowań Wbudowane podstawowe funkcje takie jak: • Chodzenie po ziemi • Przemieszczanie się • Znajdywanie sąsiadów Pytania