Combinatorial optimization is the study of how to find the best possible object from a finite—but usually enormous—set of discrete alternatives. The objects in question might be routes, schedules, assignments, partitions, or networks, and the notion of "best" is defined by a specific objective, such as minimizing cost, distance, or time, or maximizing profit, coverage, or throughput. The field is defined by the tension between the simplicity of stating its problems and the difficulty of solving them: the set of alternatives is finite, so a solution always exists in principle, but the number of alternatives grows so quickly that checking them all is almost always impossible.
A combinatorial optimization problem has three ingredients: a finite ground set, a family of feasible subsets or configurations, and an objective function that assigns a value to each feasible configuration. The task is to find a feasible configuration that minimizes or maximizes the objective. For example, in the traveling salesman problem, the ground set is the set of edges between cities, the feasible configurations are the tours that visit every city exactly once and return to the start, and the objective is the total distance traveled. In a scheduling problem, the ground set might be the set of jobs and time slots, the feasible configurations are the assignments that respect resource constraints, and the objective might be to minimize the latest completion time.
The central question is not merely whether a solution exists—it always does—but whether it can be found efficiently. Efficiency is measured in terms of how the required computation grows as the size of the input grows. A problem is considered tractable if there is an algorithm whose running time grows polynomially with the input size, and intractable if the best known algorithms require exponential time. The distinction between polynomial and exponential growth is not a matter of degree but of kind: a polynomial algorithm for a problem of size 100 might take milliseconds, while an exponential algorithm for the same size could take longer than the age of the universe.
A large part of the field's identity comes from the theory of NP-completeness, which classifies many combinatorial optimization problems as belonging to a large family of problems that are all equivalent in difficulty. If any one of them could be solved in polynomial time, then all of them could be. No one has found such an algorithm for any of them, and it is widely believed that none exists. This does not mean the problems are abandoned; rather, it shapes the entire field. The practical consequence is that for many important problems, the goal shifts from finding a guaranteed optimal solution to finding a solution that is provably close to optimal, or that is optimal for the instances that actually arise in practice, or that is good enough for the application at hand.
The oldest and most direct approach to combinatorial optimization is exact solution: find the optimal configuration, with a proof that no better one exists. The earliest systematic methods came from linear programming, a framework developed in the 1940s for optimizing a linear objective subject to linear constraints. Many combinatorial problems can be expressed as linear programs if the variables are allowed to take fractional values, but the combinatorial structure requires the variables to be integers. The natural relaxation—allowing fractional values—gives a lower bound on the optimal value, but the fractional solution may not correspond to any feasible configuration.
The breakthrough was the cutting-plane method, which starts with the fractional relaxation and then adds new linear constraints that are satisfied by all feasible integer solutions but violated by the current fractional solution. Each added constraint "cuts off" a piece of the fractional region, gradually tightening the relaxation until the optimal integer solution is found. This method was developed in the 1950s for the traveling salesman problem and later generalized into the branch-and-bound framework, which systematically partitions the set of feasible solutions into smaller subsets, computes bounds for each subset, and discards subsets whose bounds cannot contain the optimum.
The branch-and-cut method, which combines cutting planes with branch-and-bound, became the dominant exact approach for many hard problems. Its practical success is remarkable: for some problems, such as the traveling salesman problem, instances with tens of thousands of cities have been solved to proven optimality. The method works because real-world instances often have structure that the generic worst-case analysis does not capture. The theoretical guarantee remains exponential, but the practical performance is often excellent.
The exact-solution tradition also includes dynamic programming, which solves a problem by breaking it into overlapping subproblems and storing their solutions. Dynamic programming is exact and often elegant, but it is only applicable when the problem has a recursive structure that allows the state space to be kept small. For many problems, the state space grows exponentially, and dynamic programming becomes impractical.
Because exact methods fail on many large instances, a substantial part of the field is devoted to finding solutions that are not guaranteed to be optimal but are guaranteed to be close. An approximation algorithm is a polynomial-time algorithm that produces a solution whose objective value is within a known factor of the optimum. For example, for the traveling salesman problem with distances satisfying the triangle inequality, there is a simple algorithm that produces a tour at most twice the length of the optimal tour, and a more sophisticated one that achieves a factor of 1.5. For some problems, no approximation algorithm can achieve a factor better than a certain threshold unless P equals NP, and these inapproximability results are as important as the algorithms themselves.
The approximation guarantee is a worst-case guarantee: it holds for every instance, but it may be far from the actual performance on typical instances. This has led to a parallel tradition of heuristics, which are algorithms designed to find good solutions quickly but without any formal guarantee. The most influential heuristics are local search, which starts from a feasible solution and repeatedly moves to a neighboring solution that improves the objective, and its many variants, including simulated annealing, tabu search, and genetic algorithms. These methods are often called metaheuristics because they are general frameworks that can be adapted to many problems.
The relationship between approximation algorithms and heuristics is not a rivalry but a division of labor. Approximation algorithms provide theoretical guarantees and are used when the guarantee matters, such as in network design or resource allocation where a bound on the worst case is important. Heuristics are used when the instances are large and the objective is to find a good solution quickly, such as in logistics or machine scheduling. The two traditions have influenced each other: some heuristics are inspired by the structure of approximation algorithms, and some approximation algorithms have been improved by ideas from local search.
A deeper theoretical understanding of exact solution comes from the polyhedral approach, which studies the geometry of the set of feasible solutions. Each feasible configuration can be represented as a point in a high-dimensional space, and the convex hull of these points is a polytope. The objective function is a linear function, so the optimal solution is at a vertex of this polytope. The problem is that the polytope is not known explicitly; it is defined by an enormous number of inequalities, most of which are not known.
The polyhedral approach seeks to understand the structure of this polytope: which inequalities are necessary to describe it, which are redundant, and how the polytope changes when the problem is modified. This understanding leads to families of valid inequalities that can be used as cutting planes. The approach has been most successful for problems with rich combinatorial structure, such as the traveling salesman problem, the matching problem, and the knapsack problem. For the matching problem, a complete description of the polytope is known, and this leads to a polynomial-time algorithm. For most other problems, only partial descriptions are known, and the search for new valid inequalities is an active area of research.
The polyhedral approach is not a separate school from exact solution; it is the theoretical foundation of the cutting-plane method. The distinction is one of emphasis: the polyhedral approach focuses on the geometry of the feasible region, while the exact-solution tradition focuses on the algorithmic machinery. In practice, the two are inseparable.
The theory of NP-completeness provides a classification of problems, but it does not provide algorithms. The complexity-theoretic lens is the perspective that asks not only whether a problem is hard, but how hard it is, and what kinds of approximation are possible. This has led to a rich theory of approximation algorithms and inapproximability. The central result is the PCP theorem, which shows that for many problems, even approximating the optimum within a certain factor is NP-hard. This theorem, proved in the 1990s, is one of the deepest results in the field and has transformed the study of approximation algorithms.
The complexity-theoretic lens also includes the study of parameterized complexity, which asks whether a problem can be solved in time that is polynomial in the input size but exponential only in a small parameter, such as the size of the solution. For example, the problem of finding a vertex cover of size at most k can be solved in time that is exponential in k but polynomial in the number of vertices, which is practical when k is small. This perspective has led to a more refined understanding of what makes a problem hard and has produced algorithms that are useful in practice for problems with small parameters.
The field is not divided into pure theory and pure practice; the two are deeply intertwined. The most successful exact solvers, such as those for the traveling salesman problem, rely on a deep understanding of the polyhedral structure, on sophisticated data structures, and on heuristics that provide good initial solutions. The most successful heuristics, such as those for vehicle routing, are often guided by the structure of the problem that is revealed by the polyhedral approach. The theory of approximation algorithms provides a benchmark for what is achievable, and the practice of solving real instances reveals which theoretical results are relevant.
The relationship between the different approaches is best understood as a spectrum. At one end is the exact-solution tradition, which seeks a proof of optimality. At the other end is the heuristic tradition, which seeks a good solution quickly. In between are approximation algorithms, which provide a guarantee but not a proof of optimality, and the polyhedral approach, which provides the mathematical tools for the exact-solution tradition. The field is unified by the shared goal of finding the best configuration, and the different approaches are distinguished by the trade-off between the strength of the guarantee and the speed of the algorithm.
The current landscape of combinatorial optimization is shaped by several developments. The first is the increasing scale of problems that can be solved exactly. The combination of faster hardware, better data structures, and deeper polyhedral understanding has pushed the size of solvable instances from hundreds to tens of thousands of variables. The second is the rise of large-scale optimization, where the problem instances come from logistics, telecommunications, and machine learning, and where the number of variables can be in the millions. These problems are often solved by a combination of decomposition methods, which break the problem into smaller pieces, and heuristics, which find good solutions for each piece.
The third development is the interaction with machine learning. Machine learning models are trained by solving optimization problems, and combinatorial optimization is used to design the structure of the models themselves. Conversely, machine learning is being used to guide the search for good solutions to combinatorial problems, for example by learning which branching decisions are likely to be effective in branch-and-bound, or by learning which heuristics are likely to work for a given instance. This is a young and active area, and its long-term impact is not yet clear.
The fourth is the increasing importance of robust and stochastic optimization, where the input is not known exactly but is subject to uncertainty. In these settings, the objective is not to optimize a single value but to optimize a worst-case or expected value, and the feasible set may be defined by constraints that must hold for all possible realizations of the uncertainty. This extends the classical framework of combinatorial optimization and requires new techniques.
The field remains defined by its central tension: the finite but enormous set of alternatives, and the search for the best one. The theory of NP-completeness explains why this tension is fundamental, and the practice of solving real problems shows that the tension can be managed. The field is not a collection of disconnected methods but a coherent body of knowledge about how to make good choices from large discrete sets, and the different approaches are different ways of managing the same fundamental difficulty.