2013年国赛高教杯数学建模A题车道被占用对城市道路通行能力的影响解题全过程文档及程序

news2024/10/27 1:29:26

2013年国赛高教杯数学建模

A题 车道被占用对城市道路通行能力的影响

  车道被占用是指因交通事故、路边停车、占道施工等因素,导致车道或道路横断面通行能力在单位时间内降低的现象。由于城市道路具有交通流密度大、连续性强等特点,一条车道被占用,也可能降低路段所有车道的通行能力,即使时间短,也可能引起车辆排队,出现交通阻塞。如处理不当,甚至出现区域性拥堵。
  车道被占用的情况种类繁多、复杂,正确估算车道被占用对城市道路通行能力的影响程度,将为交通管理部门正确引导车辆行驶、审批占道施工、设计道路渠化方案、设置路边停车位和设置非港湾式公交车站等提供理论依据。
  视频1(附件1)和视频2(附件2)中的两个交通事故处于同一路段的同一横断面,且完全占用两条车道。请研究以下问题:
  1. 根据视频1(附件1),描述视频中交通事故发生至撤离期间,事故所处横断面实际通行能力的变化过程。
  2. 根据问题1所得结论,结合视频2(附件2),分析说明同一横断面交通事故所占车道不同对该横断面实际通行能力影响的差异。
  3. 构建数学模型,分析视频1(附件1)中交通事故所影响的路段车辆排队长度与事故横断面实际通行能力、事故持续时间、路段上游车流量间的关系。
  4. 假如视频1(附件1)中的交通事故所处横断面距离上游路口变为140米,路段下游方向需求不变,路段上游车流量为1500pcu/h,事故发生时车辆初始排队长度为零,且事故持续不撤离。请估算,从事故发生开始,经过多长时间,车辆排队长度将到达上游路口。
  附件1:视频1
  附件2:视频2
  附件3:视频1中交通事故位置示意图
  附件4:上游路口交通组织方案图
  附件5:上游路口信号配时方案图
  注:只考虑四轮及以上机动车、电瓶车的交通流量,且换算成标准车当量数。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

  交通是城市的命脉。车道往往会因为交通事故等原因被占用,从而降低了道路的通行能力,严重的话会导致交通堵塞。为了帮助交通管理部门更好地管理城市交通,需要正确估算车道被占用对城市道路通行能力的影响程度。 为了更准确地计算视频中上流路口进入事发路段的车辆和通过交通事故所占车道的横断面的车辆情况,本文在使用了背景差分法为主,直方图均衡化、中值滤波法、、形态学滤波法和边缘检测算法为辅的图像处理方法得到检测运动车辆的视频,使计算更简便。
  针对问题一,根据权威文献计算出事故发生期间事故所处横断面理论通行能力和实际通行能力,由两种通行能力随时间变化的图像可知实际通行能力在事故期间随时间在理论通行能力上下波动,而且这种波动符合正态分布。
  针对问题二,在视频一和视频二的数据通过正态检验和方差齐次检验后,利用这些数据使用方差分析得到同一横断面交通事故所占车道不同对该横断面实际通行能力的影响无显著性差异的结论。为了得到这种影响的实际情况,本文又进一步使用了通径分析,得到的结果为同一横断面交通事故所占车道不同对横断面实际通行能力的影响决定于各车道的流量比例。
  针对问题三,首先使用城市交通二流理论计算得到事发路段随事故持续时间增加而改变的排队长度,然后使用非线性比例尺改进算法统计视频的排队长度。然后用夹角余弦法对事故横断面实际通行能力、路段上游车流量分配权重统一为一个自变量,和事故持续时间一同作为BP神经网络的输入样本,排队长度作为输出样本进行训练,得到一个拥挤交通流排队长度模型。最后用遗传算法对神经网络进行优化。模型的结果和样本数据拟合效果较好,显示排队长度会随着排队时间变大,路段上游车流量变大,事故横断面实际通行能力下降而不断增加。
  针对问题四,将车看作元胞,根据所给的数据制定元胞运动规则,构造出基于元胞自动机的交通流预测模型。经过模拟仿真,得到的结果为:事故发生后,在上游车流量波动不大的情况下,经过8.3分钟到9分钟之间的时间,车辆排队长度将到达上游路口。对模型进行改进,考虑红绿灯的情况,得到车辆排队长度达到上游路口的时间缩短为8分到8.4分钟之间,平均时间为8.36分钟,且排队长度曲线的波动程度变大。

