HiGHS has a suite of methods for operations with the invertible
representation of the current basis matrix B. To use
these requires knowledge of the corresponding (ordered) basic
variables. This is obtained using the
method
getBasicVariables
, with non-negative values being
columns and negative values corresponding to row indices plus one [so
-1 indicates row 0]. Methods
getBasisInverseRow
and
getBasisInverseCol
yield a specific row or column
of B^{-1}. Methods
getBasisSolve
and
getBasisTransposeSolve
yield the solution
of Bx=b and B^{T}x=b respectively. Finally, the
methods
getReducedRow
and
getReducedColumn
yield a specific row or column of B^{-1}A. In all cases,
HiGHS can return the number and indices of the nonzeros in the result.
An Irreducible infeasibility system (IIS) consists of a set of variables and a set of constraints in a model, together with variable/constraint bound information, that cannot be satisfied (so is infeasible). It is irreducible in that if any constraint or variable bound is removed, then the system can be satisfied (so is feasible).
HiGHS has an IIS facility that is under development. Currently it can only be used for LPs. The full IIS calculation is expensive, since it requires the solution of multiple LPs. Although there is a prototype implementation, it is not as robust or efficient as it will be. Otherwise, there is a simple, cheap test that looks for infeasibility due to incompatible variable or constraint bounds, or constraint bounds that cannot be satisfied given the range of values on the constraint activity implied by bounds on variables.
The choice of IIS strategy is defined by the iis_strategy option. This a bit map
Hence, by just setting the 2-bit, an IS is formed reliably, and at no great expense (for an LP)
Highs classconst HighsLp& getIisLp(): Return a const reference to the internal IIS LP instanceHighsStatus getIis(HighsIis& iis): Try to find an IIS for the incumbent model. Gets the internal HighsIis instance, returning HighsStatus::kError if the calculation failed. Note that if the incumbent model is found to be feasible, this is a "success", and HighsStatus::kOk is returned.HighsStatus writeIisModel(const std::string& filename = ""): Write out the internal IIS LP instance to a file.Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.