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

引用本文  

刘金石, Manzoor Ahmed, 林青. 基于QMix的车辆云计算资源动态分配方法[J]. 计算机工程, 2022, 48(11), 284-290, 298. DOI: 10.19678/j.issn.1000-3428.0063375.
LIU Jinshi, Manzoor Ahmed, LIN Qing. QMix-Based Method for Dynamic Resource Allocation Leveraging Vehicular Cloudlet Computing[J]. Computer Engineering, 2022, 48(11), 284-290, 298. DOI: 10.19678/j.issn.1000-3428.0063375.

基金项目

国家重点研发计划重点专项(2018YFB2100303);国家自然科学基金(61802216);山东省高等学校青创科技计划创新团队项目(2020KJN011);山东省自然科学基金(ZR2020MF060)

通信作者

Manzoor Ahmed(通信作者), 副教授

作者简介

刘金石(1997—), 男, 硕士研究生, 主研方向为车辆云计算、任务卸载;
林青, 讲师

文章历史

收稿日期:2021-11-28
修回日期:2022-01-04
基于QMix的车辆云计算资源动态分配方法
刘金石 , Manzoor Ahmed , 林青     
青岛大学 计算机科学技术学院, 山东 青岛 266071
摘要:城市交通智能化和通信技术的进步会产生大量基于车辆的应用,但目前车辆有限的计算资源无法满足车辆应用的计算需求与延迟性约束。车辆云(VC)可以高效地调度资源,从而显著降低任务请求的延迟与传输成本。针对VC环境下任务卸载与计算资源分配问题,提出一个考虑异质车辆和异质任务的计计资源分配算法。对到达的任务构建M/M/1队列模型与计算模型,并定义一个效用函数以最大化系统整体效用。针对环境中车辆地理分布的高度动态系统变化,提出基于双时间尺度的二次资源分配机制(SRA),使用两个不同时间尺度的资源分配决策动作,对其分别构建部分可观测马尔可夫决策过程。两个决策动作通过执行各自的策略获得的奖励进行连接,将问题建模为两层计算资源分配问题。在此基础上提出基于二次资源分配机制的多智能体算法SRA-QMix求解最优策略。仿真结果表明,与深度确定性策略梯度算法对比,该算法的整体效用值和任务完成率分别提高了70%、6%,对于QMix和MADDPG算法分别应用SRA后的任务完成率分别提高了13%与15%,可适用于动态的计算资源分配环境。
关键词车辆云    多智能体强化学习    QMix算法    任务卸载    排队理论    
QMix-Based Method for Dynamic Resource Allocation Leveraging Vehicular Cloudlet Computing
LIU Jinshi , Manzoor Ahmed , LIN Qing     
College of Computer Science and Technology, Qingdao University, Qingdao, Shandong 266071, China
Abstract: With the development of urban traffic intelligence and communication technology, several vehicle-based applications can exist.However, the limited computing resources of today's vehicles cannot meet the vehicular applications' computing requirements and latency constraints.The Vehicular Cloudlet (VC) can efficiently dispatch resources to significantly reduce the time delay and transmission cost of the task request.For the task offloading and resource allocation problem in a VC environment, a computing resource allocation algorithm is proposed considering heterogeneous vehicles and tasks.First, M/M/1 queue and computing models are formulated for arriving tasks, and then, a utility function is defined to maximize the overall utility of the system.To deal with a highly dynamic system by vehicle geographical distribution in the environment, a Secondary Resource Allocation (SRA) mechanism based on dual-time-scales is proposed.In this mechanism, two difference time-scales are used for resource allocation decision-making actions and constructing partially observable Markov decision processes.The two decision-making actions are connected through the reward feedbacks obtained by their respective execution strategies, and the problem is modeled as a two-layered computing resource allocation problem.Subsequently, a multi-agent algorithm based on the SRA mechanism, SRA-QMix, is proposed to obtain an optimal strategy.Compared with the deep deterministic policy gradient algorithm, the simulation results show that the proposed algorithm can improve the utility value by 70% and the task finish rate by 6%.In addition, the task finish rate can be improved by 13% and 15% after applying the SRA mechanism for the QMix and MADDPG algorithms.This shows that the scheme based on SRA mechanism can adapt to the dynamic resource allocation environment.
Key words: Vehicular Cloudlet (VC)    Multi-Agent Reinforcement Learning(MARL)    QMix algorithm    task offloading    queuing theory    

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

0 概述

随着车联网(Internet of Vehicles,IoV)和智能车辆的发展,车辆正在从出行工具向智能终端转变[1-2]。然而,对用户体验质量[3](Quality of Experience,QoE)不断提高的要求以及车联网中各种智能应用的爆发式增长[4],对远程信息处理应用的实现提出了挑战,尤其是复杂决策和实时资源管理等计算密集型应用。

车辆自组织网络[5-6](Vehicular Ad-hoc Network,VANET)是为车辆之间提供网络连接和实时信息共享而提出的。此外,VANET还集成了传感器和路边单元(Roadside Unit,RSU)用于与道路上的车辆通信,以提高交通安全[7]。近年来,为了将VANET与云计算技术相结合,研究人员提出了车辆云[8](Vehicular Cloudlet,VC)系统。VC系统的计算和通信能力为道路上的用户提供了实用性和便利性,因此相关研究近年来备受关注。VC由一个未充分利用的车辆资源共享池组成,其中包括计算、存储、传感和通信设备[9]。一组车辆可以通过分享自己的计算资源,并根据车联网形成云计算网络来实现资源共享,这与传统的云计算非常相似,不同之处在于计算资源是由车辆提供的。车辆通过创建自组网络,避免传输数据到远程的计算中心,节省网络带宽,同时可以显著降低应用延迟[10-11],另外为智能驾驶、道路规划的决策等基于智能交通的应用程序提供支持,使车辆更加智能化。

