Hierarchical speed-up techniques for shortest-path algorithms