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);
}}