2022年天府杯全国大学生数学建模竞赛E题地铁线路的运营与规划解题全过程文档及程序

news2024/12/24 11:40:00

2022年天府杯全国大学生数学建模竞赛

E题 地铁线路的运营与规划

原题再现:

  地铁是一种非常绿色快捷的交通出行方式,全国各大城市也都在如火如荼地进行地铁线路建设与规划。但乘坐地铁有时候会感觉特别拥挤,这一时期我们称为高峰期。如何合理安排线路和运营策略是地铁运营者和普通大众都很关心的话题。
  我们收集了杭州市三条地铁线路的数据。其中,附件 1 为杭州三条地铁线路首班车、末班车发车时间和站点,附件 2 是杭州市公交站点分布,附件 3 是 2019年 1 月 21 日杭州市各地铁站 24 小时内的人流量数据。由于人流量数据已经经过脱敏处理,无法直接与线路和站点对应,需要你们自行分析。其中字段的意义为:time 是刷卡时间,lineID 是线路,stationID 是站点,deviceID 是刷卡设备,status 中 0 为出站 1 为进站,userID 是用户身份,payType 代表支付方式。目前杭州市线路图如图所示:
在这里插入图片描述
  你们需要解决以下问题:
  (1) 根据附件 3,请试着预测 1 小时内人 A 线各站点的人流量变化
  (2) 根据人流量数据分析,针对这三条地铁线路,发车间隔应如何设置能够避免早高峰晚高峰造成的人流拥堵?
  (3) 如果你是地铁运营方,考虑到附件 2 中的公交站点位置与居民下车变更交通方式的便捷性,你会新增哪几条地铁线路?请说明你的理由。

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

  针对问题一,首先,将附件 3 进行数据预处理,将线路 A 从多线路中进行分离,然后,对线路 A 中的不同站点进行分离,再将每个站点中的乘客分为进站和出站两类进行分析。其次,分别建立回归预测模型进行分析,得出分析结果,67 站点第 9 小时结果为 730.233,再用指数平滑法模型通过已知数据对未来一小时内人流量进行预测比较,趋势平缓的站点运用一次平滑指数法,呈现二元曲线的站点运用三次平滑指数法预测。最后,运用时间预测模型,可得出 67、68、69 等站点后一小时的人流量分别为 237、8946、410.6 等。
  针对问题二,首先,对附件 2 和附件 3 的数据进行处理,通过一天的人流量来判断出地铁的高峰期为每天的 7:00-8:59,设置出发车时间间隔来避免高峰期的拥堵。其次,基于人流量运用粒子群优化算法对发车时间间隔进行优化,不考虑特殊情况,在高峰期缩短发车的时间间隔,最后,运用 Matlab 进行数据处理,计算出优化后的结果,经过计算后得出,在高峰期时将发车的时间间隔改为 3分 40 秒就会避免拥堵。
  针对问题三,首先,对轨道交通和接运公交的技术经济特性分析进行分析,比较得出轨道交通的优势,然后,考虑轨道交通选取的因素,建立轨道站点选取模型,分析需要被接运的公交服务的轨道站点,最后,通过计算客流周转量确定站点选取的标准,建立聚集效应函数模型,确定轨道站点合理的接运范围,若地铁晚高峰的客流量为 7019 人,最低换乘人流比率为 85%,最接近的换乘距离就为2.5km,可以据此根据公交站点设置新增地铁站点。

模型假设:

  1、假设在设计线路时,不考虑城市空间建设
  2、假设车辆发车的时间间隔不变,在沿途各站停车时间固定不变。
  3、假设站台与站台之间车辆的运行速度是恒定的,并且在中途无特殊事件发生。
  4、假设三条地铁在运行时不会相互影响。

