一种基于深度强化学习的无人机任务匹配与计算迁移方法与流程

文档序号:17921987发布日期:2019-06-15 00:10阅读:252来源:国知局
一种基于深度强化学习的无人机任务匹配与计算迁移方法与流程

本发明涉及无人机任务匹配与计算迁移领域,特别涉及一种基于深度强化学习的无人机任务匹配与计算迁移方法。



背景技术:

无人机全称是无人驾驶飞机,是利用无线电遥控设备和自备的程序控制装置操纵的不载人飞机。无人机技术最早起源于20世纪初期,主要应用于军事领域,帮助军队运送物资和投掷炸药。近年来随着无人机制造技术的发展,产生了多种具有不同功能的无人机,从而大大扩大无人机的应用范围。目前无人机多应用于航拍、物流配送、农林植保、灾后搜寻等领域,各个企业也纷纷引入无人机技术,推出了独具特色的基于无人的的服务。例如京东在2016年便开始尝试用无人机进行物流配送,支付宝上线了一键呼叫极飞无人机植保服务,百度尝试用无人机进行送餐等,给用户的生活带来了极大的便利。同时由于无人机的生产成本不断降低,无人机产品趋于小型化、智能化,消费级的无人机市场展现出爆发式的增长,消费级无人机主要面对个人消费者,一般具备娱乐与航拍功能。虽然无人机的价格不断降低,但它的售价依然较为高昂,让许多用户望而却步。而且许多用户对无人机的需求不是持续性的需求,而是暂时性的服务型需求。为了解决以上矛盾,无人机租赁市场开始升温,用户基于自身的任务需求向企业租借无人机并基于租借的无人机种类与时长向企业交付一定的费用,从而企业与用户双方达到互赢的局面。尽管无人机租赁市场前景无限,但整个租赁过程依然存在着以下几个挑战。

企业端存在着许多种类不一的无人机,不同的无人机适用于不同类型的任务。例如飞行速度快的无人机适用于对实时性要求较高的任务,续航能力强的无人机适用于长时间的监测任务。但许多用户对无人机的了解不深,无法根据自己的任务特点选择最适合的无人机,因此需要在企业端进行任务匹配,由企业帮助用户选择最适合的无人机,从而尽可能缩短任务的完成时间,使系统资源利用率最高。在每一时刻,用户群体产生不定量的任务数,这些任务的大小、执行的地点、需要的计算和存储资源都不一样,企业需要对这些任务各自的特点进行分析,并结合考虑无人机自身的特点和现在的地点,将每个任务匹配到最适合的无人机上执行。

大部分基于无人机的任务都包含两种不同的子任务——采集任务和计算任务。采集任务只能由无人机执行,需要无人机飞到目的地进行数据收集,例如对当地的各个景点进行拍摄。计算任务则需要无人机对采集得到的数据进行处理,例如对航拍的视频进行物体识别,对核电站钢构件的裂缝进行实时的监测。大部分无人机上搭载着有限的计算和存储资源,因此无人机无法很好的完成一些对计算或存储资源要求较高的任务。而现在有许多基于无人机的任务是计算密集型的,例如用无人机救灾时,对灾区进行幸存者检测,在航拍时对拍摄画面进行实时的处理。为了解决以上问题,可以将无人机与云服务器相连,当计算任务比较复杂时,可以把无人机采集到的数据迁移到云服务器上进行后续的计算处理工作,从而大大调高了无人机的处理能力和应用范围,同时可以将无人机与ai服务相结合,提高无人机服务的智能性,为用户提供更智能的服务。同时,用户需要向云服务器支付一定的计算费用,因此,需要权衡时间和资金来这两个因素来决定是否进行计算迁移。

现有的关于无人机租赁系统的研究,主要是基于任务匹配或者计算迁移中的一种,考虑任务匹配时,只考虑任务当前的特性以及无人机的状态来进行匹配,而没有考虑迁移到云上的可能。而考虑计算迁移,则只考虑无人机当前的任务队列以及迁移到云上的价格,在价格和执行时间上做一个权衡,从而决定是否迁移某个任务。现有的研究没有联合两种因素一起来考虑。但任务匹配和计算迁移这两个动作会相互影响,假设某一时刻来了一个任务,如果将它匹配给计算资源较大的无人机,则可以不用将后续的计算任务迁移到云上,如果将它匹配给计算资源较小的无人机,则需要将采集到的数据迁移到云上进行处理。

