Netlogo to środowisko programistyczno-modelowe zaprojektowane przez Uriego Wilenskiego na Uniwersytecie Northwestern. Został stworzony by zarówno uczyć ludzi jak budować modele oraz do badań układów złożonych. Netlogo opiera się na 2 wcześniejszych językach programowania Logo i StarLogo. Wszystkie trzy były wykorzystywane w edukacji od szkoły podstawowej aż po studia. W trakcie tego kursu będziemy używać Netlogo, co pozwoli zademonstrować niektóre z kluczowych idei dot. układów złożonych oraz narzędzia wykorzystywane w badaniach układów złożonych. W wielu zadaniach domowych będziecie właśnie używać Netlogo by modyfikować i eksperymentować z symulacjami. Jeśli wybierzecie zaawansowane zadania, wtedy będziecie budować nawet własne symulacje. W dalszej części lekcji zamierzam powiedzieć o podstawach ściągania i używania NetLogo. Jeśli nie macie żadnego doświadczenia w programowaniu,nie martwcie się. Netlogo jest łatwe do obsługi i dostępne dla nowicjuszy jak i użyteczne dla ekspertów. Jeśli jednak już programowaliście w Netlogo i macie ogólne pojęcie jak działa, możecie pominąć resztę filmów w tej lekcji i od razu przejść do zadania domowego dla lekcji 1. Dobrze, więc zacznijmy. Najpierw ściągamy NetLogo. Jest darmowy i działa na windowsie, Mac OS, i Linuksie. Otworzę teraz okno przeglądarki i przejdę do strony ściągania o adresie: http://ccl.northwestern.edu/netlogo Link ten możecie także znaleźć także na podstronie kursu w dziale materiałów. To wywoła stronę do ściągnięcia wraz z dodatkowymi informacjami o NetLogo. Kliknę teraz na "download". Możecie też teraz to zrobić. Możecie podać swoje dane ale jest to opcjonalne. Dobrze, mam Mac OS X, więc ściągam z odpowiedniego linku. Zapiszę to sobie na pulpicie. Następnie otworzę ten. Dobrze, tu znajduje się folder o nazwie NetLogo 5.0.3. Jeśli ściągacie to w późniejszym terminie ,zapewne zrobili już nowszą wersję, która może mieć wyzszy numer, ale ja przeciągnę tę na pulpit i pozbędę się 2 plików instalacyjnych. Mam tutaj ten folder, a tu NetLogo 5.0.3, więc pewnie zobaczysz tę albo późniejszą wersję. Ten właśnie plik chcę otworzyć. Jest to 2-wymiarowa wersja NetLogo, ale jest także wersja trójwymiarowa NetLogo 3D,którą obejrzymy później. Klikamy dwukrotnie na to. Tak chcę to otworzyć. Otwiercie zajmuje chwilę, w zależności jak szybki jest twój komputer. Oto jest. Teraz pokażę wam jak puścić istniejący w NetLogo model. NetLogo zawiera bibliotekę zdefiniowanych modeli. Można się do nich dostać prze menu File, wybierając Models Library. Możecie przejrzeć wszystkie kategorie jak i modele w każdej z nich. Przechodzę do biologii i modelu Ants (mrówki). Możecie to sobie przeczytać. W tym projekcie kolonia mrówek zbiera pożywienie. Jakkolwiek każda z mrówek podąża zgodnie z zestawem prostych reguł, kolonia jako całość działa w skomplikowany sposób. Otwórzmy więc ten model. Dobrze, pierwszą rzeczą, którą należy zrobić po otwarciu nowego modelu NetLogo to przejść do zakładki "info" na górze. Zauważcie, że są tu zakładki:"Interface" (interfejs), "Info" and "Code"(kod) . Zakładka "info" opowiada troszkę o modelu. Opisuje jak działa, jak go używać, co należy wiedzieć o modelu, podaje kilka pomysłów jakmożnaby go rozwinąć, itd.. Możesz się z tym samodzielnie zapoznać. Wrócę teraz do interfejsu. Zwróć uwagę na dwa guziki: "Setup" i "Go". Pojawiają się one w większości modeli NetLogo, a pierwszą rzeczą jaką zawasze robisz jest naciśnięcie "Setup". To przygotowuje symulację. Więc to, co tutaj mamy to mrowisko, jest ono fioletową plamą z czerwonym kółkiem w środku. Tam właśnie mieszkają wszystkie mrówki. Ten suwak tutaj, "Population", mówi nam, że mamy 125 mrówek w układzie. Kolejne 3 plamy oznaczają pożywienie i, co za chwilę zobaczymy, wykres ilości jedzenia w każdej kupce w funkcji czasu. Mrówki będą się wychodzić ze swojego gniazda i szukać pożywienia. Gdy kliknę "Go" zobaczycie jak krążą w około. Zatrzymajmy więc model klikając ponownie "Go" i zwróćmy uwagę na kilka spraw. Widzicie więc małe mrówki chodzące wokoło. Poruszają się przypadkowo do czasu, kiedy jedna z nich znajdzie kawałek jedzenia - to ten mały niebieski kwadrat lub któraś z 2 innych kupek; i wracają do swojego gniazda. Ale wracając do gniazda zostawiają za sobą chemiczny ślad zwany "feromonem" w świecie prawdziwych mrówek. Wtedy inne mrówki mogą podążać za śladem. Tak oto mrówka zostawia ślad jakby kierujący inne mrówki do miejsca gdzie znalazła pożywienie. Te chemiczne ślady dyfundują się zgodnie ze współczynnikiem dyfuzji, tu na tym suwaku. Oznacza to jak daleko od oryginalnego szlaku się rozciągają, jak również zanikają zgodnie z tym współczynnikiem. Więc kiedy te ślady wyparowują przestajemy je tutaj widzieć. Pozwólcie mi to spowolnić. Ten suwak daje możliwość ustawienia szybkości zmian modelu. Pozwólcie że znowu kliknę "Go". Są tutaj trochę wolniejsze i możecie zaobserwować jak ślady są wzmacniane, wyparowują i dyfundują. Jednak jeśli jedna z mrówek znajdzie jedzenie i zdoła je zanieść do gniazda, a inne mrówki trafią na ślad zanim zaniknie, mogą podążyć za śladem. Tu możecie zobaczyć, że ilość jedzenia w każdej kupce się zmniejsza. Tutaj mamy ostatnią z nich. Przyspieszmy to znowu. Zwróćcie uwagę na mrówki. Przyspieszę to jeszcze troszkę. Mrówki zaczęły poruszać się bardzo szybko. Teraz, kiedy całe jedzenie się skończyło, mrówki nie maja czego szukać, więc znowu poruszają się przypadkowo. Kliknę znowu na "Go" żeby zatrzymać symulację a na wykresie zobaczycie, że mrówki znalazły całe pożywienie, po ilości kroków czasowych widzianych tutaj, czyli około 900 i coś. O to chodzi w ustawianiu (guzik "setup") parametru. Właściwie możemy troszeczkę zmienić wartości. Co się więc stanie jeśli zwiększymy populację? Przesunę suwak do maksimum, czyli 200 osobników. Kliknę jeszcze "Setup" i "Go" Zobaczmy czy zmieni to zachowanie. Oczywiście, w tym modelu jest wiele przypadkowości. Mrówki poruszają się przypadkowo do czasu znalezienia jedzenia; jeśli napotkają ślad idą za nim. Widzimy także, że jeśli populacja jest większa to wygląda, przynajmniej w tej sesji, że przeniosły całe jedzenie dużo szybciej. Ponieważ jest tu wiele przypadkowości należałoby powtórzyć takie sesje wiele razy, by otrzymać kilka statystyk i zobaczyć czy naprawdę, znalały średnio całe pożywienie szybciej mając większą populację. To jedna ze wspaniałych cech NetLogo, że możesz tworzyć takie modele a później z nimi eksperymentować, używając różnych elementów interfejsu do ustawiania różnych zmiennych. Użyteczną kwestią, o której powinnam wspomnieć jest ta zakładka - "Help", pozwalająca skorzystać z wielu źródeł pomocy, w szczególności z podręcznika użytkownika NetLogo i słownika. Jeśli kliknę na podręcznik użytkownika zostanę przekierowana na stronę , z samouczkami programowania w NetLogo i wieloma innymi narzędziami. Pozwólcie, że do tego wrócę. Omówiliśmy zakładki "Interface" i "Info" teraz spójrzmy na "Code". Tak, kod jest napisany w języku NetLogo, który jest jego unikalnym językiem i łatwym do nauczenia. Nauczymy się go trochę w tym kursie, ale oczywiście nie wszystkiego, ponieważ zajęłoby to nam cały przeznaczony na kurs czas, ale nabędziecie wyczucia jak takie modele pisać, korygować i przeprowadzać symulacje. Dla zainteresowanych dodam, że NetLogo jest oparte na Javie. Jest napisane w Javie i to jest to, co kryje się pod jego maską. Ale nie musicie tego wiedzieć żeby używać i programować NetLogo.