Graph Theory for Survivability Design in Communication Networks

Design of survivable communication networks has been a complex task. Without establishing network survivability, there can be severe consequences when a physical link fails. Network failures whichmay be caused by dig-ups, vehicle crashes, human errors, systemmalfunctions, fire, rodents, sabotage, natural disasters (e.g. floods, earthquakes, lightning storms), and some other factors, have occurred quite frequently and sometimes with unpredictable consequences. To tackle these, survivability measures in a communication network can be implemented at the service layer, the logical layer, the system layer, and the physical layer.


Graph connectivity in relation to network protection design
Practically, different traffic requirements over a network would require different connectivity between nodes. Some traffic demands may require no protection, or may only need to be carried when possible. In contrast, other traffic demands may ask for a full protection against either single-link failure, dual-link failures or other types of failure. Hence, the required connectivity between nodes would be different for these varied protection requirements. This section first presents the general requirement for network connectivity in which the network can at least be protected against any single failure scenario, e.g. the failure of any single link or node of the network. In this case, the physical topology of the network must be 2-connected.  The protection mechanism is designed to maintain the continuity of services under network failures. The failure can be minor such as a channel failure, or be more significant such as failure of groups of links or nodes. As far as the connectivity of the physical topology is 422 New Frontiers in Graph Theory

www.intechopen.com
Graph Theory for Survivability Design in Communication Networks 3 concerned, the failure may be in a single link, a single node, a group of links, a group of nodes. Protection design cannot cover all failure scenarios. Instead, it will consider the set of specific (or predetermined) failures. For example, protection design against single link failures needs to determine the recovery routes for services so that they can maintain their services under the failure of any single link in the network. To do that, the network connectivity must provide at least 2 disjoint paths between any source and destination nodes. The term "disjoint" here is with respect to the failure scenario, meaning that the "disjoint" paths must not suffer from the same failure. For example, for single link failures, the 2 paths must be link-disjoint. Similarly, for single node failures, the 2 paths must be node-disjoint. Fig. 1 shows an example of a pair of link-disjoint paths ( Fig. 1(a)) and node-disjoint paths ( Fig. 1(b)). It can be easily seen that link-disjoint paths may share nodes along their paths, e.g. node 3 on paths p 1 and p 2 in Fig. 1(a). Hence, link-disjoint paths may not be node-disjoint. On the other hand, node-disjoint paths are always link-disjoint.
A graph which provides at least 2 link-disjoint paths between any two nodes is 2-connected. With stronger connectivity, a biconnected graph is able to provide at least 2 node-disjoint paths between any two nodes.
Generally, a network must provide at least K link-disjoint paths between any node-pairs to be able to protect against simultaneous failure of K − 1 links. The graph of such networks is said to be K-connected. The rest of this chapter will mainly discuss network connectivity which supports single link and single node failures, known as 2-connected and biconnected.

Establishing physical survivability
This section presents the procedures for establishing network survivability against single-link failures which is one of the most common failure scenarios occurring in practical networks. As discussed, the physical topology of a network can only be survivable under single-link failures if and only if it is 2-connected. Manual verification for survivability is only suitable with small networks where designers can perform the verification in just few seconds or few minutes. However, manual verification may take hours or even days for large scale networks. Furthermore, it is prone to human errors. Therefore, automatic survivability verification is important in both theory and practice. The concept of survivable networks is more complex than the concept of connectivity in graph theory. In addition, efficient automation algorithms based on graph theory can help designers to reduce the computational time and avoid human errors. This section presents techniques for evaluating the physical survivability of networks. Firstly, we outline and analyse the strengths and weaknesses of a popular method, namely the cut-set method. Then, we introduce two comparable techniques that can deal with network sizes of many thousand nodes (Habibi et al., 2005). One technique is based on Depth-First Search (DFS) and the other uses properties of 2-connected graphs.

