1 简介

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

【优化求解】基于遗传算法求解列车交路方案matlab代码_迭代

【优化求解】基于遗传算法求解列车交路方案matlab代码_迭代_02

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 仿真结果

【优化求解】基于遗传算法求解列车交路方案matlab代码_参考文献_03

【优化求解】基于遗传算法求解列车交路方案matlab代码_迭代_04

4 参考文献

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

【优化求解】基于遗传算法求解列车交路方案matlab代码_迭代_05