Skip to main content

Dijkstra’s Algorithm Explained


Dijkstra’s Algorithm Explained

Dijkstra’s algorithm is used to find the minimum cost path from a single source node to all other nodes in a graph with non-negative edge weights.

Unlike Floyd–Warshall (all pairs), Dijkstra focuses on one starting point.

For Example

  • Each letter (az) is a node
  • Each allowed transformation is a directed edge
  • Each edge has a cost
  • We want the cheapest cost from a source letter to all others

1. Think of Letters as Cities

Imagine each letter is a city and each transformation is a one-way road with a toll.

a → b (2)
a → c (4)
b → c (1)
c → d (3)

You start in city a and want to find the cheapest way to reach every other city.

2. Distance Array

We maintain an array:

dist[x] = minimum cost to reach x from the source

Initial setup:

  • dist[source] = 0
  • All other distances = infinity (∞)
  • No node has been visited yet

Example (source = a):

a: 0
b: ∞
c: ∞
d: ∞

3. The Core Idea

Always expand the currently cheapest unvisited node.

  1. Pick the unvisited node with the smallest known distance
  2. Try to improve distances to its neighbors
  3. Mark the node as visited (finalized)

Once a node is visited, its shortest distance is guaranteed.

4. Relaxation Step

When we move from node u to neighbor v:

if dist[u] + cost(u → v) < dist[v]:
    dist[v] = dist[u] + cost(u → v)

This process is called relaxation.

5. Step-by-Step Example

Graph:

a → b (2)
a → c (4)
b → c (1)
c → d (3)

Step 1: Start at a

dist[a] = 0
dist[b] = 2
dist[c] = 4
dist[d] = ∞

Mark a as visited.

Step 2: Visit b

Check b → c:

2 + 1 = 3 < 4

Update:

dist[c] = 3

Mark b as visited.

Step 3: Visit c

Check c → d:

3 + 3 = 6

Update:

dist[d] = 6

6. Final Distances

a → a = 0
a → b = 2
a → c = 3
a → d = 6

7. Why It Always Works

  • Edge costs are non-negative
  • The smallest unvisited distance is always optimal
  • Once a node is finalized, no cheaper path can appear later

This greedy choice is provably correct.

8. Pseudocode

initialize dist[] with infinity
dist[source] = 0
priority queue pq
pq.push(source, 0)

while pq not empty:
    u = node with smallest dist
    if u is visited:
        continue
    mark u as visited

    for each neighbor v of u:
        if dist[u] + cost(u → v) < dist[v]:
            dist[v] = dist[u] + cost(u → v)
            pq.push(v, dist[v])

9. When to Use Dijkstra

Use Dijkstra when:

  • You need shortest paths from one source
  • All edge weights are non-negative

Do NOT use when:

  • Negative edge weights exist (use Bellman–Ford)
  • You need all-pairs shortest paths (use Floyd–Warshall)

Further Reading

People are good at skipping over material they already know!

View Related Topics to







Contact Us

Name

Email *

Message *

Popular Posts

Rayleigh vs Rician Fading (with MATLAB + Simulator)

  In Rayleigh fading , the channel coefficients tend to have a Rayleigh distribution, which is characterized by a random phase and magnitude with an exponential distribution. This means the magnitude of the channel coefficient follows an exponential distribution with a mean of 1. In Rician fading , there is a dominant line-of-sight component in addition to the scattered components. The channel coefficients in Rician fading can indeed tend towards 1, especially when the line-of-sight component is strong. When the line-of-sight component dominates, the Rician fading channel behaves more deterministically, and the channel coefficients may tend towards the value of the line-of-sight component, which could be close to 1.   MATLAB Script clc; clear all; close all; % Define parameters numSamples = 1000; % Number of samples K_factor = 5; % K-factor for Rician fading SNR_dB = 20; % Signal-to-noise ratio (in dB) % Generate complex Gaussian random variable for Rayleigh fading channel h_r...

BER vs SNR for M-ary QAM, M-ary PSK, QPSK, BPSK, ...(MATLAB Code + Simulator)

Bit Error Rate (BER) & SNR Guide Analyze communication system performance with our interactive simulators and MATLAB tools. ๐Ÿ“˜ Theory ๐Ÿงฎ Simulators ๐Ÿ’ป MATLAB Code ๐Ÿ“š Resources BER Definition SNR Formula BER Calculator MATLAB Comparison ๐Ÿ“‚ Explore M-ary QAM, PSK, and QPSK Topics ▼ ๐Ÿงฎ Constellation Simulator: M-ary QAM ๐Ÿงฎ Constellation Simulator: M-ary PSK ๐Ÿงฎ BER calculation for ASK, FSK, and PSK ๐Ÿงฎ Approaches to BER vs SNR What is Bit Error Rate (BER)? The BER indicates how many corrupted bits are received compared to the total number of bits sent. It is the primary figure of merit for a...

