Fact-checked by Grok 2 weeks ago

Flow network

In graph theory and computer science, a flow network is a directed graph G = (V, E) with a distinguished source vertex s and sink vertex t, where each edge (u, v) \in E is assigned a nonnegative capacity c(u, v) representing the maximum amount of a commodity that can flow through it, and the goal is typically to compute a feasible flow f from s to t that respects these capacities while maximizing the total flow value. A feasible flow must satisfy three properties: conservation of flow at intermediate vertices (inflow equals outflow), nonnegativity (f(u, v) \geq 0), and capacity constraints ($0 \leq f(u, v) \leq c(u, v)). The maximum flow problem, which seeks the highest possible flow value from s to t, is a foundational optimization challenge in this framework, closely related to the min-cut problem via the max-flow min-cut theorem stating that the maximum flow equals the minimum capacity of any s- t cut. The concept of flow networks originated in the mid-20th century, with the seminal work by L. R. Ford Jr. and D. R. Fulkerson introducing the Ford-Fulkerson algorithm in 1956, which computes maximum flows by iteratively finding augmenting paths in the residual graph until no such path exists. Subsequent improvements include the Edmonds-Karp algorithm (1972), a breadth-first search implementation of Ford-Fulkerson achieving polynomial time complexity O(VE^2), and faster methods like Dinic's algorithm (1970) with time complexity O(V^2E) for general graphs. These algorithms underpin efficient solutions to flow problems, with modern variants addressing unit capacities, high precision, or parallel computation for large-scale networks. Flow networks have broad applications across , , and , modeling scenarios involving and . Notable uses include transportation systems for optimizing traffic or shipment routing, bipartite matching for assigning jobs to workers or edges in matchings, in by partitioning pixels based on flow cuts, and network reliability analysis to ensure fault-tolerant . In , they help solve problems like egalitarian resource distribution or optimization, while extensions to minimum-cost flows incorporate edge costs for scenarios like scheduling.

Core Definitions

Graph Structure

A flow network is defined as a G = (V, E), consisting of a finite set of V and a set of directed edges E \subseteq V \times V, where each edge represents a directed from one to another. This structure models the topology of systems where resources or commodities can move unidirectionally between nodes, such as in transportation or communication networks. The foundational of this graph-theoretic framework appears in the work of and Fulkerson, who introduced it to analyze maximal flows in rail networks represented as directed connections between cities. Central to the flow network are two designated terminal vertices: s \in V and the sink t \in V, with s \neq t. The source serves as the origin point for the flow, while the sink acts as the destination, defining the direction and purpose of potential movements through the graph. Arcs are denoted as ordered pairs (u, v) with u, v \in V and u \neq v, capturing the one-way nature of connections. Standard flow networks assume finite capacities on arcs for the core maximum flow problems, though formulations allowing infinite capacities are used in certain extensions to represent unconstrained paths. Additionally, these networks typically exclude self-loops (arcs of the form (u, u)) and parallel arcs between the same pair of vertices, ensuring a structure unless explicitly stated otherwise; such assumptions simplify analysis for most applications.

Capacities and Terminals

In a flow network, which builds upon a G = (V, E), each (u, v) \in E is assigned a that limits the amount of it can carry. The c: E \to \mathbb{R}_{\geq 0} maps each to a non-negative , representing the maximum allowable along that arc. Capacities are typically fixed at the outset of the problem, providing the static constraints within which computations occur. To handle cases where an arc imposes no practical limit, the capacity may be denoted as c(u, v) = \infty, indicating an unbounded arc. If there is no arc from u to v (i.e., (u, v) ∉ E), then c(u, v) = 0, ensuring capacities align with the graph's structure. The network designates two special vertices: a source s \in V as the origin of net outflow and a sink t \in V as the destination of net inflow, which together frame the directional flow from start to end. These terminals are fixed prior to any flow assignment, establishing the problem's boundaries.

Flow Fundamentals

Valid Flow Assignment

A valid flow assignment in a flow network is defined by a function f: E \to \mathbb{R}_{\geq 0}, which assigns a non-negative real number f(u,v) to each arc (u,v) \in E, representing the rate or amount of flow traversing that arc. This function ensures that flow values are directed along the existing arcs of the network, with f(u,v) > 0 only if the arc (u,v) is present in E; otherwise, f(u,v) = 0 for non-existent arcs. The core property of a valid flow assignment is adherence to capacity constraints on each arc. Specifically, for every arc (u,v) \in E, the flow must satisfy $0 \leq f(u,v) \leq c(u,v), where c(u,v) is the capacity of the arc, preventing any overload or negative flow. This bound ensures that the assignment respects the physical or logical limits of the network edges, such as bandwidth in communication systems or throughput in transportation models. In formulations that extend the flow function to all vertex pairs for consistency with residual networks, skew symmetry is imposed: f(u,v) = -f(v,u) for all vertices u, v \in V. This antisymmetric property facilitates the handling of potential reverse flows in augmentation processes, while maintaining non-negativity in the forward direction where arcs exist. An example of an invalid flow assignment occurs when f(u,v) > c(u,v) for any arc (u,v), such as assigning 15 units of flow to an arc with a capacity of 10; this violates the capacity constraint and renders the assignment infeasible.

