一种基于和声搜索和模拟退火的多处理机任务调度的方法

文档序号:6378594阅读:163来源:国知局
专利名称:一种基于和声搜索和模拟退火的多处理机任务调度的方法
技术领域
本发明涉及的是一种提高计算机处理速度的方法,具体地说是一种基于和声搜索和模拟退火的多处理机任务调度的方法。
背景技术
多处理机调度问题是伴随着计算机的发展而兴起的,随着微处理机的性能快速增强,不断出现新的快速网络,产生了高性能了计算机系统即分布式系统。分布式系统处理任务效率的高低很大程度上取决于处理机的任务调度。因此,分布式系统的出现促进研究者们更加深入的研究多处理机的调度。
多处理机任务调度问题(MultiprocessorTask Scheduling Problem, MTS)是组合优化问题的一种,是NP-hard问题,同时也是并行和分布式计算的组成部分。多处理器调度问题主要是确定任务在哪个处理器上执行以及何时执行的问题。在求解多处理机调度问题中,群智能优化算法得到了越来越多的应用,求解多处理机调度问题的方法也越来越广泛,如蚁群算法解决多处理机调度问题、粒子群优化算法解决多处理机调度问题、鱼群算法、蛙跳算法等。Geem ZW在2001年提出了和声搜索算法,它是受乐师们调节乐器的音调的启发而提出的一种算法,HS算法是一种启发式全局搜索算法。他们根据乐师们在演奏中凭借自己的记忆,通过反复调整乐队中各乐器的音调,达到美妙和声状态的现象提出的,虽然HS提出的时间比较晚,由于它实现简单、鲁棒性好、收敛速度快等优点,目前已在许多领域得到应用与发展,和声搜索算法属于启发式的群智能优化算法,它具有连续的本质,在许多连续优化问题中已得到许多应用,模拟退火算法最早是针对组合优化提出的,它的特点在于能够在搜索的过程中跳出局部极小并最终趋向于全局最优,所以具有质量高、初值鲁棒性强、通用易实现等优点,如喻良等人在解决配水优化系统设计时使用了和声搜索算法,达到了比较好的效果,但在多处理机调度领域还没有广泛应用。

发明内容
本发明提供了一种基于和声搜索和模拟退火的多处理机任务调度的方法,主要目标是的缩短并行程序的运行时间即最大调度长度,提高系统的利用率。一种基于和声搜索和模拟退火的多处理机任务调度的方法,包括如下步骤
(I)初始化HS相关参数、初始温度T、降温系数t
为了使搜索的质量和效率达到比较平衡的状态,选择初始温度为500。(2)初始化和声库(HM),利用微调概率PARHS算法产生新解Xnew更新HM库,找出最优解Xopt ;
初始化参数I =0,和声解变量的上、下限、£為,选择概率参数HMUi ,微调概率参数、P還丽,扰动参数Iw。随机产生HMS个和声存入和声记忆库中,為=i=l, 2,…,HMS0 使用公式Xij = LBi + r X (UBj - LBi)(4.1)
利用ROV、SPV或LPV规则生成每个和声对应的任务序列。由于HM内和声矢量比较分散,HM的搜索范围比较大,可以采用较小的Λ4Λ值;在后期的算法搜寻中,HM内的和声矢量相似度越来越大,HM所包含的区域小,可以使用较大的值,防止算法陷入局部极值。因此的调节采用文献[19]中的公式
PARt = PARmkl + (Pmm — PARmkl) X (4.3)
NI
在这个公式中第I次循环时的微调概率可以记为AlRt ,微调概率的下边界可记为PARffiin,上边界可记为,当前的循环次数可记为h设置最大循环次数为,VJ。
Iw控制着对候选解的扰动幅度,因为使用Iw进行扰动可以防止出现产生的候选
解始终保持不变的情况,另外iw的大小对候选解的影响也很大,如果Aw太小,那么搜索很
难突破局部极值,相反如果太大将会引起随机搜索,因此动态地调节H的值
h·^· t
由于Awi可以取0到无穷大的任何一个值,所以设置了扰动参数的上界和下界即
和,与迭代次数是相关的,由当前的迭代次数决定的大小。
(3)以最优解对应的任务序列Sopt作为SA算法的初始解X;
(4)采用模拟退火算法产生新解X’,以最短运行时间作为评价函数,计算评价函数
n
/YxJ=腿驟C^r趣驟g
利用模拟退火算法产生新解X’,计算评价函数f (X’);根据Metropolis准则进行判断Δ E = f (X’)一 f (X);如果ΛΕ〈0则接受X’作为新解,否则以概率min (I, exp (- Δ E/Tk ))接受,如果X’优于和声库中最优解,则更新和声库HM ;Tk为当前的温度;
(5)以=择灯只作为退温函数进行退温,t为迭代次数,β为退温系数;
(6)重复执行第4步,直到到达最大迭代次数,算法终止。在基于SA算法对和声搜索算法改进的策略中,只有任务的排序参与了模拟退火过程,退火结束后需要把搜索到的最好任务序列转化成和声解,和声搜索才能顺利运行下去。该和声解不但要保留退火搜索前的和声解的信息,还要让任务符合编码规则,因此要完成任务排序到和声解的顺利转化需要一个修正算法。该算法是由模拟退火算法对和声库产生的新解进行局部搜索得到一个新解X及相应的任务序列。然后从X内的变量从小到大进行排序,存到另一个数组中tp中,如果数组tp中有重复变量,存到rt中,每个重复变量只存一次,顺序检查各变量,若当前变量在rt中,则将该变量减O. 01,最后按公式X [i]=tp [i]循环更新X各变量的值。本发明提出了一种基于和声搜索和模拟退火的多处理机任务调度的方法,该方法主要根据模拟退火算法的初值依赖小、易于加入约束条件并且适合解决大规模组合优化问题的特点,使和声搜索与模拟退火算法结合并分析其混合算法的优化机理、搜索模式及收敛速度。并通过实验仿真证明了混合和声算法解决多处理机调度问题的高效性主要创新点
I.将将和声搜索和模拟退火算法进行了融合,在和声库中直接对最好的和声解所对应的任务序列执行退火过程,增强了算法的搜索速度。2.在新解的产生方面对模拟退火算法做了形影的改进,即在基因交换过程中,采用交换概率产生新解,以提高算法的搜索速度。3.通过对其中的和声初始解的编码方式进行相应转化,转化成对应的任务序列,将改进算法成功的运用到多处理机的任务调度问题中。


