0

I am implementing a branch-and-price (or column-generation) algorithm. The variables (or columns) I generate during optimization have a cost with an offset. For example, if I want to introduce a new variable xi it has both a cost coefficient ci that scales with xi and a constant cost ci':

total cost = Sum (ci * xi + ci') for all i

My variables xi are continuous.

How should I handle this?

Is it necessary to reformulate the problem so that a variable's associated cost has no offset? For example, in order to guarantee that column generation leads to the optimal solution.

My first idea would be to generate variables in pairs: the original xi and an associated binary variable bi. Then add the additional constraint that bi = 0 if xi = 0 and bi = 1 if xi > 0. Is this a reasonable approach? What are its downsides apart from introducing binary variables?

dcatteeu
  • 481
  • 3
  • 10
  • Take a look at [BCP](https://projects.coin-or.org/Bcp) project. – serge_k Mar 13 '16 at 16:53
  • @serge_k: thanks, that's what I use – dcatteeu Mar 13 '16 at 20:43
  • Did you try to ask at [OR-exchange](https://www.or-exchange.org/)? – serge_k Mar 14 '16 at 06:45
  • @serge_k That seems like a better place to ask this question. Thank you! – dcatteeu Mar 14 '16 at 19:58
  • Why do you need to introduce a fixed cost associated with the column? The column has a cost which is the combined fixed and variable costs of the subproblem that it corresponds to, as one particular extreme point. – Ioannis Mar 17 '16 at 17:22
  • Every decision variable `xi` corresponds to some activity and the value expresses the time you perform it. Activities have different fixed costs `ci'` and different variable costs `ci`. The variable cost corresponds to the time that you perform an activity, the fixed cost corresponds to the activity's startup cost. I don't see how I can leave the latter out of the cost function. – dcatteeu Mar 17 '16 at 20:16

0 Answers0