滴滴-通过多智能体强化学习进行有效的大规模车队管理

1. 背景

1.1 在线乘车共享平台的意义

诸如Uber和滴滴出行之类的大型在线乘车共享平台已经改变了人们出行,生活和社交的方式。通过利用蜂窝网络和全球定位系统等信息技术的进步和广泛采用,共享乘车平台将道路上未充分使用的车辆重新分配给需要运输的乘客。运输资源的优化极大地缓解了交通拥堵,并弥补了运输供需之间曾经巨大的差距【1】。

1.2 主要挑战

乘车共享平台的一个主要挑战是平衡需求和供应,即乘客和驾驶员的接送订单。在大城市中,尽管每天要提供数百万次的拼车订单,但由于附近缺少可用的驾驶员,因此仍然无法满足大量的乘客要求。另一方面,有很多可用的驾驶员在其他位置寻找订单。如果将可用的驾驶员引导到需求量大的地点,则将大大增加所服务的订单数量,从而同时使社会各方面受益:运输能力的效用将得到改善,驾驶员的收入和乘客的满意度将得到提高。增加并扩大公司的市场份额和收入。车队管理是一项关键技术组件,它通过提前重新分配可用车辆来实现满足未来需求的高效率,从而平衡供需之间的差异。

1.3 滴滴出行的解决方法

近年来,随着深度强化学习(DRL)在建模先前难以解决的智力挑战性决策问题【3,4】中取得的巨大成功。鉴于这些进展,滴滴提出了一种新颖的DRL方法,以学习用于车队管理的高效分配策略。

主要包括以下部分:

  • 通过设置合适的agent、reward以及state提出一种有效的用于大规模车队管理的多智能体强化学习方法;

  • 提出上下文化多主题强化学习框架,并开发了两种具体的算法:

    • contextual multi-agent actor-critic(cA2C)
    • contextual deep Q-learning(cDQN)

    在多主体DRL中,上下文算法不仅可以在每次数千个学习主体之间实现有效的显式协调,而且还 可以适应动态变化的动作空间。

2.解决方案

2.1 问题说明

考虑了为在线乘车共享平台管理大量可用的同类车辆的问题。管理的目标是通过将可用车辆重新定位到需求缺口比当前缺口大的位置,来最大化平台的总商品量(GMV:所有已服务订单的价值)。图1中提供了该问题的时空图示。

在这里插入图片描述
在该图中,使用六边形网格世界表示地图,并将一天的持续时间分为T=144个时间间隔(每个间隔10分钟)。在每个时间间隔,订单在每个网格中随机出现,并由同一网格或六个附近网格中的可用车辆提供服务。车队管理的目标是提前确定从每个网格到相邻网格的可用车辆数量,以便为大多数订单提供服务。

2.2 模型参数说明

为了解决这个问题,滴滴使用多智能体强化学习【5】来表述这个问题。在此构想中,使用一组具有较小动作空间的同种类的代理集,然后将全局奖励划分到每个网格。由于简化了行动维度和基于拆分奖励的明确信用分配,相比单一代理设置,这将导致更有效的学习过程。形式上,我们将车队管理问题建模为N个agent的马尔可夫博弈G,它由元组 G = ( N , S , A , P , R , γ ) G =(N,S,A,P,R,γ) G=NSAPRγ定义,其中N, S , A , P , R , γ S,A,P,R, γ SAPRγ分别是代理的数量,状态集,联合动作空间,转移概率函数,奖励函数和折扣因子。具体定义如下:

  • 代理:将可用的车辆(或等效地为空转的驾驶员)视为代理,并且同一时空节点中的车辆是同质的,即,位于相同时间间隔的相同区域的车辆被视为相同的代理(其中所有代理具有相同的策略)。尽管唯一的异构代理的数量始终为 N N N,但代理的数量 N t N_{t} Nt随时间变化.
  • 状态 s t ∈ S s_{t}∈S stS:考虑到可用车辆和订单的空间分布(即每个网格中可用车辆和订单的数量)和当前时间t(使用one-hot编码),在每个时间 t t t维护一个全局状态 s t s_{t} st。代理 i i i的状态 s t i s_{t}^{i} sti定义为其所在网格的标识和共享的全局状态,例如, s i t = [ s t , g j ] ∈ R N × 3 + T s_{i}^{t}=[s_{t},g_{j}]∈R^{N×3+T} sit=[st,gj]RN×3+T,其中 g j g_{j} gj是网格ID的one-hot编码。我注意到,位于同一网格的代理具有相同的状态 s t i s_{t}^{i} sti
  • 动作 a t ∈ A = A 1 × . . . × A N t a_{t}∈A=A_{1}×...×A_{N_{t}} atA=A1×...×ANt: a t = { a t i } 1 N t a_{t}=\{a_{t}^{i}\}_{1}^{N_{t}} at={ ati}1Nt表示在时间 t t t时的联合动作用于指导所有可用车辆的分配策略。每一个代理的动作空间 A i A_{i} Ai指明了该代理下一步可以到达的位置。其给定一个七个明确动作的集合 { k } k = 1 7 \{k\}_{k=1}^{7} { k}k=17,前六个动作表示将该代理分配到其相邻的六个网格,最后一个动作 a t i = 7 a_{t}^{i}=7 ati=7表示待在当前的网格。例如,如图1所示,动作 a 0 1 = 2 a_{0}^{1} = 2 a01=2表示在时间0时将第一个代理从当前网格分配到第二个相邻的网格。为了简明扼要的演示,使用 a t i ≜ [ g 0 , g 1 ] a_{t}^{i}≜[g_{0},g_{1}] ati[g0,g1]表示代理 i i i从网格 g 0 g_{0} g0移动到 g 1 g_{1} g1.此外,代理的行动空间取决于他们的位置。位于角网格处的代理具有较小的动作空间。我们还假定该动作是确定性的:如果 a t i ≜ [ g 0 , g 1 ] a_{t}^{i}≜[g_{0},g_{1}] ati[g0g1],则代理 i i i将在时间 t + 1 t + 1 t+1到达网格 g 1 g_{1} g1</
  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值