Flow Conservation

In a flow network, the conservation property requires that, for every vertex v that is neither the source s nor the sink t, the total inflow equals the total outflow. This ensures that the commodity being transported—such as freight, data, or fluid—neither accumulates nor dissipates at intermediate nodes. The flow function f, which assigns non-negative values to arcs subject to capacity constraints, must satisfy this balance to qualify as a valid flow. Mathematically, the conservation condition is given by \sum_{\substack{u \\ (u,v) \in E}} f(u,v) = \sum_{\substack{w \\ (v,w) \in E}} f(v,w) for all vertices v \neq s, t, where E denotes the set of directed edges in the network. This equation holds as a defining constraint for feasible flows, ensuring the network's integrity. At the source s, the net flow is positive (outflow exceeds inflow), representing the origin of the commodity, while at the sink t, the net flow is negative (inflow exceeds outflow), indicating the destination. Exceptions to the balance thus occur only at these terminals. The property originates from physical principles, modeling scenarios where quantities like , , or resources are preserved during , as in rail freight networks or pipeline systems. In the seminal formulation, it captures the steady-state movement of commodities through interconnected paths without loss at junctions. To verify that holds in feasible flows, consider the : the flow f is constructed to satisfy the linear constraints above alongside bounds $0 \leq f(e) \leq c(e) for each e with c(e). Any solution to this inherently upholds the balance at non-terminal vertices by definition, as deviations would violate the feasibility conditions. This can be confirmed by substituting the flow values into the equations, yielding for each qualifying v.

Net Flow and Value

In flow networks, the net flow out of the source vertex s for a given flow assignment f captures the total amount of flow originating from s, accounting for both outgoing and any incoming flows on edges incident to s. Formally, it is defined as
|f|(s) = \sum_{v : (s,v) \in E} f(s, v) - \sum_{u : (u,s) \in E} f(u, s),
where E denotes the set of edges in the network. This formulation ensures that the net contribution from the source is precisely measured, even in networks where s might have incoming edges, though standard constructions often assume no such edges exist to simplify the model.
The value of the flow, denoted |f|, is equivalently defined as this net flow out of the source. By the conservation law, which requires that inflow equals outflow at every non-terminal vertex, the flow value also equals the net flow into the sink vertex t, given by
|f|(t) = \sum_{v : (v,t) \in E} f(v, t) - \sum_{u : (t,u) \in E} f(t, u).
In the common case where the source has no incoming edges and the sink has no outgoing edges, the value simplifies to |f| = \sum_{v} f(s, v), directly representing the aggregate outflow from s. This equivalence underscores the global balance enforced by local conservation, ensuring that the total flow generated at the source ultimately reaches the sink.
The centers on finding a valid f that maximizes the value |f|, while adhering to capacity constraints $0 \leq f(e) \leq c(e) for all s e and the conservation property at intermediate vertices. This optimization objective quantifies the network's overall throughput from to under the given constraints. Within this framework, an (u, v) is saturated if f(u, v) = c(u, v), indicating that the is operating at its full and cannot accommodate additional forward without violating constraints. plays a key role in assessing whether a is maximal, as it highlights bottlenecks in the network's structure.

Essential Concepts

Residual Networks

In network flow theory, the residual network associated with a given f in a network G = (V, E) with c provides a representation of the remaining for potential adjustments. For each (u, v) \in E, the forward residual is defined as c_f(u, v) = c(u, v) - f(u, v), which quantifies the additional that can be pushed along that without exceeding its original . If f(u, v) > 0, a reverse residual (v, u) is introduced with c_f(v, u) = f(u, v), allowing for the reduction or redirection of existing to enable further augmentations elsewhere in the network. This bidirectional mechanism ensures that the residual structure captures both untapped potential and opportunities to undo prior assignments. The residual graph G_f = (V, E_f) is then constructed by including all vertices V and the set of residual arcs E_f = \{(u, v) \in V \times V \mid c_f(u, v) > 0\}, where arcs exist only if their residual capacity is positive. In cases where capacities are unbounded (i.e., c(u, v) = \infty), the corresponding forward residual capacity remains infinite as long as no flow saturates an effectively unlimited arc, preserving the graph's structure for analysis. This formulation, originally introduced in the context of maximal flow computation, enables a dynamic view of the network's state relative to the current flow. As the flow f is updated—such as through incremental adjustments—the residual graph G_f evolves accordingly, with residual capacities recalculated and arcs added or removed based on the new flow values. This dynamic nature makes the residual network a foundational tool for studying flow feasibility and optimization, distinct from the static original graph by emphasizing adjustable rather than fixed constraints. The concept underpins algorithms for maximum flow, as detailed in seminal works on network flows.

