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名片即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/710.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

开发语言漫谈-Vue

Vue严格说来不是一门语言&#xff0c;它是Javascript的一个框架。如同Spring是Java语言的一个框架。只是当下为了开发效率&#xff0c;很少有人使用原生Javascript&#xff0c;多少得选择某种框架。类似的框架实在太多&#xff0c;bootstrap、layui、Angular、jQuery、react、E…

深度学习知识点:循环神经网络(RNN)、长短期记忆网络(LSTM)、门控循环单元(GRU)

深度学习知识点&#xff1a;循环神经网络&#xff08;RNN&#xff09;、长短期记忆网络&#xff08;LSTM&#xff09;、门控循环单元&#xff08;GRU&#xff09; 前言循环神经网络&#xff08;RNN&#xff09;RNNs&#xff08;循环神经网络&#xff09;训练和传统ANN&#xff…

VulBG: 构建行为图加强基于深度学习的漏洞检测模型

近年来&#xff0c;人们提出了基于深度学习&#xff08;DL&#xff09;的漏洞检测系统&#xff0c;用于从源代码中自动提取特征。这些方法在合成数据集上可以实现理想的性能&#xff0c;但在检测真实世界的漏洞数据集时&#xff0c;准确率却大幅下降。此外&#xff0c;这些方法…

OpenHarmony网络协议通信—nanopb

简介 nanopb是一种小代码量的协议缓冲区实现&#xff0c;适用于任何内存受限的系统。 下载安装 直接在OpenHarmony-SIG仓中搜索nanopb并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 将下载的Nanopb库代码存在以下路径&#xff1a;./third_party/nanopb 修改添…

docker安装并跑通QQ机器人实践(3)-bs-nonebot搭建

NoneBot2 是一个现代、跨平台、可扩展的 Python 聊天机器人框架&#xff08;下称 NoneBot&#xff09;&#xff0c;它基于 Python 的类型注解和异步优先特性&#xff08;兼容同步&#xff09;&#xff0c;能够为你的需求实现提供便捷灵活的支持。同时&#xff0c;NoneBot 拥有大…

如何在 Netlify 上手动部署 React 和 TypeScript 项目

在本教程中&#xff0c;我将教你如何使用 Vite 在 Netlify 上手动部署 React 和 TypeScript 项目。我将向你展示一些快速简单的步骤&#xff0c;让你的项目能够立即运行。 要跟着本教程操作&#xff0c;有几个先决条件&#xff1a; 一个现有的 React 和 TypeScript 项目&…

Https 中的CA证书

先理清整体的流程&#xff0c;再去看ca证书&#xff0c;对称加密&#xff0c;非对称加密 HTTPS的工作原理涉及非对称加密技术&#xff0c;其中根证书起着至关重要的作用。以下是其工作流程&#xff1a; 数字证书&#xff1a;服务器必须首先向认证机构&#xff08;CA&#xff…

常见经典目标检测算法

目标检测是计算机视觉中的一个关键任务&#xff0c;它的目的是识别图像中的对象&#xff0c;并给出它们的类别和位置。以下是一些常见的经典目标检测算法&#xff1a; 1. **R-CNN (Region-based Convolutional Neural Network)**: - R-CNN是目标检测领域的开创性工作&#…

bug(警告):[vue-router] Duplicate named routes definition: …

查看警告&#xff1a;[vue-router] Duplicate named routes definition——翻译[vue-router]重复命名路由定义 小编劝诫&#xff1a;当我们在开发过程中警告也一定不要忽略&#xff0c;虽然你在本地跑代码时这些警告影响项目的正常运行&#xff0c;但是会让你产生误区&#xff…

OSPGF高级实验综合

1.实验拓扑 二.实验要求 1、R4为ISP&#xff0c;其上只配置IP地址&#xff1b;R4与其他所直连设备间均使用公有IP&#xff1b; 2、R3-R5、R6、R7为MGRE环境&#xff0c;R3为中心站点&#xff1b; 3、整个OSPF环境IP基于172.16.0.0/16划分&#xff1b;除了R12有两个环回&#x…

