vysokÉ uÈenÍ technickÉ v brnÌ - core.ac.uk · petru honz kovi, ph.d. za p r atelsky p r stup,...

52
VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCH TECHNOLOGIÍ ÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATION DEPARTMENT OF CONTROL AND INSTRUMENTATION INTELIGENTNÍ IMPORT MAPOVÝCH PODKLADŮ DO TRASI INGELLIGENT IMPORT OF OSM INTO THE TRAFFIC SIMULATOR TRASI DIPLOMOVÁ PRÁCE MASTER'S THESIS AUTOR PRÁCE Bc. DÁVID MUZIKA AUTHOR VEDOUCÍ PRÁCE Ing. PETR HONZÍK, Ph.D. SUPERVISOR BRNO 2013

Upload: others

Post on 18-Sep-2019

2 views

Category:

Documents


0 download

TRANSCRIPT

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚBRNO UNIVERSITY OF TECHNOLOGY

FAKULTA ELEKTROTECHNIKY A KOMUNIKAČNÍCHTECHNOLOGIÍÚSTAV AUTOMATIZACE A MĚŘICÍ TECHNIKY

FACULTY OF ELECTRICAL ENGINEERING AND COMMUNICATIONDEPARTMENT OF CONTROL AND INSTRUMENTATION

INTELIGENTNÍ IMPORT MAPOVÝCH PODKLADŮ DOTRASI

INGELLIGENT IMPORT OF OSM INTO THE TRAFFIC SIMULATOR TRASI

DIPLOMOVÁ PRÁCEMASTER'S THESIS

AUTOR PRÁCE Bc. DÁVID MUZIKAAUTHOR

VEDOUCÍ PRÁCE Ing. PETR HONZÍK, Ph.D.SUPERVISOR

BRNO 2013

ABSTRAKTPrace se zabyva navrhem a implementacı algoritmu pro import mapovych podkladudo simulatoru TRASI. Tyto algoritmy jsou shopny importovat mapovy podklad z ma-poveho portalu OpenStreetMaps do simulacnıho prostredı simulatoru. Dale se pracezabyva upravou vnitrnı struktury importovanych krizovatek tak, aby jejich struktura bylakorektnı vzhledem k pravidlum silnicnıho provozu. Dale se prace zabyva navrhem a im-plementacı diferencialnı evoluce pro navrh struktury prednostı na krizovatkach.

KLICOVA SLOVA

TRASI, import, OpenStreetMaps, diferencialnı evoluce, simulator

ABSTRACTThe thesis deals with the design and implementation of algorithms for import mapsinto the simulator TRASI. These algorithms are capable of import map from map portalOpenStreetMaps to the simulation environment. The work deals with adjusting the inter-nal structure of the imported intersections, so that their structure was correct accordingto the rules of traffic. The work deals with the design and implementation of differentialevolution for the design of the structure of intersections.

KEYWORDS

TRASI, import, OpenStreetMaps, differential evolution, simulator

MUZIKA, David Inteligentnı import mapovych podkladu do TRASI: diplomova prace.Brno: Vysoke ucenı technicke v Brne, Fakulta elektrotechniky a komunikacnıch tech-nologiı, Ustav automatizace a merıcı techniky, 2013. 52 s. Vedoucı prace byl Ing. PetrHonzık, Ph.D.

PROHLASENI

Prohlasuji, ze svou diplomovou praci na tema”Inteligentnı import mapovych podkladu

do TRASI“ jsem vypracoval samostatne pod vedenım vedoucıho diplomove prace a

s pouzitım odborne literatury a dalsıch informacnıch zdroju, ktere jsou vsechny citovany

v praci a uvedeny v seznamu literatury na konci prace.

Jako autor uvedene diplomove prace dale prohlasuji, ze v souvislosti s vytvorenım

teto diplomove prace jsem neporusil autorska prava tretıch osob, zejmena jsem nezasahl

nedovolenym zpusobem do cizıch autorskych prav osobnostnıch a/nebo majetkovych

a jsem si plne vedom nasledku porusenı ustanovenı S 11 a nasledujıcıch autorskeho

zakona c. 121/2000 Sb., o pravu autorskem, o pravech souvisejıcıch s pravem autorskym

a o zmene nekterych zakonu (autorsky zakon), ve znenı pozdejsıch predpisu, vcetne

moznych trestnepravnıch dusledku vyplyvajıcıch z ustanovenı casti druhe, hlavy VI. dıl 4

Trestnıho zakonıku c. 40/2009 Sb.

Brno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

(podpis autora)

PODEKOVANI

Dekuji Ing. Petru Honzıkovi, Ph.D. za pratelsky prıstup, ochotu a rady pri resenı

prace. Take bych chtel podekovat svym rodicum za vsestrannou podporu behem

meho studia. Vojtovi za rady tykajıcı se sazenı textu v systemu LATEX a rady z

oblasti C#.NET.

OBSAH

1 Uvod 9

2 Simulator dopravy TRASI 10

2.1 Polyedit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2 SimCity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.1 GUI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.2 MAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.3 NGM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2.4 NetLoader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.5 Router . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.2.6 Logger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3 Prvky v simulaci . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.1 Node . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.2 Edge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.3 Cargen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.4 Crossing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.3.5 Road End Crossing . . . . . . . . . . . . . . . . . . . . . . . . 14

2.3.6 Moznosti simulatoru . . . . . . . . . . . . . . . . . . . . . . . 14

3 Open Street Maps 16

3.1 OSM XML file format . . . . . . . . . . . . . . . . . . . . . . . . . . 16

3.1.1 Uzel (Node) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.2 Silnice (way) . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.3 Stıtek (tag) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3.1.4 Plocha (Area) . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4 Import mapovych podkladu, Netloader 18

4.1 Neuplny format dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.2 Zpusoby resenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.2.1 Filtrovanı informacı . . . . . . . . . . . . . . . . . . . . . . . . 18

4.2.2 Prevod geografickych souradnic . . . . . . . . . . . . . . . . . 19

4.2.3 Vytvorenı silnic . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.2.4 Detekce krizovatek . . . . . . . . . . . . . . . . . . . . . . . . 22

4.2.5 Vypocet tvaru krizovatky . . . . . . . . . . . . . . . . . . . . 23

5 Pouzitı diferencialnı evoluce pri navrhu topologie krizovatky 26

5.1 Diferencialnı evoluce . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.1.1 Krızenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.1.2 Mutace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.1.3 Selekce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

5.2 Struktura algoritmu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.2.1 Inicializace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.2.2 Krızenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5.2.3 Mutace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.2.4 Selekce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.3 Nastavene parametry evoluce . . . . . . . . . . . . . . . . . . . . . . 29

5.3.1 Jedinec . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.3.2 Inicializace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

5.3.3 Krızenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

5.3.4 Mutace . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

5.4 Podmınka ukoncenı . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

6 Testy a testovacı metodika 36

6.1 Uzivatelske rozhranı pro diferencialnı evoluci . . . . . . . . . . . . . . 36

6.2 Testovacı metodika . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6.2.1 Prıprava simulace na testovanı . . . . . . . . . . . . . . . . . . 38

6.2.2 Datove soubory . . . . . . . . . . . . . . . . . . . . . . . . . . 38

6.2.3 Zpusoby porizovanı dat . . . . . . . . . . . . . . . . . . . . . . 39

6.2.4 Problematika nastavenı parametru . . . . . . . . . . . . . . . 40

6.2.5 Sledovane parametry . . . . . . . . . . . . . . . . . . . . . . . 40

6.3 Vysledky testu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

7 Zaver 50

Literatura 51

Seznam symbolu, velicin a zkratek 52

SEZNAM OBRAZKU

2.1 Polyedit s modelem vozidla . . . . . . . . . . . . . . . . . . . . . . . . 10

2.2 Graficke uzivatelske rozhranı TRASI . . . . . . . . . . . . . . . . . . 11

2.3 Ukazka importovane mapy . . . . . . . . . . . . . . . . . . . . . . . . 12

2.4 Node, Edge, Cargen v simulaci . . . . . . . . . . . . . . . . . . . . . . 14

2.5 Klasicka krizovatka, krizovatka typu T a kruhovy objezd v simulaci . 14

3.1 Centrum Brna v Open Street Maps . . . . . . . . . . . . . . . . . . . 16

4.1 Nastavenı filtru pro vyber typu silnic . . . . . . . . . . . . . . . . . . 19

4.2 Vypocet pozice uhlu . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4.3 Ukazka porovnavanych xml dat pri detekci krizovatek . . . . . . . . . 23

4.4 Zjednoduseny postup vytvarenı krizovatky . . . . . . . . . . . . . . . 24

5.1 Struktura algoritmu diferencialnı evoluce . . . . . . . . . . . . . . . . 33

5.2 Graficka reprezentace nastavenych parametru . . . . . . . . . . . . . 34

5.3 Graficke znazornenı nesymetrickeho rozlozenı . . . . . . . . . . . . . . 34

5.4 Vyvoj jedince pri diferencialnı evoluci . . . . . . . . . . . . . . . . . . 35

6.1 Zalozka Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

6.2 Zobrazenı aktualnıho nastavenı prednosti v krizovatkach . . . . . . . 37

6.3 Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace na

dobu stanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

6.4 Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace na

dobu pomale jızdy . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

6.5 Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace na

pocet projetych vozidel . . . . . . . . . . . . . . . . . . . . . . . . . . 43

6.6 Mesto Hlinsko, doba simulacnıho kroku 4 minuty, optimalizace na

