|
1 | 1 | ## Build changes |
2 | 2 |
|
3 | | -Added code coverage report |
4 | | - |
5 | | -Replaced command line parsing library with CLI11. Removed C++17 reference with cxxopts, which is no longer in HiGHS |
6 | | - |
7 | 3 | ## Code changes |
8 | 4 |
|
9 | | -Any LP offset is communicated to the IPM solver, and used in logging and primal/dual objective calculations. |
10 | | - |
11 | | -If there is a valid basis when Highs::run() is called, presolve isn't skipped unless the solver option is "simplex" or "choose" (when simplex will always be chosen if there is an advanced basis). |
12 | | - |
13 | | -Added basis solve methods to highspy |
14 | | - |
15 | | -Added methods to get primal/dual ray and dual unboundedness direction to highspy |
16 | | - |
17 | | -When a presolved LP has model status kUnknown, rather than returning this to the user, it performs postsolve and then uses the basis to solve the original LP |
18 | | - |
19 | | -Fixed bug in presolve when pointers stored in HighsMatrixSlice get invalidated when the coefficient matrix is reallocated (e.g. when non-zeros are added in HPresolve::addToMatrix) |
20 | | - |
21 | | -Primal and dual residual tolerances - applied following IPM or PDLP solution - now documented as options |
22 | | - |
23 | | -Highs::getCols (Highs::getRows) now runs in linear time if the internal constraint matrix is stored column-wise (row-wise). Added ensureColwise/Rowwise to the Highs class, the C API and highspy so that users can set the internal constraint matrix storage orientation |
24 | | - |
25 | | -When columns and rows are deleted from the incumbent LP after a basic solution has been found, HiGHS no longer invalidates the basis. Now it maintains the basic and nonbasic status of the remaining variables and constraints. When the model is re-solved, this information is used to construct a starting basis. |
26 | | - |
27 | | -Fixed bugs in presolve |
28 | | - |
29 | | -When running from the command line, changes to default option values are reported |
30 | | - |
31 | | -Added callback to allow users to supply integer feasible solutions to the MIP solver during execution |
32 | | - |
33 | | -Bug fix for primal heuristics in the MIP solver |
34 | | - |
35 | | -Model status is set appropriately when a solver's claimed optimality doesn't satify the general HiGHS primal/dual feasibilily tolerances. Affects IPM without crossover and PDLP |
36 | | - |
37 | | -Command line parsing now done with pure C++11 code |
38 | | - |
39 | | -Added command line flags to read basis from and write basis to a file |
40 | | - |
41 | | -Bug fixes in records of primal/dual rays |
42 | | - |
43 | | -MPS read utility improved. Error logging is now less verbose; inability to handle USERCUTS section is properly logged |
44 | | - |
45 | | -Implemented lifting for probing as described by Achterberg et al in _Presolve Reductions in Mixed Integer Programming._ INFORMS Journal on Computing 32(2):473-506 (2019). Not used by default, but option mip_lifting_for_probing allows it to be used with two levels of modification |
| 5 | +Fixed incorrect assertion in `HighsMipSolver::solutionFeasible()` (fixing #2204) |
46 | 6 |
|
47 | | -Propagated updates from cuPDLP-C |
| 7 | +getColIntegrality now returns `HighsVarType::kContinuous` when `model_.lp_.integrality_` is empty (fixing #2261) |
48 | 8 |
|
49 | | -Added GPU support for cuPDLP-C |
0 commit comments