algorytmy ewolucyjne AG

background image

Katedra

Podstaw

Konstrukcji

Maszyn

Wydział

Mechaniczny

Technologiczny

Politechnika

Śląska

ul. Konarskiego 18a

44-100 Gliwice

tel. 32 237 1467

fax. 32 237 1360

http://kpkm.polsl.pl

Metody Sztucznej

Inteligencji

Kierunek studiów AiR, semestr IV

Prowadzący przedmiot
dr inż. Krzysztof Ciupke

Rok akademicki 2010/11

Temat:

Algorytmy ewolucyjne. Zadanie
optymalizacji.

Opracował: dr inż. G.Urbanek, dr inż. P.Chrzanowski

MSI-AG-R

Gliwice 2011-03-29

- 1/7 -

background image

1. Cel ćwiczenia

Celem ćwiczenia jest zapoznanie się z algorytmami genetycznymi oraz z ich praktycznym

zastosowaniem w szczególności w zagadnieniach optymalizacji.

2. Wprowadzenie teoretyczne

Algorytmy ewolucyjne (ang. Evolutionary Algorithms), służą do przeszukiwania przestrzeni

alternatywnych rozwiązań problemu w celu odnalezienia rozwiązań najlepszych lub potencjal-

nie najlepszych. Zalicza się je do klasy algorytmów heurystycznych. Przeszukiwanie odbywa

się za pomocą mechanizmów ewolucji oraz doboru naturalnego poprzez odpowiednie prze-

kształcanie zbioru elementów (osobników) za pomocą tzw. operatorów genetycznych. Zbiór

elementów (osobników) nazywany jest pokoleniem. Zbiór ten przekształcony za pomocą opera-

torów genetycznych stanowi kolejne pokolenie. Działania te powtarzane są w sposób iteracyjny.

Elementy (osobniki) przekształcanego zbioru należą do przestrzeni zadania i są potencjalnymi

rozwiązaniami. Celem algorytmu genetycznego jest wyszukanie osobnika najlepiej spełniające-

go kryterium określonego w funkcji oceniającej.

Genotyp osobnika składa się z chromosomów (najczęściej jednego), które składają się z

elementarnych części, zwanych genami. Przykładowo, w zadaniu optymalizacji funkcji f, ge-

notypem osobnika są współrzędne punktu, fenotypem jest wartość funkcji f w tym punkcie.

Wartość funkcji oceniającej wyliczana jest na podstawie fenotypu.

Ogólną postać algorytmu genetycznego przedstawia rys. 1.

Przeprowadzenie optymalizacji za pomocą algorytmu genetycznego wymaga określenia na-

stępujących elementów:

• reprezentacji potencjalnych rozwiązań zadania,

Rys. 1: Podstawowy algorytm genetyczny; oznaczenia: t – czas (licznik kroków), P – populacja,
R – rodzice, D – dzieci [5], [3]

MSI-AG-R

Gliwice 2011-03-29

- 2/7 -

background image

• sposobu tworzenia początkowej populacji potencjalnych rozwiązań,

• funkcji oceniającej,

• sposobu prowadzenia selekcji i sukcesji,

• sposobu prowadzenia reprodukcji (operatory krzyżowania i mutacji),

• wartości różnych parametrów używanych w algorytmie genetycznym (rozmiar populacji,

prawdopodobieństwa użycia operatorów genetycznych itp.).

2.1. Reprezentacja potencjalnych rozwiązań zadania

Metody reprezentacji elementów przestrzeni (nazywanych osobnikami), w której poszukiwane

jest rozwiązanie optymalne można podzielić na dwie grupy [3]:

1. z chromosomami, w których geny są ułożone liniowo,

2. z chromosomami, w których geny są złożonymi strukturami.

Powszechnie w algorytmach genetycznych stosowane są chromosomy z liniowo ułożonymi

genami kodowanymi binarnie. Wartości wszystkich cech (genów) każdego osobnika zostają

przedstawione za pomocą liczb binarnych; „sklejone” razem stanowią chromosom. Reprezen-

tacja ta ułatwia analizę teoretyczną i umożliwia wprowadzenie bardzo prostych operatorów

genetycznych. Główną jej wadą jest bardzo duża długość chromosomu dla wielowymiarowych

zadań wymagających dużej dokładności, co prowadzi do bardzo dużej liczebności przestrzeni

przeszukiwania [5].

Innym sposobem jest zapis wartości cech (genów) w postaci dziesiętnej. Chromosom ma

wtedy postać macierzy liczb, każda liczba jest wartością jednej z rozpatrywanych cech. Taki

zapis eliminuje konieczność kodowania chromosomów (przestrzeń reprezentacji jest przestrze-

nią zadania). Stosowanie chromosomów, będących złożonymi strukturami genów, wymaga

opracowania odpowiednich operatorów genetycznych.

2.2. Generowanie rozwiązania początkowego

Populacja początkowa najczęściej (chyba że są uzasadnione podstawy, żeby postąpić inaczej)