现有的无人机租赁系统没有联合考虑任务匹配和计算迁移这两个动作,而是分别考虑两个动作,首先解决每一时刻的任务匹配问题,将用户的任务匹配到最适合的无人机上,然后再考虑是否对某个无人机上的计算任务进行计算迁移,最后将两个最优解合并作为最终的决策方案。但这种考虑缺乏全局性,得到的最终决策方案不一定是全局最优的。



技术实现要素:

本发明的主要目的是提出一种基于深度强化学习的无人机任务匹配与计算迁移方法,旨在克服以上问题。

为实现上述目的,本发明提出的一种基于深度强化学习的无人机任务匹配与计算迁移方法,包括如下步骤:

s10将时间离散为等长的时间间隔,假设在每个时间间隔初始时间有n个任务,把n个任务分配到m台无人机执行并决定是否将任务的计算部分迁移到云服务器上;

定义每个任务状态为[xt,yt,j,b]、无人机当前状态为[xd,yd,qs,qc],其中xt表示任务的目的地横坐标,yt表示任务的目的地纵坐标,j表示计算任务所需的cpu转数,b表示采集任务采集的数据集大小,xd表示无人机当前所在的横坐标,yd表示无人机当前所在的纵坐标,qs表示无人机的采集任务队列,qc表示计算任务队列;定义m为被分配到任务的无人机编号,o为是否要将计算任务迁移到云服务器上,o={0,1},o取0,表示计算任务在无人机上运行,o取1时表示计算任务被迁移到云服务器上;

状态s为当前的所有任务状态和所有无人机状态,n表示任务数,k表示无人机数,

假设系统的总花费=时间花费+资金花费,问题的目标函数为:ctotal表示系统的总花费,ctime表示系统的时间花费,由飞到目的地的时间、执行采集任务的时间和执行计算任务的时间三者相加得到,mj表示任务j匹配的无人机编号,oj表示是否将任务j的计算子任务迁移到云服务器上,表示任务j到无人机mj的距离,表示无人机mj的飞行速度,表示无人机mj的采集速率,表示无人机mj的计算速率,fcloud表示云服务器的计算速率,表示执行采集任务的时间,其中:

cpayment表示系统的资金花费,由飞行距离收费、采集任务收费和计算任务收费这三部分收费相加得到,表示无人机mj的单位采集收费,表示无人机mj的单位移动收费,pc表示无人机mj的单位电能收费,σ表示每cpu转所消耗的电能,pcloud表示云服务器单位电能的收费,其中:

s20采用actor-critic深度强化学习算法求解系统总花费ctotal最小的动作a:

输入状态s至actor网络训练学习后输出系统花费最小的动作a,其中a=[[m1,o1],...,[mn,on]];

设置环境智能体,状态s和动作a通过环境智能的设置得到动作a的反馈r和状态s采取动作a之后的下一个状态s',其中r=-ctotal

