«上一篇 下一篇»
  计算机工程  2022, Vol. 48 Issue (9): 298-304  DOI: 10.19678/j.issn.1000-3428.0061931
0

引用本文  

吴仍裕, 周强, 于海龙, 等. 基于深度强化学习的深圳市急救车调度算法[J]. 计算机工程, 2022, 48(9), 298-304. DOI: 10.19678/j.issn.1000-3428.0061931.
WU Rengyu, ZHOU Qiang, YU Hailong, et al. Ambulance Dispatching Algorithm in Shenzhen Based on Deep Reinforcement Learning[J]. Computer Engineering, 2022, 48(9), 298-304. DOI: 10.19678/j.issn.1000-3428.0061931.

基金项目

深圳市“医疗卫生三名工程”项目(SZSM201911005)

通信作者

周强(通信作者),主任医师、硕士

作者简介

吴仍裕(1970—),男,主治医师,主研方向为急救与灾害应急管理;
于海龙,博士研究生;
王亚沙,教授、博士

文章历史

收稿日期:2021-06-16
修回日期:2021-10-05
基于深度强化学习的深圳市急救车调度算法
吴仍裕1 , 周强1 , 于海龙2,4 , 王亚沙3,4     
1. 深圳市急救中心, 广东 深圳 518000;
2. 北京大学 信息科学技术学院, 北京 100871;
3. 北京大学 软件工程国家工程研究中心, 北京 100871;
4. 北京大学 高可信软件技术教育部重点实验室, 北京 100871
摘要:在院前急救领域中,急救反应时间是指患者拨打急救电话后,急救车到达现场的时间。传统急救车调度算法未全面考虑急救环境的动态性和复杂性因素,导致模型优化的急救反应时间与实际情况存在偏差。将急救车调度问题建模成马尔科夫决策过程,构建基于深度强化学习的急救车调度算法。以多层感知机作为评分网络结构,通过将急救站的动态信息映射为各个急救站的得分,确定急救车被调往各急救站的概率。同时,结合急救车调度的动态决策特点,利用强化学习中演员-评论家框架下的近端策略优化算法改进评分网络参数。在深圳市急救中心真实急救数据集上的实验结果表明,相比Fixed、DSM、MEXCLP等算法,该算法在每个急救事件中的急救反应时间平均缩短约80 s,并且在10 min内急救车的平均到达比例为36.5%,能够实时地将急救车调度到合适的急救站。
关键词强化学习    神经网络    急救车调度    动态调度    马尔科夫决策过程    
Ambulance Dispatching Algorithm in Shenzhen Based on Deep Reinforcement Learning
WU Rengyu1 , ZHOU Qiang1 , YU Hailong2,4 , WANG Yasha3,4     
1. Shenzhen Center for Prehospital Care, Shenzhen, Guangdong 518000, China;
2. School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China;
3. National Engineering Research Center for Software Engineering, Peking University, Beijing 100871, China;
4. Key Lab of High Confidence Software Technologies, Ministry of Education, Peking University, Beijing 100871, China
Abstract: In prehospital emergency, the emergency response time refers to the time when the ambulance arrives at the scene after the patient dials the emergency phone number.The traditional ambulance dispatching algorithm does not fully consider the dynamics and complexity factors of the emergency environment, resulting in the deviation between the optimization emergenay response time of the model and the actual situation.The ambulance dispatching problem is modeled as a Markov Decision Process (MDP), and an ambulance dispatching algorithm based on deep reinforcement learning is constructed.The multilayer perceptron is used as the scoring network structure, and the dynamic information of the emergency station is mapped to the scores of each emergency station to determine the probability of the ambulance being transferred to each emergency station.Combined with the dynamic decision-making characteristics of ambulance dispatching, the Proximal Policy Optimization (PPO) algorithm under the Actor-Critic framework in reinforcement learning is used to improve the parameters of the scoring network.The experimental results for an actual emergency dataset of the Shenzhen center for prehospital care show that compared with the Fixed, DSM, MEXCLP, and other algorithms, the emergency response time of this algorithm in each emergency event is shortened by approximately 80 s on average, and the average arrival proportion of emergency vehicles within 10 min is 36.5%.The ambulances are dispatched to the appropriate emergency stations in real time.
Key words: reinforcement learning    neural network    ambulance dispatching    dynamic dispatching    Markov Decision Process(MDP)    

开放科学(资源服务)标志码(OSID):

0 概述

