Setting PStart and DStart better than VBasis and CBasis. Wrong documentation?

439 views
Skip to first unread message

baris evrim demiroz

unread,
Aug 16, 2016, 3:53:14 PM8/16/16
to Gurobi Optimization
Hello,

Today I was trying out warm starting my model in column generation iterations. Although the documentation states that setting VBasis/CBasis performs better than setting PStart/DStart, I have observed that is not the case. Any idea why this happens?

Whatever the reason, the documentation is misleading. I think it should advise trying out both options to see which one works well.

Cheers.

Tobias Achterberg

unread,
Sep 15, 2016, 6:01:09 PM9/15/16
to gur...@googlegroups.com
If you use VBasis/CBasis then the simplex solver immediately has the warm-start
basis at hand.

If you use PStart/DStart, however, it means that we need to perform something
like a crossover step in order to get a basis that has a solution that is close
to the PStart/DStart values that the user provided. This is additional work, and
it is not guaranteed that it will find a basis that matches the PStart/DStart
values.

But of course it could always happen that for some reason optimizing your
problem starting from the basis that the PStart/DStart crossover step finds is
superior to the one that starts from your VBasis/CBasis basis. But if this is
really systematic (rather than just luck), then I guess there is something going
on in your column generation process that limits the quality of the old basis
for a warm-start.

Any chance that you made a mistake with the basis? What happens if you install
the optimal basis as VBasis/CBasis, then do not add any columns, solving the
same model again? Does it solve in 0 simplex iterations?


Regards,

Tobias

baris evrim demiroz

unread,
Sep 18, 2016, 6:39:36 AM9/18/16
to Gurobi Optimization
Thank you for your answer. It solves the simplex in 0 iterations when I set the VBasis/CBasis without adding any columns.

This is a systematic thing with my model. CBasis/VBasis method is almost always slower than PStart/DStart. I am already storing the dual and primal values and reusing them to set PStart/DStart. First, I thought storing extra basis information when setting CBasis/VBasis was slowing things down. But inspecting the Gurobi logs, I see this is not the case. CBasis/VBasis is definitely slower in my case.

This is really interesting, and against my intuition. I am making sure that I am seeing no "invalid warm-start basis discarded" warnings.

Zonghao Gu

unread,
Sep 18, 2016, 1:54:23 PM9/18/16
to gur...@googlegroups.com
Default for warm-start with CBasis/VBasis uses dual simplex, default with PStart/DStart will do crossover first and then uses primal simplex. Maybe dual simplex doesn't work well for the warm-start. Have you tried primal simplex for warm-start with CBasis/VBasis?

--

---
You received this message because you are subscribed to the Google Groups "Gurobi Optimization" group.
To unsubscribe from this group and stop receiving emails from it, send an email to gurobi+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply all
Reply to author
Forward
0 new messages