[Cbc] Issue processing mipstarts

Haroldo Gambini Santos haroldo.santos at gmail.com
Tue Dec 3 19:07:27 EST 2019


Hi Tiago,

Just tested fixing variables in reduced-mipstart-issue-solution-1.sol   in 
mipstart-issue.lp  and loaded the proble in CPLEX, CPLEX says it is 
infeasible, so it seems that the problem is not in MIPstart, but in your 
initial solution.  It would be good if Cbc could inform what part of the 
fixation is making the solution infeasile I'll try to do that.

-- 
=============================================================
Haroldo Gambini Santos
Computing Department
Universidade Federal de Ouro Preto - UFOP
email: haroldo at ufop.edu.br
        Haroldo.GambiniSantos at cs.kuleuven.be
home/research page: www.decom.ufop.br/haroldo


It has long been an axiom of mine that the little things are infinitely
the most important.
-- Sir Arthur Conan Doyle, "A Case of Identity"

On Tue, 3 Dec 2019, Tiago Maduro Dias wrote:

> Hi,
> 
> Regarding mipstarts, my understanding is that CBC can handle partial solutions and performs a mini branch &
> bound to assign values to the remaining variables. That seems consistent with the behaviour I’ve observed
> over time.
> 
> I have, however, an example where CBC is unable to use a mipstart to build a valid solution unless every or
> most variables are supplied.
> 
> In this case, I’m using CBC as part of an incremental process, so it’s critical that the initial solutions
> aren’t discarded, otherwise the process will have a very tough time converging.
> 
> I see some action going on around mipstarts lately, so I was wondering if someone could take a look at this
> use case? If it’s just a matter of not enough effort being put into reading the solution, could putting
> more effort into that step be given as an option? I’d be willing to wait several seconds for the initial
> solution to be read successfully.
> 
> To replicate, consider the following, using a very recent trunk (the files in italic are available
> here: https://1drv.ms/u/s!AuB7kemPSzoPlCxNYivdB9J7Fj-7?e=pHzXHL):
>  *  cbc -maxN 1000 -import mipstart-issue.lp -solve -solution mipstart-issue-solution-1.sol
>      +  This produces a solution file to use afterwards.
>  *  cbc -maxN 1000 -import mipstart-issue.lp -mipstart mipstart-issue-solution-1.sol -solve
>      +  If we just provide the exact same solution, it is read (and CBC ultimately doesn’t improve on it
>         inside the given node limit, but that’s OK).
>  *  cbc -maxN 1000 -import mipstart-issue.lp -mipstart reduced-mipstart-issue-solution-1.sol -solve
>      +  If we edit the solution file so that it just keeps the assignment variables and then provide it, we
>         get the message "Warning: mipstart values could not be used to build a solution.” and the mipstart
>         is ignored
> Thanks In advance for any support you can provide.
> 
> Best regards,
> Tiago Maduro Dias.
> 
>


More information about the Cbc mailing list