The Moving Peaks Benchmark is a fitness function changing over time. It consists of a number of peaks, changing in height, width and location. A simple visualization has been included below, a more formal description can be found here. Two similar versions of this benchmark have been proposed independently at the Congress of Evoluationary Computation held at Washington D.C. in July 1999 by Jürgen Branke resp. Ron Morrison and Ken DeJong. The version compiled here tries to cover many (but not all) of the features available at either of the original versions, and adds some more. Also, it is programmed to be easily expandable. Eventually, I still hope that we can come up with a unified version, but since this took too long, we decided it would be a good idea to release the current version. I will try to ensure that future versions remain compatible with this one.
The benchmark allows to set the following parameters:
The module can be easily incorporated into any C program. Simply include the movpeaks.h file which allows you to call the functions
All other variables can be influenced from the main program by declaring them extern, an example is given in movmain.c.
To download the source code,click here.
There is also a graphic version available that requires the QT library and a C++ compiler. It allows to view a 2-dimensional moving peaks landscape in motion. On the right you can see an example ouput of this version. When you click on the image, you will see 15 consecutive changes of the landscape, then starting again from the beginning. The source code of the graphical version is also available for download. Allways keep in mind that this can only show 2-dimensional versions of the benchmark.
Direct any questions or suggestions to Jürgen Branke, Institute AIFB, University of Germany, Karlsruhe. I will try to maintain the module, adding additional features, more standard settings, and increase usability.
If you experience any problems, find any bugs, or would like to have another feature added, please drop me a note. I will give my best efforts to respond timely.
No matter how many features a benchmark provides, it is only useful
when it is possible to reproduce it.
In the following, I will try to maintain a set of standard settings, with references and results. If you use other settings, or obtain better results with the settings below, let me know.
|no of peaks||5||10-200||50|
|no of dimensions||5||5||5|
|change every x evaluations||5000||1000-5000||1000|
Remarks concerning the different scenarios:
1. The settings I used in my CEC paper  are no longer exactly reproducable with this benchmark. The settings from scenario 1 would probably come closest.
2. For a recent paper , I have run a number of experiments with scenario2. It uses more peaks, a different peak shape, and different correlation values. To give an idea for performance, using scenario 2 with a change every 5000 evaluations, no of peaks 50, vlength 1.0 and correlation lambda 0.0 I achieve an offline error of 4.605 (average over 50 runs with different random seeds for the GA and movrandseed=1 all the time).
A recent survey on papers using the Moving Peaks Benchmark has been compiled by Irene Moser from Swinburne University of Technology and is courteously provided for download here.
 J. Branke: "Evolutionary Algorithms for Dynamic Optimization Problems - A Survey -", Technical Report No. 387, Insitute AIFB, University of Karlsruhe, 76128 Karlsruh e, Germany, February 1999
 J. Branke: "Memory-Enhanced Evolutionary Algorithms", Congress on Evolutionary Computation (CEC'99), IEEE, 1999, vol.3 pp. 1875-1882
 J. Branke: "Evolutionary Approaches to Dynamic Optimization Problems - A Survey", GECCO Workshop on Evolutionary Algorithms for Dynamic Optimization Problems, A. Wu (ed.), 1999, pp. 134-137
 J. Branke, H. Schmeck: "Designing Evolutionary Algorithms for Dynamic Optimization Problems", In S. Tsutsui and A. Ghosh, editors, Theory and Application of Evolutionary Computation: Recent Trends, pages 239-262. Springer, 2002