输入状态s至critic网络,输出状态s的状态价值v(s),输入下一个状态s',输出下一个状态s'的状态价值v(s'),其中

γ表示衰减因子,a表示状态s所能采取的所有动作集合,π(a|s)表示在状态s下采取动作a的概率值,t为迭代次数,;

因为状态价值v(s)等于反馈加上衰减的下一状态值的期望,则状态价值理解为(rsa+γv(s'))的均值,定义两个状态价值的单步误差为δ=r+γv(s')-v(s),单步误差越大,表明当前状态下的动作a越好,基于单步误差分别对actor网络和critic网络的参数更新迭代,得到系统总花费ctotal最小的动作a,

优选地,所述actor网络为一个三层的神经网络,actor网络用来表示系统策略的神经网络;critic网络也是一个三层的神经网络,critic网络用来评估actor网络输出动作的神经网络,上述神经网络中每一层的神经元等于上一层神经元进行加权求和后再进行激活,所述s20的步骤中基于单步误差分别对actor网络和critic网络的参数更新迭代的步骤具体为:

(1)更新actor网络参数θ:

(2)对critic网络参数ω进行梯度更新:

其中α为actor网络更新步长,β为critic网络更新步长。

优选地,所述s20的求解方法还包括:用于离散动作空间的深度强化学习算法的trpo或ppo算法。

本发明先对问题采用参数化描述,包括任务参数、无人机当前状态参数、每个任务做出动作参数,利用参数建立本问题目标函数的数学模型,采用actor-critic深度强化训练学习求解系统花费最小的最优动作,这样将问题联合考虑无人机租赁系统中的任务匹配和计算迁移这两个动作,全局性解决问题,在权衡动作的耗时和花费得到最优动作的决策。由于问题需要考虑的参数较多,比如任务目的地的地点、采集任务的数据量、计算任务的数据量、无人机当前的状态等,本专利采用actor-critic深度强化学习算法求解问题的最优解。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。

图1为所述深度强化学习算法的流程图;

图2为所述actor网络结构图;

图3为所述critic网络结构图;

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。

另外,若本发明实施例中有涉及“第一”、“第二”等的描述,则该“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明先对问题采用参数化描述,包括任务参数、无人机当前状态参数、每个任务做出动作参数,利用参数建立本问题目标函数的数学模型,采用actor-critic深度强化训练学习求解系统花费最小的最优动作,将问题联合考虑无人机租赁系统中的任务匹配和计算迁移这两个动作,权衡动作的耗时和花费,全局性地得到了最优的决策。由于问题需要考虑的参数较多(任务目的地的地点、采集任务的数据量、计算任务的数据量、无人机当前的状态等),本专利采用深度强化学习算法求解问题的最优解。

一、问题建模

先对问题做一个简单的描述,然后基于该描述对问题进行数学建模。首先把时间离散化为等长的时间间隔,在每一个时间间隔开始时有n个任务到来,系统需要把这n个任务匹配到现有的m个无人机上,然后无人机飞到任务指定的目的地执行采集任务,执行完数据采集任务之后,无人机可以选择在本地执行计算任务,或者把计算任务迁移到云端执行。因此系统的工作是在每个时间间隔开始的时候,做出使系统花费最小的任务匹配和计算迁移动作。为了表示匹配这个动作,可以对系统中的无人机进行编号,匹配到哪个无人机,就显示它的编号。在这个过程中主要产生两种花费——时间花费和资金花费。时间花费主要由以下三部分组成——飞到目的地的时间、执行采集任务的时间、执行计算任务的时间。资金花费主要由以下三部分组成——飞行距离收费、采集任务收费、计算任务收费。

根据以上描述,对整个问题进行数学建模。首先,任务参数包括xt和yt表示任务指定的目的地坐标,j表示计算任务所需的cpu转数,b表示采集任务采集的数据集大小。

无人机当前的状态参数包括xd和yd表示无人机当前所在的坐标,qs和qc分别表示无人机的采集任务队列和计算任务队列。每个时间间隔的长度是一样的,有很多任务无法在一个时间间隔里完成,所以后面来的采集或者计算任务就被放置在相应的队列里等待无人机的执行。

[xd,yd,qs,qc]

针对每个任务,系统做出的动作可以用两个参数来表示。m表示该任务被匹配到的无人机编号,o表示是否要将计算任务迁移到云服务器上,o={0,1},o为0时表示计算任务在无人机上运行,o为1时表示计算任务被迁移到云服务器上。

[m,o]

系统的总花费=时间花费+资金花费,因此可得本问题的目标函数:

ctime表示系统的时间花费,由飞到目的地的时间、执行采集任务的时间和执行计算任务的时间三者相加得到。mj和oj表示任务j匹配的无人机编号和是否将任务j的计算子任务迁移到云服务器上,表示任务j到无人机mj的距离。表示无人机mj的飞行速度,分别表示无人机mj的采集速率和计算速率,fcloud表示云服务器的计算速率。表示执行采集任务的时间。

cpayment表示系统的资金花费,由飞行距离收费、采集任务收费和计算任务收费这三部分收费相加得到。和pc分别表示无人机mj的单位采集收费、单位移动收费和单位电能收费,σ表示每cpu转所消耗的电能,pcloud表示云服务器单位电能的收费。

二、算法流程

以上是系统的总花费,本专利的目的在于找到使系统总花费最小的决策动作。本专利采用actor-critic深度强化学习算法来求解该问题。算法的具体流程如图一所示,图一中的环境定义为一个能观测每一时刻任务到来情况的智能体,已知下一时刻的任务情况、当前的状态和采取的动作计可以得到下一个状态,并根据公式计算出采取这个动作的反馈。输入的状态s为当前时刻所有任务的状态加上所有无人机的状态,其中n表示任务数,k表示无人机数。

系统的动作为

a=[[m1,o1],...,[mn,on]]

系统的反馈r表示在当前状态下选择该动作的即时反馈。在这里,将他设置为负的系统花费,即系统花费与系统的反馈成反比,花费越小,反馈越大。

r=-ctotal

actor网络是一个三层的神经网络,如图二所示,其中n表示状态的维度,h表示隐藏层的维度,k表示动作的维度,θ表示网络的权值参数,神经网络中每一层的神经元等于上一层神经元进行加权求和后再进行激活而得,例如zh的计算公式为其中是sigmoid激活函数。actor网络表示系统的策略,网络的输入为状态s,输出为系统在当前状态下的动作a。

a=[[m1,o1],...,[mn,on]]

critic网络也是一个三层的神经网络,用critic网络的输出的单步误差来评估actor网络的输出动作a。如图三所示,ω表示网络的参数,该网络的输入为状态s,输出为状态价值v(s)。根据贝尔曼方程可知,状态价值是基于t时刻的状态s能获得的未来反馈的期望,即从当前时刻到未来,每一时刻都做一个动作,获得一个反馈,这些反馈的衰减和的期望即为状态价值v(s),具体公式如下。

其中s'表示状态s采取动作a之后的下一个状态,γ表示衰减因子,a表示状态s所能采取的所有动作集合,π(a|s)表示在状态s下采取动作a的概率值,因此状态价值v(s)等于反馈加上衰减的下一状态值的期望,则状态价值可以理解为的均值。假设在状态s下选择动作a后得到反馈r和下一个状态s',可以定义两个状态价值的单步误差为δ=r+γv(s')-v(s),该误差可以理解为在状态s下,选择动作a和均值相差的程度,如果误差为正,则比均值要好,如果误差为负则比均值要差,因此单步误差可以用来表明当前状态下选择动作的好坏。

首先把系统的初始状态s输入到actor网络中,得到动作a,然后环境根据当前的状态s和动作a计算得到反馈r和下一个状态s',把两个状态分别输入到critic网络中,得到两个状态的状态价值v(s)和v(s'),计算单步误差δ=r+γv(s')-v(s),单步误差越大,表明在当前状态下选择的动作越好。基于单步误差分别对两个网络的参数进行更新,进行下一次迭代。在算法的一开始,两个网络的参数都是随机设的,因此actor网络随机输出动作,critic网络也给出随机的评价,随着两个网络的参数更新,actor网络逐渐输出高反馈的动作,critic网络的评价也越来越精确。

算法具体步骤如下:

算法输入:迭代次数t,动作集a,actor网络更新步长α,critic网络更新步长β,单步衰减因子γ,actor网络参数θ,critic网络参数ω

算法输出:训练好的actor和critic网络

fori=1tot,设置迭代次数把当前状态s输入到actor网络中,输出动作a,基于动作和状态得到新的状态s'和反馈r往critic网络中分别输入状态s'和状态s,得到两个状态的状态价值v(s)和v(s')

计算单步误差δ=r+γv(s')-v(s)

对critic网络参数ω进行梯度更新:

更新actor网络参数θ:

本发明中的求解算法亦可使用其他可用于离散动作空间的深度强化学习算法求解,例如trpo、ppo算法。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1