ALGORYTMY GENETYCZNE Spotkanie pierwsze

Transkrypt

ALGORYTMY GENETYCZNE Spotkanie pierwsze
Literatura
• D. E. Goldberg, Algorytmy genetyczne i ich zastosowania, WNiT, 1995
• D. Rutkowska, M. Piliński, L. Rutkowski, Sieci neuronowe, algorytmy
genetyczne i systemy rozmyte, PWN, 1997
ALGORYTMY GENETYCZNE
• M. Pawlak, Algorytmy ewolucyjne jako narzędzie harmonogramowania
produkcji, PWN, 1999
Spotkanie pierwsze
• J. Arabas, Wykłady z algorytmów ewolucyjnych, WNiT, 2001
• L.
L R
Rutkowski,
tk
ki Metody
M t d i techniki
t h iki sztucznej
t
j iinteligencji,
t li
ji PWN
PWN, 2005
• Z. Michalewicz, D.B. Fogel, Jak to rozwiązać czyli nowoczesna
heurystyka, WNT, 2006
• T. D. Gwiazda, Algorytmy genetyczne. Kompendium, PWN
tom 1: Operator krzyżowania dla problemów genetycznych, 2007
tom 2: Operator mutacji dla problemów genetycznych, 2007
• D.T. Larose, Metody i modele eksploracji danych, PWN, 2008
Tomasz Kuszewski ©
1
2
Tomasz Kuszewski ©
Słowniczek
Algorytm genetyczny – wzorowana na
naturalnej ewolucji metoda poszukiwania
najlepszych decyzji w zagadnieniach
optymalizacyjnych
Algorytm genetyczny – procedura
przeszukiwania oparta na mechanizmach
doboru naturalnego i dziedziczenia; według
teorii ewolucji przeżywają osobniki najlepiej
przystosowane
John Holland, University of Michigan,
Populacja
– zbiór osobników
Osobnik
– punkt przestrzeni poszukiwań, zbiór zakodowanych
parametrów rozwiązania problemu
Chromosom
– ciąg genów [łańcuch genów]
Genotyp
– zespół chromosomów danego osobnika [struktura];
często przyjmuje się, że genotyp składa się z jednego
chromosomu
Gen
– element chromosomu [cecha,
[cecha znak]
Allel
– wartość genu
Locus
– pozycja genu w łańcuchu, czyli chromosomie [liczba]
Fenotyp
– zestaw wartości odpowiadający genotypowi
[zdekodowana struktura, rozwiązanie problemu w notacji
oryginału]
Funkcja przystosowania – miara przystosowania „do życia” danego
osobnika
„Adaptation in Natural and Artificial Systems”, 1975
Generacja, pokolenie
Tomasz Kuszewski ©
4
Tomasz Kuszewski ©
6
1
Selekcja metodą ruletki – obrót kołem ruletki
Klasyczny algorytm genetyczny
K – liczebność populacji, i = 1, 2, …, K, preferujemy K - parzyste
Start
ch(i) – chromosom
F[.] – funkcja przystosowania
Inicjacja – wybór populacji początkowej
P[ch(i)] – prawdopodobieństwo selekcji chromosomu ch(i)
F [ ch( i )]
P [ ch( i )] = K
Ocena przystosowania chromosomów
NIE
Selekcja
∑ F [ ch( i )]
TAK
Reguła stopu
j =1
• Wycinek koła v[ch(i)] = P[ch(i)] ·100, tzn. każdemu chromosomowi
przydzielono wycinek koła ruletki, tym większy im chromosom lepiej
przystosowany
Fenotyp najlepszego
chromosomu
• Okrąg odwzorowany na przedział <0, 100>
Operatory
genetyczne
• Wylosowanie liczby z przedziału <a,b>, gdzie a,b wyznaczają
odpowiedni wycinek koła jest tożsame z wylosowaniem chromosomu
Stop
Populacja
potomków
• Wynik: populacja rodzicielska o liczebności K
7
Tomasz Kuszewski ©
Selekcja rankingowa – ustawienie chromosomów w kolejności od
najlepszych do najgorszych, w zależności od wartości funkcji F(.)
Elitaryzm – zachowanie w kolejnej populacji najlepiej przystosowanych
chromosomów oraz ich ochrona przed krzyżowaniem i mutacją
Idea
Skalowanie typu sigma – zmiana wartości funkcji przystosowania
• Dla każdego ch(i) losujemy liczbę k z przedziału <0, 1>. Jeśli k ≤ pk, to
chromosom przeznaczony do krzyżowania
F [ ch ( i )] ¬ średniaF
odch .std .F
• W grupie chromosomów przeznaczonych do krzyżowania losowo
dobieramy pary rodziców
Selekcja Boltzmana – zmiana wartości funkcji przystosowania w
zależności od numeru populacji, parametr T – temperatura o malejących
wartościach
exp{ F [ ch( i )] / T }
FBoltzmann [ ch( i )] =
średnia {exp{ F [ ch( i )] / T }}
Tomasz Kuszewski ©
9
Krzyżowanie – operator genetyczny, wykonuje rekombinację tzn. tworzy
dwa osobniki potomne przez losowy wybór locus (krzyżowanie
jednopunktowe) i wymianę podsekwencji genów miedzy
chromosomami z populacji rodzicielskiej, znajdujących się na lewo i na
prawo od wylosowanej pozycji; stosuje się również krzyżowanie
wielopunktowe; prawdopodobieństwo krzyżowania pk jest wysokie
Selekcja turniejowa – z populacji losujemy dwa chromosomy ze
zwracaniem; do populacji rodzicielskiej dołączany jest chromosom w
większej wartości funkcji F(.); można ustalić również wartość progową
funkcji przystosowania
Fsigma scaled [ ch ( i )] = 1 +
Tomasz Kuszewski ©
• Dla każdej pary rodziców losujemy locus krzyżowania
• Z każdej pary rodziców otrzymujemy parę potomków
10
Tomasz Kuszewski ©
11
2
Mutacja – operator genetyczny, zmienia losowo bity lub cyfry na danej
pozycji w chromosomie, zwykle z bardzo małym
prawdopodobieństwem pm
Dlaczego to działa? (I) definicje
Schemat – wzorzec opisujący podzbiór ciągów podobnych ze względu na
ustalone pozycje
Przeprowadzenie mutacji na rodzicach albo na potomkach nie wpływa na
efekt mutacji dla całego procesu optymalizacji
• Dodatkowy znak „*”
schemat
*11*0
• Schemat z m symbolami „*” pasuje do 2m chromosomów
Idea
• Każdy ciąg o długości s należy do 2s schematów
• Dla każdego genu z każdego chromosomu jest losowana liczba k z
przedziału <0, 1>
• Dla
Dl alfabetu
lf b t o k symbolach
b l h iistnieje
t i j (k
(k+1)
1)s schematów
h
tó
• Jeżeli k ≤ pm, to gen podlega mutacji
• Rzędem schematu H o(H) jest nazywana liczba ustalonych pozycji
• Np. dla chromosomu binarnego mutacja polega na zamianie
np.
„0” → „1” albo „1” → „0”
o(* * * 1 0 *) = 2
• Rozpiętością schematu H d(H) jest nazywana odległość między
ostatnim a pierwszym ustalonym symbolem
np.
Inne operatory genetyczne
d( * 1 * 0 * * * 1) = 8 – 2 = 6
d(* * * * 1 * *) = 0
np. operator inwersji
13
Tomasz Kuszewski ©
19
Tomasz Kuszewski ©
Dlaczego to działa? (II) selekcja
Dlaczego to działa? (III) selekcja
A(t) – populacja w pokoleniu t, złożona z n ciągów Aj
• Wartość oczekiwana chromosomów pasujących do schematu H w puli
F ( H ,t )
rodzicielskiej
m(H,t) – liczba reprezentantów schematu H w populacji A(t)
E [ m( H ,t + 1 )] = m( H ,t )
• Średnia wartość przystosowania chromosomów pasujących do H
∑
F ( H ,t ) =
j =1
średniaF
• Zakłada się, że średnie przystosowanie schematu H jest wyższe od
średniej w populacji o wielkość c·średniaF, gdzie c – stała, wtedy
m
Fj
m ( H ,t )
E [ m( H ,t + 1 )] = m( H ,t )
• Prawdopodobieństwo wybrania i-tego ciągu z populacji do puli
rodzicielskiej
F
pi = n i
∑ Fi
( średniaF + c średniaF )
= m( H ,t )( 1 + c )
średniaF
• W procesie reprodukcji schematy lepsze są przekazywane do
następnych pokoleń w liczbie rosnącej wykładniczo
t
i =1
• Oczekiwana liczba chromosomów wybranych do puli rodzicielskiej
F
Fi
np i = n n i =
średniaF
∑ Fi
m( H ,t ) = m( H ,0 )( 1 + c )
i =1
Tomasz Kuszewski ©
20
Tomasz Kuszewski ©
21
3
Dlaczego to działa? (IV) krzyżowanie
Dlaczego to działa? (V) mutacja
• Im większa rozpiętość schematu, tym mniejsze szanse na jego
przeżycie
• Im większy rząd schematu, tym mniejsze szanse na jego przeżycie,
aby schemat H przetrwał wszystkie pozycje ustalone muszą pozostać
bez zmian
H1 = * 1 * * * * 0
H2 = * * * * 1 1 *
widać, że prawdopodobieństwo zniszczenia schematu H2 wynosi 1/6,
dla losowanego locus k = 5. Prawdopodobieństwo przetrwania
schematu H1 wynosi 1/6,
1/6 dla losowanego locus k = 1
• Prawdopodobieństwo przetrwania mutacji przez schemat H
p Hm = ( 1 ¬ p m ) o ( H )
• Dla małych prawdopodobieństw mutacji
p Hm = 1¬ pm o( H )
• Prawdopodobieństwo przetrwania schematu H, w przynajmniej jednym
potomku, pk – prawdopodobieństwo krzyżowania
p Hk ≥ 1¬ p k
Łącznie
• Oczekiwana liczba reprezentantów schematu H w kolejnym pokoleniu
d( H )
s ¬1
Tomasz Kuszewski ©
m ( H ,t + 1 ) ≥ m ( H ,t )
22
Tomasz Kuszewski ©
F( H )
średniaF
1¬ p k
d( H )
¬ o( H ) pm
s¬1
23
Twierdzenie o schematach
Schematy małego rzędu, o małej rozpiętości i o
przystosowaniu powyżej średniej otrzymują rosnąco
wykładniczo liczbę swoich reprezentantów w kolejnych
populacjach generowanych przez algorytm genetyczny
Hipoteza bloków budujących
Algorytm genetyczny dąży do osiągnięcia rezultatu bliskiego
optimum przez zestawienie dobrych schematów, małego
rzędu i o małej rozpiętości. Schematy takie są nazywane
blokami budującymi
Tomasz Kuszewski ©
24
4