Survivability via cut-sets
A network is survivable if the size of every cut-set of the network is equal to or larger than 2. At a glance, this definition leads to a view that the network has nodal-degree of two, meaning that every node in the network is connected to at least two other nodes. Since every node is connected to at least two other nodes in the network, on the surface this property seems to be able to offer two disjoint paths between any two nodes in the network. In fact, this is a misconception. If a network is 2-connected then the nodal degree of all nodes in the 423 Graph Theory for Survivability Design in Communication Networks www.intechopen.com network is equal to or larger than 2. The reverse does not hold, however, in that a network in which the nodal degree of all its nodes equal to or larger than 2 is not always 2-connected. The topology in Fig. 2 illustrates this concept. In that Figure we can see that path (3 − 5 − 6) is a bridge that connects two subsets of network nodes X = {1, 2, 3, 4} and Y = {6, 7, 8, 9}. As a result, all paths between nodes x ∈ X and y ∈ Y must share the same path (3 − 5 − 6). Hence, although all nodes in this network have a nodal degree equal to or larger than 2, it is not a 2-connected network. Therefore, all algorithms for verification of network survivability based on node-degree of two may yield undesirable and inaccurate results and hence are not reliable. The cut-set assumption described below has been preferred for the accuracy of network survivability verification.
Let G =( V, E) b ean e t w o r kt o p o l o g y . Ac u ti nG is a partition of V into parts S andS = V \ S. Each cut defines a set of edges consisting of those edges in E with one end-point in S and the other inS. This edge set is referred as the cut-set CS(S, V \ S) associated with the cut S, V \ S .L e t |CS(S, V \ S)| be the size of the cut-set, being the number of links between S and V \ S. Thus, according to the cut-set assumption, a network is 2-connected if |CS(S, V \ S)|≥2, ∀S ⊂ V.I fS is a subset of only a single node in the network, then the cut-set assumption is essentially the same as the node-degree assumption.
Since the cut-set assumption is related the number of links connected between two subsets of a cut, it can assure the network to offer link-disjoint paths,b u tnot node-disjoint paths. In other words, a configuration of the network that satisfies the condition of the cut-set assumption can provide at least one link-disjoint path-pair between any distinct pair of source node and destination node.
The implementation of the cut-set assumption is not complex but its computational time for large scale networks is its biggest disadvantage. The number of cut-sets increases exponentially with the number of network nodes and is calculated as (Grover, 2004): where N cutset is the number of cut-sets in the network, and |V| is the number of network nodes. Table 1 shows the example of the number of the possible cut-sets, N cutset , versus the number of network nodes |V|. The number of cut-sets doubles with an increase of one node in the network. For instance, N cutset in a network of 20 nodes is over 1 million; and it is over 32 million with |V| = 25; which is 32(= 2 5 ) times larger than |V| = 20; and the number of In summary, the node-degree assumption is simple but not reliable for the verification of network survivability.
Meanwhile, the cut-set assumption is only applicable for link-survivable networks, and it is intractable with large scale networks. The verification ability of these two assumptions for different connectivities of the physical topology are summarised in Table 2. The node-degree assumption cannot verify any type of physical topology that has potential to support network survivability (namely 2-connected and biconnected networks) whereas the cut-set assumption can verify the survivability of a network that is 2-connected but cannot identify exactly a 2-connected topology or verify a biconnected topology. Next, we propose an approach that can classify network topologies, and determine if they are unconnected, (1−)connected, 2-connected or biconnected.  Table 2. Performance of two common assumptions in terms of network connectivity

An approach to verifying physical topology for designing network survivability
Let G(V, E) be the graph presenting the physical topology of a network. If the degree of any node in G is zero, the graph is disconnected. If the degree of any node in G is 1, the graph cannot be 2-connected or biconnected. For the sake of network survivability design, from here after, we assume that the degree of every node in the graph is at least 2. This condition allows every node to belong to a biconnected component or a bridge. Let G ′ and G ′′ be two biconnected components of the graph G. The relationship between G ′ and G ′′ determines the connectivity of the graph: •I f G ′ and G ′′ have at least 2 common nodes, then G is a 2-connected graph with no cut-node (i.e. node bridge) or cut-link (i.e. link bridge). In other words, G is a biconnected graph. •I f G ′ and G ′′ only have one common node, then G is a 2-connected graph with an articulation node which is the common node. •I f G ′ and G ′′ are separated by a cut-link (or a cut-path), then G is not a 2-connected graph, and the cut-link (or cut-path) cannot be protected. •I f G ′ and G ′′ have no common links or nodes, then G is a disconnected graph.
The key point for determining the connectivity of a graph is to find all biconnected components in the graph and check the relationship between these components. Biconnected components can be found using either Depth-First Search (DFS) or the properties of the 2-connected graph.

