HumpDay ships 22 derivative-free optimizers grouped into six
families. Every algorithm sees only f(x) calls —
no analytical gradients, no Jacobians — and is a pure-Python
port with no required dependencies. Each row links to a
details page (with an in-browser 3D demo) plus the Python and
JavaScript source.
Powell's quadratic-model trust-region methods, ported to pure Python from the PRIMA project.
| PRIMA_UOBYQA | Full quadratic interpolation model, no constraints. Best for small n. | doc py js |
| PRIMA_NEWUOA | Underdetermined quadratic model; scales better than UOBYQA in higher n. | doc py js |
| PRIMA_BOBYQA | Bound-constrained variant of NEWUOA. | doc py js |
Textbook methods, here as derivative-free baselines.
| NelderMead | Simplex method (reflection / expansion / contraction / shrink). SciPy-faithful parameter values. | doc py js |
| Powell | Conjugate-direction line searches; bounded golden-section per direction. | doc py js |
| LBFGSB | Finite-difference quasi-Newton baseline; named after L-BFGS-B but uses central differences (HumpDay has no gradients). | doc py js |
Population-based methods inspired by biological evolution and swarm behaviour.
| DifferentialEvolution | DE/rand/1/bin — vector-difference mutation, binomial crossover, greedy selection. | doc py js |
| ParticleSwarm | Swarm of particles with velocity updates pulled toward personal and global best. | doc py js |
| GeneticAlgorithm | Crossover, mutation and tournament-style selection on a real-valued population. | doc py js |
| EvolutionStrategy | Classical (μ+λ) ES — Rechenberg/Schwefel; elitist selection from parents+offspring. | doc py js |
| CMAEvolutionStrategy | CMA-ES with covariance-matrix adaptation; current state of the art for moderate n. | doc py js |
Builds a probabilistic surrogate of f and chooses queries by an acquisition function.
| BayesianOpt | Pure-Python Gaussian-Process surrogate + Expected-Improvement acquisition. Best when f is expensive. | doc py js |
Nature-inspired heuristics: temperature, memory, light, pheromones, harmony.
| SimulatedAnnealing | Metropolis acceptance with a cooling schedule; classic global optimization heuristic. | doc py js |
| FireflyAlgorithm | Fireflies attracted toward brighter neighbours; brightness inversely tied to f. | doc py js |
| AntColonyOpt | Pheromone-trail bias on a discretised search grid. | doc py js |
| HarmonySearch | Memory-based search that improvises new candidates from a harmony memory. | doc py js |
Simple greedy / structured search methods that probe neighbourhoods directly.
| HillClimbing | Greedy local moves with occasional random restarts. | doc py js |
| RandomSearch | Uniformly random sampling in the unit cube — the honest baseline. | doc py js |
| GridSearch | Regular Cartesian grid over the unit cube — the other honest baseline. Impractical past n_dim ≈ 3. | py js |
| Rechenberg | Rechenberg's (1+1)-Evolution Strategy with the 1/5-success-rule (formerly AdaptiveRandomSearch). | doc py js |
| CoordinateDescent | Cycles through axes; takes the better of two probes along each. | doc py js |
| PatternSearch | Polls ±step along each coordinate axis; grows on success, halves on stall, random-restarts when tiny. | doc py js |
Don't know which to pick? Use
humpday.minimize(f, n_dim, n_trials)
and a sensible default is chosen for you.