在拥有1 300万人口的深圳市,每年有20余万名市民因突发事故或疾病,需要急救车将他们运送至医院,其人数占深圳市总人口的2%[1]。在城市的院前急救中,急救中心派遣急救车将患者及时地送到医院,对于患者的生命安全具有重要意义。统计数据表明,急救反应时间超过5 min的患者死亡概率为1.58%,而低于5 min的患者死亡概率为0.51%[2]。因此,急救车尽早到达现场能够有效保障患者的生命安全。

目前,中国大部分城市的院前急救模式是患者拨打120急救电话后,急救中心派遣离事发地点最近急救站的急救车前往现场,负责将患者送至医院,之后急救车将返回到归属的急救站。但是在急救资源有限的情况下,无法保证每一个急救需求都能够从离事发地点最近的急救站派遣急救车。

为缩短整体的急救反应时间,研究人员专注于急救车静态分配策略的研究,将急救车分配问题建模成静态的优化问题[3-4]。这类方法通常使用整数线性规划模型求解最大化急救覆盖范围的急救车分配方案,为每辆急救车分配一个基站,在急救车执行完任务后返回自己的基站。但是,在急救系统中,无论是急救资源还是外部环境都是动态变化的,静态分配策略无法充分利用这些动态信息。研究人员对急救车动态调度策略进行研究[5-7]。急救车的动态调度策略[8]是指急救车执行完任务后,通过重新调度到合适的急救站,为服务未来的急救请求做好准备,从而达到缩短整体急救反应时间的目的。在急救车动态调度中,调度策略的制定需要实时考虑环境的多种动态因素,例如,急救站附近的急救需求数量、急救站当前拥有的急救车数量、其他正在执行任务的急救车状态等,这些动态因素对于调度策略的制定至关重要。

现有的调度策略研究通常基于专家知识设计特定的规则和指标[6-8],将少数几种动态因素相结合。但是这种方式需要同时考虑多种因素,如果仅考虑少数几种动态因素,模型难以全面捕捉急救环境的变化情况,无法优化调度效果。

强化学习能够解决序列决策问题,在共享单车重定位[9]、网约车派单[10-12]等类似调度问题上取得了良好的效果。网约车派单[13-14]与急救车调度都属于车辆调度问题,在优化目标中都需要考虑长远收益。但是,网约车派单问题是将短时间内接收到的大量乘客订单与平台司机进行匹配,本质上属于二部图的匹配问题。文献[10-12]通过强化学习司机和订单之间的匹配价值,在派单阶段利用二部图匹配算法实现最大权匹配。文献[13-14]将短时间内大量司机的派单视作多智能体问题,通过多智能体强化学习实现司机间的协作,使得平台整体收益最大化。而急救车调度问题是处理单一急救车的调度,难点在于急救环境的动态性和复杂性。此外,急救车调度是院前急救领域的重要问题,需要贴合真实环境设计方案,才能更好地保障人民的生命安全。

虽然强化学习可以用于解决网约车派单的调度问题,但是在急救车调度领域上的应用是非常少的,仅文献[5]提出一种基于强化学习的急救车动态调度模型。该模型利用神经网络融合环境中的动态因素,并建立强化学习框架,得到合适的急救车调度策略。然而,该模型对急救环境进行较强的假设和简化,无法直接应用于深圳急救的真实环境,其原因为仅基于道路限速值估计急救车的行驶速度,未考虑道路拥堵的现象。深圳是我国一线城市,道路拥堵频繁发生,需根据道路拥堵情况规划急救车路径。该模型对急救车行为做了较大简化,例如,认为总是距离患者最近的急救车出车,并到达现场后,立刻将患者送往距离最近的医院。然而,从深圳和急救的历史数据可以看出,在很多情况下急救车到达现场后需要先对患者进行现场处置,并可能根据病情,将患者送至有救治能力且距离较近的医院。此外,文献[5]利用REINFORCE算法[15]优化策略函数,REINFORCE是一种策略梯度算法[16],使用蒙特卡洛法估计期望收益,但是存在训练速度慢、方差大、样本利用率低的问题。

本文提出基于深度强化学习的急救车调度算法。利用多层感知机将急救站的动态信息映射为各急救站的评分,同时将急救车动态调度建模成马尔科夫决策过程,使用强化学习中演员-评论家(Actor-Critic)框架[16]下的近端策略优化(Proximal Policy Optimization,PPO)算法[17]学习评分网络的参数。通过考虑急救环境因素、道路交通因素和急救车行为模式因素,建立较真实的模拟器环境。

1 强化学习

