<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hello,<br>
<br>
I've been struggling with Coin-BCP for several hours.<br>
There is almost no informations on the topic of computing a lower
bound<br>
with Coin-BCP in a branch-and-price.<br>
The given examples with Coin-BCP look weird, because,<br>
the column generation processes seem to stop too early.<br>
They occur in the function <i>compute_lower_bound</i>,<br>
but, they do not add any column to the restricted master problem,<br>
and they do not re-optimize the restricted master problem to get
updated reduced cost.<br>
There are comments like "TO DO" .... Ok ? So ?<br>
<br>
I've implemented the <i>generate_vars_in_lp</i> method.<br>
Everything is working fine. Expected that the branch-and-price gives
me false value.<br>
I've checked the value given by the column generation at root nodes
and it is correct.<br>
Sometimes, the branch-and-price halts too early, indicating an
optimal solution value,<br>
which is not optimal.<br>
<br>
I thought it is because I have to implement the <i>compute_lower_bound</i>
method,<br>
as said in the documentation.<br>
So, that's what I tryed to do.<br>
But, how can I add the generated variables to the restricted master
problem,<br>
and reoptimize it, to get updated reduced costs, in a proper way ?<br>
<br>
I've tryed something like that (the column generation loop is
missing, as I tryed<br>
to add just one column first, and to reoptimize the restricted
master problem) :<br>
<br>
<small><small><font face="Lucida Console">double
LinearProgram::compute_lower_bound(const double oldLowerBound,<br>
const BCP_lp_result& LPResult, const
BCP_vec<BCP_var*>& variables,<br>
const BCP_vec<BCP_cut*>& cuts)<br>
{<br>
<br>
BCP_vec<BCP_var*> generatedVariables ;<br>
BCP_vec<BCP_col*> generatedColumns ;<br>
BCP_vec<BCP_col*> columns ;<br>
double lowerBound = oldLowerBound ;<br>
generate_vars_in_lp(LPResult, variables, cuts, false,<br>
generatedVariables, generatedColumns) ;<br>
vars_to_cols(cuts, generatedVariables, columns,<br>
LPResult, BCP_Object_FromGenerator, false) ;<br>
this->getLpProblemPointer()</font></small></small>-><small>lp_solver</small><br>
<br>
Then, I tryed to add columns through the <i>OsiSolverInterface </i>methods,<br>
but it looks messy, and it didn't work.<br>
<br>
Otherwise, the variables are correctly added to the the restricted
master problem,<br>
using the <i>generate_vars_in_lp</i> and <i>vars_to_cols</i>
methods.<br>
The pricing is going fine.<br>
But it seems to fail for computing lower bounds,<br>
and it looks like nodes are pruned too early.<br>
<br>
HELP please.<br>
<br>
Thanks in advance,<br>
<br>
Xavier Schepler<br>
<br>
</body>
</html>