[Osi] dual bound on the primal
Lou Hafer
lou at cs.sfu.ca
Wed Oct 20 12:55:45 EDT 2010
Kyle,
Linear algebra and plain ascii don't really play well together, but
here's a start.
Consider the standard primal <-> dual pair
max cx min yb
Ax <= b <=> yA >= c
l <= x <= u y >= 0
You have bounded variables l <= x <= u. In a modern simplex
implementation, these are handled implicitly by the algorithm; they are
not explicit constraints. Now, recall
x<B> = inv(B)b - inv(B)Nx<N>
z = c<B>inv(B)b + (c<N> - c<B>inv(B)N)x<N>
y = c<B>inv(B)
cbar = (c<N> - c<B>inv(B)N) = (c<N> - yN)
where B is the basic partition, N the nonbasic partition, inv(B) is the
basis inverse, c<B> and c<N> the basic and nonbasic objective
coefficients, x<B> the basic variables, y the duals, cbar the reduced
costs.
Suppose you were to add -x<j> <= -l<j> as an explicit constraint in your
constraint system. x<j> is now basic, and the basis becomes
B' = B a<j> and the basis inverse is inv(B') = inv(B) inv(B)a<j>
0 -1 0 -1
Your new duals are y' = [c<B> c<j>]inv(B'). Do the linear algebra and
you'll see that the new dual is -(c<j> - c<B>inv(B)a<j>), the negative
of the reduced cost of x<j>.
For a really exhaustive look at the correspondence between primal and
dual, try ftp://fas.sfu.ca/pub/cs/TR/1998/CMPT1998-21.pdf
Lou
More information about the Osi
mailing list