强化学习是机器学习的一种范式,通过智能体与环境进行不断交互,以学习策略,使得累积期望收益最大化。强化学习组件包括SAPRγ五个要素。S是环境的状态,A是智能体的动作,P是环境状态的转移概率矩阵,R是环境提供的奖励,γ是折扣因子。在强化学习中,马尔科夫决策过程(Markov Decision Process,MDP)是序列决策的一种数学模型,假设环境的状态具有马尔科夫性质。马尔科夫性质是指在给定环境当前和过去的状态下,未来环境状态的条件概率分布仅依赖于当前环境状态。本文利用St)表示环境的状态,则马尔科夫性质的表示如式(1)所示:

$ \begin{array}{l}P\left[S\right(t+\mathrm{\Delta }t)=x|S\left({t}^{\mathrm{\text{'}}}\right)=s\left(t\text{'}\right), t\text{'}\le t]=\\ P\left[S\right(t+\mathrm{\Delta }t)=x|S\left(t\right)=s\left(t\right)], \forall \mathrm{\Delta }t\ge 0\end{array} $ (1)

在MDP中,智能体以试错的方式与环境进行交互,在每个时间步中,智能体观测到环境状态并产生一个动作,之后环境将会转移到下一个状态。在这期间,智能体收到一个奖励,这个奖励作为指导信号评估当前动作的好坏。因此,强化学习是通过最大化长期奖励来学习环境状态到动作的映射关系。

强化学习和神经网络的结合开始于20世纪90年代[18-19]。近年来,随着计算力的提升和深度学习的发展,结合深度学习与强化学习的深度强化学习成为研究热点。深度强化学习融合强化学习的决策能力和深度学习的表示能力,在很多序列决策问题中取得了巨大的进展,如AlphaGo[20]、网络对战游戏[21-22]、车辆调度问题等[5, 9-10]

受此启发,基于急救车调度模型的特点,本文使用强化学习中的策略梯度框架,通过深度神经网络对环境状态进行表征,使用PPO算法学习网络参数。

2 调度算法

本文将急救车调度问题形式化成MDP,使用强化学习框架选择合适的调度策略。本文网络结构的主体部分称为评分网络,使用多层感知机表示,用于综合急救站的多种动态因素,以评估急救车调度到该急救站的概率。为优化评分网络参数,本文使用PPO强化学习框架,以试错的学习方式更新网络参数。

2.1 强化学习建模

强化学习的关键是将急救车调度问题进行形式化建模。在强化学习建模过程中需要对状态、动作、奖励、状态转移这4个主要组件进行定义。

1)状态,指外部环境的状态。在急救车调度过程中,环境是完全可观测的,因此智能体观测到的环境状态等同于环境的实际状态。本文将状态定义为与急救车调度有关的环境信息,包括急救站附近的急救需求数量、急救站当前拥有的急救车数量、被调度车辆到达该急救站所需时间以及其他正在执行任务的急救车到达该急救站所需时间这4种动态因素。

2)动作,指智能体执行的动作。在急救车调度问题中,本文将动作定义为调度到哪一个急救站,因此动作空间的大小等同于急救站的数目$ N $$ {a}_{t} $表示$ t $时刻智能体执行的动作,则$ {a}_{t}\in (\mathrm{1, 2}, \cdots , N) $

3)奖励,指智能体执行动作后收到的奖励。$ R({s}_{t}, {a}_{t}) $表示智能体在状态$ {s}_{t} $下执行动作$ {a}_{t} $,当环境从状态$ {s}_{t} $转换成$ {s}_{t+1} $后智能体接收到的奖励。本文将$ R({s}_{t}, {a}_{t}) $定义为在时间阈值(10 min)内到达现场的急救车数目。例如,在$ t $~$ (t+1) $时刻内,整个系统共有5辆急救车到达事发现场,其中有3辆急救车花费的时间小于10 min,则奖励值就是3。

4)状态转移,指环境状态的转移。当急救车执行完任务等待重新调度时,智能体从环境中观测到状态$ {s}_{t} $,并随之产生一个动作$ {a}_{t} $,将该急救车调度到某个急救站。此后智能体处于空转的状态,直到有新的急救车执行完任务等待调度。此时环境状态转成$ {s}_{t+1} $,并被智能体观测到。环境状态的转移是一个随机性事件,在两次状态之间的时间间隔是不固定的,但是这并不影响系统的马尔科夫性质,因此强化学习算法仍然可以工作。

强化学习模型的整体架构如图 1所示。首先智能体观测环境状态,即各个急救站的动态因素,并将其输入到Actor的评分网络中以得到各个急救站的分数。智能体基于急救站的分数选择急救车调度的站点,并执行相应动作。环境在转移到下一个状态前,将奖励反馈给智能体,该奖励作为学习信号,送入Critic网络中计算时序差分损失(TD error),使得智能体能够不断更新Actor和Critic网络的参数。

