[Cbc] SOS crash in CbcHeuristicDive
John Forrest
john.forrest at fastercoin.com
Mon Feb 2 06:34:44 EST 2015
Miles,
Sorry about that - I only tested when all integers first - should be
fixed now.
John
On 01/02/15 19:59, Miles Lubin wrote:
> Hi,
>
> Cbc 2.9.0 is failing some of JuMP's unit tests. We've tracked the
> issue down to https://projects.coin-or.org/Cbc/changeset/2093, more
> specifically lines:
>
> for (int i = 0; i < numberIntegers; i++) {
> OsiObject * object = model_->modifiableObject(i);
> const CbcSimpleInteger * thisOne = dynamic_cast <const
> CbcSimpleInteger *> (object);
> assert (thisOne);
>
> in CbcHeuristicDive.cpp. If SOS constraints are added to the model
> before all integers are set, then this leads to an assertion failure.
> Was this an intended change?
>
> Here's a small test case using the C wrapper:
>
> int main() {
> /* Max z
> * s.t. z = 1*x1 + 2*x2 + 3*x3
> * x binary, SOS1
> */
> Cbc_Model *model = Cbc_newModel();
> CoinBigIndex start[] = {0,1,2,3,4};
> int rowindex[] = {0,0,0,0};
> double value[] = {1,2,3,-1};
> double rowlb[] = {0};
> double rowub[] = {0};
> double collb[] = {0,0,0,0};
> double colub[] = {1,1,1,10};
> double obj[] = {0,0,0,1};
> int sosrowstart[] = {0,3};
> int soscolindex[] = {0,1,2};
>
> Cbc_loadProblem(model, 4, 1, start, rowindex, value, collb, colub,
> obj, rowlb, rowub);
> Cbc_addSOS(model,1,sosrowstart,soscolindex,value,1);
>
> Cbc_setInteger(model, 0);
> Cbc_setInteger(model, 1);
> Cbc_setInteger(model, 2);
> Cbc_setObjSense(model, -1);
>
> Cbc_solve(model);
> }
>
> Best,
> Miles
> _______________________________________________
> Cbc mailing list
> Cbc at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/cbc
>
>
More information about the Cbc
mailing list