由于车辆的地理分布特性,VC系统具有高度的动态性与资源波动性,传统的资源优化方法[12]已经不能满足其资源动态管理与分配的要求。近年来,由于人工智能技术的快速发展,研究人员开始尝试使用强化学习理论来实现车辆计算资源的动态管理。文献[13]提出使用任务复制的方法来解决车辆任务请求未完成而车辆离开VC覆盖范围的情况,并给出一种平衡任务分配(Balanced Task Assignment,BETA)策略,证明了该策略是最优策略,但是该方案只考虑了相同的任务大小。文献[14]考虑VC系统中的任务迁移问题,即对于具有拓扑顺序的任务可以在未完成之前迁移到其他车辆上,以最小化整体响应时间。文献[15]使用公共交通车辆来提供计算服务,并且使用了M/M/C优先队列模型,最后基于半马尔可夫决策过程提出一个感知应用程序卸载策略来获取最优的资源分配方案,并最大化长期奖励。文献[16]考虑了异构车辆与RSU计算资源分配的场景,并且对于不同类型的任务请求遵循不同的泊松分布,但由于使用的是传统的强化学习算法,因此不能很好地处理复杂环境状态情形。

将深度学习的感知能力与强化学习的决策能力相结合的深度强化学习(Deep Reinforcement Learning,DRL)技术[17],不需要明确状态转移概率,只基于当前的情况,根据系统状态的样本和客观奖励的经验策略来做出决策。DRL模型有效地改善了传统强化学习算法在高维输入状态空间或大动作集的环境下性能差的问题。文献[18]提出一种三层卸载框架使得总体能耗最小,并且考虑了运动车辆和停靠在停车场的静态车辆,由于具有较高的计算复杂度,因此将资源分配问题分解为流量重定向和卸载决策两部分,对于流量重定向问题使用Edmonds-Karp算法,而卸载决策部分使用双Q网络[19](Double Deep Q-Network,DDQN)。文献[20]提出一个知识驱动车联网服务卸载框架,基于A3C(Asynchronous Advantage Actor-Critic)算法可以同时在多个不同的边缘节点训练,然后将学到的知识传递到VC控制器,使得决策能更好地适应环境变化。文献[21]提出一种通过启发式算法将有限的计算资源分配给车辆应用的模型,由于环境中的高维信息和连续行为空间,通过递归神经网络(Recurrent Neural Network,RNN)来提取基于时间和位置的资源可用性模式,使用近端策略优化(Proximal Policy Optimization,PPO)算法对计算资源进行分配,模拟实验结果表明,相比于传统的方案可以取得更高的服务满意度。

本文在二次资源分配(Secondary Resource Allocation,SRA)机制[22]的基础上,提出一种基于双时间尺度的二次资源分配机制。该机制考虑了异质化车辆与不同类型的任务请求,其不同于单智能体算法,而是运用多智能体强化学习(Multi-Agent Reinforcement Learning,MARL)算法QMix[23]对计算资源进行分配从而获得更好的服务满意度。

1 系统模型

本文的VC系统模型如图 1所示,系统主要由车辆和路边的RSU设备组成。VC系统的控制中心部署在RSU上,通过车辆-基础设施[24](Vehicle-to-Infrastructure,V2I)通信方式实现无线连接。本文的VC系统考虑了异质车辆,定义$ K $种车辆类型,不同类型的车辆可以提供不同大小的计算资源。为了更好地量化VC中的资源大小,本文使用资源单元(Resource Units,RUs)来表示整个VC中最小的资源单位,所有资源池中的资源被中心的VC控制系统进行分配。

Download:
图 1 VC系统模型 Fig. 1 VC system model

对于进入与离开VC的车辆遵循泊松分布,当车辆进入VC覆盖范围后,由于车辆自身的计算资源有限,当车辆有计算任务时就会向VC发送任务请求。VC接收到任务请求后,根据任务信息与当前资源池中的资源数量来决定是否接收请求,并分配相应数量的RU。如果VC根据当前系统的请求服务状态拒绝接收请求,此时会把该服务发送到附近的边缘服务器执行,在这种情况下系统会受到惩罚。

为了更加贴合实际情况,对于不同的任务请求具有不同的描述特征。比如对于自动导航任务需要严格的时间限制,而对AR、VR车载娱乐等计算密集型任务则不需要严格的时间限制。本文将任务信息定义如下:

$ {T}_{j}=\{{d}_{j}, {t}_{j}^{\mathrm{m}\mathrm{a}\mathrm{x}}, {\zeta }_{j}\}, j\in J $ (1)

其中:$ J $表示任务请求的类型;$ {d}_{j} $$ {t}_{j}^{\mathrm{m}\mathrm{a}\mathrm{x}} $表示$ j $类任务请求的大小与最大延迟时间;$ {\zeta }_{j} $是任务$ {T}_{j} $的一个系数,每个任务的效用可以用$ {\zeta }_{j}({t}_{j}^{\mathrm{m}\mathrm{a}\mathrm{x}}-{t}_{j}^{\mathrm{t}\mathrm{o}\mathrm{t}}) $表示,$ {t}_{j}^{\mathrm{t}\mathrm{o}\mathrm{t}} $为完成任务$ {T}_{j} $所需要的时间。另外,对于类型$ j $的任务产生的概率为$ {p}_{j} $,满足$ \sum \limits_{j\in J}{p}_{j}=1 $

