A simple algorithm to search for all MCs in networks

A simple algorithm to search for all MCs in networks

European Journal of Operational Research 174 (2006) 1694–1705 www.elsevier.com/locate/eor Stochastics and Statistics A simple algorithm to search fo...

160KB Sizes 94 Downloads 145 Views

European Journal of Operational Research 174 (2006) 1694–1705 www.elsevier.com/locate/eor

Stochastics and Statistics

A simple algorithm to search for all MCs in networks Wei-Chang Yeh

*

e-Integration & Collaboration Laboratory, Department of Industrial Engineering and Management Engineering, National Tsing Hua University, P.O. Box 24-60, Hsin-Chu, Taiwan 300, ROC Received 1 April 2004; accepted 7 February 2005 Available online 23 May 2005

Abstract Evaluating the network reliability is an important topic in the planning, designing, and control of systems. The minimal cut (MC, an edge set) set is one of the major and fundamental tools for evaluating the network reliability. In this study, an alternative method is given to define a MC using a node set (called MCV). A very simple algorithm based on some intuitive theorems that characterize the structure of the MCV and the relationship between MC and MCV is developed to find the MCs between two special nodes. The proposed algorithm is then generalized to find all MCs between all pairs of nodes. The proposed algorithm is not only easier to understand and implement, but is also better than the existing best-known algorithm. The correctness of the proposed algorithm will be analyzed and proven. One example is illustrated to show how all MCs are generated and verified in a network using the proposed algorithm. Ó 2005 Elsevier B.V. All rights reserved. Keywords: Network reliability; Minimal cuts (MC); Algorithm

1. Introduction Since the very earlier times of reliability engineering, the network reliability is one of the main subjects of research. The network reliability theory has been applied extensively in many real-world systems such as computer and communication systems, power transmission and distribution systems, transportation systems, oil/gas production systems [1–3], etc. System reliability plays important roles in our modern society [4–15]. The evaluation of the reliability of a network is a NP-hard problem [6–16]. Reliability evaluation approaches exploit a variety of tools for system modeling and reliability index calculation. Among the most

*

Tel.: +886 3 574 2443; fax: +886 3 572 2204. E-mail address: [email protected]

0377-2217/$ - see front matter Ó 2005 Elsevier B.V. All rights reserved. doi:10.1016/j.ejor.2005.02.047

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

1695

popular tools are network-based algorithms founded in terms of either MCs or MPs [6–15]. Unfortunately, to search for all MCs or MPs is also a NP-hard problem [6–16]. Between MCs and minimal paths (MPs), MCs readily provide the list of events that cause network failures [17,18]. Hence, MC applications are more effective. A variety of MCs enumeration approaches have been proposed. All of these methods involve advanced mathematics and/or must know all MPs in advance [19,20]. The existing algorithms all fail to solve the MCs between all pairs of nodes in an efficient way. The existing best-known algorithm for locating all MCs between two special nodes and between one source nodes and all sink nodes are a special version of finding the MCs between two special nodes was proposed by Jasmon and Foong [20]. The purpose of this paper is to develop a more efficient and intuitive algorithm than the existing best-known algorithm. This is a further improvement on an earlier work involving the existing best-known algorithm proposed in [20]. The proposed algorithm is based on some simple concepts that were found in this study to search for all MCs, and can also be easily extend to find all MCs between all node pairs. The computational complexity of the proposed algorithm is analyzed and compared with the existing methods. This paper is organized as follows. Section 2 describes the notations, nomenclature and assumptions required. Section 3 discusses the related research and the existing best-known algorithm for the MC problem in the literature. The alternative way to define MC is presented in Section 4 together with the relationships between MCV and MC, between MCV and MCV candidate, and the transformation between MCV and MC. Some important lemmas, theorems and the existing algorithm are also discussed in Section 4. Section 5 presents the proposed method for finding MCs between two specific nodes in detail, together with a discussion on its efficiency and an extension to find all MCs between all node pairs. The proposed algorithm is illustrated with the help of an example to show how to generate all of the MCs in a network in Section 6. Concluding remarks are given in Section 7.

2. Notations, nomenclature and assumptions Acronym MC/MP

minimal cut/path