dobu stanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

6.7 Mesto Petrovice u Karvine, doba simulacnıho kroku 4 minuty, opti-

malizace na dobu stanı . . . . . . . . . . . . . . . . . . . . . . . . . . 45

6.8 Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace na

dobu stanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

6.9 Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace

pocet vozidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

6.10 Mesto Hlinsko, doba simulacnıho kroku 4 minuty, optimalizace na

dobu stanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

6.11 Mesto Petrovice, doba simulacnıho kroku 4 minuty, optimalizace na

dobu stanı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

1 UVOD

Prvnım ukolem prace je navrhnout a implementovat importovanı mapovych pod-

kladu a automaticke vytvarenı topologie krizovatky. Pri resenı prace je nutne seznamit

se s dopravnım simulatorem TRASI. Pro ucely importovanı map bude zpracovan

strucny prehled o mapovem formatu Open street map xml. Do simulatoru TRASI

je nasledne implementovan algoritmus pro importovanı a prevod souradnic z tohoto

formatu. Tento algoritmus bude urcovat rozmery importovanych silnic a krizovatek

a bude obsahovat jednoduchy filtr.

Dalsım ukolem bude vytvorit algoritmus pro automaticke vytvarenı topologie

importovanych krizovatek. Tento algoritmus rozpozna typ krizovatky a automaticky

urcı a nastavı vnitrnı topologii teto krizovatky.

Dale bude navrhnut algoritmus pro doplnenı chybejıcıch udaju v importovanych

mapovych podkladech. Algoritmus bude schopny urcit typ prednosti na krizovatkach

a optimalizovat sıt’ krizovatek na zaklade zvoleneho optimalizacnıho kriteria.

Takto navrzene resenı se nasledne vyhodnotı porovnanım se situacı, kdy by byly

vozovky na vsech krizovatkach nerozlisene a s uzivatelem definovanym rozvrzenım.

Toto rozvrzenı vychazı ze znalosti dopravnı struktury v dane oblasti.

9

2 SIMULATOR DOPRAVY TRASI

TRASI (TRAfic SImulator) [1] [2] vyvıjeny v ramci resenı projektu GACR, je si-

mulator slouzıcı k simulaci silnicnı dopravy a optimalizaci rızenı definovane dopravnı

oblasti. Simulator je slozen ze dvou oddelenych modulu.

∙ Polyedit

∙ SimCity

– GUI

– MAM

– NGM

– NetLoader

– Router

– Logger

2.1 Polyedit

PolyEdit je nastroj pro vytvarenı polygonalnıch modelu, ktere jsou pouzity v si-

mulatoru. PolyEdit byl vytvoren soubezne se samotnym simulatorem, umoznuje

vytvarenı a upravu vsech grafickych modelu a objektu v simulaci.

Obr. 2.1: Polyedit s modelem vozidla

Editor take umoznuje vytvarenı dynamickych polygonu jako jsou naprıklad blin-

kry, brzdy a dopravnı svetelna signalizace. Takto vytvorene specialnı polygony musı

mıt specialnı nazev.

10

2.2 SimCity

SimCity je program slouzıcı k simulaci dopravy, je slozen z nekolika dılcıch soucastı,

kde kazda z nich vykonava specifickou funkci.

2.2.1 GUI

Graficke uzivatelske rozhranı slouzı ke graficke interpretaci probıhajıcı simulace jejı

uprave a k nastavenı simulacnıho prostredı a programu. Rozhranı lze rozdelit do trı

Obr. 2.2: Graficke uzivatelske rozhranı TRASI

dılcıch sekcı. Sekce pro upravu simulacnıho prostredı, leva cast, sekce pro nastavenı

vybranych simulacnıch objektu, prava cast a zakladnı nastavenı a spustenı simulace

ve spodnı casti rozhranı. Dalsı soucasti grafickeho rozhranı je pokrocile nastavenı

funkcı simulatoru, polozka File → settings.

2.2.2 MAM

Modul MAM obsluhuje umelou inteligenci vozidel a jejich vseobecne chovanı.

2.2.3 NGM

NGM native graphic module je modul, ktery obsahuje a obsluhuje veskere graficke

objekty v simulatoru. V tomto modulu jsou ulozeny veskere objekty, ktere se zob-

razujı v simulaci.

11

2.2.4 NetLoader

Netloader je modul vytvoreny v ramci teto diplomove prace a slouzı k importovanı

externıho mapoveho podkladu do simulacnıho prostredı TRASI. TRASI je schopno

importu mapoveho podkladu ve formatu Open street map, jelikoz ale tento format

neobsahuje veskere topologicke informace modul, Netloader tyto informace doplnı.

Obr. 2.3: Ukazka importovane mapy

2.2.5 Router

Modul Router obsahuje algoritmy pro vypocet trasy vozidel, pro jejich navigaci v

silnicnı sıti. Kazdemu vozidlu vypocte informaci odkud kam smeruje a vypocte pro

nej idealnı trasu slozenou z krizovatek, ktere vozidlo musı projet. V tomto modulu

jsou implementovany dva algoritmy pro vypocet trasy, A* (A Star) router a navigace

pomocı Floyd-Warshall algoritmu. Vıce o modulu router v [1]

2.2.6 Logger

Modul logger slouzı k zaznamenavanı a exportovanı informacı z probehle simulace.

Logger zaznamenava data do ctyr souboru (global.log, car.log, event.log a

c2c.log). Global.log obsahuje globalnı informace probehle simulace jako naprıklad,

pocet vozidel v simulaci a jejich prumernou rychlost. Car.log obsahuje informace

jednotlivych vozidel jako naprıklad delku trasy a typ navigace. EventLog slouzı

k uchovavanı informacı udalostı jez nastaly v simulaci, naprıklad cas kdy nastala

udalost a ktere vozidlo ji vyvolalo. C2c uchovava informace o komunikaci car to

car. Vysledny soubor dat lze otevrıt v tabulkovem procesoru a provest statisticka

vyhodnocenı

12

2.3 Prvky v simulaci

Simulacnı prostredı TRASI se sklada ze sedmi zakladnıch prvku.

∙ Node

∙ Edge

∙ CarGen

∙ Crossing

– T type crossing

– + type crossing

– roundabout type crossig

∙ Road end crossing

2.3.1 Node

Node neboli uzel je elementarnım prvkem v simulaci, uzel slouzı ke spojenı vıce silnic

do jedne a nebo naopak. Na kazdem uzlu se umela inteligence vozidla rozhoduje

jestli odbocı vlevo vpravo a nebo zachova smer jızdy rovne. Prvky typu crossing

jsou slozeny ze soustavy uzlu a hran.

2.3.2 Edge

Edge neboli hrana je podobne jako uzel elementarnı prvek v simulaci. Hrana slouzı

jako spojnice mezi jednotlivymi uzly, zjednodusene se da chapat jako jednosmerna

silnice. Umela inteligence vozidla sleduje strukturu hrany od jednoho bodu ke druhe-

mu, kde se na kazdem uzlu rozhoduje, na kterou jinou hranu odbocı. Hrana, na rozdıl

od uzlu, ma nekolik nastavitelnych vlastnostı jako: maximalnı povolenou rychlost,

atraktivitu a atribut vytızenı.

2.3.3 Cargen

Jedna se o specialne upraveny typ uzlu, ktery slouzı v simulaci ke generovanı vozidel.

Cargen ma nekolik nastavitelnych atributu, jako casovy interval mezi jednotlivymi

generovanymi vozidly a typ navigace vozidel.

2.3.4 Crossing

Krizovatka je kolekcı hran a uzlu spojenych do jednoho simulacnıho prvku. Krizova-

tka ma celou radu vlastnostı od vnitrnı topologie az po nastavenı svetelne signali-

zace. Krizovatka je zakladnım uzlem pri vytvarenı topologie pro navigaci. Topologie

pro navigaci je topologicka mapa, ktera obsahuje vsechny krizovatky na mape a

informace o jejich propojenı

13

Obr. 2.4: Node, Edge, Cargen v simulaci

Obr. 2.5: Klasicka krizovatka, krizovatka typu T a kruhovy objezd v simulaci

2.3.5 Road End Crossing

Jedna se o specialne upravenou krizovatku, ktera je urcena jako zakoncenı silnice.

Tento prvek obsahuje uzel typu Cargen tudız je urcena jako pocatecnı a konecny

bod pro navigaci vozidel.

2.3.6 Moznosti simulatoru

Z prvku zmınenych v teto kapitole je mozne vytvorit:

∙ kruhovy objezd,

∙ mimourovnove krızenı (vozidla jsou pri prujezdu pod mostem v grafickem

vystupu skryta),

∙ jednosmerne silnice,

∙ najezdy/sjezdy,

∙ svetelne krizovatky s nastavitelnym casovanım,

∙ krizovatky s urcenım prednosti (hlavnı silnice)

Zakladnı prvky nepodporujı:

∙ krizovatky s vıce vystupnımi pruhy (pouze vıce vstupnıch pruhu),

∙ krizovatky propojujıcı vıce nez 4 silnice,

∙ vytvarenı jinych dopravnıch prostredku (napr. tramvaje)

14

∙ simulaci prechodu pro chodce

∙ specialnı vozidla (zachranna sluzba, hasicske vozidla, policejnı vozidla aj.)

Automobily mohou:

∙ prejızdet mezi pruhy ve stejnem smeru (pouze v dusledku zarazenı do spravneho

odbocovacıho pruhu),

∙ radit se metodou zip pri zuzenı silnice do jednoho pruhu,

