1
+ function [k ,P ,T ,v ] = optimize_dummy(l_a ,l_b )
2
+ % scenario based
3
+ % l_a: lanes for ped on road A
4
+ % l_b: lanes for ped on road B
5
+
6
+ % road A is Balboa Blvd
7
+ % road B is Newport Blvd
8
+ % dummy variables/parameters
9
+
10
+ % we are using Q directly from liwei right now. We might want to change it
11
+ % after aug factor done
12
+
13
+ q_a_veh = 0.04 ; % veh/sec
14
+ q_b_veh = 0.03 ; % veh/sec
15
+
16
+ q_liwei = 1600 / 3600 ; % ped/sec
17
+
18
+ psg = 4 ; % ren/veh
19
+
20
+ % population in 4 shapes
21
+ P1 = 200 ;
22
+ P2 = 284 ;
23
+ P3 = 4000 ;
24
+ P4 = 16200 ;
25
+
26
+ V_on = 20000 ; % veh
27
+
28
+ Q_a_ped = l_a * q_liwei ; % ped flow on A
29
+ Q_b_ped = l_b * q_liwei ; % ped flow on B
30
+
31
+
32
+ % optimization
33
+ cvx_begin
34
+ variables k(1) T_a_veh(1) T_a_ped(1) T_b_veh(1) T_b_ped(1) P_a_ped(1) P_a_veh(1) P_a_out(1) P_b_ped(1) P_b_veh(1) P_b_out(1)
35
+
36
+ % k: percentage of people on big island to road A
37
+
38
+
39
+ maximize((4 - l_a )*q_a_veh * T_a_veh + (4 - l_b )*q_b_veh * T_b_veh )
40
+ subject to
41
+
42
+ % road A
43
+ P_a_ped == Q_a_ped * T_a_ped ; % people get out in ped on A
44
+ P_a_veh == psg *(4 - l_a )*q_a_veh * T_a_veh ; % people get out in veh on A
45
+ P_a_out == P_a_veh + P_a_ped ;
46
+
47
+ % road B
48
+ P_b_ped == Q_b_ped * T_b_ped ; % people get out in ped on B
49
+ P_b_veh == psg *(4 - l_b )*q_b_veh * T_b_veh ; % people get out in veh on B
50
+ P_b_out == P_b_veh + P_b_ped ;
51
+
52
+ % in flow = out flow, every one out!
53
+ P_a_out == P4 * k + P1 ;
54
+ P_b_out == P4 *(1 - k ) + P2 + P3 ;
55
+
56
+ % time within 4 hours
57
+ T_a_veh <= 14400 ;
58
+ T_a_ped <= 14400 ;
59
+ T_b_veh <= 14400 ;
60
+ T_b_ped <= 14400 ;
61
+ T_a_veh >= 0 ;
62
+ T_a_ped >= 0 ;
63
+ T_b_veh >= 0 ;
64
+ T_b_ped >= 0 ;
65
+
66
+ % count vehicles
67
+ (4 - l_a )*q_a_veh * T_a_veh + (4 - l_b )*q_b_veh * T_b_veh <= V_on ; % cannot use more cars
68
+
69
+ % split factor
70
+ k >= 0 ;
71
+ k <= 1 ;
72
+ cvx_end
73
+
74
+ P = [P_a_ped ; P_a_veh ; P_a_out ; P_b_ped ; P_b_veh ; P_b_out ];
75
+ T = [T_a_veh ; T_a_ped ; T_b_veh ; T_b_ped ];
76
+ v = (4 - l_a )*q_a_veh * T_a_veh + (4 - l_b )*q_b_veh * T_b_veh ;
77
+ return
78
+ end
0 commit comments