Notations G(V, E) a connected network with the node set V = {s,t, 1, 2, . . ., n  2} and the edge set E, where s, t are the specified source node and sink node, respectively. For example, Fig. 1 is a network euv euv 2 E is an arc between nodes u and v E(U) E(U) = {euv 2 E j for all u, v 2 U, and U  V}  E. For example, E({s, 1, 4}) = {es1, e14} in Fig. 1 (see Fig. 2) G(U, E(U)) the residual subnetwork of G(V, E) after removing V  U, where U  V. For example, the network in Fig. 2 is G(U, E(U)) after removing V  U from Fig. 1, where U = {s, 1, 4} 1

4

s

t

2

3

Fig. 1. An example network.

1696

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

4

1

s Fig. 2. An example network to explain E(U).

MC(U) MC(U) = {euv 2 E j for all u 2 U, v 62 U, and U  V} is an edge set. For example, MC(U) = {es2, e21, e13, e34, e4t} in Fig. 1 (see the dashed line in Fig. 3), where U = {s, 1, 4} jÆj the number of elements of Æ, e.g., jVj is the number of nodes in V Pr(Æ) the probability of Æ Nomenclature adjacent node node u is an adjacent node to node set U, if there is an edge between node u and at least one node in U reliability the probability of a live connection between the source node and the sink node cut a cut is an edge set such that no path from the source node to the sink node after removing it MP/MC it is a path/cut set such that if any arc is removed from this path/cut set, then the remaining set is no longer a path/cut set. For example, {es2, e21, e13, e34, e4t} is a MC between nodes s and t in Fig. 1 (see the dashed line in Fig. 3). The MP/MC search is tied to the Graph Theory concepts and connectivity measures. Probabilistic techniques usually associate the connectivity level of a network with the availability and/or reliability of the communication paths between specific network node-pairs [13,14] MCV candidate a node subset such that its removal will disconnect the source node and the sink node in the corresponding network. For example, U = {s, 2, 4} is a MCV candidate between nodes s and t in Fig. 1 MCV a MCV candidate in G(V, E), say U, s.t. the edge set from the nodes in U to the nodes in V  U is a MC. For example, U = {s, 1, 4} is a MCV between nodes s and t in Fig. 1, and {es2, e21, e13, e34, e4t} is the corresponding MC to U Assumptions. The network satisfies the following assumptions [14]: 1. 2. 3. 4.

Each node is perfectly reliable. The graph is connected and free of self-loops. Each edge has two states: working or failed. All flows in the network obey the conservation law.

1

4

s

t

2

3

Fig. 3. An example network to explain MC(U).

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

1697