Augmenting Paths

In the context of flow networks, an augmenting path is a from the source s to the sink t in the network G_f, where every along the has positive c_f(u, v) > 0. This represents an opportunity to increase the current value by redirecting or adding without violating constraints. The existence of such paths is fundamental to iteratively improving assignments in network optimization. The bottleneck capacity of an augmenting P is defined as the minimum residual over all in P, given by \delta = \min_{(u,v) \in P} c_f(u, v). This value \delta determines the maximum amount by which the can be augmented along P, limited by the weakest link in the . To perform augmentation, the f is updated by adding \delta to the flow on each forward in P and subtracting \delta from the flow on each corresponding reverse (if present), which simultaneously updates the residual network G_f. This operation preserves flow validity while increasing the net value by exactly \delta. A key theoretical result states that a flow f is maximum the residual network G_f contains no augmenting . In such a case, further augmentation is impossible, confirming optimality. For illustration, consider selecting an augmenting that maximizes the bottleneck capacity, which can lead to fewer augmentations for convergence, though the shortest such in terms of the number of arcs may also be considered for efficiency in certain contexts.

Flow Decomposition

Flow decomposition provides a method to express a given in a network as a of flows along directed paths from the source to the and directed cycles, facilitating and proofs of key properties in flow theory. This technique reveals the underlying path structure of the flow without altering its value or validity, assuming the original flow satisfies and constraints. It is particularly valuable for dissecting complex flows into simpler components for or optimization purposes. A fundamental result in network flows is the flow decomposition theorem, which states that any acyclic flow can be decomposed into at most |V|-1 paths and cycles such that the total flow value |f| equals the sum of the values along these components. In general networks, the decomposition includes s-t paths carrying the net flow and possibly cycles representing circulations, with the total number of paths and cycles bounded by |E|, the number of edges; each path in the decomposition carries a positive flow value. This theorem holds for any valid flow and ensures the decomposition preserves the original flow's value and non-negativity. The decomposition procedure begins by identifying a directed from s to the t consisting solely of with positive . The minimum value along this is then subtracted from the on each of the (often normalized to unit for simplicity in cases, though the general step uses the minimum), effectively removing that amount of while recording it as a separate . This step is repeated on the updated until no s-t with positive remains, yielding a set of paths whose flows sum to the original net value |f|. The process terminates after at most |E| iterations because each subtraction reduces the number of with positive by at least one. Cycle elimination addresses circulating components that do not contribute to the net value |f|, such as loops where circulates without net progress from to . To eliminate a , a directed with positive on all edges is found, and the minimum along the is subtracted from each edge in the , reducing or zeroing the circulation without affecting at intermediate nodes or the overall s-t value. These can be iteratively removed until the is acyclic, after which path decomposition applies; this step ensures the decomposition focuses on value-contributing components while bounding the total number of cycles by |E|. Flow decomposition plays a crucial role in proving the for maximum with capacities, demonstrating that if all edge capacities are , then there exists a maximum that is integer-valued on every edge. By decomposing the into and cycles, each carrying positive amounts bounded by capacities, the shows that the maximum value |f| must be , as it equals the sum of path flows up to the min-cut capacity; this avoids fractional flows and guarantees polynomial-time computability via -augmenting algorithms.

Arc Additions and Modifications

In flow networks, adding a new (u, v) with c' involves setting the initial f(u, v) = 0, which satisfies the constraint f(u, v) ≤ c' and preserves the validity of the existing assignment, assuming the original was valid. This addition updates the network by including a forward from u to v with c' and a reverse from v to u with 0. The maximum value may increase by up to c', depending on the from the source to u and from v to the in the . If the added arc is parallel to an existing arc between the same nodes u and v, the arcs can be combined into a single arc with summed c(u, v) + c' and summed f(u, v) + 0, simplifying the representation without altering the feasible flow set. This merging maintains and constraints across the . Modifying the of an existing arc (u, v) from c to a new value c' requires checking the current f(u, v) against c'. If c' > c ( increase), the existing remains valid since f(u, v) ≤ c ≤ c', and the forward increases by c' - c while the reverse remains unchanged. This adjustment may raise the upper bound on the maximum . Conversely, if c' < c ( decrease) and f(u, v) ≤ c', the stays valid, but the forward decreases by c - c'. However, if f(u, v) > c', the becomes invalid, necessitating rebalancing by reducing the excess flow δ = f(u, v) - c' along the arc; this can be achieved by augmenting in the along paths or cycles that utilize the reverse arc (v, u) to effectively reroute δ from v back to u, restoring validity while preserving elsewhere. Post-modification, the network must be updated accordingly to reflect the new capacities: forward r_f(u, v) = c' - f(u, v) and reverse r_f(v, u) = f(u, v). These changes can affect augmenting paths and thus the computable maximum flow, but a valid flow can always be maintained or restored through adjustments without recomputing from scratch unless optimality is required.

