本发明涉及边缘计算技术领域,特别涉及一种适用于工业物联网的边缘计算资源分配方法。
背景技术:
边缘计算是指在靠近物或数据源头的一侧,采用网络、计算、存储、应用核心能力为一体的开放平台,就近提供灵活可靠的计算服务。边缘计算的资源分配是指将边缘侧,自持有的分布式资源进行充分利用,缓解中心式服务器数据处理的压力,加快数据的处理能力和服务响应能力。
工业物联网迅速发展,终端设备的感知能力也随之不断增强,其感知数据的规模和复杂度也呈现出了爆炸式增长的趋势。这导致了传统的基于“中心交付方式”的云计算服务模式难以适应该趋势。终端设备数据的爆炸式增长也加剧了网络负载,严重影响服务质量,导致低响应时延、网络拥塞等问题。同时,在工业4.0浪潮的推动下,制造业终端设备间的通信提出了更高的需求。通过整合工业网络边缘上的计算、存储、网络等形成统一的平台为工业用户提供服务,这使得边缘设备能够通过基础网络实现设备互联,从而进行数据的相互收集与交换,同时更加便捷地调用边缘侧的计算资源以此提升数据的处理能力。在现有的边缘计算研究领域当中,大多考虑任务处理的实时性问题,而忽略了全局资源的均衡分配。
技术实现要素:
为了解决因边缘服务器之间的差异所带来的资源不平衡,有效减少设备任务的传输和处理时间,本发明提出一种适用于工业物联网的边缘计算资源分配方法,如图1,具体包括以下步骤:
构建工业边缘计算模型的状态空间、动作空间和奖励函数;
利用初选规则挑选出优质的转发路径集合和计算节点集合作为动作空间的执行方案;
利用ε-greedy从动作空间中选择执行的动作,并根据奖励函数计算执行该动作的奖励;
当前网络和目标网络根据选择的动作以及该动作的奖励进行迭代更新,若当前网络的q值与目标网络的q值接近时,完成训练输出当前资源分配方案。
进一步的,利用初选规则挑选出优质的转发路径集合时,对所有可进行任务传输的路径的性能参数进行计算,根据评选规则对所有传输路径进行评估,评估值越大其性能越好,选出评估值最大的k条路径构成最优路径组合,该评估值表示为:
其中,
进一步的,利用初选规则挑选出优质的计算节点集合时,对所有可进行任务计算的边缘计算节点处理任务的时延参数进行计算,根据评选规则对所有可支持计算的节点进行评估,选取计算节点处理任务的综合时延tdevtask最小的j个节点作为最优节点组合,所述计算节点处理任务的综合时延表示为:
tdevtask(devi,nodej)=tcompute(devi,nodej) tque(devi,nodej);
其中,tdevtask(devi,nodej)为计算任务devi在计算节点nodej上的综合时延;tcompute(devi,nodej)为计算任务devi在计算节点nodej上的计算时间;tque(devi,nodej)为计算任务devi在计算节点nodej的排队时延。
进一步的,动作空间是指在状态s下智能体能选取的所有动作集合,动作集合可以表示为:a={epn1,1,epn1,2,...,epn1,m,epn2,1,epn2,2,..,epnn,m},epnn,m表示任务通过路径pathn卸载到计算节点nodem。
进一步的,利用ε-greedy从动作空间中选择执行的动作时,可能执行的k*j种动作方案,以非零几率进行初始化,以1-ε的几率选择最好的状况,以ε的几率随机选择行动,其具体决策结果为:
其中,π(a|s)是动作策略选择函数;k为挑选出的路径数量;j为挑选出的节点数量;ε为执行动作价值最高动作的概率;a*为argmaxaq(s,afine)智能体所认为的最优动作,q(s,afine)为所挑选出动作的价值函数。
进一步的,根据奖励函数计算执行动作的奖励表示为:
其中,
进一步的,当前网络和目标网络根据选择的动作以及该动作的奖励进行迭代更新包括:动作集合输入当前网络和目标网络进行训练时,当前网络每更新d次,目标网络则复制当前网络中的网络参数更新一次,目标网络的q值根据当前网络中q值进行训练更新得到,当前网络的q值接近目标网络的q值时,即两个网路的差值小于一个设置的阈值,完成训练。
进一步的,网络当前的q值表示为:
q(s,a)new=q(s,a)old α[re(s,a) γmaxq'(s',a')-q(s,a)old];
其中,q(s,a)new为给定状态s下行动a的q值,q(s,a)old为当前状态下的得q值,α为学习率;re(s,a)为在状态s下执行动作a所获得的奖励;γ为折扣因子;q'(s',a')在新状态s'下所能获取的最大q值。
本发明能够满足因边缘服务器之间的差异,所带来的资源不平衡,通过该方法能够动态地均衡负载资源并有效的减少设备任务的传输和处理时间。
附图说明
图1是本发明实施例提供的一种适用于工业物联网的边缘计算资源分配方法的流程图;
图2是本发明实施例提供的一种适用于工业物联网的边缘计算资源分配方法的基于深度强化学习模型结构图;
图3是本发明实施例提供的一种适用于工业物联网的边缘计算资源分配方法的边缘计算网络结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种适用于工业物联网的边缘计算资源分配方法,如图1,包括以下步骤:
构建工业边缘计算模型的状态空间、动作空间和奖励函数;
利用初选规则挑选出优质的转发路径集合和计算节点集合作为动作空间的执行方案;
利用ε-greedy从动作空间中选择执行的动作,并根据奖励函数计算执行该动作的奖励;
当前网络和目标网络根据选择的动作以及该动作的奖励进行迭代更新,当当前网络的q值与目标网络的q值接近时,完成训练输出当前资源分配方案。
在本实施例中,根据工业边缘侧,资源分布情况,将现场资源分为3层,其网络结构图如图2所示,包括现场设备层、网络传输层和边缘计算节点层。现场设备层,实现工厂设备状态监督、产品产量计量以及生产数据采集等,并随机产生计算任务请求。网络传输层由支持sdn的openflow交换机、路由转发节点和控制器组成,集成边缘侧的网络传输资源,并提供数据传输服务。边缘计算节点层由具备计算能力的边缘计算节点和边缘计算服务器组成,集成边缘侧的计算资源,并提供数据处理服务。
在本实施例中,工业边缘计算模型的状态空间、动作空间和奖励函数的构建分别包括:
(1)定义状态空间:在时刻t智能体感知的环境参数为e(t)=[path(t),node(t)],定义e(t)为环境在t时刻的观测,path(t)为在t时刻所有传输链路的观测,node(t)为在t时刻所有计算节点的观测,元素的具体定义如下:
初始时刻的状态空间定义s={epn1,1,epn1,2,...,epn1,m,epn2,1,epn2,2,..,epnn,m},其中epnn,m表示在传输路径pathn下,将计算任务卸载到计算节点nodem的网络和计算资源状态。
(2)定义动作空间:动作空间是指在状态s下智能体能选取的所有动作集合,本模型定义的动作集a={epn1,1,epn1,2,...,epn1,m,epn2,1,epn2,2,..,epnn,m},其中epnn,m表示计算任务通过路径pathn卸载到计算节点nodem。
(3)定义奖励函数:奖励函数用于评价当前状态下,智能体动作的优劣,本方法将执行动作后设备资源利用率是否均衡作为评价指标,本模型定义的奖励函数如下:
其中,
利用初选规则挑选出优质的转发路径集合和计算节点集合,作为动作空间的执行方案,具体包括以下:
(1)设计基于链路性能感知的综合评价传输路径模型:首先对所有可进行任务传输的路径其性能参数进行计算,再根据评选规则对所有传输路径进行评估,挑选出性能较好的传输路径,具体包括以下步骤:
获取所有能进行任务传输的路径,将其表示为path=[path1,path2,,...,pathn];
每条传输路径又可由多条传输链路组成,定义每条传输路径组成pathn=[link1,link2,...,linkn];
将链路的时延和丢包率作为影响传输路径的主要参数,定义为:linkn={ld,lr};
每条传输路径的时延由组成该路径的所有链路时延linkn.ld决定,将计算路径的时延定义为:
每条传输路径的丢包率由组成该路径的所有链路丢包率linkn.lr决定,将路径丢包率定义为:
将每条传输路径的时延评价定义为:
其中,path.ldmax与path.ldmin分别为所有传输路径中的最大时延和最小时延。
将每条传输路径的丢包率评价,定义为
其中,path.lrmax与path.lrmin分别为所有传输路径中的最大丢包率和最小丢包率。
对每条传输路径进行综合评价,定义为:
传输路径的综合评价值
(2)设计基于任务卸载时延的综合评价计算节点模型,计算所有可进行任务计算的边缘计算节点处理任务的时延参数,再根据评选规则对所有可支持计算的节点进行评估,倘若计算节点处理任务的综合时延tdevtask远小于计算任务最大容忍时延tdev_delay,则挑选符合条件的计算节点,具体包括:
将计算节点处理任务的综合时延tdevtask,作为计算任务在计算节点上的计算时间tcompute,与计算任务在计算节点中的排队时间tque之和,定义为:
tdevtask(devi,nodej)=tcompute(devi,nodej) tque(devi,nodej);
其中devi为现场设备层发出的任务请求,nodej为可执行计算任务的边缘计算节点。
定义计算任务在计算节点上的计算时间tcompute为:
其中,fj为边缘计算节点nodej的cpu处理速度,λe定义为完成计算任务e所需要的边缘计算节点cpu的周期数。
定义计算任务在计算节点中的排队时间tque为:
其中,边缘计算节点nodej中,等待处理的任务为集合{q1,q2,..,qn},qk为任务集合中的第k个任务,k=1,2,…,n。
根据评判准则,边缘计算节点处理任务的综合时延tdevtask越小,则该节点的性能越优越,挑选出前j个最优节点组合nodefine=[link1,link2,…,linkj],j据实际情况进行调整,若前期训练需要大量样本可增大j值。
通过该评价体系可挑选出k条转发路径集和j个边缘计算节点集,对于动作a可以有k*j种动作方案,在执行任务时组成优选动作集afine(s)={epn1,1,epn1,2,...,epn1,k,epn2,1,epn2,2,...,epnk,j}。
(3)动作a最终执行的动作,采用广泛使用的ε-greedy策略,一开始将可能执行的k*j种动作方案,以非零几率进行初始化,以1-ε的几率选择最好的状况,以ε的几率随机选择行动,其具体决策结果为:
其中,a*指的是argmaxaq(s,afine)智能体所认为的最优动作。
在模型中执行选择的动作,更新执行当前动作后的状态并返回奖励值,具体包括以下步骤:
利用ε-greedy从动作空间中选择执行的动作,智能体完成动作,更新当前状态
其中,
使用dqn模型进行模型训练,其具体模型结构如图3所示,任务执行时将当前网络和计算资源的状态情况作为输入,经过神经网络分析执行相应动作后,输出为执行不同动作后的状态价值函值,模型进行训练的过程具体包括以下步骤:
创建一个大小为n的记忆库m,当前状态为s,智能体根据动作执行策略完成动作a后,根据奖励值函数反馈奖励值r,此时下一个环境状态更新为s',将产生的四元组<s,a,r,s'>存储到记忆库m中,若超出记忆库m的容量则覆盖掉最老的经验样本;之后随机抽取一部分样本更新网络参数;
为了避免对动作的过估计,引入当前q网络qpresent和目标q网络qtarget对模型进行训练,当前q网络qpresent每更新d次,目标q网络qtarget则复制qpresent的网络参数更新一次,qtarget的目标q值由qpresent中最大q值所对应的动作决定,qtarget的目标q值更新公式如下:
yt=rt γ*qtarget(st 1,argmaxaqpresent(st 1,a;wpresent);wtarget);
其中,γ表示折扣因子,argmaxaqpresent表示qpresent中最大q值所对应的动作,wpresent表示qpresent的网络参数,wtarget表示qtarget的网络参数。
经过大量训练后,当前q值接近于目标q值时,训练结束,将损失函数loss(wpresent)可定义为:loss(wpresent)=e[(yt-q(st,a;wpresent))]2。
在更新q值时,网络当前的q值表示为:
q(s,a)new=q(s,a)old α[re(s,a) γmaxq'(s',a')-q(s,a)old];
其中,q(s,a)new为给定状态s下行动a的q值,q(s,a)old为当前状态下的得q值,α为学习率;re(s,a)为在状态s下执行动作a所获得的奖励;γ为折扣因子;q'(s',a')在新状态s'下所能获取的最大q值。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
1.一种适用于工业物联网的边缘计算资源分配方法,其特征在于,具体包括以下步骤:
构建工业边缘计算模型的状态空间、动作空间和奖励函数;
利用初选规则挑选出优质的转发路径集合和计算节点集合作为动作空间的执行方案;
利用ε-greedy从动作空间中选择执行的动作,并根据奖励函数计算执行该动作的奖励;
当前网络和目标网络根据选择的动作以及该动作的奖励进行迭代更新,若当前网络的q值与目标网络的q值接近时,完成训练输出当前资源分配方案。
2.根据权利要求1所述的一种适用于工业物联网的边缘计算资源分配方法,其特征在于,利用初选规则挑选出优质的转发路径集合时,对所有可进行任务传输的路径的性能参数进行计算,根据评选规则对所有传输路径进行评估,评估值越大其性能越好,选出评估值最大的k条路径构成最优路径组合,该评估值表示为:
其中,
3.根据权利要求1所述的一种适用于工业物联网的边缘计算资源分配方法,其特征在于,利用初选规则挑选出优质的计算节点集合时,对所有可进行任务计算的边缘计算节点处理任务的时延参数进行计算,根据评选规则对所有可支持计算的节点进行评估,选取计算节点处理任务的综合时延tdevtask最小的j个节点作为最优节点组合,所述计算节点处理任务的综合时延表示为:
tdevtask(devi,nodej)=tcompute(devi,nodej) tque(devi,nodej);
其中,tdevtas(kdev,inode)j为计算任务devi在计算节点nodej上的综合时延;tcompute(devi,nodej)为计算任务devi在计算节点nodej上的计算时间;tque(devi,nodej)为计算任务devi在计算节点nodej上的排队时延。
4.根据权利要求1所述的一种适用于工业物联网的边缘计算资源分配方法,其特征在于,动作空间是指在状态s下智能体能选取的所有动作集合,动作集合可以表示为:a={epn1,1,epn1,2,...,epn1,m,epn2,1,epn2,2,..,epnn,m},epnn,m表示任务通过路径pathn卸载到计算节点nodem。
5.根据权利要求1所述的一种适用于工业物联网的边缘计算资源分配方法,其特征在于,利用ε-greedy从动作空间中选择执行的动作时,可能执行的k*j种动作方案,以非零几率进行初始化,以1-ε的几率选择最好的状况,以ε的几率随机选择行动,其具体决策结果为:
其中,π(a|s)是动作策略选择函数;k为挑选出的路径数量;j为挑选出的节点数量;ε为执行动作价值最高动作的概率;a*为argmaxaq(s,afine)智能体所认为的最优动作,q(s,afine)为所挑选出动作的价值函数。
6.根据权利要求1所述的一种适用于工业物联网的边缘计算资源分配方法,其特征在于,根据奖励函数计算执行动作的奖励表示为:
其中,
7.根据权利要求1所述的一种适用于工业物联网的边缘计算资源分配方法,其特征在于,当前网络和目标网络根据选择的动作以及该动作的奖励进行迭代更新包括:动作集合输入当前网络和目标网络进行训练时,当前网络每更新d次,目标网络则复制当前网络中的网络参数更新一次,目标网络的q值根据当前网络中q值进行训练更新得到,当前网络的q值接近目标网络的q值时,即两个网路的差值小于一个设置的阈值,完成训练。
8.根据权利要求7所述的一种适用于工业物联网的边缘计算资源分配方法,其特征在于,网络当前的q值表示为:
q(s,a)new=q(s,a)old α[re(s,a) γmaxq'(s',a')-q(s,a)old];
其中,q(s,a)new为给定状态s下行动a的q值,q(s,a)old为当前状态下的得q值,α为学习率;re(s,a)为在状态s下执行动作a所获得的奖励;γ为折扣因子;q'(s',a')在新状态s'下所能获取的最大q值。
技术总结