【需求响应式接驳公交】基于NSGA2算法求解准点情形下需求响应式接驳公交DRFB模型附matlab代码

本文涉及的产品
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
交互式建模 PAI-DSW,每月250计算时 3个月
简介: 【需求响应式接驳公交】基于NSGA2算法求解准点情形下需求响应式接驳公交DRFB模型附matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。

🍎个人主页:Matlab科研工作室

🍊个人信条:格物致知。

更多Matlab仿真内容点击👇

智能优化算法       神经网络预测       雷达通信      无线传感器        电力系统

信号处理              图像处理               路径规划       元胞自动机        无人机

⛄ 内容介绍

在公交客流稀疏地区,需求响应式接驳公交(DRFB)已成为解决“最后一公里”公交服务,提高公交竞争力和吸引力的重要措施。然而,受道路交通影响,干线公交的实际到站与计划到站时间可能会存在偏差,导致DRFB与干线公交时刻表不相协调,影响换乘效率,增加公交出行成本,降低公交系统的服务效能。基于干线公交到达换乘站非准点情景,通过时间轴和关键点的识别,建立时刻表优化模型,以企业运营成本、乘客乘车时间成本为优化目标。根据干线公交运行状态调整DRFB调度方案,优化运行时刻表。最后,以南京市机场专线为例,对两种情景下DRFB的时刻表模型进行仿真分析,确定最优行驶路线及运行时刻表。

⛄ 部分代码

%% 所有数据获取界面

