A Novel OBDD-Based Reliability Evaluation Algorithm for Wireless Sensor Networks on the Multicast Model

The two-terminal reliability calculation for wireless sensor networks (WSNs) is a #P-hard problem. The reliability calculation of WSNs on the multicast model provides an even worse combinatorial explosion of node states with respect to the calculation of WSNs on the unicast model; many real WSNs require the multicast model to deliver information. This research first provides a formal definition for the WSN on the multicast model. Next, a symbolic OBDD Multicast algorithm is proposed to evaluate the reliability of WSNs on the multicast model. Furthermore, our research on OBDD Multicast construction avoids the problem of invalid expansion, which reduces the number of subnetworks by identifying the redundant paths of two adjacent nodes and s-t unconnected paths. Experiments show that the OBDD Multicast both reduces the complexity of the WSN reliability analysis and has a lower running time than Xing’s OBDD(ordered binary decision diagram-) based algorithm.


Introduction
Wireless sensor networks (WSNs) have important applications in many prominent areas, such as military, medical industry, and environmental health monitoring [1].All of these applications require a high level of reliability to operate safely and effectively [2].If the WSN is unreliable, the tasks may not be completed wasting sensor resources.In order to minimize the cost while maximizing the reliability, first evaluating the reliability is an indispensable step before the successful deployment of WSNs [3].
WSN communication can be divided into two categories: infrastructure communication and application communication [4].Infrastructure communication relates to transmitting the control and configuration messages from the sink to the sensors, while application communication relates to the transmission of the sensed data from the sensors to the sink.The infrastructure consists of sensors and their current deployment status; thus, infrastructure communication is needed to keep the network functional, ensuring robust operation even in hostile environments, while also optimizing the overall performance.Park and Sivakumar classify data delivery models into three models: sink to a single sensor node (unicast), sink to a group of sensors (multicast), and sink to all sensors (broadcast) [4].In this paper, in accordance with the reliability problem experienced by WSNs on the multicast model proposed by Shrestha et al. [5], we perform in-depth research on the algorithm used to evaluate the reliability of WSNs on the multicast model, namely, the terminal reliability of WSNs.
Computing the two-terminal reliability of WSNs is #Phard [6].Calculating the -terminal reliability for WSNs provides an even worse combinatorial explosion of node states with respect to the calculation of WSNs on the unicast model.
In effectively evaluating the reliability of large-scale WSNs, the process is more difficult using traditional methods, such as factoring, inclusion-exclusion algorithm, and the sum of disjoint products (SDP).Recently, an implicitly symbolic representation and manipulation technique, called a symbolic graph algorithm or symbolic algorithm [7,8], has emerged in order to combat or ease combinatorial state explosion.Ever since Akers proposed the binary decision diagram (BDD) [9] and Bryant popularized the use of BDD by introducing decision variable ordering and simplified rules [10,11], which make the BDD a canonical form (OBDD) for a Boolean function.Typically, symbolic algorithms based on OBDD are efficient methods in computing the network reliability.Yeh et al. [12] proposed an efficient approach to compute the reliability of an undirected -terminal network based on 2terminal reliability functions.The approach constructs the 2-terminal reliability functions of the ( − 1) terminal-pairs based on the edge expansion diagram using OBDD and then constructs the -terminal reliability function by combing these ( − 1) 2-terminal reliability functions with OBDD's "AND" operation.Ghasemzadeh [13] presented a method to analyze the -terminal reliability based on factoring using the "If-Then-Else(ITE)" operation of OBDD.Hardy et al. [14] studied -terminal network reliability using network decomposition based on edge deletion/contraction with OBDD and recognizes isomorphic subgraphs represented by boundary set in order to reduce redundant computations.However, Yeh, Ghasemzadeh, and Hardy's methods assumed edges were unreliable without considering the case of node failure.This assumption is impractical for WSNs; WSN's sensors have limited power and are usually deployed in inaccessible terrains and even hostile environments.As a result, the sensors are prone to failure as a result of energy depletion or the natural factors such as earthquakes and landslides.We cannot ignore the impact of node fault on the reliability of the WSN.So these studies cannot be directly applied to WSNs.Shrestha et al. [5] improved upon Yeh's algorithm [12] to analyze the reliability of WSNs on the multicast model under common cause failures, constructed the OBDD for the reliability function, and decreased the redundant computations from isomorphic subnetworks with the aid of a hash table.
In this paper, we focus on the WSN reliability analysis on the multicast model based on OBDD and node expansion.To evaluate the reliability, we have presented a symbolic algorithm named OBDD Multicast.OBDD Multicast finds the variable ordering of nodes using a breadth-first search (BFS), decomposes the WSN using node expansion to construct the OBDD using its "AND" and "OR" operations, and then combines these OBDDs using OBDD's "AND" operation to find the OBDD of the reliability function.OBDD Multicast reduces redundant computations by recognizing the redundant paths of two adjacent nodes and - unconnected redundant paths in addition to identifying isomorphic subgraphs.Experiments show that OBDD Multicast reduces the complexity of WSN reliability analysis by identifying the two types of redundant paths that lead to invalid expansions and has lower running time than Xing's OBDD-based algorithm.

