Home Teaching Contact

Wstęp do algorytmów ewolucyjnych [2025L]

  1. Informacje o projekcie
  2. Zadania projektowe

Informacje o projekcie

Zasady ogólne


Projekt realizowany jest w zespołach dwuosobowych.

Osoby tworzące zespół zobowiązane są do:

  1. zgłoszenia składu osobowego zespołu

  2. wyboru jednego z zadań projektowych

  3. dostarczenia dokumentacji wstępnej projektu

  4. przedstawienia czastkowych wynikow zadania w trakcie semestru

  5. dostarczenia dokumentacji końcowej projektu

  6. krótkiej prezentacji projektu.

Zgłoszenie zespołu i wybór zadania


Do terminu 31.03.2025 zespół zobowiązany jest do wysłania wiadomości e-mail, w której zostaną zawarte następujące informacje:

Zgłoszenia należy wysyłać na adres:

eryk.warchulski(ʕ •ᴥ• ʔ)pw.edu.pl

Temat każdej wiadomości, która dotyczy zagadnień związanych z przedmiotem, należy rozszerzyć o tag [WAE 2025L]. Wiadomości wysłane bez taga będą traktowane jako spam.

Brak zgłoszenia zespołu oraz zadnia projektowego do wskazanego powyżej terminu rownoważny jest rezygnacji z wykonywania projektu.

Dokumentacja wstępna


Do terminu 14.04.2025 zespół zobowiązany jest przekazać dokumentację wstępną w postaci pliku pdf. Plik dokumentacji należy zatytułować w nastepujący sposób:

wae-init-@-2025L.pdf

Przy czym za symbol @ należy podstawić numer zadania projektowego.

Treść dokumentacji wstępnej powinna składać się z:

Dokument nie powinien przekraczać 2 stron A4.

Ponadto należy mieć na uwadze, że celem dokumentacji wstępnej jest przedstawienie swojej pierwszej wizji dotyczącej realizowanego projektu, która pozwoli prowadzącemu ocenić czy zespół poprawnie zrozumiał dany temat i wybrał odpowiednie narzędzia. Ewolucja wizji (nawet skrajna) w trakcie realizacji jest jak najbardziej akceptowalna.

Dokumentacja wstępna oceniana jest binarnie. Niedostarczenie dokumentacji wstępnej w powyżej wskazanym terminie rownóważny jest rezygnacji z realizacji projektu.

Dokumentacja końcowa


Do terminu 26.05.2025 zespół zobowiązany jest zaprezentować dotychczas uzyskane wyniki.

Do terminu 16.06.2025 zespół zobowiązany jest dostarczyć dokumentację końcową projektu w formie pliku PDF wraz z kodem źródłowym w postaci archiwum repozytorium git z pełną historią zmian.

Pliki należy zatytułować w następujący sposób:


    wae-end-@-2025L.pdf

    wae-end-@-2025L.tar.gz

Przy czym za symbol @ należy podstawić numer zadania projektowego.

Dokumentacja końcowa, w której powinnien znaleźć się szczegółowy opis: problemu, zastosowanych algorytmów, przeprowadzonych eksperymentów oraz ich wyników. Ponadto jeśli między dokumentacja wstępną, a końcowa występują znaczące rożnice, to należy je opisać w stosownej sekcji dokumentacji końcowej.

Kodem zródłowy

Należy zadbać o to, aby dostarczony kod źródłowy był jak najbardziej przenośny. Koniecznie musi dać się kompilować/interpretować pod systemem Linux. Ze względu na stosowanie zależności zewnętrznych w kodzie warto rozważyć konteneryzacje (np. via podman).

Ponadto zawarty powinien zostać skrypt umożliwiający odtworzenie wszystkich przeprowadzonych eksperymentów.

Dane uzyskane w ramach eksperymentów numerycznych wraz z ziarnami generatorów liczb pseudolosowych

Wszystkie przeprowadzone eksperymenty numeryczne w ramach projektu powinny dać się zreprodukować. Poza danymi i ziarnami mile widziane byłoby dołączenie skryptu, który pozwoliłby odtworzyć przeprowadzone eksperymenty.

Dokumentacja końcowa

Dokumentacja końcowa napisana zgodnie z szablonem Springer Nature jest w skali 0-50 punktów. Na ocenę składają się:

Oceny końcowe prac dostarczonych między 17.06.2025-23.06.2025 przemnażane są przez mnożnik 0.9.

Prace dostarczone po 23.06.2025 nie będą oceniane.


Zespoły, które złożą wymagane pliki w terminie, zobowiązane są do krótkiej prezentacji (niekoniecznie multimedialnej) swoich projektów (maksymalnie 8-10 minut). Po odbyciu prezentacji zespół zostanie poinformowany o proponowanej ocenie. Termin prezentacji proponowany jest przez zespół i nie może przekroczyć tygodnia od momentu złożenia projektu.


W przypadku większości tematów projektowych czytelność kodu zródłowego nie podlega ocenie, o ile dostarczony kod nie będzie wybitnie nieczytelny. Zalecane jest, aby kod był sformatowany zgodnie tylko z jednym stylem (np. zgodnie z Google Style Guides).

Projekt można realizować w dowolnym języku programowania z wyłączeniem języków ezoterycznych.

Podsumowanie


Etap Artefakt Ostateczne terminy
Zgłoszenie zespołu i wybór tematu Mail z numerem projektu i danymi wykonawców 31.03.2025
Dokumentacja wstępna Mail z raportem wstępnym 14.04.2025
Prezentacja wynikow czastkowych Spotkanie z prowadzacym projektu 26.05.2025
Dokumentacja końcowa Mail z kodem, raportem i danymi 16.06.2025

