Next Article in Journal
Thermal Conductivity of Low-GWP Refrigerants Modeling with Multi-Object Optimization
Next Article in Special Issue
Nakagami-m Fading Channel Identification Using Adaptive Continuous Wavelet Transform and Convolutional Neural Networks
Previous Article in Journal
The t/k-Diagnosability and a t/k Diagnosis Algorithm of the Data Center Network BCCC under the MM* Model
Previous Article in Special Issue
Fast Conflict Detection for Multi-Dimensional Packet Filters
 
 
Font Type:
Arial Georgia Verdana
Font Size:
Aa Aa Aa
Line Spacing:
Column Width:
Background:
Article

BCCC Disjoint Path Construction Algorithm and Fault-Tolerant Routing Algorithm under Restricted Connectivity

1
Software College, Henan University, Kaifeng 475000, China
2
School of Computer and Information Engineering, Henan University, Kaifeng 475000, China
3
Henan Engineering Laboratory of Spatial Information Processing, Henan University, Kaifeng 475004, China
*
Author to whom correspondence should be addressed.
Algorithms 2022, 15(12), 481; https://doi.org/10.3390/a15120481
Submission received: 4 November 2022 / Revised: 6 December 2022 / Accepted: 6 December 2022 / Published: 17 December 2022
(This article belongs to the Special Issue Algorithms for Communication Networks)

Abstract

:
Connectivity in large-scale data center networks is a critical indicator to evaluate network state. A feasible and performance-guaranteed algorithm enables us to find disjoint paths between network vertices to ensure effective data transfer and to maintain the normal operation of network in case of faulty nodes. As an important data center network, BCube Connected Crossbars (BCCC) has many excellent properties that have been widely studied. In this paper, we first propose a vertex disjoint path algorithm with the time complexity of O ( n k ) in BCCC, where n denotes a switch connected to n servers and k denotes dimension. Then, we prove that the restricted connectivity of B C C C ( n , k ) . Finally, we present an O ( k n κ 1 ( G ) ) fault-free algorithm in BCCC, where κ 1 ( G ) is the restricted connectivity. This algorithm can obtain a fault-free path between any two distinct fault-free vertices under the condition that each vertex has at least one fault-free neighbor in the BCCC and a set of faulty vertices F with | F | < κ 1 ( G ) .

1. Introduction

The data center network (DCN) is a critical infrastructure of cloud computing, which can provide important cloud services such as GFS [1], Bigtable [2], and Dryad [3]. A data center network is a bridge connecting large-scale servers in the data center for distributed computing. As a widely used server-centric DCN, BCCC [4] can provide good network performance using inexpensive off-the-shelf switches and commodity servers with only two network interface card (NIC) ports. BCCC has many desirable properties such as high scalability, a near-equal-length parallel path, and a small diameter. The Hamilton properties and routing algorithm of BCCC have been studied [5,6,7,8].
Server failures are normal, since there are a large number of servers in the actual network. When the network fails, how to restore normal communication should be considered first. Furthermore, whether there is a fault-free path between any two different fault-free vertices and how to construct a fault-free path using an algorithm should be also taken into account. In other words, this is a problem of fault-tolerant routing, which is also the major problem we will study in this paper.
When designing or selecting a network topology for a data center, the most fundamental consideration is the fault tolerance of the network. Fault tolerance refers to the ability to continue working in the case of a network failure. Fault tolerance is the maximum number of failed devices that the network will allow to operate normally. In this paper, fault tolerance is directly determined by the connectivity of the network. The larger the connectivity scale, the better fault-tolerant performance of the data center network. In order to overcome the shortcoming of traditional connectivity, Harary [9] introduced the concept of the restricted faulty nodes on the resulting graph. Following this trend, Esfahanian [10] proposed the concept of restricted connectivity. The restricted connectivity is the connectivity under the condition that each fault-free node has at least one fault-free neighbor.
There have been many studies on the restricted connectivity of networks. Li et al. [11] establish a universally h-restricted connectivity for a class of hypercube-based compound networks, such as hierarchical cubic network and its generalization complete cubic network. Cheng [12] studies the h-restricted connectivity of an n-dimensional balanced hypercube B H n . Li et al. [13] investigate the h-restricted connectivity of the generalized hypercube. Liu et al. [14] prove the k-restricted edge connectivity of the data center network DCell and Lin et al. [15] establish the 3-restricted connectivity of an n-dimensional split-star network. Wang [16] shows the r-restricted connectivity of hyper Petersen graphs. Ma et al. [17] prove the restricted edge connectivity of Kronecker product graphs.
Finding disjoint paths between two vertex sets in a massively parallel system establishes secure communication paths that do not interfere with each other. Constructing multiple disjoint paths for two vertices increases the probability of constructing a fault-free path. In addition to being used to avoid congestion, speed up transmission rates, and provide alternative propagation paths, disjoint paths can also enhance the robustness of vertex failures and the ability to load balance. Wu et al. [18] propose an algorithm to give the disjoint path between any two distinct vertices in dragonfly networks. Kern [19] gives exact algorithms for disjoint paths and disjoint connected subgraphs on graphs with n vertices and m edges in H-free graphs. Hadid et al. [20] propose a self-stabilizing One-to-Many node disjoint path routing algorithm in star networks.
Fault-tolerant techniques are one of the pillar technologies of the network. At the routing algorithm level, routing fault tolerance is achieved by selecting different routing paths to bypass faulty links and nodes. Therefore, a fault-tolerant routing algorithm with good effects can be achieved by improving the traditional routing algorithm. Fault-tolerant routing algorithms for different networks have been studied. Pushparaj et al. [21] propose an algorithm for routing the packets in the case of a link fault in Mesh-of-Tree (MoT) topology. The algorithm ensures that the packets will reach their destination via the shortest possible path. Nehnouh et al. [22] introduce a new fault-tolerant routing algorithm, to tolerate permanent and transient faults in network-on-chips. Zhang et al. [23] propose a novel fault-tolerant routing algorithm for 3-ary n-cube networks based on the disjoint path with structure faults. Thuan et al. [24] propose a stochastic link-fault-tolerant routing algorithm in a folded hypercube by introducing a type of limited global information called routing probabilities. Ipek et al. [25] propose a highly adaptive fault-tolerant routing algorithm for two-dimensional network-on-chips.
In this paper, we study the vertex disjoint path construction algorithm and fault-tolerant routing algorithm under restricted connectivity in the BCCC. The major contributions are as follows:
(1)
We first propose a vertex disjoint path construction algorithm in BCCC. Time complexity is o( n k ). With this algorithm, n vertex disjoint paths can be constructed for any two vertices in the BCCC.
(2)
We prove that under the condition that each vertex has at least one fault-free neighbor in BCCC, its restricted connectivity is 2 κ ( G ) k 1 and 2 κ ( G ) n 2 , when n < k + 1 and n k + 1 , respectively, where κ ( G ) is the connectivity.
(3)
We give an O ( k n κ 1 ( G ) ) fault-free algorithm, where κ 1 ( G ) denotes the restricted connectivity of BCCC. This algorithm can obtain a fault-free path between any two distinct fault-free vertices under the condition that each vertex has at least one fault-free neighbor.
The rest of this paper is organized as follows: Section 2 provides the preliminaries. Section 3 proposes a vertex disjoint path construction algorithm. Section 4 discusses the restricted connectivity of BCCC. Section 5 gives a fault-free algorithm to obtain a fault-free path and an analysis of the time complexity of the algorithm. Section 6 provides the discussion and conclusions.