1.1 通信模型

车辆$ v $$ j $类型任务请求的传输时间$ {t}_{j}^{\mathrm{u}\mathrm{p}} $和信道传输速率相关。其中信道传输速率可以表示为:

$ {r}_{v}=W\mathrm{l}\mathrm{b}\left(1+\frac{{P}_{v}^{\mathrm{t}\mathrm{r}}|{h}_{t}{|}^{2}}{{\sigma }^{2}({d}_{v}{)}^{c}}\right) $ (2)

其中:$ d $$ c $分别为车辆距离RSU的距离和路径损耗指数;$ {P}_{v}^{\mathrm{t}\mathrm{r}} $为车辆与RSU之间的传输功率;$ {h}_{t} $$ t $时刻车辆与RSU之间的信道衰减系数;$ {\sigma }^{2} $为传输的高斯噪声功率;$ W $为可用的频谱带宽。此时,对于属于车辆$ v $任务类型为$ j $的请求$ i $的传输时间为:

$ {t}_{i}^{\mathrm{u}\mathrm{p}}=\frac{{d}_{j}}{{r}_{v}} $ (3)
1.2 队列模型

当VC系统内的车辆产生任务请求时,VC为其分配RU资源进行服务,虽然同时要服务多个任务请求,但是可以把整个VC看作是一个基于$ \mathrm{M}/\mathrm{M}/1 $的队列模型。队列中的任务等待流为$ \lambda $,即队列的到达率。本文假设对于每一个RU资源的服务率为$ {\mu }_{u} $,那么此时整个系统的服务率为:

$ \mu =\sum \limits_{k\in K}{N}_{k}\alpha k{\mu }_{u} $ (4)

其中:$ \alpha k $表示$ k $类型车辆可以提供的RU数量,$ \alpha $为系数;$ {N}_{k} $表示在VC覆盖范围内车辆类型为$ k $的车辆数量,且满足$ \lambda < \mu $关系。根据队列理论,对于队列中一个任务$ i $的等待时间为:

$ {t}_{i}^{\mathrm{w}\mathrm{a}\mathrm{t}}=\frac{\lambda }{\mu (\mu -\lambda )} $ (5)

对于任务$ i $的执行时间可以表示为:

$ {t}_{i}^{\mathrm{p}\mathrm{r}\mathrm{o}}=\frac{1}{{\mu }_{u}{N}_{i}^{\mathrm{r}\mathrm{u}}} $ (6)

其中:$ {N}_{i}^{\mathrm{r}\mathrm{u}} $表示对于任务$ i $分配的RU数量。

1.3 二次资源分配机制

由于VC环境的动态性,车辆进入或者离开都会对VC中可用的资源产生影响,进而影响到分配决策,因此以往简单的卸载方式很难动态地满足任务的计算需求。本文中使用基于双时间尺度模型的SRA机制。

在本文的模型中,存在大时间尺度和小时间尺度两种资源分配动作。当VC接收到范围内车辆的任务请求时,需要决定接收请求或者把请求发送到附近边缘服务器上执行,这个过程本文定义为大时间尺度动作。大时间尺度动作的间隔比较长,期间可以根据环境的变化对已经分配RU的任务请求进行资源二次调整,这个调整动作过程定义为小时间尺度动作。比如,若某一任务请求分配的资源很充足,则可以适当缩减其RU数量,另一方面,对于某一请求分配的RU资源不能在时间限制之前完成,且此时资源池中还有剩余的资源,那么就可以通过增加其RU数量来减小任务完成时间。总地来说,在大时间尺度上决定任务请求是否接收,在小时间尺度上不断地调整已分配的RU数量以跟踪环境细微的变化,这样通过SRA机制,模型可以很好地适应高速动态的VC环境。

1.4 问题归纳

在给定的时隙$ h $内,对于在VC覆盖范围内的车辆$ v $生成的$ j $类型请求$ i $,使用$ {X}_{ij}^{h}=1 $来表示VC接收该请求,使用$ {Y}_{ij}^{h}=1 $表示VC将该请求发送到附近的边缘服务器,在其他情况下,$ {X}_{ij}^{h} $$ {Y}_{ij}^{h} $都为$ 0 $。本文系统的优化目标是在$ H $的时间段内,调整对VC范围内车辆的任务请求的资源分配数量,在任务延迟要求的限制下最大化提高系统效用,从而提高用户的服务质量。

因此,可以归纳出如下优化问题:

$ \underset{XY{N}_{}^{\mathrm{r}\mathrm{u}}}{\mathrm{m}\mathrm{a}\mathrm{x}}U=\sum\limits_{h=1}^{H}\sum\limits_{j=1}^{J}\sum\limits_{i=1}^{{N}_{j}}{X}_{ij}^{h}{p}_{j}{\zeta }_{j}\left({t}_{ijh}^{\mathrm{m}\mathrm{a}\mathrm{x}}-{t}_{ijh}^{\mathrm{t}\mathrm{o}\mathrm{t}}\right)-{Y}_{ij}^{h}\beta \\ \begin{array}{l}\mathrm{s}.\mathrm{t}.{X}_{ij}^{h}=\left\{\mathrm{0, 1}\right\}, {Y}_{ij}^{h}=\left\{\mathrm{0, 1}\right\}\text{,}{X}_{ij}^{h}{Y}_{ij}^{h}=0, {X}_{ij}^{h}+{Y}_{ij}^{h}=1\\ \sum\limits_{j\in J}{P}_{j}=1\\ 0 < {N}_{}^{\mathrm{r}\mathrm{u}} < L\end{array} $ (7)

