Soft computing Soft computing tym róŝni się od klasycznych obliczeń (hard computing), Ŝe jest odporny na brak precyzji i niepewność danych wejściowych. Obliczenia soft computing mają inspiracje ze świata fizycznego, biologicznego. Inspiracje soft computing Algorytmy genetyczne i ewolucyjne - obserwacja zasad doboru naturalnego Symulowane wyŝarzanie - inspirowane procesem metalurgicznym Sztuczne sieci neuronowe - analogicznie do działania biologicznych sieci neuronowych Obliczenia rozmyte (fuzzy logic) - odwzorowanie sposobu analizy problemów przez człowieka Terminy genetyczne i ich odpowiedniki w algorytmach genetycznych chromosom - ciag kodowy gen - znak allel - wariant znaku locus - pozycja genotyp - struktura fenotyp - punkt, rozwiazanie Elementarny algorytm genetyczny 0. Kodowanie 1. Inicjalizacja 2. Reprodukcja 3. Krzyzowanie 4. Mutacja 5. Ocena warunku zakonczenia Kodowanie rzeczywiste lub binarne: Kodowanie binarne (klasyczne) Zmienne kodowane sa na n bitach, co odpowiada zmiennosci od wartosci minimalnej do maksymalnej: -5 < x < 10, kodowanie naturalne na 8 bitach 256 roznych stanów -5 0 0 0 0 0 0 0 0 10 1 1 1 1 1 1 1 1 Inicjalizacja Losowy dobór osobników, rozrzuconych w calej przestrzeni poszukiwan. Dobierana jest wielkość populacji (ilość osobników) kwant zmian zmiennej x : (10-(-5))/256 = 0.059 1
Reprodukcja Indywidualne ciagi kodowe (osobniki) zostaja powielone w stosunku zaleznym od wartosci, jakie przybiera dla nich funkcja przystosowania. Osobniki lepiej przystosowane maja wieksze szanse wprowadzenia potomków do kolejnego pokolenia. Zasada doboru naturalnego: wygrywa najlepszy Realizacje algorytmiczne wyboru - koło ruletki Sektor proporcjonalny do przystosowania, wybór losowy z kola ruletki 50 13% 12% 75 50% 25% 0 25 Realizacje algorytmiczne wyboru - metoda turniejowa Losowy dobór par (konkurentów), - wygrywa lepszy. Wybrane osobniki tworza pokolenie posrednie - pule rodzicielska. (Osobniki najlepsze wystepuje wielokrotnie) Krzyzowanie Losowo dobierane pary rodzicielskie wymieniaja sie (z okreslonym prawdopodobienstwem) czescia genów Krzyzowanie jednopunktowe: Losowane jest miejsce podzialu i wymianie podlega czesc ciagu kodowego do miejsca podzialu 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 I - punkt podziału Krzyzowanie Krzyzowanie dwupunktowe: Losowane jest miejsce podzialu i wymianie podlega czesc ciagu kodowego do miejsca podzialu 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 I I Mutacja Losowa wymiana genów dla niektórych osobników: 1 0 1 0 1 0 1 0 1 0 1 1 1 0 1 0 Mutacja ma role drugorzedna. Krzyzowanie skutecznie sonduje cala przestrzen poszukiwan. Polisa ubezpieczeniowa, na wypadek utraty waznych skladników rozwiazan 2
Cechy charakterystyczne algorytmów genetycznych 1. Operuja na ciagach kodowych, przedstawiajacych zakodowana postac zadania. 2. Prowadza przeszukiwanie wychodzac nie z pojedynczego punktu lecz z populacji 3. Korzystaja tylko z funkcji celu a nie z jej pochodnych lub innych informacji 4. Losowe metody wyboru. Podstawy matematyczne algorytmów genetycznych Podobienstwo miedzy ciagami kodowymi - schematy. Alfabet dwójkowy z dodatkowym znakiem uniwersalnym : 0 1 * * zastepuje 0 lub 1. Przyklad : - ciagi o dlugosci 5. Ciag odpowiada schematowi, jezeli na kazdej pozycji: 1 1 0 0 * 0 lub 1 Schemat * * * * * spelniaja wszystkie ciagi kodowe, a schemat: * 0 0 1 1 spelniaja 0 0 0 1 1 oraz 1 0 0 1 1 Dla 5 elementowych ciagów istnieje 3^5 = 243 schematów, ale tylko 2^5 = 32 rózne ciagi kodowe. Kazdy ciag kodowy reprezentuje 2^5 = 32 schematy. Stad w kazdej populacji reprezentowane jest od 32 do n * 32 schematów. Schemat pozostaje niezmieniony jezeli operator krzyzowania nie przecina go. Rzad schematu H o(h) - liczba ustalonych pozycji ( 0 lub 1) Rozpietosc schematu H d(h) - odleglosc miedzy skrajnymi pozycjami ustalonymi H = 0 * * * * o(h) = 1 d(h) = 0 H = 0 * 1 * 0 o(h) = 3 d(h) = 4; H = * 0 1 0 * o(h) = 3 d(h) = 2; Wplyw reprodukcji na schematy Schematy lepsze od przecietnych rozpowszechniaja sie, a schematy gorsze zanikaja. m( H, t) = m(h, t-1) * (1+c) c>0 dla schematów lepszych od przeciętej c<0 dla schematów gorszych od przeciętej Podstawowe twierdzenie algorytmów genetycznych o schematach: Waskie, niskiego rzedu i dobrze przystosowane schematy rozprzestrzeniaja sie w kolejnych pokoleniach zgodnie z wykladniczym prawem wzrostu 3
Na krzyzowanie wrazliwe sa schematy o duzej rozpietosci. Prawdopodobienstwo przezycia schematu H: ps > 1 - pc * d(h) / L-1 Prawdopodobienstwo przezycia mutacji przez schemat H ps > 1 - pm * o(h) Lacznie wszystkie operatory genetyczne powoduja ze: m( H, t+1) = =m (H, t ) * f(h) /f_sr * ( 1 - pc * d(h) / (L-1) - pm * o(h) ) Oszacowanie liczby efektywnie przetwarzanych schematów O(n^3) W algorytmie dzialajacym na n ciagach kodowych przetwarzaniu podlega okolo n^3 schematów. Zjawisko ukrytej równoleglosci Hipoteza cegielek Algorytm genetyczny dazy do osiagniecia rezultatu bliskiego optimum poprzez zestawianie dobrych schematów (o przystosowaniu powyzej sredniej) malego rzedu i malej rozpietosci. Sa to tak zwane bloki budujace (cegielki). Wniosek: kodowanie winno spelniac koncepcje cegielek Przyklad dzialania Wybranie ciagu kodowego o mozliwie duzej ilosci jedynek Ciagi kodowe maja dlugosc L=12 a populacja liczy n=8 osobników ch1 = 1 1 1 0 0 1 1 0 0 1 0 1 f(ch1) = 7 ch2 = 0 0 1 1 0 0 1 1 1 0 1 0 f(ch2) = 6 ch3 = 0 1 1 1 0 1 1 1 0 0 1 1 f(ch3) = 8 ch4 = 0 0 1 0 0 0 1 0 1 0 0 0 f(ch4) = 3 ch5 = 0 1 0 0 0 1 1 0 0 1 0 0 f(ch5) = 4 ch6 = 0 1 0 0 1 1 0 0 0 1 0 1 f(ch6) = 5 ch7 = 1 0 1 0 1 1 0 1 1 0 1 1 f(ch7) = 8 ch8 = 0 0 0 0 1 0 1 1 1 1 0 0 f(ch8) = 5 Selekcja chromosomów Metoda ruletki: Laczne przystosowanie wszystkich chromosomów: f(ch1)+... f(ch8) = 46 100% Przystosowanie poszczególnych chromosomów: v(1) = 15.2 % v(5) = 8.7 % v(2) = 13.0 % v(6) = 10.9 % v(3) = 17.4% v(7) = 17.4 % v(4) = 6.5% v(8) = 10.9 % Losowanie metoda ruletki Wylosowano liczby z koła ruletki: 79 44 9 74 44 86 48 23 Co oznacza wybór chromosomów: ch7 ch3 ch1 ch7 ch3 ch7 ch4 ch2 Wybrane chromosomy tworza pule rodzicielska. 4
Przyjeto: pc = 1 oraz pm = 0 (brak mutacji) Losowo dobrano pary rodziców i punkty krzyzowania: ch2 i ch7 z punktem krzyzowanialk = 4 ch1 i ch7 ---------------------- Lk = 3 ch3 i ch4 ---------------------- Lk = 11 ch3 i ch7 ---------------------- Lk = 5 Proces krzyzowania: ch2 = 0 0 1 1 0 0 1 1 1 0 1 0 ch7 = 1 0 1 0 1 1 0 1 1 0 1 1 I Ch3 = 1 1 1 0 1 1 0 1 1 0 1 1 f(ch3) = 9 Ch4 = 1 0 1 0 0 1 1 0 0 1 0 1 f(ch4) = 6 Ch5 = 0 1 1 1 0 1 1 1 0 0 1 0 f(ch5) = 7 Ch6 = 0 0 1 0 0 0 1 0 1 0 0 1 f(ch6) = 4 Ch7 = 0 1 1 1 0 1 0 1 1 0 1 1 f(ch7) = 8 Ch8 = 1 0 1 0 1 1 1 1 0 0 1 1 f(ch8) = 8 Powstał chromosom o funkcji przystosowania lepszej niŝ w pokoleniu poprzednim Proces przetwarzania schematu Schemat H = * * * * * * * * * * 1 1 rozpietosc d(h) = 1 rzad o(h) = 2 ch1 = 1 1 1 0 0 1 1 0 0 1 0 1 f(ch1) = 7 ch2 = 0 0 1 1 0 0 1 1 1 0 1 0 f(ch2) = 6 ch3 = 0 1 1 1 0 1 1 1 0 0 1 1 f(ch3) = 8 ch4 = 0 0 1 0 0 0 1 0 1 0 0 0 f(ch4) = 3 ch5 = 0 1 0 0 0 1 1 0 0 1 0 0 f(ch5) = 4 ch6 = 0 1 0 0 1 1 0 0 0 1 0 1 f(ch6) = 5 ch7 = 1 0 1 0 1 1 0 1 1 0 1 1 f(ch7) = 8 ch8 = 0 0 0 0 1 0 1 1 1 1 0 0 f(ch8) = 5 m( H, t+1) = = m (H, t ) * f(h) /f_sr * ( 1 - pc * d(h) / (L-1) - pm * o(h) ) f(h) - srednie przystosowanie chromosomów spelniajacych schemat. f(h) = 8; f_sr - srednie przystosowanie wszystkich chromosomów f_sr = 5.75 pc =1 pm = 0 M(H, 1) > =2 * 8/5.75 * ( 1-1/12) = 2.55 M(H, 1) =4 Ch3 = 1 1 1 0 1 1 0 1 1 0 1 1 f(ch3) = 9 Ch4 = 1 0 1 0 0 1 1 0 0 1 0 1 f(ch4) = 6 Ch5 = 0 1 1 1 0 1 1 1 0 0 1 0 f(ch5) = 7 Ch6 = 0 0 1 0 0 0 1 0 1 0 0 1 f(ch6) = 4 Ch7 = 0 1 1 1 0 1 0 1 1 0 1 1 f(ch7) = 8 Ch8 = 1 0 1 0 1 1 1 1 0 0 1 1 f(ch8) = 8 5