Dijkstra algorithm.