gitmyhub

immortal-jellyfish-algorithm

Python ★ 154 updated 28d ago

A novel bio-inspired swarm intelligence optimizer — immortal Jellyfish Algorithm (IJA)

The Immortal Jellyfish Algorithm is a nature-inspired optimization method that searches for near-optimal solutions to engineering and math problems by cycling through four exploration phases modeled on a jellyfish's lifecycle.

PythonC++Javasetup: easycomplexity 3/5

The Immortal Jellyfish Algorithm (IJA) is an optimization method inspired by the biology of Turritopsis dohrnii, a jellyfish species that can revert from its adult form back to an earlier life stage, cycling through phases indefinitely. The algorithm uses this lifecycle as a model for searching through possible solutions to a mathematical problem, shifting its behavior across four phases as the search progresses.

In the first phase (Polyp), the algorithm explores broadly using a pattern called Levy flight, which mixes short local steps with occasional long jumps. In the second phase (Strobilation), it diversifies its candidate solutions. In the third phase (Medusa), it focuses candidate solutions toward the best positions found so far, using a formula inspired by how light intensity decreases with distance from a source. In the fourth phase (Senescence), it refines solutions with small Gaussian adjustments.

This class of algorithm is used in engineering and research to find near-optimal values for problems where you cannot simply calculate the best answer directly: configuration tuning, scheduling, parameter fitting, and similar tasks where you must search a large space of possible inputs.

The repository includes implementations in Python, C++, and Java, with the Python version being the primary one. It includes eight benchmark test functions for evaluating the algorithm, comparison implementations of five other well-known optimizers (PSO, DE, GWO, WOA, SCA), and experiment scripts that run 30 independent trials across all algorithms and functions to produce convergence charts, ranking heatmaps, and distribution plots.

Recommended settings are a population of 100 and 2000 maximum iterations. The code is MIT-licensed.

Where it fits