Home Page Title Page JJ II J I Page1of25 Go Back Full Screen Close
Wykład 6
Metody selekcji
Kazimierz GrygielHome Page Title Page JJ II J I Page2of25 Go Back Full Screen Close Quit
Selekcja jednokrotna
• Selekcja jednokrotna: wybór jednego elementu1 z danej
popula-cji
• Selekcja może być zdefiniowana w sposób:
– deterministyczny (określamy kryterium wyboru)
– losowy (określamy rozkład prawdopodobieństwa wyboru)
• Terminologia:
– operacja (wariant deterministyczny) – operator (wariant zrandomizowany)
• Przykład operacji selekcji: s(P ) = optf(P )
• W przypadku selekcji losowej każdej populacji P
przyporządko-wujemy rozkład prawdopodobieństwa na zbiorze jej elementów, zadany wektorem {π(x), x ∈ P }
• Operator selekcji wybiera losowy element χ z P w ten sposób,
że P {χ = x} = π(x)
Home Page Title Page JJ II J I Page3of25 Go Back Full Screen Close
Home Page Title Page JJ II J I Page4of25 Go Back Full Screen Close Quit
Implementacja
(koszt logarytmiczny)// porządek elementów bez znaczenia
// cps[1..N] -- wektor sumarycznych prawdopodobieństw wyboru // cps[i] = p[1]+p[2]+...+p[i]
// wyznaczanie numeru "zwycięskiego" sektora: begin u := random; l := 1; r := N; while l < r do begin k := (l+r) div 2; if cps[k] < u then l := k+1 else r := k end; return(r); end
Home Page Title Page JJ II J I Page5of25 Go Back Full Screen Close
Uzasadnienie
Home Page Title Page JJ II J I Page6of25 Go Back Full Screen Close Quit
Inna implementacja
2
(koszt stały + liniowy koszt inicjacji tablic)
Zastosowanie: selekcja wielokrotna z powtórzeniami
// ps[1..N] -- wektor prawdopodobieństw wyboru
// prob[1..N] -- tablica względnych częstości
// alias[1..N] -- tablica indeksów zapasowych // wyznaczanie numeru "zwycięskiego" sektora: begin
u := N*random + 1;
i := trunc(u); // podłoga if u-i <= prob[i] then
return(i) else
return(alias[i]); end
2 M. D. Vose (1991) A Linear Algorithm For Generating Random Numbers With
Home Page Title Page JJ II J I Page7of25 Go Back Full Screen Close
Objaśnienia
N=3, p1=p2=1/8, p3=3/4Home Page Title Page JJ II J I Page8of25 Go Back Full Screen Close Quit
Inicjacja tablic
// small[0..s], large[0..l] -- stosy pomocnicze indeksów do ps // small: ps[i] <= 1/N; large: ps[i] > 1/N
// "redystrybucja" i przeskalowanie prawdopodobieństw begin
while (s>0) and (l>0) do begin s := s-1; j := small[s]; l := l-1; k := large[l];
prob[j] := N*ps[j]; alias[j] := k; ps[k] := ps[k] + (ps[j]-1/N); if ps[k] > 1/N then l := l+1
else begin small[s] := k; s := s+1 end end;
// zostały tylko "kawałki" długości 1/N while s>0 do begin s := s-1; prob[small[s]] := 1 end; // naprawa błędów zaokrągleń while l>0 do begin l := l-1; prob[large[l]] := 1 end end
Home Page Title Page JJ II J I Page9of25 Go Back Full Screen Close
Schematy selekcji wielokrotnej
• Selekcja z powtórzeniami (with replacement):– odpowiednik schematu losowania ze zwracaniem
– każdy element populacji może być wybrany wielokrotnie – podział na sektory pozostaje bez zmian
– nieograniczona liczba prób
• Selekcja bez powtórzeń (without replacement):
– odpowiednik schematu losowania bez zwracania
– każdy element populacji może być wybrany co najwyżej raz – podział na sektory ulega zmianie:
pj := pj/(1 − pi), j 6= i
– alternatywnie: odrzucanie elementów powtarzających się – liczba (udanych) prób ograniczona wielkością populacji – zastosowanie: losowanie podzbiorów
Home Page Title Page JJ II J I Page10of25 Go Back Full Screen Close Quit
Selekcja wielokrotna z powtórzeniami
• Rozważmy model ruletkowy losowania wielokrotnego zpowtó-rzeniami dla zbioru uniwersalnego
S = {x1, x2, . . . , xn}
• Niech elementowi xi odpowiada prawdopodobieństwo wyboru
pi (
n
X
j=1
pj = 1)
• Dokonujemy N losowań tworząc populację N -elementową • Jakie jest prawdopodobieństwo, że w ten sposób wylosujemy
populację nieuporządkowaną P o wektorze krotności
(k1, k2, . . . kn)
gdzie ki 0, Xn
j=1
Home Page Title Page JJ II J I Page11of25 Go Back Full Screen Close
Rozkład prawdopodobieństwa
populacji losowej
• Odpowiedź: Jest to prawdopodobieństwo określone wzorem pk1,k2,...,kn = N ! k1!k2! · · · kn! p k1 1 p k2 2 · · · p kn n
(tzw. rozkład wielomianowy), gdzie
k1 + k2 + . . . + kn = N
(przyjmujemy, że 00 = 1)
• Dla próby beztendencyjnej (pi = 1/n)
pk1,k2,...,kn = N !
k1!k2! · · · kn! 1
Home Page Title Page JJ II J I Page12of25 Go Back Full Screen Close Quit
Selekcja wielokrotna z populacji
• Powyższy wzór można łatwo przenieść na przypadek losowania
z populacji o wektorze krotności
(j1, j2, . . . jn)
• W tym przypadku prawdopodobieństwo wyboru elementu3 x
i wynosi
πi = jipi
• Jeśli założymy, że wielkość populacji źródłowej jest również
rów-na N , to otrzymamy w ten sposób operator selekcji działający na rodzinie wszystkich populacji N -elementowych ze zbioru S.
Home Page Title Page JJ II J I Page13of25 Go Back Full Screen Close
Współczynnik reprodukcji
• Rozważmy konkretny element xi populacji Psukces = wybór elementu xi
porażka = wybór innego elementu
• Wielokrotne zastosowanie operatora selekcji: ciąg doświadczeń
Bernoulliego z prawdopodobieństwem sukcesu pi = π(xi)
• Średnia liczba sukcesów przy k powtórzeniach: k · pi
• Współczynnik reprodukcji elementu xi:
σi = N · pi
• Interpretacja: średnia liczba potomków jednego egzemplarza
osob-nika przy pełnym odtworzeniu populacji
• Uwaga: jeśli egzemplarzy jest ni, to ich potomków będzie śred-nio n σ
Home Page Title Page JJ II J I Page14of25 Go Back Full Screen Close Quit
Selekcja neutralna
i proporcjonalna
• Selekcja neutralna (beztendencyjna)
– prawdopodobieństwo wyboru: pi = 1 N – współczynnik reprodukcji: σi = N 1 N = 1 – efekt długofalowy: dryf losowy
• Selekcja proporcjonalna (Holland)
– prawdopodobieństwo wyboru: pi = fi N X j=1 fj = fi N f, gdzie fi = f (xi) > 0 – współczynnik reprodukcji: σi= N fi N f = fi f (proporcjonalny do wskaźnika dostosowania)
Home Page Title Page JJ II J I Page15of25 Go Back Full Screen Close
Ograniczenia selekcji proporcjonalnej
• Warunki bezpośredniego zastosowania:– zadanie maksymalizacji
– dodatnia (nieujemna) funkcja oceny: funkcja dostosowania
• Minimalizacja → Maksymalizacja: f (x) =
Cmax − g(x) jeżeli g(x) < Cmax
0 w przec. przypadku
• Eliminacja ujemnych wartości: f (x) =
Cmin + g(x) jeżeli g(x) + Cmin > 0
Home Page Title Page JJ II J I Page16of25 Go Back Full Screen Close Quit
Wady selekcji proporcjonalnej
• Wielkość presji selekcyjnej zależna od względnego dostosowania
– małe różnice → dryf losowy
– duże różnice → utrata różnorodności (małe populacje!) – wrażliwość na „poziom” wykresu:
lim c→∞ fi+ c ¯ f + c = 1 • Sposoby przeciwdziałania – skalowanie liniowe – skalowanie nieliniowe – skalowanie wg rang
Home Page Title Page JJ II J I Page17of25 Go Back Full Screen Close
Selekcja Boltzmanna
• Skalowanie wykładnicze: ˜f (x) = eβf (x), gdzie β ∈ R
– ˜f zawsze dodatnia
– możliwość regulacji presji selekcyjnej (parametr β) – możliwość zastosowania do minimalizacji (β < 0) – niewrażliwość na „poziom” wykresu f
• Prawdopodobieństwo wyboru: pi = e βfi N X j=1 eβfj
• Stała addytywna wchodzi do wykładnika i ulega skróceniu: eβ(fi+c) = eβfi · eβc
Home Page Title Page JJ II J I Page18of25 Go Back Full Screen Close Quit
Selekcja liniowa wg rang
(linear ranking)
• Populacja posortowana niemalejąco wg dostosowania • Ranga: indeks elementu w posortowanej populacji • Skalowanie:
˜
fi = fmin + (fmax − fmin)
i − 1 N − 1 • Wariant uproszczony: ˜fi = i (fmin = 1, fmax = N )
Home Page Title Page JJ II J I Page19of25 Go Back Full Screen Close
Selekcja turniejowa
(tournament selection)
• Turniej rozmiaru k = k-elementowa próba losowa z populacji
(k 2)
• Zwycięzca turnieju: najlepszy element w turnieju • Rozmiar turnieju określa wielkość presji selekcyjnej • Typowy rozmiar turnieju: k = 2
• Warianty:
– turnieje bez powtórzeń
– losowy wybór zwycięzcy (np. selekcja proporcjonalna)
• Selekcja turniejowa może być opisana za pomocą modelu
Home Page Title Page JJ II J I Page20of25 Go Back Full Screen Close Quit
Efekty długofalowe
• Selekcja N -krotna z powtórzeniami (model ruletkowy) • Pełna wymiana pokoleń
Home Page Title Page JJ II J I Page21of25 Go Back Full Screen Close
Wnioski
• Proces czystej selekcji: pochłaniający łańcuch Markowa,
przy czym:
– stany = populacje
– stany pochłaniające = populacje jednorodne – stany chwilowe = populacje niejednorodne
• Wniosek:
Każdy proces czystej selekcji kończy się (z prawdopodo-bieństwem 1 ) wytworzeniem populacji jednorodnej4 • Efekt ten jest skutkiem
(a) fluktuacji losowych (dryf losowy)
(b) presji selekcyjnej (tendencyjność wyboru)
po-Home Page Title Page JJ II J I Page22of25 Go Back Full Screen Close Quit
Redukcja wariancji operatora selekcji
• Efekt dryfu losowego powoduje, że najlepszy osobnik w bieżącejpopulacji może zostać „bezpotomny” w następnym pokoleniu, co jest niekorzystne z punktu widzenia zastosowań algorytmu ewolucyjnego
• Fluktuacji losowych można się pozbyć stosując selekcję
determi-nistyczną, jednak kosztem wprowadzenia silnej presji selekcyjnej, co nie zawsze jest pożądane
• Rozwiązaniem kompromisowym jest redukcja wariancji
operato-ra selekcji
• Zapewnia to np. schemat SUS (Stochastic Universal Sampling)
Home Page Title Page JJ II J I Page23of25 Go Back Full Screen Close
Schemat SUS
Home Page Title Page JJ II J I Page24of25 Go Back Full Screen Close Quit
SUS, implementacja
// ps[1..N] -- wektor prawdopodobieństw wyboru // c[1..N] -- wynikowy wektor krotności potomków begin u := random/N; s := 0.0; for i := 1 to N do begin c[i] := 0; s := s + ps[i]; while u < s do begin c[i] := c[i]+1; u := u + 1/N end end end
Można pokazać, że liczba potomków osobnikaijest równa bN ps[i]c (z praw-dopodobieństwem 1 − ri) lub dN ps[i]e (z prawdopodobieństwem ri), a
Home Page Title Page JJ II J I Page25of25 Go Back Full Screen Close
Selekcja obcinająca
(truncation selection)
• Selekcja wielokrotna, oparta na operacji „wybierz najlepszy
ele-ment” (deterministyczna)
• Niech M — rozmiar populacji źródłowej, N — rozmiar
popu-lacji docelowej
• Wybieramy N najlepszych elementów z M
(N -krotne zastosowanie operacji wyboru najlepszego elementu, bez zwracania)
• Liczbę α = N/M nazywamy progiem selekcji
• Stosowana zazwyczaj jako metoda selekcji końcowej (często w
połączeniu z częściową wymianą pokoleń)