• Nie Znaleziono Wyników

Algorytm genetyczny

W dokumencie Index of /rozprawy2/10260 (Stron 55-58)

3.4 Algorytmy metaheurystyczne

3.4.2 Algorytm genetyczny

Idea algorytmu genetycznego jest zaczerpnięta z nauk przyrodniczych. Twórcą kon-cepcji był Holland w 1975 r. [60]. Sposób przeszukiwania potencjalnych rozwiązań w GA naśladuje procesy naturalne: dziedziczenie genetyczne i zjawiska doboru natural-nego. Mechanizmy doboru naturalnego (selekcji) prowadzą do przetrwania osobników najlepiej przystosowanych w danym środowisku. Osobniki, które przetrwają – przeka-zują informację genetyczną swoim potomkom (operacje krzyżowania, mutacji). Kolejne pokolenia są przeciętnie coraz lepiej dostosowane do warunków środowiska.

Schemat działania algorytmu genetycznego przedstawiony jest na rysunku 6.

t := 0 // Krok 1 – inicjalizacja:

znajdź P(0) // generowanie populacji początkowej oceń P(0) // obliczenie funkcji przystosowania repeat

t: = t+1

Wybierz P(t) z P(t-1) // Krok 2 - selekcja osobników

Zmień P(t) // Krok 3 i 4 – krzyżowanie, mutacja Oceń P(t) // obliczanie funkcji przystosowania until (Warunek_Stopu)

Kolejne kroki algorytmu genetycznego można opisać następująco:

Krok 1:

Inicjalizacja.

Generowanie populacji początkowej (przy użyciu najlepszych algorytmów me-todą wstawień, priorytetowych i losowo). Ustalenie parametrów algorytmu: prawdopodobieństwa krzyżowania, mutacji, liczby pokoleń, rozmiaru popula-cji i liczby osobników elitarnych.

Krok 2:

Selekcja.

Wybór osobników do nowej populacji. Stosowane metody: rankingowa, koła ruletki, turniejowa, ze strategią elitarną lub bez.

Krok 3:

Krzyżowanie.

Wybór osobników (rodziców) do rozmnażania i następnie przeprowadzenie wymiany materiału genetycznego między losowo dobranymi rodzicami przy zastosowaniu wybranego operatora krzyżowania.

Krok 4:

Mutacja.

Na wybranych osobnikach zmiany w liście zadań przy użyciu wybranego ope-ratora mutacji (mutacje typu Wstaw, Zamień, Zamień sąsiednie, Inwersja). Kroki 2-4 powtarzane są aż do spełnienia warunku STOP-u np. przebieg algorytmu przez określoną liczbę pokoleń.

W zagadnieniu optymalizacji genetycznej bardzo istotne jest właściwe określenie funkcji przystosowania fitness. Jest to odpowiednio przekształcona funkcja celu F roz-ważanego problemu. W tej pracy autor proponuje zastosować następujące skalowanie funkcji F do funkcji przystosowania fitnessi:

