[Coin-lpsolver] Re: New branching ideas for CBC

Brady Hunsaker hunsaker at engr.pitt.edu
Mon Nov 28 14:04:47 EST 2005


Irv Lustig wrote:

<snip>
> 
> You misunderstood the question.
> 
> Leaving aside the free-versus-pay argument (because that is more a
> "religious" discussion than anything else), my question was whether
> there was a *feature* of the basic COIN solvers that was not in CPLEX.
> 
> I claim that any branching strategy, cut generation strategy, etc.,
> could be implemented using CPLEX.  An example is the all-different
> strategy that John Forrest implemented.  You could do that with CPLEX as
> well, as I mentioned above.
> 
> About the only thing that a COIN solver can do that CPLEX can't is that
> you can implement branch-and-price with things like SYMPHONY.
> 
> So, let's suppose you have a cut generation strategy, and you implement
> it using the CGL.  Or you have a branching strategy, and you implement
> it on top of CBC.  You could also implement that same strategy using
> CPLEX, and publish the cut using the CPLEX API's, and be able to share
> the code just like you do with COIN.
> 
> Please let's not get into a discussion of open source versus commerical
> software.  That's not what the issue is.  I'm asking whether there are
> things that you need to do as a researcher with COIN that are not
> possible with CPLEX.  That was the question that I posed.
> 
>         -Irv Lustig
>          ilustig at ilog.com       
>          Manager, Technical Services, 
>          Optimization and Visualization 
>          ILOG, Inc.
>          http://www.ilog.com/   
>  
> 

You're correct that I was responding to a different question.  I never
saw your original question--only John's paraphrasing of it, which I
misinterpreted to be a feature "challenge".  The point I intended to
make is that CBC has a different value proposition than CPLEX.  The best
strategy for CBC (and all open-source projects) is to continue to add
useful features and improvements without regard to whether it has more
or fewer features than other solvers (except insofar as the other
solvers suggest useful features to add).

Now I think I understand your question better.  As an academic, I use
both open-source code and CPLEX.

Although it's true that I can share code that uses CPLEX's API, the only
people that can take immediate advantage of it are people who also have
a CPLEX license.  These are also the only people who can easily build on
my ideas and share their new ideas.  Matt has just made this point.

In addition, there are some fundamental changes that are awkward or
impossible to implement using any API.  For example, I am currently
looking at estimating time to finish a branch-and-bound process.
Cornuejols, Karamanov, and Li recently looked at this problem using
CPLEX.  One of the authors told me that they parsed the CPLEX log file
in order to find out the structure of the tree for their estimates.
Whether or not parsing the log file was necessary, it was not obvious to
them whether there was an easier way.  By experimenting with open-source
solvers, I have much easier acess to more information.  I have more hope
of a good outcome and spend less time with coding contortions.

These are two of the main reasons I prefer to use open-source code for
my academic research.

Brady

-- 
Brady Hunsaker
Assistant Professor
Industrial Engineering
University of Pittsburgh
http://www.engr.pitt.edu/hunsaker/



More information about the Clp mailing list