9.1. Flow Network
This section describes how to implement a flow network.
Last updated
This section describes how to implement a flow network.
Last updated
©2023 Emory University - All rights reserved
A flow network is a directed graph that has the following properties:
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.