Professional Documents
Culture Documents
Your use of the JSTOR archive indicates your acceptance of the Terms & Conditions of Use, available at .
http://www.jstor.org/page/info/about/policies/terms.jsp
.
JSTOR is a not-for-profit service that helps scholars, researchers, and students discover, use, and build upon a wide range of
content in a trusted digital archive. We use information technology and tools to increase productivity and facilitate new forms
of scholarship. For more information about JSTOR, please contact support@jstor.org.
Society for Industrial and Applied Mathematics is collaborating with JSTOR to digitize, preserve and extend
access to Journal of the Society for Industrial and Applied Mathematics: Series B, Numerical Analysis.
http://www.jstor.org
DONALD V. STEWARDf
Introduction. Kron [1] has developed a technique for tearing large, sparse
linear systems of algebraic equations into smaller systems, then putting
the solutions of these smaller systems together to form the solution of the
original problem. This can result in a great savings over solving the whole
system in one piece. The trick is to find where to tear so that on the one
hand the remaining pieces are small and easily solvable, but on the other
hand not so much violence is done to the equations so that the task of
putting their solutions back together becomes too difncult. Kron's pro?
cedure for solving the pieces and putting their solutions together is based
upon representing systems of equations as electric networks. He makes his
choice of where to tear from his insight into these networks and the physical
processes the equations represent. In the hands of someone such as Kron
who has an understanding of the methods and good insight into the prob?
lem, this technique has had outstanding success. The widespread use of
Kron's technique has perhaps been limited severely for lack of practitioners
skilled in this art of determining effective ways of tearing specific problems.
Many problems are too large to submit to such insight. It is the purpose of
this paper to contribute to the development of procedures which can be
performed on a computer for analyzing the structures of the systems of
equations themselves as an aid in choosing how to break them up for easier
solution. The methods developed here require only that we consider what
variables occur in each equation, but not how they appear. Thus, the tech?
niques are not limited to linear systems.
Fig. 1
ously with any equation in the block. Then the blocks can be solved one at
a time. Such a partition is unique [7].
For example, let us consider the system of 26 equations in Fig. 1 which
comes from a model of the United States economy [2]. Here an x in position
i, j indicates that equation i contains variable j. The variable may appear
in the equation either linearly or nonlinearly. We call this the structural
matrix. (The structural matrix may be considered to be an incidence matrix
mapping the set of variables onto the set of equations.) By reordering the
equations and variables, we can put the structural matrix in block tri?
angular form, as in Fig. 2. (By block triangular we imply that we have
square blocks on the diagonal and all zeros above the diagonal.) This system
of 26 equations can thus be solved as a sequence of smaller sets of equations,
as in Fig. 3. The circles contain the blocks of equations which must be solved
Variables
Fig. 2
simultaneously; the arrows indicate the sequence in which the blocks must
be solved. Thus, the largest block of equations which we must solve simul?
taneously has been reduced from 26 to 17.
Now we might ask whether by removing one or more elements from a
block a further partition of the set of equations in the block could be made.
This we call tearing. To tear an element is to remove it from the structural
matrix. If, for example, we tear variable w in equation 16, the block of 17
equations can be partitioned again such that the largest block remaining is
now only 4 equations. See Figs. 4 and 5. Other elements whose tearing would
leave a largest block of 4 equations are 9q, Sp, It, and Vlx.
A tearing, i.e., a set of elements to be removed from the structural matrix,
is not unique. We will be interested in ways of exploring the properties of
Fig. 3
various tearings. Choice of the best tearing of a system depends not only
on the structural matrix of the system of equations, but also on how the
variables appear in the equations, which is not considered here. Generally
we will be interested in seeking first those tearings which will leave the
smallest blocks remaining. If it occurs that a tearing makes a significant de-
crease in the size of the blocks remaining, this may be sufficient to override
many considerations of the difficulty of solving the equations in the form
required.
Kron's technique normally implies what we will call strong tearing:
sufficient elements are removed that the pieces may be solved in any order,
i.e., such that the structural matrix may be put into block diagonal form.
Here we will deal with weak tearing, i.e., only sufficient elements are torn so
that the remaining pieces (blocks) can be solved one at a time in some
partially ordered sequence, i.e., such that the structural matrix may be put
into block triangular form. This weaker condition causes less violence to
the equations but still offers the advantages of solving the system only a
piece at a time.
In tearing we do violence to the equations. We must then account for the
effect of the elements which have been torn.
Some means of solving torn systems. Although this paper is primarily
concerned with the problem of where to tear to get the smallest remaining
blocks, as motivation we will suggest a few means which can be used to take
advantage of tearing in solving systems of equations.
Buckner [3] has described in conventional terms how Kron accounts for
Fig. 4
the torn elements in reconstructing the solution of linear systems from the
solutions of their parts. (See Appendix.) The methods for partitioning
and tearing developed here have other applications than to Kron's tech?
nique. Partitions and tears are defined here for nonlinear as well as linear
systems.
For either nonlinear or linear systems tearing might be used to imply an
iteration scheme. For example, if we were to assume a value for variable w
in equation 16, we could solve the remaining equations in the block to obtain
a new value for variable iv which could be used in the next iteration. Within
each iteration the largest set of equations to be solved simultaneously would
be 4 equations. The specific equations involved would have to be considered
to establish more precisely how much computation would be involved, and
what the convergence properties of the iteration would be.
&?
Fig. 5
Fx(xa) ,0 1 (x)
"? 2
F2(V V *~*?
F3(xb'xc)=0 3 L?
Fig. 6
= ? 1 ?*~x
Fl (xa> V
=0 2
F2(xb, xc) l
?^
= ? 3 x ?>
F3(V V ?
Fig. 7
The basic concepts from which the algorithms will be derived. As a basis
for our consideration of partitioning and tearing we will review here briefly
the concept of "information flow" developed in [7].
Let us consider the system of equations in Fig. 6. Here we may solve
equation 1 for xa, equation 2 for xb, and equation 3 for xc, one at a time in
that order. Information flow is indicated by the lines in the diagram. The
vertical lines indicate the substitution of the solution of one equation into
another. Horizontal lines indicate the use of a variable in the solution of
an equation. The circles indicate the variables to be solved for.
Now, for the system of equations in Fig. 7, the information flow forms a
loop and the equations must be solved simultaneously. (What we call a
loop is usually referred to in the graph theory literature as a cycle.)
We call the variable for which an equation is to be solved the output
variable. To solve the system of equations we must first make a choice of
one output variable for each equation such that no variable becomes the
output of more than one equation. This choice we call the output set. (The
output set is a one-to-one mapping of the set of equations onto the set of
variables, which may be represented by a set of ordered pairs.) The output
set is not unique. In fact, given an output set, if we determine the loops
associated with that output set, all other possible output sets may be ob-
a b c
1 x->?
3 ?
Fig. 8
tained by carrying the output relabeling around the loops [7]. In the above
example by carrying the outputs around the loop we get the new output set
of Fig. 8 with the loop now going in the opposite direction.
To obtain the blocks of the partition, i.e., the sets of equations which
must be solved simultaneously, we must associate together in the same
block all those equations appearing in the same loop. Clearly, if equations
i and j are connected by a loop and equations j and k are connected by
another loop, then we must associate equations i, j, and k in the same block.
(This generates an equivalence class.) Once all the equations which are
joined by a loop are confined within the same block, then clearly the blocks
themselves are not joined by loops. The blocks may therefore be solved in
some sequence. Thus, the problem of partitioning becomes one of deter-
mining what equations are associated together into blocks by loops, and
determining the sequence in which these blocks may be solved. The problem
of tearing then concerns how loops may be broken by removing elements
in the structural matrix so as to obtain smaller blocks.
The partition is independent of the output set which happened to be used
because any other output set can be obtained by carrying the outputs
around loops, and the loops are confined within the blocks [7].
Fig. 9
abcdefghijkl
10
11
12
Fig. 10
From
12 34 5 678 9 10 11 32
1
2
3
4
5
To 6
7
8
9
10
11
12
Fig. 11
(2) Now any path we trace following predecessors must lead into a loop.
Since the graph is finite and by step 1 there is no row without a predecessor,
such a path must eventually repeat a row. Retracing the path from this
row gives a loop.
The union of two rows is a row which contains an x or + in each off-
diagonal element in which either row had an x or ~f, i.e., the "or" of the
two rows minus the diagonal element. (We add +?s to the figure rather
than x's to distinguish elements added by the algorithm from the original
elements.)
(3) When we find a loop, we replace the set of rows in the loop by one
row which is the union of the rows replaced. This we call collapsing the
rows in the loop. Similarly we collapse the columns corresponding to these
rows.
When a row without a predecessor is eliminated, that row and the rows
which tcollapsed to form it represent the equations in a block. The order in
which rows without predecessors are eliminated gives an order in which these
blocks may be solved.
We will illuminate these rules by beginning with Fig. 11 and proceeding
step by step until we finish with Fig. 12.
(1) Row 4 has no x, so we eliminate row and column 4. We indicate that
a row or column has been eliminated by writing an x next to it. We put a
1 in the "order" column to record the sequence in which the row was
eliminated.
(2) Row 7 has no x, so we eliminate row and column 7 and put a 2 in the
"order" column.
(3) :There are no more rows with no x in the row. Thus, we begin tracing
a path with row 1, choosing always the first x encountered in the row. This
x x XXX x x x x x x
order into 1 2 3 4 5 7 8 9 10 11 12
4
5
1
3
2
x 10
x 11
x 12
Fig. 12
gives the path 1, 10, 1, which implies 1 and 10 are in a loop. We collapse
row 10 into row 1 by adding +'s to row 1 to make it the union of rows 1 and
10. We do not put a + on the diagonal. Similarly we collapse column 10
into column 1. We then eliminate row and column 10. We place a 1 in the
"into" column next to row 10 to show it was collapsed into 1.
(4) Beginning with row 1 we trace the path 1, 5, 2, 5. This implies the
loop involving equations 5 and 2. We collapse 5 into 2.
(5) Beginning at row 1 we trace the path 1, 2, 9, 1. Thus, we collapse 2
and 9 into 1.
(6) We trace the path 1, 11, 1, so we collapse 11 into 1.
(7) We trace the path 1, 12, 6, 12, so we collapse 12 into 6.
(8) Row 6 has no x, so we put a 3 in its "order" column and ehminate
row and column 6.
(9) Row 1 has no x so we put a 4 in its "order" column and eliminate
row and column 1.
(10) We trace the path 3, 8, 3, so we collapse 8 into 3.
(11) Row 3 has no x so we assign a 5 to its "order" column and eliminate
row and column 3.
Now all rows and columns have been eliminated.
We can now read off from the "order" and "into" columns how the
equations are grouped into blocks and an ordering for solving the blocks.
The first block contains just equation 4; the second block contains just
equation 7. The third block contains equations 6 and 12 as 12 collapsed into
6. The fourth block contains equations 1, 2, 9, 10, 11, and 5 as 5 collapsed
into 2 and 2 in turn collapsed into 1. The fifth block contains equations
3 and 8.
From this information we can rewrite the structural matrix in block tri-
Fig. 13
Fig. 14
angular form. The equations in a block are grouped together and the blocks
are ordered as above. The variables are ordered by mapping the ordered
equations onto the variables with the output set, i.e., the variables are
ordered so that the output elements are on the diagonal. See Fig. 13.
From the block triangular form of the structural matrix we can draw the
precedence diagram. The elements below the diagonal indicate the prece-
dences. Block A is preceded by block B if a variable appearing in an equa?
tion in block A occurs as the output variable of an equation in block B.
Thus, we may draw the precedence diagram in Fig. 14.
From
12 5 910 11
1
2
To 5
9
10
11
Fig. 15
the loop 1, 10 which we label A. Now we go back to the previous row and
begin tracing with the next predecessor the branch 10, 5, 2, 5. This gives
the loop 5, 2, which we label B. When we go back to 2 we find 2 does not
have another predecessor, so we go back another step to 5, etc. When we
have thus exhausted all predecessors of all rows, we are through. If a loop
is repeated, it is not assigned a new label. In this way we develop the loops
(A: 1, 10), (B: 5, 2), (C: 10, 5, 9), (D: 1, 11, 2, 5, 9, 10). See Fig. 16.
Now let us consider an undirected graph in which the points represent
these loops. Two points are connected if the loops they represent have an
equation in common. The loops we just found would be represented by the
points in the graph in Fig. 17.
All the equations in a loop must be in the same block. Thus, if an equa?
tion occurs in two loops, then all of the equations in either loop must be in
the same block. If this graph is connected, then all of the equations in the
Fig. 16
A 1, 10
1,11,2,5,9,10 D C 10,5,9
B 5,2
Fig. 17
Fig. 18
12 5 9 X) 11
A
B
C
Fig. 19
h a 1 c k d g i f e j b
,tom element
Fig. 20
Fig. 21
Conclusions and the need for further work. The algorithm for partitioning
presented is extremely fast and the computing time does not appear to
increase very rapidly with the number of equations. It may be a quite
practical algorithm for hand computation of systems involving perhaps
50 to 100 equations.
The situation is not so rosy with the present tearing algorithm. The
number of loops to be traced can grow very rapidly with the number of
equations. The tracing and analysis of so many loops can become un~
manageable even on the computer if the blocks get too large. (The block of
17 equations in Fig. 2 was manageable by hand, but a block of twice that
size proved to be too burdensome by hand to be considered practical.) The
speed of the partitioning algorithm may make it practical to remove one
element of the structural matrix at a time and partition. Further work is
required to develop techniques which do not require the explicit generation
of the loops.
Ax = /.
Then
Bx = / - (A
-
B)x,
x = B'1/ - -
B~\A B)x.
x = B~'f - B^KLx.
(1)
(2) y = Lx.
y = (Ir + LBT1K)-1LB-lf,
x = #-y - + LB-lK)~lLB~lf
B-'Ktfr
= [B'1 - B-'K^r + LB-'Ky'LB-1]/
Then
A-1 = B~l - B-'Ktfr + LE-1K)'1LE'1.
Thus A-1 is BT1 plus a correction matrix which requires B~ and the inverse
of a system of order r.
Now it should be shown that if A and B~x are nonsingular then
(Ir + LB"XK) is nonsingular. This is proved by demonstrating that if
z is a vector of r components, then
(Ir + LB~xK)z = 0
(4)
implies that z = 0.
Kz + KLB~lKz = 0,
Kz + - = 0,
(A B)B~1Kz
Atf-fe = 0.
z + L?-1K2 = ^ = 0.
Let us apply this to tearing one element. Consider that tearing (removing)
one element in A leaves a matrix B which is block triangular. Assume that
the torn element of A is ai3-. Then A ? B has just the element atj and is
otherwise zero. Now let
A - B = KL, K = a^*, L = En
<**
A"1 = B"1 '|&-*-y-|,
1 + Oiy6'?
REFERENCES
[1] G. Kron, Diakoptics, Macdonald, London, 1963.
[2] L. R. Klbin and A. S. Goldberger, An Econometric Model of the United States
1929-1952, North-Holland, Amsterdam, 1955.
[3] H. F. Buckner, Remarks on the method of tearing, unpublished.
[4] G. L. Nemhauser and D. J. Wilde, Strategies for optimizing macrosystems,
presented to the American Institute of Chemical Engineers, Las Vegas,
September 26, 1964.
[5] D. F. Rudd and D. V. Steward, On information flow and process design calcula-
tions, Ibid.
[6] L. Klein and G. Fromm, The SSRC-Brookings quarterly econometric model of the
United States: model properties, presented at the Annual Meeting of Allied
Social Science Association, Chicago, December 26-30, 1964.
[7] D. V. Steward, On an approach to techniques for the analysis of the structure of
large systems of equations, SIAM Rev., 4 (1962), pp. 321-342.
[8] R. W. H. Sargent and A. W. Westerberg, Speed-up in chemical engineering
design, Trans. Instn. Chem. Engrs., 42 (1964), pp. T190-T197.
[9] C. C. Holt, R. Shirey, D. Steward, J. L. Midler and A. H. Stroud, Program
SIMULATE, A User's and Programmer's Manual, Social Systems Re?
search Institute, University of Wisconsin, Madison, 1964.