2019年第八届数学建模国际赛小美赛C题预测通过拥堵路段所需的时间解题全过程文档及程序

本文主要是介绍2019年第八届数学建模国际赛小美赛C题预测通过拥堵路段所需的时间解题全过程文档及程序,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019年第八届数学建模国际赛小美赛

C题 预测通过拥堵路段所需的时间

原题再现:

  在导航软件中,行程时间的估计往往是一个重要的功能。现有的导航软件往往通过出租车或安装了该软件的车辆获取实时GPS数据来确定当前的路况。在交通拥堵严重的情况下,车辆速度较慢,因此对速度的估计非常不准确。其结果是,估计交通堵塞时间的准确性非常差。所需的实际时间有时甚至是预测时间的几倍到十倍。我们的问题是如何预测通过交通堵塞的时间?请收集现有数据并建立更精确的模型来解决此问题。

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

  导航软件的普及在给人们带来便利的同时,其一些弊端也暴露出来。由于无法准确预测汽车的行驶速度和行驶时间,给人们的出行带来了很大的麻烦。构建城市区域网络模型,提取宏观交通特征。提出了用网格模型预测路段通过时间的方法。同时,建立了基于BP神经网络的拥堵路段通行时间预测模型,并对两种模型进行了比较。
  本文对大量的车辆轨迹数据进行处理,提取网格的交通特征,并将网格作为研究区域交通的载体。首先提取网格中的静态交通特征,主要包括车辆进入网格的位置和出入口位置以及出入口位置之间的连接关系。然后,基于已有的静态数据,提取网格中的动态流量特征。,主要是指车辆通过网络节点对前后的时间。从而完成了网络模型的流量属性特征提取。
  提出了一种基于网格模型的路段通过时间预测方法。结合过境时间和实际出行时间作为网格中的准备数据,通过挖掘大量的车辆轨迹数据,提取网格间的多条轨迹并提取有效路径,利用多元线性回归和KNN算法对路径进行时间预测。
  本文还建立了基于BP神经网络算法的拥挤通过时间预测模型。从大量数据中提取历史流量数据并进行归一化处理,通过比较确定各层神经元的数量。选取部分数据作为样本,对神经网络进行训练和学习,实现对交通量的预测。基于速度-车流模型,对车速进行预测,得到通过路段的时间。
  最后,对两种模型进行了比较分析。网格模型使用的数据量较大,对时间的预测更全面。问题的分析包括宏观和微观两个方面;而BP神经网络算法灵活、使用方便。然而,该模型中数据的使用并不充分,因此网格模型更具说服力。

模型假设:

  1、不考虑不同车辆之间的超车情况;
  2、不考虑交通事故造成的交通拥堵;
  3、每辆车对前一辆车的响应延迟时间大致相等;
  4、在拥堵路段,每辆车同时以一定的固定速度到达;从固定速度减速到停止所需的时间相等。
  5、在拥堵道路上行驶的车辆油量充足。换言之,不考虑由于燃油耗尽而导致车辆无法驶出的情况。
  6、不考虑拥堵路段不同车辆间超车情况

问题重述:

  问题背景
  随着经济的发展,人们的生活水平不断提高,生活节奏也在加快。开车旅行已经成为一种趋势。这确实方便人们出行,但不可否认的是,在北京、上海等一些大城市,早、晚高峰时段拥堵严重。有时,人们在车辆上依赖GPS。道路位置的即时定位和车速的精确估计,然而,在道路严重拥堵期间,车速的估计极不准确。有时到达目的地的实际时间与预测时间相差甚远。如果安排不合理,会影响人们正常的生活节奏,甚至造成一些不好的结果,如错过最后期限。在这种情况下,正确评估拥堵路段的速度并正确预测通过拥堵路段所需的时间非常重要。

  问题重述
  在交通拥堵严重的情况下,速度较慢,因此对速度的估计是非常不准确的。结果表明,交通拥挤时间估计精度较差。所需的实际时间有时甚至是预测时间的几到十倍。我们的问题是如何预测交通堵塞的时间?收集现有数据,建立更精确的模型来解决这一问题。

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

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

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

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

