PARALELNÍ GENETICKÉ ALGORITMY

Podobné dokumenty
Genetické algoritmy. Informační a komunikační technologie ve zdravotnictví

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

Evoluční výpočetní techniky (EVT)

Projekční algoritmus. Urychlení evolučních algoritmů pomocí regresních stromů a jejich zobecnění. Jan Klíma

U Úvod do modelování a simulace systémů

Inovace studia molekulární a buněčné biologie reg. č. CZ.1.07/2.2.00/


A0M33EOA: Evoluční optimalizační algoritmy

Úloha - rozpoznávání číslic

Statistická teorie učení

OSA. maximalizace minimalizace 1/22

12 Metody snižování barevného prostoru

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

Disková pole (RAID) 1

Pokročilé operace s obrazem

Emergence chování robotických agentů: neuroevoluce

Disková pole (RAID) 1

1. Statistická analýza dat Jak vznikají informace Rozložení dat

5.5 Evoluční algoritmy

VÝBĚR A JEHO REPREZENTATIVNOST

1. Úvod do genetických algoritmů (GA)

Základy umělé inteligence

UČENÍ BEZ UČITELE. Václav Hlaváč

Časová a prostorová složitost algoritmů

Základy genetiky populací

Jak měříme genetickou vzdálenost a co nám říká F ST

Modelování a simulace Lukáš Otte

Inovace studia molekulární a buněčné biologie reg. č. CZ.1.07/2.2.00/

Náhodné (statistické) chyby přímých měření

Dynamické programování

IMOSI - MODELACE A SIMULACE LEARN 2013 správně možná špatně

Numerické metody a programování. Lekce 8

Datové struktury 2: Rozptylovací tabulky

Inženýrská statistika pak představuje soubor postupů a aplikací teoretických principů v oblasti inženýrské činnosti.

Genetické algoritmy. a jejich praktické využití. Pavel Šturc. průmyslu, stejně tak je zde uvedeno i několik případů jejich úspěšné implementace.

METODY DOLOVÁNÍ V DATECH DATOVÉ SKLADY TEREZA HYNČICOVÁ H2IGE1

Rozdělování dat do trénovacích a testovacích množin

Funkce. Definiční obor a obor hodnot

Generování pseudonáhodných. Ing. Michal Dorda, Ph.D.

Metaheuristiky s populacemi

Algoritmus pro hledání nejkratší cesty orientovaným grafem

13. Lineární procesy

Usuzování za neurčitosti

Obsah přednášky Jaká asi bude chyba modelu na nových datech?

VYUŽITÍ PRAVDĚPODOBNOSTNÍ METODY MONTE CARLO V SOUDNÍM INŽENÝRSTVÍ

Báze a dimenze vektorových prostorů

Dijkstrův algoritmus

Seminář z umělé inteligence. Otakar Trunda

7. Rozdělení pravděpodobnosti ve statistice

Náhodné chyby přímých měření

Státnice odborné č. 20

ČVUT FEL X36PAA - Problémy a algoritmy. 5. úloha - Seznámení se se zvolenou pokročilou iterativní metodou na problému batohu

Teorie informace a kódování (KMI/TIK) Reed-Mullerovy kódy

Téma 2: Pravděpodobnostní vyjádření náhodných veličin

Třídy složitosti P a NP, NP-úplnost

S T R A T E G I C K Ý M A N A G E M E N T

10. cvičení z PST. 5. prosince T = (n 1) S2 X. (n 1) s2 x σ 2 q χ 2 (n 1) (1 α 2 ). q χ 2 (n 1) 2. 2 x. (n 1) s. x = 1 6. x i = 457.

"Učení nás bude více bavit aneb moderní výuka oboru lesnictví prostřednictvím ICT ". Základy genetiky, základní pojmy

Složitost 1.1 Opera ní a pam ová složitost 1.2 Opera ní složitost v pr rném, nejhorším a nejlepším p ípad 1.3 Asymptotická složitost

2 Hlavní charakteristiky v analýze přežití

Dokumentace programu piskvorek

Markov Chain Monte Carlo. Jan Kracík.

Stanovení nejistot při výpočtu kontaminace zasaženého území

Simulační modely. Kdy použít simulaci?

PRAVDĚPODOBNOST A STATISTIKA

5 Orientované grafy, Toky v sítích

Složitost Filip Hlásek

NP-úplnost problému SAT

Jak se matematika poučila v biologii

Pracovní celky 3.2, 3.3 a 3.4 Sémantická harmonizace - Srovnání a přiřazení datových modelů

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Genetické algoritmy. Vysoká škola ekonomická Praha. Tato prezentace je k dispozici na:

Numerická matematika 1

Úvod do optimalizace, metody hladké optimalizace

Architektury počítačů a procesorů

5. Lokální, vázané a globální extrémy

Matematika pro informatiky

Navrženy v 60. letech jako experimentální optimalizační metoda. Velice rychlá s dobrou podporou teorie

Teorie systémů TES 3. Sběr dat, vzorkování

Popis zobrazení pomocí fuzzy logiky

Genetické programování

METODICKÝ APARÁT LOGISTIKY

12. Globální metody MI-PAA

ALGORITMY A DATOVÉ STRUKTURY

Univerzita Pardubice Fakulta ekonomicko-správní. Návrh a realizace systému pro genetické programování Bc. Petr Sotona

5. Náhodná veličina. 2. Házíme hrací kostkou dokud nepadne šestka. Náhodná veličina nabývá hodnot z posloupnosti {1, 2, 3,...}.

Gramatická evoluce a softwarový projekt AGE

STATISTICKÉ ODHADY Odhady populačních charakteristik

Propojení výuky oborů Molekulární a buněčné biologie a Ochrany a tvorby životního prostředí. Reg. č.: CZ.1.07/2.2.00/

Algoritmy a struktury neuropočítačů ASN P9 SVM Support vector machines Support vector networks (Algoritmus podpůrných vektorů)

GIS Geografické informační systémy

10. Složitost a výkon

Fakulta elektrotechniky a komunikačních technologíı Ústav automatizace a měřicí techniky v Brně

Chyby měření 210DPSM

Mezipaměti počítače. L2 cache. L3 cache

Úvod do teorie informace

KTE/TEVS - Rychlá Fourierova transformace. Pavel Karban. Katedra teoretické elektrotechniky Fakulta elektrotechnická Západočeská univerzita v Plzni

STATISTICKÝ SOUBOR. je množina sledovaných objektů - statistických jednotek, které mají z hlediska statistického zkoumání společné vlastnosti

3. Třídy P a NP. Model výpočtu: Turingův stroj Rozhodovací problémy: třídy P a NP Optimalizační problémy: třídy PO a NPO MI-PAA

[1] samoopravné kódy: terminologie, princip

Transkript:

PARALELNÍ GENETICKÉ ALGORITMY PETR POŠÍK DIPLOMOVÁ PRÁCE České vysoké učení technické Praha, 2001

Abstrakt Genetické algoritmy (GA) se osvědčily při řešení různých optimalizačních problémů v mnoha oblastech lidské činnosti. Dnes se často používají paralelní modely a paralelní implementace genetických algoritmů, protože při správném nastavení úspěšně redukují dobu potřebnou k nalezení řešení přijatelné kvality. Přestože jsou GA operačně jednoduché, analýza jejich činnosti je naopak značně složitá. Bohužel ještě nerozumíme dobře tomu, jaký efekt má různé nastavení parametrů paralelních GA (PGA) na kvalitu a efektivitu prohledávání stavového prostoru. Díky tomu neumíme navrhnout paralelní GA s takovými parametry, který by dosahoval řešení požadované kvality v co možná nejkratším čase. Cílem této diplomové práce je rozšířit naši znalost vlivu nastavení PGA na jejich činnost se zvláštním zaměřením na parametry migrace. Výzkumy se soustřeďují na vícekmenový model PGA (multi-deme PGA), protože je v praxi nejvíce používaný. Je zde prezentován nový operátor migrace, který by měl být lépe přizpůsoben pro použití v rozsáhlých sítích (např. na Internetu). Účinnost PGA využívajících tento nový operátor je otestována na známých referenčních úlohách a porovnána s účinností jiných migračních operátorů, případně i s jednoduchým GA. ii

