Thank you for your responses. <br>Could anyone provide an example of how to correctly use solution information when adding/removing columns and then resolving? Does my general approach make sense or can hotstarting not be used for this purpose?<br>
Thanks again,<br>Ed<br><br><div class="gmail_quote">On 28 July 2010 11:18, Haroldo Santos <span dir="ltr"><<a href="mailto:haroldo.santos@gmail.com">haroldo.santos@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Thanks<br>
<div><div></div><div class="h5"><br>
On Tue, Jul 27, 2010 at 7:06 PM, Gabrielle A. Grun <<a href="mailto:grun@cs.sfu.ca">grun@cs.sfu.ca</a>> wrote:<br>
> Hi Haroldo and Ed,<br>
><br>
> In order the disable storing branching, I think that<br>
> model.setNumberBeforeTrust(0); has to be in place too i.e.<br>
> numberBeforeTrust_ has to be 0 as well.<br>
><br>
> Take care.<br>
><br>
> Gabrielle<br>
><br>
><br>
> ----- Original Message -----<br>
> From: Haroldo Santos<br>
> To: Ed Bulog<br>
> Cc: <a href="mailto:cbc@list.coin-or.org">cbc@list.coin-or.org</a><br>
> Sent: Monday, July 26, 2010 3:20 PM<br>
> Subject: Re: [Cbc] Using hotstarting functionality with modifications<br>
> Hi Ed,<br>
><br>
> I think that at the start of the MIP search there are some very<br>
> expensive routines which do not use any information of previous<br>
> solutions.<br>
><br>
> In particular, doing strong branching is very expensive.<br>
><br>
> If you want to speed up the restart, perhaps one useful option would<br>
> be to disable strong branching.<br>
><br>
> setNumberStrong( 0 )<br>
><br>
><br>
> On Mon, Jul 26, 2010 at 7:04 PM, Ed Bulog <<a href="mailto:ebul014@aucklanduni.ac.nz">ebul014@aucklanduni.ac.nz</a>> wrote:<br>
>> Dear All,<br>
>><br>
>> I have a large IP which I will be modifying constantly (by adding/removing<br>
>> coulmns) and resolving after each modification. I am trying to see if<br>
>> there<br>
>> is some way I could re-use the previous solution to make each solve<br>
>> faster.<br>
>> The obvious problem is that by adding and removing columns each time I<br>
>> have<br>
>> no way of guaranteeing that the previous solution will still be feasible,<br>
>> let alone optimal.<br>
>><br>
>> I have experimented with the cbc example files (mostly hotstart.cpp,<br>
>> modify.cpp and repeat.cpp). It would be ideal if I could solve the<br>
>> problem,<br>
>> modify it and then re-use the previous solution in a hotstart. My basic<br>
>> approach is:<br>
>> - call model.initialSolve()<br>
>> - call model.branchandbound()<br>
>> - save the bestSolution array<br>
>> - remove some columns from the reference solver<br>
>> - add some columns to the reference solver<br>
>> - modify the bestSolution array accordingly (i.e. remove entries<br>
>> corresponding to deleted columns and add zeros for new columns)<br>
>> - call model.resetToReferenceSolver()<br>
>> - call model.setHotstartSolution(<br>
>> bestSolution)<br>
>> - resolve using model.branchandbound()<br>
>><br>
>> However, this approach does not seem to do anything particularly useful.<br>
>> branchandbound() does not appear to do anything differently from what it<br>
>> does when I do not use the hotstart solution.<br>
>><br>
>> Does 'hotstarting' only work if the model remains unchanged (as in<br>
>> hotstart.cpp)? Does anyone have any other suggestions? Your help is<br>
>> greatly<br>
>> appreciated.<br>
>><br>
>> Thank you for your time,<br>
>><br>
>> Ed<br>
>><br>
>> _______________________________________________<br>
>> Cbc mailing list<br>
>> <a href="mailto:Cbc@list.coin-or.org">Cbc@list.coin-or.org</a><br>
>> <a href="http://list.coin-or.org/mailman/listinfo/cbc" target="_blank">http://list.coin-or.org/mailman/listinfo/cbc</a><br>
>><br>
>><br>
><br>
><br>
><br>
> --<br>
> =============================================================<br>
> Haroldo Gambini Santos<br>
> Computing Department - Universidade Federal de Ouro Preto - UFOP<br>
> email: haroldo [at ] <a href="http://iceb.ufop.br" target="_blank">iceb.ufop.br</a><br>
> home/research page: <a href="http://www.iceb.ufop.br/decom/prof/haroldo/" target="_blank">http://www.iceb.ufop.br/decom/prof/haroldo/</a><br>
><br>
> "Computer science is no more about computers than astronomy<br>
> is about telescopes." Edsger Dijkstra<br>
><br>
><br>
> _______________________________________________<br>
> Cbc mailing list<br>
> <a href="mailto:Cbc@list.coin-or.org">Cbc@list.coin-or.org</a><br>
> <a href="http://list.coin-or.org/mailman/listinfo/cbc" target="_blank">http://list.coin-or.org/mailman/listinfo/cbc</a><br>
><br>
><br>
> Gabrielle A. Grün, Ph.D. Student<br>
> School of Computing Science<br>
> Simon Fraser University<br>
> 8888 University Drive<br>
> Burnaby, BC<br>
> V5A 1S6<br>
> <<a href="http://www.cs.sfu.ca/%7Egrun" target="_blank">http://www.cs.sfu.ca/~grun</a>><br>
><br>
><br>
<br>
<br>
<br>
--<br>
=============================================================<br>
Haroldo Gambini Santos<br>
Computing Department - Universidade Federal de Ouro Preto - UFOP<br>
email: haroldo [at ] <a href="http://iceb.ufop.br" target="_blank">iceb.ufop.br</a><br>
home/research page: <a href="http://www.iceb.ufop.br/decom/prof/haroldo/" target="_blank">http://www.iceb.ufop.br/decom/prof/haroldo/</a><br>
<br>
"Computer science is no more about computers than astronomy<br>
is about telescopes." Edsger Dijkstra<br>
</div></div></blockquote></div><br>