[Coin-discuss] Quadratic costs in OSI?
Matthew Saltzman
mjs at ces.clemson.edu
Sat Jun 11 16:29:13 EDT 2005
On Fri, 10 Jun 2005, Antonio Frangioni wrote:
> Hello.
>
> We are embarking into a project where we need solving either (convex,
> separable) QPs or LPs. I would love doing it through a OSISolver, and
> I'd expect this to be possible since all major actual solvers under the
> interface in fact solve QPs as well. Yet, the OSISolver interface does
> not allow for solving QPs.
>
> I can hack my way through dynamic_casts<>() and solver-specific
> fragments, and this is probably what I'll end up doing rather than
> writing my code for one specific solver, but of course I'll be much
> happier with a completely standard solution. Any chance that the
> interface could be revised in the near future for treating QPs? Any way
> in which I could help this happening?
The lack of QP support in the OSI not a technical issue, it's only
because nobody has done it yet. (The original OSI developers were more
concerned about linear problems.)
(1) In the very short term, I'll point out that CLP has a quadratic
interface already built (see Clp/ClpQuadraticObjective.cpp and
Clp/include/ClpQuadraticObjective.hpp). This interface could be used
directly to get CLP to solve your QPs. The CLP direct API is fairly
OSI-like, so moving back to the OSI itself once QP is implemented
shouldn't be very difficult.
(2) The CLP QP interface probably provides most of the calls that would
need to be elevated into OSI to support calls to QP solvers. It wouldn't
be that hard to write an OSI base layer to make the appropriate calls.
(3) The real work is writing calls in the OsiXxxSolverInterface layer for
all the solvers. The best strategy here is probably just to take the
solver you want to use and write the suporting calls for it. Solver
interface subproject managers or volunteers who want QP support for some
other solver would have to fill in the holes once the base class is done.
If you want to take a crack at it, we'd love that. I'm happy to provide
support and I'm pretty sure the other OsiXxx maintainers would as well.
In my opinion, your time would be better spent implementing a true QP OSI
than trying to hack a solver-specific add-on. If you want us to do it, it
may take a bit more time.
>
> Antonio Frangioni - Associate Professor - Università di Pisa
> Dipartimento di Informatica - Largo B. Pontecorvo, 3 - 56127 Pisa, Italy
> Ph: +39 050 2212789, Fax: +39 050 2212726, Web: www.di.unipi.it/~frangio
>
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at list.coin-or.org
> http://list.coin-or.org/mailman/listinfo/coin-discuss
>
--
Matthew Saltzman
Clemson University Math Sciences
mjs AT clemson DOT edu
http://www.math.clemson.edu/~mjs
More information about the Coin-discuss
mailing list