Diplomová práce. Plánování dráhy robota pomocí genetických algoritmů

Podobné dokumenty
Nerovnice s absolutní hodnotou

Umělá inteligence. Příklady využití umělé inteligence : I. konstrukce adaptivních systémů pro řízení technologických procesů

( ) Kreslení grafů funkcí metodou dělení definičního oboru I. Předpoklady: 2401, 2208

(a) = (a) = 0. x (a) > 0 a 2 ( pak funkce má v bodě a ostré lokální maximum, resp. ostré lokální minimum. Pokud je. x 2 (a) 2 y (a) f.

{ } Kombinace II. Předpoklady: =. Vypiš všechny dvoučlenné kombinace sestavené z těchto pěti prvků. Urči počet kombinací pomocí vzorce.

Pingpongový míček. Petr Školník, Michal Menkina. TECHNICKÁ UNIVERZITA V LIBERCI Fakulta mechatroniky, informatiky a mezioborových studií

2.8.9 Parametrické rovnice a nerovnice s absolutní hodnotou

STEREOMETRIE. Vzdálenost bodu od přímky. Mgr. Jakub Němec. VY_32_INOVACE_M3r0113

3.2.4 Podobnost trojúhelníků II

E-ZAK. metody hodnocení nabídek. verze dokumentu: QCM, s.r.o.

Tvorba trendové funkce a extrapolace pro roční časové řady

Srovnání posledních dvou verzí studijních plánů pro studijní obor. Informační systémy. (studijní program Aplikovaná informatika)

Dualita v úlohách LP Ekonomická interpretace duální úlohy. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Metodické principy NIL

1.3.1 Kruhový pohyb. Předpoklady: 1105

Úvod. Analýza závislostí. Přednáška STATISTIKA II - EKONOMETRIE. Jiří Neubauer

Lokální a globální extrémy funkcí jedné reálné proměnné

Dopravní úloha. Jiří Neubauer. Katedra ekonometrie FEM UO Brno

Aplikované úlohy Solid Edge. SPŠSE a VOŠ Liberec. Ing. Aleš Najman [ÚLOHA 18 TVORBA PLOCH]

Kvantové počítače algoritmy (RSA a faktorizace čísla)

Kvadratické rovnice pro učební obory

Metaheuristiky s populacemi

1. Kruh, kružnice. Mezi poloměrem a průměrem kružnice platí vztah : d = 2. r. Zapíšeme k ( S ; r ) Čteme kružnice k je určena středem S a poloměrem r.

2.7.2 Mocninné funkce se záporným celým mocnitelem

Úpravy skříní a čelních ploch pro úchopovou lištou

( ) ( ) ( ) 2 ( ) Rovnice s neznámou pod odmocninou II. Předpoklady: 2715

PŘÍLOHA č. 2B PŘÍRUČKA IS KP14+ PRO OPTP - ŽÁDOST O ZMĚNU

= musíme dát pozor na: jmenovatel 2a, zda je a = 0 výraz pod odmocninou, zda je > 0, < 0, = 0 (pak je jediný kořen)

Výsledky testování školy. Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy. Školní rok 2012/2013

Vrtání závitů bez vyrovnávací hlavičky (G331, G332)

JAK PŘIDAT UŽIVATELE PRO ADMINISTRÁTORY

Escort Servis Night Prague

4.2.7 Voltampérová charakteristika rezistoru a žárovky

VOLBA TYPU REGULÁTORU PRO BĚŽNÉ REGULAČNÍ SMYČKY

SPOLEHLIVOST KONSTRUKCÍ & TEORIE SPOLEHLIVOSTI část 2: Statistika a pravděpodobnost

M - Rovnice - lineární a s absolutní hodnotou

Číselné soustavy Ing. M. Kotlíková, Ing. A. Netrvalová Strana 1 (celkem 7) Číselné soustavy

Výsledky testování školy. Druhá celoplošná generální zkouška ověřování výsledků žáků na úrovni 5. a 9. ročníků základní školy. Školní rok 2012/2013

IMPORT A EXPORT MODULŮ V PROSTŘEDÍ MOODLE

4.6.6 Složený sériový RLC obvod střídavého proudu

Pohyb v listu. Řady a posloupnosti

Obchodní řetězec Dokumentace k návrhu databázového systému

Google AdWords - návod

Rozvrhování zaměstnanců

Metodika - Postupy optimálního využití moderních komunikačních kanálů

Tabulky Word egon. Tabulky, jejich formátování, úprava, změna velikosti

1. Cizinci v České republice

Metodika pro učitele

Využití EduBase ve výuce 2

Dutý plastický trojúhelník by Gianelle

Mobilní aplikace pro ios

Řešení: ( x = (1 + 2t, 2 5t, 2 + 3t, t); X = [1, 2, 2, 0] + t(2, 5, 3, 1), přímka v E 4 ; (1, 2, 2, 0), 0, 9 )

Finanční matematika Vypracovala: Mgr. Zuzana Kopečková

Operativní plán. Operativní řízení stavby

9.2.5 Sčítání pravděpodobností I

Kvadratické rovnice pro studijní obory

Úlohy 22. ročníku Mezinárodní fyzikální olympiády - Havana, Cuba

Název: VY_32_INOVACE_PG3309 Booleovské objekty ve 3DS Max - sčítání a odčítání objektů

Elektronický formulář

Ministerstvo pro místní rozvoj. podprogram

1.1.1 Kvadratické rovnice (dosazení do vzorce) I

Paradigmata kinematického řízení a ovládání otevřených kinematických řetězců.

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Novinky v Maple T.A. 10

Jméno autora: Mgr. Zdeněk Chalupský Datum vytvoření: Číslo DUM: VY_32_INOVACE_13_FY_A

Základní informace. Kolín, Leden/Únor


KONSTRUKČNÍ ÚLOHY ŘEŠENÉ UŽITÍM MNOŽIN BODŮ

Google Apps. pošta 2. verze 2012

Semestrální práce NÁVRH ÚZKOPÁSMOVÉHO ZESILOVAČE. Daniel Tureček zadání číslo 18 cvičení: sudý týden 14:30

Matematika - Tercie Matematika tercie Výchovné a vzdělávací strategie Učivo ŠVP výstupy

1 Typografie. 1.1 Rozpal verzálek. Typografie je organizace písma v ploše.

Zvyšování kvality výuky technických oborů

MS WORD 2007 Styly a automatické vytvoření obsahu

Nyní jste jedním z oněch kouzelníků CÍL: Cílem hry je zničit soupeřovy HERNÍ KOMPONENTY:

Hodnocení způsobilosti procesu. Řízení jakosti

DUM 11 téma: Nástroje pro transformaci obrázku

65. ročník matematické olympiády Řešení úloh klauzurní části školního kola kategorie B

Sada 2 Microsoft Word 2007

Microsoft Office. Word styly

Masarykova univerzita. Fakulta informatiky. Evoluce pohybu

Využití ICT pro rozvoj klíčových kompetencí CZ.1.07/1.5.00/

UŽITÍ DERIVACÍ, PRŮBĚH FUNKCE

POSDOKTORSKÉ PROJEKTY 2012

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

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

Základy. analýzy hlavních komponent a multivariačních regresních metod pro spektrální analýzu

15 s. Analytická geometrie lineárních útvarů

PRAVDĚPODOBNOST A STATISTIKA OPAKOVÁNÍ, pro rozpoznávání

Filtrace olejů a čištění strojů

Kapitola I - Množiny bodů daných vlastností I.a Co je množinou všech bodů v rovině, které mají od daných dvou různých bodů stejnou vzdálenost? I.

Vítejte na dnešním semináři. Lektor: Ing. Ludmila Brestičová

PROGRAMOVÁNÍ SVĚTELNÝCH OZDOB

Optika. VIII - Seminář

Př. 3: Dláždíme čtverec 12 x 12. a) dlaždice 2 x 3 12 je dělitelné 2 i 3 čtverec 12 x 12 můžeme vydláždit dlaždicemi 2 x 3.

16. února 2015, Brno Připravil: David Procházka

AUTORKA Barbora Sýkorová

CERTIFIKOVANÉ TESTOVÁNÍ (CT) Výběrové šetření výsledků žáků 2014

Startovní úloha Samostatná práce

PŘÍRUČKA K POUŽÍVÁNÍ APLIKACE HELPDESK

Transkript:

Diplomová práce Plánování dráhy robota pomocí genetických algoritmů vypracoval: Petr Štěpánek vedoucí práce: RNDr. Jiří Dvořák, CSc. obor: Inženýrská informatika a automatizace specializace: Informatika rok: 2006

