Maximize 10 X1 + 1 X2 subject to 1 X1 + 0 X2 <= 1 20 X1 + 1 X2 <= 100 X1 , X2 >= 0 The initial dictionary: X3 = 1 - 1 X1 + 0 X2 X4 = 100 -20 X1 - 1 X2 ------------------------------------------------- z = -0 +10 X1 + 1 X2 X1 enters. X3 leaves. z = 0 After 1 pivot: X1 = 1 + 0 X2 - 1 X3 X4 = 80 - 1 X2 +20 X3 ------------------------------------------------- z = 10 + 1 X2 -10 X3 X2 enters. X4 leaves. z = 10 After 2 pivots: X1 = 1 - 1 X3 + 0 X4 X2 = 80 +20 X3 - 1 X4 ------------------------------------------------- z = 90 +10 X3 - 1 X4 X3 enters. X1 leaves. z = 90 After 3 pivots: X3 = 1 - 1 x1 + 0 X4 X2 = 100 -20 X1 - 1 X4 ------------------------------------------------- z = 100 -10 X1 - 1 X4 The optimal solution: 100 X1 = 0 X2 = 100 X3 = 1 X4 = 0
Maximize 100 X1 +10 X2 + 1 X3 subject to 1 X1 + 0 X2 + 0 X3 <= 1 20 X1 + 1 X2 + 0 X3 <= 100 200 X1 +20 X2 + 1 X3 <= 10000 X1 , X2 , X3 >= 0 The initial dictionary: X4 = 1 - 1 X1 + 0 X2 + 0 X3 X5 = 100 - 20 X1 - 1 X2 + 0 X3 X6 = 10000 -200 X1 -20 X2 - 1 X3 ------------------------------------------------- z = -0 +100 X1 +10 X2 + 1 X3 X1 enters. X4 leaves. z = -0 After 1 pivot: X1 = 1 + 0 X2 + 0 X3 - 1 X4 X5 = 80 - 1 X2 + 0 X3 + 20 X4 X6 = 9800 - 20 X2 - 1 X3 +200 X4 ------------------------------------------------- z = 100 +10 X2 + 1 X3 -100 X4 X2 enters. X5 leaves. z = 100 After 2 pivots: X1 = 1 + 0 X3 - 1 X4 + 0 X5 X2 = 80 + 0 X3 + 20 X4 - 1 X5 X6 = 8200 - 1 X3 -200 X4 +20 X5 ------------------------------------------------- z = 900 + 1 X3 +100 X4 -10 X5 X4 enters. X1 leaves. z = 900 After 3 pivots: X4 = 1 - 1 X1 + 0 X3 + 0 X5 X2 = 100 - 20 X1 + 0 X3 - 1 X5 X6 = 8000 +200 X1 - 1 X3 +20 X5 ------------------------------------------------- z = 1000 -100 X1 + 1 X3 -10 X5 X3 enters. X6 leaves. z = 1000 After 4 pivots: X4 = 1 - 1 X1 + 0 X5 + 0 X6 X2 = 100 - 20 X1 - 1 X5 + 0 X6 X3 = 8000 +200 X1 +20 X5 - 1 X6 ------------------------------------------------- z = 9000 +100 X1 +10 X5 - 1 X6 X1 enters. X4 leaves. z = 9000 After 5 pivots: X1 = 1 - 1 X4 + 0 X5 + 0 X6 X2 = 80 + 20 X4 - 1 X5 + 0 X6 X3 = 8200 -200 X4 +20 X5 - 1 X6 ------------------------------------------------- z = 9100 -100 X4 +10 X5 - 1 X6 X5 enters. X2 leaves. z = 9100 After 6 pivots: X1 = 1 + 0 X2 - 1 X4 + 0 X6 X5 = 80 - 1 X2 + 20 X4 + 0 X6 X3 = 9800 -20 X2 +200 X4 - 1 X6 ------------------------------------------------- z = 9900 -10 X2 +100 X4 - 1 X6 X4 enters. X1 leaves. z = 9900 After 7 pivots: X4 = 1 - 1 X1 + 0 X2 + 0 X6 X5 = 100 - 20 X1 - 1 X2 + 0 X6 X3 = 10000 -200 X1 -20 X2 - 1 X6 ------------------------------------------------- z = 10000 -100 X1 -10 X2 - 1 X6 The optimal solution: 10000 X1 = 0 X2 = 0 X3 = 10000 X4 = 1 X5 = 100 X6 = 0
Maximize 1000 X1 +100 X2 +10 X3 + 1 X4 subject to 1 X1 + 0 X2 + 0 X3 + 0 X4 <= 1 20 X1 + 1 X2 + 0 X3 + 0 X4 <= 100 200 X1 + 20 X2 + 1 X3 + 0 X4 <= 10000 2000 X1 +200 X2 +20 X3 + 1 X4 <= 1000000 X1 , X2 , X3 , X4 >= 0 After 15 pivots: X5 = 1 - 1 X1 + 0 X2 + 0 X3 + 0 X8 X6 = 100 -20 X1 - 1 X2 + 0 X3 + 0 X8 X7 = 10000 -200 X1 - 20 X2 - 1 X3 + 0 X8 X4 = 1000000 -2000 X1 -200 X2 -20 X3 - 1 X8 ------------------------------------------------- z = 1000000 -1000 X1 -100 X2 -10 X3 - 1 X8 The optimal solution: 1000000 X1 = 0 X2 = 0 X3 = 0 X4 = 1000000 X5 = 1 X6 = 100 X7 = 10000 X8 = 0
Maximize 10n-1 x1 + 10n-2 x2 + 10n-3 x3 + ... + 10n-n xn subject to X1 <= 1 20 X1 + X2 <= 100 200 X1 + 20 X2 + X3 <= 10000 2000 X1 + 200 X2 + 20 X3 + X4 <= 1000000 20000 X1 +2000 X2 +200 X3 + 20 X4 + X5 <= 100000000 . . . X1, X2, X3, ..., Xn >= 0Theorem [Klee-Minty, 1972]
The Klee-Minty examples take 2n - 1 iterations when the variable to enter is chosen using the Maximum Coefficient rule.
Proof: Problems 4.2 and 4.3.
Similar examples exist for Largest Increase rule [Jeroslow, 1973].
In practice, it usually takes less than 3m/2 iterations, and only rarely 3m, for m < 50, and m+n < 200 [Dantzig, 1963].
Monte Carlo studies of larger random problems- similar results, see table in text [Kuhn and Quandt, 1963]
The Largest Increase rule may require fewer iterations but it requires more work per iteration. Thus, the Maximum Coefficient rule may be faster.
Dictionary: Xi = Bi - s * Xj + .... If Xj enters and Xi leaves: s Xj= Bi - Xi + ... So Xj = Bi/s - Xi + ... Looking at the z row: z= z ' + r Xj Replacing Xj in the z row: z= z ' + r (Bi / s ) - ... So the change to z is (r/s) * Bi where r is the coefficient of the entering variable in the z row Bi is the constant term in the pivot row -s is the coefficient of Xj in the pivot row of the dictionaryLargest Increase Rule: Choose the entering variable to maximize this quantity.