Skip to content

Feat: Multi-Objective API Integration (BiEGO, MF-BiEGO) & Advanced Profiling#18

Merged
Paul-Saves merged 57 commits into
SMTorg:mainfrom
Paul-Saves:feat/mo-api-integration
Jul 6, 2026
Merged

Feat: Multi-Objective API Integration (BiEGO, MF-BiEGO) & Advanced Profiling#18
Paul-Saves merged 57 commits into
SMTorg:mainfrom
Paul-Saves:feat/mo-api-integration

Conversation

@Paul-Saves

@Paul-Saves Paul-Saves commented Jul 5, 2026

Copy link
Copy Markdown
Member

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%).

@Paul-Saves Paul-Saves marked this pull request as draft July 5, 2026 00:40
@coveralls

coveralls commented Jul 5, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 28764842813

Coverage increased (+0.5%) to 86.58%

Details

  • Coverage increased (+0.5%) from the base build.
  • Patch coverage: 89 uncovered changes across 9 files (297 of 386 lines covered, 76.94%).
  • 14 coverage regressions across 2 files.

Uncovered Changes

File Changed Covered %
src/smt_optim/benchmarks/base.py 31 4 12.9%
src/tests/test_integration/test_biego.py 24 4 16.67%
src/tests/test_convergence/test_multi_objective.py 147 128 87.07%
src/smt_optim/acquisition_strategies/biego.py 72 55 76.39%
src/smt_optim/utils/logger.py 5 3 60.0%
src/smt_optim/acquisition_functions/multi_obj.py 29 28 96.55%
src/smt_optim/acquisition_strategies/mosego.py 5 4 80.0%
src/smt_optim/frameworks.py 1 0 0.0%
src/smt_optim/utils/initial_design.py 3 2 66.67%
Total (17 files) 386 297 76.94%

Coverage Regressions

14 previously-covered lines in 2 files lost coverage.

File Lines Losing Coverage Coverage
src/smt_optim/acquisition_strategies/mosego.py 10 79.73%
src/smt_optim/acquisition_strategies/biego.py 4 79.1%

Coverage Stats

Coverage Status
Relevant Lines: 5872
Covered Lines: 5084
Line Coverage: 86.58%
Coverage Strength: 1.73 hits per line

💛 - Coveralls

@Paul-Saves Paul-Saves changed the title Feat/mo api integration Feat/multi-objective api integration Jul 5, 2026
Paul-Saves added 25 commits July 5, 2026 16:42
@Paul-Saves Paul-Saves marked this pull request as ready for review July 6, 2026 02:21
@Paul-Saves Paul-Saves changed the title Feat/multi-objective api integration Feat: Multi-Objective API Integration (BiEGO, MF-BiEGO) & Advanced Profiling Jul 6, 2026
@Paul-Saves Paul-Saves merged commit f77c275 into SMTorg:main Jul 6, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants