Verification without DStart
OngoingI have two LPs with the same variables but different constraints. I want to check my conjecture that the solutions to the two problems coincide. Unfortunately, one of the problems has an extremely large runtime. What I'd like to do is run the faster model and then use the solution to warmstart the slower model. Surely there must be a way to do this, but without DStart values I cannot figure out how to utilize the PStart values.
In case it is relevant I am working in C++. Further, each LP has two sets of constraints, one set of which is the same in both problems.
Thanks!
-
Hi Alexander,
To warm start an LP in the Gurobi Optimizer using a start vector, you need to set both PStart for every variable and DStart for every constraint.
I can think of two alternatives that you can try:
1. Convert your hard LP into a MIP by adding a dummy binary/integer variable and then use the solution of your simple LP as a MIP start for the hard LP converted into a MIP.
2. You mentioned that your hard LP has two sets of constraints:
- Start solving your hard LP with one set of constraints which is common with the simple LP (I assume that this set of constraints is easy to satisfy).
- After calling the optimize() method on the model above, modify the model by adding the second set of constraints and call the optimize() method again.
Using this strategy, the Gurobi Optimizer will automatically use the information of the first run to warm start the second run. This strategy does not depend on the solution of the simple LP. It just might help to decrease the runtime.
Best regards,
Maliheh
1 -
Thank you very much Maliheh!
Your first suggestion worked great except that when I turned the hard LP into an MIP I got that the runtime of the MIP was faster than the original LP even without the start. Further, even when the objectives of the MIP with and without the start coincided, it seems like the start slightly slowed down the MIP problem. Do you have any idea why this might be happening?
0
Please sign in to leave a comment.
Comments
2 comments