发明名称 基于集合型离散粒子群优化的云工作流调度方法
摘要 本发明公开了一种基于集合型离散粒子群优化算法的云工作流调度方法,该方法针对带有不同服务质量QoS需求的云工作流调度问题,采用了一类新型的集合型粒子群优化算法,通过将粒子群优化的速度、位置和相关的更新操作在离散的集合空间重定义,从而能够满足对离散空间的云工作流调度优化问题的应用需求,提高了云工作流调度的效率。
申请公布号 CN103268529A 申请公布日期 2013.08.28
申请号 CN201310171881.9 申请日期 2013.04.25
申请人 中山大学 发明人 张军;陈伟能;刘宇;彭浩林
分类号 G06Q10/06(2012.01)I;G06N3/00(2006.01)I;H04L29/08(2006.01)I 主分类号 G06Q10/06(2012.01)I
代理机构 代理人
主权项 1.一种基于集合型离散粒子群优化算法的云工作流调度方法,其特征在于,采用了集合型离散粒子群算法来实现对云工作流的调度,算法具有如下的计算步骤:(1)初始化算法的各个参数,并建立第一代粒子群的位置和初始速度,粒子的编码方式为:X=(X<sup>1</sup>,X<sup>2</sup>,...,X<sup>n</sup>)其中X<sup>i</sup>∈S<sub>i</sub>,S<sub>i</sub>表示能用于执行第i个任务T<sub>i</sub>的所有云计算服务的集合,初始化时X<sup>i</sup>用完全随机的方式生成;速度的编码方式为:V=(V<sup>1</sup>,V<sup>2</sup>,...,V<sup>n</sup>)其中每一维度是一个带有可能性的集合V<sup>j</sup>={e/p(e)|e∈S<sub>j</sub>},表示集合S<sub>j</sub>中的每一个元素e都关联着一个可能性p(e),初始化时随机从S<sub>j</sub>里面选择一个元素,并且分配一个随机的可能性p(e)∈(0,1]给这个元素,其它所有没选的元素的可能性都为0;(2)根据粒子当前的位置评估每个粒子的适应度值;(3)更新每个粒子的个体最优位置;(4)更新粒子的速度,公式为:<maths num="0001"><![CDATA[<math><mrow><msubsup><mi>v</mi><mi>i</mi><mi>j</mi></msubsup><mo>&LeftArrow;</mo><mi>&omega;</mi><mo>&CenterDot;</mo><msubsup><mi>v</mi><mi>i</mi><mi>j</mi></msubsup><mo>+</mo><msup><mi>cr</mi><mi>j</mi></msup><mrow><mo>(</mo><msubsup><mi>pbest</mi><mrow><msub><mi>f</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow><mi>j</mi></msubsup><mo>-</mo><msubsup><mi>x</mi><mi>i</mi><mi>j</mi></msubsup><mo>)</mo></mrow><mo>,</mo><mi>j</mi><mo>=</mo><mn>1,2</mn><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><mi>n</mi></mrow></math>]]></maths>其中下标i表示第i个粒子,上标j表示维度,ω是惯性权重,c是参数,r<sup>j</sup>是位于[0,1]区间的随机数,<img file="FSA00000892913600012.GIF" wi="185" he="67" />表示第f<sub>i</sub>(j)个粒子的历史最优位置的第j维,f<sub>i</sub>(j)定义如下:首先产生一个处于[0,1]区间的随机数ran,如果ran比给定的参数Pc大,f<sub>i</sub>(j)=i,否则算法会对两个随机选择的粒子进行锦标赛选择,适应度值更大的那个会被选中为f<sub>i</sub>(j);在这个更新公式中,由于速度和位置的定义已经不再在连续的实数空间中定义,而是在离散的集合空间中定义,因此更新公式的相关操作也需要重新定义:(i)参数×速度:cV={e/p<sup>l</sup>(e)|e∈E},<maths num="0002"><![CDATA[<math><mrow><msup><mi>p</mi><mi>l</mi></msup><mrow><mo>(</mo><mi>e</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><mi>if c</mi><mo>&times;</mo><mi>p</mi><mrow><mo>(</mo><mi>e</mi><mo>)</mo></mrow><mo>></mo><mn>1</mn></mtd></mtr><mtr><mtd><mi>c</mi><mo>&times;</mo><mi>p</mi><mrow><mo>(</mo><mi>e</mi><mo>)</mo></mrow><mo>,</mo></mtd><mtd><mi>otherwise</mi></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>(ii)位置-位置:<maths num="0003"><![CDATA[<math><mrow><mi>A</mi><mo>-</mo><mi>B</mi><mo>=</mo><mo>{</mo><mi>e</mi><mo>|</mo><mi>e</mi><mo>&Element;</mo><mi>A and e</mi><mo>&NotElement;</mo><mi>B</mi><mo>}</mo></mrow></math>]]></maths>(iii)参数×(位置-位置):cE<sup>l</sup>={e/p<sup>l</sup>(e)|e∈E},<maths num="0004"><![CDATA[<math><mrow><msup><mi>p</mi><mi>l</mi></msup><mrow><mo>(</mo><mi>e</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><mi>if e</mi><mo>&Element;</mo><msup><mi>E</mi><mi>l</mi></msup><mi>and c</mi><mo>></mo><mn>1</mn></mtd></mtr><mtr><mtd><mi>c</mi><mo>,</mo></mtd><mtd><mi>if e</mi><mo>&Element;</mo><msup><mi>E</mi><mi>l</mi></msup><mi>and</mi><mn>0</mn><mo>&le;</mo><mi>c</mi><mo>&le;</mo><mn>1</mn></mtd></mtr><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><mi>if e</mi><mo>&NotElement;</mo><msup><mi>E</mi><mi>l</mi></msup></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>(iv)速度+速度:V<sub>1</sub>+V<sub>2</sub>={e/max(p<sub>1</sub>(e),p<sub>2</sub>(e))|e∈E}(5)更新粒子的位置,由于在重新定义的离散空间里不能简单由速度加位置来更新粒子的位置,故采用如下4步来更新粒子的位置:(i)速度矢量V<sub>i</sub>的每一个维度<img file="FSA00000892913600024.GIF" wi="53" he="59" />都用来生成另一个确定的集合<maths num="0005"><![CDATA[<math><mrow><msub><mi>cut</mi><mi>&alpha;</mi></msub><mrow><mo>(</mo><msubsup><mi>V</mi><mi>i</mi><mi>j</mi></msubsup><mo>)</mo></mrow><mo>=</mo><mo>{</mo><mi>e</mi><mo>|</mo><mi>e</mi><mo>/</mo><mi>p</mi><mrow><mo>(</mo><mi>e</mi><mo>)</mo></mrow><mo>&Element;</mo><msubsup><mi>V</mi><mi>i</mi><mi>j</mi></msubsup><mi>and p</mi><mrow><mo>(</mo><mi>e</mi><mo>)</mo></mrow><mo>&GreaterEqual;</mo><mi>&alpha;</mi><mo>}</mo><mo>;</mo></mrow></math>]]></maths>(ii)第i个粒子开始建立新的位置,由一个空集开始,粒子从<img file="FSA00000892913600026.GIF" wi="184" he="65" />里面选择一个可行元素加到新的位置里面;(iii)如果<img file="FSA00000892913600027.GIF" wi="182" he="60" />里面没有可行解,并且新位置的构造还没有结束,则从当前的位置<img file="FSA00000892913600028.GIF" wi="63" he="60" />里面选择一个可行元素加到新的位置里面;(iv)如果<img file="FSA00000892913600031.GIF" wi="64" he="59" />里面没有可行解,并且新位置的构造还没有结束,则从其它的可行解里面选择一个可行元素加到新的位置里面;更新种群位置操作时的第(ii)(iii)(iv)步都有一个选择操作,这里将采用基于启发信息的选择方式,即每次进行选择之前都从{时间优先启发式,费用优先启发式,可靠性优先启发式,性价比启发式,随机启发式}这五类启发信息中随机选择一种启发信息,并按照这种启发信息选出候选元素中具有最优启发信息值的元素添加到新的位置里面;时间优先启发式是指执行时间越短的计算服务越优先被选择;费用优先启发式是指费用越低的计算服务越被优先选择;可靠性优先启发式是指可靠性越高的计算服务越被优先选择;性价比启发式是指时间与费用的乘积值越小的计算服务越被优先选择;随机启发式是指每个候选的元素都被赋以均匀分布于(0,1)区间的随机数,随机数值越大的元素越被优先选择。如果两个或多个元素具有等优的启发式信息值,则算法随机地从中选择一个添加到新的位置里面;(6)如果达到终止条件则停止程序,否则返回步骤(2)。
地址 510275 广东省广州市海珠区新港西路135号