∙ menit svou trasu na zaklade obdrzenı zpravy o dopravnı situaci,

∙ nedodrzovat maximalnı povolenou rychlost na zaklade parametru speed coefi-

cient,

∙ mıt ruzne parametry jako rozvor naprav, maximalnı rychlost, akceleraci, de-

celeraci, faktor odvahy

Automobily nemohou:

∙ predjızdet jine automobily prejetım do jineho pruhu,

∙ zastavit na predem urcenem mıste (parkovanı),

15

3 OPEN STREET MAPS

Open Street Maps [4] jsou mapove podklady ktere jsou zalozeny na koncepci Open

source. Data jsou poskytovana pod licencı Creative Commons Attribution-ShareAlike

2.0. OpenStreetMap vyuzıva a vyvıjı vlastnı souborovy format pro vektorova geo-

data postaveny na XML formatu. Jako referencnı souradnicovy system je pouzit

WGS 84, pro rychlou a jednoduchou vizualizaci dat pak casto Mercatorova pro-

jekce, ve vysledku pouzıva topologickou datovou strukturu.

Obr. 3.1: Centrum Brna v Open Street Maps

Mapovy format OSM

Hlavnım nastrojem v Open Street Maps je format XML, ktery byl nejprve pouzıvan

pouze pro programovacı rozhranı aplikace (API). V podstate se jedna o souhrn in-

stancı datovych primitiv (uzly, cesty, znacky a atributy), coz je zakladnı architektura

modelu v Open Street Maps.

3.1 OSM XML file format

Xml format je urceny k vytvarenı znackovacıch jazyku pro ruzne ucely a ruzne typy

dat. Hlavnımi prvky v XML formatu Open street maps jsou:

16

∙ Uzel (Node)

∙ Silnice (Way)

∙ Stıtek (Tag)

∙ Plocha (Area)

– Uzavrena krivka

– Otevrena krivka

– Oblast

3.1.1 Uzel (Node)

Uzel definuje jediny geoprostorovy bod pomocı zemepisne sırky, delky a nadmorske

vysky. Uzel muze reprezentovat mesto nebo obec a to kdyz je urcen atributem place

=* a name =*.

3.1.2 Silnice (way)

Druhym elementem je cesta, ktera se sklada ze seznamu uzlu o velikosti v rozmezı

2 az 2000 clenu. V prıpade, ze se potkajı dve cesty, tak musı sdılet spolecny uzel.

3.1.3 Stıtek (tag)

Stıtek nenı element sam o sobe, jedna se atribut u nektereho z vyse uvedenych

elementu. Sklada z dvou textovych polı ”klıc”a ”hodnota”, klıc muze obsahovat

doplnujıcı informace naprıklad maximalnı rychlost nebo urcenı jednosmerne silnice.

Pri vytvarenı mapy v OSM je mozne silnici oznacit nasledujıcımi stıtky.

∙ oneway - jednosmerna silnice

∙ primary, secondary, terriary - hlavnı silnice

∙ * link1 - pripojna silnice

∙ trunk - dalnice

∙ living street, pedestrian, residental - vedlejsı silnice

3.1.4 Plocha (Area)

Plocha je vymezena oblast zobrazujıcı plosny geograficky utvar jako naprıklad jezero,

lesy. Otevrena krivka je slozena z 2 az 2000 uzlu kde nenı propojeny vychozı a

koncovy bod slouzı k znacenı cest, potoku a zeleznicnıch tratı.

Uzavrena krivka je podobna otevrene krivce pouze s tım rozdılem, ze vychozı

a koncovy bod jsou propojeny, tımto stylem jsou popisovany naprıklad kruhove

objezdy.

1 * znacı jakoukoliv z hlavnıch silnic napriklad primary link

17

4 IMPORT MAPOVYCH PODKLADU, NET-

LOADER

Netloader je modul simulatoru TRASI vytvoreny v ramci resenı teto prace slouzıcı k

importovanı externıho mapoveho podkladu formatu OSM.xml do simulacnıho prostredı.

Tato kapitola pojednava o problemech pri prevodu formatu a jejich resenı.

4.1 Neuplny format dat

Jelikoz format OSM je format pro vytvarenı mapovych podkladu, neobsahuje veskere

informace pro vytvarenı komplexnı silnicnı sıte. Modul Netloader tyto chybejıcı

udaje dopocıtava nebo odhaduje z dostupnych informacı obsazenych v datovem sou-

boru viz kapitola 3.1. Problemy, ktere Netloader resı, lze rozdelit do nasledujıcıch

skupin:

∙ Filtrovanı uzitecnych informacı z datoveho souboru

∙ Prevod geografickych souradnic

∙ Vypocet tvaru a smeru silnic

∙ Detekce krizovatek

∙ Vypocet a odvozenı tvaru krizovatky

∙ Vypoctenı vnitrnı topologie krizovatky

∙ Urcenı hlavnıch a vedlejsıch silnic, Diferencialnı evoluce

4.2 Zpusoby resenı

4.2.1 Filtrovanı informacı

Jelikoz datovy soubor OSM obsahuje mnoho informacı nepotrebnych k vytvorenı

silnicnı sıte, musı byt tyto data filtrovana. Pokud by byly zobrazovana veskera

data obsazena v datovem souboru, vyrazne by to zpomalovalo simulaci a cinilo

jı neprehlednou.

Filtrovana data

Vstupnı data jsou filtrovana pomocı XML readeru, jenz je nastroj poskytujıcı rychle

predanı prıstupu k xml souboru bez vyuzitı mezipameti. Tento nastroj precte veskera

data obsazena v datovem xml souboru. Takto nactena data jsou dale filtrovana

filtrem, ktery propustı pouze uzly, ktere jsou soucastı silnice (viz kapitola 3.1.1) a

seznam propojenı mezi uzly way (viz kapitola 3.1.2). Tato data se dale zpracovavajıcı

nasledujıcım filtrem, ktery je uzivatelsky nastavitelny. Tento filtr slouzı k vybranı

18

typu silnic, ktere majı byt do simulace vlozeny. Tento filtr zpracovava data pomocı

stıtku (viz kapitola 3.1.3), ktery obsahuje kazda silnice v datovem xml souboru.

Obr. 4.1: Nastavenı filtru pro vyber typu silnic

Filtr pracuje na principu porovnanı slovnıku, jeden slovnık je zıskan z nasta-

venych dat a druhy je nacteny z datoveho souboru. Pokud slovnık nacteny z da-

toveho souboru neobsahuje nazev stıtku zaskrtnuteho v nastavenı, nenı silnice vy-

kreslovana ani nenı s nı dale pocıtano.

4.2.2 Prevod geografickych souradnic

Jelikoz jako referencnı souradnicovy system je pouzit WGS 84 je nutne tyto souradni-

ce prevest do formatu x, y souradnic, ktere jsou pouzity v simulacnım prostredı

simulatoru. Pro tento prevod byl pouzit princip vypoctu vzdalenosti mezi jednot-

livymi body.

Vzdalenostnı vypocet pozice

Vzdalenostnı princip vypoctu pozice [3] funguje na principu, vypoctu vzdalenosti

jednotlivych bodu od referencnıho bodu (viz. kod 4.1). Dale je referencnı bod urcen

jako souradnice pocatku a vzdalenost pocıtaneho bodu od pocatku je vysledna po-

zice.

Dıky vzdalenostnımu modelu vypoctu souradnic je mozne prevest souradnice na

jekemkoliv mıste na planete a presne je centrovat v simulatoru. Prevod je nastaven

tak, aby se po kazdem importovanı mapa centrovala na prvnı nalezenou krizovatku.

4.2.3 Vytvorenı silnic

Format OSM xml uchovava tvar silnice jako seznam uzlu, kterymi je dana silnice

tvorena. Zobrazovacı format TRASI je odlisny, silnice jsou slozeny vyhradne z hran.

Tyto hrany jsou tvoreny jako lomena usecka, ktera reprezentuje jeden jızdnı pruh

19

Kod 4.1: algoritmus pro vypocet pozice

double R = 6371 ; // polomer zeme [ km]

dLat = u . DegreeToRadian (A. x − cente rx ) ;

dLon = 0 ;

a = Math . Sin ( dLat / 2) * Math . Sin ( dLat / 2) +

Math . Sin (dLon / 2) * Math . Sin (dLon / 2) *Math . Cos ( l a t 1 ) * Math . Cos ( l a t 2 ) ;

c = 2 * Math . Atan2 (Math . Sqrt ( a ) , Math . Sqrt (1 −a ) ) ;

A. x = (R * c * 1000) ; //nova x sou r adn i ce

dLat = 0 ;

dLon = u . DegreeToRadian (A. y − cente ry ) ;

a = Math . Sin ( dLat / 2) * Math . Sin ( dLat / 2) +

Math . Sin (dLon / 2) * Math . Sin (dLon / 2) *Math . Cos ( l a t 1 ) * Math . Cos ( l a t 2 ) ;

a = Math . Abs ( a ) ;

c = 2 * Math . Atan2 (Math . Sqrt ( a ) , Math . Sqrt (1 −a ) ) ;

A. y = (R * c * 1000) ; //nova y sou r adn i ce

(ma urceny smer). Tudız je pri prevodu nutne:

1. zjistit typ silnice(jednosmerna, standardnı)

2. urcit poradı uzlu v silnici

3. vypocıtat novou pozici uzlu v simulaci

4. spojit nove vytvorene uzly silnicemi

Zjistenı typu silnice