ANOTACE Tato diplomová práce pojednává o problematice plánování dráhy robota v diskrétním a spojitém prostředí. První část je věnována metodám pro plánování dráhy robota. V druhé části jsou popsány metody a jejich modifikace použité při vytvoření plánovacího a simulačního programu. V poslední části je navržen konkrétní systém pro hledání cesty a vytvořen program v prostředí Borland Builder. Tato diplomová práce byla zpracována v rámci vědecko-výzkumného záměru MSM 0021630518 "Simulační modelování mechatronických soustav". ANNOTATION This thesis deals with robot path planning in discrete and continuous environment. Characterization of various methods for robot planning is presented in the first part. The second part of thesis interprets principles of path planning systems. In the last part concrete path planning system and simulation program are designed. Both programs have been created in Borland Builder environment. This thesis was developed in the research project MSM 0021630518 "Simulation Modelling of Mechatronic Systems"

Strana 6

OBSAH: Anotace... 5 Annotation... 5 1 Úvod... 9 2 Problematika plánování cesty robotu... 11 2.1 Diskrétní prostředí... 11 2.2 Spojité prostředí... 12 2.3 Překážky... 12 2.4 Pohyb robotu... 13 3 Genetický algoritmus (GA)... 15 3.1 Definice GA... 15 3.2 Velikost populace... 16 3.3 Počáteční populace... 16 3.4 Reprezentace chromozomu... 16 3.5 Fitness... 17 3.6 Výběr (selekce) rodičů... 17 3.6.1 Turnajový výběr... 17 3.6.2 Proporcionální (ruletový) výběr... 17 3.6.3 Uspořádaný výběr... 18 3.7 Genetický operátor křížení... 18 3.7.1 Diskrétní křížení (uniformní)... 18 3.7.2 Bodové křížení... 18 3.7.3 Diagonální křížení... 19 3.7.4 Průměrové křížení... 19 3.8 Genetický operátor mutace... 19 3.8.1 Jednobodová mutace... 19 3.8.2 Vícebodová mutace... 20 3.9 Změna populace... 20 3.9.1 Generační výměna... 20 3.9.2 Inkrementální náhrada... 20 3.10 Kritérium ukončení... 21 4 Metody plánování dráhy... 23 4.1 Metoda rozkladu do buněk... 23 4.1.1 Aproximativní rozklad... 23 4.1.2 Exaktní rozklad... 24 4.2 Metoda mapy cest... 25 4.2.1 Graf viditelnosti... 25 4.2.2 Graf tečen... 25 4.2.3 Voronoiův diagram... 26 5 Plánováni cesty robotu pomocí GA... 28 5.1 Plánování cesty robotu v diskrétním prostředí... 28 5.1.1 Metoda z práce [2] (Nearchou)... 28 5.1.2 Metoda z práce [5] (Sugihara)... 31 5.1.3 Metoda z práce [4] (Látal)... 33 5.2 Plánování cesty robotu ve spojitém prostředí... 34 5.2.1 Metoda z práce [1] (Homaifar)... 34 5.2.2 Metoda z práce [5] (Gemeinder)... 36

Strana 8 5.2.3 Výpočet fitness funkce... 38 5.2.4 Příklady nalezených cest... 38 6 Návrh řešení... 39 6.1 Prostředí... 39 6.1.1 Reprezentace chromozomu... 39 6.2 Operátory genetického algoritmu... 40 6.2.1 Operátor selekce... 40 6.2.2 Operátor křížení... 40 6.2.3 Operátor mutace... 41 6.2.4 Operátor přidání uzlu... 42 6.2.5 Operátor odebrání uzlu... 42 6.2.6 Funkce fitness... 43 6.2.7 Počáteční populace... 43 6.2.8 Kritérium ukončení... 44 7 Popis programu... 45 7.1 Hlavní formulář... 45 7.2 Formulář mapy prostředí... 46 7.3 Formulář statistik výpočtu... 47 7.4 Možnosti externích dat... 48 8 Výsledky experimentů... 49 8.1 Prostředí 1... 49 8.1.1 Test 1... 49 8.1.2 Test 2... 50 8.2 Prostředí 2... 50 8.3 Prostředí 3... 51 8.4 Prostředí 4... 52 8.5 Prostředí 5... 53 8.5.1 Změna počátečních podmínek... 53 8.5.2 Změna prostředí... 55 9 Závěr... 57 Seznam použité literatury... 58

1 ÚVOD Cílem mé diplomové práce bylo analyzovat problematiku plánování dráhy robota a navrhnout simulační program, který za pomoci genetických algoritmů (GA) nalezne cestu ze startovní do cílové pozice v co nejkratším čase a nejkratší cestě. Dále analyzovat vliv jednotlivých genetických operátorů a heuristických funkcí. V článcích, ze kterých jsem čerpal informace byly i jiné metody než jsem použil ve svém programu. Můj program prohledává spojité dvourozměrné prostředí. Odborná literatura se neomezuje jen na prohledáváni 2D prostoru, ale věnuje se i prohledávání 3D prostoru. Touto problematikou se zabývá např. vojenské inženýrství pro řízení bezpilotních vozidel. Genetické algoritmy jsou založeny na evoluční teorii, kterou popsal již Darwin. Hlavní částí GA je populace jedinců, kteří se podle určitých pravidel mezi sebou kříží. Součástí GA je také mutace chromozomu vzniklého jedince. Mutace nám zabezpečuje pestrost populace a při hledání cesty možnost nalezení takové varianty cesty, které bychom bez mutace nemohli dosáhnout. V mé interpretaci genetického algoritmu je chromozom posloupností bodů cesty. Tím je každá cesta, tedy jedinec populace, jednoznačně charakterizována. Síla (fitness) každého jedince je pak dána kvalitou cesty, kterou reprezentuje. Při počítání hodnoty fitness se může pohlížet i na to, kolikrát se zatáčí, jestli se nevracíme atd. Především je na ni pohlíženo jako na množství energie, kterou robot spotřebuje při přesunu mezi startovním a cílovým regionem. Můj návrh genetického algoritmu se opírá hlavně o článek [5]. Genetický algoritmus je mírně modifikován a používá kromě klasických genetických operátorů i exaktní metody pro analýzu terénu. Díky jim dosahuje výborných výsledku i v rozsáhlých a členitých terénech. Pro srovnání jsem do programu implementoval i klasický genetický algoritmus.

Strana 10

2 PROBLEMATIKA PLÁNOVÁNÍ CESTY ROBOTU Prostředí, ve kterém se robot pohybuje je statické (v čase neměnné). Nedochází k dynamickým změnám při jeho prohledávání. Prostředí také může být plastické se stoupáním a klesáním. Může simulovat určitou krajinu. 2.1 Diskrétní prostředí Základem tohoto prostředí je pravoúhlá šachovnicová síť skládající se z buněk. Prostor vzniklý z těchto buněk nazýváme scéna (2D). Tato scéna je obecně obdélníkového tvaru. Počátek souřadnicového systému je umístěn do levého horního rohu. Prostředí má svoji délku v ose x (l x ) a v ose y (l y ). Počet buněk v ose x je (n x ) a v ose y je (n y ). Všechny tyto rozměry jsou patrné z obr. 1. Obr. 1 2D scéna. Šířka buňky je rovna podílu celkové šířky prostředí a počtu buněk v horizontální ose: a = l x / n x. Výška buňky je rovna podílu celkové výšky prostředí a počtu buněk ve vertikální ose: b = l y / n y. Velikost úhlopříčky je dána vzorcem c + 2 2 = a b (1)

Strana 12 Obr. 2 Velikost buňky. 2.2 Spojité prostředí Spojité prostředí není rozděleno na čtvercovou síť jako je tomu u diskrétního prostředí. Je to kontinuální prostor, který se dá přirovnat k prostředí kolem nás. Robot se tedy může pohybovat libovolným směrem. Příklad spojitého prostředí je na obr. 3. Na obrázku je také znázorněna velikost robotu v podobě kružnic na dráze cesty. 2.3 Překážky Obr. 3 Příklad spojitého prostředí Překážkami rozumíme nerovnosti povrchu, předměty na zemi, atd., v podstatě prostředí, ve kterém se pohybujeme. Tyto překážky omezují mobilitu robota. Ve svém případě jsem problematiku překážek zjednodušil na jeden typ překážek a to neprostupné statické. Existují také překážky, které se dají překonat. Robot při překonávání takových překážek musí provést některé specifické úkony, jako například překročeni atd.

