Binary-Addition Tree Algorithm-Based Resilience Assessment for Binary-State Network Problems

: Applications in real life are composed of di ﬀ erent kinds of network systems; these networks may be interfered by uncontrollable or unpredictable disruptive events involving natural disasters, human errors, evil-intentioned attacks, or other disturbances. Any of these disruptive events will cause networks to malfunction and possibly result in large economic losses. As a result, it is important to assess network resilience which is a measure to describe how a network system recovers its performance and functionality to a satisfactory level from a disruptive event. Inspired by the measures of reliability evaluation used in binary-state networks, this paper proposes a binary-addition tree algorithm-based resilience assessment for binary-state networks and applies it on a wildﬁre network with wireless sensors. Considering the stochastic nature of disruptive events, the proposed binary-addition tree algorithm-based resilience assessment comprehensively enumerates all the possible disruptive events and all the corresponding recovery strategies, and then calculate the network resilience. Furthermore, recovery cost limit is concerned in this paper for decision makers who choose the recovery strategies with their recovery cost limit and resilience requirement.

Since not all these disruptive events can be accurately predicted and completely prevented, resilience of network systems has become a crucial measure recently [1][2][3]5,[9][10][11][12][13][14][15]. There are two major issues in resilience assessment of a network: network resilience and component importance measures. Network resilience is applied to assess the ability of a network system to recover its performance and functionality to a satisfactory level from a disruptive event [10][11][12][13][14][15]. Component importance measures are to identify the components which have great significant impact on the system performance once they failed in a network system [10,16,17].

Notations n, m:
numbers of nodes and arcs, respectively V: node set V = {1, 2, . . . , n} E: arc set E = {a 1 , a 2 , . . . , a m } e i,j : directed arc between nodes i and j a k : kth directed arc in E D: binary-state network with the success probability of each arc G(V, E): A graph with the source node 1, the sink node n, V, and E. For example, Figure 1 shows a graph with the source node 1, the sink node 4, V = {1, 2, 3, 4} and E = {a 1 = e 1,2 , a 2 = e 1,3 , a 3 = e 2,3 , a 4 = e 2,4 , a 5 = e 3,4 , a 6 = e 2,1 , a 7 = e 3,1 , a 8 = e 4,2 , a 9 = e 4,3 }. Note that all the graphs in this study are directed, e.g., a 3 = e 2,3 represents that the arc e 2,3 is from node 2 to node 3 with an arrow. Since there is no e 3,2 , there is no arc e 3,2 from node 3 to node 2. And the arcs with no arrow represents that the arcs are bidirectional, e.g., a 1 = e 1,2 and a 6 = e 2,1 .

G(V, E, D):
A graph G(V, E) becomes a binary-sate network with the success probability of each arc, represented as G(V, E, D). full recovery cost for the network recovery to the original network status, and partial recovery cost for the network recovery to the better network status, respectively. For example, Figure 1 is a binary-state network G(V, E, D) with Pr(a), Pr'(a), C(a), and C'(a) which are presented in Table 1. the ratio of the disruptive effect on the performance to original state's performance of the failed arc set I 2 : the ratio of the recovery effect on the performance to original state's performance of the failed arc set I: component importance, where component can be the failed arc set ϕ: resilience of binary-sate network G(V, E, D) after the network experiences disruptions and recovery strategies with recovery cost limit c. c: recovery cost limit X: state vector whose ith element represents the state of a k for k = 1, 2, . . . , m. i.e., X = {X(a 1 ), X(a 2 ), . . . , X(a m )} X(a i ): state (value) of the a i (the ith element) in X Pr(X(a i )): occurrence probability of a i when its state is X(a i ) Pr(X): Pr(X) = Pr(X(a 1 ))·Pr(X(a 1 ))· . . . ·Pr(X(a m )) G(X): The subgraph corresponding to state vector X such that G(X) = G(V, {a∈E | for all a with X(a) = 1}); e.g., X = (1, 1, 1, 1, 1, 0, 0, 0, 0), the graph of G(X) is depicted in Figure 2. n p : The minimal number of arcs that connects the graph from node 1 to node n; e.g., {a 1 , a 4 } and {a 2 , a 5 }, so n p = 2. n c : The minimal number of arcs that disconnects the graph from node 1 to node n; e.g., {a 1 , a 2 } and {a 4 , a 5 }, so n c = 2.
The minimal number of arcs that connects the graph from node 1 to node n; e.g., {a and {a2, a5}, so np = 2. The minimal number of arcs that disconnects the graph from node 1 to node n; e.g a2} and {a4, a5}, so nc = 2.   The success probability that there is one direct path from node 1 to node n binary-sate network erability: A kind of reliability that considers the network with disruptive events verability: A kind of reliability that considers the network with recovery strategies ience: The capability for the network to recover from disruptions. ected vector: A state vector X is connected if nodes 1 and n are connected and there is at one path without redundant arcs in G(X).  Table 1. Arc success probability and recovery cost in Figure 1.   The success probability that there is one direct path from node 1 to node n binary-sate network rability: A kind of reliability that considers the network with disruptive events erability: A kind of reliability that considers the network with recovery strategies ence: The capability for the network to recover from disruptions. ected vector: A state vector X is connected if nodes 1 and n are connected and there is at one path without redundant arcs in G(X).
ssumptions here is no situation with failed nodes. ach arc only has two situations in the binary-state network.

