Algorytmy ewolucyjne (obliczenia ewolucyjne)
Transkrypt
Algorytmy ewolucyjne (obliczenia ewolucyjne)
Algorytmy ewolucyjne algorytmy genetyczne
I. Karcz-Dulęba
Algorytmy klasyczne a
algorytmy ewolucyjne
Przeszukiwanie
przestrzeni przez
jeden punkt bazowy
Przeszukiwanie
przestrzeni przez zbiór
punktów bazowych
Kolejne rozwiązania
generowane w
oparciu o wyliczanie
pewnych
charakterystyk funkcji
celu np. gradientu
Kolejne rozwiązania
generowane w
oparciu o
wykorzystanie
mechanizmów
analogicznych do
reprodukcji
biologicznej
Terminologia
Osobnik – rozwiązanie, punkt bazowy
Chromosom – łańcuch cech (genów) osobnika
Gen - pojedynczy element chromosomu
Allel – wartość genu (0,1)
Locus – pozycja (miejsce) genu w chromosomie)
Genotyp – zespół genów danego organizmu warunkujących
dziedziczenie (w GA chromosom)
Fenotyp – zbiór cech organizmu uwarunkowany przez
genotyp i środowisko, służący do wyliczania przystosowania
osobnika
Przystosowanie – wartość liczbowa określająca jakość
osobnika , wyliczana na podstawie nieujemnej funkcji
przystosowania (celu)
Populacja - zbiór punktów bazowych, osobników
Selekcja (selection), krzyżowanie (crossover), mutacja
(mutation) – operacje genetyczne
Algorytm genetyczny
(klasyczny - SGA)
Osobniki opisywane przez binarnie
kodowane chromosomy o stałej
długości
Geny przyjmują wartości 0 lub 1
Selekcja proporcjonalna
Krzyżowanie jednopunktowe
Mutacja bitowa
Algorytm genetyczny
1.
2.
3.
4.
5.
Populacja początkowa
Ocena przystosowania
Selekcja proporcjonalna
Krzyżowanie
jednopunktowe
Mutacja
procedure GA; {
t = 0;
initialize population P(t);
evaluate P(t);
until (done) {
t = t + 1;
parent_selection P(t);
recombine P(t)
mutate P(t);
evaluate P(t);
}}
Dane początkowe
Zadanie optymalizacyjne: znaleźć maksimum danej
funkcji przystosowania np. f(x)=10x2-x, x Є[0,10]
Parametry:
rozmiar populacji m,
długość łańcucha binarnego (chromosomu) l,
Warunek zatrzymania algorytmu (np. liczba generacji lg)
Prawdopodobieństwo krzyżowania pc
Prawdopodobieństwo mutacji pm
Algorytm genetyczny
1.
2.
3.
4.
5.
Populacja początkowa
Ocena przystosowania
Selekcja proporcjonalna
Krzyżowanie
jednopunktowe
Mutacja
procedure GA; {
t = 0;
initialize population P(t);
evaluate P(t);
until (done) {
t = t + 1;
parent_selection P(t);
recombine P(t)
mutate P(t);
evaluate P(t);
}}
Populacja początkowa
Osobnik x zakodowany w postaci ciągu
binarnego o długości l
xi=0110011101 (l=10)
Populacja m-elementowa
P0={x01, x02, …, x0m}
Losowa populacja początkowa
(macierz [m, l], randint)
0110011101
1011010100
…
1100001001
Algorytm genetyczny
1.
2.
3.
4.
5.
Populacja początkowa
Ocena przystosowania
Selekcja proporcjonalna
Krzyżowanie
jednopunktowe
Mutacja
procedure GA; {
t = 0;
initialize population P(t);
evaluate P(t);
until (done) {
t = t + 1;
parent_selection P(t);
recombine P(t)
mutate P(t);
evaluate P(t);
}}
Ocena przystosowania
Ocena osobników na podstawie fenotypów
wymaga zdekodowania binarnego
chromosomu do przestrzeni fenotypów
Zadanie wstępne: znaleźć osobnika o
największej liczbie jedynek w łańcuchu
0110011101 f(x)=6
1011010100 f(x)=5
…
1100001001 f(x)=4
Algorytm genetyczny
1.
2.
3.
4.
5.
Populacja początkowa
Ocena przystosowania
Selekcja proporcjonalna
Krzyżowanie
jednopunktowe
Mutacja
procedure GA; {
t = 0;
initialize population P(t);
evaluate P(t);
until (done) {
t = t + 1;
parent_selection P(t);
recombine P(t)
mutate P(t);
evaluate P(t);
}}
Selekcja proporcjonalna
(ruletkowa)
• Wybór rodzica zależny od jego
jakości, zgodnie z
prawdopodobieństwem:
p ( xi )
f ( xi )
m
f (x )
j 1
j
• Wykonanie m losowań ruletką, na
której kole przydzielono sektory
proporcjonalne do wartości
przystosowanie
Koło ruletki
100000010010
011001100110
100001000000
000000100000
f(x1)=3
f(x2)=6
f(x3)=2
f(x4)=1
r=25%
r=50%
r=16.6%
r=8.4%
Metoda odwrotnej dystrybuanty
p (x) { p( x1 ), p ( x2 ),..., p( xm )}
•
Budujemy funkcję odwrotnej
dystrybuanty zliczając sumy
cząstkowe z wektora
i
1
p(x4)
fp(x3)
p(x3)
fp(x2)
fp ( xi ) p ( xk ), i 1,..., m
•
Znajdujemy numer osobnika,
dla którego:
fp(xi) >= rand
rand – liczba losowa z przedziału [0,1]
•
p(x2)
k 1
Wybrany osobnik zostawi
potomka w kolejnej generacji
rand
fp(x1)
p(x1)
Algorytm genetyczny
1.
2.
3.
4.
5.
Populacja początkowa
Ocena przystosowania
Selekcja proporcjonalna
Krzyżowanie
jednopunktowe
Mutacja
procedure GA; {
t = 0;
initialize population P(t);
evaluate P(t);
until (done) {
t = t + 1;
parent_selection P(t);
recombine P(t)
mutate P(t);
evaluate P(t);
}}
Krzyżowanie jednopunktowe
Losowe kojarzenie w pary osobników
wybranych w procesie selekcji
Krzyżowanie z wybranym prawdopodobieństwem pc
Losowo wybierany punkt krzyżowania k
Wymiana odpowiednich części łańcucha
pomiędzy rodzicami
k=4, 0110|011101 -> 0110010100
1011|010100 -> 1011011101
Algorytm genetyczny
1.
2.
3.
4.
5.
Populacja początkowa
Ocena przystosowania
Selekcja proporcjonalna
Krzyżowanie
jednopunktowe
Mutacja
procedure GA; {
t = 0;
initialize population P(t);
evaluate P(t);
until (done) {
t = t + 1;
parent_selection P(t);
recombine P(t)
mutate P(t);
evaluate P(t);
}}
Mutacja
Losowa zmiana wartości genu (0 <>1)
Mutacja z wybranym prawdopodobieństwem pm,
które zwykle jest znacznie mniejsze niż
prawdopodobieństwo krzyżowania pc
k=5,
0110011101 -> 0110111101
Kryterium zatrzymania
Osiągniecie optimum!
Ograniczenia zasobów CPU:
maksymalna liczba wyliczeń funkcji przystosowania
Ograniczenie na cierpliwość użytkownika:
po kilku (kilkunastu, kilkudziesięciu) generacjach
bez poprawy
Inne uwagi
Wykorzystywać możliwości Matlaba,
szczególnie do pracy z macierzami i
wektorami
Program główny + podprogramy
Zwięzłość kodu
inicjalizacja – 1 linijka
mutacja – 1 linijka
Algorytm genetyczny
Literatura
D. Goldberg, Algorytmy Genetyczne w
zastosowaniach, WNT, W-wa,1995
Z. Michalewicz, Algorytmy genetyczne+
struktury danych =programy
ewolucyjne, WNT, W-wa, 1996
J. Arabas, Wykłady z algorytmów
ewolucyjnych, WNT, W-wa, 2001
Algorytm
genetyczny - program
Parametry:
1.
2.
3.
4.
5.
rozmiar populacji - m
długość łańcucha binarnego - l
warunek zatrzymania algorytmu – lg
Losowa populacja początkowa
- macierz [m, l], randint
Ocena przystosowania - znaleźć osobnika
o największej liczbie jedynek w łańcuchu
Selekcja proporcjonalna – metoda
odwrotnej dystrybuanty
Krzyżowanie jednopunktowe
Mutacja jednobitowa
procedure GA; {
t = 0;
initialize population P(t);
evaluate P(t);
until (done) {
t = t + 1;
parent_selection P(t);
recombine P(t)
mutate P(t);
evaluate P(t);
}}