Další z možných členění je rozdělení překážek na statické a dynamické. Dynamickými překážkami můžou být například lidé nebo jiní roboti. Statickými pak překážky neměnící po čas pohybu robota svoji polohu nebo velikost. Reprezentace překážek je podmíněna zejména typem prostředí. Například v diskrétním prostředí je překážka složena z jednoho nebo více nedělitelných celků. Kdežto ve spojitém prostředí je obvykle překážka definována svými vrcholy a hranami. Obr. 4 Možná reprezentace překážek. V diskrétním prostředí (vlevo) a spojitém prostředí (vpravo). 2.4 Pohyb robotu Robot se pohybuje v prostoru spojitém nebo diskrétním. Podle počtu rozměrů v 2D re nebo 3D prostoru. Zvolíme dva libovolné body tohoto prostoru za startovní a cílovou pozici robota (na těchto místech se nesmí nacházet překážka). Úkolem je najít cestu, po které robot projde prostorem ze startovní do cílové pozice. Cesta nesmí procházet přes žádnou překážku. Rychlost pohybu robotu se uvažuje konstantní pro zjednodušení výpočtu nebo proměnná. Možnosti směru pohybu robota jsou z hlediska prohledávacího algoritmu omezeny v diskrétním prostředí způsobem diskretizace. Například v šachovnicovém diskrétním prostředí se robot může pohybovat do osmi směrů, jak vyplývá z obr. 5. Z toho čtyři jsou ve směru hlavních os (nahoru, dolů, vlevo, vpravo) a čtyři ve směru diagonál (nahoru vlevo, nahoru vpravo, dolů vlevo, dolů vpravo).

Strana 14 Obr. 5 Šachovnicové prostředí (a) Směry pohybu. (b) Vzdálenosti pohybu. Ve spojitém prostředí není robot omezován v pohybu způsobem reprezentace terénu. Oproti diskretizovanému terénu se však obecně vyznačuje složitější náročností na prohledávání.

3 GENETICKÝ ALGORITMUS (GA) Genetický algoritmus (GA) je heuristický postup, který se snaží aplikací principů evoluční biologie nalézt řešení složitých problémů, pro které neexistuje použitelný exaktní algoritmus. Genetické algoritmy, respektive všechny postupy patřící mezi tzv. evoluční algoritmy používají techniky napodobující evoluční procesy známé z biologie dědičnost, mutace, přirozený výběr a křížení pro šlechtění řešení zadané úlohy. Princip práce genetického algoritmu je postupná tvorba generací různých řešení daného problému. Při řešení se uchovává tzv. populace, jejíž každý jedinec představuje jedno řešení daného problému. Jak populace probíhá evolucí, řešení se zlepšují. Tradičně je řešení reprezentováno binárními čísly, řetězci nul a jedniček, nicméně používají se i jiné reprezentace (strom, pole, matice, ). Typicky je na začátku simulace (v první generaci) populace složena z naprosto náhodných členů. V přechodu do nové generace je pro každého jedince spočtena tzv. fitness funkce, která vyjadřuje kvalitu řešení reprezentovaného tímto jedincem. Podle této kvality jsou stochasticky vybráni jedinci, kteří jsou modifikováni (pomocí mutací a křížení), čímž vznikne nová populace. Tento postup se iterativně opakuje, čímž se kvalita řešení v populaci postupně vylepšuje. Algoritmus se obvykle zastaví při dosažení postačující kvality řešení, případně po předem dané době. 3.1 Definice GA Genetický algoritmus je stochastický adaptivní algoritmus obsahující následující operátory a parametry: GA = (N, P, f, Θ, Ω, Ψ, τ) kde P je populace N prvků (jedinců, individuí), viz. obr. 6: P = {S 1, S 2,..., S N }. Každý prvek S i, i=1,..., N Je řetězec (nebo množina) celých čísel pevné délky n, reprezentující řešení problému, to znamená S i Z n. Obr. 6 Populace N prvků. f označuje tzv. fitness funkci (fitness function), která přiřazuje každému prvku kladné reálné číslo: f = S i R +, i = 1,,N Θ je operátor výběru (selekce) rodičovských prvků (parent selection operator), který vybere u prvků z P: Θ : P {P 1,,P u }

Strana 16 Ω je množina genetických operátorů, zahrnující operátor křížení (crossover) Ω c, operátor mutace (mutation) Q. m a případně další problémově specifické operátory, které všechny dohromady generují v potomků (offsprings, children) z u rodičů: Ω = {Ω c, Ω m, } : {P 1,,P u } {O 1,,O v } Ψ je operátor redukce (deletion), která odstraní v vybraných prvků v aktuální populaci P. Poté je v potomků přidáno do nové populace P(t +1): P(t + 1) = P(t) Ψ (P(t)) + {O 1,..., O v } τ je kritérium ukončení: τ : P(ť) {true,false} Operátor výběru rodičů Θ a genetické operátory Ω mají pravděpodobnostní charakter, zatímco operátor redukce Ψ může být deterministický. 3.2 Velikost populace Při volbě velikosti populace N se musíme rozhodovat mezi dvěma protichůdnými požadavky, jimiž jsou: Rozmanitost (variety) Rychlost konvergence (rate of convergence). Je zřejmé, že při volbě malé populace je také malá počáteční rozmanitost prvků v populaci, a tak populace má tendenci konvergovat rychle, avšak nejčastěji k lokálnímu optimu místo ke globálnímu optimu. Naopak při volbě rozsáhlé populace bude velká počáteční rozmanitost prvků v populaci, což znamená, že GA bude mít větší šanci nalezení optimálního řešení. Pochopitelně cena, kterou v tomto případě platíme, je nižší rychlost konvergence a zvýšení počtu operací algoritmu. Velikost populace v obvyklém rozsahu 50 N 200 zcela vyhovuje pro většinu problémů. 3.3 Počáteční populace Počáteční populace se buďto vygeneruje náhodně, nebo je získána jako množina dobrých řešení pomocí jiné heuristické metody nebo z předchozího výpočtu genetického algoritmu. 3.4 Reprezentace chromozomu Řešení kombinatorického problému může být reprezentováno konečnou množinou parametrů nebo proměnných, které nabývají diskrétních hodnot. Tyto parametry (v GA označované jako geny) tvoří řetězce hodnot (chromozomy). V klasickém Hollandově GA je chromozom reprezentován řetězcem binárních hodnot. Není to však jediný způsob.

3.5 Fitness Hodnota fitness funkce určuje míru šance jedinců v populaci na reprodukci a přežití do následující generace. Nejjednodušším způsobem definice fitness funkce je přímé použití účelové funkce řešeného problému. V GA se preferují prvky s nejvyšší hodnotou účelové funkce u maximalizačních problémů. U minimalizačních problémů je nutné fitness funkci modifikovat, např. tak, že účelovou funkci odčítáme od určité konstanty f max, která je větší než všechny hodnoty účelové funkce prvků v populaci. Tento způsob má však i svá úskalí, protože f max musíme volit dostatečně velké a pak hodnoty f max f(si) pro i = 1,..., N mohou být relativně blízké, což stírá rozdíly mezi dobrými" a špatnými" řešeními a komplikuje výběr prvků do dalších operací. 3.6 Výběr (selekce) rodičů Mechanismus výběru rodičů hraje v GA klíčovou roli. Chceme-li vybrat u rodičovských prvků, pak se zdá, že nejlepší je vybrat jedince, jejichž hodnoty fitness funkce jsou na prvních u místech nerostoucí posloupností těchto hodnot. Bohužel však tato strategie má za následek, že se snižuje pestrost genetického materiálu" (genotype diversity) a jedinci v populacích následujících generací se postupně soustřeďují pouze do jedné části prohledávacího prostoru. Což může znamenat, že postup může konvergovat k lokálnímu extrému. S jistou nadsázkou lze říci, že dochází k podobnému efektu jako při degeneraci potomků, jejichž předci jsou spřízněni blízkými příbuzenskými vazbami. Abychom se vyvarovali těchto nežádoucích efektů, používají se při výběru rodičů strategie, které jsou založeny na pravděpodobnostních pravidlech. Nejčastěji používané strategie jsou tyto: 3.6.1 Turnajový výběr Turnajový výběr (tournament selection) je patrně nejjednodušší a nejpoužívanější způsob výběru. Turnajový výběr k-tého stupně (k-tournament selection) vybere každého z u rodičů tak, že náhodně vygeneruje k prvků a mezi nimi určí prvek s nejvyšší hodnotou fitness funkce. Jestliže k = 2, pak mluvíme o binárním turnajovém výběru (binary tournament). Turnajový výběr je mezi uvedenými třemi metodami nejefektivnější, protože nevyžaduje explicitní výpočty výběrových pravděpodobností a nevyžaduje ani uspořádání prvků populace podle hodnot fitness funkce. 3.6.2 Proporcionální (ruletový) výběr Proporcionální výběr (proportional selection) je založen na výpočtu výběrových pravděpodobností. Výběrové pravděpodobnosti tedy vyjadřují relativní míru fitness jednotlivých prvků populace. Samotný výběr rodičů se provádí technikou analogickou s losováním v ruletě. Každému prvku populace je přidělena výseč kola rulety, jejíž velikost je úměrná výběrové pravděpodobnosti. Losování na tomto váženém kole rulety se provádí tak, že vygenerujeme náhodné reálné číslo z intervalu < 0, 1 > a ten prvek, do jehož výseče vygenerované Číslo padne, je vybrán jako rodič.

