title: In branch-and-price, how to handle variables that have a cost with an offset?
body: <p>I am implementing a <strong>branch-and-price</strong> (or column-generation) algorithm. The variables (or columns) I generate during optimization have <strong>a cost with an offset</strong>. For example, if I want to introduce a new variable <code>xi</code> it has both a cost coefficient <code>ci</code> that scales with <code>xi</code> and a constant cost <code>ci'</code>:</p>
  
  <blockquote>
    <p>total cost = Sum (ci * xi + ci') for all i</p>
  </blockquote>
  
  <p>My variables <code>xi</code> are continuous.</p>
  
  <p>How should I handle this?</p>
  
  <p>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.</p>
  
  <p>My first idea would be to generate variables in pairs: the original <code>xi</code> and an associated binary variable <code>bi</code>. Then add the additional constraint that <code>bi = 0</code> if <code>xi = 0</code> and <code>bi = 1</code> if <code>xi &gt; 0</code>. Is this a reasonable approach? What are its downsides apart from introducing binary variables?</p>