3. Related researches Bellmore and Jensen first investigated the search for all MCs [21]. They used an implicit method by forming a cut generation tree scheme to locate the MCs. Martelli presented a Gaussian elimination for MC enumeration in a graph [22]. Biegel used transposed and sum of matrices for directed acyclic graphs [23]. Locks developed a symbolic Boolean function manipulation by applying De Morgan theorems to invert and minimize the MP and MC sets [24]. Rai improved the algorithm developed by Locks even further using a dual form of original Boolean polynomial function associated with the MP set [25]. Arumkumar and Lee presented an implicit method to enumerate all MCs for directed graphs [26]. Rai and Aggarwal used Boolean algebra to obtain MCs by inverting from the MP sets [27]. Abel and Bicker presented a method using a blocking mechanism to enumerate all MCs for an undirected graph [28]. Heidtmann began with finding the power sets of the total edges in the network and then eliminated all the MP complement sets to obtain the MC set [29]. The method described by Shier and Whiled basically simplified and computerized the Lockss method [30]. Jasmon and Kai introduced the concept of basic MP set and showed that all minimal node cut set could be deduced from a fewer number of MP sets [31]. Later, Jasman presented an algorithm for finding the MC set that existed around a given node cut set [32]. Samad provided an algorithm to simultaneously obtain the paths between any single node pair, the paths for multi-node pairs and the cuts for the specified node pair of interest in any complex network [33]. Jasmon and Foong [20] introduced a technique to determine all MCs for all sink nodes in a nonplanar network. Ahmad [34] presented two methods that used combinations of nodes to determine all MCs for two specified nodes in acyclic directed graphs. Elias et al. provided a path inversion approach by enumerating all possible combinations of edges using a path matrix [35]. The number of MC candidates obtained from the algorithm proposed by Jasmon and Foong [20] using a node subset method is only 2jVj. Conversely, the other methods based on edge subset methods all need to generate at most 2jEj MC candidates. Because O(jEj) = O(jV2j), the algorithm proposed by Jasmon and Foong [20] is more efficient than the other methods in the number of MC candidates. Moreover, this algorithm generates all MCs for all sink nodes in one operation. It is faster than conventional methods that compute them for one sink node at a time. There are three main procedures to find the MCs as shown in following [20]: 1. Generate all SSN candidates. Generate all possible distinctive combinations of node subsets from {t, 1, 2, . . ., jV j}  2}. Each nonempty node subset is called an SSN candidate. For an n node network there are 2jVj possible SSN candidates. 2. Check the feasibility of SSN. Scan both subgraphs G(T, E(T)) and G(V  T, E(V  T)) using a special complicated tree technique for each SSN candidate T. If any one subgraph is disconnected, T is not a real SSN and must be removed. It takes O(jVj) to check the feasibility of SSN. 3. Convert each SSN into a MC. Find all edges adjacent to the nodes in the SSN and remove those edges that appeared more than once. The set of the remaining edges is then the corresponding MC. O(jEj) = O(jVj2) is required to convert each SSN into a MC. If the subgraph induced from a SSN candidate is not a connected network, this SSN candidate is then not a real SSN from the first procedure, i.e. the number of SSN candidates is too great. The method for converting each SSN into a MC takes O(jEj) is also a bottleneck to reduce the time complexity. Hence, the above algorithm requires extensive calculation and verification. An efficient and intuitive method to generate fewer numbers of MC candidates (between the sink and source nodes) and reduce running time to verify the MC candidates is needed.

1698

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

4. Preliminaries Before introducing the proposed algorithm, some useful properties and results will be described in this section. Removing a cut (note that a MC is also a cut) will break a connected network into two connected subgraphs. Furthermore, one subgraph contains the source node s, and the other one contains the source node t. The set of all nodes in the subgraph that contains the sink node s is called MCV, which is another way to describe a MC. The following property is used often in the lemma and theorem proofs in this study. Property 1. If C is a MC, then these nodes in the residual network containing s is a MCV after removing C. The following corollaries, all directly from Property 1, explore some special characteristics about MCV candidates and/or MCVs. Corollary 1. If U is a MCV candidate, then s 2 U, t 62 U, and 1 6 jUj 6 jV  1j. Corollary 2. If U is a MCV, then U is a MCV candidate. Corollary 3. If U is a MCV and jUj = 1, then U = {s}. 4.1. An 1-to-1 relationship between MCV and MC The following discusses the relationships between MC and MCV. Lemma 1. If U is a MCV in G(V, E), then MC(U) = {euv 2 E j for all u 2 U and v 62 U} is a MC. Proof. Nodes s and t are separated after removing MC(U) from G(V, E), i.e. MC(U) is a cut. If any edge, say eij, is removed from MC(U) and the remaining set is still a cut, then both nodes i and j are belong to either U or V  U. This is in contrast to eij 2 MC(U). Hence, MC(U) is also a real MC. h Lemma 2. If C is a MC in G(V, E), then there is one and only one MCV U s.t. MC(U) = C. The following lemma states that there is no duplication in making the MCVs in G(V, E). Hence, there is no need to eliminate the identical MCVs. Lemma 3. If U1, U2 are two distinctive MCVs, then MC(U1) 5 MC(U2). Proof. Since, if MC(U1) = MC(U2), then U1 = U2. Thus, this lemma is true.

h

The following corollary follows the above lemma directly. Corollary 4. If U is a MCV, then there is one and only one MC C s.t. C = MC(U). From Lemmas 1–3, we have the following important theorem. It shows that all MCs can be found by enumerating all MCVs in the network. Hence, we will focus on solving the problem involving the enumeration all MCVs in the remainder of this study. Theorem 1. U is a MCV in G(V, E), if and only if MC(U) is a MC. 4.2. MCV vs. MCV candidate The following property shows that the network induced by a MCV is also a connected network.

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

