分布式多智能体深度强化学习在多线动态公交时刻表优化中的应用
Distributed Multiagent Deep Reinforcement Learning for Multiline Dynamic Bus Timetable Optimization
摘要
- 提出了一种多智能体深度强化学习框架学习信息不完全的情况
- 采用分布式强化学习算法克服了计算成本高、效率低的局限性
多线调度:一个公共汽车站可能由几条不同的公共汽车线路共享,乘客可以有多种路线选择到达目的地,调度时应考虑多条公交线路之间的相互作用。
分布式强化学习相关知识: asynchronous advantage actor–critic 算法和 importance weighted actor–learner architecture 算法;分布式优先经验重放架构:distributed prioritized experience replay (Ape-X) ->Ape-X DQN和Ape-X DDPG;
介绍
-
主要问题
1、难以建模
2、==一个epoch持续时间很长==:公交线路从早上运行到晚上
-
贡献
1、建模->可动态决策;在运行过程中==动态调度==,而不是基于历史数据估计未来状态形成固定的调度。
2、分布式环境下的强化学习框架
框架
-
基本变量
- 表示公交线路;表示站点;表示站点j-1到j的距离;代表线路l在k次旅途时(=第k个车)从j-1车站到j车站的运行时间;代表到达j车站的时间戳;代表驶离车站j的载客数;代表在车站j的上客人数;代表下客人数;代表车辆容量上限;乘客在站点j的总等待时间;代表发车时间。
-
观察函数:用双目标函数来计算运营成本和乘客成本,并将其转化为一个单目标优化问题。
-
运营花费:其中表示平均车辆运营成本;平均每客上车时间;平均每客下车时间;停站时间。【原文公式格式有误,(2):=max{...}】
每条线路、每个车辆、每个站点的运行时间+停站时间 求和乘以系数;其中停站时间=max{平均上客时间*min{上客人数,本站载客数-上站载客数},平均下客时间*下客数}
-
乘客等待花费:代表每位乘客等待花费的现金价值
每条线路、每个车辆、每个站点的等待时间求和并乘以系数
-
将多目标优化转化为单目标优化:
-
-
约束
-
营业时间 ;其中为运营开始时间,为运营结束时间。
发车时间在营业时间内
-
间隔时间 ;其中 分别表示最小间隔时间和最大间隔时间
k车与k-1车发车间隔在一个约束范围内
-
到达时间
到站时间=前一站到站时间+站间运行时间+前一停站时间
-
容量
车上人数=min{上一站车上人数+上客人数-下客人数 ,最大容量}
- 车队数量;其中表示线路上最大车辆数,表示时间戳t时的车辆数
-
-
强化学习框架
-
步长:Δt表示,类似于时钟
-
agent:代表一条线路,每条公交线路是异构的,因此每个agent使用不同的policy
-
动作空间:
使用p代表选择发车的概率(如公式10),这种情况下间隔越大,概率越低,性能差。和表示增加和减少发车间隔时间,表示动作,表示时间戳t时刻规定的间隔时间;当前时间-前一车发车时间 规定的间隔时间 并且 线路上的车辆 最大车辆数 时 发车。规定agent每K步执行一次,因此动作步表示为 -
状态空间:,其中的表示站间距离
状态空间的维度会随着车辆的增多而增多,因此把维度固定为,不足的padding填充。
-
奖励函数:表示在时间t时刻线路l上所有站点人数
根据公式4:奖励应该涉及到运营(公式14)和乘客等待(公式15),奖励为每个动作步下×车辆数or人数×系数;奖励函数与目标函数的关系可表示为公式17、18
最终奖励:
,其中γ表示折扣率。
-
-
算法:使用Ape-X DQN
-
DQN:使用double Q-learning解决高估问题,multistep bootstrap targets作为学习算法,dueling network architecture作为函数值近似。
-
Ape-X DQN:
1、不同的actor生成不同的experience,存放到buffer中,并计算初始优先级。2、learner从buffer中采样、优化参数、更新优先级。3、较大的数据共享给整个系统。4、为解决时间跨度大的问题,将experience分为一小批让learner进行训练。5、使用多步时间差(TD)误差作为优先级,用表示;越大,表示数据优先级越高,数据优先级高的数据会引起更多的训练。公式中的n为步数。
- 经验获取组件(actor)
- 采样学习组件(learner)
- 经验获取组件(actor)
-