Pri zjist’ovanı typu silnice Netloader vyuzıva stıtku(tag) (viz kapitola 3.1.3) ve

kterem je obsazena informace o typu silnice. Pokud je silnice typu oneway nebo

*. link je silnice vykreslena, tak jak je ulozena v xml souboru, cili jako serie uzlu

spojena jednou hranou. V ostatnıch prıpadech je tvar silnic vypocten.

20

Urcenı poradı uzlu

Jelikoz je poloha uzlu v simulaci dopocıtavana je nutne zjistit jejich poradı. Toto

je nutne, kvuli pouzitı spravneho vypocetnıho algoritmu pro vypocet pozice jednot-

livych bodu viz. kapitola 4.2.3.

Vypocet pozice uzlu

Pro vypocet pozice prvnıho uzlu silnice je pouzit kod 4.2. Tento algoritmus nejprve

vypocte uhel 𝛼 (viz obr. 4.2),tudız uhel natocenı prvnı casti silnice vuci nulove ose

simulace. V dalsım kroku se vypocte x souradnice noveho bodu a to jako kosinus

uhlu 𝛼 posunuteho o 90∘ vynasobeny konstantou urcujıcı sırku silnice width. Takto

vypoctene cıslo je dale pricteno k puvodnı souradnici uzlu.

Kod 4.2: Vypocet pozice novych uzlu prvnıho uzlu silnice

anglea = Angle (Road [ 0 ] . X, Road [ 0 ] . Y, Road [ 1 ] . X, Road [ 1 ] .Y) ;

// v y po c e t uh lu

∖∖ vypocet poz i c e uz lu pro prvn ı j i z d n ı smer

x = ( f l o a t ) (Road [ 0 ] .X + width * Math . Cos ( ang lea − Math . PI / 2) ) ;

y = ( f l o a t ) (Road [ 0 ] .Y − width * Math . Sin ( anglea − Math . PI / 2) ) ;

∖∖ vypocet poz i c e uz lu pro druhy j ı z d n ı smer

x1 =( f l o a t ) (Road [ 0 ] .X + width * Math . Cos ( ang lea + Math . PI / 2) ) ;

y1 =( f l o a t ) (Road [ 0 ] .Y − width * Math . Sin ( anglea + Math . PI / 2) ) ;

Obdobne je vypoctena i ypsilon souradnice prvnıho bodu. Pro vypocet pozice

uzlu pro druhy jızdnı smer je vypocet obdobny pouze je od uhlu 𝛼 odecteno posunutı

o 90∘.

Pro vypocet pozic poslednıho uzlu silnice je pouzita obmenena verze kodu 4.2 kde

je do metody vypocıtavajıcı uhel 𝛼 vlozeny souradnice Road[n],Road[n-1] (obr.4.2)

Pro vypocet neokrajoveho uzlu je pouzit algoritmus 4.3. Tento algoritmus vypocte

dva ruzne uhly, angler, ktery slouzı k vypoctu uhlu 𝛽 a anglea, ktery slozı k

vypoctu uhlu 𝛾. Angler vypocıtava relativnı uhel, tedy natocenı vuci nulove ose,

zato anglea vypocıtava uhel mezi jednotlivymi silnicemi vstupujıcım do konkretnıho

uzlu. Ze znalosti techto dvou uhlu je mozne dopocıtat, kde majı byt nove vytvorene

uzly umısteny.

21

Obr. 4.2: Vypocet pozice uhlu

Spojenı vytvorenych uzlu

Nove vytvorene uzly je nutno propojit hranami (Edges), aby v simulatoru splnovaly

funkci silnic. Jelikoz je vytvarenı hran v TRASI zavisle na poradı (hrany jsou jed-

nosmerne silnice), je nutne provest spravnou konverzi dat z formatu OSM, kde jsou

silnice ulozeny jako seznam uzlu.

Pro spravne vykreslovanı nactenych dat slouzı metoda PartialEdgeDraw, ktera

vstupnı data rozdelı vzdy po dvou uzlech a otocı poradı uzlu pro vykreslenı pro-

tismeru. Takto upravena data jsou predlozena metode AddEdge ktera slouzı k vlozenı

vypoctenych hran do simulacnıho prostredı.

Tımto zpusobem jsou vykreslovany silnice, ktere neobsahujı zadnou krizovatku.

4.2.4 Detekce krizovatek

Datovy soubor OSM xml neobsahuje zadne pouzitelne informace pro vytvorenı

krizovatek, tudız musı byt krizovatky kompletne dopocıtavane. Netloader detekuje

pozici krizovatek pomocı porovnanı seznamu uzlu v jednotlivych silnicıch nacteny z

datoveho souboru (viz. obrazek 4.3). Pokud se jeden uzel vyskytuje ve dvou a vıce

seznamech vıcekrat nez jednou, je tento uzel vyhodnocen jako krizovatka. Pokud je

uzel oznacen jako krizovatka je dale zpracovavan, viz. kapitola 4.2.5

22

Kod 4.3: Vypocet pozice novych uzlu neokrajoveho uzlu silnice

ang l e r = AngleMe (Road [ i ] , Road [ i + 1 ] , Road [ i + 2 ] ) ;

ang lea = Angle (Road [ i +1] .X, Road [ i +1] .Y, Road [ i +2] .X,

Road [ i +2] .Y) ;

x = ( f l o a t ) (Road [ i +1] .X + width * Math . Cos ( ang lea + ( ang l e r /

2) + Math . PI ) ) ;

y = ( f l o a t ) (Road [ i + 1 ] .Y − width * Math . Sin ( anglea + ( ang l e r /

2 + Math . PI ) ) ) ;

x1 = ( f l o a t ) (Road [ i + 1 ] .X + width * Math . Cos ( ang lea + ( ang l e r

/ 2) + Math . PI + Math . PI ) ) ;

y1 = ( f l o a t ) (Road [ i + 1 ] .Y − width * Math . Sin ( anglea + ( ang l e r

/ 2) + Math . PI + Math . PI ) ) ;

Obr. 4.3: Ukazka porovnavanych xml dat pri detekci krizovatek

4.2.5 Vypocet tvaru krizovatky

Pokud je detekcı zjisteno ze prave vykreslovana silnice obsahuje krizovatku, je postup

pri vytvarenı krızenı nasledujıcı

1. detekce poradı uzlu

2. uprava silnice

3. predanı uzlu

4. vytvorenı vnitrnıho propojenı

Detekce poradı uzlu a jejich uprava v silnicıch

Pri zjistenı, ze silnice obsahuje krızenı, je nutne zjistit, kde se toto krızenı nachazı.

Pokud je krızenı na prvnım nebo poslednım uzlu silnice, tento uzel je pouze posunut

23

Obr. 4.4: Zjednoduseny postup vytvarenı krizovatky

o hodnotu ulozenou v promenne Crossing width, nastavitelnou v nastavenı TRASI.

Pokud se krızenı nachazı v nekterem z neokrajovych uzlu, je nutne tuto silnici

rozdelit na dve. Uzel, ve kterem se krızenı nachazı, je nutne rozdelit na dva a u jedne

silnice jej oznacit jako koncovy bod a u druhe jako bod pocatecnı. Dale se oba nove

uzly posunou o vzdalenost ulozenou v promenne Crossing width. Jestlize se jedna

o krızenı dvou silnic v neokrajovych bodech, provede se stejna operace nejprve pro

prvnı vykreslovanou silnici a pote az pro druhou.

Predanı uzlu

Takto nove vytvorene uzly jsou predany a pouzity pri vytvarenı objektu typu krizova-

tka. Jelikoz jsou silnice jednosmerne vyzaduje upraveny konstruktor objektu typu

krizovatka seznam vystupnıch a vstupnıch uzlu. Podle poctu techto uzlu se vyhod-

notı typ krizovatky, konstruktor objektu typu krizovatka dosud podporuje automa-

ticke vytvarenı vnitrnı struktury pro tri typy krizovatek a to:

∙ Krızenı 2 silnic - slouzı k propojene dvou ruznych silnic v jejich okrajovych

uzlech, tento typ krizovatky je po vykreslenı pretypovan na objekt typu hrana

∙ Krızenı 3 silnic - krizovatka typu T, je nejpocetneji zastoupena ve vetsine

importovanych map.

∙ Krızenı 4 silnic - klasicka krizovatka typu +, jedna se krizovatku se ctyrmi

vstupy a vystupy.

∙ Krızenı 5 a vıce - nenı doposud v simulatoru podporovano, pri detekovanı

takoveto krizovatky jsou spojeny prvnı ctyri vstupnı silnice v zavislosti na

jejich poradı v datovem souboru OSM xml.

Vnitrnı propojenı krizovatky

Pro vytvarenı vnitrnıho propojenı byl navrzen univerzalnı algoritmus, ktery v zavi-

slosti na poctu vstupnıch a vystupnıch uzlu (nemusı se rovnat, nektera silnice muze

24

byt jednosmerna) automaticky toto propojenı vytvorı.

Tento postup je opakovan pro vsechny spolecne uzly, po ukoncenı importo-

vanı mapy, simulator vycentruje zobrazenı a pozici importovane mapy podle prvnı

krizovatky v poradı.

25

5 POUZITI DIFERENCIALNI EVOLUCE PRI

NAVRHU TOPOLOGIE KRIZOVATKY

5.1 Diferencialnı evoluce

Diferencialnı evoluce [5] [6] je optimalizacnı metoda, ktera je variantou evolucnıho