Nomenclatures
Reliability: The success probability that there is one direct path from node 1 to node n in a binary-sate network Vulnerability: A kind of reliability that considers the network with disruptive events Recoverability: A kind of reliability that considers the network with recovery strategies Resilience: The capability for the network to recover from disruptions. Connected vector: A state vector X is connected if nodes 1 and n are connected and there is at least one path without redundant arcs in G(X).

Assumptions
(1) There is no situation with failed nodes.
(2) Each arc only has two situations in the binary-state network.
(3) The connected network has no parallel arcs or loops. (4) The success probability of each arc is independent according to the given distribution. (5) The network can recover to the original network status (recover perfectly) with full recovery cost or to the better network status (recover imperfectly) with partial recovery cost

Methodological Background
In Section 3, this study introduces the research most related topics including network resilience and resilience-based component importance measures.

Network Resilience
There are different definitions for resilience with different domains [12], such as "the inherent ability and adaptive response that enables firms and regions to avoid maximum potential losses" given by Rose for the economic domain [14], or "the sum of passive survival rate (reliability) and proactive survival rate (restoration) of a system" by Youn et al. for the engineering domain [15]. In engineering domain, reliability is always considered to be an important measure of resilience [12].
For distinct systems, the general definition and the critical part of resilience are the ability for a system to recover from disruptions, that is, to "absorb" disruptive events, and to "recover" to original or functional system state [12]. From these definitions of resilience, we elaborate the absorbing ability as "vulnerability", and the recovery ability as "recoverability". Concepts for vulnerability and recoverability in the resilience issue are also adapted by Pant et al. in the time-dependent systems [11,13] and applied to other studies such as infrastructure systems and component importance measure [11].
However, the specific definition for the resilience depends on the problem we are solving. In a binary-sate network we are considering, reliability is the success probability that there is one direct path from node 1 to node n. Vulnerability and recoverability are also kinds of reliability which consider the network with disruptive events and recovery strategies, respectively. Moreover, based on the resilience definitions of Pant et al. [13], Rocco et al. [11] and our needs, resilience ϕ in Equation (1) is the average ratio of recovery to loss under the maximum recovery reliability requirement and the recovery cost limit c: where S i , s, R 0 , R d , and R r represent the failed scenario, total number of the failed scenario, the time points t 0 , t d , and t r we calculate the reliability, vulnerability, and recoverability, respectively. Figure 3 summarizes different states in a resilience network system over time [11,13]. At time point t 0 , performance of the original system state is reliability R 0 . A disruptive event occurs at time point t e , and ends at time point t d . Vulnerability R d is the ability of the system withstanding the disruption. After disruption, the system now is in the disrupted state and maybe needs to wait for recovery until time point t s . Finally, at time point t r , the system recovers to the recovered state with recoverability R r .

Resilience-Based Component Importance Measures
In a resilient network, the issues of the resilience-based component importance measures are also emphasized recently [10]. There are three aspects to evaluate the component importance based on resilience concepts: one aspect is from the disruptive effect of failed components such as Ramirez-Marquez [16] and Barker et al. [17], another aspect is from the recovery effect of failed components, the other is from both disruptive and recovery effect of failed components such as Xu et al. [10]. Based on three aspects, we list Equation (2), Equation (3) and Equation (4) for failed arc set A, respectively. In Equation (2), I 1 (A d (S i )) is the ratio of the disruptive effect on the performance to original state's performance of failed arc set A d in the corresponding scenario S i . In Equation (3), I 2 (A d (S i ), A r (S i )) is the ratio of the recovery effect on the performance to original state's performance of failed arc set A d and recovered arc set A r (S i ) in the corresponding scenario S i , where A r (S i ) ⊆ A d (S i ).
Electronics 2020, 9, x FOR PEER REVIEW 6 of 21 Figure 3. Different states in a resilient network over time [11].

Resilience-Based Component Importance Measures
In a resilient network, the issues of the resilience-based component importance measures are also emphasized recently [10]. There are three aspects to evaluate the component importance based on resilience concepts: one aspect is from the disruptive effect of failed components such as Ramirez-Marquez [16] and Barker et al. [17], another aspect is from the recovery effect of failed components, the other is from both disruptive and recovery effect of failed components such as Xu et al. [10]. Based on three aspects, we list Equation (2) However, if we consider Equations (2) and (3) at same time as Equation (4), we can find Equation (4) is similar to Equation (1) which is the definition of the resilience. The only different between Equation (1) and Equation (4) is their target of evaluation are not the same. In Equation (4), component importance I evaluate the specific failed components (i.e., failed arc sets) in a scenario. In Equation (1), resilience evaluate the whole system. It is understandable that if the whole system can be assessed by resilience , component importance in the system also can be measured. Thus, we apply Equation (4) as our resilience-based component importance measure: Furthermore, aforementioned resilience in Equation (1) can be written as Equation (5):

