Home Page Title Page JJ II J I Page1of32 Go Back Full Screen Close Quit
Wykład 7
Metody rekombinacji
Kazimierz GrygielHome Page Title Page JJ II J I Page2of32 Go Back Full Screen Close Quit
Przekształcenia mieszające
• Przekształcenia mieszające umożliwiają „wymianę informacji”
między różnymi osobnikami w populacji
• Opis formalny:
Ψ = {ψi : Uk → U, i ∈ I}
przy czym k 2
• Tradycyjna terminologia:
krzyżowanie (z ang. crossover), rekombinacja
• Operator mieszający (krzyżowania, rekombinacji): ψξ
gdzie ξ — zmienna losowa o wartościach w I
• W przypadku k = 2 przekształcenia mieszające często
występu-ją w parach komplementarnych; można je wówczas traktować jako odwzorowania U2 → U2 (para rodziców → para
Home Page Title Page JJ II J I Page3of32 Go Back Full Screen Close Quit
Krzyżowanie jednopunktowe
• Dziedzina: przestrzeń chromosomów binarnych G = Bm
• x, y — rodzice • x0, y0 — potomstwo
• i: punkt krzyżowania (gdzie 1 ¬ i ¬ m − 1) x: x1 x2 . . . xi xi+1 . . . xm
y: y1 y2 . . . yi yi+1 . . . ym
x0: x1 x2 . . . xi yi+1 . . . ym
y0: y1 y2 . . . yi xi+1 . . . xm
Home Page Title Page JJ II J I Page4of32 Go Back Full Screen Close Quit
Krzyżowanie dwupunktowe
• x, y — rodzice • x0, y0 — potomstwo• i1, i2: punkty krzyżowania (gdzie 1 ¬ i1 ¬ i2 ¬ m)
x: x1 . . . xi1 xi1+1 . . . xi2 xi2+1 . . . xm y: y1 . . . yi1 yi1+1 . . . yi2 yi2+1 . . . ym
x0: x1 . . . xi1 yi1+1 . . . yi2 xi2+1 . . . xm
y0: y1 . . . yi1 xi1+1 . . . xi2 yi2+1 . . . ym
• Niektórzy autorzy przyjmują warunek 1 ¬ i1 < i2 ¬ m; inni
stawiają „kreskę” przed indeksem i1
Home Page Title Page JJ II J I Page5of32 Go Back Full Screen Close Quit
Model ogólny: krzyżowanie wg maski
• Przykład wprowadzający (m = 4) x: x1 x2 x3 x4 y: y1 y2 y3 y4 k: 0 1 0 1 x0: x1 y2 x3 y4 y0: y1 x2 y3 x4
• Własność: krzyżowanie wg maski (jako odwzorowanie B2
m →
Bm2) jest izometrią w metryce Hamminga (odległość potomków = odległość rodziców)
Home Page Title Page JJ II J I Page6of32 Go Back Full Screen Close Quit
Ujęcie algebraiczne
• Rodzina przekształceń: Ψ = {ψk0 , ψk00, k ∈ Bm} gdzie x0 = ψk0 (x, y) = (x k) ⊕ (k y) y0 = ψ00k(x, y) = (x k) ⊕ (k y)• Interpretacja bitów maski
0: pozostaw allele rodzicielskie bez zmian 1: zamień miejscami allele rodzicielskie
• Przykład: krzyżowanie proste (punkt krzyżowania i) k = 0 · · · 0 | {z } i 1 · · · 1 | {z } m−i
Home Page Title Page JJ II J I Page7of32 Go Back Full Screen Close Quit
Właściwości
• Oznaczmy: ψk = (ψ 0 k, ψ 00 k) (tzn. ψk : Bm2 → Bm2 ) Wtedy ψk1 ◦ ψk2 = ψk1⊕k2(złożenie dwóch krzyżowań wg maski jest krzyżowaniem wg maski) W szczególności:
ψk ◦ ψk = ψ0
• Wniosek: Rodzina odwzorowań {ψk : k ∈ Bm} tworzy grupę
przekształceń. Jest to grupa przemienna.
Element neutralny: ψ0
Element odwrotny: ψ−1k = ψk
• Związek z mutacją:
Home Page Title Page JJ II J I Page8of32 Go Back Full Screen Close Quit
Przykłady
• Operator krzyżowania prostego :
P {ξ = k} = 1 m−1 dla k postaci 0. . . 01. . . 1 0 dla pozostałych k ∈ Bm
• Operator krzyżowania jednostajnego z parametrem px:
P {ξ = k} = p/k/x (1−px)m−/k/ dla k ∈ Bm
(początkowo przyjmowano jako standard px = 0.5)
• Ogólnie: w modelu krzyżowania wg maski można wyrazić
do-wolny operator krzyżowania binarnego, określając odpowiednio rozkład prawdopodobieństwa na zbiorze masek
Home Page Title Page JJ II J I Page9of32 Go Back Full Screen Close Quit
Pula genetyczna populacji
• Pula genetyczna populacji P :
G(P ) = {G1(P ), G2(P ), . . . , Gm(P )}
gdzie Gi(P ) — podzbiór alleli i-tego genu obecnych w osobnikach populacji
P , tzn.
Gi(P ) = [ x∈P
{ai(x)}, ai(x) — allel na pozycji i w x
• Obserwacja: G({x, y}) = G({ψk0 (x, y), ψk00(x, y)})
tzn. pula genetyczna pary rodziców = pula genetyczna pary potomków
• Wniosek:
Krzyżowanie binarne nie wyprowadza poza pulę gene-tyczną populacji
Dokładniej: pula genetyczna zbioru wszystkich potencjalnych potomków = pula genetyczna zbioru rodziców
Home Page Title Page JJ II J I Page10of32 Go Back Full Screen Close Quit
Efekty długofalowe
• Proces „czystej rekombinacji” (beztendencyjny wybór rodziców,
pełna wymiana pokoleń)
• Populacje nieskończone:
– stałe prawdopodobieństwa brzegowe:
P{xi(t) = ai} = P{xi(0) = ai}, i = 1, . . . , m
– twierdzenie Geiringer: rozkład graniczny procesu jest określony przez częstości Robbinsa (→ niezależność genów):
lim
t→∞P{(x1(t) = a1, . . . , xm(t) = am} = P{x1(0) = a1}·. . .·P{xm(0) = am}
• Populacje skończone:
dryf losowy doprowadza dość szybko do utraty różnorodności i powstania populacji jednorodnej, efekt rekombinacji widoczny w początkowej fazie
Home Page Title Page JJ II J I Page11of32 Go Back Full Screen Close Quit
Teoria schematów (Holland)
• Symbol uniwersalny * reprezentuje dowolny symbol z alfabetu {0, 1}
• Schemat: słowo długości m nad alfabetem {0, 1, ∗}
• Chromosom x jest reprezentantem schematu H, jeśli xi = Hi,
o ile Hi ∈ {0, 1}
Przykład. 110 jest reprezentantem schematów: 110, *10, 1*0, 11*, **0, *1*, 1**, ***
• Rząd o(H) schematu H: liczba zer i jedynek w H
Przykład, cd. Dla powyższych schematów rząd wynosi odp.: 3, 2, 2, 2, 1, 1, 1, 0
• Rozpiętość δ(H) schematu H: odległość między skrajnymi
cy-frami (pozycjami ustalonymi)
Przykład, cd. Dla powyższych schematów rozpiętość wynosi odp.: 2, 1, 2, 1, 0, 0, 0, nieokr.
Home Page Title Page JJ II J I Page12of32 Go Back Full Screen Close Quit
Teoria schematów
• Liczba reprezentantów schematu H w populacji P : nH(P )
• Średnie dostosowanie schematu H w populacji P (dostosowanie obserwowane): fH(P ) = X j∈H fj nH(P )
• Prawdopodobieństwo wyboru reprezentanta schematu H: pH(P ) = P j∈H fj P jfj = nH(P )fH(P ) N f (P )
• Prawdopodobieństwo przeżycia schematu H przy krzyżowaniu i
mutacji:
ps(H) (1 − pc
δ(H)
m − 1)(1 − pm)
Home Page Title Page JJ II J I Page13of32 Go Back Full Screen Close Quit
Twierdzenie o schematach
• Średnia liczba reprezentantów schematu H w pokoleniu t + 1:
E{nH(Pt+1)} = N pH(Pt) · ps(H) = nH(Pt)fH(Pt)
f (Pt) · ps(H)
• Dla małych wartości pm:
ps(H) (1 − pc δ(H) m − 1)(1 − o(H)pm) • Stąd E{nH(Pt+1)} nH(Pt)fH(Pt) f (Pt) (1 − pc δ(H) m − 1)(1 − o(H)pm)
Home Page Title Page JJ II J I Page14of32 Go Back Full Screen Close Quit
Hipoteza cegiełek
• Cegiełka: krótki (o małej rozpiętości), niskiego rzędu, dobrze
dostosowany schemat
• Hipoteza: Algorytmy genetyczne osiągają wydajność bliską opty-malnej dzięki zestawianiu cegiełek w procesie reprodukcji i krzy-żowania (Goldberg)
Tak jak dziecko buduje swoje imponujące fortece, układając i dopa-sowując drewniane klocki, algorytm genetyczny dochodzi do niemal optymalnej wydajności zestawiając schematy-cegiełki.
(D.E. Goldberg)
• Proces mutacji ma znaczenie drugorzędne (zapobiega fiksacji
genów)
Home Page Title Page JJ II J I Page15of32 Go Back Full Screen Close Quit
Operatory mieszające
dla reprezentacji rzeczywistoliczbowych
• Dziedzina: przestrzeń wektorów m-wymiarowych Rm
• Na ogół nie ma potrzeby rozróżniania genotypów i fenotypów • Można przyjąć, że geny = współrzędne wektora (chromosomu),
allele = liczby rzeczywiste
• Ale wtedy przekształcenia mieszające w większości nie
zachowu-ją alleli, nie ma więc sensu mówić o puli genetycznej populacji
• Zamiast tego można rozważać zbiór osobników osiągalnych C(P ) • Przykłady operatorów mieszających (zachowano tradycyjne
na-zewnictwo):
– rekombinacja dyskretna – krzyżowanie arytmetyczne – krzyżowanie uśredniające
Home Page Title Page JJ II J I Page16of32 Go Back Full Screen Close Quit
Rekombinacja dyskretna
• Liczba osobników rodzicielskich: k 2
• Rodzice x1, x2, . . . , xk wybierani losowo (selekcja beztendencyj-na) z populacji P • Potomek: y = (xξ1 1 , x ξ2 2 , . . . , xξmm) gdzie:
xij — j-ta współrzędna wektora xi
ξ1, ξ2, . . . ξm — niezależne zmienne losowe o rozkładzie jed-nostajnym na {1, . . . , k}
• Inne warianty: analogiczne do krzyżowania jedno- i
dwupunkto-wego dla wektorów binarnych
• Rekombinacja dyskretna zachowuje allele
Home Page Title Page JJ II J I Page17of32 Go Back Full Screen Close Quit
Krzyżowanie arytmetyczne
• Liczba osobników rodzicielskich: 21
• Rodzice x1, x2 wybierani losowo (selekcja beztendencyjna) z
po-pulacji P
• Potomstwo (wersja uproszczona): y1 = ξx1+ (1 − ξ)x2
y2 = (1 − ξ)x1 + ξx2
gdzie ξ — zmienna losowa o rozkładzie jednostajnym na odcinku [0, 1]
• Potomstwo (wersja ogólna): y1 = (y11, y12, . . . , ym1), y2 = (y12, y22, . . . , y2m), przy czym
yj1 = ξjx1j + (1 − ξj)x2j
yj2 = (1 − ξj)x1j + ξjx2j
gdzie ξ1, ξ2, . . . ξm — niezależne zmienne losowe o rozkładzie jednostajnym
na odcinku [0, 1]
Home Page Title Page JJ II J I Page18of32 Go Back Full Screen Close Quit
Krzyżowanie arytmetyczne
— własności
• Zbiór osobników osiągalnych dla pary x1, x2:
– wersja uproszczona:
C({x1, x2}) = odcinek w Rm o końcach x1, x2
– wersja ogólna:
C({x1, x2}) = (wielowymiarowy) prostopadłościan o
bokach równoległych do osi, rozpięty na punktach x1, x2
• Przekształcenia ψu : R2 → R2, ψu1,u2,...,um : R
2 → R2 są
prawie zawsze odwzorowaniami zwężającymi (odległość eukli-desowa potomków jest mniejsza od odległości rodziców)
Home Page Title Page JJ II J I Page19of32 Go Back Full Screen Close Quit
Krzyżowanie uśredniające
• Liczba osobników rodzicielskich: k 2
• Rodzice x1, x2, . . . , xk wybierani losowo (selekcja beztendencyj-na) z populacji P
• Potomek: y = (y1, y2, . . . , ym), przy czym
yj = 1 k k X i=1 xij
• Zbiór osobników osiągalnych dla zestawu rozwiązań
rodziciel-skich jest jednopunktowy (jest to środek ciężkości zbioru roz-wiązań rodzicielskich)
Home Page Title Page JJ II J I Page20of32 Go Back Full Screen Close Quit
Przekształcenia mieszające
dla permutacji
• Nie wiemy, jak ogólnie zdefiniować pojęcie genu
• Jeśli permutację interpretować jako zapis cyklu (ścieżki) w
gra-fie, to geny można utożsamić z krawędziami grafu
• Przekształcenia mieszające definiowane są ad hoc, dla
konkret-nych zadań optymalizacyjkonkret-nych
• Idea: zachować fragmenty struktury osobników rodzicielskich,
nie naruszając poprawności reprezentacji (dopuszczalności roz-wiązań)
• Przykłady „ślepych” przekształceń mieszających dla problemu
komiwojażera:
– UOBX (Uniform Order-Based Crossover; Davis) – PMX (Partially Matched Crossover; Goldberg, Lingle) – OX (Order Crossover; Davis, Oliver)
Home Page Title Page JJ II J I Page21of32 Go Back Full Screen Close Quit
Uniform Order-Based Crossover
(UOBX)• Jest to metoda bazująca na krzyżowaniu jednostajnym dla
wek-torów zerojedynkowych
• Najpierw generujemy (zgodnie z rozkładem jednostajnym)
loso-wą maskę bitoloso-wą o takiej samej długości, co obie permutacje rodzicielskie
• Faza 1: Do pierwszego chromosomu potomnego kopiujemy
ele-menty pierwszego chromosomu rodzicielskiego odpowiadające zerom w masce; do drugiego chromosomu potomnego — ele-menty drugiego chromosomu rodzicielskiego odpowiadające je-dynkom w masce (z zachowaniem pozycji)
• Faza 2: Wypełniamy (od lewa) puste miejsca w obu
chromo-somach potomnych brakującymi elementami wziętymi w takiej kolejności, w jakiej występują w komplementarnym chromoso-mie rodzicielskim
Home Page Title Page JJ II J I Page22of32 Go Back Full Screen Close Quit
UOBX: przykład
• Osobniki rodzicielskie i maska
x = (8 6 4 2 7 5 3 1) y = (1 2 3 4 5 6 7 8) k = (0 1 1 0 1 1 0 0) • Osobniki potomne – Faza 1 u = (8 2 3 1) v = ( 2 3 5 6 ) – Faza 2 u = (8 4 5 2 6 7 3 1) v = (8 2 3 4 5 6 7 1)
Home Page Title Page JJ II J I Page23of32 Go Back Full Screen Close Quit
Partially Matched Crossover (PMX)
• Osobniki rodzicielskie x = (x1 . . . sekcja dopasowania z }| { | xk1. . . xk2 | . . . xm) y = (y1 . . . | yk1. . . yk2 | | {z } sekcja dopasowania . . . ym) • Osobniki potomne u = (u1 . . . sekcja dopasowania z }| { | yk1. . . yk2 | . . . um) v = (v1 . . . | xk1. . . xk2 | | {z } sekcja dopasowania . . . vm)
• W celu uzyskania takiego efektu wykonujemy serię transpozycji w obrębie każdego z chromosomów rodzicielskich. Indeksy k1, k2 wybieramy losowo z
Home Page Title Page JJ II J I Page24of32 Go Back Full Screen Close Quit
PMX: przykład
• Osobniki rodzicielskie x = (10 9 6 | 5 3 7 8 | 1 4 2) y = (10 5 3 | 7 4 1 8 | 2 6 9) • Sekcja dopasowania: k1 = 4, k2 = 7 • Osobniki potomne u = (10 9 6 | 7 4 1 8 | 5 3 2) v = (10 1 4 | 5 3 7 8 | 2 6 9) • Transpozycje dla x: [5 7], [3 4], [5 1] • Transpozycje dla y: [5 7], [3 4], [1 7]Home Page Title Page JJ II J I Page25of32 Go Back Full Screen Close Quit
Order Crossover (OX)
• Osobniki rodzicielskie x = (x1 . . . sekcja dopasowania z }| { | xk1. . . xk2 | . . . xm) y = (y1 . . . | yk1. . . yk2 | | {z } sekcja dopasowania . . . ym) • Osobniki potomne u = (u1 . . . sekcja dopasowania z }| { | yk1. . . yk2 | . . . um) v = (v1 . . . | xk1. . . xk2 | | {z } sekcja dopasowania . . . vm)
• W celu uzyskania takiego efektu do u kopiujemy te elementy z x, które nie występują w sekcji dopasowania skopiowanej z y (cyklicznie, począwszy od pozycji k2 + 1); analogicznie dla v. Indeksy k1, k2 wybieramy losowo z
Home Page Title Page JJ II J I Page26of32 Go Back Full Screen Close Quit
OX: przykład
• Osobniki rodzicielskie x = (9 8 4 | 5 6 7 | 1 3 2 10) y = (8 7 1 | 2 3 10 | 9 5 4 6) • Sekcja dopasowania: k1 = 4, k2 = 6 • Elementy dopełniające x = (9 8 4 | 5 6 7 | 1 ) y = (8 1 | 2 3 10 | 9 4 ) • Osobniki potomne u = (5 6 7 | 2 3 10 | 1 9 8 4) v = (2 3 10 | 5 6 7 | 9 4 8 1)Home Page Title Page JJ II J I Page27of32 Go Back Full Screen Close Quit
Cycle Crossover (CX)
• Każdy element permutacji potomnej zajmuje pozycję taką, jak
w jednej z dwóch permutacji rodzicielskich
• Wybieramy podzbiór I pozycji zawierających jednakowe
pod-zbiory elementów w każdym z rodziców, tzn. taki, że
{xi : i ∈ I} = {yi : i ∈ I}
• Pozostawiamy elementy na pozycjach z I bez zmian, a pozostałe
zamieniamy miejscami
• Aby wyznaczyć podzbiór I, znajdujemy cykl w permutacji yx−1
Home Page Title Page JJ II J I Page28of32 Go Back Full Screen Close Quit
CX: przykład
• Osobniki rodzicielskie x = (9 8 2 1 7 4 5 10 6 3) y = (1 2 3 4 5 6 7 8 9 10)• Poszukiwanie cyklu (pozycja początkowa: 1)
x = (9 − − 1 − 4 − − 6 −) y = (1 − − 4 − 6 − − 9 −)
• Osobniki potomne
u = (9 2 3 1 5 4 7 8 6 10)
Home Page Title Page JJ II J I Page29of32 Go Back Full Screen Close Quit
UZUPEŁNIENIE
Permutacje:
generowanie i mutowanie
Home Page Title Page JJ II J I Page30of32 Go Back Full Screen Close Quit
Generowanie losowej permutacji
// p[1..n] tablica reprezentująca permutację begin
// inicjalizacja for i := 1 to n do
p[i] := i;
// tworzenie losowej permutacji // w czasie liniowym ze względu // na liczbę elementów
for i := n downto 2 do begin j := 1+random(i); k := p[i]; p[i] := p[j]; p[j] := k end end;
Home Page Title Page JJ II J I Page31of32 Go Back Full Screen Close Quit
Elementarne metody mutacji
• Operacja przestawienia: zamieniamy miejscami i-ty i j-ty
ele-ment tablicy (czyli dokonujemy transpozycji eleele-mentów p[i] i p[j] permutacji p) • Liczba operacji: n − 1 2
• Przypadek szczególny: przestawienie sąsiednich elementów • Operacja przesunięcia: wybieramy i-ty element tablicy i
przesta-wiamy go na j-te miejsce (przesuwając elementy znajdujące się na miejscach i + 1, . . . , j o jedno miejsce)
Home Page Title Page JJ II J I Page32of32 Go Back Full Screen Close Quit
Scramble Sublist Mutation
• Osobnik rodzicielski
x = (x1 . . . | xk1. . . xk2 |
| {z }
sekcja mieszania
. . . xm)
• Elementy w sekcji mieszania zostają poddane losowej
permuta-cji; pozostałe nie ulegają zmianie
• Osobnik potomny
u = (x1 . . . | uk1. . . uk2 |
| {z }
sekcja mieszania
. . . xm)
• Indeksy k1, k2 dobieramy losowo z zakresu [1..m] (dla dużych m można wprowadzić ograniczenie na długość)
• Przypadek szczególny: operator 2-exchange — odbicie