经济均衡问题及其应用 (三):交通流均衡问题

例4  某地有如图2所示的一个公路网,每天上班时间有6千辆小汽车要从居民区 A 前往工作区D。经过长期观察,我们得到了图中5条道路上每辆汽车的平均行驶时间和 汽车流量之间的关系,如表4所示,那么,长期来看,这些汽车将如何在每条道路上分布? 


 
 

(1)问题分析

这个问题看起来似乎与前面几个例子完全不同,但实际上交通流与市场经济活动类似,也存在着均衡。

我们可以想象有一个协调者,正如前面几个例子中的所谓中间商可以理解为市场规律一样,实际上这里的所谓协调者也可以认为是交通流的规律。交通流的规律就是每辆 汽车都将选择使自己从 A到D运行时间少的路线,其必然的结果是无论走哪条路线 从 A到D,终花费的时间应该是一样的(否则,花费时间较长的那条线路上的部分 汽车就会改变自己的路线,以缩短自己的行驶时间)。

也就是说,长期来看,这些汽车在每条道路上的分布将达到均衡状态(所谓均衡, 这里的含义就是每辆汽车都不能仅仅通过自身独自改变道路,节省其行驶时间)。在这种想法下,我们来建立线性规划模型。

(2)优化模型

交通流的规律要求所有道路上的流量达到均衡,我们仍然类似例1和例2来考虑问 题。如果车流量是一辆车一辆车增加的,那么在每条道路上车流量小于2时,车流量会有一个分布规律;当某条道路上流量正好超过2时,新加入的一辆车需要选择使自己堵 塞时间短的道路。这就提示我们把同一条道路上的流量分布分解成不同性质的三个部分。也就是说,我们用 Y(AB) 表示道路 AB 上的总的流量,并进一步把它分解成三部分:

i)道路 AB 上的流量不超过2时的流量,用X (2, AB)表示; 

ii)道路 AB 上的流量超过2但不超过3时,超过2的流量部分用 X (3, AB) 表示; 

iii)道路 AB 上的流量超过3但不超过4时,超过3的流量部分用 X (4, AB) 表示。

依次类推,对道路AC,BC,BD,CD , ,, 上同理可以定义类似的决策变量。因此,问题中总共有20个决策变量 \tiny Y_{j} 和 \tiny X(i,j) \tiny \left ( i=2,3,4.\: j=AB,AC,BC,BD,CD \right ) 

问题的目标应当是使总的堵塞时间小。用 \tiny T\left ( i,j \right ) 表示流量\tiny X(i,j) 对应的堵塞时间( 即表3中的数据,是对每辆车而言的),我们看看用  \tiny \sum_{i=2,3,4}\sum_{j}T\left ( i,j\right )X\left ( i,j \right )   [ j为道路] 作为总堵塞时间是否合适。很容易理解:后面加入道路的车辆可能又会造成前面进入道路的车辆的进一步堵塞,如流量为3时,原先流量为2的车辆实际上也只能按 \tiny T\left ( 3,j \right ) 的时间通过,而不是\tiny T\left ( 2,j \right ) 。也就是说, \tiny \sum_{i=2,3,4}\sum_{j}T\left ( i,j\right )X\left ( i,j \right ) 并不是总堵塞时间。但是我们也可以发现\tiny T\left ( i,j \right ) 关于i是单调增加的,即不断增加的车流只会使以前的堵塞加剧而不可能使以前的堵塞减缓。所以,关于决策变量 \tiny X(i,j)而言,  \tiny \sum_{i=2,3,4}\sum_{j}T\left ( i,j\right )X\left ( i,j \right )   [ j为道路]  与我们希望优化的目标的单调性是一致的。因此,可以用  \tiny \sum_{i=2,3,4}\sum_{j}T\left ( i,j\right )X\left ( i,j \right )   [ j为道路] 作为目标函数进行优化。

约束条件有三类:

i)每条道路上的总流量Y 等于该道路上的分流量 X 的和;

ii)道路交汇处A,B,C,D(一般称为节点)的流量守恒(即进入量等于流出量);

iii)决策变量的上限限制,如 \tiny X (2, AB) \leqslant 2 ,X (3, AB) \leqslant 1,X (4, AB) \leqslant 1等。

 于是对应的优化模型很容易直接写出(略)。 

(3)模型求解

编写LINGO程序如下: 

MODEL: 
TITLE 交通流均衡; 
SETS:  
    ROAD/AB,AC,BC,BD,CD/:Y;  
    CAR/2,3,4/;  
    LINK(CAR,ROAD): T, X; 
ENDSETS 
DATA:  
! 行驶时间(分钟) ;  
    T=20,52,12,52,20        
      30,53,13,53,30   
      40,54,14,54,40; 