BAT
The binary-addition tree algorithm (BAT) proposed by Yeh in 2020 [18] aims to directly compute the network reliability of a binary-state network. BAT is proved that its time complexity, ( 2 2 2 ), is less than that of the current popular indirect algorithms, ( 2 2 2 ⋅ ) [18]. Furthermore, BAT is  Figure 3. Different states in a resilient network over time [11].
However, if we consider Equations (2) and (3) at same time as Equation (4), we can find Equation (4) is similar to Equation (1) which is the definition of the resilience. The only different between Equation (1) and Equation (4) is their target of evaluation are not the same. In Equation (4), component importance I evaluate the specific failed components (i.e., failed arc sets) in a scenario. In Equation (1), resilience ϕ evaluate the whole system. It is understandable that if the whole system can be assessed by resilience ϕ, component importance in the system also can be measured. Thus, we apply Equation (4) as our resilience-based component importance measure: Furthermore, aforementioned resilience ϕ in Equation (1) can be written as Equation (5):

BAT
The binary-addition tree algorithm (BAT) proposed by Yeh in 2020 [18] aims to directly compute the network reliability of a binary-state network. BAT is proved that its time complexity, O(n 2 2 n 2 ), is less than that of the current popular indirect algorithms, O(n 2 2 2 n·n ) [18]. Furthermore, BAT is coded more easily than the other existing algorithms [18], including indirect algorithms such as depth-first search (DFS) [29], the heuristic method [35], and the universal generating function method [25,36,37], and direct algorithms such as the state-space algorithm and the binary-decision diagram (BDD) [26,31,32].
The indirect algorithms also called the MP-based algorithms since they find MP first. However, different from the indirect algorithms, BAT uses a simple binary-addition tree to list all the possible solutions which also called state vectors instead find all the MPs first. Then, the connected vectors are screened out from these state vectors by the PLSA. Reduction methods in BAT are applied to reduce unnecessary computations. The network reliability is thus achieved by summing up the probabilities of all the events composed of the connected state vectors. Details of the binary-addition tree, the Path-based Layered-Search Algorithm (PLSA), the reduction methods, and the method to calculate the probabilities of the connected vectors are presented in this section.

Binary-Addition Tree
In the BAT, an easy understanding binary-addition tree is used to develop all the possible state vectors at first. Elements of a state vector equals either 0 or 1 and stands for the state of the related arc, e.g., X is a state vector in the original graph G and the value of its ith element is X(a i ), i.e., X = {X(a 1 ), X(a 2 ), . . . }. For example, if X(a i ) equals one, arc a i exists in subgraph G(X). All the state vectors are generated by adding 1 based on the first state vector, and stop generating until all the elements are 1. There are no duplicated state vectors since the sequence of the arcs in all the state vectors are identical. Moreover, each arc has two states 1 or 0 and there are at most m arcs in a state vector, and thus the time complexity of the binary-addition tree to list all possible state vectors is The Algorithm 1 is the pseudocode to describe the abovementioned procedures for a binary-addition tree. [18] Input: G(V, E). Output: All possible state vectors X without duplications. STEP a. Let SUM = 0, k = 1, and X 1 = X be a zero vector with m elements.

Algorithm 1. Pseudocode for binary-addition tree
, and proceed to STEP e. STEP d. Let X(a i ) = 0. If i > 1, let i = i − 1 and proceed to STEP c. STEP e. If SUM = m, stop and X 1 , X 2 , . . . , X k are all possible state vectors. Otherwise, proceed to STEP b.

PLSA
The path-based layered-search algorithm (PLSA) is used to verify the connectivity of each state vector before computing the network reliability. In the PLAS, nodes are verified layer-by-layer, and nodes reached from node 1 to the current layer L i store in an ordered vertex subset V l . V l = L 1 ∪L 2 ∪ . . . ∪L k , where the initial layer L 1 = {1} and the current layer The state vector is connected if node n belongs to the current layer L i ; otherwise, the state vector is disconnected if node n does not belong to the current layer L i . In verifying whether a state vector is connected, there are at most n nodes in V l , and thus the time complexity of the PLSA is O(n). The Algorithm 2 is the pseudocode to describe the abovementioned procedures for PLSA. [18] Input: A state vector X obtain from the binary-addition tree Output: Whether X is connected or disconnected STEP a. Let i = 2 and

Algorithm 2. Pseudocode for PLAS
, and go to STEP b

Reduction Methods
Computation efficiency of the BAT is improved by reduction methods. Reduction methods are applied in the network to remove the impossible solutions by reducing the number of arcs Electronics 2020, 9, 1207 8 of 21 and to reduce number of connectivity verifications by applying the minimal number of connected or disconnected arcs.
(a) Reduce Number of Impossible Solutions The arc from the sink node (node n) to the source node (node 1) does not exist in a directed (1, n)-path. Therefore, these arcs impossible to be used are removed from the original network, without effect on the reliability results. (b) Reduce Number of Connectivity Verifications A directed connected or disconnected network has a number of arcs larger than or equal to n p and n c , respectively. Hence, if the numbers of state 1 s and 0 s in the state vector X are smaller than n p and n c , nodes 1 and n are disconnected and connected in the network, respectively.
For both two parts of reduction, since it is only to scan one time for each state vector, the time complexity of the reduction methods for a state vector is O(1).

