ArticleslgStudy

computer science

Maximum flow problem

Maximum flow problem is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand Maximum flow problem rather than just read about it. In short: In optimization theory, maximum flow problems involve finding a feasible flow through a flow network that obtains the maximum possible flow rate. The maximum flow problem can be seen as a special case of more complex network flow problems, such as the circulation problem.

Maximum flow problem — main illustration
Maximum flow problem — illustration

Key takeaways

  • Maximum flow problem belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect Maximum flow problem to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of Maximum flow problem from memory before moving on to harder problems.

Reference excerpt

In optimization theory, maximum flow problems involve finding a feasible flow through a flow network that obtains the maximum possible flow rate. The maximum flow problem can be seen as a special case of more complex network flow problems, such as the circulation problem. The maximum value of an s-t flow (i.e., flow from source s to sink t) is equal to the minimum capacity of an s-t cut (i.e., cut severing s from t) in the network, as stated in the max-flow min-cut theorem.

History The maximum flow problem was first formulated in 1954 by T. E. Harris and F. S. Ross as a simplified model of Soviet railway traffic flow.

In 1955, Lester R. Ford, Jr. and Delbert R. Fulkerson created the first known algorithm, the Ford–Fulkerson algorithm. In their 1955 paper, Ford and Fulkerson wrote that the problem of Harris and Ross is formulated as follows (see p. 5):Consider a rail network connecting two cities by way of a number of intermediate cities, where each link of the network has a number assigned to it representing its capacity. Assuming a steady state condition, find a maximal flow from one given city to the other.In their book Flows in Networks, in 1962, Ford and Fulkerson wrote:It was posed to the authors in the spring of 1955 by T. E. Harris, who, in conjunction with General F. S. Ross (Ret.), had formulated a simplified model of railway traffic flow, and pinpointed this particular problem as the central one suggested by the model [11].where [11] refers to the 1955 secret report Fundamentals of a Method for Evaluating Rail net Capacities by Harris and Ross (see p. 5). Over the years, various improved solutions to the maximum flow problem were discovered, notably the shortest augmenting path algorithm of Edmonds and Karp and independently Dinitz; the blocking flow algorithm of Dinitz; the push-relabel algorithm of Goldberg and Tarjan; and the binary blocking flow algorithm of Goldberg and Rao. The algorithms of Sherman and Kelner, Lee, Orecchia and Sidford, respectively, find an approximately optimal maximum flow but only work in undirected graphs. In 2013 James B. Orlin published a paper describing an O ( | V | | E | ) {\displaystyle O(|V||E|)} algorithm. In 2022 Li Chen, Rasmus Kyng, Yang P. Liu, Richard Peng, Maximilian Probst Gutenberg, and Sushant Sachdeva published an almost-linear time algorithm running in O ( | E | 1 + o ( 1 ) ) {\displaystyle O(|E|^{1+o(1)})} for the minimum-cost flow problem of which the maximum flow problem is a particular case. For the single-source shortest path (SSSP) problem with negative weights – another particular case of a minimum-cost flow problem – an algorithm running in almost-linear time has also been reported. Both algorithms were deemed best papers at the 2022 Symposium on Foundations of Computer Science. A derandomized version of the 2022 algorithm by Chen et al was presented at the 2023 Symposium on Foundations of Computer Science, establishing that minimum-cost flow could be solved deterministically in almost-linear time.

Definition

First we establish some notation:

Let N = ( V , E ) {\displaystyle N=(V,E)} be a flow network with s , t ∈ V {\displaystyle s,t\in V} being the source and the sink of N {\displaystyle N} respectively. If g {\displaystyle g} is a function on the edges of N {\displaystyle N} then its value on ( u , v ) ∈ E {\displaystyle (u,v)\in E} is denoted by g u v {\displaystyle g_{uv}} or g ( u , v ) . {\displaystyle g(u,v).}

Definition. The capacity of an edge is the maximum amount of flow that can pass through an edge. Formally it is a map c : E → R + . {\displaystyle c:E\to \mathbb {R} ^{+}.}

Definition. A flow is a map f : E → R {\displaystyle f:E\to \mathbb {R} } that satisfies the following:

Capacity constraint. The flow of an edge cannot exceed its capacity, in other words: f u v ≤ c u v {\displaystyle f_{uv}\leq c_{uv}} for all ( u , v ) ∈ E . {\displaystyle (u,v)\in E.}

Conservation of flows. The sum of the flows entering a node must equal the sum of the flows exiting that node, except for the source and the sink. Or:

… excerpt ends here. Continue reading the full article.

Illustrations

Maximum flow problem: Flow network for the problem: Each human (ri) is willing to adopt a cat (wi1) and/or a dog (wi2). However each pet (pi) has a preference for only a subset of the humans. Find any matching of pets to humans such that the maximum number of pets are adopted by one of its preferred humans.
Flow network for the problem: Each human (ri) is willing to adopt a cat (wi1) and/or a dog (wi2). However each pet (pi) has a preference for only a subset of the humans. Find any matching of pets to humans such that the maximum number of pets are adopted by one of its preferred humans.
Maximum flow problem: A flow network, with source s and sink t. The numbers next to the edges are the capacities.
A flow network, with source s and sink t. The numbers next to the edges are the capacities.
Maximum flow problem: Fig. 4.1.1. Transformation of a multi-source multi-sink maximum flow problem into a single-source single-sink maximum flow problem
Fig. 4.1.1. Transformation of a multi-source multi-sink maximum flow problem into a single-source single-sink maximum flow problem
Maximum flow problem: Fig. 4.3.1. Transformation of a maximum bipartite matching problem into a maximum flow problem
Fig. 4.3.1. Transformation of a maximum bipartite matching problem into a maximum flow problem
Maximum flow problem: Fig. 4.4.1. Transformation of a maximum flow problem with vertex capacities constraint into the original maximum flow problem by node splitting
Fig. 4.4.1. Transformation of a maximum flow problem with vertex capacities constraint into the original maximum flow problem by node splitting

Worked examples

Example 1 — a first encounter with Maximum flow problem

Start with the simplest possible case. Write down what Maximum flow problem claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to Maximum flow problem before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about Maximum flow problem ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of Maximum flow problem

In research
Maximum flow problem appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses Maximum flow problem in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
Maximum flow problem is common in secondary-school and first-year university syllabi. It links to neighbouring topics Computational problems in graph theory, Network flow problem, so understanding it makes those chapters shorter.
In everyday life
Look for Maximum flow problem outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study Maximum flow problem in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what Maximum flow problem means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain Maximum flow problem out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is Maximum flow problem in simple terms?

In optimization theory, maximum flow problems involve finding a feasible flow through a flow network that obtains the maximum possible flow rate. The maximum flow problem can be seen as a special case of more complex network flow problems, such as the circulation problem.

Why does Maximum flow problem matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study Maximum flow problem?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on Maximum flow problem.

Tags

  • Computational problems in graph theory
  • Network flow problem

Keep exploring