MLOG

Metody Losowe Optymalzacji Globalnej

Wykłady
  1. Wprowadzenie, założenia, zasady zaliczenia
  2. Algorytmy ogólnie, SA i VNS
  3. Algorytmy ES, EA, PSO i DE
  4. Uogólniona optymalizacja rojem cząstek (Generalized Self-Adapting Particle Swarm Optimization)
  5. GAPSO cz. 2 (8.05.)
  6. Problem Dynamicznej Marszrutyzacji - prezentacja algorytmu (12.05. - wtorek za piątek)
  7. Problem Dynamicznej Marszrutyzacji - dodatkowe techniki i wyniki (12.05. - wtorek za piątek)
  8. Postępy projektu - literatura (22.05.)
  9. Optymalizacja wielokryterialna
  10. Problem gilotynowego pakowania/rozkroju w 2D
  11. Podsumowanie
  12. Postępy projektu - implementacja (5.06.)
  13. Postępy projektu - raport (15.06 - poniedziałek za piątek)
Terminy
  1. 08.05. - przedstawienie zespołów i tematów (bezpośrednio po krótkim wykładzie - omówieniu kodu GAPSO)
  2. 11.05. - 5. i 6. praca domowa (do 20:00 na mailu)
  3. 22.05. - prezentacja postępów prac nad projektem (w terminie wykładu lub ustalenia indywidualne)
  4. 31.05. - ostateczny termin na zaległe prace domowe (do 20:00 na mailu) - później poprawki w ramach projektu
  5. 05.06. - prezentacja postępów prac nad projektem (w terminie wykładu lub ustalenia indywidualne)
  6. 15.06. - prezentacja finalnej wersji projektu (w terminie wykładu lub ustalenia indywidualne)
  7. 26.06. - ostateczny termin na projekt (raporty do 10:00 na mailu)
Pierwsza praca domowa - pytania i odpowiedzi
  1. 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.

  2. 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?

  3. 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.

  4. 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).

  5. 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.

  6. 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ą.