Genetické Genetické algoritmyalgoritmy
Filip DušekFilip Dušek 2004 – V 53
ČVUT v Praze – fakulta StavebníČVUT v Praze – fakulta Stavební
ÚvodÚvod
začátkem 60. let vzniká nový směr v rozvoji informatiky – začátkem 60. let vzniká nový směr v rozvoji informatiky – genetické algoritmygenetické algoritmy
tyto algoritmy vycházejí z Darwinovy teorie o vývoji tyto algoritmy vycházejí z Darwinovy teorie o vývoji druhu.druhu.
úspěšně se používají k řešení optimalizačních problémůúspěšně se používají k řešení optimalizačních problémů
Genetický algoritmusGenetický algoritmus
algoritmus určený pro řešení optimalizačních úloh algoritmus určený pro řešení optimalizačních úloh prostřednictvím opakovaného používání genetických prostřednictvím opakovaného používání genetických operací na jeho operací na jeho jedincích jedincích (genech)(genech)
mezi základní genetické operace řadíme mezi základní genetické operace řadíme reprodukcireprodukci, , mutacimutaci a a kříženíkřížení
Princip genetického algoritmuPrincip genetického algoritmu
podle teorie Charlese Darwina v přírodě přežívají silnější podle teorie Charlese Darwina v přírodě přežívají silnější jedinci a tito pak mají šanci předat svoji genetickou jedinci a tito pak mají šanci předat svoji genetickou informaci do další generace. Důležité přitom je, že každý informaci do další generace. Důležité přitom je, že každý organismus je potomkem dvou rodičů a tudíž se v něm organismus je potomkem dvou rodičů a tudíž se v něm mísí genetické informace obou rodičů. Neboli informace mísí genetické informace obou rodičů. Neboli informace uložené v jeho chromozómech jsou z části převzaté uložené v jeho chromozómech jsou z části převzaté od jednoho z rodičů a z části od rodiče druhého.od jednoho z rodičů a z části od rodiče druhého.
Na těchto základních principech pracuje i genetický Na těchto základních principech pracuje i genetický algoritmus. Algoritmus tedy pracuje s jistými jedinci algoritmus. Algoritmus tedy pracuje s jistými jedinci (populací jedinců), jejichž vlastnosti má reprezentovány (populací jedinců), jejichž vlastnosti má reprezentovány v určité struktuře, která je připodobněním chromozómu v určité struktuře, která je připodobněním chromozómu tohoto organismu. Cílem algoritmu je přitom vytvářet v tohoto organismu. Cílem algoritmu je přitom vytvářet v populaci jedinců stále silnější jedince. Tato vlastnost populaci jedinců stále silnější jedince. Tato vlastnost předurčuje algoritmus k použití na řešení optimalizačních předurčuje algoritmus k použití na řešení optimalizačních problémů. problémů.
ZákladníZákladní pojmypojmy gen gen -- konkrétní symbol v chromozómu konkrétní symbol v chromozómu
chromozómchromozóm - - genetická informace ve tvaru řetězce genetická informace ve tvaru řetězce
jedinecjedinec - - nositel genetické informace (jedno konkrétní nositel genetické informace (jedno konkrétní zakódované řešení) zakódované řešení)
generacegenerace - je populace jedinců v určitém kroku genetického - je populace jedinců v určitém kroku genetického algoritmualgoritmu
populacepopulace - větší množství jedinců, na kterou aplikujeme různé - větší množství jedinců, na kterou aplikujeme různé genetické operacegenetické operace
kříženíkřížení - ze dvou jedinců vzniknou dva noví, každý má část - ze dvou jedinců vzniknou dva noví, každý má část genů od prvního jedince a část od druhého genů od prvního jedince a část od druhého
mutacemutace - náhodná změna jednoho genu některého - náhodná změna jednoho genu některého jedince, rozšiřuje prohledávaný prostor o řešení, které jedince, rozšiřuje prohledávaný prostor o řešení, které není možno dosáhnout křížením, protože nebyla není možno dosáhnout křížením, protože nebyla
součástí inicializace populacesoučástí inicializace populace
reprodukcereprodukce - jedinci jsou kopírováni do nové populace - jedinci jsou kopírováni do nové populace podle výše své hodnotící funkce (jedinci s lepšími podle výše své hodnotící funkce (jedinci s lepšími
vlastnostmi s větší pravděpodobností)vlastnostmi s větší pravděpodobností)
1 1 0 1 0 1 1 1
chromozóm
gen
jedinec
Ukázka postupu vývoje populace při optimalizaci funkce f
11110011
01010101
00011101
00111001
01100000
10000011
00000111
11111000
náhodně vytvořená generace
f(11110011) = 1,794
f(01010101) = 8,889
f(00011101) = 4,031
f(00111001) = 6,943
f(01100000) = 9,389
f(10000011) = 9,992
f(00000111) = 1,067
f(11111000) = 1,067
kvalita náhodně vytvořené generace
1. Genetický algoritmus pracuje s populací řetězců, proto musíme před spuštěním algoritmu nějakou generaci již mít. Tuto generaci získáme tak, že řetězce vytvoříme náhodně.
2. Necháme naší funkci f zjistit, jak dobré řetězce jsme dostali.
11110011
01010101
00011101
00111001
01100000
10000001
00000111
11111000
Řetězec fpravděpodob-
nost (%)
11110011 1,794 4,16
01010101 8,889 20,59
00011101 4,031 9,34
00111001 6,943 16,08
01100000 9,389 21,75
10000011 9,992 23,14
00000111 1,067 2,47
11111000 1,067 2,47
průměrnákvalitařetězce
5,397
pravděpodobnosti pro vylosování. velikost výsečí na ruletě
3. Reprodukce
Při reprodukci se do nové generace kopírují řetězce ze staré generace.Čím je řetězec lepší, tím větší je pravděpodobnost, že bude do nové generace okopírován. Jedním ze způsobů reprodukce je výběr pomocí rulety.
Řetězec f
00111001 6,943
01010101 8,889
01010101 8,889
10000011 9,992
01100000 9,389
10000011 9,992
00000111 1,067
01100000 9,389
průměrná kvalita řetězce
8,069
kvalita vylosované generace
Porovnáme-li průměrnou kvalitu řetězce původní a vylosované generace, zjistíme, že zde došlo k výraznému nárůstu. Tento výsledek není nijak překvapující, neboť díky způsobu výběru řetězců pro další generaci jsme dávali přednost lepším řetězcům.
Tato operace spočívá ve výměně informací mezi řetězci. Celý mechanismus křížení začíná tak, že se z nově vylosované populace náhodně vyberou dva řetězce. Tyto dva řetězce lze chápat jako dva rodiče. Jejich potomci budou potom obsahovat genetické informace svých rodičů.
Kdybychom tedy pro vývoj generace používali pouze opakovaně prováděnou reprodukci, degenerovala by generace takovým způsobem, že by se v ní po čase objevovalo několik nejlepších řetězců z počáteční generace. Nedosáhli bychom tak v žádném případě toho, že by se v nových generacích objevovali řetězce, které by byly lepší, než řetězce v počáteční generaci. Za účelem zlepšování kvality řetězců jsou zde dvě operace.
a) Křížení
rodiče potomci
Křížením nám vzniknou dva zcela nové řetězce, které si ovšem nesou některé informace od svých rodičů. Podívejme se, jaká je kvalita potomků vzešlých z křížení.
f(00000000) = 0f(01100111) = 9,631
První potomek dopadl při vyhodnocení zcela katastrofálně a díky nulové kvalitě nemá šanci projít přes další provedení reprodukce. Oproti tomu druhý potomek je silnější než kterýkoli z jeho rodičů.
b) Mutace
Rozšiřuje prohledávaný prostor o řešení, které není možno dosáhnout Rozšiřuje prohledávaný prostor o řešení, které není možno dosáhnout křížením, protože nebyla součástí inicializace populace. křížením, protože nebyla součástí inicializace populace. Extrémním případem takové situace je například stav, kdy se do první, náhodně vylosované generace dostane jeden velmi silný řetězec a zbytek řetězců bude slabý. V takovém případě může nastat situace, kdy se do další generace dostane dostanou pouze exempláře jediného silného řetězce. Nastane-li takováto situace, můžeme dostat jiný řetězec pouze tak, že některý z exemplářů zmutujeme. Tato funkce mutace funguje i v neextrémních případech, kdy nám pomáhá udržet různorodost generace.
Ukažme si ještě, jaký vliv by mohla mít mutace na některý z řetězců v naší generaci. Například zmutuje-li poslední řetězec – 01100111 na čtvrté pozici
0110011101110111
potom
f(01100111)= 9,631f(01110111)= 9,956
mutace nám v tomto případě pomohla zlepšit kvalitu daného řetězce.
mutovaný gen
KříženíKřížení je operace, při níž nová generace vznikne z té předchozí je operace, při níž nová generace vznikne z té předchozí
tak, že tak, že rodičerodiče si vymění část svého kódu a tato si vymění část svého kódu a tato kombinace tvoří kombinace tvoří potomkypotomky
Druhy křížení :Druhy křížení : jednobodové jednobodové - při tomto typu křížení vybereme - při tomto typu křížení vybereme
náhodně jednu pozici, na níž jedince rozdělíme a náhodně jednu pozici, na níž jedince rozdělíme a jejich části navzájem vyměníme jejich části navzájem vyměníme
dvoubodové dvoubodové - dvoubodové křížení je obdobou - dvoubodové křížení je obdobou křížení jednobodového, jen se vyberou náhodně dvě křížení jednobodového, jen se vyberou náhodně dvě dělící pozice a prostřední části jedinců se navzájem dělící pozice a prostřední části jedinců se navzájem vymění vymění
uniformníuniformní - pro každý gen náhodně určí, do kterého - pro každý gen náhodně určí, do kterého z nových jedinců se zařadí z nových jedinců se zařadí
MutaceMutace genetická operace, kdy jedince v další generaci získáme z genetická operace, kdy jedince v další generaci získáme z
nějakého jedince v předchozí generaci změněnou jednoho nějakého jedince v předchozí generaci změněnou jednoho znaku v jeho kóduznaku v jeho kódu
Druhy mutace :Druhy mutace : uniformní uniformní -- mění hodnotu genu u jedince zcela náhodně mění hodnotu genu u jedince zcela náhodně
v definovaném rozmezí v definovaném rozmezí hranicováhranicová - mění hodnotu genu, se stejnou - mění hodnotu genu, se stejnou
pravděpodobností, buď na horní nebo dolní hranici pravděpodobností, buď na horní nebo dolní hranici povoleného intervalu povoleného intervalu
Gaussova Gaussova - nová hodnota genu je určena z Gausova - nová hodnota genu je určena z Gausova rozložení, kde střed rozložení je v nule a rozptyl je roven rozložení, kde střed rozložení je v nule a rozptyl je roven staré hodnotě genu. Nová hodnota musí ležet v předem staré hodnotě genu. Nová hodnota musí ležet v předem definovaném rozmezí účelové funkcedefinovaném rozmezí účelové funkce
ReprodukceReprodukce operace, která na základě kvality jedince vybírá příští operace, která na základě kvality jedince vybírá příští
generacigeneraci
Druhy výběru :Druhy výběru : nejlepšínejlepší - tento operátor vybere z populace vždy jedince - tento operátor vybere z populace vždy jedince
z nejvyšším skórem z nejvyšším skórem ruleta ruleta - tato metoda výběru jedince je založena na - tato metoda výběru jedince je založena na
poměru skóre jedince vzhledem ke zbytku populace, čím poměru skóre jedince vzhledem ke zbytku populace, čím větší skóre jedinec má, tím má větší šanci na to, že bude větší skóre jedinec má, tím má větší šanci na to, že bude vybránvybrán
turnajturnaj - tento selektor používá předchozí metodu - tento selektor používá předchozí metodu k výběru dvou jedinců, z nichž vybere toho s vyšším k výběru dvou jedinců, z nichž vybere toho s vyšším skóre. Tato metoda typicky vybere jedince s vyšším skóre skóre. Tato metoda typicky vybere jedince s vyšším skóre častěji, než metoda ruletyčastěji, než metoda rulety
deterministickýdeterministický - selektor užívá dvoufázové selekční - selektor užívá dvoufázové selekční procedury. V první fázi se vypočítá předpokládané procedury. V první fázi se vypočítá předpokládané skóre jedince. Dočasná populace je naplněna jedinci skóre jedince. Dočasná populace je naplněna jedinci s nejvyššími očekávanými hodnotami. Ostatní pozice s nejvyššími očekávanými hodnotami. Ostatní pozice jsou obsazeny původními jedinci s nejvyšší pozicí jsou obsazeny původními jedinci s nejvyšší pozicí v seznamu setříděném podle desetinné části jejich v seznamu setříděném podle desetinné části jejich skóre. Druhá fáze je uniformní náhodnou selekcí skóre. Druhá fáze je uniformní náhodnou selekcí z dočasné populacez dočasné populace
stochastický stochastický - selektor také využívá dvoufázové - selektor také využívá dvoufázové selekční procedury. První fáze počítá předpokládané selekční procedury. První fáze počítá předpokládané skóre a naplní dočasnou populaci jedinci s nejvyššími skóre a naplní dočasnou populaci jedinci s nejvyššími hodnotami. Každá desetina očekávaného skóre dá hodnotami. Každá desetina očekávaného skóre dá jednici pravděpodobnost být vybrán. Druhá fáze je jednici pravděpodobnost být vybrán. Druhá fáze je opět uniformní náhodnou selekcí z této dočasné opět uniformní náhodnou selekcí z této dočasné populace. populace.
uniformníuniformní - tento selektor vybírá jedince náhodně - tento selektor vybírá jedince náhodně z celé populace. Každý jedinec má stejnou z celé populace. Každý jedinec má stejnou pravděpodobnost, že bude vybránpravděpodobnost, že bude vybrán
Předpoklady využitíPředpoklady využití
jestliže je nutno nalézt nejvhodnější z velkého počtu jestliže je nutno nalézt nejvhodnější z velkého počtu alternativ alternativ
alternativy je možno popsat konečným počtem alternativy je možno popsat konečným počtem vlastností vlastností
neexistuje algoritmus, jak explicitně vybrat nejlepší neexistuje algoritmus, jak explicitně vybrat nejlepší alternativu nebo tento algoritmus je natolik složitý, že alternativu nebo tento algoritmus je natolik složitý, že je vhodnější použít náhodný výběr je vhodnější použít náhodný výběr
existuje jednoznačně definovaná funkce, která existuje jednoznačně definovaná funkce, která hodnotí kvalitu každé z alternativ, pokud již je hodnotí kvalitu každé z alternativ, pokud již je specifikovánaspecifikována
Hledání maxima účelové funkce – Hledání maxima účelové funkce – program program GaVisualiserGaVisualiser
Příklad účelové funkce - Příklad účelové funkce - SchwefelSchwefel
První generace jedinců – náhodně vybranáPrvní generace jedinců – náhodně vybraná
Max. funkce
Závěrečná generace jedincůZávěrečná generace jedinců
znázorňuje průběh evoluce v čase, resp. znázorňuje znázorňuje průběh evoluce v čase, resp. znázorňuje skóre populace vzhledem ke generacím. Skóre populace skóre populace vzhledem ke generacím. Skóre populace se znázorňuje jako skóre nejlepšího jedince.se znázorňuje jako skóre nejlepšího jedince.
Graf evoluceGraf evoluce
PodkladyPodklady
http://http://ivopeterkaivopeterka..mysteriamysteria..czcz/index2./index2.phpphp http://cs.felk.cvut.cz/~xobitko/ga/http://cs.felk.cvut.cz/~xobitko/ga/ http://neuralnets.czweb.org/http://neuralnets.czweb.org/ http://www.sweb.cz/jaroslav.teda/http://www.sweb.cz/jaroslav.teda/ http://kocour.ms.mff.cuni.cz/~petricek/papers/ga/http://kocour.ms.mff.cuni.cz/~petricek/papers/ga/ http://www-troja.fjfi.cvut.cz/~kucharik/projects/ga/gen.html~http://www-troja.fjfi.cvut.cz/~kucharik/projects/ga/gen.html~
Top Related