基于Q-learning方法的地铁列车时刻表重新调度

news2024/12/23 5:30:01

eeb881b7c3d7787a01316d4e25267f8b.png

文章信息

4427a55ffc333c5b32e12dc98f0197f3.png

《Metro Train Timetable Rescheduling Based on Q-learning Approach》是发表在2020 IEEE 23rd International Conference on Intelligent Transportation Systems (ITSC)上的一篇文章。

4779a97da5d9145b03cdc4bb8766ed1c.png

摘要

a7711cd8355f4d8d34486646e52242c7.png

在地铁系统中,不可预测的干扰会影响正常运行,给乘客带来诸多不便。本文研究了地铁管理中考虑实际操作的列车时刻表改期问题。首先,建立了以改期时刻表偏差、乘客总延误时间和能耗为目标的优化模型。同时,介绍了约束条件和一些实用的重调度规则(如预编程速度曲线、列车扣留策略)。其次,将该模型重新构建为马尔可夫决策过程(MDP),明确了状态、动作和奖励函数,然后采用提出的Q-learning方法求解。最后,以北京亦庄地铁线的运行数据为例,验证了该方法的有效性。结果表明,在短时间内可以得到优化目标之间的权衡解。

e35a177980d533168ff96e0928caf259.png

介绍

67d77041f3734d16a7e0a00344d1a4d9.png

随着中国轨道交通的快速发展,地铁系统提供的快速、便捷的服务使乘客受益匪浅。但在一些不可避免的干扰场景下(如基础设施故障、设备故障),巨大的客流需求也给运营管理带来了很大的压力。如果发车间隔较短,主要延误很容易在列车之间产生连锁反应,导致无法实施计划的列车时刻表。更重要的是,列车延误的发生会影响服务质量和乘客满意度。在这种情况下,需要及时调整计划的时刻表,以减少对乘客的负面影响。调度员的操作非常复杂,包括呼叫司机、通知站内工作人员、记录操作过程等,可能会降低重调度策略的效率。因此,有必要设计一种算法来辅助调度员处理列车延误,使列车从干扰中迅速恢复正常运行。

当由干扰引起的主要列车延误时,如果其后的列车不在其后的车站滞留,可能会导致其后的列车在该区段内停止或缓慢运行。从乘客的角度来说,如果持续一段时间,会带来很大的不适。因此,调度员会尽量安排列车在车站停靠,以避免不必要的恐慌。此外,列车运行和停站时间的调整是列车自动运行(ATO)系统中另一种最常用的基于预编程速度曲线的运行调整策略,与列车运行时间一一对应。考虑到这些实际的调度策略,本文首先在多目标TTR模型中引入了扣留策略和运行水平。从决策的角度,将模型转化为MDP模型,并提出了相应的强化学习方法。

533aab844bc435b69746823f07e4b082.png

问题描述

9cfecead6c087450728344fa2f797f93.png

我们考虑的地铁线路结构如图1所示,包括上行、下行和一个折返站。车站和区段用1,2,…,2I表示。

e4bfb9500b3dbf646755d97362bc2bb7.png

根据地铁系统的特点和实际运行情况,提出了一些假设。

1) 由于地铁系统布局单一,车站通常没有侧线。从这个意义上说,本文不允许超车和交叉策略。换句话说,所有的列车都以先进先出的方式运行,并在每个车站停车。

2) 某一运营级别对应的特定路段的运行时间是一个固定值,因为ATO系统预先编程了速度曲线。

3) 不考虑外部因素,如极端天气、地震等导致完全中断运行的情况。

A. 目标函数

本文从计划时刻表与改期时刻表的偏差、能耗和乘客总延误时间三个方面考虑优化目标。

TTR问题首先是为了尽快恢复正常的运行秩序和计划的时间表。Tdeviation用于表示计划时间表与改期时间表的偏差之和,具体表示如下

56719d0abdba0828ad079283cb89ad8e.png

