【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化

【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化

  • 一、模型介绍
    • (一)引言
    • (二)符号定义
    • (三)目标函数
    • (四)约束条件
      • 4.1到达乘客数量
      • 4.2乘客进站限制
      • 4.3乘客总数量,上车乘客梳理和车站乘客滞留数量限制
      • 4.4乘客下车数量约束
      • 4.5列车运行约束
      • 4.6发车间隔约束
      • 4.7列车承载量约束
  • 二、案例分析
  • 三、结果展示
  • 四、源码分享

一、模型介绍

(一)引言

这是交通专业常见的优化模型,之前也分享过类似的案例。近期又陆续做了几个列车相关的优化模型,在这里和大家进行分享。
本文主要研究【单线路,固定容量,确定OD和下车比率】,以优化乘客等待数为目标,建立的单目标优化模型,通过优化列车时刻表,结合客流控制手段,城市轨道交通拥挤,减少站台拥堵。
算法选用的遗传算法
编码为实数+结构体编码
根据模型需求,设计了针对性的交叉和变异手段。

(二)符号定义

为了便于大家理解模型,对本文涉及到的符号定义如下:

【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第1张图片

(三)目标函数

以车站乘客总滞留人数最少为目标,车站乘客总滞留人数包括了站台上的总滞留人数和未允许进入车站的人数

m i n ⁡ ∑ ( l ∈ L ) ∑ ( r ∈ R ) ( W ( l , r ) + Z ( l , n ) ) min⁡∑(l∈L)∑(r∈R)(W(l,r)+Z(l,n) ) min(lL)(rR)(W(l,r)+Z(l,n))

(四)约束条件

4.1到达乘客数量

相邻两列车发车间隔时间内的乘客到达数量由乘客到达率决定,表示为:

【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第2张图片

4.2乘客进站限制

由于高峰时段到站人数较多,为了保障乘客安全和一定的舒适度,要求车站进站乘客与上列车走后滞留在本站站台乘客数之和不超过站台安全限制人数。
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第3张图片

4.3乘客总数量,上车乘客梳理和车站乘客滞留数量限制

【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第4张图片

4.4乘客下车数量约束

【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第5张图片

4.5列车运行约束

【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第6张图片

4.6发车间隔约束

设置最大和最小发车间隔TmaxTmin,优化的目标时段内的所有车辆之间的间隔deltaT均大于Tmin,小于Tmax
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第7张图片

4.7列车承载量约束

每次列车到站,上车后的乘客总量不得大于列车的最大承载量Q
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第8张图片

二、案例分析

本文分析的案例数据不便于公开,感兴趣的可以单独联系

三、结果展示

> 主要是滞留等待的乘客数量分布,未进站的乘客数量分布,列车运行时间,和进化曲线等等。时间有限,不能逐个给大家讲解结果图的含义,有看不懂需要指导的可以单独联系
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第9张图片
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第10张图片
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第11张图片
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第12张图片
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第13张图片
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第14张图片
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第15张图片
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第16张图片
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第17张图片

【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第18张图片

四、源码分享

本项目属于比较常规的列车运行优化模型,采用了固定容量,和确定的客流OD,大大的降低了模型的复杂度。最近还做了一个
同时优化间隔和容量的列车模型,后续有时间了给大家进行分享。
本模型使用了常规的遗传算法(GA),当然您如果想要用其他算法也是可以的,我已经根据模型,写好了初始化算子,交叉算子,变异算子,修复算子和计算目标函数的算子。你把算法框架替换,这些算子可以继续沿用,基本上可以改成任意的算法。
同样的,本文代码的数据接口和参数设置也是支持修改的,只要按照指定的格式将客流量数据和下车比例数据写到excel中,即可实现算例的更改。
总而言之,本文代码适合***①想要学习遗传算法的朋友,结合案例,深入理解遗传算法的思想精髓,同时学会如何结合实际问题修改算子。②交通专业的朋友,做相关项目的时候,可以直接借鉴源码,也可以按照我上面所说,对算法框架,算子和数据进行任意修改和拓展,从而达到实现自己模型需求的目的。***
> 以上是本人的一些分享,有错误不足之处,希望大家多多批评指正。
【Matlab】基于遗传算法的列车发车时刻(发车间隔)优化_第19张图片
以上是代码全部内容和数据,有需要的可以点击链接:C币下载
或者关注 点赞 加好评,私聊我获取源码。

你可能感兴趣的:(优化算法,matlab,算法,交通物流,规划问题,启发式算法)