generowana jest w sposób losowy. W przypadku kodowania binarnego losuje się wartość każdego

genu i w ten sposób tworzy się całą populację. W przypadku kodowania liczbowego, wartość

każdego genu jest losowana z przedziału zmienności wartości cechy, którą on reprezentuje.

2.3. Funkcja oceniająca

Funkcja oceniająca jest jednym z najważniejszych elementów warunkujących skuteczne działa-

nie algorytmu genetycznego. Nieodpowiednia funkcja oceniająca prowadzi do błędnego działa-

nia. Niestety, nie istnieje ogólny „przepis” na opracowanie dobrej funkcji oceniającej. Funkcję

taką zwykle wyznacza się indywidualnie do danego zadania.

MSI-AG-R

Gliwice 2011-03-29

- 3/7 -

background image

2.4. Selekcja i sukcesja

Selekcja określa sposób wyłaniania z rozpatrywanej populacji zbioru rodziców, który poddawany

działaniu operacji genetycznych, daje zbiór dzieci. Sukcesja wyznacza dla pokolenia rodziców

i potomków nową populację bazową dla kolejnego kroku algorytmu genetycznego.

Przykłady metod selekcji:

• selekcja proporcjonalna: jest procesem, w którym chromosomy zostają powielone w sto-

sunku zależnym (wprost proporcjonalnie) od wartości, jakie przybiera dla nich funkcja

oceniająca; stosowanie tej metody jest możliwe tylko wtedy, gdy funkcja oceniająca

przyjmuje wyłącznie wartości dodatnie;

• selekcja turniejowa: populację dzieli się na szereg dowolnie licznych grup. Następnie z

każdej z nich wybieramy osobnika o najlepszym przystosowaniu.

Przykłady metod sukcesji:

• sukcesja trywialna polega na tym, że nową populacją staje się zbiór dzieci: P[t]:=D[t];

• sukcesja elitarna przeprowadzana jest w dwóch krokach: najpierw wybiera się z P[t-1]

n najlepszych chromosomów: P

n

[t-1], następnie populacja P[t] jest tworzona przez

wybór m najlepszych osobników ze złączenia P

n

[t-1]P

m

[t].

2.5. Reprodukcja

Na reprodukcję składają się dwa operatory: krzyżowania i mutacji.

Najczęściej przyjmuje się, że w krzyżowaniu biorą udział dwa osobniki rodzicielskie, w wy-

niku otrzymuje się jeden lub dwa osobniki potomne.

Przykłady metod krzyżowania:

• krzyżowanie proste (jednopunktowe) przebiega w dwóch etapach: w pierwszej fazie koja-

rzy się w sposób losowy ciągi z puli rodzicielskiej w pary. Następnie każda para przechodzi

proces krzyżowania. Odbywa się to następująco: wybiera się w sposób losowy (z jednako-

wym prawdopodobieństwem) punkt krzyżowania k spośród l − 1 początkowych pozycji

w chromosomie, po czym zamienia się miejscami wszystkie znaki od pozycji k + 1 do

l włącznie w obu elementach pary, tworząc w ten sposób dwa nowe ciągi;

• krzyżowanie wielopunktowe przebiega analogicznie jak krzyżowanie jednopunktowe, z tą

różnicą, że wybiera się więcej niż jeden punkt cięcia;

• krzyżowanie jednorodne przebiega następująco: dla każdego bitu pierwszego potomka

decyduje się (z pewnym prawdopodobieństwem), od którego z rodziców pobierze się

wartość, drugi potomek otrzymuje bit od pozostałego rodzica;

• inne.

MSI-AG-R

Gliwice 2011-03-29

- 4/7 -

background image

Rys. 2: Przykład krzyżowania prostego

Przykłady metod mutacji:

• mutacja równomierna zmienia jeden lub więcej bitów na przeciwny z określonym praw-

dopodobieństwem;

• mutacja nierównomierna uwzględnia wiek populacji: wraz ze wzrostem wieku populacji

bity znajdujące się bardziej na prawo w sekwencji kodu chromosomu otrzymują większe

prawdopodobieństwo mutacji, znajdujące się zaś na lewo mniejsze;

• mutacja „rzeczywistoliczbowa” stosowana jest wtedy, jeśli geny przyjmują wartości ze

zbioru liczb rzeczywistych, i polega na perturbacji wartości genu przez dodanie liczby

wygenerowanej w sposób losowy.

Rys. 3: Przykład mutacji równomiernej

2.6. Warunki zakończenia działania algorytmu genetycznego

Można określić dwa warunki zakończenia działania algorytmu genetycznego:

• algorytm działa do momentu osiągnięcia osobnika o określonym przystosowaniu wyzna-

czanym wg funkcji oceniającej,

