1 | \chapter{Implementace} |
---|
2 | |
---|
3 | \section{Seznam proměnných} |
---|
4 | % Všechny proměnné jsou zavedeny pro každého agenta reprezentujícího jednu křižovatku zvlášť |
---|
5 | % a jsou označeny indexem $i$ signální skupiny. Tavždy ovládá jeden jízdní pruh. Pokud jsou bez indexu, |
---|
6 | % jedná se o proměnnou agenta, případně oblasti simulace. |
---|
7 | |
---|
8 | \begin{tabular}{ccp{5cm}p{5cm}} |
---|
9 | \textbf{V textu} & \textbf{V programu} & \textbf{Název} & \textbf{Popis} \\ |
---|
10 | $T \in \mathbb{N}$ & \texttt{T} & Vzorkovací perioda & ...\\ |
---|
11 | $C \in \mathbb{N}$ & \texttt{Tc} & Délka cyklu & ... \\ |
---|
12 | $S = 0,5$ & \texttt{Tc} & Saturovaný tok & Maximální počet vozidel, která projedou křižovatkou za sekundu \\ |
---|
13 | $L \in \mathbb{R}^+$ & \texttt{L} & Ztrátový čas & Čas potřebný k vyklizení křižovatky mezi dvěma fázemi\\ |
---|
14 | $J = \{j_1, ..., j_n\}$ & & Množina signálních skupin & \\ |
---|
15 | $J_A \subset J$ & \texttt{} & Množina signálních skupin agenta $A$ & Skupiny náležící jednomu agentovi \\ |
---|
16 | $I_j \subset J$ & \texttt{} & Množina vstupů signální skupiny & Signální skupiny ostatních agentů ústících do příslušné skupiny $g$ \\ |
---|
17 | $g_j^N \in <0,1>$ & & Nominální poměr zelené & Defi novaný poměr fází \\ |
---|
18 | $g_j(t) \in <0,1>$ & & Efektivní poměr zelené & Část z délky cyklu, kdy je signální skupina průjezdná \\ |
---|
19 | $i_j(t) \in \mathbb{R}^+$ & \texttt{i\_g} & Hustota vstupů & Počet přijíždějících vozidel do pruhu signální skupiny za jednotku času \\ |
---|
20 | $o_j(t) \in \mathbb{R}^+$ & \texttt{} & Hustota výstupů & Počet vyjíždějících vozidel z pruhu signální skupiny za jednotku času \\ |
---|
21 | $q_j(t) \in \mathbb{N}_0^+$ & \texttt{} & Fronta & Počet vozidel jedoucí menší rychlostí než $3,6 km/h$ \\ |
---|
22 | $\alpha_{j,k} \in <0,1>$ & \texttt{} & Odbočovací poměr z $j$ do $k$ & |
---|
23 | \end{tabular} |
---|
24 | |
---|
25 | \section{Použitá metoda} |
---|
26 | Účelem této práce je řídit provoz pomocí nastavení optimální délky cyklu za použití multiagentního systému, kde |
---|
27 | každý agent ovládá signální skupiny jedné křižovatky a jsou mu dostupné příslušné údaje. |
---|
28 | Jako vhodná metoda bylo zvoleno LQ řízení, které se snaží minimalizovat fronty a penalizovat délku cyklu. |
---|
29 | |
---|
30 | \subsection{Přechodové vztahy} |
---|
31 | Jako údaj popisující stav systému byla zvolena délka fronty $q_j(t)$, což je počet aut v jízdním pruhu jedoucích |
---|
32 | méně než 3,6 km/h. Pro danou frontu v čase $t+1$ platí zřejmě vztah |
---|
33 | \begin{equation}\label{eq:my_trans_01} |
---|
34 | q_j(t+1) = q_j(t) + T ( i_j(t) - o_j(t) ) |
---|
35 | \end{equation}, kde hustota vstupu $i_j(t)$ je součtem výstupů sousedů pronásobený odbočovacími poměry, |
---|
36 | případně vstupu do systému $i_{j,0}(t)$, pokud se jedná o koncové rameno řízené oblasti, tedy |
---|
37 | \begin{equation} |
---|
38 | i_j(t) = i_{j,0}(t) + \sum_{k \in I_j} \alpha_{k,j} o_k(t) |
---|
39 | \end{equation}. |
---|
40 | Křižovtkou z daného jízdního pruhu v průjezdné fázi projede $S$ vozidel za sekundu, kde |
---|
41 | délka průjezdné fáze závisí na nastaveném poměru a délce cyklu. Před přechodem do nové |
---|
42 | fáze signálího plánu je potřeba vklidit křižovatku, což vede ke ztrátovému času $L$, který |
---|
43 | se projeví vždy jednou za cyklus. Efektivní délka zelené je tedy |
---|
44 | \begin{equation} |
---|
45 | g_j(t) = (C(t) - L) g_j^N |
---|
46 | \end{equation} |
---|
47 | a pro hustotu výstupu platí |
---|
48 | \begin{equation} |
---|
49 | o_j(t) = \frac{S_j g_j(t)}{C(t)} = S_j g_j^N \left( 1 - LC(t)^{-1} \right) |
---|
50 | \end{equation}. Rovnice \ref{eq:my_trans_01} tedy přechází do tvaru |
---|
51 | \begin{equation}\label{eq:my_trans_02} |
---|
52 | q_j(t+1) = q_j(t) + T \left( i_{j,0}(t) + \sum_{k \in I_j} \alpha_{k,j} S_k g_k^N \left( 1 - LC(t)^{-1} \right) - S_j g_j^N \left( 1 - LC(t)^{-1} \right) \right) |
---|
53 | \end{equation}. |
---|
54 | Pokud budeme podobně jako v \cite{6_tuc_lq} předpokládat existenci nominální délky cyklu $C^N$, při níž se |
---|
55 | nemění délka fronty, platíc( |
---|
56 | \begin{equation}\label{eq:my_trans_nom} |
---|
57 | 0 = T \left( i_{j,0}(t) + \sum_{k \in I_j} \alpha_{k,j} S_k g_k^N \left( 1 - LC^{N -1} \right) - S_j g_j^N \left( 1 - LC^{N -1} \right) \right) |
---|
58 | \end{equation}. Odečtením rovnice \ref{eq:my_trans_nom} od \ref{eq:my_trans_02} dostaneme |
---|
59 | \begin{equation}\label{eq:my_trans_03} |
---|
60 | q_j(t+1) = q_j(t) + T \left( - \sum_{k \in I_j} \alpha_{k,j} S_k g_k^N + S_j g_j^N \right) L \Delta C^{-1}(t) |
---|
61 | \end{equation}, kde $ \Delta C^{-1}(t) = C(t)^{-1} - C^{N -1}$. Pro ramena $j \in J_A$ náležící agentovi $A$ se |
---|
62 | tedy rovnice pro fronty dají zapsat maticově ve tvaru |
---|
63 | \begin{equation}\label{eq:my_trans_mat} |
---|
64 | \vec{q}(t+1) = A \vec{q}(t) + B \Delta C^{-1}(t) |
---|
65 | \end{equation} |
---|
66 | |
---|
67 | Kostantni saturovany tok neni optimalni, pouzije aprox podle Pecherkove (viz bak.), |
---|
68 | prujezd odpovida bud sat. toku, pokud neodjede cela fronta, nebo je primo umerny |
---|
69 | fronte (+ prijezdum). prolozi se funkci a aprox se primkou podle hodnoty fronty v case t. |
---|
70 | Napocte se rizen pro horizont a podle vyvoje fronty se prepocte misto pro prolozeni pri |
---|
71 | |
---|
72 | |
---|
73 | \subsubsection{Model toku} |
---|
74 | V článku \cite{6_tuc_lq} se úbytek vozidel modeluje podle rovnice \ref{eq:tuc_u}, kde je uvažován |
---|
75 | tok vozidel křižovatkou za jednotku času jako konstanta $S$, což je saturovaný tok. Tento vztah |
---|
76 | platí pouze když je příslušný pruh naplněn vozidly do té míry, že křižovatkou projede maximální |
---|
77 | možný počet vozidel. To však neplatí, pokud není pruh dostatečně vytížen, například pokud se zmenší |
---|
78 | délka fronty v nějaký časový okamžik na nulu. Pokud je vytížení menší je tok lineárně závislý na součtu |
---|
79 | fronty $q(t)/T$ a počtu vstupujících vozidel $i(t)$. Pro teoretickou hodnotu toku $S$ tedy dostáváme vztah |
---|
80 | \begin{equation}\label{eq:teor_tok} |
---|
81 | S_{teor}(q(t) + i(t)) = \left\{ |
---|
82 | \begin{array}{lr} |
---|
83 | \frac{q(t)}{T} + i(t) & \frac{q(t)}{T} + i(t) <= S_{max} \\ |
---|
84 | S_{max} & \frac{q(t)}{T} + i(t) > S_{max} |
---|
85 | \end{array} |
---|
86 | \right. |
---|
87 | \end{equation} |
---|
88 | . tento vztah vyjadřuje to, že pokud je fronta plus přírůstrek vozidel ve vzorkovací periodě |
---|
89 | $(q(t), i(t)T)$ menší než maximální počet vozidel, který je křižovatka za periodu $T$ schopna |
---|
90 | propustit $(T S_{max})$, projedou všechna vozidla. Abychom se vyhnuli podmínce podle $S_{max}$, |
---|
91 | aproximuje se tento vztah funkcí |
---|
92 | \begin{equation}\label{eq:exp_tok} |
---|
93 | S_{exp}(q(t), i(t)) = S_{max} \left(1 - e^{- \frac{1}{S_{max}} \left( \frac{q(t)}{T} + i(t) \right) } \right) |
---|
94 | \end{equation} |
---|
95 | , která splňuje podmínku |
---|
96 | \begin{equation} |
---|
97 | \frac{ dS_{exp} }{d(q/T+i)}(0,0) = 1 |
---|
98 | \end{equation} |
---|
99 | , tedy při malé frontě a hustotě provozu |
---|
100 | je přírůstek toku roven $q/T+i$, a podmínku |
---|
101 | \begin{equation} |
---|
102 | \lim_{q/T+i\to\infty} S_{exp} = S_{max} |
---|
103 | \end{equation} |
---|
104 | , tedy při velké frontě a hustotě provozu |
---|
105 | se tok blíží konstantě $S_{max}$. Pro malý časový interval můžeme tuto funkci dále zjednodušit na lineární vztah |
---|
106 | \begin{equation}\label{eq:lin_tok} |
---|
107 | S(q(t)) = \sigma(q(t)/T + i_0) |
---|
108 | \end{equation} |
---|
109 | , kde je $i_0 = i(0)$ a |
---|
110 | \begin{equation} |
---|
111 | \sigma = \frac{ dS_{exp} }{d(q/T+i)}(q(0),i(0)) |
---|
112 | \end{equation} |
---|
113 | \\ |
---|
114 | vlozit graf s ruznymi S |
---|
115 | \\ |
---|
116 | |
---|
117 | \subsubsection{Přechodové vztahy s proměnným tokem} |
---|
118 | Pro vyjádření přechodových vzthů použijeme lineární odel toku a rovnice \ref{eq:my_trans_02} |
---|
119 | přejde na tvar |
---|
120 | \begin{equation} |
---|
121 | q_j(t+1) = q_j(t) + T \left( i_{j,0}(t) + \sum_{k \in I_j} \alpha_{k,j} S_k(q_k(t)) g_k^N \left( 1 - LC(t)^{-1} \right) - S_j(q_j(t)) g_j^N \left( 1 - LC(t)^{-1} \right) \right) |
---|
122 | \end{equation} |
---|
123 | , a po dosazení \ref{eq:lin_tok} dostaneme |
---|
124 | \begin{equation} |
---|
125 | q_j(t+1) = q_j(t) + T \left( \begin{array}{c} |
---|
126 | i_{j,0}(t) + \\ |
---|
127 | + \sum_{k \in I_j} \alpha_{k,j} \delta_k(q_k(t) T^{-1} + i_{0,k}) g_k^N \left( 1 - LC(t)^{-1} \right) - \\ |
---|
128 | - \delta_j(q_j(t) T^{-1} + i_{0,j}) g_j^N \left( 1 - LC(t)^{-1} \right) |
---|
129 | \end{array} |
---|
130 | \right) |
---|
131 | \end{equation} |
---|
132 | |
---|
133 | \begin{equation}\label{eq:my_trans_mod_tok_03} |
---|
134 | q_j(t+1) = q_j(t) + T \left( \begin{array}{c} |
---|
135 | i_{j,0}(t) + \\ |
---|
136 | + \sum_{k \in I_j} \alpha_{k,j} \delta_k g_k^N T^{-1} q_k(t) - \delta_j g_j^N T^{-1} q_j(t) + \\ |
---|
137 | + \sum_{k \in I_j} \alpha_{k,j} \delta_k i_{0,k} g_k^N - \delta_j i_{0,j} g_j^N - \\ |
---|
138 | - \sum_{k \in I_j} \alpha_{k,j} \delta_k g_k^N L T^{-1} q_k(t) C(t)^{-1} + \delta_j g_j^N L T^{-1} q_j(t) C(t)^{-1} - \\ |
---|
139 | - \sum_{k \in I_j} \alpha_{k,j} \delta_k i_{0,k} g_k^N L C(t)^{-1} + \delta_j i_{0,j} g_j^N L C(t)^{-1} |
---|
140 | \end{array} |
---|
141 | \right) |
---|
142 | \end{equation} |
---|
143 | |
---|
144 | . Pokud budeme podobně jako v rovnici \ref{eq:my_trans_nom} uvažovat nominální $C^N$, pro které se $q(t+1)$ rovná $q(t)$, |
---|
145 | dostaneme dosazením $\Delta C^{-1}(t) = C(t)^{-1} - C^{N -1} $ do \ref{eq:my_trans_mod_tok_03} rovnici |
---|
146 | |
---|
147 | \begin{equation}\label{eq:my_trans_mod_tok_04} |
---|
148 | \begin{array}{ccc} |
---|
149 | q_j(t+1) &= q_j(t) +& L \left( \delta_j g_j^N q_j(t) - \sum_{k \in I_j} \alpha_{k,j} \delta_k g_k^N q_k(t) \right) C(t)^{-1} +\\ |
---|
150 | & & + L T \left( \delta_j i_{0,j} g_j^N - \sum_{k \in I_j} \alpha_{k,j} \delta_k i_{0,k} g_k^N \right) C(t)^{-1} |
---|
151 | \end{array} |
---|
152 | \end{equation} |
---|
153 | |
---|
154 | |
---|
155 | |
---|
156 | |
---|
157 | \subsection{Minimalizační kritérium} |
---|
158 | Podobně jako v předchozí kapitole, minimalizovat kvaratické kritérium $J$. |
---|
159 | Minimalizaci budeme provádět v proměnných $\Delta C(t)$ pro časový horizont $h$, |
---|
160 | tedy pro vektory $\Delta C(t_0), \Delta C(t_0 + 1), ..., \Delta C(t_0 + h)$. Pro zpřehlednění |
---|
161 | zápisu položíme bez újmy na obecnosti $t_0 = 0$. |
---|
162 | Kvadratické kritérium |
---|
163 | ve tvaru |
---|
164 | \begin{equation}\label{eq:J} |
---|
165 | J = \sum_{t=0}^h q(t)^T Q q(t) + \Delta C(t)^T R \Delta C(t) |
---|
166 | \end{equation}, |
---|
167 | kde $Q$ a $R$ jsou diagonální pozitivně definitní matice vah, |
---|
168 | rozepíšeme pomocí vztahu |
---|
169 | \begin{equation}\label{eq:prechod} |
---|
170 | q(t+1) = Aq(t) + Bq(t) |
---|
171 | \end{equation} a budeme minimalizovat pro jednotlivá $t$ podle $\Delta C(t)$. |
---|
172 | $\Delta C(h)$ se v kritériu vyskytuje pouze jako člen |
---|
173 | \begin{equation} |
---|
174 | \Delta C(h)^T R \Delta C(h) |
---|
175 | \end{equation} |
---|
176 | a tedy musí být $\Delta C(h) 0$. $\Delta C(h - 1)$ se vyskytuje ve členech |
---|
177 | \begin{equation} |
---|
178 | \Delta C(h - 1)^T R \Delta C(h - 1) + (q(h - 1)^T A^T + \Delta C(h - 1)^T B^T ) Q ( A q(h - 1) + B \Delta C(h - 1)) |
---|
179 | \end{equation} |
---|
180 | , což lze pomocí složených vektorů a matic přepsat do tvaru |
---|
181 | \begin{equation} \label{eq:J_sloz} |
---|
182 | (\Delta C(h-1)^T, q(h - 1)^T ) |
---|
183 | \left( \begin{array}{cc} |
---|
184 | B^T \sqrt{Q} & \sqrt{R} \\ |
---|
185 | A^T \sqrt{Q} & 0 |
---|
186 | \end{array} |
---|
187 | \right) |
---|
188 | \left( \begin{array}{cc} |
---|
189 | \sqrt{Q} B & \sqrt{Q} A \\ |
---|
190 | \sqrt{R} & 0 |
---|
191 | \end{array} |
---|
192 | \right) |
---|
193 | \left( \begin{array}{c} |
---|
194 | \Delta C(h-1) \\ |
---|
195 | q(h - 1) |
---|
196 | \end{array} |
---|
197 | \right) |
---|
198 | \end{equation}, kde $\sqrt{Q}$ je matice, pro níž platí $\sqrt{Q} \sqrt{Q} = Q$. |
---|
199 | Složenou matici |
---|
200 | \begin{equation} |
---|
201 | \left( \begin{array}{cc} |
---|
202 | B^T \sqrt{Q} & \sqrt{R} \\ |
---|
203 | A^T \sqrt{Q} & 0 |
---|
204 | \end{array} |
---|
205 | \right) |
---|
206 | \left( \begin{array}{cc} |
---|
207 | \sqrt{Q} B & \sqrt{Q} A \\ |
---|
208 | \sqrt{R} & 0 |
---|
209 | \end{array} |
---|
210 | \right) = |
---|
211 | \left( \begin{array}{cc} |
---|
212 | B^T Q B + R & B^T Q A \\ |
---|
213 | A^T Q B & A^T Q A |
---|
214 | \end{array} |
---|
215 | \right) |
---|
216 | \end{equation} |
---|
217 | můžeme pomocí Choleského dekompozici na součin dolní a horní trojúhelníkové matice. |
---|
218 | Člen \ref{eq:J_sloz} poté přejde na tvar |
---|
219 | \begin{equation} |
---|
220 | (\Delta C(h-1)^T, q(h - 1)^T ) |
---|
221 | \left( \begin{array}{cc} |
---|
222 | L_q^T & 0 \\ |
---|
223 | L^T & L_C^T |
---|
224 | \end{array} |
---|
225 | \right) |
---|
226 | \left( \begin{array}{cc} |
---|
227 | L_C & L \\ |
---|
228 | 0 & L_q |
---|
229 | \end{array} |
---|
230 | \right) |
---|
231 | \left( \begin{array}{c} |
---|
232 | \Delta C(h-1) \\ |
---|
233 | q(h - 1) |
---|
234 | \end{array} |
---|
235 | \right) |
---|
236 | \end{equation}, který můžeme dále upravit na |
---|
237 | \begin{equation} |
---|
238 | ( L_C \Delta C(h-1) + L_q q(h-1) )^T ( L_C \Delta C(h-1) + L_q q(h-1) ) + q(h-1)^T L_q^T L_q q(h-1) |
---|
239 | \end{equation}. Pokud tento člen chceme minimalizovat v proměnné $q(h-1)$, musí nutně platit |
---|
240 | \begin{equation} |
---|
241 | \Delta C(h-1) = - L_C^{-1} L q(h-1) |
---|
242 | \end{equation}. Zbývající nenulová část $q(h-1)^T L_q^T L_q q(h-1) $ lze přepsat pomocí rovnice \ref{eq:prechod} do tvaru |
---|
243 | \begin{equation} |
---|
244 | q(h-1)^T L_q^T L_q q(h-1) = ( A q(h-2) + B \Delta C(h-2) )^T L_q^T L_q ( A q(h-2) + B \Delta C(h-2) ) |
---|
245 | \end{equation}, kde se vyskytuje $\Delta C(t)$ pouze pro $t = h-2$. Minimalizace přes |
---|
246 | $\Delta C(h-2)$ bude probíhat analogicky, pouze se matice $Q$ nahradí maticí |
---|
247 | \begin{equation} |
---|
248 | \widetilde{Q} = Q + L_q^T L_q |
---|
249 | \end{equation}, která zahrnuje zbytek po členu s $\Delta C(h-1)$. |
---|
250 | Pro další $\Delta C(t)$ se pouze upraví matice $\widetilde{Q}$ výše popsaným způsoen a minimalizace již probíhá stejně.\\ |
---|
251 | |
---|
252 | DOTAZY:\\ |
---|
253 | QR - obecne nerozklada na trojuhelnikove matice $L L^{-1}$, ale na jednu troj a na druhou ortogonal. |
---|
254 | Cholesky rozklada pouze pozitivně definitní matice - je pozitivně definitní? dokazovat? pouzit QR? |
---|
255 | Matice L se v tomto pripade meni v kazdem kroku. V poradku? |
---|
256 | |
---|
257 | |
---|
258 | |
---|
259 | |
---|
260 | |
---|
261 | |
---|
262 | |
---|
263 | |
---|
264 | |
---|
265 | |
---|
266 | |
---|
267 | \section{Simulace} |
---|
268 | |
---|
269 | \subsection{Simulátor AIMSUN} |
---|
270 | |
---|
271 | \subsection{Oblast simulace} |
---|