Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

KATEDRA SYSTEMÓW MULTIMEDIALNYCH

LABORATORIUM

Inteligentne Systemy Decyzyjne

Ćwiczenie 6 i 7:

Algorytmy genetyczne, cz. 1 i cz. 2

Opracowanie:

dr inż. Piotr Szczuko

1. Wprowadzenie

W praktyce inżynierskiej często zachodzi potrzeba znalezienia parametrów, dla których


system/urządzenie będzie działać w sposób optymalny. Klasyczne podejście do optymalizacji jest
następujące:

• Sformułowanie funkcji celu (zależnej od n zmiennych)


a następnie:
• Poszukiwanie minimum lub maksimum funkcji celu

Klasyczne ujęcie charakteryzuje się wieloma problemami praktycznymi i implementacyjnymi:

• Skomplikowany model, trudny do opisania matematycznie,


• Potrzeba wykonania dużej liczby obliczeń,
• „Pułapka” minimum lokalnego.

2. Metody ewolucyjne

Metody ewolucyjne proponują alternatywne podejście do problemu optymalizacji. Dzięki ich


zastosowaniu możliwe jest szybsze przeszukiwanie przestrzeni rozwiązań z uniknięciem pułapek
minimum lokalnego. Algorytmy ewolucyjne stanowią istotny dział nauki o sztucznej inteligencji.
Należy jednak pamiętać, że ich wynik jest jedynie przybliżeniem najlepszego rozwiązania.

Definicja

Algorytm genetyczny (genetic algorithm) - jest jedną z ewolucyjnych metod optymalizacji. Zalicza się
go do klasy algorytmów heurystycznych. Przeszukiwanie możliwych rozwiązań w celu znalezienia
rozwiązania najlepszego lub potencjalnie najlepszego odbywa się za pomocą mechanizmów ewolucji
oraz doboru naturalnego.

3. Zasada działania algorytmu genetycznego

1. Inicjujemy (najczęściej w sposób losowy) pewną początkową populację osobników


2. Poddajemy każdego z nich ocenie
3. Z populacji wybieramy osobniki najlepiej do tego przystosowane. Jeżeli poziom przystosowania
nam odpowiada, kończymy algorytm.
4. Za pomocą operacji genetycznych (krzyżowanie oraz mutacja) tworzymy nowe pokolenie
5. Powrót do 2.

Potencjalne rozwiązania traktowane są jako osobniki populacji. Algorytm symuluje proces naturalnej
selekcji poprzez ocenę przystosowania poszczególnych osobników, eliminację osobników słabszych i
krzyżowanie ze sobą osobników najsilniejszych. Wynikiem działania algorytmu genetycznego jest
populacja najlepiej przystosowanych osobników, wśród których może znajdować się najlepsze
rozwiązanie. Jednocześnie najlepiej przystosowane osobniki nie muszą leżeć blisko siebie w
przestrzeni rozwiązań.

3.1 Funkcja przystosowania

Funkcja przystosowania–(ang. fitness function) – funkcja zwracająca liczbę, będącą oceną jakości
przystosowania osobnika. Przystosowanie osobnika związane jest z jakością danego rozwiązania.
Wartość ta jest generowana na podstawie fenotypu osobnika, a nie rzeczywistych cech z nim
związanych.

3.2 Selekcja

W procesie selekcji wybierane są osobniki najlepiej przystosowane, które zostaną włączone do grupy
rozrodczej i ich genotyp przetrwa do następnego pokolenia, tj. do następnej iteracji algorytmu.
Istotne jest, aby właściwie dobrać stosunek wielkości tworzonej grupy do rozmiaru populacji. Zbyt
małe stosunki (np. 1/1000) mogą doprowadzić do zaniku różnorodności genetycznej i defektów
fenotypów, natomiast zbyt duże (np. 1/2) powodują wprowadzenie do rozrodu zbyt dużej liczby
słabych genów, co również obniża jakość najlepszych osobników.

Przykładowa selekcja:

Selekcja rankingowa - osobniki populacji są sortowane według ich jakości: od najlepszego do


najgorszego. Do dalszego rozrodu przechodzi tylko n najlepiej przystosowanych osobników. Jeżeli
n=1, to mamy do czynienia z podejściem elitarnym, tak jak w przykładzie załączonym do instrukcji.
4. Zadania do wykonania
Część 1: projektowanie

1. Zapoznaj sie z materiałami z wykładu:


http://sound.eti.pg.gda.pl/student/isd/algorytmy_genetyczne.pdf
2. Zapoznaj sie z kodem źródłowym w R i z załączonym przykładem, plik przyklad.r
3. Kompilacja wymaga zainstalowania R i RStudio i uruchamiania poleceniem Code / Source
with Echo (skrót Ctrl+Shift+Enter). Proces jest losowy, więc istotne wyniki uzyskuje się przez
wyznaczenie średniej z kilku uruchomień.
4. Zmień parametry algorytmu:
a. Sprawdź szybkość osiągania rozwiązania dla innej losowej częstości podmiany genów
- if(runif(1)<=0.6)) w wierszu 61
b. Oraz dla innej losowej częstości mutacji if(runif(1)<=0.5)w wierszu 65
5. Skomentuj w sprawozdaniu osiągane wyniki:
a. Jak zależy szybkość osiągania rozwiązanie od prawdopodobieństwa krzyżowania?
b. Jak zależy szybkość osiągania rozwiązanie od prawdopodobieństwa mutacji?

Aby odpowiedzieć na powyższe pytania przygotuj tabelę (np. o rozmiarze 5x5) i


umieść ją w sprawozdaniu:
Prawdopodobieństwo krzyżowania
0.01 0.2 … 0.99
0.2 Nr generacji w … …
której osiągnięto
Prawdopodobieństwo
najlepsze
mutacji
dopasowanie
… … … …
0.9 … … …

6. Uzasadnij w sprawozdaniu dlaczego najlepsze dopasowanie do reguły w przykładzie, da


wynik funkcji oceny=3. Odpowiedź umieść w sprawozdaniu
7. Zaproponuj własne zagadnienie. Propozycję należy skonsultować w trakcie zajęć z
prowadzącym. W razie trudności pobierz przykładowe zagadnienie do realizacji od
prowadzącego
8. Wykonaj projekt genomu dla własnego zagadnienia
9. Wykonaj projekt funkcji oceny dla własnego zagadnienia
10. Umieść w sprawozdaniu opis zrealizowanego projektu – genom oraz funkcję oceny

Część 2: testowanie

1. Zmodyfikuj kod źródłowy, wprowadzając własną definicję genomu i funkcji oceny


zaprojektowane w części 1 laboratorium.
2. W razie potrzeby zmodyfikuj liczbę genów, obiektów w populacji i liczbę generacji
3. Uruchom program, porównaj szybkości uzyskiwania rozwiązania w zależności od parametrów
reprodukcji (przygotowanie tabeli z wynikami podobnie jak w części 1)
Aby odpowiedzieć na powyższe pytanie przygotuj tabelę i umieść ją w sprawozdaniu:
Prawdopodobieństwo krzyżowania
0.01 0.2 … 0.99
0.2 Nr generacji w … …
której osiągnięto
Prawdopodobieństwo
najlepsze
mutacji
dopasowanie
… … … …
0.99 … … …

4. Kod źródłowy dołącz do sprawozdania


5. Wykonaj implementację innej metody krzyżowania i mutacji na podstawie materiałów z
wykładu
6. Ponownie uruchom symulację dla nowej metody zaimplementowanej w punkcie 5.,
porównaj szybkości uzyskiwania rozwiązania w zależności od parametrów reprodukcji
(przygotowanie tabeli z wynikami podobnie jak w części 1)
7. Porównaj w sprawozdaniu efekty działania algorytmu w obu wersjach
8. Do sprawozdania dołącz kod źródłowy z opracowanym rozwiązaniem

You might also like