[Coin-discuss] development tree / idea about the OsiSolverInterface base class

Laszlo Ladanyi ladanyi at us.ibm.com
Wed Mar 21 16:21:23 EST 2001


I'd advise that people start to use the development version of COIN.
To get the devel tree you have to use cvs, there is no daily tarball.
Simply use 'cvs checkout -r devel <module_name>'.

Advantages: 
- The OsiSolverInterface class is significantly extended. It does
  almost everything now. 
- BCP has a mostly complete documentation

Disadvantages:
- Osl and Vol interfaces are completely updated and tested. The Cpx interface
  is update, too; Tobias Pfender has already committed lots of stuff, we just
  have to test it. The Xpr interface is not yet updated.

=====

An idea that I think would be good to implement and I'd like to solicit
comments: 

Right now the OsiSolverInterface base class has no data members (of any
importance). The individual solverinterfaces have to override every member
method for data handling. I think it'd be nice to have arrays in the base
class which *could* contain the problem data if the solverinterface wants
that. What I mean is that:
- there would be pointers in the base class which are NULL by default
- if the solverinterface overrides the data handling routines (I imagine
  interfaces to every commercial solver would do this for efficiency reasons)
  then these pointers would never be used and almost no space is wasted
- other solvers, like Vol, could use the already implemented data handling
  methods (the matrix would be there, the PackedMatrix class has methods to
  add/remove column(s)/row(s), those would be there, there would be place for
  the primal/dual solutions, etc.). All the derived solver would have to
  override is the various solve routines, warmstart/hotstart related methods,
  and maybe a few others. This way solvers could have not only a uniform
  interface but a uniform way of storage, too. This means easier maintenance,
  easier testing.

What do you think?

--Laci




More information about the Coin-discuss mailing list