Calculation of Binary-State Network Reliability Using Connected State Vectors
In the BAT, the final step is to calculate the binary-state network reliability according to all the state vectors acquired from previous steps.
The product of the reliabilities of the working arcs, Pr X i a j = 1 , and the un-reliabilities of the failed arcs, Pr X i a j = 0 , is the probability of the state vector X, i.e.: Pr For all the possible state vectors (connected or disconnected), we have: R is the reliability of the binary-state network which sums all the probabilities of connected state vectors X, which represents nodes 1 and n are connected in G(X): Moreover, there are at most m arcs in a state vector, and thus the time complexity of the reliability computation for a state vector is O(m) = O(n 2 ), where m = n 2 . In summary, from the four main procedure of the BAT in this section, the time complexity for the BAT to achieve the binary-state reliability is O((1 + n + m)2 m ) = O( 1 + n + n 2 2 n 2 ) = O(n 2 2 n 2 ).

Proposed BAT-Based Resilience Assessment
The procedure for the proposed BAT-based resilience assessment for evaluating the reliability of original network, the vulnerability of disruptive network, the recoverability of the recovered network, the component importance measure, and the resilience of the overall network is presented in Section 5.1. A demonstrated example is presented in Section 5.2.

BAT-based Resilience Assessment
The step-by-step procedure of the proposed BAT-based resilience assessment based on the BAT in Section 4 is presented as Algorithm 3.
Algorithm 3: Procedure of the BAT-based Resilience Assessment: to evaluate the binary-state network resilience.
Input: G(V, E, D), recovery cost, and the recovery cost limit c. Output: Original network reliability and assessment for network resilience with vulnerability, recoverability, resilience-based component importance measure, and resilience.

STEP A.
Apply BAT algorithm to find the original network reliability R 0 .
STEP A1. Reduce number of impossible solutions. STEP A2. Apply binary-addition tree to find all state vectors. STEP A3. Reduce number of connectivity verifications. STEP A4. Apply PLAS Algorithm to verify connectivity of state vectors. STEP A5. Calculate reliability of each found connected vector and the original network.

STEP B.
Apply BAT-based resilience assessment to obtain network reliability (vulnerability) R d .

STEP B1.
Apply binary-addition tree to find all scenarios with different failed arcs. STEP B2. For each scenario, utilize the product of the connected state vectors found from step A5 to calculate network reliability (vulnerability) R d .

STEP C.
Apply BAT-based resilience assessment to obtain network reliability (recoverability) R r .

STEP C1.
Apply binary-addition tree to find all possible recovery strategies for different arcs failed. STEP C2. For the recovery strategies, utilize the product of connected vectors found from STEP A5, calculate network reliability (recoverability) R r , and calculate related recovery cost. (2) to (4). STEP E. According to the maximum recovery reliability requirement and the recovery cost limit c, make decision among all recovery strategies and calculate resilience ϕ by Equation.

STEP D. Component importance measure by Equation
(5).
STEP A is based on Section 4 and is for calculating the reliability of original network. There are five steps, STEP A1 to STEP A5, in the STEP A. STEP A1 and STEP A3 are based on Section 4.3 for reducing number of impossible solutions and connectivity verifications, respectively. STEP A2 implements the binary-addition tree introduced in Section 4.1. STEP A4 applies PLSA introduced in Section 4.2. STEP A5 from Section 4.4 is the final step in the STEP A to compute probability product of the connected state vectors and the reliability of original network. STEP B to STEP E are developed according to the logic of binary-addition tree and the results obtained from STEP A. STEP B is for calculating vulnerability of disruptive network, and STEP C is for calculating the recoverability of the recovered network. They both contain two steps. Both STEP B1 and STEP C1 apply binary-addition tree to list all possible failed scenarios and related recovery strategies, respectively. And both STEP B2 and STEP C2 utilize the results from STEP A5 to obtain network vulnerability and recoverability, respectively. STEP D and STEP E use the vulnerability and recoverability acquired from STEP B2 and STEP C2 to further calculate the component importance and the network resilience. This is the first time that the BAT-based methods used for the assessment of network vulnerability, recoverability, resilience, and component importance measure.