Download:
图 1 强化学习模型整体架构 Fig. 1 Overall framework of reinforcement learning model
2.2 评分网络

评分网络用于表征环境状态,将每个急救站的动态信息映射为一个得分,该得分决定了被调度急救车前往该急救站的概率。本文使用多层感知机作为评分网络结构,以接收到急救站4种动态信息作为输入,包括急救站附近的急救需求数量、急救站当前拥有的急救车数量、被调度车辆到达该急救站所需时间以及其他正在执行任务的急救车到达该急救站所需时间,最后输出急救站的得分。所有急救站的得分经过Softmax函数后获得急救车调度到每个急救站的概率。

2.3 PPO参数优化

对于强化学习中的策略梯度算法,目标函数如式(2)所示:

$ \underset{\theta }{\mathrm{m}\mathrm{a}\mathrm{x}}J\left(\theta \right)={E}_{s\sim{\pi }_{\theta }}\left[V\right(s\left)\right] $ (2)

其中:$ V\left(s\right) $为状态值函数,表征当前状态的期望收益。使用蒙特卡洛法对序列进行估计,但是会产生较大的估计方差,且更新参数的效率较低。针对该问题,在演员-评论家框架中引入Critic网络对$ V\left(s\right) $进行估计,使得每步动作执行后都能够得到当前状态期望收益的反馈,以减小估计方差,从而提高更新效率和样本利用率。