ENDDATA
[OBJ] MIN=@SUM(LINK: T*X); ! 目标函数; 
! 四个节点的流量守恒条件; 
[NODE_A] Y(@INDEX(AB))+Y(@INDEX(AC)) = 6; 
[NODE_B] Y(@INDEX(AB))=Y(@INDEX(BC))+Y(@INDEX(BD)); 
[NODE_C] Y(@INDEX(AC))+Y(@INDEX(BC))=Y(@INDEX(CD)); 
[NODE_D] Y(@INDEX(BD))+Y(@INDEX(CD))=6; 
! 每条道路上的总流量Y等于该道路上的分流量X的和; 
@FOR( ROAD(I): [ROAD_LIM] @SUM(CAR(J): X(J,I)) = Y(I)); 
! 每条道路的分流量X的上下界设定; 
@FOR(LINK(I,J)|I#EQ#1: @BND(0,X(I,J),2) ); 
@FOR(LINK(I,J)|I#GT#1: @BND(0,X(I,J),1) ); 
END 

可以指出的是,上面4个节点的流量守恒条件中,其实只有3个是独立的(也就是说,第4个条件总可以从其它3个方程推导出来),因此从中去掉任何一个都不会影响到计算结果。

(4)结果解释

LINGO的运行结果表明,均衡时道路 AB,AC,BC,BD,CD的流量分别是4,2,2,2,4(千辆)车。但是要注意,正如我们建立目标函数时所讨论过的,这时得到的目 标函数值452并不是真正的总运行和堵塞时间,而是一个用来表示目标函数趋势的虚拟 的量,没有太多实际物理意义。事实上,可以求出这时的真正运行时间是:每辆车通过AB,AC,BC,BD,CD 道路分别需要40,52,12,52,40(min),也就是在图中三条路线 ABD, ACD,ABCD 上都需要92min,所以这也说明交通流确实达到了均衡。
于是,均衡时真正的总运行时间应该是 6  × 92 =552(千辆车·min)。

(5)模型讨论

仔细想想就会发现,上面的解并不是最优解,即均衡解并不一定是最优的流量分配方案。为了求出使所有汽车的总运行时间小的交通流,应该如何做呢?也就是说,这相当于假设有一个权威的机构来统筹安排,最优地分配这些交通流,而不是像求均衡解 时那样认为各个个体(每辆车)都可以自己选择道路,自然达到平衡状态。

为了进行统筹规划,我们需要把新增的流量 \tiny X(i,j) \tiny \left ( i=2,3,4.\: j=AB,AC,BC,BD,CD \right ) 造成的实际堵塞时间计算出来(仍按每辆车计算),而不是像上面那样不考虑对原有车流造成的堵塞效应。以道路 AB 为例。

i)当流量为2千辆时,每辆车的通过时间为20min,所以总通过时间是40(千辆 车·min);

ii)当流量增加一个单位(本题中一个单位就是1千辆)达到3千辆时,每辆车的 通过时间为30min,所以总通过时间是90(千辆车·min);

iii)当流量再增加一个单位达到4千辆时,每辆车的通过时间为40min,所以总 通过时间是160(千辆车·min)。

由此可见,流量超过2而不超过3时,单位流量的增加导致的总通过时间的变化为 90-40=50(千辆车·min);流量超过3而不超过4时,单位流量的增加导致的总通 过时间的变化为160-90=70(千辆车·min)。 类似地,对所有道路,都可以得到单位流量的增加导致总行驶时间的增量和汽车流 量之间的关系(参加表5)。 

用表5中的总行驶时间的增量数据代替前面模型中的每辆车的行驶时间数据\tiny T\left ( i,j \right ) , 模型的其它部分完全不用变。重新求解LINGO模型,LINGO程序如下: 

MODEL: 
TITLE 交通流均衡; 
SETS:  
    ROAD/AB,AC,BC,BD,CD/:Y;  
    CAR/2,3,4/; 
    LINK(CAR,ROAD): T, X; 
ENDSETS 
DATA:  
! 行驶时间(分钟) ;  
T= 20 52 12 52 20 
   50 55 15 55 50 
   70 57 17 57 70 ; 
ENDDATA 
[OBJ] MIN=@SUM(LINK: T*X); ! 目标函数; 
! 四个节点的流量守恒条件; 
[NODE_A] Y(@INDEX(AB))+Y(@INDEX(AC)) = 6; 
[NODE_B] Y(@INDEX(AB))=Y(@INDEX(BC))+Y(@INDEX(BD)); 
[NODE_C] Y(@INDEX(AC))+Y(@INDEX(BC))=Y(@INDEX(CD)); 
[NODE_D] Y(@INDEX(BD))+Y(@INDEX(CD))=6; 
! 每条道路上的总流量Y等于该道路上的分流量X的和; 
@FOR( ROAD(I): [ROAD_LIM] @SUM(CAR(J): X(J,I)) = Y(I)); 
! 每条道路的分流量X的上下界设定; 
@FOR(LINK(I,J)|I#EQ#1: @BND(0,X(I,J),2) ); 
@FOR(LINK(I,J)|I#GT#1: @BND(0,X(I,J),1) ); 
END 

求得的最优车流分配方式是:道路 AB,AC,BD,CD的流量都是3千辆,而道路BC上没有流量;总(加权)运行时间为498(千辆车·min),优于均衡时的结果552(千 辆车·min)。此时,每辆车的运行时间=498/6=83(min),少于均衡时的92min。 当然,这个最优解必须强制执行,否则 AB 道路上的一些车到底B 点时,发现当前走 BCD的时间只需要 42 3012 = + (min),比走BD的时间(53min)短很多,所以 他们就会改走BCD,导致走BCD的时间(主要是走道路CD的时间)增加;如此下 去,最后终将到达前面我们得到的均衡状态。

这是一个非常有趣的结果:当一个系统中的每个个体都独自追求个体利益大化 时,整体的利益却没有达到最大化。 更令人惊讶的是:这个例子的道路网中如果没有道路BC ,从 A到D的平均时间 是83min;而新开了一条道路BC 以后,从 A到D的平均时间居然变成92min,不是 加快反而减慢了。由此也可以理解,做出一个科学、合理的交通网的规划是一件相当复杂的工作。

  • 1
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值