Example
To illustrate the detailed procedure of the proposed BAT-based methods for assessing the network resilience, we use the binary-state network shown in Figure 1. Figure 1 is a bridge problem which belongs to one of benchmark problems that are used as a standard with which other algorithms can be compared for practical usage [18]. Following is the procedure of the solution. Solution: STEP A. Apply BAT algorithm to find the original network reliability R 0 . STEP A includes STEP A1 to STEP A5 as following.
STEP A1. Reduce number of impossible solutions.
In Figure 1, there are directed arcs from the sink node to the source node, and these arcs are impossible to be used. Thus, Figure 1 is reduced to Figure 2 after removing arcs a 6 , a 7 , a 8 , and a 9 and the reliabilities of Figures 1 and 2 are the same. Consequently, the runtime can theoretically be reduced from 2 9 to 2 5 because the number of directed arcs is reduced from nine to five. STEP A2. Apply Binary-addition tree to find all state vectors.
To disconnected or connected the network in Figure 2, the minimal number of arcs equals two, i.e., n c = n p = 2. For instance, {a 1 , a 2 } and {a 1 , a 4 } are one of the minimal sets to disconnected or connected the network, respectively. So that in Table 7, those whose numbers of state 1 s are smaller than n p , said X 1 , X 2 , X 3 , X 5 , X 9 , and X 17 , are disconnected. And those whose numbers of state 0 s are smaller than n c , said X 24 , X 28 , X 30 , X 31 , and X 32 , are connected. The connectivity of these 11 aforementioned state vectors do not need to be verified, and thus reduce number of connectivity verifications from 2 5 = 32 to 21. STEP A4. Apply PLAS Algorithm to verify connectivity of state vectors. Table 7 shows the procedure of the PLSA to determine whether X = (1, 1, 1, 1, 1) is a connected state vector in Figure 2. Whether the corresponding state vector X in G(X) is connected (Y) or disconnected (N) is summarized in the columns named "Connected?" of Table 4. For example, as shown in Figure 4, X 10 = (0, 1, 0, 0, 1) is connected implies that nodes 1 and n in G(X 10 ) are connected. STEP A5. Calculate reliability of each found connected vector and the original network.

STEP B.
Apply BAT-based resilience assessment to obtain network reliability (vulnerability) R d .

STEP B1.
Apply binary-addition tree to find all scenarios with different failed arcs. From Figure 2, all possible scenarios S i with different arcs failed are found by the logic of binary-addition tree and list in Table 2, where i = 0, 1, . . . , 2 5 −1. That is, let S i be a state vector with five zero elements and S(a k ) be the state value 1 or 0 for arc a k failed or not failed, respectively, i.e., S i = {S i (a 1 ), S i (a 2 ), . . . }. Thus, S 0 = (0, 0, 0, 0, 0) represents no arcs failed, S 1 = (0, 0, 0, 0, 1) represents a 5 failed, S 2 = (0, 0, 0, 1, 0) represents a 4 failed, S 3 = (0, 0, 0, 1, 1) represents a 4 and a 5 failed, and until to S 31 = (1, 1, 1, 1, 1) represents all arcs failed. Note that the index i of S i starts from 0 because S 0 have no arcs failed and the reliability of S 0 equals to original network. So, actually, there are 2 5 −1 scenarios with the different failed arcs in the network in Figure 2. STEP B2. For each scenario, utilize the product of the connected state vectors found from STEP A5 to calculate network reliability (vulnerability) R d .
From STEP A5, we have the product of each connected state vectors shown in Table 4. The network vulnerability for the scenario S i , R d (S i ), is just the sum of the product of the remaining connected state vectors in S i . Following provides a few examples with one, two, three arcs failed, respectively. For the scenario S 16 with a 1 failed, we only need to consider the connected state vectors with X(a 1 ) = 0 in Table 4. Then the network vulnerability R d (S 1 ) = Pr(B 10 ) + Pr(B 12 ) + Pr(B 14 ) + Pr(B 16 ) = 0.162. For the scenario S 24 with a 1 , a 2 failed, we only need to consider the connected state vectors with X(a 1 ) = 0 and X(a 2 ) = 0 in Table 4.
Since there is no connected state vector in S 24 , the network vulnerability R d (S 24 ) equals zero. And For the scenario S 28 with a 1 , a 2 , a 3 failed, we only need to consider the connected state vectors with X(a 1 ) = 0, X(a 2 ) = 0, and X(a 3 ) = 0 in Table 4. Hence, there is no connected state vector in S 28 , the network vulnerability R d (S 28 ) equals zero. S i and R d (S i ) obtain from STEP B1 and B2 are summarized in Table 2. In Table 2, columns A d (S i ) is an arc set contains the failed arcs in the scenario S i and R d (A d (S i )) = R d (S i ) is the network vulnerability of the scenario S i . Note that scenarios S i and failed arc sets A d (S i ) (or following mentioned A r (S i )) have one-to-one relationship, that is, a S i corresponds to a specific A d (S i ), so does A d (S i ). Thus, we sometimes do not write A d for some notations in this article, such

STEP C.
Apply BAT-based resilience assessment to obtain network reliability (recoverability) R r .

