Algorithm series: Navigation/Path Planning algorithm

Source: Internet
Author: User

5 Navigation/Path planning
Smart phone positioning and navigation features:
1, the use of satellite positioning;
2, address identification;
3, according to the user input starting point and end point, on the map to plan the shortest route and the quickest route.
5.1 Satellite positioning


5.2 Address analysis and finite state machines
The description of the address, while seemingly simple, is still a complex context-sensitive grammar. There are many methods of identification and analysis, the most effective is the finite state machine.
A finite state machine is a special graph, which consists of some States (nodes) and arcs connected to those states. Shown is a simple example of a finite state machine that identifies a Chinese address.

Each finite state machine has a starting state and a terminating state, as well as several intermediate states. Each arc has a condition that enters the next state from one state. If an address can go through several intermediate states of the state machine from the state machine's starting state, the address is valid, otherwise invalid.
Using the finite state machine to identify the address, the key to solve two problems, that is, through some valid address to establish a state machine, and given a finite state machine, the address string matching algorithm. Both of these problems have a ready-made approach.
There are some problems with this approach: when the user enters an address that is not too standard or has a typo, the limited state opportunity is helpless because it can only be strictly matched.
To solve this problem, we want to see the possibility of a fuzzy match and give a string to the correct address. To achieve this, scientists have proposed a finite state machine based on probability. This finite state machine based on probability and discrete Markov chain are basically equivalent.
The three scientists at t/T were compiled into a generic probabilistic finite state machine C Language Tool library, which later opened the source code. In addition, the Google now engine and the T-T's finite state machine tool library are functionally equivalent.
Www.cs.nyu.edu/~mohri/pub/csl01.pdf


5.3 Global navigation and dynamic planning
The key algorithm of global navigation is dynamic programming algorithm.


5.4 Algorithm Enumeration
It is always a big problem to divide the problem of the path planning of DP solution, and it does not show a great advantage compared with the classical path planning algorithm.
In the morning in the Cnki some related papers (only the backbone method, because the academia like to do optimization and several algorithms bridge, for example, based on Dijkstra and genetic immune algorithm XX research as Dijkstra)
1. For static path planning, mostly use DIJKSTRA,A,FLOYD,DP, etc.
2. For NP-hard problems, such as TSP and deformation (logistics distribution, etc.), the use of genetic algorithm, Ant colony algorithm, simulated annealing, neural network, etc.

Problem:
1. What algorithms or theories are used in real business applications?
2. Is path planning planned to be stored in advance (like the index of a Web page) or is it a result of real-time planning after receiving a request?


1.
Clearly, the basic graph search algorithm Dijkstra is unable to meet the real-time Internet map retrieval response to this performance requirement, so each company has its own preprocessing methods: tiering or pre-calculation. Depending on which method is used, it depends on the acceleration algorithm being taken. Around 2008, the kit (http://algo2.iti.kit.edu/routeplanning.php)-based institute produced multiple path Planning acceleration algorithms, with contraction hierarchies and highway Hierarchies is more famous, combined with Microsoft Research proposed customizable route planning, and the traditional A-star, basically supports the current industrial map product path planning services.

A-star:https://en.wikipedia.org/wiki/a*_search_algorithm


Ch:http://algo2.iti.kit.edu/schultes/hwy/contract.pdf

Hh:http://algo2.iti.kit.edu/documents/routeplanning/esa06hwyhierarchies.pdf

Crp:http://research.microsoft.com/pubs/145688/crp-sea.pdf


2.
The main point of the topic is the most basic path planning algorithm, in the actual commercial use, these companies will make some improvements on their basis, the following simple add two points.

Due to the large number of requests, some of the more classic path planning requests (such as the Tiananmen Square Bird's Nest) do not need to be planned in real time, but instead directly use the planned results that other users have requested and that have been stored. (Typical space change time, for the user's response speed, Google and other companies are willing to spend this hard disk money)

Consider the path optimization problem again. Due to the fact that the road situation also takes into account road conditions, environment and other factors, the basic algorithm is based solely on the "optimal" path, often not necessarily the user most want. At this time, the navigation provider may give some suboptimal path, added to the results of the search, to provide users with the choice. Then through the user's feedback to learn, so as to get more in line with the user needs of the path planning results. One example is that Google Maps will give different lines at the same time, to provide users with the choice of the shortest path, the least transfer and so on. Also, with the results obtained in Google Maps, users can "drag" the route on the map to get a more appropriate route, and the information that these users "drag" is sent to the server


3.
Dijkstra is a very classical method, which is already very mature. By calculating the weights, all the path information of all the starting points to the destination can be calculated at once, and it is sufficient to use this method in a city. However, the implementation of path planning is only basic, want to do the precise navigation, need to travel on the road segment of the vehicle statistics, fault road to judge, and adjust the path in real-time.

5.4.1Dijkstra algorithm
Http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.html


5.4.2a* algorithm
http://blog.csdn.net/zgwangbo/article/details/52078338

http://blog.csdn.net/hitwhylz/article/details/23089415

http://blog.csdn.net/b2b160/article/details/4057781

5.4.3Floyd algorithm
Http://developer.51cto.com/art/201403/433874.htm

5.4.4SPFA algorithm
Http://www.cnblogs.com/bofengyu/p/5004398.html

Algorithm series: Navigation/Path Planning algorithm

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.