运用粒子群算法优化动态网格工作流的方法

文档序号:6470681阅读:260来源:国知局
专利名称:运用粒子群算法优化动态网格工作流的方法
技术领域
本发明涉及网格计算以及智能算法两大领域,主要涉及一种基于粒子群算 法的动态网格工作流优化方法。 技术背景
粒子群算法是一种模拟自然界中鸟群和鱼群捕食的随机搜索算法。算法中 的每个粒子均能"记忆"自己的以及群体的飞行经验,并以此不断调整自己的 速度和位置。粒子群算法由于其定义清晰,简单实用,自提出以来就得到了广 发的应用,例如动态分配、医学图形配准、机器学习与训练、数据挖掘与分类 和信号控制等各领域。
网格计算可以支持大范围的并行和分布式计算,被认为是有潜力的下一代 计算平台。与电网类似,计算网格使得分布于不同地理位置的各种不同计算资 源的共享、选择和协同运作成为可能。网格技术可以满足科学和商业上的计算 需求,并且提供了解决计算密集型问题的可行方法。在网格中处理的计算应用 通常称为工作流。在网格的环境中,工作流定义是 一个完成复杂目标的特定 的任务序列。在网格计算中,如何调度工作流以达到更高的性能是一个十分重 要的问题。通常,工作流以有向无环图(DAG)的形式给出,其中节点表示单
个任务而有向的箭线表示任务间的优先关系。任务调度程序需要把任务分配给 不同的分布式计算站点进行处理,以满足用户对服务质量的要求并优化计算性
能。总的来说,在DAG中的调度问题是NP-完全的,因此工作流调度是一个十 分复杂的问题。
最近,开放式网格服务体系结构(OGSA)的提出使得网格计算技术得到了 加强。在OGSA中, 一个任务可以由任意一组由不同的网格服务供应商提供的 服务进程完成。 一个具有挑战性的问题是如何将任务映射到服务进程中以满足 用户对服务质量的要求并达到工作流的最高性能。在OGSA的环境下,工作流 调度者需要平衡多个对QoS的要求,包括时限和费用等。因此,很多传统的工 作流调度算法,例如OLB算法,MET算法,MCT算法,Min-min算法,Max-min
3算法,Duplex算法,Sufferage算法和HEFT算法等并不适用。近年来,带有多 个QoS要求的网格工作流调度问题成为了研究的热点。由于网格应用的规模越 来越大,传统的确定性算法往往不能给出令人满意的解。因此,元启发式算法 得到研究人员的更多关注,包括蚁群算法和粒子群算法等。但是,已提出的方 法只能针对拓扑结构不变的工作流进行处理。在日常应用中,还存在另一种拓 扑结构会随着时间变化的动态工作流。例如, 一些科学工作流会在不同的计算 阶段采用不同的拓扑结构。此外,许多商业工作流也运用多种拓扑以完成长期 的业务流程。为了解决动态工作流的调度问题,调度者需要在一个周期中考虑 工作流的性能并给出最优的调度方案。

发明内容
本发明将粒子群算法运用到动态网格工作流的优化中。算法的具体步骤包

(1) 初始化算法的各个参数,并建立第一代粒子群,粒子的编码方式为
其中;c,eZ,表示将任务f映射到迸程《中,W是工作流中的任务总数量。
(2) 根据每个粒子所处的当前位置评估每个粒子的适应值,适应值函数

+
柳ax—max—to/1"/—cosf 1 + —
否则
其中,Kmox—wo&5pa"表示调度K的最大工期,表示期限约束,cos/ 为调度X的费用,w/w」oto/—coW和woc_toto/_cos 分别表示工作流在一个周期 内最小和最大费用。
(3) 更新每个粒子的个体最优位置,以及所有粒子的全局最佳位置。
(4) 每个粒子执行速度更新,更新公式为
Viy =肌、+ C,X X(A) - X》+ C2X X(g乂.——巧)
4系数,A^和《是两个从0到1均匀分布的 随机数。
(5) 根据更新后的速度向量执行位置更新,更新公式为
(6) 对每个粒子更新后的位置执行修补,方法为取最接近的整数。
(7) 如果达到结束条件则终止程序,否则返回步骤(2)。 本发明考虑的是网格环境中的动态工作流调度问题,算法的目标是最小化
工作流在一个周期内的总费用,并使得其在每个单位时间内的执行时间不超过 一个用户定义的变量Z^"c///^。对于一个调度而言,适应值是根据其在一个周期 内的性能给出的,其中包含了期限部分和费用部分。在传统粒子群算法的基础 上加入了修补操作,使得粒子群算法能够有效地求解动态工作流调度问题。


