一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

云边环境下基于强化学习的工作流调度方法

2022-08-28 09:06:20 来源:中国专利 TAG:


1.本发明属于云计算技术领域,尤其涉及一种云边环境下基于强化学习的工作流调度方法。


背景技术:

2.近年来,移动通信技术进入了一个呈急速发展趋势的黄金期,物联网时代的脚步也随之大大加快,生活中智能移动设备的种类和数量也有了井喷式的增长,如现下十分流行的智能手表等,给生活中的方方面面都提供了很大的便利。这些移动设备的功能十分强大,但是这往往意味着底层更加繁杂的计算任务。为了方便使用,这些设备的重量和体积通常都不能过大,这就导致了这些设备的处理能力、内存的存储能力和电池容量受到限制,因此将这些繁杂的计算任务完全交由终端移动设备来处理显然是不现实的。尽管不能否认的是,硬件设施在飞速地更新换代,处理器的处理能力也是一代比一代更强,但是硬件的发展速度却远远比不上计算任务量的爆发增长,大多数移动设备依旧不能够在短时间内处理各式各样的计算密集型任务,响应时间若是过长,往往会给用户带来较差的体验感。
3.传统云计算可以解决这一问题,云端拥有多台服务器,能够提供远大于终端设备的处理能力。当终端设备产生数以万计的计算任务时,将任务传至云端,由云端来处理这些任务。通过传统的云计算技术,能够在短时间内处理大量的计算密集型任务,但又出现了新的问题,当终端设备与云端的距离较远时,计算任务的传输以及计算结果的返回会消耗大量的时间,从而影响终端移动设备的响应时间。同时,网络技术的快速发展也使得物联网设备数量呈井喷式的增长,由大量的终端设备所产生的巨量的计算任务将会给云计算中心带来无法承受的压力,由此,移动边缘计算的时代就此到来。移动边缘计算指的是在与移动设备距离较近的网络的边缘部分搭载边缘设备,边缘设备对处理计算任务能起到一定的帮助,从而降低时延,提供一个令人满意的高质量的网络服务。计算卸载指的是将终端生成的任务的一部分,卸载到云端或是边缘进行处理,然后将结果返回至终端。决定哪部分的计算任务需要被卸载,而这些任务又会被卸载到云端还是边缘设备的决策,会对总的时延有着至关重要的影响。


技术实现要素:

4.为了弥补现有技术的空白和不足,对如何求解出最优的卸载决策问题,本发明提出一种云边环境下基于强化学习的工作流调度方法。基于云、边、端三层协同体系结构,考虑云、边、端不同的处理能力和不同层次之间的不同的传输速率,以最小化计算任务响应时延为优化目标,设计q学习算法状态、动作和奖励三要素,让智能体不断地学习,不断地调整,使得智能体逐渐明白在什么样的状态下选择什么样的动作能够得到最好的结果,从而求解出最优的卸载决策。
5.本发明具体采用以下技术方案:
6.一种云边环境下基于强化学习的工作流调度方法,其特征在于:
7.基于由云端、边缘设备和终端移动设备组成的三层体系结构,给定云端、边缘设备和终端移动设备的处理能力以及三者之间的传输速率,给定一个用有向无环图来表示的含有n个任务的工作流,每个节点对应一个任务的指令数量,每条有向边对应处理结果数据大小;
8.优化问题的目标是找到一个工作流的卸载策略position
min
=(p1,p2,p3,
……
,pn),使得此工作流的总执行延迟t
min
最小,公式化为:
9.t
min
=min{ω}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
10.s.t.(1)
‑ꢀꢀ
(6)
11.定义了一个变量x
ik
来表示任务分配情况,若是任务i∈n被分配给节点k∈v,则x
ik
=1,否则x
ik
=0;一个任务只能分配到一个节点上,有以下约束:
[0012][0013]
定义一个变量y
ij
来表示全局调度规则,如果任务i∈n被安排在任务j∈n之前,y
ij
=1,否则,y
ij
=0;
[0014]
任务j在被处理前,需要满足分配的节点上没有其他任务正在执行,即被分配的设备是可用的;定了一个变量来表示设备可用的时间,当被分配到同一节点且全局调度上更优先的所有任务完成后,此节点对于当前任务是可用的,所以有以下约束:
[0015][0016]
其中为任务i的完成时间;
[0017]
定义一个变量来表示任务j的就绪时间,若任务j与前提任务被分配到同一个节点,那么可以忽略前提任务的处理结果数据的传输时延,若任务j与前提任务被分配到不同节点上,那么就必须考虑前提任务的处理结果数据从一个节点到另一个节点的传输时延,有以下约束:
[0018][0019]
任务j的开始处理时间由下面公式决定:
[0020][0021]
任务j的完成时间由下面公式决定:
[0022][0023]
整个工作流的总完成时间ω由下面公式决定:
[0024][0025]
采用q学习算法求解所述优化问题;
[0026]
首先对q表进行初始化,接着在每一个回合中,先将环境初始化为所有任务都未被
处理,将根任务在本地处理,然后对剩下的每个任务选取动作,或是随机,或是q值最大的动作,执行相应的动作并获得环境反馈的奖励,根据奖励更新q表,若是全部任务处理完毕则进入下一个回合,不断地更新q表直至收敛。
[0027]
进一步地,在所述q学习算法中:
[0028]
考虑事先确定好一个任务的优先级,以确定任务的执行顺序,按照顺序一个接一个地确定任务卸载位置,此时,t时刻的状态可由一个大小为n的列表来表示,即state
t
=[s1,s2,s3,
……
,sn],si代表着按优先级排列第i个任务的处理情况,si=-1表示第i个任务未被处理,si=0表示第i个任务在终端设备上处理,si=1表示第i个任务在边缘设备上处理,si=2表示第i个任务在云端上处理,状态空间为所有可能的state
t
所组成的集合states;
[0029]
卸载问题中的动作表示为选择一个要处理的任务并决定其卸载位置;而由于任务的执行顺序已经事先确定好,所以每次要处理的任务都是固定的,按优先级排列第一个未被处理的任务就是接下来将要被处理的任务,即state中第一个值为-1的任务。选择好任务后,决定其卸载位置,也就是将其对应si修改:置为0表示此任务将在终端设备上处理,置为1表示此任务将在边缘设备上处理,置为2表示此任务将在云端上处理;动作空间为actions=[0,1,2];
[0030]
对于状态空间states中的每个状态state
t
,都有动作空间actions可供选择,智能体在每个状态下选择指定的动作后进入下一个状态,环境产生一个奖励reward,用于表示从状态state
t
到下一个状态state
t 1
的动作的好坏,对q表进行更新,进而指导智能体的学习过程:
[0031]
定义一个变量来表示当前状态已完成任务所花费的整体时间,由以下公式得到:
[0032][0033]
将奖励reward定义为上一步状态的整体时间减去这一步状态的整体时间即:
[0034][0035]
其中,s
t
是上一步的状态,s
t 1
是s
t
经过选定的某个动作所产生的新状态。
[0036]
进一步地,在所述q学习算法中:学习率α是指控制每次训练的经验被学习的程度,将其设置为0.7;奖励衰减γ是指放弃眼前的收益,换取长远收益的程度,将其设置为0.95;贪婪系数ε是指对状态空间的探索程度,一开始将贪婪系数ε设置为0,而随着时间不断推进,将贪婪系数ε逐渐增大至1,并保持到算法结束。
[0037]
本发明及其优选方案对如何求解出最优的卸载决策问题,基于云、边、端三层协同体系结构,考虑云、边、端不同的处理能力和不同层次之间的不同的传输速率,以最小化计算任务响应时延为优化目标,设计q学习算法状态、动作和奖励三要素,让智能体不断地学习,不断地调整,使得智能体逐渐明白在什么样的状态下选择什么样的动作能够得到最好的结果,从而求解出最优的卸载决策。
附图说明
[0038]
图1为本发明实施例提供的云、边、端三层体系结构图。
[0039]
图2为本发明实施例提供的一个任务图的实例示意图。
[0040]
图3为本发明实施例q学习算法流程图。
[0041]
图4为本发明实施例四种科学工作流对比示意图。
[0042]
图5为本发明实施例pso算法流程图。
[0043]
图6为本发明实施例montage工作流在四种算法下的总执行延迟示意图。
[0044]
图7为本发明实施例cybershake工作流在四种算法下的总执行延迟示意图。
[0045]
图8为本发明实施例ligo工作流在四种算法下的总执行延迟示意图。
[0046]
图9为本发明实施例epigenomics工作流在四种算法下的总执行延迟示意图。
具体实施方式
[0047]
为让本专利的特征和优点能更明显易懂,下文特举实施例,作详细说明如下:
[0048]
应该指出,以下详细说明都是例示性的,旨在对本技术提供进一步的说明。除非另有指明,本说明书使用的所有技术和科学术语具有与本技术所属技术领域的普通技术人员通常理解的相同含义。
[0049]
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本技术的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
[0050]
针对现有技术存在的问题,本实施例提出了一种云边环境下基于强化学习的工作流调度技术,针对如何求解出最优的卸载决策问题,提出了一种基于q学习算法的工作流调度方法。算法基于云、边、端三层协同体系结构,考虑云、边、端不同的处理能力和不同层次之间的不同的传输速率,以最小化计算任务响应时延为优化目标,设计好q学习算法状态、动作和奖励三要素,让智能体不断地学习,不断地调整,使得智能体逐渐明白在什么样的状态下选择什么样的动作能够得到最好的结果,从而求解出最优的卸载决策。
[0051]
1系统模型
[0052]
本实施例首先考虑一种三层体系结构,如图1所示。此三层体系结构由云端、边缘设备和终端移动设备组成,假设终端移动设备产生了一组计算任务,可以在本地对其进行处理,也可以选择通过通信链路传输至边缘设备进行处理,或是传输至云端进行处理。本实施例不考虑多个终端、多个边缘设备和多个云端存在差异的情况,而是将终端、边缘、云端分别看成一个整体。在这种情况下,该网络结构可以用gn(v,e)来表示,其中v是用来表示所有设备的节点,e则表示节点之间的通信链路。每个节点i∈v对应有一个处理能力ci(i=0表示终端节点,i=1表示边缘设备节点,i=2表示云端节点)。由于硬件设备受到体积和重量等原因会导致处理能力低下,在三者中最低;云端拥有多台服务器,因此处理能力最高,所以通常情况下,有c0《c1《c2。每条边(i,j)∈e对应有一个传输速率r
ij
,由于边缘设备和终端同处于网络边缘,所以边缘设备与终端之间的传输速率较高,而云端距离边缘设备和终端的距离较远,所以云端与边缘、终端之间的传输速率较低,其中云端与终端之间的传输速率要更低。
[0053]
终端设备产生的一个工作流可以用有向无环图ga=(n,a)来表示,如图2所示。其中n代表着程序中的任务集合,设为n={1,2,...,n},表示程序中含有n个任务。每个节点i∈n对应有一个si,表示任务i的指令数量,如图2中若有s1=200,则代表着任务1中含有200条指令需要执行。节点之间的有向边表示着任务之间的依赖关系,对于每一条有向边(i,j)∈a,有任务i是任务j的前提任务,只有在全部的前提任务都已经被处理的情况下,该任务才有资格被处理,如图2中若任务1未被处理,就得不到任务1的处理结果,此时若是想执行任务3显然是不合理的,在本实施例中用p(j)来表示任务j的前提任务集合。每一条有向边(i,j)∈a对应有一个中间数据大小e
ij
,表示着任务j需要的任务i处理结束后所得到的结果数据大小,在任务j获得了所有前提任务p(j)的结果数据后,任务j就获得了被处理的资格,当然,这并不是说此时任务j已经可以开始被处理了,还需要考虑当前边缘设备或云端是否为空闲状态。
[0054]
本实施例的最终目的是找到一个工作流的卸载方案,使得这一工作流的总执行延迟最小。在此之前,本实施例需要解决如何实现任务的分配以及任务的调度问题。先来看任务的分配问题,前文已经提及,本实施例将云端、边缘设备、终端各看成一个整体,而不考虑多个终端、多个边缘设备和多个云端存在差异的情况,所以所谓任务分配问题也就是决定将每个任务分配到本地、边缘、还是是云端进行处理的问题。为此,本实施例定义了一个变量x
ik
来表示任务分配情况,若是任务i∈n被分配给节点k∈v,则x
ik
=1,否则x
ik
=0。显然,一个任务只能分配到一个节点上,所以有以下约束:
[0055][0056]
任务调度问题说的是如何解决被分配到一个节点上的多个任务之间处理的先后顺序的问题。假设图2中任务2和任务3被分配至同一个节点,那么就有先处理任务2再处理任务3和先处理任务3再处理任务2两种方案。若是先处理任务2,任务4的所有前提任务被处理,任务4获得被处理资格,可以与任务3并行运行;若是先处理任务3,则任务6的所有前提任务被处理,任务6获得被处理资格,可以与任务2并行运行。本实施例定义了一个全局调度来表示全部任务被分配到同一个节点上时的处理的先后顺序规定,同一个节点上的任务处理顺序需满足规定,但不同节点上的任务无此规定。假设为图2中的工作流规定一个全局调度{1,2,3,4,5,6,7,8},任务被分成{1,2,4}、{3,5,6}、{7,8}三块分别被分配到不同节点,那么任务2需要在任务1后才能处理,但是任务3可以在任务2之前被处理,只要其前提任务已全被处理完毕。本实施例定义一个变量y
ij
来表示全局调度规则,如果任务i∈n被安排在任务j∈n之前,y
ij
=1,否则,y
ij
=0。
[0057]
任务j在被处理前,需要满足分配的节点上没有其他任务正在执行,即被分配的设备是可用的。为此,本实施例定义了一个变量来表示设备可用的时间,显然,当被分配到同一节点且全局调度上更优先的所有任务完成后,此节点对于当前任务是可用的,所以有以下约束:
[0058][0059]
其中为任务i的完成时间。
[0060]
任务j在被处理前,需要满足任务j的所有前提任务已被处理完毕且处理结果数据
已传至任务j分配的节点,即任务j已就绪。为此,本实施例定义了一个变量来表示任务j的就绪时间,若任务j与前提任务被分配到同一个节点,那么可以忽略前提任务的处理结果数据的传输时延,若任务j与前提任务被分配到不同节点上,那么就必须考虑前提任务的处理结果数据从一个节点到另一个节点的传输时延,所以有以下约束:
[0061][0062]
任务j的开始处理时间由下面公式决定:
[0063][0064]
任务j的完成时间由下面公式决定:
[0065][0066]
整个工作流的总完成时间ω由下面公式决定:
[0067][0068]
2问题定义
[0069]
本实施例将云边环境下的工作流调度问题定义如下:确定一个三层体系结构,此三层体系结构由云端、边缘设备和终端移动设备组成,给定了云端、边缘设备和终端移动设备的处理能力以及三者之间的传输速率。除此之外,还给定了一个用有向无环图来表示的含有n个任务的工作流,每个节点对应一个任务的指令数量,每条有向边对应处理结果数据大小。
[0070]
本实施例的目标是找到一个工作流的卸载策略position
min
=(p1,p2,p3,
……
,pn),使得此工作流的总执行延迟t
min
最小。这个问题可以被公式化为:
[0071]
t
min
=min{ω}
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(7)
[0072]
s.t.(1)-(6)
[0073]
本实施例提出q学习算法来解决该问题,并与pso算法、贪心算法和随机算法进行比较。
[0074]
3算法设计
[0075]
3.1q学习算法
[0076]
q学习算法是一种无监督的强化学习算法在,其基本思想是让智能体在不断试错中累计学习经验,记录在q表中,根据q表做出决策,通过与环境进行交互,不断地学习,不断地更新q表,不断地调整决策,使得智能体逐渐明白在什么样的状态下选择什么样的动作能够得到最好的结果,从而求解出最优的卸载决策。本实施例提出利用q学习算法来求解以低时延为目标的卸载方案。首先本实施例先来设计q学习算法中的三要素:状态、动作和奖励。
[0077]
3.1.1状态设计
[0078]
某时刻的状态可以表示某时刻的所有任务的处理情况,处理情况可以分为未处理、在终端设备上处理、在边缘设备上处理和在云端上处理四种。将任务执行顺序和任务的执行位置都考虑进动作,会出现动作空间维度爆炸的问题,因此,为了简化问题,本实施例
考虑事先确定好一个任务的优先级,以确定任务的执行顺序,按照顺序一个接一个地确定任务卸载位置,此时,t时刻的状态可由一个大小为n的列表来表示,即state
t
=[s1,s2,s3,
……
,sn],si代表着按优先级排列第i个任务的处理情况(si=-1表示第i个任务未被处理,si=0表示第i个任务在终端设备上处理,si=1表示第i个任务在边缘设备上处理,si=2表示第i个任务在云端上处理),状态空间为所有可能的state
t
所组成的集合states。
[0079]
3.1.2动作设计
[0080]
卸载问题中的动作可以表示为选择一个要处理的任务并决定其卸载位置。而由于任务的执行顺序已经事先确定好,所以每次要处理的任务都是固定的,按优先级排列第一个未被处理的任务就是接下来将要被处理的任务,即state中第一个值为-1的任务。选择好任务后,决定其卸载位置,也就是将其对应si修改(置为0表示此任务将在终端设备上处理,置为1表示此任务将在边缘设备上处理,置为2表示此任务将在云端上处理),动作空间为actions=[0,1,2]。
[0081]
3.1.3奖励设计
[0082]
对于状态空间states中的每个状态state
t
,都有动作空间actions可供选择,智能体在每个状态下选择指定的动作后进入下一个状态,通常,环境会产生一个奖励reward,用于表示从状态state
t
到下一个状态state
t 1
的动作的好坏,对q表进行更新,进而指导智能体的学习过程。
[0083]
本实施例定义了一个变量来表示当前状态已完成任务所花费的整体时间。可以由以下公式得到:
[0084][0085]
本实施例将奖励reward定义为上一步状态的整体时间减去这一步状态的整体时间即:
[0086][0087]
其中,s
t
是上一步的状态,s
t 1
是s
t
经过选定的某个动作所产生的新状态。假设图2中,任务1处理完时间是0.1s,任务2和任务3先后在不同节点上处理,若任务2处理完需0.2s,任务3处理完需0.3s,那么处理任务3的reward=-0.1,若任务2处理完需0.3s,任务3处理完需0.2s,那么处理任务3的reward=0。
[0088]
3.1.4算法流程
[0089]
基于q学习算法的卸载决策过程描述如表1所示:
[0090]
表1基于q学习算法的卸载决策过程
[0091][0092][0093]
算法1的输入包括节点个数n、节点之间的通信链路e、任务的数量n、任务之间的依赖关系a、任务的指令数量si、任务之间的中间数据大小、各节点的处理能力、节点之间的传输速率、学习率α、奖励衰减γ和贪婪系数ε。其中学习率α是指控制每次训练的经验被学习的程度,奖励衰减γ是指放弃眼前的收益,换取长远收益的程度,贪婪系数ε是指对状态空间的探索程度。算法1的输出是最小的时延和产生最小时延的卸载策略。
[0094]
即首先对q表进行初始化,接着在每一个回合中,先将环境初始化为所有任务都未被处理,将根任务在本地处理,然后对剩下的每个任务选取动作,或是随机,或是q值最大的动作,执行相应的动作并获得环境反馈的奖励,根据奖励更新q表,若是全部任务处理完毕则进入下一个回合,不断地更新q表直至收敛。
[0095]
值得注意的是,本实施例一开始将贪婪系数ε设置得较小,这样可以有更大的机率
依靠随机来决定动作,而随着时间不断推进,贪婪系数ε应该逐渐变大至1,这样可以有更大的机率依靠q值大小来决定动作,在后期有利于算法的收敛。算法流程图如图3所示。
[0096]
4算法评估
[0097]
4.1实验设置
[0098]
首先,本实施例需要对三层体系结构中的节点的处理能力和节点之间的传输速率进行设置。本实施例将云端、边缘设备、终端各看成一个整体,而不考虑多个终端、多个边缘设备和多个云端存在差异的情况,再考虑到终端、边缘设备、云端处理能力的不同,本实施例将终端的处理能力设为2ghz,将边缘设备的处理能力设为4ghz,将云端的处理能力设为6ghz。考虑到终端、边缘设备和云端之间的距离不同,本实施例将终端和边缘设备之间的传输速率设为6mb/s,将边缘设备和云端之间的传输速率设为3mb/s,将终端和云端之间的传输速率设为2mb/s。
[0099]
其次,本实施例需要对任务之间的依赖关系、每个计算任务数据的大小和任务之间的中间结果数据大小进行设置。对于任务之间的依赖关系,本实施例将参考四种用于不同领域下的工作流模型,montage(如图4中a所示)、cybershake(如图4中b所示)、ligo(如图4中c所示)和epigenomics(如图4中d所示)。对于每个计算任务数据的大小,即工作流中的每个节点的值,将其设置为服从[50,500]mcycles内的随机分布。而对于任务之间的中间结果数据大小,即工作流中的每条边的值,将其设置为服从[0,1000]kb内的随机分布。
[0100]
最后,本实施例需要对q学习算法中的学习率α、奖励衰减γ和贪婪系数ε进行设置。其中学习率α是指控制每次训练的经验被学习的程度,本实施例将其设置为0.7。奖励衰减γ是指放弃眼前的收益,换取长远收益的程度,本实施例将其设置为0.95。贪婪系数ε是指对状态空间的探索程度,本实施例一开始将贪婪系数ε设置为0,这样可以有更大的机率依靠随机来决定动作,而随着时间不断推进,贪婪系数ε将逐渐变大至1,并保持到算法结束,这样可以有更大的机率依靠q值大小来决定动作,在后期有利于算法的收敛。
[0101]
4.2对比方法
[0102]
4.2.1 pso算法
[0103]
粒子群优化算法(pso)的基本思想是,粒子群中每个粒子分别有一个自己的到目前为止的最优解,然后整个群体又有一个所有的到目前为止的最优解,所有粒子会逐渐朝着局部最优和全局最优移动,最终得到问题的满意解,甚至能够得到最优解。
[0104]
pso算法中每个粒子有两个向量,位置向量和速度向量其中i是粒子编号,d代表工作流中的任务数量。在本实施例描述的问题中,一个粒子的位置代表着一个工作流的卸载策略,即一个解,据此适应度函数可以计算出工作流的总执行延迟,是一个解好坏的重要指标。在pso算法的求解过程中,首先随机初始化所有粒子的位置和速度,并初始化每个粒子的局部最优位置pbest和全局最优位置gbest。接着通过下面公式来更新粒子的速度:
[0105][0106]
其中i是粒子编号,d是向量的维度,惯性系数ω表示的是粒子的移动关于原先运动方向上的侧重,c1表示的是粒子的移动关于向着局部最优方向上的侧重,c2表示的是粒子的移动关于向着全局最优方向上的侧重,r1和r2是[0,1]内的随机数。通过下面公式来更
新粒子的位置:
[0107][0108]
然后计算新的位置的适应度函数值,与局部最优、全局最优比较,若新位置更优,则用其代替。本实施例设置200个粒子进行1000次的迭代求解问题,ω为0.7,c1为1.5,c2为1.5。pso算法的流程图如图5所示。
[0109]
4.2.2贪心算法
[0110]
在本实施例的问题中,贪心算法对于按照优先级排列的每个任务,在决定它的卸载位置前,需要分别计算出它在终端、边缘设备、云端处理的时间并比较,在哪里处理的时间最短,就将它卸载到哪里,也就是说每一步的决策都是局部的最优,但每一步决策都是最优,到最后评价整个决策过程时就不一定是最优解了,更有可能的情况是比全局最优解要差一些。
[0111]
4.2.3随机算法
[0112]
随机算法是在问题求解中对每一个步骤做出随机选择。在本实施例的问题中,对于按照优先级排列的每个任务,通过随机函数产生它的卸载位置,随机算法产生的结果具有随机性,每次执行的结果都不一样,有可能是最优解,也有可能结果很差,对此,本实施例将随机算法执行100次,将100次结果取平均数作为最终的实验结果。
[0113]
4.3实验结果与分析
[0114]
本实施例在montage、cybershake、ligo和epigenomics四种工作流场景下,对于每一个场景,分别使用q学习算法、pso算法、贪心算法和随机算法进行问题的求解,对求得的工作流的总执行延迟进行比较分析。图6是用于天文学领域的montage工作流在四种算法下的工作流总执行延迟,q学习算法的效果是最好的,其优于pso算法12.5%,优于贪心算法17.4%,优于随机算法62.4%。
[0115]
图7是用于地震学领域的cybershake工作流在四种算法下的工作流总执行延迟,q学习算法的效果是最好的,其优于pso算法5.9%,优于贪心算法21.9%,优于随机算法50.3%。图8是用于重力物理学领域的ligo工作流在四种算法下的工作流总执行延迟,q学习算法的效果是最好的,其优于pso算法15.2%,优于贪心算法30.0%,优于随机算法61.3%。
[0116]
图9是用于生物信息学领域的epigenomics工作流在四种算法下的工作流总执行延迟,q学习算法的效果是最好的,其优于pso算法8.2%,优于贪心算法16.3%,优于随机算法49.3%。
[0117]
总结上述中的四个场景得出的实验结果,可以得出,在四种算法求解以低时延为目标的卸载问题中,q学习算法的效果最优,其大致上优于pso算法10.5%,优于贪心算法21.4%,优于随机算法55.8%。
[0118]
通过q学习算法得到的解通常十分接近最优解,在算法参数设置恰当时甚至能够得到最优解。pso虽然难以得到精确的最优解,但是当粒子数足够多且参数设置合理时是可以得到较好的满意解的。贪心算法,每一步决策都是最优,到最后评价整个决策过程时就不一定是最优解了,但大多数情况下会是一个较好的满意解。而随机算法由于在求解过程中具有随机性,求解出的结果也是时好时坏,平均下来的结果也是中等水平,但和前三种算法
比就有了较大的差距。
[0119]
本实施例提供的云边环境下基于强化学习的工作流调度技术,针对如何求解出最优的卸载决策问题,以最小化计算任务响应时延为优化目标,设计好q学习算法状态、动作和奖励三要素,最终求解出最优的卸载决策。通过该q学习算法得到的卸载方案,可以保证十分接近最优解。以上所述,仅是本发明的较佳实施例而已,并非是对本发明作其它形式的限制,任何熟悉本专业的技术人员可能利用上述揭示的技术内容加以变更或改型为等同变化的等效实施例。但是凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与改型,仍属于本发明技术方案的保护范围。
[0120]
本专利不局限于上述最佳实施方式,任何人在本专利的启示下都可以得出其它各种形式的云边环境下基于强化学习的工作流调度方法,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本专利的涵盖范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献