问题分析:

  针对问题一:首先,将附件 3 进行数据预处理,将线路 A 进行分离,然后,对线路 A 中的不同站点进行分离,再将每个站点中的乘客分为进出站两类进行分析。其次,分别建立回归预测模型和指数平滑法模型通过已知数据对未来一小时内人流量进行预测比较,得出分析结果。最后,对二者的预测精度进行比较,在实际预测中可以选择更精确的方法。
  针对问题二:首先,对附件 2 和附件 3 的数据进行处理,通过一天的人流量来判断出地铁的高峰期,设置出发车时间间隔来避免高峰期的拥堵。其次,基于人流量运用粒子群优化算法对发车时间间隔进行优化,不考虑特殊情况,在高峰期缩短发车的时间间隔,最后,运用 Matlab 进行数据处理,计算出优化后的结果。
  针对问题三:首先,对轨道交通和接运公交的技术经济特性分析进行分析,比较得出轨道交通的优势,然后,考虑轨道交通选取的因素,建立轨道站点选取模型,分析需要被接运的公交服务的轨道站点,最后,通过计算客流周转量确定站点选取的标准,建立聚集效应函数模型,确定轨道站点合理的接运范围。

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

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

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

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

clear
clc
S=[13
176
773
1116
3994
265
272
166];
figure
hold on
plot(S,'b-*','linewidth',1);
alpha=0.5;
beta=0.5;
gamma=0.3;
fc=3;%预测个数
k=3;%初始取均值数据个数
n=length(S);
a(1)=sum(S(1:k))/k;
b(1)=(sum(S(k+1:2*k))-sum(S(1:k)))/k;
s=S(1)-a(1);
y=a(1)+b(1)+s(1);
for i=1:n+fc-1
if i==length(S)
S(i+1)=a(end)+b(end)+s(end-k+1);
end
a(i+1)=alpha*(S(i)-s(i))+(1-alpha)*(a(i)+b(i));
b(i+1)=beta*(a(i+1)-a(i))+(1-beta)*b(i);%趋势
s(i+1)=gamma*(S(i)-a(i)-b(i))+(1-gamma)*s(i);%周期
y(i+1)=a(i+1)+b(i+1)+s(i+1);
end
plot(n:n+fc,S(end-fc:end),'r-o','linewidth',1);
legend('历史走势','未来走势')
xlim([0,14])
clear all;
close all;
clc;
N=20; %群体粒子个数
D=3; %粒子维数
T=50; %最大迭代次数
c1=1.5; %学习因子 1
c2=1.5; %学习因子 2
w=0.8; %惯性权重
Xmax=4; %位置最大值
Xmin=1; %位置最小值
Vmax=5; %速度最大值
Vmin=-5; %速度最小值
%初始化个体
x=rand(N,D)*(Xmax-Xmin)+Xmin;
v=rand(N,D)*(Vmax-Vmin)+Vmin;
%初始化个体最优位置和最优值
p=x;
pbest=ones(N,1);
for i=1:N
pbest(i)=func1(x(i,:));
end
%初始化全局最优位置和最优值
g=ones(1,D);
gbest=inf;
for i=1:N
if (pbest(i)<gbest)
g=p(i,:);
gbest=pbest(i);
end
end
gb=ones(1,T);
%按照公式依次迭代直到满足精度或者迭代次数
for i=1:T
for j=1:N
if (func1(x(j,:))<pbest(j))
p(j,:)=x(j,:);
pbest(j)=func1(x(j,:));
end
if (pbest(j)<gbest)
g=p(j,:);
gbest=pbest(j);
end
v(j,:)=w*v(j,:)+c1*rand*(p(j,:)-x(j,:))+c2*rand*(g-x(j,:));
x(j,:)=x(j,:)+v(j,:);
%边界条件处理
for ii=1:D
if (v(j,ii)<Vmin)||(v(j,ii)>Vmax)
v(j,ii)=rand*(Vmax-Vmin)+Vmin;
end
if (x(j,ii)<Xmin)|(x(j,ii)>Xmax)
x(j,ii)=rand*(Xmax-Xmin)+Xmin;
end
end
end
%记录全局最优值
gb(i)=gbest;
end
g; %最优个体
gb(end); %最优值
figure
plot(gb)
xlabel('迭代次数')
ylabel('适应度值')
title('适应度进化曲线')
%适应度函数
function result=func1(x)
summ=sum(x.^2);
result=summ;
end

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

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

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

