<div dir="ltr"><div>Hi,</div><div><br></div><div>I've played alot with the CBC api via Java binding since the last time I post on the mailing list. I've managed to accomplish most of what I need: model the problem and solve it.</div>
<div><br></div><div>To model the problem, I'm creating a single instance of OsiClpSolverInterface then I make multiple calls to addRow() and addCol().</div><div><br></div><div>To solve the problem, I'm making a call to CbcMain0() and CbcMain1(). While this methods are doing almost all the work, I'm concerns about a change in implementation breaking my stuff. Also, this magic methods does much more than I want like. i.e.: printing stuff to console. Thus, I want to replace the call to CbcMain1() to the real thing being a call to OsiClpSolverInterface.initialSolve() and then to CbcModel.branchAndBound(). I've made the change and I get a complete different result in term of performance.</div>
<div><br></div><div>This is the list of arguments I pass to CbcMain1()</div><div>"-heuristicsOnOff", "off", "-feasibilityPump", "on", "-cuts", "off", "-logLevel", "0", "-slogLevel", "0", "-passF", "5", "-solve"<br>
</div><div><br></div><div>I had a look at the method source code. OMG this is a monster of 7283 lines !! </div><div><br></div><div>1. Can someone describe me what CbcMain1() is doing more then a simple call to OsiClpSolverInterface.initialSolve() and CbcModel.branchAndBound() ? </div>
<div><br></div><div>2. Is their any other low level method to solve the problem ?</div><div><br></div><div>The ultimate solution is to read this monster method and keep what I need. Still, I have trouble to understand every line. Some are very cryptic and refer to magic number.</div>
<div><br></div><div><div><div><div dir="ltr"><div>--</div>Patrik Dufresne<div><br></div></div></div>
</div>
</div></div>