2. Preliminaries

2.1. Graph-Theoretic Terms

Given a simple graph G, we use V ( G ) and E ( G ) to denote the vertex set and the edge set, respectively. An edge with end vertices u and v is denoted by ( u , v ) . For each vertex v V ( G ) , if ( u , v ) E ( G ) , we say that u is a neighbor of v or u is adjacent to v. The set of all the neighbors of u is called the neighbor set of u in G, denoted by N G ( u ) . The total number of vertices of graph G is denoted by N.
Pathway P is a sequence consisting of ( x 1 , x 2 , , x n ) with a length of n, and there is ( x m , x m + 1 ) E ( G ) for any 0 m n . For any two different paths, P 1 and P 2 , the starting and ending points are the same, named x and y, respectively. If V ( P 1 ) V ( P 2 ) = x , y , then P 1 and P 2 will be vertex disjoint paths. Furthermore, if all vertices in P are fault-free, then P will be a fault-free path. If P 1 is a path between u and x, and P 2 is a path between x and v in G, then let ( P 1 , P 2 ) be a path between u and v in G. The reverse of P is ( x n , x n 1 , , x 1 ) , denoted by P 1 .
Let F V ( G ) and F be a set of faulty vertices. For any vertex x in G, if x F , then x is faulty; otherwise, x is fault-free. The connectivity of graph G is defined as κ ( G ) . This is the minimum number of vertices needed to make the graph disconnected or trivial. If we specify that every vertex has at least one fault-free neighbor, we call the connectivity in this case the limited connectivity, which is defined as κ 1 ( G ) .

2.2. Structure and Properties of BCCC

The BCCC structure connects servers by using recursively defined squares. In B C C C ( n , k ) , n denotes the n-port server and k denotes the dimension. First, we let n servers connect to an n-port switch as an element, denoted by BCCC(n,0). BCCC(n,k) is composed of n BCCC(n,k−1)s connecting n k elements. Two types of switch are used in BCCC, which are the type A switch and type B switch. A type A switch has n ports for forming an element and a type B switch has ( k + 1 ) ports for connecting different elements. Any server x in BCCC(n,k) can be represented by x k x k 1 x i x 0 , x i n 1 and i k . Any switch s can be represented by s k s k 1 s i s 0 and s i n 1 , 1 i k + 1 , s 0 n + k . Overall, to build BCCC(n,k), we need ( k + 1 ) n k + 1 dual-port servers, ( k + 1 ) n k type A switches, and n k + 1 type B switches. An example of B C C C ( 3 , 2 ) is shown in Figure 1.
We can see that a pair of servers a k + 1 a k a k 1 a 0 and a k + 1 a k a k 1 a 0 are neighbors, meaning that they are connected by the same switch, if and only if i , i = a 0 + 1 or i = 0 , such that a i a i , and j , 0 j k + 1 , i j , such that a j = a j .
According to the numbering rules of the B C C C server, x 0 connects different layers. x i 0 , n 1 , 1 i k + 1 . Therefore, BCCC can be divided into n subgraphs. We divide BCCC into n subgraphs according to the second digit number of the server from right to left. Servers with the same second digit number are located in the same subgraph. These subgraphs are named B C C n , k 1 , B C C n , k 2 , …, B C C n , k n . The second digit number is 0 and the subgraph is B C C n , k 1 . We named the server connected to other subgraphs u 1 , and named those not connected to other subgraphs u 2 . An example of B C C C 3 , 2 1 is shown in Figure 2.
Lemma 1.
BCCC (n,k) has the following properties [4]:
(1) 
B C C C ( n , k ) is (n+k−1)-regular graph. N = ( k + 1 ) n k + 1 .
(2) 
The connectivity of B C C C ( n , k ) is κ ( G ) = n + k 1 .
(3) 
There are n k vertex disjoint paths connecting different B C C C ( n , k 1 ) in B C C C ( n , k ) .

3. Vertex Disjoint Path Construction Algorithm

In this section, we propose a vertex disjoint path construction algorithm for BCCC. The algorithm constructs n vertex disjoint paths between any two nodes u and v in the BCCC.

3.1. Algorithm Description and Implementation

There are two vertex disjoint path algorithms, including BuildPathSet and Convert. BuildPathSet is the master algorithm. The Convert algorithm can change one bit of the u node number to the corresponding bit of the v node. The flow of the vertex disjoint path algorithm is as follows (refer to Algorithm 1). First, a series of v nodes located at the vertices of the same type A switch v 2 , v 1 , , v n 1 are selected. Then, a vertex v n located on the same type B switch as v is determined. The mode of the first path is as follows. First, we reach node x. The value of the u 0 bit of x is 0. In addition, x is on the same type A switch as the source node. The path is selected from node x to node v 1 . The second path pattern is as follows. First, some data arrive at the y node. The value of the u 0 bit of y is 1. In addition, node y and the source node reside on the same type A switch. The path is from node y to node v 2 . The other paths follow the same rules. The Convert algorithm is invoked n 1 times during the process from the source node to the target node. One digit is changed from the highest digit of the number to the lowest digit each time.
Algorithm 1 Vertex Disjoint Path Algorithm of BCCC.
Input: Two different vertices u = u k + 1 u k u 0 and v = v k + 1 v k v 0 in B C C C ( n , k ) . Let the neighbor node of the same type A switch with v be v 1 , v 2 , , v n 1 , and select any a neighbor node in the same type B switch as v n .
Output:n vertex disjoint paths from u to v.
  1:  function BuildPathSet( B C C C ( n , k ) , u , v )
  2:   z = v ;
  3:  for i = 0 ; i = n 1 ; i + + do
  4:      v = v i + 1 , P a t h = ;
  5:     add u to P a t h ;
  6:     if u u 0 i then
  7:        u = u k + 1 u k u u 0 u 0 , u u 0 = i, i 1 , 2 , , k + 1 ;
  8:        add u to P a t h ;
  9:     for j = k + 1; j > 0; j  do
