Differential evolution
Author: Rohit Kumar (rk787) (ChemE 6800 Fall 2024)
Stewards: Nathan Preuss, Wei-Han Chen, Tianqi Xiao, Guoqing Hu
Introduction
Differential Evolution (DE) is a robust and efficient optimization algorithm widely used for solving non-linear, non-differentiable, and multimodal optimization problems. It was first introduced by R. Storn and K. Price in their seminal work on global optimization over continuous spaces [1], where they described DE as:-
"A new heuristic approach for minimizing possibly nonlinear and non-differentiable continuous-space functions."
A heuristic is any approximation method for a solution to a problem capable of producing satisfactory solutions within tolerable amounts of time when classic methods cannot find an exact answer or work quite slowly. Unlike the Gradient Descent algorithm, the optimization problem does not need to be differentiable.
The key idea is to generate a population of candidate solutions through successive generations using vector differences for deviations. This approach allows DE to adapt its search methodology to the objective function, making it particularly effective for non-linear, non-differentiable, and multimodal optimization problems.
The algorithm is renowned for its simplicity and efficiency. Its primary advantages include:
- Requires minimal parameter tuning.
- High robustness.
- Ability to avoid local optima and converge toward global solutions.
In DE, the currently evolving population of possible solutions is represented as a vector of real-valued numbers. The algorithm attempts to enhance these solutions through a series of iterations built upon three main steps:
- Mutation
- Crossover
- Selection
DE has become highly popular for applications in such fields as engineering design, machine learning, signal processing, and financial modeling. Despite its simplicity, Differential Evolution is competitive against many other optimization techniques, often performing better on challenging problems.
Algorithm Discussion
Differential Evolution operates through three main steps: initialization, mutation, crossover, and selection, as outlined in optimization literature [2][3].
Initialization
The initial population is generated randomly within the bounds of the search space: where:
- represents the parameter of the individual.
- is a uniform random distribution.
Mutation
A mutant vector is generated by combining three randomly chosen vectors: where:
- is the mutation factor.
- are distinct vectors from the population.
Crossover
A trial vector is created by mixing the mutant vector and the target vector : where:
- is the crossover probability.
- is a randomly chosen index.
Selection
The trial vector replaces the target vector in the population if it yields a better objective function value:
Pseudocode
The pseudocode of Differential Evolution is shown below:
Initialize population P randomly While termination criterion not met: For each individual x_i in P: Generate mutant vector v_i Perform crossover to create trial vector u_i If f(u_i) < f(x_i): Replace x_i with u_i Return the best solution
The pseudocode presented in this article is adapted from S. Das and P.N. Suganthan's survey on the state-of-the-art in DE [4].
Numerical Example
We aim to minimize the function , a common benchmark for optimization algorithms [5][6]. The example uses key principles of DE, including mutation and crossover, as described in foundational texts like R. Storn and K. Price’s work [7].
Initial Setup
The initial population and fitness values are:
Iteration 1
Individual 1 ():
- Mutant vector:
- Trial vector:
- Fitness:
- Since (), replace with
- Updated value:
Individual 2 ():
- Mutant vector:
- Trial vector: (crossover fails)
- Fitness:
- No replacement as
- Updated value:
Individual 3 ():
- Mutant vector:
- Trial vector: (crossover fails)
- Fitness:
- No replacement as
- Updated value:
Individual 4 ():
- Mutant vector:
- Trial vector:
- Fitness:
- Since (), replace with
- Updated value:
Individual 5 ():
- Mutant vector:
- Trial vector:
- Fitness:
- Since (), replace with
- Updated value:
After the first iteration, the updated population is:
Iterations 2–5
The process is repeated for four more iterations. For each individual, the mutant vector, trial vector, and fitness are calculated. Individuals in the population are replaced whenever . Over successive iterations, the population evolves toward the minimum.
Final Population
After five iterations, the population converges to:
Visualization
The progression of the population during the Differential Evolution process is illustrated in the figures below. Each figure shows the distribution of the population at a specific iteration, demonstrating how the algorithm converges toward the global minimum of the function .
Figure 1: Initial population distribution before any iterations. View Figure 1: Initial population distribution before any iterations.
Figure 2: Population after the first iteration, showing improvement toward the global minimum. View Figure 2: Population after the first iteration, showing improvement toward the global minimum.
Figure 3: Population after the second iteration, with further refinement of solutions. View Figure 3: Population after the second iteration, with further refinement of solutions.
Figure 4: Population after the fourth iteration, nearing convergence. View Figure 4: Population after the fourth iteration, nearing convergence.
Figure 5: Final population converging to the global minimum at . View Figure 5: Final population converging to the global minimum at .
Applications
Differential Evolution has been applied across various domains, including:
- Engineering Design: Applications include minimizing the weight of tension/compression springs, following the approaches outlined by R. Storn and K. Price [8][9].
- Water Resource Management: Optimization strategies for reservoirs, as seen in recent research [10][11].
- Machine Learning: Parameter optimization for neural networks [12].
- Medical Applications: DE’s effectiveness in radiotherapy optimization is discussed in Abbass (2002) [13].
Software Tools
Several software libraries and frameworks have integrated Differential Evolution into their core optimization processes:
- ALGLIB: A powerful library in C++, C#, and Java, capable of solving complex constrained and unconstrained optimization problems.
- DEAP (Distributed Evolutionary Algorithms in Python): A Python framework for rapid prototyping and testing of evolutionary algorithms, including DE.
- ECJ: An open-source evolutionary computation system implemented in Java, supporting a variety of algorithms, including DE.
- MOEA Framework: A Java library dedicated to multi-objective optimization, offering robust DE implementations.
Differential Evolution’s adaptability and effectiveness have made it an indispensable tool for tackling challenging optimization problems across these diverse domains.
Conclusion
Differential Evolution’s ability to handle a wide range of optimization problems has made it a preferred tool in various domains [14][15]. Despite its strengths, opportunities for improvement exist, including faster convergence and hybrid models [16].
Throughout its application in engineering design, water resource management, machine learning, and medical fields, DE has demonstrated its effectiveness in solving complex and constrained problems. Its capacity for global convergence and minimal parameter tuning requirements further enhance its appeal for real-world problems.
Despite its strengths, there are areas for future research and improvement:
- Enhancing the convergence speed of the algorithm.
- Developing hybrid approaches by combining DE with other optimization techniques.
- Extending its application to emerging domains such as quantum computing and autonomous systems.
- Improving parameter tuning methods and software implementations to make DE more accessible and efficient for practitioners.
In summary, Differential Evolution continues to be a reliable and powerful tool for solving challenging optimization problems and holds promise for further advancements in both methodology and applications.
References
Below is a list of references used to support the content in this article:
- R.J. Vanderbei, Linear Programming: Foundations and Extensions. Springer, 2008. Available at: SpringerLink.
- S. Boyd, L. Vandenberghe, Convex Optimization. Cambridge University Press, 2009. Available at: Stanford University.
- J. Nocedal, S.J. Wright, Numerical Optimization. Springer, 1999. Available at: SpringerLink.
- J. Birge, F. Louveaux, Introduction to Stochastic Programming. Springer, 2011. Available at: SpringerLink.
- A. Ben-Tal, L.E. Ghaoui, A. Nemirovski, Robust Optimization. Princeton University Press, 2009. Available at: Georgia Institute of Technology.
- L.A. Wolsey, Integer Programming. Wiley, 1998.
- L.T. Biegler, I.E. Grossmann, A.W. Westerberg, Systematic Methods of Chemical Process Design. Prentice Hall Press, 1997.
- L.T. Biegler, Nonlinear Programming: Concepts, Algorithms and Applications to Chemical Engineering. SIAM, 2010.
- T.F. Edgar, D.M. Himmelblau, L.S. Lasdon, Optimization of Chemical Processes. McGraw-Hill, 2001.
- T. Hastie, R. Tibshirani, J. Friedman, The Elements of Statistical Learning. Springer, 2009. Available at: Stanford University.
- K. Murphy, Machine Learning: A Probabilistic Perspective. MIT Press, 2012.
Additional references for application examples:
- S. Das, P.N. Suganthan, "Differential Evolution: A Survey of the State-of-the-Art," IEEE Transactions on Evolutionary Computation, vol. 15, no. 1, pp. 4-31, 2011.
- R. Storn, K. Price, "Differential Evolution – A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces," Journal of Global Optimization, vol. 11, pp. 341-359, 1997.
- A. Abbass, "An Evolutionary Artificial Neural Networks Approach for Breast Cancer Diagnosis," Artificial Intelligence in Medicine, vol. 25, no. 3, pp. 265-281, 2002.
- ↑ R. Storn, K. Price, "Differential Evolution – A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces," Journal of Global Optimization, vol. 11, pp. 341-359, 1997.
- ↑ J. Nocedal, S.J. Wright, Numerical Optimization. Springer, 1999.
- ↑ A. Ben-Tal, L.E. Ghaoui, A. Nemirovski, Robust Optimization. Princeton University Press, 2009.
- ↑ S. Das, P.N. Suganthan, "Differential Evolution: A Survey of the State-of-the-Art," IEEE Transactions on Evolutionary Computation, vol. 15, no. 1, pp. 4-31, 2011.
- ↑ J. Birge, F. Louveaux, Introduction to Stochastic Programming. Springer, 2011.
- ↑ A. Ben-Tal, L.E. Ghaoui, A. Nemirovski, Robust Optimization. Princeton University Press, 2009.
- ↑ R. Storn, K. Price, "Differential Evolution – A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces," Journal of Global Optimization, vol. 11, pp. 341-359, 1997.
- ↑ R. Storn, K. Price, "Differential Evolution – A Simple and Efficient Heuristic for Global Optimization over Continuous Spaces," Journal of Global Optimization, vol. 11, pp. 341-359, 1997.
- ↑ S. Das, P.N. Suganthan, "Differential Evolution: A Survey of the State-of-the-Art," IEEE Transactions on Evolutionary Computation, vol. 15, no. 1, pp. 4-31, 2011.
- ↑ J. Nocedal, S.J. Wright, Numerical Optimization. Springer, 1999.
- ↑ A. Ben-Tal, L.E. Ghaoui, A. Nemirovski, Robust Optimization. Princeton University Press, 2009.
- ↑ T. Hastie, R. Tibshirani, J. Friedman, The Elements of Statistical Learning. Springer, 2009.
- ↑ A. Abbass, "An Evolutionary Artificial Neural Networks Approach for Breast Cancer Diagnosis," Artificial Intelligence in Medicine, vol. 25, no. 3, pp. 265-281, 2002.
- ↑ J. Nocedal, S.J. Wright, Numerical Optimization. Springer, 1999.
- ↑ A. Ben-Tal, L.E. Ghaoui, A. Nemirovski, Robust Optimization. Princeton University Press, 2009.
- ↑ S. Das, P.N. Suganthan, "Differential Evolution: A Survey of the State-of-the-Art," IEEE Transactions on Evolutionary Computation, vol. 15, no. 1, pp. 4-31, 2011.