基于反向学习半径粒子群优化的任务划分系统及其方法技术领域
本发明属于嵌入式系统软硬件协同设计任务划分技术领域,特别涉及一种基于反
向学习半径粒子群优化的任务划分系统及其方法。
背景技术
任务划分是可重构片上系统中软硬件协同设计的关键步骤,其数学模型属于多目
标优化问题。求解任务划分方案去最初采用手工方法,随着系统复杂性增加,任务划分问题
变得越来越复杂,研究人员使用自动化的方法解决任务划分问题。广义的任务划分问题将
应用程序抽象为任务图G={V,E},G是一个有向无环图,包含一组N个节点V和若干个有向边
E,每个节点vi∈V,i∈N表示一个需要在处理器中执行的计算任务,每条有向边eij∈E表示
数据从任务i通过总线传输到任务j,任务vi的属性包括vi={xi,TSi,THi,ESi,EHi,Ai},xi表
示任务vi的候选划分位置,在任务划分为二向划分时,xi={0,1},xi=1表示任务vi在软件
计算部件中执行,xi=0表示任务vi在硬件计算部件中执行,TSi,THi分别表示任务vi在软件
计算部件和硬件计算部件中的执行时间,ESi,EHi分别表示任务vi在软件计算部件和硬件计
算部件中的能耗,Ai表示任务vi在硬件计算部件中执行时需要的硬件面积资源,硬件面积资
源通常意味着系统设计时的成本开销。一般而言,任务划分的目标是在系统约束条件范围
内,减少任务执行时间和能耗,达到提高系统性能的目的。对于嵌入式系统中的任务二向划
分,即求解出最优方案X,X={x1,x2,...,xN}。即将任务图G中节点集合V划分为{Vs,Vh}。Vs表
示在CPU执行的任务集合,Vh表示在FPGA中执行的任务集合,Vs∪Vh=V且
传统的基于线性规划任务划分方法,通过求解多项式得到满足系统条件(时间、功
耗、成本)的划分方案,这种求解方法的优点是可以求得最优解。但是在大规模任务个数下,
该类算法求得最优解的代价是执行较长时间,无法满足可重构系统执行多个应用程序时的
实时性要求。因此,目前研究流行的方法是使用以粒子群优化为代表的启发式算法快速求
解任务划分方案。粒子群算法是一种新颖的基于种群更新的启发式算法,该方法通过随机
初始化粒子的个体位置并在更新粒子的过程中搜索群体的最优位置,从而求得全局最优
解。在每一代,粒子的更新速度和位置在个体历史最优解和全局最优解的指导下进行更新。
粒子群算法用来求解多目标优化问题,具有参数简单,收敛迅速的优点,但是其求得的近似
解质量较差。一方面该算法求解范围较小,精度不高,易错过最优解;另一方面局部极值问
题会导致求解过早收敛。
在经典的PSO任务划分算法中,每个粒子代表一种候选划分方案,随机生成m个候
选划分方案X1,X2,...,Xm,任务个数为N,即Xi={xi1,xi2,...,xid,...,xiN}是N维向量,处在
欧氏空间RN中,xid是Xi的第d个元素。粒子群群体通过不断迭代,更新划分方案,迭代次数为
K∈N*,当前迭代次数k∈[1,K]。每个xid对应一个更新速度vid,更新速度向量为Vi={vi1,
vi2,...,vid,...,viN}。更新速度决定候选划分方案更新速度,该速度要控制在一定的范围|
vid|<vmaxd,即速度阈值向量为Vmax={v1max,...,vdmax,...,vNmax}。粒子群算法通过适应函数
f(X)评价候选划分方案,找到适应值最好的划分方案。f(X)由划分问题的目标函数式(4)确
定,用以度量候选方案适应系统约束条件的程度。是Xi更新过程中适应值最
优的划分方案。是在集合中,适应值最优的划分方案。每次迭代,候选
划分方案参考和指导更新方向。在第k代时,xid和vid对应表示为和更新公式如
下:
PSO任务划分算法的更新公式由三部分构成,
第一部分是惯性部分,参数ω是惯性因子,用以衡量当前的更新速度对更新的影响;第二部
分是自我认知部分,反映了粒子对自身历史经验的记忆;第三部分是社会认知部分,反映了
粒子间协同合作与知识共享的种群历史经验;参数c1、c2是学习因子,分别表示个体最优值
和全局最优值对种群更新方向的影响,r1、r2是[0,1]之间的随机数。基于粒子群优化的任务
划分方法虽然能够快速求解划分方案,但这种方法只能求得最优划分方案的近似解。由于
求解范围较小、求解精度不足和局部极值问题,粒子群优化任务划分算法还没有很好地解
决近似解质量问题的技术方案。
发明内容
为克服现有技术中的不足,本发明提供一种基于反向学习半径粒子群优化的任务
划分系统及其方法,通过动态半径粒子群优化扩展求解范围,并提高求解精度;通过反向学
习机制解决局部极值问题,从而提高求解质量和系统性能。
按照本发明所提供的设计方案,一种基于反向学习半径粒子群优化的任务划分系
统,包含半径粒子群优化模块、判决器模块及反向学习模块,其中,半径粒子群优化模块,根
据接收到的任务划分的服务请求及每个任务属性,根据任务属性评价候选划分方案,设计
粒子群算法的适应函数,动态分区域计算区域最优任务划分方案,并从区域最优值中选取
全局最优任务划分方案,并输出给判决器模块;判决器模块,记录半径粒子群优化模块计算
得到的划分方案,并判断其是否陷入局部限值,若是,则触发反向学习模块,否则,不触发反
向学习模块,继续进行半径粒子群优化;反向学习模块,采用反向学习机制对划分方案进行
退化,使其跳出局部限值,并将退化结果反馈给半径粒子群优化模块,半径粒子群优化模块
根据反馈的退化结果继续求解任务划分方案并输出。
上述的,任务属性至少包含任务在软硬件中的执行时间、功耗、成本。
上述的,适应函数还包含惩罚机制,当候选划分方案未超出系统可使用硬件面积
资源,则适应值随硬件面积资源利用程度以指数函数形式减小,当候选划分方案超出系统
可使用硬件面积资源,则适应值依据当前迭代次数迅速增加。
一种基于反向学习半径粒子群优化的任务划分方法,具体包含如下步骤:
步骤1、根据接收到的任务划分的服务请求及每个任务属性,初始化任务划分方案
集合,根据硬件面积资源、执行时间和能耗,评价候选划分方案,确定粒子群算法的适应函
数;
步骤2、根据粒子群算法的适应函数确定当前划分方案的适应值
步骤3、利用动态半径,依据迭代次数,动态调整每个候选划分方案的区域大小,采
用贪心策略求解区域最优解,从这些区域最优解中求解出全局最优解,在求解过程中若粒
子种群陷入局部限值时,则进入步骤4,触发反向学习机制,否则,进入步骤5;
步骤4、对陷入局部极值的任务划分方案采取反向学习机制,通过粒子的初始最差
位置和个体历史最差位置通过反向学习更新公式进行迭代,若迭代次数满足反向学习次数
L,则返回步骤2执行,否则,继续进行反向学习;
步骤5、结束并输出任务划分的最终方案,全局最优解即为任务划分的最终方案。
上述的,步骤1中初始化任务划分方案结合包含如下内容:假设任务个数为D,则任
务划分方案是D维向量,初始化划分方案个数N,迭代次数K,任务划分方案集合和相应的
更新速度Vik,i∈N,k∈K,其中,表示第k代时的第i个划分方案,Vik表示第k代时的第i个
划分方案的更新速度,在初始化时和Vik应为和Vi0,适应函数表示为:
其中,A(x)、T(x)、E(x)分别表示任务
在硬件面积资源、任务执行时间和能耗开销,δA、δT和δT是硬件面积资源、任务执行时间和能
耗开销的归一化因子,δA=max{maxA-Amax,Amax-minA},δT=maxT-minT,δE=maxE-minE,a、b
和c分别为对应的影响因子,惩罚因子
上述的,所述步骤2具体内容如下:根据适应函数:
确定当前划分方案的适应值
上述的,步骤3具体包含如下内容:
步骤3.1、比较每一代找到迭代过程中使最小的及各划分方案
历史最优解,由表示;
步骤3.2、根据当前迭代次数k,设置动态半径r,r的表达式如下:
步骤3.3、规定划分方案之间的距离通过欧式距离表示,以为圆心,在半径r的区
域内找到适应值最小的区域最优划分方案使得
步骤3.4、在区域最优划分方案中,找到适应值最小的全局最优划分方
案
步骤3.5、根据半径粒子群优化更新公式更新划分方案和更新速度Vik+1,更新
公式如下:
其中,各向量的下标d∈N,表示向量的第d个元素,ω是惯性因子,c1和c2是学习因
子,r1和r2是0到1之间的随机数;
步骤3.6、判断当前迭代次数是否已经到达预设值K。如果是,转到步骤5,输出当前
认为的全局最优划分方案作为任务划分的最优解决方案;否则,转到步骤4,判断是否
陷入局部限制。
上述的,步骤4具体包含如下内容:
步骤4.1、设置计数器,当计数器记录到连续迭代P次未发生改变,P=K/5取整,
则认为陷入局部极值,执行下一步骤,触发反向学习机制;否则,转到步骤2,继续进行动
态半径粒子群优化求解;
步骤4.2、初始化反向学习机制,将触发反向学习机制时的第k代划分方案集合
和更新速度Vik赋值给反向学习初始化的和即初始化反向学习次数
L,最差划分方案Wil,i∈N,l∈L,Wil表示第l次反向学习时第i个划分方案历史最差的划分
方案;
步骤4.3、从Wi0中随机选择初始最差划分方案;
步骤4.4、根据反向学习公式更新划分方案和更新速度反向学习更新公式
如下:
步骤4.5、从各划分方案中,找到相应的适应值最大的历史最差解Wil+1;
步骤4.6、判断反向学习是否结束,若反向学习次数达到L,则返回并令
跳转到步骤2;否则跳转到步骤4.3,继续进行反向学习。
优选的,步骤4.2中:在反向学习初始化时,Wi0是从中随机选择两两之间距离大
于排异半径的划分方案集合,其中,若集合内划分方案个数不足N,则随机生成满足
条件的划分方案填满Wi0;反向学习初始化后,Wil表示的历史最差划分方案。
本发明的有益效果:
1、本发明通过动态半径分区域选取区域最优的任务划分方案,并从区域最优值中
选取全局最优任务划分方案,与现有技术相比,动态半径粒子群优化扩展了求解范围,并且
在算法出去加速了求解速度,在算法后期提高了求解精度。
2、本发明在判定结果陷入局部极值后,通过反向学习机制将划分方案进行退化,
克服局部极值问题;经过反向学习后的划分方案集合能够在此基础上进行深度求解,从而
阶段性地提高了任务划分质量,系统执行性能显著提高。
附图说明:
图1为本发明的系统原理图;
图2为本发明的方法流程示意图;
图3为实施例四的流程示意图。
具体实施方式:
下面结合附图和技术方案对本发明作进一步详细的说明,并通过优选的实施例详
细说明本发明的实施方式,但本发明的实施方式并不限于此。
实施例一,参见图1所示,一种基于反向学习半径粒子群优化的任务划分系统,包
含半径粒子群优化模块、判决器模块及反向学习模块,其中,半径粒子群优化模块,根据接
收到的任务划分的服务请求及每个任务属性,根据任务属性评价候选划分方案,设计粒子
群算法的适应函数,动态分区域计算区域最优任务划分方案,并从区域最优值中选取全局
最优任务划分方案,并输出给判决器模块;判决器模块,记录半径粒子群优化模块计算得到
的划分方案,并判断其是否陷入局部限值,若是,则触发反向学习模块,否则,不触发反向学
习模块,继续进行半径粒子群优化;反向学习模块,采用反向学习机制对划分方案进行退
化,使其跳出局部限值,并将退化结果反馈给半径粒子群优化模块,半径粒子群优化模块根
据反馈的退化结果继续求解任务划分方案并输出,与现有技术相比,动态半径粒子群优化
扩展了求解范围,并且在算法出去加速了求解速度,在算法后期提高了求解精度。
实施例二,与实施例一基本相同,不同之处在于:任务属性至少包含任务在软硬件
中的执行时间、功耗、成本。
适应函数还包含惩罚机制,当候选划分方案未超出系统可使用硬件面积资源,则
适应值随硬件面积资源利用程度以指数函数形式减小,当候选划分方案超出系统可使用硬
件面积资源,则适应值依据当前迭代次数迅速增加,迭代次数较小时,惩罚力度小,允许超
出可使用硬件面积资源较小的候选划分方案通过自我更新修正错误,迭代次数较大时,惩
罚力度大,不再容忍错误候选划分方案。
实施例三,参见图2所示,一种基于反向学习半径粒子群优化的任务划分方法,具
体包含如下步骤:
步骤1、根据接收到的任务划分的服务请求及每个任务属性,初始化任务划分方案
集合,根据硬件面积资源、执行时间和能耗,评价候选划分方案,确定粒子群算法的适应函
数;
步骤2、根据粒子群算法的适应函数确定当前划分方案的适应值
步骤3、利用动态半径,依据迭代次数,动态调整每个候选划分方案的区域大小,采
用贪心策略求解区域最优解,从这些区域最优解中求解出全局最优解,在求解过程中若粒
子种群陷入局部限值时,则进入步骤4,触发反向学习机制,否则,进入步骤5;
步骤4、对陷入局部极值的任务划分方案采取反向学习机制,通过粒子的初始最差
位置和个体历史最差位置通过反向学习更新公式进行迭代,若迭代次数满足反向学习次数
L,则返回步骤2执行,否则,继续进行反向学习;
步骤5、结束并输出任务划分的最终方案,全局最优解即为任务划分的最终方案。
通过动态半径分区域选取区域最优的任务划分方案,并从区域最优值中选取全局
最优任务划分方案,与现有技术相比,动态半径粒子群优化扩展了求解范围,并且在算法出
去加速了求解速度,在算法后期提高了求解精度;在判定结果陷入局部极值后,通过反向学
习机制将划分方案进行退化,克服局部极值问题;经过反向学习后的划分方案集合能够在
此基础上进行深度求解,从而阶段性地提高了任务划分质量,系统执行性能显著提高。
实施例四,参见图3所示,一种基于反向学习半径粒子群优化的任务划分方法,具
体包含如下步骤:
步骤1、根据接收到的任务划分的服务请求及每个任务属性,初始化任务划分方案
集合,根据硬件面积资源、执行时间和能耗,评价候选划分方案,确定粒子群算法的适应函
数,假设任务个数为D,则任务划分方案是D维向量,初始化划分方案个数N,迭代次数K,任务
划分方案集合和相应的更新速度Vik,i∈N,k∈K,其中,表示第k代时的第i个划分方
案,Vik表示第k代时的第i个划分方案的更新速度,在初始化时和Vik应为和Vi0,适应函
数表示为:
其中,A(x)、T(x)、E(x)分别表示任务
在硬件面积资源、任务执行时间和能耗开销,δA、δT和δT是硬件面积资源、任务执行时间和能
耗开销的归一化因子,δA=max{maxA-Amax,Amax-minA},δT=maxT-minT,δE=maxE-minE,a、b
和c分别为对应的影响因子,惩罚因子
步骤2、根据粒子群算法的适应函数确定当前划分方案的适应值
步骤3、利用动态半径,依据迭代次数,动态调整每个候选划分方案的区域大小包
含如下内容:
步骤3.1、比较每一代找到迭代过程中使最小的及各划分方案
历史最优解,由表示;
步骤3.2、根据当前迭代次数k,设置动态半径r,r的表达式如下:
步骤3.3、规定划分方案之间的距离通过欧式距离表示,以为圆心,在半径r的区
域内找到适应值最小的区域最优划分方案使得
步骤3.4、在区域最优划分方案中,找到适应值最小的全局最优划分方
案
步骤3.5、根据半径粒子群优化更新公式更新划分方案和更新速度Vik+1,更新
公式如下:
其中,各向量的下标d∈N,表示向量的第d个元素,ω是惯性因子,c1和c2是学习因
子,r1和r2是0到1之间的随机数;
步骤3.6、判断当前迭代次数是否已经到达预设值K。如果是,转到步骤5,输出当前
认为的全局最优划分方案作为任务划分的最优解决方案;否则,转到步骤4,判断是否
陷入局部限制。
步骤4、对陷入局部极值的任务划分方案采取反向学习机制,具体包含内容如下:
步骤4.1、设置计数器,当计数器记录到连续迭代P次未发生改变,P=K/5取整,
则认为陷入局部极值,执行下一步骤,触发反向学习机制;否则,转到步骤2,继续进行动
态半径粒子群优化求解;
步骤4.2、初始化反向学习机制,将触发反向学习机制时的第k代划分方案集合
和更新速度Vik赋值给反向学习初始化的和即初始化反向学习次数
L,最差划分方案Wil,i∈N,l∈L,Wil表示第l次反向学习时第i个划分方案历史最差的划分
方案;在反向学习初始化时,Wi0是从中随机选择两两之间距离大于排异半径的划
分方案集合,其中,若集合内划分方案个数不足N,则随机生成满足条件的划分方案填满Wi0;
反向学习初始化后,Wil表示的历史最差划分方案;
步骤4.3、从Wi0中随机选择初始最差划分方案;
步骤4.4、根据反向学习公式更新划分方案和更新速度反向学习更新公式
如下:粒子之间的距离采用欧式距离,为保证初始最
差粒子能将结果拉出局部限值,在选择初始最差粒子时,初始最差粒子之间的距离大于预
设的距离在反向学习机制中,更新速度阈值增加为RVmax=2·Vmax,使得候选划分方
案在初始最差粒子Wi0和个体历史最差粒子Wik的牵引下,加速跳出局部极值;
步骤4.5、从各划分方案中,找到相应的适应值最大的历史最差解Wil+1;
步骤4.6、判断反向学习是否结束,若反向学习次数达到L,则返回并令
跳转到步骤2;否则跳转到步骤4.3,继续进行反向学习。
步骤5、结束并输出任务划分的最终方案,全局最优解即为任务划分的最终方案。
本发明中,首先初始化任务划分方案集合,设计粒子群方法的适应函数,采用半径
粒子群优化逐代更新任务划分方案,从硬件面积资源、执行时间和能耗三个方面评价候选
划分方案,进行归一化处理,综合设计适应函数,在设计过程中,考虑到划分方案若超出系
统可提供的硬件面积资源,任务将无法运行,因此,在对硬件面积资源评价时增加惩罚机
制;其次,利用动态半径,以“分而治之”思想,分区域选取区域最优值,并从区域最优值中选
取全局最优值,一般,在算法初期,Pi距离最优解较远,使用较大的半径在Pi局部搜索有利于
结果快速收敛;在算法后期,Pi距离最优划分解较近,通过缩小半径提高搜索精度,依据迭
代次数,动态调整每个候选划分方案的区域大小,从这些区域的最优解中评选出全局最优
解,作为指导求解的方向。动态半径随迭代次数进行线性变化,更新如式如下:
粒子之间的距离采用欧式距离;在半径r范围内,以当前粒子个体最优值为圆心,随机选取
该粒子的邻居;采用贪心策略找到该区域的最优解粒子更新公式变化
为:结合反向学习机制,当种群陷入局部极值时,触发
反向学习机制,帮助种群跳出局部极值,对反向学习后的划分方案继续求解,直至迭代次数
达到预设值,从而提高求解精度、求解质量和系统性能。
本发明不局限于上述具体实施方式,本领域技术人员还可据此做出多种变化,但
任何与本发明等同或者类似的变化都应涵盖在本发明权利要求的范围内。