Abstract Genetic algorithms (GAs) have proved their efficiency in solving various optimisation problems in many domains of human activities. Nowadays, parallel models and parallel implementations of GAs (PGAs) are often used, because, if properly set, they succeed in reduction of time needed to find desirable solution. Despite of their operational simplicity, their analysis is very difficult. Unfortunately, we still do not exactly understand all the effects of various PGA parameter settings to the quality and efficiency of searching the state space. That s the reason we are not able to design PGA with such parameters that would guarantee finding the desired solution in the shortest time possible. The goal of this thesis is to extend our knowledge of influence of the PGA settings to their evolution with special emphasis on parameters of migration. The research considers multi-deme model of PGA because at present it is most frequently used model. In this paper, new migration operator is presented. This operator should be more suitable for use in wide-area networks (e.g. on Internet). Efficiency of PGA using this new operator is verified on known reference problems and compared to efficiency of conventionally used migration operator and with simple GA respectively. iii

Obsah 1 Úvod... 1 1.1 Struktura textu...2 2 Jednoduché genetické algoritmy... 3 2.1 Vlastnosti GA...4 2.2 Účelová funkce (Objective function)...5 2.3 Princip činnosti GA...5 2.3.1 Inicializace...5 2.3.2 Selekce...6 2.3.3 Rekombinace...7 2.3.4 Křížení...7 2.3.5 Mutace...8 2.4 Parametry GA...8 2.4.1 Velikost populace...8 2.4.2 Elitismus...9 2.4.3 Velikost překrytí...9 2.4.4 Nahrazovací strategie...9 2.5 Druhy GA...10 2.6 Práce s omezeními...11 2.6.1 Pokutové funkce...11 2.6.2 Dekodéry a opravné algoritmy...11 2.6.3 Problémově závislá reprezentace...11 2.7 Stavební bloky, schéma-teorém...12 2.8 Shrnutí 13 3 Paralelní genetické algoritmy... 14 3.1 Paralelní model vs. paralelní implementace...15 3.2 Možnosti paralelizace...15 3.2.1 Paralelizace globálního modelu...15 3.2.2 Vícekmenové PGA (Multi-deme PGA)...16 3.2.3 Hybridní (hierarchické) PGA...17 3.3 Problém nadměrného urychlení...17 3.4 Shrnutí 17 4 Migrační strategie... 19 4.1 Migrační kritérium...19 4.1.1 Synchronní migrace...20 4.1.2 Asynchronní migrace...20 4.1.2.1 Míra konvergence...21 4.2 Komunikační topologie...22 4.2.1 Statické topologie...23 4.2.2 Dynamické topologie...23 4.2.3 Stupeň propojení DOC...24 4.3 Migrační koeficient...24 4.4 Způsob přenosu migrantů...25 4.4.1 Migrace jedinců...25 4.4.2 Migrace schémat...25 iv

4.4.3 Úprava ohodnocení migrujících jedinců...26 4.5 Cíl experimentů...26 5 Experimenty... 28 5.1 Testovací úlohy...28 5.1.1 Reálné funkce dvou proměnných...28 5.1.2 Klamné funkce...31 5.1.3 Problém obchodního cestujícího (TSP)...32 5.2 Volba nastavení parametrů PGA...33 5.2.1 Volba velikosti populace...34 5.2.2 Volba ostatních parametrů...37 5.3 Migrace synchronní vs. asynchronní, hromadná vs. individuální...41 5.4 Statická vs. dynamická topologie...49 5.5 Migrace jedinců vs. migrace schémat...53 5.6 Migrace bez úpravy ohodnocení vs. migrace s úpravou ohodnocení...53 5.7 Volba nové migrační strategie...58 5.8 Experimenty s referenčními funkcemi...58 5.8.1 Experimenty s funkcí 10xF2...59 5.8.2 Experimenty s funkcí 10xF101...61 5.8.3 Experimenty s funkcí 10xF103...63 5.8.4 Experimenty s funkcí 50xDF3...64 5.8.5 Experimenty s funkcí 50xPDF...66 5.8.6 Experimenty s funkcí TSP30...67 5.8.7 Experimenty s funkcí TSP50...69 5.8.8 Diskuse výsledků experimentů...71 6 Závěr... 72 Přílohy Příloha A: Popis prostředí pro experimenty Příloha B: Zdrojový kód nadstavby knihovny GAlib pro PGA. v

1 Úvod Umělá inteligence je vědní disciplína zabývající se všemi postupy a algoritmy, které vedou k napodobení projevů inteligentního chování člověka [Mařík1993]. Její součástí je tedy i řešení úloh, které jsou ve valné většině NP-obtížné či dokonce NP-úplné (obtížně řešitelné nebo neřešitelné v polynomiálním čase). Proces řešení takových úloh se dá často transformovat na prohledávání stavového prostoru, který představuje množinu všech potenciálních řešení dané úlohy a bývá často příliš velký. Úkolem umělé inteligence je hledání a zdokonalování takových metod prohledávání stavového prostoru, které by zaručily nalezení optimálního či alespoň suboptimálního řešení v přijatelném čase. Pro jednodušší úlohy se používají deterministické metody. Význačným představitelem této skupiny metod jsou metody gradientní, jejichž výhodou je, že vždy naleznou takové řešení, které je na jistém okolí nejlepší (naleznou extrém účelové funkce). Není ale zaručeno, že toto řešení je nejlepší v celém stavovém prostoru (hlavně u složitějších, multimodálních účelových funkcí). Nalezené řešení bývá často pouze suboptimálním řešením daného problému a gradientní algoritmus není schopen bez změny počátečních podmínek sám od sebe najít řešení jiné lepší ve smyslu účelové funkce. Z toho důvodu bylo nutno vyvinout metody, ve kterých se jistým způsobem uplatňuje náhoda metody, které nevynechávají žádnou oblast stavového prostoru a které jsou samy od sebe schopné vymanit se ze spárů suboptimálního řešení. Genetické algoritmy (GA) patří mezi právě takové metody. Řadí se sice mezi stochastické metody prohledávání stavového prostoru, ale využívají také vlastností deterministických metod. Z obou skupin se snaží převzít ty nejlepší vlastnosti od stochastických metod stejnoměrné prohledání všech oblastí stavového prostoru ( exploration ) a od deterministických metod zase zaměření úsilí prohledávání do slibných oblastí ( exploitation ). Mezi těmito dvěma zřejmě protichůdnými požadavky pak GA ustavují kompromis pomocí svých parametrů. Jsou schopny nám poskytnout relativně kvalitní řešení v přijatelně krátkém čase (vzhledem k obtížnosti problému). Proto si plně zasluhují pozornost, která jim je v současnosti věnována po celém světě, i úsilí vědců porozumět jejich zákonitostem a jevům, které se v nich projevují. 1

Ve snaze po urychlení GA vznikly paralelní implementace genetických algoritmů. Některé z nich využívají takový model, v němž je populace rozdělena do několika subpopulací, mezi nimiž v určitých intervalech migrují jedinci. Migrace je zvláštní typ operátoru, jehož chování je v některých aspektech nečekané a není ještě zcela uspokojivě vysvětleno ([Cantú-Paz1999b]). Cílem této práce je rozšířit poznatky v oblasti paralelních modelů GA, zvláště pak osvětlit vliv různých parametrů migrační strategie na kvalitu řešení nalezeného pomocí PGA. S využitím těchto poznatků byl navržen nový operátor migrace, pomocí něhož PGA dosahuje výsledků srovnatelných nebo lepších, než dosahuje s využitím dosud používaných migračních operátorů. Nová migrační strategie je ale lépe přizpůsobena pro práci v dynamickém prostředí a pro vývoj subpopulací na geograficky značně vzdálených počítačích (např. v síti Internet). 1.1 Struktura textu Tato diplomová práce je organizována následovně: kapitola 2 shrnuje poznatky o vlastnostech jednoduchých GA (SGA) nutné pro pochopení jejich činnosti; kapitola 3 obsahuje popis možností paralelizace GA, popis jednotlivých modelů paralelních GA a jejich srovnání; v kapitole 4 jsou identifikovány a popsány rysy migračních operátorů a navrženy nové vlastnosti migrační strategie, jejichž účinnost je ověřena experimentálně v kapitole 5. Kapitola 6 shrnuje dosažené výsledky a obsahuje doporučení oblastí pro další studium. 2