The Model of a WSN on the Multicast Model.
The graph of a WSN should be drawn before constructing a model of the WSN.In this study, we assume all sensors belonging to a WSN were the same.We assumed if a sensor named A is in the communication range of a sensor B, then sensor B is also in the communication range of sensor A, in which case AboElFotoh's method [6] of transforming a WSN into an undirected graph is a better choice.Figure 1 shows the basic idea behind this method, where (a) is a wireless network and (b) is the corresponding graphic model.The figure shows a bidirectional edge exists between each node if they are in range of each other.The edge A-B in Figure 1(b) indicates that there is a communication path from A to B as well as from B to A. In this study, we use a unidirectional edge to represent the bidirectional edge.
Then, the WSN model on the multicast model is abstract to the following model based on an undirected graph obtained using AboElFotoh's method: where (1)  = (, ) is a graph with the set of nodes  = (V 1 , V 2 , . . ., V  ) and  = ( 1 ,  2 , . . .,   ), where  ⊂  ×  ( is the number of nodes and  is the number of edges), (2)  = ((V 1 ), (V 2 ), . . ., (V  )) denotes the set of operational probability of nodes with (V  ) denoting the operational probability of node V  and 0 ≤ (V  ) ≤ 1, (3)  is the sink of the WSN, (4)  = ( 1 ,  2 , . . .,   ) is the set of target in the WSN on the multicast model, where  is the number of the target and 2 ≤ .

The Problem of WSN Reliability.
In this paper, we studied the infrastructure communication reliability of a WSN.Below are the assumptions made to evaluate reliability in our analysis: (1) edges between two nodes are perfect; (2) nodes failures are statistically independent; (3) the fault-tolerant clustering protocol is executed to keep the topology.
With the assumption that the links are imperfect, this type of structure would rapidly increase the complexity in order to compute the reliability of WSNs.In this study, we assume that the links are perfect for the convenience of studying them; however, our future work will investigate the evaluation of WSN reliability with imperfect nodes as well as imperfect links.Based on the above assumptions some definitions are presented as follows.
Definition 1 (Reliability).The reliability is the probability that the special elements will accomplish a required task within a time threshold [15].In this study, the reliability of a WSN is an important measure in evaluating the performance of a WSN.Definition 2. The reliability of the WSN is the probability that there exists an operational path between the sink node and every node in the set of target nodes.Definition 3. Given the WSN network  = (, , , ), using random vector  = ( 0 ,  1 , . . .,  −1 ) and  = ( 0 ,  1 , . . .,  −1 ) to, respectively, express the working state of the network's  nodes and  edges, and using (, ), to express the state of network , then the reliability of the network 's Boolean function is if  is at the state (, ) , exists an operational path between  and every node in  0, else. (2) The reliability of a WSN under the multicast model is where Ω is the Cartesian product ( × ), which is the state space of the network.

