[Osi] [Cgl] feature request towards independent CGL API

Robin Lougee-Heimer robinlh at us.ibm.com
Thu Dec 10 15:00:52 EST 2009


Matt: 

This isn't something I have time to work on right now, but if there's 
someone out there (you?) who wants it and is willing to spend time on it 
-- your leadership is welcome. 

In the meantime, if you'd add the enhancment idea to the Cgl bug trackign 
system, it'll make sure the request isn't lost.  (Right now it's only on 
the wiki "wish list".)

Robin

----------------------------------------------------------------------------------
Robin Lougee-Heimer, PhD
Program Manager, COIN-OR
IBM TJ Watson Research Center
1101 Kitchawan Road, Yorktown Heights, NY 10598
ph: 914-945-3032   fax: 914-945-3434 
robinlh at us.ibm.com
http://www.coin-or.org





Matthew Galati <magh at lehigh.edu> 
Sent by: cgl-bounces at list.coin-or.org
08/09/2009 09:59 AM

To
cgl at list.coin-or.org, osi at list.coin-or.org
cc

Subject
[Cgl] feature request towards independent CGL API






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 
and/or Cgl?

Thanks,
Matt _______________________________________________
Cgl mailing list
Cgl at list.coin-or.org
http://list.coin-or.org/mailman/listinfo/cgl

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/osi/attachments/20091210/48796ee6/attachment.html>


More information about the Osi mailing list