|
| 1 | + |
| 2 | + AGGREGAT Command |
| 3 | + |
| 4 | + The AGGREGAT command computes a price-weighted sum of the rows in the |
| 5 | + submatrix to produce the following single constraint (implied by |
| 6 | + those in the submatrix). |
| 7 | + |
| 8 | + a <= Sum[j | p(j)X(j)] <= b, |
| 9 | + |
| 10 | + where p(j) = Sum[i in submatrix | P(i)A(i,j)], and |
| 11 | + |
| 12 | + P(i) = price of i-th row |
| 13 | + A(i,j) = matrix coefficient |
| 14 | + X(j) = level of j-th activity |
| 15 | + |
| 16 | + The aggregate coefficient, p(j), shown with the output, is formed by |
| 17 | + a P-weighted sum of matrix coefficients, where P is is the dual price |
| 18 | + vector. Only the rows in the submatrix are used in forming p(j), but |
| 19 | + the aggregate constraint pertains to all columns. |
| 20 | + |
| 21 | + The aggregate limits, a and b, are: |
| 22 | + |
| 23 | + a = Sum[i IN I+ | P(i)L(i)] + Sum[i IN I- | P(i)U(i)] |
| 24 | + b = Sum[i IN I+ | P(i)U(i)] + Sum[i IN I- | P(i)L(i)], |
| 25 | + |
| 26 | + where I+ = {i: P(i) > 0} and I- = {i: P(i) < 0}; and, L(i), U(i) |
| 27 | + are the (original) limits on row i. What this says is that if a |
| 28 | + price is negative, the row's inequalities are reversed in forming the |
| 29 | + aggregate range. |
| 30 | + |
| 31 | + The primary purpose of the AGGREGAT command is when the LP is |
| 32 | + infeasible, in which case P(i) = 0 for i = objective row; however, |
| 33 | + the AGGREGAT command could be used for examining ranges of rows in an |
| 34 | + optimal solution. We shall separate these two uses of the AGGREGAT |
| 35 | + command after we present a fundamental derivation. |
| 36 | + |
| 37 | + If the submatrix contains all rows, the aggregate coefficient, p(j) = |
| 38 | + P*A(j) (where A(j) includes the objective), equals minus the reduced |
| 39 | + cost of activity j -- that is, P*A(j) = -D(j). The aggregate |
| 40 | + constraint, therefore, is: |
| 41 | + |
| 42 | + a <= y = Sum[j | -D(j)X(j)] <= b |
| 43 | + |
| 44 | + and we require L <= X <= U. (The variable y is introduced here for |
| 45 | + notational convenience below.) |
| 46 | + |
| 47 | + Infeasible Linear Program |
| 48 | + ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 49 | + Let us begin with the infeasible case. The output begins with a |
| 50 | + statement about the "required" range. This is [a, b] (where a = -* |
| 51 | + means negative infinity and b = * means positive infinity). |
| 52 | + |
| 53 | + Then, the nonzero aggregate coefficients are listed (see Primer for |
| 54 | + discussions of WOODINFE and FOREST6, which are two infeasible linear |
| 55 | + programs that came with ANALYZE). The activities with nonzero |
| 56 | + aggregate coefficients, P*A(j), are put into the submatrix; and, |
| 57 | + those with zero (or nearly zero) coefficients are excluded from the |
| 58 | + submatrix. Thus, when AGGREGAT finishes, the columns in the |
| 59 | + submatrix are determined by the aggregation, over-riding whatever |
| 60 | + setting you had prior to the aggregation. It is possible for all |
| 61 | + coefficients to be zero, in which case there will be no columns in |
| 62 | + the submatrix. |
| 63 | + |
| 64 | + After the coefficients are listed (if any), the "myopic range" is |
| 65 | + given. This is obtained by setting each variable to one of its bound |
| 66 | + values, depending upon the sign of its aggregate coefficient. That |
| 67 | + is, the range contribution from X(j) is determined as follows. |
| 68 | + |
| 69 | + Suppose L(j) <= X(j) <= U(j), where L(j), U(j) are the (original) |
| 70 | + bounds on the level, X(j) (which could be infinite). Then, the range |
| 71 | + of the term, -D(j)X(j), is given by: |
| 72 | + |
| 73 | + [D(j)*L(j), D(j)*U(j)] if D(j) > 0 |
| 74 | + [D(j)*U(j), D(j)*L(j)] if D(j) < 0. |
| 75 | + |
| 76 | + The bottom line myopic range of the aggregate row is the sum of the |
| 77 | + ranges of the terms. For an infeasible instance, with all rows in |
| 78 | + the submatrix, the myopic range is necessarily disjoint from the |
| 79 | + required range (displayed first). For example, if the required range |
| 80 | + is [a, b] and the myopic range is [c, d], it must be that d < a or c |
| 81 | + > b, so the required range can never be satisfied. This follows from |
| 82 | + the theory of linear programming if the resident solution prices |
| 83 | + represent a Phase I solution. |
| 84 | + |
| 85 | + At a Phase I solution, the term, -D(j)X(j), has no direction of |
| 86 | + change in X(j) that reduces the infeasibility. The myopic range, |
| 87 | + given at the end of the output of the AGGREGAT command, reveals the |
| 88 | + range of the sum, which is disjoint from [a, b]. To aid |
| 89 | + infeasibility diagnosis, the real information is in which activities |
| 90 | + have nonzero aggregate coefficients. |
| 91 | + |
| 92 | + Suppose the LP contains supplies and demands. If d < a, this |
| 93 | + suggests the aggregate demand requirement, y >= a, cannot be |
| 94 | + satisfied since the myopic range means y <= d in every solution |
| 95 | + satsifying L <= X <= U. In this case, look for activities in the |
| 96 | + output that limit the range from above (i.e., contributing to why d |
| 97 | + is so low, relative to a). If you find activities with positive |
| 98 | + coefficients, they will have limiting upper bounds, and if you find |
| 99 | + activities with negative coefficients, they will have limiting lower |
| 100 | + bounds. Sometimes, this provides enough information to form a |
| 101 | + diagnosis. |
| 102 | + |
| 103 | + Similarly, if c > b, we require y <= b, but we have y >= c. This |
| 104 | + suggests a problem with the aggregate supply limit. The activities |
| 105 | + listed (if any) might be enough information to form a diagnosis of |
| 106 | + what went wrong. |
| 107 | + |
| 108 | + To begin to understand how to use the AGGREGAT command to aid |
| 109 | + infeasibility diagnosis, apply it to WOODINFE (the other instance, |
| 110 | + FOREST6, is more complicated). Details of this reasoning can be |
| 111 | + found in the paper, |
| 112 | + |
| 113 | + H.J. Greenberg, "An Empirical Analysis of Infeasible Instances |
| 114 | + of a Linear Programming Blending Model," IMA Journal of |
| 115 | + Mathematics Applied in Business & Industry 4 (1992), 163-210. |
| 116 | + |
| 117 | + |
| 118 | + Optimal Linear Program |
| 119 | + ~~~~~~~~~~~~~~~~~~~~~~ |
| 120 | + Now suppose the linear program has an optimal solution, which is |
| 121 | + resident. Then, the AGGREGAT command can be used to examine ranges |
| 122 | + of rows, for the particular aggregation by optimal prices. |
| 123 | + |
| 124 | + To help gain insight, suppose all rows are in the submatrix, so the |
| 125 | + aggregate row is: |
| 126 | + |
| 127 | + y = Sum[j | -D(j)X(j)]. |
| 128 | + |
| 129 | + Since the objective row is included, and it is a free row (i.e., L = |
| 130 | + -* and U = *), the required range is -* to *, as you will see (this |
| 131 | + does not occur in an infeasible instance because then the price for |
| 132 | + each free row, including the objective, is 0). |
| 133 | + |
| 134 | + Now consider the myopic range. For j basic, D(j) = 0, so the sum is |
| 135 | + over nonbasic variables. At optimality, if X(j) = L(j), D(j) >= 0, |
| 136 | + so the range of the term, -D(j)X(j), is [-D(j)U(j), -D(j)L(j)]. |
| 137 | + Similarly, if X(j) = U(j), D(j) <= 0, so the range is [-D(j)L(j), |
| 138 | + -D(j)U(j)]. Putting these together, the myopic range of the sum is: |
| 139 | + |
| 140 | + y >= Sum[j: STAT(j) = L | -D(j)U(j)] |
| 141 | + + Sum[j: STAT(j) = U | -D(j)L(j)] |
| 142 | + and |
| 143 | + y <= Sum[j: STAT(j) = L | -D(j)L(j)] |
| 144 | + + Sum[j: STAT(j) = U | -D(j)U(j)] |
| 145 | + |
| 146 | + If there is some activity, j, for which STAT(j) = L, D(j) > 0 and |
| 147 | + U(j) = *, it follows that y >= -*. This is typically what you will |
| 148 | + see as the lower bound on the myopic range. |
| 149 | + |
| 150 | + Now examine the upper bound on y. It is "typical" that L >= 0 for |
| 151 | + each non-basic variable, so the upper bound on y is finite. In |
| 152 | + particular, if L = 0 and U = *, the upper bound is 0. |
| 153 | + |
| 154 | + The meaning of this case, where our LP is the canonical form, |
| 155 | + |
| 156 | + Minimize cx: x >= 0 and Ax >= b, |
| 157 | + |
| 158 | + is that optimal prices weight the rows so that |
| 159 | + |
| 160 | + 0 = Max[-DX: X >= 0] = -Min[DX: X >= 0], |
| 161 | + |
| 162 | + which states that the objective cannot be decreased from its current |
| 163 | + (optimal) level. |
| 164 | + |
| 165 | + If you examine WOODNET, you will see another property, namely that |
| 166 | + the myopic range is -* to -min. This happens, not by coincidence, |
| 167 | + but because the LP is modeled with homogeneous equations. Its form |
| 168 | + is: |
| 169 | + |
| 170 | + Minimize cx: L <= x <= U, Ax = 0, |
| 171 | + |
| 172 | + where L >= 0. Supply limits appear as upper bounds on supply |
| 173 | + activities, and demand requirements appear as fixed levels, L = U > 0 |
| 174 | + (which could also have U = * in an equivalent formulation). Since |
| 175 | + WOODNET is a network model, the homogeneous equations, Ax = 0, |
| 176 | + represent conservation of flows. |
| 177 | + |
| 178 | + To see why y <= -min results in the myopic range, note that cx = Dx |
| 179 | + since the right-hand side is 0 (from the theory of linear |
| 180 | + programming, cx = Dx + Pb when LP is in standard form, where the |
| 181 | + constraints (except simple bounds on x) are equations, Ax = b). |
| 182 | + |
| 183 | + Therefore, Dx >= min, or -Dx <= -min, which is what you see in the |
| 184 | + output for WOODNET. |
0 commit comments