自学内容网 自学内容网

2010年认证杯SPSSPRO杯数学建模B题(第一阶段)交通拥堵问题全过程文档及程序

2010年认证杯SPSSPRO杯数学建模

交通拥堵问题

B题 Braess 悖论

原题再现:

  Dietrich Braess 在 1968 年的一篇文章中提出了道路交通体系当中的Braess 悖论。它的含义是:有时在一个交通网络上增加一条路段,或者提高某个路段的局部通行能力,反而使所有出行者的出行时间都增加了,这种为了改善通行能力的投入不但没有减少交通延误,反而降低了整个交通网络的服务水平。人们对这个问题做过许多研究,在城市建设当中也尽量避免这种现象的发生。但在复杂的城市道路当中,Braess 悖论仍然不时出现,造成实际交通效率的显著下降。在此,请你通过合理的模型来研究和解决城市交通中的 Braess 悖论。
  第一阶段问题:
  (1) 通过分析实际城市的道路交通情况(自行查询的数据需给出引用来 1源),建立合理的模型,判断在北京市二环路以内的路网中(包括二环路)出现的交通拥堵,是否来源于 Braess 悖论所描述的情况。
  (2) 请你建立模型以分析:如果司机广泛使用可以反映当前交通拥堵情况的GPS 导航系统,是否会缓解交通堵塞,并请估计其效果。

整体求解过程概述(摘要)

  本文首先通过对非合作网络中 Nash 平衡点与 Pareto 边界理论的分析,通过单起点单终点的简单路网入手, 分析 Braess 悖论的成因,Braess 悖论实质上是非合作网络中 Nash 平衡点不满足 Pareto 最优性时出现的现象。定量的给出出行时间与流量的关系,这里引入了路段延迟参数的概念,量化得到延迟参数与路段流量,出行时间,出行密度之间的关系。进而通过建立北京二环区交通路网模型,拟合出 flow ~ / L speed 关系曲线,得到各路段的延迟参数,进而得到单月内北京二环区 Pareto 最优解的判别条件。
  其次,根据 Pareto 边界理论,我们以年月为单位统计北京二环以内交通流量因素,得到城区交通年延迟参数,并计算了共 120 个月的延迟参数。接着,我们构建了 Nash 均衡原理模型,引入了路段 Nash 平衡比率的概念,即当某一时间范围内,路段 Nash 平衡比率低于路段延迟参数时,则发生了 Braess 悖论,当同时又满足 Nash平衡波动率超过 30%时,为严重 Braess 悖论,从而完善了 Nash 平衡比率理论方程。
  再次,根据已建立的 Nash 平衡比率理论方程,在此基础上构建小波神经网络来对北京二环区交通路网路段 Nash 平衡比率进行预测,这里我们将选择路段延迟参数为样本,根据路段延迟参数与路段 Nash平衡比率的动态关系式,对路段 Nash 平衡比率进行计算。得到结果:东城区,朝阳区路段常年持续存在 BRAESS悖论情况(平均每年超过 6 个月)。尽管我们发现坛路拓宽,普方路拓宽,永定门桥延修,天坛路改道会给北京二环区南部路段带来交通改善,但结果显示,整个北京二环路段的交通情况的平衡性变得更不稳定,BRAESS 悖论情况更加突出。譬如在 2006 年,2009 年的东城区,朝阳区路段堵塞问题更加尖锐,这也使得本来相对通畅的南段也出现 BRAESS 悖论情况。
  接着,我们建立了 GPS 动态导航的车辆运行模型,量化得到了时耗期望值和时耗方差两个目标函数并作为 ATM 路由选择的约束条件,以降低 Nash 平衡比率为目标,通过ATM 路由选择进行 GPS 导航对路段影响的预测。当我们控制业务源提高 GPS 使用率时,路段 NASH 平衡比率也持续上升,使用率升至 0.34 时,NASH 平衡比率上升幅度最大化。
  最后,我们通过灰色 Gompertz 模型对 ATM 路由选择算法进行误差分析,检验结果表明此抽检方案为合理方案,误差范围 5.84%。通过遗传算法对路段 Nash 平衡比率进行优化,得到最优化后的结果,证明了ATM路由选择算法对GPS动态导航研究的可靠性。

