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

文档序号:6597072阅读:328来源:国知局
专利名称:运用蚁群算法优化动态网格工作流的方法
技术领域
本发明涉及网格计算以及智能算法两大领域,主要涉及一种基于蚁群算法 的动态网格工作流优化方法。 技术背景
网格计算可以支持大范围的并行和分布式计算,被认为是有潜力的下一代 计算平台。与电网类似,计算网格使得分布于不同地理位置的各种不同计算资 源的共享、选择和协同运作成为可能。网格技术可以满足科学和商业上的计算 需求,并且提供了解决计算密集型问题的可行方法。最近,开放式网格服务体 系结构(OGSA)将网络服务引入到网格模型中,并且迅速成为了占主导地位的 技术。OGSA通过引入更加丰富的计算资源而加强了网格技术。
在网格中处理的计算应用通常称为工作流。在网格的环境中,工作流定义 是 一个完成复杂目标的特定的任务序列。在网格计算中,如何调度工作流以 达到更高的性能是一个十分重要的问题。在OGSA中, 一个任务可以由任意一 组由不同的网格服务供应商提供的服务进程完成。 一个具有挑战性的问题是如 何将任务映射到服务进程中以满足用户对服务质量(QoS)的要求并达到工作流 的最高性能。这一问题是NP-完全问题。在OGSA的环境下,工作流调度者需 要平衡多个对QoS的要求,包括时限和费用等。因此,很多传统的工作流调度 算法,例如OLB算法,MET算法,MCT算法,Min-min算法,Max-min算法, Duplex算法,Sufferage算法和HEFT算法等并不适用。
近年来,带有多个QoS要求的网格工作流调度问题成为了研究的热点。由 于网格应用的规模越来越大,传统的确定性算法往往不能给出令人满意的解。 因此,元启发式算法得到研究人员的更多关注,包括蚁群算法和粒子群算法等。 但是,已提出的方法只能针对拓扑结构不变的工作流进行处理。在日常应用中, 还存在另一种拓扑结构会随着时间变化的动态工作流。例如, 一些科学工作流 会在不同的计算阶段采用不同的拓扑结构。此外,许多商业工作流也运用多种 拓扑以完成长期的业务流程。为了解决动态工作流的调度问题,调度者需要在
4一个周期中考虑工作流的性能并给出最优的调度方案。
本发明的目标是解决在网格中的时变工作流调度问题,最小化在一个周期 中的总费用并满足时限的约束。