STEP C1.
Apply binary-addition tree to find all possible recovery strategies for different arcs failed.
For a scenario S i with failed arcs, there are different strategies to recover the network to better or original state. Theses recovery strategies O i,j are found by the logic of binary-addition tree and list in Table 3, where i stands for the scenario S i , j stands for the jth recovery strategy in S i , i = 0, 1, . . . , 2 5 −1, j = 0, 1, . . . ., 2 |A d (S i )| −1. That is, let O i,j be a state vector with the number of zero elements which equals the number of failed arcs in S i and O i,j (a k ) be the state value 1 or 0 for arc recovered or not recovered, respectively, i.e., O i,j = {O i,j (a 1 ), O i,j (a 2 ), . . . }. For example, as shown in Table 3, O 28,0 = (0, 0, 0) represents no arcs recovered in the S 28 , O 28,1 = (0, 0, 1) represents arc a 3 recovered in the S 28 , O 28,2 = (0, 1, 0) represents arc a 2 recovered in the S 28 , and until to O 28,7 = (1, 1, 1) represents all arcs recovered in the S 28 . Note that the index i and index j of O i,j both start from 0 because O 0,0 have no arcs failed, no arcs recovered, and the reliability of O 0,0 equals to original network. So, actually, there are 2 |A d (S i )| −1 recovery strategies with the different recovered arcs for the scenario S i in the network. STEP C2. For the recovery strategies, utilize the product of connected vectors found from STEP A5, calculate network reliability (recoverability) R r , and calculate related recovery cost.
From STEP A5, we have the product of each connected state vectors shown in Table 4. The network recoverability for the recovery strategy O i,j , R r (A r (O i,j )) = R r (O i,j ), is just the sum of the product of the remaining connected state vectors in O i,j . Note the recovery strategy O i,j and recovered arc sets A r (O i,j ) have one-to-one relationship, that is, an O i,j corresponds to a specific A r (O i,j ), so does A r (O i,j ). Thus, we sometimes do not write A r for some notations in this article, such . For example, for the recovery strategy O 28,1 in scenario S 28 with only a 3 recovered and a 1 , a 2 still failed, we only need to consider the connected state vectors with with X(a 1 ) = 0 and X(a 2 ) = 0 in Table 4. Since there is no connected state vector in O 28,1 , the network recoverability R r (O 28,1 ) which the network recover to the original state equals zero. O 28,j and R r (O 28,j ) obtain from STEP C1 and C2 are summarized in Table 3. In Table 3, columns A r (O i,j ) is an arc set contains the recovered arcs in the recovery strategy O i,j , is an arc set contains the still not recovered arcs. Note there are full recovery cost C(A r (O i,j )) = C(O i,j ) which recover to the original network, or partial recovery cost C'(A r (O i,j )) = C'(O i,j ) which recover to the functional network for different recovery strategies O i,j . And the corresponding network recoverability of recovery strategy O i,j are R r (O i,j ) and R r '(O i,j ), respectively. Furthermore, if there is no recovery reliability requirement and no recovery cost limit, it is necessary to choose the best recovery strategies in terms of the recovery efficiency, that is, the largest ratio of recovery reliability to cost. Therefore, the most efficient recovery strategies for scenario S i among all the related recovery strategies . . , 2 5 − 1, e.g., R r (S 28 ) = 0.6988.

STEP D. Component importance measure by Equations (2)-(4).
Components can be nodes, arcs, or communities, and in our paper is "arc sets". According to STEP C2, we can have all the best recovery strategies R r (S i ) and thus compute component importance I for arc sets by Equations (2)-(4) as shown in Table 5 if not considering recovery reliability requirement and recovery cost limit. Here index i are listed based on the number and the sequence of the arc sets A d (S i ) in Table 5 for more easily to compare the importance for different number of arcs. From Table 5, {a 2 } and {a 5 } are the most important among arc sets with one arc. {a 1 , a 5 }. {a 2 , a 5 }, and {a 3 , a 5 } are the most important among arc sets with two arcs. {a 2 , a 3 , a 5 } is the most important among arc sets with three arcs. Component importance of these arc sets, {a 2 }, {a 5 }, {a 1 , a 5 }, {a 2 , a 5 }, {a 3 , a 5 }, {a 2 , a 3 , a 5 }, are equals one, which represents the disruptive network recover to the original state and it is the most efficient to recover these failed arcs. Moreover, arc sets with four or five arcs are equally important. However, if we only use I 1 or I 2 , the results of the component importance might vary widely, e.g., for {a 1 }, I 1 = 0.8280 and I 2 = 0.5700. According to I 1 , the importance of {a 1 } is apt to be illustrates as important. Otherwise, according to I 2 , the importance of {a 1 } is apt to be illustrates as not important. Note that in this example, A d (S i ) and A r (S i ) are identical for each S i . This phenomenon illustrates that there is a significant effect if there is one arcs failed in this small network. STEP E. According to the maximum recovery reliability requirement and the recovery cost limit c, make decision among all recovery strategies and calculate resilience ϕ by Equation (5).
To calculate the resilience ϕ by Equation (5), the recovery strategies are chosen if the network can recover to its maximum reliability under different recovery cost limit c. That is, here the chosen recovery strategies for scenario S i among all the related recovery strategies And the cost of the chosen recovery strategies R r (S i ) is C(S i ) = C(A r (S i )). There are two issues for the network resilience within the recovery cost limit c: (1) to make decisions under c, and (2) to determine the proper c. Initially, we discuss the different network resilience under different c. Secondly, we focus on finding appropriate c. Finally, within these appropriate c, we chosen the most appropriate recovery strategies and obtain the corresponding network resilience. Following is the discussion. If c = 200, all the ϕ(S i , c) = 1 and thus the network resilience ϕ = 1 which means the network can back to its original performance for any disruptions under recovery cost limit c = 200. However, this recovery cost limit is obviously not smart for network with the fewer failed arcs. If c = 100, the network resilience ϕ = 0.8201, where ϕ(S i , c) for the scenarios within two failed arcs still equal 1, for the scenarios with three failed arcs mostly equal 0.7421, for the scenarios with four failed arcs mostly lower than 0.5, and for the scenarios with five failed arc equals 0.1080. Although the average network resilience seems high, the individual network resilience for scenarios with more than three failed arcs are unsatisfactory. Therefore, how to determine proper c is an important issue. To decide the value of c, we consider the distinct number of failed arcs, |A d (S i )|, and summarize the related maximum and minimum recovery cost in Table 6. Consequently, the value of c should at least equal minimum and at most equal maximum for different number of failed arcs. That is, if for one to five failed arcs, c = 50, 90, 130, 160, and 190, respectively, all the ϕ(S i , c) = 1 and thus the network resilience ϕ = 1. This setting is sufficient to perfectly recover the failed network. If we do have not much budget, said c = 40, 70, 90, 110, and 130 for one to five failed arcs, respectively, we can still have all the ϕ(S i , c) = 0.7421 and thus the network resilience ϕ = 0.7421. Table 2. All the S i from Figure 2.  1, 1, 1, 1) a 1 , a 2 , a 3, a 4, a 5 0 Table 3. All the O i,j for i = 28 from Figure 2.   (1, 1, 1, 1, 1) Y Table 5. All the component importance from Figure 2.  Table 6. Range of c for the distinct number of failed arcs from Table 1. Min   1  50  20  2  90  40  3  130  60  4  160  90  5 190 130