Variations

Multiple Sources and Sinks

In flow networks with multiple sources and sinks, a standard reduction transforms the problem into an equivalent single-source single-sink form by introducing a super-source node S and a super-sink node T. The super-source S is connected to each original source s_i via a directed arc with capacity equal to the supply at s_i, denoted b(s_i) > 0, allowing flow to enter the network only up to the available supply from each source. Similarly, each original sink t_j is connected to the super-sink T via a directed arc with capacity equal to the demand at t_j, denoted b(t_j) < 0, ensuring that flow leaving the sinks does not exceed their demands. The resulting network G' retains all original arcs and capacities from the initial graph G, augmented only by the new arcs from S to the sources and from the sinks to T. This construction preserves the maximum flow value, as the maximum flow in G' from S to T equals the maximum feasible flow in G that respects the supplies at sources and demands at sinks. Standard maximum flow algorithms, such as , can then be applied directly to G' to compute this value efficiently. For networks with specified supplies and demands, the feasibility of a flow depends on whether the total supply balances the total demand. In a balanced network, where the sum of supplies \sum b(s_i) equals the sum of absolute demands \sum |b(t_j)|, a feasible maximum flow exists if and only if the computed maximum flow value in G' equals this common total, ensuring all supplies are utilized and all demands are met. In an unbalanced network, where total supply exceeds total demand, the maximum flow value equals the total demand, confirming feasibility for satisfying demands; conversely, if total demand exceeds total supply, feasibility requires the maximum flow to equal the total supply, but demands cannot be fully met without additional sources. This reduction extends naturally to transportation problems, where supplies at origins (sources) and demands at destinations (sinks) must be satisfied at minimum cost, modeled as a with intermediate arcs representing shipping routes and their capacities or costs. By applying the super-source and super-sink construction with arc capacities set to the respective supplies and demands, the transportation problem reduces to a minimum-cost flow problem in the single-source single-sink network G', allowing the use of or other optimization algorithms while preserving feasibility conditions for balanced or unbalanced cases.

Circulation Networks

A circulation in a flow network is defined as a valid flow assignment that satisfies the conservation property at every node, ensuring that the incoming flow equals the outgoing flow with no net accumulation or depletion anywhere in the network. Unlike standard flow problems with specified sources and sinks, circulation networks lack designated terminals, modeling closed systems where flow recirculates indefinitely. Circulations typically incorporate both lower bounds l(u,v) and upper capacities c(u,v) on each directed arc (u,v), requiring l(u,v) \leq f(u,v) \leq c(u,v) for the flow f to be feasible. The existence of a feasible circulation is governed by Hoffman's circulation theorem, which provides a necessary and sufficient condition: for every subset S \subseteq V of nodes, the sum of lower bounds on arcs leaving S does not exceed the sum of upper bounds on arcs entering S. To computationally verify feasibility and construct a circulation if it exists, the problem reduces to a maximum flow computation in an auxiliary network. This involves shifting flows by the lower bounds to create residual capacities c'(u,v) = c(u,v) - l(u,v), computing node imbalances b(v) = \sum_{u: (u,v) \in E} l(u,v) - \sum_{w: (v,w) \in E} l(v,w), and adding a super-source connected to nodes with positive b(v) and a super-sink to nodes with negative b(v); a feasible circulation exists if and only if the maximum flow value equals \sum_{v: b(v) > 0} b(v). Any feasible circulation admits a decomposition into edge-disjoint directed cycles, where each cycle carries a positive constant flow value, and the overall circulation is the superposition of these cycle flows; such a decomposition can be obtained using augmenting path methods on the residual network and requires at most |E| cycles. Circulation networks apply to scheduling scenarios without external inputs or outputs, such as closed-loop manufacturing systems where resources cycle through processes or periodic timetabling in transportation networks requiring balanced recurring assignments.

Directed Acyclic Flow Networks

