Wykład z algorytmów ewolucyjnych
Aktualności:
NEW MINIREFERATY:
Możemy zrobić dodatkowe (nieobowiązkowe) spotkanie z prezentacjami minireferatów w czasie sesji. Dokładny termin ustalmy na ostatnim wykładzie.
NEW Zasady zaliczenia:
Ze względu na kalendarz tegorocznych zajęć, proponuję lekką reorganizację list zadań: Lista zadań nr 6 jest poza pierwszym zadaniem nieobowiązkowa (bonusowa). W związku z tym, na listach zadań nr 1 - 6 obowiązkowych punktów do zdobycia jest łącznie tylko 65, zamiast zakładanych wstępnie 90, więc punkty za te zadania zostaną przemnożone przez 90/65.
NEW Informacje organizacyjne:
Proponuje dodatkowe terminy, w których można oddawać zadania i projekty: wtorek 4 lutego, godzina 12.00, pokój 203; czwartek 6 lutego, godzina 12.00, pokój 203; poniedziałek 10 lutego, godzina 12.00, pokój 203, a także online w terminach dostępnych w moim kalendarzu Google. Proszę o przesłanie swoich projektów co najmniej 24h przed przyjściem i pokazaniem go. Będę też wdzięczny za informacje emailem o chęci przyjścia (pozwoli to uniknąć kolejek). Można też umawiać się emailem na inne terminy.
NEW PRZYPOMNIENIE:
Przypominam, że warunkiem otrzymania oceny bardzo dobrej z zaliczenia jest przygotowanie i wygłoszenie minireferatu. Na stronie wykładu umieściłem parę propozycji, listę będę starał się rozszerzać. Osoby zainteresowane proszę o kontakt emailem.
NEW Egzamin:
Egzamin odbędzie się w dwóch terminach (każdy student może przyjść w jednym, dowolnie przez siebie wybranym, terminie - nie jest konieczne wcześniejsze powiadamianie prowadzącego o wyborze terminu): w środę 5 lutego 2025 o 10.30 w sali 141 i w czwartek 13 lutego 2025 o 10.30 w sali 141. Osoby, którym nie odpowiada (z poważnych przyczyn) żaden z podanych terminów proszę o kontakt emailem. Zapraszam!
NEW Egzamin poprawkowy:
Egzamin poprawkowy odbędzie się w środę 19 lutego 2025 o godzinie 10.30 w sali 237. Bardzo proszę osoby zainteresowane egzaminem poprawkowym o wcześniejszy kontakt emailem. Zapraszam!
Punktacja:
Aktualna punktacja jest dostępna w SKOSie.
Listy zadań:
Lista zadań nr 1 PDF (termin 23/25 października 2024, ale za oddanie co najmniej 1 zadania do 18 października 2024 będą 2 punkty bonusowe)
Skrypt IPythona do listy zadań nr 1 HTML IPYNB
Lista zadań nr 1 - dane ZIP (hasło do pliku to tytuł naszego wykładu pisany małymi literami bez spacji z literami l zamienionymi na wykrzykniki)
Lista zadań nr 2 PDF (termin 13/15 listopada 2024, ale za oddanie co najmniej 2 zadań do 8 listopada 2024 będą 2 punkty bonusowe)
Skrypt IPythona do listy zadań nr 2 HTML IPYNB
Parę słów o QAP i Q3AP do listy zadań nr 2 PDF
Lista zadań nr 3 PDF (termin 27/29 listopada 2024)
Lista zadań nr 4 PDF (termin 11/13 grudnia 2024, ale za oddanie co najmniej 2 zadań do 6 grudnia 2024 będą 2 punkty bonusowe)
Skrypt IPythona do listy zadań nr 4 HTML IPYNB
Lista zadań nr 5 PDF (termin 8/10 stycznia 2025, ale za oddanie co najmniej 1 zadania do 20 grudnia 2024 będą 2 punkty bonusowe)
Skrypt IPythona do listy zadań nr 5 IPYNB
Lista zadań nr 6 PDF (bezterminowa - można oddawać do końca semestru, na zajęciach, konsultacjach lub w indywidualnie ustalonym terminie)
Prezentacje z wykładów:
Wprowadzenie do algorytmów ewolucyjnych PDF
Zarys algorytmu ewolucyjnego PDF
Strategie ewolucyjne - ES(m, l, r, k) PDF
Strategie ewolucyjne - CMA-ES PDF
Estimation of Distribution Algorithms - część 1 PDF
Estimation of Distribution Algorithms - część 2 PDF
Optymalizacja wielokryterialna PDF
Ewolucyjna optymalizacja dynamicznych funkcji celu PDF
Ewolucyjna optymalizacja dynamicznych funkcji celu PDF
Projekt:
Materiały dodatkowe: notebook dot. optymalizacji portfela papierów wartościowych HTML IPYNB
parę dodatkowych tematów projektów PDF
Propozycje minireferatów:
Wstępnie proponuję poniższe tematy minireferatów. Osoby zainteresowane proszę o kontakt emailem. Minireferat powinien trwać ok. 15 minut i mniej lub bardziej pobieżnie (w zależności od tematu i możliwości streszczenia go w 15 minut) przedstawiać wybrane zagadnienie. Termin prezentacji do ustalenia indywidualnie. W przypadku większego zainteresowania może warto będzie połączyć minireferaty w jedno większe spotkanie.
- Quasi Random Numbers i Low Discrepancy Sequences
- Local Optima Networks (na przykład PDF1, PDF2, PDF3 )
- Rozkłady Mallowsa - rozkłady prawdopodobieństwa na przestrzeniach permutacji (na przykład PDF1, PDF2 )
- NeuroEvolution of Augmenting Topologies (NEAT)
- inne propozycje też mile widziane - po uzgodnieniu ze mną
Opis wykładu:
Algorytmy ewolucyjne to część inteligencji obliczeniowej zajmująca się heurystycznym rozwiązywaniem problemów optymalizacji.
Algorytmy ewolucyjne znajdują zastosowanie w rozwiązywaniu problemów optymalizacji, dla których nie można użyć algorytmów tradycyjnych (m.in. kiedy takie algorytmy nie istnieją lub są zbyt kosztowne obliczeniowo, kiedy problem optymalizacji nie może być zdefiniowany matematycznie, kiedy wystarczające są rozwiązania przybliżone lub dostatecznie dobre z praktycznego punktu widzenia).
Przykładami rozważanych problemów optymalizacji są z jednej strony dobrze znane problemy NP-zupełne (dla których algorytmy ewolucyjne starają się dostarczyć rozwiązania dostatecznie dobre z punktu widzenia praktycznych zastosowań), a z drugiej strony rozmaite problemy praktyczne trudne do sprecyzowania w sposób matematyczny (m.in. takie w których nieznany jest analityczny wzór funkcji celu, ale znana jest metoda liczenia jej wartości, na przykład przez wykonanie pewnych symulacji).
Praktyczne problemy optymalizacji rozwiązywane algorytmami ewolucyjnymi dotyczą systemów ekspertowych, systemów klasyfikacji i rozpoznawania obiektów czy systemów wspomagania decyzji. Popularne jest stosowanie algorytmów ewolucyjnych do analizy obrazów, w tym zdjęć satelitarnych i obrazów medycznych, do analizy danych ekonomicznych i finansowych, zwłaszcza danych wysokiej i ultra wysokiej częstotliwości, do konstrukcji systemów kontroli lotów, do konstrukcji sztucznej inteligencji w grach, itp.
Pierwsza część wykładu dotyczyć będzie podstawowych algorytmów ewolucyjnych do rozwiązywania klasycznego problemu optymalizacji, ich konstrukcji i adaptacji do konkretnych problemów praktycznych i teoretycznych oraz implementacji. Druga część wykładu dotyczyć będzie nowoczesnych algorytmów ewolucyjnych przeznaczonych do rozwiązywania trudniejszych problemów, takich jak optymalizacja wielomodalna, optymalizacja wielokryterialna i optymalizacja dynamiczna.
Wykład wymagać będzie podstawowej wiedzy z zakresu rachunku prawdopodobieństwa i statystyki (na przykład zaliczenie wykładu RPiS). Podczas pracowni wymagana będzie umiejętność programowania w klasycznych językach programowania (C/C++, Java, Python), a przydatna może okazać się też umiejętność programowania w popularnych narzędziach używanych do analizy danych, takich jak Matlab czy Octave (narzędzi tych będzie można nauczyć się samemu w pierwszych tygodniach zajęć lub równocześnie uczęszczać na kurs z nowoczesnych języków przetwarzania danych).
Program wykładu:
1. Wprowadzenie do algorytmów ewolucyjnych.
2. Podstawowe algorytmy ewolucyjne: algorytmy genetyczne, strategie ewolucyjne, programowanie genetyczne, programowanie ewolucyjne.
3. Zaawansowane algorytmy ewolucyjne odkrywające wiedzę o problemie optymalizacji.
4. Równoległe i rozproszone algorytmy ewolucyjne.
5. Algorytmy optymalizacji wielomodalnej.
6. Algorytmy optymalizacji wielokryterialnej.
7. Algorytmy optymalizacji dynamicznej.
8. Wybrane zastosowania algorytmów ewolucyjnych.