STEP A5.
Calculate reliability of each found connected vector and the original network.

STEP B.
Apply BAT-based resilience assessment to obtain network reliability (vulnerability) Rd.

STEP B1.
Apply binary-addition tree to find all scenarios with different failed arcs.

STEP B2.
For each scenario, utilize the product of the connected state vectors found from STEP A5 to calculate network reliability (vulnerability) Rd.
From STEP A5, we have the product of each connected state vectors shown in Table 3. The network vulnerability for the scenario Si, Rd(Si), is just the sum of the product of the remaining connected state vectors in Si. Following provides a few examples with one, two, three arcs failed, respectively.
For the scenario S16 with a1 failed, we only need to consider the connected state vectors with X(a1) = 0 in Table 3. Then the network vulnerability Rd(S1) = Pr(B10) + Pr(B12) + Pr(B14) + Pr(B16) = 0.162. For the scenario S24 with a1, a2 failed, we only need to consider the connected state vectors with X(a1) = 0 and X(a2) = 0 in Table 3. Since there is no connected state vector in S24, the network vulnerability Rd(S24) equals zero. And For the scenario S28 with a1, a2, a3 failed, we only need to consider the connected state vectors with X(a1) = 0, X(a2) = 0, and X(a3) = 0 in Table 3. Hence, there is no connected state vector in S28, the network vulnerability Rd(S28) equals zero.

Case Study
Most countries have forests and may suffer from wildfires (also called forest fires) [6,8]. There are various kinds of sensors (i.e., temperature, wind speed, wind direction, images and so on) that can detect wildfires [6,8]. These sensors are typically distributed in the forest and collect context information that provides the user (i.e., forest manager) to determine sequential emergency treatments in order to minor the possible losses [6]. Thus, to detect the wildfire and successfully transmit related information to the forest manager is an important task for a wildfire detection sensor network which is an application of internet of things (IoT) [6,8].
However, if one of the components in the network is damaged, it may cause the message transmission delay or even be interrupted. Therefore, systematically assessing the network resilience and repair strategies are important issues. This section considers the real problem of a wildfire detection sensor network. The network is illustrated in Section 6.1. Section 6.2 utilizes the proposed BAT-based resilience assessment on this network.

Wildfire Detection Sensor Network
A wildfire detection sensor network with eight nodes and 11 arcs is shown in Figure 5, where source node 1 represents the sensor which is the closest to the location of the wildfire, and sink node 8 represents the forest manager who obtains the information sent from sensors via his equipment (i.e., computer, mobile phone, or server). Other nodes, node 2 to node 7, are all wireless sensors similar to node 1 to detect wildfires but maybe with different functions. Arcs between these nodes are the directions of information when the sensor in node 1 detects wildfires. To simplify the problem, here we only consider the most possible transmission directions among these wireless sensors when node 1 detects wildfires though wireless links between sensors are bidirectional actually. The information transmission about wildfires may be disrupted by unpredictable or irresistible factors in the forest. Once the disruption of information transmission happens, every arc a has two recovery choices: full recovery to original success probability Pr(a) with cost C(a), or partial recovery to better success probability Pr'(a) with cost C'(a). The corresponding success probability to transmit information and recovery cost (unit: 10 3 US dollar) of the arcs are listed in Table 8. Moreover, the recovery cost limit c equals 10, 20, or 30 (unit: 10 2 US dollar). the forest. Once the disruption of information transmission happens, every arc a has two recovery choices: full recovery to original success probability Pr(a) with cost C(a), or partial recovery to better success probability Pr'(a) with cost C'(a). The corresponding success probability to transmit information and recovery cost (unit: 10 3 US dollar) of the arcs are listed in Table 8. Moreover, the recovery cost limit c equals 10, 20, or 30 (unit: 10 2 US dollar).

