1. Opis programu symulacyjnego - Home page of Iwona Karcz

Transkrypt

1. Opis programu symulacyjnego - Home page of Iwona Karcz
1.
Opis programu symulacyjnego
Program SimPro jest 32–bitową aplikacją napisaną w języku Delphi i przeznaczoną do pracy w środowisku
Windows 95 lub Windows NT. Sterowanie przebiegiem symulacji jak i zadawanie parametrów może odbywać
się w większości przypadków przy pomocy myszy.
1.1.
Sposób wizualizacji przestrzeni wielowymiarowej
Ponieważ większość symulacji i badań odbywa się w wielowymiarowej przestrzeni cech należało rozwiązać
problem jej zrzutowania na płaszczyznę dwuwymiarową, którą można już wyświetlać bezpośrednio. Poniżej
opisany jest sposób rzutowania zastosowany w programie.
Ekran główny reprezentuje fragment płaszczyzny będącej przekrojem krajobrazu adaptacyjnego. Przekrój ten
jest równoległy do pierwszej cechy i prostopadły do pozostałych. Dowolny punkt ekranu to obraz
dwuwymiarowego rzutu punktu z przestrzeni o n+1 wymiarach – n wymiarów cech i jeden jakości. Z
zastosowanej definicji krajobrazu wynika, że linia łącząca dowolne dwa wierzchołki leży w płaszczyźnie profilu
oraz to, że grzbiet profilu odpowiada największemu wskaźnikowi przystosowania przy ustalonej pierwszej
cesze. W konsekwencji każdy osobnik, którego przynajmniej jedna z cech (nie licząc pierwszej) jest różna od
zera znajduje się poniżej linii grzbietu. Pierwsza cecha osobnika determinuje współrzędną poziomą rzutu,
natomiast jego wskaźnik przystosowania pionową.
Środek ciężkości populacji jest wyliczany – jego współrzędna pozioma – jako średnia wartość pierwszej cechy
wszystkich osobników. Współrzędna pionowa to średnia jakość populacji. Taka metoda wyznaczania środka
ciężkości powoduje – w przypadku przekraczania siodła przez dużą populację – to, że może się on znaleźć się
powyżej grzbietu profilu (rys. 2.1).
Jakość
*
Pierwsza cecha
Rys. 2.1. Ślad populacji i ślad środka ciężkości na tle profilu. Przypadek, gdy
środek ciężkości znajduje się powyżej grzbietu profilu (*). Populacja 64 osobników,
przestrzeń 4 wymiarowa, selekcja miękka, aseksualna, siodło o szerokości 11.5 σ.
1.2.
Generowanie zmiennych o rozkładzie normalnym
Użyty w programie model ewolucji wymaga zmiennej losowej o rozkładzie normalnym. Zmienna ta powstaje w
generatorze działającym zgodnie ze wzorem [Pa85]:
y = F–1(x) ,
gdzie x jest wynikiem działania generatora liczb losowych o rozkładzie jednostajnym na odcinku (0,1), y żądaną
zmienną losową, natomiast F–1 jest funkcją odwrotną do dystrybuanty rozkładu normalnego. Funkcja ta
zbudowana została w oparciu o stablicowaną dystrybuantę rozkładu Gaussa (tablica o rozmiarze 4096
elementów).
1.3.
Ekran główny
Na rys. 2.2 pokazany jest wygląd strony głównej programu wraz z opisem występujących tam elementów.
Dodatkowo dostępne są następujące operacje dostępne przez działania myszą na ekranie głównym:
• dwukrotne, szybkie naciśnięcie lewego klawisza myszy powoduje wyczyszczenie ekranu;
• prawy klawisz myszy powoduje inicjalizację populacji od punktu na grzbiecie profilu; numeracja
generacji i liczby prób jest kontynuowana bez zmian;
• naciśnięcie i przytrzymanie lewego klawisza myszy włącza linijkę mierzącą odległości w jednostkach
σ (element 2 na rys. 2.2.); jest ona reprezentowana przez odcinek (element 10) mający punkt zaczepienia
w miejscu wciśnięcia klawisza, a kończący się na wskaźniku myszy.
1
3
9
2
4
7
10
5
6
8
11
12
Rys. 2.2. Ekran główny programu symulacyjnego:
1. pole edycyjne do wprowadzania ziarna generatora liczb losowych;
2. wskaźnik linijki (‘10’), wyskalowany w wartościach odchylenia standardowego;
3. symbol najlepszego jak dotąd osobnika;
4. profil krajobrazu adaptacyjnego;
5. symbol reprezentanta populacji (średnia z przystosowania osobników i z cechy równoległej do osi ekranu);
6. kropka reprezentująca osobnika obecnej populacji (w trybie Bold);
7. ślad trajektorii najlepszego jak dotąd osobnika;
8. ślad trajektorii reprezentanta;
9. pasek narzędzi;
10. ślad linijki;
11. ślad po poprzednich pokoleniach;
12. pasek statusu.
1.4.
Menu programu
Menu główne zawiera trzy elementy:
1. Settings (rys. 2.3.)
• Load – umożliwia, przy pomocy standardowego okienka dialogowego, wybór pliku z rozszerzeniem *.set,
zawierającego zapisane wcześniej nastawy symulacji;
• Save – powoduje zapisanie wszystkich ustawień programu symulatora do pliku wybranego przez
użytkownika;
• Rand Seed – mamy możliwość ustawienia źródła ziarna dla generatora pseudolosowego, zaznaczenie opcji
Constant wymusza jego inicjalizację zgodnie z zawartością pola edycyjnego Seed (rys. 2.2.), w
przeciwnym wypadku jest ona losowa;
• Reset At (rys. 2.4.) – pozwala na określenie miejsca w krajobrazie, od którego zostanie zainicjowana
populacja:
♦ Left Side – lewa granica widocznej części krajobrazu,
♦ Middle – środek ekranu,
♦ Right Side – prawa granica widocznej części krajobrazu,
♦ Preset Pos. – inicjalizacja następuje od punktu na profilu określonego przez użytkownika,
♦ Both Sides – populacja dzielona jest na dwie części, z których jedna startuje w lewej granicy
krajobrazu, a druga w prawej.
Rys. 2.3. Opcje menu Settings.
Rys. 2.4. Opcja menu Reset At.
2. View – pozwala włączyć dodatkowe elementy do wyświetlania:
• Fitness – okno, w którym wyświetlany jest przebieg średniego przystosowania populacji i/lub
przystosowanie najlepszego jak dotąd osobnika;
• Dispertion – okno zawierające przebieg wartości rozproszenia populacji na tle numeru generacji;
• Landscape Setup – włącza okno umożliwiające zdefiniowanie krajobrazu (pkt. 3.1);
• Breakpoints – pokazuje na ekranie punkty zatrzymań i umożliwia ich edycję (patrz rozdział 2.7);
• Speed Control – włącza okno regulacji prędkości; umożliwia ono sterowanie szybkością symulacji i
zatrzymanie jej na wybranym numerze generacji poprzez wpisanie do pola edycyjnego Stop at (rys. 2.5)
numeru generacji; w podobny sposób można wymusić restart symulacji (Reset at);
3. Log – ten fragment menu umożliwia stworzenie nowego (New), otworzenie istniejącego (Open) i
wyczyszczenie aktualnego (Reset) pliku typu log; nazwa aktualnie aktywnego pliku znajduje się
obok opcji Log w menu głównym; chowane są do niego informacje o przekroczeniu breakpoint’u.
Rys. 2.5. Okno regulacji
prędkości przebiegu symulacji.
1.5.
Pasek narzędzi
Pasek narzędzi (rys. 2.6) pozwala na zmianę głównych parametrów symulacji również w czasie jej trwania.
Możemy zadać:
•
•
•
•
Population Size – rozmiar populacji w przedziale od 1 do1024;
Space Size – rozmiar przestrzeni cech w przedziale od 1 do 64;
Sigma – odchylenie standardowe modyfikacji w zakresie od 0.0001 do 9.9999;
Selection – rozwijana lista umożliwiająca wybór metody selekcji;
Przyciski Up/Down obok pól Population Size i Sigma powodują dwukrotne zwiększenie/zmniejszenie wartości
danego parametru.
Następnie dostępne są przyciski umożliwiające sterowaniem przebiegu symulacji:
•
•
•
•
Reset – powoduje restart procesu od miejsca określonego w opcji menu Reset At;
Start/Stop – start i zatrzymanie przebiegu symulacji;
Step – przycisk umożliwiający wykonanie jednego cyklu „ewolucyjnego”;
paleta kolorów pozwala na wybór koloru śladu populacji.
Rys. 2.6. Pasek narzędzi.
1.6.
Pasek statusu
Pasek statusu zawiera jedenaście przycisków sterujących i trzy pola informacyjne (rys. 2.7). Każdy przycisk jest
typu włącz/wyłącz i powoduje zmianę stanu danego elementu na taki jaki jest widoczny w danej chwili.
Począwszy od lewej widzimy następujące elementy sterujące:
 Profile/No Profile – widok profilu krajobrazu adaptacyjnego,
 Trace/No Trace – pokazywanie śladu po obecności osobników,
 Dots – Bold/Normal – osobniki obecnego pokolenia są wytłuszczone lub normalne,
 Representative – Enable/Disable – pokazywanie środka ciężkości populacji,
 Representative – Trajectory/No Traj. – pokazywanie śladu środka ciężkości populacji,
 Best So Far – Enable/Disable – pokazywanie najlepszego jak dotąd osobnika,
 Best So Far – Trajectory/No Traj. – pokazywanie śladu po najlepszym jak dotąd osobniku,
 Time Series – Fitness – okno z przebiegiem wartości średniej przystosowania populacji i/lub najlepszego
