Dijkstra vb algorithm shortest path