[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