深入理解JAVA垃圾收集器CMS,G1工作流程原理 GC流程图 什么社会触发Minor GC?触发MinorGC过程。Full GC 过程。

java CMS&#xff0c;G1垃圾收集器工作流程原理浅析 JVM内存空间基础知识点&#xff08;基于JDk1.8&#xff09; 1.方法区&#xff1a;逻辑概念&#xff0c;元空间&#xff0c;方法区主要用于存储类的信息、常量池、方法数据、方法代码等。方法区逻辑上属于堆的一部分&#xf…

数据结构-动态规划策略

动态规划 1.理解动态规划思想 基本概念 重叠子问题:原问题可以分解为若干个子问题&#xff0c;且这些子问题之间存在重复部分。也就是说&#xff0c;为了解决一个子问题&#xff0c;我们需要多次求解相同的子子问题。例如&#xff0c;在计算斐波那契数列时&#xff0c;计算第n项…

java实现chatGPT SDK

搭建一个 ChatGPT-SDK 组件工程&#xff0c;专门用于封装对 OpenAI 接口的使用。由于 OpenAI 接口本身较多&#xff0c;并有各类配置的设置&#xff0c;所以开发一个共用的 SDK 组件&#xff0c;更合适我们在各类工程中扩展使用 整个流程为&#xff1a;以会话模型为出口&#x…

C++笔试强训day3

目录 1.简写单词 2.dd爱框框 3.除2&#xff01; 1.简写单词 链接 我的思路超级简单&#xff0c;就是将输入的每个string存入vector&#xff0c;然后遍历每个string的第一个元素&#xff0c;如果为小写字母&#xff0c;就-32存入&#xff0c;若为大写&#xff0c;则直接存入。…

Docker in Docker的原理与实战

Docker in Docker&#xff08;简称DinD&#xff09;是一种在Docker容器内部运行另一个Docker实例的技术。这种技术允许用户在一个隔离的Docker容器中创建、管理和运行其他Docker容器&#xff0c;从而提供了更灵活和可控的部署选项。以下是DinD的主要特点&#xff1a; 隔离性&am…

react 封装请求axios,直接调用即可

概要 我们在开发项目的时候&#xff0c;常常会遇到接口请求的问题的&#xff0c;若我们不进行接口的统一管理&#xff0c;代码开发不仅多而且很麻烦容易出错&#xff0c;也不利于项目的维护。下面我们一下学习下react项目中将如何封装请求&#xff0c;也从另一个方面中少写一些…

Maven实战—搭建微服务 Maven 工程架构

需求案例&#xff1a;搭建一个电商平台项目&#xff0c;该平台包括用户服务、订单服务、通用工具模块等。 项目架构&#xff1a; 用户服务&#xff1a;负责处理用户相关的逻辑&#xff0c;例如用户信息的管理、用户注册、登录等。订单服务&#xff1a;负责处理订单相关的逻辑…

mac 使用nvm配置nodejs

您可以按照以下步骤在Mac上安装指定版本的Node.js&#xff1a; 首先&#xff0c;请确保您已经安装了Homebrew。如果没有&#xff0c;请在终端中运行以下命令来安装Homebrew&#xff1a; /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install…

Swift网络编程

Swift网络编程涉及到一些重要的方面&#xff0c;包括URLSession的使用、数据解析&#xff08;JSON/XML&#xff09;以及网络请求的封装与管理。下面将详细介绍这三个方面的内容。 1.URLSession的使用: URLSession是Swift中用于网络请求的核心类。它提供了一系列方法来创建和管…

使用示例解释.NET中的Mocking是什么?

让我们踏上探索.NET软件开发中Mocking概念的旅程&#xff0c;让我们深入了解Mocking是多么简单易懂、易于访问。请与我一起穿越这个主题&#xff0c;我将涵盖以下内容&#xff1a; 理解Mocking&#xff1a;为何它对于构建强大的测试策略至关重要。探索一些最常见的Mocking库&a…