图1粒子群算法优化动态网格工作流的流程图
具体实施例方式
以下结合附图进一步对发明的方法进行描述。
网格工作流可以以有向无环图(DAG)的形式给出G=(F^)。在该模型中, 令w为工作流中任务的数量,节点的集合FH7yT2,…,7;)对应工作流中的任务。 箭线的集合^表示任务之间的优先次序关系。 一条箭线用(7;,7])表示,其中7} 称为7)的父任务,而7)称为7;的子任务。在正常情况下, 一个子任务只能在其 所有父任务都完成后才能开始执行。
每个任务7X1S"")都有一个执行范围S = A2,…,《'},其中<(1 ^_/《w,) 表示由工作站提供的一个服务进程,^表示j;可用的服务进程的数量。 一个服 务进程的属性可以用一组四个变量来表示(《.g, ^c)。其中"/.g表示^所 属的工作站是《.g。 s^和(c分别代表s/的执行时间和费用。
在动态工作流中,每个任务都有两种工作状态活跃和不活跃。只有当任 务处于活跃(也就是工作)状态时,它才能影响工作流的总体费用和时间。工 作流的拓扑定义为由所有活跃的任务所组成的一个工作流结构。时间单位是指 一个预定义的整个工作流完整执行一次的时间段。 一个周期由多个时间单位组
5成。假设在一个带有P个时间单位的周期内, 一个工作流的拓扑序列可以表示
为{01,02,...,<^},其中r表示所有拓扑的总数,每个0,持续;7,个时间单位。于 是可得
工作流调度算法的作用是将工作流中的所有任务映射到服务进程,以生成 最优的具体工作流。算法的目标是最小化工作流在一个周期内的总费用,并使
得其在每个单位时间内的执行时间不超过一个用户定义的变量D^W/"e。
粒子群算法是一种模拟自然界中鸟群和鱼群捕食的随机搜索算法。算法要 求每个个体(粒子)在进化过程巾维持两个向量,即速度向量^=[^,^, 和位置向量X, =[、^,2,...,1,^,其中/表示粒子的编号,W是求解问题的维数。 粒子的速度决定了其运动方向和速率,而位置则体现了粒子所代表的解在解空 间中的位置。同时还要求每个粒子各自维持一个自身的历史最优位置向量
w,;ba,/^,.也就是说在进化过程中,如果粒子到达了某个适应值更好
的位置,则将该位置记录到历史最优向量中。另外,群体还维护一个全局最优
位置向量(用G表示),也就是所有粒子的户6中最优的一个,这个全局最优起 到引导粒子向该全局最优区域收敛的作用。在每一代中,粒子速度与位置更新 公式如下所示
v〃 = 、 + qx x(^ —巧)+ c2xr2yx(gy — :^y)
其中,。为惯性权重,q和q为加速系数,^和《是两个从0到1均匀分 布的随机数。
在本发明中,问题的解可以表示为
% = IX,X2,…,Xw]
其中AeZ,表示将任务/映射到进程《中,w是工作流中的任务总数量。
在每一次迭代循环中,每个粒子都会根据其自身的历史最优位置和整个群 体的历史最优位置计算速度向量,并根据此速度向量计算出下一代的新位置z,'。
由于计算出的x,'中的元素并不一定是整数,所以需要进行一定的处理。在本发明中,粒子进行位置更新后,对新位置中的每一个变量取最接近整数作为问题 的解(一个调度方案)。更新操作完成后,需要根据适应值函数对每个粒子的当 前位置进行评价。
对于一个调度《而言,适应值是根据其在一个周期内的性能给出的。由于 工作流在一个周期中有多种不同的拓扑结构,调度K的总费用就是每个拓扑结 构费用的总和。第/个拓扑的费用②巧可以根据以下公式计算
—1
其中,a"(/,力表示任务z'在拓扑/中的工作状态。如果该任务是活跃的,那么
a"(/,y')的取值为i,否则取值为o。 因此,调度《的费用如下给出
r r w
y=i 户i '=i
为了满足调度问题的期限约束,必须保证X的最大工期Kmar—mafe^aw在 任何时间单位都不能大于一个用户定义的期限。约束用数学公式的表达为
其中ma^s;x^是在第/个时间单位的工期。
《的适应值由两部分组成期限部分和费用部分。如果《的最大工期在所 有时间单位内均满足期限的约束,那么期限部分的取值为l,而费用部分的取值 则随着费用的降低而升高。在另一方面,如果《不能满足期限约束,那么期限 部分就要根据满足程度进行取值,而费用部分则被限制在一个较小的取值。每
一部分的取值区间均为(O,l],因此适应值的取值区间为(0,2]。用公式表达为
Z)eat///we m/w tota/ cast
+ -
AT.附"x—附"^s^"" /wax—tota/ _ casf
否则
其中,w/"joto/—ccw/和max—toto/—coW分别表示工作流在一个周期内最小和最大 费用。它们通过以下公式进行计算
7<formula>formula see original document page 8</formula>
粒子群算法优化动态网格工作流的流程图如图i所示。
用9任务e-Economic工作流对提出的算法进行性能上的测试。粒子群算法 的参数设置为粒子的数量等于30,最大循环次数等于250, ffl = 0.9 , c, = c2 = 0.1 。 采用多种的期限约束进行测试,粒子群算法在所有的测试中均可以得到最优或 接近最优的调度。这证明发明的算法在动态网格工作流优化中是十分有效的。
权利要求
1、一种运用粒子群算法优化动态网格工作流的万法,其特征在于,该万法包括以下步骤(1)初始化算法的各个参数,并建立第一代粒子群,粒子的编码方式为X=[x1,x2,...,xN]其中xi∈Z,表示将任务i映射到进程中,N是工作流中的任务总数量。(2)根据每个粒子所处的当前位置评估每个粒子的适应值,适应值函数为其中,K. max_makespan表示调度K的最大工期,Deadline表示期限约束,K.cost为调度K的费用,min_total_cost和max_total_cost分别表示工作流在一个周期内最小和最大费用。(3)更新每个粒子的个体最优位置,以及所有粒子的全局最佳位置。(4)每个粒子执行速度更新,更新公式为vij=ω×vij+c1×r1j×(pij-xij)+c2×r2j×(gj-xij)其中,ω为惯性权重,c1和c2为加速系数,和是两个从0到1均匀分布的随机数。(5)根据更新后的速度向量执行位置更新,更新公式为xij=xij+vij(6)对每个粒子更新后的位置执行修补。(7)如果达到结束条件则终止程序,否则返回步骤(2)。
2、基于权利要求1所述的一种运用粒子群算法优化动态网格工作流的方法,其特征在于,在执行修补策略时,位置向量中的所有变量取最接近整数。
全文摘要
本发明公开了一种运用粒子群算法优化动态网格工作流的方法。算法的目标是最小化工作流在一个周期内的总费用,并使得其在每个单位时间内的执行时间不超过一个用户定义的变量Deadline。由于动态工作流在一个周期中有多种不同的拓扑结构,调度方案的适应值是根据其在一个周期内的性能给出的,其中包含了期限部分和费用部分。此外,在传统粒子群算法的基础上加入了修补操作,使得粒子群算法能够有效地求解动态工作流调度问题。
文档编号G06N3/00GK101452541SQ20081022063
公开日2009年6月10日 申请日期2008年12月31日 优先权日2008年12月31日
发明者源 史, 军 张, 陈伟能, 韬 黄 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1