jak dotąd osobnika na tle numeru generacji,
 Time Series – Dispertion – okno z przebiegiem rozproszenia populacji na tle numeru generacji,
 Time Series –Repr. Pos.– okno z przebiegiem średniego położenia populacji na tle numeru generacji,
 Landscape – okno umożliwiające zadawanie krajobrazu adaptacyjnego (omówione szczegółowo w
podrozdziale 3.1).
Trzy pola informacyjne to:
 Generation – numer pokolenia,
 Trials – liczba osobników stworzonych dotychczas,
 Seed – ziarno generatora liczb pseudolosowych użyte podczas ostatniego restartu.
Rys 2.7. Pasek statusu.
1.7.
Punkty zatrzymań
Aby umożliwić przeprowadzanie wielokrotnych symulacji i analizę statystyczną zaobserwowanych zjawisk
zastosowany został prosty mechanizm odnotowywania zdarzeń związanych z położeniem środka ciężkości
populacji. Są to punkty zatrzymań – Breakpoints..
Punkty zatrzymań są miejscami, które reagują na przemieszczenie się środka ciężkości populacji z ich lewej
strony na prawą. Takie zajście jest odnotowywane w logu, ale tylko raz pomiędzy kolejnymi restartami
symulacji. Uaktywnienie tych punktów w menu View objawia się tym, że kursor w dolnej części ekranu, w
wąskim obszarze powyżej osi, zmienia się i przybiera postać napisu Breakpoints. Oznacza to, że można prawym
klawiszem myszy wywołać menu obsługujące punkty zatrzymań. Dzięki niemu można:
 Add – dodać nowy punkt (max. 8); będzie się on znajdować w miejscu wciśnięcia klawisza;
 Delete – usunąć wskazywany punkt;
 Type – dokonać zmiany typu zatrzymania; są trzy możliwości: Pass – nie wpływa na przebieg symulacji, a