Finding biconnected components using Depth-First Search (DFS)
Algorithm 1 outlines the pseudo-code for verifying a 2-edge-connected graph. The principle is to find a bridge (edge) via articulation nodes -a cut at one of these nodes would disconnect the graph. A bridge is an edge or a path segment that connects two biconnected component neighbourhood. A graph is 2-edge-connected if it contains no bridge. The DFS algorithm for finding biconnected components was proposed by Robert Tarjan (Tarjan, 1971), and subsequently, revised for a particular study in survivable mesh networks in (Grover, 2004). Algorithm 1 is a modified version of the original DFS algorithm in (Grover, 2004;Tarjan, 1971) that allows for the verification of the 2-edge connectivity of a physical topology.
The underlying concept behind this search is to firstly "depth" explore unvisited nodes, called "depth search", via a walk through incident edges from the current node (v). At any depth search, the current visited node is pushed to a stack. The depth search continues until there are no unvisited nodes reachable from the current node. The search is "backtracking" by examining visited nodes in the stack and continuing depth search at these nodes. The algorithm is terminated when there are no nodes in the stack.

Algorithm 1 Depth-First Search for 2-connected graph
Require: AgraphG(V, S) presented the physical topology of a given network. Two parameters are assigned to each visited node v,t h edfs [v] and the btk [v],t od i s c o v e r articulation nodes. The dfs [v] identifies the "depth first search" order of the node v when it is visited for the first time. The btk [v] is determined using "back tracking" as follows: • Initially, btk [v] is assigned a value equivalent to the value of dfs [v] when the node is first visited. • btk [v] is then updated as btk [v]=min(btk[v], dfs [w]) when it has a neighbour w through an unvisited edge, and w is an ancestor of v. •T h e v a l u e o f btk [w],w h e r ew is the parent of v, is also updated during the backtracking step as btk [w]=min(btk[w], btk [v]).
The calculation of the value btk helps determine if a node v is a cut node (or articulation node) when btk [v] is larger than or equal to dfs [w],wherew is the parent of v.

Finding biconnected components using property of 2-connected graphs
Alternatively, based on the properties of 2-connected graphs, biconnected components can be built from a simple and small cycle by adding the so-called H-paths to the cycle. Let H be a biconnected component on the graph G.AH-path is a non-trivial path on G that meets H exactly at its end nodes. The following proposition and proof are adopted from (Diestel, 2000). Proof. Clearly, every graph constructed as proposed is 2-connected. Conversely, let G be a 2-connected graph, then G contains a cycle, and hence a maximal subgraph H is constructable, as evident in Fig. 3. Any edge x, y ∈ E(G) \ E(H) with (x, y) ∈ H defines a H-path. Then, H is an induced sub-graph of G.I fH = G, then by the connectedness of G,thereisanedgevw Based on this proposition, we can use the relationship between network's cycles or 2-connected graphs to verify the survivability of its physical topology.
An undirected graph is thus seen as the combination of all fundamental cycles. Using Algorithm 2, these fundamental cycles can be found from a spanning tree T(V, E ′ ), E ′ ⊂ E of agraphG(V, E) (eg. the spanning tree highlighted by thick lines in Fig. 4).  However, it is not easy to find all of the fundamental cycles in the graph. For instance, in Fig. 4, the edges represented with thin lines are not part of the spanning tree (shown by thick lines). If any of these edges are added to the tree, it will form a unique cycle, but such cycle is not necessarily a fundamental cycle (eg. consider adding edge 2 − 5). Any set of cycles found from the spanning tree can be used to verify the survivability of the topology from which it is generated. An algorithm for finding a set of cycles through spanning tree of a graph is represented in Algorithm 2. An efficient method for finding fundamental cycles of a graph, referred to as Paton's algorithm, is outlined in (Paton, 1969). Further discussion of this topic is outside the scope of this chapter.
The connectivity of the graph then can be determined using Algorithm 3. Note that the set of remaining links contains links in the graph but not in the tree.

