Documents

Algorithm for Finding K-shortest Path and K-Alternate Path

Description
Description:
Categories
Published
of 8
All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
Share
Transcript
   NU-Rap REPORT   “Finding K  - Shortest Path and Alternate Path ”   Guided By : Debajyoti Ghosh By : Vinit Koshti (Batch of 2018) Mayank Singh (Batch of 2019) Algorithm for finding K-shortest path and K-alternate path  Vinit Koshti, Mayank Singh, Debajyoti Ghosh vinitkoshti.95.vk@gmail.com mayank.singh0597@gmail.com Debajyoti.Ghosh@niituniversity.in Abstract:  Shortest Path problems are among the most studied network flow optimisation  problems, with interesting applications in a range of fields. One such application is in the field of GPS routing systems. These systems need to quickly solve large shortest path  problems but are typically embedded in devices with limited memory and external storage. Conventional techniques for solving shortest paths within large networks cannot  be used as they are either too slow or require huge amounts of storage. In this project we have tried to reduce the runtime of conventional techniques by exploiting the physical structure of the road network and using network pre-processing techniques. Our algorithms may not guarantee optimal results but can offer significant savings in terms of memory requirements and processing speed. Our work uses heuristic estimates to bound the search and direct it towards a destination. We also associate a niceness value with each node that gives a measure of importance for roads in the network. The further we get from either the srcin or destination the more selective we become about the roads we travel on, giving priority to roads with greater importance (i.e. roads with larger niceness value). By using these techniques we were able to dramatically reduce the runtime  performance compared to conventional techniques while still maintaining an acceptable level of accuracy. 1.Introduction : Dijkstra’s method is a central procedure in most shortest path algorithms. The  output of the method is an out-tree from a source node s, to a set of nodes L. An out-tree is a tree srcinating from the source node to other nodes to which the shortest distance from the source node is known. This out-tree is constructed iteratively, and the shortest path from s to any destination node t in the tree is obtained upon termination of the method. 2. Related Work : A lot of research in the area of finding alternate paths in shortest -path networks exists. In [Pu et al. 2001] they compare the two algorithms MPS and ROSPF on router networks. Compared with the MPS algorithm, ROSPF algorithm has several advantages, such as simpler implementation, faster execution time, better stability and fewer shared-edges in the selected path set. Computing the k-shortest paths [1,2] as alternative routes regards sub-optimal paths. The computation of disjoint paths is similar, except that the paths must not overlap. [3] proposes a combination of both methods: The computation of a shortest path, that has at most r edges in common with the shortest path. However, such paths are expensive to compute. The penalty method iteratively computes shortest paths in the graph while increasing certain edge weights [4]. [5] present a speedup technique for shortest path computation including edge weight changes.  [6] presents a heuristic to speedup this method using via node selection combined with shortest paths speedup techniques and proposing conservative conditions of an admissible alternative. Such a path should have bounded stretch, even for all subpaths, share only little with the shortest path and every subpath up to a certain length should be optimal. 3.Methodology : 3.1.A* Search: So far we have examined search techniques that can be generalised for any network(as long as it does not contain negative length cycles). However the physical nature of real road networks motivates investigation into the possible use of heuristic solutions that exploit the near-Euclidean network structure to reduce solution times while hopefully obtaining near optimal paths. For most of these heuristics the goal is to bias a more focused search towards the destination. As we shall see, incorporating heuristic knowledge into a search can dramatically reduce solution times. When the underlying network is Euclidean or approximately Euclidean as is the case of road networks, then it is possible to improve the average case runtime of the Dijkstra and Symmetrical Dijkstra algorithms. This is usually at the expense of optimality; solutions are now not guaranteed to be the best. Typically when solving problems on such networks the inherent geometric information is ignored by algorithms that are directly based or variations on Dijkstra’s labelling algorithm.  The A* algorithm by Hart and Nilsson formalised the concept of integrating a heuristic into a search procedure. Instead of choosing the next node to label permanently as that with the least cost (as measured from the start node), the choice of node is based on the cost from the start node plus an estimate of proximity to the destination (a heuristic estimate) . To build a shortest path from the srcin s to the destination t, we use the srcinal distance from s accumulated along the edges (as in Dijkstra’s algorithm)  plus an estimate of the distance to t. Thus we use global information about our network to guide the search for the shortest path from s to t. This algorithm places more importance on paths leading towards t than  paths moving away from t. In essence the A* algorithm combines two pieces of information: 1. the current knowledge available about the upper bounds (given by the distance labels d(i)), and 2. an estimate of the distance from a leaf node of the search tree to the Destination. There are several ways to estimate the lower bound from a leaf node in the search tree to the destination node. These estimations are carried out by so called “evaluation” functions. The closer this estimate is to a tight lower bound on the distance to the destination, the better the quality of the A* Search. Hence the merits of an A* search depends highly on the evaluation function h(i,j). There are two main evaluation functions used in the A* search. A true lower bound between two points is the length of a straight line between those two points (i.e. the Euclidean distance): Euclidean distance: h E ( i , t ) = sqrt [ ( x ( i ) − x ( t )) 2 + ( y ( i ) − y ( t )) 2 ]  where x(i), y(i) and x(t), y(t) are the coordinates for node i and the destination node t respectively. The other commonly used evaluation function is the Manhattan distance h M . In this case the estimated lower bound distance is the sum of distance in the x and y Coordinates. Manhattan distance : h M ( i , t ) = abs [ x ( i ) − x ( t )] + abs [y ( i ) − y ( t )]  The Manhattan distance is not the true lower bound between two points and hence will typically yield non-optimal results. By using time as a measure of cost, the network becomes near-Euclidean. This is  because of the varying speeds of roads in the network. Roads of similar lengths might have different times associated with using those roads. If the network is not strictly Euclidean but near-Euclidean then our selection criteria for the next node to label  permanently will not yield optimal results. By using the A* search, the shortest path tree should now grow towards t (unlike Dijkstra’s algorithm where the tree grows approximately radially). As before, the search  for the shortest path is terminated as soon as t is added to the shortest path tree. Earlier we discussed the problem of combinatorial explosion with a blind search time complexity in the order of O(b d ). With A* search this is reduced to O(be d ) where be is the effective branching factor. The A* search reduces the search space by reducing the number of node expansions. Although A* is still susceptible to the problem of combinatorial explosion, it decreases the effect by reducing the size of the base in the complexity term.   3.2.Bi-Directional A* Search: Bidirectional search is a graph search algorithm which find smallest path from source to goal vertex. It runs two simultaneous search : 1. Forward search  form source/initial vertex toward goal vertex 2. Backward search  form goal/target vertex toward source vertex Bidirectional search replaces single search graph(which is likely to grow exponentially) with two smaller sub graphs  –   one starting from initial vertex and other starting from goal vertex. The search terminates when two graphs intersect. The reason for this approach is that in many cases it is faster : for instance, in a simplified model of search  problem complexity in which both searches expand a tree with branching factor b , and the distance from start to goal is d  , each of the two searches has complexity O ( b d  /2 ) (in Big O notation), and the sum of these two search times is much less than the O ( b d  ) complexity that would result from a single search from the  beginning to the goal. 4.Alternate path calculation constraints: This section lists several typical constraints used to decide whether or not a calculated path is acceptable. These constraints may be placed by the final users, the network service providers, or
Search
Tags
Related Search
We Need Your Support
Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

Thanks to everyone for your continued support.

No, Thanks
SAVE OUR EARTH

We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

More details...

Sign Now!

We are very appreciated for your Prompt Action!

x