We assume that b≥0. Otherwise we can flip the i constraints AiTx=bi by −AiTx=−bi, where AiT is the i-th column of matrix AT, i.e, the i-th row of matrix A.
Dual:
maxs.t.yTbyTA≤cT
Suppose that we have a feasible solution y for the dual (if c≥0, then y=0 is a feasible solution). Weak duality states that
cTx≥yTAx=yTb
Denote S={i:i∈[n],yTAi<ci} (the set of constraints that have slacks for increments) and Sˉ=[n]∖S (the set of indexes of tight dual constraints), where Ai is the i-th columns of A.
By weak duality, if we can find an x such that
xS=0, where xS≐(xi:i∈S).
xSˉ≥0 and ASˉxSˉ=b, where ASˉ is the sub-matrix of A containing only columns in Sˉ.
then both y and x are optimal. However, as y is not necessarily optimal, we have the following relaxed optimization problem, which is called restricted primal
Relaxation:
mins.t.1TxˉASˉxSˉ+xˉ=bxSˉ≥0xˉ≥0
Note that xSˉ=0 and xˉ=b is a feasible solution as we assume that b≥0. Therefore, restricted primal is feasible. Further, it is bounded below by 1Sˉ0=0. Indeed, if it achieves optimal solution value 0, it holds that xˉ=0 so that ASˉxSˉ=b.
Associated with the restricted primal is the restricted dual
maxs.t.yˉTbyˉTASˉ≤0yˉT≤1T
By strong duality, it optimal solution yˉTb=1Txˉ. If 1Txˉ=yˉTb>0, then we can improve the dual solution y by
y←y+ϵyˉ
for some ϵ. To determine its value, first observe that
(y+ϵyˉ)TASˉ=yTASˉ+ϵyˉTASˉ≤yTASˉ=cSˉT
Hence it is left to guarantee that
(y+ϵyˉ)TAS=yTAS+ϵyˉTAS≤cS
By definition of S, we have yTAS<cST. If that yˉTAi≤0 for ∀i∈S, then ϵ can be arbitrary large and the dual is unbounded. Otherwise,