Skip to content

Pygad optimizer #616

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 38 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
013aea4
initial pygad optimizer
spline2hg Jul 2, 2025
217a738
add pygad to environment
spline2hg Jul 14, 2025
c07ae37
remove unused parameter
spline2hg Jul 14, 2025
9861eb8
batch evaluator for fitness function
spline2hg Jul 14, 2025
80e6caa
remove save parameters from pygad
spline2hg Jul 14, 2025
1eb2ba8
remove gene_type
spline2hg Jul 14, 2025
b70589f
fix batch processing
spline2hg Jul 14, 2025
ac288ca
fix: fitness function
spline2hg Jul 14, 2025
bccb162
add protocol for user-defined functions
spline2hg Jul 14, 2025
abee723
add user-defined GA operator Protocol types
spline2hg Jul 15, 2025
2d1ec8f
add docstring
spline2hg Jul 15, 2025
2e28118
fix: make tests pass
spline2hg Jul 15, 2025
726bd13
fix: typo in error message
spline2hg Jul 15, 2025
2e69809
Merge branch 'optimagic-dev:main' into pygad-optimizer
spline2hg Jul 15, 2025
1703356
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 15, 2025
7e1bd67
refactor result processing
spline2hg Jul 15, 2025
cbb72f4
fix: ruff
spline2hg Jul 15, 2025
f28ac40
add: docs
spline2hg Jul 15, 2025
a1676c1
Merge 'origin/pygad-optimizer' into pygad-optimizer
spline2hg Jul 15, 2025
f0432e1
improve docs
spline2hg Jul 15, 2025
da4a8f5
Merge branch 'main' into pygad-optimizer
spline2hg Jul 21, 2025
a260d31
add needs_bounds=True and supports_infinite_bounds=False to pygad-opt…
spline2hg Jul 21, 2025
47e0945
add: gene_constraint and sample_size
spline2hg Jul 26, 2025
f3113bf
tests: add unit tests for pygad optimizer
spline2hg Jul 26, 2025
212e46b
Merge branch 'optimagic-dev:main' into pygad-optimizer
spline2hg Jul 27, 2025
7555f80
Merge branch 'optimagic-dev:main' into pygad-optimizer
spline2hg Jul 27, 2025
403c80d
Refactor pygad optimizer
spline2hg Jul 29, 2025
dd8791b
refactor pygad tests
spline2hg Jul 30, 2025
e84458f
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Jul 30, 2025
3ab0a8e
refactor docs
spline2hg Aug 2, 2025
d58a9d7
refactor documentation
spline2hg Aug 5, 2025
9dfa99c
refactor pygad optimizer
spline2hg Aug 7, 2025
49f5faf
update test
spline2hg Aug 7, 2025
93fb67b
fix
spline2hg Aug 7, 2025
03a4f82
refactor docs
spline2hg Aug 8, 2025
618537a
[pre-commit.ci] auto fixes from pre-commit.com hooks
pre-commit-ci[bot] Aug 8, 2025
3fc18dd
rename BaseMutation to _BuiltinMutation and reframe docsting
spline2hg Aug 13, 2025
a32ccd1
Merge branch 'main' into pygad-optimizer
spline2hg Aug 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .tools/envs/testenv-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ dependencies:
- annotated-types # dev, tests
- iminuit # dev, tests
- cma # dev, tests
- pygad # dev, tests
- pip: # dev, tests, docs
- bayesian-optimization>=2.0.4 # dev, tests
- DFO-LS>=1.5.3 # dev, tests
Expand Down
1 change: 1 addition & 0 deletions .tools/envs/testenv-nevergrad.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ dependencies:
- annotated-types # dev, tests
- iminuit # dev, tests
- cma # dev, tests
- pygad # dev, tests
- pip: # dev, tests, docs
- DFO-LS>=1.5.3 # dev, tests
- Py-BOBYQA # dev, tests
Expand Down
1 change: 1 addition & 0 deletions .tools/envs/testenv-numpy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ dependencies:
- annotated-types # dev, tests
- iminuit # dev, tests
- cma # dev, tests
- pygad # dev, tests
- pip: # dev, tests, docs
- bayesian-optimization>=2.0.4 # dev, tests
- DFO-LS>=1.5.3 # dev, tests
Expand Down
1 change: 1 addition & 0 deletions .tools/envs/testenv-others.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ dependencies:
- annotated-types # dev, tests
- iminuit # dev, tests
- cma # dev, tests
- pygad # dev, tests
- pip: # dev, tests, docs
- bayesian-optimization>=2.0.4 # dev, tests
- DFO-LS>=1.5.3 # dev, tests
Expand Down
1 change: 1 addition & 0 deletions .tools/envs/testenv-pandas.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ dependencies:
- annotated-types # dev, tests
- iminuit # dev, tests
- cma # dev, tests
- pygad # dev, tests
- pip: # dev, tests, docs
- bayesian-optimization>=2.0.4 # dev, tests
- DFO-LS>=1.5.3 # dev, tests
Expand Down
1 change: 1 addition & 0 deletions .tools/envs/testenv-plotly.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ dependencies:
- annotated-types # dev, tests
- iminuit # dev, tests
- cma # dev, tests
- pygad # dev, tests
- pip: # dev, tests, docs
- bayesian-optimization>=2.0.4 # dev, tests
- DFO-LS>=1.5.3 # dev, tests
Expand Down
33 changes: 33 additions & 0 deletions docs/source/algorithms.md
Original file line number Diff line number Diff line change
Expand Up @@ -4701,6 +4701,39 @@ package. To use it, you need to have
- **seed**: Seed for the random number generator for reproducibility.
```

## Pygad Optimizer

We wrap the pygad optimizer. To use it you need to have
[pygad](https://pygad.readthedocs.io/en/latest/) installed.

```{eval-rst}
.. dropdown:: pygad

