【优化调度】基于改进遗传算法的公交车调度排班优化的研究与实现(Matlab代码实现)

目录

1 概述

2 运行结果

3 Matlab代码 

 4 参考文献

5 写在最后


1 概述

本文对当前公交企业调度系统进行了分析,建立了公交排班的数学模型。本文基于数据挖掘分析的结果上,使用截面客流量数据对模型进行约束,得出了公交客流出行的空间分布规律。再以发车间隔为决策变量,以发车最大间隔、最小发车间隔和车辆满载率为约束条件,建立公交线路排班的数学模型,以公交公司发车成本最小和乘客等车时间成本最小为目标,建立双目标函数的数学模型。
本文设计了一种基于改进的遗传算法公交排班调度优化的解决方法,在对排班结果进行优化的过程中,本文分别在选择、交叉、变异三个阶段对算法进行改进和优化。选择的改进上是设计一个动态适应度函数,采用无放回式优良个体多复制的选择的方法。交叉的改进上是设计了新的交叉算子,交叉算子考虑了初期群体和后期群体质量会相差较大,所以使应交义函数。变异上的改进是引入了禁忌搜索算法。在预测客流量基础上,基于改进的遗传算法,模型求解确定出最优的排班时刻表和最小配车数。详细文章见第3部分。
 

2 运行结果

【优化调度】基于改进遗传算法的公交车调度排班优化的研究与实现(Matlab代码实现)_第1张图片

 【优化调度】基于改进遗传算法的公交车调度排班优化的研究与实现(Matlab代码实现)_第2张图片

3 Matlab代码 

本文仅展现部分代码,全部代码及文章点击链接:

基于遗传算法的公交车调度排班优化的研究与实现(Matlab代码实现)

function Offspring = GA(Population)
global bus
N = length(Population);
Offspring = Population;
for i=1:floor(N/2)
    P1 = Population(2*i-1).decs;
    P2 = Population(2*i).decs;
    
    [C1,C2] = Crossover(P1,P2);
    C1 = Mutation(C1);
    C2 = Mutation(C2);
    
    C1 = max(bus.minInterval,C1); C1=min(bus.maxInterval,C1);
    C2 = max(bus.minInterval,C2); C2=min(bus.maxInterval,C2);
    Offspring(2*i-1).decs = C1;
    Offspring(2*i).decs = C2;
end

Offspring = CalObj(Offspring);

【优化调度】基于改进遗传算法的公交车调度排班优化的研究与实现(Matlab代码实现)_第3张图片

 4 参考文献

[1] 包子阳,余继周,杨杉.智能优化算法及其MATLAB实例(第2版)[M].电子工业出版社,2016.
[2]张岩,吴水根.MATLAB优化算法源代码[M].清华大学出版社,2017.

博主课外兴趣:中西方哲学,送予读者:

‍做科研,涉及到一个深在的思想系统,需要科研者逻辑缜密,踏实认真,但是不能只是努力,很多时候借力比努力更重要,然后还要有仰望星空的创新点和启发点。当哲学课上老师问你什么是科学,什么是电的时候,不要觉得这些问题搞笑,哲学就是追究终极问题,寻找那些不言自明只有小孩子会问的但是你却回答不出来的问题。在我这个专栏记录我有空时的一些哲学思考和科研笔记:科研和哲思。建议读者按目录次序逐一浏览,免得骤然跌入幽暗的迷宫找不到来时的路,它不足为你揭示全部问题的答案,但若能让人胸中升起一朵朵疑云,也未尝不会酿成晚霞斑斓的别一番景致,万一它居然给你带来了一场精神世界的苦雨,那就借机洗刷一下原来存放在那儿的“真理”上的尘埃吧。

     或许,雨过云收,神驰的天地更清朗.......

5 写在最后

部分理论引用网络文献,如有侵权请联系删除。

你可能感兴趣的:(#,数学建模比赛,matlab,算法,开发语言,优化调度,公交车调度)