[Cbc] CBC rejecting its own solution as MIP start

John Forrest john.forrest at fastercoin.com
Thu Jan 12 11:44:40 EST 2017


Unable to reproduce bug.

There was a bug in CglProbing which I fixed.

I get attached log

John Forrest

On 12/01/17 15:43, Haroldo Gambini Santos wrote:
>
> Hi,
>
> I confirm the bug.
>
> It seems that when mipstart is informed (and a good bound is available 
> at the start) cut generators "cut too much" in this particular problem 
> and it becomes infeasible.
>
> This fixation of the "one" variable should not interfere...
>
> Cbc0045I Trying just fixing integer variables.
> Cbc0045I MIPStart provided solution with cost 181978
> Cgl0002I 301 variables fixed
> Cgl0003I 63 fixed, 0 tightened bounds, 275 strengthened rows, 0 
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 124 strengthened rows, 0 
> substitutions
> Cgl0003I 0 fixed, 0 tightened bounds, 146 strengthened rows, 0 
> substitutions
> Cgl0000I Cut generators found to be infeasible! (or unbounded)
> Pre-processing says infeasible or unbounded
> Total time (CPU seconds):       0.28   (Wallclock seconds):       0.28
>
>
> Em 12/01/2017 13:22, Rudi Araújo escreveu:
>>
>> John,
>>
>> Regarding the other thread (assertion failure), your fix seems to 
>> work, thanks.
>>
>> I have unearthed this week-old thread because we came across a 
>> different situation where CBC reports infeasibility, even though the 
>> problem is indeed feasible. See files here:
>>
>> https://drive.google.com/open?id=0B-5kPpSmX5imVllVaUdxVWY3TGc
>>
>> Breaking it down:
>>
>> ·cbc -import test.lp -mipstart ms.before.txt
>>
>> Reports infeasibility.
>>
>> ·cbc -import test.lp -mipstart ms.txt
>>
>> Solves problem to optimality, but rejects MIP start.
>>
>> The files ms.txt and ms.before.txt have exactly the same solution.
>>
>> We traced the issue to this constraint:
>>
>> __one = 1
>>
>> If we remove it, the .before MIP start is accepted and the model is 
>> solved to optimality.
>>
>> In this particular case, we can do without the __onevar, but in the 
>> general case we add it because it is sometimes convenient for us to 
>> pass a constant term in the objective function.
>>
>> Can you take a look at it?
>>
>> Thanks,
>>
>> Rúdi Araújo.
>>
>> *From:*John Forrest [mailto:john.forrest at fastercoin.com]
>> *Sent:* quinta-feira, 5 de janeiro de 2017 15:29
>> *To:* Rudi Araújo <rudi.araujo at siscog.pt>
>> *Cc:* 'Tiago Maduro Dias' <tiago at siscog.pt>; 'Luís Borges de 
>> Oliveira' <lbo at siscog.pt>
>> *Subject:* Re: CBC rejecting its own solution as MIP start
>>
>> Rudi,
>>
>> On 04/01/17 17:39, Rudi Araújo wrote:
>> >
>>
>> > John,
>>
>> >
>>
>> >
>>
>> >
>>
>> > Thank you the fast reply.
>>
>> >
>>
>> >
>>
>> >
>>
>> > The .before hint did the trick for the LP I sent you. However, we
>>
>> > came across a different situation where the mipstart is accepted but
>>
>> > CBC reports infeasibility and exits without finding an integer
>>
>> > solution, even though it exists:
>>
>> >
>>
>> >
>> That was more interesting - a bug which was unlikely to occur in 
>> normal use, but could.  As the code had a cutoff value, it added that 
>> as a constraint in preprocessing and there was a bug there.
>>
>> > By the way, what is the reason for building the initial solution only
>>
>> > after pre-processing by default? Would it make sense to do it the
>>
>> > other way around - by default before, with an option to do it only
>>
>> > after?
>>
>> >
>>
>> >
>>
>> I did not write that bit of code and don't really want to do too much 
>> to it.  Some information which could get used in heuristics can not 
>> easily be passed across when creating solution before - so on the 
>> whole it is more efficient to try and do work on preprocessed problem.
>> >
>>
>> > One last thing: trunk appears to be broken. We tried compiling it and
>>
>> > tripped over this error:
>>
>> >
>>
>> >
>> My error (you picked it up before I was told off this morning after 
>> standard Coin builds were done).  I am doing some development in 
>> trunk and thought I might as well commit some extra changes instead 
>> of taking them out temporarily. However I forgot that I would also 
>> need to commit changes from CoinUtils.
>>
>> John Forrest
>>
>>
>>
>> _______________________________________________
>> Cbc mailing list
>> Cbc at list.coin-or.org
>> https://urldefense.proofpoint.com/v2/url?u=http-3A__list.coin-2Dor.org_mailman_listinfo_cbc&d=CwICAg&c=Ngd-ta5yRYsqeUsEDgxhcqsYYY1Xs5ogLxWPA_2Wlc4&r=pLOfVNEEHf-xhIqn1-uzYcZ6Q7UefG6Bg6rXCKTMiAA&m=oSk3Nz0-nrEwX6MYB8eXDIM-Y0Jlja90xNe1YzpB5PM&s=GjKkwW0LZkNDCwXZMjGBa3SQjQxO5zSjElNzcMAI2Ik&e=  
>
> -- 
> ==================================================
> Haroldo Gambini Santos
> D.Sc, Computer Science
> Universidade Federal de Ouro Preto
> http://www.decom.ufop.br/haroldo/
>
>
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20170112/d10030d8/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ok.log
Type: text/x-log
Size: 3489 bytes
Desc: not available
URL: <http://list.coin-or.org/pipermail/cbc/attachments/20170112/d10030d8/attachment.bin>


More information about the Cbc mailing list