The simplex method in matrix notation Arrange the variable tuples (x1 , . . . , xn , w1 , . . . , wm ) = (x1 , . . . , xn , xn+1 , . . . , xn+m ), (z1 , . . . , zn , y1 , . . . , ym ) = (z1 , . . . , zn , zn+1 , . . . , zn+m ). Let B and N be the current lists of basic and nonbasic indices, respectively. Arrange the data entries according to the index lists: xB cB z x= , A = AB AN = B N m×(m+n) , c = , z= B . xN (m+n)×1 cN (m+n)×1 zN (m+n)×1 Let x∗ and z ∗ be the points associated with the current primal and dual dictionaries, ∗ ∗ ∗ 0 xB z xB ∗ ∗ , z = ∗B = ∗ . x = ∗ = zN 0 zN xN These dictionaries are then of the form: Primal Dual ∗ > ζ = ζ ∗ − zN xN xB = x∗B − K xN − ξ = −ζ ∗ − x∗B > zB ∗ zN = zN + K > zB . ∗ , ζ ∗ , K in terms of b, cB , cN , B, N. We can write down the expressions for ζ, x∗B , zN Indeed, since xB Ax = B N = BxB + N xN = b xN and since B is invertible, we have xB = B −1 b − B −1 N xN . Furthermore, > ζ=c x= c> B c> N xB > = c> B x B + cN x N xN −1 −1 > = c> B (B b − B N xN ) + cN xN −1 −1 > > = c> B B b − ((B N ) cB − cN ) xN . Thus x∗B = B −1 b is the vector of current values of basic variables, K = B −1 N is the matrix of current constraint coefficients, −1 ζ ∗ = c> B B b is the current objective function value, ∗ zN = (B −1 N )> cB − cN is the vector of current values of dual basic variables. Note that the complementarity condition x∗j zj∗ = 0, j = 1, . . . , n + m, is a direct consequence of how the variables are arrangement. If the primal dictionary is feasible, x∗B ≥ 0, ∗ and if the dual dictionary is feasible, zN ≥ 0, then the primal dictionary is optimal. The m × n matrix K = B −1 N of constraint coefficients carries important information about the dictionary. If the current lists of basic and nonbasic indices are B = (β1 , . . . , βm ) and N = (ν1 , . . . , νn ), then the equality xB = x∗B − KxN takes the form xβ1 = x∗β1 − K11 xν1 − . . . − K1n xνn xβ2 = x∗β2 − K21 xν1 − . . . − K2n xνn .. .. .. .. . . . . ∗ xβm = xβm −Km1 xν1 − . . . −Kmn xνn . Let x∗B ≥ 0. Suppose that xνj = t increases from zero, while xν = 0 for all other ν ∈ N . We then have xB = x∗B − tKj , where Kj is the jth column of K. To preserve feasibility, we must ensure that x∗βi − tKij ≥ 0, i = 1, . . . , m. x∗β If Kij ≤ 0, then x∗βi − tKij ≥ 0 gives no bound on t, and if Kij > 0, then t ≤ i . Kij Thus the new value of xνj is given by x∗βi , Kij where the minimum is taken over all i = 1, . . . , m such that Kij > 0. If Kj ≤ 0, the problem is unbounded. Otherwise, for any i for which the minimum is attained, the variable xβi can be chosen as the leaving variable. t = min Step summary ∗ Entering variable: select any xνj such that (zN )νj < 0 Step direction: (B −1 N )j = Kj Step size: t = min x∗βi over all i = 1, . . . , m such that Kij > 0 Kij Leaving variable: select any xβi such that t = x∗βi Kij New basic vector: replace x∗B by x∗B − tKj , set (x∗B )i = t Dual step direction: −(N > B −> )i = −(K > )i Dual step size: s = zν∗j Kij ∗ ∗ ∗ New dual basic vector: replace zN by zN − s(K > )i , set (zN )j = s Index update: interchange βi in B and νj in N Matrix update: interchange the ith column of B and jth column of N
© Copyright 2026 Paperzz