[Osi] feature request towards independent CGL API
magh at lehigh.edu
Sun Aug 9 09:59:48 EDT 2009
I have a feature request... or more generally just a question if CGL folks
think this is possible.
If you recall, a long time ago, I had requested CGL to be independent of any
LP solver. I understand that this would require a lot of work and that
request will probably not happen any time soon.
In the mean time, I wondered if the following two things are possible.
Let's say I store a "problem" in an Osi object. This Osi object, call it
cglOsi, really just stores the problem and is not actually used to solve
anything. Another Osi object, call it solveOsi, is solving something on the
side and generating points for which we want to finding separating
hyperplanes valid for the problem (i.e., cuts using CGL).
Using things like CglKnap, CglClique, etc are no problem. Once I get a
solution, call it x, from solveOsi, and I want to generate a cut, I just set
the column solution in cglOsi to x and then generateCuts. The tricky part is
something like CglGomory that uses LP information (specifically, basis
information from simplex).
To make this work, can we
(1) Assuming solveOsi was solved with simplex and we have basis information,
can we set x AND set the basis information in cglOsi and the proceed with
cglOsi.generateCuts( )? Would that work?
(2) In a more extreme case... say solveOsi was not solved with simplex - but
"some other way", and we have a solution x, but no basis. Presumably there
is some kind of crossover available for those folks doing interior point
codes which goes from some solution x and crosses over to a basic solution
so that simplex can proceed. How is that done with COIN? Clp? Is there a
crossover function? Can this be surfaced in OSI? I suspect the other vendors
like Cpx have that too . So, assuming we can now generate a basis and x, we
can do (1) and generate gomory cuts in our cglOsi?
Can an API that supports the above (a) work at all? (b) be added to Osi
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Osi