Global Optimization by Differential Evolution method

The Differential Evolution (DE) method of Global Optimization was proposed by Kenneth Price and Rainer Storn in the mid-1990's. This method is a development over the traditional Genetic algorithms. It is a population-based method of optimization (see Wikipedia: Differential Evolution). The crucial idea behind DE is a scheme for generating trial parameter vectors. Initially, a population of points (p in d-dimensional space) is generated and evaluated (i.e. f(p) is obtained) for their fitness. Then for each point (pi) three different points (pa, pb and pc) are randomly chosen from the population. A new point (pz) is constructed from those three points by adding the weighted difference between two points [w(pb-pc)] to the third point (pa). Then this new point (pz) is subjected to a crossover with the current point (pi) with a probability of crossover (cr), yielding a candidate point, say pu. This point, pu, is evaluated and if found better than pi then it replaces pi else pi remains unaltered. Thus we obtain a new vector in which all points are either better than or as good as the current points. This new vector is used for the next iteration. This process makes the differential evaluation scheme completely self-organizing. On many test functions DE performs quite well (Mishra 2006; 2007). Quite often, the Differential Evolution method obtains more accurate results (in comparable time of run) than other methods such as Genetic algorithms and Particle Swarm optimization methods. It also succeeds so often in optimizing a larger gamut of objective functions than its competitors (Mishra, 2010).

The Fortran computer program (source codes) provided here includes numerous test (benchmark) functions. The user may remove or retain them and add a specific subroutione to formulate the problem of interest. The user-written subroutine must be linked to the main program through SUBROUTINE FSELECT(KF,M,FTIT) and SUBROUTINE FUNC(X,M,F). The program may be compiled by a suitable FORTRAN compiler (e.g. Microsoft Fortran Compiler or or FORCE Fortran 77 compiler; note that FORCE Compilers are free downloadable), which, after compilation will yield DE.EXE.

A typical subroutine is given here. It is also shown how the SUBROUTINE TREFETHEN is joined to SUBROUTINE FSELECT(KF,M,FTIT) and SUBROUTINE FUNC(X,M,F). The main program calls FSELECT and FUNC subroutines (and others, too).

References :
  • Mishra, S.K. (2006) "Global Optimization by Differential Evolution and Particle Swarm Methods: Evaluation on Some Benchmark Functions". Available at SSRN
  • Mishra, S.K. (2007) "NLINLS: A Differential Evolution Based Nonlinear Least Squares Fortran 77 Program". Available at SSRN
  • Mishra, SK (2010): "Performance of Differential Evolution and Particle Swarm Methods on Some Relatively Harder Multi-modal Benchmark Functions", The IUP Journal of Computational Mathematics, III(1), 2010, pp. 7-18.


Other Fortran Computer Programs



Journal of Alternative Economic Analysis

The Journal focuses on the research contributions to various upcoming approaches to analysis of the functioning of real-world economies in different countries. It welcomes original research articles/papers on agent-based computational, evolutionary, old (new) institutional, behavioral, ecological and environmental economics.

Quarterly Bulletin of the Department

The Department publishes a quarterly bulletin to publicize the research output of high quality emanating from the research work/activities of its faculty members and research scholars.
Current Research Work in the Department

A number of research topics, especially on the economy of the upland areas, are currently being investigated in the Department.
Design downloaded from free website templates.