genetické algoritmy

24
Genetické Genetické algoritmy algoritmy Filip Dušek Filip Dušek 2004 – V 53 ČVUT v Praze – fakulta Stavební ČVUT v Praze – fakulta Stavební

Upload: carla-schultz

Post on 03-Jan-2016

57 views

Category:

Documents


0 download

DESCRIPTION

ČVUT v Praze – fakulta Stavební. Genetické algoritmy. Filip Dušek. 2004 – V 53. Úvod. začátkem 60. let vzniká nový směr v rozvoji informatiky – genetické algoritmy tyto algoritmy vycházejí z Darwinovy teorie o vývoji druhu. úspěšně se používají k řešení optimalizačních problémů. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Genetické algoritmy

Genetické Genetické algoritmyalgoritmy

Filip DušekFilip Dušek 2004 – V 53

ČVUT v Praze – fakulta StavebníČVUT v Praze – fakulta Stavební

Page 2: Genetické algoritmy

Ú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ů

Page 3: Genetické algoritmy

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í

Page 4: Genetické algoritmy

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ů.

Page 5: Genetické algoritmy

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

Page 6: Genetické algoritmy

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í)

Page 7: Genetické algoritmy

1 1 0 1 0 1 1 1

chromozóm

gen

jedinec

Ukázka postupu vývoje populace při optimalizaci funkce f

Page 8: Genetické algoritmy

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.

Page 9: Genetické algoritmy

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.

Page 10: Genetické algoritmy

Ř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.

Page 11: Genetické algoritmy

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

Page 12: Genetické algoritmy

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.

Page 13: Genetické algoritmy

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

Page 14: Genetické algoritmy

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í

Page 15: Genetické algoritmy

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

Page 16: Genetické algoritmy

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

Page 17: Genetické algoritmy

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.

Page 18: Genetické algoritmy

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

Page 19: Genetické algoritmy

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

Page 20: Genetické algoritmy

Hledání maxima účelové funkce – Hledání maxima účelové funkce – program program GaVisualiserGaVisualiser

Příklad účelové funkce - Příklad účelové funkce - SchwefelSchwefel

Page 21: Genetické algoritmy

První generace jedinců – náhodně vybranáPrvní generace jedinců – náhodně vybraná

Max. funkce

Page 22: Genetické algoritmy

Závěrečná generace jedincůZávěrečná generace jedinců

Page 23: Genetické algoritmy

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

Page 24: Genetické algoritmy

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~