2 Jednoduché genetické algoritmy Genetické algoritmy se inspirovaly v přírodě a přírodních vědách. Snaží se napodobit evoluci takovým způsobem, jakým probíhá v přírodě. Jako teoretický podklad užívají Mendelovu teorii genetiky a Darwinovu teorii přirozeného výběru. Teorie přirozeného výběru hlásá, zjednodušeně řečeno, přežití silnějšího, tzn., že rychlejší, silnější a inteligentnější jedinci mají větší šanci na přežití v dynamickém a neustále se měnícím prostředí, než jedinci pomalejší, slabší a hloupější. Tito horší jedinci ve svém prostředí přežívají spíše díky tomu, že mají štěstí, než díky svým vlastnostem. Proto se reprodukce (vytváření další generace) zúčastňují také, avšak v menší míře, než jedinci lepší. G. Mendel zase objevil mechanismus přenosu charakterových vlastností z rodiče na potomka. Později se ukázalo, že za jednotlivé vlastnosti jsou zodpovědné geny, které jsou uspořádány lineárně v chromozomech. V oblasti GA se proto také používají výrazové prostředky převzaté z těchto biologických disciplín. Mluvíme o jedincích (nebo o genotypech, chromozomech, strukturách či řetězcích) v populaci. (Pro potřeby GA se většinou dělá určité zjednodušení: každý biologický jedinec má obyčejně více druhů chromozomů zde se předpokládají jedinci s jediným chromozomem, proto je možné oba pojmy sjednotit. Existují ale také implementace GA s diploidními jedinci s jedinci se dvěma chromozomy.) Chromozomy jsou dále tvořeny lineárně uspořádanými 1 geny (jinak také rysy, vlastnostmi či dekodéry). Stav genu reprezentujícího určitou vlastnost (např. barvu vlasů) může nabývat několika hodnot, kterým se říká alely. Každý chromozom reprezentuje jedno potenciální řešení problému. Význam a výklad formátu chromozomů jeho fenotyp je plně v rukou uživatele. Proces evoluce populace jedinců pak odpovídá prohledávání stavového prostoru. 1 Poznamenejme, že GA spadají do širší třídy metod - tzv. evolučních algoritmů (EA). Rozdíl se týká hlavně použitých datových struktur, jimiž už nemusí být lineární binární řetězce. Jedinci mohou být představováni libovolnou datovou strukturou např. maticí, stromem apod. Je třeba k nim ale také doplnit vhodné operátory mutace a křížení viz. dále. 3

2.1 Vlastnosti GA GA jsou metody pro prohledávání stavového prostoru aplikovatelné na širokou škálu typů úloh (nejsou závislé na typu řešeného problému) [Michalewicz1995]. Nastavením jejich parametrů lze upravit rovnováhu mezi zaměřením na slibné oblasti a prohledáním co největší části stavového prostoru. Obou těchto vlastností GA používají ke svému prospěchu. Mnoho výzkumníků i praktiků z velice rozmanitých oborů lidské činnosti si oblíbilo GA. Jejich popularita pramení hlavně z následujících vlastností [Michalewicz1995]: GA jsou robustní v tom smyslu, že jsou aplikovatelné na velice rozmanité úlohy, přičemž je na nich potřeba provést pouze minimální úpravy GA umí pracovat se všemi druhy stavových prostorů, včetně nehladkých, multimodálních a nespojitých GA umí hledat řešení z hlediska více kritérií a není přitom nutné explicitně definovat společnou účelovou funkci GA umí nalézt větší počet různých řešení blízkých optimálnímu GA se dají použít pro dynamické optimalizace Jak již bylo řečeno, GA patří do třídy stochastických algoritmů a přesto se velice liší od náhodných prohledávacích metod. Kombinují totiž elementy řízeného i stochastického prohledávání. Další důležitou vlastností GA je to, že pracují s celou populací potenciálních řešení ostatní metody pracují vždy pouze s jedním bodem stavového prostoru, s jediným řešením. Tato populace podstupuje simulovanou evoluci: v každé generaci se lepší jedinci množí, zatímco horší odumírají. Rozlišení mezi horší a lepší provádí již výše zmíněná účelová (ohodnocovací) funkce, která zastupuje v GA roli životního prostředí jedinců. Hodnota účelové funkce pro daný chromozom pak vyjadřuje míru přizpůsobenosti jedince danému prostředí. K řešení určitého problému pomocí GA (nebo pomocí jakéhokoli jiného EA) je třeba splnit následující požadavky [Michalewicz1995]: 1) najít vhodnou reprezentaci potenciálních řešení problému (vhodně zvolit formát chromozomu) 2) najít způsob, jak vytvořit počáteční populaci chromozomů tak, aby představovaly přípustná řešení 3) sestavit účelovou funkci, díky níž budeme schopni rozhodnout, který jedinec je lepší a který horší 4) zvolit nebo vytvořit vhodné genetické operátory, které ovlivňují tvorbu nových potomků 5) vhodně nastavit různé parametry používané v GA (velikost populace, pravděpodobnosti uplatnění genetických operátorů, apod.) V současnosti stále nejsou vyvinuty exaktní a přesné metody pro řešení výše uvedených 5 bodů, protože jsou značně závislé na konkrétním problému. Nastavení GA je proto velice ovlivněno zkušenostmi a odhadem uživatele, takže správná volba parametrů GA se stále ještě považuje spíše za umění [Michalewicz1995]. 4

2.2 Účelová funkce (Objective function) Účelová (ohodnocovací) funkce je vlastně jediný element GA, který je zcela a beze zbytku v moci uživatele. Měla by jí být věnována maximální pozornost je to totiž právě ona, která má největší vliv na celý proces evoluce, protože její extrém hledáme. Pomocí ní se určuje kvalita jedince (schopnost přežití v okolním prostředí) ať už přímo, nebo nepřímo přes škálovací funkci. Pro hodnotu, kterou chromozomu účelová (a případně ještě škálovací) funkce přiřadí, se v anglické literatuře vžil název fitness value. Protože neexistuje český ekvivalent tohoto anglického výrazu, budu v této práci dále používat pro hodnoty účelové funkce výraz fitness. 2.3 Princip činnosti GA Populace genetického algoritmu je tvořena jedinci umělými chromozomy představujícími zakódovaná řešení problému, který si přejeme vyřešit. Každý jedinec je ohodnocen. Toto ohodnocení udává, jak dobré řešení problému jedinec představuje. Nejlepší řešení jsou vybírána a rekombinována s ostatními. Během simulované evoluce pak dobré vlastnosti jedinců přežívají a navzájem se mísí, čímž vytvářejí nové a možná kvalitnější jedince. Přirozený výběr zároveň eliminuje v populaci špatné vlastnosti. Běh všech jednoduchých GA se řídí podle následujícího předpisu (P(k) označuje populaci jedinců obhospodařovaných GA v k-té generaci): k = 0 Inicializace P(k) Ohodnocení P(k) Opakuj k = k+1 Selekce P(k) z jedinců v P(k-1) Rekombinace P(k) Ohodnocení P(k) Dokud není splněna terminální podmínka Věnujme se jednotlivým krokům podrobněji. 2.3.1 Inicializace Každý GA potřebuje znát způsob, jakým může na počátku běhu inicializovat populaci, tzn. jak může vygenerovat první sadu jedinců, od nichž se bude celý vývoj odvozovat. Často se používá náhodná inicializace, která však není vhodná např. při práci s omezeními, kdy není třeba populaci naplnit jen nějakými libovolnými jedinci, ale je vhodné vytvořit ji z jedinců přípustných. V určitých případech je proto nutné vytvořit vlastní způsob inicializace populace pro konkrétní řešený problém. Počáteční populace totiž musí obsahovat dostatek informací, ze kterých by GA mohl vyvinout kvalitní řešení, takže by měla rovnoměrně pokrývat celý stavový prostor. 5