问题分析

  首先分析单一路段在单一时间范围内的 BRAESS 悖论情况,然后以北京二环以内的综合路段为考虑对象,天坛路拓宽,普方路拓宽,永定门桥延修,天坛路改道的 NASH 平衡比率,并通过 MATLAB 工具 CHIP()提取出月波动率超过 30%的比率数进行标定,同时,我们将近十年的北京二环以内主要路段的 BRAESS 悖论情况进行分析,并讨论 GPS 动态导航对路段BRAESS 悖论现象的影响。

模型的假设:

  (1)天气因素对 BRAESS 悖论的影响忽略不计
  (2)《北京交通发展年报》及《全市综合交通调查》提供了精确无误的数据
  (3)北京市区内地铁路线改造的影响忽略不计。

论文缩略图:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

部分程序代码:(代码和文档not free)

% III 为预测点 
% X 为预测序列(一行) 
% X0X 为预测值(对有 III 而言) 
% Q0Q 为预测精度 
% PP 为小误差概率 
% C 为后验误差比 
% PP>0.95 或 C<0.351() 
% PP>0.80 或 C<0.502(合格) 
% PP>0.70 或 C<0.653(勉强合格) 
% PP<=0.70 或 C>=0.654(不合格) 
% 
% AUA=[A;U;UA;XUA]; 
% XEG=[XG;EG]; 
% PPC=[PP;C]; 
FUNCTION [X0X,Q0Q,PPC,PDDSTR,XII,AUA,XEG]=GM11(X,III); 
%%%%%%%%%%%%%%%%%%%%%%% 
 
%例子 
%X=[3.711 3.723 3.716 3.721 3.728] 
%X=[2.67 3.13 3.25 3.36 3.56 3.72] 
% X=[2.97 3.23 3.29 3.46 3.59 3.71] 
%X=[43.45 47.05 52.75 57.14 62.64 68.52] 
% X=[3.38 4.27 4.55 4.69 5.59] 
% X=[4.24 4.33 5.20 6.42 7.32 8.53 8.82 10.72] 
% 
% X=[3.38 4.27 4.55 4.69 5.59] 
% III=[ 5 6 7 8 9 10 11] 
% III=[] 
 
%%%%%%%%%%%%%%%%%%%%%%% 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%% %% 
%% 一、数据处理 %% 
%% %% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
%1 建立 X1 生成数列 
%FORMAT LONG 
A12=SIZE(X); 
N=A12(2); 
X1=ONES(1,N); 
X1(1)=X(1); 
FOR I=2:N 
 X1(I)=X1(I-1)+X(I); 
END 
X1; 
%2 构造数据距阵 B 和数据向量 YN: 
B=ONES(N-1,2); 
FOR I=1:N-1 
 B(I,1)=(-0.5)*(X1(I)+X1(I+1)); 
END 
YN=ONES(N-1,1); 
FOR I=2:N 
 YN(I-1,1)=X(I); 