populacji rozmiar j j i i F fitness fitness _ ... 1 ) min(   (33) gdzie:

Fi – wartość funkcji celu Fn określonej wzorem (13) dla osobnika i,

fitnessi – wartość funkcji przystosowania osobnika i.

Funkcja przystosowania jest wykorzystywana do oceny osobników przy wyborze (selekcji) do nowej populacji. W GA stosowane są m.in. następujące metody selekcji [125]:

- selekcja turniejowa – do udziału w turnieju z całej populacji losowanych (ze zwraca-niem) jest kilka chromosomów, najlepszy z nich wybierany jest do nowej populacji, - selekcja metodą koła ruletki, proporcjonalna – losowanie chromosomów z rozkładem

opartym o funkcje przystosowania,

- selekcja rankingowa – tworzony jest ranking osobników zgodnie z rosnącą wartością funkcji przystosowania, na podstawie rankingu każdemu osobnikowi przydzielana jest liczba szans: najsłabszy osobnik otrzymuje jedną szansę, natomiast najsilniejszy liczbę szans równą rozmiarowi populacji, do nowej populacji losowane są chromo-somy zgodnie z rozkładem opartym o liczbę szans poszczególnych osobników.

Spośród metod selekcji eksperymentalnie zostanie wybrana najlepsza procedura wyboru nowych osobników do kolejnych populacji.

Poza wyborem metod selekcji istotne jest znalezienie najlepszych operatorów gene-tycznych. Spośród znanych operatorów krzyżowania dla problemu RCPSP stosowane są te, które nie zaburzają zależności kolejnościowych [99]:

- 1PX (krzyżowanie jednopunktowe ang. One-Point Crossover) – osobnik potomny powstaje przez skopiowanie genów od pierwszej pozycji do punktu krzyżowania od jednego z rodziców a brakujące geny są uzupełniane w kolejności ich występowania u drugiego z rodziców.

- 2PX (krzyżowanie dwupunktowe ang. Two-Points Crossover) – osobnik potomny powstaje przez skopiowanie genów od jednego z rodziców (poza fragmentem chro-mosomu między dwoma wylosowanymi punktami krzyżowania) i uzupełnieniu bra-kujących genów w kolejności ich występowania u drugiego z rodziców.

- PPX [16] (krzyżowanie z zachowaniem następstwa ang. Precedence Preservance

Crossover) – na początku wyznaczany jest wektor V o długości równej rozmiarowi

chromosomu, złożony z losowo wygenerowanych 0 i 1. Osobnik potomny powstaje poprzez kopiowanie kolejnych genów z chromosomów rodzicielskich Rodzic1 i

Ro-dzic2 na podstawie wszystkich kolejnych wartości wektora V: gdy na danej pozycji

w wektorze V jest wartość 0 do potomka gen jest kopiowany z chromosomu

Ro-dzic1, gdy jest wartość 1 gen z chromosomu Rodzic2. Po dopisaniu do potomka dany

gen jest usuwany z obu rodziców.

Poza znanymi krzyżówkami proponowany jest nowy operator krzyżowania z regułami priorytetowymi PRX8. Operator ten zachowuje kolejność genów występującą u rodzi-ców z dodatkowym uporządkowaniem fragmentu chromosomu zgodnie z określoną regułą priorytetową. Losowane są dwa punkty krzyżowania, które dzielą chromosom na trzy części Fr1, Fr2 i Fr3. Następnie losowana jest kolejność przydzielania genów do poszczególnych części np. załóżmy, że dla potomka 1 wylosowano następujący przy-dział: fragment Fr1 – Rodzic1, fragment Fr2 – lista priorytetowa, fragment Fr3 –

Ro-dzic2. Wtedy dla potomka 2: fragment Fr1 – Rodzic2, fragment Fr2 – lista

prioryteto-wa, fragment Fr3 – Rodzic1. Przykład działania operatora dla tak ustalonej kolejności przepisywania genów operatora przedstawiony jest na rysunku 7. Chromosom

Poto-mek1 powstaje następująco:

- fragment Fr1 jest przepisany z Rodzic1, te dodane geny z Rodzic1 do Potomek1 są wykreślane z listy priorytetowej i z Rodzic2,

- fragment Fr2 powstaje przez przepisanie z listy priorytetowej, w kolejności wystę-powania na tej liście, nie wykreślonych do tej pory genów, geny te są wykreślane z chromosomu Rodzic2,

- fragment Fr3 zostaje wypełniony genami nie wykreślonymi w chromosomie Rodzic2 w kolejności ich występowania w chromosomie Rodzic2.

8Wyniki eksperymentów przeprowadzonych przez autora dla algorytmu genetycznego, w którym stoso-wany jest operator PRX są gorsze niż uzyskane przy zastosowaniu znanych operatorów krzyżowania. Dla celów porównawczych pozostawiono jednak opis operatora PRX i zaprezentowano wyniki uzyskane przy jego zastosowaniu.

Rysunek 7. Przykład działania nowego operatora krzyżowania dla listy priorytetowej czynności {1, 3, 2, 6, 7, 8, 4, 5, 10, 9}.

Konstrukcja proponowanego operatora krzyżowania gwarantuje, że jego wykorzystanie nie powoduje zaburzenia zależności kolejnościowych występujących w sieci projektu.

Jako techniki jednoargumentowe, zwane w GA mutacjami, zastosowane są ruchy opisane w SA (poza ruchami Zamień wszystkie, Zamień sąs. wszystkie, Wstaw

wszyst-kie).

W klasycznym algorytmie genetycznym nie są sprawdzane na bieżąco rozwiązania a przeprowadzane operacje mutacji, krzyżowania mogą „zniekształcać” obiecujące listy czynności. Autor proponuje także hybrydową wersję GA, w której w każdym kolejnym pokoleniu najlepszy osobnik poddany jest lokalnemu przeszukiwaniu przy użyciu tech-nik jednoargumentowych tj. mutacji Wstaw wszystkie, Zamień wszystkie, Zamień sąs.

wszystkie.

3.5 Analiza obliczeniowa efektywności algorytmów

W dokumencie Index of /rozprawy2/10260 (Stron 55-58)