Strana 18 Proporcionální výběr je nevýhodný v případě, kdy jsou v populaci jeden nebo dva (ne optimální) prvky s velmi vysokou mírou fitness. Pak totiž ve výběru rodičů naprosto dominuji tyto extrémní prvky a od toho se odvíjí dominance jejich genetických vlastností v potomcích v následujících generacích, což může vést ke konvergenci do lokálního optima. 3.6.3 Uspořádaný výběr Uspořádaný výběr (ranking selection) se snaží odstranit výše popsanou nevýhodu proporcionálního výběru. V tomto přístupu jsou prvky seřazeny vzestupně podle hodnot fitness funkce a výběrové pravděpodobnosti jsou odvozeny od pořadí prvků v tomto uspořádáni. Vlastní výběr rodičů je přitom rovnoměrnější než u proporcionálního výběru, protože výběrové pravděpodobnosti každého prvku jsou vždy stejné bez ohledu na jeho přesnou hodnotu fitness funkce. 3.7 Genetický operátor křížení Operátor křížení (crossover operator) je všeobecně považován za nejvýznamnější operátor prohledávání. Operátor křížení kombinuje segmenty vybraných rodičovských prvků. Cílem je vytvořit nové prvky, které vedou k lepším řešením. 3.7.1 Diskrétní křížení (uniformní) Pří diskrétním křížení je generován binární kód, podle kterého jsou vybírány geny buď od prvního nebo druhého rodiče. Celý tento systém je patrný z obr. 7, kde první chromozóm odpovídá binární nule a druhý chromozóm binární jedničce. Obr.7 Křížení (0110100101 generovaná binární posloupnost) 3.7.2 Bodové křížení Toto křížení je založeno na vygenerování náhodného čísla (bod křížení) z intervalu <1, délka chromozomu 1>. Toto číslo nám rozdělí rodičovské chromozomy na dvě částí. Potomek vzniká zkopírováním první části chromozomu od prvního rodiče a zkopírováním zbývající části chromozomu od druhého rodiče. Princip tohoto křížení je patrný z obr. 8. Existuje i dvoubodové křížení, provádí se identickým způsobem jako jednobodové křížení (generují se dvě náhodná čísla, která nesmí být stejná). Obr. 8 Bodové křížení

3.7.3 Diagonální křížení Při křížení n rodičů se používá diagonální křížení, vzniká pak n potomků. Chromozomy jsou napsány do matice, pak je generováno n-1 náhodných čísel (podle pravidel bodového křížení), které rozdělí matici na n částí obr. 9. Obr.9 Diagonální křížení 3.7.4 Průměrové křížení Při tomto křížení se snažíme nalézt střední hodnotu mezi dvěma geny na stejné pozici v chromozomu (rodiče1 a rodiče 2). Střední hodnota se počítá: gen1 ( i) + gen2 ( i) Round (2) 2 Toto křížení nekopíruje jednotlivé geny, nebo části chromozomu, jako tomu bylo u předcházejících variant. Pomocí vzorce (2) získáváme nové geny, které poskládáme do výsledného chromozomu potomka. 3.8 Genetický operátor mutace Mutace příliš nezasahuje do vzhledu nové generace, ale plní velmi důležitou funkci. Při mutaci dochází k náhodné změně na náhodném místě v chromozomu. Na první pohled se může zdát, že mutace je v celém mechanismu zbytečná. Plní zde však důležité funkce. Díky této nepatrné změně, je zajištěna dostatečná rozmanitost celé populace. Může dojít ke zvýšení fitness funkce u daného chromozomu, protože se mutací dosáhlo lepšího řešení. Situaci, kdy se většina jedinců natolik zkříží, že by další křížení produkovalo stejné jedince, a tudíž nemělo smysl, brání také mutace. V praxi to znamená, že se jedná o pokus o nalezení řešení i mimo původní oblast. 3.8.1 Jednobodová mutace Před mutací se vygeneruje náhodné číslo z intervalu <1, délka 1>. Toto číslo určuje pozici v chromozomu potomka, kde se provede mutace. Mutace spočívá v tom, že se daný gen (krok v cestě) vygeneruje náhodně znovu.

Strana 20 3.8.2 Vícebodová mutace Princip této mutace je obdobný jako je u jednobodové mutace. Vygenerované číslo neznamená pozici mutace, ale počet mutací v chromozomu. Mutace je pak prováděna stejně jako u jednobodové mutace. 3.9 Změna populace Změna populace (replacement scheme):jakmile je vygenerováno v potomků, nahradí tito potomci v prvků aktuální populace (velikost populace zůstává konstantní) a reprodukční cyklus se opakuje. Při změně populace se používají dvě základní strategie. 3.9.1 Generační výměna Generační výměna (generational replacement) je charakteristická tím, že počet generovaných potomků je roven počtu prvků v populaci (v = N), a tedy celá aktuální populace se nahradí generovanými potomky. Pochopitelně tato strategie nezaručuje, že nejlepší prvek populace přežije" do následující generace, a tak může být nejlepší vygenerované řešení ztraceno. Proto je strategie generační výměny obvykle modifikována tak, že nejlepší prvek aktuální populace je automaticky převzat do následující generace. V tomto případě mluvíme o strategii nejlepšího prvku. 3.9.2 Inkrementální náhrada Inkrementální náhrada (steady-state (incremental) replacement) generuje a nahrazuje pouze několik málo prvků. Typický počet je roven v = 2. To je podobné životu v přírodě, kdy vedle sebe koexistují jedinci různého stáří z různých generací. V literatuře je inkrementální přístup popsán v několika variantách. Náhrada náhodně vybraného prvku (randomly chosen member replacement) je používána zřídka. Ukazuje se totiž, že chování tohoto modelu náhrady je téměř identické modelu generační výměny. Místo toho se používají následující strategie. Náhrada nejhoršího prvku (least-fit member replacement). Náhrada náhodně vybraného prvku s podprůměrnou (below-average) hodnotou fitness funkce. Výhodou inkrementálního přístupu je, že nejlepší řešení se v populaci vždy zachovávají a podle praktických zkušeností tato metoda má tendenci rychleji konvergovat než přístup využívající úplnou náhradu rodičovské generace. Z hlediska efektivity výpočtu může inkrementální náhrada vyžadovat dodatečné výpočty výběrových pravděpodobností vždy, když nový potomek vstupuje do populace. Pokud však použijeme turnajový výběr, pak tyto výpočty nejsou potřebné, jak již bylo uvedeno výše. Při použití inkrementální náhrady musíme ještě dávat pozor, aby do populace nevstupoval potomek, který by byl duplicitní s některým prvkem jíž v populací obsaženým. Jinak by se v krajně nepříznivém případě mohlo stát, že aktuální populace by nakonec mohla být tvořena N identickými prvky.

