Projekt realizowany jest w zespołach dwuosobowych. Zespoły trzyosobowe dopuszcza się jedynie w drodze wyjątku.
Osoby tworzące zespół zobowiązane są do:
zgłoszenia składu osobowego zespołu
wyboru zadania projektowego
dostarczenia dokumentacji wstępnej projektu
przedstawienia cząstkowych wyników zadania w trakcie semestru
dostarczenia dokumentacji końcowej projektu
prezentacji projektu.
Do terminu 02.04.2026 zespół zobowiązany jest do wysłania wiadomości e-mail, w której zostaną zawarte następujące informacje:
Z podanej listy tematów wybierany będzie pierwszy ten, który nie koliduje z wyborem zespołów, które zgłoszenia wysłały wcześniej (przydział odbywa się według zasady: kto pierwszy, ten lepszy).
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 2026L].
Wiadomości wysłane bez taga będą traktowane jako spam.
Brak zgłoszenia zespołu oraz zadania projektowego do wskazanego powyżej terminu bez uprzedniego poinformowania o planowanym opóźnieniu rownóważny jest rezygnacji z wykonywania projektu.
Do terminu 23.04.2026 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-#1-2026l-#2-#3.pdf
Przy czym za symbol #1 należy podstawić numer zadania projektowego, a za symbole #2, #3 numery
indeksów członków zespołu (np. wae-init-5-2026l-343420-342137.pdf)
Treść dokumentacji wstępnej powinna składać się z:
opisu problemu i jego sposobu rozwiązania
planowanych eksperymentów numerycznych
wyboru technologii, w której realizowany będzie projekt.
Dokument nie powinien przekraczać 2 stron A4.
Ponadto należy mieć na uwadze, że celem dokumentacji wstępnej jest przedstawienie swojej wstępnej 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.
Do terminu 28.05.2026 zespół zobowiązany jest zaprezentować dotychczas uzyskane wyniki.
Do terminu 11.06.2026 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 (tj. git
bundle).
Pliki należy zatytułować w następujący sposób:
wae-end-#1-2026l-#2-#3.pdf
wae-end-#1-2026l-#2-#3.bundle
Symbole #1, #2, #3 należy zinterpolować tak samo jak w dokumentacji wstępnej.
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.
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 oraz zaprezentowanych wykresów.
Wszystkie przeprowadzone eksperymenty numeryczne w ramach projektu powinny dać się zreprodukować. Co oznacza, że należy dostarczyć listę ziaren PRNG użytych w eksperymentach numerycznych.
Jeśli dane uzyskane z eksperymentów numerycznych przekraczają 5 MB, to powinny być dostarczone poza repozytorium git (np. jako oddzielne archiwum via OneDrive).
Dokumentacja końcowa napisana zgodnie z szablonem Springer Nature jest w skali 0-50 punktów. Na ocenę składają się:
Tekst pracy powinien zajmować maksymalnie 8 stron A4.
Oceny końcowe prac dostarczonych między 12.06.2025-17.06.2025 przemnażane są przez mnożnik 0.7.
Prace dostarczone po 17.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.
Zakłada się, że autorzy projektu w pełni rozumieją prezentowaną pracę. Brak odpowiedzi na (często) trywialne pytania ze strony prowadzącego dotyczących projektu uznawany jest za pracę niesamodzielną i skutkuje niezaliczeniem projektu.
Jeśli jakiekolwiek fragmenty dokumentacji końcowej były generowane przy pomocy wielkich modeli językowych, to należy pracę rozszerzyć o stronę zawierającą informacje, które dokładnie części dokumentu były generowane automatycznie.
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.
| Etap | Artefakt | Ostateczne terminy |
|---|---|---|
| Zgłoszenie zespołu i wybór tematu | Mail z numerem projektu i danymi wykonawców | 02.04.2026 |
| Dokumentacja wstępna | Mail z dokumentacją wstępną | 23.04.2026 |
| Prezentacja wynikow cząstkowych | Spotkanie z prowadzącym (maksymalnie 10 minut) | 28.05.2026 |
| Dokumentacja końcowa | Mail z kodem, raportem i danymi | 11.06.2026 |
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.
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.
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.
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.
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.
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.
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.
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.
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.
Zaprojektuj algorytm ewolucyjny i zbadaj jego działanie w jednym z zadań zdefiniowanych w ramach środowiska OpenAI poświęconym kontroli.
Specyfikacja zadań znajduje się pod poniższym linkiem:
Porównaj wyniki swojego rozwiązania z dwoma wybranymi rozwiązaniami, które bazują na innych podejściach.
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ą.
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.
Zaimplementuj algorytm DES w języku C oraz dostarcz FFI co najmniej do języka Python.
Zbadaj przebieg zbieżności algorytmu na wybranych funkcjach testowych oraz porównaj czas działania względem implementacji algorytmu w języku R.
W celu redukcji liczby ewaluacji funkcji celu algorytmy ewolucyjne rozszerza się o model zastępczy (ang.
surrogate). Rozszerz algorytm DES o model zastępczy i porównaj jego działanie z klasyczną wersją algorytmu. W
tym celu użyj benchmarku BBOB z frameworku coco.
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.
Dokonaj hybrydazacji algorytmu NL-SHADE-RSP oraz DES.
Porównaj działanie algorytmu z klasyczną wersją NL-SHADE oraz DES. Użyj w tym celu benchmarku CEC 2022.
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}.
Zbadaj wpływ różnych metod uwzględniania ograniczeń w algorytmie CMA-ES. Warianty algorytmów porównaj, używając
benchmarku bbob-constrained z frameworku coco. Poza wybranymi metodami uwzględniania ograniczeń,
rozważ transformacje identycznościową.
Zmodyfikuj algorytm CMA-ES tak, aby zasięg mutacji F był strojony zgodnie z metodą MSR (ang. Median Success Rule), TPA (ang. Two Point Adaptation) oraz PPMF (ang. Previous Population Midpoint Fitness.
Algorytmy ewolucyjne często narażone są na przedwczesną zbieżność do optimum lokalnego. W celu uniknięcia takiego stanu stosuje się różne heurystyki, które pozwalają zachować odpowiedni poziom różnorodności populacji w trakcie fazy eksploracji. Jedyną z takich heurystyk jest DG (ang. Diverity-Guided).
Rozszerz wybrany przez siebie wariant ewolucji różnicowej o heurystykę DG oraz porównaj działanie zmodyfikowanego
algorytmu z jego klasyczną wersją. Użyj w tym celu benchmarku BBOB z frameworku coco.
Dysponujesz zbiorem zadań $T$, wymaganym pierszeństwem $p:\;T\times T\rightarrow N$ oraz czasem wykonania każdego zadania $l:\;T\rightarrow N$.
Twoim zadaniem jest opracowanie metody podziału zadań między $M$ grupy pracowników tak, aby zadania, na których określone jest pierszeństwo wykonania, przydzielone dwóm rożnym grupom były uporządkowane według zasady: od wcześniejszego do późniejszego. Do rozwiązania zadania wykrozystaj znane Ci algorytmy ewolucyjne.
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 powstałym po zważeniu wektora zaburzeń losowych. Rozważ różne wartości początkowe zasięgu mutacji.
Zbadaj działanie wersji standardowej algorytmu oraz wersji zmodyfikowanej, używając wybranych funkcji testowych.
Zbadaj działanie algorytmu CMA-ES, w którym macierz kowariancji jest normalizowana w sposób podobny do normalizacji stosowanej w algorytime L-BFGS oraz wariant, w którym macierz kowariancji jest macierzą diagonalną.
Zbadaj działanie wersji standardowej algorytmu oraz wersji zmodyfikowanej, używając wybranych funkcji testowych.
Zbadaj wpływ różnych metod uwzględniania ograniczeń w algorytmie CMA-ES. Warianty algorytmów porównaj, używając
benchmarku bbob-constrained z frameworku coco. Poza wybranymi metodami uwzględniania ograniczeń,
rozważ rzut w kierunku wektora wartości średnich.
Zoptymalizuj działanie dostarczonego symulatora układu VSI (ang. voltage-source inverter) w przestrzeni stanów. Użyj do tego celu strategii ewolucyjnych oraz wybranego wariantu ewolucji różnicowej.
Zoptymalizuj działanie dostarczonego symulatora układu VSI (ang. voltage-source inverter) w przestrzeni stanów. Użyj do tego celu algorytmu genetycznego oraz wybranego wariantu ewolucji różnicowej.
Propozycja tematu własna.