NMO 2017: slajdy – Część 6

NMOwyklad6-materialy.pdf

Zespoły implementujące algorytm roju cząsteczek do testów na BBOB wybierają wersję algorytmu ze współczynnikiem inercji (strona 3 slajdów, PSO with inertia weight parameter), który można następnie dowolnie tuningować w celu uzyskania lepszych wyników, np. zmieniać wartości w, c1c2, albo testować różne topologie sąsiedztwa.

BBOB – kolokwium I

We wtorek, 25.04 odbędzie się kolokwium I w formie prezentacji uzyskanych dokumentów. Prezentacja powinna trwać około 5 min. Najpierw omówienie algorytmu: jakie operatory, jakie parametry, jakie zdobyte doświadczenia (np. zaczynaliśmy od populacji X żeby na koniec zejść do Y osobników, wzmocniliśmy prawdopodobieństwo mutacji, itp.). Potem omówienie wyników. Skupiamy się przede wszystkim na wykresach z Rysunków 2 i 3. Będzie za mało czasu, aby omawiać wartości z tabelek.

Zwracam uwagę, że ocenianie są strategie ewolucyjne, tj. algorytm, w którym osobnik jest wyposażony w wektor współrzędnych X oraz wektor sigm. Sigmy mogą być wspólne (wtedy de facto jest to jedna zmienna) albo oddzielne dla każdej współrzędnej (wtedy jest to wektor). Dozwolone jest natomiast wszelkie tuningowanie, które tego ograniczenia nie narusza, czyli różne strategie selekcji, różne krzyżowania i formuły mutacji.

W trakcie prezentacji będzie odbywało się głosowanie. Wszyscy otrzymają karty do głosowania i będą wystawiać punkty pozostałym zespołom. Karty będą anonimowe.

Po prezentacjach odbędzie się liczenie punktów. Dwa najsłabiej ocenione zespoły uzyskują ocenę negatywną i będą musiały poprawić wyniki BBOB, ale już innym algorytmem – rojem cząsteczek (pozostawiam sobie prawo decyzji, czy tych zespołów będzie dwa, czy też ewentualnie może dołączy trzeci). Dlatego proponuję dziś jeszcze trochę poeksperymentować nad poprawieniem wyników i opracowaniem zaktualizowanych dokumentów. Ostateczne wersje dokumentów pdf razem z zzipowanym kodem źródłowym należy uploadować do moodle najpóźniej do jutra, do godz. 15:00. Prezentowane będą tylko dokumenty pdf pobrane przeze mnie z moodle. Ogłoszone wyniki będą nieoficjalne, ponieważ później przeprowadzę kontrolę antydopingową i przejrzę przesłane kody źródłowe.

BBOB – przypomnienie

Przypominam, że jutro rano czekam na dokument od Państwa z wynikami testowego uruchomienia waszych algorytmów w środowisku BBOB. Są to wyniki wstępne, które nie będą podlegały ocenie ani porównaniom, ale będą dowodem na to, że poprawnie zaimplementowaliście wasz algorytm, oraz że ten algorytm rzeczywiście szuka optimów w testowym środowisku.

Zwracam Państwa uwagę na reguły wywoływania funkcji ewaluacyjnej w waszych programach, a szczególnie na unikanie zbędnych wywołań (np. automatycznego wywoływania przy selekcji osobników, tworzeniu kopii osobnika, albo po krzyżowaniu a przed mutacją, kiedy wiadomo, że postać rozwiązania może jeszcze i tak ulec zmianie), żeby bez potrzeby nie tracić przyznanego budżetu. Aby tego uniknąć należy klasę reprezentującą osobnika wyposażyć w pole przechowujące jego wartość i aktualizować to pole tylko wtedy, kiedy rzeczywiście jest potrzebna bieżąca wartość rozwiązania a doszło wcześniej do modyfikacji genotypu.

