Skip to content
Field Atlas

Atlas / Mathematics / The Combinatorics Thread

Field · Emerged 1939 – 1979

Combinatorial Optimisation

Among astronomically many possible arrangements, how can the best one be found without trying them all?

4 chapters4 min read6 turning points1 open problem

Branched from
Graph Theory + Computational Complexity
Branched into
Not yet surveyed past here
Figures
Leonid Kantorovich, George Dantzig, Lester Ford Jr., Delbert Ray Fulkerson, Edsger Dijkstra, Jack Edmonds, Nicos Christofides, Anatoliy Serdyukov, Anna Karlin, Nathan Klein, Shayan Oveis Gharan, Leonid Khachiyan

In brief

Combinatorial optimisation looks for the best choice among a finite but enormous set: the shortest delivery route, the cheapest way to connect a set of towns, the best assignment of workers to jobs. Trying every option is hopeless, since there are more ways to order 25 cities than there are grains of sand on Earth. The subject finds structure that leads straight to the optimum, or proves that no such shortcut is likely to exist.

It grew from wartime and post-war planning: Soviet plywood production, American military logistics, railway networks. Linear programming, network flows and matching algorithms are its classical core. After 1971 the theory of NP-completeness split its problems into those with efficient algorithms and those, like the travelling salesman problem, for which approximation became the realistic goal.

Key ideas

Linear programmingEnters 1939 – 1947

Maximising a linear quantity, like profit, subject to linear constraints, like available materials. Most of optimisation reduces to it or builds on it.

DualityEnters 1956

Every maximisation problem of this kind has a mirror-image minimisation problem with the same optimal value. The maximum flow through a network equals the capacity of its narrowest cut.

Greedy algorithmEnters 1959

Build a solution by always taking the best-looking next step. It is optimal for shortest paths and for cheapest connecting networks, and fails for many other problems.

Approximation algorithmEnters 1976 – 2020

For problems where finding the optimum is NP-hard, a fast method with a guarantee, such as "never more than 50% above the best possible".

Draws on other domains

Chapter I

Planning

Optimisation problems came from planning. In 1939 the Leningrad plywood trust asked Leonid Kantorovich how to divide work among its machines to produce the most. He saw that the question, and many like it, meant maximising a linear quantity subject to linear constraints. In 1947 George Dantzig, planning logistics for the US Air Force, reached the same formulation independently and invented the simplex method to solve it. The method walks from corner to corner of a many-sided region, improving at each step. It was soon running on the first commercial computers.

Kantorovich's work was met with suspicion at home, since it attached prices to resources in a planned economy, but he later shared the 1975 Nobel memorial prize in economics. Dantzig did not, although for many the simplex method is his monument.

Chapter II

Networks

At the RAND Corporation in 1955, a study of how much freight the Soviet railway network could carry to Eastern Europe posed a question about flow through a network. Lester Ford and Delbert Fulkerson answered it in 1956: the maximum flow equals the capacity of the narrowest cut. At about the same time Edsger Dijkstra, demonstrating a new computer in Amsterdam, needed a problem the public could understand. He chose finding the shortest route between Dutch cities and designed his algorithm in twenty minutes.

In 1965 Jack Edmonds solved the matching problem for general networks, and in doing so proposed that "efficient" should mean polynomial time. That proposal became the foundation of computational complexity. When Richard Karp showed in 1972 that the travelling salesman problem and many other optimisation problems are NP-complete, the field divided: some problems have fast exact algorithms, and the rest need approximations or careful search.

Chapter III

A Closer Look: The Narrowest Cut

A small network carries water from a source ss to a sink tt through two junctions, aa and bb. Each pipe has a capacity:

PipeCapacity
s→as \to a3
s→bs \to b2
a→ba \to b1
a→ta \to t2
b→tb \to t3

How much can flow from ss to tt? Push 2 units along s→a→ts \to a \to t, 2 along s→b→ts \to b \to t, and 1 along s→a→b→ts \to a \to b \to t. Every pipe stays within its capacity (s→as \to a carries 3, b→tb \to t carries 3), and 5 units arrive.

