Algorytmy ewolucyjne to część inteligencji obliczeniowej zajmująca się
heurystycznym rozwiązywaniem problemow optymalizacji.
Algorytmy ewolucyjne znajdują zastosowanie w rozwiązywaniu problemow
optymalizacji, dla ktorych nie można użyć algorytmow 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 problemow optymalizacji są z jednej strony dobrze
znane problemy NP-zupełne (dla ktorych 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 sposob matematyczny (m.in. takie w ktorych nieznany jest
analityczny wzor 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ą systemow ekspertowych, systemow klasyfikacji i rozpoznawania obiektow
czy systemow wspomagania decyzji. Popularne jest stosowanie algorytmow
ewolucyjnych do analizy obrazow, w tym zdjęć satelitarnych i obrazow
medycznych, do analizy danych ekonomicznych i finansowych, zwłaszcza danych
wysokiej i ultra wysokiej częstotliwości, do konstrukcji systemow kontroli
lotow, do konstrukcji sztucznej inteligencji w grach, itp.
Pierwsza część wykładu dotyczyć będzie podstawowych algorytmow ewolucyjnych do
rozwiązywania klasycznego problemu optymalizacji, ich konstrukcji i adaptacji
do konkretnych problemow praktycznych i teoretycznych oraz implementacji.
Druga część wykładu dotyczyć będzie nowoczesnych algorytmow ewolucyjnych
przeznaczonych do rozwiązywania trudniejszych problemow, 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 rownocześnie uczęszczać na kurs z nowoczesnych językow przetwarzania
danych).
Program wykładu:
1\. Wprowadzenie do algorytmow ewolucyjnych.
2\. Podstawowe algorytmy ewolucyjne: algorytmy genetyczne, strategie
ewolucyjne, programowanie genetyczne, programowanie ewolucyjne.
3\. Zaawansowane algorytmy ewolucyjne odkrywające wiedzę o problemie
optymalizacji.
4\. Rownoległe i rozproszone algorytmy ewolucyjne.
5\. Algorytmy optymalizacji wielomodalnej.
6\. Algorytmy optymalizacji wielokryterialnej.
7\. Algorytmy optymalizacji dynamicznej.
8\. Wybrane zastosowania algorytmow ewolucyjnych.
UWAGA: Wykład będzie znaczną modyfikacją wykładu z lat poprzednich.
środa 14.00 - 15.00, czwartek 13.00 - 14.00, piątek 12.00 - 14.00, możliwe też inne terminy, konsultacje online (domyślnie) lub offline (po ustaleniu emailem), proszę o wcześniejszy kontakt emailem lub zarezerwowanie terminu przez kalendarz Google