Skip to content

Differential Evolution with Elitism and Multi-populationse

DEEM — Differential Evolution with Elitism and Multi-populations DEEM — Differential Evolution with Elitism and Multi-populations

DEEM is a heuristic optimiser of the Differential Evolution (DE) family. It combines three ideas to improve convergence speed, accuracy and reproducibility on rugged, multi-modal objectives:

  • Sub-populations. The population is split into sub-populations, each led by an elite candidate solution, which balances exploration and exploitation.
  • Elitism. A hierarchy of global best → elite → ordinary candidate solutions guides the search, with the global best refined by a Lévy-flight step.
  • Diversity-based restart. When the search stagnates, candidate solutions are re-initialised into the least-visited regions of the search space, which reduces the chance of being trapped in local minima.

The algorithm was designed for a demanding real-world problem — the automatic calibration of advanced constitutive soil models, where a single objective evaluation is a finite-element simulation and the cost function is discontinuous and highly rugged — but it applies to general bound-constrained, single-objective optimisation.

This site documents both the base algorithm (DEEM) and its improved variant (DEEMI), covering the theory and equations, the public interface, and small usage examples.

Please cite the paper

If you use DEEM or DEEMI in your work, please cite:

Machaček, J., Siegel, S., & Zachert, H. (2025). DEEM — Differential Evolution with Elitism and Multi-populations. Swarm and Evolutionary Computation, 92, 101818. https://doi.org/10.1016/j.swevo.2024.101818

A BibTeX entry is provided on the Citation page.

  • Getting started — install the package and run your first optimisation.
  • Theory — sub-populations, elitism, the position-update equations, boundary handling and the restart strategy.
  • DEEMI — the improved variant: hybrid restart, success-history adaptation, optional surrogate pre-screening (RBF or Gaussian-process, experimental) and an evaluation cache.
  • API reference — the constructor arguments and attributes of the DEEM and DEEMI classes.

At a glance

from DEEM.DEEM import DEEM
import numpy as np

# minimise a simple quadratic in 5 dimensions
def sphere(x):
    x = np.asarray(x, float)
    return float(np.sum((x - 0.3) ** 2))

nD = 5
optimizer = DEEM(
    function=sphere,
    lower_bound=np.array([-5.0] * nD),
    upper_bound=np.array([ 5.0] * nD),
    nparticles_max=10 * nD,
    nparticles_min=10 * nD,
    nswarm_max=10,
    nswarm_min=4,
    maxiter=200,
)
optimizer.update()                 # run the optimisation loop

print(optimizer.FBEST)             # best objective value found
print(optimizer.XBEST)             # best position found

Watch it converge

DEEMI optimising the 2-D Eggholder function with its default settings. The population of candidate solutions (white dots) explores the multi-modal landscape while the global best (gold star) descends to the global minimum at the origin.

DEEMI optimising the 2-D Rastrigin function

The script that produces this animation — together with a 2-D surface view and 1080-square video versions — is in examples/deemi_animation.py; see Visualising convergence.

Validation

DEEM was validated against benchmark functions from CEC 2015, 2017, 2020 and 2022 and compared with widely used DE variants (DE, DE-JADE, DE-LSHADE). It matches or outperforms these references on many functions, with the largest gains on multi-modal and composite problems. See the paper for the full study and Examples for how to reproduce a benchmark run.

License and authorship

DEEM is developed by Jan Machaček, Institute of Geotechnics, Technical University of Darmstadt.

It is released under the BSD 3-Clause License — a permissive licence that allows use, modification and redistribution (including in commercial or closed-source work) provided the copyright notice is retained and the authors' names are not used to endorse derived products without permission. See License for details.