Forum Discussion

FICO's avatar
FICO
Community Manager
6 years ago

Benders Decomposition and Column Generation: exiting condition

Dear all,

this might sound very silly to you all, but I need your help.

I am referring to the walkthroughs of the Benders Decomposition described in this document:

https://www.msi-jp.com/xpress/learning/square/08-moselpar.pdf

and Column Generation here:

https://www.maths.ed.ac.uk/hall/Xpress/FICO_Docs/mosel/mosel_ug/dhtml/moselugB5.html

In the Benders Decomposition process, at page 55, they describe how the condition to exit from the loop is:

z'-Dy'<= u''(b - By')

However, later at page 58, in the implementation of the code, the exiting condition is actually:

z'-Dy' = u''(b - By')

or as written in the code:

returned:= ( sol_obj - sum(i in IntVars) D(i)*sol_y(i) =sum(j in Ctrs) sol_u(j)* (b(j) - sum(i in IntVars) B(j,i)*sol_y(i))

In other words, whenever the two sides of the equation are equal the Benders Decomposition process stops.

I'm not sure whether this is an inaccuracy of the document or if I am missing something. My understanding is that the exiting condition in the implementation should be like the one written on top (with <=).

Similarly for the Column Generation process (described halfway through the page), the reduced costs of the new column generated must be positive for the process to continue, but the process should stop when the reduced costs becomes negative or equal to zero.

On the other hand, in the implementation, the exiting condition is

   if zbest = 0 then

     writeln("no profitable column found.")

     break

Once again, I am not sure if this is an inaccuracy or I did not get the approach. Shouldn't the exiting condition be like this?

   if zbest <= 0 then

     writeln("no profitable column found.")

     break

So the question is if the conditions in the implementation can be changed (to a <=) or if that would lead to a mistake of the process.

Any hint on this?

Thank you very much for your help

Best regards,

Francesco

No RepliesBe the first to reply