Highs solver did not provide a solution nor did it report a failure
See original GitHub issueMy issue is about scipy.optimize.linprog(c, A_ub=A_ub, b_ub=b_ub, A_eq=A_eq, b_eq=b_eq, method='highs')
telling me to submit a bug report.
Reproducing code example:
See minimal reproducer in a comment https://github.com/scipy/scipy/issues/13610#issuecomment-785620302
Error message:
/home/chn/env/lib/python3.8/site-packages/scipy/optimize/_linprog_highs.py:316: OptimizeWarning: model_status is not optimal, using scaled_model_status instead.
res = _highs_wrapper(c, A.indptr, A.indices, A.data, lhs, rhs,
The solver did not provide a solution nor did it report a failure. Please submit a bug report.
Scipy/Numpy/Python version information:
1.6.1 1.18.3 sys.version_info(major=3, minor=8, micro=5, releaselevel='final', serial=0)
Issue Analytics
- State:
- Created 3 years ago
- Comments:26 (8 by maintainers)
Top Results From Across the Web
Time-Dependent Solver
Use the Time-Dependent Solver ( ) to find the solution to time-dependent problems (also called dynamic or unsteady problems) using the implicit time-stepping ......
Read more >linprog(method='highs') — SciPy v1.9.3 Manual
Linear programming: minimize a linear objective function subject to linear equality and inequality constraints using one of the HiGHS solvers.
Read more >When the Solver Fails - MATLAB & Simulink - MathWorks
If you do not provide gradients or Jacobians, solvers estimate gradients and Jacobians by finite ... In this case, a solver can fail...
Read more >Advanced LP Solving | OR-Tools - Google Developers
Families of LP algorithms; What does solving really mean? ... Furthermore, numerical instability can cause solvers to slow down or fail to solve...
Read more >SBB - GAMS
If the NLP solver labels a node Locally Infeasible and the model is not convex a feasible solution may actually exist. If SBB...
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
The best I can do tonight is this simpler reproducer – I’ll be able to dig in more tomorrow. The trouble seems to be from the size of
A_ub
. It breaks for me whenA_ub
is(130, 73)
or larger (whenn > 64
in the reproducer below).Note: I can get higher with
highs-ipm
, the trouble is withhighs-ds
I believe. Again – I’ll have more time to look at this tomorrow. In the meantime try switching tohighs-ipm
and see what happens@mdhaber - thank you for your reply. I do agree that adding a parameter like
feas_tol_rerun
counteracts the simplicity of the interface. The reason I was looking into this was because I was running several LPs and going through the output (when disp=True) manually was quite tedious.Is there a way to actually grab the output when disp=True as a string? I took a look at this solution in StackOverflow: https://stackoverflow.com/questions/1218933/can-i-redirect-the-stdout-into-some-sort-of-string-buffer , however I am unable to get it to work and I suspect it is because the information is not printed in python using print() but rather in C++.