发明名称 一种嵌入式异构多处理器系统的任务调度方法
摘要 本发明涉及一种嵌入式异构多处理器系统的任务调度方法。现有的算法需要花费大量的时间用于寻优,解决实际问题能力欠缺。本发明方法首先动态调整粒子速度V,得到一个速度的最优值;然后根据粒子速度的最优值调整惯性权重w;最后模拟任务调度方法。本发明针对具有复杂功能的嵌入式多处理器系的全局搜索能力和局部搜索能力的平衡性,粒子群优化算法在迭代后期搜寻能力下降的问题,通过调整调整飞行时间和惯性权重,提出了优化其平衡性提升其迭代后期搜寻能力的任务调度方法。
申请公布号 CN101604258B 申请公布日期 2012.09.05
申请号 CN200910100609.5 申请日期 2009.07.10
申请人 杭州电子科技大学 发明人 张祯;邹青刚;郑秋华;方美娥;吴国华
分类号 G06F9/46(2006.01)I;G06N3/00(2006.01)I 主分类号 G06F9/46(2006.01)I
代理机构 杭州求是专利事务所有限公司 33200 代理人 杜军
主权项 一种嵌入式异构多处理器系统的任务调度方法,其特征在于该方法的具体步骤是:步骤(1).动态调整粒子速度V调整粒子的飞行速度,在进化初期,粒子距离最优位置较远,粒子的飞行速度应快一些,这样有利于尽快的移向最优位置;当粒子距离最优位置较近时,粒子的飞行速度应慢一些,这样可以避免因飞行速度过快而导致的粒子“飞过”最优位置从而产生的来回运动现象;粒子飞行速度的计算方程式如下所示: <mrow> <msub> <mi>X</mi> <mi>ij</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>=</mo> <msub> <mi>X</mi> <mi>ij</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>)</mo> </mrow> <mo>+</mo> <msub> <mi>V</mi> <mi>ij</mi> </msub> <mrow> <mo>(</mo> <mi>t</mi> <mo>+</mo> <mn>1</mn> <mo>)</mo> </mrow> <mo>&times;</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>+</mo> <mi>k</mi> <mo>&times;</mo> <mi>sin</mi> <mo>[</mo> <mrow> <mo>(</mo> <mfrac> <mi>iter</mi> <msub> <mi>I</mi> <mi>max</mi> </msub> </mfrac> <mo>+</mo> <mfrac> <mn>1</mn> <mn>2</mn> </mfrac> <mo>)</mo> </mrow> <mo>&times;</mo> <mi>&pi;</mi> <mo>]</mo> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>Xij(t+1)表示在时间点t+1的位移,Vij(t+1)表示在时间点t+1的速度,iter表示粒子当前的进化代数;Imax表示粒子的最大进化代数;K为比例系数,是常量;通过上述方程式对影响粒子飞行速度的因子进行动态调整,得到一个速度的最优值;步骤(2).调整惯性权重ww仍然随迭代次数线性递减,当迭代次数到达某个阈值时,这时w的值为wmin;然后w随迭代次数线性递增,这样w随迭代次数变化而变化,有助于算法摆脱局部极值,增强粒子群优化算法的全局搜索能力,找出最优解;由此提出惯性权重的调整策略;惯性权重的粒子群优化算法的惯性权重计算公式如下: <mfenced open='' close=''> <mtable> <mtr> <mtd> <mi>w</mi> <mo>=</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <mfrac> <mrow> <msub> <mi>w</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>w</mi> <mi>min</mi> </msub> </mrow> <msub> <mi>iter</mi> <mi>T</mi> </msub> </mfrac> <mo>&times;</mo> <mi>iter</mi> </mtd> <mtd> <mi>iter</mi> <mo>&le;</mo> <msub> <mi>iter</mi> <mi>T</mi> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> </mfenced> <mfenced open='' close=''> <mtable> <mtr> <mtd> <mi>w</mi> <mo>=</mo> <msub> <mi>w</mi> <mi>min</mi> </msub> <mo>+</mo> <mfrac> <mrow> <mi>iter</mi> <mo>-</mo> <msub> <mi>iter</mi> <mi>T</mi> </msub> </mrow> <mrow> <msub> <mi>iter</mi> <mi>max</mi> </msub> <mo>-</mo> <msub> <mi>iter</mi> <mi>T</mi> </msub> </mrow> </mfrac> <mo>&times;</mo> <msub> <mi>w</mi> <mi>max</mi> </msub> </mtd> <mtd> <mi>iter</mi> <mo>&GreaterEqual;</mo> <msub> <mi>iter</mi> <mi>T</mi> </msub> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>3</mn> <mo>)</mo> </mrow> </mtd> </mtr> </mtable> </mfenced>iter为迭代次数;itermax为设置的总的迭代次数;iterT为迭代次数的阈值;wmax是惯性权重的最大值;wmin是惯性权重最小值;步骤(3).模拟任务调度方法,具体步骤是:步骤a.初始化一群粒子,确定群体规模m,给定算法的最大、最小权重因子值,根据调度所需时间设定算法总的迭代次数itermax和迭代次数的阈值iterT;步骤b.根据所定义的适应度函数 <mrow> <msub> <mi>S</mi> <mi>ij</mi> </msub> <mo>=</mo> <mfrac> <msub> <mrow> <mo>(</mo> <msub> <mi>T</mi> <mi>i</mi> </msub> <mo>_</mo> <mi>execution</mi> <mo>_</mo> <mi>time</mi> <mo>)</mo> </mrow> <mi>j</mi> </msub> <mrow> <munderover> <mi>&Sigma;</mi> <mrow> <mi>j</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>m</mi> </munderover> <msub> <mrow> <mo>(</mo> <msub> <mi>T</mi> <mi>i</mi> </msub> <mo>_</mo> <mi>execution</mi> <mo>_</mo> <mi>time</mi> <mo>)</mo> </mrow> <mi>j</mi> </msub> </mrow> </mfrac> <mo>&Element;</mo> <mo>[</mo> <mn>0</mn> <mo>,</mo> <mn>1</mn> <mo>]</mo> </mrow>来计算每个微粒的适应值;步骤c.比较粒子的适应值和自身最优值pbest,如果当前粒子的适应值比pbest更优则置pbest为当前粒子的适应值;比较粒子适应值与种群最优值gbest;如果当前粒子的适应值比种群最优值gbest更优,则将种群最优值gbest修改为当前粒子的适应值;步骤d.判断是否达到了阈值迭代,若没有,则w值由公式(2)计算得出,若有,w值则由公式(3)计算得出;步骤e.根据以下式子对粒子速度进行更新;vij(t+1)=w×vij(t)+c1r1(pbestij‑Xij(t))+c2r2(gbestj‑Xij(t))Xij(t+1)=Xij(t)+vij(t+1)pbest为自身最优值,gbest种群最优值,c1和c2表示学习因子,r1和r2是0到1之间的随机数;步骤f.根据调整粒子飞行速度来更新粒子的位置;计算方程式如下:vij(t+1)=w×vij(t)+c1r1(pbestij‑Xij(t))+c2r2(lbestj‑Xij(t))Xij(t+1)=Xij(t)+vij(t+1)pbest为自身最优值,lbest为局部极值,c1和c2表示学习因子,r1和r2是0到1之间的随机数;步骤g.判断是否达到最终迭代次数,如果没有达到,执行步骤c;如果达到了,则从最后一代中获得个体最佳值。
地址 310018 浙江省杭州市江干区下沙高教园区2号大街