UGC-NET Electronic Science Question Paper With Answer Key and Full Explanation [Dec 2023]

    UGC-NET Electronic Science Question Paper With Answer Key Download Pdf [Dec 2023] Download Question Paper               See Answers   2025 | 2024 | 2023 | 2022 | 2021 | 2020 UGC-NET Electronic Science  2023 Answers with Explanations 51. (A): The stacking fault is the most common area defect found in silicon. These faults typically occur along the 111 plane. In the crystalline structure of silicon, atoms are arranged in a specific pattern known as a diamond lattice. A stacking fault refers to a disruption in the normal order of atomic layers within this lattice, which usually occurs in the 111 plane due to the geometric arrangement of the atoms. This type of defect can affect the electrical and mechanical properties of the material, such as the mobility of charge carriers and mechanical strength. 52. (C): The important figure of merit for the microwave application of a Schot...

Theoretical vs. simulated BER vs. SNR for ASK, FSK, and PSK (MATLAB Code + Simulator)

๐Ÿ“˜ Overview ๐Ÿงฎ Simulator ๐Ÿ’ป Theoretical Code ๐Ÿ“Š Simulated Code ๐Ÿ“š Resources Overview BER vs. SNR denotes how many bits in error are received for a given signal-to-noise ratio, typically measured in dB. Common noise types in wireless systems: ๐Ÿš€ 1. Additive White Gaussian Noise (AWGN) ๐ŸŒŠ 2. Rayleigh Fading AWGN adds random noise; Rayleigh fading attenuates the signal variably. A good SNR helps reduce these effects. Bit Error Rate (BER) Equations BER formulas for ASK, FSK, and PSK modulation schemes. ASK BER = 0.5 × erfc(0.5 × √SNR) FSK BER = 0.5 × erfc(√(SNR / 2)) PSK BER = 0.5 × erfc(√SNR) erfc / Q-function (Click here) Live BER S...

How to use MATLAB Simulink

Introduction to MATLAB Simulink MATLAB Simulink is a popular add-on of MATLAB. Here, you can use different blocks like modulator, demodulator, AWGN channel, etc. And you can do experiments on your own. Steps to Get Started 1. Go to the 'Simulink' tab at the top navbar of MATLAB. If not found, click on the add-on tab, search 'Simulink,' and then click on it to add. 2. Once you installed the simulation, click the 'new' tap at the top left corner. 3. Then, search the required blocks in the 'Simulink library.' Then, drag it to the editor space. 4. You can double-click on the blocks to see the input parameters. 5. Then, connect the blocks by dragging a line from one block's output terminal to another block's input. 6. If the connection is complete, click the 'run' tab in the middle of the top navbar. 7. After clicking on the run ...

UGC NET Electronic Science Previous Year Question Papers

Home / Engineering & Other Exams / UGC NET 2022 PYQ ๐Ÿ“ฅ Download UGC NET Electronics PDFs Complete collection of previous year question papers, answer keys and explanations for Subject Code 88. Start Downloading UGC-NET (Electronics Science, Subject code: 88) Subject_Code : 88; Department : Electronic Science; ๐Ÿ“‚ View All Question Papers Q. UGC Net Electronic Science Question Paper [June 2025] A. UGC Net Electronic Science Question Paper With Answer Key Download Pdf [June 2025] with full explanation Q. UGC Net Electronic Science Question Paper [December 2024] A. UGC Net Electronic Science Question Paper With Answer Key Download Pdf [December 2024] Q. UGC Net Electronic Science Question Paper [Aug 2024] A. UGC Net Electronic Scien...

OFDM Waveform with MATLAB Code (with Simulator)

  In OFDM (Orthogonal Frequency Division Multiplexing) , we transmit multiple orthogonal subcarriers simultaneously. Since the subcarriers are orthogonal , they do not interfere with each other, which is one of the main advantages of OFDM. Practically, OFDM converts a wideband signal into multiple narrowband orthogonal subcarriers. For typical wireless communication, if the signal bandwidth (or symbol duration) exceeds the coherence bandwidth of the channel, the signal experiences frequency-selective fading . Fading distorts the signal, making it difficult to recover the original information. By using OFDM, we transmit the same wideband signal across multiple orthogonal narrowband subcarriers, reducing the effect of fading. For example, if we want to transmit a signal of bandwidth 1024 kHz , we can divide it into N = 8 subcarriers . Each subcarrier is then spaced by: ฮ”f = Total Bandwidth N = 1024 8 kHz...

Constellation Diagrams of ASK, PSK, and FSK (with MATLAB Code + Simulator)

Constellation Diagrams: ASK, FSK, and PSK Comprehensive guide to signal space representation, including interactive simulators and MATLAB implementations. ๐Ÿ“˜ Overview ๐Ÿงฎ Simulator ⚖️ Theory ๐Ÿ“š Resources Definitions Constellation Tool Key Points MATLAB Code ๐Ÿ“‚ Other Topics: M-ary PSK & QAM Diagrams ▼ ๐Ÿงฎ Simulator for M-ary PSK Constellation ๐Ÿงฎ Simulator for M-ary QAM Constellation BASK (Binary ASK) Modulation Transmits one of two signals: 0 or -√Eb, where Eb​ is the energy per bit. These signals represent binary 0 and 1. BFSK (Binary FSK) Modulation Transmits on...