Skip to content

Some alternative implementations of the Differential Evolution optimization algorithm

Notifications You must be signed in to change notification settings

danielesartori/Differential-Evolution

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Differential-Evolution

Some alternative implementations of the Differential Evolution optimization algorithm

This repository includes four alternative implementations of Differential Evolution optimization algorithm, the differences being in mutation scheme (for DE_rand1, DE_best1, DE_best2) and in the self adaptation (jDE_best2). More information about the algorithm can be found in the following papers:

DE_rand1, DE_best1, DE_best2 have the following inputs:

  • NP: size of the population
  • n_gen: number of generations
  • F: scale factor
  • CR: crossover rate
  • Xbound: parameters search boud (matrix with dimension 2 x number of parameters to be optimized)
  • objf_var: struct containing the variables used as input of the objective function to be optimize
  • objf_k: struct containing some constants used as input of the objective function to be optimize and as control for the DE optimization. These latest two are objf_k.n_objf_perf (number of performance contributing to the calculation of the objective function) and objf_k.df_lim (percentage limit of objective function variation for early optimization stop)

As an alternative to F and CR, jDE_best2 has:

  • Finit: initial value of scale factor
  • CRinit: initial value of crossover rate

DE_rand1, DE_best1, DE_best2 have the following outputs:

  • Xopt: final vector of the optimal values
  • Xgen: matrix of the evolutions of the temporary optimal values along the generations
  • objf_perf_min: matrix of the evolutions of the obective function and its contributions along the generations

In addition, jDE_best2 has:

  • Fgen: evolution of scale factor along the generations
  • CRgen: evolution of crossover rate along the generations

For all DE optimization implementations, it is necessary to define a Matlab function (here called eval_obj_fun) to assess the objective function of interest for the studied case.

About

Some alternative implementations of the Differential Evolution optimization algorithm

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages