Algorithm Search⌘K

Proofs: Land-Doig algorithm

These are the human proofs of Land-Doig algorithm, at full length.

The Land-Doig algorithm returns an optimal integer solution full

This proof shows: correctness, termination.

We use the pseudocode of the page. Let P={x≥0:Ax≤b}P = \{x \ge 0 : A x \le b\}, which we assume bounded. For a set FF of fixings xj=kx_j = k (j∈Ij \in I, k∈Zk \in \mathbb{Z}, each jj at most once), let P(F)=P∩{x:xj=k for (xj=k)∈F}P(F) = P \cap \{x : x_j = k \text{ for } (x_j = k) \in F\} and Z(F)={x∈P(F):xj∈Z for j∈I}Z(F) = \{x \in P(F) : x_j \in \mathbb{Z} \text{ for } j \in I\}. Let v(F)=max⁡x∈P(F)c⊤xv(F) = \max_{x \in P(F)} c^\top x, or −∞-\infty if P(F)=∅P(F) = \emptyset. Clearly c⊤x≤v(F)c^\top x \le v(F) for x∈Z(F)x \in Z(F). Let z∗=max⁡x∈Z(∅)c⊤xz^* = \max_{x \in Z(\emptyset)} c^\top x, or −∞-\infty if Z(∅)=∅Z(\emptyset) = \emptyset.

Lemma 1 (values move down away from the LP optimum). Let P(F)≠∅P(F) \ne \emptyset with optimal solution xˉ\bar{x}, let j∈Ij \in I be free in FF, and let φ(t)=v(F∪{xj=t})\varphi(t) = v(F \cup \{x_j = t\}) for real tt. Then D={t:φ(t)>−∞}D = \{t : \varphi(t) > -\infty\} is an interval that contains xˉj\bar{x}_j, φ\varphi is concave on DD, and φ(xˉj)=v(F)\varphi(\bar{x}_j) = v(F). So for t≤t′≤xˉjt \le t' \le \bar{x}_j or xˉj≤t′≤t\bar{x}_j \le t' \le t, we have φ(t)≤φ(t′)\varphi(t) \le \varphi(t'); in particular, if t∉Dt \notin D, then no tt further from xˉj\bar{x}_j on the same side is in DD.

Proof. DD is the projection of the convex set P(F)P(F) on the coordinate jj, so it is an interval, and xˉj∈D\bar{x}_j \in D. If y,y′y, y' are optimal for t,t′∈Dt, t' \in D and 0≤λ≤10 \le \lambda \le 1, then λy+(1−λ)y′∈P(F)\lambda y + (1 - \lambda) y' \in P(F) has xj=λt+(1−λ)t′x_j = \lambda t + (1 - \lambda) t', so φ(λt+(1−λ)t′)≥λφ(t)+(1−λ)φ(t′)\varphi(\lambda t + (1-\lambda) t') \ge \lambda \varphi(t) + (1 - \lambda) \varphi(t'). Also φ(t)≤v(F)=c⊤xˉ=φ(xˉj)\varphi(t) \le v(F) = c^\top \bar{x} = \varphi(\bar{x}_j). A concave function with its maximum at xˉj\bar{x}_j does not increase as tt moves away from xˉj\bar{x}_j: if xˉj≤t′≤t\bar{x}_j \le t' \le t, write t′=λt+(1−λ)xˉjt' = \lambda t + (1 - \lambda) \bar{x}_j and get φ(t′)≥λφ(t)+(1−λ)φ(xˉj)≥φ(t)\varphi(t') \ge \lambda \varphi(t) + (1 - \lambda) \varphi(\bar{x}_j) \ge \varphi(t). The other side is the same. □\square

Regions. For a live node with fixings FF and note sibsib, its region is Z(F)Z(F) if sib=NILsib = \text{NIL}, and Z(F)∪⋃t≥0Z(F′∪{xj=k+ts})Z(F) \cup \bigcup_{t \ge 0} Z(F' \cup \{x_j = k + t s\}) if sib=(F′,j,k,s)sib = (F', j, k, s). Every live node with sib≠NILsib \ne \text{NIL} was made as F=F′∪{xj=k−s}F = F' \cup \{x_j = k - s\}, where k−sk - s is on the side ss of xˉj(F′)\bar{x}_j(F') (with xˉj(F′)\bar{x}_j(F') fractional), so by Lemma 1 each point of the region has value at most v(F)v(F).

Claim 2 (incumbent). At each point, best=NILbest = \text{NIL} and z=−∞z = -\infty, or best∈Z(∅)best \in Z(\emptyset) and z=c⊤bestz = c^\top best; so z≤z∗z \le z^*, and zz never decreases. Proof. Only line L9 changes them, to the LP solution of a node whose integer variables are all integers, which lies in Z(F)⊆Z(∅)Z(F) \subseteq Z(\emptyset); and it does so only if v>zv > z. □\square

Claim 3 (a skipped MAKE loses nothing). Suppose MAKE(G,sib)(G, sib) is called with G=F′∪{xj=k}G = F' \cup \{x_j = k\} and sib=(F′,j,k+s,s)sib = (F', j, k + s, s), where kk is on the side ss of xˉj(F′)\bar{x}_j(F'), and it does not insert GG. Then every point of Z(G)∪⋃t≥1Z(F′∪{xj=k+ts})Z(G) \cup \bigcup_{t \ge 1} Z(F' \cup \{x_j = k + t s\}) has value at most zz, for the current and every later zz. Proof. If P(G)=∅P(G) = \emptyset, then k∉Dk \notin D, and by Lemma 1 no further value is in DD, so all these sets are empty. Otherwise v(G)≤zv(G) \le z, and by Lemma 1 every further value has φ≤v(G)≤z\varphi \le v(G) \le z. As zz never decreases, this stays true. □\square

Claim 4 (invariant). At the start of each iteration of line L3, every x∈Z(∅)x \in Z(\emptyset) with c⊤x>zc^\top x > z lies in the region of some live node.

Proof. At the start, if MAKE(∅,NIL)(\emptyset, \text{NIL}) inserted the root, its region is Z(∅)Z(\emptyset); if not, P=∅P = \emptyset and there is no xx. Suppose the claim holds at the start of an iteration that takes the node N=(F,xˉ,v,sib)N = (F, \bar{x}, v, sib) and does not break. Let x∈Z(∅)x \in Z(\emptyset) with c⊤x>zc^\top x > z at the end of the iteration; then c⊤x>zc^\top x > z held at the start too, so xx lies in the region of a node that was live. If that node is not NN, it is still live. Suppose it is NN.

  • If xx is in the chain part of the region of NN, then x∈Z(F′∪{xj=k+ts})x \in Z(F' \cup \{x_j = k + t s\}) for some t≥0t \ge 0. Line L7 calls MAKE on t=0t = 0 with the note for t≥1t \ge 1. If it inserts the node, xx is in its region; if not, Claim 3 gives c⊤x≤zc^\top x \le z, which is false.
  • If x∈Z(F)x \in Z(F) and xˉ\bar{x} is integral on II, then line L9 makes z≥v≥c⊤xz \ge v \ge c^\top x, which is false.
  • If x∈Z(F)x \in Z(F) and xˉj\bar{x}_j is fractional for the jj of line L10, let f=⌊xˉj⌋f = \lfloor \bar{x}_j \rfloor. Since xjx_j is an integer, either xj=f−tx_j = f - t for some t≥0t \ge 0, so xx is in Z(F∪{xj=f})Z(F \cup \{x_j = f\}) or in the chain of the first MAKE of line L11, or xj=f+1+tx_j = f + 1 + t, and xx is in Z(F∪{xj=f+1})Z(F \cup \{x_j = f + 1\}) or the chain of the second. If the node is inserted, xx is in its region; if not, Claim 3 gives a contradiction.

So the claim holds at the start of the next iteration. □\square

Claim 5 (termination). Each set of fixings is passed to MAKE at most once, and there are finitely many. Proof. PP is bounded, so each xjx_j ranges in a bounded interval on PP, and a fixing xj=kx_j = k outside it gives an empty P(F)P(F); such a node is never inserted, and its chain is not continued. A node G=F′∪{xj=k}G = F' \cup \{x_j = k\} is made only by line L11 while F′F' is split, or by line L7 while the node F′∪{xj=k−s}F' \cup \{x_j = k - s\} is taken. By induction on ∣G∣|G|, F′F' is inserted at most once, hence taken and split at most once, on a single jj; the two chains f,f−1,…f, f - 1, \ldots and f+1,f+2,…f + 1, f + 2, \ldots each make every value at most once, and each chain stops at the first value that is not inserted. Sets of fixings have at most ∣I∣|I| elements with values in bounded ranges, so there are finitely many, and the loop runs finitely often. □\square

Theorem. LAND-DOIG returns (z∗,best)(z^*, best) with bestbest an optimal integer solution, or (−∞,NIL)(-\infty, \text{NIL}) when there is none.

Proof. By Claim 5 the loop ends. If it ends because HH is empty, Claim 4 says no x∈Z(∅)x \in Z(\emptyset) has c⊤x>zc^\top x > z. If it ends at line L5 with node NN, every live node MM has v(M)≤v(N)≤zv(M) \le v(N) \le z, so every point of every region has value at most zz, and by Claim 4 (at the start of that iteration) no xx has c⊤x>zc^\top x > z. So z≥z∗z \ge z^*, and by Claim 2 z=z∗z = z^*, with bestbest optimal when z∗>−∞z^* > -\infty. ■\blacksquare

Back to Land-Doig algorithm