Skip to content

perf(hybridz): accelerate objective-bound solving - #114

Merged
yuleisui merged 1 commit into
SVF-tools:mainfrom
Kaijie-liu:hybridz-pr3-solver-20260828
Sep 1, 2026
Merged

yuleisui merged 1 commit into
SVF-tools:mainfrom
Kaijie-liu:hybridz-pr3-solver-20260828

Conversation

@Kaijie-liu

Copy link
Copy Markdown
Contributor

The final PR: Accelerates HybridZ solving.

@codecov

codecov Bot commented Aug 28, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 86.78571% with 37 lines in your changes missing coverage. Please review.
✅ Project coverage is 75.82%. Comparing base (f1bc0f1) to head (7f8f847).

Files with missing lines Patch % Lines
act/back_end/solver/solver_hz.py 86.59% 37 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #114      +/-   ##
==========================================
+ Coverage   74.97%   75.82%   +0.85%     
==========================================
  Files          91       91              
  Lines       22230    22482     +252     
==========================================
+ Hits        16666    17048     +382     
+ Misses       5564     5434     -130     
Flag Coverage Δ
bab 43.78% <7.14%> (-0.41%) ⬇️
backend-float32 47.06% <7.50%> (-0.44%) ⬇️
backend-float64 49.99% <64.64%> (+0.86%) ⬆️
frontend 31.04% <7.14%> (-0.27%) ⬇️
pipeline-fuzz 20.32% <7.14%> (-0.14%) ⬇️
pipeline-verify 41.64% <37.14%> (+0.21%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
act/back_end/hybridz_tf/tf_mlp.py 86.78% <100.00%> (+0.04%) ⬆️
act/back_end/solver/solver_hz.py 80.41% <86.59%> (+12.43%) ⬆️

... and 4 files with indirect coverage changes


Continue to review full report in Codecov by Harness.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update f1bc0f1...7f8f847. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@yuleisui

Copy link
Copy Markdown
Collaborator

Need to fix the CI coverage.

@Kaijie-liu
Kaijie-liu force-pushed the hybridz-pr3-solver-20260828 branch from e8b0385 to 7f8f847 Compare August 28, 2026 07:01
solver.changeColsIntegrality(model.n_bin, binary, types)


class _HighsLPRelaxation:

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why we need this new 'private' class?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is the key of solver speedup. It keeps one HiGHS LP model live when checking multiple output objectives. The constraints stay the same, so rebuilding the model for every output row is wasteful. We only update the objective and reuse the model, then run MIP only for rows the LP cannot decide. It is private because only HZSolver uses it internally.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What is multiple output?
And I assume it only belongs to HZSolver, and the rest of the other solvers are not accessible to it.

@yuleisui
yuleisui merged commit e9ed992 into SVF-tools:main Sep 1, 2026
8 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.

3 participants