2.3.2 Selekce Jak už název napovídá, operátor selekce v GA představuje ekvivalent Darwinova přirozeného výběru. Modeluje princip přežití silnějších jedinců. Vybírá z populace lepší jedince, kteří se pak účastní rekombinace (tvorby nové populace viz. dále). Nejedná se ale o jednoduché vybrání N nejlepších jedinců z populace pokud má selekce napodobovat skutečné biologické procesy, pak musí zaručit to, že se rekombinace může zúčastnit i nejhorší z jedinců v populaci. Toho se většinou dociluje pravděpodobnostními mechanismy výběru jedinců ke každému chromozomu je na základě jeho fitness jistým způsobem přiřazena pravděpodobnost jeho přežití. Způsob výpočtu pravděpodobnosti přežití jedince je závislý na použité selekční metodě. Několik z nich je popsáno v následujících odstavcích. Výčet si neklade žádné nároky na úplnost, uvádím jen nejznámější a nejpoužívanější selekční schémata [Goldberg1989]. Ruletová selekce (Roulette-wheel selection) Pravděpodobnost přežití jedince je přímo úměrná jeho fitness. Rozhodnutí, zda jedinec přežije a objeví se i v další generaci, se dá představit jako náhodný pokus, ve kterém točíme ruletovým kolem (odtud i název metody) a vybíráme vždy toho jedince, na něhož padne kulička. Přitom platí, že čím má jedinec vyšší fitness, tím více ruletových políček zabírá. Toto selekční schéma s sebou ale nese i řadu problémů: má potíže se škálováním, zvládá pouze maximalizační problémy, způsobuje velké vzorkovací chyby a pro správnou funkci vyžaduje relativně velké populace. Pro nápravu těchto vlastností byla vyvinuta další selekční schémata. Pořadová selekce (Rank selection) Pravděpodobnost přežití jedince nesouvisí přímo s jeho kvalitou, ale s jeho umístěním v posloupnosti, kde jsou chromozomy seřazeny podle fitness. Předpokládejme například, že máme populaci o dvou chromozomech A a B, které mají fitness f ( A) = 1 a f ( B) = 99. Ruletová selekce jim přiřadí pravděpodobnosti přežití p ( A) = 0. 01 a p ( B) = 0. 99. Pořadová selekce je nejprve uspořádá podle velikosti poř ( A) = 1, poř ( B) = 2 a nad tímto pořadím proběhne ruletová selekce. Výsledkem je tedy p ( A) = 0. 33 a p ( B) = 0. 67. Takovýto postup odstraňuje problémy se škálováním (omezuje předčasnou konvergenci přílišné omezení různorodosti populace), odstraňuje problémy se vzorkováním u malých populací a zvládá maximalizační i minimalizační problémy. Deterministický výběr (Deterministic sampling) Jde opět o modifikaci ruletové selekce. Výběr probíhá ve dvou fázích. V první fázi se pro všechny jedince v populaci vypočítá pravděpodobnost jejich přežití. Na základě této pravděpodobnosti se určí počet kopií každého jedince v nové populaci: n() i = p() i PopSize (počet kopií i-tého jedince je pravděpodobnost jeho přežití násobená velikostí populace). Tento počet je ale obecně reálné číslo každý jedinec se do nově vytvářené populace zkopíruje pouze tolikrát, kolik udává celá část n(i). 6

Ve druhé fázi se zbývající volná místa v populaci, jejichž počet se rovná součtu desetinných částí všech n(i), obsadí tak, že se vybere potřebný počet jedinců z populace seřazené podle velikosti desetinných částí n(i). Zbytkový stochastický výběr (Reminder stochastic sampling) Tato metoda je obměnou deterministického výběru. První fáze probíhá naprosto stejně. Ve druhé fázi se pro rozdělení neobsazených míst v nové generaci aplikuje klasická ruletová selekce. I tato metoda napravuje vliv malé populace. Turnajová selekce (Tournament selection) Tato metoda využívá jiného principu výběru než metody předchozí. Pro obsazení každého jedince v nové generaci se PopSize-krát uspořádá turnaj. Ze staré generace se náhodně vybírají n-tice chromozomů (v nichž se chromozomy buď mohou, nebo nesmí opakovat) a do nové generace se vkládají vždy nejlepší jedinci z těchto n-tic. Volbou n se dá také ovlivňovat selekční tlak (čím větší n, tím větší selekční tlak). V krajním případě, kdy n = PopSize a chromozomy se v n-tici nemohou opakovat, by byla nová populace tvořena ze samých nejlepších jedinců populace stávající (předčasná konvergence). 2.3.3 Rekombinace Za krokem Rekombinace se skrývá uplatnění dvou genetických operátorů křížení a mutace. Oběma dohromady se říká rekombinační operátory, protože vytvářejí z rodičů potomky. 2.3.4 Křížení Křížení je reprodukční operátor, který simuluje náhodnou výměnu informací obsažených v rodičích při vytváření nového potomka. Jeho působením by se měly vytvářet lepší chromozomy. V evolučních algoritmech (EA) obecně mohou být jedinci reprezentováni libovolnou datovou strukturou, k níž je samozřejmě třeba vytvořit vlastní operátor křížení. Mluvíme-li ale o GA, které využívají lineární binární chromozomy, můžeme použít křížení jednobodové, dvoubodové nebo vícebodové. Body, ve kterých dochází ke křížení, se volí náhodně. Volbou n bodů křížení se oba rodiče rozdělí na n+1 částí. Vlastní křížení probíhá tak, že do prvního potomka se zkopírují např. liché části z prvního rodiče a sudé z druhého. U druhého potomka je tomu opačně. Četnost křížení se volí nastavením pravděpodobnosti křížení, což je jeden ze základních parametrů GA (typicky se volí přibližně 0.75). Optimální hodnota závisí na konkrétním řešeném problému a stanovuje se empiricky. Přihlíží se také k obecně přijímanému empirickému pravidlu, že pro malé populace se nastavuje velká pravděpodobnost křížení a naopak. Mezi další varianty křížení patří rovnoměrné křížení. Rovnoměrné křížení je n-bodové křížení, u něhož se nevolí n konkrétních bodů, ale u každého bitu se náhodně rozhoduje s pravděpodobností 0.5, do kterého z potomků bude patřit. Bylo pozorováno, že pomocí křížení se dosahuje rychlejšího prohledávání stavového prostoru, než pomocí mutace, při 7

