useful-optimizer 0.1.2__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- useful_optimizer-0.2.0/PKG-INFO +457 -0
- useful_optimizer-0.2.0/README.md +436 -0
- useful_optimizer-0.2.0/pyproject.toml +287 -0
- useful_optimizer-0.2.0/pyproject.toml.orig +295 -0
- useful_optimizer-0.2.0/src/opt/CONSTANTS.md +180 -0
- useful_optimizer-0.2.0/src/opt/__init__.py +288 -0
- useful_optimizer-0.2.0/src/opt/abstract/__init__.py +20 -0
- useful_optimizer-0.2.0/src/opt/abstract/history.py +229 -0
- useful_optimizer-0.2.0/src/opt/abstract/multi_objective.py +352 -0
- useful_optimizer-0.2.0/src/opt/abstract/single_objective.py +258 -0
- {useful_optimizer-0.1.2 → useful_optimizer-0.2.0/src}/opt/benchmark/__init__.py +1 -1
- {useful_optimizer-0.1.2 → useful_optimizer-0.2.0/src}/opt/benchmark/functions.py +80 -7
- useful_optimizer-0.2.0/src/opt/benchmark/optima.py +120 -0
- useful_optimizer-0.2.0/src/opt/classical/__init__.py +33 -0
- useful_optimizer-0.2.0/src/opt/classical/bfgs.py +342 -0
- useful_optimizer-0.2.0/src/opt/classical/conjugate_gradient.py +341 -0
- useful_optimizer-0.2.0/src/opt/classical/hill_climbing.py +346 -0
- useful_optimizer-0.2.0/src/opt/classical/lbfgs.py +324 -0
- useful_optimizer-0.2.0/src/opt/classical/nelder_mead.py +346 -0
- useful_optimizer-0.2.0/src/opt/classical/powell.py +296 -0
- useful_optimizer-0.2.0/src/opt/classical/random_search.py +384 -0
- useful_optimizer-0.2.0/src/opt/classical/simulated_annealing.py +318 -0
- useful_optimizer-0.2.0/src/opt/classical/tabu_search.py +361 -0
- useful_optimizer-0.2.0/src/opt/classical/trust_region.py +329 -0
- useful_optimizer-0.2.0/src/opt/constants.py +194 -0
- useful_optimizer-0.2.0/src/opt/constrained/__init__.py +26 -0
- useful_optimizer-0.2.0/src/opt/constrained/augmented_lagrangian_method.py +403 -0
- useful_optimizer-0.2.0/src/opt/constrained/barrier_method.py +436 -0
- useful_optimizer-0.2.0/src/opt/constrained/penalty_method.py +422 -0
- useful_optimizer-0.2.0/src/opt/constrained/sequential_quadratic_programming.py +415 -0
- useful_optimizer-0.2.0/src/opt/constrained/successive_linear_programming.py +334 -0
- useful_optimizer-0.2.0/src/opt/demo.py +97 -0
- useful_optimizer-0.2.0/src/opt/evolutionary/__init__.py +29 -0
- useful_optimizer-0.2.0/src/opt/evolutionary/cma_es.py +396 -0
- useful_optimizer-0.2.0/src/opt/evolutionary/cultural_algorithm.py +369 -0
- useful_optimizer-0.2.0/src/opt/evolutionary/differential_evolution.py +373 -0
- useful_optimizer-0.2.0/src/opt/evolutionary/estimation_of_distribution_algorithm.py +330 -0
- useful_optimizer-0.2.0/src/opt/evolutionary/genetic_algorithm.py +408 -0
- useful_optimizer-0.2.0/src/opt/evolutionary/imperialist_competitive_algorithm.py +397 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/__init__.py +34 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/adadelta.py +351 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/adagrad.py +309 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/adamax.py +377 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/adamw.py +404 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/adaptive_moment_estimation.py +358 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/amsgrad.py +390 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/nadam.py +403 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/nesterov_accelerated_gradient.py +354 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/rmsprop.py +358 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/sgd_momentum.py +351 -0
- useful_optimizer-0.2.0/src/opt/gradient_based/stochastic_gradient_descent.py +326 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/__init__.py +46 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/arithmetic_optimization.py +366 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/colliding_bodies_optimization.py +299 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/cross_entropy_method.py +334 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/eagle_strategy.py +307 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/forensic_based.py +353 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/harmony_search.py +384 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/particle_filter.py +372 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/shuffled_frog_leaping_algorithm.py +346 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/sine_cosine_algorithm.py +420 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/stochastic_diffusion_search.py +339 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/stochastic_fractal_search.py +377 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/variable_depth_search.py +355 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/variable_neighborhood_search.py +345 -0
- useful_optimizer-0.2.0/src/opt/metaheuristic/very_large_scale_neighborhood_search.py +356 -0
- useful_optimizer-0.2.0/src/opt/multi_objective/__init__.py +31 -0
- useful_optimizer-0.2.0/src/opt/multi_objective/moead.py +658 -0
- useful_optimizer-0.2.0/src/opt/multi_objective/nsga_ii.py +668 -0
- useful_optimizer-0.2.0/src/opt/multi_objective/spea2.py +742 -0
- useful_optimizer-0.2.0/src/opt/physics_inspired/__init__.py +33 -0
- useful_optimizer-0.2.0/src/opt/physics_inspired/atom_search.py +468 -0
- useful_optimizer-0.2.0/src/opt/physics_inspired/equilibrium_optimizer.py +481 -0
- useful_optimizer-0.2.0/src/opt/physics_inspired/gravitational_search.py +453 -0
- useful_optimizer-0.2.0/src/opt/physics_inspired/rime_optimizer.py +406 -0
- useful_optimizer-0.2.0/src/opt/probabilistic/__init__.py +24 -0
- useful_optimizer-0.2.0/src/opt/probabilistic/adaptive_metropolis.py +381 -0
- useful_optimizer-0.2.0/src/opt/probabilistic/bayesian_optimizer.py +443 -0
- useful_optimizer-0.2.0/src/opt/probabilistic/linear_discriminant_analysis.py +415 -0
- useful_optimizer-0.2.0/src/opt/probabilistic/parzen_tree_estimator.py +405 -0
- useful_optimizer-0.2.0/src/opt/probabilistic/sequential_monte_carlo.py +392 -0
- useful_optimizer-0.2.0/src/opt/social_inspired/__init__.py +31 -0
- useful_optimizer-0.2.0/src/opt/social_inspired/political_optimizer.py +387 -0
- useful_optimizer-0.2.0/src/opt/social_inspired/soccer_league_optimizer.py +377 -0
- useful_optimizer-0.2.0/src/opt/social_inspired/social_group_optimizer.py +462 -0
- useful_optimizer-0.2.0/src/opt/social_inspired/teaching_learning.py +372 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/__init__.py +130 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/african_buffalo_optimization.py +369 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/african_vultures_optimizer.py +443 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/ant_colony.py +406 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/ant_lion_optimizer.py +403 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/aquila_optimizer.py +417 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/artificial_fish_swarm_algorithm.py +351 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/artificial_gorilla_troops.py +404 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/artificial_hummingbird.py +341 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/artificial_rabbits.py +354 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/barnacles_mating.py +323 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/bat_algorithm.py +408 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/bee_algorithm.py +348 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/black_widow.py +384 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/brown_bear.py +328 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/cat_swarm_optimization.py +353 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/chimp_optimization.py +348 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/coati_optimizer.py +336 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/cuckoo_search.py +348 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/dandelion_optimizer.py +382 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/dingo_optimizer.py +357 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/dragonfly_algorithm.py +437 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/emperor_penguin.py +325 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/fennec_fox.py +349 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/firefly_algorithm.py +369 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/flower_pollination.py +355 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/giant_trevally.py +355 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/glowworm_swarm_optimization.py +386 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/golden_eagle.py +340 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/grasshopper_optimization.py +426 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/grey_wolf_optimizer.py +334 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/harris_hawks_optimization.py +400 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/honey_badger.py +354 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/manta_ray.py +366 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/marine_predators_algorithm.py +479 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/mayfly_optimizer.py +395 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/moth_flame_optimization.py +381 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/moth_search.py +356 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/mountain_gazelle.py +344 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/orca_predator.py +324 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/osprey_optimizer.py +354 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/particle_swarm.py +405 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/pathfinder.py +339 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/pelican_optimizer.py +351 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/reptile_search.py +338 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/salp_swarm_algorithm.py +372 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/sand_cat.py +317 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/seagull_optimization.py +330 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/slime_mould.py +348 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/snow_geese.py +365 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/spotted_hyena.py +339 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/squirrel_search.py +295 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/starling_murmuration.py +354 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/tunicate_swarm.py +331 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/whale_optimization_algorithm.py +344 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/wild_horse.py +358 -0
- useful_optimizer-0.2.0/src/opt/swarm_intelligence/zebra_optimizer.py +349 -0
- useful_optimizer-0.2.0/src/opt/test/__init__.py +3 -0
- useful_optimizer-0.2.0/src/opt/test/conftest.py +464 -0
- useful_optimizer-0.2.0/src/opt/test/test_batch_update_docstrings.py +411 -0
- useful_optimizer-0.2.0/src/opt/test/test_benchmarks.py +549 -0
- useful_optimizer-0.2.0/src/opt/test/test_constants.py +188 -0
- useful_optimizer-0.2.0/src/opt/test/test_demo.py +53 -0
- useful_optimizer-0.2.0/src/opt/test/test_history_tracking.py +64 -0
- useful_optimizer-0.2.0/src/opt/test/test_optimizers.py +865 -0
- useful_optimizer-0.2.0/src/opt/test/test_performance.py +373 -0
- useful_optimizer-0.2.0/src/opt/test/test_random_search.py +163 -0
- useful_optimizer-0.2.0/src/opt/test/test_visualization.py +314 -0
- useful_optimizer-0.2.0/src/opt/visualization/__init__.py +28 -0
- useful_optimizer-0.2.0/src/opt/visualization/stability.py +445 -0
- useful_optimizer-0.2.0/src/opt/visualization/visualizer.py +314 -0
- useful_optimizer-0.1.2/LICENSE +0 -21
- useful_optimizer-0.1.2/PKG-INFO +0 -163
- useful_optimizer-0.1.2/README.md +0 -144
- useful_optimizer-0.1.2/opt/__init__.py +0 -6
- useful_optimizer-0.1.2/opt/abstract_optimizer.py +0 -74
- useful_optimizer-0.1.2/opt/adadelta.py +0 -148
- useful_optimizer-0.1.2/opt/adagrad.py +0 -111
- useful_optimizer-0.1.2/opt/adaptive_moment_estimation.py +0 -140
- useful_optimizer-0.1.2/opt/ant_colony.py +0 -194
- useful_optimizer-0.1.2/opt/artificial_fish_swarm_algorithm.py +0 -189
- useful_optimizer-0.1.2/opt/augmented_lagrangian_method.py +0 -177
- useful_optimizer-0.1.2/opt/bat_algorithm.py +0 -191
- useful_optimizer-0.1.2/opt/bee_algorithm.py +0 -166
- useful_optimizer-0.1.2/opt/cat_swarm_optimization.py +0 -188
- useful_optimizer-0.1.2/opt/cma_es.py +0 -180
- useful_optimizer-0.1.2/opt/colliding_bodies_optimization.py +0 -107
- useful_optimizer-0.1.2/opt/cross_entropy_method.py +0 -126
- useful_optimizer-0.1.2/opt/cuckoo_search.py +0 -142
- useful_optimizer-0.1.2/opt/cultural_algorithm.py +0 -168
- useful_optimizer-0.1.2/opt/differential_evolution.py +0 -150
- useful_optimizer-0.1.2/opt/eagle_strategy.py +0 -113
- useful_optimizer-0.1.2/opt/estimation_of_distribution_algorithm.py +0 -164
- useful_optimizer-0.1.2/opt/firefly_algorithm.py +0 -144
- useful_optimizer-0.1.2/opt/genetic_algorithm.py +0 -192
- useful_optimizer-0.1.2/opt/glowworm_swarm_optimization.py +0 -204
- useful_optimizer-0.1.2/opt/grey_wolf_optimizer.py +0 -127
- useful_optimizer-0.1.2/opt/harmony_search.py +0 -172
- useful_optimizer-0.1.2/opt/hill_climbing.py +0 -140
- useful_optimizer-0.1.2/opt/imperialist_competitive_algorithm.py +0 -198
- useful_optimizer-0.1.2/opt/linear_discriminant_analysis.py +0 -201
- useful_optimizer-0.1.2/opt/particle_filter.py +0 -151
- useful_optimizer-0.1.2/opt/particle_swarm.py +0 -170
- useful_optimizer-0.1.2/opt/parzen_tree_stimator.py +0 -190
- useful_optimizer-0.1.2/opt/shuffled_frog_leaping_algorithm.py +0 -151
- useful_optimizer-0.1.2/opt/simulated_annealing.py +0 -155
- useful_optimizer-0.1.2/opt/sine_cosine_algorithm.py +0 -206
- useful_optimizer-0.1.2/opt/squirrel_search.py +0 -113
- useful_optimizer-0.1.2/opt/stochastic_diffusion_search.py +0 -154
- useful_optimizer-0.1.2/opt/stochastic_fractal_search.py +0 -178
- useful_optimizer-0.1.2/opt/successive_linear_programming.py +0 -112
- useful_optimizer-0.1.2/opt/tabu_search.py +0 -192
- useful_optimizer-0.1.2/opt/variable_depth_search.py +0 -138
- useful_optimizer-0.1.2/opt/variable_neighbourhood_search.py +0 -142
- useful_optimizer-0.1.2/opt/very_large_scale_neighborhood_search.py +0 -140
- useful_optimizer-0.1.2/opt/whale_optimization_algorithm.py +0 -144
- useful_optimizer-0.1.2/pyproject.toml +0 -147
|
@@ -0,0 +1,457 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: useful-optimizer
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: A dedicated set of optimization algorithms for numeric problems.
|
|
5
|
+
Author: Anselm Hahn
|
|
6
|
+
Author-email: Anselm Hahn <Anselm.Hahn@gmail.com>
|
|
7
|
+
License: MIT
|
|
8
|
+
Requires-Dist: numpy>=1.26.4
|
|
9
|
+
Requires-Dist: scipy>=1.12.0
|
|
10
|
+
Requires-Dist: scikit-learn>=1.5.1
|
|
11
|
+
Requires-Dist: pydantic>=2.12.5 ; extra == 'benchmark'
|
|
12
|
+
Requires-Dist: ruff>=0.17.1 ; extra == 'dev'
|
|
13
|
+
Requires-Dist: pytest>=8.0.0 ; extra == 'dev'
|
|
14
|
+
Requires-Dist: pre-commit>=4.7.0 ; extra == 'dev'
|
|
15
|
+
Requires-Dist: matplotlib>=3.7.0 ; extra == 'visualization'
|
|
16
|
+
Requires-Python: >=3.12, <3.15
|
|
17
|
+
Provides-Extra: benchmark
|
|
18
|
+
Provides-Extra: dev
|
|
19
|
+
Provides-Extra: visualization
|
|
20
|
+
Description-Content-Type: text/markdown
|
|
21
|
+
|
|
22
|
+
[](https://zenodo.org/doi/10.5281/zenodo.13294276)
|
|
23
|
+
|
|
24
|
+
# Useful Optimizer
|
|
25
|
+
|
|
26
|
+
Useful Optimizer is a dedicated set of optimization algorithms for numeric problems. It's designed to provide a comprehensive collection of optimization techniques that can be easily used and integrated into any project.
|
|
27
|
+
|
|
28
|
+
## Version
|
|
29
|
+
|
|
30
|
+
The current version of Useful Optimizer is 0.2.0.
|
|
31
|
+
|
|
32
|
+
## Features
|
|
33
|
+
|
|
34
|
+
- A wide range of optimization algorithms in ten categories, each documented and benchmarked.
|
|
35
|
+
- Organized into logical categories for easy discovery.
|
|
36
|
+
- Easy to use and integrate.
|
|
37
|
+
- Suitable for various numeric problems.
|
|
38
|
+
- Having fun to play with the algorithms
|
|
39
|
+
|
|
40
|
+
## Installation
|
|
41
|
+
|
|
42
|
+
To install Useful Optimizer, you can use pip:
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
pip install git+https://github.com/Anselmoo/useful-optimizer
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Or using uv (recommended):
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
uv add git+https://github.com/Anselmoo/useful-optimizer
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Usage
|
|
55
|
+
|
|
56
|
+
Here's a basic example of how to use Useful Optimizer:
|
|
57
|
+
|
|
58
|
+
```python
|
|
59
|
+
from opt.metaheuristic import CrossEntropyMethod
|
|
60
|
+
from opt.benchmark.functions import shifted_ackley
|
|
61
|
+
|
|
62
|
+
optimizer = CrossEntropyMethod(
|
|
63
|
+
func=shifted_ackley,
|
|
64
|
+
dim=2,
|
|
65
|
+
lower_bound=-12.768,
|
|
66
|
+
upper_bound=+12.768,
|
|
67
|
+
population_size=100,
|
|
68
|
+
max_iter=1000,
|
|
69
|
+
)
|
|
70
|
+
best_solution, best_fitness = optimizer.search()
|
|
71
|
+
print(f"Best solution: {best_solution}")
|
|
72
|
+
print(f"Best fitness: {best_fitness}")
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
You can also use the gradient-based optimizers:
|
|
76
|
+
|
|
77
|
+
```python
|
|
78
|
+
from opt.gradient_based import SGD, AdamW
|
|
79
|
+
from opt.classical import BFGS
|
|
80
|
+
from opt.benchmark.functions import shifted_ackley
|
|
81
|
+
|
|
82
|
+
# Gradient-based optimization
|
|
83
|
+
sgd = SGD(func=shifted_ackley, lower_bound=-12.768, upper_bound=12.768, dim=2, learning_rate=0.01)
|
|
84
|
+
best_solution, best_fitness = sgd.search()
|
|
85
|
+
|
|
86
|
+
# Adam variant with weight decay
|
|
87
|
+
adamw = AdamW(func=shifted_ackley, lower_bound=-12.768, upper_bound=12.768, dim=2, weight_decay=0.01)
|
|
88
|
+
best_solution, best_fitness = adamw.search()
|
|
89
|
+
|
|
90
|
+
# Quasi-Newton method
|
|
91
|
+
bfgs = BFGS(func=shifted_ackley, lower_bound=-12.768, upper_bound=12.768, dim=2, num_restarts=10)
|
|
92
|
+
best_solution, best_fitness = bfgs.search()
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
### Import Styles
|
|
96
|
+
|
|
97
|
+
All optimizers can be imported in two ways:
|
|
98
|
+
|
|
99
|
+
```python
|
|
100
|
+
# Categorical imports (recommended for discoverability)
|
|
101
|
+
from opt.swarm_intelligence import ParticleSwarm
|
|
102
|
+
from opt.gradient_based import AdamW
|
|
103
|
+
from opt.classical import BFGS
|
|
104
|
+
|
|
105
|
+
# Direct imports from root (backward compatible)
|
|
106
|
+
from opt import ParticleSwarm, AdamW, BFGS
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### Quick Demo
|
|
110
|
+
|
|
111
|
+
All optimizers include a standardized demo that can be run directly or customized:
|
|
112
|
+
|
|
113
|
+
```python
|
|
114
|
+
from opt.demo import run_demo
|
|
115
|
+
from opt.swarm_intelligence import ParticleSwarm
|
|
116
|
+
|
|
117
|
+
# Run with default settings
|
|
118
|
+
run_demo(ParticleSwarm)
|
|
119
|
+
|
|
120
|
+
# Or customize parameters
|
|
121
|
+
run_demo(
|
|
122
|
+
ParticleSwarm,
|
|
123
|
+
max_iter=200,
|
|
124
|
+
population_size=50,
|
|
125
|
+
c1=2.0,
|
|
126
|
+
c2=2.0
|
|
127
|
+
)
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
You can also run demos directly from the command line:
|
|
131
|
+
|
|
132
|
+
```bash
|
|
133
|
+
python -m opt.swarm_intelligence.particle_swarm
|
|
134
|
+
python -m opt.gradient_based.adamw
|
|
135
|
+
python -m opt.classical.simulated_annealing
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Project Structure
|
|
139
|
+
|
|
140
|
+
Optimizers are organized into categorical subfolders:
|
|
141
|
+
|
|
142
|
+
<!-- BEGIN GENERATED: readme-structure (scripts/generate_docs.py) -->
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
src/opt/
|
|
146
|
+
├── abstract/ # Base classes and history tracking
|
|
147
|
+
├── swarm_intelligence/ # 56 algorithms
|
|
148
|
+
├── evolutionary/ # 6 algorithms
|
|
149
|
+
├── gradient_based/ # 11 algorithms
|
|
150
|
+
├── classical/ # 10 algorithms
|
|
151
|
+
├── metaheuristic/ # 14 algorithms
|
|
152
|
+
├── physics_inspired/ # 4 algorithms
|
|
153
|
+
├── probabilistic/ # 5 algorithms
|
|
154
|
+
├── social_inspired/ # 4 algorithms
|
|
155
|
+
├── constrained/ # 5 algorithms
|
|
156
|
+
├── multi_objective/ # 3 algorithms
|
|
157
|
+
└── benchmark/ # Benchmark functions
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
<!-- END GENERATED: readme-structure -->
|
|
161
|
+
|
|
162
|
+
## Implemented Optimizers
|
|
163
|
+
|
|
164
|
+
<!-- BEGIN GENERATED: readme-optimizers (scripts/generate_docs.py) -->
|
|
165
|
+
|
|
166
|
+
Useful Optimizer includes 118 optimization algorithms in 10 categories, each implemented as a separate module. Every optimizer links to its documentation page, which carries the formulation, parameters, references and benchmark charts, and to its source code.
|
|
167
|
+
|
|
168
|
+
<details>
|
|
169
|
+
<summary><strong>🦋 Swarm Intelligence (56)</strong></summary>
|
|
170
|
+
|
|
171
|
+
Nature-inspired algorithms based on collective behavior.
|
|
172
|
+
|
|
173
|
+
- **[African Buffalo Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/african-buffalo-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/african_buffalo_optimization.py)) - African Buffalo Optimization (ABO) optimization algorithm.
|
|
174
|
+
- **[African Vultures Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/african-vultures-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/african_vultures_optimizer.py)) - African Vultures Optimization Algorithm (AVOA) optimization algorithm.
|
|
175
|
+
- **[Ant Colony Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/ant-colony)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/ant_colony.py)) - Ant Colony Optimization (ACO) algorithm for continuous optimization.
|
|
176
|
+
- **[Ant Lion Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/ant-lion-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/ant_lion_optimizer.py)) - Ant Lion Optimizer (ALO) optimization algorithm.
|
|
177
|
+
- **[Aquila Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/aquila-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/aquila_optimizer.py)) - Aquila Optimizer (AO) optimization algorithm.
|
|
178
|
+
- **[Artificial Fish Swarm Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/artificial-fish-swarm-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/artificial_fish_swarm_algorithm.py)) - Artificial Fish Swarm Algorithm (AFSA) optimization algorithm.
|
|
179
|
+
- **[Artificial Gorilla Troops Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/artificial-gorilla-troops)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/artificial_gorilla_troops.py)) - Artificial Gorilla Troops Optimizer (GTO) optimization algorithm.
|
|
180
|
+
- **[Artificial Hummingbird Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/artificial-hummingbird)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/artificial_hummingbird.py)) - Artificial Hummingbird Algorithm (AHA) optimization algorithm.
|
|
181
|
+
- **[Artificial Rabbits Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/artificial-rabbits)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/artificial_rabbits.py)) - Artificial Rabbits Optimization (ARO) optimization algorithm.
|
|
182
|
+
- **[Barnacles Mating Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/barnacles-mating)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/barnacles_mating.py)) - Barnacles Mating Optimizer (BMO) optimization algorithm.
|
|
183
|
+
- **[Bat Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/bat-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/bat_algorithm.py)) - Bat Algorithm (BA) optimization algorithm.
|
|
184
|
+
- **[Bee Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/bee-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/bee_algorithm.py)) - Bee Algorithm (BA) optimization algorithm.
|
|
185
|
+
- **[Black Widow Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/black-widow)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/black_widow.py)) - Black Widow Optimization Algorithm (BWO) optimization algorithm.
|
|
186
|
+
- **[Brown Bear Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/brown-bear)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/brown_bear.py)) - Brown Bear Optimization Algorithm (BBOA) optimization algorithm.
|
|
187
|
+
- **[Cat Swarm Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/cat-swarm-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/cat_swarm_optimization.py)) - Cat Swarm Optimization (CSO) optimization algorithm.
|
|
188
|
+
- **[Chimp Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/chimp-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/chimp_optimization.py)) - Chimp Optimization Algorithm (ChOA) optimization algorithm.
|
|
189
|
+
- **[Coati Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/coati-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/coati_optimizer.py)) - Coati Optimization Algorithm (COA) optimization algorithm.
|
|
190
|
+
- **[Cuckoo Search](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/cuckoo-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/cuckoo_search.py)) - Cuckoo Search (CS) optimization algorithm.
|
|
191
|
+
- **[Dandelion Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/dandelion-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/dandelion_optimizer.py)) - Dandelion Optimizer (DO) optimization algorithm.
|
|
192
|
+
- **[Dingo Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/dingo-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/dingo_optimizer.py)) - Dingo Optimization Algorithm (DOA) optimization algorithm.
|
|
193
|
+
- **[Dragonfly Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/dragonfly-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/dragonfly_algorithm.py)) - Dragonfly Algorithm (DA) optimization algorithm.
|
|
194
|
+
- **[Emperor Penguin Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/emperor-penguin)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/emperor_penguin.py)) - Emperor Penguin Optimizer (EPO) optimization algorithm.
|
|
195
|
+
- **[Fennec Fox Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/fennec-fox)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/fennec_fox.py)) - Fennec Fox Optimization Algorithm (FFO) optimization algorithm.
|
|
196
|
+
- **[Firefly Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/firefly-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/firefly_algorithm.py)) - Firefly Algorithm (FA) optimization algorithm.
|
|
197
|
+
- **[Flower Pollination Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/flower-pollination)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/flower_pollination.py)) - Flower Pollination Algorithm (FPA) optimization algorithm.
|
|
198
|
+
- **[Giant Trevally Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/giant-trevally)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/giant_trevally.py)) - Giant Trevally Optimizer (GTO) optimization algorithm.
|
|
199
|
+
- **[Glowworm Swarm Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/glowworm-swarm-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/glowworm_swarm_optimization.py)) - Glowworm Swarm Optimization (GSO) optimization algorithm.
|
|
200
|
+
- **[Golden Eagle Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/golden-eagle)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/golden_eagle.py)) - Golden Eagle Optimizer (GEO) optimization algorithm.
|
|
201
|
+
- **[Grasshopper Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/grasshopper-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/grasshopper_optimization.py)) - Grasshopper Optimization Algorithm (GOA) optimization algorithm.
|
|
202
|
+
- **[Grey Wolf Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/grey-wolf-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/grey_wolf_optimizer.py)) - Grey Wolf Optimizer (GWO) optimization algorithm.
|
|
203
|
+
- **[Harris Hawks Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/harris-hawks-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/harris_hawks_optimization.py)) - Harris Hawks Optimization (HHO) optimization algorithm.
|
|
204
|
+
- **[Honey Badger Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/honey-badger)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/honey_badger.py)) - Honey Badger Algorithm (HBA) optimization algorithm.
|
|
205
|
+
- **[Manta Ray Foraging Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/manta-ray)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/manta_ray.py)) - Manta Ray Foraging Optimization (MRFO) optimization algorithm.
|
|
206
|
+
- **[Marine Predators Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/marine-predators-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/marine_predators_algorithm.py)) - Marine Predators Algorithm (MPA) optimization algorithm.
|
|
207
|
+
- **[Mayfly Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/mayfly-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/mayfly_optimizer.py)) - Mayfly Algorithm (MA) optimization algorithm.
|
|
208
|
+
- **[Moth Search Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/moth-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/moth_search.py)) - Moth Search Algorithm (MS) optimization algorithm.
|
|
209
|
+
- **[Moth-Flame Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/moth-flame-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/moth_flame_optimization.py)) - Moth-Flame Optimization (MFO) optimization algorithm.
|
|
210
|
+
- **[Mountain Gazelle Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/mountain-gazelle)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/mountain_gazelle.py)) - Mountain Gazelle Optimizer (MGO) optimization algorithm.
|
|
211
|
+
- **[Orca Predation Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/orca-predator)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/orca_predator.py)) - Orca Predation Algorithm (OPA) optimization algorithm.
|
|
212
|
+
- **[Osprey Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/osprey-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/osprey_optimizer.py)) - Osprey Optimization Algorithm (OOA) optimization algorithm.
|
|
213
|
+
- **[Particle Swarm Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/particle-swarm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/particle_swarm.py)) - Particle Swarm Optimization (PSO) algorithm.
|
|
214
|
+
- **[Pathfinder Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/pathfinder)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/pathfinder.py)) - Pathfinder Algorithm (PFA) optimization algorithm.
|
|
215
|
+
- **[Pelican Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/pelican-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/pelican_optimizer.py)) - Pelican Optimization Algorithm (POA) optimization algorithm.
|
|
216
|
+
- **[Reptile Search Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/reptile-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/reptile_search.py)) - Reptile Search Algorithm (RSA) optimization algorithm.
|
|
217
|
+
- **[Salp Swarm Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/salp-swarm-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/salp_swarm_algorithm.py)) - Salp Swarm Algorithm (SSA) optimization algorithm.
|
|
218
|
+
- **[Sand Cat Swarm Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/sand-cat)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/sand_cat.py)) - Sand Cat Swarm Optimization (SCSO) optimization algorithm.
|
|
219
|
+
- **[Seagull Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/seagull-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/seagull_optimization.py)) - Seagull Optimization Algorithm (SOA) optimization algorithm.
|
|
220
|
+
- **[Slime Mould Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/slime-mould)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/slime_mould.py)) - Slime Mould Algorithm (SMA) optimization algorithm.
|
|
221
|
+
- **[Snow Geese Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/snow-geese)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/snow_geese.py)) - Snow Geese Algorithm (SGA) optimization algorithm.
|
|
222
|
+
- **[Spotted Hyena Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/spotted-hyena)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/spotted_hyena.py)) - Spotted Hyena Optimizer (SHO) optimization algorithm.
|
|
223
|
+
- **[Squirrel Search Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/squirrel-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/squirrel_search.py)) - Squirrel Search Algorithm (SSA) optimization algorithm.
|
|
224
|
+
- **[Starling Murmuration Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/starling-murmuration)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/starling_murmuration.py)) - Starling Murmuration Optimizer (SMO) optimization algorithm.
|
|
225
|
+
- **[Tunicate Swarm Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/tunicate-swarm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/tunicate_swarm.py)) - Tunicate Swarm Algorithm (TSA) optimization algorithm.
|
|
226
|
+
- **[Whale Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/whale-optimization-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/whale_optimization_algorithm.py)) - Whale Optimization Algorithm (WOA) optimization algorithm.
|
|
227
|
+
- **[Wild Horse Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/wild-horse)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/wild_horse.py)) - Wild Horse Optimizer (WHO) optimization algorithm.
|
|
228
|
+
- **[Zebra Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/swarm-intelligence/zebra-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/swarm_intelligence/zebra_optimizer.py)) - Zebra Optimization Algorithm (ZOA) optimization algorithm.
|
|
229
|
+
|
|
230
|
+
</details>
|
|
231
|
+
|
|
232
|
+
<details>
|
|
233
|
+
<summary><strong>🧬 Evolutionary (6)</strong></summary>
|
|
234
|
+
|
|
235
|
+
Algorithms inspired by biological evolution.
|
|
236
|
+
|
|
237
|
+
- **[Covariance Matrix Adaptation Evolution Strategy](https://anselmoo.github.io/useful-optimizer/algorithms/evolutionary/cma-es)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/evolutionary/cma_es.py)) - Covariance Matrix Adaptation Evolution Strategy (CMA-ES) optimization algorithm.
|
|
238
|
+
- **[Cultural Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/evolutionary/cultural-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/evolutionary/cultural_algorithm.py)) - Cultural Algorithm (CA) optimization algorithm.
|
|
239
|
+
- **[Differential Evolution](https://anselmoo.github.io/useful-optimizer/algorithms/evolutionary/differential-evolution)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/evolutionary/differential_evolution.py)) - Differential Evolution (DE) optimization algorithm.
|
|
240
|
+
- **[Estimation of Distribution Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/evolutionary/estimation-of-distribution-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/evolutionary/estimation_of_distribution_algorithm.py)) - Estimation of Distribution Algorithm (EDA) optimization algorithm.
|
|
241
|
+
- **[Genetic Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/evolutionary/genetic-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/evolutionary/genetic_algorithm.py)) - Genetic Algorithm (GA) optimization algorithm.
|
|
242
|
+
- **[Imperialist Competitive Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/evolutionary/imperialist-competitive-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/evolutionary/imperialist_competitive_algorithm.py)) - Imperialist Competitive Algorithm (ICA) optimization algorithm.
|
|
243
|
+
|
|
244
|
+
</details>
|
|
245
|
+
|
|
246
|
+
<details>
|
|
247
|
+
<summary><strong>🧠 Gradient-Based (11)</strong></summary>
|
|
248
|
+
|
|
249
|
+
Optimization using gradient information.
|
|
250
|
+
|
|
251
|
+
- **[Adam with Decoupled Weight Decay](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/adamw)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/adamw.py)) - Adam with Decoupled Weight Decay (AdamW) optimization algorithm.
|
|
252
|
+
- **[Adamax](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/adamax)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/adamax.py)) - Adamax optimization algorithm.
|
|
253
|
+
- **[Adaptive Delta](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/adadelta)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/adadelta.py)) - Adaptive Delta (AdaDelta) optimization algorithm.
|
|
254
|
+
- **[Adaptive Gradient Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/adagrad)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/adagrad.py)) - Adaptive Gradient Algorithm (AdaGrad) optimization algorithm.
|
|
255
|
+
- **[Adaptive Moment Estimation](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/adaptive-moment-estimation)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/adaptive_moment_estimation.py)) - Adaptive Moment Estimation (Adam) optimization algorithm.
|
|
256
|
+
- **[AMSGrad](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/amsgrad)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/amsgrad.py)) - AMSGrad optimization algorithm.
|
|
257
|
+
- **[Nesterov Accelerated Gradient](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/nesterov-accelerated-gradient)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/nesterov_accelerated_gradient.py)) - Nesterov Accelerated Gradient (NAG) optimization algorithm.
|
|
258
|
+
- **[Nesterov-accelerated Adaptive Moment](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/nadam)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/nadam.py)) - Nesterov-accelerated Adaptive Moment Estimation (Nadam) optimization algorithm.
|
|
259
|
+
- **[Root Mean Square Propagation](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/rmsprop)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/rmsprop.py)) - Root Mean Square Propagation (RMSprop) optimization algorithm.
|
|
260
|
+
- **[SGD with Momentum](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/sgd-momentum)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/sgd_momentum.py)) - Stochastic Gradient Descent with Momentum (SGD-M) optimization algorithm.
|
|
261
|
+
- **[Stochastic Gradient Descent](https://anselmoo.github.io/useful-optimizer/algorithms/gradient-based/stochastic-gradient-descent)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/gradient_based/stochastic_gradient_descent.py)) - Stochastic Gradient Descent (SGD) optimization algorithm.
|
|
262
|
+
|
|
263
|
+
</details>
|
|
264
|
+
|
|
265
|
+
<details>
|
|
266
|
+
<summary><strong>🎯 Classical (10)</strong></summary>
|
|
267
|
+
|
|
268
|
+
Traditional mathematical optimization methods.
|
|
269
|
+
|
|
270
|
+
- **[Broyden-Fletcher-Goldfarb-Shanno](https://anselmoo.github.io/useful-optimizer/algorithms/classical/bfgs)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/bfgs.py)) - Broyden-Fletcher-Goldfarb-Shanno (BFGS) quasi-Newton optimization algorithm.
|
|
271
|
+
- **[Conjugate Gradient Method](https://anselmoo.github.io/useful-optimizer/algorithms/classical/conjugate-gradient)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/conjugate_gradient.py)) - Conjugate Gradient Method (CG) optimization algorithm.
|
|
272
|
+
- **[Hill Climbing](https://anselmoo.github.io/useful-optimizer/algorithms/classical/hill-climbing)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/hill_climbing.py)) - Hill Climbing local search optimization algorithm.
|
|
273
|
+
- **[Limited-memory BFGS](https://anselmoo.github.io/useful-optimizer/algorithms/classical/lbfgs)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/lbfgs.py)) - Limited-memory Broyden-Fletcher-Goldfarb-Shanno (L-BFGS) optimization algorithm.
|
|
274
|
+
- **[Nelder-Mead Simplex Method](https://anselmoo.github.io/useful-optimizer/algorithms/classical/nelder-mead)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/nelder_mead.py)) - Nelder-Mead Simplex Method optimization algorithm.
|
|
275
|
+
- **[Powell's Conjugate Direction Method](https://anselmoo.github.io/useful-optimizer/algorithms/classical/powell)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/powell.py)) - Powell's Conjugate Direction Method optimization algorithm.
|
|
276
|
+
- **[Random Search](https://anselmoo.github.io/useful-optimizer/algorithms/classical/random-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/random_search.py)) - Random Search, the uniform sampling baseline for black-box optimization.
|
|
277
|
+
- **[Simulated Annealing](https://anselmoo.github.io/useful-optimizer/algorithms/classical/simulated-annealing)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/simulated_annealing.py)) - Simulated Annealing (SA) metaheuristic optimization algorithm.
|
|
278
|
+
- **[Tabu Search](https://anselmoo.github.io/useful-optimizer/algorithms/classical/tabu-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/tabu_search.py)) - Tabu Search metaheuristic optimization algorithm.
|
|
279
|
+
- **[Trust Region Method](https://anselmoo.github.io/useful-optimizer/algorithms/classical/trust-region)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/classical/trust_region.py)) - Trust Region optimization algorithm.
|
|
280
|
+
|
|
281
|
+
</details>
|
|
282
|
+
|
|
283
|
+
<details>
|
|
284
|
+
<summary><strong>🔧 Metaheuristic (14)</strong></summary>
|
|
285
|
+
|
|
286
|
+
High-level problem-independent algorithms.
|
|
287
|
+
|
|
288
|
+
- **[Arithmetic Optimization Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/arithmetic-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/arithmetic_optimization.py)) - Arithmetic Optimization Algorithm (AOA) optimization algorithm.
|
|
289
|
+
- **[Colliding Bodies Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/colliding-bodies-optimization)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/colliding_bodies_optimization.py)) - Colliding Bodies Optimization (CBO) optimization algorithm.
|
|
290
|
+
- **[Cross-Entropy Method](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/cross-entropy-method)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/cross_entropy_method.py)) - Cross-Entropy Method (CEM) optimization algorithm.
|
|
291
|
+
- **[Eagle Strategy](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/eagle-strategy)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/eagle_strategy.py)) - Eagle Strategy (ES) optimization algorithm.
|
|
292
|
+
- **[Forensic-Based Investigation Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/forensic-based)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/forensic_based.py)) - Forensic-Based Investigation Optimizer (FBI) optimization algorithm.
|
|
293
|
+
- **[Harmony Search](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/harmony-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/harmony_search.py)) - Harmony Search (HS) optimization algorithm.
|
|
294
|
+
- **[Sequential Monte Carlo Particle Filter](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/particle-filter)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/particle_filter.py)) - Sequential Monte Carlo Particle Filter (SMC-PF) optimization algorithm.
|
|
295
|
+
- **[Shuffled Frog Leaping Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/shuffled-frog-leaping-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/shuffled_frog_leaping_algorithm.py)) - Shuffled Frog Leaping Algorithm (SFLA) optimization algorithm.
|
|
296
|
+
- **[Sine Cosine Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/sine-cosine-algorithm)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/sine_cosine_algorithm.py)) - Sine Cosine Algorithm (SCA) optimization algorithm.
|
|
297
|
+
- **[Stochastic Diffusion Search](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/stochastic-diffusion-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/stochastic_diffusion_search.py)) - Stochastic Diffusion Search (SDS) optimization algorithm.
|
|
298
|
+
- **[Stochastic Fractal Search](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/stochastic-fractal-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/stochastic_fractal_search.py)) - Stochastic Fractal Search (SFS) optimization algorithm.
|
|
299
|
+
- **[Variable Depth Search](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/variable-depth-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/variable_depth_search.py)) - Variable Depth Search (VDS) optimization algorithm.
|
|
300
|
+
- **[Variable Neighborhood Search](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/variable-neighborhood-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/variable_neighborhood_search.py)) - Variable Neighborhood Search (VNS) optimization algorithm.
|
|
301
|
+
- **[Very Large Scale Neighborhood Search](https://anselmoo.github.io/useful-optimizer/algorithms/metaheuristic/very-large-scale-neighborhood-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/metaheuristic/very_large_scale_neighborhood_search.py)) - Very Large Scale Neighborhood Search (VLSN) optimization algorithm.
|
|
302
|
+
|
|
303
|
+
</details>
|
|
304
|
+
|
|
305
|
+
<details>
|
|
306
|
+
<summary><strong>⚛️ Physics-Inspired (4)</strong></summary>
|
|
307
|
+
|
|
308
|
+
Algorithms based on physical phenomena.
|
|
309
|
+
|
|
310
|
+
- **[Atom Search Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/physics-inspired/atom-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/physics_inspired/atom_search.py)) - Atom Search Optimization (ASO) algorithm.
|
|
311
|
+
- **[Equilibrium Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/physics-inspired/equilibrium-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/physics_inspired/equilibrium_optimizer.py)) - Equilibrium Optimizer (EO) optimization algorithm.
|
|
312
|
+
- **[Gravitational Search Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/physics-inspired/gravitational-search)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/physics_inspired/gravitational_search.py)) - Gravitational Search Algorithm (GSA) optimization algorithm.
|
|
313
|
+
- **[RIME: A Physics-based Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/physics-inspired/rime-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/physics_inspired/rime_optimizer.py)) - RIME Optimization Algorithm (RIME) optimization algorithm.
|
|
314
|
+
|
|
315
|
+
</details>
|
|
316
|
+
|
|
317
|
+
<details>
|
|
318
|
+
<summary><strong>📊 Probabilistic (5)</strong></summary>
|
|
319
|
+
|
|
320
|
+
Stochastic and Bayesian optimization methods.
|
|
321
|
+
|
|
322
|
+
- **[Adaptive Metropolis Algorithm](https://anselmoo.github.io/useful-optimizer/algorithms/probabilistic/adaptive-metropolis)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/probabilistic/adaptive_metropolis.py)) - Adaptive Metropolis (AM) algorithm with covariance adaptation.
|
|
323
|
+
- **[Bayesian Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/probabilistic/bayesian-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/probabilistic/bayesian_optimizer.py)) - Bayesian Optimization (BO) using Gaussian Process surrogates.
|
|
324
|
+
- **[Linear Discriminant Analysis Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/probabilistic/linear-discriminant-analysis)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/probabilistic/linear_discriminant_analysis.py)) - LDA-guided Optimization using Linear Discriminant Analysis.
|
|
325
|
+
- **[Sequential Monte Carlo Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/probabilistic/sequential-monte-carlo)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/probabilistic/sequential_monte_carlo.py)) - Sequential Monte Carlo (SMC) optimization with particle filtering.
|
|
326
|
+
- **[Tree-structured Parzen Estimator](https://anselmoo.github.io/useful-optimizer/algorithms/probabilistic/parzen-tree-estimator)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/probabilistic/parzen_tree_estimator.py)) - Tree-structured Parzen Estimator (TPE) for hyperparameter optimization.
|
|
327
|
+
|
|
328
|
+
</details>
|
|
329
|
+
|
|
330
|
+
<details>
|
|
331
|
+
<summary><strong>👥 Social-Inspired (4)</strong></summary>
|
|
332
|
+
|
|
333
|
+
Algorithms inspired by social behaviors.
|
|
334
|
+
|
|
335
|
+
- **[Political Optimizer](https://anselmoo.github.io/useful-optimizer/algorithms/social-inspired/political-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/social_inspired/political_optimizer.py)) - Political Optimizer (PO) algorithm.
|
|
336
|
+
- **[Soccer League Competition](https://anselmoo.github.io/useful-optimizer/algorithms/social-inspired/soccer-league-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/social_inspired/soccer_league_optimizer.py)) - Soccer League Competition (SLC) algorithm.
|
|
337
|
+
- **[Social Group Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/social-inspired/social-group-optimizer)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/social_inspired/social_group_optimizer.py)) - Social Group Optimization (SGO) algorithm.
|
|
338
|
+
- **[Teaching-Learning Based Optimization](https://anselmoo.github.io/useful-optimizer/algorithms/social-inspired/teaching-learning)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/social_inspired/teaching_learning.py)) - Teaching-Learning Based Optimization (TLBO) algorithm.
|
|
339
|
+
|
|
340
|
+
</details>
|
|
341
|
+
|
|
342
|
+
<details>
|
|
343
|
+
<summary><strong>🔒 Constrained (5)</strong></summary>
|
|
344
|
+
|
|
345
|
+
Optimization with constraints.
|
|
346
|
+
|
|
347
|
+
- **[Augmented Lagrangian Method](https://anselmoo.github.io/useful-optimizer/algorithms/constrained/augmented-lagrangian-method)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/constrained/augmented_lagrangian_method.py)) - Augmented Lagrangian Method (ALM) optimization algorithm.
|
|
348
|
+
- **[Barrier Method (Interior Point)](https://anselmoo.github.io/useful-optimizer/algorithms/constrained/barrier-method)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/constrained/barrier_method.py)) - Barrier Method (Interior Point Method) optimization algorithm.
|
|
349
|
+
- **[Penalty Method (Quadratic Penalty)](https://anselmoo.github.io/useful-optimizer/algorithms/constrained/penalty-method)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/constrained/penalty_method.py)) - Penalty Method for constrained optimization.
|
|
350
|
+
- **[Sequential Quadratic Programming](https://anselmoo.github.io/useful-optimizer/algorithms/constrained/sequential-quadratic-programming)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/constrained/sequential_quadratic_programming.py)) - Sequential Quadratic Programming (SQP) optimization algorithm.
|
|
351
|
+
- **[Successive Linear Programming](https://anselmoo.github.io/useful-optimizer/algorithms/constrained/successive-linear-programming)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/constrained/successive_linear_programming.py)) - Successive Linear Programming (SLP) optimization algorithm.
|
|
352
|
+
|
|
353
|
+
</details>
|
|
354
|
+
|
|
355
|
+
<details>
|
|
356
|
+
<summary><strong>📈 Multi-Objective (3)</strong></summary>
|
|
357
|
+
|
|
358
|
+
Pareto-optimal solutions for multiple objectives.
|
|
359
|
+
|
|
360
|
+
- **[Multi-Objective Evolutionary Algorithm based on Decomposition](https://anselmoo.github.io/useful-optimizer/algorithms/multi-objective/moead)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/multi_objective/moead.py)) - Multi-Objective Evolutionary Algorithm based on Decomposition (MOEA/D).
|
|
361
|
+
- **[Non-dominated Sorting Genetic Algorithm II](https://anselmoo.github.io/useful-optimizer/algorithms/multi-objective/nsga-ii)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/multi_objective/nsga_ii.py)) - Non-dominated Sorting Genetic Algorithm II (NSGA-II) multi-objective optimizer.
|
|
362
|
+
- **[Strength Pareto Evolutionary Algorithm 2](https://anselmoo.github.io/useful-optimizer/algorithms/multi-objective/spea2)** ([source](https://github.com/Anselmoo/useful-optimizer/blob/main/src/opt/multi_objective/spea2.py)) - Strength Pareto Evolutionary Algorithm 2 (SPEA2) multi-objective optimizer.
|
|
363
|
+
|
|
364
|
+
</details>
|
|
365
|
+
|
|
366
|
+
<!-- END GENERATED: readme-optimizers -->
|
|
367
|
+
|
|
368
|
+
> [!NOTE]
|
|
369
|
+
> Please note that not all of these algorithms are suitable for all types of optimization problems. Some are better suited for continuous optimization problems, some for discrete optimization problems, and others for specific types of problems like quadratic programming or linear discriminant analysis.
|
|
370
|
+
|
|
371
|
+
## Testing and Documentation
|
|
372
|
+
|
|
373
|
+
Useful Optimizer includes comprehensive doctests to ensure all examples in the documentation are correct and up-to-date. All optimizer classes and benchmark functions include working examples that can be verified automatically.
|
|
374
|
+
|
|
375
|
+
### Documentation Generation
|
|
376
|
+
|
|
377
|
+
The project uses an automated documentation generator with Griffe integration to create comprehensive API documentation:
|
|
378
|
+
|
|
379
|
+
```bash
|
|
380
|
+
# Generate all documentation (markdown + JSON + API)
|
|
381
|
+
uv run python scripts/generate_docs.py --all --json --full-api --sidebar
|
|
382
|
+
|
|
383
|
+
# Or use the npm shortcut
|
|
384
|
+
cd docs && npm run docs:api:all
|
|
385
|
+
```
|
|
386
|
+
|
|
387
|
+
This generates:
|
|
388
|
+
- **Markdown pages** for every optimizer in `docs/algorithms/`, plus category indexes and API pages
|
|
389
|
+
- **JSON metadata** at `docs/public/optimizers/optimizers.json`
|
|
390
|
+
- **VitePress sidebar** auto-configuration
|
|
391
|
+
- **Griffe API dump** `docs/api/full_api.json` for the entire opt package (generated in CI, not committed)
|
|
392
|
+
|
|
393
|
+
Performance: ~6 seconds for complete generation
|
|
394
|
+
|
|
395
|
+
See [`docs/DOCUMENTATION_GENERATOR.md`](docs/DOCUMENTATION_GENERATOR.md) for detailed usage.
|
|
396
|
+
|
|
397
|
+
### Running Tests
|
|
398
|
+
|
|
399
|
+
To run all tests including doctests:
|
|
400
|
+
|
|
401
|
+
```bash
|
|
402
|
+
# Using pytest with doctests
|
|
403
|
+
uv run pytest --doctest-modules --doctest-glob="*.md" -v
|
|
404
|
+
|
|
405
|
+
# Run only doctests for a specific module
|
|
406
|
+
uv run pytest opt/benchmark/functions.py --doctest-modules -v
|
|
407
|
+
|
|
408
|
+
# Run only doctests for optimizers
|
|
409
|
+
uv run pytest opt/swarm_intelligence/particle_swarm.py --doctest-modules -v
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### Example Doctest Usage
|
|
413
|
+
|
|
414
|
+
All benchmark functions include working examples in their docstrings:
|
|
415
|
+
|
|
416
|
+
```python
|
|
417
|
+
import numpy as np
|
|
418
|
+
from opt.benchmark.functions import sphere
|
|
419
|
+
|
|
420
|
+
# At optimum
|
|
421
|
+
result = sphere(np.array([0.0, 0.0]))
|
|
422
|
+
print(float(result)) # 0.0
|
|
423
|
+
|
|
424
|
+
# Away from optimum
|
|
425
|
+
result = sphere(np.array([1.0, 1.0]))
|
|
426
|
+
print(float(result)) # 2.0
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
All optimizer classes include usage examples in their docstrings:
|
|
430
|
+
|
|
431
|
+
```python
|
|
432
|
+
from opt.swarm_intelligence.particle_swarm import ParticleSwarm
|
|
433
|
+
from opt.benchmark.functions import sphere
|
|
434
|
+
|
|
435
|
+
optimizer = ParticleSwarm(
|
|
436
|
+
func=sphere, dim=2, lower_bound=-5, upper_bound=5,
|
|
437
|
+
max_iter=10, seed=42
|
|
438
|
+
)
|
|
439
|
+
solution, fitness = optimizer.search()
|
|
440
|
+
print(f"Fitness: {fitness}") # Should be < 1.0
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
These examples serve as both documentation and automated tests, ensuring the code examples in docstrings always work correctly.
|
|
444
|
+
|
|
445
|
+
## Contributing
|
|
446
|
+
|
|
447
|
+
Contributions to Useful Optimizer are welcome! Please read the contributing guidelines before getting started.
|
|
448
|
+
|
|
449
|
+
## [License](LICENSE)
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
> [!WARNING]
|
|
454
|
+
> This project was generated with GitHub Copilot and may not be completely verified. Please use with caution and feel free to report any issues you encounter. Thank you!
|
|
455
|
+
|
|
456
|
+
> [!WARNING]
|
|
457
|
+
> Some parts still contain the _legacy_ `np.random.rand` call. See also: https://docs.astral.sh/ruff/rules/numpy-legacy-random/
|