-
I've had good luck with keeping LP solver time low when adding columns to an already solved problem (cf. e.g. #1198) but when using, say, Are there any general recommendations on keeping solver times low with these more destructive changes; if I have enough structure (if, say, I know that solutions remain primal feasible in the new problem), can I keep re-solving times low by relying on some of the lower-level operations than, say, |
Beta Was this translation helpful? Give feedback.
Replies: 1 comment
-
When HiGHS has a basis for the incumbent LP, it will use that to start the simplex solver, and not run presolve, since we cannot yet maintain a solution and basis through presolve. When a basis is known and you delete columns, this can lead to the number of basic variables being different from the number of rows in the problem. HiGHS will not run presolve, and do its best to work with such a "rectangular" basis matrix by factorizing it and forcing slack variables to be basic in order to complete the basis. HiGHS will then use this basis to "warm" start the simplex solver. I can well imagine that this process can get so destructive that it's no better than a cold start from an all-slack basis after applying presolve - particularly for problems that are greatly reduced by presolve. Is there much reduction due to presolve when you call highs.run() for the first time, or force it to use presolve by calling highs.setBasis() so that the incumbent basis is cleared. |
Beta Was this translation helpful? Give feedback.
When HiGHS has a basis for the incumbent LP, it will use that to start the simplex solver, and not run presolve, since we cannot yet maintain a solution and basis through presolve.
When a basis is known and you delete columns, this can lead to the number of basic variables being different from the number of rows in the problem. HiGHS will not run presolve, and do its best to work with such a "rectangular" basis matrix by factorizing it and forcing slack variables to be basic in order to complete the basis. HiGHS will then use this basis to "warm" start the simplex solver. I can well imagine that this process can get so destructive that it's no better than a cold start from an all-slack ba…