Graph algorithms for diverse routing in protection design
Previously in this chapter, we have discussed the connectivity of the physical topology to support the problem of designing multiple quality of protections. However, the assurance of connectivity at the physical layer is only the first step to ensure traffic demands can be conveyed from the source to the destination. Once a physical layer is given, the main goal of the Logical Topology Design (LTD) is to determine routes for traffic flow in the most efficient way, that is to minimise the amount of physical resources utilised, particularly the amount of capacity utilisation. One approach is to enumerate the set of best candidates for each demand. In network protection design, these candidates can be distinct paths or disjoint paths. The disjoint paths are to ensure the success of the recovery process from network failures. On the other hand, the distinct paths provide the flexibility in selecting the most efficient working and backup routes. This section presents graph algorithms to support the diverse routing problem including finding K shortest (least cost) paths, finding two disjoint paths and finding K shortest disjoint path-pairs between any two nodes in a network.

Algorithm for finding K shortest paths between two nodes in the network
A set of all paths between two nodes can be used to select the best paths on which traffic flows between these nodes may be carried. All paths between two nodes in the graph can be found using either the Breath-First Search or the Depth-First Search. However, the number of all paths increases exponentially with the size of the network. Hence, finding all paths for routing is not a practical approach for real-time provisioning. In addition, the number of best selected paths is very small compared to all possible paths. Therefore, finding a small set of best eligible paths would be more practical and computationally efficient.
This section discusses and analyses the complexity of algorithms presented in the literature. We outline an efficient graph algorithm for finding K shortest paths between any two nodes in the network. This algorithm is an adaptation from (Martins et al., 1998) for directed graph to undirected graph.
Model selection used in survivable network design employs a set of potential candidates as inputs and selects optimal candidates as outputs. Input candidates differ depending on the protection techniques used. This can be either a set of paths for routing working flows, backup routes (in non-joint optimisation approaches), a set of disjoint path-pairs or a set of cycles in p-cycle design. This section introduces a basic algorithm used as a subroutine for finding input candidates for routing working flows and backup routes in non-joint optimisation approaches; the K shortest (minimum) paths algorithm.
K shortest paths is a classical graph problem that has been widely studied (Eppstein, 1998;Martins et al., 1998;Martins & Santos, 2000). Eppstein et al. (Eppstein, 1998) proposed a k shortest path algorithm between any two nodes in a digraph in time complexity of O(|E| + |V| log |E| + K),w h e r e|V| is number of nodes, |E| is the number of edges and K is number of paths required. Martins et al. (Martins et al., 1998)

Algorithm 4 K shortest paths algorithm
Require: An undirected graph G(V, E), a pair of source and destination nodes and the number of shortest paths required. Ensure: AsetofK -shortest paths over graph G from s to d. 1: To assure the possible repetition of the algorithm in a path between a pair of source-destination nodes (s, d), the given network is enlarged with a super source node S and super destination D, with zero cost edges (s * , s) and (d, d * ). Following this, the shortest tree from source node s to other nodes in the network is obtained, and the first shortest path is marked as p 1 = {s 0 (= s), s 1 ,...,s r−1 , s r (= d)} from s to d. 2: Determine the first node s h in p 1 such that s h has more than a single incoming edges. If a node s ′ h , of which the incoming edges are the incoming edges of s h except those coming from s h−1 , does not exist, then generate the node s ′ h , else determine the next node s i in p 1 that has not alternate yet. The cost d(s, s ′ h ) of shortest path from s to s ′ h is calculated as: where (x, s ′ h ) are incoming edges of s ′ h . 3: For each s j = {s i ,...,s r−1 }, generate s ′ j following the same rules as s ′ h , but with one more incoming edge of (s ′ j−1 , s ′ j ). Clearly, the shortest path from s to s ′ j is the second shortest path from s to s j . Therefore p 2 = {s 0 ,...,s i ,...,s ′ r−1 , s r (= d)} is the second shortest path. Repeat step 2 to determine next shortest path p k (k = 2,3,...) until k = K.
the K shortest paths problem, one based on a label setting algorithm and another based on a label correcting algorithm. The results show that these algorithms perform better than the algorithm in (Eppstein, 1998). The K-shortest path algorithm employed in this study is adapted from (Martins & Santos, 2000), which is proposed over a directed graph approach. Building on this idea, this study has developed an algorithm (Algorithm 4) which is relevant for an undirected approach as well. This algorithm runs with the time complexity of O(K ×|E|),w h e r eK is the number of shortest paths required and |E| is the number of undirected edges in the graph.

