A Robust Graph Theoretic Solution of Routing in Intelligent Networks

Department of Computer Sciences, Bahria University, Lahore Campus, Lahore, Pakistan Computer and Information Science Department, University Teknologi, Petronas, Malaysia Faculty of Engineering Sciences, Bahria University, Lahore Campus, Lahore, Pakistan School of Systems and Technology, University of Management and Technology, Lahore, Pakistan Department of Electronics and Telecommunication Engineering, Rajshahi University of Engineering & Technology (RUET), Rajshahi, Bangladesh Department of Electronics, Islamia College University, Peshawar, Pakistan


Introduction
Network routing is a backbone of intelligent communication networks specifically nondelay tolerant networks that include military and tactical systems, vehicular communication networks (VCNs), underwater acoustic networks (UANs), and intelligent sensor networks (ISNs) to send the communication data between vertices in a certain network. For the purpose, every router maintain routing tables. These tables manage routes of various network destinations. This network routing process is generally accomplished based on these routing tables and routes defined in them. This makes the formation, written in a memory of these routers, critically important for successful and efficient routing. There exist many graph theoretic solutions of this routing problem. In a network, the vertex of a graph represents a router, and edge/link which connect these vertices represents physical links between the routers.
The needs for broadband Internet applications have increased rapidly in today's Internet. Which makes high speed routing inevitable and has become the key at open shortest-path first (OSPF). As a result of topological changes that take place due to due to an unavoidable circumstances at the OSPF, these algorithms update the routing table to handle the new topological changes. For example, if some link fails in a network, then there is no way but to recalculate these paths [1]. In such scenarios, these shortest paths are regenerated by running the algorithms again [2].
G is an undirected nonnegative weighted connected graph (in this scenario, it will be representing the routing network). G has a vertex "s" designated as source and another vertex, "t,", designated as destination, such that s, t ∈ V. We need to find simple path(s) from s to t with minimum incurred cost.
[3] presented a hybrid model with local and global modes. A fixed graph model is used to present the local mode connections. In the paper, they denoted graph by a unit-disk graph UDG(V): for any u, v ∈ V, {u,v} ∈ UDG(V) if and only if distance between u and v is less than 1. For the local mode, in each round, node u can send a message of Oðlog nÞ bits to node v. For the global mode, they used a variant of the node-capacitated clique (NCC) model presented in [4] that describes salient features of overlay networks. In [5], the authors explain the SPSN approach including route object modeling, capacity-oriented search, and possible route organization procedures. Prototype assessments presented significant support that SPSN is better than the legacy CGR in more than an order of magnitude in contact plans comprising thousands of contacts.
The shortest-path tree (SPT) problem is one of the most well-known problems in graph theory [6]. Since 1959, most of the advances in SPT for general graphs, directed and undirected, are based on Dijkstra's algorithm. There exist lots of applications of SPT problems like computer systems, transportation networks, and vehicle routing [7]. Time complexity of the basic algorithm of Dijkstra [8] is calculated as OðV 2 + EÞ (where V is number of vertices and E is number of edges) if linear search is applied to find the minimum [9]. [10,11] introduced a new data structure, heap, to find the minimum. This new data structure improved the time complexity to OðE log VÞ. Fibonacci heap improved this bound further [12]. Authors of [12] used comparison model for the optimal implementation of Dijkstra's algorithm as Dijkstra's algorithm traverses vertices in ascending order.
In [13], with the use of optimal structure of the data, heap data structure provides the complexity of O ðE log VÞ with implementation of Dijkstra and Fibonacci heap gives the complexity of O ðE + V log VÞ with the implementation of Dijkstra. For the stochastic decision-making problem in [14], the stochastic dynamic programming solution is required. The generalized elementary shortest-path problem in [15] shows that two-phase heuristic graphs by including negative cycles can improve the average gap of 0.3% if compared with the best known solutions if number of vertices N are set to 100. The solution in [16] suggests that these algorithms can be implemented in all kind of networks with complexity of Dijkstra O ðV 2 + EÞ, Bellman O ðVÞ 3 , and Floyd O ðVEÞ. The paper [17] suggests a solution with O ðkV log ðkVÞ + kEÞ complexity for a fast delivery problem. The complexity of Bellman is O ðVÞ 3 , and the complexity of Dijkstra is O ðVÞ 2 if the network is fully connected or near to the fully connected [18].
[2] presented priority queue, which improved single source shortest-path cost to O ðE + Vðlog CÞ 1/2 where C is the cost of the most heavy edge. This bound was further improved by [22] to OðE + Vð3 log CloglogCÞ 1/3 Þ expected time, and [23] presented a further improvement to OðE + Vðlog CÞ 1/4+∈ Þ. The authors of [24] claimed that the algorithm they have presented will outclass Dijkstra algorithm.
In [25], the authors presented an exact adjacency-based primal algorithm to resolve the SPT problem with high resources. Their algorithm explored solution space iteratively using path adjacency-based partition. They claimed optimal convergence with good path in lesser cost. Authors of [26] introduced a multiobjective (time and cost) shortest-path tree problem for connected directed graphs. Every edge was having two cost values. They proved that uncertainty MSPP reduced the total travel time and cost.
[27] used a dual evolutionary algorithm while analyzing the problem of clustered shortest-path tree. Their first algorithm (N-LSE) targeted the minimization of search space with fewer vertices. The second algorithm named M-LSE using N-LSE creates smaller and multiple intercluster edges. [28] solved the dynamic SP problem to solve timedependent TSP. In logistic planning where traffic data is rich enough, time-dependent path optimization techniques give considerable benefits. Dynamic shortest-path solution contains no length k cycles and resolves the complexity problem when compared to acyclic graph-based methods.
In [29], the author reviewed many popular algorithms for solving the SPT problem in weighted graphs. He proposed two variants of Dijkstra's algorithm. He presented asymptotic comparison different variants of Dijkstra's algorithm on expanded graphs.
They used color-in and color-out scheme.