function data = GetData()

   data.nodeNum = 15; % 节点数

   data.K = 3; % 车辆数

   data.lineNum = 3;

   data.dis = [ %节点间距离

        [0.00     849.74   870.74  1542.53   491.49   877.43 906.46  1308.11   349.97  1501.82   549.34  1452.21  507.69  1064.15  1073.06  1332.13]

       [ 849.74     0.00  1328.22  2083.07  1004.32  1478.44   1619.92    33.25   700.24  2279.54  1360.65  2288.20  772.29  1304.10  1914.93  1943.65]

       [ 870.74  1328.22  0.00 755.13   390.00   253.48 512.92   833.87  1196.17  1144.06  1154.08  1355.21 1366.99  1932.11  1374.58  2039.12]

       [1542.53  2083.07 755.13   0.00  1117.00   665.17 719.60   584.87  1889.46 845.36 1632.02  1240.84 2050.03  2554.83  1588.29 2458.20]

       [ 491.49  1004.32 390.00 1117.00 0.00   476.95 628.73  1035.82   806.87  1303.57 875.86  1398.28  978.62  1555.48  1236.12 1747.63]

       [ 877.43  1478.44 253.48 665.17   476.95 0.00 262.24   596.20  1224.44 897.98 1033.95  1102.93 1385.02  1903.46  1166.94 1906.53]

       [ 906.46  1619.92 512.92 719.60   628.73   262.24   0.00   414.46  1253.98 676.71 912.66   842.42 1397.85  1854.55 939.53 1748.44]

       [1308.11  2033.25 833.87 584.87  1035.82   596.20 414.46 0.00  1650.58 320.76 1211.04   661.68 1785.11  2193.37  1038.21 1956.25]

       [ 349.97   700.24  1196.17 1889.46   806.87  1224.44 1253.98  1650.58 0.00  1827.43 695.87  1733.42  174.52   788.03  1266.68 1262.43]

       [1501.82  2279.54  1144.06 845.36  1303.57   897.98 676.71   320.76  1827.43  0.00  1289.67   430.07 1943.55  2279.94 969.58 1921.43]

       [ 549.34  1360.65  1154.08 1632.02   875.86  1033.95 912.66  1211.04   695.87  1289.67     0.00  1094.79  740.20   991.50 571.49 885.20]

       [1452.21  2288.20  1355.21 1240.84  1398.28  1102.93 842.42   661.68  1733.42 430.07 1094.79 0.00 1817.12  2046.82 633.00 1570.59]

       [ 507.69   772.29  1366.99 2050.03   978.62  1385.02 1397.85  1785.11   174.52  1943.55 740.20  1817.12 0.00   620.37  1307.06 1171.91]

       [1064.15  1304.10  1932.11 2554.83  1555.48  1903.46 1854.55  2193.37   788.03  2279.94 991.50  2046.82  620.37 0.00  1436.12 845.21]

       [1073.06  1914.93  1374.58 1588.29  1236.12  1166.94 939.53  1038.21  1266.68 969.58 571.49   633.00 1307.06  1436.12  0.00 952.74]

       [1332.13  1943.65  2039.12 2458.20  1747.63  1906.53 1748.44  1956.25  1262.43  1921.43 885.20  1570.59 1171.91   845.21 952.74   0.00]

       ];

   data.time = [ % 节点间运行时间

       [0 3 3 6 2 4 4 5 1 6 2 6 2 4 4 5]

       [3 0 5 8 4 6 6 8 3 9 5 9 3 5 8 8]

       [3 5 0 3 2 1 2 3 5 5 5 5 5 8 5 8]

       [6 8 3 0 4 3 3 2 8 3 7 5 8 10 6 10]

       [2 4 2 4 0 2 3 4 3 5 4 6 4 6 5 7]

       [4 6 1 3 2 0 1 2 5 4 4 4 6 8 5 8]

       [4 6 2 3 3 1 0 2 5 3 4 3 6 7 4 7]

       [5 8 3 2 4 2 2 0 7 1 5 3 7 9 4 8]

       [1 3 5 8 3 5 5 7 0 7 3 7 1 3 5 5]

       [6 9 5 3 5 4 3 1 7 0 5 2 8 9 4 8]

       [2 5 5 7 4 4 4 5 3 5 0 4 3 4 2 4]

       [6 9 5 5 6 4 3 3 7 2 4 0 7 8 3 6]

       [2 3 5 8 4 6 6 7 1 8 3 7 0 2 5 5]

       [4 5 8 10 6 8 7 9 3 9 4 8 2 0 6 3]

       [4 8 5 6 5 5 4 4 5 4 2 3 5 6 0 4]

       [5 8 8 10 7 8 7 8 5 8 4 6 5 3 4 0]

       ];

   data.passInf_str=[ % 用户信息字符串表示

       ["1" "7:00" "7:30" "8:10" "8:30"]

       ["1" "7:00" "7:30" "8:10" "8:30"]

       ["2" "7:00" "7:30" "8:10" "8:30"]

       ["3" "7:00" "7:30" "8:10" "8:30"]

       ["2" "7:00" "7:30" "8:10" "8:30"]

       ["1" "7:00" "7:30" "8:10" "8:30"]

       ["1" "7:00" "7:30" "8:10" "8:30"]

       ["3" "7:00" "7:30" "8:10" "8:30"]

       ["4" "7:00" "7:30" "8:10" "8:30"]

       ["2" "7:00" "7:30" "8:10" "8:30"]

       ["1" "7:00" "7:30" "8:10" "8:30"]

       ["2" "7:00" "7:30" "8:10" "8:30"]

       ["2" "7:00" "7:30" "8:10" "8:30"]

       ["1" "7:00" "7:30" "8:10" "8:30"]

       ["4" "7:00" "7:30" "8:10" "8:30"]

       ];

   data.lines=[ % 原站点线路

       "0-10-12-14-2-11-0"

       "0-6-7-9-5-1-13-0"

       "0-8-5-3-4-15-0"

       ];

   data.startTime_str = [ "7:30" "7:30" "7:30"]; % 原站点出发时间


   for i=1:data.nodeNum % 将用户信息字符串表示转成数字表示

       for j = 1:5

           if j == 1

               data.passInf(i,j) = str2num_my(data.passInf_str(i,j));

           else

                data.passInf(i,j) = timeToNum(data.passInf_str(i,j));

           end

       end

   end


   for i = 1:data.K

       data.startTime(i) = timeToNum(data.startTime_str(i));

   end

   

   for i = 1:data.lineNum

       line = data.lines(i).split('-');

       for j = 2:length(line)-1

            node = str2num_my(line(j));

            node_pre = str2num_my(line(j-1));

           if j == 2              

               data.node_time(node) = data.startTime(i) + data.time(1, node+1);

           else

               data.node_time(node) = data.node_time(node_pre) + data.time(node_pre + 1, node+1);

           end

       end

   end


   for i =1:data.nodeNum

       data.node_time_str{i} = numToTime(data.node_time(i));

   end



end

⛄ 运行结果

⛄ 参考文献

[1] 宋晓鹏, 韩印, 姚佼. 基于NSGA算法的公交车辆调度优化模型[J]. 上海理工大学学报, 2014, 36(4):6.

[2] 辛怡, 霍娅敏. 基于NSGA-Ⅱ算法的需求响应式公交多目标线网优化模型[J]. 综合运输, 2022(002):044.

[3] 楚小兰, 张进杰. 紧急制动下驾驶员的坐姿仿真变化及损伤研究[J]. 建模与仿真, 2023, 12(2):16.

[4] 黄艳国, 韩亮, 张硕,等. 基于NSGA-Ⅱ算法的多目标公交调度优化模型[J]. 科学技术与工程, 2019, 19(19):6.