optimalizacnıho algoritmu. Tato metoda na rozdıl od geometrickych optimalizacnıch

metod dokaze najıt vıce globalnıch extremu dane funkce. Vyhodou pouzitı dife-

rencialnı evoluce je jejı schopnost automatizovane modifikovat parametry funkce s

cılem maximalizovat jejı presnost na danych datech ci testovacı uloze.

Jedna se o evolucnı algoritmus, ktery vytvarı dve populace o stejnem poctu

jedincu. Nova generace jedincu je vzdy vytvorena ze stare generace, ktera je upravena

krızenım a mutacı. Pokud je takto nove vytvoreny jedinec lepsı nez jeho rodic,

jedinec se stane clenem nove generace.

5.1.1 Krızenı

Krızenı je zakladnım prvkem genetickych algoritmu, je to zpusob vytvarenı novych

resenı do dalsıch populacı. Je to metoda slouzıcı k zajistenı konvergence, ktera pra-

cuje na urovni chromozomu a genu. Krızenım je zajisten zakladnı zpusob vymeny

informacı mezi jedinci. Novy jedinec (potomek), vznika kombinacı genetickych in-

formacı od vıce nez dvou jedincu (rodicu). Takto vznikly potomek ma urcitou

pravdepodobnost, ze jeho geneticka vybava bude z hlediska kriterialnı funkce lepe

ohodnocena nez u jeho rodicu. Takto cely algoritmus postupuje ve vylepsovanı kri-

terialnı funkce.

5.1.2 Mutace

Ucel mutace je vkladat do populace nove geneticke informace, ktere dosud nejsou v

populaci prıtomne. Takto dodana nova informace muze byt v procesu vyvoje kriticka

a muze vyrazne vylepsit jeho vlastnosti. Takto pridana nova genova informace ale

take narusuje genetickou informaci jedince tudız je vhodne ji aplikovat s nızkou

pravdepodobnostı.

5.1.3 Selekce

Ukolem selekce je vybırat z populace jedincu vhodne cleny kterı se budou podılet

na tvorbe novych jedincu. Algoritmus se snazı napodobit teorii prirozeneho vyberu

a prezitı jedincu s nejlepsı genetickou vybavou. Aby bylo dosazeno konvergence jsou

26

vybıranı kvalitnejsı jedinci, tak aby jejich potomci dosahovali co nejvysıch kvalit.

Metody selekce lze realizovat jako jedno-kriterialnı a vıce-kriterialnı. Metody zo-

hlednujıcı pouze jedno kriterium berou v potaz pouze hodnotu fitness, metody zo-

hlednujıcı vıce kriteriı berou v potaz take dalsı parametry jako napr. starı jedince.

Typicky pri pouzitı v algoritmech diferencialnı evoluce je casto vybıran vzdy nejlepsı

jedinec generace.

5.2 Struktura algoritmu

Evolucnı algoritmus pouzity v simulatoru upravuje nastavenı prednostı na vsech

krizovatkach pomoci zmeny nastavenı hodnoty, ktera urcuje index silnice vstupujıcı

a vystupujıcı z krizovatky. Struktura pouziteho algoritmu je na obrazku 5.1. Tento

algoritmus probıha cyklicky dokud nenı ukoncen.

Na obrazku 5.2 vlevo je zobrazena struktura jedince. Jedna se o seznam krizova-

tek serazeny podle jejich identifikacnıho cısla. Kazde krizovatce v seznamu jsou

prirazeny dve cısla, ktere urcujı typ prednosti v krizovatce, viz obrazek 5.2 vpravo.

Pokud jsou si obe cısla rovny jedna se o krizovatku bez prednosti a platı zde pravidlo

prednosti zprava.

5.2.1 Inicializace

V prvnım kroku evoluce se nastavı pocatecnı mnozina jedincu. Kazdemu jedinci jsou

nastaveny pocatecnı hodnoty nahodne v rozmezı < 0; 3 >. Tato hodnota urcuje,

ktera silnice je pripojena na ktery bod krizovatky, viz obrazek 5.2. Prvnı jedinec ma

vzdy nastaveny vsechny sve parametry na hodnotu 0 pro kazdou krizovatku. Toto

je zakladnı nastavenı pri importovanı mapy.

Po vytvorenı pocatecnı mnoziny jedincu jsou vsichni jedinci ohodnoceni a je

jim pridelena jejich kriterialnı hodnota. Tato hodnota urcuje jakych kvalit jedinec

dosahuje, viz kapitola 6.2.

5.2.2 Krızenı

Po ukoncenı inicializace a ohodnocenı je vytvorena nova mnozina jedincu. Tato

nova mnozina je vytvorena jako kombinace jedincu mnoziny predchazejıcı. Novy

jedinec je vytvoren tak, ze je kompletne preneseno nastavenı jedince predchazejıcıho

(genom). Takto vytvorenemu jedinci je nahrazena nahodna cast parametru (genomu)

od jedince predchozı generace, vybraneho nahodnym nerovnomernym rozlozenım.

Jelikoz je optimalizacnım parametrem cas, ktery je nutno minimalizovat, je pouzit

vzorec 5.2 a kod 5.1, pro prepocet casu na procentualnı sanci na vyber.

27

𝐹𝑖𝑡𝑛𝑒𝑠𝑠𝑚𝑎𝑥 = 𝑚𝑎𝑥 (5.1)

𝑟𝑢𝑙𝑒𝑡𝑒 =𝑛∑

𝑖=0

10 × 𝐹𝑖𝑡𝑛𝑒𝑠𝑠𝑚𝑎𝑥

𝐹𝑖𝑡𝑛𝑒𝑠𝑠𝑖(5.2)

Promenne:

Fitnessmax . . . . Maximalnı hodnota v mnozine fitness

Fitness . . . . . . . hodnoty chybovych funkcı jedincu

rulete . . . . . . . . . suma vsech prepoctenych chybovych funkcı

max . . . . . . . . . . maximalnı hodnota v mnozine fitness pouzita v kodu 5.1

n . . . . . . . . . . . . . . pocet jedincu v generaci

Kod 5.1: Algoritmus vypoctu nesymetrickeho rozlozenı

i n t pom = Calc . random . Next (0 , ( i n t ) r u l e t e ) ; // vypo c t en ı

nahodneho c ı s l a

r u l e t e = 0 ;

f o r each ( var item in Populat ion [ Populat ion . Count − o f f s e t ] )

{r u l e t e += (10 * max / item . F i t n e s s ) ;

i f ( r u l e t e > pom)

break ; // p r i p r e s a hnu t ı

nahodneho c ı s l a se ukon c ı smycka

rand++;

// po rad ı j e d i n c e

}s t a tu s = s t a t ;

return rand ;

// v r a t ı nahodny index j e d i n c e <0...10>

Nahodne nerovnomerne rozlozenı lze graficky interpretovat jako plochu rozdelenou

na 10 nerovnych dılu (obrazek 5.3). Kazdy dıl reprezentuje jednoho jedince. V takto

rozdelene oblasti je vygenerovano cıslo, ktere spada pod jednu oblast. Oblasti s vetsı

plochou majı vetsı sanci, ze nahodne cıslo bude spadat do jim vymezeneho prostoru.

Cım lepsı je jedinec z pohledu chybove funkce (fitness), tım vetsı oblast zaujıma

a ma vetsı sanci na to, ze bude vybran.

28

5.2.3 Mutace

Krızenı nevnası do algoritmu evoluce zadnou novou informaci a pri inicializaci nelze

pokryt veskere kombinace nastavenı parametru, kvuli tomuto problemu je do algo-

ritmu pridana mutace, ktera nahodne vytvarı dalsı kombinace. Mutace probıha u

kazdeho jedince, ktery je vytvoren krızenım. Mutace nahodne zmenı nastavenı 30%

prvku u kazdeho jedince. Mnozstvı kolik prvku bude u jedince mutacı ovlivneno

byla nastavena experimentalne, tak aby nebylo zmeneno veskere nastavenı jedince

a zaroven vnaselo nove zpusoby resenı. Proces krızenı a mutace je znazornen na

obrazku 5.4.

5.2.4 Selekce

Selekce je proces kdy se z hlediska chybove funkce porovna jedinec vytvoreny pomocı

krızenı a mutace s jeho rodicem. Pokud potomek ma lepsı vlastnosti, ktere jsou

ohodnoceny chybovou funkcı, tento potomek nahradı sveho rodice v dalsı generaci.

Takto vytvoreny novy jedinec dale prochazı procesy krızenı a mutace. Pokud je

potomek z hlediska chybove funkce horsı nez jeho rodic, je takto vytvoreny potomek

zahozen a rodic pokracuje dal do nove generace.

5.3 Nastavene parametry evoluce

5.3.1 Jedinec

Jedinec je v programu reprezentovan objektem typu PopulationItem. Tento ob-

jekt je slozen z dvou promennych typu List<int> a to CrossSettingMainA a

CrossSettingMainB. Poradı prvku v poli urcuje ktere krizovatce prvek nalezı a

jeho hodnota predstavuje uzel ktery je u dane krizovatky oznacen jako hlavnı silnice

(viz obrazek 5.2). Dalsı parametry ktere jedinec obsahuje jsou vysledky jeho ohod-

nocenı funkcı Evaluate. Tyto vysledky jsou reprezentovany peti promennymi typu

double.

5.3.2 Inicializace

Mnozina jedincu je obsazena v promenne Population[0]. Tato promenna je typu

List<List<PopulationItem>>, cili se jedna o dvourozmerne pole objektu typu

