1 简介

列车开行方案是城轨系统正常运行的基础,可有效保障路网整体运输效率及城轨系统的服务水平。随着城市轨道交通的快速发展,客流分布呈现出多样性、复杂性和时变性等特征,客流需求与运输能力的矛盾亦愈加显著,为运输组织带来了巨大挑战。常见的列车开行模式为单一交路运营模式,一般以客流 OD 数据为基础,进而确定轨道交通的分时段断面客流量[1],设定线路的运输能力高于最大断面客流量,后固定列车的发车频率及编组配置。但对于高峰期大客流车站的客流运送与疏解,单一交路开行方案显然存在一定弊端: 若在高峰期缩短发车间隔,实行较大开行密度以缓解拥堵,易导致高峰期高客流区间与低客流区间满载率分布不均、运能浪费的现象; 若开行密度过小,则不能满足通勤者的出行需求。在此背景下,多交路的列车开行方案应运而生,给城市轨道交通运输组织模式带来新的思考。

2 部分代码

clear;clc;close all;

%% 生成随机OD矩阵

%od()

%%遗传参数设置

NUMPOP=200;%初始种群大小

irange_l=1; %问题解区间

irange_r=35;

LENGTH=24; %二进制编码长度

ITERATION = 10000;%迭代次数

CROSSOVERRATE = 0.8;%杂交率

SELECTRATE = 0.4;%选择率

VARIATIONRATE = 0.2;%变异率

OD = xlsread('OD.xlsx');% 苏州地铁2号线调查问卷OD出行矩阵

h = xlsread('区间运行时间.xlsx'); % 苏州地铁2号线区间长度及运行时分

%初始化种群

pop=m_InitPop(NUMPOP,irange_l,irange_r);

pop_save=pop;

fitness_concat = [];

best_solution = [];

%开始迭代

for time=1:ITERATION

%计算初始种群的适应度

fitness=m_Fitness(pop, OD, h);

fitness_concat = [fitness_concat;max(fitness)];

pop_T = pop';

[m,index] = max(m_Fitness(pop, OD, h));

