Skip to content

Releases: ERGO-Code/HiGHS

v1.7.0

07 Mar 06:40
50670fd
Compare
Choose a tag to compare

Version 1.7.0 of HiGHS contains several new developments.

HiGHS now offers the exciting new first order LP solver (cuPDLP-c). Ours is currently only a serial CPU implementation, so performance isn't spectacular, but we aim to offer the GPU implementation in due course. To run PDLP, choose the option solver=pdlp. Note that there is currently no time-out available for PDLP, and the termination criteria for cuPDLP-c may mean that the HiGHS optimality conditions are not satisfied. See README.md .

The HiGHS interior point solver now allows analytic centre calculations to be performed. This is done by setting the HiGHS option run_centring to be true. Other new options allow the centring calculations to be controlled.

When Highs::run() is called, ranges of the matrix, costs, bounds and RHS are reported, together with advice on setting the new HiGHS options user_cost_scale and used_bound_scale if there are extreme values.

After solving an LP, the method Highs::getIllConditioning tries (in an approach similar to that used by Gurobi) to identify constraints or basic variables that contribute most to ill-conditioning of the basis matrix.

Logging from the interior point solver is now consistent with logging from the simplex and MIP solvers.

The Python interface has been updated, with several overlooked methods having been added

Considerable modifications and fixes have been added to the build system, in particular for Python. highspy is no longer built with meson, rather a combination of setuptools and cmake.

Bugs in the QP and MIP solvers have been fixed

Thanks are due to due to @fwesselm @feldmeier and @Coloquinte

v1.6.0

29 Sep 05:31
21da9b9
Compare
Choose a tag to compare

Added logging, improving solution and interrupt callbacks to C++ and C for a single user-defined callback method. Specifically

  • New logging callback consistent with new callback method. Old logging callback is deprecated
  • Callback when MIP logging takes place
  • Callback when MIP solver finds an improving integer feasible solution
  • Interrupt callbacks for simplex, interior point and MIP solvers

Added the use of the objective_target option to terminate the MIP solver when an integer feasible solution at least as good as this value has been found.

Bug fixes

v1.5.3

27 May 13:20
45a127b
Compare
Choose a tag to compare

Bug fixes and build system

v1.5.1

24 Feb 14:45
93f1876
Compare
Choose a tag to compare

update interfaces

v1.4.2

01 Feb 11:51
Compare
Choose a tag to compare

Removed print statement from HFactor.cpp

v1.4.1

06 Dec 23:21
bcf6c0b
Compare
Choose a tag to compare

Includes a fix to ensure that dependent equations timeout also works on a model of the time remaining, otherwise bdry2 never times out.

Otherwise, one very minor fix to avoid a compiler warning, a print statement deleted, and a typo in a comment.

v1.4.0

27 Nov 15:48
b6d4b3d
Compare
Choose a tag to compare

Modifications have been made to improve the reliability of the IPM solver when cross-over is not always run - carried out for benchmarking purposes. This has required the run_crossover option that was previously Boolean to become a string with possible values "on", "off" and "choose". The latter results in crossover being run if the result of IPM without crossover is imprecise.

HiGHS will now allow a solution to be read from a file when running HiGHS from the command line, and handle the case where a user has supplied a partial (discrete) solution to a MIP. If the supplied solution is not feasible, HiGHS will fix the discrete variables and attempt to find a feasible assignment of the continuous variables by solving an LP.

If the incumbent model has discrete variables, then the MIP is solved regardless of the setting of the solve option. Previously if solve were "simplex" or "ipm" then the relaxation would be solved. To force the relaxation to be solved, set the (new) solve_relaxation option (default "false") to be true.

Various bug fixes, notably time limit introduced into redundant equations rule for presolve.

v1.3.0

23 Oct 09:52
fbd9bd3
Compare
Choose a tag to compare

Contains various bug fixes, notably in the .lp file reader/writer, plus a fix for #917 and enhancements to the MIP solver.

v1.2.2

18 Apr 16:09
3f0a745
Compare
Choose a tag to compare

HiGHS can read compressed files by using zstr
MPS file reader now parses further sections
Bug fixes in presolve

v1.2.1

25 Feb 00:13
60ad175
Compare
Choose a tag to compare

Some bug fixes from v1.2.0, notably when handling QP maximization, but also mip_gap and objective sign logging correct for MIP maximization. highs_c_api.h and Highs.h have had parameter naming cleaned up, with constants corresponding to C++ enums and documentation added to highs_c_api.h.