模型假设:

  1. 只考虑四轮及以上机动车、电瓶车的交通流量,且换算成标准车当量数。
  2. 车只分为小、中、大三种车型,小轿车、小型客货车为小型,中型客货车、轻型客货车为中型,大型货车、大型客车为大型,且同一车型的车大小相差不大。
  3. 上游车流量不受事故持续时间影响。

问题重述:

  车道被占用是指因交通事故、路边停车、占道施工等因素,导致车道或道路横断面通行能力在单位时间内降低的现象。由于城市道路具有交通流密度大、连续性强等特点,一条车道被占用,也可能降低路段所有车道的通行能力,即使时间短,也可能引起车辆排队,出现交通阻塞。如处理不当,甚至出现区域性拥堵。 车道被占用的情况种类繁多、复杂,正确估算车道被占用对城市道路通行能力的影响程度,将为交通管理部门正确引导车辆行驶、审批占道施工、设计道路渠化方案、设置路边停车位和设置非港湾式公交车站等提供理论依据。 视频1(附件1)和视频2(附件2)中的两个交通事故处于同一路段的同一横断面,且完全占用两条车道。请研究以下问题:
  1. 根据视频1(附件1),描述视频中交通事故发生至撤离期间,事故所处横断面实际通行能力的变化过程。
  2. 根据问题1所得结论,结合视频2(附件2),分析说明同一横断面交通事故所占车道不同对该横断面实际通行能力影响的差异。
  3. 构建数学模型,分析视频1(附件1)中交通事故所影响的路段车辆排队长度与事故横断面实际通行能力、事故持续时间、路段上游车流量间的关系。
  4. 假如视频1(附件1)中的交通事故所处横断面距离上游路口变为140米,路段下游方向需求不变,路段上游车流量为1500pcu/h,事故发生时车辆初始排队长度为零,且事故持续不撤离。请估算,从事故发生开始,经过多长时间,车辆排队长度将到达上游路口。

模型的建立与求解整体论文缩略图

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

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

程序代码:

% 计算队列长度

function [cal] = calline(road)
global length DU;
cals = zeros(1,3);
for i = 2:4
   for j = 2:length-1
       if road(i,j) == DU && road(i,j+1) == DU
          cals(i-1) = cals(i-1)+1;                                         
       end
   end
end    
    
cal = max(cals);
end
function ret=Code(lenchrom,bound)
%本函数将变量编码成染色体,用于随机初始化一个种群
% lenchrom   input : 染色体长度
% bound      input : 变量的取值范围
% ret        output: 染色体的编码值
flag=0;
while flag==0
    pick=rand(1,length(lenchrom));
    ret=bound(:,1)'+(bound(:,2)-bound(:,1))'.*pick; %线性插值,编码结果以实数向量存入ret中
    flag=test(lenchrom,bound,ret);     %检验染色体的可行性
end
        
function ret=Cross(pcross,lenchrom,chrom,sizepop,bound)
%本函数完成交叉操作
% pcorss                input  : 交叉概率
% lenchrom              input  : 染色体的长度
% chrom     input  : 染色体群
% sizepop               input  : 种群规模
% ret                   output : 交叉后的染色体
 for i=1:sizepop  %每一轮for循环中,可能会进行一次交叉操作,染色体是随机选择的,交叉位置也是随机选择的,%但该轮for循环中是否进行交叉操作则由交叉概率决定(continue控制)
     % 随机选择两个染色体进行交叉
     pick=rand(1,2);
     while prod(pick)==0
         pick=rand(1,2);
     end
     index=ceil(pick.*sizepop);
     % 交叉概率决定是否进行交叉
     pick=rand;
     while pick==0
         pick=rand;
     end
     if pick>pcross
         continue;
     end
     flag=0;
     while flag==0
         % 随机选择交叉位
         pick=rand;
         while pick==0
             pick=rand;
         end
         pos=ceil(pick.*sum(lenchrom)); %随机选择进行交叉的位置,即选择第几个变量进行交叉,注意:两个染色体交叉的位置相同
         pick=rand; %交叉开始
         v1=chrom(index(1),pos);
         v2=chrom(index(2),pos);
         chrom(index(1),pos)=pick*v2+(1-pick)*v1;
         chrom(index(2),pos)=pick*v1+(1-pick)*v2; %交叉结束
         flag1=test(lenchrom,bound,chrom(index(1),:));  %检验染色体1的可行性
         flag2=test(lenchrom,bound,chrom(index(2),:));  %检验染色体2的可行性
         if   flag1*flag2==0
             flag=0;
         else flag=1;
         end    %如果两个染色体不是都可行,则重新交叉
     end
 end