其中T~arrive k,i和Tarrive k,i分别代表列车k到达i站的计划时间和重新安排的时间;T~depart k,i和Tdepart k,i分别代表k次列车从i站出发的计划时间和改期时间;K是需要改期列车数量的总和,2I是车站和路段的数量总和。

其次,列车在固定路段的能耗取决于行驶时间,而行驶时间是由运营水平决定的。一旦给出了运营水平,就可以确定这部分消耗的能量。那么总能量消耗可以由Econsume给定

a9dbdb503ab2e0417af96170f49ea77b.png

式中Ek,i为列车k在第i段的能耗。

扰动下的列车延误会降低服务质量,从而影响乘客的满意度。车上乘客到达目的地的延误时间Tdelay计算为

e3c1ff9f58051db0e9fa48ad8f8cd3a2.png

其中Narrive k,i是k次列车在i站下车的乘客人数。

综上所述,我们制定了目标函数,使这些指标的加权和最小,以达到运营成本和服务质量之间的权衡,即

77ba1cfaa0dca49f702d8b13afa56b27.png

式中ωd、ωt、ωe为权重系数,表示不同指标的重要性。

B. 约束

1) 车头时距约束:为了保证安全,列车必须满足一定的车头时距,这是通过下限来保证的。只要同一站点相邻列车的到站和发站时间被限制,这些约束条件就会得到满足,写为

dc670f5aa6f9412d6accd6b087d7b2fc.png

其中hmin为最小车头时距。

2) 运行和停站时间约束:如上所述,这里考虑ATO系统中预编程的速度曲线。因此,运行时间由运营水平唯一决定。设δl k,i和ηn k,i为表示是否选择运营水平l或n的二元变量,对运行和停站时间的约束公式为

620c71bc188aef3483840750bcc6d8dc.png

188c4001ae92441227b3a9c7cb208d90.png

其中Rl k,i为运营水平l的运行时间,Dn k,i为运营水平n的停站时间。由式(9)可知,k次列车在i段或i站只能选择一种运营水平。

3) 折返约束:列车到达I站后,会折返并改变行驶方向。因此,我们使用周转约束来指定列车返回所需的时间,它被描述为

fdbaa5cf517f3fb6754c319cbc0ddd06.png

其中tturn是I站的折返时间。

4) 列车运力约束:本文建立客流需求OD矩阵,预测动态客流,计算列车延误的负面影响,定义为

bf759d104abcc48a46649fb7591705b4.png

列车延误将不可避免地导致站台拥挤。在这种情况下,由于运力限制,站台上的乘客可能无法同时全部上车。根据OD矩阵,可以得到在i站可以登上k次列车的候车乘客数量。它不仅与i站的乘客到站率有关,还取决于是否有乘客无法登上上一趟列车。Tw k,i定义为最后一名在i站登上k次列车的乘客进入该站的时间,则列车运力约束可表示为

81e826a0069a72eb7c26d526a36679bf.png

1c4d19fa06727883d8d75017ebff7dcc.png

式中,C为列车运力;N k,i为k次列车到达i站时车上的乘客人数;N arrive k,i是在i站登上k次列车的乘客人数。特别地,N k,0=N arrive k,0=N depart k,0=0。

5) 动力学约束:为了便于能量计算,有必要建立一些动力学约束。列车在区段运行一般分为加速、巡航、滑行和制动四个阶段,分别用tl,a k,i、tl,c k,i、tl,o k,i和tl,b k,i表示。一般认为只有前两个阶段有能量消耗。阻力按产生方法分为基本阻力和附加阻力两种。在实际应用中,基本阻力基本遵循戴维斯公式。对于附加阻力,考虑了梯度因子。所以t时刻的牵引力可以由下式获得

289c1b85084cac4638505fbabb74104a.png

式中,Mk,i为列车质量,等于列车净重与车上乘客质量之和;R0、R1、R2为Davis公式的系数;al k,i(t), vl k,i(t)分别为列车k在t时刻速度水平为l时的加速度和速度;θk,i(t)为列车k在运行时间t时第i段的路径梯度。

