9.1. Flow Network

This section describes how to implement a flow network.

A flow network is a directed graph that has the following properties:

Max Flow

Let us define the MaxFlow class that keeps track of the amount of flows in every edge used to find the maximum flow:

  • L2: consists of (edge, flow) as the key-value pair.

  • L3: stores the total amount of flows to the target vertices.

  • L13-14: initializes all flows to 0.

Let us define getter methods:

  • L5: returns the remaining residual that can be used to push more flows.

    • L6: the edge weight represents the total capacity.

Finally, let us define setter methods:

  • L1: takes the path from a source and a target.

    • L2: updates the flow of every edge in the path with the specific flow.

    • L3: updates the overall flow.

  • L6: adds the specific flow to the specific edge.

Last updated

Was this helpful?