Algorithm for finding two disjoint paths (disjoint path-pair) between nodes in the network
Finding a disjoint path-pair between two nodes in the network is a basic solution for protection design in which the primary and secondary paths must not suffer from the same failure. Basically, finding a pair of disjoint paths can be done in two steps. In the first step, the first path is determined from the original graph. Then, all edges contained in the first path are removed from of the graph. The second disjoint path is determined from the residual graph. Both paths are usually determined using any shortest path algorithm such as Dijkstra's algorithm (Dijkstra, 1959) or Bellman-Ford algorithm (Bellman, 1958). The two step approach is simple in both concept and implementation. There is, however, no guarantee that the total cost of the found disjoint path-pair is minimum. In addition, this approach may fail to find a solution in some cases even when a disjoint path-pair exists between the two nodes. An example of a trap topology is shown in Fig. 5. It is easy to see in Fig. 5(a) that there are two disjoint paths between nodes 1 and 4. However, by using the two-step approach, the first shortest path may be path p 1 (1 → 2 → 3 → 4) as shown in Fig. 5(b). The second path is determined after all spans contained in the first path (edges {(1 − 2), (2 − 3), (3 − 4)}) are removed. It can easily be seen that the second path can not be found since the graph is disconnected between nodes 1 and 4. To resolve these two drawbacks, a graph algorithm, known as the one step approach, for determining a shortest disjoint path-pair was first proposed by Surballe (Surballe, 1974) and modified by Bhandari (Bhandari, 1994;1999) to adapt to the negative weight of edges. The algorithm, as its name implies, determines the first and the second disjoint path simultaneously.
(a) Find the first shortest path p 1 (b) Create negative reverse-directed edges from p 1 (c) Find the second shortest path p 2 (d) Remove the common edge (2 − 3) (e) A pair of edge-disjoint paths is created Fig. 6. An illustration of the one-step approach to resolve trap topology Let us assume that a shortest disjoint path-pair needs to be determined between the source node s and the destination node d. The one step algorithm is outlined as follows:

431
Graph Theory for Survivability Design in Communication Networks

www.intechopen.com
• Find a shortest (least cost) path between the source node s and the destination nodes d, and denote it as p 1 (Fig. 6(a)). • Mark the direction of each edge traversed in p 1 from s toward d as positive.
• Remove all directed edges on the shortest path p 1 and replace them with reverse direction edges by multiplying −1 to the original edge cost (Fig. 6(b)). • Find the least cost path from s to d in the modified graph using the modified Dijkstra's algorithm, and denote it as path p 2 (Fig. 6(c)). • Remove any edge in the original graph traversed by both p 1 and p 2 (Fig. 6(d)). These are called interlacing edges. • Identify all path segments remaining after the process of the edge removal (Fig. 6(e)) which forms a pair of disjoint paths from the source node s to the destination node d.

Algorithm for finding K shortest disjoint path-pairs between nodes in the network
In path protection techniques such as path restoration, or shared backup path protection, there are two sets of candidates needed for provisioning of the working flows and the backup routes. Finding and employing these two sets independently may compromise the protection conditions as the backup and working paths must be disjoint. There is no guarantee that each working route has a disjoint path in the corresponding set of backup routes. In addition, using two different sets of candidates also increases the number of decision variables used in model selection which increases the complexity of both space requirement and computational time. Another approach is to determine one set of candidates in which each candidate is a disjoint path-pair serving as a primary and a backup route. This set would always satisfy the disjointness requirements for protection and reduce the complexity in both time and space of model selections such as Integer Linear Programming (ILP) and Mixed ILP (MILP). By combining algorithms in Sections 5.1 and 5.2, this section introduces an algorithm for finding K shortest (least cost) disjoint path-pairs between two nodes in the networks.