根据机械功率方程,能量消耗可由牵引力乘以速度的积分计算,即为

fac2d43ef5fa9a0255a38b3684897e25.png

C. 列车扣留策略

目前调度员处理延误的方法有:(1)缩短路段运行时间;(二)扣留跟随列车;(3)利用备用列车;(4)让列车在中间站折返。本文基于方法(1)和方法(2)重点研究TTR问题。通过上述分析,可以通过调整运营水平来缩短运行时间。其次介绍了列车扣留策略。

在实际的地铁系统中,跟随列车无法根据主要延误实时调整车速。因此,如果由扰动引起的主要延误违反了安全约束,接下来的列车需要被调度员在随后的车站扣留。图2描述了一个应用列车扣留策略的例子,其中计划时刻表为黑色实线,重新安排的时刻表为橙色虚线。当列车1因车辆故障无法从4号站开出时,2、3、4次列车需分别扣留在3、2、1号站,直至满足最小车头时距。

至于如何确定列车是否需要扣留,我们关注的是上一趟列车的发车时间。定义二元变量µk,i为使用列车扣留策略的标志,表示为

0ff6206cc833fc145e8b470edd03cd2b.png

经判定需扣留的列车,应相应调整停运时间。在日常运行中,即使在干扰下,列车之间的跟踪间隔也应保持。因此,可以按如下方式更改停站时间

adcb1cf8c9b89749626063a64b6412ab.png

另外,如果1号站有列车扣留,则无法再实施列车扣留策略,后续列车到达该站的时间调整如下

dc55bf07b70e54ac4c602046d5d58d7d.png

5f798f68493613d7b8d32b754c28c1ff.png

基于Q-learning方法的列车时刻表调整

d7f625077f488048b2cae37dcdf1f028.png

Q-learning方法是强化学习(RL)的内容,适用于处理多阶段决策。为了解决上述问题,我们在本节中首先将模型转换为马尔可夫决策过程(MDP),以便于理解。在此基础上,提出了一种基于查找表的调整时刻表获取算法。

A. MDP的基本要素

MDP是描述从交互中学习的问题的框架。在智能体和环境的交互作用下,通过试错来改变决策。具体地说,在智能体选择动作之后,环境更新并返回奖励。在本文中,智能体的任务就是使这些奖励最大化。接下来,详细介绍MDP中各元素的定义,如表I所示。

7ec728b835b24e6e96a6e0a431eaf1ec.png

1) 状态和动作:为了解决奖励和转移函数的计算,每个状态都应该有相应的记录信息,称为状态变量。列车k在i站的状态变量定义为

e1017feb7b53d2858bccb641b1e8a291.png

其中状态变量N onboard i (k)为车上乘客人数;T arrive i (k)表示k次列车到达i站的时间。

这些动作对应于优化模型的决策变量,即列车的停站时间和运行时间。因此,每个状态的动作定义为

e88a9f0479fe24023b042189b497321c.png

其中ri(k)表示第i次列车在k站的停站时间,di(k)表示第i次列车在k站之前的运行时间。具体来说,rI(k)和r2I(k)是周转时间。

2) 奖励函数:列车时刻表调整问题以能量消耗、时刻表偏差和乘客的延误时间为目标,由式(4)表示,则状态Si(k)和动作ai(k)的奖励为

4e622f58e081de0c9377ab3587cd7d09.png

其中S是所有可能状态的集合,A是所有可以选择的可行动作的集合。

3) 状态转移函数:状态转移函数SM涉及上车人数和列车节点的变化。乘客转移规律由式(12)描述。列车节点不仅指车站指标的变化,还指列车k到达i站的时间,记为

2578b4c04ef9a4c83ebd958e26fb3154.png

B. 求解方法

基于Q-learning方法,设计了一种有效的算法来解决本文提出的列车时刻表调整问题。Q-learning是一种近似动态规划方法,它利用近似结构逼近动态规划方程中的价值函数,从而满足Bellman最优性原则。在这里,我们引入了一种使用迭代查找表和离线策略的近似方法,即学习到的价值函数与所遵循的策略无关。