10:        if u = = z then
11:        break;
12:        if u j v j then
13:        u, p a t h = CONVERT(u, v, u j , v j , P a t h );
14:     if u 0 v 0 then
15:        u = u k + 1 u k v 0 ;
16:        add u to P a t h ;
17:     if u z then
18:        add v, z to P a t h ;
19:     print( P a t h );
20:  function CONVERT(u, v, u x , v y , P a t h )
21:   u = u k + 1 u k u x u 0 , x 1 , 2 , , k + 1 ;
22:   v = v k + 1 v k v y v 0 , y 1 , 2 , , k + 1 ;
23:  if u 0 == v 0 then
24:      w = u ;
25:  else
26:      u 0 = v y ;
27:      w = u k + 1 u k v y ;
28:     add w to P a t h ;
29:   u x = u y ;
30:  u = u k + 1 u k v y u 0 ;
31:  add u to P a t h ;
32:  return(u, P a t h );

3.2. Analysis of Vertex Disjoint Path Construction Algorithm

First, the time complexity of the Convert algorithm is analyzed. The node number of u is changed from one bit to v. This node is added to the path set and the time complexity is O ( 1 ) . The second ’for’ loop in the BuildPathSet algorithm runs a total of k times from high to low with O ( k ) concomitant time complexity. The first ’for’ loop causes the algorithm to form a total of n paths with O ( n ) adjoint time complexity. In summary, the time complexity of the BuildPathSet algorithm is O ( n k ) .

3.3. Application Examples

Example 1.
Given the network B C C C ( 3 , 2 ) (see Figure 1), three vertex disjoint paths are constructed by the algorithm. The source node is selected as 0000 and the target node as 2011. It can be obtained that the nodes located in the same switch with the target node are 2111, 2211, and 2010. The first path is from 0000 to 2111. The Convert algorithm is used to gradually change from the highest bit to the lowest bit. Therefore, P a t h 1 = 0000 0002 2002 2001 2101 2100 2110 2111 . This eventually reaches 2011 through the type A switch.
The second path first selects node 0010, which is located in the same type A switch as node 0000, and reaches 2211 from 0010, using the Convert algorithm. Therefore, P a t h 2 = 0000 0010 0012 2012 2011 . Because the 2011 node is encountered on the path to the 2211 node and 2011 is the target node, the path is obtained by jumping out directly according to lines 10 and 17 of the algorithm.
The third path selects node 0020, which is located in the same type A switch as node 0000. The Convert algorithm is used to reach 2010 from 0020. Therefore, P a t h 3 = 0000 0020 0022 2022 2020 2010 2011 . Finally, three vertex disjoint paths from 0000 to 2011 are obtained.

4. Restricted Connectivity of BCCC

In this section, we prove the restricted connectivity of BCCC. We refer to the entire graph of B C C C as G.
Theorem 1.
The restricted connectivity of B C C C is
κ 1 ( G ) 2 n + k 3 = 2 κ ( G ) k 1 , if n < k + 1 ,
κ 1 ( G ) n + 2 k 2 = 2 κ ( G ) n , if n k + 1 , when n 3 and k 2 .
Proof. 
Let u and v be two vertices of the same type A switch ( v N G ( u ) ). Therefore, | N G ( u ) N G ( v ) | = n 2 .
If | N G ( u ) | = | N G ( v ) | = κ ( G ) , according to the definition,
| N G ( { u , v } ) | = | N G ( u ) N G ( v ) ( N G ( u ) N G ( v ) ) | = | N G ( u ) 1 | + | N G ( v ) 1 | ( n 2 ) = 2 ( κ ( G ) 1 ) ( n 2 ) = 2 κ ( G ) n
Let F = N G ( u , v ) , so G F is divided into two disconnected subgraphs: one is G ( u , v ) and the other is G ( N G ( u , v ) u , v ) . Furthermore, u has a fault-free neighbor v. Therefore, each vertex of subgraph G ( u , v ) has at least one fault-free neighbor. Let H = N G ( u , v ) u , v , for B C C C ( n , k ) , when u and v are located in the same type A switch, each node in N G ( H ) has only one neighbor that is a faulty node. According to Lemma 1 (2), κ ( G ) = n + k 1 . Therefore, κ ( G ) is constantly greater than 2 when n 3 and k 2 . It can be ensured that each node in G ( N G ( u , v ) u , v ) has at least one fault-free neighbor.
In summary, G F is disconnected and each vertex in both subgraphs contains at least one fault-free neighbor. Hence, κ 1 ( G ) 2 n + k 2 = 2 κ ( G ) n . Therefore, the theorem holds.
Let x and y be two vertices of the same type B switch ( v N G ( u ) ) ( y N G ( x ) ). Therefore, | N G ( x ) N G ( y ) | = k 1 .
If | N G ( x ) | = | N G ( y ) | = κ ( G ) , according to the definition,
| N G ( { x , y } ) | = | N G ( x ) N G ( y ) ( N G ( x ) N G ( y ) ) | = | N G ( x ) 1 | + | N G ( y ) 1 | ( k 1 ) = 2 ( κ ( G ) 1 ) ( k 1 ) = 2 κ ( G ) k 1
Proving that the two vertices are in the same type B switch is the same as proving the two vertices are in the same type A switch. Let F = N G ( x , y ) , so G F is disconnected and each vertex in both subgraphs contains at least one fault-free neighbor. Above all, κ 1 ( G ) 2 k + n 3 = 2 κ ( G ) k 1 . Therefore, the theorem holds. □
Theorem 2.
The restricted connectivity of B C C C is
κ 1 ( G ) 2 n + k 3 = 2 κ ( G ) k 1 , if n < k + 1 ,
κ 1 ( G ) n + 2 k 2 = 2 κ ( G ) n , if n k + 1 , when n 3 and k 2 .
Proof. 
Let F be the set of faulty vertices in G. Proving this theorem is equivalent to proving, for any two vertices u and v in G F , there exists a fault-free path from u to v. Furthermore, any vertex in G F has at least one fault-free neighbor.
If u and v are adjacent, the theorem holds. Hence, we discuss the case that u and v are not adjacent. According to the structure of BCCC, BCCC can be divided into n subgraphs. Let B C C n , k i for i n 0 be the subgraph of G. Furthermore, u B C C n , k α , v B C C n , k β for α , β n 0 . Let F α = V ( B C C n , k α ) F and F β = V ( B C C n , k β ) F . Let R = n 0 , α , B C C n , k R be a subgraph other than B C C n , k α in G and F R = V ( B C C n , k R ) F . If N G ( u ) V ( B C C n , k R ) , u is named as u 1 . Otherwise, u is named as u 2 .
Lemma 2.
If F is a set of vertices in B C C C ( n , k ) , and for any subgraph i in B C C C ( n , k ) , B C C n , k R is connected if | F V ( G V ( B C C n , k i ) ) | κ ( G ) 2 .
Proof. 
According to the construction rules of BCCC, U is set as the point adjacent to B C C n , k i in B C C n , k R to reach the conclusion that the point set of U is located in the same type A switch of subgraph B C C n , k i and has no neighbors. Therefore, the point in the set of U points is the one with the fewest neighbors in B C C n , k i . These vertices have k vertex disjoint paths in the B C C n , k i subgraph. This achieves κ ( B C C n , k i ) = k ( k 2 ) . Moreover, for any vertex x in B C C n , k R to connect to B C C n , k i , one of x’s neighbors in the same type A switch is not in the subgraph. Therefore, κ ( B C C n , k R ) = κ ( G ) 1 .
Because | F V ( G V ( B C C n , k i ) ) | κ ( G ) 2 and κ ( B C C n , k R ) = κ ( G ) 1 , B C C n , k R are connected, and the Lemma holds. □
According to the position of u and v vertices in BCCC, we have the following cases.
  • Case 1. α β .
  • Subcase 1.1. | F α | κ ( B C C n , k α ) o r | F β | κ ( B C C n , k β ) .
