Dijkstra-based caching optimization

I need to find the optimal path connecting two flat points. I have been given a function that determines the maximum speed of advancement, which depends on both location and time.

My solution is based on Dijkstra's algorithm. First, I cover the plane with a two-dimensional lattice, considering only individual points. Points are connected to neighbors to a predetermined order in order to obtain sufficient direction resolution. Then I find the best way by Dijkstra's algorithm (sort of). Then I improve the resolution / quality of the path found. I increase the density of the lattice and the order of neighboring bonds, and also limit the search to points close enough to the path already found. This may be repeated until the required resolution is reached.

This works well, but nonetheless, I would like to improve the overall performance of the algorithm. I implemented several tricks, such as variable lattice density and the order of neighboring compounds, based on the "smoothness" of the price function. However, I believe that there is an opportunity to improve Dijkstra's algorithm itself (in relation to my specific schedule), which I have not yet been able to fully implement.

Please agree to the terminology first. I divided all the lattice points into 3 categories:

  • cold spots that were not reached using the algorithm.
  • warm spots that are achieved but not yet fully processed (i.e. have the potential for improvement).
  • stable - points that are fully processed.

" " , . - , . , , () .

, , , , , (, ) . . (), , .

. . - ( ).

, . , , .

, ( ), .

, "" , . , , , . , , " " (.. ).

.

, ? , , () ?

. .

+5
1

, , A *, , , , , , , . A * , Dijkstra, , , node.

A * , , node. , , node , , , , , .

A * , , , -

  • ( )
  • ( , , , )

.

, !

+5

All Articles