Skip to content

Grey Wolf Optimizer

Swarm Intelligence

Grey Wolf Optimizer (GWO) optimization algorithm.

Algorithm Overview

!!! warning

This module is still under development and is not yet ready for use.

This module implements the Grey Wolf Optimizer (GWO) algorithm. GWO is a metaheuristic optimization algorithm inspired by grey wolves. The algorithm mimics the leadership hierarchy and hunting mechanism of grey wolves in nature. Four types of grey wolves such as alpha, beta, delta, and omega are employed for simulating the hunting behavior.

The GWO algorithm is used to solve optimization problems by iteratively trying to improve a candidate solution with regard to a given measure of quality, or fitness function.

Usage

python
from opt.swarm_intelligence.grey_wolf_optimizer import GreyWolfOptimizer
from opt.benchmark.functions import sphere

optimizer = GreyWolfOptimizer(
    func=sphere,
    lower_bound=-5.12,
    upper_bound=5.12,
    dim=10,
    max_iter=500,
    population_size=50,
)

best_solution, best_fitness = optimizer.search()
print(f"Best solution: {best_solution}")
print(f"Best fitness: {best_fitness:.6e}")

Parameters

ParameterTypeDefaultDescription
funcCallableRequiredObjective function to minimize.
lower_boundfloatRequiredLower bound of search space.
upper_boundfloatRequiredUpper bound of search space.
dimintRequiredProblem dimensionality.
max_iterint1000Maximum iterations.
seedint | NoneNoneRandom seed for reproducibility.
population_sizeint100Pack size (number of wolves).
track_historyboolFalseTrack optimization history for visualization

Algorithm Metadata

PropertyValue
Algorithm NameGrey Wolf Optimizer
AcronymGWO
Year Introduced2014
AuthorsMirjalili, Seyedali; Mirjalili, Seyed Mohammad; Lewis, Andrew
Algorithm ClassSwarm Intelligence
ComplexityO(pack_size * dim * max_iter)
PropertiesPopulation-based, Derivative-free, Nature-inspired
ImplementationPython 3.10+
COCO CompatibleYes

Mathematical Formulation

Core update equations based on grey wolf hunting hierarchy:

Encircling prey:

D=|CXp(t)X(t)|X(t+1)=Xp(t)AD

Position update guided by alpha, beta, delta wolves:

X(t+1)=X1+X2+X33

where:

  • X(t) is the position of a grey wolf at iteration t
  • Xp is the position of the prey (target)
  • A=2ar1a and C=2r2
  • a linearly decreases from 2 to 0
  • r1,r2 are random vectors in [0,1]
  • X1,X2,X3 are positions based on α,β,δ

Constraint handling:

  • Boundary conditions: Clamping to [lower_bound, upper_bound]
  • Feasibility enforcement: Position updates respect hierarchy guidance

Hyperparameters

ParameterDefaultBBOB RecommendedDescription
pack_size2010*dimNumber of wolves in pack
max_iter100010000Maximum iterations

Sensitivity Analysis:

  • a: Parameter linearly decreases from 2 to 0 - High impact on exploration/exploitation balance
  • Pack size: Medium impact - larger packs improve exploration but increase computation
  • Recommended tuning: Use default parameters for most problems

COCO/BBOB Benchmark Settings

Search Space:

  • Dimensions tested: 2, 3, 5, 10, 20, 40
  • Bounds: Function-specific (typically [-5, 5] or [-100, 100])
  • Instances: 15 per function (BBOB standard)

Evaluation Budget:

  • Budget: dim×10000 function evaluations
  • Independent runs: 15 (for statistical significance)
  • Seeds: 0-14 (reproducibility requirement)

Performance Metrics:

  • Target precision: 1e-8 (BBOB default)
  • Success rate at precision thresholds: [1e-8, 1e-6, 1e-4, 1e-2]
  • Expected Running Time (ERT) tracking

Raises

ValueError: If search space is invalid or function evaluation fails.

Notes

  • Modifies self.history if track_history=True
  • Uses self.seed for all random number generation
  • BBOB: Returns final best solution after max_iter or convergence

Computational Complexity:

  • Time per iteration: O(pack_size×dim)
  • Space complexity: O(pack_size×dim)
  • BBOB budget usage: Typically uses 50-70% of dim*10000 budget for convergence

BBOB Performance Characteristics:

  • Best function classes: Unimodal, Multimodal with regular structure
  • Weak function classes: Highly ill-conditioned functions
  • Typical success rate at 1e-8 precision: 45-55% (dim=5)
  • Expected Running Time (ERT): Competitive with PSO and DE

Convergence Properties:

  • Convergence rate: Exponential initially, linear near optimum
  • Local vs Global: Excellent balance through hierarchy-based search
  • Premature convergence risk: Low - adaptive parameter a prevents stagnation

Reproducibility:

  • Deterministic: Yes - Same seed guarantees same results
  • BBOB compliance: seed parameter required for 15 independent runs
  • Initialization: Uniform random sampling in [lower_bound, upper_bound]
  • RNG usage: numpy.random.default_rng(self.seed) throughout

Implementation Details:

  • Parallelization: Not supported in current implementation
  • Constraint handling: Clamping to bounds after position updates
  • Numerical stability: Uses NumPy operations for numerical stability

Known Limitations:

  • Parameter 'a' uses linear decrease which may not be optimal for all problems
  • Fixed hierarchy (alpha, beta, delta) throughout optimization
  • BBOB known issues: May require more iterations on very high-dimensional problems

Version History:

  • v0.1.0: Initial implementation
  • Current: BBOB-compliant with seed parameter support

References

[1] Mirjalili, S., Mirjalili, S. M., Lewis, A. (2014). "Grey Wolf Optimizer." Advances in Engineering Software, 69, 46-61. https://doi.org/10.1016/j.advengsoft.2013.12.007

[2] Hansen, N., Auger, A., Ros, R., Mersmann, O., Tušar, T., Brockhoff, D. (2021). "COCO: A platform for comparing continuous optimizers in a black-box setting." Optimization Methods and Software, 36(1), 114-144. https://doi.org/10.1080/10556788.2020.1808977

COCO Data Archive:

Implementation:

See Also

WhaleOptimizationAlgorithm: Also by Mirjalili, inspired by marine mammals BBOB Comparison: WOA and GWO have similar performance, WOA slightly better on unimodal

ParticleSwarm: Classic swarm intelligence algorithm BBOB Comparison: GWO often converges faster with better exploitation

SalpSwarmAlgorithm: Another marine-inspired algorithm by Mirjalili BBOB Comparison: GWO typically more robust across diverse problems

AbstractOptimizer: Base class for all optimizers opt.benchmark.functions: BBOB-compatible test functions

Related BBOB Algorithm Classes:

  • Evolutionary: GeneticAlgorithm, DifferentialEvolution
  • Swarm: ParticleSwarm, AntColony, WhaleOptimizationAlgorithm
  • Gradient: AdamW, SGDMomentum

Benchmark Performance

Interactive fitness landscape of a representative multimodal benchmark function (drag to rotate, scroll to zoom):

Convergence, final-fitness distribution and performance profile on rastrigin (5D), averaged over independent runs (compared against representative baselines):


Source Code

View the implementation: grey_wolf_optimizer.py

Released under the MIT License.