Without losing generality, suppose | F α | κ ( B C C n , k α ) . Apparently, | F R | = | F F α | 2 κ ( G ) n 1 ( κ ( G ) n + 1 ) κ ( G ) 2 . According to Lemma 2, B C C n , k R F R is connected. Next, we discuss the following cases.
  • Subcase 1.1.1. u is u 1 .
  • Subcase 1.1.1.1. N G ( u 1 ) V ( B C C n , k R ) F .
Selecting a vertex x, x ( N G ( u 1 ) V ( B C C n , k R ) ) , there is a path P 1 from u 1 to x in B C C n , k α F α . Because B C C n , k R F R is connected, there exists a fault-free path P 2 from x to v in B C C n , k R .
  • Subcase 1.1.1.2. N G ( u 1 ) V ( B C C n , k R ) F .
Because the neighbors of u 1 are all fault vertices in subgraph B C C n , k R , there must be a fault-free neighbor in subgraph B C C n , k α . Now, we consider how many fault-free paths from u 1 to B C C n , k R exist in B C C n , k α . Furthermore, N G ( u 1 ) V ( B C C n , k R ) = n 1 .
Let x 1 , x 2 , , x n 1 be all neighbors of u 1 in B C C n , k R .
Let y 1 , y 2 , , y k be all neighbors of u 1 in B C C n , k α ; y 1 , y 2 , , y k be the same type A switch neighbors of y 1 , y 2 , , y k ; y 1 , y 2 , , y k be all neighbors of y 1 , y 2 , , y k in B C C n , k α and N G ( y i ) v ( B C C n , k R ) , i 1 , 2 , , k . Thus, there are ( n 1 ) ( k + 1 ) paths from u 1 to B C C n , k R as follows (refer to Figure 3). The specific paths are listed below:
X i = ( u 1 , x i ) , 1 i n 1 Y i = ( u 1 , y i , y i , y i ) , 1 i k , i = k ( n 1 )
Because N G ( u 1 ) V ( B C C n , k R ) F , F V ( B C C n , k R ) n 1 , F V ( B C C n , k α ) κ 1 ( G ) 1 n + 1 = κ 1 ( G ) n . Whether κ 1 ( G ) = 2 κ ( G ) n or 2 κ ( G ) k 1 , ( n 1 ) ( k + 1 ) k 1 ( G ) n 1 . Therefore, there is at least one fault-free path P 1 from u 1 to B C C n , k R . Assume that t is the last vertex in the path P 1 . If t = v , then P 1 is a path from u 1 to v in G F . Otherwise, since B C C n , k R F R is connected, there is a fault-free path P 2 from t to v in B C C n , k R . Then, the path ( P 1 , P 2 ) is a fault-free path from u 1 to v in G F .
  • Subcase 1.1.2. u is u 2 .
It can be obtained that u 2 is a vertex in B C C n , k α and its neighbors are all in this subgraph. According to the definition of restricted connectivity, there is a fault-free neighbor in B C C n , k α . Now, we consider how many fault-free paths there are from u 2 to B C C n , k R in B C C n , k α .
Let x be the neighbor of u 2 and N G ( x ) V ( B C C n , k R ) .
Let y 1 , y 2 , , y n 1 be the same type A switch neighbors of u 2 ; y 1 , y 2 , , y n 1 be all neighbors of y 1 , y 2 , , y n 1 in B C C n , k α , and N G ( y i ) V ( B C C n , k R ) , i 1 , 2 , , n 1 .
Let z 1 , z 2 , , z k 1 be neighbors of u 2 in the same type B switch, except x; z 1 , z 2 , , z k 1 be the same type A switch neighbors of z 1 , z 2 , , z k 1 ; z 1 , z 2 , , z k 1 be all neighbors of z 1 , z 2 , , z k 1 in B C C n , k α and N G ( z i ) V ( B C C n , k R ) , i 1 , 2 , , k 1 . Above all, there are ( k 1 ) ( n 1 ) + n paths from u 2 to B C C n , k R as follows (refer to Figure 4). The specific paths are listed below:
X i = ( u 2 , x ) Y i = ( u 2 , y i , y i ) , 1 i n 1 Z i = ( u 2 , z i , z i , z i ) , 1 i k 1 , i = ( k 1 ) ( n 1 )
Since | F ( G ) | = 2 k ( G ) n 1 = 2 ( n + k 1 ) n 1 = n + 2 k 3 , we have ( k 1 ) ( n 1 ) + n | F ( G ) | = 1 when n = k + 1 and n = 3 . Furthermore, when n > 3 , whether κ 1 ( G ) = 2 κ ( G ) n or 2 κ ( G ) k 1 , ( k 1 ) ( n 1 ) + n κ 1 ( G ) > 1 . Therefore, there is at least one fault-free path P in the above ( k 1 ) ( n 1 ) + n paths from u 2 to B C C n , k R . Assume that w is the last vertex in the path P 1 . If w = v , then P 1 is a path from u to v in G F . Otherwise, since B C C n , k R F R is connected, there is path P 2 between w and v in B C C n , k R . Then, the path ( P 1 , P 2 ) is a path from u 2 to v in G F .
  • Subcase 1.2. | F α | < κ ( B C C n , k α )   and   | F β | < κ ( B C C n , k β ) .