PPO算法在演员-评论家框架下,待优化的策略函数(即演员-评论家框架下Actor网络)是$ {\pi }_{\theta } $,而与环境交互采样的策略是$ {\pi }_{\theta \text{'}} $。针对采样得到的数据分布和待优化策略下状态分布失配的问题,在目标函数中引入重要性采样进行优化,如式(3)和式(4)所示:

$ J\left(\theta \right)={E}_{s\sim{\pi }_{\theta \text{'}}}\left[\frac{{\pi }_{\theta }(s, a)}{{\pi }_{\theta \text{'}}(s, a)}{A}_{\theta \text{'}}(s, a)\right] $ (3)
$ {A}_{\theta \text{'}}(s, a)={Q}_{\theta \text{'}}(s, a)-{V}_{\theta \text{'}}\left(s\right) $ (4)

重要性采样是一种对原始分布期望的无偏差估计方法,如果引入的提议分布与原始分布差异较大,会产生较大的估计方差。因此,在PPO算法中设计一种权重修剪机制,将重要性权重限制在$ [1-\varepsilon , 1+\varepsilon ] $内,其中$ \varepsilon $是超参数。此时,PPO算法的优化目标表示如式(5)和式(6)所示:

$ \begin{array}{l}{J}^{\mathrm{c}\mathrm{l}\mathrm{i}\mathrm{p}}\left(\theta \right)={E}_{s\sim{\pi }_{\theta \text{'}}}\left[\mathrm{m}\mathrm{i}\mathrm{n}\right(\mathrm{r}\mathrm{t}\left(\theta \right){A}_{{\pi }_{\theta \text{'}}}(s, a), \\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \mathrm{c}\mathrm{l}\mathrm{i}\mathrm{p}\left(\mathrm{r}\mathrm{t}\right(\theta ), 1-\varepsilon , 1+\varepsilon )\left){A}_{{\pi }_{\theta \text{'}}}\right(s, a\left)\right]\end{array} $ (5)
$ \mathrm{r}\mathrm{t}\left(\theta \right)=\frac{{\pi }_{\theta }(s, a)}{{\pi }_{\theta \text{'}}(s, a)} $ (6)

$ \mathrm{c}\mathrm{l}\mathrm{i}\mathrm{p}\left(\mathrm{r}\mathrm{t}\right(\theta ), 1-\varepsilon , 1+\varepsilon ) $函数将重要性权重$ \mathrm{r}\mathrm{t}\left(\theta \right) $限制在$ [1-\varepsilon , 1+\varepsilon ] $的范围内,简称为$ \mathrm{c}\mathrm{l}\mathrm{i}\mathrm{p}\left(\varepsilon \right) $

本文使用PPO算法优化评分网络的参数,以学习调度的策略。在图 1的Actor网络中基于评分网络生成各个急救站的评分,经过Softmax函数得到急救车被调度到各个急救站的概率。Critic网络和评分网络具有相同的网络结构,仅输出层不同,本文使用$ \varphi $表示Critic网络的参数。在训练期间,Critic网络将接收的环境状态作为输入,估计当前状态下执行动作$ a $的期望收益$ {A}_{\varphi }(s, a) $,根据环境反馈的奖励$ R $计算时序差分损失$ \delta $,如式(7)所示:

$ \delta =R+\gamma {A}_{\varphi }(s\text{'}, a\text{'})-{A}_{\varphi }(s, a) $ (7)

时序差分损失$ \delta $用于更新Actor网络的参数,网络参数如式(8)所示:

$ \begin{array}{l}\theta =\theta +\alpha {\nabla }_{\theta }\mathrm{m}\mathrm{i}\mathrm{n}\left(\mathrm{r}\mathrm{t}\right(\theta \left){A}_{\varphi }\right(s, a), \\ \ \ \ \ \ \ \ \ \mathrm{c}\mathrm{l}\mathrm{i}\mathrm{p}\left(\varepsilon \right){A}_{\varphi }(s, a)\left)\mathrm{I}\mathrm{n}{\pi }_{\theta }\right(s, a)\delta \end{array} $ (8)

Critic网络参数基于均方误差损失函数进行更新,均方误差损失函数如式(9)所示:

$ \mathrm{l}\mathrm{o}\mathrm{s}{\mathrm{s}}_{\varphi }={\sum (R+\gamma {A}_{\varphi }(s\text{'}, a\text{'})-{A}_{\varphi }(s, a\left)\right)}^{2} $ (9)

算法1表示在PPO算法中急救车调度算法的训练流程。

算法1  调度算法训练流程

输入  Actor网络初始化参数$ {\theta }_{0} $,Critic网络初始化参数$ {\varphi }_{0} $

输出  Actor网络优化的参数$ \theta $,Critic网络优化的参数$ \varphi $

1.for j = 0,1,…,n do

2.使用Actor网络$ {\mathtt{π}}_{\mathtt{ϕ}}(\mathrm{s}, \mathrm{a}) $与模拟环境交互,收集样本$ \mathrm{D}=\left\{{\mathrm{\tau }}_{\mathrm{i}}\right\} $

3.使用Critic网络$ {\mathrm{V}}_{\mathtt{φ}}\left(\mathrm{s}\right) $计算优势函数$ {\mathrm{A}}_{\mathtt{φ}}(\mathrm{s}, \mathrm{a}) $

4.for k = 0,1,…,5 do

5.使用随机梯度上升法基于式(8)更新Actor网络参数:

$ \begin{array}{l}\mathtt{ϕ}=\mathtt{ϕ}+\mathrm{\alpha }\frac{1}{\left|\mathrm{D}\right|}\sum\limits _{{\tau }_{i}}({\nabla }_{\mathtt{ϕ}}\mathrm{m}\mathrm{i}\mathrm{n}\left(\mathrm{r}\mathrm{t}\right(\mathtt{ϕ}\left){\mathrm{A}}_{\mathtt{φ}}\right(\mathrm{s}, \mathrm{a}), \\ \mathrm{c}\mathrm{l}\mathrm{i}\mathrm{p}\left(\mathrm{\varepsilon }\right){\mathrm{A}}_{\mathtt{φ}}(\mathrm{s}, \mathrm{a})\left)\mathrm{I}\mathrm{n}{\mathtt{π}}_{\mathtt{ϕ}}\right(\mathrm{s}, \mathrm{a}\left)\mathrm{\delta }\right)\end{array} $

6.使用随机梯度下降法基于目标函数式(9)更新Critic网络参数:

$ \mathtt{φ}=\underset{\mathtt{φ}}{\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{i}\mathrm{n}}\frac{1}{\left|\mathrm{D}\right|}\sum\limits _{{\mathrm{\tau }}_{\mathrm{i}}}(\mathrm{R}+\mathrm{\gamma }{\mathrm{A}}_{\mathtt{φ}}(\mathrm{s}\text{'}, \mathrm{a}\text{'})-{\mathrm{A}}_{\mathtt{φ}}{(\mathrm{s}, \mathrm{a}))}^{2} $
2.4 急救车动态调度算法

本文基于PPO算法框架学习Actor网络$ {\pi }_{\theta }(s, a) $的参数$ \theta $,以得到急救车调往各个急救站的概率。在调度模型的训练阶段,基于各个急救站的概率确定急救车调往哪个急救站。这种随机性的策略有助于强化学习模型跳出局部最优。但是在测试阶段运行该急救车调度算法时,不适合继续采取这样的随机性策略,因此,在测试阶段,调度算法会选择概率最高的急救站作为调度的站点。

本文构建一个基于强化学习的急救车调度算法。当有急救车请求调度时,该调度算法首先观测环境的状态,包括所有急救站的动态因素,通过Actor网络生成该急救车调往各个急救站的概率。在测试阶段,该调度算法会选择概率最高的急救站作为急救车被调往的站点。算法2表示急救车动态调度算法运行的整体流程。

算法2  急救车动态调度算法运行流程

输入  环境状态$ s=({x}_{1}, {x}_{2}, \cdots , {x}_{N}) $,等待调度的车辆编号$ i $

输出  目标急救站的编号$ j $

1.评分网络基于各个急救站的动态因素生成各个急救站的评分;

2.基于急救站的评分,Actor网络经过Softmax函数生成急救车调往各个急救站的概率;

3.选择概率最高的急救站作为急救车返回的目标站点;

4.返回目标急救站的编号$ \mathrm{j} $

3 实验与结果分析 3.1 数据集

本文使用深圳市的真实数据集对模型进行训练、测试和验证。数据集包括深圳市的急救电话数据、急救患者数据、急救站数据、医院数据、道路网络数据和速度数据。急救电话数据包含深圳市120急救电话记录,每条记录均包括时间信息和事发地点。时间跨度从2019年9月1日到2019年10月31日。其中9月份的有效记录共有16 278条,10月份的有效记录共有15 327条,平均每天约有518条有效急救电话请求。本文以9月份的急救电话数据作为训练数据,将10月份的急救电话数据作为测试数据。急救患者数据包括每条急救记录中患者的基本信息、救治情况等内容。急救站数据包括深圳市急救站的地理位置信息。医院数据包括深圳市医院的地理位置信息。道路网络数据和速度数据包括深圳市路网信息和道路速度信息。

3.2 模拟器设计

本文基于上述数据集,构建一个较真实的模拟器。模拟器的作用是模拟真实情况下急救系统的运行状况,需要实时生成急救请求,并模拟派遣急救车接送患者至医院,最后根据调度算法重新调度执行完任务的急救车。

本文在模拟器中考虑了城市的道路网络数据和道路拥塞程度,基于城市的道路拥塞程度对急救车进行路径规划和时间估计,通过考虑不同道路的拥塞程度对急救反应时间的影响,以减小在仿真环境和真实环境中对路上时间估计的偏差。

本文基于对急救患者数据的观察,发现真实情况下急救车到达现场后,出于多种原因患者可能被当场救治。因此,在本文的模拟器中急救车被派往现场后,以概率的方式选择将患者送往医院或停留在原地。此外,本文观察到患者被送往的医院通常不是距离最近的,存在一定的随机性。因此,在本文的模拟器中根据距离获得急救车前往各个医院的概率。本文综合考虑急救车的这些行为模式,能够增强模拟器的真实性,使得算法适用于真实场景并进行落地部署。

3.3 实验设置

为评估基于强化学习的急救车调度算法,本文选用以下6种算法作为基准算法:1)Fixed算法,目前深圳市使用的急救车分配策略,基于贪心算法计算得到不同的车辆数;2)MEXCLP算法[3],是一种经典的静态分配模型,通过最大化急救站的覆盖范围,为每辆急救车选取一个基站,优化过程使用整数线性规划求解;3)DSM算法[4],是一种经典基于覆盖的静态分配模型,将双重覆盖作为优化目标;4)Random算法,是一种随机的动态调度策略,将急救车重新调度到一个随机的急救站;5)Nearest算法,是一种基于贪心算法的动态调度策略,将急救车重新调度到距离最近的急救站;6)Least算法,另一种基于贪心算法的动态调度策略,将急救车重新调度到车辆数目最少的急救站。

本文采用平均到达时间和平均到达比例来评估急救车的调度问题。平均到达时间是指急救车从派遣至到达现场的平均时间,如式(10)所示:

$ {T}_{\mathrm{A}\mathrm{v}\mathrm{e}\mathrm{r}\mathrm{a}\mathrm{g}\mathrm{e}}=\frac{1}{M}\sum\limits _{m=1}^{M}{T}_{m} $ (10)

平均到达比例是在时间阈值内(10 min)到达现场的急救车比例,如式(11)所示:

$ {T}_{\mathrm{R}\mathrm{e}\mathrm{l}\mathrm{a}}=\frac{1}{M}‖{T}_{m}\le {T}_{\mathrm{t}\mathrm{h}\mathrm{r}\mathrm{e}\mathrm{s}\mathrm{h}\mathrm{o}\mathrm{l}\mathrm{d}}‖ $ (11)

本文深度强化学习模型的代码在PyTorch框架下实现,Actor和Critic网络使用相同的网络结构,采用三层的多层感知机,仅输出层不同,以Relu作为激活函数。本文算法的超参数设置如表 1所示。

下载CSV 表 1 本文算法的超参数设置 Table 1 Hyperparameter settings of the proposed algorithm
3.4 结果分析

目前,深圳市实际部署的急救车数量是108辆。深圳市作为中国的一线城市,急救资源相对充足,但是很多经济欠发达地区的急救资源可能相对紧缺。因此,本文在实验中还探究了在其他急救车数量的情况下,特别是急救车数量较少时的实验结果。

在不同的急救车数量下不同算法平均到达时间对比如表 2所示。当急救车数量为108辆时,即目前深圳市的急救车实际数目,本文算法的平均到达时间是12.63 min,而Fixed算法的平均到达时间是13.93 min。相比Fixed算法,本文算法的平均到达时间缩短约80 s,性能提升了约10%。相比基准算法中MEXCLP,本文算法的平均时间缩短约40 s。

下载CSV 表 2 不同算法的平均到达时间对比 Table 2 Average arrival time comparison among different algorithms  

在不同急救车数量下不同算法的平均到达比例对比如表 3所示。在108辆急救车配置的条件下,Fixed算法和本文算法的平均到达比例分别为32.3%和36.5%,相比基准算法Least,本文算法提高了1.1个百分点。此外,当急救车辆数目较少时,本文算法的优势更为显著,其原因为静态调度策略在急救车数量较少时容易出现一些花费时间特别长的极端情况,基于贪心算法的动态调度策略则难以捕捉多种动态信息,而基于强化学习的调度策略能够捕捉到环境的动态变化。这也说明在急救资源紧缺的城市中部署本文急救车调度算法,在资源受限情况下能够有效提高院前急救效率。

下载CSV 表 3 不同算法的平均到达比例对比 Table 3 Average arrival proportion comparison among different algorithms  

在院前急救领域较为重视盲点的情况。本文将盲点定义为急救车到达现场的路程距离超过3 000 m。当急救车数量为108辆时,不同算法的盲点和距离情况如表 4所示。

下载CSV 表 4 不同算法的盲点和平均距离 Table 4 Blind spots and average distances of different algorithms

表 4可以看出,本文算法的平均距离在3 100 m左右,而最优的基准算法的平均距离约为3 300 m,说明强化学习模型能够隐式地预估未来的急救需求,预先将急救车调度到可能有需求的急救站,从而在急救事件发生时能够从最近的急救站派遣车辆。本文算法将盲点比例控制在36%,同样优于其他基准算法。

本文算法的盲点可视化分析如图 2所示(彩色效果见《计算机工程》官网HTML版)。图 2(a)表示本文算法在运行过程中盲点分布热力图,可以看出:盲点的分布与急救电话的分布整体上较为一致。在局部地区盲点分布情况和急救电话分布情况存在显著的差异。图 2(b)图 2(c)分别表示急救电话和盲点在深圳市龙岗区龙城广场附近的分布情况。区域A中的急救电话需求较多,但在区域B中的盲点分布较少。区域C和区域D的情况则恰好相反。这说明盲点的产生不仅受急救电话数量的影响,同时也与其他因素有关,例如交通状况、急救资源分配情况等。

Download:
图 2 本文算法的盲点可视化分析 Fig. 2 Blind spot visual analysis of the proposed algorithm
4 结束语

针对急救环境的动态性和复杂性,本文提出一种急救车动态调度算法。将多层感知机作为评分网络用于综合急救站的多种动态因素,以评估急救车调度到该急救站的概率。在PPO强化学习框架下,采用试错的学习方式优化评分网络参数。实验结果表明,本文算法的平均达到时间和平均到达比例分别为12.63 min和36.5%,与Fixed、DSM、MEXCLP等算法相比,能够有效提高数据的利用率,并且具有较优的鲁棒性。下一步将利用图神经网络对不同时刻的交通资源进行编码,并把急救车的行为模式与交通资源引入到环境状态中,进一步缩短院前急救反应时间。

参考文献
[1]
深圳市急救中心. 深圳市急救中心简介[EB/OL]. [2021-05-10]. http://wjw.sz.gov.cn/szsjjzx/jggk_161338/zxjj_161339/.
Shenzhen Center for Prehospital Care. Introduction to Shenzhen center for prehospital care[EB/OL]. [2021-05-10]. http://wjw.sz.gov.cn/szsjjzx/jggk_161338/zxjj_161339/. (in Chinese)
[2]
BLACKWELL T H, KAUFMAN J S. Response time effectiveness: comparison of response time and survival in an urban emergency medical services system[J]. Academic Emergency Medicine: Official Journal of the Society for Academic Emergency Medicine, 2002, 9(4): 288-295. DOI:10.1197/aemj.9.4.288
[3]
DASKIN M S. A maximum expected covering location model: formulation, properties and heuristic solution[J]. Transportation Science, 1983, 17(1): 48-70.
[4]
GENDREAU M, LAPORTE G, SEMET F. Solving an ambulance location model by Tabu search[J]. Location Science, 1997, 5(2): 75-88.
[5]
JI S G, ZHENG Y, WANG Z Y, et al. A deep reinforcement learning-enabled dynamic redeployment system for mobile ambulances[C]//Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies. New York, USA: ACM Press, 2019: 1-20.
[6]
MAXWELL M S, RESTREPO M, HENDERSON S G, et al. Approximate dynamic programming for ambulance redeployment[J]. INFORMS Journal on Computing, 2010, 22(2): 266-281. DOI:10.1287/ijoc.1090.0345
[7]
JAGTENBERG C J, BHULAI S, VAN DER MEI R D. An efficient heuristic for real-time ambulance redeployment[J]. Operations Research for Health Care, 2015, 4: 27-35. DOI:10.1016/j.orhc.2015.01.001
[8]
SCHMID V. Solving the dynamic ambulance relocation and dispatching problem using approximate dynamic programming[J]. European Journal of Operational Research, 2012, 219(3): 611-621.
[9]
PAN L, CAI Q P, FANG Z X, et al. A deep reinforcement learning framework for rebalancing dockless bike sharing systems[EB/OL]. [2021-05-10]. https://arxiv.org/pdf/1802.04592.pdf.
[10]
TANG X C, QIN Z T, ZHANG F, et al. A deep value-network based approach for multi-driver order dispatching[C]//Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. New York, USA: ACM Press, 2019: 1780-1790.
[11]
QIN Z T, TANG X C, JIAO Y, et al. Deep reinforcement learning for ride-sharing dispatching and repositioning[C]//Proceedings of the 28th International Joint Conference on Artificial Intelligence. Macao, China: [s. n. ], 2019: 6566-6568.
[12]
XU Z, LI Z X, GUAN Q W, et al. Large-scale order dispatch in on-demand ride-hailing platforms: a learning and planning approach[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. New York, USA: ACM Press, 2018: 905-913.
[13]
LIN K X, ZHAO R Y, XU Z, et al. Efficient large-scale fleet management via multi-agent deep reinforcement learning[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. New York, USA: ACM Press, 2018: 1774-1783.
[14]
ZHOU M, JIN J R, ZHANG W N, et al. Multi-agent reinforcement learning for order-dispatching via order-vehicle distribution matching[C]//Proceedings of the 28th ACM International Conference on Information and Knowledge Management. New York, USA: ACM Press, 2019: 2645-2653.
[15]
WILLIAMS R J. Simple statistical gradient-following algorithms for connectionist reinforcement learning[J]. Machine Learning, 1992, 8(3/4): 229-256.
[16]
SCHULMAN J, WOLSKI F, DHARIWAL P, et al. Proximal policy optimization algorithms[EB/OL]. [2021-05-10]. https://arxiv.org/pdf/1707.06347.pdf.
[17]
SUTTON R S, BARTO A G. Reinforcement learning: an introduction[J]. IEEE Transactions on Neural Networks, 1998, 9(5): 1054. DOI:10.1109/TNN.1998.712192
[18]
TESAURO G. TD-gammon, a self-teaching backgammon program, achieves master-level play[J]. Neural Computation, 1994, 6(2): 215-219.
[19]
BERTSEKAS D P, TSITSIKLIS J N, VOLGENANT A. Neuro-dynamic programming[M]. Berlin, Germany: Springer, 2010.
[20]
SILVER D, HUANG A, MADDISON C J, et al. Mastering the game of Go with deep neural networks and tree search[J]. Nature, 2016, 529(7587): 484-489.
[21]
PANG Z J, LIU R Z, MENG Z Y, et al. On reinforcement learning for full-length game of StarCraft[C]//Proceedings of the AAAI Conference on Artificial Intelligence. [S. l. ]: AAAI Press, 2019: 4691-4698.
[22]
BIN W. Hierarchical macro strategy model for MOBA game AI[C]//Proceedings of the AAAI Conference on Artificial Intelligence. [S. l. ]: AAAI Press, 2019: 1206-1213.