其中:$ \beta $为VC选择将任务发送到附近边缘服务器时受到的惩罚;$ H $为每一幕的时隙数;$ {N}_{j} $表示当前时隙$ j $类型的请求数;$ {t}_{i}^{\mathrm{t}\mathrm{o}\mathrm{t}} $为完成任务$ i $需要的时间,可以表示为$ {t}_{i}^{\mathrm{t}\mathrm{o}\mathrm{t}}={t}_{i}^{\mathrm{u}\mathrm{p}}+{t}_{i}^{\mathrm{w}\mathrm{a}\mathrm{t}}+{t}_{i}^{\mathrm{p}\mathrm{r}\mathrm{o}} $,对于前两条限制表示对于一个请求VC只能选择一种处理方式;$ L $表示一次可以分配的最大RU数量。

2 车辆云计算资源分配系统 2.1 决策模型

与单智能体强化学习不同,MARL中由于状态空间变大,联合动作空间随着智能体数量呈指数增长,因而很难拟合出一个合适的函数来表示真实的联合动作值函数。在这样一个随机博弈[25]环境中,智能体需要在有限的计算资源下协作,实现整体的收益最大化。本文使用元组$ G=(S, U, P, R, O, \gamma ) $来描述部分可观测马尔可夫决策模型(POMDP),在时隙$ t $$ {s}_{t}\in S $表示全局的环境信息,智能体的数量为$ A $,则对于每一个智能体$ a\in A $都需要选择一个动作$ {u}^{a}\in U $去组成一个联合动作$ u $,通过把联合动作$ u $作用于环境,根据状态转移概率$ P\left({s}_{t+1}\right|{s}_{t}, {u}_{t}) $进入下一个状态。同时,所有的智能体都会收到一个奖励$ r({s}_{t}, {u}_{t}) $。在实际观测过程中,智能体只能获取自身的状态信息,不同的智能体具有不同的观测信息用$ O(s, a) $来表示。使用RNN对于不完全观测可以取得较好的效果,因此使用$ {\tau }^{a} $表示智能体$ a $的动作观测历史,基于这个动作观测历史来构建策略函数$ {\pi }^{a}\left({u}^{a}\right|{\tau }^{a}) $,由此可以得到联合动作值函数:

$ {Q}_{\mathrm{t}\mathrm{o}\mathrm{t}}^{\pi }({s}_{t}, {u}_{t})={\mathbb{E}}_{{s}_{t+1}, {u}_{t+1}}\left[\sum \limits_{i=0}^{\mathrm{\infty }}{\gamma }^{i}{r}_{t+i}|{s}_{t}, {u}_{t}\right] $ (8)

其中:$ \gamma $表示折扣因子。

2.1.1 状态与观测空间

对于VC环境中全局状态$ {s}_{t} $需要考虑车辆、队列等所有信息,可以表示为:

$ \begin{array}{l}{s}_{t}=\{{v}_{1}, {v}_{2}, \cdots , {v}_{m};{q}_{1}, {q}_{2}, \cdots , {q}_{f};{p}_{1}, {p}_{2}, \cdots , {p}_{a};\\ e\in \{{e}_{ar}, {e}_{d}\}\}\end{array} $ (9)

其中:$ {v}_{m} $表示VC范围内车辆的信息,包括车辆类型、位置、速度以及生成的任务请求;$ {q}_{f} $表示队列中等待的请求信息;$ {p}_{a} $表示正在执行中的任务请求信息,每一个智能体$ a $处理一个任务请求;$ e $表示当前时隙的事件,包括请求到来$ {e}_{ar} $与请求离开$ {e}_{d} $。对与当前时隙的任务请求,需要获取的部分观测信息$ {O}_{a} $,有:

$ {O}_{a}=\{{d}_{a}, {t}_{a}^{\mathrm{m}\mathrm{a}\mathrm{x}}, {\zeta }_{a}, {k}_{a}, {v}_{a}, {g}_{a}\} $ (10)

其中:$ {k}_{a} $表示请求$ a $所属车辆的类型,不同类型的车辆可以提供不同数量的计算资源;$ {v}_{a} $$ {g}_{a} $分别表示当前时隙车辆的速度与位置坐标。

2.1.2 动作空间

由于系统模型使用基于双时间尺度的SRA机制,因此存在两种动作。对于大时间尺度,在时隙$ t $的联合动作为$ {u}_{\mathrm{l}}=\{{a}_{1}, {a}_{2}, \cdots , {a}_{n}|a\in \{\mathrm{0, 1}, \cdots , l\}\} $,其中,$ {a}_{n} $表示对第$ n $个请求分配的RU资源数量,最大值为$ l $,当$ {a}_{n}=0 $时表示VC拒绝接收请求并把请求发送到附近的边缘服务器上执行。对于小时间尺度,在时隙$ t $的联合动作为:

$ {u}_{s}=\{{a}_{1}, {a}_{2}, \cdots , {a}_{n}|a\in \{-s, 0, s\}\} $

其中:$ -s $$ s $表示对某一请求减少或增加$ s $数量的RU;当$ {a}_{n}=0 $时表示对该请求不做任何操作。

2.1.3 奖励函数

