
Combinatorial optimization is a subfield of
mathematical optimization
Mathematical optimization (alternatively spelled ''optimisation'') or mathematical programming is the selection of a best element, with regard to some criterion, from some set of available alternatives. It is generally divided into two subfi ...
that consists of finding an optimal object from a
finite set
In mathematics, particularly set theory, a finite set is a set that has a finite number of elements. Informally, a finite set is a set which one could in principle count and finish counting. For example,
:\
is a finite set with five elements. ...
of objects, where the set of
feasible solutions is
discrete or can be reduced to a discrete set. Typical combinatorial optimization problems are the
travelling salesman problem ("TSP"), the
minimum spanning tree problem ("MST"), and the
knapsack problem
The knapsack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit a ...
. In many such problems, such as the ones previously mentioned,
exhaustive search is not tractable, and so specialized algorithms that quickly rule out large parts of the search space or approximation algorithms must be resorted to instead.
Combinatorial optimization is related to
operations research
Operations research ( en-GB, operational research) (U.S. Air Force Specialty Code: Operations Analysis), often shortened to the initialism OR, is a discipline that deals with the development and application of analytical methods to improve dec ...
,
algorithm theory, and
computational complexity theory
In theoretical computer science and mathematics, computational complexity theory focuses on classifying computational problems according to their resource usage, and relating these classes to each other. A computational problem is a task solved ...
. It has important applications in several fields, including
artificial intelligence
Artificial intelligence (AI) is intelligence—perceiving, synthesizing, and inferring information—demonstrated by machine
A machine is a physical system using Power (physics), power to apply Force, forces and control Motion, moveme ...
,
machine learning
Machine learning (ML) is a field of inquiry devoted to understanding and building methods that 'learn', that is, methods that leverage data to improve performance on some set of tasks. It is seen as a part of artificial intelligence.
Machine ...
,
auction theory,
software engineering
Software engineering is a systematic engineering approach to software development.
A software engineer is a person who applies the principles of software engineering to design, develop, maintain, test, and evaluate computer software. The term ' ...
,
VLSI,
applied mathematics
Applied mathematics is the application of mathematical methods by different fields such as physics, engineering, medicine, biology, finance, business, computer science, and industry. Thus, applied mathematics is a combination of mathemat ...
and
theoretical computer science
Theoretical computer science (TCS) is a subset of general computer science and mathematics that focuses on mathematical aspects of computer science such as the theory of computation, lambda calculus, and type theory.
It is difficult to circumsc ...
.
Some research literature considers
discrete optimization
Discrete optimization is a branch of optimization in applied mathematics and computer science.
Scope
As opposed to continuous optimization, some or all of the variables used in a discrete mathematical program are restricted to be discrete var ...
to consist of
integer programming together with combinatorial optimization (which in turn is composed of
optimization problem
In mathematics, computer science and economics, an optimization problem is the problem of finding the ''best'' solution from all feasible solutions.
Optimization problems can be divided into two categories, depending on whether the variables ...
s dealing with
graph structures), although all of these topics have closely intertwined research literature. It often involves determining the way to efficiently allocate resources used to find solutions to mathematical problems.
Applications
Applications of combinatorial optimization include, but are not limited to:
*
Logistics
Logistics is generally the detailed organization and implementation of a complex operation. In a general business sense, logistics manages the flow of goods between the point of origin and the point of consumption to meet the requirements of ...
*
Supply chain optimization
* Developing the best airline network of spokes and destinations
* Deciding which taxis in a fleet to route to pick up fares
* Determining the optimal way to deliver packages
* Allocating jobs to people optimally
* Designing water distribution networks
*
Earth science
Earth science or geoscience includes all fields of natural science related to the planet Earth. This is a branch of science dealing with the physical, chemical, and biological complex constitutions and synergistic linkages of Earth's four spher ...
problems (e.g.
reservoir
A reservoir (; from French ''réservoir'' ) is an enlarged lake behind a dam. Such a dam may be either artificial, built to store fresh water or it may be a natural formation.
Reservoirs can be created in a number of ways, including control ...
flow-rates)
Methods
There is a large amount of literature on
polynomial-time algorithm
In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by t ...
s for certain special classes of discrete optimization. A considerable amount of it is unified by the theory of
linear programming
Linear programming (LP), also called linear optimization, is a method to achieve the best outcome (such as maximum profit or lowest cost) in a mathematical model whose requirements are represented by linear relationships. Linear programming is ...
. Some examples of combinatorial optimization problems that are covered by this framework are
shortest path
In graph theory, the shortest path problem is the problem of finding a path between two vertices (or nodes) in a graph such that the sum of the weights of its constituent edges is minimized.
The problem of finding the shortest path between t ...
s and
shortest-path trees,
flows and circulations,
spanning tree
In the mathematical field of graph theory, a spanning tree ''T'' of an undirected graph ''G'' is a subgraph that is a tree which includes all of the vertices of ''G''. In general, a graph may have several spanning trees, but a graph that is no ...
s,
matching, and
matroid
In combinatorics, a branch of mathematics, a matroid is a structure that abstracts and generalizes the notion of linear independence in vector spaces. There are many equivalent ways to define a matroid axiomatically, the most significant being ...
problems.
For
NP-complete
In computational complexity theory, a problem is NP-complete when:
# it is a problem for which the correctness of each solution can be verified quickly (namely, in polynomial time) and a brute-force search algorithm can find a solution by tryin ...
discrete optimization problems, current research literature includes the following topics:
* polynomial-time exactly solvable special cases of the problem at hand (e.g.
fixed-parameter tractable problems)
* algorithms that perform well on "random" instances (e.g. for the
traveling salesman problem)
*
approximation algorithm
In computer science and operations research, approximation algorithms are efficient algorithms that find approximate solutions to optimization problems (in particular NP-hard problems) with provable guarantees on the distance of the returned solu ...
s that run in polynomial time and find a solution that is close to optimal
* solving real-world instances that arise in practice and do not necessarily exhibit the worst-case behavior of in NP-complete problems (e.g. real-world TSP instances with tens of thousands of nodes).
Combinatorial optimization problems can be viewed as searching for the best element of some set of discrete items; therefore, in principle, any sort of
search algorithm
In computer science, a search algorithm is an algorithm designed to solve a search problem. Search algorithms work to retrieve information stored within particular data structure, or calculated in the Feasible region, search space of a problem do ...
or
metaheuristic
In computer science and mathematical optimization, a metaheuristic is a higher-level procedure or heuristic designed to find, generate, or select a heuristic (partial search algorithm) that may provide a sufficiently good solution to an optimizatio ...
can be used to solve them. Perhaps the most universally applicable approaches are
branch-and-bound (an exact algorithm which can be stopped at any point in time to serve as heuristic),
branch-and-cut (uses linear optimisation to generate bounds),
dynamic programming (a recursive solution construction with limited search window) and
tabu search (a greedy-type swapping algorithm). However, generic search algorithms are not guaranteed to find an optimal solution first, nor are they guaranteed to run quickly (in polynomial time). Since some discrete optimization problems are
NP-complete
In computational complexity theory, a problem is NP-complete when:
# it is a problem for which the correctness of each solution can be verified quickly (namely, in polynomial time) and a brute-force search algorithm can find a solution by tryin ...
, such as the traveling salesman (decision) problem,
this is expected unless
P=NP.
Formal definition
Formally, a combinatorial optimization problem
is a quadruple
, where
*
is a
set of instances;
* given an instance
,
is the finite set of feasible solutions;
* given an instance
and a feasible solution
of
,
denotes the
measure of
, which is usually a
positive real.
*
is the goal function, and is either
or
.
The goal is then to find for some instance
an ''optimal solution'', that is, a feasible solution
with
:
For each combinatorial optimization problem, there is a corresponding
decision problem that asks whether there is a feasible solution for some particular measure
. For example, if there is a
graph
Graph may refer to:
Mathematics
*Graph (discrete mathematics), a structure made of vertices and edges
**Graph theory, the study of such graphs and their properties
*Graph (topology), a topological space resembling a graph in the sense of discre ...
which contains vertices
and
, an optimization problem might be "find a path from
to
that uses the fewest edges". This problem might have an answer of, say, 4. A corresponding decision problem would be "is there a path from
to
that uses 10 or fewer edges?" This problem can be answered with a simple 'yes' or 'no'.
The field of
approximation algorithm
In computer science and operations research, approximation algorithms are efficient algorithms that find approximate solutions to optimization problems (in particular NP-hard problems) with provable guarantees on the distance of the returned solu ...
s deals with algorithms to find near-optimal solutions to hard problems. The usual decision version is then an inadequate definition of the problem since it only specifies acceptable solutions. Even though we could introduce suitable decision problems, the problem is then more naturally characterized as an optimization problem.
NP optimization problem
An ''NP-optimization problem'' (NPO) is a combinatorial optimization problem with the following additional conditions.
Note that the below referred
polynomial
In mathematics, a polynomial is an expression consisting of indeterminates (also called variables) and coefficients, that involves only the operations of addition, subtraction, multiplication, and positive-integer powers of variables. An ex ...
s are functions of the size of the respective functions' inputs, not the size of some implicit set of input instances.
* the size of every feasible solution
is polynomially
bounded
Boundedness or bounded may refer to:
Economics
* Bounded rationality, the idea that human rationality in decision-making is bounded by the available information, the cognitive limitations, and the time available to make the decision
* Bounded e ...
in the size of the given instance
,
* the languages
and
can be
recognized in
polynomial time
In computer science, the time complexity is the computational complexity that describes the amount of computer time it takes to run an algorithm. Time complexity is commonly estimated by counting the number of elementary operations performed by ...
, and
*
is
polynomial-time computable.
This implies that the corresponding decision problem is in
NP. In computer science, interesting optimization problems usually have the above properties and are therefore NPO problems. A problem is additionally called a P-optimization (PO) problem, if there exists an algorithm which finds optimal solutions in polynomial time. Often, when dealing with the class NPO, one is interested in optimization problems for which the decision versions are
NP-complete
In computational complexity theory, a problem is NP-complete when:
# it is a problem for which the correctness of each solution can be verified quickly (namely, in polynomial time) and a brute-force search algorithm can find a solution by tryin ...
. Note that hardness relations are always with respect to some reduction. Due to the connection between approximation algorithms and computational optimization problems, reductions which preserve approximation in some respect are for this subject preferred than the usual
Turing and
Karp reductions. An example of such a reduction would be
L-reduction. For this reason, optimization problems with NP-complete decision versions are not necessarily called NPO-complete.
NPO is divided into the following subclasses according to their approximability:
* ''NPO(I)'': Equals
FPTAS A fully polynomial-time approximation scheme (FPTAS) is an algorithm for finding approximate solutions to function problems, especially optimization problems. An FPTAS takes as input an instance of the problem and a parameter ε > 0. I ...
. Contains the
Knapsack problem
The knapsack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit a ...
.
* ''NPO(II)'': Equals
PTAS. Contains the
Makespan scheduling problem.
* ''NPO(III)'': :The class of NPO problems that have polynomial-time algorithms which computes solutions with a cost at most ''c'' times the optimal cost (for minimization problems) or a cost at least
of the optimal cost (for maximization problems). In
Hromkovič's book, excluded from this class are all NPO(II)-problems save if P=NP. Without the exclusion, equals APX. Contains
MAX-SAT and metric
TSP
TSP or tsp may refer to:
Medicine
* Tropical spastic paraparesis, weakness due to T-lymphotropic virus infection
Science and technology
* Team software process, for producing software
* Telecommunications service provider
* .tsp, for tel ...
.
* ''NPO(IV)'': :The class of NPO problems with polynomial-time algorithms approximating the optimal solution by a ratio that is polynomial in a logarithm of the size of the input. In Hromkovič's book, all NPO(III)-problems are excluded from this class unless P=NP. Contains the
set cover problem.
* ''NPO(V)'': :The class of NPO problems with polynomial-time algorithms approximating the optimal solution by a ratio bounded by some function on n. In Hromkovic's book, all NPO(IV)-problems are excluded from this class unless P=NP. Contains the
TSP
TSP or tsp may refer to:
Medicine
* Tropical spastic paraparesis, weakness due to T-lymphotropic virus infection
Science and technology
* Team software process, for producing software
* Telecommunications service provider
* .tsp, for tel ...
and
clique problem.
An NPO problem is called ''polynomially bounded'' (PB) if, for every instance
and for every solution
, the measure
is bounded by a polynomial function of the size of
. The class NPOPB is the class of NPO problems that are polynomially-bounded.
Specific problems
*
Assignment problem
The assignment problem is a fundamental combinatorial optimization problem. In its most general form, the problem is as follows:
:The problem instance has a number of ''agents'' and a number of ''tasks''. Any agent can be assigned to perform any t ...
*
Closure problem
*
Constraint satisfaction problem
*
Cutting stock problem
*
Dominating set problem
*
Integer programming
*
Knapsack problem
The knapsack problem is a problem in combinatorial optimization: Given a set of items, each with a weight and a value, determine the number of each item to include in a collection so that the total weight is less than or equal to a given limit a ...
*
Minimum relevant variables in linear system
*
Minimum spanning tree
*
Nurse scheduling problem
*
Set cover problem
*
Job shop scheduling
*
Traveling salesman problem
*
Vehicle rescheduling problem
*
Vehicle routing problem
*
Weapon target assignment problem
*
Bin packing problem
*
Talent Scheduling
See also
*
Constraint composite graph The constraint composite graph is a node-weighted undirected graph associated with a given combinatorial optimization problem posed as a weighted constraint satisfaction problem. Developed and introduced by Satish Kumar Thittamaranahalli (T. K. Sati ...
Notes
References
*
*
* ''(Information on the largest TSP instances solved to date.)''
* ''(This is a continuously updated catalog of approximability results for NP optimization problems.)''
*
*
*
*
*
*
*
*
*
*
*
External links
Journal of Combinatorial OptimizationThe Aussois Combinatorial Optimization WorkshopJava Combinatorial Optimization Platform(open source code)
Complexity classes for optimization problems / Stefan Kugele
{{DEFAULTSORT:Combinatorial Optimization
Computational complexity theory
Theoretical computer science
eo:Diskreta optimumigo