Replies: 2 comments
-
Interesting thought. There's demand from the MIP solver to influence the nature of the optimal basis by exploiting primal and dual degeneracy, so this would be similar. The difference would be that, rather than HiGHS identifying it, a user supplies a nonbasic variable (with zero dual value) or basic variable (with zero primal value) to use in order to perform a, respectively, primal or dual pivoting operation. When this is implemented for the MIP solver, I'll bear it in mind. |
Beta Was this translation helpful? Give feedback.
-
Just FYI: We have since released our solver here. It is algorithmically similar to knitro (though less performant in practice) while being FOSS. We are working on the CUTEst suite of nonlinear optimization test problems. We still have some kinks to work out with respect to the active set identification and a finer control over the underlying LP solver would likely come in handy. |
Beta Was this translation helpful? Give feedback.
-
As @jajhall noticed I am currently experimenting with solving NPLs using an SLP method.
Due to the choice of linear objective, I often see that optimal bases are not unique. However, while the bases are equivalent for HiGHS, this is not true for my code. Specifically, I would rather include linear constraints in the (row) basis than variable bounds. In a more general sense, I would like to perform some post-processing of the basis myself. Of course I do not want to implement a simplex-like algorithm in order to perform these steps myself.
I noticed that the C API of HiGHS already has the functions
Highs_getBasisSolve
andHighs_getBasisTransposeSolve
, which allow some more fine-grained access to the underlying basis matrix. Would it be possible for you to add a function to manually perform a pivot step while updating the factorization?Beta Was this translation helpful? Give feedback.
All reactions