použití účelových funkcí, které obsahují nelineární vztahy mezi jednotlivými bity řetězců [FlexGA1998]. Pokud je pravděpodobnost, že ke křížení dojde za určitým bitem, závislá na pozici v řetězci, říkáme, že operátor křížení má polohové zaměření. Pokud rozdělení počtu bitů prohozených operátorem křížení není rovnoměrné, říkáme, že křížení má distribuční zaměření. Jednobodové křížení má maximální polohové a minimální distribuční zaměření, zatímco u rovnoměrného křížení je to naopak. Jedno a dvoubodové křížení v homogenní populaci generují málo odlišné jednotlivce. Rovnoměrné křížení naproti tomu prohazuje bity nezávisle na jejich pozici. Proto se doporučuje používat u menších populací, kde zaručuje prohledání větší oblasti stavového prostoru. Ve velkých populacích, kde se rozmanitost chromozomů zajišťuje spíše jejich počtem, je vhodnější dvoubodové křížení. 2.3.5 Mutace Na mutaci se obvykle pohlíží jako na méně důležitý, druhořadý reprodukční operátor, který dokáže vrátit nazpět neuváženě ztracené hodnoty genů (alely), zabraňuje předčasné konvergenci a poskytuje možnosti náhodného prohledávání v blízkém okolí zkonvergované populace (blízké okolí je třeba chápat jako množinu chromozomů, kteří se liší od jedinců v populaci změnou v minimálním počtu bitů). Mutace tedy umožňuje GA dostat se z lokálního extrému účelové funkce. Jak často dojde k uplatnění tohoto operátoru určuje pravděpodobnost mutace, která je dalším ze základních parametrů GA. Typicky se nastavuje na hodnotu velice malou (1% i méně) a v některých implementacích se dokonce dynamicky mění podle míry konvergence populace. Vlastní mutace probíhá ve své základní podobě tak, že se procházejí všechny bity v populaci a s pravděpodobností P mut je jejich hodnota změněna na opačnou. Průměrně je tedy změněna hodnota nmut = Pmut L PopSize bitů, přičemž všechny mutace se mohou vyskytnout v 1 až n mut chromozomech. Pokud se pravděpodobnost mutace nastaví velká, ztrácí se výhody GA a prohledávání stavového prostoru přechází v prohledávání náhodné. Výzkumy ukazují [FlexGA1998], že u malých populací by měla být nastavená velká pravděpodobnost mutace a opačně. Dá se to vysvětlit tím, že u malých populací mutace napomáhá k prohledání větší části stavového prostoru, zatímco u velkých populací je velikost prohledaného stavového prostoru zaručena velikostí populace. 2.4 Parametry GA Jednoduchý předpis GA uvedený v odstavci 2.3 je nejrůznějšími způsoby ovlivňován mnoha parametry. Podívejme se teď na ně podrobněji a jednotlivě. 2.4.1 Velikost populace Počet jedinců v populaci je jedním z nejdůležitějších atributů, který musíme nastavit, pokud chceme GA použít. Otázka volby adekvátní velikosti populace je velice obtížná, protože silně závisí na obtížnosti problému. Pokud bude populace příliš malá, GA nemusí 8

mít dostatek informací, aby identifikoval dobré rysy řešení [Harik1996]. Velká populace naopak může znamenat plýtvání časem při zpracovávání nepotřebných jedinců, což může vést ke značnému snížení efektivity. V literatuře [Harik1996, Cantú-Paz1999c] jsou uvedeny vztahy, pomocí nichž lze pro známé účelové funkce a za určitých zjednodušujících podmínek vypočítat takovou velikost populace, která pro daný problém minimalizuje výpočetní čas. Tyto vztahy však nejsou natolik triviální, jak by si většina uživatelů GA přála, a vyskytují se v nich členy, jejichž význam není na první pohled zřejmý a jejichž hodnota se nesnadno určuje. Příklad použití těchto vztahů najdete v kapitole 5. 2.4.2 Elitismus V průběhu vývoje GA je možné, že nejlepší jedinec v populaci vlivem náhodných procesů odumře a v nově vytvořené populaci se již neobjeví. GA tak může zapomenout kvalitní nalezené řešení, pokud si ho nezapamatuje někde mimo populaci. Elitismus představuje způsob, jakým se dá tomuto nežádoucímu jevu předejít. Při jeho použití je několik (typicky 1 či 2) nejlepších jedinců přímo přeneseno do nově vytvářené populace. Kvalita nejlepšího řešení nalezeného genetickým algoritmem se pak v průběhu vývoje může pouze zvyšovat. 2.4.3 Velikost překrytí Tento parametr se uplatňuje při tvorbě nové generace jedinců. Existují implementace GA s nulovým překrytím [Goldberg1989], tzn. že využívají nepřekrývající se populace. Všichni jedinci z nově vytvořené populace prošli evolučním cyklem, a pokud jsou některé z nich shodné s nějakým jedincem z předchozí generace, pak je to pouze vlivem náhody. Jiné implementace GA [DeJong1975] zase naopak zcela záměrně podrobují evoluci pouze část populace, tzn. že každou generaci se vytvoří např. pouze 60% nových jedinců, zatímco zbylých 40% jedinců zůstává v populaci z předchozí generace. 2.4.4 Nahrazovací strategie Často opomíjeným parametrem GA jsou také nahrazovací strategie. Po selekci se z rodičů pomocí reprodukčních operátorů vytvoří sada potomků, které by měly být součástí nově vytvářené generace. Které jedince v populaci ale nahradit nově vytvořenými? Existuje mnoho přístupů. Je zřejmé, že nahrazovací strategie se neuplatní u GA, který využívá nepřekrývající se populace. Tam je vytvořena populace zcela nová, která prostě nahradí starou. Pokud se ale použije překrývajících se populací, je třeba rozhodnout, které jedince nahradit nově vzniklými. Potomci mohou např. nahradit své vlastní rodiče, nejhorší nebo náhodně vybrané jedince z populace nebo třeba jedince, kterým jsou nejvíce podobné to často závisí na konkrétní implementaci. Někdy se také nově vygenerovaní jednotlivci prostě připojí k populaci, z níž jsou potom odebráni nejhorší jedinci, čímž populace opět získá svou původní velikost. Nové chromozomy se tedy do nové generace mohou nebo nemusí dostat to záleží na jejich kvalitě. Nejčastěji používaným přístupem je náhrada nejhorších jedinců. 9

2.5 Druhy GA V průběhu doby, kdy se GA používají, mnoho experimentátorů vyvinulo vlastní druhy GA a dali jim různé názvy, čímž vytvořili podle mého názoru mylný dojem, že mezi různými druhy GA jsou značné rozdíly. Všechny GA podle mne pracují ve své podstatě podle stejného předpisu a vývoj populace je řízen pomocí sady parametrů popsaných výše. Na druhy GA tak můžeme nahlížet jen jako na sady typických hodnot parametrů, a pokud řekneme, že určitý GA je takového a takového druhu, znamená to pouze to, že přibližně víme, jaké hodnoty parametrů tento GA používá. Následuje stručný popis několika druhů GA a jejich modifikací. Jednoduchý GA (Simple GA). Tento algoritmus popsal Goldberg ve své knize [Goldberg1989]. Používá nepřekrývající se populace a volitelně i elitismus. GA se stálým stavem (Steady-State GA) Tento algoritmus je podobný algoritmu popsanému DeJongem [DeJong1975]. Používá překrývající se populace a je tedy třeba vybrat nahrazovací strategii. Inkrementální GA (Incremental GA) Jedná se o variantu předchozího typu GA. Také používá překrývající se populace, ale s velkým překrytím. Typicky se v každé generaci vytvoří pouze jeden nebo dva potomci. I zde je třeba určit nahrazovací strategii. Nejčastěji se nahrazují nejhorší jedinci v populaci. Mikro GA (µga) Jedná se o variantu GA s velice malou populací. Ukazuje se, že µga se dostává do oblasti blízké optimu rychleji než SGA [FlexGA1998]. Oproti SGA používá µga mnohem menší populace typicky o 5 jedincích. Obyčejné GA s malými populacemi nevykazují dostatečně dobré chování díky nedostatku informací ke zpracování a předčasné konvergenci, proto se u µga pravidelně zavádějí do populace noví jedinci. Téměř vždy se volí elitistická selekce. Jako míru kvality tohoto typu GA je třeba brát nejlepší dosud nalezené řešení a žádné jiné statistické průměrovací míry. GA se stochastickým kódováním (Stochastic GA) Tento algoritmus využívá dynamické kódování řetězců. Ty pak nepředstavují konkrétní řešení problému, ale celé prohledávané regiony stavového prostoru charakterizované normálním rozdělením s vektorem středních hodnot a s variační maticí. V průběhu evoluce se pak mění právě popis rozdělení, tj. střední hodnoty a variační matice, čímž se prohledávané regiony posouvají do slibnějších oblastí stavového prostoru. Nalezení většího počtu extrémů Niching Technika zvaná niching (od niche nika, výklenek) se používá, pokud chceme zjistit větší počet řešení. GA musí obhospodařovat stabilní populace na okolí několika extrémů. Fitness jedinců na různě dobrých extrémech je uměle normalizována, čímž vytvořené skupiny jedinců získají stabilitu. Počet jedinců v té které části populace je vlastně jinou mírou kvality extrému, který tato část populace obývá. Příslušnost jedince 10

