2 | | �olem t� pr� bylo navrhnout algoritmus vyjedn�n�ezi jednotliv�i�ovatkami tak, aby koordinovanou zm�u sv�fset�vo�zelenou vlnu a~tedy aby k�atkou projelo co nejv� vozidel bez zbyte�ho zastavov�. V t� kapitole bude takov�goritmus p�aven a n�edn�ude pops� jeho implementace do ji� funguj�ho simula�ho prost� |
3 | | |
4 | | Zelen�lna spo�� synchronizovan�nastaven�ign�� pl� tak, aby vozidlo jedouc��ou cestovn�ychlost���u k�atkami ���ln�gnaliza�mi za��astihlo na v�ech semaforech sign�volno. V p��evn�gn�� pl� by tedy mohlo jen sta� vypo�at hodnoty offset�u��ch tento stav pro vybran� nebo sm� j�y. Pokud v�ak se v�ak v oblasti k hlavn� proudu p�uje velk�no�stv�ozidel z vedlej�� ulic, za�u tyto automobily tvo�a optimalizovan�tahu fronty. Je tedy nutn��sobit sign��l� tak, aby tato fronta opustila k�atku je�t���dem vozidel vyu��j�ch zelenou vlnu. |
| 2 | �olem t� pr� bylo navrhnout algoritmus vyjedn�n�ezi jednotliv�i�ovatkami tak, aby koordinovanou zm�u sv�fset�vo�zelenou vlnu a~tedy aby k�atkou projelo co nejv� vozidel bez zbyte�ho zastavov�. V~t� kapitole bude takov�goritmus p�aven a~n�edn�ude pops� jeho implementace do ji� funguj�ho simula�ho prost� |
| 3 | |
| 4 | Zelen�lna spo��~synchronizovan�nastaven�ign�� pl� tak, aby vozidlo jedouc��ou cestovn�ychlost���u k�atkami ���ln�gnaliza�mi za��astihlo na v�ech semaforech sign�volno. V~p��evn�gn�� pl� by tedy mohlo jen sta� vypo�at hodnoty offset�u��ch tento stav pro vybran� nebo sm� j�y. Pokud v�ak se v�ak v~oblasti k~hlavn� proudu p�uje velk�no�stv�ozidel z~vedlej�� ulic, za�u tyto automobily tvo�a optimalizovan�tahu fronty. Je tedy nutn��sobit sign��l� tak, aby tato fronta opustila k�atku je�t���dem vozidel vyu��j�ch zelenou vlnu. |
8 | | Pro popis algoritmu, kter� toto p�soben�na��nejprve zavedeme ozna���er�li�. Jak ji� bylo zm�no, d�a cyklu se zna�$T_\mathrm{c}$. Pr�ou rychlost vozidel (na voln�ilnici) budeme zna� $v_\mathrm{P}$. Za�ek zelen� $i$-t�ign��kupin�e $t_\mathrm{zz}^{(i)}$, d�a t� zelen�t_\mathrm{dz}^{(i)}$. Index $i$ se bude vynech�t, je-li sign��kupina jednozna� ur�� kontextu. Pomoc�d_{i,j}$ ozna�e vzd�nost mezi k�atkami $i$ a $j$ v metrech, op�s mo�nost�ndexy vynechat. Kone� symbolem $\rho_i$ zastupuje hustotu provozu (po� vozidel za sekundu) b�m $i$-t� intervalu. |
9 | | |
10 | | D� zavad� pojem \emph{d�a virtu��ronty}, ozn. $Q_\mathrm{V}^{(i)}$. Ta m�ab�ladn�z�rn�dnot. Pokud je jej�elikost kladn�zna�(p�kl�nou) d�u fronty v �ov�okam�iku ur��indexem $i$. V p���e je z�rn�p�avuje, op�p�kl�n�et vozidel, kter� m��vo�fronty projedou mezi �y $(i-1)$ a $i$ bez zastaven� |
| 8 | Pro popis algoritmu, kter�~toto p�soben�na��nejprve zavedeme ozna���er�li�. Jak ji� bylo zm�no, d�a cyklu se zna�$T_\mathrm{c}$. Pr�ou rychlost vozidel (na voln�ilnici) budeme zna� $v_\mathrm{P}$. Za�ek zelen�~$i$-t�ign��kupin�e $t_\mathrm{zz}^{(i)}$, d�a t� zelen�t_\mathrm{dz}^{(i)}$. Index $i$ se bude vynech�t, je-li sign��kupina jednozna� ur��~kontextu. Pomoc�d_{i,j}$ ozna�e vzd�nost mezi k�atkami $i$ a~$j$ v~metrech, op�s~mo�nost�ndexy vynechat. Kone� symbolem $\rho_i$ zastupuje hustotu provozu (po� vozidel za sekundu) b�m $i$-t� intervalu. |
| 9 | |
| 10 | D� zavad� pojem \emph{d�a virtu��ronty}, ozn. $Q_\mathrm{V}^{(i)}$. Ta m�ab�ladn�z�rn�dnot. Pokud je jej�elikost kladn�zna�(p�kl�nou) d�u fronty v~�ov�okam�iku ur��indexem $i$. V~p���e je z�rn�p�avuje, op�p�kl�n�et vozidel, kter�~m��vo�fronty projedou mezi �y $(i-1)$ a~$i$ bez zastaven� |
15 | | Navr�en�trategie ��e skl� z~agent�e�ou p�eni k~jednotliv��ovatk� Ka�d�t m�vl�t offset sign�� pl� u~sv� �e k�atky, od n�� naopak z�� � z~detektor�isuj� aktu��tav provozu. Soused� agenti nav�mezi sebou mohou komunikovat. Toho vyu��j����k~tomu, aby zjistili nastaven�ffsetu na vedlej�� k�atk�, respektive aby v�li kdy mohou od soused�k�t p�d vozidel. Ze z�an�formac�ak agent usoud�jestli by zm� sousedova offsetu nemohla p�t zlep�en�ituace a~pokud ano, pokus�e tuto zm� vyjednat. |
16 | | |
17 | | Jedn�z~nosn�vk�rhu je funkce, kter�hodnot�onkr��astaven�ffsetu a~umo�n�ak porovnat r�jeho hodnoty a~vybrat tu mo�n�ejlep��Za tuto m� kvality byl zvolen odhad po� aut, kter�rojedou k�atkou bez zastaven� |
| 15 | Navr�en�trategie ��e skl� z~agent�e�ou p�eni k~jednotliv��ovatk� Ka�d�t m�vl�t offset sign�� pl� u~sv� �e k�atky, od n�� naopak z�� � z~detektor�isuj� aktu��tav provozu. Soused� agenti nav�mezi sebou mohou komunikovat. Toho vyu��j����k~tomu, aby zjistili nastaven�ffsetu na vedlej�� k�atk�, respektive aby v�li kdy mohou od soused�k�t p�d vozidel. Z~obdr�en�formac�ak agent usoud�jestli by zm� sousedova offsetu nemohla p�t zlep�en�ituace a~pokud ano, pokus�e tuto zm� vyjednat. |
| 16 | |
| 17 | Jedn�z~nosn�vk�rhu je funkce, kter�hodnot�onkr��astaven�ffsetu a~umo�n�ak porovnat r�jeho hodnoty a~vybrat tu mo�n�ejlep��Za tuto m� kvality byl zvolen odhad po� automobil�er�rojedou k�atkou bez zastaven� |
38 | | Hodnocen�e pak po�� po jednotliv�zdn� pruz�. Pro ka�d�utn�rov� periodick�rodlou�en�asu sv�n�elen�dpov�j� sign��kupiny tak, aby v ka�d�okam�iku intervalu od �u $0$ po � posledn� p�v�n� p�du vozidel bylo jasn�jak� bude v tomto j�n�pruhu signalizov� Tento interval je d� zna� $T$. Princip periodcik� prodlou�en�e p�aven na obr�u \ref{fig:expand}. |
39 | | |
40 | | Interval $T$ pot�ozd�me na posloupnost interval�eft(T_i\right)^{k}_{i=1}$. $T_i$ jsou intervaly typu $\left<a_i;b_i\right>$, kde $b_i=a_{i+1}$ $\forall i \in \left\{ 1, \ldots, k-1\right\}$, $a_1$ a~$b_k$ jsou krajn�ody intervalu $T$ a~$a_i$ jsou chronologicky ���echny \emph{v��ody}, T� se rozum�ody, ve kter� m� signalizovan� nebo ve kter���i kon�p�d vozidel od souseda. Ka�d�rval $T_i$ lze t�p�m rozd�t na ��uhy, podle toho jestli v n�p�d� nebo nep�d� vozidla a jestli sv� nebo nesv� zelen��kneme, �e $T_i$ je |
41 | | \begin{enumerate}[(i)] |
42 | | \item typu 1 $\iff$ v jeho pr� p�d� auta do fronty a sv� zelen� \item typu 2 $\iff$ v jeho pr� p�d� auta do fronty a nesv� zelen� \item typu 3 $\iff$ v jeho pr� nep�d� auta do fronty a sv� zelen� \item typu 4 $\iff$ v jeho pr� nep�d� auta do fronty a nesv� zelen�\end{enumerate} |
| 38 | Hodnocen�e pak po�� po jednotliv�zdn� pruz�. Pro ka�d�utn�rov� periodick�rodlou�en�asu sv�n�elen�dpov�j� sign��kupiny tak, aby v~ka�d�okam�iku intervalu od �u $0$ po � posledn� p�v�n� p�du vozidel bylo jasn�jak� bude v~tomto j�n�pruhu signalizov� Tento interval je d� zna� $T$. Princip periodick� prodlou�en�e p�aven na obr�u \ref{fig:expand}. |
| 39 | |
| 40 | Interval $T$ pot�ozd�me na posloupnost interval�eft(T_i\right)^{k}_{i=1}$. $T_i$ jsou intervaly typu $\left<a_i;b_i\right>$, kde $b_i=a_{i+1}$ $\forall i \in \left\{ 1, \ldots, k-1\right\}$, $a_1$ a~$b_k$ jsou krajn�ody intervalu $T$ a~$a_i$ jsou chronologicky ���echny \emph{v��ody}, T� se rozum�ody, ve kter� m� signalizovan� nebo ve kter���i kon�p�d vozidel od souseda. Ka�d�rval $T_i$ lze t�p�m rozd�t na ��uhy, podle toho jestli v~n�p�d� nebo nep�d� vozidla a~jestli sv� nebo nesv� zelen��kneme, �e $T_i$ je |
| 41 | \begin{itemize}%[(i)] |
| 42 | \item typu 1 $\iff$ v~jeho pr� p�d� auta do fronty a~sv� zelen� \item typu 2 $\iff$ v~jeho pr� p�d� auta do fronty a~nesv� zelen� \item typu 3 $\iff$ v~jeho pr� nep�d� auta do fronty a~sv� zelen� \item typu 4 $\iff$ v~jeho pr� nep�d� auta do fronty a~nesv� zelen�\end{itemize} |
71 | | Tato podm�a � �e pokud z fronty pouze odj�� vozidla, nesm�e st� aby voln�apacita po vypr�n� fronty byla zapo�� do hodnocen�V tuto chv� toti� nep�d� ���ozidla, kter�y k�atkou projela bez zastavov�. |
72 | | |
73 | | Pokud vyjde v n�k�okam�iku $Q_\mathrm{V}^{(i)}$ z�rn�p�avuje (odhadovan�et aut, kter�ohou v tomto intervalu k�atkou projet bez zastaven�~tato hodnota se tedy ode� od hodnocen�an��atky (a~t�se hodnocen�v� |
74 | | |
75 | | Vyvst� ot�a, jak zjistit aktu���y front na jednotliv�zdn� pruz� jen pomoc�daj�etektor�er�sou k~dispozici. Ukazuje se, �e toto nen�rivi��robl�a~jeho ���uje r�c t� pr�. Z~toho d� nejsou v~programu d�y front odhadov� tak, jak by to bylo nutn�~re��ituaci, ale pou��j�e hodnoty, kter�ze z�at ze simul�ru Aimsun pomoc�GS API. Podrobn��nformace o~modelov� d�y fronty p�avuje nap�d \cite{pecherkova}. VGS API fronty po���zp�m, �e projde cel�lu�n�n�ruh a v n�do fronty zapo��a vozidla, kter�edou ni���e� stanovenou hrani� rychlost� |
| 71 | Tato podm�a � �e pokud z~fronty pouze odj�� vozidla, nesm�e st� aby voln�apacita po vypr�n� fronty byla zapo�� do hodnocen�V~tuto chv� toti� nep�d� ���ozidla, kter�y k�atkou projela bez zastavov�. |
| 72 | |
| 73 | Pokud vyjde v~n�k�okam�iku $Q_\mathrm{V}^{(i)}$ z�rn�p�avuje (odhadovan�et aut, kter�ohou v~tomto intervalu k�atkou projet bez zastaven�~tato hodnota se tedy ode� od hodnocen�an��atky (a~t�se hodnocen�v� |
| 74 | |
| 75 | Vyvst� ot�a, jak zjistit aktu���y front na jednotliv�zdn� pruz� jen pomoc�daj�etektor�er�sou k~dispozici. Ukazuje se, �e toto nen�rivi��robl�a~jeho ���uje r�c t� pr�. Z~toho d� nejsou v~programu d�y front odhadov� tak, jak by to bylo nutn�~re��ituaci, ale pou��j�e hodnoty, kter�ze z�at ze simul�ru Aimsun pomoc�GS API. Podrobn��nformace o~modelov� d�y fronty p�avuje nap�d \cite{pecherkova}. VGS API fronty po���zp�m, �e projde cel�lu�n�n�ruh a~v~n�do fronty zapo��a vozidla, kter�edou ni���e� stanovenou hrani� rychlost� |
82 | | Kdy� aktivn�genti naleznou sv�ejlep��ffsety, roze�le se v�em �n�m zpr� o~nalezen�tabiln� stavu, kter�bsahuje nov�odnoty o��n��zd�idel. Nyn�ktivn�genti vyzkou��jestli by k~dal�� zlep�en�evedla zm� offsetu u~n�er� z~jejich soused�dobn�sobem jako p�ed� vlastn� nejlep�� offsetu zkus�dhadnout zm� \texttt{ratingu} p�sunu sousedova offsetu o~$\pm4$ a nejlep��e t��nost�e za�le jako ��st o posun offsetu sousedovi spolu se zm�u \texttt{ratingu}, kterou by p�la. |
83 | | |
84 | | Ka�d�vn�gent pot�esb� v�echny n�hy a~otestuje, kter�ch m�ejv��ou� zm� ratingu u~n�samotn� a~zm� u~navrhovatele a~ten potom p� za vlastn�Pokud by v�echny n�hy p�ly z�rnou zm�, jsou zam�uty a~���m� nenast�. V~ka�d�p��sou pak rozesl� informace o~nov�stabiln�stavu a~s~nimi op�o��n��dy. |
85 | | |
86 | | Pot�e je�t�as�n��st�pakuje, jen s posunem o $\pm2$ a $\pm1$ sekundu. |
| 82 | Kdy� aktivn�genti naleznou sv�ejlep��ffsety, roze�le se v�em �n�m zpr� o~nalezen�tabiln� stavu, kter�bsahuje nov�odnoty o��n��zd�idel. Nyn�ktivn�genti vyzkou��jestli by k~dal�� zlep�en�evedla zm� offsetu u~n�er� z~jejich soused�dobn�sobem jako p�ed� vlastn� nejlep�� offsetu zkus�dhadnout zm� \texttt{ratingu} p�sunu sousedova offsetu o~$\pm4$ a~nejlep��e t��nost�e za�le jako ��st o~posun offsetu sousedovi spolu se zm�u \texttt{ratingu}, kterou by p�la. |
| 83 | |
| 84 | Ka�d�vn�gent pot�esb� v�echny n�hy a~otestuje, kter�ch m�ejv��ou� zm� ratingu u~n�samotn� a~zm� u~navrhovatele a~ten potom p� za vlastn�Pokud by v�echny n�hy znamenaly z�rn�et, jsou zam�uty a~offset z��a p��odnot�V~ka�d�p��sou pak rozesl� informace o~nov�stabiln�stavu a~s~nimi op�o��n��dy. |
| 85 | |
| 86 | Pot�e je�t�as�n��st�pakuje, jen s~posunem o~$\pm2$ a~$\pm1$ sekundu. |
151 | | Podporovan��soubor�dstavuje hierarchickou strukturu. \emph{Konfigurace} se skl� ze skupiny \emph{nastaven� kter��uje \emph{jm�m} \emph{hodnoty}. Hodnotou m��ph{skal�, \emph{pole}, \emph{skupina} nebo \emph{seznam}. Skupiny nastaven�e mo�n�o sebe d� vno�, �� knihovna nab� velmi flexibiln� p� st� p�dn�ob pro ukl�n�onfigura�ch soubor� |
152 | | \section{VGS API} |
153 | | Velmi d�t�lem p�mulaci re��blasti v~mikrosimul�ru Aimsun je vlo�en�e��tupn� intenzit dopravy do zkouman� modelu. B��tupem je ru� s�� vozidel v~dan�blasti, zpravidla v~hodinov�rastru. Takto z�an�ata je mo�n�lo�it do simul�ru Aimsun jako hodinov���e, ov�em toto je t�prov� tak�u�. |
154 | | |
155 | | %Jedn�z nejd�t�� � p�mulaci re�� zat�n�opravn�� v mikrosimul�ru Aimsun je zat�n�el�imulovan�opravn�� re��tupn� intenzitami dopravy, odpov�j�mi m�n�v simulovan��. P��n�stupech se intenzity dopravy ur��omoc�u�ho s�� dopravy, zpravidla v hodinov�rastru. Data, z�an��o postupem, je mo�no potom p�vlo�it op�ru� do Aimsunu jako hodinov�opravn���e. |
156 | | |
157 | | P�j��etodou je v� intenzity provozu z~dat z�an�� z~dopravn� detektor�talovan�p�tn�blasti. To v�ak znamen�u� zad� stovek � do simul�ru. Pr� z~tohoto d� vzniklo VGS API. To se star�~nastartov� Aimsunu a~vpou�t� vozidel do oblasti. Vjezdy vozidel se p�m �� v~extern�souboru, obsahuj�m intenzity na jednotliv�menech. U�ivatel pak jen zad�m� a~um�� tohoto souboru a~v�e ostatn�e d� automaticky. Nav�lze volit mezi r�i rozd�n� pravd�dobnosti vjezd�i�� nej�t� pou��n�e rovnom��i Poissonovo rozd�n� |
158 | | |
159 | | %Pokud se sna�� o p�j��imulaci, m� pro zati�en�opravn�� pou��data z�an��z dopravn� detektor�talovan�simulovan�blasti. V takov�p��y bylo pot�ru� vkl�t n�lik set hodnot vstupn� intenzit pro ka�d�lovan� VGS API vzniklo ve snaze tento handicap odstranit -- na za�ku simulace rozhran�ouze u�ivatewl p�informace o tom, kde je um��soubor s intenzitami vjezd�jednotliv�men a o jak�jezdov�amena jde, VGS API se automaticky postar� nastartov� Aimsunu a automaticky vpou�t�ozidla do syst� podle �, obsa�en�souboru s intenzitami vjezd�ivatel m�olit r�druhy rozd�n�ravd�dobnosti vjezd�j�t� se pou�� rovnom��ebo Poissonovo rozd�n� |
160 | | |
161 | | Vedle pr� se vstupn�aty pro simulaci se VGS API star�ak�~zpracov� dat v��. Aimsun sice zvl� export v��ulac�o textov�ubor�bsahuje i~n�roje pro jejich vizualizaci, neumo�� v�ak p�n�er��t�rocesy jako je nap�d porovn� v��dvou r�h sc��GS proto v~pr� cel� experimentu ukl� � o~sledovan�blasti, a~to jak pro jednotliv�ekce, tak pro cel�� Ve v�u u�ivatel z�� informace o~po� zastaven�ozidel, o~jeho zpo�d�, pr��ychlosti, dob��y, st�, o~doprav�toku a~hustot�opravy na jednotliv�gmentech �o~d�� front vozidel. �aje o~d�� front jsou specialitou VGS, Aimsun tento �pro jednotliv��n�ruhy p�neposkytuje a~VGS m�roto implementov�vlastn�lgoritmus pro jejich s��. |
162 | | |
163 | | %Druh�e�it��m VGS API je shroma��at data pot� pro vyhodnocen�xperimentu. Aimsun sice disponuje jednoduch�hran�pro vizualizaci dat a jejich export do textov�ubor�n�le mo�n�ap�d porovn�t jednotliv�c��mulac�VGS API proto periodicky ukl� v�echny kl�v�kazatele jak pro jednotliv�egmenty dopravn��, tak i pro cel�lovan�� U�ivatel m�o ukon��imulace k dispozici � o po� zastaven�ozidla, o jeho zpo�d�, pr��ychlosti, dob��y a dob�t�, o doprav�toku a hustot�opravy na jednotliv�gmentech �o d�� front vozidel. Vzhledem k tomu, �e Aimsun neposkytuje informace o d�e fronty vozidel pro ka�d��n�ruh zvl (k dispozici jsou pouze � o akumulovan��e fronty vyj�en�o�m vozuidel, kter�a segmentu dopravn�� v dan��ik stoj� m�GS API implementovan�tn�lgoritmus v� d�y fronty vozidel na ka�d�j�n�pruhu a poskytuje u�ivateli i takto z�an�nformace o d�e fronty. |
164 | | |
165 | | Implementac�GS API je DLL knihovna napsan�~jazyce C pro 32 a~64 bitov�yst� Windows XP a~v�av�je sou�t�GStoolbox, sada skript� zpracov� v�� dat v~programu Matlab. |
166 | | |
167 | | %Vlastn�GS API je implementov� v jazyce C jako DLL pro 32- a 64-bitov�yst� po�aje Windows XP, rozhran�e dopln� funkcemi pro obsluhu API a vyhodnocov� statistick�formac� prost�n�roje Matlab |
168 | | |
| 151 | Podporovan��soubor�dstavuje hierarchickou strukturu. \emph{Konfigurace} se skl� ze skupiny \emph{nastaven� kter��uje \emph{jm�m} \emph{hodnoty}. Hodnotou m��ph{skal�, \emph{pole}, \emph{skupina} nebo \emph{seznam}. Skupiny nastaven�ze do sebe d� vno�, �� knihovna nab� velmi flexibiln�~p� st� p�dn�ob pro ukl�n�onfigura�ch soubor� |
171 | | Fungov� simula�ho prost�tak, jak bylo navr�eno v~�IA, je zn�rn� na obr�u (\ref{fig:struktura}). Skl� se ze t�avn� blok�krosimul�ru Aimsun, emul�r�i�ELS3 a~z~tzv. Aimsun agenta. |
172 | | |
173 | | Aimsun agent p�avuje ��rvek cel� syst�. P�texttt{vgs\_api} spou�t�imsun a~stejn�sobem od Aimsunu pr����odnoty sledovan�pravn� veli�. D� prost�ctv�\texttt{eh\_api} z�� � z~���ovatek. Na z�ad��ech shrom��ch � pak sestavuje pokyny pro zm� v~sign�� pl�ch a~op�pomoc�texttt{e\_api} tyto pokyny zas� �� |
| 154 | Fungov� simula�ho prost�tak, jak bylo navr�eno v~�IA, je zn�rn� na obr�u (\ref{fig:struktura}). Skl� se ze t�avn� blok�krosimul�ru Aimsun, emul�r�i�ELS3 a~z~tzv. Aimsun agenta a ze t�I zprost�v�j�mi komunikaci mezi bloky. |
| 155 | |
| 156 | Aimsun agent p�avuje ��rvek cel� syst�. P�texttt{vgs\_api} spou�t�imsun a~stejn�sobem od Aimsunu pr����odnoty sledovan�pravn� veli�. D� prost�ctv�\texttt{eh\_api} z�� � z~���ovatek. Na z�ad��ech shrom��ch � pak sestavuje pokyny pro zm� v~sign�� pl�ch a~op�pomoc�texttt{ea\_api} tyto pokyny zas� �� |
| 167 | \section{VGS API} |
| 168 | Velmi d�t�lem p�mulaci re��blasti v~mikrosimul�ru Aimsun je vlo�en�e��tupn� intenzit dopravy do zkouman� modelu. B��tupem je ru� s�� vozidel v~dan�blasti, zpravidla v~hodinov�rastru. Takto z�an�ata je mo�n�lo�it do simul�ru Aimsun jako hodinov���e, ov�em toto je t�prov� tak�u�. |
| 169 | |
| 170 | %Jedn�z nejd�t�� � p�mulaci re�� zat�n�opravn�� v mikrosimul�ru Aimsun je zat�n�el�imulovan�opravn�� re��tupn� intenzitami dopravy, odpov�j�mi m�n�v simulovan��. P��n�stupech se intenzity dopravy ur��omoc�u�ho s�� dopravy, zpravidla v hodinov�rastru. Data, z�an��o postupem, je mo�no potom p�vlo�it op�ru� do Aimsunu jako hodinov�opravn���e. |
| 171 | |
| 172 | P�j��etodou je v� intenzity provozu z~dat z�an�� z~dopravn� detektor�talovan�p�tn�blasti. To v�ak znamen�u� zad� stovek � do simul�ru. Pr� z~tohoto d� vzniklo VGS API. To se star�~nastartov� Aimsunu a~vpou�t� vozidel do oblasti. Vjezdy vozidel se p�m �� v~extern�souboru, obsahuj�m intenzity na jednotliv�menech. U�ivatel pak jen zad�m� a~um�� tohoto souboru a~v�e ostatn�e d� automaticky. Nav�lze volit mezi r�i rozd�n� pravd�dobnosti vjezd�i�� nej�t� pou��n�e rovnom��i Poissonovo rozd�n� |
| 173 | |
| 174 | %Pokud se sna�� o p�j��imulaci, m� pro zati�en�opravn�� pou��data z�an��z dopravn� detektor�talovan�simulovan�blasti. V takov�p��y bylo pot�ru� vkl�t n�lik set hodnot vstupn� intenzit pro ka�d�lovan� VGS API vzniklo ve snaze tento handicap odstranit -- na za�ku simulace rozhran�ouze u�ivatewl p�informace o tom, kde je um��soubor s intenzitami vjezd�jednotliv�men a o jak�jezdov�amena jde, VGS API se automaticky postar� nastartov� Aimsunu a automaticky vpou�t�ozidla do syst� podle �, obsa�en�souboru s intenzitami vjezd�ivatel m�olit r�druhy rozd�n�ravd�dobnosti vjezd�j�t� se pou�� rovnom��ebo Poissonovo rozd�n� |
| 175 | |
| 176 | Vedle pr� se vstupn�aty pro simulaci se VGS API star�ak�~zpracov� dat v��. Aimsun sice zvl� export v��ulac�o textov�ubor�bsahuje i~n�roje pro jejich vizualizaci, neumo�� v�ak p�n�er��t�rocesy jako je nap�d porovn� v��dvou r�h sc��GS proto v~pr� cel� experimentu ukl� � o~sledovan�blasti, a~to jak pro jednotliv�ekce, tak pro cel�� Ve v�u u�ivatel z�� informace o~po� zastaven�ozidel, o~jeho zpo�d�, pr��ychlosti, dob��y, st�, o~doprav�toku a~hustot�opravy na jednotliv�gmentech �o~d�� front vozidel. �aje o~d�� front jsou specialitou VGS, Aimsun tento �pro jednotliv��n�ruhy p�neposkytuje a~VGS m�roto implementov�vlastn�lgoritmus pro jejich s��. |
| 177 | |
| 178 | %Druh�e�it��m VGS API je shroma��at data pot� pro vyhodnocen�xperimentu. Aimsun sice disponuje jednoduch�hran�pro vizualizaci dat a jejich export do textov�ubor�n�le mo�n�ap�d porovn�t jednotliv�c��mulac�VGS API proto periodicky ukl� v�echny kl�v�kazatele jak pro jednotliv�egmenty dopravn��, tak i pro cel�lovan�� U�ivatel m�o ukon��imulace k dispozici � o po� zastaven�ozidla, o jeho zpo�d�, pr��ychlosti, dob��y a dob�t�, o doprav�toku a hustot�opravy na jednotliv�gmentech �o d�� front vozidel. Vzhledem k tomu, �e Aimsun neposkytuje informace o d�e fronty vozidel pro ka�d��n�ruh zvl (k dispozici jsou pouze � o akumulovan��e fronty vyj�en�o�m vozuidel, kter�a segmentu dopravn�� v dan��ik stoj� m�GS API implementovan�tn�lgoritmus v� d�y fronty vozidel na ka�d�j�n�pruhu a poskytuje u�ivateli i takto z�an�nformace o d�e fronty. |
| 179 | |
| 180 | Implementac�GS API je DLL knihovna napsan�~jazyce C pro 32 a~64 bitov�yst� Windows XP a~v�av�je sou�t�GStoolbox, sada skript� zpracov� v�� dat v~programu Matlab. |
| 181 | |
| 182 | %Vlastn�GS API je implementov� v jazyce C jako DLL pro 32- a 64-bitov�yst� po�aje Windows XP, rozhran�e dopln� funkcemi pro obsluhu API a vyhodnocov� statistick�formac� prost�n�roje Matlab |
| 183 | |
189 | | Konfigura� soubor obsahuje n�lik prvk�znam (\texttt{list}) \texttt{agents} se skl� z~popisu jednotliv�ent�edev��je definov� t� jej�instance agenta p�avuje, a~unik��m� agenta (\texttt{name}). Dal��rom�� konfigura�m souboru z���a pou�it��pro konstrukci agenta, ka�d��m��sv�pecifick�o�adavky. Skupina (\texttt{group}) \texttt{logger} ur�e, jak n�v napov�, t�pou�itou pro logov� � b�m simulace. Skupina \texttt{system} obsahuje parametry pro simul�r a~konfigura� soubor uzav�j�statn��ite� prom��espadaj� do v�eden�tegori� |
190 | | |
191 | | Komunikaci mezi agenty program zaji��uje obsluhou fronty zpr� Zpr� jsou ve form� knihovny \texttt{libconfig}, obsahuj�v�lo�ky povinn�~libovoln�t slo�ek voliteln�ezbytn�aji jsou �ec \texttt{to}, obsahuj� p�ce zpr�, a~�ec \texttt{what}, kter���t zpr�. Dal��oz��n�pr�je pak na pot�h pou�it�ent� |
| 189 | Konfigura� soubor obsahuje n�lik prvk�znam (\texttt{list}) \texttt{agents} se skl� z~popisu jednotliv�ent�edev��je definov� t� jej�instance agenta p�avuje, a~unik��m� agenta (\texttt{name}). Dal��rom��~konfigura�m souboru z���a pou�it��pro konstrukci agenta, ka�d��m��sv�pecifick�o�adavky. Skupina (\texttt{group}) \texttt{logger} ur�e, jak n�v napov�, t�pou�itou pro logov� � b�m simulace. Skupina \texttt{system} obsahuje parametry pro simul�r a~konfigura� soubor uzav�j�statn��ite� prom��espadaj� do v�eden�tegori� |
| 190 | |
| 191 | Komunikaci mezi agenty program zaji��uje obsluhou fronty zpr� Zpr� jsou ve form� knihovny \texttt{libconfig}, obsahuj�v�lo�ky povinn�~libovoln�t slo�ek voliteln�ezbytn�aji jsou �ec \texttt{to}, obsahuj� p�ce zpr�, a~�ec \texttt{what}, kter���t zpr�. Dal��oz��n�orm� zpr�je pak na pot�h pou�it�ent� |
231 | | \item[lanes] Informace o~j�n� pruz�, |
232 | | \item[neighbours] Jm� agent�ousedn� k�atek, |
233 | | \item[green_names] Jm� jednotliv�gn�� skupin, |
234 | | \item[green_starts] �s, ve kter�lu�n�ign��kupiny rozsv�j�elenou, |
235 | | \item[green_times] D�a trv� sv�n�elen�an�ign��kupiny, uv�na jako pom�$\text{doba sv�n�\text{d�a cyklu}$, |
| 231 | \item[lanes] Informace o~j�n� pruz�. |
| 232 | \item[neighbours] Jm� agent�ousedn� k�atek. |
| 233 | \item[green_names] Jm� jednotliv�gn�� skupin. |
| 234 | \item[green_starts] �s, ve kter�lu�n�ign��kupiny rozsv�j�elenou. |
| 235 | \item[green_times] D�a trv� sv�n�elen�an�ign��kupiny, uv�na jako pom�$\text{doba sv�n�\text{d�a cyklu}$. |
245 | | \item[car_leaving_time] �s v~sekund�, ze kter�o auto opust�rontu ($c_0$) |
246 | | \item[VP] Pr��ychlost j�y automobilu mezi k�atkami na voln�ilnici ($v_P$) |
247 | | \item[actual_time] Uchov� aktu��as simulace (v~sekund�) |
248 | | \item[negot_cycle] Po� ji� prob��jedn�c� cykl�posledn� pr�v� |
249 | | \item[cycle_count] Hranice po� cykl� jej� dosa�en�ast� pr�v� z�an�fset�item[total_offset] Hodnota sou� dosud vyjednan�fset�posledn� pr�v� |
250 | | \item[negot_start] Krok, kter�za���ed� ide�� offsetu u~souseda |
251 | | \item[negot_limit] Krok, kter�kon�p�ed� ide�� offsetu u~souseda |
252 | | \item[find_best_start] Krok, kter�� hled� nejlep�� vlastn� offsetu |
253 | | \item[find_best_limit] Krok, kter��hled� nejlep�� vlastn� offsetu |
254 | | \item[passive] Indikuje zda agent zast� pasivn�ebo aktivn�oli |
| 245 | \item[car_leaving_time] �s v~sekund�, ze kter�o auto opust�rontu ($c_0$). |
| 246 | \item[VP] Pr��ychlost j�y automobilu mezi k�atkami na voln�ilnici ($v_\mathrm{P}$). |
| 247 | \item[actual_time] Uchov� aktu��as simulace (v~sekund�). |
| 248 | \item[negot_cycle] Po� ji� prob��jedn�c� cykl�posledn� pr�v�. |
| 249 | \item[cycle_count] Hranice po� cykl� jej� dosa�en�ast� pr�v� z�an�fset�\item[total_offset] Hodnota sou� dosud vyjednan�fset�posledn� pr�v�. |
| 250 | \item[negot_start] Krok, kter�za���ed� ide�� offsetu u~souseda. |
| 251 | \item[negot_limit] Krok, kter�kon�p�ed� ide�� offsetu u~souseda. |
| 252 | \item[find_best_start] Krok, kter�� hled� nejlep�� vlastn� offsetu. |
| 253 | \item[find_best_limit] Krok, kter��hled� nejlep�� vlastn� offsetu. |
| 254 | \item[passive] Indikuje zda agent zast� pasivn�ebo aktivn�oli. |
544 | | Pro nalezen�ejlep�� nastaven�lastn� offsetu slou��ekurentn�unkce \texttt{int find_best_offset(cont int center, int interval)}. Ta hled�e t�dnot offset�mathtt{center}+\mathtt{interval}$, $\mathtt{center}$ a~$\mathtt{center}-\mathtt{interval}$ hled�u s nejlep��hodnocen� Nalezen�odnota se pak pou�ije jako prvn�arametr pro dal��ol� sebe sama; jako nov�rval se vezme polovina p�oz�. Toto vol� prob�, dokud \texttt{interval} nedos�e hranice \texttt{find_best_limit}. Pak je funkce ukon�a a~je vr�n nalezen�et. |
545 | | |
546 | | Funkce zkoumaj� efekty zm�offsetu u~souseda m�rototyp \texttt{int find_best_exps (int offset_change, string neighbour, double \&rating_change)}. V�m je nalezen�m� offsetu. Parametr \texttt{offset_change} zna� o~kollik sekund bude agent zkou�et posunout soused�fset, \texttt{neighbour} je jm� zkouman� souseda a~do prom��texttt{rating_change} bude ulo�ena zm� hodnocen�kterou nalezen� offset pravd�dobn��e oproti sou�n� stavu. Funkce si nejprve p�v�odnoty o��n��zd�, jak by pravd�dobn�ypadaly p�� sousedova offsetu v~kladn�a~v~z�rn�smyslu o~hodnotu \texttt{offset_change}. N�edn�ak vypo��odnocen�~t�to a~bez t�to zm� Zm� s~nejlep��hodnocen�je n�atovou hodnotou funkce. |
547 | | |
548 | | Po�� hodnocen�rob� ve funkci \texttt{double count_rating(const int offset, const vec recieved_exps, const RV rv_recieved_exps)} o n�lika vno�h cyklech. Vn��rob� p��echny (vjezdov�j�n�ruhy k�atky. Pro ka�d� n�eduje ve vno�smy� hled� o��n��zd�vektoru p��t \texttt{recieved_exps}. Pokud o nich nejsou pro zkouman� informace, nebude se zapo��t do hodnocen� |
549 | | |
550 | | V p��alezen��k�edpoklad�u tyto ulo�eny do vektor�xttt{t_cars_begin} (za�ky p�d�texttt{t_cars_end} (konce p�d�\texttt{cars_density} (hustoty vozidel) pro dal���. Ten za��ji�t�m rozsv�n�elen� sign��kupin���n�an� j�n� pruhu, se zapo��m offsetu p�� funkci v parametru \texttt{offset}. Intervalem sv�n�elen�e pak funkc�texttt{expand_greens()} s periodou $T_{\mathrm{c}}$ zopakov�tak, aby pokryl cel�v�, pro kter� k dispozici informace o p�dech vozidel. |
551 | | |
552 | | Ze znalosti o��n��zd�tavu semafor�em nich pak vych� po�� p�vku k hodnocen�Ten prob� v \texttt{do} -- \texttt{while} cyklu. Pro jeho ��e definov� prom��texttt{t_act}, p�avuj� ukazatel na pr� zpracov�n��ik ve zkouman�intervalu. Jej�odnota za��a 0 a pokud dos�e hodnoty prom��texttt{t_limit}, zp� ukon��my�. Do prom��texttt{t_limit} je ulo�en � posledn� zhasnut�elen�z�an��e zm�n�unkce \texttt{expand_greens()}. \texttt{t_act} se tedy b�m v� posouv�o v��dech intervalu a v ka�d�takov�bod�e ov�je, jak� typu (dle definice z kapitoly \ref{sec:navrh}) je n�eduj� interval. Podle toho se zjist���n��a virtu��ronty $Q_V^{(i)}$ a pokud je tato z�rn�ode� se od hodnocen�texttt{rating}. |
553 | | |
554 | | Po t�co funkce projde v�echny j�n�ruhy, vr� v�ou hodnotu ulo�enou v prom��texttt{rating} jako�to hodnocen�astaven� dan�setem a dan�edpoklady o p�dech vozidel. |
| 544 | Pro nalezen�ejlep�� nastaven�lastn� offsetu slou��ekurentn�unkce \texttt{int find_best_offset(cont int center, int interval)}. Ta hled�e t�dnot offset�mathtt{center}+\mathtt{interval}$, $\mathtt{center}$ a~$\mathtt{center}-\mathtt{interval}$ tu s~nejlep��hodnocen� Nalezen�odnota se pak pou�ije jako prvn�arametr pro dal��ol� sebe sama; jako nov�rval se vezme polovina p�oz�. Toto vol� prob�, dokud \texttt{interval} nedos�e hranice \texttt{find_best_limit}. Pak je funkce ukon�a a~je vr�n nalezen�et. |
| 545 | |
| 546 | Funkce zkoumaj� efekty zm�offsetu u~souseda m�rototyp \texttt{int find_best_exps (int offset_change, string neighbour, double \&rating_change)}. V�m je nalezen�m� offsetu. Parametr \texttt{offset_change} zna� o~kolik sekund bude agent zkou�et posunout soused�fset, \texttt{neighbour} je jm� zkouman� souseda a~do prom��texttt{rating_change} bude ulo�ena p�kl�n�m� hodnocen�kterou nalezen� offset p�e oproti sou�n� stavu. Funkce si nejprve p�v�odnoty o��n��zd�, jak by pravd�dobn�ypadaly p�� sousedova offsetu v~kladn�a~v~z�rn�smyslu o~hodnotu \texttt{offset_change}. N�edn�ak vypo��odnocen�~t�to a~bez t�to zm� Zm� s~nejlep��hodnocen�je n�atovou hodnotou funkce. |
| 547 | |
| 548 | Po�� hodnocen�rob� ve funkci \texttt{double count_rating(const int offset, const vec recieved_exps, const RV rv_recieved_exps)} v~n�lika vno�h cyklech. Vn��rob� p��echny (vjezdov�j�n�ruhy k�atky. Pro ka�d� n�eduje ve vno�smy� hled� o��n��zd�vektoru p��t \texttt{recieved_exps}. Pokud o~nich nejsou pro zkouman� informace, nebude se zapo��t do hodnocen� |
| 549 | |
| 550 | V~p��alezen��k�edpoklad�u tyto ulo�eny do vektor�xttt{t_cars_begin} (za�ky p�d�texttt{t_cars_end} (konce p�d�\texttt{cars_density} (hustoty vozidel) pro dal���. Ten za��ji�t�m �u rozsv�n� zhasnut�elen�~sign��kupin���n�an� j�n� pruhu, se zapo��m offsetu p�� funkci v~parametru \texttt{offset}. Interval sv�n�elen�e pak funkc�texttt{expand_greens()} s~periodou $T_{\mathrm{c}}$ zopakov�tak, aby pokryl cel�v�, pro kter� k~dispozici informace o~p�dech vozidel. Ilustraci k t� funkci p�avuje obr�k \ref{fig:expand}. |
| 551 | |
| 552 | Ze znalosti o��n��zd�tavu semafor�em nich pak vych� po�� p�vku k~hodnocen�Ten prob� v~\texttt{do} -- \texttt{while} cyklu. Pro jeho ��e definov� prom��texttt{t_act}, p�avuj� ukazatel na pr� zpracov�n��ik ve zkouman�intervalu. Jej�odnota za��a 0 a~pokud dos�e hodnoty prom��texttt{t_limit}, zp� ukon��my�. Do prom��texttt{t_limit} je ulo�en � posledn� zhasnut�elen�z�an��e zm�n�unkce \texttt{expand_greens()}. \texttt{t_act} se tedy b�m v� posouv�o v��dech intervalu a~v~ka�d�takov�bod�e ov�je, jak� typu (dle definice z~kapitoly \ref{sec:navrh}) je n�eduj� interval. Podle toho se zjist���n��a virtu��ronty $Q_\mathrm{V}^{(i)}$ a~pokud je tato z�rn�ode� se od hodnocen�texttt{rating}. |
| 553 | |
| 554 | Po t�co funkce projde v�echny j�n�ruhy, vr� v�ou hodnotu ulo�enou v~prom��texttt{rating} jako�to hodnocen�astaven�~dan�setem a~dan�edpoklady o~p�dech vozidel. |