Ordered Binary Decision
Diagram.An ordered binary decision diagram (OBDD) [10,11] provides a compact, canonical, and efficiently manipulative representation for Boolean functions.
An OBDD for a nonconstant Boolean function ( 1 ,  2 , . . .,   ) is a directed acyclic graph.The characteristics of the OBDD can be summarized as follows: (1) an OBDD has three types of nodes: root, terminal, and internal.The root node has no parent or is without input arcs, the terminal nodes have no child or out arcs, and the internal nodes have two outgoing arcs; (2) the root node of an OBDD represents the function ; (3) there are two terminal nodes "0" and "1, " which represent constant Boolean functions 0 and 1; ( (5) given the variable ordering  :  1 <  2 < ⋅ ⋅ ⋅ <   , variables in an OBDD are ordered and all the paths in the OBDD keep the same variable ordering.
Given a Boolean function and any assignments to its variables, the function value is determined by tracing a path from the root to a terminal node following the appropriate branch from each node.The branch depends on the variable value of the assignments, and the function value under the assignments is determined by its path's terminal node.
For example, Figure 2 shows the binary and the OBDD for the Boolean function  =  1 ⋅  2 +   2 ⋅  3 , in which the variable order is  :  1 <  2 <  3 .It is obvious that the OBDD is a directed acyclic graph and stores the same information more compactly.We trace the path A → B → D → F and reach the terminal node 1.Thus, the value of the function  =  1 ⋅  2 +   2 ⋅  3 of variable assignment (0, 0, 1) is 1.

Symbolic Formulation of the WSN on the Multicast Model.
We convert a WSN on the multicast model,  = (, , , ), to a symbolic OBDD form by encoding the vertices of  with a length- binary number, where  = ⌈log 2  num ⌉ and  num was the number of the vertices.Each encoded vertex of  corresponded to a vector of binary variables  = ( 0 , . . .,  −1 ).The edge (V  , V  ) ∈  of  can be represented by a binary vector (, ) = ( 0 , . . .,  −1 ,  0 , . . .,  −1 ), where  = ( 0 , . . .,  −1 ) and  = ( 0 , . . .,  −1 ) are the binary encodings of vertex  and vertex , respectively.The connecting relation between two nodes can be represented using the following characteristic function: This function implies the relationship between the nodes and edges of the WSN.
In this study, we assume that the operational probability of all the nodes was 0.9.Then,  in  do not need to be represented by the Boolean function.Sensor reliability is closely related with the sensing subsystem, the processing subsystem, the communication subsystem, and the power supply subsystem of the WSN.Modeling and evaluating the sensor node reliability will be performed in our future works and will not be discussed in this study.
The source node, namely, the sink node of the WSN, can be represented by the following characteristic function: Similarly, the target nodes can be represented by the following characteristic function: Thus, a WSN  = (, , , ) can be formulated using ((, ), (), ()).Then the characteristic functions are Boolean functions and can be compactly formulated using OBDDs.For example, OBDDs for the WSN in Figure 3(a) are shown in Figures 3(A), 3(B), and 3(C).Node 1 is the source node, and nodes 3 and 4 are the target nodes.Figure 3(b) gives the encoding of vertices and edges and the adjacency matrix of Figure 3(a), where the encoding below "encoding" is encoding of nodes in Figure 3(a).In the adjacency matrix,  0 and  1 are used to sign the starting node of an edge in the network, and  0 and  1 are used to sign the subsequent node.Using "0" is to express there is no edge between two nodes and using "1" is to express there is an edge between two nodes.For example, the first line and the second column in adjacency matrix have a value of 1, expressing there is an edge between node 1 and node 2.

The Symbolic OBDD Multicast Algorithm. The size of an
OBDD is sensitive to variable ordering.It also dictates the performance of subsequent operations and the actual reliability calculation, also known as the order in which the WSN nodes are taken into account when calculating the reliability.However, finding the best ordering is an intractable task.Therefore, heuristics have been used to obtain reasonably good sequences.The BFS heuristic [14] typically outperforms other heuristics; in this study, such a method was used to order the variables.
The key ideas supporting the OBDD Multicast algorithm are as follows: the variable ordering for the WSN nodes is obtained by BFS, the OBDD of the WSN's reliability on the multicast model is constructed, and the reliability is computed by traversing the OBDD.

Ordering the Variables in a Breadth-First Manner.
In this step, a WSN ((, ), (), ()) is visited in a BFS in order to obtain the variable ordering of the WSN.Pseudocode 1 shows the high-level pseudocode used to obtain the variable ordering.This step is started by initializing the OBDD ℎ() = 0, which is used to store the vertices that are not visited, initializing the vertices of the first layer [0]() = (), and initializing the OBDD () = ().This step then iterates through a sequence of sweeps.A single sweep consists of the following steps.
(1) Store the vertices and edges on each layer by visiting the WSN starting from the source node () with the function Store Vertices Edges on Layer (Line 6).
(2) Order the source node () using the function Order Vertices s (Line 7).
(3) Select all the edges connected with (), whose successor nodes are not visited using the function Select Edges (Line 11).
(4) Order the vertices connected with (), that is, not the source node by the function Order Vertices Connected (Line 13).
In Order Vertices s, the variable labeling the OBDD () is obtained, which is used as the subscript of the array ; the number 1 is then assigned to this array  with the subscript; that is, where the function  is to obtain the mark number of the OBDD ().After Order Vertices s, the vertex () has been ordered, and its variable number becomes 1.
In Select Edges, in order to obtain the variable ordering of the vertices on level , namely, [](), one vertex is selected from the sets [ − 1]().The edges of the sets [ − 1](, ), from which all edges connected with the vertex selected from [ − 1](), are selected and stored in (, ); that is, where the function () represents the selection of one minimum term from the function .
After Select Edges, all edges that connect with the vertex selected from [ − 1]() are selected, as well as those whose successor nodes have not been visited.Then, using the function Order Vertices Connected, we can obtain the variable ordering of the vertices from the sets [ − 1]() to which the edges selected by Select Edges are connected.
The key of Order Vertices Connected is to select one vertex and order this vertex.A priority function is used in order to solve the node-matching problem for each layer of the WSN.The priority function is as follows: Π(, , ) : {0, 1}  × {0, 1}  × {0, 1}  → {0, 1}.The first argument is the bias, and the other two arguments are the nodes to be compared.For each choice of , Π returns 1 if the second argument precedes the third; otherwise, 0 is returned.In this study, the first priority function Π(, , ) = ‖−‖ < ‖−‖ is called the relative proximity function and returns the result of testing ‖−‖ < ‖−‖, where ‖−‖ is defined as follows: is the number of elements in the vectors , , and .
Order Vertices Connected starts from a given edge (, ) and a given order number, namely, .The order number of the vertex selected by the prior function is stored where (, ) is the subgraph of (, ) and each vertex of (, ) has most one outgoing edge.The successor node of the edge (, ) is obtained using the function ∃(, ).
If [ − 1]() = 0 is satisfied in some layers, all nodes in []() are ordered, and a new loop  is started.

Construct the OBDD of the Reliability Function.
This step uses the variable ordering which has been obtained using the function Get Variable Ordering.Pseudocode 2 shows the high-level pseudocode of Construct OBDD Reliability.The Construct OBDD Reliability is begun by initializing the variable  () = () and implemented through a series of recursive operations.Briefly, one recursion consists of the following steps.
(1) Construct the OBDD of the current subnetwork when the current source vertex () belongs to the sets of targets, namely, (), by procedure Construct OBDD t (Line 2).(2) Remove the redundant vertices to avoid the inefficient manipulation (Line 4).A vertex other than the source and target vertex is named a redundant vertex if only one edge is connected to it.(3) Select all vertices connected to the variable  (), belonging to the set of target vertices (Line 7).(4) Execute node expansion, and obtain subnetwork   → V (Line 8).To perform this expansion, the current source is merged into its adjacent node, which belongs to the sets ().(5) Construct the OBDD of   → V obtained using Node Expansion t, and return this OBDD (Line 9).( 6) Execute Boolean operations on OBDD to construct the OBDD of the current network by Construct OBDD Subpath (Line 10).( 7 After Remove Redundant Vertices, the redundant vertices have been deleted, and the simplified network (, ) is obtained.
In Select Vertices in T Connected s, all vertices, namely,  V(), which are connected to the variable  () and belong to the set of target vertex (), are obtained through the following equations: Then the node expansion is executed, and the subnetwork   → V of the current network is obtained using the procedure Node Expansion t.First, Node Expansion t computes the mark number of the variable  ().Second, all edges connected to  () are searched.Then these edges are deleted to obtain the subnetwork   → V .Finally, the source node of   → V is selected from the set  V() obtained by Select Vertices in T Connected s.The subnetwork   → V is computed as follows:  After Node Expansion t, we can obtain the new subnetwork   → V , namely, (, ), whose source node is  ().We then construct the OBDD of subnetwork   → V using the recursive function Construct OBDD Reliability.What this function returns is stored in the OBDD  [𝑖].
In Construct OBDD Subpath, the OBDD of the current subnetwork is computed, starting with the OBDD [] and the mark number , obtaining variable number of , combining the OBDDs of the nodes in the same path by the "AND" operation of OBDD, and combining the OBDDs of the nodes in different paths by the "OR" operation of OBDD; that is, where  is the variable number of ,   is the "AND" operation of OBDD, and   is the "OR" operation of OBDD.
In Remove Redundant Path Two Adjacent Vertices, the redundant paths between () and  () are deleted as follows: In Select Vertices Connected s, all edges connected to the source vertex () are computed, and then the successor nodes of these edges are obtained; that is, where (, ) are the edges connected to the vertex () and () are the successor nodes of these edges.
After Select Vertices Connected s, the operations of node expansion are then executed using Node Expansion.We obtain the set of vertices, namely, ().To execute this expansion, one vertex V  is selected from (), and the source vertex is then merged into the vertex V  ; next, all edges incident to the source node are deleted; that is, After Node Expansion, we obtain the variable number  of source node (), the new source vertex  (), and the new subnetwork   → V  , namely,  1 (, ).Then, we construct the OBDD of subnetwork   → V  using the recursive function Construct OBDD Reliability.What this function returned is then stored in the OBDD  [𝑖].We have the same operations of Construct OBDD Subpath to construct the OBDD of paths; the operations in Line 15 are the same as in Line 10.
Next, we delete the redundant paths between two adjacent vertices.This work is similar to the operations in Line 11.
When  V() is 0, we are able to obtain the OBDD of the current subnetwork, namely,  [].Finally, the array  , returned using the Construct OBDD Reliability function, stores the OBDD of each path from source vertex of original network to every target node.
The OBDD (the  in Pseudocode 4) of the reliability of the WSN on the multicast model is obtained by applying the "AND" operation of OBDD to the array  .Pseudocode 4 shows the high-level pseudocode of these operations.

Compute the Reliability of the WSN on the Multicast
Model.After the OBDD for the WSN's reliability on the multicast model is obtained, a breadth-first is used to visit the OBDD and to compute the reliability.The reliability is computed starting from the root node, and the probability value of the parent node is multiplied with the probability of the node itself and assigned to each child node.The probability of the root node itself is initialized to 1.We use the following equation to compute the reliability: where  is the operational probability of the vertex of the WSN and () represents the probability of the node "" itself.We traverse each node only once so the complexity was (), where  equals the number of the nodes.Pseudocode 5 shows the high-level pseudocode of the algorithm.

An Illustrated Example.
To illustrate the basic principles of the proposed approach for the WSN reliability analysis, a benchmark network is considered.Figure 4 shows the graph of the sample WSN system.The sink vertex is node 4, and the target vertices are nodes 7 and 8.The process of constructing the OBDD of the reliability function by OBDD Multicast is shown as follows.
Step 3. To order source node 4, the function Order Vertices s (Line 7 in Pseudocode 1) is used.Then, the variable number of node 4 is 1.
Step 4. To select all the edges connected with node 4, whose successor nodes have not been visited, the function Select Edges (Line 11 in Pseudocode 1) is used.We are then able to obtain the edges, which are { 4 ,  6 ,  7 }.Step 5.For every edge in { 4 ,  6 ,  7 }, use the function Order Vertices Connected (Line 13 in Pseudocode 1) to obtain their successor nodes and order these nodes.The successor nodes are nodes 2, 5, and 6; the variable numbers of these nodes are 2, 3, and 4, respectively.
Step 6.For every node in  [1]() = {2, 5, 6}, select one vertex from this set and obtain all edges, whose successor nodes are not visited, connected with the vertex.First, select node 2, and { 1 ,  3 } is obtained using the Select Edges (Line 11 in Pseudocode 1).Next, obtain the successor nodes {1, 3}, and order these nodes using Order Vertices Connected (Line 13 in Pseudocode 1).Then, the variable numbers of nodes 1 and 3 are 5 and 6, respectively.Second, node 5 is selected, and  8 is obtained using Select Edges.Next, obtain successor node 7, and order these nodes using Order Vertices Connected (Line 13 in Pseudocode 1).Then, the variable number of node 7 is 7. Finally, select node 6, and  10 is obtained using Select Edges.Then, obtain successor node 8, and order these nodes by Order Vertices Connected (Line 14 in Pseudocode 1).The variable number of node 8 is 8. Finally, the variable ordering is obtained; that is, Π4 < 2 < 5 < 6 < 1 < 3 < 7 < 8.
Step 7. Figure 6 shows the network decomposition of the benchmark network when the OBDD of the reliability function is constructed.The network is then decomposed starting from node 4 by node expansion.Apply "AND" of OBDD to the nodes on the same path from source vertex to the same target node, and apply "OR" of OBDD to the nodes on different paths from source vertex to the same target node.From Figure 6, we can see that there are two paths from node 4 to node 7, namely, 4 → 6 → 7 and 4 → 5 → 7, and there is one path from node 4 to node 8, namely, 4 → 6 → 8.The operations for these nodes on these paths are shown in Figure 7.
Step 8. To obtain the OBDD of the reliability function, "AND" is applied for the OBDDs in (c) and (d) of Figure 7.The result OBDD is shown in Figure 8.
We can then compute the reliability with the result OBDD.For convenience of calculations, we have assumed that the operational probability of all sensors is 0.9.The reliability of sensors is closely related with the sensing subsystem, the processing subsystem, the communication subsystem, and the power supply subsystem of the WSN.Modeling and evaluating the reliability of the sensor node are the work we will explore in our future and will not be discussed in this paper.The process of computing the reliability is attached to Figure 8. From this figure, we can see that reliability = 0.6561.To obtain the reliability of the WSN, each node of the OBDD is traversed only once.The complexity is (), where  is the number of the nodes of the OBDD.
Figure 6 shows the network decomposition by OBDD Multicast and Figure 9 shows the network decomposition using Xing's method.By comparing the two figures, we can see that OBDD Multicast avoids the invalid expansion, which reduces the number of subnetworks by identifying the

Experimental Results
The symbolic algorithm proposed in this paper is implemented in Windows XP and the software package CUDD [16], developed by the University of Colorado.CPU time is in seconds at 2.80 GHz with 3 GB of memory.
In the experiments, the OBDD Multicast is compared with Xing's OBDD-based algorithm.We chose 3 ×  networks (there are three lines, with  nodes in each line) as  1, where "reliability" in column 3 denotes the reliability of these benchmark networks, which is obtained using Xing's algorithm and OBDD Multicast, "XOBDD" denotes the running time for Xing's algorithm, and "OBDD Multicast" denotes the running time for OBDD Multicast."0" in Table 1 denotes that the running time was lower than 0.000001 s, and "-" denotes that the running time was longer than half an hour.The reliability computed using Xing's algorithm and OBDD Multicast is the same.The experiments indicate the fact that OBDD Multicast is correct; furthermore, it can be observed that the symbolic OBDD Multicast outperformed Xing's algorithm.However, on smaller scale networks (such as 3 × 3 and 3 × 4 networks in Figure 10), the running times for Xing's algorithm and OBDD Multicast were the same.However, with the increase in the scale of the networks, the disparity of the running times likewise grew.This is especially true for a 3 × 9 network; the time cost of Xing's algorithm exceeds half an hour, while the OBDD Multicast's cost is only 113.14 s.OBDD Multicast avoids the invalid expansion, which would have reduced the number of subnetworks Mathematical Problems in Engineering    by identifying the redundant paths of two adjacent nodes and - unconnected paths.This comparison shows that OBDD Multicast reduces the complexity of WSN reliability analysis and had a lower running time than Xing's OBDDbased algorithm, and OBDD Multicast could efficiently evaluate the reliability of the WSN.

Conclusions
In this paper, an efficient OBDD-based algorithm, OBDD Multicast, is proposed to evaluate the reliability of the WSN on the multicast model.The OBDD Multicast's advantages lie in that the OBDD Multicast avoids invalid expansion by reducing the number of subnetworks through identifying the redundant paths of two adjacent nodes and - unconnected paths.Experiments shows OBDD Multicast has a lower running time compared to Xing's OBDD-based algorithm; and OBDD Multicast was also efficient for the reliability evaluation in larger scale WSNs.In this paper, we assume the operational probability of sensors was 0.9 and focus on the reliability of the WSN at the system-level.
Modeling and evaluating the reliability of the sensor, namely, evaluating the WSN at the component-level, are part of our future work, which also includes evaluating the reliability of WSNs with imperfect nodes as well as imperfect links.

Figure 1 :
Figure 1: (a) A wireless network; (b) the corresponding graph model.

Figure 7 :
Figure 7: Operations for the nodes on the paths.

Figure 8 :
Figure 8: The OBDD of the reliability function and the process of computing reliability.

Table 1 :
The reliability of the WSNs and their computing time.Figure10shows this type of network.Gray nodes indicate the source and target nodes, specifically where node 3 is the source node and the other gray nodes are target nodes.The results are shown in Table