k výklenku určuje buď míra s vlastnostmi vzdálenosti (časově a výpočetně náročnější) nebo značka, která je součástí chromozomu, ale neúčastní se evoluce. 2.6 Práce s omezeními Omezením není myšleno určení rozsahu každého z parametrů. Určení rozsahu parametrů vymezuje vlastně stavový prostor úlohy n-rozměrný interval (hyperkrychli), ve které GA vyhledává řešení. Problémy nastanou až tehdy, když je obor přípustných řešení podmnožinou stavového prostoru. To se může stát např. tehdy, když jsou jednotlivé parametry optimalizované pomocí GA na sobě vzájemně závislé. Co pak udělat s jedinci, kteří vzniknou působením rekombinačních operátorů, ale přitom představují nepřípustná řešení? Používají se v zásadě tři postupy, jak se s takovými omezeními vypořádat. 2.6.1 Pokutové funkce Nevyhovující řešení je ponecháno v populaci, ale záměrně se prohlásí za málo kvalitní, takže v dalším běhu GA samo odumře. Tato metoda je velice jednoduchá, ale efektivně pracuje pouze u slabých omezení, kde je poměr počtu přípustných řešení ku počtu prvků prohledávaného prostoru dostatečně velký. Pokud je totiž většina vygenerovaných řešení přípustná, pak se v každé generaci malé množství nepřípustných řešení opravdu eliminuje. Pokud by byla ale většina vygenerovaných jedinců nepřípustná, pak je velká šance, že tato nepřípustná řešení budou přežívat i do dalších generací. 2.6.2 Dekodéry a opravné algoritmy Na nelegální jedince se snažíme uplatnit speciální postupy, kterými by se chromozomy legalizovaly. Tyto postupy obyčejně vyžadují transformaci genotypu na fenotyp a bývají výpočetně velice nákladné. Existují dvě varianty těchto postupů: Oprava. Fyzické nahrazení nevyhovujícího jedince v populaci nejbližším vyhovujícím (ve smyslu určité metriky). Tato náhrada se pak účastní další evoluce místo původního jedince. Dekódování. Nepřípustný jedinec zůstane v populaci a účastní se další evoluce. Pro určení jeho kvality se ale použije ohodnocení nejbližšího přípustného řešení. 2.6.3 Problémově závislá reprezentace Ideálním řešením problému s omezeními je případ, kdy se povede najít takovou reprezentaci řešení úlohy, jejíž každá instance je řešením přípustným. Jinou možností je najít takové rekombinační operátory, které by generovaly pouze přípustná řešení. Nalezení jednoho ani druhého však není obecně jednoduchou úlohou (spíš naopak) a často se oba přístupy kombinují. Takto sestavený GA je pak ale specifický pro jeden konkrétní typ úlohy. 11

2.7 Stavební bloky, schéma-teorém Jak jsem již uvedl v odstavci 2.3, pokud nás zajímá, proč genetické algoritmy fungují, dostaneme většinou vágní odpověď, že v jedincích identifikují kladné rysy, které kombinují s jinými, zatímco záporné rysy během evoluce odumírají. Co ale jsou ony kladné rysy? Představa kladných vlastností se formalizuje konceptem stavebních bloků. Stavební bloky jsou schémata, která představují dobře přizpůsobené sady vlastností, jež lze najít u většiny dobrých řešení. Jinak řečeno, pro určité typy problémů lze vypozorovat, že mezi přibližně stejně dobrými jedinci v populaci existuje podobnost v tom smyslu, že tito jedinci obsahují na některých svých pozicích stejné bity. Lze tedy říct, že kvalitu jedince hodně ovlivní obsazení určitých konkrétních pozic, zatímco na obsazení ostatních pozic záleží méně. Podobnostmi mezi řetězci se zabývá hypotéza o schématech. Narozdíl od řetězců, které jsou tvořeny pouze abecedou obsahující dva prvky {0,1}, má abeceda schémat navíc ještě jeden prvek - *. Tvoří ji tedy množina {0,1,*}. Pokud se ve schématu objeví symbol *, pak schéma reprezentuje všechny řetězce, které na tomto místě obsahují jakýkoli konkrétní symbol a shodují se v ostatních pozicích se schématem. Pokud tedy schéma obsahuje n symbolů *, pak v případě binární abecedy chromozomů reprezentuje 2 n řetězců. Každému schématu H se přiřazuje jeho řád o(h), což je počet specifických pozic (nul a jedniček) ve schématu. Schéma řádu o(h) obsahuje L-o(H) symbolů *, kde L je délka schématu. Takové schéma tedy pokrývá 2 L-o(H) řetězců. Definiční délka schématu δ(h) je největší vzdálenost dvou specifických symbolů ve schématu. Schémata řádu 0 a 1 (neobsahují žádný nebo pouze jeden konkrétní symbol) mají definiční délku 0. Celkový vliv genetických operátorů na schémata vyjadřuje následující vztah: f ( H ) δ ( H ) m( H, t + 1) m( H, t) 1 PC PM o( H ) f L 1, (2.1) kde jednotlivé symboly mají následující význam: m ( H, t) počet řetězců v populaci, které pokrývá schéma H v čase t (v t-té generaci) f ( H ) fitness schématu (průměrné ohodnocení jedinců odpovídajících schématu) f P C P M střední fitness populace pravděpodobnost křížení pravděpodobnost mutace δ (H ) definiční délka schématu L délka schématu o(h) řád schématu Jednotlivé členy v závorce odpovídají postupně selekci, křížení a mutaci, které byly popsány v předcházejících odstavcích. 12

Rozborem vztahu (2.1) lze určit, že stavební bloky chromozomů tvoří krátká nadprůměrná schémata nízkého řádu. Krátká proto, aby s co největší pravděpodobností nebyla porušena křížením, a nízkého řádu, aby co nejpravděpodobněji přežila uplatnění mutace. Zvětšením pravděpodobnosti křížení se zvětší nejen rekombinace stavebních bloků, ale také pravděpodobnost, že budou zničeni i dobří jedinci. Jedno a dvoubodové křížení zachovávají velké množství stavebních bloků, zatímco rovnoměrné křížení prohazuje bity nezávisle na jejich pozici a velké množství stavebních bloků tak poruší. Vztah (2.1) popisující vzrůstající podíl dobrých jedinců v populaci se dá slovy zapsat jako [Michalewicz1995]: Schéma-teorém: Počet krátkých, nadprůměrných schémat nízkého řádu se s přibývajícími generacemi genetického algoritmu v populaci exponenciálně zvyšuje. Okamžitým důsledkem tohoto teorému je, že GA prozkoumávají stavový prostor prostřednictvím schémat s výše uvedenými vlastnostmi, které jsou následně použity k výměně informací během křížení [Michalewicz1995]: Hypotéza o stavebních blocích: GA vyhledává ve stavovém prostoru optimální řešení identifikací a skládáním krátkých, nadprůměrných schémat nízkého řádu, která se označují jako stavební bloky. Hypotéza o stavebních blocích je jinými slovy vyjádřené ono vágní tvrzení uvedené na začátku odstavce 2.7. Zde je vidět, že toto tvrzení není samoúčelné a že existují dobré důvody předpokládat, že hypotéza o stavebních blocích platí. 2.8 Shrnutí V této kapitole byly popsány základní vlastnosti a principy jednoduchých GA. GA se používají při řešení úloh v mnoha odvětvích, a to jak technických (počítačové vědy, strojírenství, robotika, ), tak i netechnických (obchod, plánování, rozvrhování, ) [Goldberg1994]. Mezi velké zápory, které brání masivnějšímu rozšíření SGA, patří také poměrně dlouhá doba běhu u složitých problémů. Jednou z možností, jak urychlit běh GA je paralelizace. Již z popisu uvedeného v této kapitole je zřejmé, že mnoho kroků během vývoje GA je možno úspěšně paralelizovat. O jednotlivých možnostech paralelizace pojednává následující kapitola. 13

