# Dijkstra's Algorithm

• Comments posted to this topic are about the item Dijkstra's Algorithm

Good to know the mathematical theory to deal with the problem.

But when you don't mention the TSQL function that handles this situation (Shortest_path), it gives me the impression it becomes a bit confusing for people who never worked with graphs in SQL Server.

I assume Shortest_path uses this algorithm. Is that correct?

• This is a really good article showing how Dijkstra's algorithm works, except for the following statement which left me confused:

"For the same reason as before, no other path from C to A can have a lower cost. For example, C -> D -> B -> A cannot have a lower cost since the cost of D -> B can’t be smaller than the cost of C -> A, which is minimal among all neighbors."

As shown in the diagram, the cost from D->B (5) is smaller than the cost of C->A (6).

I think what you are trying to say is the the from C->D->B->A is greater than the cost from D->B->A but I can't quite follow the logic in the paragraph.

• You're absolutely correct.

I should have said:

"For example, C -> D -> B -> A cannot have a lower cost since the cost of D -> B -> A can’t be smaller than the cost of C -> A, which is minimal among all neighbors. So, the cost of C -> D -> B -> A can’t be smaller than the cost of C -> A."

Note that this observation assumes that all costs are non-negative, so the cost of C->D must be non-negative.

Thank you for pointing this out.

The Mathematical Interpretation section is my version of Dijkstra since I never felt comfortable with explanations where non-negativity of costs is not mentioned.

By the way, can the proof be revised where the cost of sub-paths are used, instead of edges?

You'll need to assume those costs are monotonic increasing (so increasing the length of a sub-path won't decrease its cost). That way you can answers questions like "Find a path from LA to NY where you meet the fewest number of friends on your journey".

• Thank you for this.

I didn't know that the function mimimal_path even existed.

Presumably it uses Dijkstra.

I've not used minimal paths before, but suddenly I needed it for a large HR project involving 30,000 nodes (employees).

The simple theorem and its proof are self-contained, so the rest of the article may be ignored.

It's the only way I could understand Dijkstra.

Viewing 5 posts - 1 through 4 (of 4 total)