Opened 13 months ago
Last modified 8 weeks ago
#32282 new enhancement
Add MILP solver backends for HiGHS via scipy.optimize.linprog
Reported by: | mkoeppe | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-9.7 |
Component: | linear programming | Keywords: | |
Cc: | dimpase, slabbe, dcoudert | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | #34081 | Stopgaps: |
Description (last modified by )
scipy 1.6 added a vendored copy of the HiGHS LP solvers. https://github.com/scipy/scipy/tree/master/scipy/optimize/_highs/src
https://docs.scipy.org/doc/scipy/reference/optimize.linprog-highs.html
We should start using them.
scipy 1.7 makes dual values available - https://docs.scipy.org/doc/scipy/reference/release.1.7.0.html#scipy-optimize-improvements
https://www.maths.ed.ac.uk/hall/HiGHS/ also has MIP, but this is not yet exposed in scipy.optimize.
- scipy 1.9 will add it - https://github.com/scipy/scipy/pull/15460 has been merged
highs also has a rudimentary python interface in its own source tree - https://github.com/ERGO-Code/HiGHS/blob/master/src/interfaces/highs_python_api.py
For an interface that provides access to tableau data, as of 2022-04, neither scipy nor the OsiHiGHSSolverInterface provides the necessary methods:
- https://github.com/ERGO-Code/HiGHS/issues/525#issuecomment-1038529096
- https://github.com/scipy/scipy/issues/15915 (feature request)
See also:
- A possible route for a high-level interface goes through CVXPY (#31962)
- #33919 Add MILP solver backends for HiGHS via highspy
Part of Meta-ticket #26511: Use Python optimization interfaces: CVXPY, or-tools, PuLP, Pyomo, cylp...
Change History (14)
comment:1 Changed 13 months ago by
- Description modified (diff)
comment:2 Changed 13 months ago by
- Description modified (diff)
comment:3 Changed 13 months ago by
- Description modified (diff)
comment:4 Changed 8 months ago by
- Milestone changed from sage-9.5 to sage-9.6
comment:5 Changed 6 months ago by
- Cc slabbe dcoudert added
- Description modified (diff)
- Summary changed from Add LP solver backends for HiGHS via scipy.optimize.linprog to Add MILP solver backends for HiGHS via scipy.optimize.linprog
comment:6 Changed 6 months ago by
- Milestone changed from sage-9.6 to sage-9.7
comment:7 Changed 5 months ago by
- Description modified (diff)
comment:8 Changed 5 months ago by
- Description modified (diff)
comment:9 Changed 5 months ago by
- Description modified (diff)
comment:10 Changed 5 months ago by
- Description modified (diff)
comment:11 Changed 5 months ago by
- Description modified (diff)
comment:12 Changed 3 months ago by
- Description modified (diff)
comment:13 Changed 3 months ago by
- Description modified (diff)
comment:14 Changed 8 weeks ago by
- Dependencies set to #34081