3 Paralelní genetické algoritmy GA mohou pro vyřešení některých reálných problémů vyžadovat velké množství (desetitisíce či statisíce) volání účelové funkce. V závislosti na čase potřebném k ohodnocení jednoho chromozomu může běh GA trvat celé dny, měsíce nebo dokonce roky, než nalezne přijatelné řešení. Naštěstí GA pracují s populací nezávislých řešení, díky čemuž je snadné rozdělit výpočetní nároky mezi několik procesorů. Paralelní charakter GA byl rozpoznán již před mnoha lety a mnoho experimentátorů použilo paralelní GA (PGA) ke snížení doby potřebné k nalezení řešení značně složitých problémů. Ve skutečnosti by někdo mohl říct, že GA jsou paralelní již ve své podstatě a že tedy není těžké vytvořit rychlé PGA. PGA jsou ale složité nelineární algoritmy ovlivňované mnoha parametry, které určují efektivitu prohledání stavového prostoru a kvalitu nalezeného řešení. Součástí návrhu PGA je např. i rozhodnutí, zda použít jednu populaci či několik populací. V obou případech je třeba opatrně zvolit velikost populace (nebo populací). Pokud chceme navíc použít více populací, musíme určit kolik. Populace mohou zůstat oddělené nebo mezi sebou mohou komunikovat a vyměňovat si jedince. Komunikace s sebou nese další rozhodnutí ohledně komunikačních topologií, počtu vyměňovaných jedinců a četnosti komunikace. Obyčejně se tyto parametry nastavují buď podle výsledků několika provedených experimentů nebo jsou nalezeny náhodou. Problémem těchto přístupů je, že často vedou na plýtvání komunikačními zdroji nebo na neadekvátní kvalitu prohledávání stavového prostoru. Díky tomu se může stát, že experimentátorům se PGA jeví jako nepraktické nebo nevhodné k použití. V této kapitole je popsáno, co vše lze na GA paralelizovat a najdete zde rozdělení PGA podle nejčastěji používaných modelů. 14

3.1 Paralelní model vs. paralelní implementace Při použití termínu paralelní genetický algoritmus je třeba rozlišovat mezi případy, kdy slovo paralelní označuje paralelní model GA a kdy paralelní implementaci GA. Modely. Sekvenční model GA (přesněji nazývaný globální model) má jedinou populaci a neklade žádná omezení na to, který jedinec může rekombinovat s jiným. Globální model GA se tradičně slučuje s jednoduchým GA, který bývá popisován v literatuře. V paralelním modelu GA je buď více populací (ostrovní model) nebo jedna populace rozdělená do mnoha subpopulací. Mluvíme-li ovšem o modelu, neklademe žádná omezení na skutečnou implementaci. Implementace. Sekvenční i paralelní modely GA mohou být implementovány paralelně i sekvenčně. Sekvenční implementace globálního modelu je tradiční přístup popisovaný ve většině literatury o GA. Jeden proces běžící na jednom uniprocesoru provádí všechny výpočty. V paralelní implementaci globálního modelu mohou být některé nebo všechny kroky GA (selekce, křížení, mutace, ohodnocování) prováděny současně v několika procesech běžících na paralelním počítači nebo na síti spolupracujících počítačů. V sekvenční implementaci paralelního modelu GA běží několik procesů (každý se stará o svou subpopulaci) a sdílejí strojový čas jednoho procesoru. V paralelní implementaci paralelního modelu běží každý z procesů na svém procesoru paralelního počítače nebo sítě pracovních stanic. Je zřejmé, že sekvenční implementace paralelních modelů nepřináší proti sekvenční implementaci globálního modelu žádné úspory času, spíše by tomu mělo být naopak. Umožňuje nám ale studovat jevy, které se u PGA projevují. Samozřejmě, že pro praktické využití paralelních modelů GA je přirozenější a efektivnější navržený paralelní model také paralelně implementovat. Pokud se v dalším textu objeví výraz paralelní GA (PGA), mám tím na mysli paralelní model GA. Pokud by se mělo jednat o paralelní implementaci některého z modelů, pak to bude výslovně uvedeno. 3.2 Možnosti paralelizace Jak již bylo řečeno, GA jsou díky své struktuře velice vhodné pro paralelní implementace, protože v nich spousta činností probíhá nezávisle (nebo je lze přizpůsobit tak, aby nezávisle probíhaly). První pokusy o paralelní implementace využívaly globální model GA. Následující rozdělení modelů PGA je převzato z [Cantú-Paz1999c]: 3.2.1 Paralelizace globálního modelu Algoritmus obhospodařuje jednu populaci stejně jako u obyčejného sekvenčního GA. Máme-li ovšem k dispozici více procesorů, není důvod, proč populaci nerozdělit na několik částí, jejichž ohodnocení bychom svěřili jednotlivým procesorům [Bethke1976, Grefenstette1981]. Ohodnocování jednotlivých chromozomů zřejmě není závislé na ničem 15

jiném, takže se dá velice snadno paralelizovat. Tento přístup, nazývaný master-slave, využívá výpočetní možnosti procesorů slave jen z části. Uplatnění všech genetických operátorů je prováděno na procesoru master. Komunikace mezi procesorem master a procesory slave probíhá tehdy, když master odesílá skupiny jedinců jednotlivým slaveům k ohodnocení a když procesory slave vrací vypočtené hodnoty účelové funkce procesoru master. S jistou dávkou opatrnosti se však dá rozdělit mezi jednotlivé procesory slave i uplatňování genetických operátorů. Protože je v modelu jedna populace, selekce bere v úvahu všechny jedince a každý chromozom má šanci reprodukovat se se všemi ostatními. Pokud je algoritmus synchronní (v každé generaci se čeká na dokončení ohodnocování celé populace), algoritmus se chová stejně jako sekvenční GA. Asynchronní implementace (procesory nečekají na dokončení ohodnocení celé populace) se svou činností liší od obyčejného GA a používají se jen zřídka. Pokud se v dalším textu objeví zmínka o globálním modelu, myslí se tím synchronní implementace paralelizace globálního modelu. 3.2.2 Vícekmenové PGA (Multi-deme PGA) V tomto modelu je využito již o něco složitější myšlenky. Populace je rozdělena do několika subpopulací, neboli kmenů, které se vyvíjejí izolovaně od ostatních a příležitostně si mezi sebou vymění některé ze svých chromozomů [Grefenstette1981]. Této výměně jedinců se říká migrace a je ovlivňována několika parametry (viz. kapitola 4). Rozdělení na kmeny lze považovat za tak úplné, že na každý kmen lze pohlížet jako na zcela samostatný GA (se vším, co k tomu náleží: je možno použít odlišné selekční metody, odlišné metody křížení a mutace, dokonce i odlišné účelové funkce). Vícekmenové PGA zavádějí nové principy v činnosti GA a jejich chování je odlišné od chování jednoduchých GA. V globálním modelu probíhá selekce i reprodukce v rámci celé populace, zatímco u vícekmenových PGA berou genetické operátory v úvahu jen jedince v rámci kmene. Někdy se jim také říká ostrovní PGA, protože v populační genetice existuje model pro relativně izolované populace, kterému se říká ostrovní model. Protože velikost jednotlivých kmenů je menší než velikost celé populace u jednoduchých GA, dalo by se předpokládat, že PGA bude rychleji konvergovat. Tento předpoklad se potvrzuje, ale zároveň bylo zjištěno, že kvalita nalezeného řešení může být horší [Grosso1985]. Podle stupně rozdělení populace na kmeny se navíc rozlišují dvě podskupiny tohoto modelu: Hrubě dělené PGA (Coarse-Grained PGA) populace rozdělena do několika poměrně velkých subpopulací [Grosso1985]. Jemně dělené PGA (Fine-Grained PGA) populace rozdělena do velkého počtu velmi malých subpopulací. Extrémním případem by bylo, kdyby ke každému chromozomu byl přiřazen jeden procesor. Tento model je vhodný pro masivně paralelní architektury počítačů, ale dá se implementovat na jakémkoli multiprocesoru. 16

