[Cbc] Using hotstarting functionality with modifications

Haroldo Santos haroldo.santos at gmail.com
Tue Jul 27 19:18:46 EDT 2010


Thanks

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



-- 
=============================================================
Haroldo Gambini Santos
Computing Department - Universidade Federal de Ouro Preto - UFOP
email: haroldo [at ] iceb.ufop.br
home/research page: http://www.iceb.ufop.br/decom/prof/haroldo/

"Computer science is no more about computers than astronomy
is about telescopes." Edsger Dijkstra




More information about the Cbc mailing list