Modelowanie biologicznych układów typu drapieżca - ofiara z wykorzystaniem błądzenia losowego. Anna Rutkowska 135601 27 kwietnia 2007 1
Spis treści 1 Wstęp. 3 1.1 Cel pracy......................... 3 1.2 Układ drapieżca - ofiara................. 3 1.3 Błądzenie losowe..................... 4 2 Model Lotki-Volterry. 4 2.1 Teoria........................... 4 2.2 Realizacja......................... 6 2.3 Wpływ zmian parametrów na wyniki.......... 6 3 Model wykorzystujący błądzenie losowe. 11 3.1 Podstawowe założenia.................. 11 3.2 Realizacja......................... 12 3.3 Przebieg tury i implementacja.............. 13 3.4 Wyniki przeprowadzonych symulacji.......... 14 3.5 Parametry modelu, analiza wyników.......... 17 4 Aplikacja. 20 4.1 Wygląd i rozmieszczenie komponentów......... 20 4.2 Działanie......................... 21 4.3 Bezpieczeństwo...................... 21 4.4 Rozbudowa........................ 22 5 Bibliografia. 22 2
1 Wstęp. 1.1 Cel pracy. Celem pracy jest zaprojektowanie i zaimplementowanie modelu, wykorzystującego błądzenie losowe, który będzie symulował biologiczne układy typu drapieżca - ofiara. Do tego ma być stworzona aplikacja umożliwiająca przeprowadzanie symulacji i analizę wyników. Własny model ma być porównany do już istniejących. 1.2 Układ drapieżca - ofiara. Wzajemne relacja dwóch gatunków, takich jak np. króliki i wilki występujących na jednym areale w ekosystemie, nazywa się układem drapieżca - ofiara. Liczebność populacji wilków i liczebność populacji królików są od siebie zależne. Związek ten przedstawia rysunek 1, na którym widać, że wykresy zależności liczebności od czasu są okresowe. Amplituda ofiar jest większa od amplitudy drapieżników i są one względem siebie przesunięte. Rys.1 Zmiana liczebność w czasie w ukł. drapieżnik - ofiara. Na danym terenie musi występować większa liczba królików niż wilków. Wzrost liczebności drapieżników powoduje z pewnym opóźnie- 3
niem spadek liczebności ofiar. Zmniejszenie liczby królików powoduje wymieranie wilków, to pozwala na odbudowę populacji królików, a w dalszej konsekwencji i wilków. W dalszej części cały cykl powtarza się na nowo. 1.3 Błądzenie losowe. Błądzenie losowe, to proces podejmowania kolejnych kroków. Ustala się długość kroku, a kierunek ruchu jest losowany. Przy czym prawdopodobieństwo wylosowania musi być takie same dla wszystkich kierunków. Istnieją dwa warianty błądzenia losowego: z powrotami i bez powrotów. Rys. 2 Błądzenie z i bez powrotów,przy 4 kierunkach ruchu. Błądzenie bez powrotów zakłada, że nie można wylosować miejsca, na którym było się w poprzednim ruchu. 2 Model Lotki-Volterry. 2.1 Teoria. Zaproponowany przez Lotke i Volterra model wykorzystuje, charakteryzujące się oscylacyjnymi rozwiązaniami równania różniczkowe. Stworzony został układ dynamiczny, którego rozwój 4
w czasie jest przewidywalny, zależny tylko od danych początkowych. Relacje miedzy dwoma gatunkami w ekosystemie opisane są za pomocą układu dwóch równań różniczkowych. dn dt = an bnp dp dt = cnp dp Pierwsze równanie wyznacza liczbę ofiar, drugie liczbę drapieżników. Liczebność jednej populacji w chwili t + 1 zależy od liczebności obu populacji w chwili t. Dla N królików i P wilków w bieżącej jednostce czasu mamy odpowiednio dn i dp osobników w następnej jednostce dt dt czasu. Oprócz początkowej liczby osobników na wejściu podaje się dodatkowe parametry. Za ich pomocą model uwzględnia rozrodczość i śmiertelność populacji oraz skale polowań. Widoczne w równaniach parametry (a, b, c, d) oznaczają: a - współczynnik urodzin królików b - współczynnik symulujący, jak wiele królików zostanie złapanych przez wilka c - współczynnik symulujący, jak wiele wilków może wyżywić się z danej populacji królików d - współczynnik umieralności wilków Wartości tych parametrów dobiera się z przedziału (0,1). 5
2.2 Realizacja. Zastosowanie modelu Lotki - Volterry wymaga rozwiązania równań różniczkowych. Jedną z numerycznych metod iteracji takich równań jest metoda Rungego - Kutty czwartego rzędu. Posiadając równanie postaci: y = f(t, y) i wartość początkową: y(t 0 ) = y 0, możemy wyznaczyć kolejne wartości y. Ustalamy krok: h oraz ilość iteracji. Wartość y n+1 obliczamy za pomocą wzoru: y n+1 = y n + h 6 (k 1 + 2k 2 + 2k 3 + k 4 ) gdzie k 1 = f(t n, y n ) k 2 = f(t n + h 2, y n + h 2 k 1) k 3 = f(t n + h 2, y n + h 2 k 2) k 4 = f(t n + h, y n + hk 3 ) 2.3 Wpływ zmian parametrów na wyniki. Sprawdziłam zachowanie się modelu dla różnych wartości parametrów: a, b, c, d oraz różnych liczebności początkowych populacji. Ponieważ model jest cykliczny, ewolucja populacji nie zależy od ilości iteracji. Podobnie krok zmienia tylko zagęszczenie wyników, a nie ich wartość. To byłoby widoczne tylko w przypadku zaznaczania samych punktów na wykresie, a nie rysowania linii. Dlatego nie testuje modelu w zależności od ilości iteracji i wartości kroku. 6
Dobre wyniki otrzymałam dla początkowej liczby wilków i królików równej 20 oraz dla a = 0.07, b = 0.008, c = 0.01, d = 0.2. Wykres przedstawia rysunek 3. Rys. 3 Model Lotki-Volterry. Dla tych samych wartości parametrów a, b, c, d manipulacja wejściową liczbą drapieżników i ofiar dała poniższe efekty. W przypadku zwiększania liczby wilków, amplitudy obu wykresów rosną, przy czym odległość miedzy amplitudą drapieżników, a amplitudą ofiar się zmniejsza (w miarę zwiększania liczby wilków). Przy proporcjach typu: liczba wilków około 10 razy większa niż królików, amplitudy są praktycznie na tym samym poziomie. Podobne wyniki uzyskuje się pozostawiając wartość wejściową wilków równą 20, a zwiększając liczebność królików. 7
Rys. 4 Wartości początkowe - wilków:150, królików: 20. Przyjmując wartości: wilków - 10, królików od 30 do 40 otrzymuje się wykresy podobne do tego na rysunku 3. Natomiast ciekawy wynik daje ustalenie początkowej liczby wilków równej 10, a królików 20 - rysunek 5. 8
Rys. 5 Wartości początkowe - wilków:10, królików: 20. Przy stałych wartościach początkowych obu populacji równych 20, sprawdziłam jaki wpływ na kształt modelu ma zmiana poszczególnych parametrów (a, b, c, d). Zauważyłam, że przy zmianie wartości tylko jednego parametru w zakresie: a - od 0.07 do 0.04, b - od 0.008 do 0.01, c - od 0.01 do 0.004, d - od 0.2 do 0.5, otrzymujemy wyniki zbliżone do oczekiwanych. Inne zmiany powodują zaburzenia w modelu, które przedstawiają rysunki 6 i 7. 9
Rys. 6 Wartości a=0.07, b=0.008, c=0.03, d=0.2. Rys. 7 Wartości a=0.07, b=0.008, c=0.01, d=0.1. 10
Aby wytłumaczyć wpływ zmian parametrów na model muszę odwołać się do równań modelu: N = an bnp P = cnp dp Warto zauważyć, że iloczyn bn P przedstawia oddziaływanie drapieżników na ofiary (zmniejszając populacje ofiar). Natomiast iloczyn cnp obrazuje to jak liczba ofiar wpływa na liczbę drapieżników (wzrost liczby populacji). Porównam teraz parametry modeli z rysunków 6 i 7 z modelem z rysunku 3, który przyjęłam jako wzorcowy. W modelu z rysunku 6 zmianie uległ parametr c. Jego wartość została zwiększona z 0.01 do 0.03. Wtedy wartość iloczynu cnp wzrosła, co wpłynęło na wzrost liczby populacji drapieżników (wykres). Zwiększenie parametru, obrazującego to ile wilków jest się w stanie wyżywić z danej populacji królików, spowodowało wzrost populacji drapieżników. W modelu z rysunku 7 zmieniony został parametr d, z 0.2 na 0.1. Zmniejszenie parametru, który przedstawia śmiertelność drapieżników, spowodowało wzrost ich populacji (wykres). Wartość iloczynu dp zmniejszyła się, czyli zmniejszył się odsetek umierających wilków. 3 Model wykorzystujący błądzenie losowe. 3.1 Podstawowe założenia. Na kwadratowym polu o określonym rozmiarze rozmieszczona zostaje zadana liczba drapieżników i ofiar. Oba gatunki przemie- 11
szczają się na polu w oparciu o model błądzenia losowego z powrotami. Nie ma cykliczności, ustalone są warunki brzegowe. Każda populacja ma określone funkcje życiowe. Króliki się rozmnażają i giną wskutek zjedzenia przez wilka, wilki polują na króliki, rozmnażają się i umierają z powodu głodu. 3.2 Realizacja. Pole. Areał tworzy tablica dwuwymiarowa, której elementami są liczby. Za ich pomocą jest oznaczano czy pole jest puste, czy zajęte, jeśli zajęte to przez kogo. Wartość zero to miejsce puste, wartość jeden to królik, wartości równe lub większe od dwóch to wilk. Ruch. Drapieżniki i ofiary błądzą losowo. Zastosowałam model błądzenia z powrotami, ponieważ jest on bardziej adekwatny do rzeczywistości. W przypadku ruchu wylosowany zostaje kierunek, w którym nastąpi ruch. Jest nim jedno z ośmiu pól na około, dla zwierząt znajdujących się w środku pola i trzy lub pięć dla osobników na brzegach. To jaka czynność zostanie podjęta, zależy od tego jakie miejsce (puste lub zajęte) zostanie wylosowane. Jeśli osobnik wylosuje puste pole przeskakuje na nie. Polowanie. Gdy wilk wylosuje pole z królikiem zjada go i zajmuje jego miejsce. Jeśli to był wilk głodny odejmuje się mu jeden od głodu. 12
Rozmnażanie. Potomstwo o określonej liczbie (zadanej i zależnej od gatunku) pojawia się, gdy w wyniku losowania np królik wylosuje miejsce, na którym znajduje się drugi królik. Liczba młodych jest zliczana przez całą turę. Po jej zakończeniu potomstwo zostaje umieszczone w losowych miejscach, jeśli znajdą się puste. Dodatkowo w przypadku drapieżników przy rozmnażaniu jest podział na dwa schematy. Pierwszy - gdy choć jeden osobnik nie jest głodny. Drugi - gdy udział w rozmnażaniu biorą głodne wilki. Dla każdego z tych schematów można osobno ustalić liczbę potomstwa, ponadto w drugim losowanie decyduje czy mają się pojawić młode. Śmierć wśród wilków. Przy każdym ruchu wilka, przy którym nie polował, dolicza mu się jeden do głodu. Ustalana jest liczba tur, jaką może przeżyć drapieżnik bez jedzenia. Jeśli wilk osiągnie wartość równą tej liczbie, ginie w następnej turze. 3.3 Przebieg tury i implementacja. Wywołanie modelu rozpoczyna się od stworzenia tablicy i rozmieszczeniu w niej osobników (init). Następnie zadaną jako czas ilość razy zliczana jest liczebność populacji oraz wywoływana pojedyncza tura (onet our). Ona zaś przeprowadza liczbę losowań osobnika równą łącznej sumie obu populacji. Jeśli wylosowanym osobnikiem okaże się królik, wywoływana jest metoda nextr, która wyznacza kierunek. Jeśli królik trafi na puste pole, przemieszcza się (go) jeśli na drugiego królika rozmnaża się. Jeśli jednak wylosowanym osobnikiem jest wilk wywoływana jest metoda nextw. W jej wy- 13
niku drapieżnik albo się przemieszcza (goordie), albo konsumuje królika (eat) albo się rozmnaża. Ostatnią metodą wywołaną podczas jednej tury jest addy, która umieszcza narodzone potomstwo na polu. setvalues() { init(bok,rabbit2,wolf2); onetour(bok); nextr(m,c,1.0,bok); go(m,c,ms,cs,who); smallr = smallr + sr; nextw(m,c,pole[m][c],bok); goordie(m,c,ms,cs,who); eat(m,c,ms,cs,who); smallw = smallw + sw2; smallw = smallw + sw; addy(smallr, smallw, bok); } 3.4 Wyniki przeprowadzonych symulacji. Zaproponowany przeze mnie model jest niedeterministyczny, w dużej mierze zależy od losowości. To sprawia, że niekiedy staje się on niestabilny. W wyniku przeprowadzenia wielu symulacji, udało mi się wyznaczyć takie wartości parametrów przy, których otrzymuje się dobre wyniki. W tym modelu podaje się na wejściu: bok pola (b) liczbę początkowa drapieżników (w) liczbę początkowa ofiar (k) przedział czasowy liczba tur, jakie może przeżyć wilk bez jedzenia (mg) 14
rozrodczość królików (lk) rozrodczość wilków głodnych (lw) rozrodczość wilków,gdy choć jeden nie jest głodny (lw2) Model daje żądane efekty przy czwórkach (mg,lk,lw,lw2) takich jak: 3301, 4801, 3311, 3501. Co do pola to powinno ono być odpowiednio duże, populacja królików powinna być liczniejsza od populacji wilków o około połowę, oraz zajmować od 40-60 procent pola. Przedstawię wyniki kilku symulacji (wszystkie były przeprowadzane dla przedziału czasowego 200). Rys. 8 Wartości b=15, k=150, w=70, mg=3, lk=3, lw=0, lw2=1 15
Rys. 9 Wartości b=15, k=150, w=70, mg=4, lk=8, lw=0, lw2=1 Rys. 10 Wartości b=15, k=150, w=70, mg=3, lk=5, lw=0, lw2=1 16
Rys. 11 Wartości b=15, k=150, w=70, mg=3, lk=3, lw=1, lw2=1 3.5 Parametry modelu, analiza wyników. W modelu z błądzeniem losowym występują cztery parametry: mg, lk, lw, lw2 (skróty wyjaśnione wyżej). Za pomocą parametru mg można kontrolować żołądki wilków. Wprowadzenie go do modelu umożliwiło symulowanie rzeczywistych zależności miedzy dostępnością pożywienia, a śmiertelnością drapieżników. Parametr lk powinien być zawsze większy od parametrów lw i lw2, ponieważ rozrodczość królików jest większa od rozrodczości wilków. Wprowadzenie dwóch parametrów opisujących rozrodczość wilków, miało na celu większe uzależnienie populacji drapieżników od populacji ofiar. Słuszna wydaje się hipoteza, że głodne wilki mniej się rozmnażają (szukają pożywienia a nie partnera). Przeprowadzane przeze mnie symulacje z różnymi wartościami parametrów wykazały że: 17
-wprowadzenie podziału na lw i lw2 było słuszne, ponieważ wykres liczebności wilków jest wtedy bardziej regularny, mniej poszarpany oraz bardziej kształtem zbliżony do sinusoidy (rysunek 8 a 11) -dodatkowo rozrodczość drapieżników nie powinna przekraczać 1, ponieważ wtedy liczebność wilków przewyższa liczebność królików, a wygląd wykresów odbiega znacznie od oczekiwań (rysunek 12) -zbyt duże mg może spowodować wymarcie królików (rysunek 13) -większe wartości lk powodują częste wahania liczebności populacji (rysunek 14) Rys. 12 mg=3, lk=3, lw=1, lw2=2. 18
Rys. 13 mg=6, lk=3, lw=1, lw2=1. Rys. 14 mg=3, lk=7, lw=0, lw2=1. 19
4 Aplikacja. 4.1 Wygląd i rozmieszczenie komponentów. Okno aplikacji zawiera dwie zakładki, każda dotyczy jednego modelu. W zakładkach znajdują się pola, w których należy podać parametry oraz pola z wykresem. Wygląd aplikacji przedstawia rysunek 15. Rys. 15 Aplikacja. Wyjaśnienie oznaczeń do rysunku 2: 1. Zakładki z modelami. 20
2. Tutaj podaje się parametry modelu. 3. Po wywołaniu modelu w tym miejscu pokaże się wykres. 4. Po naciśnięciu pojawia się okienko z krótką informacją o modelu z aktywnej zakładki. 5. Przyciski Rysuj i Zamknij. 4.2 Działanie. Aplikacja posiada interface użytkownika, za pomocą którego następuje komunikacja. Użytkownik wybiera model, według którego chce przeprowadzić symulację. Następnie podaje dane wejściowe i parametry modelu. Po uruchomieniu (przycisk Rysuj ) w centralnym panelu pojawia się wykres. W okienku z krótkim opisem modelu znajdują się przykładowe parametry, jakie można zastosować. 4.3 Bezpieczeństwo. Z powodu istniejącej komunikacji użytkownika z programem i jego wpływu na wyniki symulacji, konieczne było stworzenie obsługi błędów. Jeśli użytkownik poda dane w nieodpowiednim formacie (np. stringa zamiast inta),obliczenia modelu nie zostaną wykonane. Pojawi się okienko informujące o błędzie oraz o tym jakie dane są akceptowalne. Rys. 16 Komunikat o błędzie. 21
Aplikacja jest też zabezpieczona przed wprowadzaniem nierozsądnych danych. Przykładem takiej sytuacji może być: podanie przez użytkownika takiej początkowej liczby osobników, których suma jest większa niż liczba miejsc na polu. W tym przypadku liczba drapieżników i ofiar będzie zmniejszana o połowę do momentu, aż ich suma nie będzie przekraczać wielkości pola. Pojawi się także okienko z komunikatem o zaistniałym błędzie i zastosowanym rozwiązaniu. 4.4 Rozbudowa. Daną aplikacje można poszerzyć o nowe funkcjonalności. Oprócz wyników w postaci wykresów, można by udostępnić zapis odpowiednio sformatowanych wyników w postaci liczbowej do pliku tekstowego. Inną opcją jest stworzenie animacji, która przedstawiała by ruch na polu w trakcie działania modelu. 5 Bibliografia. Mathematical biology J.D. Murry Modelowanie rzeczywistości I. Białynicki-Birula, I. Białynicka- Birula Wstęp do analizy numerycznej Anthony Ralston Wielka encyklopedia PWN 22