3.10 Kritérium ukončení Vzhledem k tomu, že v praktických úlohách velkého rozsahu optimální řešení neznáme, je ukončení GA řízeno dosažením definované hodnoty jistého parametru. V analogii k některým iteračním metodám numerické matematiky se nejčastěji používají dvě základní strategie: Maximální počet generací t max Mezigenerační relativní zlepšení hodnoty fitness funkce nejlepšího řešení z populace. Zápis GA ve formě pseudo-pascalovského kódu: (maximalizační úloha) Předpokládáme řešení maximalizačního problému, reprezentaci řešení binárními řetězci, binární turnajový výběr, model inkrementální náhrady a kritérium ukončení dané maximálním počtem generací. t:=0; generuj počáteční populací P(0) := {S 1,...,S n },S i {0,1} n ; vypočti hodnotu fitness funkce prvků populace P(0): {ƒ (S i ),, ƒ (S N )}; najdi S P(0) tak, že ƒ(s*) ƒ(s), S P(0); {S* je nejlepší řešení v P(0)} while τ: t < t max do begin {P 1, P 2 } := Θ(P(t)); { výběr rodičů } O := Ω c (P 1, P 2 ); {generování potomka operací křížem } O := Ω m (O,p m ); { mutace } vypočti f(o) { hodnota fitness funkce potomka O } najdi S' P(t) tak, že ƒ(s') ƒ(s), S P(t) { S' je nejhorší řešení v P(t)} S := O; { náhrada nejhoršího řešení potomkem } if f(o)>f(s*) then S* := O; { aktualizace nejlepšího řešení} t = t + 1; end; { S* je aproximací optimálního řešení} Tento cyklus je opakován tak dlouho, dokud není nalezeno uspokojivé řešení. Strategií volby konkrétních typů genetických operátorů se značně mění obdržené konečné výsledky, a proto je nutné vyzkoušet nasazení několika typů a posléze vyhodnotit jejich úspěšnost řešení konkrétního problému.

Strana 22

4 METODY PLÁNOVÁNÍ DRÁHY K tomu, aby řídicí mechanismus autonomního robota nalezl vhodnou dráhu, musí použít některou z metod pro plánování dráhy. Těchto metod v dnešní době existuje velké množství. Některé jsou založeny na teorii grafů, jiné např. na matematickém programování. Existují také metody hledající dráhu za pomoci genetických algoritmů nebo pomocí neuronových sítí. Hodně naděje je vkládáno do různých metod pracujících paralelně. Následně uvádím často používané metody sloužící pro nalezení dráhy z bodu A do bodu B ve dvou-dimenzionálním prostoru. Toto plánování je typické pro mobilní autonomní roboty, ale s určitými úpravami se některé z těchto metod používají i pro roboty manipulační. 4.1 Metoda rozkladu do buněk Metoda rozkládá prostředí do množiny buněk. Každá buňka má svůj specifický tvar. Každé buňce je přiřazen (na základě prostředí robota) její vlastník (překážka, volný prostor) a sousedé. Cestu tvoří posloupnost buněk, přičemž přes každou z nich je definována dílčí dráha. Metoda používá dva druhy rozkladu do buněk: exaktní a aproximativní rozklad. 4.1.1 Aproximativní rozklad Aproximativní rozklad rozkládá do buněk celé prostředí robota. Pro buňky se určí vlastník tak, že pokud buňka neobsahuje žádnou část překážky, označí se jako volná, jinak se za vlastníka označí překážka. Na použité velikosti buňky značně záleží přesnost převedení prostředí na diskrétní tvar, protože sebemenší část překážky v buňce označí celou buňku jako buňku s překážkou. Obr. 10 Aproximativní rozklad terénu do buněk.

Strana 24 4.1.2 Exaktní rozklad Exaktní rozklad rozděluje volný prostor do nepřekrývajících se buněk Tyto buňky mají jednoduchý tvar, aby bylo snadné vypočítat přímé dráhy přejezdu přes ni. Drah přes buňku je tolik, kolik má buňka párů sousedů. Princip exaktního rozkladu je znázorněn na obr. 11. Volný prostor je rozdělen do konvexních mnohoúhelníků, jejichž vrcholy jsou současně vrcholy překážek. Obr. 11 Exaktní rozklad do konvexních mnohoúhelníků. Další možnost exaktního rozkladu je rozdělení do lichoběžníkových buněk. Obr. 12 Exaktní rozklad do lichoběžníkových buněk.

4.2 Metoda mapy cest Tato metoda se vyznačuje mapou cest (road-map), která je tvořena grafem reprezentujícím mapu prostředí. Graf tedy reprezentuje přesnou topologii prostředí robota. Hrany grafu jsou reprezentovány cestami robota, které neprocházejí překážkami. Vrcholům grafu jsou přiřazeny různé body prostředí. Jaké, to závisí na typu realizace grafu (graf viditelnosti, Voronoiovy diagramy). 4.2.1 Graf viditelnosti Graf viditelnosti je jeden možný typ realizace grafu v metodě mapy cest. Start i cíl jsou uzly grafu a ostatní uzly představují všechny vrcholy překážek v prostředí. Hrany grafu reprezentují takové přímky spojující dva uzly, které neprotínají žádnou z překážek. Hrany grafu potom představují přímé dráhy v prostředí, po kterých se může robot pohybovat aniž by nastala kolize s překážkou. Mezi hrany grafu můžeme zahrnout i hrany překážek. Potom se o řízení robota podél překážky musí postarat reaktivní vrstva kombinovaného řídicího systému. Obr. 13 Graf viditelnosti. 4.2.2 Graf tečen Graf viditelnosti předpokládá v prostředí pouze polygonální překážky. Pokud se vyskytují v prostředí nepolygonální překážky (např. kružnice), je nutno provést rozšíření překážky tak, že hrany nepolygonální překážky se budou skládat z přímek (např. z kružnice vznikne šestiúhelník). Jestliže budeme provádět rozšiřování nepolygonálních překážek tak, aby se zachovala jejich co největší věrnost, vznikne graf viditelnosti s velkým počtem vrcholů a hran. Tuto nevýhodu částečně odstraňuje graf tečen.

Strana 26 Obr. 14 Graf tečen. Graf tečen vznikne odstraněním těch hran z grafu viditelnosti, které nejsou tečnami překážek. Vznikne tak tzv. redukovaná viditelnost. Graf tečen je výrazně menší než graf viditelnosti a proto je u něho podstatně rychlejší prohledávání. 4.2.3 Voronoiův diagram Voronoiův diagram je geometrická struktura v rovině, která reprezentuje informace o sousedství vrcholů nebo objektů v této rovině. Pro danou množinu vrcholů (objektů) je rovina rozdělena tak, že každý bod roviny je přiřazen nejbližšímu vrcholu (bodu objektu). Body, u kterých nelze jednoznačně určit přiřazení, tvoří Voronoiův diagram. Voronoiův diagram tedy tvoří body stejně vzdálené od dvou nebo více vrcholů. Obr. 15 Voronoiův diagram.

Pro reprezentaci scény se jako vrcholy nebo objekty v rovině uvažují překážky. Uzly grafu potom tvoří ty body Voronoiova diagramu, které jsou stejně vzdáleny od třech a více překážek. Body stejně vzdálené od dvou překážek tvoří potom úsečku příslušné hrany grafu. Další čtyři uzly grafu vzniknou jako poloha startu (cíle) a nejbližšího bodu od startu (cíle) na diagramu. Obr. 16 Graf vytvořený z Voronoiova diagramu.

Strana 28 5 PLÁNOVÁNI CESTY ROBOTU POMOCÍ GA Metody plánování cesty robotu pomocí genetického algoritmu se různí především v reprezentacích prostředí, operátorů, funkcí fitness a chromozomů. Základním rozdělením těchto metod by mohlo být na spojité a diskrétní metody. 5.1 Plánování cesty robotu v diskrétním prostředí Plánováním cesty v diskrétním prostředí nebo také plánováním robotu v mřížce se zabývají v literatuře, kterou jsem měl k dispozici, například Andreas Nearchou [2] případně Sugihara [3]. V následujících paragrafech je shrnutí jejich metod navigace robotu v mřížce. V posledním paragrafu je popsána metoda z diplomové práce Petra Látala [4]. 5.1.1 Metoda z práce [2] (Nearchou) 5.1.1.1 Reprezentace chromozomu V práci [2] je chromozom složen z kombinací binárních hodnot. Autor nahlíží na řetězec chromozomu jako na plán akcí provedených robotem. Kombinace jsou dvě. První akce jdi vpřed je v chromozomu vyjádřena posloupností 10 nebo 01. Druhá akce je otoč vlevo vyjádřena je po sobě jdoucí kombinací 11 nebo 00. Chromozomy mají proměnlivou délku. Na obr. 17 je naznačen problém s chromozomy stejné délky. Problém je v tom že chromozom nemusí vyjadřovat dostatečnou délku pohybu. Fitness funkce každého chromozomu je počítána jako součet jeho chyby (vzdálenost o kterou minul cíl) a jeho délky. Obr. 17 Příklad reprezentace chromozomů stejné délky v práci [2]. Chromozom 1000011001 (a) a chromozom 0011100100 (b).

5.1.1.2 Genetické operátory Křížení je použito dvoubodové. Jeho princip je patrný z obr. 18. Obr. 18 Použité křížení v práci [2]. Mutace je aplikována po operátoru křížení. S malou pravděpodobností je aplikována na všechny geny potomka. Princip je v invertování bitů chromozomu. Ilustrativní příklad je na obr. 19. Obr. 19 Použitá mutace v práci [2]. Další operátory přehození, vložení a smazání jsou aplikovány s danou pravděpodobností po operátoru mutace. Jejich názorná ukázka je na obr 20. Obr. 20 Operátory přehození (a), vložení (b) a smazání (c) v práci [2].

Strana 30 5.1.1.3 Příklady nalezených cest Obr 21. Příklady nalezených cest pomocí metody GA v práci [2]. Zkratka T označuje počet generací a V s počet kroků robotu.

5.1.2 Metoda z práce [5] (Sugihara) 5.1.2.1 Reprezentace chromozomu Chromozom je reprezentován v práci [5] jako posloupnost binárních bloků (genů) stejné délky. Výjimkou je první bit, který reprezentuje monotónnost v ose. Pro první bit 0 je cesta monotónní v ose x a pro 1 v ose y. Každý blok chromozomu reprezentuje směr a vzdálenost pohybu robotu. Směr pohybu je reprezentován prvními dvěma bity nabývajících hodnot 00(horizontálně), 01(diagonálně vzhůru) a 10(diagonálně dolů) pokud je první bit roven 0. Pro první bit 1 je situace obdobná: 00 (horizontálně), 01(doleva diagonálně) a 10(doprava diagonálně). Ostatní bity bloků představují vzdálenosti pokud je směr reprezentován dvojicí 00, jinak jsou ignorovány. Příklad kódování chromozomu je na obr. 22. Obr. 22 Binární reprezentace cesty (chromozomu). 5.1.2.2 Počáteční populace První dva jedinci propojují startovní a cílovou pozici. Ostatní jsou náhodně vygenerované posloupnosti binárních hodnot.

Strana 32 5.1.2.3 Genetické operátory Selekce Rodiče jsou vybíráni pro křížení turnajovým výběrem. Jednobodové křížení Dva rodiče jsou v náhodném bodě rozděleni a z jejich části jsou sestaveni dva potomci. Křížení má nastavitelnou pravděpodobnost provedení. Jednobodová mutace Náhodně jsou s určitou pravděpodobností invertovány všechny bity chromozomu. 5.1.2.4 Příklady nalezených cest Obr. 23 Příklady nalezených cest. N je počet generací a Fit je fitness nalezené cesty.

5.1.3 Metoda z práce [4] (Látal) Chromozom jedince je v této práci složen z posloupnosti znaků a čísel. Znak reprezentoval směr pohybu a číslo vzdálenost. Celková délka chromozomu je během výpočtu konstantní. Ukázka chromozomu a jeho kódování je na obr. 24. Obr. 24 Reprezentace chromozomu v v práci [4]. Fitness funkce je složena ze dvou funkcí. První reprezentovala délku cesty a druhá vzdálenost od cíle. Obr. 25. Funkce fitness v práci [4]. V simulačním programu práce [4] jsou implementovány uniformní, bodové, dvoubodové a průměrové křížení. Autor použil jednobodovou a dvoubodovou mutaci. Ze závěru diplomové práce [4] vyplývá, že nejlépe se osvědčila jednobodová mutace v kombinaci s jednobodovým křížením.

Strana 34 5.2 Plánování cesty robotu ve spojitém prostředí Při plánování cesty ve spojitém prostředí se s výhodou, tak jako v diskrétním prostředí, užívají kromě tradičních operátorů také doplňkové operátory, které slouží ke zkvalitnění jedinců populace. Následující paragrafy stručně popisují různá možná řešení plánování robotu ve spojitém prostředí. Popsány jsou práce Homaifar [1] a Gemeinder[5]. Nalezením cesty ve spojitém prostředí se zabývá například i Soltani [6]. 5.2.1 Metoda z práce [1] (Homaifar) Autor ve své práci představuje evoluční plánovací systém nazvaný GEPOA (global evolutionary planning and obstacle avoidance system). Dále uvádí techniku pro vylepšení plánovaní cesty použitím fuzzy logiky. 5.2.1.1 Reprezentace prostředí a cest Překážka je ve spojitém prostředí reprezentována protínajícími se úsečkami. Každá úsečka spojuje dva vrcholy. To znamená, že například obdélníková překážka je v prostředí GEPOA reprezentována dvěma úsečkami. Každý jedinec populace má 4 části. První část je chromozom, který obsahuje geny označující každý uzel cesty kartézskými souřadnicemi. Uzly cesty jsou propojeny úsečkami. Druhá část je gen, který je křížen nebo mutován pro vytvoření potomka. Tento gen označuje autor jako zrno (seed). Zpočátku má každý jedinec populace jen tři geny a to startovní gen, gen zrna a cílový gen. Třetí část je vzdálenost, kterou cesta protíná jednu nebo více překážek. Čtvrtá část je celková délka cesty. 5.2.1.2 Genetické operátory Selekce je prováděná turnajovým výběrem. Křížení a mutace je prováděna pouze na druhých částech jedince populace. Startovní a cílové geny tedy během výpočtu zůstávají neměnné. Důležitým operátorem je v systému GEPOA operátor opravy cesty, který je v práci [1] označen VBR (visibility-based repair). Operátor přidává při kontaktu cesty s překážkou opravné geny do druhé části jedince populace. Situaci před a po použití operátoru názorně ilustruje obr. 26. Obr. 26 Cesta před použitím VBR (vlevo) a po použití (vpravo).

5.2.1.3 Využití fuzzy logiky Autor využívá fuzzy logiku pro výběr jedinců populace ke křížení pomocí algoritmu FTSA (fuzzy tournament selection algorithm). Opírá se o tři body: 1. Euklidovská vzdálenost cesty z počátku k jeho cíli 2. Suma ze změn ve spádu cesty 3. Průměr změn ve spádu cesty 5.2.1.4 Ukázky experimentů Obr. 27 Cesta populace GEPOA: Generace 0 (vlevo), generace 500 (vpravo). Obr. 28 Cesta populace GEPOA+FTS: Generace 0 (vlevo), generace 500 (vpravo).

Strana 36 5.2.2 Metoda z práce [5] (Gemeinder) V metodě jsou užity kromě operátorů křížení a mutace ještě operátory napínání a obcházení překážek. Autor jedince populace (chromozomy) prezentuje jako obecné křivky v rovině, vyjádřené buď matematickou rovnicí nebo posloupností bodů. 5.2.2.1 Křížení Operátor se aplikuje na dva rozdílné jedince populace. Nejprve program najde jejich společné průsečíky. Pote se vybere náhodně průsečík S. Nový jedinec vznikne z dílčích podcest jak je znázorněno na obr 29. Obr. 29 Křížení v práci [5]. 5.2.2.2 Mutace Za prvé jsou na křivce cesty zvoleny dva náhodné body a jeden bod mimo křivku. Nazvěme je bod K i a bod K j. Cesta mezi body je smazána a nahrazena dvěma úsečkami vedoucími přes náhodný bod VP. Obr. 30 Mutace v práci [5]. Typická situace na Obr. 30 a) však není zaručena a mohou nastat situace jako na obrázku 30 b) nebo c). Pak by vznikly uzavřené smyčky, které jsou v cestě nežádoucí. Tomu se dá předejít použitím následujícího algoritmu: 1. Jdi po cestě ze startovního regionu. První průsečík mezi cestou a úsečkou spojující body K i a VP označ jako nový bod K i.

