主权项 |
基于爬山算法与鲶鱼效应粒子群算法交替作用的资源受限项目调度控制方法,其特征是,包括以下步骤:步骤1、分析优化问题,构造适应度函数;步骤2、初始化参数,选取合适的粒子数m、最大进化代数T<sub>max</sub>和个体停滞进化阈值ε;步骤3、初始化种群,迭代次数t=0,随机产生种群个体的位置和速度,计算各个粒子的个体适应度;步骤4、当t≤T<sub>max</sub>时,转步骤5,否则转步骤10;步骤5、根据式(1)、式(2)更新粒子的位置和速度;v<sub>i</sub>(t+1)=ω*v<sub>i</sub>(t)+c<sub>1</sub>*rand<sub>1</sub>()*[pb<sub>i</sub>(t)‑x<sub>i</sub>(t)] (1)+c<sub>2</sub>*rand<sub>2</sub>()*[gb(t)‑x<sub>i</sub>(t)]x<sub>i</sub>(t+1)=x<sub>i</sub>(t)+v<sub>i</sub>(t+1) (2)其中,i=1,2,…,m;v<sub>i</sub>(t)是第i个粒子在第t次迭代时的飞行速度;x<sub>i</sub>(t)是第i个粒子在第t次迭代时的位置;pb<sub>i</sub>(t)是第i个粒子在第t次迭代时的个体最优值;gb(t)是第t次迭代时的全局最优值;rand<sub>1</sub>()和rand<sub>2</sub>()都是在区间[0,1]内均匀分布的随机数;c<sub>1</sub>和c<sub>2</sub>是学习因子;ω是惯性权重;粒子更新采用如式(3)所示的吸收墙策略,其中v<sub>max</sub>表示算法搜索边界:<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><mfenced open='{' close=''><mtable><mtr><mtd><msub><mi>v</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>v</mi><mi>max</mi></msub><mo>,</mo></mtd><mtd><msub><mi>v</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>></mo><msub><mi>v</mi><mi>max</mi></msub></mtd></mtr><mtr><mtd><msub><mi>v</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><msub><mi>v</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>,</mo></mtd><mtd><mo>-</mo><msub><mi>v</mi><mi>max</mi></msub><mo>≤</mo><msub><mi>v</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>≤</mo><msub><mi>v</mi><mi>max</mi></msub></mtd></mtr><mtr><mtd><msub><mi>v</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mo>-</mo><msub><mi>v</mi><mi>max</mi></msub><mo>,</mo></mtd><mtd><msub><mi>v</mi><mi>i</mi></msub><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo><</mo><mo>-</mo><msub><mi>v</mi><mi>max</mi></msub></mtd></mtr></mtable></mfenced><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000576912520000011.GIF" wi="1261" he="292" /></maths>步骤6、对粒子的每一维独立扰动并计算适应度,从中选取适应度最优的位置更新为粒子的新位置,并更新各个粒子的个体最优值和全局最优值;步骤7、记录每个粒子的个体进化停滞数,当大于ε时,则初始化该粒子的位置和速度;步骤8、迭代次数t加1;步骤9、判断是否满足算法终止条件,满足则转步骤10,否则转步骤4;步骤10、输出最优解。 |