Can more get through? Draw a line around ss alone. Everything leaving it must pass through s→as \to a or s→bs \to b, whose capacities add to 3+2=53 + 2 = 5. No flow can exceed that. A set of pipes whose removal disconnects ss from tt is a cut, and no flow can exceed any cut's capacity. Here a flow of 5 matches a cut of 5, so both are optimal, and each proves the other is the best possible.

Ford and Fulkerson proved that this always happens: in every network, the maximum flow equals the minimum cut, and their algorithm finds both. The two are a matching pair of problems, one maximising and one minimising, with the same answer. That duality runs through all of linear programming, and it is what lets optimisation software certify that an answer is optimal rather than just good.

Chapter IV

Hard Problems, Good Answers

For NP-hard problems, the goal became guaranteed approximation. In 1976 Nicos Christofides, and independently Anatoliy Serdyukov, found a method that finds a travelling-salesman tour at most 50% longer than the shortest. For 44 years that was the best guarantee known, until Anna Karlin, Nathan Klein and Shayan Oveis Gharan improved it in 2020 by a fraction of about 10−3610^{-36}. In practice, exact methods do much better than the guarantees suggest: in 2006 an optimal tour through 85,900 locations was found and proved optimal.

Linear programming itself was proved efficient in 1979 by Leonid Khachiyan. Whether it can be solved in a number of steps independent of the size of its numbers is still open.

Applications

Where it is used

  • Medicine

    Kidney exchange

    A patient whose willing donor is incompatible can swap donors with another such pair. Finding the most transplants among hundreds of pairs is a matching problem. National kidney exchange programmes now run optimisation algorithms to choose the swaps.

    › Sources (1)
    • Roth, A. E., Sönmez, T. & Ünver, M. U. (2004). Kidney exchange. Quarterly Journal of Economics 119(2): 457–488.
  • Statistical physics↗ Physics · Statistical Mechanics

    Ground states of spin glasses

    Finding the lowest-energy state of a disordered magnet in two dimensions is a matching problem and can be solved efficiently. In three dimensions it is NP-hard. The boundary between easy and hard optimisation matches a boundary in the physics.

    › Sources (1)
    • Barahona, F. (1982). On the computational complexity of Ising spin glass models. Journal of Physics A 15(10): 3241–3253.
  • Transport

    Airline schedules and delivery routes

    Airlines assign crews to flights, and delivery companies plan millions of routes a day, with linear programming and its extensions. Solvers routinely handle problems with millions of variables.

    › Sources (1)
    • Cook, W. J. (2012). In Pursuit of the Traveling Salesman. Princeton University Press.

Open problems

Where the map runs out

Open

A strongly polynomial algorithm for linear programming

Open as of 2026; one of Stephen Smale's eighteen problems for the twenty-first century.

Known polynomial algorithms for linear programming take longer when the numbers in the problem have more digits. Is there an algorithm whose number of arithmetic steps depends only on the number of variables and constraints, not on the size of the numbers?

Why it is hard

The natural candidate is the simplex method with a clever rule for choosing each step, but for every rule studied, bad examples exist. Whether a short path of steps always exists is itself open. The Hirsch conjecture, which predicted a very short one, was disproved by Francisco Santos in 2010.

What resolving it unlocks

A deeper understanding of the geometry of high-dimensional polytopes, and an algorithm for the most widely used optimisation problem whose speed depended only on the problem's shape.

› Sources (2)
  • Smale, S. (1998). Mathematical problems for the next century. Mathematical Intelligencer 20(2): 7–15.
  • Santos, F. (2012). A counterexample to the Hirsch conjecture. Annals of Mathematics 176(1): 383–412.

Further reading

  1. Cook, W. J. (2012). In Pursuit of the Traveling Salesman: Mathematics at the Limits of Computation. Princeton University Press.

    The history and mathematics of the travelling salesman problem, for general readers.

  2. Schrijver, A. (2003). Combinatorial Optimization: Polyhedra and Efficiency. Springer.

    The comprehensive reference, with detailed historical notes.

  3. Dantzig, G. B. (1963). Linear Programming and Extensions. Princeton University Press.

    The founder's own account of linear programming.