Simple subpackage¶
The metaheuristic_designer.simple module contains ready‑to‑run functions
that return a configured Algorithm.
All functions follow a strict naming pattern so you can call any algorithm
without looking up a separate catalogue.
Naming convention¶
Every function is named like this:
simple.<algorithm>_<encoding>(objfunc, **kwargs) # kwargs passed to Algorithm
<algorithm>– the algorithm family (e.g.genetic_algorithm).<encoding>– the problem representation you want to use:real– continuous variablesbinary– bit‑stringsdiscrete– integer variablespermutation– permutations of integers
The table below lists every algorithm family, the encodings it supports, and the corresponding function names. You can copy any function name directly into your code.
Available algorithms¶
Algorithm family |
Function names (“simple.” prefix omitted) |
Short description |
|---|---|---|
Random Search |
random_search_real,random_search_binary,random_search_discrete,random_search_permutation |
Independent random sampling each generation. |
Hill Climbing |
hill_climb_real,hill_climb_binary,hill_climb_discrete,hill_climb_permutation |
Single‑solution greedy local optimisation. |
Local Search |
local_search_real,local_search_binary,local_search_discrete,local_search_permutation |
Multiple perturbations around a single solution per iteration. |
Simulated Annealing |
simulated_annealing_real,simulated_annealing_binary,simulated_annealing_discrete,simulated_annealing_permutation |
Accepts worse solutions with a decaying temperature. |
Evolution Strategy (ES) |
evolution_strategy_real,evolution_strategy_binary,evolution_strategy_discrete,evolution_strategy_permutation |
(μ+λ) / (μ,λ) strategy with mutation, optional crossover. |
Genetic Algorithm (GA) |
genetic_algorithm_real,genetic_algorithm_binary,genetic_algorithm_discrete,genetic_algorithm_permutation |
Tournament selection, crossover, mutation, elitism. |
Differential Evolution (DE) |
differential_evolution_real,differential_evolution_binary,differential_evolution_discrete |
Population‑based method using difference vectors. No permutation variant. |
Particle Swarm (PSO) |
particle_swarm_real,particle_swarm_binary,particle_swarm_discrete |
Swarm intelligence with inertia weight and acceleration coefficients. No permutation variant. |
Bayesian Optimisation |
|
Gaussian‑process surrogate with Expected Improvement. Only continuous. |
Example¶
The following snippet minimises the 5‑dimensional Sphere function using a real‑coded Genetic Algorithm:
from metaheuristic_designer.benchmarks import Sphere
from metaheuristic_designer import simple, check_random_state
objfunc = Sphere(dimension=5, mode="min")
rng = check_random_state(42)
algo = simple.genetic_algorithm_real(
objfunc,
population_size=100,
max_iterations=100,
reporter="tqdm",
random_state=rng,
)
population = algo.optimize()
solution, obj = population.best_solution()
print(f"Best objective: {obj:.6g}")
All additional keyword arguments (such as max_iterations, reporter,
real_time_limit, …) are passed directly to the Algorithm
constructor. See the Algorithm Configuration
page for a full description of what you can configure.
Each function also accepts algorithm‑specific hyper‑parameters (mutation strength, population size, number of mutated components, …).
For a complete
list of available arguments, use Python’s built‑in help, e.g.
help(simple.genetic_algorithm_real).