Feat/956 compute iis highs - #957
Conversation
Build cost — v1 vs legacyv1 build peak & time relative to legacy, on this commit — not a comparison against master (that is CodSpeed).
Full table (time + peak, mean)📊 Interactive plots + CSV: download the semantics-report-v1-vs-legacy artifact from this run. Report-only · not a gate · refreshed on every push · obsolete once legacy is dropped. |
Merging this PR will degrade performance by 5.3%
|
| Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|
| ❌ | test_to_lp[qp-n=1000] |
1.9 MB | 2.6 MB | -24.84% |
| ❌ | test_to_lp[nodal_balance_sparse-severity=50] |
2.8 MB | 3.7 MB | -24.12% |
| ❌ | test_to_lp[merge_balance-severity=0] |
2.7 MB | 3.3 MB | -18.24% |
| ❌ | test_to_lp[nodal_balance-severity=50] |
3.3 MB | 3.7 MB | -10.5% |
| ⚡ | test_to_lp[sparse_network-n=10] |
1,338.9 KB | 733.8 KB | +82.47% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing feat/956-compute-IIS-highs (957cdd3) with master (718c0c1)2
Footnotes
-
181 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
-
No successful run was found on
master(20648f5) during the generation of this report, so 718c0c1 was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩
Drop the hasattr getIis guard in favor of fail-fast, move the highspy import to the top of the method, flatten the iis_strategy bitmask into named locals, and reuse the module-level solvers helper.
The available_solvers check already guarantees highspy is importable.
Their available_solvers membership already guarantees importability, matching the highs branch.
FabianHofmann
left a comment
There was a problem hiding this comment.
thanks @lisazeyen ; I added some refactoring to align the code and pulled up the release notes
Closes #956 (if applicable).
Changes proposed in this Pull Request
Adds HiGHS support to
Model.compute_infeasibilities(), which previously only worked withGurobi and Xpress. HiGHS's IIS (irreducible infeasible subsystem) computation
is documented at
HiGHS: Advanced features — IIS
and exposed in
highspyviaHighs.getIis().Extended testing in
test/test_infeasibility.pyandtest/test_optimization.py::test_infeasible_modelfor HighsChecklist
AGENTS.md).doc.doc/release_notes.rstof the upcoming release is included.