建立一个矩阵来表示查找表,它的列是不同的状态,行是所有可能的动作的排列之一。然后使用ε-贪婪策略来选择动作。一旦智能体选择了一个动作,相应的查找表位置将更新如下

998ff52e1fa178542cfdfced1be5ab7b.png

式中,α为学习率;γ是折扣因子,可以理解为未来步骤的重要性。

算法1对算法过程进行了完整的总结。

7d2fd6982e74cd1d9c02483b771e9eca.png

b1bc9fa193b3fa188d839021d0285820.png

案例研究

65b14a9f6ca9446ed345635ebd51fac8.png

以北京亦庄地铁线为例,在短时间内得到了较好的解决方案。同时,可根据实际需求改变权重系数,使算法适用于不同的延迟场景。

383d71e9934c0afe26126a855c57cda8.png

Attention

606cd767b29bd1a7648f00c19b48ee80.png

如果你和我一样是轨道交通、道路交通、城市规划相关领域的,可以加微信:Dr_JinleiZhang,备注“进群”,加入交通大数据交流群!希望我们共同进步!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/51407.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是短网址?如何调用接口生成短地址?

随着网络应用的深入和普及,网址资源越来越少了,长尾网址也派上用场了,只是网址太长不方便识别与记录。因此,就有了短网址替代长网址的技术接口。 随着SEO的重要性越来越明显,在推广的时候如果把网页链接缩短可以获得更…

【wireshark】如何获取一个设备的IP地址

问题 开发中往往会出现无法知道设备正确的IP地址,从而无法连接到设备。 解决方式: 使用软件工具wireshark来获取设备IP地址。 可以实现不同网段捕获设备IP 具体流程: 1. 下载wireshark抓包程序 https://www.wireshark.org/download.htm…

MySQL日志(undo log 和 redo log 实现事务的原子性/持久性/一致性)

