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}, which we assume bounded. For a set F of fixings xj=k (j∈I, k∈Z, each j at most once), let P(F)=P∩{x:xj=k for (xj=k)∈F} and Z(F)={x∈P(F):xj∈Z for j∈I}. Let v(F)=maxx∈P(F)c⊤x, or −∞ if P(F)=∅. Clearly c⊤x≤v(F) for x∈Z(F). Let z∗=maxx∈Z(∅)c⊤x, or −∞ if Z(∅)=∅.
Lemma 1 (values move down away from the LP optimum). Let P(F)=∅ with optimal solution xˉ, let j∈I be free in F, and let φ(t)=v(F∪{xj=t}) for real t. Then D={t:φ(t)>−∞} is an interval that contains xˉj, φ is concave on D, and φ(xˉj)=v(F). So for t≤t′≤xˉj or xˉj≤t′≤t, we have φ(t)≤φ(t′); in particular, if t∈/D, then no t further from xˉj on the same side is in D.
Proof. D is the projection of the convex set P(F) on the coordinate j, so it is an interval, and xˉj∈D. If y,y′ are optimal for t,t′∈D and 0≤λ≤1, then λy+(1−λ)y′∈P(F) has xj=λt+(1−λ)t′, so φ(λt+(1−λ)t′)≥λφ(t)+(1−λ)φ(t′). Also φ(t)≤v(F)=c⊤xˉ=φ(xˉj). A concave function with its maximum at xˉj does not increase as t moves away from xˉj: if xˉj≤t′≤t, write t′=λt+(1−λ)xˉj and get φ(t′)≥λφ(t)+(1−λ)φ(xˉj)≥φ(t). The other side is the same. □
Regions. For a live node with fixings F and note sib, its region is Z(F) if sib=NIL, and Z(F)∪⋃t≥0Z(F′∪{xj=k+ts}) if sib=(F′,j,k,s). Every live node with sib=NIL was made as F=F′∪{xj=k−s}, where k−s is on the side s of xˉj(F′) (with xˉj(F′) fractional), so by Lemma 1 each point of the region has value at most v(F).
Claim 2 (incumbent). At each point, best=NIL and z=−∞, or best∈Z(∅) and z=c⊤best; so z≤z∗, and z 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(∅); and it does so only if v>z. □
Claim 3 (a skipped MAKE loses nothing). Suppose MAKE(G,sib) is called with G=F′∪{xj=k} and sib=(F′,j,k+s,s), where k is on the side s of xˉj(F′), and it does not insert G. Then every point of Z(G)∪⋃t≥1Z(F′∪{xj=k+ts}) has value at most z, for the current and every later z. Proof. If P(G)=∅, then k∈/D, and by Lemma 1 no further value is in D, so all these sets are empty. Otherwise v(G)≤z, and by Lemma 1 every further value has φ≤v(G)≤z. As z never decreases, this stays true. □
Claim 4 (invariant). At the start of each iteration of line L3, every x∈Z(∅) with c⊤x>z lies in the region of some live node.
Proof. At the start, if MAKE(∅,NIL) inserted the root, its region is Z(∅); if not, P=∅ and there is no x. Suppose the claim holds at the start of an iteration that takes the node N=(F,xˉ,v,sib) and does not break. Let x∈Z(∅) with c⊤x>z at the end of the iteration; then c⊤x>z held at the start too, so x lies in the region of a node that was live. If that node is not N, it is still live. Suppose it is N.
- If x is in the chain part of the region of N, then x∈Z(F′∪{xj=k+ts}) for some t≥0. Line L7 calls MAKE on t=0 with the note for t≥1. If it inserts the node, x is in its region; if not, Claim 3 gives c⊤x≤z, which is false.
- If x∈Z(F) and xˉ is integral on I, then line L9 makes z≥v≥c⊤x, which is false.
- If x∈Z(F) and xˉj is fractional for the j of line L10, let f=⌊xˉj⌋. Since xj is an integer, either xj=f−t for some t≥0, so x is in Z(F∪{xj=f}) or in the chain of the first MAKE of line L11, or xj=f+1+t, and x is in Z(F∪{xj=f+1}) or the chain of the second. If the node is inserted, x is in its region; if not, Claim 3 gives a contradiction.
So the claim holds at the start of the next iteration. □
Claim 5 (termination). Each set of fixings is passed to MAKE at most once, and there are finitely many. Proof. P is bounded, so each xj ranges in a bounded interval on P, and a fixing xj=k outside it gives an empty P(F); such a node is never inserted, and its chain is not continued. A node G=F′∪{xj=k} is made only by line L11 while F′ is split, or by line L7 while the node F′∪{xj=k−s} is taken. By induction on ∣G∣, F′ is inserted at most once, hence taken and split at most once, on a single j; the two chains f,f−1,… and f+1,f+2,… 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∣ elements with values in bounded ranges, so there are finitely many, and the loop runs finitely often. □
Theorem. LAND-DOIG returns (z∗,best) with best an optimal integer solution, or (−∞,NIL) when there is none.
Proof. By Claim 5 the loop ends. If it ends because H is empty, Claim 4 says no x∈Z(∅) has c⊤x>z. If it ends at line L5 with node N, every live node M has v(M)≤v(N)≤z, so every point of every region has value at most z, and by Claim 4 (at the start of that iteration) no x has c⊤x>z. So z≥z∗, and by Claim 2 z=z∗, with best optimal when z∗>−∞. ■