Appendice A
Risoluzione degli integrali
Per la risoluzione in forma esatta degli integrali presenti nell’espressione (4.17) del Connection delay time e (4.18) del Missed connection delay time si ´e fatto uso di Mathematica 4.0
Il primo passo `e stato quello di definire la funzione erlang:
erlang[t , l , k ] := l ∗ Exp[−l ∗ t] ∗ (l ∗ t)ˆ(k − 1)/Gamma[k − 1] ∗ UnitStep[t]
sfruttando due funzioni gi`a definite in Mathematica, ovvero:
Gamma[k] = k!
Unitstep[t] =
1 per t > 0 0 per t < 0
Nel caso particolare esaminato per`o abbiamo k = 2, quindi si `e provveduto, per semplicit`a, a definire la funzione:
145
erlang2[t , l ] := l ∗ Exp[−l ∗ t] ∗ (l ∗ t) ∗ UnitStep[t]
Il passo successivo `e stato quello di risolvere, uno per uno, i vari integrali: prima per`o `e stato necessario analizzare bene gli estremi di integrazione dei singoli integrali.
Si nota infatti che il range all’interno del quale varia la variabile di integrazione `e tale che ogni volta si deve considerare una erlang e la successiva oppure una erlang e la precedente, appartenenti allo stesso treno di erlang relativo ad una certa linea ferroviaria. Per non commettere errori si `e reso opportuno scrivere preventivamente i vari integrali come soma di due o pi`u contributi in modo che all’interno di ogni singolo contributo la variabile di integrazione variasse all’interno di una stessa Erlang.
A.1 Il Connection delay time
Adottando il metodo suddetto, dalla
Dikj = RK˜ik
Aik−Hikf (tik)dtikRAij+Hij
K˜ij
³
tij − ˜Kij
´
f (tij)dtij +RAik+Hik
K˜ik
RAij+Hij
tik− ˜Kik+ ˜Kij
³
tij − ˜Kij − tik+ ˜Kik
´
f (tij)f (tik)dtijdtik
per 1 6 i 6 n, 1 6 j 6 mi, 1 6 k 6 mi si ricava che (A.1):
Z K˜ik
Aik−Hik
f (tik)dtik = Z K˜ik
0
f (tik)dtik+ Z Hik
Aik
f (tik)dtik
ed anche (vedi A.2, a meno del termine tij − ˜Kij)
Figura A.1:
Figura A.2:
Z Aij+Hij
K˜ij
³
tij − ˜Kij
´
f (tij)dtij = Z Hij
K˜ij
³
tij − ˜Kij
´
f (tij)dtij+ Z Aij
0
³
tij + Hij − ˜Kij
´
f (tij)dtij
quindi il Connection delay time assume la forma:
Dikj = ³RK˜ik
0 f (tik)dtik+RHik
Aik f (tik)dtik
´
³RHij
K˜ij
³
tij − ˜Kij
´
f (tij)dtij +RAij
0
³
tij + Hij − ˜Kij
´
f (tij)dtij
´
+RAik+Hik
K˜ik
RAij+Hij
tik− ˜Kik+ ˜Kij
³
tij − ˜Kij − tik+ ˜Kik
´
f (tij)f (tik)dtijdtik
per 1 6 i 6 n, 1 6 j 6 mi, 1 6 k 6 mi Per la risoluzione diRK˜ik
0 f (tik)dtik+RHik
Aik f (tik)dtik mediante l’uso di Mathematica, essendo Aik = 1/λ, basta scrivere:
Integrate[erlang2[tik, λ], {tik, 0, Kik}]
+Integrate[erlang2[tik, λ], {tik, 1/λ, Hik}, Assumptions− > (λ > 0)]
La soluzione fornita `e:
e−1−Hikλ¡
2eHikλ− e (1 + Hikλ)¢
UnitStep[Hik]
+e−Kikλ¡
−1 + eKikλ− Kikλ¢
UnitStep[Kik]
che, tenuto conto che UnitStep[Hik] = 1 e UnitStep[Kik] = 1, diventa:
e−1−Hikλ¡
2eHikλ − e (1 + Hikλ)¢
+ e−Kikλ¡
−1 + eKikλ− Kikλ¢
(A.1)
Analogamente la soluzione di RHij
K˜ij
³
tij − ˜Kij
´
f (tij)dtij +RAij
0
³
tij + Hij − ˜Kij
´
f (tij)dtij
`e ottenuta da Mathematica come:
Integrate[erlang2[tik, λ], {tik, 0, Kik}]
+Integrate[erlang2[tik, λ], {tik, 1/λ, Hik}, Assumptions− > (λ > 0)]
e, una volta tenuto conto che UnitStep[Hij] = 1, UnitStep[Kij] = 1 e UnitStep[1/λ] = 1, si ottiene:
1
eλ(−5 − 2Hijλ + 2Kijλ + e (2 + Hijλ − Kijλ)) (A.2) +1
λe−Kijλ¡
2 − 2eKijλ+ Kijλ + eKijλKijλ¢
−1
λe−Hijλ¡
2 − 2eHijλ+ 2Hijλ − Kijλ + eHijλKijλ + Hij2λ2− KijHijλ2¢
Si passa quindi a risolvere l’integrale doppio RAik+Hik
K˜ik
RAij+Hij
tik− ˜Kik+ ˜Kij
³
tij − ˜Kij − tik+ ˜Kik
´
f (tij)f (tik)dtijdtik definendo innanzitutto:
erlang3[t , l , H ] : = l ∗ Exp[−l ∗ t] ∗ (l ∗ t) ∗ UnitStep[t] (A.3) +l ∗ Exp[−l ∗ (t − H)] ∗ (l ∗ (t − H)) ∗ UnitStep[t − H]
G[tik , Kik , Kij , λ , Hij ] : = Integrate[(tij − Kij − tik + Kik) ∗ erlang3[tij, λ, Hij], {tij, tik − Kik + Kij, 1/λ + Hij}]
GG[Hik , Kij , Kik , λ , Hij ] : = Integrate[G[tik, Kik, Kij, λ, Hij], {tik, Kik, 1/λ + Hik},
Assumptions− > (Kij > 0)]
quindi chiedendo a Mathematica la soluzione di
GG[Hik, Kij, Kik, λ, Hij] (A.4)
Subito dopo si operano i dovuti raggruppamenti per semplificare la forma del risultato ottenuto e si sostituiscono opportunamente gli UnitStep di cui si conosce per certo il valore (0 oppure 1): l’unico UnitStep rimasto e che andr`a di volta in volta valutato in fase di ottimizzazione `e:
UnitStep[−Hij + Hik + Kij − Kik + 1 λ]
A questo punto non resta che far risolvere a Mathematica l’espressione data da:
A.1*A.2+A.4
Il risultato finale, una volta semplificato mediante il comando Simplify[%] `e:
−e−1−HijλHij2 + HijHik−2HijHik
e − 3e−1−HijλHijHik− Hik2
2 + Hik2
e + e−1−HijλHik2 +e−1−HijλHijKij − HikKij +2HikKij
e + 2e−1−HijλHikKij − HijKik+2HijKik e +3e−1−HijλHijKik+ HikKik− 2HikKik
e − 2e−1−HijλHikKik+ KijKik− 2KijKik e
−2e−1−HijλKijKik− Kik2
2 +Kik2
e + e−1−HijλKik2 + 3
2λ2 − 4
eλ2 + 3e−Kijλ
λ2 − 4e−1−Hijλ λ2
−4e−1−Hikλ−Kijλ+Kikλ λ2 +Hij
λ −2Hij
eλ − 7e−1−HijλHij
2λ +Hik
λ − 3Hik
eλ − 3e−1−HijλHik
λ
−e−1−Hikλ−Kijλ+KikλHik
λ − Kij
λ +2Kij
eλ +e−KijλKij
λ + 2e−1−HijλKij λ
−e−1−Hikλ−Kijλ+KikλKij
λ2 − Kik
λ +3Kik
eλ + 3e−1−HijλKik
λ + e−1−Hikλ−Kijλ+KikλKik λ
−e−1−HijλHij2Hikλ + 1
2e−1−HijλHijHik2λ + e−1−HijλHijHikKijλ + e−1−HijλHij2Kikλ
−e−1−HijλHijHikKikλ − e−1−HijλHijKijKikλ +1
2e−1−HijλHijKik2λ
+1 λ
e−2−Hijλ−Hikλ−Kijλ−Kikλ
2e(Hik+Kik)λ+ e1+Hikλ+Kikλ− e1+Kikλ(1 + Hikλ)
−e1+Hikλ(1 + Kikλ)
e1+Hijλ+Kijλ(2 + Hijλ − Kijλ) + e1+Hijλ(2 + Kijλ) +e(Hij+Kij)λ(−5 − 2Hijλ + 2Kijλ)
+e1+Kijλ¡
−2 + Kijλ − Hij2λ2+ Hijλ (−2 + Kijλ)¢
+ 1 2λ2
e−1−Hikλ−KijλUnitStep[−Hij + Hik+ Kij − Kik+ 1λ]
2e(Hij+Kij)λ(−4 + Hijλ − Hikλ − Kijλ + Kikλ) + e1+Hikλ+Kijλ
3 − 2Kijλ + 2Kikλ + Hij2λ2+ Hik2λ2+ Kij2λ2− 2KijKikλ2 +Kik2λ2+ 2Hikλ (−1 + Kijλ − Kikλ)
−2Hikλ (−1 + Hikλ + Kijλ − Kikλ)
Analogamente a quanto gi`a visto per il Connection delay time, dalla
Mikj = hRAik+Hik
K˜ik f (tik)dtikRK˜ij
Aij−Hijf (tij)dtiji Hij+ hRAik+Hik
K˜ik
Rtik− ˜Kik+ ˜Kij
K˜ij f (tij)f (tik)dtijdtik i
Hij
si ricava che (A.3):
Z Aik+Hik
K˜ik
f (tik)dtik = Z Hik
K˜ik
f (tik)dtik+ Z Aik
0
f (tik)dtik
ed anche (A.4)
Z K˜ij
Aij−Hij
f (tij)dtij = Z Hij
Aij
f (tij)dtij + Z K˜ij
0
f (tij)dtij
quindi il Missed connection delay time assume la forma:
Mikj = ³RHik
K˜ik f (tik)dtik+RAik
0 f (tik)dtik
´
³RHij
Aij f (tij)dtij +RK˜ij
0 f (tij)dtij
´ Hij
+hRAik+Hik
K˜ik
Rtik− ˜Kik+ ˜Kij
K˜ij f (tij)f (tik)dtijdtik i
Hij per 1 6 i 6 n, 1 6 j 6 mi, 1 6 k 6 mi
Per la risoluzione diRHik
K˜ik f (tik)dtik+RAik
0 f (tik)dtikmediante l’uso di Mathematica, essendo Aik = 1/λ, basta scrivere:
Figura A.3:
Figura A.4:
Integrate[erlang2[tik, λ], {tik, Kik, Hik}]
+Integrate[erlang2[tik, λ], {tik, 0, 1/λ}, Assumptions− > (1\/λ > 0)]
che, tenuto conto che UnitStep[Hik] = 1, UnitStep[Kik] = 1 e UnitStep[1/λ] = 1, diventa:
−−2 + e
e + e−Hikλ¡
−1 + eHikλ− Hikλ¢
− e−Kikλ¡
−1 + eKikλ− Kikλ¢
(A.5)
Analogamente la soluzione di RHij
Aij f (tij)dtij +RK˜ij
0 f (tij)dtij
`e ottenuta da Mathematica come:
Integrate[erlang2[tij, λ], {tij, 1/λ, Hij}] + Integrate[erlang2[tij, λ], {tij, 0, Kij}]
e, una volta tenuto conto che UnitStep[Hij] = 1, UnitStep[Kij] = 1 e UnitStep[1/λ] = 1, si ottiene:
e−Kijλ¡
−1 + eKijλ− Kijλ¢
− −2 + e
e + e−Hijλ¡
−1 + eHijλ − Hijλ¢
(A.6)
Si passa quindi a risolvere l’integrale doppio RAik+Hik
K˜ik
Rtik− ˜Kik+ ˜Kij
K˜ij f (tij)f (tik)dtijdtik definendo questa volta:
G[tik , Kik , Kij , λ , Hij ] := Integrate[erlang3[tij, λ, Hij], {tij, Kij, tik−Kik+Kij}]
GG[Hik , Kij , Kik , λ , Hij ] : = Integrate[G[tik, Kik, Kij, λ, Hij], {tik, Kik, 1/λ + Hik},
Assumptions− > (Kij > 0)]
essendo erlang3 (A.3) la stessa funzione gi`a definita e quindi chiedendo a Mathe- matica la soluzione di
GG[Hik, Kij, Kik, λ, Hij] (A.7)
A questo punto si operano i dovuti raggruppamenti per semplificare la forma del risultato ottenuto e si sostituiscono gli UnitStep di cui si conosce il valore: l’unico UnitStep rimasto e che andr`a di volta in volta valutato in fase di ottimizzazione `e:
UnitStep[−Hij + Hik + Kij − Kik + 1/λ]
A questo punto non resta che far risolvere a Mathematica l’espressione data da:
Hij ∗ (A.5 ∗ A.6 + A.7)
Il risultato finale, una volta semplificato mediante il comando Simplify[%] `e:
Hije−Kijλ
Hik+ e−1−Hikλ+KikλHik+ e−1−Hikλ+KikλKij − Kik− e−1−Hikλ+KikλKik
−1λ +3e−1−Hikλ+Kikλ
λ + HikKijλ − KijKikλ + e−2−Hijλ−Hikλ+Kikλ
2e(Hij+Kij)λ+ e1+Hijλ+Kijλ
−e1+Kijλ(1 + Hijλ) − e1+Hijλ(1 + Kijλ)
−2e(Hik+Kik)λ+ e1+Hikλ+Kikλ
−e1+Kikλ(1 + Hikλ) − e1+Hikλ(1 + Kijλ)
−
e−1−Hikλ
e(Hij+Kik)λ(−3 + Hijλ − Hikλ − Kijλ + Kikλ) +e1+Hikλ+Kijλ(1 + Hijλ − Hikλ − Kijλ + Kikλ)
UnitStep[−Hij + Hik+ Kij − Kik+λ1]
λ
Bibliografia
[1] Regione Toscana (2001) Trasporto pubblico in Toscana: il futuro `e nella qualit`a, la REGIONE TOSCANA anno IX(2), 8-23.
[2] Ministero dell’Istruzione, dell’Universit`a e della Ricerca (2002) Linee guida per la programmazione dei servizi di Trasporto Pubblico Locale, Laruffa Editore, 55-64.
[3] Maria Angela Puglisi e Carla Canali (2002) Cultura urbana e trasporti, trasporti&cultura annoII(2), 58-61.
[4] Milan Janic e Aura Reggiani (2001) Integrated transport systems in the European Union: an overview of some recent developments, Transport Reviews 21(4), 469- 497.
[5] Shoaib M. Chowdhury e Steven I-JY Chien (2002) Intermodal transit system coordination, Transportation Planning and Technology 25(4), 257-287.
[6] Giulio Bernetti, Roberto Camus e Giovanni Longo (2000) Specificazione e cali- brazione di un modello di ripartizione modale per la mobilit`a extraurbana delle persone, Metodi e tecnologie dell’ingegneria dei trasporti, FrancoAngeli, 115-126.
157
transport, Transportation Science 29, pp. 101-105.
[8] Institute of Transportation Engineers Statistical distribution of traffic character- istics, Transportation and Traffic Engineering Handbook, (Wolfang S.Hamburge Editor, Louis E.Keefer and William R.McGrath Associate Editors), 443-448.
[9] Robert Fourer, David M. Gay, Brian W. Kernighan (2002) AMPL: A Modeling Language For Mathematical Programming, boyd & fraser publishing company.