A directed acyclic flow network, or DAG flow network, is a flow network in which the underlying directed graph contains no directed cycles, ensuring that all paths are finite and well-defined. This acyclicity permits a topological ordering of the vertices, where each vertex appears before all vertices reachable from it via directed edges, computable in linear time relative to the number of edges. Such ordering facilitates sequential processing of the network, eliminating concerns about feedback loops in flow propagation. The absence of cycles provides significant computational advantages for solving the . The facilitates efficient implementation of standard algorithms like Edmonds-Karp, achieving O(|V|E^2) , by simplifying graph updates and searches without cycles. In DAG flow networks, decomposition yields a representation consisting exclusively of flows from sources to sinks, without any circulating components, as cycles cannot exist to support such flows. This path-only decomposition aligns naturally with the acyclic structure, often resulting in representations with at most |E| paths, and supports efficient verification of and adherence. Layered representations of these networks, constructed by assigning levels via topological depths or longest- distances, ensure that edges span exactly one level, enabling algorithms to identify unit-length augmenting paths within levels for faster blocking computations. These networks are particularly suited to modeling systems with inherent precedence constraints, such as scheduling tasks in or resolving dependencies in computational graphs. In scheduling applications, vertices represent activities, edges denote prerequisites, and flows quantify resource throughput; the integrates flow-based analysis to optimize timelines under capacity limits, computable efficiently due to the DAG topology.

Examples and Applications

Illustrative Example

Consider a simple flow network with four nodes: a source s, a t, and two intermediate nodes a and b. The directed arcs and their capacities are as follows: s \to a with 5, s \to b with 4, a \to t with 3, b \to t with 6, and a \to b with 2. An initial feasible flow can be assigned as f(s \to a) = 3, f(a \to t) = 3, with all other arcs carrying zero flow. This satisfies the capacity constraints, as 3 ≤ 5 for s \to a and 3 ≤ 3 for a \to t, and flow conservation holds at node a (inflow 3 equals outflow 3) and at b (inflow 0 equals outflow 0). The current total flow value is 3. The corresponding residual graph includes forward residual capacities (original capacity minus current flow) and backward residual capacities (current flow, allowing potential flow reduction). Thus, the residuals are: s \to a: 2 forward, a \to s: 3 backward; a \to t: 0 forward, t \to a: 3 backward; s \to b: 4 forward; b \to t: 6 forward; a \to b: 2 forward. An augmenting path exists from s to t, such as s \to b \to t, with bottleneck residual capacity \min(4, 6) = 4. Augmenting along this path increases the flow by 4, updating f(s \to b) = 4 and f(b \to t) = 4, for a new total flow of 7. In the updated residual graph, another augmenting path exists: s \to a \to b \to t, with bottleneck residual capacity \min(2, 2, 2) = 2. Augmenting along this path increases the flow by 2, updating f(s \to a) = 5, f(a \to b) = 2, and f(b \to t) = 6, for a total flow of 9. No further augmenting paths remain, confirming this is the maximum flow. This maximum flow of 9 can be decomposed into path flows: the path s \to a \to t carrying 3 units, the path s \to a \to b \to t carrying 2 units, and the path s \to b \to t carrying 4 units, illustrating how the total flow arises from paths in the network.

Practical Applications

Flow networks find extensive application in transportation systems, where they model the movement of or across or infrastructures. Edges represent routes with capacities corresponding to limits such as vehicle throughput or , while sources simulate origins like centers and sinks denote destinations such as ports or markets. This formulation allows optimization of flows to minimize and maximize efficiency in supply chains. In assignment and matching scenarios, flow networks underpin bipartite matching problems, where the maximum flow equates to the largest possible pairing between two sets, such as workers and tasks. This approach leverages , which guarantees a under certain neighborhood conditions, facilitating real-world uses like job scheduling or in . For instance, the theorem ensures feasible assignments when each subset of jobs has sufficient compatible machines. Image segmentation employs min-cut techniques from flow networks to delineate regions in visual data, treating pixels as nodes and similarities between adjacent pixels as edge capacities. By partitioning the into source-connected (foreground) and sink-connected () components, the minimum cut identifies optimal boundaries that minimize segmentation energy, enhancing tasks like . The elimination problem uses flow networks to assess whether a can still mathematically contend for a league title given current standings and remaining games. Nodes represent teams and games, with capacities encoding wins and schedules; the maximum flow value determines if reallocating remaining games allows the team to surpass leaders, providing a precise feasibility check for . Network reliability analysis utilizes the maximum flow value as a measure of , quantifying the (total removal) needed to isolate a source from a ; in unit- networks, this equals the minimum number of removals required, reflecting robustness against failures in communication or grids. This guides improvements by evaluating under constraints.

Problem Classifications

Maximum Flow Problems

The maximum flow problem in a flow network G = (V, E) with source s \in V, sink t \in V, and nonnegative capacity function c: E \to \mathbb{R}_{\geq 0} is to find a valid flow f: E \to \mathbb{R}_{\geq 0} that maximizes the flow value |f| = f_{\text{out}}(s) = f_{\text{in}}(t), subject to the capacity constraints $0 \leq f(e) \leq c(e) for all e \in E and the flow conservation constraints \sum_{e \in E_{\text{in}}(v)} f(e) = \sum_{e \in E_{\text{out}}(v)} f(e) for all v \in V \setminus \{s, t\}. A fundamental result connecting the maximum flow to graph structure is the , which asserts that the value of the maximum flow equals the of the minimum s-t cut in the network. An s-t cut is defined as a of the vertex set V into two subsets (S, T) such that s \in S and t \in T, with the of the cut given by the sum \sum_{(u,v) \in E: u \in S, v \in T} c(u,v). The proof of the proceeds in two parts. First, for any valid f, the value |f| is at most the of any s-t cut, since the net out of S cannot exceed the total crossing from S to T. Second, if a f is not maximum, then in the residual graph G_f (where residual allow backward along saturated edges), there exists a from s to t that can augment the , increasing |f| until no such remains; at that point, the set of vertices reachable from s in G_f defines a minimum-capacity s-t cut whose equals |f|. An important property of the maximum flow problem is the integrality , which states that if all capacities c(e) are s, then there exists a maximum flow f where f(e) is an for every e \in E. This follows from the fact that augmenting along paths with integer residual capacities preserves integrality, ensuring an at optimality.

Minimum Cut Problems

In a flow network G = (V, E) with source s and sink t, an s-t cut is a of the set V into two disjoint subsets S and T = V \setminus S such that s \in S and t \in T. The capacity of this cut, denoted c(S, T), is the sum of the capacities of all edges directed from S to T: c(S, T) = \sum_{u \in S, v \in T} c(u, v), where c(u, v) is the capacity of edge (u, v). This capacity represents the total throughput limit imposed by the edges crossing the . The minimum s-t cut is the (S, T) that minimizes c(S, T) over all possible s-t cuts. By the , the capacity of the minimum s-t cut equals the value of the maximum flow from s to t. This duality, established in seminal work on network flows, underscores that the minimum cut capacity defines the fundamental limiting flow through the network. One minimum s-t cut can be identified using the residual graph G_f after computing a maximum f: let S be the set of vertices reachable from s in G_f, with T = V \setminus S. This partition (S, T) has capacity equal to the maximum flow value, as all edges from S to T are saturated under f and no residual capacity exists from T to S. This construction yields the closest to the source (the source-side minimum cut), which is the smallest such S containing s. Flow networks may admit multiple minimum s-t cuts, all sharing the same minimum capacity. The source-side variant is as defined above, while the sink-side variant (closest to the sink) is obtained by taking S as the complement of the vertices from which t is reachable in G_f (or equivalently, vertices reachable from t in the of G_f). All minimum cuts lie between these source-side and sink-side partitions, forming a closed under and . The existence of multiple cuts occurs when the residual graph after maximum flow has vertices neither reachable from s nor reaching t. Minimum cuts have key applications in bottleneck analysis, where they pinpoint the weakest set of edges constraining overall —for instance, in or communication systems, revealing critical links whose reinforcement would increase maximum . The extends the basic flow network by introducing on edges and seeking a feasible of a prescribed total value b that minimizes the aggregate . Formally, it optimizes \min \sum_{(u,v) \in E} f(u,v) \cdot c(u,v), where c(u,v) denotes the cost per unit on edge (u,v), subject to constraints $0 \leq f(u,v) \leq \kappa(u,v) for all edges, at non-source/ nodes, and the net out of the source equaling b. This variant captures scenarios where efficiency depends not just on throughput but on economic factors, and it generalizes problems like the and tasks. Parametric networks generalize capacities as functions of one or more parameters, such as \kappa(u,v)(\lambda) where \lambda varies continuously, enabling the study of how maximum values change with perturbations like resource scaling or uncertainty. These models are useful for , where the goal is to compute the or cut values across a of \lambda efficiently, often revealing breakpoints where the optimal structure shifts. Seminal algorithms for maximum leverage repeated invocations of non- solvers while exploiting monotonicity in functions to achieve polynomial-time solutions for or linear cases. In multi-commodity flow problems, multiple distinct commodities—each defined by its own source-sink pair and —share the network's capacities, requiring simultaneous that respects the aggregate load on each . The optimization typically maximizes the minimum across commodities or the total routed , contrasting with single-commodity flows by introducing inter-commodity . This formulation, rooted in early studies of communication and systems, often admits relaxation to linear programs for , though integrality gaps persist in dense networks. Unspltittable flow imposes the that each commodity's entire must traverse a single , prohibiting fractional splitting across routes, which introduces non-convexity and even for simple topologies. Unlike splittable variants, this requires integer decisions on path selection, leading to objectives like minimizing or maximizing throughput under path-integrality. Approximation algorithms achieve constant-factor guarantees relative to the splittable optimum, with performance degrading in high-demand scenarios, as established in foundational results for single-source cases. The successive shortest framework underpins solutions to many variants, including minimum and multi-commodity problems, by iteratively finding and augmenting along shortest paths in the residual graph using reduced costs to maintain optimality. Starting from a zero- or initial feasible solution, it builds the flow incrementally until demands are met, with each iteration resolving a shortest subproblem via Dijkstra or Bellman-Ford adaptations. This capacity-scaling approach extends naturally to capacitated and circulation variants, offering a unified method for both maximum throughput and cost-minimization objectives.

References

  1. [1]
    [PDF] Lecture 13 - Network Flow - MIT OpenCourseWare
    Definition. A flow network is a directed graph G = (V,E) with distinguished vertices s (the source) and t (the sink), in which each edge (u,v) ∈ E has a ...
  2. [2]
    [PDF] Network-Flow.pdf
    Definition. A flow network is a directed graph G = (V, E) with two distinguished vertices: a source s and a sink t. Each edge (u, v) ∈ E has a nonnegative ...
  3. [3]
    [PDF] maximal flow through a network - lr ford, jr. and dr fulkerson
    Introduction. The problem discussed in this paper was formulated by. T. Harris as follows: "Consider a rail network connecting two cities by ...
  4. [4]
    [PDF] ‣ max-flow and min-cut problems ‣ Ford–Fulkerson algorithm ...
    Nov 1, 2021 · This paper presents new algorithms for the maximum flow problem, the Hitchcock transportation problem, and the general minimum-cost flow problem ...
  5. [5]
    [PDF] Network Flow Algorithms - Cornell: Computer Science
    Network flow problems are central problems in operations research, computer science, and engineering and they arise in many real world applications.<|control11|><|separator|>
  6. [6]
    [PDF] Applications of Network Flow
    Applications of Network Flow. Obvious applications of network flow involve physical situations, such as a set of pipes moving water, or traffic in a network.
  7. [7]
    [PDF] Applications of Network Flow - Computer Science (CS)
    I Image segmentation. I Network connectivity. I Open-pit mining. I Network reliability. I Distributed computing. I Egalitarian ...
  8. [8]
    [PDF] Applications of Network Flow: - Williams College
    • Network reliability. • Image segmentation. • Baseball elimination. • Network connectivity. • Markov random fields. • Distributed computing. • Network ...
  9. [9]
    [PDF] Chapter 18 Applications of Network Flows
    18.3. 1.1 Edge-Disjoint Paths in Directed Graphs A set of paths is edge disjoint if no two paths share an edge. Applications: Fault tolerance in routing — ...
  10. [10]
    None
    ### Summary of Flow Network Definition from https://cse.buffalo.edu/~hungngo/classes/2007/Network%20Coding/notes/flow-intro.pdf
  11. [11]
    Maximal Flow Through a Network | Canadian Journal of Mathematics
    Nov 20, 2018 · Ford, L. R. and Fulkerson, D. R. 1957. A Simple Algorithm for Finding Maximal Network Flows and an Application to the Hitchcock Problem.
  12. [12]
    [PDF] 1 Consequences of the max-flow min-cut theorem
    A flow is defined as before, except that when c(u, v) = ∞ it means that there is no capacity constraint for edge (u, v). Theorem 1. If G is a flow network ...
  13. [13]
    [PDF] Network Flow - cs.wisc.edu
    The graph G contains no self-loops (edges of the form (u, u)). • The graph G contains no multiple edges since if e1,e2 are two edges from u to v with capacities.
  14. [14]
    [PDF] Introduction to Network Flow Problems 1 Basic definitions and ...
    Definition 1.1. A flow network is a directed graph D = (V,E) with two distinguished vertices s and t called the source and the sink, respectively.
  15. [15]
    [PDF] Network Flows I - Carnegie Mellon University
    Definition: Flow constraints. Capacity constraint: On any edge e we have 0 ≤ f (e) ≤ c (e). Flow conservation: For any vertex v ̸∈ {s,t }, flow in equals flow ...
  16. [16]
    [PDF] Course Notes. Maximum Flow Algorithms
    This is because from cap(u, v) = cap(v, u) = 0, by the capacity constraint property, we must have f(u, v) ≤ 0 and f(v, u) ≤ 0. By the skew symmetry property, f( ...
  17. [17]
    [PDF] Flows and Cuts - Cornell: Computer Science
    A valid flow in a flow network is a flow f in G that satisfies the capacity constraints fe ≤ c(e) for all edges e. A maximum flow is a valid flow of.
  18. [18]
    [PDF] CMSC 451: Network Flows - CMU School of Computer Science
    Definition (Value) The value v(f ) of a flow f is f out(s). That is: it is the amount of material that leaves s. Maximum Flow Problem Given a flow network G, ...
  19. [19]
    [PDF] Maximum Flows
    Our goal in this lecture is to solve the maximum flow problem. Definition 5 Maximum flow problem: Given a network G = (V,E), find a feasible flow f with.
  20. [20]
    [PDF] Maximum Flows & Minimum Cuts
    Ford and Fulkerson's proof of the Maxflow-Mincut Theorem immediately sug- gests an algorithm to compute maximum flows: Starting with the zero flow, repeatedly ...
  21. [21]
    [PDF] 9 Network Flows
    Theorem 9.2 (Ford-Fulkerson). Given an instance of network flow where the edge capacities are integers, the Ford-Fulkerson augmenting paths al- gorithm finds a ...
  22. [22]
    [PDF] Network flows - DSpace@MIT
    ... Network Flows. Shortest Path Problems. '' Maximum Flow Problems. Minimum Cost Flow Problems. AssigTunent Problems. Much of our discussion focuses on the design ...Missing: conservation | Show results with:conservation
  23. [23]
    Efficient Maximum Flow Algorithms - Communications of the ACM
    Aug 1, 2014 · In 2013, Orlin developed an algorithm that achieves this bound. The maximum flow, minimum cut theorem says the maximum flow value is equal to ...
  24. [24]
    Network Flows: Theory, Algorithms, and Applications - Google Books
    presents in-depth, self-contained treatments of shortest path, maximum flow, and minimum cost flow ... Network Flows: Theory, Algorithms, and Applications.
  25. [25]
    None
    ### Summary of Transportation Problem Modeled as Flow Network
  26. [26]
    The Basic Scheme for Maximum Flow: Ford-Fulkerson - cs.wisc.edu
    Multiple Sources and Sinks​​ One common variant of maximum flow involves having multiple sources and/or sinks in the graph, rather than just one. This can be ...
  27. [27]
    [PDF] Network Models - MIT
    The transportation problem is a network-flow model without intermediate locations. ... sink nodes, and maximize the flow from super sink to super source.).
  28. [28]
    [PDF] book.pdf - Network Flow Algorithms
    I am referring to the magisterial Network Flows: Theory, Algorithms, and Applications ... Definition 2.1: An s-t flow f : A → <≥0 is an assignment of ...
  29. [29]
    [PDF] Generalizations of Hoffman's existence theorem for circulations
    This paper presents new existence theorems for more general types of flows in directed networks: flows with gains, two- commodity flows, and flows with set ...
  30. [30]
    [PDF] CMSC 451: Max-Flow Extensions - CMU School of Computer Science
    Feasible circulation if and only if there is a flow of value D = Pt∈T dt. Intuition: Capacity of edges (s∗,s) limit the supply for source nodes s.Missing: theory | Show results with:theory
  31. [31]
    Network Flow Algorithms - Cambridge University Press & Assessment
    Network flow theory has been used across a number of disciplines, including theoretical computer science, operations research, and discrete math, to model ...
  32. [32]
  33. [33]
    [PDF] Lecture 14 - Stanford CS Theory
    Feb 22, 2011 · We are going to see a very simple proof of Hall's theorem, a classical result in graph theorem, which uses the max flow. - min cut theorem.
  34. [34]
    An Experimental Comparison of Min-Cut/Max-Flow Algorithms for ...
    The combinatorial optimization literature provides many min-cut/max-flow algorithms with different polynomial time complexity. Their practical efficiency, ...
  35. [35]
    COS 226 Programming Assignment: Baseball Elimination
    To check whether or not one particular team x is eliminated, we create a network and solve a maximum flow problem in it.
  36. [36]
  37. [37]
    [PDF] Minimum-Cost Flows | Jeff Erickson
    The successive shortest paths algorithm was initially proposed by Ford and Fulkerson in the mid-1950s, and then later rediscovered by William. Jewell in 1958, ...Missing: paper | Show results with:paper
  38. [38]
    A Fast Parametric Maximum Flow Algorithm and Applications
    In this paper it is shown that the recent maximum flow algorithm of Goldberg and Tarjan can be extended to solve an important class of such parametric maximum ...
  39. [39]
    [PDF] Multicommodity Maximum Flow Problems
    Multicommodity flow problems arise from both different origin/destination pairs and individual/common capacity constraints for different commodities on each ...Missing: key | Show results with:key
  40. [40]
    [PDF] Multicommodity Max-Flow Min-Cut Theorems and Their Use in ...
    Abstract. In this paper, we establish max-flow min-cut theorems for several important classes of multicommodity flow problems. In particular, we show that ...
  41. [41]
    On the Single-Source Unsplittable Flow Problem | Combinatorica
    We show how to compute an unsplittable flow satisfying the demands such that the total flow through any edge exceeds its capacity by at most the maximum demand.Missing: seminal | Show results with:seminal
  42. [42]
  43. [43]
    [PDF] Minimum Cost Flow by Successive Shortest Paths
    Strategy: Maintain an f and π such that f is a pseudoflow satisfying reduced cost optimality. Work to make f a flow. When f is a flow, you know it is optimal.