相关文章

sqlserver中的merge into语句

merge into语句是用来合并两张表的数据的&#xff0c;比如我们想把一张表的数据批量更新到另外一张表&#xff0c;就可以用merge into语句。具体有哪些业务场景呢&#xff1f; 1.数据同步 2.数据转换 3.基于源表对目标表进行增&#xff0c;删&#xff0c;改的操作。 实践步骤…

JavaScript了解调用带参函数,无参函数的代码

以下为JavaScript了解调用带参函数&#xff0c;无参函数的程序代码和运行截图 目录 前言 一、带参函数 1.1 运行流程及思想 1.2 代码段 1.3 JavaScript语句代码 1.4 运行截图 二、无参函数 2.1 运行流程及思想 2.2 代码段 2.3 JavaScript语句代码 2.4 运行截图 前言…

让代码创造童话,共建快乐世界:六一儿童节特辑

让代码创造童话&#xff0c;共建快乐世界&#xff1a;六一儿童节特辑 六一儿童节即将来临&#xff0c;这是一个属于孩子们的快乐节日。为了让这个节日更加有趣&#xff0c;我们发起了“让代码创造童话&#xff0c;共建快乐世界”六一活动。在这个活动中&#xff0c;我们邀请您…

使用Tensorrt对YOLOv5目标检测的代码进行加速

文章目录 1. 前言2. 官网3. 安装依赖3.1. 安装OpenCV3.1.1. 安装3.1.2. 添加环境变量3.1.3. 查看版本 3.2. 安装TensorRT3.2.1. 下载3.2.2. 安装3.2.3. 添加环境变量 4. 下载项目5. 生成WTS模型6. cmake6.1. 生成Makefile6.1.1. 配置CMakeLists.txt6.1.1.1. 修改编译依赖的路径…

通过python采集1688商品评论数据封装接口、1688评论数据接口

1688商品评论数据是指在1688网站上对商品的评价和评论信息。这些信息包括买家对商品的使用、品质、包装、服务等方面的评价和意见&#xff0c;可以帮助其他用户更好地了解商品的优缺点和性能&#xff0c;从而做出更明智的购买决策。 1688网站是中国最大的B2B电子商务网站之一&…

RK3566调试EC20

参考博客&#xff1a;RK3568开发笔记-buildroot移远EC20模块调试记录 一、内核配置 cd 到kernel目录&#xff0c;执行make ARCHarm64 menuconfig&#xff0c; Device Drivers >USB support > USB Serial Converter support 选中 USB driver for GSM and CDMA modems选…

04.hadoop上课笔记之java编程和hbase

1.win查看服务 netstat -an #linux也有#R数学建模语言 SCALAR 2.java连接注意事项,代码要设置用户 System.setProperty("HADOOP_USER_NAME", "hadoop");3.伪分布式的好处(不用管分布式细节,直接连接一台机器…,适合用于学习) 4.官方文档 查看类(static |…

5个UI设计师必备的Figma汉化插件

即时设计插件广场提供了许多有用的 UI 插件&#xff0c;帮助优化产品设计过程。其中&#xff0c;产品组件库 Figma 汉化插件对常用的 PC 端和移动端组件进行了筛选&#xff0c;使其更加聚焦和精简。PC 端组件包括基础、按钮、菜单和其他元素&#xff0c;移动端组件包括基础、按…

电子阅读器calibre的使用技巧

十条calibre使用技巧&#xff1a; 1. 添加电子书&#xff1a;可以单独添加文件、添加文件夹、添加zipped书籍&#xff0c;或者通过网络链接直接添加。 2. 转换电子书格式&#xff1a;可以将电子书转换为不同的格式&#xff0c;如AZW3、EPUB、MOBI、PDF等。 3. 修改元数据&am…

