Skip to content

Latest commit

 

History

History
43 lines (16 loc) · 1.68 KB

FEATURES.md

File metadata and controls

43 lines (16 loc) · 1.68 KB

Build changes

Code changes

Added int64_t mip_total_lp_iterations to HighsCallbackDataOut and modified accessor function

Highs::writeSolution and Highs::writeBasis now being done via HighsIO logging, so can be redirected to logging callback.

Introduced const double kHighsUndefined as value of undefined values in a user solution. It's equal to kHighsInf

Added Highs::setSolution(const HighsInt num_entries, const HighsInt* index, const double* value); to allow a sparse primal solution to be defined. When a MIP is solved to do this, the value of (new) option mip_max_start_nodes is used for mip_max_nodes to avoid excessive cost

Added options write_presolved_model_to_file and write_presolved_model_file so that presolved model can be written via a command line option

Added Highs::feasibilityRelaxation to solve the problem of minimizing a (possibly weighted) sum of (allowable) infeasibilities in an LP/MIP.

Added Python utility examples/plot_highs_log.py (due to @Thell) to visualise progress of the MIP solver.

Added minimal documentation of solvers and how simplex variants can be run

Methods receiving matrix data where only small values are explicit zeros (so removed internally) are now silent and return HighsStatus::kOk (since internal matrix is exact)

Now multiplying by pre-computed reciprocals rather than performing divisions in loops in simplex solver: LP performance improvement ~2.5%

Primal and dual residuals after IPM and cuPDLP-C are checked, and corrections applied to row solution and column duals

Highs::passModelName added to allow name to be given to the incumbent model

Memory leaks in cuPDLP-C fixed

Bug fixed in MIP presolve