**How to use this algorithm:**

.. code-block::

import optimagic as om
om.minimize(
...,
algorithm=om.algos.pygad(num_generations=100, ...)
)

or

.. code-block::

om.minimize(
...,
algorithm="pygad",
algo_options={"num_generations": 100, ...}
)

**Description and available options:**

.. autoclass:: optimagic.optimizers.pygad_optimizer.Pygad
```

## References

```{eval-rst}
Expand Down
1 change: 1 addition & 0 deletions environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ dependencies:
- annotated-types # dev, tests
- iminuit # dev, tests
- cma # dev, tests
- pygad # dev, tests
- pip: # dev, tests, docs
- bayesian-optimization>=2.0.4 # dev, tests
# - nevergrad # incompatible with bayesian-optimization>=2.0.4
Expand Down
1 change: 1 addition & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,7 @@ module = [
"pdbp",
"iminuit",
"nevergrad",
"pygad",
"yaml",
]
ignore_missing_imports = true
33 changes: 33 additions & 0 deletions src/optimagic/algorithms.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
NloptVAR,
)
from optimagic.optimizers.pounders import Pounders
from optimagic.optimizers.pygad_optimizer import Pygad
from optimagic.optimizers.pygmo_optimizers import (
PygmoBeeColony,
PygmoCmaes,
Expand Down Expand Up @@ -200,6 +201,7 @@ class BoundedGlobalGradientFreeParallelScalarAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -411,6 +413,7 @@ class BoundedGlobalGradientFreeScalarAlgorithms(AlgoSelection):
nlopt_direct: Type[NloptDirect] = NloptDirect
nlopt_esch: Type[NloptESCH] = NloptESCH
nlopt_isres: Type[NloptISRES] = NloptISRES
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -459,6 +462,7 @@ class BoundedGlobalGradientFreeParallelAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -527,6 +531,7 @@ class GlobalGradientFreeParallelScalarAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -687,6 +692,7 @@ class BoundedGradientFreeParallelScalarAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -794,6 +800,7 @@ class BoundedGlobalParallelScalarAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -1138,6 +1145,7 @@ class BoundedGlobalGradientFreeAlgorithms(AlgoSelection):
nlopt_direct: Type[NloptDirect] = NloptDirect
nlopt_esch: Type[NloptESCH] = NloptESCH
nlopt_isres: Type[NloptISRES] = NloptISRES
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -1215,6 +1223,7 @@ class GlobalGradientFreeScalarAlgorithms(AlgoSelection):
nlopt_direct: Type[NloptDirect] = NloptDirect
nlopt_esch: Type[NloptESCH] = NloptESCH
nlopt_isres: Type[NloptISRES] = NloptISRES
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -1267,6 +1276,7 @@ class GlobalGradientFreeParallelAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -1455,6 +1465,7 @@ class BoundedGradientFreeScalarAlgorithms(AlgoSelection):
nlopt_newuoa: Type[NloptNEWUOA] = NloptNEWUOA
nlopt_neldermead: Type[NloptNelderMead] = NloptNelderMead
nlopt_sbplx: Type[NloptSbplx] = NloptSbplx
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -1531,6 +1542,7 @@ class BoundedGradientFreeParallelAlgorithms(AlgoSelection):
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pounders: Type[Pounders] = Pounders
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -1624,6 +1636,7 @@ class GradientFreeParallelScalarAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -1710,6 +1723,7 @@ class BoundedGlobalScalarAlgorithms(AlgoSelection):
nlopt_direct: Type[NloptDirect] = NloptDirect
nlopt_esch: Type[NloptESCH] = NloptESCH
nlopt_isres: Type[NloptISRES] = NloptISRES
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -1767,6 +1781,7 @@ class BoundedGlobalParallelAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -1848,6 +1863,7 @@ class GlobalParallelScalarAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -2095,6 +2111,7 @@ class BoundedParallelScalarAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -2371,6 +2388,7 @@ class GlobalGradientFreeAlgorithms(AlgoSelection):
nlopt_direct: Type[NloptDirect] = NloptDirect
nlopt_esch: Type[NloptESCH] = NloptESCH
nlopt_isres: Type[NloptISRES] = NloptISRES
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -2478,6 +2496,7 @@ class BoundedGradientFreeAlgorithms(AlgoSelection):
nlopt_neldermead: Type[NloptNelderMead] = NloptNelderMead
nlopt_sbplx: Type[NloptSbplx] = NloptSbplx
pounders: Type[Pounders] = Pounders
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -2588,6 +2607,7 @@ class GradientFreeScalarAlgorithms(AlgoSelection):
nlopt_neldermead: Type[NloptNelderMead] = NloptNelderMead
nlopt_praxis: Type[NloptPRAXIS] = NloptPRAXIS
nlopt_sbplx: Type[NloptSbplx] = NloptSbplx
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -2672,6 +2692,7 @@ class GradientFreeParallelAlgorithms(AlgoSelection):
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pounders: Type[Pounders] = Pounders
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -2728,6 +2749,7 @@ class BoundedGlobalAlgorithms(AlgoSelection):
nlopt_direct: Type[NloptDirect] = NloptDirect
nlopt_esch: Type[NloptESCH] = NloptESCH
nlopt_isres: Type[NloptISRES] = NloptISRES
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -2823,6 +2845,7 @@ class GlobalScalarAlgorithms(AlgoSelection):
nlopt_direct: Type[NloptDirect] = NloptDirect
nlopt_esch: Type[NloptESCH] = NloptESCH
nlopt_isres: Type[NloptISRES] = NloptISRES
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -2884,6 +2907,7 @@ class GlobalParallelAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -3177,6 +3201,7 @@ class BoundedScalarAlgorithms(AlgoSelection):
nlopt_sbplx: Type[NloptSbplx] = NloptSbplx
nlopt_tnewton: Type[NloptTNewton] = NloptTNewton
nlopt_var: Type[NloptVAR] = NloptVAR
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -3276,6 +3301,7 @@ class BoundedParallelAlgorithms(AlgoSelection):
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pounders: Type[Pounders] = Pounders
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -3389,6 +3415,7 @@ class ParallelScalarAlgorithms(AlgoSelection):
nevergrad_randomsearch: Type[NevergradRandomSearch] = NevergradRandomSearch
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -3521,6 +3548,7 @@ class GradientFreeAlgorithms(AlgoSelection):
nlopt_praxis: Type[NloptPRAXIS] = NloptPRAXIS
nlopt_sbplx: Type[NloptSbplx] = NloptSbplx
pounders: Type[Pounders] = Pounders
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -3598,6 +3626,7 @@ class GlobalAlgorithms(AlgoSelection):
nlopt_direct: Type[NloptDirect] = NloptDirect
nlopt_esch: Type[NloptESCH] = NloptESCH
nlopt_isres: Type[NloptISRES] = NloptISRES
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -3757,6 +3786,7 @@ class BoundedAlgorithms(AlgoSelection):
nlopt_tnewton: Type[NloptTNewton] = NloptTNewton
nlopt_var: Type[NloptVAR] = NloptVAR
pounders: Type[Pounders] = Pounders
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -3907,6 +3937,7 @@ class ScalarAlgorithms(AlgoSelection):
nlopt_sbplx: Type[NloptSbplx] = NloptSbplx
nlopt_tnewton: Type[NloptTNewton] = NloptTNewton
nlopt_var: Type[NloptVAR] = NloptVAR
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down Expand Up @@ -4033,6 +4064,7 @@ class ParallelAlgorithms(AlgoSelection):
nevergrad_samplingsearch: Type[NevergradSamplingSearch] = NevergradSamplingSearch
nevergrad_tbpsa: Type[NevergradTBPSA] = NevergradTBPSA
pounders: Type[Pounders] = Pounders
pygad: Type[Pygad] = Pygad
pygmo_gaco: Type[PygmoGaco] = PygmoGaco
pygmo_pso_gen: Type[PygmoPsoGen] = PygmoPsoGen
scipy_brute: Type[ScipyBrute] = ScipyBrute
Expand Down Expand Up @@ -4111,6 +4143,7 @@ class Algorithms(AlgoSelection):
nlopt_tnewton: Type[NloptTNewton] = NloptTNewton
nlopt_var: Type[NloptVAR] = NloptVAR
pounders: Type[Pounders] = Pounders
pygad: Type[Pygad] = Pygad
pygmo_bee_colony: Type[PygmoBeeColony] = PygmoBeeColony
pygmo_cmaes: Type[PygmoCmaes] = PygmoCmaes
pygmo_compass_search: Type[PygmoCompassSearch] = PygmoCompassSearch
Expand Down
1 change: 1 addition & 0 deletions src/optimagic/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ def _is_installed(module_name: str) -> bool:
IS_IMINUIT_INSTALLED = _is_installed("iminuit")
IS_NEVERGRAD_INSTALLED = _is_installed("nevergrad")
IS_BAYESOPT_INSTALLED = _is_installed("bayes_opt")
IS_PYGAD_INSTALLED = _is_installed("pygad")


# ======================================================================================
Expand Down
Loading
Loading