2. Jdi po cestě z cílového regionu. První průsečík mezi cestou a úsečkou spojující body K j a VP označ jako nový bod K j. 3. Smaž cestu mezi body K i a K j a propoj je s bodem VP. 5.2.2.3 Operátor napínání Napínání na jednu stranu obohacuje různorodost v populaci chromozomů a na druhou stranu je vhodný k optimalizaci cest vzhledem k jejich délce. Obr. 31 Operátor napínání v práci [5]. Zvolím náhodně dva body K 1 a K 2 na křivce. Poté každý bod cesty mezi body K 1 a K 2 je posunut k myšlené přímce g h, která tyto dva body protíná. 5.2.2.4 Operátor obcházení Slouží k zabránění kolizí s překážkami. Pro jeho funkci je třeba před vlastním genetickým algoritmem analyzovat terén a vytvořit ke každé překážce obchůzkovou trasu. Algoritmus prochází cestu od počátku a kontroluje zda není v kolizi s překážkou. Pokud najde kolizi cesty a překážky najde v seznamu obcházeních cest obchůzku náležící k dané překážce a cestu opraví aby ke kolizi nedošlo. Postup je znázorněn na obrázku 32. Obr. 32 Kolize cesty s překážkou (a) a odstranění kolize pomocí obchůzkové cesty (b). Předpokladem pro použití operátoru obcházení je vytvoření obchůzkových tras před vlastním průběhem GA.

