Feat: Multi-Objective API Integration (BiEGO, MF-BiEGO) & Advanced Profiling#18
Merged
Merged
Conversation
# Conflicts: # src/smt_optim/acquisition_strategies/biego.py
Coverage Report for CI Build 28764842813Coverage increased (+0.5%) to 86.58%Details
Uncovered Changes
Coverage Regressions14 previously-covered lines in 2 files lost coverage.
Coverage Stats
💛 - Coveralls |
…tebook comparison
…ok with BiEGO nadir tracking
…ront for BiEGO adaptive nadir selection
…s to prevent visual discrepancies
…zation correctly tracks when the Nadir point is reused across multiple unchanged Pareto front states
…tic for local optimizer
…rror for multi-obj problems
…and correct animation bounds
…o-objective initialization points
…to crash due to multi-fidelity leftovers
…pervolume convergence profile
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This Pull Request introduces full Multi-Objective optimization support into the core smt-optim API. It ports and
integrates the BiEGO (Bio-objective Efficient Global Optimization) strategy, extends it to Multi-Fidelity (MF-BiEGO)
with constraint handling, and provides comprehensive post-processing tools for Multi-Objective comparisons.
Key Features & Additions
• BiEGO Strategy: Fully integrated the BiEGO strategy with vectorized EI formulations. Includes both the standard
"Composite" approach (with adaptive Nadir point tracking) and a "Naive" BiEGO formulation for benchmarking.
• Multi-Fidelity BiEGO (MF-BiEGO): Added support for multi-fidelity multi-objective optimization with constraints.
• Public API Support: Enabled native multi-objective support in the public minimize API, State , and
OptimizationDataset .
• Advanced Post-Processing ( smt_optim.utils.profiles ): Integrated tools based on oihanc and amaug's work to
generate Data Profiles, Performance Profiles, and Hypervolume Convergence Profiles.
Documentation & Notebooks
• Multi-Objective Tutorial Overhaul: Completely updated docs/source/getting_started/multi_objective_optim.ipynb to
reflect the new v0.2.0 API.
• Interactive Animations: Added rich matplotlib animations visualizing the Pareto Front discovery process on the
ZDT1 benchmark for BiEGO Composite , BiEGO Naive , and MOSEGO .
• Hypervolume Analysis: Added concrete examples in the tutorial for plotting Hypervolume Convergence and Performance
Profiles.
Testing & Bug Fixes
• Added robust integration and convergence tests for BiEGO and MOSEGO on the ZDT1 problem, including assertions for
Hypervolume decay and IGD+ decay.
• Fixed PymooWrapper compatibility issues with multi-fidelity evaluation.
• Resolved various ruff formatting warnings (E402 module level imports, E902 encoding) and removed deprecated API
calls ( smt_optim.adapters , _points attribute).
• Cleaned up duplicate functions (e.g., accuracy_profile in profiles.py ).
Checklist
[✓] Code passes ruff check cleanly.
[✓] Multi-objective and Multi-fidelity convergence tests are passing.
[✓] Documentation and notebooks have been updated and verified.
[✓] Coverage remains stable or has increased (+0.5%).