**4.3 Survivability optimizer phase: VNS algorithm for the GSP-SRC**

The variable neighborhood search algorithm is sustained on the idea of systematically changing the neighborhood at the moment of performing the local search and requires therefore a finite set of different pre-defined neighborhoods.

VNS is based on three simple facts:


In this work, the deterministic variant called VNS descent was used (variable neighborhood descent, VND). It consists of iteratively replacing the current solution with the local search result as long as improvements are verified. If a


#### **Figure 4.** *Survivability phase.*

neighborhood structure change is performed in a deterministic way every time a local minimum is reached, the descent variable neighborhood search is obtained. The final solution given by the VND is a local minimum with respect to all the considered neighborhoods. Next, the VND customization for the GSPNC will be explained. Here, the VND uses three local searches: SwapKeyPathLocalSearch, KeyPathLocalSearch, and KeyTreeLocalSearch. Details on these local searches, their respective neighborhood structures, and the extension of the Takahashi-Matsuyama algorithm mentioned above can be found in [9].

The algorithm (shown in **Figure 4**) receives as input G*sol* the initial solution graph, P the matrix of paths (both outputs of construction phase), and *cls* the set of local searches. Initially, the cost of G*sol* is computed, and the local search SwapKeyPathLocalSearch is applied to it. SwapKeyPathLocalSearch uses P the path's matrix as input (lines 1–2). Since only this local search uses the P information, it is executed only at the beginning of the algorithm in a single time. However, its incorporation is fundamental for the purpose of achieving important improvements in the initial solutions generated by the algorithm of construction. Line 3 computes the new cost of G*sol* and *notimprove* is initialized to zero. In cycles 4–12, the *k*th local search is performed to find a better solution (line 5) until no more improvements can be found by exploring the neighborhood set. If an improvement is achieved, the current cost is updated, *notimprove* is reset to zero, and the new solution G*sol* is actualized (lines 8–9). In the case of not having improvements, *notimprove* is increased by one (line 10). Finally, regardless of the fact that improvements have been made,




**121**

*A Survivable and Reliable Network Topological Design Model*

**4.4 Reliability phase: RVR algorithm for the GSP-SRC**

the next neighborhood is explored in a circular form (line 11). In this way, and unlike the generic VND, when finding an improvement, the algorithm continues the search for new solutions in the following neighborhood instead of returning to neighborhoods already explored. Once the loop is finalized (lines 4–12), line 13

The reliability of G*sol* is estimated by using the RVR method. The construction of the method is done so as to obtain an estimation of the *Q <sup>K</sup>* measurement (antireliability for a *K* set of terminals). As such, the RVR method is used in order to estimate the *T*-terminal reliability of G*sol* assuming that the terminal nodes *T* are perfect (i.e., do not fail), and the edges as well as \the Steiner nodes (nodes of *V* \*T*) have operation probabilities *PE* = {*pe*}*e*∈*E* and *PV* \*T* = {*pv*}*v*∈*V* \*T*, respectively. Details and properties of this adaptation can be found in [10]. **Figure 5** shows the pseudo-code of the R*T* (G*sol*) estimated computation using the RVR method.

To the best of the authors' knowledge, there are no efficient optimization algorithms that design robust networks combining the requirement of network reliability and high levels of topological connectivity between pairs of distinguished nodes (topological design of survivable networks). Critical applications such as military communication networks, transport and distribution of highly risky or critical products/substances, or circuit design with high requirements of redundancy (airplanes), among others, were influential factors that facilitated the combination of efficient network design with high levels of connectivity that exceeded a pre-established threshold of reliability. Given the lack/absence of real cases in the literature and plausible instances to be used as a benchmark for the combined problem GSP-SRC, 20 instances of the traveling salesman problem (TSP) from the TSPLIB library have been selected [11], and for each of these, three GSP-SRC instances have been generated by randomly marking 20, 35, and 50% out of the nodes as terminal. The 20 TSP test instances were chosen so that their topologies are heterogeneous and their numbers of nodes (which range from 48 to 225) cover typical applications of the GSP problem in telecommunication settings. The acronyms used for the 20 instances in the TSPLIB library are att48, berlin52, brazil58, ch150, d198, eil51, gr137, gr202, kroA100, kroA150, kroB100, kroB150, kroB200, lin105, pr152, rat195, st70, tsp225, u159, and rd100. The connectivity requirements were randomly set in *rij* ∈{2*,*3*,*4} and ∀*i,j* ∈ *T*. It is worth noting that in all cases the best solutions attained by the VND algorithm were topologically minimal (i.e., feasibility is lost upon removal of any edge). The improvement percentage of the VND algorithm with respect to the solution cost delivered by the construction phase ranged from 25.25 to 39.84%, depending on the topological features of the instance, showing thus the potential of proposed

For the instances in which the average *T*-terminal reliability of the *L\_Sol* solutions set returned by NetworkDesign was computed, it widely surpassed the 85% prefixed threshold. Particularly, in those instances in which the operation probabilities of nodes and edges were set at 99 and 90%, respectively, the average *T*-terminal reliability was bounded by 86*.*0 and 96*.*7%. On the other hand, when setting the values of the operation probabilities of nodes and edges at 99 and 95%, respectively, the average *T*-terminal reliability was bounded by 99*.*1 and 99*.*6%. In all these

*DOI: http://dx.doi.org/10.5772/intechopen.84842*

returns the best solution found by the VND.

**5. Computational results and discussion**

VND in improving the quality of the starting solution.

evaluated cases, the average variance was small, lower than 1*.*0*E*–05.

*Reliability and Maintenance - An Overview of Cases*

Matsuyama algorithm mentioned above can be found in [9].

neighborhood structure change is performed in a deterministic way every time a local minimum is reached, the descent variable neighborhood search is obtained. The final solution given by the VND is a local minimum with respect to all the considered neighborhoods. Next, the VND customization for the GSPNC will be explained. Here, the VND uses three local searches: SwapKeyPathLocalSearch, KeyPathLocalSearch, and KeyTreeLocalSearch. Details on these local searches, their respective neighborhood structures, and the extension of the Takahashi-

The algorithm (shown in **Figure 4**) receives as input G*sol* the initial solution graph, P the matrix of paths (both outputs of construction phase), and *cls* the set of local searches. Initially, the cost of G*sol* is computed, and the local search SwapKeyPathLocalSearch is applied to it. SwapKeyPathLocalSearch uses P the path's matrix as input (lines 1–2). Since only this local search uses the P information, it is executed only at the beginning of the algorithm in a single time. However, its incorporation is fundamental for the purpose of achieving important improvements in the initial solutions generated by the algorithm of construction. Line 3 computes the new cost of G*sol* and *notimprove* is initialized to zero. In cycles 4–12, the *k*th local search is performed to find a better solution (line 5) until no more improvements can be found by exploring the neighborhood set. If an improvement is achieved, the current cost is updated, *notimprove* is reset to zero, and the new solution G*sol* is actualized (lines 8–9). In the case of not having improvements, *notimprove* is increased by one (line 10). Finally, regardless of the fact that improvements have been made,

**120**

**Figure 5.** *Reliability phase.* the next neighborhood is explored in a circular form (line 11). In this way, and unlike the generic VND, when finding an improvement, the algorithm continues the search for new solutions in the following neighborhood instead of returning to neighborhoods already explored. Once the loop is finalized (lines 4–12), line 13 returns the best solution found by the VND.