ret=chrom;
function ret=Decode(lenchrom,bound,code,opts)
% 本函数对染色体进行解码
% lenchrom   input : 染色体长度
% bound      input : 变量取值范围
% code       input :编码值
% opts       input : 解码方法标签
% ret        output: 染色体的解码值
switch opts
    case 'binary' % binary coding
        for i=length(lenchrom):-1:1
        data(i)=bitand(code,2^lenchrom(i)-1);  %并低十位,然后将低十位转换成十进制数存在data(i)里面
        code=(code-data(i))/(2^lenchrom(i));   %低十位清零,然后右移十位
        end
        ret=bound(:,1)'+data./(2.^lenchrom-1).*(bound(:,2)-bound(:,1))';  %分段解码,以实数向量的形式存入ret中
        
    case 'grey'   % grey coding
        for i=sum(lenchrom):-1:2
            code=bitset(code,i-1,bitxor(bitget(code,i),bitget(code,i-1)));
        end
        for i=length(lenchrom):-1:1
        data(i)=bitand(code,2^lenchrom(i)-1);
        code=(code-data(i))/(2^lenchrom(i));
        end
        ret=bound(:,1)'+data./(2.^lenchrom-1).*(bound(:,2)-bound(:,1))'; %分段解码,以实数向量的形式存入ret中
        
    case 'float'  % float coding
        ret=code; %解码结果就是编码结果(实数向量),存入ret中
end
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

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

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

相关文章

ubuntu22.04 ROS2 - 安装

参考链接:Ubuntu 22.04 LTS安装ROS2 (ros-humble-desktop)-CSDN博客 1、安装测试 ros2 run demo_nodes_cpp listener再开一个终端ros2 run demo_nodes_cpp listener2、小海龟模拟器 ros2 run turtlesim turtlesim_noderos2 run turtlesim turtle_teleop_key两个终端分别执行…

树莓派应用--AI项目实战篇来啦-5.OpenCV绘画函数的使用

1. 介绍 OpenCV作为一款功能强大的计算机视觉库,被广泛地应用于图像处理和计算机视觉领域。 除了在机器视觉和人工智能领域有者广泛的应用,OpenCV 还能够媲美艺术家的创造力,通过其强大的绘图函数,绘制出令人叹为观止的艺术画作。…

【ICESat-2(Ice, Cloud and land Elevation Satellite-2)简介】

ICESat-2(Ice, Cloud and land Elevation Satellite-2),即冰、云和陆地高程卫星2号,是美国国家航空航天局(NASA)的一项重要卫星任务,旨在测量地球冰盖、云层以及陆地的高度变化。以下是对ICESat…

phpstorm+phpstudy 配置xdebug(无需开启浏览器扩展)

今天又被xdebug折磨了,忘记了以前咋配置了现在百度发现好多都是各种浏览器扩展而且也没有真正的用到项目上的都是测试的地址怎么样的 我就简单写一下自己实战吧 不支持workerman swoole hyperf等这种服务框架 如果你会请教教我 工具版本phpstudy8.1.xphpstorm2021.x…

用SpringBoot给Servlet容器Tomcat打war包步骤

首先写一个类来代替启动类 先在SpringBoot项目里打开pom.xml导入依赖,原本SpringBoot里面spring-boot-starter-web依赖里面有Tomcat,所以我们要先在spring-boot-starter-web里面导入依赖,把Tomcat给排除掉,并且加上你要打的war类型依赖 然后先刷新,再清除,最后再打包 成功之后,…

华为云Flexus云服务:性能倍增、体验跃级

在数字化转型的浪潮中,企业对云计算的需求日益增长,尤其是在性能和体验方面。华为云Flexus云服务应运而生,为企业提供了一个性能倍增、体验跃级的云计算解决方案。下面九河云就来给大家介绍一下华为云Flexus云服务吧。 1. 性能倍增 华为云…

【AI绘画】Midjourney进阶:三分线构图详解

博客主页: [小ᶻZ࿆] 本文专栏: AI绘画 | Midjourney 文章目录 💯前言💯什么是构图为什么Midjourney要使用构图 💯三分线构图特点使用场景提示词书写技巧测试 💯小结 💯前言 【AI绘画】Midjourney进阶&a…

cmake 报错及解决

1.背景:自己编写CMakeLists.txt并构建项目 2.问题:build目录下执行“cmake ..”命的时候如下报错: CMake Error at CMakeLists.txt:27 (ADD_EXECUTABLE): The target name "client," is reserved or not valid for certain CMak…

FlexMatch: Boosting Semi-Supervised Learning with Curriculum Pseudo Labeling

