derandrandbin.java

来自「Differential Evolution(JAVA)」· Java 代码 · 共 46 行

JAVA
46
字号
package DeApp1.de;


public class DERandRandBin extends DEStrategy
/***********************************************************
**                                                        **
** An interesting strategy that often works well.         **
**                                                        **
** Authors:            Mikal Keenan                       **
**                     Rainer Storn                       **
**                                                        **
***********************************************************/
{
  protected double z;
  protected int j;
  
  public void apply (double F, double Cr, int dim, double[]x, double[]gen_best,
  double[][]g0)
  {
    prepare (dim);  // random i ex [0,dim-1], counter=0
    z=0;            // z is N(0,1) distributed gaussian variable
    for (j=0; j<12; j++)
    {
        z = z + deRandom.nextDouble();
    }
    z = z-6;
    
    for (counter=0; counter < dim; counter++)
    { 
	  if (deRandom.nextDouble() < Cr)
	  {
	     x[i] = g0[0][i] + z*(g0[1][i] - g0[2][i]);
	  }
	  else
	  {
	     //x[i] = x[i] + z*(g0[1][i] - g0[2][i]);	  
	  }
	     
      i = (i++) % dim;
    }
  }
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?