Algorithm 5 K disjoint-paths pairs (KDPPs)
Require: An undirected graph G(V, S) source node s, destination node d,andK, the number of shortest disjoint-paths pairs required. Ensure: AsetofK shortest disjoint-paths pairs. 1: Find a shortest path between s and d, denoted by p. 2: Define the direction of each edge traversed in p from s to d as positive 1. 3: Remove all directed edges on the shortest path p and replace them with reverse direction edges by multiplying the original edge cost with −1. 4: Find K shortest path (least cost) paths from s to d in the modified graph using the K shortest path algorithm (Algorithm 4). Denote them as the set of paths P = {p 1 , p 2 ,...,p K }. 5: For each pair of paths (p, p i ), i = 1...K, remove any edge of the original graph traversed by both p and p i . These are called interlacing edges. Identify all path segments from the rest of edges. These from disjoint-paths pairs, denote as {(w 1 , r 1 ), (w 2 , r 2 ),...,(w K , r K )}.
The two-step and one-step approaches can be used to find the set of disjoint path-pairs. They are simple and computationally efficient. However, since these approaches provision traffic streams sequentially without back-tracking, sometimes no solution may be found even when a feasible solution does exist. In fact, the graph theory approach is more applicable 432 New Frontiers in Graph Theory

www.intechopen.com
Graph Theory for Survivability Design in Communication Networks 13 in online provisioning than in offline provisioning. These approaches have been extensively studied in the literature (Patre et al., 2002;Sen et al., 2001;Xin et al., 2002;Zhang et al., 2003). Authors in (Xin et al., 2002) investigated survivable routing based on both the two-step and the one-step approaches, namely Separate Path Selection (SPS) and Joint Path Selection (JPS) respectively. These approaches aim to optimise the network resource utilisation of each traffic connection by minimising the total cost of the primary and backup paths. The performance of these approaches is evaluated for different protection path cost functions. The results have shown that JPS performs substantially better than SPS and also scales very well in terms of the network resource abundance. In addition, JPS can utilise network resources better than SPS. In (Zang et al., 2003), the two-step and one-step approaches are also investigated, but with a different objective function based on the blocking probability. The simulation results have shown that the one-step approach significantly outperforms the two-step approach in this case. The improvement in blocking probability is significant, around 10%-20%, especially when fixed routing is used.
In this section, the one-step approach is used as a sub-function in an algorithm for finding K shortest disjoint path-pairs between any two nodes in the graph. The pseudo code of this algorithm is shown in Algorithm 5. This algorithm is then proved to yield K distinct disjoint-path pairs. Since a path pair found from one step algorithm was proved to be disjoint in (Bhandari, 1999) , it is only necessary to prove that the K found path pairs do not coincide with each other.
Proof. Let P = {P k |k =[ 1...K]}b et h es e to fK pairs of disjoint paths yielded from Algorithm 5, where P k = {w k , r k }isthek th pair.
Let P i = {w i , r i }andP j = {w j , r j } be any two disjoint-path pairs yielded from the first shortest path p and paths p i and p j (i, j ∈ [1...K]) respectively. This study proves that P i and P j do not coincide.
Since p i and p j do not coincide, there exists at least one edge e k contained in p i but not contained in p j . Following this, it is proved that e k c a no n l yb e l o n gt oe i t h e rP i or P j .I fe k is contained in p then e k is obviously not contained in P i . However, since e k is not contained in p j , e k is not an interlacing edge of (p, p j ) and hence e k is in P j .Con v ersely ,ife k is not contained in p,thene k is in P i . In addition, since e k is not contained in both p and p j , e k is not contained in P j . Therefore, P i and P j do not coincide and the K found disjoint-path pairs are distinct from each other.

Conclusion
In this chapter we have investigated and discussed the connectivity of graphs in relation to the requirements of protection of traffic demands in practical networks. We have discussed and analysed the complexity of several methods for verifying the connectivity of the physical topology of a network. Diverse routing was then addressed as an important problem in designing network protection, followed by the introduction of three algorithms for finding distinct and disjoint paths. These algorithms address the challenges for network protection design using graph theory.

433
Graph Theory for Survivability Design in Communication Networks www.intechopen.com