PopulationItem. Prvnı rozmer urcuje, jestli se jedna o mnozinu rodicu, potomku

kterı prosli krızenım nebo potomku, kterı prosli jak krızenım tak i mutacı. Druhy

rozmer urcuje velikost populace.

29

Pocatecnı mnozina jedincu je inicializovana metodou InicializePopulation a

je vytvorena metodou MakePopulation. Tato metoda vytvorı mnozinu o velikosti

10 jedincu pri zakladnım nastavenı. Velikost populace je mozne nastavit pomocı

privatnı promenne PopulationCount. Hodnota velikosti populace byla nastavena v

zakladnım nastavenı na hodnotu 10. Tato hodnota byla stanovena experimentalne.

Pocet parametru, ktere obsahuje jedinec, se odvıjı od poctu krizovatek obsa-

hujıcıch simulace, vyjma krizovatek typu CarGen. Hodnoty parametru

CrossSettingMainA a CrossSettingMainB se u kazde krizovatky odvıjı od typu

krizovatky. Parametry mohou nabyvat hodnot < 0; 2 > pro krizovatku typu T a

hodnot < 0; 3 > pro klasicke krızenı dvou silnic (obrazek 5.2). Pro ucely zaznamu

vsech hodnotıcıch kriteriı obsahuje objekt kazdeho jedince promenne A,B,C,D, kde

kazde pısmeno odpovıda hodnote jednoho kriteria.

A . . . . . . . . Average Low Speed Time = Prumerna Doba pomale jızdy

B . . . . . . . . Average Standing Time = Prumerna Doba Stanı

C . . . . . . . . Average Travel Time = Prumerna Doba Prujezdu

D . . . . . . . . Car Count = Pocet Aut

Kazde vozidlo pri dokoncenı sve trasy vytvorı zaznam o prubehu jızdy. V tomto

zaznamu jsou obsazena data o dobe pomale jızdy, dobe stanı a casu kdy bylo vozi-

dlo vytvoreno. Tyto data zaznamenava a upravuje metoda MakeLog, ktera schranuje

data vsech vozidel do struktury Log. Metoda MakeLog vypocıtava dobu prujezdu vo-

zidla mapou porovnanım doby vzniku vozidla a jeho zaniku a take vypocıtava hod-

notu promenne CarCount. Tato hodnota odpovıda poctu projetych aut za poslednı

minutu simulace pred vypnutım generatoru vozidel.

Hodnotıcı kriterium je vyhodnocovano v metode Evaluation. Po dokoncenı

jednoho simulacnıho kroku, tato metoda vypocte prumerne hodnoty dat od vsech

vozidel a priradı je objektu jedince. Hodnota aktualne vybraneho optimalizacnıho

kriteria je ulozena v polozce Fitness.

Doba, po kterou jsou generatory vozidel aktivnı, je urcena hodnotou v promenne

Fitnessteptime. Simulacnı krok je ukoncen az poslednı auto v simulaci dokoncı

svou trasu.

5.3.3 Krızenı

Jedinci vytvorenı krızenım jsou uchovavani v strukture Population[1], jejich vytva-

renı obsluhuje metoda Crossment. Zakladnı castı teto metody je cast, kde se nahra-

zujı parametry aktualne zpracovavaneho jedince (kod 5.2).

30

Kod 5.2: Zakladnı cast algoritmu pro vypocet krızencu

i n t k = 0 , rand = 0 ;

double GenomTransferAmount = 0 . 0 ;

f o r ( i n t n = 0 ; n < PopulationCount − o f f s e t ; n++)

{GenomTransferAmount = CrossConstant ;

rand = Rou le te ( o f f s e t ) ;

f o r ( i n t i = 0 ; i < Math . Round(Temp [ n ] . CrossSett ingMainA . Count

* GenomTransferAmount ) ; i++)

{k = Calc . random . Next (0 , Temp [ 0 ] . CrossSett ingMainA . Count ) ;

// rand = Calc . random . Next (0 , Populat ionCount ) ;

Temp [ n ] . CrossSett ingMainA [ k ] = Popu la t ion [ Popu la t ion . Count −o f f s e t ] [ rand ] . CrossSett ingMainA [ k ] ;

Temp [ n ] . CrossSett ingMainB [ k ] = Popu la t ion [ Popu la t ion . Count −o f f s e t ] [ rand ] . CrossSett ingMainB [ k ] ;

}}

Temp jedna se o pomocnou strukturu, ktera se nasledne zapıse do prvku

Population[1]

GenomTransferAmount promenna, ktera urcuje procentualnı zastoupenı

prevzatych genu od druheho rodice

Roulete metoda pro vyber druheho rodice pomocı nahodneho nesymetrickeho

rozlozenı viz. kapitola 5.2.2

PopulationCount urcuje velikost populace, jedna se globalnı promenou

Offset urcuje posun pri vytvarenı a prirazovanı prvku

5.3.4 Mutace

Jedinci vytvorenı krızenım jsou dale zpracovani mutacı pomocı metody Mutation.

Jedinci vytvorenı mutacı jsou umısteni ve strukture Population[2]. Pri mutaci ne-

zanikajı jedinci vytvorenı krızenım ani jedinci vytvoreni pri inicializaci. Tito jedinci

jsou nahrazeni az v dalsım simulacnım kroku.

V zakladnım nastavenı je urceno, ze mnozstvı prvku jedince ovlivnenych mutacı

je 30%. Po ukoncenı mutace je kazdy novy jedinec ohodnocen. Pokud nove vznikly

jedinec je lepsı z hlediska hodnoticıho kriteria, tento jedinec nahradı sveho rodice.

O porovnanı a nahrazenı techto jedincu se stara metoda Selection.

31

5.4 Podmınka ukoncenı

Podmınku, kdy bude simulace ukoncena, osetruje metoda EndConditionFunction.

Tato metoda je volana pri vytvorenı a ohodnocenı kazde nove generace. Tato metoda

zaznamenava hodnotıcı kriterium nejlepsıho clena populace. Po ukoncenı patnacteho

kroku (15. generace), tato metoda vypocte prumernou hodnotu ze vsech zazname-

nanych hodnoticıch kriteriı jedincu.

V dalsım simulacnım kroku je prumerna hodnota znovu vypoctena a porovnana

s hodnotou z minuleho simulacnım kroku. Pokud se hodnota lisı, evoluce pokracuje

dal. Pokud je hodnota prumeru dvou po sobe jdoucıch krocıch stejna, zmenı se

nastavenı parametru evoluce a pokracuje se dalsıch 5 simulacnıch kroku.

Pokud se hodnota prumeru hodnoticıch kriteriı nezmenı ani v jednom kroku, je

simulace ukoncena a je automaticky nastaven nejlepsı jedinec. Pokud se tato hodnota

zmenı pokracuje se v algoritmu viz 5.1.

32

Obr. 5.1: Struktura algoritmu diferencialnı evoluce

33

Obr. 5.2: Graficka reprezentace nastavenych parametru

Obr. 5.3: Graficke znazornenı nesymetrickeho rozlozenı

34

Obr. 5.4: Vyvoj jedince pri diferencialnı evoluci

35

6 TESTY A TESTOVACI METODIKA

Nasledujıcı kapitola pojednava o zpusobech testovanı a metodach vyhodnocenı pri

aplikaci diferencialnı evoluce na resenı nastavenı hlavnıch a vedlejsıch silnic impor-

tovanych map.

6.1 Uzivatelske rozhranı pro diferencialnı evoluci

Pro obsluhu a ovladanı evoluce byla upravena zalozka Testing. Tato zalozka obsa-

huje tri zakladnı panely pro praci s evolucı a vyhodnocovacımi funkcemi (viz obrazek

6.1).

Obr. 6.1: Zalozka Testing

Panel Manual Set Priority

Ovladacı prvky v tomto panelu slouzı k manualnım upravam prednostı na vybrane

krizovatce. Tımto panelem je mozne manualne nastavit typ prednosti na vsech

krizovatkach v simulaci krome krizovatek typu CarGen a Roadend.

Pri zmene prednosti je nejprve nutne oznacit krizovatku, ktera bude upravovana.

Krizovatku lze vybrat kliknutım praveho tlacıtka mysi na objekt krizovatky nebo

vyberem v seznamu objektu. Po oznacenı krizovatky je nutne spravne zvolit pocet

pripojenych silnic. Tato hodnota se zadava do kolonky Number of outputs v zalozce

testing. Nynı je mozne urcit, ktere silnice pripojene ke krizovatce jsou hlavnımi

a to pomoci kolonky Main road from a Main road to. Cıslo zadane do teto ko-

lonky urcuje, ktery uzel krizovatky je hlavnı, viz obrazek 5.2. Pokud je hodnota

v kolonkach Main road from a Main road to, stejna jedna se o krızenı silnic bez

urcene prednosti. Takto nastavene hodnoty se aplikujı po zmacknutı tlacıtka Set

the parameters.

Panel Statistic and Representation

Tento panel je urcen pro vyhodnoceni aktualnıho nastavenı prednostı v krizovatkach

cele silnicnı sıte a grafickou reprezentaci tohoto nastavenı.

36

Tlacıtko Evaluate actual setting slouzı k ohodnocenı aktualnıho nastavenı

prednostı v krizovatkach. Pri zmacknutı tohoto tlacıtka se modul diferencialnı evo-

luce (DifEvo) prepne do specialnıho modu EvalOnly. V tomto modu je algoritmus

pro vytvarenı jedincu pozastaven. Pri aktivaci je simulace spustena 10x. Pri do-

