基于差分演化算法的任务分配算法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
姜爱晓高级操作系统课程报告论文2010.12
基于差分演化算法的分布式系统任务分配 姜爱晓
(中国地质大学(武汉) 计算机学院,武汉430074)
摘要: 在分布式系统中任务分配问题是急需解决的重要问题之一。随着分布式系统规模的扩大,任务分配问题越来越复杂,多处理机的任务分配问题已被证明是NP问题,因此,当系统规模增大时对全部策略进行完全搜的方法不再试用,设计快速有效的智能搜索算法显得至关重要。本文针对分布式系统中的任务分配问题设计了基于差分演化算法的任务分配方法。差分演化算法(Differential Evolution.DE)是这样一种新型的演化算法是解决复杂优化问题的有效技术。与传统的遗传算法相似,但是差分演化算法具有简单易用、收敛速度快、控制参数少等特点。
关键词: 分布式系统;任务分配;差分演化算法
1 任务分配问题定义
在分布式系统中,一个程序可以看作一个任务集,这些任务可以并行或串行地执行,任务之间有一定的优先次序约束关系。调度问题的目标是在满足一定的性能指标和优先约束关系的前提下,将可并行的任务按适当的分配策略确定一种分派和执行顺序,合理分配到各处理机上有序执行,以达到减少总的执行时间的目标。
性能和效率是评价调度系统的两个基本特征。我们应以任务调度的质量和调度算法(调度程序本身)的效率为基础来评价调度系统。调度质量以产生的优化调度的性能为基础来衡量;调度短发的效率以时间复杂性为基础来衡量。例如,若以优化一个程序的完成时间来衡量,显然完成时间越短越好;若两个调度算法产生相同的调度质量,则调度算法越简单越好。
2 问题数学描述
设V={ m1 , m2 ,…, m n}为n个模块构成的任务集合,G=(V, E) i
E={( m i , m j ) | m i与m j之间存在的IMC开销}
x ij=1 表示m i分配给处理机P j 0 表示m i未分配给处理机P j
q ij表示m i在处理机P j上的开销;
C ij表示m i与m j之间的IMC (Intermodule Communication)开销。则总开销可以记为:
C X=q ik x ik+C ij x ik x jh
k
i
h j (1) 任务分配的目标就是使总开销最小 3 差分演化算法 在求解优化问题时,通常人们要求优化技术满足以下三条[25]。第一,无论系统初始参数如何设置,优化算法应当能找到真正的全局最优值;第二,收敛速度要快;第三,优化算法的控制参数尽可能少。差分演化算法(Differential Evolution.DE)就是这样一种新型的优化算法。差分演化算法是由Storn和Price等人于1996年提出的,最初的设想是用于解决切比雪夫多项式问题,后来发现它也是解决复杂优化问题的有效技术。差分演化算法具有简单易用、收敛速度快、控制参数少等特点,在1996年举行的首届IEEE演化计算大赛中表现超群,随后就以其稳健性和强大的全局寻优能力成功应用于诸多领域。 3.1 差分演化算法基本原理 1995年Storn等人提出了差分演化算法(DE: Differential Evolution)[3],最初的设想是用来解决切比雪夫多项式问题,后来发现差分演化算法在解决复杂优化问题中有优良的表现。差分演化算法在基本构架和操作上与遗传算法(GA: Genetic Algorithm)十分相似,如图1所示差分演化算法与遗传算法都包括种群初始化、变异、交叉和选择,从流程图中可看出他们之间明显不同的是变异和选择的顺序。实质上差分演化算法是基于实属编码的而基本的遗传算法是二进制编码的,所以它们两者之间在具体的变异交叉和选择操作中都是不同的。 (a)差分演化算法(b)遗传算法 Fig.1 Flow Chart Contrast between Differential Evolution and Genetic Algorithm 图1 差分演化算法与遗传算法流程图对比 差分演化算法变异、交叉、选择的具体操作以及他们在模糊特征子集搜索中的含义如下: (1) 初始化 设DE 的全局最优点在D 维实数空间RD 内,首先随机初始化一个种群,种群由NP 个个体组成,NP 是种群的规模,个体是一个RD 空间上的D 维向量如公式(2)。 X i,G = x 1,i,G ,x 2,i,G ,x 3,i,G ,⋯,x D,i,G (2) 其中x1,i,G 表示第G 代种群中第i 个个体上的第1个基因,也就是第1维变量对应的一个是数值,其它的x2,i,G ,x2,i,G 。。。 xD,i,G 定义相似。初始化的过程就是随机的初始化NP 个如公式(2)的个体作为初始种群(G=0)。 (2) 差分变异 DE 中的变异操作中当前种群中的一个个体向量被称作目标向量X r1i,G (target vector),再由当前种群中的基向量X r2i,G (donor vector)经过差分变异操作生成变异向量X r3i,G (mutant vector),然后将变异向量与目标向量再结合形成试验向量V i,G (trial vector)。试验向量的生成就是差分演化算法的变异过程可以表达为公式(3)。 V i,G =X r 1i ,G +F X r 2i ,G +X r 3 i ,G (3) 其中,F 为缩放因子,是差分演化算法的控制参数之一,r1,r2,r3∈{1,2 … NP)互不相同且与i 不同。图2以2维空间为例形象地展示了差分变异的过程。 Fig.2 Illustrating a simple DE mutation scheme in 2-D parametric space. 图2 2-D 变量空间的差分变异机制举例 (3) 交叉 差分演化算法的交叉机制有两种,一种为二进制交叉另一种是指数交叉。本文所应用的差分演化算法全部采用二进制交叉操作,具体操作如公式(4)。 u j,i,G = v j,i,G if rand i,j 0,1 ≤Cr or j =j rand x j,i,G otherwise (4)