差分进化算法二

差分进化算法操作流程

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

%%  伪代码

%%  设置参数

代数G = 0;

种群规模NP,种群表示:

个体表示:

 个体取值范围:

%%  主循环

WHILE 判断终止条件

  %%  变异操作

    /*对目标向量进行差分操作,产生变异向量;*/

    FOR i = 1 to NP

      根据目标向量Xi,G来产生变异向量Vi,G

      

    END

  %%  交叉操作

    /*对目标向量和变异向量进行二项式交叉操作来产生试验向量*/

    FOR i = 1 to NP

      jrand = [ rand[0,1]*D]

      FOR j = 1 to D

        

      END

    END

  %%  选择操作

    /*选择*/

    FOR i = 1 to NP

      计算试验向量的适应度值:

      

      计算目标向量的适应度值:

      

      IF f(Ui,G) ≤  f(Xi,G)

         Xi,G+1 = Ui,G ;

             f(Xi,G+1)  =  f(Ui,G);

         IF    f(Ui,G)  <  f(Xbest,G)

            Xbest,G  =  Ui,G ;

              f(Xbest,G) =  f(Ui,G) ;

         END

      END

    END

  G ++

END

 

原文地址:https://www.cnblogs.com/mysterygust/p/12991260.html