koncenı kazde simulace jsou zaznamenana stejna data jako pri vyhodnocovanı je-

dince, viz kapitola 5.3.2. Delka jedne simulace je urcena hodnotou Fitness step

length. Takto zıskana data jsou dale zprumerovana a spolecne s daty z jednot-

livych merenı ulozena do souboru Ohodnoceni.txt. Tento soubor je vytvoren na

konci desateho kroku a je ulozen do adresare s nainstalovanym programem. Ve vy-

tvorenem souboru je pouzit oddelovac ; pro import do tabulkoveho procesoru.

Tlacıtko Display actual road priority slouzı ke graficke interpretaci aktual-

ne nastavene silnicnı sıte z hlediska prednostı v krizovatkach. Po zmacknutı tohoto

tlacıtka se aktualne vykreslena mapa prekreslı spojnicemi mezi krizovatkami spo-

jenymi hlavnımi silnicemi, viz obrazek 6.2.

Obr. 6.2: Zobrazenı aktualnıho nastavenı prednosti v krizovatkach

Pokud krizovatkou neprochazı spojnice, jedna se o krizovatku bez prednosti. Pro

odstranenı spojnic stacı kliknout levym tlacıtkem mysi kamkoliv do mapy.

Panel Diff. evolution

Prvky v tomto panelu slouzı ke spustenı a nastavenı parametru diferencialnı evoluce.

Fitness step length urcuje dobu, po kterou budou generatory vozidel aktivnı.

Po uplynutı teto doby se generatory vozidel (Cargen) deaktivujı a prestanou gene-

rovat nove vozidla. Simulacnı krok je ukoncen, az vsechny vygenerovane vozidla

vytvorı zpravu o ukoncenı sve trasy.

Fitness parameter je nabıdka pro vyber optimalizacnıho parametru, ktery bude

evoluce minimalizovat a v prıpade vyberu polozky Served Cars maximalizovat.

Tlacıtko Start Differencial Evolution vymaze veskere vozidla ze simulace,

nastavı pocatecnı hodnoty pro diferencialnı evoluci a spustı proces evoluce. Toto

tlacıtko take automaticky nastavı rychlost simulace na maximalnı hodnotu. Pro

37

zvysenı rychlosti ohodnocovanı jedincu je mozne v nastavenı simulatoru pod polozkou

Simulation pri zaskrtnutı Advanced options zmenit hodnotu Time step. Prılis

vysoka hodnota tohoto parametru muze zpusobit nespravne chovanı vozidel a tım

znehodnotit vysledky simulace. Po ukoncenı evoluce je simulace resetovana do puvodnıho

stavu a prednosti krizovatek jsou nastaveny dle nejlepsıho jedince z populace.

Panel Last step statistics

Je urcen pro zobrazovanı informacı o probıhajıcı diferencialnı evoluci. Jsou zde zob-

razeny hodnoty vsech parametru poslednıho zpracovaneho jedince a cıslo aktualne

zpracovavane generace jedincu. Vsechny tyto hodnoty jsou po spustenı nove evoluce

vynulovany.

6.2 Testovacı metodika

6.2.1 Prıprava simulace na testovanı

Testy probıhajı na mapach importovanych pomocı modulu Netloader, viz kapi-

tola 4. Takto importovane mapy obsahujı strukturu krizovatek a jejich spoju po-

mocı silnic. Krizovatky po importu neobsahujı zadny typ prednosti, tudız jsou ze

zakladu nastaveny jako krizovatky bez urcene prednosti (prednost zprava). Typ

prednosti takto importovanych krizovatek je mozno zmenit pomocı tlacıtka Set

the parameters, viz kapitola 6.1. Dale je nutno vytvorit generatory (CarGen) a

zakoncenı silnic (RoadEnd). Tyto objekty lze do simulace pridat jednotlive z leveho

panelu nebo jako jeden objekt obsahujıcı jak CarGen tak i RoadEnd, pomocı zalozky

"RoadEnd" crossing. Takto vytvorenym generatorum jsou nasledne nastaveny hod-

noty RoutingAttractionCoef a Interval. Pro nastavenı generatoru je take mozne

pouzıt generovanı ze souboru a to v zalozce Flow Generator. Hodnota promenne

RoutingAttractionCoef urcuje mıru pravdepodobnosti, ze vozidlo vygenerovane

v jinem generatoru bude mıt cılovou destinaci prave tento cıl(RoadEnd). Hodnota

promenne Interval urcuje casovy odstup v milisekundach od vygenerovanı dalsıho

vozidla.

Pro spravnou funkci diferencialnı evoluce je dale nutne vypnout komunikaci vo-

zidel mezi sebou, stochastickou navigaci a zaznamenavanı dat ze simulace.

6.2.2 Datove soubory

Pro vytvarenı zaznamu o probehle simulaci byly vytvoreny metody SaveValues a

SaveValuesEval. Tyto metody ulozı data o probehle simulaci (diferencialnı evoluci)

do textoveho souboru ulozeneho v adresari programu.

38

V souboru Vysledky.txt jsou obsazena data o probehle diferencialnı evoluci,

tento soubor je automaticky vytvoren pri ukoncenı algoritmu evoluce. V tomto sou-

boru jsou obsazena data o vyvoji sledovanych parametru od kazdeho jedince po

ukoncenı selekce. Pocet radku tabulky urcuje pocet generacı, pocet sloupcu pocet

jedincu v generaci. Celkem jsou vygenerovany 4 tabulky pro kazdy z moznych pa-

rametru optimalizace (hodnoticı kriteria v kapitole 5.3.2). Jednotlive hodnoty jsou

oddeleny mezerou pro import do tabulkoveho procesoru.

Soubor Ohodnocenı.txt je vytvoren po ukoncenı algoritmu na ohodnocenı aktu-

alnıho nastavenı prednostı v krizovatkach spusteneho tlacıtkem Evaluate actual

setting. V tomto souboru jsou obsazena data z deseti po sobe jdoucıch simulacı

pri zachovanı stejneho nastavenı vsech parametru simulace. Data v tomto souboru

slouzı k porızenı statisticky presnejsıch vysledku aktualnıho nastavenı prednostı na

krizovatkach. Pocet sloupcu odpovıda poctu sledovanych parametru a pocet radku

odpovıda poctu merenı. Pocet merenı je v zakladnım nastavenı nastaven na 10.

6.2.3 Zpusoby porizovanı dat

Ve vysledcıch testu jsou porovnavany tri zpusoby nastavenı prednosti na krizova-

tkach.

Prvnı hodnota, ktera se bere jako vychozı hodnota, je porızena z importovane

mapy bez specifikovanı prednosti na krizovatkach. Takto importovana mapa je pouze

doplnena o generatory aut a jejich nastavenı, viz kapitola 6.2.1. Takto nastavena

mapa je ohodnocena pomocı tlacıtka Evaluate actual setting, viz kapitola 6.1.

Druha hodnota prednosti je porızena na identicke mape jako v minulem prıpade

pouze se zmenou prednostı na krizovatkach. Krizovatky jsou nynı nastaveny uziva-

telem podle znalosti dopravnı situace a rozvrzenı prednostı na krizovatkach v dane

mape. Problematiku nastavenı techto parametru popisuje kapitola 6.2.4. Nastavena

mapa je opet ohodnocena pomocı tlacıtka Evaluate actual setting.

Tretı nastavenı prednosti na krizovatkach je vysledkem diferencialnı evoluce.

Evoluce je pouzita na importovanou mapu s doplnenymi a nastavenymi generatory

aut. Vysledek evoluce je ohodnocen stejnym zpusobem jako v minulych prıpadech

pomocı tlacıtka Evaluate actual setting.

Vysledna struktura prednostı v krizovatkach je zachycena pomocı tlacıtka Di-

splay actual road priority, viz kapitola 6.1 a obrazek 6.2.

Data jsou nasledne zpracovana pomocı tabulkoveho procesoru. Z jednohlivych

simulacı jsou nasledne tato data prepocıtana na procentualnı pomer proti prvnı

hodnote (bez specifikovanı prednostı).

39

6.2.4 Problematika nastavenı parametru

Pri prıprave simulace k testovanı vyvstava problem s nastavenım jednotlivych para-

metru simulace. Cely prubeh simulace je znacne zavisly na vstupnıch datech, ktera

do programu vklada uzivatel, jako jsou delka simulacnıho kroku nebo atraktivita

krizovatek pro vozidla. Pro spravne nastavenı jednotlivych generatoru vozidel je

nutne disponovat znalostı o dopravnı situaci daneho mısta. Pri pouzitı generovanı

vozidel ze souboru (zalozka Flow Generator) je take nutna znalost kompletnı trasy

jednotlivych vozidel, tzn. kudy vozidlo vstoupilo do mapy a kde ji opustilo. Pri

pouzitı nahodneho generovanı vozidel se do simulace vnası jista nahodilost, ktera

je castecne eliminovana prumerovanım vysledku z vıce prubehu simulacı (viz. kapi-

tola 6.1). U nahodneho generovanı vozidel je nutnost nastavit atribut Attraction

pro jednotliva zakoncenı (RoadEnd). Tımto parametrem je mozne ovlivnit mnozstvı

vozidel jedoucıch do daneho RoadEnd. Toto nastavenı je vsak nepodmınene, tzn.

ze vygenerovane auto nema predem dany cıl, pouze pravdepodobnost, ze si urcity

cıl vybere. Ve skutecnem svete je vsak vyber cılove destinace castecne podmıneny