Concept
This work presents a novel algorithm of finding shortestpath routes in intelligent networks. This algorithm is based on bidirectional search where first search is starting from source vertex, and its target is destination vertex, while second search starts from the destination vertex, and its target is source vertex. It is analogous to two robots looking for each other from two distinct points. First robot, R A , starts its search from its current position, and let us call it P A , and second robot, R B , starts its search from its current position, and let us call it P B . R A explores all possible paths, in 2 Wireless Communications and Mobile Computing BFS fashion, looking for P B or R B . In the same way, R B will be exploring all possible paths, simultaneously, looking for either P A or R A . Following are the three possible situations that can rise, in this bidirectional search.
(i) R A will find P B (ii) R B will find P A (iii) R A and R B meets at position, P M Situation i is the simplest one. Let Path A be the path that R A has explored and has vertices a 1 , a 2 , a 3 , ⋯, a x , where a x is P B .

Required path = Path
In situation ii, R B has found P A . It means that path is found but in reverse order. Let R B has explored the vertices in sequence b 1 The reverse of this will generate the required path. See the following equation: In situation iii, it is little complex than the previous two. Two paths-Path A and Path B , need to be concatenated. Let Path A be the path that R A has explored and has vertices a 1 , a 2 , a 3 , ⋯, a x . Path B is the path that R B has explored and has vertices b 1 , b 2 , b 3 , ⋯, b y , where a x and b y are the same vertices as P M and a 1 and b 1 are P A and P B , respectively. The required path will be having vertices in the sequence a 1 , a 2 , a 3 , ⋯, a x , b y−1 , b y−2 , b y−3 , ⋯, b 1 , as given in equation (3).

Proposed Algorithm
The proposed algorithm targets only those graphs in which on two paths, from source, P i and P j , to fulfil the following property: where k ≠ l and x 0 = y 0 = s and x k = y k = w and P i and P j are paths from s to w such that P i = fx 1 , x 2 , x 3 , ⋯, x k g and P j = fy 1 , y 2 , y 3 , ⋯, y l g: The search is executed, parallel, from both ends-source, s, and destination, t. Vertices are explored level by level. Best paths are calculated by concatenating the new edge with previously explored best path, and cost is calculated by adding the cost of all edges in that path from source.
Each vertex during the execution goes through three states, being represented by three colors-green, yellow, and red. The definitions of these colors can be seen in Table 1 Initially, all vertices, i.e., v 1 , v 2 , v 3 , ⋯, v n , are initialized with Starting from s and t, independently and simultaneously, the current vertex, let us call it v cur , will explore its neighbors. Every neighbor, i.e., v nbr , is updated with shortest-path cost, and let us call it SPCost, parent, i.e., π and color, i.e., C.
Clr v nbr = yellow if SPCost v nbr is updated: Update will be effective if new SPCost v nbr reflects improvement over previously stored one.
Initially all vertices have green status. As soon as a vertex is explored during the search, its status is updated to yellow. As soon as any vertex completes its exploration (i.e., all its neighbors are explored, and their status is changed to yellow), its status is updated to red.
Exploration takes place, strictly, level by level. No next level vertex is explored until all the previous level yellow vertices' status is change to red. As soon as one level is completed, the control is switched to the other part of the algorithm to proceed and it also performs the identical steps.
During the search of any side if some red (light or dark) vertex is explored by the counterpart search, then two shortest paths are calculated and stored. If some shortest path has already been stored, then the path will less cost will be kept.
The algorithm terminates when the status of all vertices is updated to red (light or dark). In worst case, depending upon the type of the graph, it finishes in OðV + EÞ time. If graph is totally disconnected, even then loop in line number 4 of ShortestPath will execute for OðVÞ times. If graph is connected and is having E, then combined effect of line number 4 of ShortestPath and line number 2 of SPfrom-Source or SPfromDestination would be "all adjacents of all vertices" will cost OðEÞ which will make it OðV + EÞ. Detailed algorithm can be seen in Algorithm 1.

