[OS] API change

Kipp Martin Kipp.Martin at ChicagoGSB.edu
Fri Feb 29 10:53:07 EST 2008


Hi:


There has been a slight change to the Optimization Services 
DefaultSolver class in the trunk version.  This will get rolled into the 
next Stable and next Release.  Previously, a call to the solve() method 
would convert an OSInstance object into the appropriate data structure 
that is native to the solver being called AND it would also call a solve 
method.  For example, in

CoinSolver *solver  = NULL;
solver = new CoinSolver();
solver->sSolverName ="clp";
solver->osinstance = osinstance;
solver->solve();

the call to solve() results in a conversion of the OSInstance object 
osinstance into a COIN-OR data structure that is used by the COIN-OR 
solver Clp to solve a linear program.   This is now a two-step process and

solver->solve();

should be replaced by

solver->buildSolverInstance();
solver->solve();

This adds far greater flexibility for the user. See for example, the new 
test code in OS/examples/addCuts where the call to

solver->buildSolverInstance();

creates an OsiClpSolverInterface() and cuts are added using OsiCuts. 
The user can now interact directly with OsiSolverInterface and 
associated methods and options. This was not possible before.

The change applies to all COIN-OR solvers (including Ipopt which is not 
accessed through the COIN-OR Osi) supported by OS, i.e. if it is a 
COIN-OR solver, in your old code you now need

solver->buildSolverInstance();

prior to calling

solver->solve();

This change also applies to the LINDO solver interface. A call to

solver->buildSolverInstance();

builds the instance using the LINOD API.  The LINDO solver is used in 
the same manner as the COIN-OR.

Please let me know if this causes anyone problems.

Thanks


-- 
Kipp Martin
Professor of Operations Research
and Computing Technology
Graduate School of Business
University of Chicago
5807 South Woodlawn Avenue
Chicago, IL 60637
773-702-7456
kipp.martin at chicagogsb.edu
http://gsbkip.chicagogsb.edu
http://www.coin-or.org


More information about the OS mailing list