CN101477475A - 运用蚁群算法优化动态网格工作流的方法 - Google Patents
运用蚁群算法优化动态网格工作流的方法 Download PDFInfo
- Publication number
- CN101477475A CN101477475A CNA200810220654XA CN200810220654A CN101477475A CN 101477475 A CN101477475 A CN 101477475A CN A200810220654X A CNA200810220654X A CN A200810220654XA CN 200810220654 A CN200810220654 A CN 200810220654A CN 101477475 A CN101477475 A CN 101477475A
- Authority
- CN
- China
- Prior art keywords
- workflow
- task
- algorithm
- pheromones
- work flow
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 239000003016 pheromone Substances 0.000 claims abstract description 25
- 241000257303 Hymenoptera Species 0.000 claims abstract description 9
- 238000010276 construction Methods 0.000 claims abstract description 6
- 230000003044 adaptive effect Effects 0.000 claims description 10
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 7
- 238000005457 optimization Methods 0.000 abstract description 6
- 238000005728 strengthening Methods 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- KDYFGRWQOYBRFD-UHFFFAOYSA-N succinic acid Chemical compound OC(=O)CCC(O)=O KDYFGRWQOYBRFD-UHFFFAOYSA-N 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013396 workstream Methods 0.000 description 1
Images
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种使用蚁群算法求解动态网格工作流调度问题的方法。算法在一个周期内通过跟踪工作流的拓扑结构而对一个调度的性能进行评估。在蚁群算法的迭代搜索过程中,蚂蚁根据信息素和启发式信息的取值对工作流进行调度。在解的构造过程中,蚂蚁会改变它选择的路径上的信息素,称为局部信息素更新。在所有解构造完成后,算法还要进行全局信息素的更新,以加强最优解上的信息素。此外,设计出了完整的启发式信息用以平衡工作流的费用和时限。最后,通过对9任务4拓扑网格工作流的优化,证明了发明的方法是有效的。
Description
技术领域:
本发明涉及网格计算以及智能算法两大领域,主要涉及一种基于蚁群算法的动态网格工作流优化方法。
技术背景:
网格计算可以支持大范围的并行和分布式计算,被认为是有潜力的下一代计算平台。与电网类似,计算网格使得分布于不同地理位置的各种不同计算资源的共享、选择和协同运作成为可能。网格技术可以满足科学和商业上的计算需求,并且提供了解决计算密集型问题的可行方法。最近,开放式网格服务体系结构(OGSA)将网络服务引入到网格模型中,并且迅速成为了占主导地位的技术。OGSA通过引入更加丰富的计算资源而加强了网格技术。
在网格中处理的计算应用通常称为工作流。在网格的环境中,工作流定义是:一个完成复杂目标的特定的任务序列。在网格计算中,如何调度工作流以达到更高的性能是一个十分重要的问题。在OGSA中,一个任务可以由任意一组由不同的网格服务供应商提供的服务进程完成。一个具有挑战性的问题是如何将任务映射到服务进程中以满足用户对服务质量(QoS)的要求并达到工作流的最高性能。这一问题是NP-完全问题。在OGSA的环境下,工作流调度者需要平衡多个对QoS的要求,包括时限和费用等。因此,很多传统的工作流调度算法,例如OLB算法,MET算法,MCT算法,Min-min算法,Max-min算法,Duplex算法,Sufferage算法和HEFT算法等并不适用。
近年来,带有多个QoS要求的网格工作流调度问题成为了研究的热点。由于网格应用的规模越来越大,传统的确定性算法往往不能给出令人满意的解。因此,元启发式算法得到研究人员的更多关注,包括蚁群算法和粒子群算法等。但是,已提出的方法只能针对拓扑结构不变的工作流进行处理。在日常应用中,还存在另一种拓扑结构会随着时间变化的动态工作流。例如,一些科学工作流会在不同的计算阶段采用不同的拓扑结构。此外,许多商业工作流也运用多种拓扑以完成长期的业务流程。为了解决动态工作流的调度问题,调度者需要在一个周期中考虑工作流的性能并给出最优的调度方案。
本发明的目标是解决在网格中的时变工作流调度问题,最小化在一个周期中的总费用并满足时限的约束。
发明内容:
本发明将蚁群算法运用到动态网格工作流的优化中。算法的具体步骤包括:
(1)初始化算法的各个参数,并设置信息素的初始值为τ0,其取值由以下公式决定:
其中,min_total_cost和max_total_cost分别表示工作流在一个周期内最小和最大费用。
公式中q∈[0,1]为一个随机数,q0∈[0,1]为一个预先定义的算法参数。β≥1是决定信息素和启发式信息相对影响的参数。
启发式信息的计算方法为:
其中,表示费用的启发式信息而则表示执行时间的启发式信息。
τij=(1-ρ)·τij+ρ·τ0
其中,ρ∈(0,1)是一个参数。
(3)评估所有蚂蚁构造出的解的适应值,使用的适应值函数为:
其中,Kmax_makespan表示调度K的最大工期,Deadline表示期限约束,K.cost为调度K的费用。
其中,K.fitness表示调度K的适应值。
(5)如果达到结束条件则终止程序,否则返回步骤(2)。
本发明考虑的是网格环境中的动态工作流调度问题,调度的目标是最小化在一个周期的内的费用,并且满足期限的约束条件。发明的算法通过追踪工作流调度一个周期内的拓扑变化来计算其性能。此外,设计了完整的启发式信息用以平衡问题的目标和约束条件。因此,发明的算法在动态工作流调度问题的求解上是十分有效的。
附图说明:
图1 蚁群算法优化动态网格工作流的流程图
图2 e-Economic工作流的基本结构图
具体实施方式:
以下结合附图进一步对发明的方法进行描述。
网格工作流可以以有向无环图(DAG)的形式给出:G=(V,A)。在该模型中,令n为工作流中任务的数量,节点的集合V={T1,T2,…,Tn}对应工作流中的任务。箭线的集合A表示任务之间的优先次序关系。一条箭线用(Ti,Tj)表示,其中Ti称为Tj的父任务,而Tj称为Ti的子任务。在正常情况下,一个子任务只能在其所有父任务都完成后才能开始执行。
每个任务Ti(1≤i≤n)都有一个执行范围 其中表示由工作站提供的一个服务进程,mi表示Ti可用的服务进程的数量。一个服务进程的属性可以用一组四个变量来表示其中,表示所属的工作站是 和分别代表的执行时间和费用。
在动态工作流中,每个任务都有两种工作状态:活跃和不活跃。只有当任务处于活跃(也就是工作)状态时,它才能影响工作流的总体费用和时间。工作流的拓扑定义为由所有活跃的任务所组成的一个工作流结构。时间单位是指一个预定义的整个工作流完整执行一次的时间段。一个周期由多个时间单位组成。假设在一个带有P个时间单位的周期内,一个工作流的拓扑序列可以表示为{Φ1,Φ2,...,ΦГ},其中Г表示所有拓扑的总数,每个Φi持续pi个时间单位。于是可得:
工作流调度算法的作用是将工作流中的所有任务映射到服务进程,以生成最优的具体工作流。算法的目标是最小化工作流在一个周期内的总费用,并使得其在每个单位时间内的执行时间不超过一个用户定义的变量Deadline。
在本发明中,运用蚁群算法求解在网格环境下的动态工作流调度问题。蚁群算法运用一系列人工蚂蚁,通过信息素的释放和追踪,进行循环搜索问题的最优解。在每一个循环里,每只蚂蚁根据信息素和启发式信息选择组成部分以构造出问题的一个解。在解的构造过程中,蚂蚁会改变它选择的路径上的信息素,称为局部信息素更新。在所有解构造完成后,算法还要进行全局信息素的更新,以加强最优解上的信息素。
其中, 这样费用较低的服务进程就带有更高的启发式信息。
通过比较一个进程的执行时间与对应任务估计的执行期限(ESD)而计算得出。ESD可以在所有任务都活跃的拓扑结构中计算得出。在计算ESD之前,首先需要计算每个任务的最早开始时间以及后向最早开始时间。任务Ti的最早开始时间(ESTi)的计算方法为:将每个任务Ti映射到执行时间最短的服务进程中,ESTi等于在这种映射下任务Ti的开始时间。此外,在这种映射方法下的工作流执行总工期可以被看作估计的最小总工期,并用min_Makespan表示。任务Ti的后向最早开始时间(BESTi)的计算方法为:通过将DAG中的开始节点作为结束节点,将结束节点作为开始节点,并将所有的箭线的方向反转,就可以将DAG转换为一个后向网络。对于每个任务Ti,在后向网络中的ESTi值就是BESTi。
基于以上两个时间,就可以计算任务Ti的平均最短执行时间:
任务Ti的估计执行期限可以如下进行计算
MAT=max{|max_timei-ESDi|,|ESDi-min_timei|}
根据以上的公式,执行时间小于ESD的服务进程将被赋予同样的启发式信息。对于执行时间超出ESD的服务进程,执行时间越长那么启发式信息就越小。
在蚁群算法中,蚂蚁通过调整信息素来指导后续的搜索过程。在算法的初始化阶段,所有的信息素都设置为一个初始值τ0,其取值由以下公式决定:
其中,min_total_cost和max_total_cost分别表示工作流在一个周期内最小和最大费用。
τij=(1-ρ)·τij+ρ·τ0
其中,ρ∈(0,1)是一个参数。由于τ0同时也是信息素的最低值,因此局部信息素更新的作用是降低τij的取值以增加算法的多样性。
基于定义好的启发式信息和信息素,蚂蚁就可以进行解的构造了。在每一次循环中,蚂蚁分N步对问题的解进行构造。在构造解的每一步中,蚂蚁会基于信息素和启发式信息选择一个服务进程,并将任务队列中第一个未映射的任务映射到这个服务进程中。选择将任务Ti映射到的方法为
在这种选择方法中,生成一个随机数q∈[0,1],并将其与一参数q0∈[0,1]比较。如果q≤q0,那么蚂蚁就会将Ti映射到含有最大值的服务进程中。否则,将运用轮盘赌的选择方法,也就是选择的可能性与大小成正比。其中,β≥1是决定信息素和启发式信息相对影响的参数。
在所有蚂蚁完成解的构造后,需要根据适应值函数判断每个解的优劣。对于一个调度K而言,适应值是根据其在一个周期内的性能给出的。由于工作流在一个周期中有多种不同的拓扑结构,调度K的总费用就是每个拓扑结构费用的总和。第j个拓扑的费用costj可以根据以下公式计算:
其中,act(i,j)表示任务i在拓扑j中的工作状态。如果该任务是活跃的,那么act(i,j)的取值为1,否则取值为0。
因此,调度K的费用如下给出:
为了满足调度问题的期限约束,必须保证K的最大工期K.max_makespan在任何时间单位都不能大于一个用户定义的期限。约束用数学公式的表达为:
K.max_makespan=max1≤i≤PK.makespani≤Deadline
其中K.makespani是在第i个时间单位的工期。
K的适应值由两部分组成:期限部分和费用部分。如果K的最大工期在所有时间单位内均满足期限的约束,那么期限部分的取值为1,而费用部分的取值则随着费用的降低而升高。在另一方面,如果K不能满足期限约束,那么期限部分就要根据满足程度进行取值,而费用部分则被限制在一个较小的取值。每一部分的取值区间均为(0,1],因此适应值的取值区间为(0,2]。用公式表达为:
其中,min_total_cost和max_total_cost分别表示工作流在一个周期内最小和最大费用。它们通过以下公式进行计算:
蚁群算法优化动态网格工作流的流程图如图1所示。
用一个实例对提出的算法进行性能上的测试。图2是9任务e-Economic工作流的基本结构图。假设工作流的运行周期为30个时间单位,运行时间刚好每时间单位一次。除了T4和T5以外所有任务在整个时间段内都处于工作状态。但是,T4和T5的工作状态是可变的,因此工作流在一个周期内有4种不同的拓扑结构。在实验中,随机为工作流中的每个任务赋予6到10个进程,这些进程的费用和执行时间也是随机初始化的。算法的参数设置为:蚂蚁数量等于30,最大循环次数等于250,β=1.2,ρ=0.1,q0=0.5。实验设置了多个不同的期限约束,并对每种约束运用发明的算法进行100次求解。在所有执行结果中,蚁群算法均可以得到最优或接近最优的调度。这证明发明的算法在动态网格工作流优化中是十分有效的。
Claims (4)
1、一种运用蚁群算法优化动态网格工作流的方法,其特征在于,该方法包括以下步骤:
(1)初始化算法的各个参数,并设置信息素的初始值为τ0。
公式中q∈[0,1]为一个随机数,q0∈[0,1]为一个预先定义的算法参数。β≥1是决定信息素和启发式信息相对影响的参数。
τij=(1-ρ)·τij+ρ·τ0
其中,ρ∈(0,1)是一个参数。
(3)评估所有蚂蚁构造出的解的适应值。
(4)执行全局信息素的更新。加强历史最优解上的信息素。假设K(K1,K1,...,Kn)(表示任务Ti映射到服务进程)是历史最优解,那么更新公式为:
其中,K.fitness表示调度K的适应值。
(5)如果达到结束条件则终止程序,否则返回步骤(2)。
2、基于权利要求1所述的一种运用蚁群算法优化动态网格工作流的方法,其特征在于信息素的初始值为τ0由以下公式决定:
其中,min_total_cost和max_total_cost分别表示工作流在一个周期内最小和最大费用。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810220654XA CN101477475A (zh) | 2008-12-31 | 2008-12-31 | 运用蚁群算法优化动态网格工作流的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA200810220654XA CN101477475A (zh) | 2008-12-31 | 2008-12-31 | 运用蚁群算法优化动态网格工作流的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101477475A true CN101477475A (zh) | 2009-07-08 |
Family
ID=40838197
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA200810220654XA Pending CN101477475A (zh) | 2008-12-31 | 2008-12-31 | 运用蚁群算法优化动态网格工作流的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101477475A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895421A (zh) * | 2010-07-02 | 2010-11-24 | 北京邮电大学 | 通信资源调配方法 |
CN101944157A (zh) * | 2010-08-19 | 2011-01-12 | 中国船舶重工集团公司第七○九研究所 | 一种应用与仿真网格系统的生物智能调度方法 |
CN101957777A (zh) * | 2010-09-09 | 2011-01-26 | 西北工业大学 | 一种数据处理流程的调度方法 |
CN103246811A (zh) * | 2013-04-25 | 2013-08-14 | 中山大学 | 基于蚁群优化的医疗系统入院调度方法 |
CN103970609A (zh) * | 2014-04-24 | 2014-08-06 | 南京信息工程大学 | 一种基于改进蚁群算法的云数据中心任务调度方法 |
CN106228265A (zh) * | 2016-07-18 | 2016-12-14 | 中山大学 | 基于改进粒子群优化的总拖期运输计划调度算法 |
CN107133088A (zh) * | 2017-04-19 | 2017-09-05 | 武汉科技大学 | 一种基于粒子群算法的多核系统任务调度方法 |
CN107945280A (zh) * | 2017-12-12 | 2018-04-20 | 苏州蜗牛数字科技股份有限公司 | 一种模拟真实星球生态分布的方法 |
CN109545348A (zh) * | 2018-11-15 | 2019-03-29 | 华南理工大学 | 一种基于蚂蚁系统优化的医院床位安排方法 |
-
2008
- 2008-12-31 CN CNA200810220654XA patent/CN101477475A/zh active Pending
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101895421A (zh) * | 2010-07-02 | 2010-11-24 | 北京邮电大学 | 通信资源调配方法 |
CN101944157A (zh) * | 2010-08-19 | 2011-01-12 | 中国船舶重工集团公司第七○九研究所 | 一种应用与仿真网格系统的生物智能调度方法 |
CN101944157B (zh) * | 2010-08-19 | 2014-09-03 | 中国船舶重工集团公司第七0九研究所 | 一种应用于仿真网格系统的生物智能调度方法 |
CN101957777B (zh) * | 2010-09-09 | 2012-11-21 | 西北工业大学 | 一种数据处理流程的调度方法 |
CN101957777A (zh) * | 2010-09-09 | 2011-01-26 | 西北工业大学 | 一种数据处理流程的调度方法 |
CN103246811A (zh) * | 2013-04-25 | 2013-08-14 | 中山大学 | 基于蚁群优化的医疗系统入院调度方法 |
CN103970609A (zh) * | 2014-04-24 | 2014-08-06 | 南京信息工程大学 | 一种基于改进蚁群算法的云数据中心任务调度方法 |
CN103970609B (zh) * | 2014-04-24 | 2017-03-08 | 南京信息工程大学 | 一种基于改进蚁群算法的云数据中心任务调度方法 |
CN106228265A (zh) * | 2016-07-18 | 2016-12-14 | 中山大学 | 基于改进粒子群优化的总拖期运输计划调度算法 |
CN106228265B (zh) * | 2016-07-18 | 2019-12-03 | 中山大学 | 基于改进粒子群优化的总拖期运输计划调度方法 |
CN107133088A (zh) * | 2017-04-19 | 2017-09-05 | 武汉科技大学 | 一种基于粒子群算法的多核系统任务调度方法 |
CN107945280A (zh) * | 2017-12-12 | 2018-04-20 | 苏州蜗牛数字科技股份有限公司 | 一种模拟真实星球生态分布的方法 |
CN107945280B (zh) * | 2017-12-12 | 2021-12-28 | 苏州蜗牛数字科技股份有限公司 | 一种模拟真实星球生态分布的方法 |
CN109545348A (zh) * | 2018-11-15 | 2019-03-29 | 华南理工大学 | 一种基于蚂蚁系统优化的医院床位安排方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101477475A (zh) | 运用蚁群算法优化动态网格工作流的方法 | |
CN101237469B (zh) | 运用蚁群算法优化多QoS网格工作流的方法 | |
CN106055395B (zh) | 一种基于蚁群优化算法的云环境中截止时间约束工作流调度方法 | |
Fard et al. | A multi-objective approach for workflow scheduling in heterogeneous environments | |
Salot | A survey of various scheduling algorithm in cloud computing environment | |
CN107831685B (zh) | 一种群体机器人的控制方法和系统 | |
CN103699446A (zh) | 基于量子粒子群优化算法的多目标工作流动态调度方法 | |
Wu et al. | Gini coefficient-based task allocation for multi-robot systems with limited energy resources | |
CN106875090A (zh) | 一种面向动态任务的多机器人分布式任务分配形成方法 | |
Yang et al. | An utility-based job scheduling algorithm for cloud computing considering reliability factor | |
CN109617826A (zh) | 一种基于布谷鸟搜索的storm动态负载均衡方法 | |
Liu et al. | Handling recoverable temporal violations in scientific workflow systems: a workflow rescheduling based strategy | |
CN105450684B (zh) | 云计算资源调度方法和系统 | |
CN103914754A (zh) | 一种工作流的任务调度方法、多工作流调度方法及其系统 | |
CN101452541A (zh) | 运用粒子群算法优化动态网格工作流的方法 | |
CN104035819B (zh) | 科学工作流调度处理方法及装置 | |
CN105242966A (zh) | 一种面向自主获能异构系统的非精确实时任务调度方法 | |
Yang et al. | Onboard coordination and scheduling of multiple autonomous satellites in an uncertain environment | |
CN104994150A (zh) | 一种面向云视频服务的请求分配方法 | |
CN111309472A (zh) | 一种基于虚拟机预部署的在线虚拟资源分配方法 | |
Balla et al. | Reliability-aware: task scheduling in cloud computing using multi-agent reinforcement learning algorithm and neural fitted Q. | |
CN106407007B (zh) | 面向弹性分析流程的云资源配置优化方法 | |
Singh et al. | A comparative study of various scheduling algorithms in cloud computing | |
Ye et al. | Dynamic scheduling stochastic multiworkflows with deadline constraints in clouds | |
CN103076777A (zh) | 一种控制多机器人服务量的处理方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20090708 |