::Algorytm genetyczny::
gdzie: n jest numerem generacji, natomiast R
oznacza rozmiar populacji. Klasyczne algorytmy genetyczne w żaden sposób nie
wykorzystują wiedzy o rozwiązywanym problemie. To, że znajdują rozwiązanie
wynika z faktu, że do każdej następnej generacji przedostają się lepsze
jednostki z generacji poprzedniej, a operatory genetyczne wymieniają informacje
zawarte w tych jednostkach tworząc nowe, potencjalnie doskonalsze rozwiązania.
Proces tworzenia nowej populacji przedstawiony jest na poniższym rysunku. ::Troszkę
historii:: 1957-62: Barricelli, Fraser,
Martin, Cockerham – modelowanie procesów genetycznych 1960: Holland (Uniw. Michigan) – systemy adaptacyjne à Algorytmy
Genetyczne 1967: Bagley – program gry w 6 pionków 1971: Hollstien; 1975: De Jong – optymalizacja funkcji 1985: Goldberg – optymalizacja pracy
gazociągu ::Polacy, a algorytmy genetyczne:: Michalewicz (Uniw. Północnej Karoliny, Charlotte, USA) „Algorytmy genetyczne + struktury danych = programy
ewolucyjne” Buller (ATR
Kioto, Japonia) „Sztuczny mózg. To już nie fantazje” M. J. Kasperski, „Sztuczna Inteligencja. Droga do myślących maszyn” ::Przykłady i zastosowania:: Algorytmy genetyczne znalazły zastosowanie do rozwiązywania problemów optymalizacji, rozpoznawania obrazów, przewidywaniu ruchów na giełdzie, tworzenia grafiki oraz projektowania budynków i maszyn. ::Podstawowe
pojęcia:: · Chromosom jest to ciąg bitów. Każdy pojedynczy bit jest odpowiednikiem pojedynczego „genu”, np. Kobieta Mężczyzna. · Operacja krzyżowania polega na losowym przecięciu dwóch chromosomów (ciągów bitów) w jednym punkcie i zamianie podzielonych części między chromosomami. Powstają dwa nowe chromosomy. Ważne jest to ze „dzieci” całkowicie zastępują „rodziców”. 11010010 ↓↑ - krzyżowanie 00100101 ↓↓ -Powstają dwa nowe osobniki zastępujące rodziców: 11010101 00100010 · Operacja mutacji polega na zamianie na przeciwny losowo wybranego bitu. ↓ - bit mutacji 10010111 10110111 – osobnik po zmutowaniu. · Selekcja osobników do krzyżowania następuje na drodze losowania. - Metoda koła ruletki, która przydziela prawdopodobieństwa wylosowania każdego osobnika bezpośrednio na podstawie jednej funkcji oceny, - Ranking liniowy - Selekcja tą metodą jest bardzo podobna do selekcji metodą koła ruletki. Modyfikacja polega jedynie na zmianie funkcji określającej prawdopodobieństwo wyboru danego osobnika. Przed przystąpieniem do tej selekcji należy nadać każdemu z osobników pewną wartość (przystosowanie) zależną od jego położenia na liście posortowanej względem wartości funkcji oceny, - Turniej - Metoda jest zupełnie różna od powyższych i polega na losowym wyborze z całej populacji kilku osobników (jest to tzw. grupa turniejowa), a później z tej grupy wybierany jest osobnik najlepiej przystosowany i on przepisywany jest do nowo tworzonej populacji. Losowanie grup turniejowych oraz wybieranie z nich najlepszego osobnika należy powtórzyć aż do utworzenia całej nowej populacji. · Populacja ma stały rozmiar, a w kolejnych cyklach ewolucji wszystkie chromosomy podlegają wymianie na nowe (dzieci całkowicie zastępują rodziców). · Rozwiązaniem problemu jest
najlepiej przystosowany osobnik z ostatniej wygenerowanej populacji. Należy
dodać, że musimy z góry określić warunek zatrzymania ewolucji (np. uzyskanie osobnika o wystarczająco dobrych parametrach
albo po z góry określonej maksymalnej liczbie iteracji). ::Przykład komiwojażera:: W problemie komiwojażera, celem jest znalezienie najkrótszej odległości miedzy N różnymi miastami. Analizując każda możliwość dla N miast będzie N! kombinacji. 30-sto miastowa mapa będzie nam dawała 2.56 x 1032 kombinacji. Zakładając ze obliczenia 1 miliona kombinacji trwa sekundę obliczenie wszystkich kombinacji trwało by ponad 8,000,000,000,000,000 lat. Dodając jeszcze jedno miasto zwiększyło by liczbę kombinacji 31 razy. Jest to niemożliwe rozwiązanie. Algorytm genetyczny może być użyty do znalezienia rozwiązania w dużo krótszym czasie. Jednak prawdopodobnie nie będzie to najlepsze rozwiązanie, dobrze zaimplementowany algorytm potrafi znaleźć rozwiązanie bliskie idealnemu w mniej niż minutę. Istnieją dwa podstawowe kroki do rozwiązania problemu komiwojażera za pomocą Algorytmu Genetycznego. Po pierwsze stworzyć grupę wielu przypadkowych dróg co będzie zwane populacja. Te drogi są zapisane jako sekwencja liczb. Po drugie wybrać dwie z krótszych „rodziców” dróg z populacji skrzyżować je aby powstały „dzieci”, w nadziei ze stworzą lepsze rozwiązanie. Ideą Algorytmów Genetycznych jest symulacja ewolucji natury. Dobre rozwiązania są brane do reprodukcji w nadziei ze stworzą jeszcze lepsze rozwiązania a te gorsze są usuwane. Największym problemem w problemie komiwojażera jest zakodowanie rozwiązania. Kodowanie nie może po prostu być listą miast w kolejności odwiedzania. Jak pokazano poniżej, operacja krzyżowania nie będzie działać. Krzyżowanie następuje po 3 pozycji.
Jak widać w tabeli miasto 1 występuje dwa razy a miasto 5 ani razu w dziecku 1. Dlatego musi być użyte bardziej skomplikowane kodowanie. Np. tablica NxN gdzie w miejsca odpowiadające połączeniom miedzy miastami odpowiada jeden bit 0 lub 1. LiteraturaDavid E. „Algorytmy genetyczne i ich zastosowania” M. J. Kasperski, „Sztuczna Inteligencja. Droga do myślących maszyn” Simon Haykin "Neural Networks A Comprehensive Foundation, New Jersey 1999 Adnrzej Kos, Wykład "Przemysłowe zastosowania sztucznej inteligencji", 2003/2004 |
||||||||||
Maciej Misiak Krzysztof Nalepka mgr inż. Adam Gołda Katedra Elektroniki AGH |