Flow Cover Inequalities for Fixed-Charge Networks

Derive simple flow cover inequalities for the single-node fixed-charge flow model. Identify flow covers, compute the excess λ\lambda, write the inequality jCxj+jC(ujλ)+(1yj)b\sum_{j\in C} x_j + \sum_{j\in C}(u_j-\lambda)^+(1-y_j) \le b, and use it as a cutting plane to separate fractional LP points.

Step 1 of 157%

Tutorial

The Single-Node Fixed-Charge Flow Model and Flow Covers

The single-node fixed-charge flow model is the mixed-integer set

jNxjb,0xjujyj,yj{0,1},jN,\sum_{j \in N} x_j \le b, \qquad 0 \le x_j \le u_j y_j, \qquad y_j \in \{0,1\}, \qquad j \in N,

where xj0x_j \ge 0 is the continuous flow on arc jj (with capacity uj>0u_j > 0), b>0b > 0 is the demand at the node, and the binary yjy_j indicates whether arc jj is open (incurring a fixed charge). This is the flow analogue of a knapsack: each arc jj carries a yes/no decision yjy_j paired with a continuous payload xjx_j capped at uju_j.

A subset CNC \subseteq N is a flow cover if its total capacity exceeds the demand:

jCuj>b.\sum_{j \in C} u_j > b.

The strictly positive quantity

λ=jCujb\lambda = \sum_{j \in C} u_j - b

is called the excess of the cover. Intuitively, λ\lambda measures how much spare capacity the cover carries: if every arc in CC were fully open, the cover could push λ\lambda units more than the node can absorb.

Illustration: with N={1,2,3,4}N=\{1,2,3,4\}, u=(7,5,4,2)u=(7,5,4,2), and b=10b=10:

  • C={1,2}C=\{1,2\}: uj=7+5=12>10\sum u_j = 7+5 = 12 > 10, so CC is a flow cover with λ=2\lambda = 2.
  • C={2,3}C=\{2,3\}: uj=5+4=910\sum u_j = 5+4 = 9 \not> 10, so CC is not a flow cover.
navigate · Enter open · Esc close · ⌘K/Ctrl K toggle