Skip to content

Fortran 90/95 implementation of a basic differential evolution optimization algorithm.

License

Notifications You must be signed in to change notification settings

ian-mmm/differential-evolution_f95

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

differential-evolution_f95

Fortran 90/95 implementation of a basic differential evolution (DE) optimization algorithm.

Files:

DE_main.f95 -main Fortran file to test DE algorithm

DE_mod.f95 -module Fortran file, contains DE subroutine and Griewank Function as an example objective function

Notes:

This DE can be classified as DE/rand/1/bin with dither.

For the Griewank Function this DE tends to lock up fairly quickly. I have found two successful strategies: (1) increase the grid size sunstantially to avoid grid lock, without ad hoc pertubations (e.g. NP=1040, T=1000 for nop=4 and -/+1000 starting grid); (2) turn on the ad hoc pertubations and increase the number of generations substantially (e.g. NP=50, T=10000 with pertubations for nop=4 and -/+1000 starting grid). The provided DE_main.f95 file has the later input values.

Griewank Function:

http://mathworld.wolfram.com/GriewankFunction.html

https://www.sfu.ca/~ssurjano/griewank.html

Tested on GCC 6.1, stable results for -O, -O2, -O3

About

Fortran 90/95 implementation of a basic differential evolution optimization algorithm.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published