Overview

Published

2023-08-06

Week 13: Graph Algorithms: Shortest Path; Network Flows (Max Flow - Min Cut)

This week we’re going to learn how to solve the following problems:

  • Given a weighted, directed graph with no negative edge weights, find the shortest path from one node in the graph to all the other nodes in the graph.
  • Given a weighted, directed graph with no negative weight cycles, find the shortest path from one node in the graph to all the other nodes in the graph.
  • Given a weighted, directed graph representing a network with edge weights representing capacities, find the maximum supported flow through the network from some node designated as the source, to another node designated as the sink.
  • A “cut” is a removal of some subset of edges from a connected graph that separates the graph into two components. Given a weighted, directed graph and two nodes, designated the source and the sink, find the minimum weight cut through the graph that separates the source and the sink into two disconnected components.

Learning Objectives

By the end of this module, you will be able to:

  • Find the shortest path in a weighted, directed graph from one node to all other nodes,
  • Find the maximum flow supported by some network between source and sink nodes.

To achieve this module’s objectives, please watch the introductory video (above), and complete the following:

  • Shortest Paths (Dijkstra and Bellman-Ford algorithms),
  • Network Flows (Max Flow - Min Cut; Ford-Fulkerson and Edmonds-Karp algorithms)
  • Textbook, pp. 325-334; 339-345; 368-372

Original author: Clayton Cafiero < [given name] DOT [surname] AT uvm DOT edu >

No generative AI was used in producing this material. This was written the old-fashioned way.

All materials copyright © 2020–2023, The University of Vermont. All rights reserved.