【调度问题】基于遗传算法求解公交排班系统matlab源码

361 阅读2分钟

 1 简介

针对公交车的调度优化问题,文章通过对公交线路模型以及不同等级的公交线路层次特征进行分析,提出了一种基于遗传算法的公交排班模型,并建立了目标函数和约束条件.文中分别对公交线路模型和公交排班问题模型进行了Matlab仿真实验,并模拟了公交线路上人员数量的变化.针对公交排班的特点,对遗传算法的各个算子进行了专门化处理并进行了大量的试算.仿真实验结果表明,遗传算法对解决公交车辆排班问题是有效的,大大地提高了公交车辆的运营效率.

2 部分代码

% 产生t(i)序列
clc,clear,close all
warning off
Tmin = 1;   % 表示相邻车辆间发车间隔的最小值(min)
Tmax = 10;  % 表示相邻车辆间发车间隔的最大值(min)
delta = 4;  % 表示相邻车辆发车间隔之差的限制值
m = 500;    % 表示总的发车次数(车次)
a = randi(10);  % t(1)第一个值的取值范围设定为1-10之间随机取值
t(1) = a;       % 赋值
maxt = 960;    % t(i)的最大值
% Loop
for i=2:m
   flag = 1;       % 标志变量
   while flag == 1
       % Tmin< t(i)-t(i-1) < Tmax
       a1 = randi(9);
       if a1>Tmin+2 && i==2
           t(i)=t(i-1)+a1; % Tmin < t(i)-t(i-1) < Tmax
           flag = 0;   % i 时间点计算完毕
       elseif a1>Tmin+2 && i>2  % |t(i+1)-2*t(i)+t(i-1)|<delta 
           t(i)=t(i-1)+a1; % Tmin < t(i)-t(i-1) < Tmax
           if abs( (t(i)-t(i-1)) -(t(i-1)-t(i-2)) )<delta
               flag = 0;  % i 时间点计算完毕
           end
       end
   end
end
tt = t*maxt/max(t);
ttt = -tt(1:499)+tt(2:500);

3 仿真结果

4 参考文献

[1]刘继国. "基于遗传算法的公交排班系统研究." 控制与信息技术 No.462.06(2019):17-21+27.

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

5 MATLAB代码与数据下载地址

见博客主页