[Coin-osi-devel] Why Osi.branchAndBound()?

kmartin kipp.martin at chicagogsb.edu
Thu Mar 15 00:52:57 EDT 2007

Hi Lou/OSI-developers:

> 	OSI (to my mind) is fundamentally oriented to continuous simplex 
> optimisation. The definitions of the methods make that clear. Why add this one 
> method  (branchAndBound) to handle MIP?  If MIP, why not NLP, or MINLP, or CLP 
> (as in constraint logic programming)?

I think Lou is raising an important point here.  As some of us have
discussed there are really three aspects to an OSI:

1) An instance representation (this should be very general, linear, MIP,
NLP, CLP, CONE, etc).  The instance representation would obviously have
no such method as branchAndBound() as this is solver specific. The
instance representation class should be independent of solution
algorithms and should only pertain to representing instances of an
optimization problem.

2) A solution (result) class or object. Again this should be very
general and solver/algorithm independent.

3) A solver option class.  The solver class should have properties and
methods relevant to algorithms. Here one could specify branch and bound,
put priorties on variables, specify simplex or interior point, etc.
Solvers could support certain options and ignore others. It would be
very unusual for a solver to understand or support all options.


Kipp Martin
Professor of Operations Research
	and Computing Technology
University of Chicago
Graduate School of Business
5807 South Woodlawn Avenue
Chicago IL 60637

More information about the Osi mailing list