Welcome to the OR-Exchange, your site for questions and answers in operations research.

vote up 1 vote down
star

Hey,

I'm trying to extract Cgl Gomory cuts out of the Cgl (Cut Generation Library) of Coin-Or The following is the code I'm using to extract the cuts -

OsiCuts cutlist;
CglGomory * gomory = new CglGomory();
gomory->setLimit(100);
gomory->generateCuts(*sym, cutlist) ;

where sym is an instance of OsiSymSolverInterface (the OsiSolverInterface for Symphony). Unfortunately the code is segfaulting at generateCuts somewhere inside the method as far as I've been able to determine using gdb.

Extraction of CglProbing cuts is likewise segfaulting again inside the generateCuts method of the CglProbing class.

All other cuts seem to be working fine.

If someone could shed some light on this or even better, post/link to an example file using these cuts or a tutorial of some sort, that would great. If there's an example/tutorial for extracting cuts out of some other solver like SCIP instead of Coin-OR, that would work too.

Thanks

flag

1 Answer

vote up 2 vote down
check

After asking around on the CGL mailing list, I found out that the reason the above was not working. I'm posting it here for the benefit of those who might encounter a similar problem.
The reason this was failing was because Symphony is an MILP solver and since the Gomory cuts generated by CglGomory are generated from a simplex tableau, the OsiSolverInterface needs to be to an LP solver like Clp (the interface class for which is OsiClpSolverInterface).

In particular, for the code above, making sym an instance of OsiClpSolverInterface would work.

link|flag
Thanks for posting this! It is much more useful having the answer than just the hanging question. – Michael Trick Jan 7 at 2:38

Your Answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.