[Coin-discuss] Questions about OSI

Luigi Poderico lupoderi at tiscalinet.it
Sun Apr 22 10:50:38 EDT 2001


Hi to all.

We were planning to develop a C++ common interface for (mixed integer)
linear and quadratic optimization solvers. Looking on the net, we found the
web-pages of COIN. We would like to extend the OSI interface in order to
accomplish our goal.

Before to start, we wolud like to understand better the design of OSI and so
we have some questions:

1) Before finding OSI, we thought to have two main abstract classes in our
interface: a class Problem for a generic linear/quadratic problem, with a
set of operations to create, modify and read the data of the problem and
solution, and a class Solver for a generic linear/quadratic solver, with a
set of operation to solve and get some information about the problem (e.g.
empty or unbound problem, etc.). We think that this approach may be
beneficial, e.g. allowing to pass the same problem to different solvers, or
to use the same solver for different problems. So the first questions that
we have is about your choice to have an unique class for the problem and the
solver: what are the reasons that suggested (or imposed) you to have an
unique class?

2) Is there a way to know if the solver had found a solution? And if the
problem haven't solution is there a way to get more information about that?

3) Is there a way to set the parameters of the differents solver
implementation via the abstract class?

4) Why don't you use the namespace construct to avoid the OSI prefix?

5) Don't you think that the c++-style std::vector<double> should be
preferred to the c-style vector double*?

In order to have the OSI interface to perform all the tasks we need, we are
planning to extend it in the following ways:

1) extend the objective function to the quadratic case;

2) extend the set of problem modification methods to cover all the possible
medifications (addition and deletion of columns/rows, change of
costs/RHS/bounds/constraints coefficients/variable types).

3) improve the output routines and the error handling system to report
unfeasible/unbounded problems and the like

4) add namespaces.

We would really appreciate observations, comments and suggestions about our
proposed extensions. We are especially concerned about maximizing the
possibility of having our modified version to reach the distribution point,
so that all other users can benefit from them.

Best regards,

Antonio Frangioni, assistant professor Dip. Informatica Università di Pisa,
frangio at di.unipi.it
Luigi Poderico, freelance, lupoderi at tiscalinet.it




More information about the Coin-discuss mailing list