best_solution = [best_solution;pop(:,index)'];

%选择

pop=m_Select(fitness,pop,SELECTRATE);

%编码

binpop=m_Coding(pop,LENGTH,irange_l);

%交叉

kidsPop = crossover(binpop,NUMPOP,CROSSOVERRATE);

%变异

kidsPop = Variation(kidsPop,VARIATIONRATE);

%解码

kidsPop=m_Incoding(kidsPop,irange_l);

%更新种群

pop=[pop kidsPop];

end

disp(['最优解:' num2str(min(m_Fx(pop,OD))) '分钟']);

disp(['最优解对应的各参数:' num2str(pop(1,1)) ',' num2str(pop(2,1)) ',' num2str(pop(3,1)) ',' num2str(pop(4,1)) ]);

disp(['最大适应度:' num2str(max(m_Fitness(pop, OD, h)))]);

figure

% set(gca,'looseInset',[0 0 0 0]);

set(gcf,'outerposition',get(0,'screensize'));

loglog(1:ITERATION, fitness_concat, 'Blue*-','linewidth',2)

legend('{\bf最优适应度值}');

xlabel('{\bf进化代数}','fontsize',30);

ylabel('{\bf最优适应度}','fontsize',30);

set(gca,'FontSize',20,'Fontname', 'Times New Roman');

set(get(gca,'XLabel'),'Fontsize',20,'Fontname', '宋体');

set(get(gca,'YLabel'),'Fontsize',20,'Fontname', '宋体');

set(get(gca,'legend'),'Fontsize',20,'Fontname', '宋体');

set(get(gca,'title'),'Fontsize',20,'Fontname', '宋体');

set(gca,'linewidth',2);

print(gcf,'-dpng','-r300','最优适应度值-进化代数');

figure

% set(gca,'looseInset',[0 0 0 0]);

set(gcf,'outerposition',get(0,'screensize'));

semilogx(1 : ITERATION, best_solution,'linewidth',4)

legend('{\bf大小交路折返站a}','{\bf大小交路折返站b}','{\bf大交路发车频率f_1}','{\bf小交路发车频率f_2}');

% text(6, 0.3, '$\leftarrow  y= 2^{-x}$', 'HorizontalAlignment', 'left', 'Interpreter', 'latex', 'FontSize', 15);

xlabel('{\bf进化代数}','fontsize',15);

ylabel('{\bf参数各代最优值}','fontsize',15);

set(gca,'FontSize',20,'Fontname', 'Times New Roman');

set(get(gca,'XLabel'),'Fontsize',20,'Fontname', '宋体');

set(get(gca,'YLabel'),'Fontsize',20,'Fontname', '宋体');

set(get(gca,'legend'),'Fontsize',20,'Fontname', '宋体');

set(get(gca,'title'),'Fontsize',20,'Fontname', '宋体');

set(gca,'linewidth',2);

print(gcf,'-dpng','-r300','参数各代最优值-进化代数');

3 仿真结果

4 参考文献

[1]周琛琛. 基于Matlab遗传算法工具箱的函数优化问题求解[J]. 现代计算机:上下旬, 2006(12):84-84.​

部分理论引用网络文献,若有侵权联系博主删除。

5 MATLAB代码与数据下载地址

见博客主页

【优化求解】基于遗传算法求解列车交路方案matlab代码相关推荐

  1. 基于遗传算法的配电网重构研究(Matlab代码实现)

  2. 【图像检测-边缘检测】基于遗传算法的边缘检测算法研究附matlab代码

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

  3. 【生产调度】基于遗传算法求解柔性生产调度(FJSP)问题含Matlab源码

    1 简介 制造业同人们的生活密切联系,其发展走向可直接影响国家的综合实力.制造业企业不仅需要将制造技术走在科技前端,而且需要加强生产和经营管理技术,这样才能时刻保持其核心竞争力.而企业的调度是企业管理 ...

  4. 【建模算法】基于遗传算法求解TSP问题(matlab求解)

    [建模算法]基于遗传算法求解TSP问题(matlab求解) TSP (traveling salesman problem,旅行商问题)是典型的NP完全问题,即其最坏情况下的时间复杂度随着问题规模的增 ...

  5. 基于遗传算法求解TSP问题(旅游路径规划,Python实现,超详细,可视化,结果分析)

    ps:作者是很用心写的,如果觉得不错,请给作者一点鼓励噢!(点赞收藏评论噢) 基于遗传算法求解TSP问题 摘要 巡回旅行商问题(TSP)是组合优化中的经典问题.常见的TSP问题求解算法例如穷举法.贪心 ...

  6. 【Matlab优化求解】遗传算法求解仓库货位优化问题【含源码 022期】

    一.代码运行视频(哔哩哔哩) [Matlab优化求解]遗传算法求解仓库货位优化问题[含源码 022期] 二.遗传算法仓库货位简介(仅供参考) 1 引言 随着电力企业生产规模的不断扩大,传统模式下的仓库 ...

  7. 【Matlab优化覆盖】遗传算法求解无线传感器覆盖优化问题【含源码 1320期】

    一.代码运行视频(哔哩哔哩) [Matlab优化覆盖]遗传算法求解无线传感器覆盖优化问题[含源码 1320期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1]赵 ...

  8. 基于PCA主成分分析的BP神经网络回归预测MATLAB代码

    基于PCA主成分分析的BP神经网络回归预测MATLAB代码 代码注释清楚. 先对数据集进行主成分分析,自主根据贡献率选择主成分:同时计算KMO验证值:用PCA以后数据进行BP神经网络回归预测. 可以读 ...

  9. 【优化求解】基于遗传算法求解电动汽车充电管理优化问题Matlab代码

    1 简介 在现有的电池技术和充电条件下,快换式充电站成为国内纯电动公交最主要的能量补给摸式.针对电池组充电电费过高和增加配电网峰谷差的问题,以及换电站内快换工位和备用电池空闲的情况,在保证车辆正常运营 ...

最新文章

  1. 优胜队伍跑多快?优胜秘笈是什么?直播告诉你
  2. 使用fliter实现ie下css中rgba的效果
  3. CodeForces - 1348D Phoenix and Science(贪心)
  4. java jar中jar_java – jar中的jar
  5. [转 TDD] 如何坚持TDD:使用者出现的问题以及解决方案
  6. mongodb时间范围查询少8个小时_为何要对开源mongodb数据库内核做二次开发
  7. linux mount 查看挂载目录,Linux下使用mount来挂载设备到目录
  8. elasticsearch Java API 之Delete By Query API
  9. 移动营销的魔力:让你的客户无处可逃(附赠2012移动营销百问百答手册)
  10. if js 判断成绩等级_Java判断语句的语法和使用
  11. Sping和springBoot框架技术栈
  12. Ubuntu系统多屏幕时 触摸屏如何分屏定位
  13. 15.supervisor 安装
  14. [4G5G专题-101]:部署 - LTE FDD与LTE TDD技术差异比较详解
  15. 懒人版黑苹果mbr安装_BIOS+MBR硬盘,一步一步教你怎么用clover装黑苹果
  16. Java实现短信验证码功能(利用容联云,个人测试,不需要项目上线)
  17. 思域第三方app安装方法(提权)
  18. speedoffice(PPT)插入的图片如何裁剪呢?
  19. MATLAB 对信号进行butter带通滤波
  20. ubuntu虚拟化技术OpenVZ

热门文章

  1. PE格式:手工实现各种脱壳后的修复
  2. 零基础来学淘宝美工难吗?
  3. 新人学习笔记-分布式基础学习-分布式文件系统
  4. 如何让你的flag屹立不倒!
  5. 【Labplus 3】Scratch时钟表盘角度解析
  6. 图解基于node.js实现前后端分离
  7. 投票功能+代码+java_JSP实现的简单Web投票程序代码
  8. jquery validation纪要,我们的好伴侣
  9. 敏捷开发思想的终极应用:软件快速开发平台
  10. 持续集成之群聊机器人消息推送:钉钉 vs 企业微信