本文系统的优化目标是最大化系统整体效用,强化学习的目标就是最大化获得的累计奖励,所以定义奖励函数值为在每一个时隙获得的效用值。若要获得更大的效应值,那么就要最小化每一个接收的任务执行时间$ {t}^{\mathrm{t}\mathrm{o}\mathrm{t}} $。对于每一个任务请求的效用,本文定义$ \mathrm{\Delta }t=({t}^{\mathrm{m}\mathrm{a}\mathrm{x}}-{t}^{\mathrm{t}\mathrm{o}\mathrm{t}}) $为请求完成总时间与其最大时间限制的差值,则奖励函数如下:

$ R\left(T\right)=\left\{\begin{array}{l}\mathrm{\Delta }t{\zeta }_{j}+\eta {N}^{\mathrm{r}\mathrm{u}}, \mathrm{ }\mathrm{\Delta }t\ge 0\\ \frac{-\mathrm{\Delta }t}{\rho {t}^{\mathrm{m}\mathrm{a}\mathrm{x}}}{\zeta }_{j}, \rho {t}^{\mathrm{m}\mathrm{a}\mathrm{x}} < \mathrm{\Delta }t < 0\\ \beta , \mathrm{其}\mathrm{他}\end{array}\right. $ (11)

其中:$ \beta $表示对VC拒绝请求的惩罚;$ \eta $表示一个RU可以获得的效用值;$ \rho $是一个参数,满足$ 0 < \rho < 1 $。最优的资源分配策略$ {\pi }^{\mathrm{*}} $就是使得整体奖励最大的策略,可以表示为:

$ {\pi }^{\mathrm{*}}=\underset{\pi }{\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}\mathrm{x}}\sum \limits_{h=1}^{H}\sum\limits _{a=1}^{A}R\left({T}_{a, h}\right)/H $ (12)
2.2 DQN与SRA-QMix

DQN是在Q-Learning算法的基础上引入神经网络来代替Q表格,使得可以处理连续状态的环境,其损失函数为:

$ L\left(\theta \right)=\mathbb{E}\left[{\left({\widehat{y}}_{\theta }-Q(s, a;\theta )\right)}^{2}\right] $ (13)

其中:$ {\widehat{y}}_{\theta }=r+\gamma \underset{{a}_{t+1}}{\mathrm{m}\mathrm{a}\mathrm{x}}\widehat{Q}({s}_{t+1}, {a}_{t+1}, {\theta }^{-}) $。DQN中存在两个子网络,一个子网络是参数为$ \theta $的评估网络$ Q({s}_{t}, {a}_{t}, \theta ) $,该网络在每次计算当前状态价值时都会更新,另一个是参数为$ {\theta }^{-} $的目标网络$ \widehat{Q}({s}_{t+1}, {a}_{t+1}, {\theta }^{-}) $,用来计算下一个状态的动作价值。在训练过程中,通过设定目标网络的更新频率小于评估网络,使得在一段时间内目标网络参数保持不变,然后目标网络从参数$ \theta $处更新,这样可以提高算法的稳定性与收敛速度。

本文将QMix算法与SRA机制相结合,提出一种新的计算资源分配算法SRA-QMix,使用集中式训练分布式执行(Centralised Training with Decentralised,CTDE)机制。每个智能体表示要处理的请求,所有智能体的部分观测之和就是全局状态,即通过全局状态$ {s}_{t} $信息训练$ Q $网络得到全局的值函数$ {Q}_{\mathrm{t}\mathrm{o}\mathrm{t}}(\tau , u) $。在分散执行阶段,根据每个任务请求信息以及其所属车辆的局部观测状态$ {o}_{i} $来估计动作价值,每个智能体都采取贪婪策略来选择动作。全局Q值计算过程如图 2所示。

Download:
图 2 SRA-QMix算法全局Q值计算过程 Fig. 2 The process of the global Q value calculation in SRA-QMix algorithm

全局值函数$ {Q}_{\mathrm{t}\mathrm{o}\mathrm{t}}(\tau , u) $与单个智能体值函数$ {Q}_{a}({\tau }^{n}, {u}^{n}) $单调性相同,那么对全局值函数取$ \mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}\mathrm{x} $操作与对单个智能体的值函数取$ \mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}\mathrm{x} $操作能够得到相同的结果:

$ \underset{u}{\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}\mathrm{x}}{Q}_{\mathrm{t}\mathrm{o}\mathrm{t}}(\tau , u)=\left(\begin{array}{c}\underset{{u}_{1}}{\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}\mathrm{x}}{Q}_{1}({\tau }_{1}, {u}_{1})\\ \vdots \\ \underset{{u}_{a}}{\mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}\mathrm{x}}{Q}_{a}({\tau }_{a}, {u}_{a})\end{array}\right) $ (14)

为了保证值函数的单调性使得式(14)等式成立,算法存在以下约束:

$ \frac{\partial {Q}_{\mathrm{t}\mathrm{o}\mathrm{t}}}{\partial {Q}_{i}}\ge 0, \forall i\in \{\mathrm{1, 2}, \cdots , n\} $ (15)

不同于值分解网络(Value-Decomposition Networks,VDN)算法中对所有智能体的值函数简单相加,如图 2所示,QMix使用混合网络通过非线性方式对单智能体局部值函数进行整合:

$ {Q}_{\mathrm{t}\mathrm{o}\mathrm{t}}(\tau , u)=M({s}_{t}, {Q}_{1}({\tau }_{1}, {u}_{1}), \cdots , {Q}_{a}({\tau }_{a}, {u}_{a}\left)\right) $ (16)