Resilience Assessment
The proposed BAT-based resilience assessment is applied to analyze the network resilience. Following is the analysis procedure.
Input: G(V, E, D), recovery cost in Figure 5 and Table 8, and the recovery cost limit c = 10, 20, or 30. Output: Original network reliability and assessment resilience for the binary-state wildfire detection sensor network with vulnerability, recoverability, resilience-based component importance measure, and resilience. STEP A. Apply BAT algorithm to find the original network reliability R 0 . STEP A1. Reduce number of impossible solutions.
In Figure 5, there are no directed arcs from the sink node to the source node and thus proceed to STEP A2. STEP A2. Apply Binary-addition tree to find all state vectors.
To connected and disconnected the network in Figure 5, n p equals 3 and n c equals 2, respectively. For example, {a 1 , a 2 } and {a 1 , a 4 , a 11 } are one of the minimal sets to disconnected or connected the network, respectively. For X i , the numbers of state 1 s smaller than n p is disconnected, and the numbers of state 0 s smaller than n c is connected. Thus, number of connectivity verifications in the STEP A4 is reduced. STEP A4. Apply PLAS Algorithm to verify connectivity of state vectors X i . There are 639 connected X i . STEP A5.
Calculate reliability of each found connected vector and the original network R 0 = 0.99188.

STEP B.
Apply BAT-based resilience assessment to obtain network reliability (vulnerability) R d .

STEP B1.
Apply binary-addition tree to find all scenarios S i with different failed arcs, where i = 0, 1, . . . , 2 11 − 1. There are 2 11 − 1 S i in Figure 5. STEP B2. For each scenario S i , utilize the product of the connected state vectors found from STEP A5 to calculate network reliability (vulnerability) R d (S i ). S i , R d (S i ), and related failed arc set A d (S i ) are summarized in Table 9. Table 9. All the S i from Figure 5 without recovery cost limit c. i.

STEP C2.
For the recovery strategies O i,j , utilize the product of connected vectors found from STEP A5, calculate network reliability (recoverability) R r , and calculate related recovery cost.
Here, the largest ratio of recovery reliability to cost is considered. That is, the most efficient recovery strategies for scenario S i among all the related recovery strategies O i,j is 1} for i = 1, 2, . . . , 2 11 − 1. R r (S i ) without considering recovery limit c are summarized in Table 9.

STEP D. Component importance measure by Equations (2)-(4).
According to STEP C2, we can have all the best recovery strategies R r (S i ) and thus compute component importance I for arc sets by Equation (2) to (4) as shown in Table 9 if not considering recovery reliability requirement and recovery cost limit. Moreover, rather important arc sets which contain one, two and three arcs are shown in Table 10, where |A d (S i )| denotes the number of failed arcs in arc sets.

STEP E.
According to the maximum recovery reliability requirement and the recovery cost limit c, make decision among all recovery strategies and calculate resilience ϕ by Equation (5).
With recovery cost limit c, And the corresponding cost is C(S i ), the resilience ϕ is calculated by Equation (5). Following is the discussion. If c = 10, the network resilience ϕ = 0.14223, and the recovery strategies for the network back to the original state (i.e., I = 1) for all arc sets are listed in Table 11. With c = 10, only arc sets with one, two and three arcs can have the network full recovery to the original state. And for c = 20 and c = 30, ϕ = 0.66056 and ϕ = 0.89646, respectively. Moreover, range of c for the distinct number of failed arcs and corresponding ϕ are listed in Table 12, Table 13, and Figure 6 at this final analysis stage.      Table 13. In Table 13 and Figure 6, ϕ is smaller than 0.2 when c is between 0 and 10; ϕ has obviously growth from 0.2 to 0.8 when c is increased from 10 to 25; ϕ grows slowly and approach to 0.9 when c is greater than 25. For this network, our opinion is to choose the recovery strategy that c equals around 30 to obtain the high network resilience and have the efficient recovery cost.

Conclusions
This paper presents a novel resilience assessment method called the BAT-based resilience assessment that employs a binary-addition tree to find all the state vectors of a network with its original, disrupted, and recovered status. In the proposed BAT-based resilience assessment, the PLSA is applied to verify the connected state vectors, reduction methods are utilized to release the computational load. According to these connected vectors, the original network reliability is calculated and the network vulnerability, network recoverability, resilience-based component importance measure, and network resilience are assessed comprehensively.
The network resilience of an example and a wildfire network with wireless sensors are evaluated in this study. The process of resilience assessment demonstrates the different network status from the original, the disrupted, to the recovered one with different evaluation phases. Resilience-based component importance measure and network resilience, two important issues in resilience, are considered in this paper. For the resilience-based component importance measure, for example, refer to the importance of arc sets with different number of failed arcs, the decision makers can formulate relevant strategies such as having more inventory of or more attentions on these vulnerable components. Moreover, tuning routing protocols or adapting these vulnerable components also could help the decision makers to overcome all these related issues from a practical point of view.
For the network resilience considered with the recovery cost limit, the decision makers can decide the level of network resilience and budget the reasonable corresponding recovery cost.
In this work, all nodes are completely reliable and only arcs have possibility to fail in the binary-state network. However, there are more complicated network systems in the world than the binary-state network with perfect nodes and these complex systems might need to utilize advanced models such as hidden Markov models or in a more complex and robust approach: percolation theory. It is necessary to improve the computational efficiency and extend our proposed BAT-based resilience assessment for more complex networks.