⛳️ 代码获取关注我

❤️部分理论引用网络文献,若有侵权联系博主删除
❤️ 关注我领取海量matlab电子书和数学建模资料


相关文章
|
3天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
110 80
|
1天前
|
机器学习/深度学习 算法 数据安全/隐私保护
数据链中常见电磁干扰matlab仿真,对比噪声调频,线性调频,噪声,扫频,灵巧五种干扰模型
本项目展示了用于分析和模拟电磁干扰对数据链系统影响的算法。通过Matlab 2022a运行,提供无水印效果图预览。完整代码包含详细中文注释及操作视频。理论部分涵盖五种常见干扰模型:噪声调频、线性调频、噪声、扫频和灵巧干扰,详细介绍其原理并进行对比分析。灵巧干扰采用智能技术如认知无线电和机器学习,自适应调整干扰策略以优化效果。
|
9天前
|
算法
基于Adaboost模型的数据预测和分类matlab仿真
AdaBoost(Adaptive Boosting)是一种由Yoav Freund和Robert Schapire于1995年提出的集成学习方法,旨在通过迭代训练多个弱分类器并赋予分类效果好的弱分类器更高权重,最终构建一个强分类器。该方法通过逐步调整样本权重,使算法更关注前一轮中被误分类的样本,从而逐步优化模型。示例代码在MATLAB 2022A版本中运行,展示了随着弱分类器数量增加,分类错误率的变化及测试数据的分类结果。
|
8天前
|
供应链 算法 调度
排队算法的matlab仿真,带GUI界面
该程序使用MATLAB 2022A版本实现排队算法的仿真,并带有GUI界面。程序支持单队列单服务台、单队列多服务台和多队列多服务台三种排队方式。核心函数`func_mms2`通过模拟到达时间和服务时间,计算阻塞率和利用率。排队论研究系统中顾客和服务台的交互行为,广泛应用于通信网络、生产调度和服务行业等领域,旨在优化系统性能,减少等待时间,提高资源利用率。
|
16天前
|
算法
基于模糊PI控制算法的龙格库塔CSTR模型控制系统simulink建模与仿真
本项目基于MATLAB2022a,采用模糊PI控制算法结合龙格-库塔方法,对CSTR模型进行Simulink建模与仿真。通过模糊控制处理误差及变化率,实现精确控制。核心在于将模糊逻辑与经典数值方法融合,提升系统性能。
|
16天前
|
存储 算法
基于HMM隐马尔可夫模型的金融数据预测算法matlab仿真
本项目基于HMM模型实现金融数据预测,包括模型训练与预测两部分。在MATLAB2022A上运行,通过计算状态转移和观测概率预测未来值,并绘制了预测值、真实值及预测误差的对比图。HMM模型适用于金融市场的时间序列分析,能够有效捕捉隐藏状态及其转换规律,为金融预测提供有力工具。
|
16天前
|
机器学习/深度学习 算法 信息无障碍
基于GoogleNet深度学习网络的手语识别算法matlab仿真
本项目展示了基于GoogleNet的深度学习手语识别算法,使用Matlab2022a实现。通过卷积神经网络(CNN)识别手语手势,如"How are you"、"I am fine"、"I love you"等。核心在于Inception模块,通过多尺度处理和1x1卷积减少计算量,提高效率。项目附带完整代码及操作视频。
|
2天前
|
算法
基于EO平衡优化器算法的目标函数最优值求解matlab仿真
本程序基于进化优化(EO)中的平衡优化器算法,在MATLAB2022A上实现九个测试函数的最优值求解及优化收敛曲线仿真。平衡优化器通过模拟生态系统平衡机制,动态调整搜索参数,确保种群多样性与收敛性的平衡,高效搜索全局或近全局最优解。程序核心为平衡优化算法,结合粒子群优化思想,引入动态调整策略,促进快速探索与有效利用解空间。
|
4月前
|
安全
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
本文介绍了2023年高教社杯数学建模竞赛D题的圈养湖羊空间利用率问题,包括问题分析、数学模型建立和MATLAB代码实现,旨在优化养殖场的生产计划和空间利用效率。
232 6
【2023高教社杯】D题 圈养湖羊的空间利用率 问题分析、数学模型及MATLAB代码
|
4月前
|
存储 算法 搜索推荐
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现
本文提供了2022年华为杯数学建模竞赛B题的详细方案和MATLAB代码实现,包括方形件组批优化问题和排样优化问题,以及相关数学模型的建立和求解方法。
142 3
【2022年华为杯数学建模】B题 方形件组批优化问题 方案及MATLAB代码实现

热门文章

最新文章