Shortest Path problem
Published by: Anil K. Panta
What is the Shortest Path Problem in Graphs?
The shortest path problem in computer science is all about finding the minimum cost path between two nodes (or vertices) in a graph.
Graphs are used to model road networks, communication networks, maps, and more. So, the shortest path problem helps in finding:
The shortest route between two cities,
The fastest way to send data between computers,
Or even the cheapest travel cost across stations.
Key Concepts of the Shortest Path Problem
Graph Terminology:
Vertex/Node: A point (e.g., city, router)
Edge: A connection between two vertices (e.g., road)
Weight: A number assigned to an edge (e.g., distance, time, cost)
Path Weight/Cost: Total sum of edge weights in a path
Shortest Path: Path with the lowest total cost
Example
Imagine this graph of cities:
D --(2)--> E --(4)--> C --(4)--> F
The shortest path from D to F is:
D → E → C → F, with total cost: 2 + 4 + 4 = 10
There may be other routes, but none with a smaller total weight.
How to Solve the Shortest Path Problem?
There are two most common algorithms used:
1. Dijkstra’s Algorithm
Works when all edge weights are positive
Finds shortest path from one source to all other vertices
Used in GPS apps, network routing
2. Bellman-Ford Algorithm
Works even if the graph has negative weights
Can detect negative weight cycles
Slower but more powerful
What is Relaxation?
In both algorithms, we check each edge to see if we can find a shorter path to a vertex than previously known.
This process is called relaxing an edge.
Every time we find a shorter path, we update the distance.
Positive vs Negative Edge Weights
Positive Weights
Graphs with all positive weights are easier to work with and are perfect for Dijkstra’s Algorithm.
For example:
A → C with weight 4 means cost is $4
All travel, fuel, or time costs are positive numbers
Negative Weights
Negative weights mean that you earn or gain something when traveling that edge.
For example:
C → A with weight -3 means you gain $3
Only the Bellman-Ford Algorithm can handle negative weights safely.
Negative Cycles – The Dangerous Loops
A negative cycle is a loop in a graph where the total sum of weights is negative.
Example:
A → E → B → C → A with weights: 5, 2, -4, -4 = Total: -1
Why is it a problem?
You can keep going around this loop and reduce the path weight infinitely:
1st round: cost = -1
2nd round: cost = -2
3rd round: cost = -3
And so on...
Result: No shortest path can be found, because it gets shorter forever.
That’s why:
Dijkstra fails if there's a negative edge.
Bellman-Ford can detect negative cycles and report them.
Summary Table
Real-Life Applications of Shortest Path
Google Maps, GPS route finding
Network Routing (like Internet Protocols)
Dynamic Programming and AI search
Cost optimization in logistics and transport
Telecommunications
Final Thought:
The Shortest Path Problem helps us solve real-world navigation and optimization challenges.
Understanding Dijkstra’s and Bellman-Ford gives you a strong foundation in algorithms used in tech giants like Google, Uber, Amazon, and more.