dfbench 0.2.1__tar.gz → 0.3.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.
- {dfbench-0.2.1 → dfbench-0.3.0}/PKG-INFO +24 -19
- {dfbench-0.2.1 → dfbench-0.3.0}/README.md +20 -17
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Algorithm-Status.md +7 -7
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Algorithms.md +120 -119
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Architecture-Overview.md +16 -16
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Benchmarking.md +13 -13
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/FAQ.md +6 -6
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Home.md +4 -4
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Implementing-a-New-Algorithm.md +30 -26
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Installation.md +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Metrics-Reference.md +26 -26
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Objective-API-Reference.md +48 -46
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Problems.md +33 -33
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Storage-and-Checkpointing.md +19 -4
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Testing.md +14 -13
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/Utilities-and-Helpers.md +6 -6
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/algorithm-status/main.typ +8 -8
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/algorithm-status/template.typ +12 -12
- {dfbench-0.2.1 → dfbench-0.3.0}/pyproject.toml +4 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/__init__.py +2 -2
- dfbench-0.3.0/src/dfbench/algorithms/__init__.py +262 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/_dfo_common.py +7 -7
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/_scipy_common.py +14 -8
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/nelder_mead.py +7 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/omads_mads.py +6 -7
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/pdfo/lincoa.py +8 -20
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/pdfo/newuoa.py +3 -3
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/pdfo/uobyqa.py +4 -4
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/powell.py +7 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/pybobyqa.py +5 -5
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/__init__.py +0 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/cmaes_sep_cma.py +5 -6
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/evosax_es.py +8 -10
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/evox_es.py +28 -30
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/evox_pso.py +12 -12
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/jax_es.py +18 -20
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/nevergrad/_common.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/nevergrad/ngopt.py +5 -9
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/nevergrad/oneplusone.py +4 -8
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/nevergrad/tbpsa.py +5 -9
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/pycma_cmaes.py +17 -21
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/generative/vae_sampling.py +8 -3
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/global_search/__init__.py +2 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/global_search/basin_hopping.py +10 -5
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/global_search/dual_annealing.py +7 -1
- {dfbench-0.2.1/src/dfbench/algorithms/evolutionary → dfbench-0.3.0/src/dfbench/algorithms/global_search}/random_search.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/__init__.py +1 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/adam_gd.py +6 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/custom_jax.py +7 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/lbfgs_gd.py +7 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/na_adam_gd.py +7 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/_common.py +8 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/adabelief.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/adadelta.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/adafactor.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/adagrad.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/adam.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/adamax.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/adamaxw.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/adamw.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/adan.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/amsgrad.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/lamb.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/lion.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/lookahead.py +3 -3
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/nadam.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/nadamw.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/noisy_sgd.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/novograd.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/oadam.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/ogd.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/polyak_sgd.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/radam.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/rmsprop.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/rprop.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/sam.py +2 -3
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/schedule_free_adam.py +1 -3
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/sgd.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/sign.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/sm3.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/sophia.py +3 -3
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/yogi.py +1 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax_lbfgs.py +9 -3
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/sa_gd.py +7 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/_common.py +18 -23
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/sr1.py +6 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/__init__.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/ax_baxus.py +11 -6
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/ax_saasbo.py +29 -25
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/botorch/__init__.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/botorch/_botorch_common.py +10 -4
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/botorch/botorch_bo.py +14 -9
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/botorch/botorch_gebo.py +14 -9
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/botorch/botorch_linebo.py +12 -7
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/botorch/botorch_qkg.py +11 -7
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/botorch/botorch_qnei.py +12 -8
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/botorch/botorch_rembo.py +13 -8
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/botorch/botorch_turbo.py +11 -6
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/hebo_bo.py +6 -7
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/restir.py +11 -6
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/smac_bo.py +7 -8
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/surrogate_based/turbo_lbfgs.py +22 -12
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/utils/gp.py +6 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/utils/initial_design.py +6 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/utils/misc.py +7 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/algorithm.py +5 -4
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/display.py +6 -6
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/objective.py +57 -38
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/problem.py +5 -5
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/storage/exporter.py +58 -16
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/storage/manager.py +1 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/storage/saveconfig.py +1 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/storage/serializers.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/storage/state.py +18 -18
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/problems/base_problem.py +8 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/problems/uifo/uifo_problem.py +9 -9
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/problems/voyager/constrained_voyager_problem.py +1 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/problems/voyager/voyager_problem.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/problems/voyager/voyager_tuning_problem.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/slow/test_algorithms_integration.py +1 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/slow/test_benchmark_full.py +2 -2
- dfbench-0.3.0/tests/slow/test_problem_bounds_gradients.py +106 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/slow/test_problems_full.py +6 -6
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_algorithm_protocol.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_algorithms_uniform.py +7 -7
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_algorithms_unit.py +11 -9
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_api_imports.py +3 -3
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_benchmark_smoke.py +4 -4
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_cma_family.py +5 -5
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_config.py +10 -10
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_dfo_algorithms.py +1 -1
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_display.py +12 -12
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_init_env.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_metrics.py +16 -16
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_objective_invariants.py +29 -29
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_objective_penalty_fn.py +3 -4
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_objective_randomness.py +10 -10
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_problem_bounds_overrides.py +4 -4
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_problem_protocol.py +4 -4
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_problem_spec.py +2 -2
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_scipy_wrapper.py +1 -17
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_storage.py +33 -9
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_utils.py +5 -5
- dfbench-0.2.1/src/dfbench/algorithms/__init__.py +0 -221
- {dfbench-0.2.1 → dfbench-0.3.0}/.gitignore +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/LICENSE +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/docs/_Sidebar.md +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/derivative_free/pdfo/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/evolutionary/nevergrad/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/optax/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/bfgs.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/cobyla.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/cobyqa.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/dogleg.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/lbfgsb.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/newton_cg.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/nonlinear_cg.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/slsqp.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/tnc.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/trust_constr.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/trust_krylov.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/gradient_based/scipy/trust_ncg.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/utils/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/algorithms/utils/weighted_acq.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/benchmark/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/benchmark/benchmark.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/benchmark/metrics.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/_init_env.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/config.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/storage/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/storage/backends.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/storage/resolver.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/core/utils.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/problems/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/problems/uifo/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/src/dfbench/problems/voyager/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/conftest.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/slow/__init__.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_bo_batch.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_custom_jax_batch.py +0 -0
- {dfbench-0.2.1 → dfbench-0.3.0}/tests/test_objective_space_mode.py +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dfbench
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary:
|
|
3
|
+
Version: 0.3.0
|
|
4
|
+
Summary: dfbench: A Black-Box Optimization Framework for JAX-Differentiable Gravitational Wave Detector Discovery
|
|
5
5
|
Project-URL: Homepage, https://github.com/artificial-scientist-lab/Differometor-Benchmark
|
|
6
6
|
Project-URL: Repository, https://github.com/artificial-scientist-lab/Differometor-Benchmark
|
|
7
7
|
Project-URL: Documentation, https://github.com/artificial-scientist-lab/Differometor-Benchmark/tree/main/docs
|
|
@@ -34,6 +34,7 @@ Requires-Dist: cmaes>=0.10.0; extra == 'all'
|
|
|
34
34
|
Requires-Dist: evosax>=0.1.6; extra == 'all'
|
|
35
35
|
Requires-Dist: evox>=1.3.0; extra == 'all'
|
|
36
36
|
Requires-Dist: gpytorch>=1.14; extra == 'all'
|
|
37
|
+
Requires-Dist: hebo>=0.3.2; extra == 'all'
|
|
37
38
|
Requires-Dist: nevergrad>=1.0.12; extra == 'all'
|
|
38
39
|
Requires-Dist: omads>=2408.0; extra == 'all'
|
|
39
40
|
Requires-Dist: optax>=0.2.6; extra == 'all'
|
|
@@ -54,6 +55,7 @@ Provides-Extra: bo
|
|
|
54
55
|
Requires-Dist: ax-platform>=1.2.4; extra == 'bo'
|
|
55
56
|
Requires-Dist: botorch>=0.16.1; extra == 'bo'
|
|
56
57
|
Requires-Dist: gpytorch>=1.14; extra == 'bo'
|
|
58
|
+
Requires-Dist: hebo>=0.3.2; extra == 'bo'
|
|
57
59
|
Requires-Dist: torch>=2.9.1; extra == 'bo'
|
|
58
60
|
Provides-Extra: cuda12
|
|
59
61
|
Requires-Dist: jax[cuda12]==0.9.0.1; extra == 'cuda12'
|
|
@@ -88,11 +90,14 @@ Provides-Extra: torch
|
|
|
88
90
|
Requires-Dist: torch>=2.9.1; extra == 'torch'
|
|
89
91
|
Description-Content-Type: text/markdown
|
|
90
92
|
|
|
91
|
-
> [!IMPORTANT]
|
|
92
|
-
> **BETA RELEASE:** This repository is currently in beta. The official competition will start on **July ~7**.
|
|
93
|
-
|
|
94
93
|
# Differometor Benchmark
|
|
95
94
|
|
|
95
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
96
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
97
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
98
|
+
[](https://github.com/astral-sh/ruff)
|
|
99
|
+
[](https://github.com/artificial-scientist-lab/Differometor-Benchmark/actions/workflows/tests.yaml)
|
|
100
|
+
|
|
96
101
|
A benchmarking framework for optimization algorithms on gravitational-wave detector design problems, built on top of the [Differometor](https://github.com/artificial-scientist-lab/Differometor) simulator.
|
|
97
102
|
|
|
98
103
|
> **For detailed documentation, see the [Wiki](https://github.com/artificial-scientist-lab/Differometor-Benchmark/wiki).**
|
|
@@ -135,7 +140,7 @@ obj.plot_loss()
|
|
|
135
140
|
obj.save_run_to_file("my_run.npz")
|
|
136
141
|
```
|
|
137
142
|
|
|
138
|
-
**A loss below 0 means your solution beats the real Voyager detector's sensitivity.** (On `VoyagerProblem` without physical constraints
|
|
143
|
+
**A loss below 0 means your solution beats the real Voyager detector's sensitivity.** (On `VoyagerProblem` without physical constraints, you might be burning mirrors.)
|
|
139
144
|
|
|
140
145
|
### Evaluation Methods
|
|
141
146
|
|
|
@@ -157,8 +162,8 @@ The problems are JAX-based and differentiable up to second order. Use whichever
|
|
|
157
162
|
```python
|
|
158
163
|
from dfbench import t2j, j2t
|
|
159
164
|
|
|
160
|
-
params_jax = t2j(params_torch) # Torch
|
|
161
|
-
losses_torch = j2t(obj.vmap_value(params_jax)) # JAX
|
|
165
|
+
params_jax = t2j(params_torch) # Torch -> JAX
|
|
166
|
+
losses_torch = j2t(obj.vmap_value(params_jax)) # JAX -> Torch
|
|
162
167
|
```
|
|
163
168
|
|
|
164
169
|
This adds negligible overhead compared to the objective function itself.
|
|
@@ -226,8 +231,8 @@ OptimizationAlgorithm.optimize()
|
|
|
226
231
|
│
|
|
227
232
|
▼
|
|
228
233
|
┌───────────┐ records losses, params, grads, timestamps
|
|
229
|
-
│ Objective │
|
|
230
|
-
└─────┬─────┘ bounded
|
|
234
|
+
│ Objective │ ──> enforces time / eval budgets
|
|
235
|
+
└─────┬─────┘ bounded <-> unbounded sigmoid transform
|
|
231
236
|
│
|
|
232
237
|
▼
|
|
233
238
|
ContinuousProblem (VoyagerProblem, VoyagerTuningProblem, ConstrainedVoyagerProblem, UIFOProblem)
|
|
@@ -250,15 +255,15 @@ src/dfbench/
|
|
|
250
255
|
│ ├── problem.py # ContinuousProblem ABC + ProblemSpec
|
|
251
256
|
│ ├── algorithm.py # OptimizationAlgorithm ABC + AlgorithmType enum
|
|
252
257
|
│ ├── objective.py # Objective wrapper (central piece)
|
|
253
|
-
│ └── utils.py # torch
|
|
258
|
+
│ └── utils.py # torch<->jax conversion, inverse sigmoid
|
|
254
259
|
├── algorithms/
|
|
255
260
|
│ ├── derivative_free/ # OMADS, PDFO/Py-BOBYQA, NelderMead, Powell
|
|
256
|
-
│ ├── global_search/ # SciPy BasinHopping, DualAnnealing
|
|
257
|
-
│ ├── evolutionary/ #
|
|
261
|
+
│ ├── global_search/ # RandomSearch, SciPy BasinHopping, DualAnnealing
|
|
262
|
+
│ ├── evolutionary/ # EvoxPSO, EvoxES, Nevergrad, CMA family
|
|
258
263
|
│ ├── gradient_based/
|
|
259
264
|
│ │ ├── optax/ # 34 Optax-based optimizers (OptaxAdam, OptaxLAMB, ...)
|
|
260
|
-
│ │ ├── scipy/ # 13 SciPy-based optimizers (BFGS, TNC, SLSQP,
|
|
261
|
-
│ │ ├── custom_jax.py # Native-JAX custom/hybrid batch (SGLD, ASAM, GD
|
|
265
|
+
│ │ ├── scipy/ # 13 SciPy-based optimizers (BFGS, TNC, SLSQP, ...)
|
|
266
|
+
│ │ ├── custom_jax.py # Native-JAX custom/hybrid batch (SGLD, ASAM, GD->L-BFGS, ...)
|
|
262
267
|
│ │ └── *.py # Custom-loop algorithms (AdamGD, LBFGSGD, SAGD, NAAdamGD, OptaxLBFGS)
|
|
263
268
|
│ ├── surrogate_based/
|
|
264
269
|
│ │ ├── botorch/ # BotorchBO, BotorchTuRBO, BotorchqNEI, BotorchqKG,
|
|
@@ -369,7 +374,7 @@ The interface is designed to make this as simple as possible. You write the opti
|
|
|
369
374
|
|
|
370
375
|
1. Subclass `OptimizationAlgorithm`
|
|
371
376
|
2. Declare `algorithm_str` and `algorithm_type`
|
|
372
|
-
3. Implement `optimize(objective, ...)
|
|
377
|
+
3. Implement `optimize(objective, ...) -> None`
|
|
373
378
|
4. Use `Objective` for all function evaluations
|
|
374
379
|
5. The `Objective` is mutated in place, thereby no return is needed
|
|
375
380
|
|
|
@@ -392,7 +397,7 @@ class MyAlgorithm(OptimizationAlgorithm):
|
|
|
392
397
|
"""My optimization algorithm."""
|
|
393
398
|
|
|
394
399
|
algorithm_str = "my_algorithm"
|
|
395
|
-
algorithm_type = AlgorithmType.
|
|
400
|
+
algorithm_type = AlgorithmType.GLOBAL_SEARCH # match one of the algorithms/ subfolders
|
|
396
401
|
|
|
397
402
|
def __init__(self, batch_size: int = 50) -> None:
|
|
398
403
|
"""Algorithm-level meta-parameters that don't change between runs."""
|
|
@@ -513,7 +518,6 @@ See [Objective API Reference](https://github.com/artificial-scientist-lab/Differ
|
|
|
513
518
|
| `BFGS`, `LBFGSB`, `NonlinearCG`, `NewtonCG` | Gradient | Classical SciPy gradient and quasi-Newton methods |
|
|
514
519
|
| `TrustNCG`, `TrustKrylov`, `TrustConstr`, `Dogleg`, `SR1` | Gradient | Trust-region and constrained SciPy methods |
|
|
515
520
|
| `TNC`, `SLSQP`, `COBYQA`, `COBYLA` | Gradient | Bounded physical-space SciPy solvers |
|
|
516
|
-
| `RandomSearch` | Evolutionary | Unbiased baseline, no hyperparameters |
|
|
517
521
|
| `EvoxPSO` | Evolutionary | Swarm intelligence, many variants (CLPSO, CSO, ...) |
|
|
518
522
|
| `EvoxES` | Evolutionary | CMA-ES, OpenES, XNES, and more (EvoX backend) |
|
|
519
523
|
| `PyCMACMAES` | Evolutionary | Vanilla CMA-ES (pycma backend) |
|
|
@@ -529,6 +533,7 @@ See [Objective API Reference](https://github.com/artificial-scientist-lab/Differ
|
|
|
529
533
|
| `OmadsMADS`, `OmadsOrthoMADS` | Derivative-Free | MADS / OrthoMADS direct search (OMADS) |
|
|
530
534
|
| `PDFOUOBYQA`, `PDFONEWUOA`, `PDFOLINCOA`, `PyBOBYQA` | Derivative-Free | Powell-style trust-region DFO (PDFO + Py-BOBYQA) |
|
|
531
535
|
| `NelderMead`, `Powell` | Derivative-Free | SciPy classical simplex / direction-set search |
|
|
536
|
+
| `RandomSearch` | Global Search | Unbiased, derivative-free global search baseline, no hyperparameters |
|
|
532
537
|
| `BasinHopping`, `DualAnnealing` | Global Search | SciPy stochastic global optimization |
|
|
533
538
|
| `NevergradOnePlusOne`, `NevergradTBPSA`, `NevergradNGOpt` | Evolutionary | Nevergrad rugged-landscape baselines |
|
|
534
539
|
| `BotorchBO` | Surrogate | Sample-efficient Bayesian Optimization |
|
|
@@ -557,7 +562,7 @@ Reference implementations worth reading:
|
|
|
557
562
|
- `gradient_based/adam_gd.py`: gradient-based pattern (custom loop)
|
|
558
563
|
- `gradient_based/optax/adam.py`: Optax wrapper pattern (minimal subclass)
|
|
559
564
|
- `gradient_based/scipy/_common.py`: shared SciPy wrapper, caching, and budget handling
|
|
560
|
-
- `
|
|
565
|
+
- `global_search/random_search.py`: simplest batched example
|
|
561
566
|
- `evolutionary/evox_es.py`: wrapping an external library (EvoX/PyTorch)
|
|
562
567
|
- `evolutionary/pycma_cmaes.py`: wrapping pycma (ask/tell, restart strategies)
|
|
563
568
|
- `evolutionary/jax_es.py`: native JAX ES without external library
|
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
> [!IMPORTANT]
|
|
2
|
-
> **BETA RELEASE:** This repository is currently in beta. The official competition will start on **July ~7**.
|
|
3
|
-
|
|
4
1
|
# Differometor Benchmark
|
|
5
2
|
|
|
3
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
4
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
5
|
+
[](https://pypi.python.org/pypi/dfbench)
|
|
6
|
+
[](https://github.com/astral-sh/ruff)
|
|
7
|
+
[](https://github.com/artificial-scientist-lab/Differometor-Benchmark/actions/workflows/tests.yaml)
|
|
8
|
+
|
|
6
9
|
A benchmarking framework for optimization algorithms on gravitational-wave detector design problems, built on top of the [Differometor](https://github.com/artificial-scientist-lab/Differometor) simulator.
|
|
7
10
|
|
|
8
11
|
> **For detailed documentation, see the [Wiki](https://github.com/artificial-scientist-lab/Differometor-Benchmark/wiki).**
|
|
@@ -45,7 +48,7 @@ obj.plot_loss()
|
|
|
45
48
|
obj.save_run_to_file("my_run.npz")
|
|
46
49
|
```
|
|
47
50
|
|
|
48
|
-
**A loss below 0 means your solution beats the real Voyager detector's sensitivity.** (On `VoyagerProblem` without physical constraints
|
|
51
|
+
**A loss below 0 means your solution beats the real Voyager detector's sensitivity.** (On `VoyagerProblem` without physical constraints, you might be burning mirrors.)
|
|
49
52
|
|
|
50
53
|
### Evaluation Methods
|
|
51
54
|
|
|
@@ -67,8 +70,8 @@ The problems are JAX-based and differentiable up to second order. Use whichever
|
|
|
67
70
|
```python
|
|
68
71
|
from dfbench import t2j, j2t
|
|
69
72
|
|
|
70
|
-
params_jax = t2j(params_torch) # Torch
|
|
71
|
-
losses_torch = j2t(obj.vmap_value(params_jax)) # JAX
|
|
73
|
+
params_jax = t2j(params_torch) # Torch -> JAX
|
|
74
|
+
losses_torch = j2t(obj.vmap_value(params_jax)) # JAX -> Torch
|
|
72
75
|
```
|
|
73
76
|
|
|
74
77
|
This adds negligible overhead compared to the objective function itself.
|
|
@@ -136,8 +139,8 @@ OptimizationAlgorithm.optimize()
|
|
|
136
139
|
│
|
|
137
140
|
▼
|
|
138
141
|
┌───────────┐ records losses, params, grads, timestamps
|
|
139
|
-
│ Objective │
|
|
140
|
-
└─────┬─────┘ bounded
|
|
142
|
+
│ Objective │ ──> enforces time / eval budgets
|
|
143
|
+
└─────┬─────┘ bounded <-> unbounded sigmoid transform
|
|
141
144
|
│
|
|
142
145
|
▼
|
|
143
146
|
ContinuousProblem (VoyagerProblem, VoyagerTuningProblem, ConstrainedVoyagerProblem, UIFOProblem)
|
|
@@ -160,15 +163,15 @@ src/dfbench/
|
|
|
160
163
|
│ ├── problem.py # ContinuousProblem ABC + ProblemSpec
|
|
161
164
|
│ ├── algorithm.py # OptimizationAlgorithm ABC + AlgorithmType enum
|
|
162
165
|
│ ├── objective.py # Objective wrapper (central piece)
|
|
163
|
-
│ └── utils.py # torch
|
|
166
|
+
│ └── utils.py # torch<->jax conversion, inverse sigmoid
|
|
164
167
|
├── algorithms/
|
|
165
168
|
│ ├── derivative_free/ # OMADS, PDFO/Py-BOBYQA, NelderMead, Powell
|
|
166
|
-
│ ├── global_search/ # SciPy BasinHopping, DualAnnealing
|
|
167
|
-
│ ├── evolutionary/ #
|
|
169
|
+
│ ├── global_search/ # RandomSearch, SciPy BasinHopping, DualAnnealing
|
|
170
|
+
│ ├── evolutionary/ # EvoxPSO, EvoxES, Nevergrad, CMA family
|
|
168
171
|
│ ├── gradient_based/
|
|
169
172
|
│ │ ├── optax/ # 34 Optax-based optimizers (OptaxAdam, OptaxLAMB, ...)
|
|
170
|
-
│ │ ├── scipy/ # 13 SciPy-based optimizers (BFGS, TNC, SLSQP,
|
|
171
|
-
│ │ ├── custom_jax.py # Native-JAX custom/hybrid batch (SGLD, ASAM, GD
|
|
173
|
+
│ │ ├── scipy/ # 13 SciPy-based optimizers (BFGS, TNC, SLSQP, ...)
|
|
174
|
+
│ │ ├── custom_jax.py # Native-JAX custom/hybrid batch (SGLD, ASAM, GD->L-BFGS, ...)
|
|
172
175
|
│ │ └── *.py # Custom-loop algorithms (AdamGD, LBFGSGD, SAGD, NAAdamGD, OptaxLBFGS)
|
|
173
176
|
│ ├── surrogate_based/
|
|
174
177
|
│ │ ├── botorch/ # BotorchBO, BotorchTuRBO, BotorchqNEI, BotorchqKG,
|
|
@@ -279,7 +282,7 @@ The interface is designed to make this as simple as possible. You write the opti
|
|
|
279
282
|
|
|
280
283
|
1. Subclass `OptimizationAlgorithm`
|
|
281
284
|
2. Declare `algorithm_str` and `algorithm_type`
|
|
282
|
-
3. Implement `optimize(objective, ...)
|
|
285
|
+
3. Implement `optimize(objective, ...) -> None`
|
|
283
286
|
4. Use `Objective` for all function evaluations
|
|
284
287
|
5. The `Objective` is mutated in place, thereby no return is needed
|
|
285
288
|
|
|
@@ -302,7 +305,7 @@ class MyAlgorithm(OptimizationAlgorithm):
|
|
|
302
305
|
"""My optimization algorithm."""
|
|
303
306
|
|
|
304
307
|
algorithm_str = "my_algorithm"
|
|
305
|
-
algorithm_type = AlgorithmType.
|
|
308
|
+
algorithm_type = AlgorithmType.GLOBAL_SEARCH # match one of the algorithms/ subfolders
|
|
306
309
|
|
|
307
310
|
def __init__(self, batch_size: int = 50) -> None:
|
|
308
311
|
"""Algorithm-level meta-parameters that don't change between runs."""
|
|
@@ -423,7 +426,6 @@ See [Objective API Reference](https://github.com/artificial-scientist-lab/Differ
|
|
|
423
426
|
| `BFGS`, `LBFGSB`, `NonlinearCG`, `NewtonCG` | Gradient | Classical SciPy gradient and quasi-Newton methods |
|
|
424
427
|
| `TrustNCG`, `TrustKrylov`, `TrustConstr`, `Dogleg`, `SR1` | Gradient | Trust-region and constrained SciPy methods |
|
|
425
428
|
| `TNC`, `SLSQP`, `COBYQA`, `COBYLA` | Gradient | Bounded physical-space SciPy solvers |
|
|
426
|
-
| `RandomSearch` | Evolutionary | Unbiased baseline, no hyperparameters |
|
|
427
429
|
| `EvoxPSO` | Evolutionary | Swarm intelligence, many variants (CLPSO, CSO, ...) |
|
|
428
430
|
| `EvoxES` | Evolutionary | CMA-ES, OpenES, XNES, and more (EvoX backend) |
|
|
429
431
|
| `PyCMACMAES` | Evolutionary | Vanilla CMA-ES (pycma backend) |
|
|
@@ -439,6 +441,7 @@ See [Objective API Reference](https://github.com/artificial-scientist-lab/Differ
|
|
|
439
441
|
| `OmadsMADS`, `OmadsOrthoMADS` | Derivative-Free | MADS / OrthoMADS direct search (OMADS) |
|
|
440
442
|
| `PDFOUOBYQA`, `PDFONEWUOA`, `PDFOLINCOA`, `PyBOBYQA` | Derivative-Free | Powell-style trust-region DFO (PDFO + Py-BOBYQA) |
|
|
441
443
|
| `NelderMead`, `Powell` | Derivative-Free | SciPy classical simplex / direction-set search |
|
|
444
|
+
| `RandomSearch` | Global Search | Unbiased, derivative-free global search baseline, no hyperparameters |
|
|
442
445
|
| `BasinHopping`, `DualAnnealing` | Global Search | SciPy stochastic global optimization |
|
|
443
446
|
| `NevergradOnePlusOne`, `NevergradTBPSA`, `NevergradNGOpt` | Evolutionary | Nevergrad rugged-landscape baselines |
|
|
444
447
|
| `BotorchBO` | Surrogate | Sample-efficient Bayesian Optimization |
|
|
@@ -467,7 +470,7 @@ Reference implementations worth reading:
|
|
|
467
470
|
- `gradient_based/adam_gd.py`: gradient-based pattern (custom loop)
|
|
468
471
|
- `gradient_based/optax/adam.py`: Optax wrapper pattern (minimal subclass)
|
|
469
472
|
- `gradient_based/scipy/_common.py`: shared SciPy wrapper, caching, and budget handling
|
|
470
|
-
- `
|
|
473
|
+
- `global_search/random_search.py`: simplest batched example
|
|
471
474
|
- `evolutionary/evox_es.py`: wrapping an external library (EvoX/PyTorch)
|
|
472
475
|
- `evolutionary/pycma_cmaes.py`: wrapping pycma (ask/tell, restart strategies)
|
|
473
476
|
- `evolutionary/jax_es.py`: native JAX ES without external library
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
-
## `EvoxES
|
|
21
|
+
## `EvoxES`: Multi-Algorithm Wrapper (on `main`)
|
|
22
22
|
|
|
23
23
|
`EvoxES` is a single class that wraps **12 distinct EvoX evolution strategies** selectable via its `variant` parameter.
|
|
24
24
|
Each variant is a separate algorithm from the EvoX library.
|
|
@@ -38,7 +38,7 @@ Each variant is a separate algorithm from the EvoX library.
|
|
|
38
38
|
| `GuidedES` | Guided Evolution Strategy | ES |
|
|
39
39
|
| `ESMC` | Evolution Strategy with Monte Carlo | ES |
|
|
40
40
|
|
|
41
|
-
## `EvoxPSO
|
|
41
|
+
## `EvoxPSO`: Multi-Algorithm Wrapper (on `main`)
|
|
42
42
|
|
|
43
43
|
`EvoxPSO` is a single class that wraps **7 distinct EvoX PSO variants** selectable via its `variant` parameter.
|
|
44
44
|
|
|
@@ -52,10 +52,10 @@ Each variant is a separate algorithm from the EvoX library.
|
|
|
52
52
|
| `SLPSOGS` | Social Learning PSO with Gaussian Sampling |
|
|
53
53
|
| `SLPSOUS` | Social Learning PSO with Uniform Sampling |
|
|
54
54
|
|
|
55
|
-
## `EvosaxES
|
|
55
|
+
## `EvosaxES`: Multi-Algorithm Wrapper (on `algorithm/evo-algorithms`)
|
|
56
56
|
|
|
57
57
|
`EvosaxES` is a separate evosax-backed wrapper (pure JAX, JIT-friendly) that wraps **14 variants**.
|
|
58
|
-
Coexists with `EvoxES`
|
|
58
|
+
Coexists with `EvoxES` but uses a different backend; class names use `evosax_` prefix.
|
|
59
59
|
|
|
60
60
|
| Variant | Full Name | Type |
|
|
61
61
|
|---------|-----------|------|
|
|
@@ -129,7 +129,7 @@ Coexists with `EvoxES` — different backend, class names use `evosax_` prefix.
|
|
|
129
129
|
|-----------|-----------|--------|--------|-------|
|
|
130
130
|
| SGLD | `SGLDJAX` | Branch | `algorithm/jax-algorithms` | Stochastic Gradient Langevin Dynamics |
|
|
131
131
|
| ASAM | `ASAMJAX` | Branch | `algorithm/jax-algorithms` | Adaptive Sharpness-Aware Minimization |
|
|
132
|
-
| Adam
|
|
132
|
+
| Adam->L-BFGS Switch | `AdamToLBFGSJAX` | Branch | `algorithm/jax-algorithms` | Hybrid warm-start strategy |
|
|
133
133
|
| Entropy-SGD | `EntropySGDJAX` | Branch | `algorithm/jax-algorithms` | |
|
|
134
134
|
| SGHMC | `SGHMCJAX` | Branch | `algorithm/jax-algorithms` | Stochastic Gradient Hamiltonian MC |
|
|
135
135
|
| ARC | `ARCJAX` | Branch | `algorithm/jax-algorithms` | Adaptive Regularization with Cubics |
|
|
@@ -146,7 +146,6 @@ Coexists with `EvoxES` — different backend, class names use `evosax_` prefix.
|
|
|
146
146
|
|-----------|-----------|--------|--------|-------|
|
|
147
147
|
| EvoX ES (12 variants) | `EvoxES` | **Finished** | `main` | See variant table above |
|
|
148
148
|
| EvoX PSO (7 variants) | `EvoxPSO` | **Finished** | `main` | See variant table above |
|
|
149
|
-
| Random Search | `RandomSearch` | **Finished** | `main` | Baseline |
|
|
150
149
|
| Evosax ES (14 variants) | `EvosaxES` | Branch | `algorithm/evo-algorithms` | See variant table above |
|
|
151
150
|
| DE | `DE` | Branch | `algorithm/evo-algorithms` | Differential Evolution (custom impl) |
|
|
152
151
|
| JADE | `JADE` | Branch | `algorithm/evo-algorithms` | Adaptive DE |
|
|
@@ -201,6 +200,7 @@ Coexists with `EvoxES` — different backend, class names use `evosax_` prefix.
|
|
|
201
200
|
|-----------|-----------|--------|--------|-------|
|
|
202
201
|
| Basin Hopping | `BasinHopping` | Branch | `algorithm/scipy-nongrad-algorithms` | SciPy stochastic global optimizer |
|
|
203
202
|
| Dual Annealing | `DualAnnealing` | Branch | `algorithm/scipy-nongrad-algorithms` | SciPy stochastic global optimizer |
|
|
203
|
+
| Random Search | `RandomSearch` | **Finished** | `main` | Baseline |
|
|
204
204
|
|
|
205
205
|
### Surrogate-Based / Bayesian Optimization
|
|
206
206
|
|
|
@@ -214,7 +214,7 @@ Coexists with `EvoxES` — different backend, class names use `evosax_` prefix.
|
|
|
214
214
|
| GEBO | `GEBO` | Branch | `algorithm/bo-algorithms` | Gradient-Enhanced BO |
|
|
215
215
|
| LineBO | `LineBO` | Branch | `algorithm/bo-algorithms` | Line-search BO |
|
|
216
216
|
| qKG | `BotorchqKG` | Branch | `algorithm/bo-algorithms` | Knowledge Gradient |
|
|
217
|
-
| qNEI | `
|
|
217
|
+
| qNEI | `BotorchQNEI` | Branch | `algorithm/bo-algorithms` | Noisy Expected Improvement |
|
|
218
218
|
| REMBO | `REMBO` | Branch | `algorithm/bo-algorithms` | Random Embedding BO |
|
|
219
219
|
| HEBO | `HEBO` | Branch | `algorithm/bo-algorithms` | Heteroscedastic BO |
|
|
220
220
|
| SMAC | `SMAC` | Branch | `algorithm/bo-algorithms` | Sequential Model-based Config |
|