• kolejne kroki w pętli while (por. rys. 1 wykonywane są zadaną liczbę razy.

Najczęściej stosuje się obydwa warunki jednocześnie. Algorytm kończy działania, gdy zo-

stanie spełniony jeden z nich.

2.7. Parametry algorytmu genetycznego

Tradycyjnie algorytmy genetyczne, operują na populacji, której liczebność w czasie optyma-

lizacji nie zmienia się. Można również zastosować algorytm genetyczny ze zmienną liczebno-

ścią populacji. Algorytm ten nie zawiera żadnej odmiany mechanizmu selekcji, ale wprowadza

pojęcie „wieku” chromosomu, co jest równoważne liczbie pokoleń, przez które chromosom

pozostaje „żywy” [5].

MSI-AG-R

Gliwice 2011-03-29

- 5/7 -

background image

Nie ma zaleceń co do doboru wartości prawdopodobieństwa krzyżowania i mutacji, najczę-

ściej dokonuje się tego doświadczalnie. Zwykle prawdopodobieństwo krzyżowania zawiera się

w przedziale [0,25; 0,75], zaś prawdopodobieństwo mutacji w przedziale [0,005; 0,05].

3. Zadanie do wykonania

Przeprowadzić optymalizację z użyciem pakietu genalg [6] w środowisku R, polegającą na

znalezieniu maksimum globalnego funkcji o postaci podanej przez prowadzącego.

W tym celu należy m.in.:

1. Narysować wykres podanej funkcji w ustalonym przedziale,

2. Opracować funkcję oceniającą (evaluate),

3. Stosując funkcję evaluate przeprowadzić optymalizację poszukując maksimum globalne-

go dla wskazanej funkcji,

4. Przedstawić uzyskane wyniki w postaci graficznej,

5. Zweryfikować parametry algorytmu genetycznego jak: rozmiar populacji, liczba iteracji,

parametry mutacji,

6. Przeprowadzić obliczenia dla innych konfiguracji parametrów,

7. Dokonać analizy uzyskanych wyników,

8. Opracować zwięzłe sprawozdanie, zawierające uzyskane wyniki oraz wnioski określające

wpływ przyjętych parametrów na wyniki.

4. Przykład w środowisku R [6]:

# funkcja oceniająca dopasowanie do pi oraz sqrt(50)

evaluate <- function(string=c()) {
returnVal = NA;
if (length(string) == 2) {

returnVal = abs(string[1]-pi) + abs(string[2]-sqrt(50));

} else {

stop("Wprowadzono błędną długość chromosomu.");

}

returnVal

}

# algorytm genetyczny dla ustalonych parametrów

rbga.results = rbga(c(1, 1), c(5, 10),

evalFunc=evaluate, verbose=TRUE, mutationChance=0.01)

# prezentacja wyników algorytmu genetycznego

plot(rbga.results)
plot(rbga.results, type="hist")
plot(rbga.results, type="vars")

MSI-AG-R

Gliwice 2011-03-29

- 6/7 -

background image

Literatura

[1] Arabas J.: Algorytmy ewolucyjne: przegląd tematyki. AI-Mech 2000, Materiały konferen-

cyjne, Gliwice 2000, s. 3–23.

[2] Arabas J.: Wykłady z algorytmów genetycznych. WNT, Warszawa, 2001.

[3] Cholewa W.: Wykład z przedmiotu metody heurystyczne. Materiały niepublikowane,

Gliwice, 2001.

[4] Goldberg D.E.: Algorytmy genetyczne i ich zastosowania. WNT, Warszawa, 1998.

[5] Michalewicz Z.:

Algorytmy genetyczne + struktury danych = programy ewolucyjne.

WNT, Warszawa, 1999.

[6] Willighagen E.: genalg: R Based Genetic Algorithm. http://cran.r-project.org/

[7] Algorytmy ewolucyjne http: // www. eioba. pl/ a/ 7t/ algorytmy-ewolucyjne

[8] Życie, modelowanie, symulacja http: // www. alife. pl/ dummies/ p/ index. html

MSI-AG-R

Gliwice 2011-03-29

- 7/7 -


Document Outline


Wyszukiwarka

Podobne podstrony:
Algorytmy Genetyczne, AG 1
Algorytmy Genetyczne AG 3 id 61 Nieznany (2)
algorytmy ewolucyjne
5 Charakterystyka algorytmów ewolucyjnych i genetycznych 3 doc
Algorytmy Genetyczne AG 5
Algorytmy Ewolucyjne
Podstawy algorytmów ewolucyjnych2013
Algorytmy ewolucyjne cz4
Algorytmy Genetyczne AG 6
algorytmy ewolucyjne id 57660 Nieznany
22 Gecow, Algorytmy ewolucyjne i genetyczne, ewolucja sieci zlozonych i modele regulacji genowej a m
Algorytmy Genetyczne, AG 4
Algorytmy Genetyczne, AG 2
5 Charakterystyka algorytmów ewolucyjnych i genetycznych
5 Charakterystyka algorytmów ewolucyjnych i genetycznych 2
Algorytmy Genetyczne AG 2
Algorytmy Genetyczne, AG 5
5 Charakterystyka algorytmów ewolucyjnych i genetycznych
5 Charakterystyka algorytmów ewolucyjnych i genetycznych 4

więcej podobnych podstron