Zachowania grupowe: klucz ptaków

Wybierz język interfejsu programu:



Ogólny opis symulacji

Zadaniem programu jest demonstracja grupowego zachowania osobników - ptaków w kluczu. Każdy osobnik kieruje się prostymi regułami o zasięgu lokalnym, nie wiedząc jednocześnie nic o zachowaniu grupy jako całości. Zachowanie całej grupy staje się w efekcie złożone.


rys.1. Klucz

Każdy osobnik stara się:

  • utrzymywać podobną prędkość co jego sąsiedzi,
  • nie zderzać się z sąsiadami,
  • nie oddalać się zbytnio od sąsiadów.

Zasady symulacji

Każdy osobnik modyfikuje swoje zachowanie w oparciu o obserwację trzech sąsiadów:

  • lewego sąsiada,
  • lidera – najbliższego osobnika przed nim,
  • prawego sąsiada.


rys.2. Sąsiedzi osobnika
(zaznaczono kierunek lotu)

Jeżeli osobnik nie posiada lidera, staje się liderem grupy, zachowując zadany kierunek lotu. W ten sposób grupa jako całość posiada zawsze pewne ukierunkowanie i można obserwować zachowanie osobników w jej wnętrzu. Takie założenie wynika bezpośrednio z obserwacji natury – osobniki prowadzące kierują się dodatkowymi bodźcami, dzięki czemu wiedzą, jaki zachowywać kierunek lotu. Wpływ tych bodźców nie jest istotny dla celów symulacji zachowania grupowego.

  • Osobnik stara się zachowywać średnią ważoną prędkości trzech wyróżnionych sąsiadów (standardowe wagi: 1/2/1).
  • Osobnik modyfikuje swoją prędkość tak, aby nie zbliżać się nadmiernie do swych sąsiadów (osobniki posiadają zróżnicowane preferencje co do utrzymywanej odległości).
  • Osobnik modyfikuje swoją prędkość tak, aby nie oddalać się nadmiernie od swych sąsiadów.
  • Liderzy grupy posiadają ograniczone możliwości ("męczą się"), po których przekroczeniu wycofują się, a ich miejsce przejmują inne osobniki.
  • Każdy osobnik posiada maksymalną prędkość, jaką może osiągnąć.
  • Do ruchu każdego osobnika wprowadzone są pewne losowe zaburzenia.

Implementacja

Przebieg symulacji. Dla każdego osobnika X wykonaj:

  1. Wyszukaj najbliższych sąsiadów osobnika X. Przechowaj ich indeksy (S1, L, S2) oraz odległości kwadratowe od osobnika X (S1D, LD, S2D).


    rys.3. Najbliżsi sąsiedzi

  2. Losowo wybierz jednego z sąsiadów bocznych (S1 albo S2) do wykorzystania w danej iteracji.
  3. Jeżeli osobnik X nie posiada lidera (sam jest liderem), zwiększ parametr zmęczenia T. W przeciwnym wypadku zmniejszaj T. Jeżeli przekroczono poziom krytyczny zmęczenia, zmniejsz prędkości VX oraz VY o 5%.
  4. Jeżeli osobnik X znajduje się zbyt blisko sąsiadów (pomiar następuje niezależnie w osi X oraz osi Y), zmniejszaj odpowiednio prędkości VX, VY.
  5. Jeżeli osobnik X znajduje się za daleko od sąsiadów (pomiar następuje niezależnie w osi X oraz osi Y), zwiększaj odpowiednio prędkości VX, VY.
  6. Oblicz średnie ważone prękości sąsiadów i przechowaj je w MVX, MVY. Modyfikuj VX o 10% różnicy pomiędzy MVX a VX. Modyfikuj VY o 10% różnicy pomiędzy MVY a VY.
  7. Jeżeli osobnik X przekroczył dopuszczalną prędkość kwadratową, zmniejsz o 25% prędkości VX, VY.
  8. Jeżeli osobnik X znajduje się zbyt blisko przeszkody (kursora myszki), modyfikuj jego prędkości VX, VY. Zmniejszaj VX i zwiększaj VY albo zmniejszaj VY i zwiększaj VX (w zależności od położenia przeszkody).


    rys.4. Omijanie przeszkody

  9. Wprowadź losowe zaburzenia do prędkości VX, VY.
  10. Przemieść osobnika X zgodnie z prędkościami VX, VY.

Opcje programu

randomize on/off Włącza/wyłącza losowe zaburzenia do ruchu osobników.
rescale Zmienia rozmieszczenie osobników tak, aby cała grupa była widoczna na ekranie.
center on/off Włącza/wyłącza ustawienie widoku na środek grupy.
step on/off Włącza/wyłącza krokowe odświeżanie ekranu (przerysowywanie co 100 kroków symulacji). Włączenie krokowego odświeżania przyspiesza działanie programu.
update Przerysowuje ekran.
left-/left+ Zmniejsza/zwiększa wagę prędkości lewego sąsiada.
leader-/leader+ Zmniejsza/zwiększa wagę prędkości lidera.
right-/right+ Zmniejsza/zwiększa wagę prędkości prawego sąsiada.
lead time-/lead time+ Zmniejsza/zwiększa czas prowadzenia liderów grupy.
mouse on/off Włącza/wyłącza wpływ kursora myszki na zachowanie ptaków. Jeżeli opcja jest aktywna, osobniki starają się nie zbliżać do punktu wskazywanego przez kursor.
mark leaders Umożliwia zaznaczenie na czerwono liderów grupy.
pause Umożlwia chwilowe zatrzymanie symulacji.
restart Uruchamia symulację od początku.
quit Kończy działanie programu.
Program i tekst: Piotr Dachtera
Prowadzący: Maciej Komosiński