Dokument, na który czekam, musi być podpisany – w tym celu należy napisać swoje imiona i nazwiska w miejscu tuż pod tytułem, np.: \author{Krzysztof Trojanowski i Adam Nowak}. Proszę też usunąć znak procent w linijce z tekstem % \section{Algorithm Presentation} i poniżej zamieścić krótki opis tego, jak działa wasz algorytm. Żeby w dokumencie poprawnie wyświetlały się polskie litery, w sekcji PREAMBLE na początku pliku należy dopisać dwie linijki: \usepackage{polski}\usepackage[utf8]{inputenc}.

BBOB – terminarz rozliczeń

Informuję, że wszystkie zespoły przesłały mi poprawny dokument z wynikami testowego działania środowiska BBOB.

We wtorek, 25 kwietnia odbędzie się kolokwium nr 1, tj. odbędą się publiczne prezentacje (z wykorzystaniem projektora) uzyskanych wyników, wraz z ich omówieniem i dyskusją. W związku z tym obecność wszystkich zespołów w pełnym składzie jest obowiązkowa. Im lepszy będzie wynik algorytmu strategii ewolucyjnych, tym wyższa ocena z pierwszego kolokwium. Aby zostać dopuszczonym do prezentacji, należy najpóźniej w piątek, 21.04 rano, wysłać mi mailem wersję dokumentu z wstępnymi wynikami algorytmu. Opóźnienie będzie skutkowało obniżeniem oceny. Przesłanie mi tego dokumentu zbyt późno, tj. w poniedziałek, 24.04, może skutkować niedopuszczeniem do prezentacji.

BBOB, pierwsze podejście

Ponieważ większości udało się zrealizować zadanie, a tym, którym się nie udało, brakuje niewiele, proponuję przedłużenie terminu do dziś (pon., 10.04) do godz. 20:00.

Przypominam, że aby uzyskać końcowy dokument pdf, należy (zgodnie z opisem w http://coco.lri.fr/downloads/download15.02/bbobdocexperiment.pdf):

  1. wygenerować podstawową strukturę folderów na dane wynikowe (uruchomić pyton’owski skrypt “createfolders.py”), skompilować program, uruchomić i poczekać aż zakończy działanie,
  2. uruchomić skrypt “rungeneric1.py mydata”, gdzie “mydata” to nazwa folderu, w którym znajdują się wszystkie pozostałe podfoldery z plikami wynikowymi (ten skrypt wygeneruje rysunki pdf z wykresami do folderu “ppdata”),
  3. skopiować plik latex’owy (z archiwum: http://coco.lri.fr/downloads/download15.02/bbobexp15.02.tar.gz) “template1generic.tex” (“templateBBOBarticle,tex” też może być) do folderu, w którym znajduje się folder “ppdata”, albo skopiować gdziekolwiek, po czym odpowiednio ustawić w pliku “template1generic.tex” ścieżkę dostępu do folderów z rysunkami w linijce cytowanej poniżej:
    \newcommand{\bbobdatapath}{ppdata/} % default output folder of rungeneric.py
  4. skompilować plik latex poleceniem “pdflatex template1generic”

Aby w/w kroki zakończyły się powodzeniem, należy na komputerze zainstalować:

  1. środowisko do kompilacji kodu programu
  2. środowisko python https://www.python.org/
  3. środowisko latex np. https://miktex.org/
  4. przyda się też GUI do Miktex’a, np. http://www.winedt.com/ (wersja 30-dniowa, w zupełności wystarczy), żeby nie trzeba było wywoływać latexa z linii poleceń i żeby łatwiej było edytować plik latex “template1generic”.

Miktex po instalacji dysponuje tylko minimalnym zbiorem bibliotek, ale w razie potrzeby sam pobiera z sieci te, których nie zainstalował (o ile go firewall nie powstrzyma). Gdyby nie pobierał, albo pobierał powoli, trzeba uruchomić “Maintenance|Miktex Package Manager” i wskazać inne “repository” (serwer z bibliotekami latexa do pobrania) w liście dostępnych.

Jakbym czegoś nie doszczegółowił w objaśnieniach powyżej, proszę pytać.