2 | | �olem v~t� pr� bylo navrhnout algoritmus vyjedn�n�ezi jednotliv�i�ovatkami tak, aby koordinovanou zm�u sv�fset�vo�zelenou vlnu a~tedy aby 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� |
| 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. |
| 5 | |
| 6 | \section{Pou�it�na�� |
| 7 | |
| 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� |
| 11 | |
6 | | 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�pisuj� aktu��tav provozu. Nav�soused� agenti mezi sebou mohou komunikovat. Toho vyu��j����k~tomu, aby zjistili nastaven�ffsetu na vedlej�� k�atk�, respektive p�ji 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. |
7 | | |
8 | | Jedn�z~nosn�vk�rhu je funkce, kter�hodnot�onkr��astaven�ffsetu a~umo�n�ak tedy 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. 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� |
62 | | Tato podm�a � �e pokud z fronty pouze odj�� vozidla, nesm�e st� aby voln�apacita po vypr�n� fronta byla zapo�� do hodnocen�V tuto chv� toti� nep�d� ���ozidla, kter�y k�atkou projela bez zastavov�. |
63 | | |
64 | | Pokud vyjde v n�k�okam�iku $Q_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� |
65 | | |
66 | | 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 | | Pro usnadn� pr� a~tak�~d� lep�� za�n� do sou�n� ��e v~programu pou��j��ln�ostupn�nihovny: \texttt{IT++}, zjednodu�uj� pr� s~vektory, maticemi a~poli, \texttt{BDM} (Bayesian Decision Making), kter�bsahuje u�ite� n�roje pro pr� s~popisy k~vektor�obsahuje tak��roj pro ukl�n�r��dnoot z~experimentu a~\texttt{libconfig}, slou�� p���pro pr� s~konfigura�mi soubory. Prvn�v�nihovny jsou distribuov� pod GPL licenc�t�pak pod licenc�GPL. |
| 91 | Pro usnadn� pr� a~tak�~d� lep�� za�n� do sou�n� ��e v~programu pou��j��ln�ostupn�nihovny: \texttt{IT++}, zjednodu�uj� pr� s~vektory, maticemi a~poli, \texttt{BDM} (Bayesian Decision Making), kter�bsahuje u�ite� n�roje pro pr� s~popisy k~vektor�obsahuje tak��roj pro ukl�n�r��dnot z~experimentu a~\texttt{libconfig}, slou�� p���pro pr� s~konfigura�mi soubory. Prvn�v�nihovny jsou distribuov� pod GPL licenc�t�pak pod licenc�GPL. |
146 | | %Jedn�z nejd�t�� � p�mulaci re�� zat�n�opravn�s� 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. |
147 | | |
148 | | P�j��o�nost�e z�at 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�ravd�dobnosti vjezd�i�� nej�t� pou��n�e rovnom��i Poissonovo rozd�n� |
| 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� |
152 | | Vedle pr� se vstupn�aty pro simulaci se VGS API star�~o~zpracov� dat v��. Aimsun sice zvl� export v��ulac�o textov�ubor�bsahuje i~n�roje pro jejich vizualizaci, neumo�� p�ale n�er��t�� 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 a~dob�t�, 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��. |
153 | | |
154 | | %Druh�e�it��m VGS API je zhroma��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. |
| 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. |
162 | | Fungov� simula�ho prost�tak jak bylo navr�eno v~�IA je na obr�u (\ref{fig:struktura}). Skl� se ze t�avn� blok�krosimul�ru Aimsun, emul�r�i�ELS3 a~z~tzv. Aimsun agenta. |
163 | | |
164 | | Aimsun agent p�avuje ��rvek cel� syst�. P�texttt{vgs\_api} spou�t�imsun a~stejn�sobem od n�pr����odnoty sledovan�pravn� veli�. D� prost�ctv�\texttt{eh\_api} z�� � z~���ovatek. Na z�ad��ech sesb�n�aj� sestavuje pokyny pro zm� v~sign�� pl�ch a~op�pomoc�texttt{e\_api} tyto pokyny zas� �� |
| 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� �� |
178 | | Simulace je obsluhov� z~programu \emph{main\_loop.exe}. Ten se star�~na�n�onfigurace, spu�t� simul�ru Aimsun a~zaji��uje komunika�ho prost�ka mezi jednotliv�enty. |
179 | | |
180 | | 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��sou pak z���a pou�it��pro konstrukci agenta, ka�d���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� |
181 | | |
182 | | Komunikaci program zaji��uje obsluhou fronty zpr�a~ta vlastn�efinuje z�ad pou�it� komunika�ho protokolu. Zpr� jsou ve form� knihovny \texttt{libconfig} a~obsahuj��lik povinn�libovoln�t voliteln�o�ek. Nezbytn�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� |
| 187 | Simulace je obsluhov� z~programu \emph{main\_loop.exe}. Ten se star�~na�n�onfigurace, spu�t� simul�ru Aimsun a~p�avuje komunika�ho prost�ka mezi jednotliv�enty. |
| 188 | |
| 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� |
192 | | B�m \emph{inicializace} je na�n konfigura� soubor, jeho� jm� se p��ako jedin�metru p�ou�t� \texttt{main_loop.exe}. Po na�n�sou parametry ze skupiny \texttt{system} p�y VGS API, kter�e postar�~spu�t� Aimsunu s~t�to parametry. Jde p���o~intenzitu provozu na vstupech do dopravn�� a~d�u simulace. |
193 | | |
194 | | N�edn�e dle konfigurace vytvo�pole ukazatel�agenty \texttt{Ags}. P�nstrukci jednotliv�ent�vol� jejich funkce \texttt{from_setting()} na�aj� konkr��arametry ka�d� agenta. |
195 | | |
196 | | Pot�e vytv� instance t�\texttt{logger} a~jej�rov�n�~agenty. V~tu chv� se pou�t�~funkce \texttt{ds_register()} umo��c�ktualizaci datalink� spojen�ezi agenty a~simul�rem. Na z�r tohoto bloku programu je provedena inicializace fronty zpr�a~zaregistrov� vektor�r�e budou v~pr� simulace logovat. |
197 | | |
198 | | D� se pokra�e �dn�for cyklem. �st \texttt{z�� dat} v~sob�ahrnuje ulo�en�ogovan�dnot ze simul�ru a~pak p���ulo�en�ektor $d_t$ do prom��texttt{glob_dt} a~jeho odesl� agent� zpracov� funkc�texttt{adapt()}. Pot��z�a �vyjedn�c�yklus. |
199 | | |
200 | | Vyjedn�c�yklus se zab�sluhou fronty zpr� Nejprve prob�e \emph{doru��pr�, kter�sou aktu��e front�V~prvn�kroku vyjedn�c� cyklu je fronta zpr�samoz� pr�n�v~n�eduj�m se od konce proch� a~adresovan�nt�ou p�y p��n�pr�. To se d� zavol�m funkce \texttt{recieve()} se zpr�u jako parametrem. V~p���e adres�nen�alezen a~zpr� tedy nelze doru� je ozn�no varov�, ale pokra�e se d�v~�nosti. |
| 201 | B�m \emph{inicializace} je na�n konfigura� soubor, jeho� jm� se p��ako jedin�metr p�ou�t� \texttt{main_loop.exe}. Po na�n�sou parametry ze skupiny \texttt{system} p�y VGS API, kter�e postar�~spu�t� Aimsunu s~t�to parametry. Jde p���o~intenzitu provozu na vstupech do dopravn�� a~d�u simulace. |
| 202 | |
| 203 | N�edn�e dle konfigurace vytvo�pole ukazatel�agenty \texttt{Ags}. P�nstrukci jednotliv�ent�vol� jejich funkce \texttt{from_setting()}, na�aj� konkr��arametry ka�d� agenta. |
| 204 | |
| 205 | Pot�e vytv� instance t�\texttt{logger} a~jej�rov�n�~agenty. V~tu chv� se pou�t�~funkce \texttt{ds_register()} umo��c�ktualizaci datalink� spojen�ezi agenty a~simul�rem. Na z�r tohoto bloku programu je provedena inicializace fronty zpr�a~zaregistrov� vektor�er�e budou v~pr� simulace logovat. |
| 206 | |
| 207 | Pokra�e se �dn�for cyklem. �st \texttt{z�� dat} v~sob�ahrnuje ulo�en�ogovan�dnot ze simul�ru a~pak p���ulo�en�ektoru $d_t$ do prom��texttt{glob_dt} a~jeho odesl� agent� zpracov� funkc�texttt{adapt()}. |
| 208 | |
| 209 | V n�eduj� f� p�z�a �vyjedn�c�yklus, kter�ab�sluhou fronty zpr� Nejprve prob�e \emph{doru��pr�, kter�sou aktu��e front�V~prvn�kroku vyjedn�c� cyklu je fronta zpr�samoz� pr�n�v~n�eduj�m se proch� od konce a~adresovan�nt�ou p�� p��n�pr�. To se d� zavol�m funkce \texttt{recieve()} se zpr�u jako parametrem. V~p���e adres�nen�alezen a~zpr� nelze doru�, je ozn�no varov�, ale pokra�e se v~�nosti. |
202 | | Po vypr�n� fronty nast� � pro \emph{vys�n�pr�. To spo��e spu�t� funkce \texttt{broadcast()} u~v�ech agent�n�aj��itost vlo�it do fronty zpr�libovoln�t sd�n�ro ostatn�genty, nemus�v�em vys�t ��� |
203 | | |
204 | | Dal��ostup z�s�a stavu fronty zpr� Pokud je pr�n�tedy ���t nevyslal ��ou zpr�, kon�vyjedn�c�yklus a~pokra�e se v~b� programu. V~p���e fronta pr�n�en�cyklus se opakuje a~prob�e dal��oru�� zpr�z~fronty. Vyjedn�n���n�o je�t�~p��kdy prob�e stanoven�m��o� vyjedn�c� cykl�staven�om��texttt{max_cycles}. Limit by v�ak m�b�taven tak, aby k~jeho dosa�en�edoch�lo, pokud se tak stane, m� by to b�n�m probl� v~programu. |
205 | | |
206 | | Posledn�� hlavn� cyklu je nazvan�emph{krok simulace}. Spo��ejprve v~zavol� funkce \texttt{act()} u~ka�d� agenta. To je okam�ik, kdy mohou agenti ovlivnit ��ignalizace. Pr� zde prob� zkop�v� vypo�an�dnot do vektoru \mbox{\texttt{glob_ut}}, tedy do prom���avuj� vektor vstupn� hodnot $u_t$. Na z�r hlavn� cyklu je cel�imulace posunuta o~jeden krok d� vol�m funkc�texttt{step()} u~loggeru \texttt{L}, \texttt{Ds} a~u~v�ech agent�lka kroku je pevn�astavena na 90~s, je to z~d�, �e v~Praze jsou � z~detektor�r� pr� v~tomto intervalu. |
| 211 | Po vypr�n� fronty nast� � pro \emph{vys�n�pr�. To spo��e spu�t� funkce \texttt{broadcast()} u~v�ech agent�e�j�yn��itost vlo�it do fronty zpr�libovoln�t sd�n�ro ostatn�genty; nemus�v�em vys�t ��� |
| 212 | |
| 213 | Dal��ostup z�s�a stavu fronty zpr� Pokud je pr�n�tedy ���t nevyslal ��ou zpr�), kon�vyjedn�c�yklus a~pokra�e se v~b� programu. V~p���e fronta pr�n�en�cyklus se opakuje a~prob�e dal��oru�� zpr�z~fronty. Vyjedn�n���n�o tak�~p��kdy prob�e stanoven�m��o� vyjedn�c� cykl�staven�om��texttt{max_cycles}. Po� cykl�v�ak m�b�taven tak, aby k~jeho dosa�en�edoch�lo; pokud se tak stane, m�o b�n�m probl� v~programu. |
| 214 | |
| 215 | Posledn�� hlavn� cyklu je nazvan�emph{krok simulace}. Spo��ejprve v~zavol� funkce \texttt{act()} u~ka�d� agenta. To je okam�ik, kdy mohou agenti ovlivnit ��ignalizace. Pr� zde prob� zkop�v� vypo�an�dnot do vektoru \mbox{\texttt{glob_ut}}, tedy do prom���avuj� vektor vstupn� hodnot $u_t$. Na z�r hlavn� cyklu je cel�imulace posunuta o~jeden krok d� vol�m funkc�texttt{step()} u~loggeru \texttt{L}, \texttt{Ds} a~u~v�ech agent�lka kroku je pevn�astavena na 90~s -- to z~toho d�, �e v~Praze jsou � z~detektor�r� pr� v~tomto intervalu. |
214 | | T�je odvozena od p� jm�m \texttt{BaseTrafficAgent}. Ten slou��en jako prakticky pr�n�t, po p�en�~n�k��atce nekon��ou akci a~umo�� tak simulovat syst�bez decentralizovan� ��P�m t� t�je t�\texttt{Participant} z~knihovny BDM. \texttt{Participant}, tedy �n� p�avuje z�adn�ednotku v~rozhodovac�procesu. Ka�d�tn�m�v�m� (\texttt{name}) a~je schopen ukl�t v�y. U� pr� t�\texttt{Participant} deklaruje existenci funkc�texttt{adapt()}, \texttt{broadcast()}, \texttt{recieve()}, \texttt{act()} a~\texttt{step()}. Tyto jsou v~n�definov� jako virtu��\texttt{virtual}), tedy pokud je v~potomkovi redefinujeme, je zaru�o vol� t�to nov�nkc� |
| 223 | T�je odvozena od p� jm�m \texttt{BaseTrafficAgent}. Ten slou��rakticky jen jako pr�n�t, po p�en�~n�k��atce nekon��ou akci a~umo�� tak simulovat syst�bez decentralizovan� ��P�m t� t�je t�\texttt{Participant} z~knihovny BDM. \texttt{Participant}, tedy �n� kter�stavuje z�adn�ednotku v~rozhodovac�procesu. Ka�d�tn�m�v�m� (\texttt{name}) a~je schopen ukl�t v�y. U� pr� t�\texttt{Participant} deklaruje existenci funkc�texttt{adapt()}, \texttt{broadcast()}, \texttt{recieve()}, \texttt{act()} a~\texttt{step()}. Tyto jsou v~n�definov� jako virtu��\texttt{virtual}), tzn. pokud je v~potomkovi redefinujeme, je zaru�o vol� t�to nov�nkc� |
531 | | Funkce \texttt{expected_cars()} sestavuje � o~p�dech vozidel |
532 | | �echny sousedy. Odhady jsou zalo�eny na aktu��odnot�ffsetu ulo�en�~prom��texttt{planned_offset} a~jsou na z�r ulo�eny do vektoru \texttt{outputs} ur�� k~odesl�. |
533 | | |
534 | | V� prob� podle rovnic (\ref{eq:tz}) a~(\ref{eq:tk}). Po� vozidel je z��jako sou� odhadu po� vozidel, kter�rojedou j�n�pruhem za dobu rozsv�n�elen�~p��n� pom� odbo��\alpha_i$, kde $i$ je �lo v�� sm�. V� po�tu vozidel, kter��n�pruhem projedou je z��itost�unkce \texttt{expected_output()} ze t�\texttt{LaneHandler}. V~sou�nosti tato funkce vrac�o� vozidel, kter�rojela v~minul�cyklu. |
535 | | |
536 | | 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. |
537 | | |
538 | | Funkce zkoumaj� efekty zm�offsetu u~souseda m�rototyp \texttt{int find_best_exps (const int offset_change, const 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. |
539 | | |
540 | | Po�� hodnocen�rob� ve funkci \texttt{double count_rating(const int offset, const vec recieved_exps, const RV rv_recieved_exps)} 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� |
| 540 | Funkce \texttt{expected_cars()} sestavuje � o~p�dech vozidel pro v�echny sousedy. Odhady jsou zalo�eny na aktu��odnot�ffsetu ulo�en�~prom��texttt{planned_offset} a~jsou na z�r ulo�eny do vektoru \texttt{outputs}, ur�� k~odesl�. |
| 541 | |
| 542 | V� prob� podle rovnic (\ref{eq:tz}) a~(\ref{eq:tk}). Po� vozidel je z��jako sou� odhadu po� vozidel, kter�rojedou j�n�pruhem za dobu sv�n�elen�~p��n� pom� odbo��\alpha_i$, kde $i$ je �lo v�� sm�. V� po� vozidel, kter��n�pruhem projedou je z��itost�unkce \texttt{expected_output()} ze t�\texttt{LaneHandler}. V~sou�nosti tato funkce vrac�o� vozidel, kter�rojela v~minul�cyklu. |
| 543 | |
| 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� |