[Coin-bcpdiscuss] RE: Question about BCP

Zeki Caner TASKIN taskin at ufl.edu
Tue Jul 18 00:10:51 EDT 2006


Hi Eduardo,

Sorry for the late reply. In my algorithm, I need to change objective
function coefficients before solving a node, not after solving and before
branching. The reason is that, I modify upper/lower bounds on variables
during branching and I need to modify objective function coefficients based
on those modified bounds. I solved the problem by overriding
initialize_new_search_tree_node() and modifying objective function
coefficients of variables by:



OsiSolverInterface* lp = getLpProblemPointer()->lp_solver;
for (unsigned int i = 0; i < vars.size(); ++i)
{
  if(vars[i]->lb() > 1)
  {
   vars[i]->set_obj(0);
   lp->setObjCoeff(i, 0);
  }
}



Thanks for your interest,

Zeki


-----Original Message-----
From: Eduardo F. Silva [mailto:efsilva at pobox.com] 
Sent: Wednesday, July 05, 2006 8:57 AM
To: coin-bcpdiscuss at list.coin-or.org
Cc: Zeki Caner TASKIN
Subject: Re: Question about BCP

Hi Zeki,

Let me see if I can help.
If you are doing branch-and-price, at each node of the B&B tree you need
to perform column generation for LP relaxation of the Restricted Master
Problem (RMP).  If you need to change some the objective function
coefficients for some reason, say duals stabilization, and you have
already ended the column generation, it is necessary that the RMP be
resolved before branch and after changing those coefficients, probably
used in some auxiliary variables.
If I remember correctly, one way to do that is to modify the end of
main_loop routine in BCP, before branching check. Therefore, you may
change the coefficients and return the column generation loop.  It is
important to say that the B&B tree needs to remain consistent, so all
nodes must have comparable RMP at the end of the pricing process, before
branching.

I hope this can help,
Eduardo


> Hello,
>
> I am a PhD student at University of Florida. I am trying to implement a
> Branch&Price algorithm with BCP. In my algorithm I need to modify
> objective
> function coefficients of some variables before solving LP relaxations at
> some nodes. More specificly what I need to do is to set the objective
> function coefficient of a variable during branching so that the
> coefficient
> becomes 0 if I fix the variable while branching. I searched the internet
> and
> found a message you sent to Coin-discuss list back in 2004, in which you
> ask
> a question about the same thing:
>
> [Coin-discuss] stabilizing duals in BCP
> http://list.coin-or.org/pipermail/coin-discuss/2004-February/000863.html
>
> Unfortunately I could not find any responses to your question so I still
> don't know how I can do this. Do you remember how you solved the problem
> at
> that time?
>
> Thank you,
>
> Zeki Caner TASKIN
>
>
>
>






More information about the Coin-bcpdiscuss mailing list