Strana 38 5.2.3 Výpočet fitness funkce Fitness je počítána jako součet celkové délky cesty a penalizace za protnutí překážky. 5.2.4 Příklady nalezených cest Obr. 33 Příklady nalezených cest.

6 NÁVRH ŘEŠENÍ 6.1 Prostředí Prostředí je řešeno jako spojitá oblast omezená hranicemi oblasti. Obr. 34 Grafická reprezentace prostředí. V programu je toto řešeno jako dvourozměrný prostor omezený hranicemi. Mapu terénu je možno editovat pomocí interního editoru. Překážky jsou definovány svými vrcholy. Hrany překážek reprezentují úsečky spojující vrcholy překážek. Překážky jsou tedy polygonálního tvaru. 6.1.1 Reprezentace chromozomu Chromozom je vyjádřením cesty v dvourozměrném prostoru. Geny chromozomu (vyjádřené kartézskými souřadnicemi) představují uzlové body cesty. Cesta je posloupnost uzlů propojených úsečkami. Uzel je dvojice souřadnic x a y, které jednoznačně určují polohu uzlu v 2D prostoru.

Strana 40 Chromozom má proměnlivou velikost v závislosti na složitosti cesty. Počáteční a koncový gen jsou u všech chromozomů totožné. To znamená, že všechny cesty začínají ve startovní pozici a končí v cílové. Například cesta na obr. 35 představuje chromozom ([2,2],[3,3],[6,4],[7,9],[13,9]). Obr. 35 Příklad cesty, která reprezentuje chromozom ([2;2], [3;3], [4;6], [9;7],[13;9]). Chromozom je tedy vyjádřen posloupností uzlových bodů propojených úsečkami. V uzlových bodech tedy cesta mění svůj směr. 6.2 Operátory genetického algoritmu Pokud si představíme jedince populace jako křivku v rovině, pak operátory genetického algoritmu jsou, na této úrovni představy, nástroje pro geometrickou manipulaci s křivkami. Tuto myšlenku jsem převzal z článku [5]. 6.2.1 Operátor selekce V programu je implementován binární turnajový výběr. Z populace vyberu dva jedince. Lepší z nich postupuje do křížení. Postup opakuji pro získání druhého rodiče. Poté následuje aplikování genetických operátorů. Použito je vybrané křížení a mutace. Operátory odebrání a přidání jsou volitelné a je u nich možné nastavit pravděpodobnost provedení v procentech. 6.2.2 Operátor křížení V programu jsou implementovány dva typy křížení: Jednobodové Dvoubodové

Pokud je vybráno pro GA dvoubodové křížení a chromozom je příliš krátký, tak program provede křížení jednobodové jak je například znázorněno na obr. 36. Obr. 36 Příklad jednobodového křížení za druhým uzlem. Rodiče jsou vyznačeni červenou a modrou barvou. Jejich potomci pak zelenou. 6.2.3 Operátor mutace V programu jsou implementovány dva typy mutace. Jednobodová mutace a dvoubodová. Pokud je vybrána pro GA dvoubodová mutace a chromozom je příliš krátký, tak program provede na jedinci mutaci jednobodovou. Mutace se provádí s nastavenou pravděpodobností na jednom náhodně vybraném uzlu (genu) chromozomu. Jeho souřadnice X a Y se poté vygenerují náhodně a přepíší předešlé hodnoty. Obr. 37 Jednobodová mutace ve druhém uzlu před (a) a po provedení (b).

Strana 42 6.2.4 Operátor přidání uzlu Operátor přidání uzlu je podobný operátoru obcházení překážek z článku [5]. Operátor vhodně přidá nový gen do chromozomu. Vhodným přidáním je myšlen takový uzel, který se nenachází v překážce a je vhodným pokračováním cesty ve smyslu nižšího fitness. Pokud hrana prochází překážkou, operátor tedy najde vhodné hrany, které překážkou neprochází. Aplikace operátoru je prováděna na potomkovi křížení. Algoritmus hledá v cestě kolizi s překážkou. Pokud cesta protíná překážku algoritmus cestu přepůlí, rozkmitá a najde podestu, která překážku neprotíná. Postup se opakuje dokud není dosaženo cíle za překážkou nebo uhel rozkmitání nedosáhne kritické velikosti. Graficky je znázorněn tento postup na obr. 38. Obr. 38 Postup operátoru pro přidání uzlů. 6.2.5 Operátor odebrání uzlu Operátor je podobný operátoru napínání z článku [5] a je vhodným protikladem operátoru přidání uzlu. Jeho hlavními důvody užití jsou zjednodušení cesty a odstranění smyček v cestě. Za předpokladu že preferovaným tvarem cesty je úsečka bez zbytečných zatáček a robot by neměl navštívit jedno místo dvakrát. Operátor jen odstraní zbytečné uzly při zachování průchodnosti cesty. Jeho grafické znázornění je na obr. 39.

Obr. 39 Odebrání uzlu cesty. 6.2.6 Funkce fitness Protože u takto modifikovaného genetického algoritmu chromozomy počáteční populace již startovní i cílový bod obsahují, je hlavním úkolem genetického algoritmu postupným aplikováním genetických operátorů optimalizovat jedince populace a vybrat z nich toho nejlepšího. Implementoval jsem do programu fitness funkci, která penalizuje průchod překážkou a je nutná pro konvergenci GA. Dále jsou implementovány další tři volitelné složky funkce fitness: Délka cesty je součtem euklidovských vzdáleností vždy dvou po sobě následujících uzlových bodů. Suma úhlů je součtem úhlů které spolu svírají dvě vždy po sobě následující hrany. Počet uzlů cesty. U všech fitness funkcí je možné regulovat jejich důležitost jejich váhovým koeficientem. 6.2.7 Počáteční populace Jedna z možností je počáteční populaci vygenerovat podle nastavitelných parametrů. Jedná se parametr celkové velikosti populace, základní délku a možný rozptyl délky chromozomu (pro vygenerování chromozomů náhodné délky). Počáteční populaci je možné také použít z předešlého výpočtu GA. V každé generaci jsou nahrazeni dva nejhorší jedinci (ve smyslu nejvyšší fitness), dvěma jedinci obdrženými z křížení.

Strana 44 6.2.8 Kritérium ukončení Kritérium ukončení je určitá podmínka, která skončí provádění genetického algoritmu v okamžiku, kdy je dosaženo jisté uspokojivé řešení. V mém projektu jsem implementoval do GA čtyři druhy kriteria ukončení. Dosaženo maximálního počtu generací, tzn. počtu generací, po které bude GA aplikovat operátory na jedince populace. Nejlepší cesta nemusí být vyhovující. Nalezena první vyhovující cesta, tj. taková, po které se může robot bezpečně přesunout ze startovní do cílové pozici. Relativní změna fitness za posledních x generací je menší než y, kde x a y jsou nastavitelné proměnné. Délka průběhu výpočtu je rovna maximální přípustné délce. Maximální délka výpočtu je zadávána v milisekundách.

7 POPIS PROGRAMU Simulační program je vytvořen v prostředí C++ Builder. Při programování jsem se snažil dodržovat techniky objektově orientovaného programování a znovupoužitelnosti mého kódu. Program je rozdělen na tři formuláře. Prvním je hlavní formulář s veškerými ovládacími prvky. Druhým je formulář s mapou prostředí a třetím je formulář se statistikami výpočtu. 7.1 Hlavní formulář K navigaci v hlavním formuláři slouží ovládací prvek page kontrol, který rozděluje formulář na několik stránek. Jeho detail se všemi možnostmi je na obr. 40. Obr. 40 Detail záložek hlavního formuláře. Obr. 41 První dvě záložky programu. Záložka překážky (vlevo) a záložka GA (vpravo).