图I为本发明的算法执行过程图。·
图2为本发明修正算法的流程图。图3 SAIHS算法的迭代过程示意图。
具体实施例方式参见图1,本发明是一种基于和声搜索和模拟退火的多处理机任务调度的方法,包括以下步骤
(I)初始化HS相关参数、初始温度T、降温系数t
为了寻找到最优解,SA算法通常需要设置较高的初始温度,但是实验证明初始温度越高,所用的时间就越长。因此为了使搜索的质量和效率达到比较平衡的状态,选择初始温度为 500。(2)初始化和声库(HM),利用微调概率使HS算法产生新解Xnew更新HM库,找出最优解Xopt ;
初始化参数I =0,和声解变量的上、下限KSi、£為,选择概率参数//MGR,微调概率参数,扰动参数随机产生ZiMSf个和声存入和声记忆库中,Is = (%,%>... )i=l, 2,…,HMS0 使用公式
= LBi 4-rx(UBi — LBi)(4.1)
利用ROV、SPV或LPV规则生成每个和声对应的任务序列。由于HM内和声矢量比较分散,HM的搜索范围比较大,可以采用较小的A4及值;在后期的算法搜寻中,HM内的和声矢量相似度越来越大,HM所包含的区域小,可以使用较大的值,防止算法陷入局部极值。因此iMi 的调节采用文献[19]中的公式
ΡΑψ=ΡΑ%ιι+d ~FA^ Xt(4.3)
NI
在这个公式中第I次循环时的微调概率可以记为式,微调概率的下边界可记为AMail,上边界可记为,当前的循环次数可记力设置最大循环次数为m。
iw控制着对候选解的扰动幅度,因为使用iw进行扰动可以防止出现产生的候选解始终保持不变的情况,另外iw的大小对候选解的影响也很大,如果太小,那么搜索很难突破局部极值,相反如果太大将会引起随机搜索,因此动态地调节iw的值
bw1 =^wimk Xe ■
由于可以取O到无穷大的任何一个值,所以设置了扰动参数的上界和下界即
和,与迭代次数是相关的,由当前的迭代次数决定的大小。
(3)以最优解对应的任务序列Sopt作为SA算法的初始解X; (4)利用模拟退火算法产生新解X’,计算评价函数f(x’);根据Metropolis准则进行判断Λ E = f (X’)一 f (X);如果Λ Ε〈0则接受X’作为新解,否则以概率min (I, exp (- Δ E/Tk ))接受,如果X’优于和声库中最优解,则更新和声库HM ;Tk为当前的温度;
(5)以$=作为退温函数进行退温,t为迭代次数,β为退温系数;
(6)重复执行第4步,直到到达最大迭代次数,算法终止。在基于SA算法对和声搜索算法改进的策略中,只有任务的排序参与了模拟退火过程,退火结束后需要把搜索到的最好任务序列转化成和声解,和声搜索才能顺利运行下去。该和声解不但要保留退火搜索前的和声解的信息,还要让任务符合编码规则,因此要完成任务排序到和声解的顺利转化需要一个修正算法。该算法如图3所示。(6)为更好的说明本发明的实施过程,以下例验证
本例中以Windows XP操作系统,使用的处理器为E216001. 8Ghz,用C++语言编程验证,设有3台处理机和9个任务,每个任务需要的时间分别为81,40,26,4,65,98,53,71,15。基本参数设置HMCR =0. 96,PAP^ =0. 99,PAMmici =0. OlJwmax =0. 05,bwmil =0. 0001,
NI =50,初温Γ =500。对比算法采用Mahdavi等人提出的HIS算法和SA算法,仿真次数为100。,统计最优解、最差解、平均解以及最优解的次数比较不同算法在解决多处理机调度问题上的性能表现HIS(151,165,155. 01,13),SA(151,168,155,30),SAIHS (151,157,151. 97. 42,SAIHS算法的收敛情况如图3所示。从图3和仿真数据可以看出,无论是平均值大小、最差解的大小还是最优解出现的次数,SAIHS均优于HIS和SA,由此可以看出SAIHS混合算法在解决多处理机调度问题时效率更高、质量更好,能够跳出局部最小,进而寻找更好的解。起始温度是影响模拟退火算法效率的因素之一,研究了温度T对SAIHS算法的影响,从实验仿真结果可以看出初始温度对于SAIHS算法有较大的影响。当T=IOO和T=500时所求得的平均值差别不是很大。当Τ=5000时,差别稍微大一些,因此,在改进的算法中,温度很高不一定能搜索到很好的解,处于中间状态的温度可以搜索到比较好的解。从最优解出现的次数来看,Τ=500或在500附近的温度时搜索的解的质量比较好。
权利要求
1.一种基于和声搜索和模拟退火的多处理机任务调度的方法,该方法包括以下步骤 (1)初始化HS相关参数、初始温度T、降温系数t; (2)初始化和声库(HM),利用微调概率PAR,使HS算法产生新解Xnew更新HM,找出最优解Xopt ;(3)以最优解对应的任务序列Sopt作为SA算法的初始解X, 并计算相应的评价函数f(x)的值,评价函数为;
2.根据权利要求I中只有任务序列参与了模拟退火过程,退火结束后需要把搜索到的最好任务序列转化成和声解,使HS继续运行;该和声解要保留退火搜索前的和声解的信息,还要让任务符合编码规则,因此设计了一个任务排序到和声解的转化的修正算法,该算法是由模拟退火算法对和声库产生的新解进行局部搜索得到一个新解X及相应的任务序列;然后从X内的变量从小到大进行排序,存到另一个数组中tp中,如果数组tp中有重复变量,存到rt中,每个重复变量只存一次,顺序检查各变量,若当前变量在rt中,则将该变量减O. 01,最后按公式x[i]=tp[i]循环更新X各变量的值。
全文摘要
本发明是一种基于和声搜索和模拟退火的多处理机任务调度的算法。算法核心将和声搜索和模拟退火算法进行了融合,首先初始化和声算法相关参数、及和声库,然后在和声库中直接对最好的和声解所对应的任务序列执行退火过程,增强了算法的搜索速度。算法中通过保存最优解,充分发挥SA算法的概率突跳特性,摆脱局部极小点,有效的提高了算法性能。并把该改进算法成功的运用到多处理机的任务调度问题中,经过验证,该算法比传统算法具有更好运行效率的调度策略。
文档编号G06F17/30GK102915355SQ201210382650
公开日2013年2月6日 申请日期2012年10月11日 优先权日2012年10月11日
发明者李英明, 姜华, 刘彦秀 申请人:李英明
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1