mıstem odkud vozidlo vyjelo.

6.2.5 Sledovane parametry

Doba stanı urcuje prumernou dobu stanı vozidel. Vozidlo je povazovano za stojıcı

pokud se pohybuje nizsı rychlostı nez 1,3𝑚 · 𝑠−1.

Doba pomale jızdy urcuje prumernou dobu, po kterou vozidlo jelo rychleji nez

1,3𝑚 · 𝑠−1, ale pomaleji nez 80 % maximalnı rychlosti vozidla a zaroven po-

maleji nez 80 % maximalnı rychlosti silnice.

Pocet vozidel urcuje pocet vozidel ktere projely simulacı za poslednı minutu, popsano

v kapitole 5.3.2.

Doba jızdy vozidel urcuje prumernou dobu, kterou vozidla stravı v simulaci nez

dosahnou sveho cıloveho bodu.

6.3 Vysledky testu

Za ucelem testovanı navrzeneho algoritmu byly vybrany a upraveny 3 importovane

mapy (Jablunkov, Hlinsko a Petrovice)

40

(a) Graf srovnanı zpusobu urcovanı prednosti

(b) Graficke znazornenı manualnıho urcenı prednosti

(c) Graficke znazornenı urcene prednosti pomoci diferencialnı

evoluce

Obr. 6.3: Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace na dobu

stanı

41

(a) Graf srovnanı zpusobu urcovanı prednosti

(b) Graficke znazornenı manualnıho urcenı prednosti

(c) Graficke znazornenı urcene prednosti pomoci diferencialnı

evoluce

Obr. 6.4: Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace na dobu

pomale jızdy

42

(a) Graf srovnanı zpusobu urcovanı prednosti

(b) Graficke znazornenı manualnıho urcenı prednosti

(c) Graficke znazornenı urcene prednosti pomoci dife-

rencialnı evoluce

Obr. 6.5: Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace na pocet

projetych vozidel

43

(a) Graf srovnanı zpusobu urcovanı prednosti

(b) Graficke znazornenı manualnıho urcenı prednosti

(c) Graficke znazornenı urcene prednosti pomoci diferencialnı

evoluce

Obr. 6.6: Mesto Hlinsko, doba simulacnıho kroku 4 minuty, optimalizace na dobu

stanı

44

(a) Graf srovnanı zpusobu urcovanı prednosti

(b) Graficke znazornenı manualnıho urcenı prednosti

(c) Graficke znazornenı urcene prednosti pomoci diferencialnı

evoluce

Obr. 6.7: Mesto Petrovice u Karvine, doba simulacnıho kroku 4 minuty, optimalizace

na dobu stanı

45

(a) Vyvoj nejlepsıho jedince v prubehu diferencialnı evoluce

(b) Prumerny vyvoj doby pomale jızdy a doby stani cele generace

(c) Prumerny vyvoj doby prujezdu a poctu vozidel cele generace

Obr. 6.8: Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace na dobu

stanı

46

(a) Vyvoj nejlepsıho jedince v prubehu diferencialnı evoluce

(b) Prumerny vyvoj doby pomale jızdy a doby stani cele generace

(c) Prumerny vyvoj doby prujezdu a poctu vozidel cele generace

Obr. 6.9: Mesto Jablunkov, doba simulacnıho kroku 4 minuty, optimalizace pocet

vozidel

47

(a) Vyvoj nejlepsıho jedince v prubehu diferencialnı evoluce

(b) Prumerny vyvoj doby pomale jızdy a doby stani cele generace

(c) Prumerny vyvoj doby prujezdu a poctu vozidel cele generace

Obr. 6.10: Mesto Hlinsko, doba simulacnıho kroku 4 minuty, optimalizace na dobu

stanı

48

(a) Vyvoj nejlepsıho jedince v prubehu diferencialnı evoluce

(b) Prumerny vyvoj doby pomale jızdy a doby stani cele generace

(c) Prumerny vyvoj doby prujezdu a poctu vozidel cele generace

Obr. 6.11: Mesto Petrovice, doba simulacnıho kroku 4 minuty, optimalizace na dobu

stanı

49

7 ZAVER

Behem resenı diplomove prace byly navrzeny a vytvoreny metody pro importovanı

externıch mapovych podkladu do simulatoru dopravnıho toku TRASI. Byly navrzeny

metody pro nacıtanı dat z xml souboru, jejich filtrovanı a prevod do vhodneho

formatu. Dale byly implementovany metody pro vypocet tvaru, pozice a struktury

silnic a metody pro hledanı a vypocet tvaru a vnitrnı struktury krizovatek. Tyto algo-

ritmy jsou implementovany v modulu Netloader a Crossing.cs, ktery byl vyrazne

upraven pro potreby importovanı map. V Praci je dale navrhnut algoritmus pro vy-

tvorenı struktury hlavnıch a vedlejsıch silnic importovane mapy pomocı diferencialnı

evoluce. Diferencialnı evoluce optimalizuje strukturu prednostı na dane mape dle

jednoho ze ctyr optimalizacnıch parametru. Jako optimalizacnı parametr lze pouzıt

optimalizaci na co nejnizsı dobu pomale jızdy, dobu stanı, dobu prujezdu mapou a

na co nejvyssı pocet vozidel, ktere projely simulacı poslednı minutu generovanı vo-

zidel. Dale byla navrzena a implementovana metodika pro testovanı, vyhodnocenı a

grafickou reprezentaci navrzene struktury hlavnıch silnic. Pro ucely testovani byla

do simulatoru pridana moznost pro dodatecnou zmenu prednostı na jiz vytvorene

krizovatce.

Z vysledku testu vyplyva, ze topologie krizovatek navrzena pomocı diferencialnı

evoluce dosahuje lepsıch vysledku ve vsech sledovanych parametrech na mapach

Jablunkov, Petrovice. Na testovacı mape Hlinsko jsou vysledky zıskane pomocı di-

ferencialnı evoluce lepsı v parametrech doby stanı, prujezdu mapou a poctu vozidel,

parametr doby pomale jızdy byl v tomto prıpade horsı o 22% vuci manualne na-

stavene topologii. Z testu vyplyva, ze pri pouzitı diferencialnı evoluce jsou hodnoty

parametru, dle ktereho byla mapa optimalizovana, prumerne o 30% lepsı nez hod-

noty pri manualne nastavene topologii krizovatky. Pri porovnanı vysledku evoluce s

vysledky porızenymi pri zakladnım nastavenı prednostı, cili zakladnı stav po importu

s krizovatkami bez vyznacene prednosti, jsou hodnoty parametru, dle ktereho byla

evoluce optimalizovana, prumerne o 55% lepsı. Bylo pozorovano vyrazne zlepsenı i

parametru na jez nebyla diferencialnı evoluce optimalizovana.

Pri nastavovanı parametru simulace vznikl problem s nastavenım generatoru a v

prıpade manualnıho nastavenı prednostı s nastavenım jednotlivych krizovatek podle

realne dopravnı topologie. Jelikoz presna data nebyly k dispozici, byly nastaveny

pouze hlavnı dopravnı tahy na dane mape.

Bylo prokazano, ze pri pouzitı diferencialnı evoluce na nastavenı prednostı bylo

dosazeno zlepsenı vsech sledovanych parametru vuci zakladnımu nastavenı bez pred-

nostı. Pri srovnanı vysledku diferencialnı evoluce s vysledky manualne nastavenych

prednostı, dosahuje diferencialnı evoluce lepsıch vysledku v parametru, dle ktereho

byla optimalizovana.

50

LITERATURA

[1] ERBEN, V Navrh a testovanı stochasticke navigace v TRASI. Brno, 2013. Di-

plomova prace. Vysoke ucenı technicke v Brne, Fakulta elektrotechniky a ko-

munikacnıch technologiı, Ustav automatizace a merıcı techniky. Vedoucı prace

Ing. Petr Honzık Ph.D.

[2] Kucera, L: Vyvoj dopravnıho simulatoru - objekt krizovatka Brno, 2010. Ba-

kalarska prace. Vysoke ucenı technicke v Brne, Fakulta elektrotechniky a ko-

munikacnıch technologiı, Ustav automatizace a merıcı techniky. Vedoucı prace

Ing. Petr Honzık Ph.D.

[3] VENESS, Chris. Calculate distance, bearing and more between Latitu-

de/Longitude points. [online]. [cit. 2013-05-13]. Dostupne z: <http://www.

movable-type.co.uk/scripts/latlong.html>

[4] Wikipedia: the free encyclopedia [online]. San Francisco (CA): Wikime-

dia Foundation, 2001-, 2013 [cit. 2013-05-12]. Dostupne z: <http://wiki.

openstreetmap.org/wiki/Main_Page>

[5] WEISSER, R Evolucnı optimalizace rıdicıch algoritmu. Brno, 2010. Dostupne

z: <http://www.vutbr.cz/studium/zaverecne-prace?zp_id=32672>. Di-

zertacnı prace. Vysoke ucenı v Brne, Fakulta strojnıho inzenyrstvı. Vedoucı

prace Ing. Pavel Osmera, CSc.

[6] ZELINKA, I. Geneticke algoritmy a diferencialnı evoluce [online]. [cit. 2013-05-

12]. Dostupne z: <http://www.jirirohan.cz/_seminar/s16.htm>

51

SEZNAM SYMBOLU, VELICIN A ZKRATEK

OSM Open Street Maps

TRASI Traffic simulator

GACR Grantova agentura Ceske republiky

52