Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
00
Printedin Great Britain.All rightsreserved copyright8 1993 PergamonPressLtd
(Received 16 December 199i;_&aI revision received 13 .Wy 1992; received for publication 27 July 1992)
Abstract-In developing an object-oriented process simulator, we found that tearing algorithms that do
not use a cycle matrix might give inconsistent results depending on how ties are resolved. Two recently
published flowsheet tearing algorithms (Gundersen and Li) have been studied in detail and a new tearing
algorithm has been proposed. These algorithms define an optimal tear set as one that has the minimum
tear set weight. Our studies show that Gundersen’s “close-to-optimal” tearing algorithm may produce tear
sets far from optimum depending on how a tie is resolved in the tearing process. We observe that Li’s
algorithm fails to produce optimum tear sets for a number of classical flowsheets. We modified Li’s
algorithm to significantly improve its performance. Based on this modified algorithm we propose a new
tearing algorithm that gives an optimum tear set for all the 13 flowsheets studied.
for each element of the matrix. We were not able to and then considers the specific algorithms of Li and
find a tear set for this problem using Aspen Plus the new one as sub-procedures. Li’s algorithm is
(1988) on a DEC 3100 due to the lack of memory. We described to identify the conditions for which the
conclude that tearing algorithms utilizing the cycle algorithm fails to produce an optimal tear set. Then
matrix are impractical when a large number of cycles our algorithm is developed to correct the identified
and units are present. deficiencies. Finally, our new algorithm, Gundersen’s
John and Miiller (1976) developed an algorithm algorithm and Li’s algorithm are applied to 13 classi-
that can produce an optimal tear set as defined by cal flowsheets to determine their reliability.
the optimality condition described above. In their
algorithm, a branch and bound method was used to PARTITIONING ALGORll-HM
reduce the dimension of the combinatorial problem.
This partitioning algorithm partitions a given
This approach required bounds on tear sets of vari-
graph into strong components. Then each strong
ous subproblems. An efficient algorithm like the one
component is examined for tearing. We used Duffs
presented here must be available to produce such
iterative version of Tarjan’s algorithm for partition-
bounds for the success of the branch and bound
ing (Duff and Reid, 1978). Tearing algorithms
method. An excellent review on this subject was done
are described by using italicized names for sub-
by Gundersen and Hertzberg (1983). As discussed
procedures that are defined in the following sections
above, we cannot guarantee that this minimum
of the paper.
tear set requires the minimum computation time.
Furthermore, if the flowsheet has many cycles like the Decompose
heavy water plant, a simpler approach that produces
1. Partition the graph and sequence the strong
a close-to-minimal tear set without requiring large
components. Consider the first strong com-
storage space is acceptable. This new tearing algor-
ponent (SC) in the sequence and call it ISC.
ithm can be used for such a purpose.
2. If there is only one node in ISC, add that node
Gundersen and Hertzberg (1983) introduced a
to the final node sequence (FNS). If that node
tearing algorithm that does not use the cycle matrix.
has a self-loop, add the self-loop to the final tear
Since it is based on a simple heuristic rule that selects
set (FTS). Goto Step 5.
the input streams to a unit that produces the most
3. Extract the sub-graph involving ISC and pass it
output information as tear streams, it does not
to sub -&compose.
consistently produce an optimum tear set. They
4. Add the sub-sequence and sub-tear set returned
described it as a “close-to-optimal” tearing algor-
by sub-decompose to FNS and FTS, respect-
ithm. We observed that depending on which tie node
ively.
is selected their algorithm may produce tear sets far
5. Choose the next strong component as ISC and
from optimum. More recently, Li et al. (1988) devel-
go back to Step 2. Repeat until all SCs are
oped a new algorithm that also does not use the cycle
processed.
matrix. We implemented their algorithm and found
that it also failed to consistently give an optimum tear
U’s TEARING ALGORITHM
set. Its reliability in finding an optimum tear set was
found to be similar to that of Gundersen’s algorithm. Li’s algorithm starts by arranging the nodes in
Lien and Hertzberg (1990) modified the original descending order of node weights. Since the weight of
Gundersen’s algorithm by introducing a new tearing a node is the sum of the weights of output streams
criterion which requires the cycle matrix. Their minus the sum of the weights of input streams, we get
reported results showed that the new algorithm pro- an initial node sequence that is close to the optimum.
duced the optimal tear set for cases where the original The algorithm then repositions the nodes to minimize
algorithm had failed. As discussed by Lien and the weight of the final tear streams. Reversing the
Hertzberg (1990), this is caused by the lack of a node sequence, it then repeats the node repositioning
tie resolution scheme in the algorithm itself. The procedure. Finally, it obtains the final node sequence
improvement was obtained by sacrificing data storage by reversing the existing node sequence once more.
space and speed since the cycle matrix has to be The tear set is determined during the process of
updated repeatedly. Since we are interested in tearing repositioning. The algorithm L&&compose given be-
algorithms that do not use the cycle matrix, the low is a slight variation of the Li’s original algorithm
improved Gundersen’s algorithm was not considered (Li et al., 1988) in that the graph simplification step
here. is omitted. Since the input to Li-decompose is a strong
Our discussion of partitioning and tearing algor- component, the graph simplification step in the orig-
ithms begins with a general partitioning procedure inal algorithm is not necessary. The original graph
New tiring algorithm for flowsheeting 357
weight. These nodes don’t affect the final node a member of NB, include all the CSs in NB in
sequence and tear set. Instead of performing this the tear set (TS) and quit.
graph simplification step, we opted to include these 5. Treat NB as the new ISN and go back to
nodes in the graph since the step itself may be step 1.
expensive relative to the actual tearing task.
Sub -&compose-reverse
Li-decompose
1. If there is no counter-stream (CS) entering ISN,
1. Get the initial node sequence (INS) using order-
quit. A CS leaves a node I and enters a node J,
nodes and put it in the current node sequence
to the right of I in CNS. Node I is a counter-
(CNS).
stream node (CSN).
2. Copy CNS into a reference node sequence
2. If there is no active direct stream (ADS) leaving
(RNS). Choose the second node in RNS as the
ISN, move ISN to the left of the left-most CSN
inspected node (ISN).
(LCN) and quit. A direct stream (DS) leaves a
3. Modify CNS using sub&compose-forward.
node I and enters a node J, to the left of I in
4. Choose the next node in RNS as the new ISN
CNS. Node Jis a direct stream node (DSN). An
and go back to Step 3. Repeat until the last node
ADS is a DS that enters LCN or a node to the
in RNS is processed.
right of LCN.
5. Copy CNS into RNS. Reverse CNS. Choose the
3. Calculate the counter-stream weight (CSW) and
first node in RNS as the new ISN.
the active direct stream weight (ADSW). CSW
6. Modify CNS using sub-c&compose-r.
is the sum of the weights of all CSs entering
7. Choose the next node in RNS as the new ISN
ISN. ADSW is the sum of the weights of all
and go back to Step 6. Repeat until the second
ADSs leaving ISN. If CSW > ADSW, move
node from last in RNS is processed.
ISN to the left of LCN and quit.
8. Reverse CNS again to get the final node se-
4. Move ISN to the right of the right-most active
quence (FNS). Current tear set (IS) is the final
DSN forming a node block (NB) with it. An NB
tear set (FTS).
is a sequence of two or more nodes. If LCN is
Order -no&s a member of NB, include all the CSs in NB in
the tear set (TS) and quit.
Arrange the nodes in descending order of node
5. Treat NB as the new ISN and go back to
weights. The weight of a node (NW) is the sum of the
Step 1.
weights of all its output streams (OSW) minus that of
its input streams (ISW). A tie is said to exist if there In Li’s algorithm, it is often the case that a tie exists
is more than one node with the same weight. when the nodes are ordered in the descending order
of node weights. In the algorithm as published (Li
Sub -decompose-forward
et al., 1988), since there was no mention of the tie, it
1. If there is no counter-stream (CS) leaving ISN, appears that the algorithm should work irrespective
quit. A CS leaves a node I and enters a node J, of the order of the tie nodes. The algorithm does
to the left of I in CNS. Node J is a counter- work for most of the flowsheets when the tie nodes
stream node (CSN). are ordered randomly, but it fails for some flowsheets
2. If there is no active direct stream (ADS) enter- as shown later in this work. We introduced a tie
ing ISN, move ISN to the left of the left-most breaking scheme for Li’s algorithm, or&r-node-deep,
CSN (LCN) and quit. A direct stream (DS) as defined in the next section. This improved the
leaves a node I and enters a node J, to the right performance significantly but it still failed for some
of I in CNS. Node I is a direct stream node cases. This comparison will be part of the discussion
(DSN). An ADS is a DS that leaves LCN or a of the results presented later in Table 3.
node to the right of LCN.
3. Calculate the counter-stream weight (CSW) and
mm-- TEARING ALGORITHM
the active direct stream weight (ADSW). CSW
is the sum of the weights of all CSs leaving ISN. In analyzing Li’s algorithm, we notice that if the tie
ADSW is the sum of the weights of all ADSs is “unresolved” as deflned in order-node-deep, the
entering ISN. If CSW > ADSW, move ISN to algorithm fails to consider some counter and direct
the left of LCN and quit. streams relevant to a particular node. We address this
4. Move ISN to the right of the right-most active problem in this new LF tearing algorithm by moving
DSN forming a node block (NB) with it, An NB the node under investigation to both ends of the
is a sequence of two or more nodes. If LCN is current sequemze. Also, in contrast to Li’s algorithm,
358 G. et al.
Li Z., W. Han Zhen and T. Yu Kuo. A new strategy of net Rubin D. I.. Generalbed material balance. Chrm. Engng.
decomposition in process simulation. Computers ckm. Process. symp. ser. fs, 54 (1962).
Engng 12, 583 (1988). Sargent R. W. H. and A. W. Weaterberg, SPEEDUP in
Lien K. M. and T. Hertzberg. An improved heuristic chemical engineering design. Truns. Inst. Chem. &gng 42,
algorithm for selection of tear streams and pm T190 (1964).
ordering in process flowshating computations. MO&. Shannon P. T. er al., Computer simulation of a sulfuric acid
Mentif: Control 4 139 (1990). plant. Ckm. ~%~PQJ Rag. 61 49 (1966).
Pho T. K. and L. Lapidus, An optimum tearing Upadhye R. S. and E. A. Grens II, An el?icient algorithm
algorithm for recycle systems. AZCkE II 19, 1170 for optimum decomposition of recycle systems. AIChE JI
(1973). 1% 533 (1972).