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

Eduardo efsilva at pobox.com
Tue May 4 21:14:32 EDT 2004


	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




More information about the Coin-discuss mailing list