日志的重要性 日志绝对是数据库的核心. 持久化的日志记录了各种重要的信息.数据的恢复需要依赖日志。 慢查询sql语句需要用到慢查询日志。以及错误日志中保存着mysqld数据库服务端在启动过程中发生的重大错误信息... 数据库重要组成 本质上来说是一个文件系统 (两大重要组…

PHP+MySQL基于thinkphp的企业信息销售展示系统的设计

公司企业网站,是一个供为企业推广的平台,是完全的,高速的,开放的,其核心思想是提供一个以自然语言为主的用户界面,让用户能够更好的刚加方便快捷的管理物流信息的一个渠道和平台。本课题的开发工具可以使用PHP开发语言和MySQL数据进行的开发。 该系统的基本功能包括用户注册登录…

JAVA 设计模式篇

JAVA 设计模式篇1、UML类图2、设计原则2.1、开闭原则2.2、里氏代换原则2.3、依赖倒转原则2.4、接口隔离原则2.5、迪米特法则2.6、合成复用原则3、设计模式3.1、单例模式3.1.1、单例模式实现——饿汉式3.1.1.1、静态变量实现3.1.1.2、静态方法实现3.1.1.3、枚举方式3.1.2、单例模…

GRPC远程调用

FAQ | gRPC1. gRPC原理 FAQ | gRPC Asynchronous-API tutorial | C | gRPC 1.1 什么是RPC RPC 即远程过程调用协议(Remote Procedure Call Protocol),可以让我们像调用本地对象一样发起远程调用。RPC 凭借其强大的治理功能,成…

Linux 中的文件简单说明

Linux 中的文件简单说明 作者:Grey 原文地址: 博客园:Linux 中的文件简单说明 CSDN:Linux 中的文件简单说明 说明 本文基于 CentOS 7 根目录(/)下文件夹主要作用 [rootlinux /]# ll / total 16 lrwxrwxrwx. 1 root root…

VMOS虚拟机开源,游戏安全面临新挑战

相信大家对虚拟机并不陌生,一台设备可以模拟出多个操作系统,完美解决了不同场景下设备限制问题,还节约了购买软硬件设备的成本,为工作和生活提供了不少便利,得到了广泛的应用。 而虚拟机技术却被游戏黑灰产所利用&…

全球约有 150 亿台设备在运行 Java,收费后还能用吗?

据估算,全球约有 150 亿台设备在运行 Java™。约900万 Java 程序员.... https://www.oracle.com/java/technologies/downloads/archive 一、Java8及之前的版本均免费 我们可以看到上图中绿色的部分均是免费版本大家可以随便下载随便使用。 二、最后的免费版本 jd…

将光耦合进入单模光纤的最佳工作距离

摘要 光纤是现代光学系统中最通用的部件之一。它们最重要的特点之一是它们能够在远距离(甚至几公里)内以极低的损耗传输光能。另一方面,以一种能够达到尽可能高的效率的方式将光耦合到光纤中通常是一项非常精细的需求:例如&…

美苏太空竞赛历年卫星火箭发射以及历史事件介绍

1957 时间苏联美国折叠时间7月16日在与政府官员的会晤中,科罗廖夫和格鲁什科提出了开发超重型火箭的想法。美国海军对先锋号火箭进行试射。5月1日10月4日卫星号火箭发射了斯普特尼克1号,即第一颗人造卫星。美国海军对先锋号火箭进行试射。10月23日11月3…

ArcGIS API4.X + API文档 本地部署(Tomcat)

前言: js.arcgis.com有时候不太稳定,导致项目或者自己测试代码需要等待远程资源请求,体验感及其不好,能自己掌控的资源最好就别去拿在线的,当然服务器稳定就另当别论。(所以本地部署有两种含义:…

ModStartCMS v5.3.0 任务调度记录,模块市场优化

系统介绍 ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰…

在vue项目中下载swiper出现:Do not use ‘new’ for side effects报错问题

我报错的情况是:我在单文件组件vue文件中使用new Swiper,报了两个错误,图示: 第一个错误是:‘Swiper’ is not defined 第二个错误是:Do not use ‘new’ for side effects 解决办法: &#x…

【软件测试】7年资深带你详探什么是测试开发?

目录:导读前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)前言 在一些大公司里&…

数据结构初阶--二叉树介绍(基本性质+堆实现顺序结构)

树的基本概念和结构 树的相关概念 节点的度:一个节点含有的子树的个数称为该节点的度; 如上图:A的为2叶节点或终端节点:度为0的节点称为叶节点; 如上图:D、F、G、H为叶节点非终端节点或分支节点&#xff1…

Unity笔记(13):Android Movement of Characters[2D]

目录 1、搭建一个测试场景 2、建立画布设置移动按钮 3、编写脚本绑定按钮 AxisTouchButton :ButtonHandler : 4、编写脚本绑定角色 原来的按键移动 修改为触摸按钮 5、导出为APK文件,手机下载进行测试 1、搭建一个测试场景 2、建立画…

【正点原子FPGA连载】第二十四章 双路高速DA实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1)实验平台:正点原子MPSoC开发板 2)平台购买地址:https://detail.tmall.com/item.htm?id692450874670 3)全套实验源码手册视频下载地址: http://www.openedv.com/thread-340252-1-1.html 第二十四章 双路…

【EXCEL拦路虎】解决一些常遇到的excel问题

【问题一】 解决.CSV文件转为excel文件乱码问题 方法二:参考 解决Excel打开CSV文件中文乱码问题 【问题二】 解决内容过长后面的空白表格被前一列的字符填满,(内容过长就会覆盖前后的单元格),如下图: 解决…

vue 新增枚举类型栏位

dict-tag 标签新增枚举类型栏位 新增栏位数据字典 新增字典命名规范为coin_表字段名 新增字典枚举数据,key value Value标签格式为 值-key 如 1-成交 分别对应的新增为两张表: Sys_dict_type --字典类型 Sys_dict_data --字典数据 前端栏位 &l…