1699

Property 2. If U is a MCV, then G(U, E(U)) is a connected network. Proof. If U is a MCV but node set U0 (U0  U  {s}) is disconnected from G(U, E(U)), then MC(U)  {euv 2 E j u 2 U0, v 2 U} is also a cut, i.e. MC(U) is not a MC. This is in contrast to Lemma 1. Hence, this property is true. h Lemma 4. Let G(V, E) be a network, U  V  {t} and node s 2 U. Then, U is a MCV if and only if the networks G(U, E(U)) and G(V  U, E  E(U)) both are connected networks. Proof. From Property 2, if U is a MCV, then G(U, E(U)) is a connected network. If G(V  U, E  E(U)) is not a connected network, then MC(U) is not a MC which is impossible. If G(U, E(U)) and G(V  U, E  E(U)) both are connected networks, then MC(U) separates nodes s and t in G(V, E), i.e. MC(U) is a cut. If any edge, say eij, is removed from MC(U) and the remaining set is still a cut, then both nodes i and j either belong to U or V  U. This is in contrast to eij 2 MC(U). Hence, this completes the proof. h Property 3. If U is a MCV and u 62 U [ {t} is adjacent to U, then U* = U [ {u} is a MCV candidate and G(U*, E(U*)) is a connected network. Originating from the above simple concepts discussed in Lemma 4 and Property 3, the following theorem is utilized in the algorithm to verify each new MCV candidate, say U*, by scanning G(V  U*, E(V  U*)) only. Theorem 2 is an essential point in this study. In the proposed algorithm, one adjacent node is added into the current MCV each time. This result in a new MCV if all of the conditions in Theorem 2 are all satisfied. This theorem is repeatedly employed in the proposed algorithm in Section 5 to generate a new MCV by adding a new adjacent node to the current MCV. Theorem 2. Let U be a MCV in G(V, E) and node u 62 U [ {t} is adjacent to U. Then, U* = U [ {u} is a MCV if and only if G(V  U*, E  E(U*)) is a connected network. Corollary 5. If the residual network is connected after removing a MCV candidate U from G(V, E), and its node number is less then jV  Uj or without containing t, then U is not a MCV. 4.3. The transformation between MCV and MC This is a time-consuming and burdensome job if the corresponding MC of a new MCV must be relocated using Lemma 1 which takes O(jEj) after adding an adjacent node from the current MCV each time. If the corresponding MC for a new MCV can be easily found using the information from the current MCV, the running time can be reduced. The following theorem is the criteria implemented in our algorithm for building the associated MCs in the network. This method is repeatedly employed in the proposed algorithm in Section 5 to determine the corresponding MC after a new MCV is formed by adding a new node. Theorem 3. If U and U* = U [ {u} are two MCVs in G(V, E), where u 62 U [ {t} is adjacent to U. Then, MC(U*) = MC(U)  {evu 2 E j for all v 2 U} [ {euv 2 E j for all v 62 U}. Proof. Let u 62 U [ {t}. If evu 2 E for v 2 U, then evu 2 MC(U) but evu 62 MC(U*). On the contrast, if v 62 U then evu 2 MC(U) but evu 62 MC(U*) but u 2 MC(U*). Hence, this statement is true. h The time complexity for using Theorem 3 to find a new MC is only O(jVj). It is also more efficient than the existing best-known algorithm [20] in converting a node set into a MC.

1700

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

5. The proposed algorithm and its extensions This section first outlines the proposed algorithm, which is simpler and more efficient than the existing algorithm for finding all MCs between the source node and the sink node in G(V, E). The proposed algorithm is then extended to find all MCs between all pairs of nodes. 5.1. The proposed algorithm to find all MCs between nodes s and t The proposed algorithm uses the depth first search (DFS) strategy to search for MCVs. The proposed algorithm for finding all MCVs in each network between two specific nodes is described in the following steps: Algorithm. Find the MCVs in a network G(V, E). Input: Output: Step 0. Step 1.

A connected graph G(V, E) with node set V, edge set E, a source node s, and a sink node t. The MCV set P in G(V, E). Let i = k = 0, S = U0 = {s}, T = V  {s}, N0 = {t}, and P = B. (Property 3) If there is a node u 2 T  Ni adjacent to S, then S [ {u} is a MCV candidate and go to Step 2. Otherwise, go to Step 4. Step 2. (Theorem 2) If G(T  {u}, E(T  {u})) is a connected network, then S [ {u} is a MCV and go to Step 3. Otherwise, any node set contains S [ {u} is not a MCV. Step 3. Let i = i + 1, k = k + 1, Uk = S = S [ {u}, P = P [ {Uk}, T = T  {u}, Ni = Ni1, and go to Step 1. Step 4. If i = 1, then stop. Otherwise, remove the last node, say v, in S, i = i  1, Ni = Ni [ {v}, T = T [ {v}, and go to Step 1. The next lemma discusses that all MCVs of P found in Step 3 are the complete MCV set.

Lemma 5. All of MCVs are found in the proposed algorithm. Proof. Let Ck = Ck1  {uk}, uk 2 Vs(vk)  Ck1  T, k > 0, and vk be the greatest number in Ck1 s.t. Vs(vk)  Ck1  T 5 B. If C = C0 is a MCV but is not found using the proposed algorithm, then C1 = C0  {u1} is also not found using the proposed algorithm. In the same way, C2 = C1  {u2}, . . ., CjCj1 = {1} are all not found using the proposed algorithm. This is impossible. Therefore, this lemma is true. Corollary 6. All of MCs are found and no duplicated MCs are generated in the proposed algorithm. The correctness of the above algorithm is given in the following theorem. Theorem 4. The above algorithm locates all of the MCs with time complexity O(jVj2jVj). Proof. First, the correctness of the proposed algorithm follows directly from Lemma 5 and Theorem 3. Next, the main complexity of the proposed algorithm is from Steps 2 and 3. To each MCV Ci for i = 1, 2, . . ., d, the complexity to find out MC(Ci) is O(jVj), and the number of node subset is at most 2jVj. Therefore, the total complexity is at most O(jVj2jVj). h 5.2. The extension to find MCs between any pairs of nodes The proposed algorithm presented in Section 5.1 can only solve the MCs between two special nodes. Next, it is extended further to generate all MCs for all nodes in one operation.

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

1701

Lemma 6. If U is a MCV between nodes s and t in G(V, E), then U is a MCV between nodes u and v, where for all u 2 U and v 62 U. Proof. It is trivial.

h

Lemma 7. If U is a MCV between nodes s and t* in G(V [ {t*}, E [ {eij j i = t* and for all j 2 V}), then U is a MCV between nodes s and v in G(V, E), where for all v 62 U. Proof. It is trivial.

h

Lemma 8. If U is a MCV between nodes s* and t in G(V [ {s*}, E [ {eij j i = s* and for all j 2 V}), then U is a MCV between nodes t and v in G(V, E), where for all v 2 U. Proof. It is trivial.

h

Theorem 5. If U is a MCV between nodes s* and t* in G(V [ {s*, t*}), E [ {eij j i 2 {s*, t*} and for all j 2 V}), then U is a MCV between any pair nodes in G(V, E). Proof. From Lemmas 6–8 directly.

h

From Theorem 5, the proposed algorithm can be easily revised to find all MCs between any pair of nodes by adding two pseudo nodes and pseudo edges connecting all nodes to these two pseudo nodes. Because the possible node subset combinations are still O(2jVj), the time complexity is equal to the proposed algorithm listed in Section 5.1, i.e. O(jVj2jVj). This results in the proposed algorithm being not only better than the existing algorithms for finding all MCs between two special nodes, but is also the best one for finding all MCs between all node pairs.

6. An example To enumerate all of the MCs in a network is a NP-hard problem [6–16]. It possesses a computational difficulty that, in the worse case, grows exponentially with network size. Owing to this inherent problem, instead of presenting practically large network systems, a moderate size network shown in Fig. 1 was selected to demonstrate this methodology. Example 1. Consider the network in Fig. 1 of Section 1, where nodes s and t are the source and sink nodes, respectively. The proposed algorithm is used to find all MCs between nodes s and t in Fig. 1. Solution: The procedure to search for all MCs between nodes s and t in Fig. 1 using the proposed algorithm is list as follows (see Fig. 4): Step Step Step Step

0. 1. 2. 3.

Let i = k = 0, S = U0 = {s}, T = V  {s} = {1, 2, 3, 4, t}, N0 = {t}, and P = B. Since node 1 2 T  N0 = {1, 2, 3, 4} is adjacent to S = {s}, go to Step 2. Since G(T  {1}, E(T  {1})) is a connected network, S [ {1} is a MCV and goes to Step 3. Let i = i + 1 = 1, k = k + 1 = 1, U1 = S = S [ {1} = {s, 1}, P = P [ {U1} = {U1}, T = T  {1} = {2, 3, 4, t}, N1 = N0 = {t}, and go to Step 1.

Step 1. Since node 2 2 T  N1 = {2, 3, 4} is adjacent to S = {s, 1}, go to Step 2. Step 2. Since G(T  {2}, E(T  {2})) is a connected network, S [ {2} is a MCV and goes to Step 3.

1702

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

s

2

1

2

3

4

3

4

4 Fig. 4. The illustration of the proposed algorithm to find all MCs in Fig. 1.

Step 3. Let i = i + 1 = 2, k = k + 1 = 2, U2 = S = S [ {2} = {s, 1, 2}, P = P [ {U2} = {U1, U2}, T = T  {2} = {3, 4, t}, N2 = N1 = {t}, and go to Step 1. Step 1. Since node 3 2 T  N2 = {3, 4} is adjacent to S = {s, 1, 2}, go to Step 2. Step 2. Since G(T  {3}, E(T  {3})) is a connected network, S [ {3} is a MCV and goes to Step 3. Step 3. Let i = i + 1 = 3, k = k + 1 = 3, U3 = S = S [ {3} = {s, 1, 2, 3}, P = P [ {U3} = {U1, U2, U3}, T = T  {3} = {4, t}, N3 = N2 = {t}, and go to Step 1. Step 1. Since node 4 2 T  N3 = {4} is adjacent to S = {s, 1, 2, 3}, go to Step 2. Step 2. Since G(T  {4}, E(T  {4})) is a connected network, S [ {4} is a MCV and goes to Step 3. Step 3. Let i = i + 1 = 4, k = k + 1 = 4, U4 = S = S [ {4} = {s, 1, 2, 3, 4}, P = P [ {U4} = {U1, U2, U3, U4}, T = T  {4} = {t}, N4 = N3 = {t}, and go to Step 1. Step 1. Since T  N4 = B, go to Step 4. Step 4. Since i > 1, remove the last node 4 in S (i.e. S = {s, 1, 2, 3}), i = i  1 = 3, N3 = N3 [ {4} = {4, t}, T = T [ {4} = {4, t}, and go to Step 1. Step 1. Since T  N3 = B, go to Step 4. Step 4. Since i > 1, remove the last node 3 in S (i.e. S = {s, 1, 2}), i = i  1 = 2, N2 = N2 [ {3} = {3, t}, T = T [ {3} = {3, 4, t}, and go to Step 1. Step 1. Since node 4 2 T  N2 = {4} is adjacent to S = {s, 1, 2}, go to Step 2. Step 2. Since G(T  {4}, E(T  {4})) is a connected network, S [ {4} is a MCV and goes to Step 3. Step 3. Let i = i + 1 = 3, k = k + 1 = 5, U5 = S = S [ {4} = {s, 1, 2, 4}, P = P [ {U5} = {U1, U2, U3, U4, U5}, T = T  {4} = {3, t}, N3 = N2 = {3, t}, and go to Step 1. Step 1. Since T  N3 = B, go to Step 4. Step 4. Since i > 1, remove the last node 4 in S (i.e. S = {s, 1, 2}), i = i  1 = 2, N2 = N2 [ {4} = {3, 4, t}, T = T [ {4} = {3, 4, t}, and go to Step 1.

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

1703

Table 1 Final results of Example 1 i

Ui

Ci

0 1 2 3 4 5 6 7 8

{s} {s, 1} {s, 1, 2} {s, 1, 2, 3} {s, 1, 2, 3, 4} {s, 1, 2, 4} {s, 1, 4} {s, 2} {s, 2, 3}

{es1, es2} {es2, e12, e13, e14} {e14, e13, e23} {e14, e34, e3t} {e3t, e4t} {e23, e13, e34, e4t} {es2, e12, e13, e34, e4t} {es1, e12, e23} {es1, e12, e13, e34, e3t}

Step 1. Since T  N2 = B, go to Step 4. Step 4. Since i > 1, remove the last node 2 in S (i.e. S = {s, 1}), i = i  1 = 1, N1 = N1 [ {2} = {2, t}, T = T [ {2} = {2, 3, 4, t}, and go to Step 1. Step 1. Since node 3 2 T  N2 = {3, 4} is adjacent to S = {s, 1}, go to Step 2. The final result for finding and verifying all MCs using Algorithm 1 is listed in Table 1:

7. Conclusions Many systems, such as electric power distribution, transportation, etc. can be modeled as networks or into fault trees first so engineers can validate, verify their designs and evaluate system performance. Reliability is usually selected as one of the most important indices in many real world systems. Most of network reliability evaluation methods are formulated in terms of MCs. However, both the problems in locating all MCs and computing the network reliability in terms of the known MCs are NP-hard. Another way to define MC using the node set was presented in this study. A very simple and more efficient algorithm for finding all MCs between two special nodes with time a complexity O(jVj2jVj) was developed. The proposed algorithm was extended to find all MCs between all node pairs. The proposed algorithm is based on some simple theorems that characterize the structure of the MCV. Only a simple calculation is required for transforming the MCVs into MCs in the network. No identical MCVs are found using the proposed algorithm, i.e. there is no need to eliminate duplicated MCVs. This method is not only easier to understand and implement, it is also better than the existing best-known algorithm with a time complexity O(jV2j2jVj) for the MC problem between two special nodes and between all node pairs.

Acknowledgments I wish to thank both the chief editor and referees for their constructive comments and recommendations, which have significantly improved the presentation of this paper. This research was supported in part by the National Science Council of Taiwan, ROC under grant no. NSC 91-2213-E-035-029. References [1] F.S. Roberts, F.K. Hwang, Clyde Monma, Reliability of Computer and Communication Networks, DIMACS series in discrete mathematics and theoretical computer science, vol. 5, AMS/ACM publisher, 1991.

1704

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

[2] W.J. Ke, S.D. Wang, Reliability evaluation for distributed computing networks with imperfect nodes, IEEE Transactions on Reliability 46 (1997) 342–349. [3] T. Aven, Availability evaluation of oil/gas production and transportation systems, Reliability Engineering 18 (1987) 35–44. [4] T. Aven, Some considerations on reliability theory and its applications, Reliability Engineering and System Safety 21 (1988) 215– 223. [5] J. Malinowski, W. Preuss, Reliability evaluation for tree-structured systems with multistate components, Microelectronics Reliability 36 (1996) 9–17. [6] W.C. Yeh, A revised layered-network algorithm to search for all d-minpaths of a limited-flow acyclic network, IEEE Transactions on Reliability 47 (1998) 436–442. [7] W.C. Yeh, A simple approach to search for all d-MCs of a limited-flow network, Reliability Engineering & System Safety 71 (2001) 15–19. [8] W.C. Yeh, A simple algorithm to search for all d-MPs with unreliable nodes, Reliability Engineering & System Safety 73 (1) (2001) 49–54. [9] W.C. Yeh, Search for MC in modified networks, Computers & Operations Research 28 (2001) 177–184. [10] W.C. Yeh, Search for all d-mincuts of a limited-flow network, Computers & Operations Research 29 (13) (2002) 1843–1858. [11] W.C. Yeh, Search for minimal paths in modified networks, Reliability Engineering & System Safety 75 (3) (2002) 389–395. [12] W.C. Yeh, A simple method to verify all d-minimal path candidates of a limited-flow network and its reliability, International Journal of Advanced Manufacturing Technology 20 (1) (2002) 77–81. [13] W.C. Yeh, A MCS-RSM approach for the network reliability to minimize the total cost, International Journal of Advanced Manufacturing Technology 22 (9–10) (2003) 681–688. [14] W.C. Yeh, Search for all MCs in networks with unreliable nodes and arcs, Reliability Engineering & System Safety 79 (1) (2003) 95–101. [15] W.C. Yeh, Multistate-Node Acyclic Network Reliability Evaluation, Reliability Engineering & System Safety 78 (2) (2002) 123– 129. [16] C.J. Colbourn, The Combinatorics of Network Reliability, Oxford University Press, New York, 1987. [17] R.N. Allan, I.L. Rondiris, D.M. Fryer, An efficient computational technique for evaluating the cut/tie and common cause failures of complex systems, IEEE Transactions on Reliability R-30 (1981) 101–109. [18] J.M. Nahman, MPs and cuts or networks exposed to common-cause failures, IEEE Transactions on Reliability R-41 (1992) 76– 80, 84. [19] Y. Shen, A new simple algorithm for enumerating all minimal paths and cuts of a graph, Microelectronics Reliability 35 (6) (1995) 973–976. [20] G.B. Jasmon, K.W. Foong, A method for evaluating all the minimal cuts of a graph, IEEE Transactions on Reliability R-36 (1987) 538–545. [21] M. Bellmore, P.A. Jensen, An implicit enumeration scheme for proper cut generation, Technometrics 12 (4) (1970) 775–788. [22] H. Martelli, A Gaussian elimination algorithm for enumeration of cutsets in a graph, Journal of ACM 23 (1976) 58–73. [23] J.K. Biegel, Determination of tie sets and cut sets for a system without feedback, IEEE Transactions on Reliability R-26 (1977) 39–41. [24] M.O. Locks, Inverting and minimalizing pathsets and cutsets, IEEE Transactions on Reliability R-27 (1978) 107–109. [25] S. Rai, Comments on: Inverting and minimalizing path sets and cut sets, IEEE Transactions on Reliability R-32 (1979) 263. [26] S. Arumkumar, S.H. Lee, Enumeration of all minimal cutsets for a node pair in a graph, IEEE Transactions on Reliability R-28 (1979) 51–55. [27] S. Rai, K.K. Aggarwal, On complementation of pathsets and cutsets, IEEE Transactions on Reliability R-29 (1980) 139–140. [28] U. Abel, R. Bicker, Determination of all minimal cut-sets between a vertex pair in an undirected graph, IEEE Transactions on Reliability R-31 (1982) 167–171. [29] K.D. Heidtmann, Inverting paths and cuts of 2-state systems, IEEE Transactions on Reliability R-32 (1983) 469–471. [30] D.R. Shier, D.E. Whiled, Algorithms for generating minimal cutsets by inversion, IEEE Transactions on Reliability R-34 (1985) 314–319. [31] G.B. Jasmon, O.S. Kai, A new technique in minimal path and cutest evaluation, IEEE Transactions on Reliability R-34 (1985) 136–141. [32] G.B. Jasmon, Cutset analysis of networks using basic minimal paths and network decomposition, IEEE Transactions on Reliability 34 (1985) 303–307. [33] M.A. Samad, An efficient algorithm for simultaneously deducing minimal paths as well as cuts of a communication network, Microelectronics Reliability 27 (3) (1987) 437–441. [34] S.H. Ahmad, Simple enumeration of minimal cutsets of acyclic directed graph, IEEE Transactions on Reliability R-37 (1988) 484– 487. [35] S.S. Elias, N. Mokhles, S.A.N. Ibrahim, A new technique in a cut set evaluation, Microelectronics Reliability 33 (9) (1993) 1351– 1355.

W.-C. Yeh / European Journal of Operational Research 174 (2006) 1694–1705

1705

W.-C. Yeh is currently a professor of the Department of Applied Mathematics at National Chiayi University in Taiwan. He received his M.S. and Ph.D. from the Department of Industrial Engineering at the University of Texas at Arlington. His research interests include network reliability theory, graph theory, deadlock problem, and scheduling. He is a member of IEEE and INFORMS. He is listed in MARQUIS Whos Who in the World and MARQUIS Whos Who in Science and Engineering. He has published in prestigious journals such as Complexity International, Computers and Operations Research, Control and Intelligent Systems, IEEE Transactions on Reliability, International Journal of Advanced Manufacturing Technology, International Journal of Production Economics, International Journal of Production Research, International Transactions in Operational Research, Journal of Algorithms, Journal of Manufacturing Systems, and Reliability Engineering & System Safety.