vamos-optimization 1.0.0__py3-none-any.whl
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.
- vamos/__init__.py +99 -0
- vamos/algorithms.py +145 -0
- vamos/api.py +106 -0
- vamos/assist/__init__.py +27 -0
- vamos/assist/apply.py +92 -0
- vamos/assist/catalog.py +19 -0
- vamos/assist/cli.py +423 -0
- vamos/assist/doctor.py +122 -0
- vamos/assist/explain.py +127 -0
- vamos/assist/go.py +94 -0
- vamos/assist/plan.py +330 -0
- vamos/assist/providers/__init__.py +15 -0
- vamos/assist/providers/mock_provider.py +102 -0
- vamos/assist/providers/openai_provider.py +299 -0
- vamos/assist/providers/protocol.py +37 -0
- vamos/assist/run.py +216 -0
- vamos/engine/__init__.py +3 -0
- vamos/engine/adaptation/__init__.py +5 -0
- vamos/engine/algorithm/__init__.py +100 -0
- vamos/engine/algorithm/_builder_adaptive.py +112 -0
- vamos/engine/algorithm/_builder_archive_population.py +215 -0
- vamos/engine/algorithm/_builder_common.py +91 -0
- vamos/engine/algorithm/_builder_decomposition.py +138 -0
- vamos/engine/algorithm/agemoea/__init__.py +5 -0
- vamos/engine/algorithm/agemoea/agemoea.py +358 -0
- vamos/engine/algorithm/agemoea/geometry.py +202 -0
- vamos/engine/algorithm/agemoea/state.py +68 -0
- vamos/engine/algorithm/builders.py +31 -0
- vamos/engine/algorithm/catalog.py +23 -0
- vamos/engine/algorithm/components/__init__.py +115 -0
- vamos/engine/algorithm/components/archive.py +271 -0
- vamos/engine/algorithm/components/archive_core.py +387 -0
- vamos/engine/algorithm/components/base.py +57 -0
- vamos/engine/algorithm/components/hooks.py +263 -0
- vamos/engine/algorithm/components/lifecycle.py +110 -0
- vamos/engine/algorithm/components/matching.py +76 -0
- vamos/engine/algorithm/components/metrics.py +37 -0
- vamos/engine/algorithm/components/population.py +117 -0
- vamos/engine/algorithm/components/protocol.py +170 -0
- vamos/engine/algorithm/components/results.py +90 -0
- vamos/engine/algorithm/components/selection.py +194 -0
- vamos/engine/algorithm/components/state.py +82 -0
- vamos/engine/algorithm/components/subset_selection.py +536 -0
- vamos/engine/algorithm/components/termination.py +105 -0
- vamos/engine/algorithm/components/utils.py +262 -0
- vamos/engine/algorithm/components/weight_vectors.py +205 -0
- vamos/engine/algorithm/config/__init__.py +59 -0
- vamos/engine/algorithm/config/agemoea.py +92 -0
- vamos/engine/algorithm/config/base.py +450 -0
- vamos/engine/algorithm/config/defaults.py +166 -0
- vamos/engine/algorithm/config/generic.py +25 -0
- vamos/engine/algorithm/config/ibea.py +122 -0
- vamos/engine/algorithm/config/moead.py +174 -0
- vamos/engine/algorithm/config/nsgaii.py +187 -0
- vamos/engine/algorithm/config/nsgaiii.py +150 -0
- vamos/engine/algorithm/config/rvea.py +128 -0
- vamos/engine/algorithm/config/smpso.py +131 -0
- vamos/engine/algorithm/config/smsemoa.py +131 -0
- vamos/engine/algorithm/config/spea2.py +138 -0
- vamos/engine/algorithm/config/types.py +168 -0
- vamos/engine/algorithm/factory.py +139 -0
- vamos/engine/algorithm/ibea/__init__.py +49 -0
- vamos/engine/algorithm/ibea/helpers.py +225 -0
- vamos/engine/algorithm/ibea/ibea.py +355 -0
- vamos/engine/algorithm/ibea/initialization.py +169 -0
- vamos/engine/algorithm/ibea/state.py +114 -0
- vamos/engine/algorithm/moead/__init__.py +60 -0
- vamos/engine/algorithm/moead/aggregation.py +116 -0
- vamos/engine/algorithm/moead/helpers.py +27 -0
- vamos/engine/algorithm/moead/initialization.py +350 -0
- vamos/engine/algorithm/moead/moead.py +347 -0
- vamos/engine/algorithm/moead/neighborhood.py +139 -0
- vamos/engine/algorithm/moead/neighborhood_kernels.py +357 -0
- vamos/engine/algorithm/moead/state.py +153 -0
- vamos/engine/algorithm/nsgaii/__init__.py +42 -0
- vamos/engine/algorithm/nsgaii/ask_tell.py +319 -0
- vamos/engine/algorithm/nsgaii/helpers.py +381 -0
- vamos/engine/algorithm/nsgaii/initialization.py +445 -0
- vamos/engine/algorithm/nsgaii/injection.py +457 -0
- vamos/engine/algorithm/nsgaii/nsgaii.py +91 -0
- vamos/engine/algorithm/nsgaii/run.py +303 -0
- vamos/engine/algorithm/nsgaii/setup.py +272 -0
- vamos/engine/algorithm/nsgaii/state.py +356 -0
- vamos/engine/algorithm/nsgaiii/__init__.py +39 -0
- vamos/engine/algorithm/nsgaiii/helpers.py +391 -0
- vamos/engine/algorithm/nsgaiii/initialization.py +267 -0
- vamos/engine/algorithm/nsgaiii/nsgaiii.py +340 -0
- vamos/engine/algorithm/nsgaiii/state.py +115 -0
- vamos/engine/algorithm/registry.py +213 -0
- vamos/engine/algorithm/rvea/__init__.py +5 -0
- vamos/engine/algorithm/rvea/rvea.py +476 -0
- vamos/engine/algorithm/rvea/state.py +78 -0
- vamos/engine/algorithm/smpso/__init__.py +37 -0
- vamos/engine/algorithm/smpso/helpers.py +199 -0
- vamos/engine/algorithm/smpso/initialization.py +214 -0
- vamos/engine/algorithm/smpso/smpso.py +467 -0
- vamos/engine/algorithm/smpso/state.py +81 -0
- vamos/engine/algorithm/smsemoa/__init__.py +55 -0
- vamos/engine/algorithm/smsemoa/helpers.py +427 -0
- vamos/engine/algorithm/smsemoa/initialization.py +241 -0
- vamos/engine/algorithm/smsemoa/smsemoa.py +422 -0
- vamos/engine/algorithm/smsemoa/state.py +120 -0
- vamos/engine/algorithm/spea2/__init__.py +45 -0
- vamos/engine/algorithm/spea2/helpers.py +375 -0
- vamos/engine/algorithm/spea2/initialization.py +182 -0
- vamos/engine/algorithm/spea2/spea2.py +427 -0
- vamos/engine/algorithm/spea2/state.py +111 -0
- vamos/engine/algorithm/variants.py +83 -0
- vamos/engine/archive/__init__.py +15 -0
- vamos/engine/archive/config.py +56 -0
- vamos/engine/archive/factory.py +259 -0
- vamos/engine/archive/pruning_selectors.py +248 -0
- vamos/engine/config/__init__.py +17 -0
- vamos/engine/config/loader.py +28 -0
- vamos/engine/config/spec.py +253 -0
- vamos/engine/config/variation.py +268 -0
- vamos/engine/hooks/__init__.py +26 -0
- vamos/engine/hooks/config_parse.py +151 -0
- vamos/engine/hooks/genealogy.py +181 -0
- vamos/engine/hooks/hv_archive_hooks.py +284 -0
- vamos/engine/hooks/hv_convergence.py +206 -0
- vamos/engine/hooks/live_viz.py +53 -0
- vamos/engine/hyperheuristics/__init__.py +22 -0
- vamos/engine/hyperheuristics/indicator.py +61 -0
- vamos/engine/hyperheuristics/operator_selector.py +98 -0
- vamos/engine/hyperheuristics/portfolio.py +73 -0
- vamos/engine/operators/__init__.py +115 -0
- vamos/engine/operators/impl/__init__.py +5 -0
- vamos/engine/operators/impl/_mixed_crossover.py +170 -0
- vamos/engine/operators/impl/_mixed_init.py +38 -0
- vamos/engine/operators/impl/_mixed_mutation.py +188 -0
- vamos/engine/operators/impl/_mixed_spec.py +163 -0
- vamos/engine/operators/impl/_permutation_common.py +137 -0
- vamos/engine/operators/impl/_permutation_crossovers.py +300 -0
- vamos/engine/operators/impl/_permutation_mutations.py +128 -0
- vamos/engine/operators/impl/binary.py +299 -0
- vamos/engine/operators/impl/flags.py +24 -0
- vamos/engine/operators/impl/integer.py +479 -0
- vamos/engine/operators/impl/mixed.py +40 -0
- vamos/engine/operators/impl/permutation.py +64 -0
- vamos/engine/operators/impl/permutation_adapters.py +143 -0
- vamos/engine/operators/impl/real/__init__.py +99 -0
- vamos/engine/operators/impl/real/_crossover_base.py +20 -0
- vamos/engine/operators/impl/real/crossover.py +31 -0
- vamos/engine/operators/impl/real/crossover_blend.py +200 -0
- vamos/engine/operators/impl/real/crossover_differential.py +69 -0
- vamos/engine/operators/impl/real/crossover_multi_parent.py +133 -0
- vamos/engine/operators/impl/real/crossover_sbx.py +225 -0
- vamos/engine/operators/impl/real/crossover_stochastic.py +111 -0
- vamos/engine/operators/impl/real/initialize.py +219 -0
- vamos/engine/operators/impl/real/mutation.py +484 -0
- vamos/engine/operators/impl/real/repair.py +174 -0
- vamos/engine/operators/impl/real/utils.py +95 -0
- vamos/engine/operators/impl/registry.py +182 -0
- vamos/engine/operators/impl/repair.py +47 -0
- vamos/engine/operators/policies/__init__.py +5 -0
- vamos/engine/operators/policies/_discrete_variation_builder.py +306 -0
- vamos/engine/operators/policies/_real_operator_builder.py +93 -0
- vamos/engine/operators/policies/discrete_operator_maps.py +120 -0
- vamos/engine/operators/policies/ibea.py +86 -0
- vamos/engine/operators/policies/moead.py +151 -0
- vamos/engine/operators/policies/nsgaii.py +205 -0
- vamos/engine/operators/policies/nsgaiii.py +105 -0
- vamos/engine/operators/policies/real_repair.py +61 -0
- vamos/engine/operators/policies/smpso.py +136 -0
- vamos/engine/operators/policies/smsemoa.py +105 -0
- vamos/engine/operators/policies/spea2.py +104 -0
- vamos/engine/tuning/__init__.py +201 -0
- vamos/engine/tuning/_model_backend_availability.py +37 -0
- vamos/engine/tuning/_model_backend_fidelity.py +212 -0
- vamos/engine/tuning/_model_backend_runners.py +328 -0
- vamos/engine/tuning/_model_backend_utils.py +90 -0
- vamos/engine/tuning/ablation/__init__.py +11 -0
- vamos/engine/tuning/ablation/plan.py +68 -0
- vamos/engine/tuning/ablation/types.py +100 -0
- vamos/engine/tuning/api.py +161 -0
- vamos/engine/tuning/backends.py +123 -0
- vamos/engine/tuning/convergence.py +310 -0
- vamos/engine/tuning/racing/__init__.py +167 -0
- vamos/engine/tuning/racing/_bridge_assignment_builders.py +330 -0
- vamos/engine/tuning/racing/_bridge_assignment_shared.py +208 -0
- vamos/engine/tuning/racing/bridge.py +116 -0
- vamos/engine/tuning/racing/bridge_assignments.py +30 -0
- vamos/engine/tuning/racing/bridge_space_parts_discrete.py +195 -0
- vamos/engine/tuning/racing/bridge_spaces.py +120 -0
- vamos/engine/tuning/racing/bridge_spaces_agemoea.py +87 -0
- vamos/engine/tuning/racing/bridge_spaces_ibea.py +90 -0
- vamos/engine/tuning/racing/bridge_spaces_moead.py +127 -0
- vamos/engine/tuning/racing/bridge_spaces_nsgaii.py +191 -0
- vamos/engine/tuning/racing/bridge_spaces_nsgaiii.py +88 -0
- vamos/engine/tuning/racing/bridge_spaces_rvea.py +89 -0
- vamos/engine/tuning/racing/bridge_spaces_smpso.py +79 -0
- vamos/engine/tuning/racing/bridge_spaces_smsemoa.py +88 -0
- vamos/engine/tuning/racing/bridge_spaces_spea2.py +90 -0
- vamos/engine/tuning/racing/config_space.py +169 -0
- vamos/engine/tuning/racing/core.py +424 -0
- vamos/engine/tuning/racing/elimination.py +241 -0
- vamos/engine/tuning/racing/eval_types.py +11 -0
- vamos/engine/tuning/racing/io.py +169 -0
- vamos/engine/tuning/racing/multi_fidelity.py +232 -0
- vamos/engine/tuning/racing/param_space.py +336 -0
- vamos/engine/tuning/racing/parameters.py +59 -0
- vamos/engine/tuning/racing/random_search_tuner.py +92 -0
- vamos/engine/tuning/racing/refill.py +150 -0
- vamos/engine/tuning/racing/sampler.py +330 -0
- vamos/engine/tuning/racing/scenario.py +264 -0
- vamos/engine/tuning/racing/schedule.py +58 -0
- vamos/engine/tuning/racing/state.py +39 -0
- vamos/engine/tuning/racing/stats.py +241 -0
- vamos/engine/tuning/racing/tuning_task.py +85 -0
- vamos/engine/tuning/racing/two_phase.py +502 -0
- vamos/engine/tuning/racing/warm_start.py +181 -0
- vamos/engine/variation/__init__.py +35 -0
- vamos/engine/variation/core.py +38 -0
- vamos/engine/variation/helpers.py +257 -0
- vamos/engine/variation/pipeline.py +117 -0
- vamos/engine/variation/protocol.py +147 -0
- vamos/engine/variation/strategies.py +300 -0
- vamos/exceptions.py +59 -0
- vamos/experiment/__init__.py +7 -0
- vamos/experiment/_execution_support.py +155 -0
- vamos/experiment/ablation.py +188 -0
- vamos/experiment/artifacts/__init__.py +74 -0
- vamos/experiment/artifacts/bundle.py +314 -0
- vamos/experiment/artifacts/bundle_safety.py +287 -0
- vamos/experiment/artifacts/comparison.py +109 -0
- vamos/experiment/artifacts/compatibility.py +209 -0
- vamos/experiment/artifacts/component_support.py +163 -0
- vamos/experiment/artifacts/errors.py +289 -0
- vamos/experiment/artifacts/identity.py +24 -0
- vamos/experiment/artifacts/inspection.py +103 -0
- vamos/experiment/artifacts/jsonio.py +272 -0
- vamos/experiment/artifacts/lineage.py +91 -0
- vamos/experiment/artifacts/manifest.py +396 -0
- vamos/experiment/artifacts/models.py +213 -0
- vamos/experiment/artifacts/paths.py +142 -0
- vamos/experiment/artifacts/persistence.py +425 -0
- vamos/experiment/artifacts/provenance.py +423 -0
- vamos/experiment/artifacts/reader.py +394 -0
- vamos/experiment/artifacts/reconstruction.py +181 -0
- vamos/experiment/artifacts/replay.py +237 -0
- vamos/experiment/artifacts/reports.py +184 -0
- vamos/experiment/artifacts/resolved_reconstruction.py +359 -0
- vamos/experiment/artifacts/specs.py +332 -0
- vamos/experiment/artifacts/storage.py +263 -0
- vamos/experiment/artifacts/verification.py +147 -0
- vamos/experiment/auto.py +100 -0
- vamos/experiment/benchmark/__init__.py +16 -0
- vamos/experiment/benchmark/cli.py +158 -0
- vamos/experiment/benchmark/lab_plots.py +59 -0
- vamos/experiment/benchmark/lab_stats.py +110 -0
- vamos/experiment/benchmark/lab_summary.py +106 -0
- vamos/experiment/benchmark/report.py +231 -0
- vamos/experiment/benchmark/report_plots.py +89 -0
- vamos/experiment/benchmark/report_utils.py +66 -0
- vamos/experiment/benchmark/runner.py +197 -0
- vamos/experiment/benchmark/suites.py +256 -0
- vamos/experiment/cli/__init__.py +5 -0
- vamos/experiment/cli/_tune_args.py +212 -0
- vamos/experiment/cli/_tune_flow.py +256 -0
- vamos/experiment/cli/_tune_post.py +284 -0
- vamos/experiment/cli/_tune_runtime.py +285 -0
- vamos/experiment/cli/_tune_utils.py +232 -0
- vamos/experiment/cli/ablation.py +185 -0
- vamos/experiment/cli/ablation_parse.py +111 -0
- vamos/experiment/cli/ablation_schema.py +248 -0
- vamos/experiment/cli/args.py +62 -0
- vamos/experiment/cli/args_algorithms.py +125 -0
- vamos/experiment/cli/args_benchmarks.py +36 -0
- vamos/experiment/cli/args_core.py +181 -0
- vamos/experiment/cli/args_outputs.py +81 -0
- vamos/experiment/cli/args_tuning.py +15 -0
- vamos/experiment/cli/common.py +167 -0
- vamos/experiment/cli/create_problem.py +396 -0
- vamos/experiment/cli/defaults.py +12 -0
- vamos/experiment/cli/loaders.py +110 -0
- vamos/experiment/cli/main.py +254 -0
- vamos/experiment/cli/orchestration.py +179 -0
- vamos/experiment/cli/parser.py +55 -0
- vamos/experiment/cli/preflight.py +107 -0
- vamos/experiment/cli/quickstart.py +406 -0
- vamos/experiment/cli/quickstart_templates.py +187 -0
- vamos/experiment/cli/results_cli.py +186 -0
- vamos/experiment/cli/run_artifact_cli.py +179 -0
- vamos/experiment/cli/spec_args.py +27 -0
- vamos/experiment/cli/study.py +157 -0
- vamos/experiment/cli/study_command.py +273 -0
- vamos/experiment/cli/study_command_result.py +123 -0
- vamos/experiment/cli/study_spec_io.py +99 -0
- vamos/experiment/cli/study_summary_output.py +115 -0
- vamos/experiment/cli/tune.py +410 -0
- vamos/experiment/cli/types.py +21 -0
- vamos/experiment/cli/validation.py +117 -0
- vamos/experiment/diagnostics/__init__.py +5 -0
- vamos/experiment/diagnostics/self_check.py +139 -0
- vamos/experiment/execution.py +388 -0
- vamos/experiment/external/__init__.py +32 -0
- vamos/experiment/external/jmetalpy.py +302 -0
- vamos/experiment/external/pygmo.py +84 -0
- vamos/experiment/external/pymoo.py +185 -0
- vamos/experiment/external/registry.py +113 -0
- vamos/experiment/external/reporting.py +89 -0
- vamos/experiment/observers/__init__.py +3 -0
- vamos/experiment/observers/console.py +100 -0
- vamos/experiment/observers/storage.py +175 -0
- vamos/experiment/optimization_result/__init__.py +7 -0
- vamos/experiment/optimization_result/model.py +178 -0
- vamos/experiment/optimization_result/ranking.py +288 -0
- vamos/experiment/optimization_result/study.py +110 -0
- vamos/experiment/optimize.py +242 -0
- vamos/experiment/presentation.py +54 -0
- vamos/experiment/profiler/__init__.py +3 -0
- vamos/experiment/profiler/cli.py +45 -0
- vamos/experiment/profiler/runner.py +154 -0
- vamos/experiment/runner.py +54 -0
- vamos/experiment/runner_abstractions.py +105 -0
- vamos/experiment/runner_utils.py +73 -0
- vamos/experiment/runtime/__init__.py +21 -0
- vamos/experiment/runtime/catalog.py +61 -0
- vamos/experiment/services/__init__.py +0 -0
- vamos/experiment/services/orchestrator.py +77 -0
- vamos/experiment/studio/__init__.py +7 -0
- vamos/experiment/study/__init__.py +16 -0
- vamos/experiment/study/cancellation.py +176 -0
- vamos/experiment/study/checkpoint_projection.py +238 -0
- vamos/experiment/study/commits.py +221 -0
- vamos/experiment/study/creation.py +218 -0
- vamos/experiment/study/decoding.py +336 -0
- vamos/experiment/study/documents.py +310 -0
- vamos/experiment/study/errors.py +210 -0
- vamos/experiment/study/execution.py +449 -0
- vamos/experiment/study/execution_errors.py +94 -0
- vamos/experiment/study/failure_policy.py +245 -0
- vamos/experiment/study/identity.py +42 -0
- vamos/experiment/study/journal.py +467 -0
- vamos/experiment/study/journal_loading.py +109 -0
- vamos/experiment/study/limits.py +29 -0
- vamos/experiment/study/loading.py +358 -0
- vamos/experiment/study/models.py +369 -0
- vamos/experiment/study/nsga2_diagnostics.py +287 -0
- vamos/experiment/study/paths.py +47 -0
- vamos/experiment/study/planning.py +375 -0
- vamos/experiment/study/preflight.py +335 -0
- vamos/experiment/study/projection.py +293 -0
- vamos/experiment/study/reconciliation.py +432 -0
- vamos/experiment/study/record_decoding.py +251 -0
- vamos/experiment/study/record_loading.py +454 -0
- vamos/experiment/study/recovery.py +274 -0
- vamos/experiment/study/report_models.py +233 -0
- vamos/experiment/study/run_publication.py +258 -0
- vamos/experiment/study/serialization.py +231 -0
- vamos/experiment/study/writing.py +51 -0
- vamos/experiment/study_analysis.py +132 -0
- vamos/experiment/types.py +14 -0
- vamos/experiment/unified.py +453 -0
- vamos/experiment/zoo/__init__.py +3 -0
- vamos/experiment/zoo/cli.py +110 -0
- vamos/foundation/__init__.py +3 -0
- vamos/foundation/checkpoint.py +127 -0
- vamos/foundation/constraints/__init__.py +151 -0
- vamos/foundation/constraints/dsl.py +175 -0
- vamos/foundation/constraints/utils.py +40 -0
- vamos/foundation/core/__init__.py +5 -0
- vamos/foundation/core/api.py +46 -0
- vamos/foundation/core/execution.py +44 -0
- vamos/foundation/core/experiment_config.py +28 -0
- vamos/foundation/core/hv_stop.py +81 -0
- vamos/foundation/core/io_utils.py +14 -0
- vamos/foundation/encoding.py +47 -0
- vamos/foundation/eval/__init__.py +28 -0
- vamos/foundation/eval/backends.py +283 -0
- vamos/foundation/eval/population.py +49 -0
- vamos/foundation/exceptions.py +336 -0
- vamos/foundation/kernel/__init__.py +25 -0
- vamos/foundation/kernel/_numba_ranking.py +303 -0
- vamos/foundation/kernel/_numba_selection.py +52 -0
- vamos/foundation/kernel/backend.py +164 -0
- vamos/foundation/kernel/moocore_backend.py +425 -0
- vamos/foundation/kernel/numba_backend.py +223 -0
- vamos/foundation/kernel/numba_ops.py +224 -0
- vamos/foundation/kernel/numpy_backend.py +449 -0
- vamos/foundation/kernel/operator_primitives.py +285 -0
- vamos/foundation/kernel/registry.py +75 -0
- vamos/foundation/logging.py +28 -0
- vamos/foundation/observer.py +51 -0
- vamos/foundation/problem/__init__.py +7 -0
- vamos/foundation/problem/base.py +182 -0
- vamos/foundation/problem/binary.py +132 -0
- vamos/foundation/problem/builder.py +337 -0
- vamos/foundation/problem/cec.py +216 -0
- vamos/foundation/problem/cec2009.py +363 -0
- vamos/foundation/problem/constrained_many.py +488 -0
- vamos/foundation/problem/dtlz.py +298 -0
- vamos/foundation/problem/integer.py +104 -0
- vamos/foundation/problem/lsmop.py +262 -0
- vamos/foundation/problem/lz.py +327 -0
- vamos/foundation/problem/mixed.py +163 -0
- vamos/foundation/problem/real_world/__init__.py +3 -0
- vamos/foundation/problem/real_world/engineering.py +79 -0
- vamos/foundation/problem/real_world/feature_selection.py +81 -0
- vamos/foundation/problem/real_world/hyperparam.py +127 -0
- vamos/foundation/problem/real_world/tanabe_ishibuchi.py +26 -0
- vamos/foundation/problem/real_world/tanabe_ishibuchi_re2.py +376 -0
- vamos/foundation/problem/real_world/tanabe_ishibuchi_re3_a.py +178 -0
- vamos/foundation/problem/real_world/tanabe_ishibuchi_re3_b.py +182 -0
- vamos/foundation/problem/real_world/tanabe_ishibuchi_re4.py +148 -0
- vamos/foundation/problem/real_world/tanabe_ishibuchi_re6_re9.py +160 -0
- vamos/foundation/problem/real_world/tanabe_ishibuchi_utils.py +18 -0
- vamos/foundation/problem/real_world/zapotecas_rwa.py +20 -0
- vamos/foundation/problem/real_world/zapotecas_rwa_1_4.py +253 -0
- vamos/foundation/problem/real_world/zapotecas_rwa_5.py +207 -0
- vamos/foundation/problem/real_world/zapotecas_rwa_6.py +80 -0
- vamos/foundation/problem/real_world/zapotecas_rwa_7_8.py +148 -0
- vamos/foundation/problem/real_world/zapotecas_rwa_9_10.py +117 -0
- vamos/foundation/problem/registry/__init__.py +26 -0
- vamos/foundation/problem/registry/common.py +49 -0
- vamos/foundation/problem/registry/families/__init__.py +18 -0
- vamos/foundation/problem/registry/families/cec.py +130 -0
- vamos/foundation/problem/registry/families/constrained_many.py +241 -0
- vamos/foundation/problem/registry/families/dtlz.py +116 -0
- vamos/foundation/problem/registry/families/lsmop.py +108 -0
- vamos/foundation/problem/registry/families/lz09.py +110 -0
- vamos/foundation/problem/registry/families/misc.py +154 -0
- vamos/foundation/problem/registry/families/real_world.py +51 -0
- vamos/foundation/problem/registry/families/tanabe_ishibuchi_re.py +197 -0
- vamos/foundation/problem/registry/families/wfg.py +117 -0
- vamos/foundation/problem/registry/families/zapotecas_rwa.py +131 -0
- vamos/foundation/problem/registry/families/zcat.py +93 -0
- vamos/foundation/problem/registry/families/zdt.py +84 -0
- vamos/foundation/problem/registry/selection.py +79 -0
- vamos/foundation/problem/registry/specs.py +76 -0
- vamos/foundation/problem/registry_info.py +46 -0
- vamos/foundation/problem/resolver.py +204 -0
- vamos/foundation/problem/tsp.py +111 -0
- vamos/foundation/problem/tsplib.py +67 -0
- vamos/foundation/problem/types.py +25 -0
- vamos/foundation/problem/wfg.py +463 -0
- vamos/foundation/problem/zcat/__init__.py +49 -0
- vamos/foundation/problem/zcat/core.py +168 -0
- vamos/foundation/problem/zcat/fshape.py +422 -0
- vamos/foundation/problem/zcat/gz.py +300 -0
- vamos/foundation/problem/zcat/instances.py +347 -0
- vamos/foundation/problem/zdt1.py +28 -0
- vamos/foundation/problem/zdt2.py +29 -0
- vamos/foundation/problem/zdt3.py +30 -0
- vamos/foundation/problem/zdt4.py +35 -0
- vamos/foundation/problem/zdt5.py +67 -0
- vamos/foundation/problem/zdt6.py +32 -0
- vamos/foundation/quality_indicators/__init__.py +41 -0
- vamos/foundation/quality_indicators/hv_zdt.py +70 -0
- vamos/foundation/quality_indicators/hypervolume.py +304 -0
- vamos/foundation/quality_indicators/moocore_indicators.py +334 -0
- vamos/foundation/quality_indicators/pareto.py +53 -0
- vamos/foundation/registry.py +109 -0
- vamos/foundation/version.py +15 -0
- vamos/problems.py +89 -0
- vamos/py.typed +0 -0
- vamos/resources/__init__.py +79 -0
- vamos/resources/reference_fronts/ZDT1.csv +7460 -0
- vamos/resources/reference_fronts/ZDT5.csv +31 -0
- vamos/resources/reference_fronts/__init__.py +1 -0
- vamos/resources/reference_fronts/c1dtlz1.csv +2882 -0
- vamos/resources/reference_fronts/c1dtlz3.csv +101 -0
- vamos/resources/reference_fronts/c2dtlz2.csv +3274 -0
- vamos/resources/reference_fronts/cec2009_uf1.csv +1000 -0
- vamos/resources/reference_fronts/cec2009_uf10.csv +5151 -0
- vamos/resources/reference_fronts/cec2009_uf2.csv +1000 -0
- vamos/resources/reference_fronts/cec2009_uf3.csv +1000 -0
- vamos/resources/reference_fronts/cec2009_uf4.csv +1000 -0
- vamos/resources/reference_fronts/cec2009_uf5.csv +21 -0
- vamos/resources/reference_fronts/cec2009_uf6.csv +1000 -0
- vamos/resources/reference_fronts/cec2009_uf7.csv +1000 -0
- vamos/resources/reference_fronts/cec2009_uf8.csv +5151 -0
- vamos/resources/reference_fronts/cec2009_uf9.csv +5151 -0
- vamos/resources/reference_fronts/dc1dtlz1.csv +1492 -0
- vamos/resources/reference_fronts/dc1dtlz3.csv +757 -0
- vamos/resources/reference_fronts/dc2dtlz1.csv +1650 -0
- vamos/resources/reference_fronts/dc2dtlz3.csv +1647 -0
- vamos/resources/reference_fronts/dtlz1.csv +4691 -0
- vamos/resources/reference_fronts/dtlz2.csv +3334 -0
- vamos/resources/reference_fronts/dtlz3.csv +4644 -0
- vamos/resources/reference_fronts/dtlz4.csv +3309 -0
- vamos/resources/reference_fronts/dtlz5.csv +2799 -0
- vamos/resources/reference_fronts/dtlz6.csv +103 -0
- vamos/resources/reference_fronts/dtlz7.csv +2531 -0
- vamos/resources/reference_fronts/lsmop1.csv +1000 -0
- vamos/resources/reference_fronts/lsmop2.csv +1000 -0
- vamos/resources/reference_fronts/lsmop3.csv +1000 -0
- vamos/resources/reference_fronts/lsmop4.csv +1000 -0
- vamos/resources/reference_fronts/lsmop5.csv +1000 -0
- vamos/resources/reference_fronts/lsmop6.csv +1000 -0
- vamos/resources/reference_fronts/lsmop7.csv +1000 -0
- vamos/resources/reference_fronts/lsmop8.csv +1000 -0
- vamos/resources/reference_fronts/lsmop9.csv +1000 -0
- vamos/resources/reference_fronts/mw1.csv +4446 -0
- vamos/resources/reference_fronts/mw2.csv +336 -0
- vamos/resources/reference_fronts/mw3.csv +1544 -0
- vamos/resources/reference_fronts/mw5.csv +1651 -0
- vamos/resources/reference_fronts/mw6.csv +283 -0
- vamos/resources/reference_fronts/mw7.csv +1765 -0
- vamos/resources/reference_fronts/re21.csv +839 -0
- vamos/resources/reference_fronts/re24.csv +1943 -0
- vamos/resources/reference_fronts/re31.csv +1309 -0
- vamos/resources/reference_fronts/re32.csv +1393 -0
- vamos/resources/reference_fronts/re33.csv +1488 -0
- vamos/resources/reference_fronts/re34.csv +1127 -0
- vamos/resources/reference_fronts/re37.csv +1078 -0
- vamos/resources/reference_fronts/re41.csv +1154 -0
- vamos/resources/reference_fronts/re42.csv +1036 -0
- vamos/resources/reference_fronts/re61.csv +1311 -0
- vamos/resources/reference_fronts/re91.csv +1806 -0
- vamos/resources/reference_fronts/rwa1.csv +1008 -0
- vamos/resources/reference_fronts/rwa10.csv +1493 -0
- vamos/resources/reference_fronts/rwa2.csv +1127 -0
- vamos/resources/reference_fronts/rwa3.csv +1484 -0
- vamos/resources/reference_fronts/rwa4.csv +1196 -0
- vamos/resources/reference_fronts/rwa5.csv +998 -0
- vamos/resources/reference_fronts/rwa6.csv +1290 -0
- vamos/resources/reference_fronts/rwa7.csv +1292 -0
- vamos/resources/reference_fronts/rwa8.csv +1350 -0
- vamos/resources/reference_fronts/rwa9.csv +1343 -0
- vamos/resources/reference_fronts/wfg1.csv +100 -0
- vamos/resources/reference_fronts/wfg2.csv +42 -0
- vamos/resources/reference_fronts/wfg3.csv +10000 -0
- vamos/resources/reference_fronts/wfg4.csv +10000 -0
- vamos/resources/reference_fronts/wfg5.csv +10000 -0
- vamos/resources/reference_fronts/wfg6.csv +10000 -0
- vamos/resources/reference_fronts/wfg7.csv +10000 -0
- vamos/resources/reference_fronts/wfg8.csv +10000 -0
- vamos/resources/reference_fronts/wfg9.csv +10000 -0
- vamos/resources/reference_fronts/zcat1.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat1.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat1.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat1.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat1.csv +1000 -0
- vamos/resources/reference_fronts/zcat10.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat10.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat10.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat10.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat10.csv +1000 -0
- vamos/resources/reference_fronts/zcat11.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat11.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat11.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat11.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat11.csv +1000 -0
- vamos/resources/reference_fronts/zcat12.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat12.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat12.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat12.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat12.csv +1000 -0
- vamos/resources/reference_fronts/zcat13.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat13.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat13.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat13.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat13.csv +1000 -0
- vamos/resources/reference_fronts/zcat14.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat14.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat14.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat14.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat14.csv +1000 -0
- vamos/resources/reference_fronts/zcat15.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat15.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat15.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat15.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat15.csv +1000 -0
- vamos/resources/reference_fronts/zcat16.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat16.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat16.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat16.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat16.csv +1000 -0
- vamos/resources/reference_fronts/zcat17.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat17.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat17.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat17.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat17.csv +1000 -0
- vamos/resources/reference_fronts/zcat18.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat18.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat18.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat18.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat18.csv +1000 -0
- vamos/resources/reference_fronts/zcat19.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat19.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat19.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat19.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat19.csv +1000 -0
- vamos/resources/reference_fronts/zcat2.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat2.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat2.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat2.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat2.csv +1000 -0
- vamos/resources/reference_fronts/zcat20.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat20.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat20.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat20.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat20.csv +1000 -0
- vamos/resources/reference_fronts/zcat3.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat3.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat3.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat3.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat3.csv +1000 -0
- vamos/resources/reference_fronts/zcat4.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat4.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat4.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat4.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat4.csv +1000 -0
- vamos/resources/reference_fronts/zcat5.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat5.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat5.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat5.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat5.csv +1000 -0
- vamos/resources/reference_fronts/zcat6.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat6.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat6.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat6.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat6.csv +1000 -0
- vamos/resources/reference_fronts/zcat7.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat7.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat7.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat7.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat7.csv +1000 -0
- vamos/resources/reference_fronts/zcat8.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat8.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat8.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat8.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat8.csv +1000 -0
- vamos/resources/reference_fronts/zcat9.2d.csv +1000 -0
- vamos/resources/reference_fronts/zcat9.3d.csv +1000 -0
- vamos/resources/reference_fronts/zcat9.4d.csv +1000 -0
- vamos/resources/reference_fronts/zcat9.6d.csv +1000 -0
- vamos/resources/reference_fronts/zcat9.csv +1000 -0
- vamos/resources/reference_fronts/zdt2.csv +7929 -0
- vamos/resources/reference_fronts/zdt3.csv +7245 -0
- vamos/resources/reference_fronts/zdt4.csv +632 -0
- vamos/resources/reference_fronts/zdt6.csv +2990 -0
- vamos/resources/tsplib/__init__.py +1 -0
- vamos/resources/tsplib/kroA100.tsp +107 -0
- vamos/resources/tsplib/kroB100.tsp +107 -0
- vamos/resources/tsplib/kroC100.tsp +107 -0
- vamos/resources/tsplib/kroD100.tsp +107 -0
- vamos/resources/tsplib/kroE100.tsp +107 -0
- vamos/resources/weights/W10D_220.dat +220 -0
- vamos/resources/weights/W10D_275.dat +275 -0
- vamos/resources/weights/W10D_715.dat +715 -0
- vamos/resources/weights/W15D_120.dat +120 -0
- vamos/resources/weights/W15D_680.dat +680 -0
- vamos/resources/weights/W2D_1000.dat +1000 -0
- vamos/resources/weights/W2D_300.dat +300 -0
- vamos/resources/weights/W2D_400.dat +400 -0
- vamos/resources/weights/W2D_500.dat +500 -0
- vamos/resources/weights/W2D_600.dat +600 -0
- vamos/resources/weights/W2D_800.dat +800 -0
- vamos/resources/weights/W3D_100.dat +100 -0
- vamos/resources/weights/W3D_1000.dat +1000 -0
- vamos/resources/weights/W3D_120.dat +120 -0
- vamos/resources/weights/W3D_1200.dat +1200 -0
- vamos/resources/weights/W3D_136.dat +136 -0
- vamos/resources/weights/W3D_300.dat +300 -0
- vamos/resources/weights/W3D_500.dat +500 -0
- vamos/resources/weights/W3D_600.dat +600 -0
- vamos/resources/weights/W3D_800.dat +800 -0
- vamos/resources/weights/W3D_91.dat +91 -0
- vamos/resources/weights/W4D_100.dat +201 -0
- vamos/resources/weights/W4D_165.dat +165 -0
- vamos/resources/weights/W5D_1000.dat +1000 -0
- vamos/resources/weights/W5D_1200.dat +1200 -0
- vamos/resources/weights/W5D_1500.dat +1500 -0
- vamos/resources/weights/W5D_1800.dat +1800 -0
- vamos/resources/weights/W5D_2000.dat +2000 -0
- vamos/resources/weights/W5D_2500.dat +2500 -0
- vamos/resources/weights/W5D_495.dat +495 -0
- vamos/resources/weights/W8D_156.dat +156 -0
- vamos/resources/weights/zdt1problem_2obj_pop100.csv +100 -0
- vamos/run_artifacts.py +31 -0
- vamos/selection.py +124 -0
- vamos/study_artifacts.py +20 -0
- vamos/ux/__init__.py +3 -0
- vamos/ux/analysis/__init__.py +5 -0
- vamos/ux/analysis/core_objective_reduction.py +244 -0
- vamos/ux/analysis/mcdm.py +143 -0
- vamos/ux/analysis/results.py +141 -0
- vamos/ux/analysis/stats.py +146 -0
- vamos/ux/analysis/tuning_viz.py +145 -0
- vamos/ux/analytics/__init__.py +3 -0
- vamos/ux/analytics/genealogy.py +40 -0
- vamos/ux/api.py +72 -0
- vamos/ux/mcdm.py +21 -0
- vamos/ux/panel/__init__.py +1 -0
- vamos/ux/panel/app.py +107 -0
- vamos/ux/panel/components/__init__.py +1 -0
- vamos/ux/panel/launcher.py +98 -0
- vamos/ux/panel/pages/__init__.py +1 -0
- vamos/ux/panel/pages/batch.py +150 -0
- vamos/ux/panel/pages/experiment.py +216 -0
- vamos/ux/panel/pages/problem_builder.py +479 -0
- vamos/ux/panel/pages/problem_builder_ai.py +59 -0
- vamos/ux/panel/pages/results.py +149 -0
- vamos/ux/panel/pages/welcome.py +42 -0
- vamos/ux/panel/shell.py +142 -0
- vamos/ux/results.py +282 -0
- vamos/ux/stats.py +25 -0
- vamos/ux/studio/__init__.py +17 -0
- vamos/ux/studio/_problem_builder_codegen.py +112 -0
- vamos/ux/studio/_problem_builder_preview.py +190 -0
- vamos/ux/studio/_problem_builder_security.py +226 -0
- vamos/ux/studio/_studio_llm.py +141 -0
- vamos/ux/studio/app.py +15 -0
- vamos/ux/studio/data.py +143 -0
- vamos/ux/studio/dm.py +112 -0
- vamos/ux/studio/export.py +51 -0
- vamos/ux/studio/problem_builder_backend.py +22 -0
- vamos/ux/studio/problem_builder_templates.py +143 -0
- vamos/ux/studio/services.py +320 -0
- vamos/ux/visualization/__init__.py +135 -0
- vamos/ux/visualization/live_viz.py +266 -0
- vamos/ux/visualization/plotting.py +134 -0
- vamos_contrib/__init__.py +6 -0
- vamos_contrib/interop/__init__.py +3 -0
- vamos_contrib/interop/pymoo.py +55 -0
- vamos_optimization-1.0.0.dist-info/METADATA +528 -0
- vamos_optimization-1.0.0.dist-info/RECORD +724 -0
- vamos_optimization-1.0.0.dist-info/WHEEL +5 -0
- vamos_optimization-1.0.0.dist-info/entry_points.txt +2 -0
- vamos_optimization-1.0.0.dist-info/licenses/LICENSE +21 -0
- vamos_optimization-1.0.0.dist-info/top_level.txt +2 -0
vamos/__init__.py
ADDED
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"""
|
|
2
|
+
VAMOS package facade.
|
|
3
|
+
|
|
4
|
+
Import most features from the dedicated facades:
|
|
5
|
+
- `vamos.api` for core optimization entrypoints.
|
|
6
|
+
- `vamos.algorithms` for algorithm configs and registry helpers.
|
|
7
|
+
- `vamos.problems` for curated benchmark/real-world problem classes.
|
|
8
|
+
- `vamos.ux.api` for analysis/visualization helpers.
|
|
9
|
+
"""
|
|
10
|
+
|
|
11
|
+
from __future__ import annotations
|
|
12
|
+
|
|
13
|
+
import importlib
|
|
14
|
+
|
|
15
|
+
from vamos.api import (
|
|
16
|
+
CompatibilityReport,
|
|
17
|
+
EnvironmentalSelectionResult,
|
|
18
|
+
IncompleteRunMetadataError,
|
|
19
|
+
LoadLimits,
|
|
20
|
+
OptimizationResult,
|
|
21
|
+
Problem,
|
|
22
|
+
ReplayReport,
|
|
23
|
+
RunManifest,
|
|
24
|
+
StoredRun,
|
|
25
|
+
Study,
|
|
26
|
+
StudyLoadLimits,
|
|
27
|
+
StudyPlanReport,
|
|
28
|
+
StudyReport,
|
|
29
|
+
StudyResult,
|
|
30
|
+
StudySpec,
|
|
31
|
+
StudySummary,
|
|
32
|
+
VerificationReport,
|
|
33
|
+
available_problem_names,
|
|
34
|
+
configure_logging,
|
|
35
|
+
create_study,
|
|
36
|
+
load_result,
|
|
37
|
+
load_run,
|
|
38
|
+
load_study,
|
|
39
|
+
make_problem,
|
|
40
|
+
make_problem_selection,
|
|
41
|
+
optimize,
|
|
42
|
+
plan_study,
|
|
43
|
+
reproduce,
|
|
44
|
+
run_self_check,
|
|
45
|
+
save_result,
|
|
46
|
+
select_survivors,
|
|
47
|
+
verify_run,
|
|
48
|
+
)
|
|
49
|
+
from vamos.foundation.version import get_version as _get_version
|
|
50
|
+
|
|
51
|
+
__all__ = [
|
|
52
|
+
"__version__",
|
|
53
|
+
# Optimization
|
|
54
|
+
"optimize",
|
|
55
|
+
"select_survivors",
|
|
56
|
+
"EnvironmentalSelectionResult",
|
|
57
|
+
"Problem",
|
|
58
|
+
"make_problem",
|
|
59
|
+
"OptimizationResult",
|
|
60
|
+
"StudyResult",
|
|
61
|
+
"configure_logging",
|
|
62
|
+
"available_problem_names",
|
|
63
|
+
"make_problem_selection",
|
|
64
|
+
"run_self_check",
|
|
65
|
+
"save_result",
|
|
66
|
+
"load_run",
|
|
67
|
+
"load_result",
|
|
68
|
+
"StoredRun",
|
|
69
|
+
"RunManifest",
|
|
70
|
+
"LoadLimits",
|
|
71
|
+
"IncompleteRunMetadataError",
|
|
72
|
+
"CompatibilityReport",
|
|
73
|
+
"ReplayReport",
|
|
74
|
+
"VerificationReport",
|
|
75
|
+
"verify_run",
|
|
76
|
+
"reproduce",
|
|
77
|
+
"StudySpec",
|
|
78
|
+
"Study",
|
|
79
|
+
"StudyLoadLimits",
|
|
80
|
+
"StudyPlanReport",
|
|
81
|
+
"StudyReport",
|
|
82
|
+
"StudySummary",
|
|
83
|
+
"create_study",
|
|
84
|
+
"load_study",
|
|
85
|
+
"plan_study",
|
|
86
|
+
"problems",
|
|
87
|
+
]
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def __getattr__(name: str) -> object:
|
|
91
|
+
if name == "__version__":
|
|
92
|
+
return _get_version()
|
|
93
|
+
if name == "problems":
|
|
94
|
+
return importlib.import_module(".problems", __name__)
|
|
95
|
+
raise AttributeError(f"module {__name__!r} has no attribute {name!r}")
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
def __dir__() -> list[str]:
|
|
99
|
+
return sorted(set(__all__) | set(globals()))
|
vamos/algorithms.py
ADDED
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
"""
|
|
2
|
+
Algorithm facade: configuration builders and registry helpers.
|
|
3
|
+
|
|
4
|
+
Use this module for algorithm config objects and discovery helpers.
|
|
5
|
+
For running optimizations, use `vamos.api` or `vamos.optimize`.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
from typing import TYPE_CHECKING
|
|
11
|
+
|
|
12
|
+
from vamos.engine.algorithm.config import (
|
|
13
|
+
AGEMOEAConfig,
|
|
14
|
+
GenericAlgorithmConfig,
|
|
15
|
+
IBEAConfig,
|
|
16
|
+
MOEADConfig,
|
|
17
|
+
NSGAIIConfig,
|
|
18
|
+
NSGAIIIConfig,
|
|
19
|
+
ProbabilityExpression,
|
|
20
|
+
ProbabilityValue,
|
|
21
|
+
RVEAConfig,
|
|
22
|
+
SMPSOConfig,
|
|
23
|
+
SMSEMOAConfig,
|
|
24
|
+
SPEA2Config,
|
|
25
|
+
)
|
|
26
|
+
from vamos.engine.variation.helpers import (
|
|
27
|
+
BINARY_CROSSOVER,
|
|
28
|
+
BINARY_MUTATION,
|
|
29
|
+
INT_CROSSOVER,
|
|
30
|
+
INT_MUTATION,
|
|
31
|
+
MIXED_CROSSOVER,
|
|
32
|
+
MIXED_MUTATION,
|
|
33
|
+
PERM_CROSSOVER,
|
|
34
|
+
PERM_MUTATION,
|
|
35
|
+
REAL_CROSSOVER,
|
|
36
|
+
REAL_MUTATION,
|
|
37
|
+
)
|
|
38
|
+
from vamos.foundation.encoding import normalize_encoding
|
|
39
|
+
|
|
40
|
+
if TYPE_CHECKING:
|
|
41
|
+
from vamos.engine.algorithm.registry import AlgorithmBuilder
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
def available_algorithms() -> tuple[str, ...]:
|
|
45
|
+
"""Return the canonical algorithm identifiers supported by the engine."""
|
|
46
|
+
from vamos.engine.algorithm.registry import get_algorithms_registry
|
|
47
|
+
|
|
48
|
+
return tuple(sorted(get_algorithms_registry().keys()))
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
def discover_algorithm_plugins(*, force: bool = False) -> tuple[str, ...]:
|
|
52
|
+
"""Load algorithm builders exposed via the ``vamos.algorithms`` entry point group."""
|
|
53
|
+
from vamos.engine.algorithm.registry import discover_algorithm_plugins as _discover_algorithm_plugins
|
|
54
|
+
|
|
55
|
+
return _discover_algorithm_plugins(force=force)
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def available_crossover_methods(encoding: str = "real") -> tuple[str, ...]:
|
|
59
|
+
"""
|
|
60
|
+
Return the available crossover method identifiers for a given encoding.
|
|
61
|
+
|
|
62
|
+
Parameters
|
|
63
|
+
----------
|
|
64
|
+
encoding : str, default ``"real"``
|
|
65
|
+
Variable encoding type.
|
|
66
|
+
|
|
67
|
+
Returns
|
|
68
|
+
-------
|
|
69
|
+
tuple[str, ...]
|
|
70
|
+
Supported crossover method identifiers for the encoding.
|
|
71
|
+
"""
|
|
72
|
+
try:
|
|
73
|
+
normalized = normalize_encoding(encoding)
|
|
74
|
+
except ValueError:
|
|
75
|
+
return ()
|
|
76
|
+
if normalized == "real":
|
|
77
|
+
return tuple(sorted(REAL_CROSSOVER.keys()))
|
|
78
|
+
if normalized == "binary":
|
|
79
|
+
return tuple(sorted(BINARY_CROSSOVER.keys()))
|
|
80
|
+
if normalized == "permutation":
|
|
81
|
+
return tuple(sorted(PERM_CROSSOVER.keys()))
|
|
82
|
+
if normalized == "integer":
|
|
83
|
+
return tuple(sorted(INT_CROSSOVER.keys()))
|
|
84
|
+
if normalized == "mixed":
|
|
85
|
+
return tuple(sorted(MIXED_CROSSOVER.keys()))
|
|
86
|
+
return ()
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
def available_mutation_methods(encoding: str = "real") -> tuple[str, ...]:
|
|
90
|
+
"""
|
|
91
|
+
Return the available mutation method identifiers for a given encoding.
|
|
92
|
+
|
|
93
|
+
Parameters
|
|
94
|
+
----------
|
|
95
|
+
encoding : str, default ``"real"``
|
|
96
|
+
Variable encoding type.
|
|
97
|
+
|
|
98
|
+
Returns
|
|
99
|
+
-------
|
|
100
|
+
tuple[str, ...]
|
|
101
|
+
Supported mutation method identifiers for the encoding.
|
|
102
|
+
"""
|
|
103
|
+
try:
|
|
104
|
+
normalized = normalize_encoding(encoding)
|
|
105
|
+
except ValueError:
|
|
106
|
+
return ()
|
|
107
|
+
if normalized == "real":
|
|
108
|
+
return tuple(sorted(REAL_MUTATION.keys()))
|
|
109
|
+
if normalized == "binary":
|
|
110
|
+
return tuple(sorted(BINARY_MUTATION.keys()))
|
|
111
|
+
if normalized == "permutation":
|
|
112
|
+
return tuple(sorted(PERM_MUTATION.keys()))
|
|
113
|
+
if normalized == "integer":
|
|
114
|
+
return tuple(sorted(INT_MUTATION.keys()))
|
|
115
|
+
if normalized == "mixed":
|
|
116
|
+
return tuple(sorted(MIXED_MUTATION.keys()))
|
|
117
|
+
return ()
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def resolve_algorithm(name: str) -> AlgorithmBuilder:
|
|
121
|
+
"""Return the registered builder for a named algorithm."""
|
|
122
|
+
from vamos.engine.algorithm.registry import resolve_algorithm as _resolve_algorithm
|
|
123
|
+
|
|
124
|
+
return _resolve_algorithm(name)
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
__all__ = [
|
|
128
|
+
"NSGAIIConfig",
|
|
129
|
+
"NSGAIIIConfig",
|
|
130
|
+
"MOEADConfig",
|
|
131
|
+
"SMSEMOAConfig",
|
|
132
|
+
"SMPSOConfig",
|
|
133
|
+
"SPEA2Config",
|
|
134
|
+
"IBEAConfig",
|
|
135
|
+
"AGEMOEAConfig",
|
|
136
|
+
"RVEAConfig",
|
|
137
|
+
"GenericAlgorithmConfig",
|
|
138
|
+
"ProbabilityExpression",
|
|
139
|
+
"ProbabilityValue",
|
|
140
|
+
"available_algorithms",
|
|
141
|
+
"discover_algorithm_plugins",
|
|
142
|
+
"available_crossover_methods",
|
|
143
|
+
"available_mutation_methods",
|
|
144
|
+
"resolve_algorithm",
|
|
145
|
+
]
|
vamos/api.py
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"""
|
|
2
|
+
User-facing API surface for VAMOS.
|
|
3
|
+
|
|
4
|
+
This module exposes the small set of stable entrypoints most users need:
|
|
5
|
+
- Programmatic optimization via `optimize`.
|
|
6
|
+
- Problem selection helpers.
|
|
7
|
+
- Basic diagnostics helpers.
|
|
8
|
+
|
|
9
|
+
For lower-level control, import from the layered packages:
|
|
10
|
+
`vamos.foundation.*`, `vamos.engine.*`, `vamos.experiment.*`, `vamos.ux.*`.
|
|
11
|
+
"""
|
|
12
|
+
|
|
13
|
+
from __future__ import annotations
|
|
14
|
+
|
|
15
|
+
import logging
|
|
16
|
+
|
|
17
|
+
from vamos.experiment.diagnostics.self_check import run_self_check
|
|
18
|
+
from vamos.experiment.optimization_result import OptimizationResult, StudyResult
|
|
19
|
+
|
|
20
|
+
# Unified API - the primary entry point
|
|
21
|
+
from vamos.experiment.unified import optimize
|
|
22
|
+
from vamos.foundation.logging import configure_vamos_logging
|
|
23
|
+
from vamos.foundation.problem.base import Problem
|
|
24
|
+
from vamos.foundation.problem.builder import make_problem
|
|
25
|
+
from vamos.foundation.problem.registry import (
|
|
26
|
+
available_problem_names,
|
|
27
|
+
make_problem_selection,
|
|
28
|
+
)
|
|
29
|
+
from vamos.run_artifacts import (
|
|
30
|
+
CompatibilityReport,
|
|
31
|
+
IncompleteRunMetadataError,
|
|
32
|
+
LoadLimits,
|
|
33
|
+
ReplayReport,
|
|
34
|
+
RunManifest,
|
|
35
|
+
StoredRun,
|
|
36
|
+
VerificationReport,
|
|
37
|
+
load_result,
|
|
38
|
+
load_run,
|
|
39
|
+
reproduce,
|
|
40
|
+
save_result,
|
|
41
|
+
verify_run,
|
|
42
|
+
)
|
|
43
|
+
from vamos.selection import EnvironmentalSelectionResult, select_survivors
|
|
44
|
+
from vamos.study_artifacts import (
|
|
45
|
+
Study,
|
|
46
|
+
StudyLoadLimits,
|
|
47
|
+
StudyPlanReport,
|
|
48
|
+
StudyReport,
|
|
49
|
+
StudySpec,
|
|
50
|
+
StudySummary,
|
|
51
|
+
create_study,
|
|
52
|
+
load_study,
|
|
53
|
+
plan_study,
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
|
|
57
|
+
def configure_logging(*, level: int = logging.INFO) -> None:
|
|
58
|
+
"""Configure a minimal console logger for VAMOS.
|
|
59
|
+
|
|
60
|
+
Attaches a ``StreamHandler`` to the ``"vamos"`` logger if no handlers
|
|
61
|
+
are already present. This is intentionally opt-in: library code
|
|
62
|
+
must never call ``logging.basicConfig()``.
|
|
63
|
+
|
|
64
|
+
Parameters
|
|
65
|
+
----------
|
|
66
|
+
level : int, default ``logging.INFO``
|
|
67
|
+
Logging level for the ``"vamos"`` logger.
|
|
68
|
+
"""
|
|
69
|
+
configure_vamos_logging(level=level)
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
__all__ = [
|
|
73
|
+
# Primary API
|
|
74
|
+
"optimize",
|
|
75
|
+
"select_survivors",
|
|
76
|
+
"EnvironmentalSelectionResult",
|
|
77
|
+
"Problem",
|
|
78
|
+
"make_problem",
|
|
79
|
+
"OptimizationResult",
|
|
80
|
+
"StudyResult",
|
|
81
|
+
"available_problem_names",
|
|
82
|
+
"make_problem_selection",
|
|
83
|
+
"run_self_check",
|
|
84
|
+
"configure_logging",
|
|
85
|
+
"save_result",
|
|
86
|
+
"load_run",
|
|
87
|
+
"load_result",
|
|
88
|
+
"StoredRun",
|
|
89
|
+
"RunManifest",
|
|
90
|
+
"LoadLimits",
|
|
91
|
+
"IncompleteRunMetadataError",
|
|
92
|
+
"CompatibilityReport",
|
|
93
|
+
"ReplayReport",
|
|
94
|
+
"VerificationReport",
|
|
95
|
+
"verify_run",
|
|
96
|
+
"reproduce",
|
|
97
|
+
"StudySpec",
|
|
98
|
+
"Study",
|
|
99
|
+
"StudyLoadLimits",
|
|
100
|
+
"StudyPlanReport",
|
|
101
|
+
"StudyReport",
|
|
102
|
+
"StudySummary",
|
|
103
|
+
"create_study",
|
|
104
|
+
"load_study",
|
|
105
|
+
"plan_study",
|
|
106
|
+
]
|
vamos/assist/__init__.py
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from .apply import apply_plan
|
|
4
|
+
from .catalog import build_catalog
|
|
5
|
+
from .cli import run_assist
|
|
6
|
+
from .doctor import collect_doctor_report
|
|
7
|
+
from .explain import summarize_plan
|
|
8
|
+
from .go import go
|
|
9
|
+
from .plan import create_plan
|
|
10
|
+
from .providers import MockPlanProvider, OpenAIPlanProvider, PlanProvider, QuestionsMockProvider
|
|
11
|
+
from .run import run_plan, select_config_path
|
|
12
|
+
|
|
13
|
+
__all__ = [
|
|
14
|
+
"apply_plan",
|
|
15
|
+
"build_catalog",
|
|
16
|
+
"collect_doctor_report",
|
|
17
|
+
"create_plan",
|
|
18
|
+
"go",
|
|
19
|
+
"MockPlanProvider",
|
|
20
|
+
"OpenAIPlanProvider",
|
|
21
|
+
"PlanProvider",
|
|
22
|
+
"QuestionsMockProvider",
|
|
23
|
+
"run_assist",
|
|
24
|
+
"run_plan",
|
|
25
|
+
"select_config_path",
|
|
26
|
+
"summarize_plan",
|
|
27
|
+
]
|
vamos/assist/apply.py
ADDED
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
import json
|
|
4
|
+
import shutil
|
|
5
|
+
from functools import lru_cache
|
|
6
|
+
from pathlib import Path
|
|
7
|
+
|
|
8
|
+
from vamos.engine.config.spec import validate_experiment_spec
|
|
9
|
+
from vamos.experiment.cli.args import build_parser, build_pre_parser
|
|
10
|
+
from vamos.experiment.cli.loaders import load_spec_defaults
|
|
11
|
+
from vamos.experiment.cli.spec_args import parser_spec_keys
|
|
12
|
+
from vamos.foundation.core.experiment_config import ExperimentConfig
|
|
13
|
+
|
|
14
|
+
_REQUIRED_PLAN_FILES: tuple[str, ...] = ("config.json", "plan.json")
|
|
15
|
+
_OPTIONAL_PLAN_FILES: tuple[str, ...] = ("prompt.txt", "catalog.json")
|
|
16
|
+
|
|
17
|
+
_README_CONTENT = """# Run VAMOS
|
|
18
|
+
|
|
19
|
+
This directory was generated by `vamos assist apply`.
|
|
20
|
+
|
|
21
|
+
## How To Run
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
vamos --config config.json
|
|
25
|
+
python -m vamos.experiment.cli.main --config config.json
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Results/output location is controlled by fields in `config.json` (for example `defaults.output_root`).
|
|
29
|
+
"""
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
@lru_cache(maxsize=1)
|
|
33
|
+
def _spec_allowed_overrides() -> tuple[str, ...]:
|
|
34
|
+
default_config = ExperimentConfig()
|
|
35
|
+
pre_parser = build_pre_parser()
|
|
36
|
+
spec_defaults = load_spec_defaults(None)
|
|
37
|
+
parser = build_parser(default_config=default_config, pre_parser=pre_parser, spec_defaults=spec_defaults)
|
|
38
|
+
return tuple(sorted(parser_spec_keys(parser)))
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
def _read_json(path: Path) -> object:
|
|
42
|
+
try:
|
|
43
|
+
return json.loads(path.read_text(encoding="utf-8"))
|
|
44
|
+
except Exception as exc:
|
|
45
|
+
raise ValueError(f"Invalid JSON file: {path.name}") from exc
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def _validate_plan_dir(plan_dir: Path) -> None:
|
|
49
|
+
if not plan_dir.exists() or not plan_dir.is_dir():
|
|
50
|
+
raise ValueError(f"Plan directory not found: {plan_dir}")
|
|
51
|
+
for name in _REQUIRED_PLAN_FILES:
|
|
52
|
+
if not (plan_dir / name).is_file():
|
|
53
|
+
raise ValueError(f"Missing required plan file: {name}")
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
def _validate_config(config_data: object) -> None:
|
|
57
|
+
try:
|
|
58
|
+
validate_experiment_spec(config_data, allowed_overrides=_spec_allowed_overrides())
|
|
59
|
+
except Exception as exc:
|
|
60
|
+
raise ValueError(f"Invalid plan config: {exc}") from exc
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def _prepare_project_dir(project_dir: Path, *, overwrite: bool) -> None:
|
|
64
|
+
if project_dir.exists():
|
|
65
|
+
if not overwrite:
|
|
66
|
+
raise ValueError(f"Project directory already exists: {project_dir}")
|
|
67
|
+
shutil.rmtree(project_dir)
|
|
68
|
+
project_dir.mkdir(parents=True, exist_ok=False)
|
|
69
|
+
|
|
70
|
+
|
|
71
|
+
def _copy_plan_files(plan_dir: Path, project_dir: Path) -> None:
|
|
72
|
+
for name in (*_REQUIRED_PLAN_FILES, *_OPTIONAL_PLAN_FILES):
|
|
73
|
+
src = plan_dir / name
|
|
74
|
+
if src.is_file():
|
|
75
|
+
shutil.copy2(src, project_dir / name)
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def apply_plan(plan_dir: Path, out_dir: Path | None = None, overwrite: bool = False) -> Path:
|
|
79
|
+
resolved_plan_dir = Path(plan_dir)
|
|
80
|
+
_validate_plan_dir(resolved_plan_dir)
|
|
81
|
+
|
|
82
|
+
config_data = _read_json(resolved_plan_dir / "config.json")
|
|
83
|
+
_validate_config(config_data)
|
|
84
|
+
|
|
85
|
+
project_dir = Path(out_dir) if out_dir is not None else resolved_plan_dir / "project"
|
|
86
|
+
_prepare_project_dir(project_dir, overwrite=overwrite)
|
|
87
|
+
_copy_plan_files(resolved_plan_dir, project_dir)
|
|
88
|
+
(project_dir / "README_run.md").write_text(_README_CONTENT, encoding="utf-8")
|
|
89
|
+
return project_dir
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
__all__ = ["apply_plan"]
|
vamos/assist/catalog.py
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from vamos.algorithms import available_algorithms, available_crossover_methods, available_mutation_methods
|
|
4
|
+
from vamos.experiment.cli.quickstart import available_templates
|
|
5
|
+
from vamos.foundation.kernel.registry import KERNELS
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
def build_catalog(problem_type: str = "real") -> dict[str, list[str]]:
|
|
9
|
+
"""Build a deterministic catalog of available optimization building blocks."""
|
|
10
|
+
return {
|
|
11
|
+
"algorithms": sorted(available_algorithms()),
|
|
12
|
+
"kernels": sorted(KERNELS.keys()),
|
|
13
|
+
"crossover_methods": sorted(available_crossover_methods(problem_type)),
|
|
14
|
+
"mutation_methods": sorted(available_mutation_methods(problem_type)),
|
|
15
|
+
"templates": sorted(available_templates()),
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
__all__ = ["build_catalog"]
|