Because B C C n , k α F α and B C C n , k β F β are all connected, let x i | x 1 , x 2 , , x n 2 be a set of vertices connected to other subgraphs in B C C n , k α . Let y i | y 1 , y 2 , , y n 2 be a set of vertices connected to other subgraphs in B C C n , k β . It can be obtained that | N G ( x i ) y i | = n 2 . Whether κ 1 ( G ) = 2 κ ( G ) n or 2 κ ( G ) k 1 , n 2 > κ 1 ( G ) 1 . Therefore, there must exist a fault-free vertex x ( x x i ) and y ( y y i ) in the same type A switch. If u = x , then it is directly connected to B C C n , k β . If u x , since B C C n , k α F α is connected, there exists a fault-free path P 1 from u to x in B C C n , k α F α . Since x and y are located in the same switch, there is a fault-free path P 2 from x to y. If v = y , it is directly connected to B C C n , k α . If v y , since B C C n , k β F β is connected, there exists a fault-free path p 3 from y to v in B C C n , k β F β . Then, the path ( P 1 , P 2 , P 3 ) is a path from u to v in G F (refer to Figure 5b).
  • Subcase 2. α = β .
If | F α | < κ ( B C C n , k α ) , B C C n , k α F α is connected. There exists a fault-free path from u to v in B C C n , k α . Thus, we only need to consider that | F α | κ ( B C C n , k α ) . According to subcase 1.1, if B C C n , k α F α is not connected, B C C n , k R F R is connected. According to subcase 1.1.1 and subcase 1.1.2, whether u = u 1 or u = u 2 , there must exist a fault-free path from u(v) to B C C n , k R . Thus, there exists a fault-free path P 1 from u to a vertex x in B C C n , k α and a fault-free path P 2 from v to a vertex y in B C C n , k α . If x = y , the path ( P 1 , P 2 1 ) is a path from u to v. If x y , since B C C n , k R F R is connected, there exists a fault-free path P 3 from x to y. Then, the path ( P 1 , P 3 , P 2 1 ) is a path from u to v in G F (refer to Figure 5c).
In summary, if there exists a fault-free path between any two vertices u and v in BCCC, the theorem holds. □
Theorem 3.
The restricted connectivity of B C C C is
κ 1 ( G ) = n + 2 k 3 = 2 κ ( G ) k 1 , if n < k + 1 ,
κ 1 ( G ) = 2 n + k 2 = 2 κ ( G ) n , if n k + 1 , when n 3 and k 2 .
Proof. 
According to Theorems 1 and 2, the theorem holds. □

5. Fault-Free Routing Algorithm of BCCC under the Restricted Connectivity

In this section, we first give a fault-free routing Algorithm B C C F T P . Furthermore, we analyze the time complexity of this algorithm.

5.1. Algorithm Description and Implementation