其中:$ M $表示Mixing网络,是一种前馈神经网络。为了满足式(15)的要求,混合网络的参数由单独的超参数网络生成,其采用一种超网络结构,输入不仅有各个智能体的局部值函数,还包括全局状态信息$ {s}_{t} $,输出为混合网络的权值与偏移量。这样,通过对$ {Q}_{\mathrm{t}\mathrm{o}\mathrm{t}}(\tau , u) $进行分解,对其进行$ \mathrm{a}\mathrm{r}\mathrm{g}\mathrm{m}\mathrm{a}\mathrm{x} $操作的计算量就不再是随着联合动作空间呈指数增长,而是随着智能体数量呈线性增长,极大地提高了算法的效率。每一个智能体的结构都为DRQN网络,输入为单个任务观测的轨迹信息,经过GRU循环网络,即具有学习长时间序列的能力。在程序中对于所有的智能体可以使用one-hot编码方式共用同一套网络。

SRA-QMix是基于DQN算法得到,两者基本流程相似,都用到了经验池用来存放经验信息,同时存在相应的目标网络,其最终的损失函数可以表示为:

$ L\left(\theta \right)=\sum \limits_{i=1}^{b}\left[({\widehat{y}}_{i}^{\mathrm{t}\mathrm{o}\mathrm{t}}-{Q}_{\mathrm{t}\mathrm{o}\mathrm{t}}{(\tau , u, s;\theta ))}^{2}\right] $ (17)

其中:$ b $表示从经验池中采样的样本数量。

$ {\widehat{y}}_{i}^{\mathrm{t}\mathrm{o}\mathrm{t}} $表示为:

$ {\widehat{y}}_{i}^{\mathrm{t}\mathrm{o}\mathrm{t}}=r+\gamma \underset{{u}_{t+1}}{\mathrm{m}\mathrm{a}\mathrm{x}}\widehat{Q}({\tau }_{t+1}, {u}_{t+1}, {s}_{t+1}, {\theta }^{-}) $ (18)

SRA-QMix算法描述如下:

算法1    SRA-QMix算法

输入   DRQN和Mix神经网络参数,全局状态$ {s}_{t} $以及所有任务的部分观测$ {o}_{t}^{n} $

输出    可以获得最优效用值的动作向量

1.初始化环境参数,车辆到达流$ \mathrm{\lambda } $,车辆类型以及环境参数$ \mathrm{\beta } $$ \mathrm{\eta } $$ \mathrm{\rho } $

2.初始化DRQN网络、Mix网络和相应的目标网络参数,以及算法的超参数;

3.初始化两种时间尺度对应的经验池Buffer;

4.对于每个epoch做以下操作:

5.重置环境信息得到初始$ {\mathrm{s}}_{\mathrm{t}} $,根据当前step为每一个agent根据DRQN网络的输出选择动作;

6.获取下一时刻状态$ {\mathrm{s}}_{\mathrm{t}+1} $与奖励;

7.重复步骤5和步骤6,直到当前环境结束,将搜集到的大时间尺度和小时间尺度经验序列存入经验池;

8.从相应经验池中选取batch_size大小的数据分别对大时间和小时间策略进行训练;

9.分别计算所有智能体的Q值与目标Q值$ \widehat{\mathrm{y}} $

$ \widehat{\mathrm{y}}={\mathrm{r}}_{\mathrm{t}+1}+\mathrm{\gamma }\underset{\mathrm{a}}{\mathrm{m}\mathrm{a}\mathrm{x}}\mathrm{Q}({\mathrm{s}}_{\mathrm{t}+1}, \mathrm{a};{\mathrm{\theta }}^{-}) $

10.利用Mix网络与式(18)计算$ {\mathrm{Q}}_{\mathrm{t}\mathrm{o}\mathrm{t}} $$ {\widehat{\mathrm{y}}}_{}^{\mathrm{t}\mathrm{o}\mathrm{t}} $

11.利用式(17)计算损失;

12.更新网络参数;

13.一定次数后更新目标网络参数;

14.结束当前训练,进入下一个epoch;

15.结束算法。

3 仿真结果与分析 3.1 仿真环境与参数

仿真软件使用SUMO,硬件使用Intel Xeon W-2133,32 GB内存,基于Ubuntu18.04,仿真程序使用Python3.6+Pytorch1.8编写。仿真场景考虑了一个十字路口的区域,部署一台RSU与作为VC的控制中心,车辆进入VC环境后,假设都会分享计算资源,同时每辆车辆都有一定的概率产生任务请求。算法采用退化$ ϵ‐\mathrm{g}\mathrm{r}\mathrm{e}\mathrm{e}\mathrm{d}\mathrm{y} $策略,部分仿真参数如表 1所示。

下载CSV 表 1 部分仿真参数设置 Table 1 Setting of part the simulation parameter
3.2 结果分析

为验证本文计算资源分配算法SRA-QMix的性能及其双时间尺度的有效性,本文将以下3种算法作为基准进行对照:

1)QMix。没有使用二次资源分配策略的方案。

2)MADDPG。确定性策略梯度算法DDPG的多智能体改进版。

3)SRA-MADDPG。在MADDPG算法的基础上增加二次资源分配机制。

图 3所示为不同算法下的总效用值随车辆到达率$ \lambda $变化情况,$ \lambda $越大表示同一时刻进入VC覆盖范围的车辆就越多,相应地,同一时隙需要处理的请求数也会增加。当$ \lambda $为0.3时,4种算法效用值都比较低,这是由于此时任务数量比较少。随着车辆到达率的增加,4种算法的总效用值也随之增加。可以看出,SRA-QMix算法可以获得更高的效用值,相比SRA-MADDPG算法,系统效用平均提高了70%。这是因为该算法可以更好地处理多个任务之间的合作竞争关系,得到整体最大奖励。另外,相比于不使用SRA机制的算法,SRA机制可以获得更高的系统效用值。