jedynie odnotowuje w pliku logu, Stop – zatrzymuje symulację oraz Reset – zeruje ją (podobnie jak
wciśnięcie przycisku Reset na pasku narzędzi);
 Clear all – usuwa wszystkie punkty zatrzymań.
Punkty zatrzymań reprezentowane są na ekranie przez trzy symbole graficzne: skierowany w prawo trójkąt dla
punktu typu Pass, kwadrat dla typu Stop i krzyżyk dla typu Reset. Przesunięcie kursora ponad symbolem
powoduje, że pojawia się nad nim pionowa prosta, która w miejscu przecięcia się z grzbietem profilu przecina
się z prostą równoległą do osi poziomej. W takiej sytuacji można używając prawego klawisza myszy przesunąć
wybrany punkt na inną pozycję. Dostępne są wówczas również opcje Delete i Type w menu podręcznym.
2.
Ekrany pomocnicze
2.1.
Zadawanie krajobrazu adaptacyjnego
Zadawanie krajobrazu adaptacyjnego odbywa się poprzez wybór ilości wzgórz i ustawienie parametrów
określających ich cechy (rys. 3.1). Zmian wartości poszczególnych parametrów można dokonać poprzez
bezpośrednie wpisanie żądanej wartości do odpowiedniego pola edytycyjnego lub poprzez użycie przycisków
góra/dół na prawo od nich. Zmieniają one poszczególne parametry z krokiem 0,1 (parametr Peak Pos. z krokiem
0,05). W przypadku wysokości i położenia wierzchołka wzdłuż pierwszej cechy zmian można dokonać poprzez
przeciągnięcie go do wybranego położenia. Osie skalują się automatycznie dopasowując się do zakresu wartości
pierwszej cechy i wysokości wierzchołków. Wierzchołki reprezentowane są przez szare kwadraty z wyjątkiem
aktywnego wierzchołka – czerwony kwadrat. Wartości wyświetlane w okienkach edycyjnych dotyczą
aktywnego wierzchołka.
Rys. 3.1. Okno definicji krajobrazu adaptacyjnego.
Przeznaczenie poszczególnych elementów jest następujące:
• przycisk ‘+’ – dodanie nowego wierzchołka,
• przycisk ‘–‘ – usunięcie wierzchołka,
• Peak Pos. – określenie położenia wierzchołka na osi pierwszej cechy,
• Peak Height –określenie wysokości wzgórza,
• Decline – nachylenie zboczy wzgórza,
• Ort. Declines – nachylenie zboczy dla pozostałych, ortogonalnych wymiarów,
• przyciski Ok i Cancel – zaakceptowanie lub zarzucenie zmian w krajobrazie.
2.2.
Przebieg czasowy — przystosowanie populacji
Okno to (rys. 3.2) przedstawia wykres przystosowania w poszczególnych pokoleniach. Można obserwować
wartość średniego przystosowania populacji oraz przystosowanie najlepszego jak dotąd osobnika. Pole Every w
pasku statusu informuje o ilości uśrednianych danych. Przycisk Reset pozwala na rozpoczęcie wyświetlania co
jedno pokolenie.
Rys. 3.2. Okno przedstawiające wykres zmian
przystosowania w funkcji numeru pokolenia.
2.3.
Przebieg czasowy — położenie populacji
Okno (rys. 3.3) umożliwiające obserwację położenia reprezentanta populacji w funkcji numeru generacji. Oś
pionowa odpowiada wartościom wzdłuż profilu krajobrazu adaptacyjnego. Znaczenie paska statusu jak w
punkcie poprzednim.
Rys. 3.3. Okno przedstawiające wykres zmian
położenia reprezentanta w funkcji numeru pokolenia.
2.4.
Przebieg czasowy — rozproszenie populacji
Rys. 3.4. Okno przedstawiające wykres zmian
rozproszenia populacji w funkcji numeru pokolenia.
Rozproszenie liczone względem reprezentanta.
3.
Pliki *.log
Pliki typu *.log przechowują informacje o przejściach przez punkty zatrzymań. Przykładową treść pliku
przedstawia rys. 4.1. Każdy wiersz ma następującą strukturę:
Seed #### BP-P ### : ##### BP-R ### : #####
Elementów BP-P. jest tyle ile pułapek typu Pass. Po tekście BP-P lub BP-R (punkt typu Reset) znajduje się
pozycja punktu zatrzymania wyrażona w odchyleniach standardowych modyfikacji. Po dwukropku podany jest
numer pokolenia, w którym nastąpiło przejście.
Seed: 334993 BP-P 16.3 : 40 BP-R 26.8 : 242
Seed: 747030 BP-P 16.3 : 41 BP-R 26.8 : 120
Seed: 189340 BP-P 16.3 : 36 BP-R 26.8 : 393
Rys. 4.1. Przykładowa zawartość pliku typu *.log