Code:
%initialization
x=input('Please enter the starting latitude and longitude,longitude=');
y=input('latitude=');
dx=0.001;
%Grid build
Wzwangge=zeros(1000,7);
Sjwangge=zeros(1000,7);
For i=0:99
For j=0:99
Wzwangge(i*100+j+1,1)=i*100+j+1;
Wzwangge(i*100+j+1,2)=x+j*dx;
Wzwangge(i*100+j+1,3)=y+i*dx;
Wzwangge(i*100+j+1,4)=x+j*dx-dx/2;
Wzwangge(i*100+j+1,5)=x+j*dx+dx/2;
Wzwangge(i*100+j+1,6)=y+i*dx-dx/2;
Wzwangge(i*100+j+1,7)=y+i*dx+dx/2;
End
y=y-dx;
End
% determines the grid to be studied
a=input('input grid sequence:');
Jingdu=dashuju(:,7);
Weidu=dashuju(:,8);Jdhang=find((jingdu<(wzwangge(a,5)))&(jingdu>(wzwangge(a,4)))));
Wdhang=find((weidu<(wzwangge(a,7)))&(weidu>(wzwangge(a,6)))));
[C,ia,ib]=intersect(jdhang,wdhang);
Wgshuju=dashuju(C,:);
% seeking grid speed
Wgsudu=sum(wgshuju(:,10))/size(wgshuju,1);
Disp ('grid average speed');
Disp(wgsudu);
% draw grid scatter map
Figure(1);
Plot(wgshuju(:,7),wgshuju(:,8),'r.');
Axis equal
% shows grid speed change
Shijian10=1:144;
Shijian=wgshuju(:,4).*60+wgshuju(:,5);
Liuliang=zeros(144,1);
For i=1:144
C=find((shijian<i*10)&(shijian>(i-1)*10));
Liuliang(i)=sum(wgshuju(C,10))/size(C,1);
End
Tf=isnan(liuliang);
T=find(tf==1);
Kedu=shijian10./6;
Figure(2);
Plot(kedu,liuliang);
Xlabel('time');
Ylabel('speed');
%Use Shenzhen latitude and longitude scatter to make map of Shenzhen
r=randi(5774443,600000,1);
Plot(dashuju(r,7),dashuju(r,8),'r.');
Axis equal
Hold on
Ylabel('Longitude');
Xlabel('latitude');
全部论文请见下方“ 只会建模 QQ名片” 点击QQ名片即可

这篇关于2019年第八届数学建模国际赛小美赛C题预测通过拥堵路段所需的时间解题全过程文档及程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/496820

相关文章

问题:第一次世界大战的起止时间是 #其他#学习方法#微信

问题:第一次世界大战的起止时间是 A.1913 ~1918 年 B.1913 ~1918 年 C.1914 ~1918 年 D.1914 ~1919 年 参考答案如图所示

uniapp接入微信小程序原生代码配置方案(优化版)

uniapp项目需要把微信小程序原生语法的功能代码嵌套过来,无需把原生代码转换为uniapp,可以配置拷贝的方式集成过来 1、拷贝代码包到src目录 2、vue.config.js中配置原生代码包直接拷贝到编译目录中 3、pages.json中配置分包目录,原生入口组件的路径 4、manifest.json中配置分包,使用原生组件 5、需要把原生代码包里的页面修改成组件的方

Java面试八股之怎么通过Java程序判断JVM是32位还是64位

怎么通过Java程序判断JVM是32位还是64位 可以通过Java程序内部检查系统属性来判断当前运行的JVM是32位还是64位。以下是一个简单的方法: public class JvmBitCheck {public static void main(String[] args) {String arch = System.getProperty("os.arch");String dataM

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

java中查看函数运行时间和cpu运行时间

android开发调查性能问题中有一个现象,函数的运行时间远低于cpu执行时间,因为函数运行期间线程可能包含等待操作。native层可以查看实际的cpu执行时间和函数执行时间。在java中如何实现? 借助AI得到了答案 import java.lang.management.ManagementFactory;import java.lang.management.Threa

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

时间服务器中,适用于国内的 NTP 服务器地址,可用于时间同步或 Android 加速 GPS 定位

NTP 是什么?   NTP 是网络时间协议(Network Time Protocol),它用来同步网络设备【如计算机、手机】的时间的协议。 NTP 实现什么目的?   目的很简单,就是为了提供准确时间。因为我们的手表、设备等,经常会时间跑着跑着就有误差,或快或慢的少几秒,时间长了甚至误差过分钟。 NTP 服务器列表 最常见、熟知的就是 www.pool.ntp.org/zo

20170723 做的事 ecdsa的签名验证时间短于bls signature

1 今天在虚拟机 /home/smile/Desktop/20170610/Test//time_ecdsa 文件夹下,找到ecdsa的验证时间是 989.060606μs μs 先 make ,然后run。 再取BLS的签名生成时间: ./run  2  gnuplot 画图,画对比的时间 gnuplot 画图参考教程 http://blog.sciencen

基于Java医院药品交易系统详细设计和实现(源码+LW+调试文档+讲解等)

💗博主介绍:✌全网粉丝10W+,CSDN作者、博客专家、全栈领域优质创作者,博客之星、平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 🌟文末获取源码+数据库🌟 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人  Java精品实战案例《600套》 2023-2025年最值得选择的Java毕业设计选题大全:1000个热

工程文档CAD转换必备!在 Java 中将 DWG 转换为 JPG

Aspose.CAD 是一个独立的类库,以加强Java应用程序处理和渲染CAD图纸,而不需要AutoCAD或任何其他渲染工作流程。该CAD类库允许将DWG, DWT, DWF, DWFX, IFC, PLT, DGN, OBJ, STL, IGES, CFF2文件、布局和图层高质量地转换为PDF和光栅图像格式。 Aspose API支持流行文件格式处理,并允许将各类文档导出或转换为固定布局文件格