Conversation
|
I think this looks correct, with one small exception (see my comment above). At the moment, I don’t have a clear hypothesis about whether the presolved problem should require fewer or more iterations. Whenever you have the opportunity to run the benchmarks, it would be very interesting to hear your insights on the following:
|
|
I thought of something else. When PSLP fixes variables, it updates an offset in the objective. The offset is stored in presolver->prob->obj->offset. I think it makes sense to include this offset when evaluating the termination criteria inside cuPDLPx for the reduced problem. |
@dance858 It might be better to add the definition of |
|
Good point and I totally agree. I'm pushing up the fix now. The offset is stored in PresolvedProblem->obj_offset. |
|
Hi @dance858 . I have updated the |
Description
This PR adds optional support for the PSLP presolver in
cuPDLPx. When enabled (by default), the problem is presolved withPSLPbefore being sent to the GPU.Summary
The integration works correctly, and
PSLPsignificantly reduces the problem size (rows/cols/nnz). However, the presolved problem currently takes more PDHG iterations to converge.Any feedback on whether this behavior is expected with
PSLPwould be appreciated. @dance858Output
Without PSLP presolve.
With PSLP presolve
Related PSLP issue:
TODO