Kódování acyklických grafů pro aplikaci genetických algoritmů
description
Transcript of Kódování acyklických grafů pro aplikaci genetických algoritmů
Kódování acyklických grafů pro aplikaci genetických algoritmů
Ondřej Pokorný[email protected]
ČVUT v Praze FJFI
Ukázka aplikace genetických algoritmů Readovy kódy Celulární kódování Parametry genetického algoritmu Výsledky Závěr
Obsah
Obecná aplikace – Jak vypadají◦ zadání úlohy,◦ jedinci,◦ fitness funkce,◦ operátory genetického algoritmu,◦ to vše uvnitř počítače,◦ atd.
Úloha rozvrhu, baseballových výsledků, atd.
Ukázka aplikace genetického algoritmu
Ukázka aplikace genetického algoritmu na grafových strukturách
Ukázka aplikace genetického algoritmu na lineárních řetězcích
Reprezentace grafu2 2 2 0 0 2 2 0 0 0 0S P A L L S A L L L L
0 1 1 1 0 0 0 01 0 1 0 1 1 0 01 1 0 0 1 1 0 01 0 0 0 1 1 0 00 1 1 1 0 1 1 00 1 1 1 1 0 1 00 0 0 0 1 1 0 10 0 0 0 0 0 1 0
Celulární aReadův kód
Matice adjacence
Celulární a Readovo kódování
Reprezentace jedinců GA
Readovy kódy
Převod zakořeněných stromů do lineární podoby (planted plane trees)
Readovy kódy
WAV a BUV očíslování stromu
Readovy kódy
VALENČNÍ KÓDY
Valencí uzlu zakořeněného stromu nazýváme počet hran směřujících do uzlů ve větší výšce z daného uzlu, tzn. pro kořen stromu je to jeho stupeň, pro ostatní uzly o jedna méně než jejich stupeň.
Valenčním kódem je poté posloupnost valencí jednotlivých uzlů seřazená podle vybraného očíslování uzlů stromu.
Readovy kódy
Zisk valenčního kódu (WAV)
2 2 0 0 2 0 1 0
Readovy kódy
Dekódování WAV kódu
Očíslujeme termy WAV kódu od 1 do p. Během algoritmu zůstává očíslování stejné, nezávisle na případném vymazání některých termů. Máme jeden ukazatel, na počátku ukazuje na první term a řídí se podle těchto pravidel:
Jestliže ukazatel ukazuje na nenulový term ui, posuneme ho na další term uj, ignorujíc vymazané termy. Přitom si poznamenáme hranu (ui,uj).
Jestliže ukazatel ukazuje na nulový term, smažeme tento term, posuneme ukazatel zpět na předcházející nenulový a snížíme ho o jedna.
Readovy kódy
DekódováníValenčníhokódu (WAV)
Readovy kódy
Readovy kódyMetoda linearizace zakořeněných stromů
•Rozdělení uzlů do vrstev
•Postupné přiřazování kódu od nejnižší vrstvy
•Výsledný kód vznikne u kořene stromu
Kód stromu 2220010200
Celulární a Readovo kódování
Celulární kódování
Obecná podoba
Celulární kódování (Cellular encoding - CE) je technika pro reprezentaci daného objektu množinou pravidel pro jeho konstrukci namísto jeho přímé specifikace.
Celulární kódování
Frédéric Gruau (1994)
Roman Kalous, František Hakl – myšlenka konstrukce grafů operátory zdvojování uzlů
Celulární kód umělých neuronových sítí je reprezentován tzv. gramatickým stromem (gramatika zakódovaná do stromu) s uspořádanými větvemi, jehož uzly jsou popsány jmény programových symbolů.
Celulární kódování
Každá buňka sítě nese duplikátní kopii celulárního kódu a má vnitřní čtecí hlavu, která čte z gramatického stromu. Symboly, které čte z gramatického stromu, reprezentují instrukce pro vývoj buňky a působí na buňku nebo na její spoje.
Během jednoho kroku vývoje provede buňka instrukci odpovídající znaku, který přečte a posune svoji čtecí hlavu stromem dolů.
Pro ilustraci - celulární kódování, které bude definováno dvěma programovými symboly. Jeden pro tzv. sériové zdvojení buňky (S) a druhý pro paralelní (P).
Celulární kódování
Dekódování gramatického stromu
Frédéric Gruau (1994)
Roman Kalous, František Hakl – myšlenka konstrukce grafů operátory zdvojování uzlů
Celulární kód umělých neuronových sítí je reprezentován tzv. gramatickým stromem (gramatika zakódovaná do stromu) s uspořádanými větvemi, jehož uzly jsou popsány jmény programových symbolů.
Celulární kódování
Obecné zdvojení uzlů
Operátory zdvojování uzlů S (C) P (D, E) A (C, D, E) I (C, D) O (C, E)
Celulární kódování
Kódování se třemi a pěti programovými symboly
Celulární kódování
Celulární kódování
n (délka RK) (S,P) (S,P,A) (S,P,A,I,O) max
3 2 3 5 5
5 6 15 41 61
7 22 93 417 1673
9 90 645 4745 98041
11 394 4791 57829 1,19E+07
Mohutnosti CK
Schröderova čísla 1, 2, 6, 22, 90, 394, 1806
CK se symboly S a P (a A)
Parametry genetického algoritmu
Efektivita CK + RK – dle výsledků aplikace genetického algoritmu
Výběr dvou triviálních úloh
Maximální počet hran
Maximální tok sítí
Jedinci jsou orientované acyklické grafy, v paměti uchováváni jako posloupnost valenčního kódu s parametry
Výběr úlohy = definice fitness funkce
Úloha maximálního počtu hran◦ Prostý součet hran ve výsledném grafu
Úloha maximálního toku sítí◦ dodefinování dalších parametrů acyklického grafu◦ Fordův-Fulkersonův algortimus◦ Pro lepší výsledky čtverec toku
Úlohy pro testování
Parametry genetického algoritmu
Vytvořen softwarový nástroj◦ Implementovány všechny druhy zmíněných kódování
◦ Aplikace operátorů genetického algoritmu na přípustná řešení bez nutnosti užití operátorů opravy
◦ Pro pevné počty vrcholů (20 až 50) byl opakovaně spuštěn genetický algoritmus a pro každou generaci bylo zaznamenáno nejlepší nalezené řešení
◦ Výsledek byl porovnán s nejlepšími řešeními dosaženými náhodným procházením stejného prostoru grafů
Způsob testování
Způsob zdvojování uzlů při tvorbě fenotypu
Zdvojení při dekódování CK při tvorbě fenotypu prostřednictvím operací na adjacenční matici matici
Parametry genetického algoritmu
Porovnání výsledků genetického algoritmu při CK se dvěma a pěti programovými symboly a algoritmu náhodného vyhledávání.
Výsledky
Testování GA
Testování GA
Testování GA
Testování GA
Časová složitost aplikace GA
Shrnutí
◦ Navržena nová varianta celulárního kódování (tj. varianta s více programovými symboly), čímž je rozšířen prostor grafů, které lze kódovat a využít ve vytvořeném SW nástroji pro aplikaci genetického algoritmu
◦ Doklad nutnosti vhodně zvolit variantu kódování s ohledem na typ řešené úlohy
Závěr
Analýza přesného důsledku aplikace operátoru křížení na CK
Otestování na netriviálních úlohách nad prostorem orientovaných acyklických grafů
…
Následné práce
Parametry výpočtu