Working Example of the Algorithm
All vertices are initialized using equation (7) (see Figure 1). Both sources-A and P, are colored yellow and their SPCosts are marked 0 (see Figure 1(a)). All vertices are enqueued. Main subroutine (named ShortestPath) of the algorithm calls the two replicated subroutines (named SPfromSource and SPfromDestination) one by one until queue has any vertex.
The subroutine SPfromSource dequeues a vertex, it would be source, and here in this example, it is A. Algorithm then explores all its neighbors-B, F, and E, one by one.
Equations (8)-(10) are used to update the values of SPCost, π, and Clr. In the same way, SPfromDestination dequeues a vertex, it would be destination, and here in this example, it is P. Algorithm then explores all its neighbors-L and K, one by one. Equations (8)-(10) are then Clr v ← LightYellow 5.
If SPCost is updated 7.
Then Pi v ← u 8.
If Clr v = Green OR LightRed 9.
Then Concatinate two paths and store 12.
If SPCost v is updated 7.
Then Pi v ← u 8.
If Clr v = Green OR DarkRed 9.
Then Concatinate two paths and store 12.

4
Wireless Communications and Mobile Computing used to update the values of SPCost, π, and Clr. A and P are colored red after all explorations. New updated status can be seen in Figure 1(b).
In the same way, SPfromDestination dequeues a vertex, and it would be path, equations (9) and (10). Figures 1(c), 1(d), and 2(a) explain these iterations one by one. Figure 2(b) shows that a red vertex is explored from the other side. It generates case 3 (i.e., "R A and R B meet at position, P M "). Path from both sides along with currently updating edge is concatenated to form a path using equation (7). This path is stored.
This process of dequeuing, exploring, and generating new path continues until both queues have no vertices. New paths are generated and compared with the stored one and is discarded if old one is better Figure 2(c). But if new path is better than the old one, it is replaced with the old one. The process ends with the shortest possible path.

Discussion
The main advantage of this algorithm is due to the nature of the networks in which it is not possible that indirect distance

Wireless Communications and Mobile Computing
can be smaller than direct distance between two vertices. Since Dijkstra invented his SPT algorithm, the research community has worked mostly in the similar direction: choose a node to propagate in nondecreasing order and manage and update neighboring vertices through it. To select vertices in a nondescending order, the half-explored vertices must be sorted, or on each selection, the minimum distance must be calculated from the remaining vertices, which again is equivalent to sort [29].
The main bottleneck of these algorithms is the intermediary sorting algorithm. Most researchers have worked to surmount this bottleneck. New data structures like tree, heap, and priority queue were designed to improve the time bounds. One of these is Fibonacci heap [30] that resulted in the best known asymptotic bound of Dijkstra's algorithm [31]. However, this bound is also criticized by researchers due to the heavy processes of Fibonacci heap [32][33][34][35][36][37]. This algorithm is beating this bound of Dijkstra's algorithm using Fibonacci heap, where sorting is not being attempted in any form. On one side, it is thrashing this time bound with simple data structure and no sorting algorithm; on the other side, it has parallelization in its nature that is beyond the scope of this paper.
At the same time, this algorithm is also better than the one presented in [29] with worst-case time bound of OðE ′ The algorithm proposed in this research has worst-case time bound of OðV + EÞ, which is linear in time and hence is better than the one presented in [29] for routing in intelligent networks [38][39][40][41][42].

Conclusion
The proposed SPT algorithm executes with OðV + EÞ time which is relatively better than the state of art work. It is simple to understand and easy to implement and does not require high computational resources. It has additional benefit that after some specific stage, it can always hold a path from source to destination if compromise on quality of path is possible to address the latency issues in nondelay tolerant networks that include military and tactical systems, vehicular communication networks, underwater acoustic networks, and intelligent sensor networks.

Data Availability
No data were used to support this study.

Conflicts of Interest
The authors declare that they have no conflicts of interest.