[Coin-discuss] OsiCuts functionality
jeckstei at rutcor.rutgers.edu
Fri Aug 3 11:30:51 EDT 2001
To the list:
The PICO team (see http://www.cs.sandia.gov/~caphill/proj/pico.html for
information on the PICO project) has been discussing incorporating the
OSI solver interfaces and CGL cut generators into our system.
One thing that came up was the functionality of the OsiCuts containers.
The documentation was not completely clear.
I just clarified the functionality with Laci Ladanyi, Robin
Lougee-Heimer, Matt Saltzman, and Ted Ralphs (here I will only discuss
There are two insert method, one taking a const OsiRowCut& argument and
oneOsiRowCut*& argument. The former makes a copy and the latter does
not, but in either case the cut in the container is owned by the
The get methods give you pointers/references to cuts in the container,
but do not give up ownership. To get a version of the cut owned by the
caller, you must make a copy.
We agreed that this design leads to unnecessary copying. We agreed
there should be a method that allows you to remove a group of cuts from
the container and gain ownership of them. The caller would allocate an
array "cutPtrs" of OsiRowCut* objects and call the method, let's call it
void OsiCuts:removeRowCuts(OsiRowCut cutPtrs*&,int firstcut,int
The method would fill the array with poiners, delete the cuts its own
list, but not delete them.
Second, it would be nice to have a way to make an OsiCuts container that
does not necessarily "own" its contents. This could be decided on a
cut-by-cut basis, but it would probably be simpler to have a global flag
that tells the container whether it owns its conents. In the latter
case, the insert procedure would *not* take over control of the argument
memory, and either erasing a cut or deleting the container would not
delete the cuts.
There may be more elegant ways to acheive our aims --- I have not
thought about this very long. The overall goal is to construct parallel
branch-and-cut method that only copy cut reprentations when it's really
Associate Professor Jonathan Eckstein
MSIS Department, Faculty of Management, Rutgers University
Temporary sabbatical address (September 2000-August 2001):
E-Quad Room ACE-43
Princeton, NJ 08544 USA
Voice: (609) 258-6494
Fax: (609) 258-1270, (609) 258-3791
E-mail: jeckstei at rutcor.rutgers.edu
More information about the Coin-discuss