Zadania projektowe


Poniżej znajdują się zadania projektowe. Należy wybrać jedno z nich i zgłosić wybrany temat przy pomocy wiadomości e-mail.

Zadania projektowe, które są już zajęte, oznaczone są przekreśleniem.

Jeśli realizują Państwo projekt uczelniany lub Państwa praca dyplomowa dotyczy zagadnień poruszanych na zajęciach, to dopuszcza się możliwość zgłoszenia własnego tematu projektowego.

Zadanie 1.

Zbadaj wpływ zastosowania różnych generatorów liczb losowych na działanie wybranego algorytmu ewolucyjnego. W swoim badaniu uwzględnij również generatory z klasy generatorów quasi-losowych. Wykorzystaj wybrane funkcje testowe.

Zadanie 2.

Zbadaj działanie dowolnego wariantu ewolucji różnicowej oraz dowolnej strategii ewolucyjnej w warunkach niepewności. W tym celu opracuj zestaw funkcji testowych, które będą zawierały co najmniej dwa różne źródła niepewności.

Zadanie 3.

W wybranym przez siebie wariancie ewolucji różnicowej opracuj mechanizm, który zwiększałby róznorodność populacji poprzez zastępowanie osobników z najniższym przystosowaniem. Rozważ różne podejścia generowania nowych osobników w populacji.

Zmodyfikowany algorytm porównaj z klasyczną wersją, używając benchmarku BBOB z
frameworku coco.

Zadanie 4.

Porównaj działanie algorytmu MO-CMA-ES (Multi-Objective Covariance Matrix Adaptation Evolution Strategy) z algorytmem EGO (Efficient Global Optimization). W tym celu skorzystaj z benchmarku BBOB-BIOBJ z frameworku coco.

Zadanie 5.

Kontrola przystosowania punktu środkowego populacji jest sposobem na poprawienie jakości działania algorytmów ewolucyjnych. Na wybranym przez siebie algorytmie ewolucyjnym zbadaj wpływ sposobu zdefiniowania punktu środkowego na działanie tego algorytmu.

Poza statystykami jak średnia arytmetyczna lub mediana zbadaj różne warianty średniej ważonej oraz statystyki odporne. Wykorzystaj wybrane funkcje testowe.

Zadanie 6.

Rozszerz algorytm MA-ES o heurystykę IPOP i zbadaj działanie algorytmu.

Porównaj zmodyfikowany algorytm z algorytmem CMA-ES. W tym celu skorzystaj z benchmarku BBOB z frameworku coco.

Zadanie 7.

Na wybranym algorytmie ewolucyjnym porównaj działanie dwóch technik zwiększania rożnorodności w populacji: metodę clearingu oraz crowdingu. W tym celu wykorzystaj wybrane przez siebie funkcje testowe.

Zadanie 8.

W algorytmie CMA-ES wektor pσ, reprezentujący ścieżkę ewolucyjną, standardowo inicjalizowany jest wektorem zerowym. Zmodyfikuj algorytm tak, aby wektor ten był inicjalizowany wektorem losowym.

Zbadaj działanie wersji standardowej algorytmu oraz wersji zmodyfikowanej, używając wybranych funkcji testowych. W badaniu wykorzystaj co najmniej dwa róże generatory liczb losowych.

Zadanie 9.

Zmodyfikuj algorytm ewolucji różnicowej w wariancie rand/1/bin tak, aby zasięg mutacji F był strojony zgodnie z metodą MSR (ang. Median Success Rule) oraz PSR (ang. Population Success Rule).

Zbadaj działanie zmodyfikowanych wersji algorytmu, używając benchmarku CEC 2017, dla wymiarowości D ∈ {10, 30}.

Zadanie 10.

Opracuj i przeprowadź eksperyment, w którym porównasz dowolny wariant ewolucji różnicowej z dowolnym wariantem strategii ewolucyjnej w ramach zadania uczenia sieci neuronowej. Ponadto porównaj działanie metod ewolucyjnych z wybraną metodą gradientową

Zadanie 11.

Zmodyfikuj operator selekcji w algorytmie CMA-ES tak, aby działał zgodnie z mechanizmem wymarcia (ang. extinction). Porównaj działanie zmodyfikowanej i klasycznej wersji algorytmu, używając wybranych funkcji testowych.

Zadanie 12.

Zaimplementuj algorytm CMA-ES w języku Nim.

Zbadaj przebieg zbieżności algorytmu na wybranych funkcjach testowych oraz porównaj czas działania względem implementacji algorytmu w języku Python.

Zadanie 13.

W celu redukcji liczby ewaluacji funkcji celu algorytmy ewolucyjne rozszerza się o model zastępczy (ang. surrogate). Rozszerz algorytm CMA-ES o model zastępczy i porównaj jego działanie z klasyczną wersją algorytmu. W tym celu użyj benchmarku BBOB z frameworku coco.

Zadanie 14.

Rozszerz algorytm MA-ES o heurystykę IPOP i zbadaj działanie algorytmu.

Porównaj zmodyfikowany algorytm z algorytmem CMA-ES. W tym celu skorzystaj z benchmarku BBOB z frameworku coco.

Zadanie 15.

Dokonaj hybrydazacji algorytmu NL-SHADE-RSP oraz CMA-ES.

Porównaj działanie algorytmu z klasyczną wersją NL-SHADE oraz CMA-ES. Użyj w tym celu benchmarku CEC 2022.

Zadanie 16.

Temat własny.