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

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

时间:2024-10-12 14:52:57浏览次数:8  
标签:车道 end bound 高教 pick 横断面 lenchrom 年国赛 2013

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

标签:车道,end,bound,高教,pick,横断面,lenchrom,年国赛,2013
From: https://blog.csdn.net/weixin_43292788/article/details/142876944

相关文章

  • java+vue计算机毕设高教教师考核系统【源码+程序+论文+开题】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景在当今高等教育快速发展的背景下,高校教师作为知识传授与科研创新的重要力量,其工作表现与贡献评估显得尤为关键。传统的高校教师考核方式往往依赖于纸......
  • 基于Spring Boot的师生共评作业管理平台:提高教学效率
    摘要随着信息互联网信息的飞速发展,无纸化作业变成了一种趋势,针对这个问题开发一个专门适应师生作业交流形式的网站。本文介绍了师生共评的作业管理系统的开发全过程。通过分析企业对于师生共评的作业管理系统的需求,创建了一个计算机管理师生共评的作业管理系统的方案。文章......
  • [JOI 2013 Final]彩灯
    [JOI2013Final]彩灯题意给出一个\(01\)序列,可以把一段区间反转。求反转后序列最长的交替子段,即\(010101\ldots\)或\(101010\ldots\)。思路首先发现一个性质,反转的一定是一段交替子段。因为反转不交替子段对答案的贡献不优。枚举反转哪一段交替子段,统计左右两边的......
  • [JOI 2013 Final]JOIOI 塔
    [JOI2013Final]JOIOI塔题意给出一个由\(\text{JOI}\)组成的字符串,可从中取出一些子序列。求最多取出多少\(\text{IOI}\)和\(\text{JOI}\)。思路若答案\(x\)可行,则所有\(y<x\)均可行,若答案\(x\)不可行,则所有\(y>x\)均不可行。这样就可以可行性二分。考虑如......
  • [JOI 2013 Final]现代豪宅
    [JOI2013Final]现代豪宅题意给出一个\(n\timesm\)的网格图,每两个格子之间有一扇门。初始上下方向的门都是开着的,左右方向的门是关着的。有一些格子有按钮,可以把打开的门关上,关上的门打开。走一步需要一秒,按按钮需要一秒,求从\((1,1)\)到达\((n,m)\)的最小步数。思路......
  • [JOI 2013 Final]搭乘 IOI 火车
    [JOI2013Final]搭乘IOI火车题意给出两个由\(\text{OI}\)组成的字符串\(S,T\)。可以删除每个字符串的前缀和后缀。每次从剩下部分的第一位取出一个字符放到新的字符串中。要求新字符串必须以\(\text{I}\)开头结尾,相同的字符不能相邻,求新字符串的最大长度。思路定义......
  • 打卡信奥刷题(800)用Scratch图形化工具信奥P8241[普及组/提高] [COCI2013-2014#3] RIJE
    [COCI2013-2014#3]RIJEČI题目描述一天,Mirko发现了一个非常大的屏幕,这个屏幕上一开始只有一个字母A\texttt{A}A。Mirko在这个屏幕旁边找到了一个按钮。当他按一次时......
  • CF2013
    A显然每次操作可以放\(\min(x,y)\)个水果,那么答案就是\(\lceil\frac{n}{\min(x,y)}\rceil\)。B我们考虑什么情况剩下的最大。不难发现,我们可以将\(a_1~\sima_{n-2}\)都与\(a_{n-1}\)进行操作,然后将\(a_{n-1}\)与\(a_{n}\)操作,这样的答案就是最大的。C考虑找到最......
  • NEERC2013题解
    B.BonusCards简单dp一下,记\(f_{ij}\)为前i次有j次分给第一类的概率。最后再算上我在第一类被选上的概率即可。constintN=3005;#defineintlonglongintn,a,b;doublef[N][N],g[N][N];signedmain(void){#ifdefONLINE_JUDGE freopen("bonus.in","r",stdin......
  • SQLSTATE[HY000] [2013] Lost connection to MySQL server at 'reading initial commu
    错误信息 SQLSTATE[HY000][2013]LostconnectiontoMySQLserverat'readinginitialcommunicationpacket',systemerror:111 表示在尝试与MySQL服务器建立连接时出现了问题,具体来说是在读取初始通信包时失去了与MySQL服务器的连接,系统错误码为111,这通常表示连接被拒绝......