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