文件夹加密超级大师的金钻加密和闪电加密有什么区别?

作为一款专业的文件夹加密软件&#xff0c;文件夹加密超级大师提供了5种文件加密类型&#xff0c;其中金钻加密和闪电加密在加密后效果看似差不多&#xff0c;那么它们有什么区别呢&#xff1f;下面我们就来了解一下吧。 闪电加密更快速 当我们想要加密那些超级庞大的文件夹时…

Docker安装kafka可视化管理工具 - Kafka Manager

说明&#xff1a;此处是在前面使用Docker安装kafka的基础之上&#xff0c;再来使用Docker安装kafka-manager 第一步&#xff1a;使用下述命令从Docker Hub查找镜像&#xff0c;此处我们要选择的是sheepkiller所构建的kafka-manager镜像 docker search kafka-manager 第二步&a…

人工智能生成内容(AIGC):概念、发展历史及其机遇、挑战与未来方向

人工智能生成内容&#xff08;AIGC&#xff09; 人工智能生成内容&#xff08;Artificial Intelligence Generated Content, AIGC&#xff09;&#xff0c; AIGC 是指使用生成式 AI &#xff08;Generative Artificial Intelligence, GAI&#xff09; 技术生成的内容&#xff…

基于SSM+Vue前后端分离的勤工助学管理系统

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 Web服…

网络通信的序列化和反序列化

序列化与反序列化的定义 由于在系统底层&#xff0c;数据的传输形式是简单的字节序列形式传递&#xff0c;即在底层&#xff0c;系统不认识对象&#xff0c;只认识字节序列&#xff0c;而为了达到进程通讯的目的&#xff0c;需要先将数据序列化&#xff0c;而序列化就是将对象…

【SpringBoot_Project_Actual combat】 Summary of Project experience_需要考虑的问题

无论是初学者还是有经验的专业人士&#xff0c;在学习一门新的IT技术时&#xff0c;都需要采取一种系统性的学习方法。那么作为一名技术er&#xff0c;你是如何系统的学习it技术的呢。 一、DB Problems 数据库数据类型与java中数据类型对应问题&#xff1f; MySql数据库和java…

在Centos Stream 9上Docker的实操教程(一) - 实操准备篇

在Centos Stream 9上Docker的实操教程 - 实操准备篇 认识Docker准备Centos Stream 9安装Docker更新仓库绕不开的HelloWorld结语 认识Docker 什么都要实操了&#xff0c;你还不知道Docker是什么&#xff1f;网上关于Docker的介绍一搜一大把&#xff0c;博主就不必浪费时间去侃侃…

sqlserver行列转换( unpivot 和 pivot)

1&#xff0c;unpivot 是将列转为行显示&#xff0c;很多时候&#xff0c;我们用多个列了显示同一个对象不同维度得数据&#xff0c;如果需要数据关联&#xff0c;肯定需要转为横向显示&#xff01; 思路就是&#xff1a;有一列显示多列的名称&#xff0c;有一列显示列名对应的…

Redis发布订阅以及应用场景介绍

目录 一、什么是发布和订阅&#xff1f;二、Redis的发布和订阅三、发布和订阅的命令行实现四、发布和订阅命令1、subscribe&#xff1a;订阅一个或者多个频道2、publish&#xff1a;发布消息到指定的频道3、psubscribe&#xff1a;订阅一个或多个符合给定模式的频道4、pubsub&a…

通过facebook主页进行自己产品的推广可行吗?

首先&#xff0c;让我们明确结论&#xff1a;通过Facebook主页进行产品推广是可行的&#xff0c;但并不是必要的。为什么这么说呢&#xff1f; Facebook作为一个社交平台&#xff0c;其核心功能是连接人与人之间的关系&#xff0c;鼓励用户分享和互动。用户在Facebook上的活动主…

(学习日记)2023.04.23

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…