发明内容
本发明将蚁群算法运用到动态网格工作流的优化中。算法的具体步骤包括:
(1) 初始化算法的各个参数,并设置信息素的初始值为T。,其取值由以下 公式决定
其中,w/w—tota/—cos,和wax—toto/—分别表示工作^i在一个周期内最小和最大 费用。
(2) 所有蚂蚁进行解的构造。在构造解的每一步中,蚂蚁会基于信息素和 启发式信息选择一个服务进程,并将任务队列中第一个未映射的任务映射到这 个服务进程中。选择将任务7}映射到《的方法为
^:丁argmax一,/r,,《"。 '—l执行轮盘赌, 否则
公式中《e
为一个随机数,g。s
为一个预先定义的算法参数。y321是决 定信息素和启发式信息相对影响的参数。 启发式信息的计算方法为
其中,^表示费用的启发式信息而w则表示执行时间的启发式信息。
当蚂蚁将一个任务7V映射到一个服务进程s/后,马上执行局部信息素的更 新。局部信息素更新的方法由以下公式给出
其中,pe(O,l)是一个参数。
C3) 评估所有蚂蚁构造出的解的适应值,使用的适应值函数为De"必V7e m/w tota/ cos/
《.附ax—附aA:esp"w 附ax—tota/—cast
, 附/w to/a/ cast
1+-^-=-,,并将其与一参数g。e
比 较。如果^S^,那么蚂蚁就会将T)映射到含有最大^./^值的服务进程中。否 则,将运用轮盘赌的选择方法,也就是选择《的可能性与、/T"大小成正比。其 屮,iS21是决定信息素和启发式信息相对影响的参数。
在所有蚂蚁完成解的构造后,需要根据适应值函数判断每个解的优劣。对 于一个调度K而言,适应值是根据其在一个周期内的性能给出的。由于工作流 在一个周期中有多种不同的拓扑结构,调度K的总费用就是每个拓扑结构费用 的总和。第y'个拓扑的费用^巧可以根据以下公式计算其中,a"(f,刀表示任务/在拓扑y中的工作状态。如果该任务是活跃的,那么 ad(/,))的取值为1,否则取值为0。 因此,调度X的费用如下给出
为了满足调度问题的期限约束,必须保证《的最大工期尤mox—w^e^^"在 任何时间单位都不能大于一个用户定义的期限。约束用数学公式的表达为
其中/Cma;^/^",是在第z'个时间单位的工期。
《的适应值由两部分组成期限部分和费用部分。如果K的最大工期在所 有时间单位内均满足期限的约束,那么期限部分的取值为l,而费用部分的取值
则随着费用的降低而升高。在另一方面,如果《不能满足期限约束,那么期限 部分就要根据满足程度进行取值,而费用部分则被限制在一个较小的取值。每
一部分的取值区间均为(O,l],因此适应值的取值区间为(0,2]。用公式表达为
toto/+ .
max—maA:aspaw 附ax—foto/ — cosf 如果附ax—mafe5/ aw > Z)ea必'we
、 附/" 欣a/ coM
1 + ~~=-=-,
否则
其中,w/w—toto/一coW和max—toto/—casf分别表示工作流在一个周期内最小和最大 费用。它们通过以下公式进行计算
r w
蚁群算法优化动态网格工作流的流程图如图i所示。
用一个实例对提出的算法进行性能上的测试。图2是9任务e-Economic工
10作流的基本结构图。假设工作流的运行周期为30个时间单位,运行时间刚好每
时间单位一次。除了7;和r5以外所有任务在整个时间段内都处于工作状态。但 是,7^和r5的工作状态是可变的,因此工作流在一个周期内有4种不同的拓扑
结构。在实验中,随机为工作流中的每个任务赋予6到10个进程,这些进程的
费用和执行时间也是随机初始化的。算法的参数设置为蚂蚁数量等于30,最
大循环次数等于250,戶=1.2, p = 0.1,《。=0.5。实验设置了多个不同的期限 约束,并对每种约束运用发明的耸法进行100次求解。在所有执行结果中,蚁
群算法均可以得到最优或接近最优的调度。这证明发明的算法在动态网格工作 流优化中是十分有效的。
权利要求
1、一种运用蚁群算法优化动态网格工作流的方法,其特征在于,该方法包括以下步骤(1)初始化算法的各个参数,并设置信息素的初始值为τ0。(2)所有蚂蚁进行解的构造。在构造解的每一步中,蚂蚁会基于信息素和启发式信息选择一个服务进程,并将任务队列中第一个未映射的任务映射到这个服务进程中。选择将任务Ti映射到的方法为公式中q∈
为一个随机数,q0∈
为一个预先定义的算法参数。β≥1是决定信息素和启发式信息相对影响的参数。当蚂蚁将一个任务Ti映射到一个服务进程后,马上执行局部信息素的更新。局部信息素更新的方法由以下公式给出τij=(1-ρ)·τij+ρ·τ0其中,ρ∈(0,1)是一个参数。(3)评估所有蚂蚁构造出的解的适应值。(4)执行全局信息素的更新。加强历史最优解上的信息素。假设K(K1,K1,...,Kn)(表示任务Ti映射到服务进程)是历史最优解,那么更新公式为i=1,2,...,n其中,K. fitness表示调度K的适应值。(5)如果达到结束条件则终止程序,否则返回步骤(2)。
2、基于权利要求1所述的一种运用蚁群算法优化动态网格工作流的方法, 其特征在于信息素的初始值为i:。由以下公式决定<formula>formula see original document page 2</formula>其中,mz'"一toto/一coW和max—toto/一coW分别表示工作流在一个周期内最小和最大 费用。
3、基于权利要求1所述的一种运用蚁群算法优化动态网格工作流的方法,其特征在于启发式信息的计算方法为其中,";表示费用的启发式信息而《则表示执行时间的启发式信息。
4、基于权利要求1所述的一种运用蚁群算法优化动态网格工作流的方法,其特征在于使用的适应值函数为<formula>formula see original document page 3</formula>否则其中,Kmocc—mafes;xw表示调度K的最大工期,表示期限约束,coW 为调度《的费用。
全文摘要
本发明公开了一种使用蚁群算法求解动态网格工作流调度问题的方法。算法在一个周期内通过跟踪工作流的拓扑结构而对一个调度的性能进行评估。在蚁群算法的迭代搜索过程中,蚂蚁根据信息素和启发式信息的取值对工作流进行调度。在解的构造过程中,蚂蚁会改变它选择的路径上的信息素,称为局部信息素更新。在所有解构造完成后,算法还要进行全局信息素的更新,以加强最优解上的信息素。此外,设计出了完整的启发式信息用以平衡工作流的费用和时限。最后,通过对9任务4拓扑网格工作流的优化,证明了发明的方法是有效的。
文档编号G06F9/46GK101477475SQ20081022065
公开日2009年7月8日 申请日期2008年12月31日 优先权日2008年12月31日
发明者源 史, 军 张, 陈伟能, 韬 黄 申请人:中山大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1