The highlight of v1.14 is the extension of the HiPO interior point LP solver to handle convex QPs.
Prompted by #2821, the treatment of Hessian matrix anomalies has been changed. Firstly, any duplicate entries in the Hessian are now summed.
-
When a square Hessian is read from the
QMATRIXsection of an MPS file, or passed by a user, any asymmetry results inHighs::readModelorHighs::passHessianreturningHighsStatus::kError. Previously HiGHS would use$$(Q+Q^T)/2$$ as the Hessian. -
A triangular Hessian, whether read from the
QUADOBJsection of an MPS file, or passed by a user, was previsouly assumed to be given by only lower triangular entries, with any entries in the upper triangle being ignored. Now, any entries in the upper triangle of the Hessian are accepted, being added to any corresponding entries in the lower triangle. If there are entries in the upper triangle, their number is logged in a warning message, which also states the number of any summations, andHighs::readModelorHighs::passHessianwill returnHighsStatus::kWarning.
Prompted by #2849, console, file and callback logging are now independent, allowing any combination to be on/off.
Following PR #2854, HiPO is now capable of solving convex QP problems. Option solver="qpasm" selects the previous active-set QP solver, while solver="hipo" or solver="ipm" selects the HiPO solver.
Following PR #2865, HiGHS performs logging during probing in MIP presolve and checks for time-out
Following PR #2870,
dedicated time-out during IIS calculation (using HiGHS option
iis_time_limit) has been enabled.
Prompted by #2883,
the function signature for Highs_getInfinity in the C# API has been
corrected.
Prompted by #2887,
addVariable in highspy cannot create names with spaces, illegal
variable or constraint names when writing MPS or LP files no longer
leads to an error return - generic names are created - and the EMS
file facility has been removed.
Following PR #2918, logging during IIS calculation has been improved.
Following PR #2934, HiPO uses infinity-norm equilibration of the rows and columns of the matrix rather than Curtis-Reid scaling.