FlexMatch: Boosting Semi-Supervised Learning with Curriculum Pseudo Labeling 摘要:引言:背景3 flexMatch3.1 Curriculum Pseudo Labeling3.2 阈值预热3.3非线性映射函数实验4.1 主要结果4.2 ImageNet上的结果4.3收敛速度加速4.4 消融研究5 相关工作摘要: 最近提出的Fi…

MaxKB 三大内置标签用法

一、<quick_question> <quick_question></quick_question> 作用&#xff1a;快速展示问题标签&#xff0c;只需将问题放入标签中&#xff0c;系统便会自动在对话结束时展示该问题。 1.1 展示效果 1.2 快捷使用 在流程编排当中&#xff0c;添加一个AI对话…

线性代数 矩阵

一、矩阵基础 1、定义 一组数按照矩形排列而成的数表&#xff1b;形似行列式&#xff0c;区别点是 矩阵行列式符号()或[]| |形状方阵或非方阵方阵本质数表数属性A|A|是A诸多属性中的一种维度m *n (m 与n可以相等也可以不相等)n*n 同型矩阵 若A、B两个矩阵都是mn 矩阵&#x…

【Elasticsearch系列】Elasticsearch启动失败问题

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

【JavaEE初阶】文件-IO之实现文件系统的操作如何进行实现

前言 &#x1f31f;&#x1f31f;本期讲解关于文件IO的操作&#xff0c;这里涉及到比较常用的文件操作哦~~~ &#x1f308;上期博客在这里&#xff1a;【JavaEE初阶】CAS的ABA问题&#xff0c;JUC多线程编程有用的相关类-CSDN博客 &#x1f308;感兴趣的小伙伴看一看小编主页&a…

什么是Qseven?模块电脑(核心板)规范标准简介二

1.概念 Qseven是一种通用的、小尺寸计算机模块标准&#xff0c;适用于需要低功耗、低成本和高性能的应用。 Qseven模块电脑&#xff08;核心板&#xff09;采用230Pin金手指连接器 2.Qseven的起源 Qseven最初是由Congatec、SECO、MSC三家欧洲公司于2008年发起&#xff0c;旨在…

【fisco学习记录2】多群组搭建

说明 文档参考&#xff1a; 多群组部署 — FISCO BCOS 2.0 v2.11.0 文档 (fisco-bcos-documentation.readthedocs.io) 多群组搭建之前&#xff0c;先暂停之前的单群组&#xff0c;并删除&#xff1a; cd fisco bash nodes/127.0.0.1/stop_all.sh rm -rf nodes/ 实现图&…

如何从数码相机中恢复已删除的照片

照片恢复是恢复已删除照片的最佳工具&#xff0c;带有恢复 RAW 照片的选项。在本文中&#xff0c;我们将解释如何检索已删除的照片。 不仅适用于专业摄影师&#xff0c;而且对于像我们这样喜欢捕捉回忆的人来说&#xff0c;Moments 相机是一种重要的数字设备。可悲的是&#x…

Gin项目的初始化步骤和常见错误记录

相信很多人对Go的环境安装和Gin项目的初始化都已经手拿把攥很是熟练了&#xff0c;本节介绍一个自己新建Go项目时非常好用的设置以及记录一下Gin项目的初始化过程和常能遇到的错误。 一个容易忽略的Go ENV 在安装了Go的电脑中&#xff0c;我们可以在命令行执行 go env 命令&…

泛谈阿里vs美团订单存储架构演进

泛谈阿里vs美团订单存储架构演进 1. 订单存储介绍 订单的存储背后支撑创单后的系列用户活动&#xff0c;围绕着业务的发展&#xff0c;大厂的订单的数据日益剧增 在手淘订单列表&#xff0c;我们可以看见天猫、飞猪、淘票票等诸多 BU 的订单 在美团的订单列表&#xff0c;我…

[Python学习日记-46] Python 中第三方开源模块的安装、使用与上传自己写的模块

[Python学习日记-46] Python 中第三方开源模块的安装、使用与上传自己写的模块 简介 下载与安装 如何使用安装好的第三方开源模块 如何上传自己写的模块到 PyPi 简介 在前面的模块介绍和导入当中主要介绍的都是 Python 内置的一些模块&#xff0c;我们把它称为标准库&#…

string模拟优化和vector使用

1.简单介绍编码 utf_8变长编码&#xff0c;常用英文字母使用1个字节&#xff0c;对于其它语言可能2到14&#xff0c;大部分编码是utf_8&#xff0c;char_16是编码为utf_16, char_32是编码为utf_32&#xff0c; wchar_t是宽字符的&#xff0c; utf_16是大小为俩个字节&a…