[Coin-discuss] Row bounds in OsiGLPK and MIP hot starts-Thanks

John J Forrest jjforre at us.ibm.com
Wed May 5 09:30:30 EDT 2004


Eduardo,

On using an initial solution, there are at least two ways I can think of 
in SBB.  One way, which I would have to do more testing on, is to pass in 
a solution and then branch towards that so that you have a hotstart tree. 
The other way uses local branching as in the paper of Matteo Fischetti and 
Andrea Lodi.  This looks very promising and I think something very like it 
is implemented in Cplex 9.  I have not announced it yet as I am still 
running tests but it is in Sbb/Samples/SbbTreeLocal and sample3.cpp.

John Forrest







"Eduardo" <efsilva at pobox.com> 
Sent by: coin-discuss-admin at www-124.southbury.usf.ibm.com
05/04/2004 09:14 PM
Please respond to
coin-discuss


To
<coin-discuss at www-124.southbury.usf.ibm.com>
cc

Subject
RE: [Coin-discuss] Row bounds in OsiGLPK and MIP hot starts-Thanks






                 Prof. Brady Hunsaker,
                 Thanks for the replay and suggestions.  Your second 
option sounds
better to me, and I think I will try that.  May be I can use #ifdef
USE_COIN_XXX to keep the solver flexibility.
                 I know how to set an initial IP solution in CPLEX using 
callable
library, but I am new in GLPK and I did not find how to do it in GLPK. If
you can give some clues, I would be very happy.
                 Thanks again,
                 Eduardo.

                 Prof. Ted Ralphs,
                 It is good to know we are going to have a new MIP solver 
in the
open-source world. And probably still able to adapt itself to
branch-and-price. 
                 Congratulations,
                 Eduardo. 

 

> -----Original Message-----
> From: coin-discuss-admin at www-124.ibm.com 
> [mailto:coin-discuss-admin at www-124.ibm.com] On Behalf Of 
> Brady Hunsaker
> Sent: Tuesday, May 04, 2004 12:03 PM
> To: coin-discuss at oss.software.ibm.com
> Subject: Re: [Coin-discuss] Row bounds in OsiGLPK and MIP hot starts
> 
> 
> On Tue, 2004-05-04 at 14:34, Eduardo wrote:
> > Dear COIN Team,
> > 
> > 
> > 
> > I am using CPLEX and GLPK(4-3) solvers  under OSI.  In my 
> algorithm, I 
> > need to solve several slight different MIP problems many times.  I 
> > still have some problems (probably in my code) but one of them is 
> > caused when I modify the bounds using OsiGlpk.  For example, the 
> > method OsiGlpkSolverInterface::setRowUpper should set a row upper 
> > bound.  However, it is actually setting the lower bound. 
> This is happening because this
> > method is just a copy of OsiGlpkSolverInterface::setRowLower. 
> > 
> 
> Well, that's an embarrassing "bug"!  I will correct OsiGlpk 
> this evening and post an email when I've committed the 
> change.  Eduardo, if you know of any other specific problems, 
> please let me know.
> 
> > 
> > Another thing I want to do is start the MIP solvers (via 
> OSI) from a 
> > heuristic integer solution I have.  Could you tell me the 
> better way 
> > to do that?
> > 
> 
> At present OSI is really oriented towards LP solvers.  I do 
> not believe there is a way to specify feasible integer 
> solutions (or even objective
> values) through OSI.  I've heard that the next generation of 
> OSI will be more useful with MIP solvers, however.  Could 
> someone with more knowledge say whether this feature is 
> expected to be present?  I'd also appreciate an estimate of 
> when the new OSI will be rolled out.  (It will help me decide 
> how much effort to invest in improving OsiGlpk in the
> meantime.)
> 
> In the meantime, Eduardo, you have at least two choices:
> 
> 1. Investigate COIN/SBB (Simple Branch-and-Bound), which may 
> have the features you are looking for and can be run with CLP 
> or DyLP (I think) as underlying LP solver.
> 
> 2. Use calls directly to the MIP solver's callable library 
> for that part of your code.  This obviously loses the 
> flexibility of OSI, but only for a small part of the code. 
> To do this, you need to access a solver-specific pointer to 
> the model (CPLEX also has an environment pointer), which is 
> present in OsiGlpk as getModelPtr and in OsiCpx as getLpPtr 
> and getEnvironmentPtr.  These are not present in the base 
> class OsiSolverInterface, however, so if you work with 
> OsiSolverInterface (as you should), then you'll have to do a 
> cast to class OsiXxxSolverInterface in order to call those 
> methods.  Once you have the pointers, you can use the usual 
> callable libraries.  If you need help sorting the details 
> out, feel free to ask.
> 
> Brady
> 
> -- 
> Brady Hunsaker
> Assistant Professor
> Industrial Engineering
> University of Pittsburgh
> http://www.engr.pitt.edu/hunsaker/
> 
> 
> _______________________________________________
> Coin-discuss mailing list
> Coin-discuss at www-124.ibm.com 
> http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coi
n-discuss

_______________________________________________
Coin-discuss mailing list
Coin-discuss at www-124.ibm.com
http://www-124.ibm.com/developerworks/oss/mailman/listinfo/coin-discuss

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.coin-or.org/pipermail/coin-discuss/attachments/20040505/4f68bbec/attachment.html>


More information about the Coin-discuss mailing list