vysokÉ uÈenÍ technickÉ v brnÌ - core.ac.uk · petru honz kovi, ph.d. za p r atelsky p r stup,...
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.2: Graficka reprezentace nastavenych parametru
Obr. 5.3: Graficke znazornenı nesymetrickeho rozlozenı
34
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