Strana 46 První záložka je informativního charakteru. Obsahuje pouze informace o překážkách v aktuálním prostředí a proměnných startu a cíle. Obr. 42 Záložky nastavení GA Populace a Průběh GA. Obr. 43 Záložka nastavení GA Operátory Ostatní záložky již mají intuitivní ovládání a jen informativní charakter. Do záložky Log v komponentě memo box jsou vypisovány provedené akce. V záložce Statistiky 7.2 Formulář mapy prostředí Na formuláři je komponenta image, na kterou je zobrazována 2D scéna. Formulář reaguje na stisknutí tlačítka myši při editaci terénu vestavěným editorem.

Obr. 44 Formulář mapy prostředí. 7.3 Formulář statistik výpočtu Shrnuje průměrné hodnoty fitness a délky populace (počet uzlových bodů) a nejlepšího jedince ve čtyřech grafech. Obr. 45 Příklady grafů.

Strana 48 7.4 Možnosti externích dat Do programu je možné zadávat překážky pomocí textového souboru s příponou.map. Tento soubor je možné editovat v jakémkoliv textovém editoru. Struktura souboru je následující. Definice překážek. Překážky jsou definovány svými vrcholy. Jméno souboru obrázku BMP, který slouží jako podklad pro mapu terénu. X souřadnice startovního bodu. Y souřadnice startovního bodu. X souřadnice cílového bodu. Y souřadnice cílového bodu. Na obr. 46 je příklad prostředí s pěti překážkami. Obrázkem pro podklad terénu s názvem 400_400.bmp. Startovním bodem [110;358] a cílovým [168;81]. Obr. 46 Příklad textového souboru se vstupními daty.

8 VÝSLEDKY EXPERIMENTŮ Každou část experimentů jsem prováděl desetkrát. V tabulkách jsou vyneseny průměrné hodnoty z těchto experimentů. 8.1 Prostředí 1 V prvním prostředí jsem se soustředil na otestování vlivu velikosti populace a počtu generací na rychlost a kvalitu nalezeného řešení. Startovní pozice je na souřadnicích [263,375] a cílová na souřadnicích [168,81]. V první testu jsem zjišťoval závislost velikosti populace na rychlosti nalezeného řešení. V testech v prostředí 1 jsem nastavil všem třem volitelným složkám fitness stejnou váhu. Obr. 47 Prostředí 1. 8.1.1 Test 1 Nastavení GA: Operátor křížení: jednobodové (50 %). Operátor mutace: jednobodová (50 %). Operátor přidání: ano (100%). Operátor odebrání: ano (100%). Velikost chromozomu: 8. Rozptyl: 3. Ukončovací podmínka: první vyhovující cesta. Velikost populace Čas výpočtu [ms] Potřebný počet generací Délka chromozomu Délka cesty Nalezeno řešení (počet z 10) 20 134 9 9 686 10/10 50 324 3 7 612 10/10 100 514 3 7 652 10/10 500 1235 1,5 5 614 10/10

Strana 50 8.1.2 Test 2 Nastavení GA: Operátor křížení: jednobodové (100 %). Operátor mutace: jednobodová (50 %). Operátor přidání: ano (100%). Operátor odebrání: ano (100%). Velikost chromozomu: 12. Rozptyl: 6. Ukončovací podmínka: 100 generací. Velikost populace Čas výpočtu Počet generací Délka chromozomu Délka cesty Nalezeno řešení (z 10) 20 14576 100 16 1112 8/10 50 8531 100 12 785 10/10 100 10320 100 6 532 10/10 500 12645 100 8 518 10/10 8.2 Prostředí 2 V tomto prostředí testuji vliv vah fitness na rychlost naleznutí řešení a zároveň testuji použitelnost podmínky relativní změny fitness. Nastavení GA: Operátor křížení: jednobodové (50 %). Operátor mutace: jednobodová (50 %). Operátor přidání: ano (100%). Operátor odebrání: ano (100%). Velikost chromozomu: 8. Rozptyl: 4. Ukončovací podmínka: Poměrná změna fitness nejlepšího 0.2 za posledních 20 generací. Váhové koeficienty části fitness funkce Rychlost Počet F1 Délka F2 Úhly F3 Počet uzlů [ms] generací 50 1 1 3124 23 1 50 1 2815 37 1 1 50 3213 22 50 25 1 3125 28

8.3 Prostředí 3 V tomto prostředí testuji použití GA bez dodatečných operátoru přidání a ubráni oproti GA s takto aktivními operátory. Operátor Operátor Délka cesty Počet generací Počet uzlů přidání odebraní 100 100 513 28 8 50 50 830 54 7 25 25 813 1612 8 0 0 839 3125 12 Obr.48 Typická cesta bez užití operátoru přidaní a odebrání.

Strana 52 8.4 Prostředí 4 V tomto prostředí srovnávám rychlost s algoritmem v práci [4] (Látal). Obr. 49 Prostředí č.3 z práce [4] Obr. 50 Spojitá varianta prostředí č.3 z práce [4]. Časově jsou algoritmy srovnatelné oba dva našly první cestu do jedné sekundy. Mnou navrhnutý algoritmus vzhledem k opravným operátorům, které pokud mají vhodnou cestu pro opravu najdou řešení okamžitě, našel cestu již na konci 1 generace.

8.5 Prostředí 5 V tomto prostředí zkoumám adaptabilitu navrženého algoritmu na změnu prostředí a na změnu počátečních podmínek. Pro druhé prostředí je použita konečná populace z prvního prostředí. 8.5.1 Změna počátečních podmínek Obr. 60 První prostředí pro zkoumání změny počátečních podmínek(teren 1). Obr. 61 Druhé prostředí pro zkoumání změny počátečních podmínek(teren 2).

Strana 54 Nastavení GA: Operátor křížení: jednobodové (50 %). Operátor mutace: jednobodová (50 %). Operátor přidání: ano (100%). Operátor odebrání: ano (100%). Velikost chromozomu: 8. Rozptyl: 4. Ukončovací podmínka: První vyhovující cesta. Obr. 62 Příklad použití předešlé populace při změně startovní pozice.

8.5.2 Změna prostředí Obr. 63 První prostředí pro zkoumání adaptace na změnu terénu. Obr. 64 Druhé prostředí pro zkoumání adaptace na změnu terénu. Prostředí Populace Počet generací Rychlost GA [ms] Terén 1 100 vygen. 8 266 Teren 2 Populace 14 618 z Teren 1 Teren 2 100 vygen 52 2875

Strana 56 Obr. 65 Příklad využití populace z předchozího GA.

9 ZÁVĚR Výsledky na jednu stranu ukázaly, že nově zavedené operátory sice ukazují velmi dobré výsledky v různorodých prostředích, ale na druhou stranu posunují takhle modifikovaný genetický algoritmus blíže k exaktním metodám. V prostředích typu bludiště tyto operátory selhávají. Pro tyto prostředí by bylo nutné navrhnout komplexnější operátor obcházení. Například podobný operátoru obcházení v práci [5]. Ekvivalenty pro operátory pro přidání a odebrání uzlu se ukázaly pro takto navržený algoritmus nepostradatelné. Podle výsledků testů, je bez jejich užití drasticky prodloužena doba prohledávání prostoru. Počáteční nastavení populace má nejvyšší dopad v kombinaci s použitím operátoru křížení. Při nastavení malé počáteční populace a častého křížení má GA tendenci směřovat k lokálnímu extrému řešení a tím se snižuje různorodost jedinců populace. Implementovaný typ křížení se neukázal jako nejvhodnější pro tento typ reprezentace chromozomů. Chromozomy mají díky operátoru odebírání uzlů malý počet genů a materiál pro křížení je potom značně chudý. Výsledky testů dále ukázaly, že na volbě počáteční délky a rozptylu délky chromozomu téměř nezáleží, protože operátor přidání (odebrání) chromozomů, potřebný počet genu přidá (odebere). Dále algoritmus prokázal adaptibilitu na změnu prostředí. Při použití dostatečně velké populace z předchozího výpočtu GA na daném prostředí (i pozměněném), algoritmus nachází vhodné cesty rychleji. Podle mého názoru by ke zlepšení algoritmu přispěl jednak jiný typ křížení. Možné vhodné varianty by mohli být například průměrové křížení nebo průsečíkové (ke křížení by došlo u dvou protínajících se cest). Dále by pomohl robustnější operátor obcházení, který by byl vhodný i pro prostředí typu bludiště. Pro zkvalitnění cesty by pomohl ještě operátor opravy hran, protože jsem si při testech algoritmu všiml ostrých hran které vznikají z důvodu malého množství uzlových bodů.