END 
B; 
YN; 
%3 计算 B'B,INV(B'B)和 B'YN;得到参数 A 和 U 
%BTB=B'*B;% 
%BTB=INV(BTB); 
%BTYN=B'*YN; 
%AU=BTB*BTYN; 
AU=INV(B'*B)*B'*YN; 
 
 
A=AU(1,1); 
U=AU(2,1); 
 
% FPRINTF('参数 A:%F\N',A); 
% FPRINTF('参数 U:%F\N',U); 
UA=U/A; 
XUA=X(1)-UA; 
%4 得出预测模型 
%预测第 I 的预测值 
%有问题 
 
% XI1=XUA*EXP((-A)*I)+UA;% 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% 
%% %% 
%% 二、模型检验 %% 
%% %% 
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%5:残差检验 
%51 计算 X1 
X1=ONES(1,N); 
FOR I=1:N 
 X1(I)=XUA*EXP((-A)*(I-1))+UA; 
END 
X1; 
%52 累减生成 X0 序列 
X0=ONES(1,N); 
X0(1)=X1(1); 
FOR I=2:N 
 X0(I)=X1(I)-X1(I-1); 
END 
X0; 
%53 计算绝对误差及相对误差序列 
DD=ABS(X0-X);%计算绝对误差序列 
DDD=(DD./X).*100;%计算相对误差序列 X% 
% FPRINTF('相对误差序列:'); 
% FPRINTF('%F%% ',DDD); 
% FPRINTF('\N'); 
%6 进行关联度检验 
%61 计算序列绝对误差 XX 
XX=ONES(1,N); 
FOR I=1:N 
 XX(I)=X(I)-X0(I); 
END 
% FPRINTF('序列绝对误差:'); 
% FPRINTF('%F ',XX); 
% FPRINTF('\N'); 
 
MINXX=MIN(DD); 
% FPRINTF('最小差:'); 
% FPRINTF('%F ',MINXX); 
% FPRINTF('\N'); 
 
MAXXX=MAX(DD); 
% FPRINTF('最大差:'); 
% FPRINTF('%F ',MAXXX); 
% FPRINTF('\N'); 
%62 计算关联系数 P=0.5 (则 R=0.6) 
P=0.5; 
NI=ONES(1,N);
FOR I=1:N 
 NI(I)=(MINXX+P*MAXXX)/(DD(I)+P*MAXXX); 
END 
%63 计算关联度,(P=0.5 时,则 R=0.6) 
R=(1/N)*SUM(NI); 
% FPRINTF('请查找 P=0.5 是的检验准则 R=0.6 是否大于%F\N',R); 
%7 后验差检验 
%71 
XM=MEAN(X); 
%72 求的均方差 
S1=(SUM((X-XM).^2)/(N-1))^(1/2); 
%73 计算残差的均值 
DDM=MEAN(DD); 
%74 计算残差的均方差 
S2=(SUM((DD-DDM).^2)/(N-1))^(1/2); 
%75 计算后验误差比 C: 
C=S2/S1; 
% FPRINTF('验误差比 C:%F\N',C); 
%76 计算小误差概率 
%%%%%%%%%%%%%% 
 
PR=ABS(XX-MEAN(XX))<0.6745*S1; %M 满足条件的样本 
PA=SIZE(FIND(PR==1)); 
PS=PA(1,2); %M 满足条件的样本个数 
PB=SIZE(PR); 
PS=PB(1,2); %M 总样本个数 
 
PP=PS/PS; %小误差概率 
% FPRINTF('小误差概率 PP:%F\N',PP); 
 
%%%%%%%%%%%%%%%% 
%检验 预测精度 YCD 
 
% FPRINTF(' PP>0.95 或 C<0.351()\N PP>0.80 或 C<0.502(合格)\N PP>0.70 或 C<0.653(勉强合格)\N PP<=0.70 
或 C>=0.654(不合格)\N\N',C); 
IF PP>0.95 
 PD=1; 
% FPRINTF(' 因 PP>0.95'); 
END 
IF PP<=0.95&PP>0.80 
 PD=2; 
% FPRINTF(' 因 PP<=0.95&PP>0.80'); 
END
IF PP<=0.80&PP>0.70 
 PD=3; 
% FPRINTF(' 因 PP<=0.80&PP>0.70'); 
END 
IF PP<=0.70 
 PD=4; 
% FPRINTF(' 因 PP<=0.70'); 
END 
 
PD1=0; 
IF C<0.35 
 PD1=1; 
% FPRINTF('C<0.35'); 
END 
IF C>=0.35&C<0.50 
 PD1=2; 
% FPRINTF('C>=0.35&C<0.50'); 
END 
IF C>=0.50&C<0.65 
 PD1=3; 
% FPRINTF('C>=0.50&C<0.65'); 
END 
IF C>=0.65 
 PD1=4; 
% FPRINTF('C>=0.65'); 
END 
 
PDD=MAX(PD,PD1); 
 
IF PDD==1 
 PDDSTR='1 级(好)'; 
% FPRINTF(' 故根据经验,预测精度为 1 级(好)\N\N'); 
END 
IF PDD==2 
 PDDSTR='2 级(合格)' ; 
% FPRINTF(' 故根据经验,预测精度为 2 级(合格)\N\N'); 
END 
IF PDD==3 
 PDDSTR='3 级(勉强合格)'; 
% FPRINTF(' 故根据经验,预测精度为 3 级(勉强合格)\N\N'); 
END 
IF PDD==4 
 PDDSTR='4 级(不合格)'; 
% FPRINTF(' 故根据经验,预测精度为 4 级(不合格)\N\N');
全部论文及程序请见下方“ 只会建模 QQ名片” 点击QQ名片即可

原文地址:https://blog.csdn.net/weixin_43292788/article/details/137952423

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!