Skip to content

Commit cbf4180

Browse files
committed
update
1 parent 215a8b7 commit cbf4180

File tree

2 files changed

+57
-18
lines changed

2 files changed

+57
-18
lines changed

16-mcm-b/NetFlow.py

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
inf = float('inf')
55

66

7-
def netflow(OD, T0, C, n=100, alpha=1, beta=2):
7+
def netflow(OD, T0, C, n=100, alpha=1, beta=.5):
88
m = len(T0)
99

1010
# 初始化
@@ -28,7 +28,7 @@ def updateT():
2828
updateQ(OD/n, P)
2929
T = updateT()
3030

31-
return Q, T
31+
return Q, T, T/T0 - 1
3232

3333

3434
if __name__ == "__main__":
@@ -40,9 +40,9 @@ def updateT():
4040
[inf, inf, inf, inf]
4141
])
4242
OD = np.array([
43-
[0, 0, 0, 1000],
44-
[0, 0, 0, 0],
43+
[0, 200, 0, 1000],
4544
[0, 0, 0, 0],
45+
[0, 0, 0, 200],
4646
[0, 0, 0, 0]
4747
])
4848
C = np.array([
@@ -52,26 +52,37 @@ def updateT():
5252
[1, 1, 1, 1]
5353
])
5454

55-
def evalue(Q,T):
55+
56+
def evalue(Q, T, J):
5657
RT = T[(T != inf)]
5758
QT = (Q*T).flatten()
5859
QT = QT[~np.isnan(QT)]
59-
J = (T/T0).flatten()
60+
J = J.flatten()
6061
J = J[~np.isnan(J)]
6162
return {
62-
'平均道路通行时间':np.mean(RT),
63-
'加权路网通行时耗':np.sum(QT),
64-
'路网拥堵指数':np.mean(J)
63+
'平均道路通行时间': np.mean(RT),
64+
'加权路网通行时耗': np.sum(QT),
65+
'路网拥堵指数': np.mean(np.log(J))
6566
}
6667

6768
print('增加道路1-4之前:')
68-
Q, T = netflow(OD,T0,C)
69+
Q, T, J = netflow(OD, T0, C)
6970
print('Q=', Q)
70-
print('evalue=',evalue(Q,T))
71+
print('J=', J)
72+
eval0 = evalue(Q, T, J)
73+
print('evalue=', eval0)
7174

7275
print('增加道路1-4之后:')
73-
T0[0,3] = 1.5
74-
C[0,3] = 100
75-
Q, T = netflow(OD,T0,C)
76+
T0[0, 3] = 1.5
77+
C[0, 3] = 75
78+
Q, T, J = netflow(OD, T0, C)
7679
print('Q=', Q)
77-
print('evalue=',evalue(Q,T))
80+
print('J=', J)
81+
eval1 = evalue(Q, T, J)
82+
print('evalue=', eval1)
83+
84+
def eval_enhance(eval0,eval1):
85+
for (k, v0), (_, v1) in zip(eval0.items(), eval1.items()):
86+
print(f'{k} 提高:{(v0-v1)/v0*100}%')
87+
print('网络提升效果:')
88+
eval_enhance(eval0,eval1)

16-mcm-b/netflow.md

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ $$
1616
| $$T_0$$ | 邻接矩阵/常量 | 自由流时间的邻接矩阵 |
1717
| Q | 邻接矩阵/变量 | 交通流量的邻接矩阵 |
1818
| C | 邻接矩阵/常量 | 路段的实际基础通行能力 |
19-
| $$\alpha$$ | 常数 | |
20-
| $$\beta$$ | 常数 | |
19+
| $$\alpha$$ | 常数/1 | |
20+
| $$\beta$$ | 常数/0.5 | |
2121

2222
#### O-D矩阵
2323

@@ -49,4 +49,32 @@ $$
4949

5050
按照Q,根据公式,更新T
5151

52-
重复2-4,共n次,将全部OD矩阵流量分配
52+
重复2-4,共n次,将全部OD矩阵流量分配
53+
54+
### 一些评价指标
55+
56+
#### 路网拥堵指数(道路抗阻系数)
57+
58+
$$
59+
J = \alpha(\frac QC)^{\beta}
60+
$$
61+
62+
> 这里J也是邻接矩阵
63+
64+
取平均值
65+
$$
66+
\bar J = \frac{\sum_i^n\sum_j^nJ_{ij}}{n^2}
67+
$$
68+
69+
#### 加权路网通行时耗
70+
71+
$$
72+
QT = \sum_i^n\sum_j^nQ_{ij}\cdot T_{ij}
73+
$$
74+
75+
#### 平均道路通行时间
76+
77+
$$
78+
T=\frac{\sum_i^n\sum_j^nT_{ij}}{n^2}
79+
$$
80+

0 commit comments

Comments
 (0)