Download:
图 3 系统总效用随车辆到达率的变化情况 Fig. 3 The total utility of the system varies with the vehicle arrival rate

图 4所示为不同算法下任务的完成率与车辆到达率$ \lambda $之间的关系。可以看出随着车辆到达率的增加,对于任务请求的完成率在下降。在$ \lambda $=0.3时刻,SRA-QMix算法的任务完成率可以接近90%,但是随着到达率的增加,4种算法对任务的完成率都随之下降。这是因为随着到达率的增加,每一时刻系统需要处理的请求数量也会增加,对于在有限的RU计算资源情况下,算法的分配策略就不再精准,任务在最大时间限制之前完成的概率就减小。在不同到达率下提出算法相比于SRA-MADDPG算法的任务完成率平均高6%。另外,相比于未使用SRA机制的算法相比,上述两种算法任务完成率分别提高了13%和15%。可以看出应用了SRA机制可以显著提高算法性能,这是由于通过小时间动作的不断微调,提高了资源利用率。

Download:
图 4 任务完成率与车辆到达率的关系 Fig. 4 Relationship between task finish rate and vehicle arrival rate

图 3图 4可以看出:MADDPG算法的表现是弱于QMix算法的,这是因为MADDPG算法是在深度确定性策略梯度DDPG算法基础上改进得来的,对于Critic部分能够获取到全局状态用来指导单个Actor的训练,在测试时Actor根据局部观测来采取行动,遵循集中式训练分布式执行过程。但是由于缺乏QMix对于各个智能体的Q值融合机制,没有整体的奖励函数,对于在资源受限情况下的智能体协同表现要弱于QMix算法。

图 5所示为任务完成率与参数$ \alpha $之间的关系。其中$ \alpha $表示车辆类型与可提供的RU数量之间的关系,$ \alpha $越大,同样的车辆就可以提供更多的计算资源,那么整体的RU数量就会增加。本文设置当前每个时刻可以处理的请求数量为10。在开始时,由于RU数量很少,此时4种算法的完成率都比较低,主要是因为资源池中没有足够多的RU资源。随着$ \alpha $的增加,同样的车辆可以贡献更多数量的RU,4种算法的任务完成率也随之增加,因为更多的资源可以使得请求更快地被完成。可以看出SRA-QMix算法具有最好的表现。

Download:
图 5 任务完成率与参数$ \mathit{\alpha } $的关系 Fig. 5 Relationship between task finish rate and parameter of $ \mathit{\alpha } $

图 6所示为小时间尺度在不同更新间隔下总效用与任务完成率的情况。此处展示的是车辆到达率在$ \lambda $=1、$ \alpha $=1.5情况下的表现,小时间尺度更新间隔越小,更新越频繁。当更新间隔为1时隙时,表示在环境的每一步都会通过小时间尺度更新对分配的RU数量进行调整。可以看出,在间隔为1时隙时,两种算法都有最高的效用值和任务完成率。随着更新间隔时间的增加,系统总效用和任务的完成率都随之下降,说明通过高频率的小时间尺度更新可以适应高度动态的VC环境,帮助算法学习到更好的资源分配策略。

Download:
图 6 系统总效用和任务完成率随小时间尺度更新间隔的变化 Fig. 6 The total utility and task finish rate of the system varies with the small time scale update interval
4 结束语

对于VC环境的任务卸载与计算资源分配问题,本文提出一种考虑异质性任务和车辆的多智能体卸载算法SRA-QMix,并根据VC环境中计算资源波动对任务卸载的影响,提出二次资源分配机制,即在大时间尺度上决定是否接收任务请求,在小时间尺度上对已经分配的计算资源进行动态调整。对于多智能体环境下状态与动作空间的维度诅咒问题,结合QMix算法对各个局部Q值进行非线性融合,降低算法复杂度。针对VC环境中计算资源的分配问题,通过预测VC范围外的车流量,在大时间尺度上提前做出应对策略,从而辅助大时间尺度上的资源分配决策过程,提高算法的动态资源分配能力。实验结果表明,与深度确定性策略优化算法对比,本文提出的决策算法具有更高的效用值与任务完成率,并证明了二次资源分配机制对解决车辆云环境中任务卸载与资源分配问题的有效性,且高频次的小时间动作对车辆云卸载环境有更好的适应性。近年来深度强化学习技术受到人们越来越多的关注,如何使用深度强化学习技术对车辆状态和奖励函数设定等车联网任务卸载策略进行通用建模,并使其更加简单易用,将是下一步的研究方向。

