MLOG
Metody Losowe Optymalzacji Globalnej
Wykłady
- Wprowadzenie, założenia, zasady zaliczenia
- Algorytmy ogólnie, SA i VNS
- Algorytmy ES, EA, PSO i DE
-
Uogólniona optymalizacja rojem cząstek (Generalized Self-Adapting Particle Swarm Optimization)
- Repozytorium
- M.Okulewicz, (2016), Finding an Optimal Team, Position Papers of the 2016 Federated Conference on Computer Science and Information Systems
- M.Uliński, A.Żychowski, M.Okulewicz, M.Zaborski, H.Kordulewski, (2018), Generalized Self-Adapting Particle Swarm Optimization algorithm, Parallel Problem Solving from Nature – PPSN XV. PPSN 2018. Lecture Notes in Computer Science, vol 11101, pp 29-40, DOI: 10.1007/978-3-319-99253-2_3, Springer, Cham
- M.Zaborski, M.Okulewicz, J.Mańdziuk (2019) Generalized Self-Adapting Particle Swarm Optimization algorithm with model-based optimization enhancements In Proceedings of 2nd PPRAI Conference (pp. 380–383)
- M.Zaborski, M.Okulewicz, J.Mańdziuk, (w recenzji) Analysis of statistical model-based optimization enhancements in Generalized Self-Adapting Particle Swarm Optimization framework
- M.Okulewicz, M.Zaborski, J.Mańdziuk, (w przygotowaniu) Generalized Self-Adapting Particle Swarm Optimization algorithm with archive of samples
- GAPSO cz. 2 (8.05.)
- Problem Dynamicznej Marszrutyzacji - prezentacja algorytmu (12.05. - wtorek za piątek)
- Problem Dynamicznej Marszrutyzacji - dodatkowe techniki i wyniki (12.05. - wtorek za piątek)
- Postępy projektu - literatura (22.05.)
- Optymalizacja wielokryterialna
- Problem gilotynowego pakowania/rozkroju w 2D
- Podsumowanie
- Postępy projektu - implementacja (5.06.)
- Postępy projektu - raport (15.06 - poniedziałek za piątek)
Terminy
- 08.05. - przedstawienie zespołów i tematów (bezpośrednio po krótkim wykładzie - omówieniu kodu GAPSO)
- 11.05. - 5. i 6. praca domowa (do 20:00 na mailu)
- 22.05. - prezentacja postępów prac nad projektem (w terminie wykładu lub ustalenia indywidualne)
- 31.05. - ostateczny termin na zaległe prace domowe (do 20:00 na mailu) - później poprawki w ramach projektu
- 05.06. - prezentacja postępów prac nad projektem (w terminie wykładu lub ustalenia indywidualne)
- 15.06. - prezentacja finalnej wersji projektu (w terminie wykładu lub ustalenia indywidualne)
- 26.06. - ostateczny termin na projekt (raporty do 10:00 na mailu)
Pierwsza praca domowa - pytania i odpowiedzi
-
To co mam Panu dostarczyć to raport w PDF z wykresami wygenerowanymi za pomocą kodu i opis dla tych wykresów?
Dokładnie tak, głównym wyzwaniem tego zadania jest trochę powalczyć z rysowaniem wykresów,tak żeby poszukać jak najlepszej czytelności dla pokazania działania algorytmu,te które prezentuję w tutorialu są taką opcją minimum - pewnie można lepiej.
-
Rozumiem, że kod do wykonywania obliczeń, jak i kod do rysowania wykresów mogę napisać sam, ale Pan już na bitbucket udostępnia kod, który wykonuje dane obliczenia i rysuje wykresy, ale w C# i R?
Tak. Ponieważ działamy w trybie zdalnym i jest to pierwsze zadanie,to chodzi przede wszystkim o to, żeby nikt się nie zgubił - no bo jaki miałaby sens reszta semestru?
-
Jako funkcje "ciągłe R^n -> R" przyjąć w tym zadaniu funkcje Rastrigina i Rosenbrocka?
Tak. Są to przykłady najprostszej funkcji wielomodalnej (Rastrigina) i najprostszej nietrywialnej funkcji jednomodalnej (Rosenbrock), od których zwykle zaczyna się zabawę z algorytmami optymalizacyjnymi. W razie jakichkolwiek kłopotów można też dorzucić funkcję kwadratową - jeżeli coś nie działa na funkcji kwadratowej - to znaczy że gdzieś jest błąd.
-
W linku podanym przez Pana - https://bitbucket.org/pl-edu-pw-mini-optimization/tutorials/wiki/Introduction%20to%20algorithm%20diagnostics widzę odnośniki do implementacji Grid Search oraz Monte Carlo. Zaś Hill Climbing jest tutaj - https://bitbucket.org/pl-edu-pw-mini-optimization/tutorials/src/master/dotnet/algorithms/Core/HillClimbingAlgorithm.cs. Czy można go również wykorzystać?
Oczywiście. Po to jest. Natomiast zupełnie się nie zdziwię jeżeli zaproponują Państwo bardziej finezyjną wersję (co z resztą będzie przedmiotem kolejnego zadania).
-
Jeżeli dobrze rozumiem, póki co te zadanie wygląda w najprostszej wersji na uruchomienie Pańskiego kodu i spróbowanie zrozumienia go. W trudniejszej wersji napisanie kodu samemu na podstawie, między innymi, Pana wykładów, które znajdują się tutaj: http://www.mini.pw.edu.pl/~okulewiczm/downloads/zmog/ZMOG_02_Wprowadzenie.pdf, tak?
Dokładnie.
-
Z ciekawości: czy część tego przedmiotu obieralnego zawiera się w przedmiocie wykładanym na studiach doktoranckich/szkole doktoranckiej?
W jakimś sensie to jest ten sam przedmiot, tylko z różnie rozłożonymi akcentami. Oba te przedmioty można streścić jako: wszystko co w danym momencie wiem o optymalizacji i uwazam, że warto się tym podzielić w ramach godzin, które są.