Multistage Graph (Dynamic Programming)

Find the shortest path from source to destination in a multistage graph using dynamic programming

Multistage Graph Shortest Path Problem

A multistage graph is a directed acyclic graph organized into stages. The goal is to find the shortest path from the source (first stage) to the destination (last stage) using dynamic programming.

Theory & Concepts

Definition:

A directed acyclic graph where vertices are organized into disjoint sets called stages, and edges only exist between consecutive stages. The objective is to find the minimum cost path from source to destination.

Key Points:

  • Graph is organized into k stages with directed edges between consecutive stages only
  • Uses backward dynamic programming approach
  • Optimal substructure: optimal path contains optimal subpaths
  • More efficient than checking all possible paths

Applications:

  • Resource allocation in production planning
  • Project scheduling and management
  • Investment decision making
  • Network routing optimization

University Guidelines

Exam Weightage
8-10 marks Marks

Syllabus Coverage:

  • Multistage graph problem formulation
  • Dynamic programming solution approach
  • Backward and forward approaches
  • Time and space complexity analysis
  • Applications in resource allocation

Common Questions:

  • Solve multistage graph using dynamic programming
  • Find shortest path from source to destination
  • Show cost and decision tables
  • Trace back optimal path

Exam Tips:

Work backwards from destination to source
Maintain cost[i][j] = minimum cost from stage i node j to destination
Record decisions for path reconstruction
Show all stages of computation clearly

Algorithm Details

O(V + E) where V is vertices and E is edges
Time Complexity
O(V) for cost and decision arrays
Space Complexity

Algorithm Steps:

  1. 1Organize graph into k stages with nodes at each stage
  2. 2Start from last stage: cost[k-1][j] = 0 for destination nodes
  3. 3Work backwards: for each stage i from k-2 to 0
  4. 4For each node j in stage i: cost[i][j] = min(weight[j][l] + cost[i+1][l])
  5. 5Record decision[i][j] = l that gives minimum cost
  6. 6Trace forward using decisions to get optimal path

Configure Multistage Graph

Stage 0:
Stage 1:
Stage 2:
Stage 3:
Stage 0Stage 1Stage 2Stage 3

Instructions:

  • Click "Add Node" then click on canvas to add vertices (nodes are assigned to stages based on position)
  • Add Edge: Click "Add Edge", set weight, then click two consecutive stage nodes
  • Only edges between consecutive stages are allowed (stage N to stage N+1)
  • Click "Delete" then click nodes to remove them (can be undone)
  • Drag nodes to move them around (not available in edge mode)
  • Use Undo/Redo to restore accidentally deleted items
  • Configure stages and nodes per stage using the dropdowns above
  • Red node = Source (Stage 0), Green node = Target (Last Stage)
  • Orange nodes show the optimal path after running the algorithm

Algorithm Results

📊

Configure the multistage graph and click "Find Shortest Path" to see the solution