一种边缘-云混合计算环境下的DNN任务卸载方法及终端
技术领域
本发明涉及任务卸载领域,特别是涉及一种边缘-云混合计算环境下的DNN任务卸载方法。
背景技术
近年来,智能应用的数量迅速增加,其中DNN(Deep Neural Networks,深度神经网络)在计算机视觉、语音识别、自然语言处理等诸多领域取得了巨大的成功,但是由于DNN的模型庞大,而移动设备端的资源有限,大型的DNN应用往往部署在远程云服务器上,由于云服务器与移动设备端的距离较远,将大量的DNN应用调度到远程云服务器会造成响应时间长、网络拥堵严重等问题,同时在长距离的传输中也不易保证用户数据的安全性,不可避免的会带来用户隐私泄漏。
边缘计算出现后,将DNN迁移到移动设备端附近的边缘节点可以大大降低延时,并且边缘节点与移动设备端相比具有更强的计算能力和计算资源的优势,能够提高DNN应用的执行性能,同时降低云服务器的开销,也能更好地保护用户隐私,但是在实际操作过程中,由于DNN具有复杂的层次结构,层与层之间传输的数据量及不同层的计算任务复杂性相差巨大,并且边缘网络有复杂的拓扑结构,对DNN任务的部署带来巨大难度,容易导致边缘计算的系统成本变高。
发明内容
本发明所要解决的技术问题是:提供一种边缘-云混合计算环境下的DNN任务卸载方法及终端,能够降低卸载DNN任务的成本。
为了解决上述技术问题,本发明采用的一种技术方案为:
一种边缘云混合计算环境下的DNN任务卸载方法,包括步骤:
S1、根据边缘-云混合计算环境中的计算节点的类型、个数、待卸载的DNN任务的个数以及每个待卸载的DNN任务的层数基于总成本最小化原则建立目标函数,并确定对应的约束条件;
S2、根据所述目标函数和约束条件确定对应的解集,所述解集中的每一个解表示所述待卸载的DNN任务在所述计算节点的一种分布;
S3、根据所述解集构造初始化种群,所述解集中的每一个解对应所述初始化种群的一个粒子;
S4、根据公式
对初始化种群中的粒子进行迭代,确定满足所述目标函数和约束条件的最优的DNN任务卸载策略;
式中,Xt i表示第i个粒子第t次迭代后在进行DNN任务卸载时在所述计算节点上的分布,c1、c2表示学习因子,pBesti t-1表示第i个粒子在t-1次迭代后的最优解,gBestt-1表示在t-1次迭代后所述种群的最优解,Gx()表示组交叉操作,Px()表示个体交叉操作,M()表示变异操作,⊕表示引入学习因子c1、c2。
为了解决上述技术问题,本发明采取的另一种技术方案为:
一种边缘-云混合计算环境下的DNN任务卸载终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
S1、根据边缘-云混合计算环境中的计算节点的类型、个数、待卸载的DNN任务的个数以及每个待卸载的DNN任务的层数基于总成本最小化原则建立目标函数,并确定对应的约束条件;
S2、根据所述目标函数和约束条件确定对应的解集,所述解集中的每一个解表示所述待卸载的DNN任务在所述计算节点的一种分布;
S3、根据所述解集构造初始化种群,所述解集中的每一个解对应所述初始化种群的一个粒子;
S4、根据公式
对初始化种群中的粒子进行迭代,确定满足所述目标函数和约束条件的最优的DNN任务卸载策略;
式中,Xt i表示第i个粒子第t次迭代后在进行DNN任务卸载时在所述计算节点上的分布,c1、c2表示学习因子,pBesti t-1表示第i个粒子在t-1次迭代后的最优解,gBestt-1表示在t-1次迭代后所述种群的最优解,Gx()表示组交叉操作,Px()表示个体交叉操作,M()表示变异操作,⊕表示引入学习因子c1、c2。
本发明的有益效果在于:根据边缘-云计算节点的类型、个数、待卸载的DNN任务的个数、层数建立问题模型,将需卸载的任务和DNN中计算节点建立映射关系,设定约束条件对解集进行限定,保证初始粒子群的范围足够广泛,有利于后续进行迭代,采用粒子群算法和遗传算法相结合的方式,将遗传算法中的交叉和变异引入粒子群算法中对DNN的任务卸载策略进行优化,可以更加精确预估任务卸载的成本,避免过快收敛而陷入局部最优,设定约束条件对求得的解集进行再次筛选,保证得出的解的可行性,考虑不同计算节点的不同特性及计算代价、数据传输时的延时等等影响,生成DNN的调度策略,可以有效减少DNN任务卸载的成本。
附图说明
图1为本发明实施例的一种边缘-云混合计算环境下的DNN任务卸载方法的步骤流程图;
图2为本发明实施例的一种边缘-云混合计算环境下的DNN任务卸载终端的结构示意图;
图3为本发明实施例的一种粒子变异操作的示意图;
图4为本发明实施例的一种粒子交叉操作的示意图
标号说明:
1、一种边缘-云混合计算环境下的DNN任务卸载终端;2、处理器;3、存储器;
具体实施方式
为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。
请参照图1,一种边缘-云混合计算环境下的DNN任务卸载方法,包括步骤:
S1、根据边缘-云混合计算环境中的计算节点的类型、个数、待卸载的DNN任务的个数以及每个待卸载的DNN任务的层数基于总成本最小化原则建立目标函数,并确定对应的约束条件;
S2、根据所述目标函数和约束条件确定对应的解集,所述解集中的每一个解表示所述待卸载的DNN任务在所述计算节点的一种分布;
S3、根据所述解集构造初始化种群,所述解集中的每一个解对应所述初始化种群的一个粒子;
S4、根据公式
对初始化种群中的粒子进行迭代,确定满足所述目标函数和约束条件的最优的DNN任务卸载策略;
式中,Xt i表示第i个粒子第t次迭代后在进行DNN任务卸载时在所述计算节点上的分布,c1、c2表示学习因子,pBesti t-1表示第i个粒子在t-1次迭代后的最优解,gBestt-1表示在t-1次迭代后所述种群的最优解,Gx()表示组交叉操作,Px()表示个体交叉操作,M()表示变异操作,⊕表示引入学习因子c1、c2。
从上述描述可知,本发明的有益效果在于:根据边缘-云计算节点的类型、个数、待卸载的DNN任务的个数、层数建立问题模型,将需卸载的任务和DNN中计算节点建立映射关系,设定约束条件对解集进行限定,保证初始粒子群的范围足够广泛,有利于后续进行迭代,采用粒子群算法和遗传算法相结合的方式,将遗传算法中的交叉和变异引入粒子群算法中对DNN的任务卸载策略进行优化,可以更加精确预估任务卸载的成本,避免过快收敛而陷入局部最优,设定约束条件对求得的解集进行再次筛选,保证得出的解的可行性,考虑不同计算节点的不同特性及计算代价、数据传输时的延时等等影响,生成DNN的调度策略,可以有效减少DNN任务卸载的成本。
进一步的,所述S1中将所述边缘-云混合计算环境中的计算节点分类为移动设备节点、边缘节点和云节点;
所建立的目标函数为:
式中,Minimize表示取总成本的最小值,tij表示第i个待卸载的DNN任务的第j层,sk表示第k个计算节点,xijk表示第i个待卸载的DNN任务的第j层是否在第k个计算节点上执行,若所述第i个待卸载的DNN任务的第j层在第k个计算节点上执行,则xijk的取值为1,否则所述xijk的取值为0,costk表示在第k个计算节点上执行待卸载DNN任务的单位时间花费,Timeexecute(tij,sk)表示第i个待卸载的DNN任务的第j层在第k个计算节点上执行花费的时间,m表示计算节点的总数量,l表示每个待卸载的DNN任务的总层数,n表示待卸载的DNN任务的总数量;
所述确定的对应的约束条件为:
每个待卸载的DNN任务在一个计算节点上执行,并且一个DNN任务同一时间只能在一个计算节点上执行;
如果要在边缘节点上执行待卸载的DNN任务,则所述待卸载的DNN任务必须在所述边缘节点的覆盖范围内;
在规定时间内完成DNN任务的卸载。
由上述描述可知,将计算节点进一步细分为移动设备节点、边缘节点和云节点,根据不同计算节点的特点考虑DNN任务的卸载方法,更有利于寻找到最优解,将总成本最小作为目标函数,保证在进行DNN任务卸载时的花费最低,将计算节点的特性考虑进约束条件,更加全面,保证得出的DNN任务卸载方案的可行性。
进一步的,所述S4中,pBseti t的计算具体为:
计算第i个粒子在t次迭代后的最优解pBseti t;
根据预设的适应度函数分别计算第i个粒子第t次迭代和第t-1次迭代的适应值,分别得到pBseti t的适应值和pBesti t-1的适应值;
将所述pBseti t的适应值与所述pBesti t-1的适应值进行比较,若当前适应值小于所述pBesti t-1的适应值,则pBesti t=pBesti t-1;
否则,保持pBesti t不变。
由上述描述可知,根据预设的适应度函数计算每个粒子在迭代后的最优解,并考虑到对粒子进行交叉操作和变异操作的影响,将该次迭代的到的最优解和上一次迭代的最优解进行比较,保留更优的一个作为pBesti t,保证pBesti t在总体计算节点的选择上最优而不陷入局部最优。
进一步的,所述预设的适应度函数为:
若第t次迭代的粒子和第t-1次迭代的粒子均能卸载完所有待卸载的DNN任务,则fitness(Xi)=Cost(Xi);
若第t次迭代的粒子和第t-1次迭代的粒子均不能卸载完待卸载的DNN任务,则fitness(Xi)=Card(Xi);
若第t次迭代的粒子和第t-1次迭代的粒子一个可以卸载完所有待卸载的DNN任务,另一个不能卸载完所有待卸载的DNN任务,则选择可以卸载完所有待卸载的DNN任务的粒子进行适应值计算,并且其计算公式为:
式中,fitness(Xi)表示第i个粒子对应的适应值,Cost(Xi)表示第i个粒子在进行DNN任务卸载时的总成本,Card(Xi)表示第i个粒子在进行DNN任务卸载时的未完成的任务数量,tj.finish表示卸载第j个DNN任务的完成时间,rcj表示tj的响应时间约束。
由上述描述可知,细化具体的情景,考虑在不同情况下的适应度函数,考虑全面,保证选出的粒子的为最优解,利用最小花费和最小未完成任务作为评判的标准,容易量化对比,易于实际操作。
进一步的,所述S4中,变异操作M()具体为:
式中,Ct i表示第i个粒子在第t次迭代中变异后在进行DNN任务卸载时在所述计算节点上的分布,w为惯性权重,表示粒子具有保持当前速度的能力,⊕表示引入惯性权重w,Xi t-1表示第i个粒子第t-1次迭代后在进行DNN任务卸载时在所述计算节点上的分布,M()表示随机选择粒子中的一个计算节点并在定义的范围内更改所述计算节点,r3是介于0和1之间的随机因子;
个体交叉操作Px()具体为:
式中,B
t i表示第i个粒子在第t次迭代中进行个体交叉操作后在进行DNN任务卸载时在所述计算节点上的分布,c
1表示学习因子,
表示C
t-1 i中随机选择的一段计算节点分布用pBset
i t-1中对应位置的计算节点分布进行替换;
组交叉操作Gx()具体为:
式中,A
t i表示第i个粒子在第t次迭代中进行组交叉操作后在进行DNN任务卸载时在所述计算节点上的分布,c
2表示学习因子,
表示B
t-1 i中随机选择的一段计算节点分布用gBest
t-1中对应位置的计算节点分布进行替换。
由上述描述可知,将迭代得到的粒子进行变异操作,避免收敛速度过快而使解陷入局部最优,将粒子与gBest或其对应的pBest进行交叉操作,在保证粒子不陷入局部最优的同时,也保证粒子在向最优解收敛,在粒子群算法中引入遗传算法的相关方法,并给出具体的计算方式,确保选出的解最优且可行。
请参照图2,一种边缘-云混合计算环境下的DNN任务卸载终端,包括存储器、处理器及存储在存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
S1、根据边缘-云混合计算环境中的计算节点的类型、个数、待卸载的DNN任务的个数以及每个待卸载的DNN任务的层数基于总成本最小化原则建立目标函数,并确定对应的约束条件;
S2、根据所述目标函数和约束条件确定对应的解集,所述解集中的每一个解表示所述待卸载的DNN任务在所述计算节点的一种分布;
S3、根据所述解集构造初始化种群,所述解集中的每一个解对应所述初始化种群的一个粒子;
S4、根据公式
对初始化种群中的粒子进行迭代,确定满足所述目标函数和约束条件的最优的DNN任务卸载策略;
式中,Xt i表示第i个粒子第t次迭代后在进行DNN任务卸载时在所述计算节点上的分布,c1、c2表示学习因子,pBesti t-1表示第i个粒子在t-1次迭代后的最优解,gBestt-1表示在t-1次迭代后所述种群的最优解,Gx()表示组交叉操作,Px()表示个体交叉操作,M()表示变异操作,⊕表示引入学习因子c1、c2。
从上述描述可知,本发明的有益效果在于:根据边缘-云计算节点的类型、个数、待卸载的DNN任务的个数、层数建立问题模型,将需卸载的任务和DNN中计算节点建立映射关系,设定约束条件对解集进行限定,保证初始粒子群的范围足够广泛,有利于后续进行迭代,采用粒子群算法和遗传算法相结合的方式,将遗传算法中的交叉和变异引入粒子群算法中对DNN的任务卸载策略进行优化,可以更加精确预估任务卸载的成本,避免过快收敛而陷入局部最优,设定约束条件对求得的解集进行再次筛选,保证得出的解的可行性,考虑不同计算节点的不同特性及计算代价、数据传输时的延时等等影响,生成DNN的调度策略,可以有效减少DNN任务卸载的成本。
进一步的,所述S1中将所述边缘-云混合计算环境中的计算节点分类为移动设备节点、边缘节点和云节点;
所建立的目标函数为:
式中,Minimize表示取总成本的最小值,tij表示第i个待卸载的DNN任务的第j层,sk表示第k个计算节点,xijk表示第i个待卸载的DNN任务的第j层是否在第k个计算节点上执行,若所述第i个待卸载的DNN任务的第j层在第k个计算节点上执行,则xijk的取值为1,否则所述xijk的取值为0,costk表示在第k个计算节点上执行待卸载DNN任务的单位时间花费,Timeexecute(tij,sk)表示第i个待卸载的DNN任务的第j层在第k个计算节点上执行花费的时间,m表示计算节点的总数量,l表示每个待卸载的DNN任务的总层数,n表示待卸载的DNN任务的总数量;
所述确定的对应的约束条件为:
每个待卸载的DNN任务在一个计算节点上执行,并且一个DNN任务同一时间只能在一个计算节点上执行;
如果要在边缘节点上执行待卸载的DNN任务,则所述待卸载的DNN任务必须在所述边缘节点的覆盖范围内;
在规定时间内完成DNN任务的卸载。
由上述描述可知,将计算节点进一步细分为移动设备节点、边缘节点和云节点,根据不同计算节点的特点考虑DNN任务的卸载方法,更有利于寻找到最优解,将总成本最小作为目标函数,保证在进行DNN任务卸载时的花费最低,将计算节点的特性考虑进约束条件,更加全面,保证得出的DNN任务卸载方案的可行性。
进一步的,所述S4中,pBseti t的计算具体为:
计算第i个粒子在t次迭代后的最优解pBseti t;
根据预设的适应度函数分别计算第i个粒子第t次迭代和第t-1次迭代的适应值,分别得到pBseti t的适应值和pBesti t-1的适应值;
将所述pBseti t的适应值与所述pBesti t-1的适应值进行比较,若当前适应值小于所述pBesti t-1的适应值,则pBesti t=pBesti t-1;
否则,保持pBesti t不变。
由上述描述可知,根据预设的适应度函数计算每个粒子在迭代后的最优解,并考虑到对粒子进行交叉操作和变异操作的影响,将该次迭代的到的最优解和上一次迭代的最优解进行比较,保留更优的一个作为pBesti t,保证pBesti t在总体计算节点的选择上最优而不陷入局部最优。
进一步的,所述预设的适应度函数为:
若第t次迭代的粒子和第t-1次迭代的粒子均能卸载完所有待卸载的DNN任务,则fitness(Xi)=Cost(Xi);
若第t次迭代的粒子和第t-1次迭代的粒子均不能卸载完待卸载的DNN任务,则fitness(Xi)=Card(Xi);
若第t次迭代的粒子和第t-1次迭代的粒子一个可以卸载完所有待卸载的DNN任务,另一个不能卸载完所有待卸载的DNN任务,则选择可以卸载完所有待卸载的DNN任务的粒子进行适应值计算,并且其计算公式为:
式中,fitness(Xi)表示第i个粒子对应的适应值,Cost(Xi)表示第i个粒子在进行DNN任务卸载时的总成本,Card(Xi)表示第i个粒子在进行DNN任务卸载时的未完成的任务数量,tj.finish表示卸载第j个DNN任务的完成时间,rcj表示tj的响应时间约束。
由上述描述可知,细化具体的情景,考虑在不同情况下的适应度函数,考虑全面,保证选出的粒子的为最优解,利用最小花费和最小未完成任务作为评判的标准,容易量化对比,易于实际操作。
进一步的,所述S4中,变异操作M()具体为:
式中,Ci t表示第i个粒子在第t次迭代中变异后在进行DNN任务卸载时在所述计算节点上的分布,w为惯性权重,表示粒子具有保持当前速度的能力,⊕表示引入惯性权重w,Xi t-1表示第i个粒子第t-1次迭代后在进行DNN任务卸载时在所述计算节点上的分布,M()表示随机选择粒子中的一个计算节点并在定义的范围内更改所述计算节点,r3是介于0和1之间的随机因子;
个体交叉操作Px()具体为:
式中,B
i t表示第i个粒子在第t次迭代中进行个体交叉操作后在进行DNN任务卸载时在所述计算节点上的分布,c
1表示学习因子,
表示C
i t-1中随机选择的一段计算节点分布用pBset
i t-1中对应位置的计算节点分布进行替换;
组交叉操作Gx()具体为:
式中,A
i t表示第i个粒子在第t次迭代中进行组交叉操作后在进行DNN任务卸载时在所述计算节点上的分布,c
2表示学习因子,
表示B
i t-1中随机选择的一段计算节点分布用gBest
t-1中对应位置的计算节点分布进行替换。
由上述描述可知,将迭代得到的粒子进行变异操作,避免收敛速度过快而使解陷入局部最优,将粒子与gBest或其对应的pBest进行交叉操作,在保证粒子不陷入局部最优的同时,也保证粒子在向最优解收敛,在粒子群算法中引入遗传算法的相关方法,并给出具体的计算方式,确保选出的解最优且可行。
请参照图1,本发明的实施例一为:
一种边缘-云混合计算环境下的DNN任务卸载方法,具体包括:
S1、根据边缘-云混合计算环境中的计算节点的类型、个数、待卸载的DNN任务的个数以及每个待卸载的DNN任务的层数基于总成本最小化原则建立目标函数,并确定对应的约束条件;
首先构建边缘-云混合环境下的DNN任务卸载系统模型,
T={t1,t2,…,tn}表示所有任务的集合。ti={ti,1,ti,2,…,ti,n}表示一个具体的DNN任务,gi表示产生任务ti的节点,ai表示任务ti产生的时间,dli表示ti截止期限。ti,j表示DNN任务ti的第j层。对于DNN任务ti的每层ti,j,datai,j表示ti,j和ti,j+1之间的数据传输量。wi,j表示ti,j的工作负载;
M={m1,m2,…,mn}表示所有移动设备节点的集合,mi表示移动设备节点,E={e1,e2,…,en}表示边缘节点集合,ei表示边缘节点,Cov(ei)表示边缘节点ei的覆盖范围,Distance是一组表示移动设备节点与边缘节点距离的矩阵,disx,y表示mx与ey间的距离。c是唯一云节点;
S={s1,s2,…,sn}是所有计算节点的集合,si是计算节点,pi是计算节点si的任务最大计算并发数,表示计算节点si可同时处理多项任务的具体数目,ri是si的计算能力,costi表示si的单位收费价格。Bandwidth表示带宽矩阵,bandi,j表示si与sj间的带宽;
则任务ti,j与任务ti,j+1的传输时间如下公式所示,其中x,y分别是ti,j与ti,j+1的执行节点编号;
其中,计算节点的类型包括:移动设备节点、边缘节点和云节点;
建立的目标函数为:
式中,Minimize表示取总成本的最小值,tij表示第i个待卸载的DNN任务的第j层,sk表示第k个计算节点,xijk表示第i个待卸载的DNN任务的第j层是否在第k个计算节点上执行,若所述第i个待卸载的DNN任务的第j层在第k个计算节点上执行,则xijk的取值为1,否则所述xijk的取值为0,costk表示在第k个计算节点上执行待卸载DNN任务的单位时间花费,Timeexecute(tij,sk)表示第i个待卸载的DNN任务的第j层在第k个计算节点上执行花费的时间,m表示计算节点的总数量,l表示每个待卸载的DNN任务的总层数,n表示待卸载的DNN任务的总数量;
所述确定的对应的约束条件为:
每个待卸载的DNN任务在一个计算节点上执行,并且一个DNN任务同一时间只能在一个计算节点上执行,即
如果要在边缘节点上执行待卸载的DNN任务,则所述待卸载的DNN任务必须在所述边缘节点的覆盖范围内,即
在规定时间内完成DNN任务的卸载,即ti.finish≤rci,rci为ti的响应时间约束;
S2、根据所述目标函数和约束条件确定对应的解集,所述解集中的每一个解表示所述待卸载的DNN任务在所述计算节点的一种分布;
S3、根据所述解集构造初始化种群,所述解集中的每一个解对应所述初始化种群的一个粒子;
其中,被调度到同一计算节点上的子任务,先到达的先执行;
S4、根据公式
对初始化种群中的粒子进行迭代,确定满足所述目标函数和约束条件的最优的DNN任务卸载策略;
式中,Xt i表示第i个粒子第t次迭代后在进行DNN任务卸载时在所述计算节点上的分布,c1、c2表示学习因子,pBesti t-1表示第i个粒子在t-1次迭代后的最优解,gBestt-1表示在t-1次迭代后所述种群的最优解,Gx()表示组交叉操作,Px()表示个体交叉操作,M()表示变异操作,⊕表示引入学习因子c1、c2
本发明的实施例二为:
一种边缘-云混合计算环境下的DNN任务卸载方法,与实施例一的不同之处在于:
所述S4中pBest的计算具体为:
计算第i个粒子在t次迭代后的最优解pBseti t;
根据预设的适应度函数分别计算第i个粒子第t次迭代和第t-1次迭代的适应值,分别得到pBseti t的适应值和pBesti t-1的适应值;
将所述pBseti t的适应值与所述pBesti t-1的适应值进行比较,若当前适应值小于所述pBesti t-1的适应值,则pBesti t=pBesti t-1;
否则,保持pBesti t不变;
其中,所述预设的适应度函数为:
若第t次迭代的粒子和第t-1次迭代的粒子均能卸载完所有待卸载的DNN任务,则fitness(Xi)=Cost(Xi);
若第t次迭代的粒子和第t-1次迭代的粒子均不能卸载完待卸载的DNN任务,则fitness(Xi)=Card(Xi);
若第t次迭代的粒子和第t-1次迭代的粒子一个可以卸载完所有待卸载的DNN任务,另一个不能卸载完所有待卸载的DNN任务,则选择可以卸载完所有待卸载的DNN任务的粒子进行适应值计算,并且其计算公式为:
式中,fitness(Xi)表示第i个粒子对应的适应值,Cost(Xi)表示第i个粒子在进行DNN任务卸载时的总成本,Card(Xi)表示第i个粒子在进行DNN任务卸载时的未完成的任务数量,tj.finish表示卸载第j个DNN任务的完成时间,rcj表示tj的响应时间约束;
变异操作M()具体为:
式中,Ct i表示第i个粒子在第t次迭代中变异后在进行DNN任务卸载时在所述计算节点上的分布,w为惯性权重,表示粒子具有保持当前速度的能力,⊕表示引入惯性权重w,Xi t-1表示第i个粒子第t-1次迭代后在进行DNN任务卸载时在所述计算节点上的分布,r3是介于0和1之间的随机因子;
请参照图3,M()表示随机选择粒子中的一个计算节点并在定义的范围内更改所述计算节点,如随机选择粒子中的p1位置,将p1位置的原有值3在定义的1-9的范围中随机更改为1;
请参照图4,个体交叉操作Px()具体为:
式中,B
i t表示第i个粒子在第t次迭代中进行个体交叉操作后在进行DNN任务卸载时在所述计算节点上的分布,c
1表示学习因子,
表示C
i t-1中随机选择的一段计算节点分布用pBset
i t-1中对应位置的计算节点分布进行替换,如随机选择粒子[1、2、3、3、5、7]p1至p2位置的计算节点分布2、3、3,用该粒子上次迭代得到对应的pBest[1、7、9、1、4、6]的p1至p2位置的计算节点分布7、9、1替换,得到[1、7、9、1、5、7];
请参照图4,组交叉操作Gx()具体为:
式中,A
i t表示第i个粒子在第t次迭代中进行组交叉操作后在进行DNN任务卸载时在所述计算节点上的分布,c
2表示学习因子,
表示B
i t-1中随机选择的一段计算节点分布用gBest
t-1中对应位置的计算节点分布进行替换,如随机选择粒子[1、2、3、3、5、7]p1至p2位置的计算节点分布2、3、3,用该种群上次迭代时得到的种群最优解[1、7、9、1、4、6]的p1至p2位置的计算节点分布7、9、1替换,得到[1、7、9、1、5、7];
上述数字表示DNN任务在卸载过程中的相应计算节点,重复的数字代表不同的DNN任务可以卸载到同一计算节点,DNN任务和计算节点不是一一对应关系。
请参照图2,本发明的实施例三为:
一种边缘-云混合计算环境下的DNN任务卸载终端1,包括存储器2、处理器3及存储在存储器2上并可在所述处理器3上运行的计算机程序,所述处理器3执行所述计算机程序时实现实施例一或二中的步骤。
综上所述,本发明提供的一种边缘-云混合环境下的DNN任务卸载方法及终端,根据边缘-云计算节点的类型、个数、待卸载的DNN任务的个数、层数建立问题模型,将需卸载的任务和DNN中计算节点建立映射关系,将总成本最小作为目标函数,容易量化比较并且符合实际期望,保证在进行DNN任务卸载时的花费最低,根据不同计算节点的特点考虑DNN任务的卸载方法,更有利于寻找到最优解,设定约束条件对解集进行限定,保证得出的解的可行性,确保初始粒子群的范围足够广泛,有利于后续进行迭代,在进行迭代时,采用粒子群算法和遗传算法相结合的方式,将遗传算法中的交叉和变异引入粒子群算法中对DNN的任务卸载策略进行优化,可以更加精确预估任务卸载的成本,避免过快收敛而陷入局部最优,在适应度函数的设计中,考虑到对粒子进行交叉操作和变异操作的影响,将该次迭代的到的最优解和上一次迭代的最优解进行比较,保留更优的一个作为pBest,保证pBest在总体计算节点的选择上最优而不陷入局部最优;细化具体的情景,考虑在不同情况下的适应度函数,考虑全面,保证选出的粒子的为最优解,考虑不同计算节点的不同特性及计算代价、数据传输时的延时等等影响,生成DNN的调度策略,可以有效减少DNN任务卸载的成本。将计算节点的特性考虑进约束条件,更加全面,保证得出的DNN任务卸载方案的可行性。并利用最小花费和最小未完成任务作为评判的标准,容易量化对比,易于实际操作。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。