Algorytmy ewolucyjne wprowadzenie Piotr Lipiński lipinski@ii.uni.wroc.pl Piotr Lipiński Algorytmy ewolucyjne p.1/16
Cel wykładu zapoznanie studentów z algorytmami ewolucyjnymi, przede wszystkim nowoczesnymi algorytmami opracowanymi w ostatnich latach i stosowanymi w praktyce, przedstawienie studentom metod wyboru, konstrukcji i adaptacji algorytmów ewolucyjnych do konkretnych problemów praktycznych i teoretycznych, omówienie zastosowań algorytmów ewolucyjnych rozwijanych obecnie w ośrodkach naukowych na świecie, implementacja poznanych algorytmów ewolucyjnych przy wykorzystaniu dostępnych pakietów oprogramowania Piotr Lipiński Algorytmy ewolucyjne p.2/16
Zyski z wykładu Po ukończeniu zajęć student powinien rozumieć i znać najważniejsze algorytmy ewolucyjne, potrafić zrozumieć także inne algorytmy ewolucyjne, które będzie mógł znaleźć w literaturze zarówno teraz jak i w przyszłości, potrafić wybrać algorytmy ewolucyjne odpowiednie dla konkretnych problemów praktycznych i teoretycznych, potrafić konstruować nowe sposoby reprezentacji danych oraz nowe operatory ewolucyjne odpowiednie dla konkretnych problemów praktycznych i teoretycznych, potrafić implementować algorytmy ewolucyjne przy wykorzystaniu dostępnych pakietów oprogramowania Piotr Lipiński Algorytmy ewolucyjne p.3/16
Program wykładu Zagadnienie optymalizacji (pojęcia wstępne, przykłady problemów, klasyczne modele testowe). Osobnik, populacja, ewolucja (terminologia algorytmów ewolucyjnych, opis struktur danych, schemat algorytmu ewolucyjnego). Interpretacja zagadnienia optymalizacji. Reprezentacja danych dla zagadnień dyskretnych, ciągłych i kombinatorycznych. Reprezentacja ciagów binarnych, reprezentacja liczb całkowitych i rzeczywistych, reprezentacja zbiorów, reprezentacja kombinacji i permutacji. Klasyczne rodzaje algorytmów ewolucyjnych. Algorytmy genetyczne. Strategie ewolucyjne. Programowanie genetyczne. Programowanie ewolucyjne. Operatory ewolucyjne. Klasyczne operatory ewolucyjne (reprodukcja, rekombinacja, mutacja, selekcja). Metody analizy problemu w celu wyboru, konstrukcji i adaptacji operatorów ewolucyjnych. Projektowanie operatorów ewolucyjnych przeznaczonych do rozwiązywania konkretnego problemu. Techniki optymalizacji algorytmów ewolucyjnych (populacja początkowa, zbieżność populacji, kryterium zakończenia). Metody doboru parametrów algorytmu. Tendencje w rozwoju algorytmów ewolucyjnych. Nowoczesne algorytmy ewolucyjne (PBIL, CGA, ECGA). Algorytmy hybrydowe. Równolegle algorytmy ewolucyjne. Wybrane zastosowania algorytmów ewolucyjnych. Piotr Lipiński Algorytmy ewolucyjne p.4/16
Literatura D. E. Goldberg, Algorytmy genetyczne i ich zastosowania, WNT, 1995. Z. Michalewicz, Algorytmy ewolucyjne + struktury danych = programy ewolucyjne, WNT, 1996. J. Arabas, Wykłady z algorytmów ewolucyjnych, WNT, 2001. D. E. Goldberg, The Design of Innovation: Lessons from and for Competent Genetic Algorithms, Kluwer Academic Publishers, 2002. wybrane artykuły z czasopism naukowych i konferencji. Piotr Lipiński Algorytmy ewolucyjne p.5/16
Zasady zaliczenia zajęć aktywne uczestniczenie w zajęciach dwa projekty do wykonania projekty można wykonywać w dwu- lub trzyosobowych grupach (po uprzednim zgłoszeniu), projekty należy przesłać emailem oraz zaprezentować na zajęciach w wyznaczonym terminie, na ocenę dostateczną jest wymagany jeden projekt, na ocenę dobrą i bardzo dobrą są wymagane dwa projekty, projekty będą krótkie, około 30h pracy jeden referat do przedstawienia na zajęciach (około 15 minut) referat jest wymagany na ocenę bardzo dobrą dwa testy sprawdzające wiedzę (około 15 minut) egzamin inne formy aktywności będą bardzo mile widziane Piotr Lipiński Algorytmy ewolucyjne p.6/16
Algorytmy ewolucyjne Jak znaleźć maksimum funkcji F(x) = 3x 2 2x + 1? Odpowiedź: Metody analityczne. Jak znaleźć maksimum funkcji F(x 1,x 2 ) = 3x 17 1 x 15 2 2x 13 1 x 11 2 + x 7 1 + x 2 + 1? Odpowiedź: Metody analityczne. Piotr Lipiński Algorytmy ewolucyjne p.7/16
Algorytmy ewolucyjne Jak znaleźć maksimum funkcji Odpowiedź: Metody analityczne. F(x 1,x 2 ) = cos(x2 1 + x 2 2) x 2 1 + x 2 2 + 1? A jeśli w poprzednim przykładzie interesuje nas jedynie maksimum wśród punktów całkowitych? Odpowiedź: Same metody analityczne nie wystarcza. Należy troche pomyśleć. 1. Można znaleźc maksimum rzeczywiste, a nastepnie najbliższy punkt całkowity i wierzyć, że jest to maksimum wśród punktów całkowitych. 2. Można wyznaczyć przedziały monotoniczności funkcji i porównać wartości na ich krańcach całkowitych wyznaczajac maksimum wśród punktów całkowitych. 3. Można zauważyć coś, co uprości zadanie. Piotr Lipiński Algorytmy ewolucyjne p.8/16
Algorytmy ewolucyjne A jeśli funkcji nie można zapisać wzorem? Np: F(x) to wydajność pewnej maszyny uruchomionej z walcem o długosci x. Niestety, wzór funkcji jest nieznany. Aby obliczyć wartośc funkcji należy uruchomić maszynę i policzyć jej wydajność. Np. F(x) to funkcja obliczeniowa, np. skompilowana funkcja napisana w języku C, której kod jest nieznany. Poprzednie zadanie można zdyskretyzować i rozpatrywać tylko dla niektórych x (np. w sytuacji kiedy dysponujemy jedynie walcami o długościach całkowitych). Piotr Lipiński Algorytmy ewolucyjne p.9/16
Algorytmy ewolucyjne Problemy kombinatoryczne, np. problem komiwojażera, problem szeregowania zadań, inne problemy NP-zupełne. Drzewa decyzyjne: funkcja oceny drzewa, czyli funkcja, której argumentem jest drzewo, a wartością jest liczba rzeczywista określająca "dobroć"drzewa. Należy znaleźć drzewo optymalne, czyli o największej wartości funkcji oceny. Zagadnienia tego typu prowadzą do metod poszukiwań!!! Piotr Lipiński Algorytmy ewolucyjne p.10/16
Wprowadzenie Historia obliczeń ewolucyjnych sięga lat 1970. Algorytmy ewolucyjne były rozwijane niezależnie w wielu ośrodkach naukowych na świecie. programowanie ewolucyjne Laurence Fogel (USA), strategie ewolucyjne Ingo Rechenberg, Hans-Paul Schwefel (Niemcy), algorytmy genetyczne John Holland (USA), później David Goldberg (USA), Zbigniew Michalewicz (USA, Polska, Nowa Zelandia), Marc Schoenauer (Francja), programowanie genetyczne John Koza (USA), Druga połowa lat dziewięćdziesiątych to rozkwit zaawansowanych technik algorytmów ewolucyjnych, m.in. Competent Genetic Algorithms. Piotr Lipiński Algorytmy ewolucyjne p.11/16
Wprowadzenie Największe konferencje poświęcone algorytmom ewolucyjnym (wg. J. Arabas, "Wykłady z algorytmów ewolucyjnych", WNT 2001): International Conference on Genetic Algorithms, ICGA Foundations of Genetic Algorithms, FOGA Parallel Problem Solving from Nature, PPSN IEEE Conference on Evolutionary Computation, ICEC IEEE Conference on Genetic Algorithms in Engineering Systems and Industrial Aplications, GALESIA Annual Conference on Evolutionary Programming, EP International Conference on Genetic Programming, GP Congress of Evolutionary Computation, CEC Genetic and Evolutionary Computation, GECCO W Europie organizowana jest, głównie przez środowisko francuskie, konferencja Artificial Evolution (fr. Evolution Artificielle). Piotr Lipiński Algorytmy ewolucyjne p.12/16
Wprowadzenie Najważniejsze czasopisma poświęcone algorytmom ewolucyjnym: Evolutionary Computation, MIT Press, ed. Marc Schoenauer IEEE Transactions on Evolutionary Computation, IEEE Neural Networks Council, ed. Xin Yao, David B. Fogel Genetic Algorithms and Evolutionary Computation, GENA seria wydawnicza Kluwer (dotychczas 10 książek), ed. David E. Goldberg Piotr Lipiński Algorytmy ewolucyjne p.13/16
Wprowadzenie Zastosowania algorytmów ewolucyjnych: Scheduling: Facility, Production, Job oraz Transportation Scheduling Projektowanie: obwodów elektrycznych, sieci telekomunikacyjnych, układów klawiatury, wskaźników w samolotach Kontrola: unikania pocisków, rurociągów, gazociągów, obciążenia słupów Piotr Lipiński Algorytmy ewolucyjne p.14/16
Wprowadzenie Zastosowania algorytmów ewolucyjnych: Uczenie maszynowe: projektowanie sieci neuronowych, systemy klasyfikujące, reguły uczące Robotyka: planowanie trajektorii ruchu, planowanie scieżek ruchu Optymalizacja kombinatoryczna: TSP, pokrycia zbiorów, podział grafów, szukanie scieżek Piotr Lipiński Algorytmy ewolucyjne p.15/16
Wprowadzenie Zastosowania algorytmów ewolucyjnych: Przetwarzanie sygnałów: projektowanie filtrów Przetwarzanie obrazów: rozpoznawanie wzorców Business: przewidywanie gospodarcze, ocenianie ryzyka kredytowego, wykrywanie kradzieży kart kredytowych Medycyna: badanie ryzyka zagrożenia zdrowia wśród osób narażonych na kontakt z substancjami toksycznymi Piotr Lipiński Algorytmy ewolucyjne p.16/16