Algorytmy ewolucyjne

Język wykładowy Polski
Semestr Zimowy
Status Poddana pod głosowanie
Opiekun Piotr Wnuk-Lipiński
Liczba godzin 30 (wyk.) 30 (prac.)
Rodzaj I2.Z - zastosowania inf.
ECTS 6
Polecany dla I roku Nie
Egzamin Tak
Tagi PD (przetwarzanie danych) DS (Data Science)

Opis przedmiotu:

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