参考文献
[1]
ZHANG K, LENG S P, PENG X, et al. Artificial intelligence inspired transmission scheduling in cognitive vehicular communications and networks[J]. IEEE Internet of Things Journal, 2019, 6(2): 1987-1997. DOI:10.1109/JIOT.2018.2872013
[2]
LV Z Q, LI J B, DONG C H, et al. Deep learning in the COVID-19 epidemic: a deep model for urban traffic revitalization index[J]. Data & Knowledge Engineering, 2021, 135: 101912.
[3]
牛瑞彪, 唐伦, 陈婉. 小蜂窝云中功率与负载的联合优化分配算法[J]. 计算机工程, 2017, 43(8): 49-55.
NIU R B, TANG L, CHEN W. Allocation algorithm of power and load jointing optimization for small cell cloud[J]. Computer Engineering, 2017, 43(8): 49-55. (in Chinese) DOI:10.3969/j.issn.1000-3428.2017.08.009
[4]
LI B, FEI Z S, CHU Z, et al. Secure transmission for heterogeneous cellular networks with wireless information and power transfer[J]. IEEE Systems Journal, 2018, 12(4): 3755-3766. DOI:10.1109/JSYST.2017.2713881
[5]
PENG H X, LE L, SHEN X M, et al. Vehicular communications: a network layer perspective[J]. IEEE Transactions on Vehicular Technology, 2019, 68(2): 1064-1078. DOI:10.1109/TVT.2018.2833427
[6]
ULLAH S, ABBAS G, ABBAS Z H, et al. RBO-EM: reduced broadcast overhead scheme for emergency message dissemination in VANETs[J]. IEEE Access, 2020, 8: 175205-175219. DOI:10.1109/ACCESS.2020.3025212
[7]
LIN C C, DENG D J. Optimal two-lane placement for hybrid VANET-sensor networks[J]. IEEE Transactions on Industrial Electronics, 2015, 62(12): 7883-7891. DOI:10.1109/TIE.2015.2418314
[8]
ABUELELA M, OLARIU S. Taking VANET to the clouds[C]//Proceedings of IEEE MoMMʼ10. Washington D.C., USA: IEEE Press, 2010: 2356-2464.
[9]
SKONDRAS E, MICHALAS A, VERGADOS D D. Mobility management on 5G vehicular cloud computing systems[J]. Vehicular Communications, 2019, 16: 15-44. DOI:10.1016/j.vehcom.2019.01.001
[10]
董思岐, 吴嘉慧, 李海龙, 等. 面向优先级任务的移动边缘计算资源分配方法[J]. 计算机工程, 2020, 46(3): 18-23.
DONG S Q, WU J H, LI H L, et al. Resource allocation method for priority task in mobile edge computing[J]. Computer Engineering, 2020, 46(3): 18-23. (in Chinese)
[11]
唐伦, 胡彦娟, 刘通, 等. 移动边缘计算中基于Lyapunov的任务卸载与资源分配算法[J]. 计算机工程, 2021, 47(3): 29-36.
TANG L, HU Y J, LIU T, et al. Task offloading and resource allocation algorithm based on Lyapunov in mobile edge computing[J]. Computer Engineering, 2021, 47(3): 29-36. (in Chinese)
[12]
RAZA S, LIU W, AHMED M, et al. An efficient task offloading scheme in vehicular edge computing[J]. Journal of Cloud Computing, 2020, 9: 28.
[13]
JIANG Z Y, ZHOU S, GUO X Y, et al. Task replication for deadline-constrained vehicular cloud computing: optimal policy, performance analysis, and implications on road traffic[J]. IEEE Internet of Things Journal, 2018, 5(1): 93-107. DOI:10.1109/JIOT.2017.2771473
[14]
SUN F, CHENG N, ZHANG S, et al. Reinforcement learning based computation migration for vehicular cloud computing[C]//Proceedings of 2018 IEEE Global Communications Conference. Washington D.C., USA: IEEE Press, 2018: 1-6.
[15]
WANG Z, ZHONG Z D, NI M M. Application-aware offloading policy using SMDP in vehicular fog computing systems[C]//Proceedings of 2018 IEEE International Conference on Communications Workshops. Washington D.C., USA: IEEE Press, 2018: 511-526.
[16]
LIN C C, DENG D J, YAO C C. Resource allocation in vehicular cloud computing systems with heterogeneous vehicles and roadside units[J]. IEEE Internet of Things Journal, 2018, 5(5): 3692-3700. DOI:10.1109/JIOT.2017.2690961
[17]
NING Z L, DONG P R, WANG X J, et al. Deep reinforcement learning for vehicular edge computing[J]. ACM Transactions on Intelligent Systems and Technology, 2019, 10(6): 1-24.
[18]
VAN HASSELT H, GUEZ A, SILVER D. Deep reinforcement learning with double Q-learning[J]. Artificial Intelligence, 2016, 30(1): 578-586.
[19]
QI Q, WANG J Y, MA Z Y, et al. Knowledge-driven service offloading decision for vehicular edge computing: a deep reinforcement learning approach[J]. IEEE Transactions on Vehicular Technology, 2019, 68(5): 4192-4203.
[20]
LEE S S, LEE S. Resource allocation for vehicular fog computing using reinforcement learning combined with heuristic information[J]. IEEE Internet of Things Journal, 2020, 7(10): 10450-10464.
[21]
LIANG H B, ZHANG X H, HONG X T, et al. Reinforcement learning enabled dynamic resource allocation in the Internet of vehicles[J]. IEEE Transactions on Industrial Informatics, 2021, 17(7): 4957-4967.
[22]
RASHID T, SAMVELYAN M, DE WITT C S, et al. QMIX: monotonic value function factorisation for deep multi-agent reinforcement learning[EB/OL]. [2021-10-20]. https://arxiv.org/abs/1803.11485.
[23]
SHERAZ M, AHMED M, HOU X S, et al. Artificial intelligence for wireless caching: schemes, performance, and challenges[J]. IEEE Communications Surveys & Tutorials, 2021, 23(1): 631-661.
[24]
RAZA S, WANG S G, AHMED M, et al. A survey on vehicular edge computing: architecture, applications, technical issues, and future directions[J]. Wireless Communications and Mobile Computing, 2019, 2019: 1-19.
[25]
SOLAN E, VIEILLE N. Stochastic games[J]. Proceedings of the National Academy of Sciences of the United States of America, 2015, 112(45): 13743-13746.