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.
Files changed (203) hide show
  1. useful_optimizer-0.2.0/PKG-INFO +457 -0
  2. useful_optimizer-0.2.0/README.md +436 -0
  3. useful_optimizer-0.2.0/pyproject.toml +287 -0
  4. useful_optimizer-0.2.0/pyproject.toml.orig +295 -0
  5. useful_optimizer-0.2.0/src/opt/CONSTANTS.md +180 -0
  6. useful_optimizer-0.2.0/src/opt/__init__.py +288 -0
  7. useful_optimizer-0.2.0/src/opt/abstract/__init__.py +20 -0
  8. useful_optimizer-0.2.0/src/opt/abstract/history.py +229 -0
  9. useful_optimizer-0.2.0/src/opt/abstract/multi_objective.py +352 -0
  10. useful_optimizer-0.2.0/src/opt/abstract/single_objective.py +258 -0
  11. {useful_optimizer-0.1.2 → useful_optimizer-0.2.0/src}/opt/benchmark/__init__.py +1 -1
  12. {useful_optimizer-0.1.2 → useful_optimizer-0.2.0/src}/opt/benchmark/functions.py +80 -7
  13. useful_optimizer-0.2.0/src/opt/benchmark/optima.py +120 -0
  14. useful_optimizer-0.2.0/src/opt/classical/__init__.py +33 -0
  15. useful_optimizer-0.2.0/src/opt/classical/bfgs.py +342 -0
  16. useful_optimizer-0.2.0/src/opt/classical/conjugate_gradient.py +341 -0
  17. useful_optimizer-0.2.0/src/opt/classical/hill_climbing.py +346 -0
  18. useful_optimizer-0.2.0/src/opt/classical/lbfgs.py +324 -0
  19. useful_optimizer-0.2.0/src/opt/classical/nelder_mead.py +346 -0
  20. useful_optimizer-0.2.0/src/opt/classical/powell.py +296 -0
  21. useful_optimizer-0.2.0/src/opt/classical/random_search.py +384 -0
  22. useful_optimizer-0.2.0/src/opt/classical/simulated_annealing.py +318 -0
  23. useful_optimizer-0.2.0/src/opt/classical/tabu_search.py +361 -0
  24. useful_optimizer-0.2.0/src/opt/classical/trust_region.py +329 -0
  25. useful_optimizer-0.2.0/src/opt/constants.py +194 -0
  26. useful_optimizer-0.2.0/src/opt/constrained/__init__.py +26 -0
  27. useful_optimizer-0.2.0/src/opt/constrained/augmented_lagrangian_method.py +403 -0
  28. useful_optimizer-0.2.0/src/opt/constrained/barrier_method.py +436 -0
  29. useful_optimizer-0.2.0/src/opt/constrained/penalty_method.py +422 -0
  30. useful_optimizer-0.2.0/src/opt/constrained/sequential_quadratic_programming.py +415 -0
  31. useful_optimizer-0.2.0/src/opt/constrained/successive_linear_programming.py +334 -0
  32. useful_optimizer-0.2.0/src/opt/demo.py +97 -0
  33. useful_optimizer-0.2.0/src/opt/evolutionary/__init__.py +29 -0
  34. useful_optimizer-0.2.0/src/opt/evolutionary/cma_es.py +396 -0
  35. useful_optimizer-0.2.0/src/opt/evolutionary/cultural_algorithm.py +369 -0
  36. useful_optimizer-0.2.0/src/opt/evolutionary/differential_evolution.py +373 -0
  37. useful_optimizer-0.2.0/src/opt/evolutionary/estimation_of_distribution_algorithm.py +330 -0
  38. useful_optimizer-0.2.0/src/opt/evolutionary/genetic_algorithm.py +408 -0
  39. useful_optimizer-0.2.0/src/opt/evolutionary/imperialist_competitive_algorithm.py +397 -0
  40. useful_optimizer-0.2.0/src/opt/gradient_based/__init__.py +34 -0
  41. useful_optimizer-0.2.0/src/opt/gradient_based/adadelta.py +351 -0
  42. useful_optimizer-0.2.0/src/opt/gradient_based/adagrad.py +309 -0
  43. useful_optimizer-0.2.0/src/opt/gradient_based/adamax.py +377 -0
  44. useful_optimizer-0.2.0/src/opt/gradient_based/adamw.py +404 -0
  45. useful_optimizer-0.2.0/src/opt/gradient_based/adaptive_moment_estimation.py +358 -0
  46. useful_optimizer-0.2.0/src/opt/gradient_based/amsgrad.py +390 -0
  47. useful_optimizer-0.2.0/src/opt/gradient_based/nadam.py +403 -0
  48. useful_optimizer-0.2.0/src/opt/gradient_based/nesterov_accelerated_gradient.py +354 -0
  49. useful_optimizer-0.2.0/src/opt/gradient_based/rmsprop.py +358 -0
  50. useful_optimizer-0.2.0/src/opt/gradient_based/sgd_momentum.py +351 -0
  51. useful_optimizer-0.2.0/src/opt/gradient_based/stochastic_gradient_descent.py +326 -0
  52. useful_optimizer-0.2.0/src/opt/metaheuristic/__init__.py +46 -0
  53. useful_optimizer-0.2.0/src/opt/metaheuristic/arithmetic_optimization.py +366 -0
  54. useful_optimizer-0.2.0/src/opt/metaheuristic/colliding_bodies_optimization.py +299 -0
  55. useful_optimizer-0.2.0/src/opt/metaheuristic/cross_entropy_method.py +334 -0
  56. useful_optimizer-0.2.0/src/opt/metaheuristic/eagle_strategy.py +307 -0
  57. useful_optimizer-0.2.0/src/opt/metaheuristic/forensic_based.py +353 -0
  58. useful_optimizer-0.2.0/src/opt/metaheuristic/harmony_search.py +384 -0
  59. useful_optimizer-0.2.0/src/opt/metaheuristic/particle_filter.py +372 -0
  60. useful_optimizer-0.2.0/src/opt/metaheuristic/shuffled_frog_leaping_algorithm.py +346 -0
  61. useful_optimizer-0.2.0/src/opt/metaheuristic/sine_cosine_algorithm.py +420 -0
  62. useful_optimizer-0.2.0/src/opt/metaheuristic/stochastic_diffusion_search.py +339 -0
  63. useful_optimizer-0.2.0/src/opt/metaheuristic/stochastic_fractal_search.py +377 -0
  64. useful_optimizer-0.2.0/src/opt/metaheuristic/variable_depth_search.py +355 -0
  65. useful_optimizer-0.2.0/src/opt/metaheuristic/variable_neighborhood_search.py +345 -0
  66. useful_optimizer-0.2.0/src/opt/metaheuristic/very_large_scale_neighborhood_search.py +356 -0
  67. useful_optimizer-0.2.0/src/opt/multi_objective/__init__.py +31 -0
  68. useful_optimizer-0.2.0/src/opt/multi_objective/moead.py +658 -0
  69. useful_optimizer-0.2.0/src/opt/multi_objective/nsga_ii.py +668 -0
  70. useful_optimizer-0.2.0/src/opt/multi_objective/spea2.py +742 -0
  71. useful_optimizer-0.2.0/src/opt/physics_inspired/__init__.py +33 -0
  72. useful_optimizer-0.2.0/src/opt/physics_inspired/atom_search.py +468 -0
  73. useful_optimizer-0.2.0/src/opt/physics_inspired/equilibrium_optimizer.py +481 -0
  74. useful_optimizer-0.2.0/src/opt/physics_inspired/gravitational_search.py +453 -0
  75. useful_optimizer-0.2.0/src/opt/physics_inspired/rime_optimizer.py +406 -0
  76. useful_optimizer-0.2.0/src/opt/probabilistic/__init__.py +24 -0
  77. useful_optimizer-0.2.0/src/opt/probabilistic/adaptive_metropolis.py +381 -0
  78. useful_optimizer-0.2.0/src/opt/probabilistic/bayesian_optimizer.py +443 -0
  79. useful_optimizer-0.2.0/src/opt/probabilistic/linear_discriminant_analysis.py +415 -0
  80. useful_optimizer-0.2.0/src/opt/probabilistic/parzen_tree_estimator.py +405 -0
  81. useful_optimizer-0.2.0/src/opt/probabilistic/sequential_monte_carlo.py +392 -0
  82. useful_optimizer-0.2.0/src/opt/social_inspired/__init__.py +31 -0
  83. useful_optimizer-0.2.0/src/opt/social_inspired/political_optimizer.py +387 -0
  84. useful_optimizer-0.2.0/src/opt/social_inspired/soccer_league_optimizer.py +377 -0
  85. useful_optimizer-0.2.0/src/opt/social_inspired/social_group_optimizer.py +462 -0
  86. useful_optimizer-0.2.0/src/opt/social_inspired/teaching_learning.py +372 -0
  87. useful_optimizer-0.2.0/src/opt/swarm_intelligence/__init__.py +130 -0
  88. useful_optimizer-0.2.0/src/opt/swarm_intelligence/african_buffalo_optimization.py +369 -0
  89. useful_optimizer-0.2.0/src/opt/swarm_intelligence/african_vultures_optimizer.py +443 -0
  90. useful_optimizer-0.2.0/src/opt/swarm_intelligence/ant_colony.py +406 -0
  91. useful_optimizer-0.2.0/src/opt/swarm_intelligence/ant_lion_optimizer.py +403 -0
  92. useful_optimizer-0.2.0/src/opt/swarm_intelligence/aquila_optimizer.py +417 -0
  93. useful_optimizer-0.2.0/src/opt/swarm_intelligence/artificial_fish_swarm_algorithm.py +351 -0
  94. useful_optimizer-0.2.0/src/opt/swarm_intelligence/artificial_gorilla_troops.py +404 -0
  95. useful_optimizer-0.2.0/src/opt/swarm_intelligence/artificial_hummingbird.py +341 -0
  96. useful_optimizer-0.2.0/src/opt/swarm_intelligence/artificial_rabbits.py +354 -0
  97. useful_optimizer-0.2.0/src/opt/swarm_intelligence/barnacles_mating.py +323 -0
  98. useful_optimizer-0.2.0/src/opt/swarm_intelligence/bat_algorithm.py +408 -0
  99. useful_optimizer-0.2.0/src/opt/swarm_intelligence/bee_algorithm.py +348 -0
  100. useful_optimizer-0.2.0/src/opt/swarm_intelligence/black_widow.py +384 -0
  101. useful_optimizer-0.2.0/src/opt/swarm_intelligence/brown_bear.py +328 -0
  102. useful_optimizer-0.2.0/src/opt/swarm_intelligence/cat_swarm_optimization.py +353 -0
  103. useful_optimizer-0.2.0/src/opt/swarm_intelligence/chimp_optimization.py +348 -0
  104. useful_optimizer-0.2.0/src/opt/swarm_intelligence/coati_optimizer.py +336 -0
  105. useful_optimizer-0.2.0/src/opt/swarm_intelligence/cuckoo_search.py +348 -0
  106. useful_optimizer-0.2.0/src/opt/swarm_intelligence/dandelion_optimizer.py +382 -0
  107. useful_optimizer-0.2.0/src/opt/swarm_intelligence/dingo_optimizer.py +357 -0
  108. useful_optimizer-0.2.0/src/opt/swarm_intelligence/dragonfly_algorithm.py +437 -0
  109. useful_optimizer-0.2.0/src/opt/swarm_intelligence/emperor_penguin.py +325 -0
  110. useful_optimizer-0.2.0/src/opt/swarm_intelligence/fennec_fox.py +349 -0
  111. useful_optimizer-0.2.0/src/opt/swarm_intelligence/firefly_algorithm.py +369 -0
  112. useful_optimizer-0.2.0/src/opt/swarm_intelligence/flower_pollination.py +355 -0
  113. useful_optimizer-0.2.0/src/opt/swarm_intelligence/giant_trevally.py +355 -0
  114. useful_optimizer-0.2.0/src/opt/swarm_intelligence/glowworm_swarm_optimization.py +386 -0
  115. useful_optimizer-0.2.0/src/opt/swarm_intelligence/golden_eagle.py +340 -0
  116. useful_optimizer-0.2.0/src/opt/swarm_intelligence/grasshopper_optimization.py +426 -0
  117. useful_optimizer-0.2.0/src/opt/swarm_intelligence/grey_wolf_optimizer.py +334 -0
  118. useful_optimizer-0.2.0/src/opt/swarm_intelligence/harris_hawks_optimization.py +400 -0
  119. useful_optimizer-0.2.0/src/opt/swarm_intelligence/honey_badger.py +354 -0
  120. useful_optimizer-0.2.0/src/opt/swarm_intelligence/manta_ray.py +366 -0
  121. useful_optimizer-0.2.0/src/opt/swarm_intelligence/marine_predators_algorithm.py +479 -0
  122. useful_optimizer-0.2.0/src/opt/swarm_intelligence/mayfly_optimizer.py +395 -0
  123. useful_optimizer-0.2.0/src/opt/swarm_intelligence/moth_flame_optimization.py +381 -0
  124. useful_optimizer-0.2.0/src/opt/swarm_intelligence/moth_search.py +356 -0
  125. useful_optimizer-0.2.0/src/opt/swarm_intelligence/mountain_gazelle.py +344 -0
  126. useful_optimizer-0.2.0/src/opt/swarm_intelligence/orca_predator.py +324 -0
  127. useful_optimizer-0.2.0/src/opt/swarm_intelligence/osprey_optimizer.py +354 -0
  128. useful_optimizer-0.2.0/src/opt/swarm_intelligence/particle_swarm.py +405 -0
  129. useful_optimizer-0.2.0/src/opt/swarm_intelligence/pathfinder.py +339 -0
  130. useful_optimizer-0.2.0/src/opt/swarm_intelligence/pelican_optimizer.py +351 -0
  131. useful_optimizer-0.2.0/src/opt/swarm_intelligence/reptile_search.py +338 -0
  132. useful_optimizer-0.2.0/src/opt/swarm_intelligence/salp_swarm_algorithm.py +372 -0
  133. useful_optimizer-0.2.0/src/opt/swarm_intelligence/sand_cat.py +317 -0
  134. useful_optimizer-0.2.0/src/opt/swarm_intelligence/seagull_optimization.py +330 -0
  135. useful_optimizer-0.2.0/src/opt/swarm_intelligence/slime_mould.py +348 -0
  136. useful_optimizer-0.2.0/src/opt/swarm_intelligence/snow_geese.py +365 -0
  137. useful_optimizer-0.2.0/src/opt/swarm_intelligence/spotted_hyena.py +339 -0
  138. useful_optimizer-0.2.0/src/opt/swarm_intelligence/squirrel_search.py +295 -0
  139. useful_optimizer-0.2.0/src/opt/swarm_intelligence/starling_murmuration.py +354 -0
  140. useful_optimizer-0.2.0/src/opt/swarm_intelligence/tunicate_swarm.py +331 -0
  141. useful_optimizer-0.2.0/src/opt/swarm_intelligence/whale_optimization_algorithm.py +344 -0
  142. useful_optimizer-0.2.0/src/opt/swarm_intelligence/wild_horse.py +358 -0
  143. useful_optimizer-0.2.0/src/opt/swarm_intelligence/zebra_optimizer.py +349 -0
  144. useful_optimizer-0.2.0/src/opt/test/__init__.py +3 -0
  145. useful_optimizer-0.2.0/src/opt/test/conftest.py +464 -0
  146. useful_optimizer-0.2.0/src/opt/test/test_batch_update_docstrings.py +411 -0
  147. useful_optimizer-0.2.0/src/opt/test/test_benchmarks.py +549 -0
  148. useful_optimizer-0.2.0/src/opt/test/test_constants.py +188 -0
  149. useful_optimizer-0.2.0/src/opt/test/test_demo.py +53 -0
  150. useful_optimizer-0.2.0/src/opt/test/test_history_tracking.py +64 -0
  151. useful_optimizer-0.2.0/src/opt/test/test_optimizers.py +865 -0
  152. useful_optimizer-0.2.0/src/opt/test/test_performance.py +373 -0
  153. useful_optimizer-0.2.0/src/opt/test/test_random_search.py +163 -0
  154. useful_optimizer-0.2.0/src/opt/test/test_visualization.py +314 -0
  155. useful_optimizer-0.2.0/src/opt/visualization/__init__.py +28 -0
  156. useful_optimizer-0.2.0/src/opt/visualization/stability.py +445 -0
  157. useful_optimizer-0.2.0/src/opt/visualization/visualizer.py +314 -0
  158. useful_optimizer-0.1.2/LICENSE +0 -21
  159. useful_optimizer-0.1.2/PKG-INFO +0 -163
  160. useful_optimizer-0.1.2/README.md +0 -144
  161. useful_optimizer-0.1.2/opt/__init__.py +0 -6
  162. useful_optimizer-0.1.2/opt/abstract_optimizer.py +0 -74
  163. useful_optimizer-0.1.2/opt/adadelta.py +0 -148
  164. useful_optimizer-0.1.2/opt/adagrad.py +0 -111
  165. useful_optimizer-0.1.2/opt/adaptive_moment_estimation.py +0 -140
  166. useful_optimizer-0.1.2/opt/ant_colony.py +0 -194
  167. useful_optimizer-0.1.2/opt/artificial_fish_swarm_algorithm.py +0 -189
  168. useful_optimizer-0.1.2/opt/augmented_lagrangian_method.py +0 -177
  169. useful_optimizer-0.1.2/opt/bat_algorithm.py +0 -191
  170. useful_optimizer-0.1.2/opt/bee_algorithm.py +0 -166
  171. useful_optimizer-0.1.2/opt/cat_swarm_optimization.py +0 -188
  172. useful_optimizer-0.1.2/opt/cma_es.py +0 -180
  173. useful_optimizer-0.1.2/opt/colliding_bodies_optimization.py +0 -107
  174. useful_optimizer-0.1.2/opt/cross_entropy_method.py +0 -126
  175. useful_optimizer-0.1.2/opt/cuckoo_search.py +0 -142
  176. useful_optimizer-0.1.2/opt/cultural_algorithm.py +0 -168
  177. useful_optimizer-0.1.2/opt/differential_evolution.py +0 -150
  178. useful_optimizer-0.1.2/opt/eagle_strategy.py +0 -113
  179. useful_optimizer-0.1.2/opt/estimation_of_distribution_algorithm.py +0 -164
  180. useful_optimizer-0.1.2/opt/firefly_algorithm.py +0 -144
  181. useful_optimizer-0.1.2/opt/genetic_algorithm.py +0 -192
  182. useful_optimizer-0.1.2/opt/glowworm_swarm_optimization.py +0 -204
  183. useful_optimizer-0.1.2/opt/grey_wolf_optimizer.py +0 -127
  184. useful_optimizer-0.1.2/opt/harmony_search.py +0 -172
  185. useful_optimizer-0.1.2/opt/hill_climbing.py +0 -140
  186. useful_optimizer-0.1.2/opt/imperialist_competitive_algorithm.py +0 -198
  187. useful_optimizer-0.1.2/opt/linear_discriminant_analysis.py +0 -201
  188. useful_optimizer-0.1.2/opt/particle_filter.py +0 -151
  189. useful_optimizer-0.1.2/opt/particle_swarm.py +0 -170
  190. useful_optimizer-0.1.2/opt/parzen_tree_stimator.py +0 -190
  191. useful_optimizer-0.1.2/opt/shuffled_frog_leaping_algorithm.py +0 -151
  192. useful_optimizer-0.1.2/opt/simulated_annealing.py +0 -155
  193. useful_optimizer-0.1.2/opt/sine_cosine_algorithm.py +0 -206
  194. useful_optimizer-0.1.2/opt/squirrel_search.py +0 -113
  195. useful_optimizer-0.1.2/opt/stochastic_diffusion_search.py +0 -154
  196. useful_optimizer-0.1.2/opt/stochastic_fractal_search.py +0 -178
  197. useful_optimizer-0.1.2/opt/successive_linear_programming.py +0 -112
  198. useful_optimizer-0.1.2/opt/tabu_search.py +0 -192
  199. useful_optimizer-0.1.2/opt/variable_depth_search.py +0 -138
  200. useful_optimizer-0.1.2/opt/variable_neighbourhood_search.py +0 -142
  201. useful_optimizer-0.1.2/opt/very_large_scale_neighborhood_search.py +0 -140
  202. useful_optimizer-0.1.2/opt/whale_optimization_algorithm.py +0 -144
  203. 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
+ [![DOI](https://zenodo.org/badge/776526436.svg)](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/