Algorithm B C C F T P (refer to Algorithm 2) can give a fault-free path between any two fault-free vertices u and v in G F , where F is the set of faulty vertices in G, | F | < κ 1 ( G ) , and any vertex in G F has at least one neighbor.
Algorithm 2 Fault-free routing algorithm of B C C C .
Input: Given the graph G to represent B C C C ( n , k ) , a set of fault vertices F V ( G ) , two different vertices u and v. The subgraph α in which u is located, subgraph β in which v is located.
Output: A fault-free path from vertex u to v in G F .
  1:  function BCCFTP(u,v, α , β ,F, B C C C ( n , k ) )
  2:  if F = then
  3:     Return BCTP(u,v, B C C C ,F);
  4:  else if ( u , v ) E ( G )  then
  5:     Return(u,v);
  6:   κ κ ( B C C n , k α ), α u , β v ;
  7:   F α F ( κ ( B C C n , k α ) , F β F ( κ ( B C C n , k β )
  8:  if α β then
  9:     if | F α | κ then
10:         P 1 PATHSEQ(u, F, B C C n , k α , G B C C n , k α );
11:        let s be the last vertex of P a t h P 1 ;
12:        if s = v then
13:          return P 1 ;
14:        return( P 1 , BCTP(s,v, G B C C n , k α , F F β );
15:     else if | F β | κ then
16:         P 1 PATHSEQ(v, F, B C C n , k β , G B C C n , k β );
17:        let s be the last vertex of P a t h P 1 ;
18:        if s = u then
19:          return P 1 ;
20:        return(BCTP(u, s, G B C C n , k β , F F α ), p 1 1 );
21:     else | F α | < κ && | F β | < κ
22:         P 1 PATHSEQ(u, F, B C C n , k α , B C C n , k β );
23:        let s be the last vertex of P a t h P 1 ;
24:        if s = v then
25:          return P 1 ;
26:         P 1 +=BCTP(s, v, B C C n , k β , F β );
27:        return P 1 ;
28:  else if | F α | < κ then
29:     return(BCTP(u, v, B C C n , k β , F α ).
30:  else
31:      P 1 PATHSEQ(u, F, B C C n , k α , G B C C n , k α );
32:     let s be the last vertex of P a t h P 1 ;
33:      P 2 PATHSEQ(v, F, B C C n , k α , G B C C n , k α );
34:     let t be the last vertex of P a t h P 2 ;
35:     if w be the first common vertex of P 1 and P 2  then
36:        return ( P a t h ( P 1 , u, w), P a t h ( P 2 1 , w, v));
37:      P 1 +=BCTP(s, t, G B C C n , k α , F F α );
38:     return P 1 + P 2 1 ;
39:  
40:  function PATHSEQ(u, F, H 1 , H 2 )
41:  if N G ( u ) V ( H 2 ) then
42:     if N G ( u ) V ( H 2 ) F then
43:        select one fault-free vertex x from N G ( u ) V ( H 2 ) ;
44:        return(u, x);
45:     else
46:        for all y 1 N G ( u ) V ( H 1 ) F do
47:          if N G ( y 1 ) V ( H 1 ) F then
48:            for all y 2 N G ( u ) V ( H 1 ) F do
49:              if N G ( y 2 ) V ( H 1 ) F then
50:                for all y 3 N G ( u ) V ( H 2 ) F do
51:                  if N G ( y 3 ) V ( H 2 ) F then
52:                    select one fault-free vertex y 4 from N G ( y 3 ) V ( H 2 ) F ;
53:                    return(u, y 1 , y 2 , y 3 , y 4 )
54:  else
55:     Select a vertex x 1 connected to other subgraphs, select a vertex y 1 in the same type A switch, and a vertex z 1 in the same type B switch from N G ( u ) V ( H 1 ) F ;
56:     if N G ( x 1 ) V ( H 2 ) F then
57:        select one fault-free vertex x 2 from N G ( x 1 ) V ( H 2 ) F ;
58:        return(u, x 1 , x 2 );
59:     if N G ( y 1 ) V ( H 1 ) F then
60:        for all y 2 N G ( y 1 ) V ( H 1 ) F do
61:          if N G ( y 2 ) V ( H 2 ) F then
62:            for all y 3 N G ( y 2 ) V ( H 2 ) F do
63:              select one fault-free vertex y 3 from N G ( y 3 ) V ( H 2 ) F ;
64:              return(u, y 1 , y 2 , y 3 );
65:     for all z 2 N G ( z 1 ) V ( H 1 ) F do
66:        if N G ( z 2 ) V ( H 1 ) F then
67:          for all z 3 N G ( z 2 ) V ( H 1 ) F do
68:            if N G ( z 3 ) V ( H 1 ) F then
69:              for all z 4 N G ( z 2 ) V ( H 2 ) F do
70:                select one fault-free vertex z 4 from N G ( z 3 ) V ( H 1 ) F ;
71:                return(u, z 1 , z 2 , z 3 , z 4 );
72:  
73:  function BCTP(u, v, B C C C , F)
74:  Select a fault free path from B u i l d P a t h S e t ( B C C C , u , v ) in G F ;

5.2. Analysis of Fault-Free Unicast Algorithm

First, the time complexity of P A T H S E Q ( u , F , H 1 , H 2 ) and B C T P ( u , v , B C C , F ) functions is analyzed. u in H 1 exists in the P A T H S E Q ( u , F , H 1 , H 2 ) function. This depends on whether u is connected to other subgraphs, including u 1 and u 2 . The path from u 1 to the subgraph H 2 is ( u , x ) , ( u , y 1 , y 2 , y 3 , y 4 ) . The time complexity of P A T H S E Q in different situations is as follows. First, the path is ( u , x ) , because ( N G ( u ) V ( H 2 ) ) F finds a vertex x in H 2 , and returns a path ( u , x ) . The time complexity is O ( 1 ) in this case. Second, the path is ( u , y 1 , y 2 , y 3 , y 4 ) . Each vertex in the set is y 1 and the time complexity is O ( 1 ) after traversing ( N G ( u ) V ( H 1 ) ) F . Each vertex in the set is y 2 and the time complexity is less than O ( κ ( G ) ) after traversing ( N G ( y 1 ) V ( H 1 ) ) ( F u ) . Each vertex in the set is y 3 and the time complexity is less than O ( κ ( G ) ) after we go through ( N G ( y 2 ) V ( H 1 ) ) ( F y 1 ) . Each vertex in the set is y 4 and the time complexity is O ( 1 ) . After traversing ( N G ( y 3 ) V ( H 2 ) ) F , paths ( u , y 1 , y 2 , y 3 , y 4 ) ) are obtained. The time complexity is less than O ( κ ( G ) 2 ) in this case.
The path from u 2 to subgraph H 2 includes ( u , x 1 , x 2 ) , ( u , y 1 , y 2 , y 3 ) , and ( u , z 1 , z 2 , z 3 , z 4 ) . First, the path is ( u , x 1 , x 2 ) . Each vertex in the set is x and the time complexity is O ( 1 ) after the function traverses ( N G ( u ) V ( H 1 ) ) F . Next, vertex x 2 is found from ( N G ( x 1 ) V ( H 2 ) ) F . The time complexity in this case is O ( k ) < O ( k ( G ) ) . Second, the path is ( u , y 1 , y 2 , y 3 ) . The function traverses ( N G ( u ) V ( H 1 ) ) F . The node is set on the same type A switch as u to y 1 and the time complexity to O ( 1 ) . Then, traversing ( N G ( y 1 ) V ( H 1 ) ) ( F u ) sets the point connected with other subgraphs as y 2 , and the time complexity is less than O ( κ ( G ) ) . Finally, ( N G ( y 2 ) V ( H 2 ) ) F is traversed and node y 3 selected. In this case, the time complexity is less than O ( κ ( G ) ) . Third, the path of u 2 ( u , z 1 , z 2 , z 3 , z 4 ) is the same as the path of u 1 ( u , y 1 , y 2 , y 3 , y 4 ) . In summary, the time complexity of the P A T H S E Q ( u , F , H 1 , H 2 ) function is O ( κ ( G ) 2 ) combined with u 1 and u 2 .
Next, we analyze B C C F T P ( u , v , α , β , F , B C C ( n , k ) ) . B C C F T P is divided into two cases, including α β and α = β .
In the case of α β , if | F α | k , Algorithm B C C F T P will first obtain a fault-free path P 1 from u to a vertex s in G B C C n , k α by P A T H S E Q ( u , F , B C C n , k α , G B C C n , k α ) . The time complexity of this part is O ( κ ( G ) 2 ) . Next, Algorithm B C C F T P will return P 1 if s = v ; then, the time to obtain the path from u to v in G F is O ( κ ( G ) 2 ) . Otherwise, Algorithm B C C F T P will return ( P 1 , B C T P ( s , v , G B C C n , k α , F F β ) ); then, the time to run B C T P ( s , v , G B C C n , k α , F F β ) is O ( k n κ 1 ( G ) ) and the time to obtain a path ( P 1 , B C T P ( s , v , G B C C n , k α , F F β ) ) by connecting path P 1 and B C T P is O ( 1 ) . Thus, the time to obtain the path from u to v in G F is O ( κ ( G ) 2 + k n κ 1 ( G ) + 1 ) = O ( k n κ 1 ( G ) ) . Furthermore, for subcases | F β | k , | F α | < k , and | F β | < k , the time to obtain the path from u to v in G F is O ( k n κ 1 ( G ) ) , which is similar to that discussed in the case of | F α | k .
In the case of α = β , if | F α | k , Algorithm B C C F T P will firstly obtain a fault-free path from u to v in B C C n , k α by PATHSEQ ( u , F , B C C n , k α , F α ) . The time complexity of this part is O ( κ ( G ) 2 ) . Then, Algorithm BCCFTP will first obtain a fault-free path P 1 from u to a vertex s and path P 2 from v to a vertex t in B C C n , k α in the time of O ( κ ( G ) 2 ) . If P 1 and P 2 have a common vertex w, Algorithm B C C F T P will return (Path ( P 1 , u , w ) , Path ( P 2 1 , w , v ) ) . Since the time to obtain Path ( P 1 , u , w ) is O ( 1 ) , the time complexity is O ( 2 κ ( G ) 2 + O ( 1 ) ) = O ( κ ( G ) 2 ) . If P 1 and P 2 have no common vertex, the function will run B C T P ( s , t , G B C C n , k α , F F α ) to construct a fault-free path from s to t. The time complexity of this part is O ( k n κ 1 ( G ) ) . Therefore, the time to obtain the path from u to v in G is O ( 2 κ ( G ) 2 + k n κ 1 ( G ) + 2 1 ) = O ( k n κ 1 ( G ) ) .
In summary, the time complexity of Algorithm B C C F T P is O ( k n κ 1 ( G ) ) .

6. Discussion and Conclusions

As the infrastructure of cloud computing, data center networking has become a hot topic in recent years. As an important DCN model, BCCC can support millions of servers with excellent communication characteristics and provide good fault tolerance. In this paper, a point disjoint path algorithm with time complexity O ( n k ) is proposed. The algorithm can give n vertex disjoint paths between any two vertices. Multiple disjoint paths can enhance routing performance and improve network reliability. Then, we prove the condition that each vertex has at least one fault-free neighbor, and that the restricted connectivity of BCCC is 2 κ ( G ) k 1 and 2 κ ( G ) n , when n < k + 1 and n k + 1 , respectively. Restricted connectivity can be obtained at almost twice the traditional connectivity. The larger the connectivity scale, the better the fault-tolerant performance of the data center network. Finally, we give the O ( k n κ 1 ( G ) ) trouble-free algorithm with limited connectivity. This algorithm can obtain the fault-free path between any two different fault-free vertices. The premise is that each vertex has at least one fault-free neighbor in the BCCC.
Our algorithm is proposed based on the condition that each fault-free vertex has one fault-free neighbor. In the majority of cases, each vertex has more than one fault-free neighbor in large interconnected networks. In the future, the h-restricted connectivity ( h 2 ) of BCCC will be studied, which is a guarantee for accommodating more failed servers when the network is large enough. Fault-free algorithms based on h-restricted connectivity can ensure that the network allows more fault nodes. In addition, many other network connectivity limitations in DCN have not been studied, such as Ficonn [26], HCN and BCN [27]. This, together with the design of related routing algorithms, may be worth further investigation. In the meantime, most networks only consider server failures. In fact, both switches and links could fail. There are currently few studies on switch and link failures. Therefore, the fault tolerance of switches and links in the network can be analyzed, and corresponding fault-tolerant routing algorithms can be designed to ensure the connectivity of the network.

Author Contributions

Conceptualization, J.L. and X.D.; methodology, J.L. and H.L.; software, J.L. and Z.H.; validation, J.L. and X.D.; formal analysis, J.L. and Z.H.; investigation, J.L. and X.D.; data curation, J.L. and H.L.; writing—original draft preparation, J.L. and X.D.; writing—review and editing, J.L., X.D., H.L. and Z.H. All authors have read and agreed to the published version of the manuscript.

Funding

This work was supported by the Special Project for Key R&D and the Promotion of Science, Technology Department of Henan Province (202102210327, 222102210272, 222102210052, 222102210007, 222102210062 and 212102210094), the Key Technology Research and Development Project of Henan Province under Grant (222102210055), the Postgraduate Education Reform and Quality Improvement Project of Henan Province under Grant (YJS2022JD26), the Major Science and Technology Projects of Henan Province, the Major Public Welfare Projects of Henan Province (201300210400) and Kaifeng Science and Technology Development Plan (2201010).

Data Availability Statement

Not applicable, the study does not report any data.

Conflicts of Interest

The authors declare no conflict of interest.

References

  1. Ghemawat, S.; Gobioff, H.; Leung, S.T. The Google file system. In Proceedings of the Nineteenth ACM Symposium on Operating Systems Principles, Bolton Landing, NY, USA, 19–22 October 2003; pp. 29–43. [Google Scholar]
  2. Chang, F.; Dean, J.; Ghemawat, S.; Hsieh, W.C.; Wallach, D.A.; Burrows, M.; Chandra, T.; Fikes, A.; Gruber, R.E. Bigtable: A distributed storage system for structured data. ACM Trans. Comput. Syst. (TOCS) 2008, 26, 1–26. [Google Scholar] [CrossRef]
  3. Isard, M.; Budiu, M.; Yu, Y.; Birrell, A.; Fetterly, D. Dryad: Distributed data-parallel programs from sequential building blocks. In Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007, Lisboa, Portugal, 21–23 March 2007; pp. 59–72. [Google Scholar]
  4. Li, Z.; Guo, Z.; Yang, Y. BCCC: An expandable network for data centers. In Proceedings of the Tenth ACM/IEEE Symposium on Architectures for Networking and Communications Systems, Marina del Rey, CA, USA, 20–21 October 2014; pp. 77–88. [Google Scholar]
  5. Castillo, A.C. BCube Connected Crossbar and GBC3 Network Architecture: An Overview. In Proceedings of the 2022 31st Conference of Open Innovations Association (FRUCT), Helsinki, Finland, 27–29 April 2022; pp. 37–44. [Google Scholar]
  6. Li, X.Y.; Lin, W.; Liu, X.; Lin, C.K.; Pai, K.J.; Chang, J.M. Completely independent spanning trees on BCCC data center networks with an application to fault-tolerant routing. IEEE Trans. Parallel Distrib. Syst. 2021, 33, 1939–1952. [Google Scholar] [CrossRef]
  7. He, X.; Zhang, Q.; Han, Z. The Hamiltonian of Data Center Network BCCC. In Proceedings of the 2018 IEEE 4th International Conference on Big Data Security on Cloud (BigDataSecurity), IEEE International Conference on High Performance and Smart Computing,(HPSC) and IEEE International Conference on Intelligent Data and Security (IDS), Omaha, NE, USA, 3–5 May 2018; pp. 147–150. [Google Scholar]
  8. Han, Z.; Zhang, W. A summary of the BCCC data center network topology. In Proceedings of the 2018 IEEE 4th International Conference on Big Data Security on Cloud (BigDataSecurity), IEEE International Conference on High Performance and Smart Computing, (HPSC) and IEEE International Conference on Intelligent Data and Security (IDS), Omaha, NE, USA, 3–5 May 2018; pp. 270–272. [Google Scholar]
  9. Harary, F. Conditional connectivity. Networks 1983, 13, 347–357. [Google Scholar] [CrossRef]
  10. Esfahanian, A.H. Generalized measures of fault tolerance with application to n-cube networks. IEEE Trans. Comput. 1989, 38, 1586–1591. [Google Scholar] [CrossRef]
  11. Li, X.; Zhou, S.; Ma, T.; Guo, X.; Ren, X. The h-Restricted Connectivity of a Class of Hypercube-Based Compound Networks. Comput. J. 2022, 65, 2528–2534. [Google Scholar] [CrossRef]
  12. Cheng, D. The h-restricted connectivity of balanced hypercubes. Discret. Appl. Math. 2021, 305, 133–141. [Google Scholar] [CrossRef]
  13. Li, X.; Zhou, S.; Guo, X.; Ma, T. The h-restricted connectivity of the generalized hypercubes. Theor. Comput. Sci. 2021, 850, 135–147. [Google Scholar] [CrossRef]
  14. Liu, X.; Meng, J. The k-restricted edge-connectivity of the data center network DCell. Appl. Math. Comput. 2021, 396, 125941. [Google Scholar] [CrossRef]
  15. Lin, L.; Huang, Y.; Wang, X.; Xu, L. Restricted connectivity and good-neighbor diagnosability of split-star networks. Theor. Comput. Sci. 2020, 824, 81–91. [Google Scholar] [CrossRef]
  16. Wang, S. The r-Restricted Connectivity of Hyper Petersen Graphs. IEEE Access 2019, 7, 109539–109543. [Google Scholar] [CrossRef]
  17. Ma, T.; Wang, J.; Zhang, M. The restricted edge-connectivity of Kronecker product graphs. Parallel Process. Lett. 2019, 29, 1950012. [Google Scholar] [CrossRef]
  18. Wu, S.; Fan, J.; Cheng, B.; Yu, J.; Wang, Y. Connectivity and constructive algorithms of disjoint paths in dragonfly networks. Theor. Comput. Sci. 2022, 922, 257–270. [Google Scholar] [CrossRef]
  19. Kern, W.; Martin, B.; Paulusma, D.; Smith, S.; van Leeuwen, E.J. Disjoint paths and connected subgraphs for H-free graphs. Theor. Comput. Sci. 2022, 898, 59–68. [Google Scholar] [CrossRef]
  20. Hadid, R.; Villain, V. A Self-stabilizing One-To-Many Node Disjoint Paths Routing Algorithm in Star Networks. In Proceedings of the IFIP International Conference on Distributed Applications and Interoperable Systems; Springer: Berlin/Heidelberg, Germany, 2020; pp. 186–203. [Google Scholar]
  21. Pushparaj, J.; Soumya, J.; Veda Bhanu, P. A link fault tolerant routing algorithm for mesh of tree based network-on-chips. In Proceedings of the 2019 IEEE International Symposium on Smart Electronic Systems (iSES) (Formerly iNiS), Rourkela, India, 16–18 December 2019; pp. 181–184. [Google Scholar]
  22. Nehnouh, C.; Senouci, M. A New Fault Tolerant Routing Algorithm for Networks on Chip. Int. J. Embed.-Real-Time Commun. Syst. (IJERTCS) 2019, 10, 68–85. [Google Scholar] [CrossRef] [Green Version]
  23. Zhang, Y.; Fan, W.; Han, Z.; Song, Y.; Wang, R. Fault-tolerant routing algorithm based on disjoint paths in 3-ary n-cube networks with structure faults. J. Supercomput. 2021, 77, 13090–13114. [Google Scholar] [CrossRef]
  24. Thuan, B.T.; Ngoc, L.B.; Kaneko, K. A stochastic link-fault-tolerant routing algorithm in folded hypercubes. J. Supercomput. 2018, 74, 5539–5557. [Google Scholar] [CrossRef]
  25. Ipek, A.; Tosun, S.; Ozdemir, S. HAFTA: Highly adaptive fault-tolerant routing algorithm for two-dimensional network-on-chips. Concurr. Comput. Pract. Exp. 2021, 33, e6378. [Google Scholar] [CrossRef]
  26. Li, D.; Guo, C.; Wu, H.; Tan, K.; Zhang, Y.; Lu, S. FiConn: Using backup port for server interconnection in data centers. In Proceedings of the IEEE INFOCOM 2009, Rio de Janeiro, Brazil, 19–25 April 2009; pp. 2276–2285. [Google Scholar]
  27. Guo, D.; Chen, T.; Li, D.; Li, M.; Liu, Y.; Chen, G. Expandable and cost-effective network structures for data centers using dual-port servers. IEEE Trans. Comput. 2012, 62, 1303–1317. [Google Scholar]
Figure 1. Structure of B C C C ( 3 , 2 ) .
Figure 1. Structure of B C C C ( 3 , 2 ) .
Algorithms 15 00481 g001
Figure 2. Structure of B C C C 3 , 2 1 .
Figure 2. Structure of B C C C 3 , 2 1 .
Algorithms 15 00481 g002
Figure 3. ( n 1 ) ( k + 1 ) paths from u 1 to B C C n , k R .
Figure 3. ( n 1 ) ( k + 1 ) paths from u 1 to B C C n , k R .
Algorithms 15 00481 g003
Figure 4. ( k 1 ) ( n 1 ) + n paths from u 2 to B C C n , k R .
Figure 4. ( k 1 ) ( n 1 ) + n paths from u 2 to B C C n , k R .
Algorithms 15 00481 g004
Figure 5. Figure (a) is subcase 1.1.1.1; Figure (b) is subcase 1.2; Figure (c) is subcase 2.
Figure 5. Figure (a) is subcase 1.1.1.1; Figure (b) is subcase 1.2; Figure (c) is subcase 2.
Algorithms 15 00481 g005
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Share and Cite

MDPI and ACS Style

Lu, J.; Du, X.; Li, H.; Han, Z. BCCC Disjoint Path Construction Algorithm and Fault-Tolerant Routing Algorithm under Restricted Connectivity. Algorithms 2022, 15, 481. https://doi.org/10.3390/a15120481

AMA Style

Lu J, Du X, Li H, Han Z. BCCC Disjoint Path Construction Algorithm and Fault-Tolerant Routing Algorithm under Restricted Connectivity. Algorithms. 2022; 15(12):481. https://doi.org/10.3390/a15120481

Chicago/Turabian Style

Lu, Jialiang, Xiaoyu Du, Huiping Li, and Zhijie Han. 2022. "BCCC Disjoint Path Construction Algorithm and Fault-Tolerant Routing Algorithm under Restricted Connectivity" Algorithms 15, no. 12: 481. https://doi.org/10.3390/a15120481

APA Style

Lu, J., Du, X., Li, H., & Han, Z. (2022). BCCC Disjoint Path Construction Algorithm and Fault-Tolerant Routing Algorithm under Restricted Connectivity. Algorithms, 15(12), 481. https://doi.org/10.3390/a15120481

Note that from the first issue of 2016, this journal uses article numbers instead of page numbers. See further details here.

Article Metrics

Back to TopTop