Jemně i hrubě dělené PGA využívají stejných principů a hranice mezi nimi se těžko stanovuje (pokud vůbec existuje). Přesto může být někdy užitečné toto rozdělení provádět. Já sám jsem si tedy stanovil následující hranici mezi hrubě děleným a jemně děleným PGA: pokud je počet kmenů menší než počet jedinců v každém z nich, lze mluvit o hrubě děleném PGA, pokud je tomu naopak, pak takový PGA nazývám jemně děleným. 3.2.3 Hybridní (hierarchické) PGA Jedná se o poslední model paralelizace. Jak už název napovídá, tato metoda používá kombinaci některých výše zmíněných metod. Snaží se přitom využít dobrých vlastností každé z nich a potlačit jejich nedostatky. Poprvé se tento nápad objevil v [Grefenstette1981]. Základní myšlenka je jednoduchá: použijte PGA s několika kmeny, které jsou samy tvořeny nějakou formou PGA. Ti, kteří používají tento přístup, si od něj slibují lepší výkon, než by měla kterákoliv jeho samotná součást. Jako příklad lze uvést třeba implementaci s několika master-slave PGA na nižší úrovni tvořících kmeny hrubě děleného PGA na úrovni vyšší [Cantú-Paz1999c]. 3.3 Problém nadměrného urychlení Jedním z kontroverzních témat týkajících se PGA je problém nadměrného urychlení (Superlinear Speedup Problem). Spočívá v rozporu mezi teoretickými předpoklady a empirickými výsledky. Teoretická úvaha říká přibližně toto: pokud vyřešení libovolné úlohy trvá jedinému procesoru dobu T, pak je logické tvrdit, že N procesorům bude trvat řešení té samé úlohy minimálně dobu T/N (předpokládá se přitom, že celkový počet výpočetních úkonů potřebný k vyřešení úlohy je pro oba případy stejný). Tedy celý výpočetní proces se při použití N procesorů může urychlit maximálně N-krát. Podle empirických výsledků dochází ale mnohdy i k více než N-násobnému zkrácení výpočetní doby, což je předmětem diskusí na téma nadměrného urychlení. Bylo vytvořeno několik pokusů o vysvětlení tohoto jevu. Nejsmysluplnější se zdá být vysvětlení, které napadá snad jediný napadnutelný předpoklad výše uvedené teoretické úvahy, který říká, že celkový objem výpočetní práce je shodný pro paralelní i pro sekvenční model GA. Možné vysvětlení nadměrného urychlení je to, že paralelní modely nějakým způsobem provádějí méně činnosti než modely sekvenční. Redukce výpočtů je podle jedné hypotézy způsobena hlavně zvýšením selekčního tlaku, za které je odpovědná migrace jedinců mezi populacemi [Cantú-Paz1999c]. Migrace ale není jediným možným vysvětlením tohoto jevu. Jiným vysvětlením může být i to, že menší populace se vejdou celé do vyrovnávacích pamětí procesorů [Belding1995], nebo nesprávné určení velikosti populace, takže není zaručena konvergence ke stejně kvalitnímu řešení. 3.4 Shrnutí Tato kapitola poskytla stručný přehled paralelních modelů GA, principů jejich činnosti, popis jejich vzájemných odlišností i odlišností vůči jednoduchým GA. V odstavci 3.3 byl 17

popsán jev nadměrného urychlení vyskytující se u PGA využívajících migraci a právě migrace byla označena jako možné vysvětlení tohoto jevu. Migrační operátor si proto zasluhuje zvláštní pozornost a je mu věnována celá následující kapitola. 18

4 Migrační strategie Jak již bylo řečeno, migrační strategie (krátce migrace) má v PGA za úkol provádět výměnu jedinců (migrantů) mezi jednotlivými kmeny. Proč je vlastně ale migrace zapotřebí? Představme si, co se stane, rozdělíme-li populaci jednoduchého GA na r kmenů, jejichž vývoj bude probíhat odděleně. Dostaneme tedy vlastně r genetických algoritmů a každý z těchto r kmenů dosáhne různě kvalitního řešení. Povrchní úvaha nám může napovědět, že více kmenů znamená více pokusů o vyřešení problému, a tedy i větší šanci na nalezení dostatečně kvalitního řešení. Bohužel jsme přitom zapomněli na fakt, že každý z kmenů pracuje s r-krát menší populací, která konverguje mnohem rychleji než původní celková populace jednoduchého GA. Migrace pro nás tedy představuje způsob, kterým chceme udržet různorodost populace na dostatečné úrovni tak, aby byla zajištěna požadovaná kvalita prohledání stavového prostoru. Předtím, než se migrací budu zabývat podrobněji, je třeba si stanovit, čím je migrace definována a co se vlastně za ní skrývá. Definice migrace zatím není nikde exaktně stanovena a různí experimentátoři některé z jejích parametrů zanedbávají nebo vůbec neuvažují. Pro účely této diplomové práce představuje migrace proces výměny chromozomů mezi kmeny, který určují čtyři parametry, z nichž tři jsou netriviální: Migrační kritérium Komunikační topologie Migrační koeficient Způsob přenosu migrantů (jedinců nebo schémat) Podívejme se nyní na význam jednotlivých parametrů a na jejich vliv na běh PGA. 4.1 Migrační kritérium Tento parametr určuje, ve kterých okamžicích bude k migraci docházet. Kritérium zde představuje spoušť, pomocí níž je migrace vyvolávána. Podle způsobu spouštění se 19

migrace dělí na synchronní, kdy migrace probíhá v konstantních intervalech, a na asynchronní, kdy komunikace mezi kmeny probíhá jen jako reakce na určitou událost. 4.1.1 Synchronní migrace Většina vícekmenových PGA využívá synchronní migraci. Její výhodou je, že migrační kritérium je jednoduché, a proto se snadno implementuje a jeho vyhodnocení vyžaduje malé množství strojového času (jedná se pouze o porovnání současné generace vývoje PGA s předdefinovaným migračním intervalem). Nevýhodou synchronní migrace je to, že vůbec nezohledňuje otázku, kdy je vhodná doba pro uskutečnění migrace. Pozorování ukazují, že příliš častá nebo příliš řídká migrace může degradovat efektivitu algoritmu [Tanese1987]. Při konstantním migračním intervalu mohou totiž nastat dva nežádoucí případy: Příliš častá migrace (hraniční případ migrace probíhá každou generaci). Takovým nastavením do značné míry potlačíme hlavní rys hrubě dělených PGA oddělený vývoj kmenů. Počet správných stavebních bloků v migrujících jedincích nemusí být dostatečný k tomu, aby ovlivnil prohledávání stavového prostoru správným směrem. Zjednodušeně řečeno, většina migrujících jedinců nebude natolik dobrá, aby pro cílovou populaci znamenala významnější přínos. Migrace v tomto případě tedy probíhá zbytečně často a plýtvá tak komunikačními zdroji. Nesmíme zapomínat, že vývoj jednotlivých kmenů může probíhat na geograficky značně vzdálených počítačích, a velké množství komunikací značně snižuje efektivitu a zvyšuje náklady na běh programu. Příliš řídká migrace (hraniční případ izolované kmeny). Pokud bude k výměně jedinců docházet jen zřídka, dáváme tím PGA možnost, aby v jednotlivých kmenech vyvinul jedince představující různá lokální optima. Protože kmeny v PGA bývají řádově menší než populace u jednoduchých GA, snáze a rychleji předčasně konvergují k lokálním optimům. Protože mutace bývá u PGA značně nebo úplně potlačena, představuje migrace jediný způsob, jak vnést do subpopulací nový genetický materiál. Na dalších parametrech (migračním koeficientu a kvalitě migrujících jedinců) pak bude záležet to, jaký vliv bude mít tento injektovaný nový genetický materiál na cílový kmen, tzn. zda bude dostatečně silný, aby populaci nějak ovlivnil. Protože běh GA je ve své podstatě náhodný, může se stát, že vlivem stochastických procesů nebudou nově zařazení jedinci pro vývoj populace vůbec použiti. 4.1.2 Asynchronní migrace Jak již bylo uvedeno, asynchronní migrace využívá kritéria, která spouštějí migraci jako reakci na jistou událost. Podmínky vyskytující se v těchto kritériích mají za úkol se co nejvíce přiblížit odpovědi na otázku, kdy je vhodné migraci provést. Většina takových kritérií obsahuje ve své podmínce míru konvergence populace, kterou porovnává s předem daným prahem [Grosso1985]. Vyhodnocení takového kritéria 20