Combinatorial optimization: Difference between revisions
imported>The Hurdy Gurdy Man m →References: Updated the value of the URL parameter in a reference. |
imported>David Eppstein →NP optimization problem: close it |
||
| Line 1: | Line 1: | ||
{{Short description|Subfield of mathematical optimization}} | {{Short description|Subfield of mathematical optimization}} | ||
[[File:Minimum spanning tree.svg|thumb | [[File:Minimum spanning tree.svg|thumb|A [[minimum spanning tree]] of a weighted [[planar graph]]. Finding a minimum spanning tree is a common problem involving combinatorial optimization.]] | ||
'''Combinatorial optimization''' is a subfield of [[mathematical optimization]] <!-- synonymous or subfield?: '''discrete optimization'''{{Citation needed|date=May 2012}}--> that consists of finding an optimal object from a [[finite set]] of objects,<ref>{{harvnb|Schrijver|2003|p=1}}.</ref> where the set of [[Candidate solution|feasible solutions]] is [[Discrete set|discrete]] or can be reduced to a discrete set. Typical combinatorial optimization problems are the [[travelling salesman problem]] ("TSP"), the [[minimum spanning tree|minimum spanning tree problem]] ("MST"), and the [[knapsack problem]]. 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 algorithm]]s must be resorted to instead. | '''Combinatorial optimization''' is a subfield of [[mathematical optimization]] <!-- synonymous or subfield?: '''discrete optimization'''{{Citation needed|date=May 2012}}--> that consists of finding an optimal object from a [[finite set]] of objects,<ref>{{harvnb|Schrijver|2003|p=1}}.</ref> where the set of [[Candidate solution|feasible solutions]] is [[Discrete set|discrete]] or can be reduced to a discrete set. Typical combinatorial optimization problems are the [[travelling salesman problem]] ("TSP"), the [[minimum spanning tree|minimum spanning tree problem]] ("MST"), and the [[knapsack problem]]. 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 algorithm]]s must be resorted to instead. | ||
| Line 35: | Line 35: | ||
== NP optimization problem == | == NP optimization problem == | ||
An ''NP-optimization problem'' (NPO) is a combinatorial optimization problem with the following additional conditions.<ref name="Hromkovic02">{{citation|last1=Hromkovic|first1=Juraj|title=Algorithmics for Hard Problems|year=2002|series=Texts in Theoretical Computer Science|edition=2nd|publisher=Springer|isbn=978-3-540-44134-2}}</ref> Note that the below referred [[polynomial]]s are functions of the size of the respective functions' inputs, not the size of some implicit set of input instances. | An ''NP-optimization problem'' (NPO) is a combinatorial optimization problem with the following additional conditions.<ref name="Hromkovic02">{{citation|last1=Hromkovic|first1=Juraj|title=Algorithmics for Hard Problems|year=2002|series=Texts in Theoretical Computer Science|edition=2nd|publisher=Springer|isbn=978-3-540-44134-2}}</ref> Note that the below referred [[polynomial]]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 <math>y\in f(x)</math>, where <math>f(x)</math> denotes the set of feasible solutions to instance <math>x</math>, is polynomially [[Bounded set|bounded]] in the size of the given instance <math>x</math>, | |||
* the size of every feasible solution <math>y\in f(x)</math> is polynomially [[Bounded set|bounded]] in the size of the given instance <math>x</math>, | * the languages of valid instances <math>\{\,x\,\mid\, x \in I \,\}</math> and of valid instance–solution pairs <math>\{\,(x,y)\, \mid\, y \in f(x) \,\}</math> can be [[Decidable language|recognized]] in [[polynomial time]], and | ||
* the languages <math>\{\,x\,\mid\, x \in I \,\}</math> and <math>\{\,(x,y)\, \mid\, y \in f(x) \,\}</math> can be [[Decidable language|recognized]] in [[polynomial time]], and | * The measure <math>m(x,y)</math> of a solution <math>y</math> to problem <math>x</math> is [[Polynomial time|polynomial-time computable]]. | ||
* <math>m</math> is [[Polynomial time|polynomial-time computable]]. | |||
This implies that the corresponding decision problem is in [[NP (complexity)|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-completeness|NP-complete]]. 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 reduction|Turing]] and [[Karp reduction]]s. 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.<ref name="Kann92">{{citation|last1=Kann|first1=Viggo|title=On the Approximability of NP-complete Optimization Problems|year=1992|publisher=Royal Institute of Technology, Sweden|isbn=91-7170-082-X}}</ref> | This implies that the corresponding decision problem is in [[NP (complexity)|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-completeness|NP-complete]]. 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 reduction|Turing]] and [[Karp reduction]]s. 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.<ref name="Kann92">{{citation|last1=Kann|first1=Viggo|title=On the Approximability of NP-complete Optimization Problems|year=1992|publisher=Royal Institute of Technology, Sweden|isbn=91-7170-082-X}}</ref> | ||
| Line 48: | Line 46: | ||
* ''NPO(I)'': Equals [[FPTAS]]. Contains the [[Knapsack problem]]. | * ''NPO(I)'': Equals [[FPTAS]]. Contains the [[Knapsack problem]]. | ||
* ''NPO(II)'': Equals [[Polynomial-time approximation scheme|PTAS]]. Contains the [[Makespan]] scheduling problem. | * ''NPO(II)'': Equals [[Polynomial-time approximation scheme|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 <math>1/c</math> of the optimal cost (for maximization problems). In [[Juraj Hromkovič|Hromkovič]]'s book | * ''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 <math>1/c</math> of the optimal cost (for maximization problems). In [[Juraj Hromkovič|Hromkovič]]'s book ''Algorithms for Hard Problems'', excluded from this class are all NPO(II)-problems save if P=NP.<ref name="Hromkovic02"/> Without the exclusion, equals APX. Contains [[MAX-SAT]] and metric [[Travelling salesman problem|TSP]]. | ||
* ''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(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 [[Travelling salesman problem|TSP]] and [[clique 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 [[Travelling salesman problem|TSP]] and [[clique problem]]. | ||
| Line 59: | Line 57: | ||
{{Further|Category:Combinatorial optimization}} | {{Further|Category:Combinatorial optimization}} | ||
{{Dynamic list}} | {{Dynamic list}} | ||
[[Image:TSP Deutschland 3.png|thumb | [[Image:TSP Deutschland 3.png|thumb|An optimal traveling salesman tour through [[Germany]]’s 15 largest cities. It is the shortest among the 43,589,145,600<ref>Take one city, and take all possible orders of the other 14 cities. Then divide by two because it does not matter in which direction in time they come after each other: 14!/2 = 43,589,145,600.</ref> possible tours that visit each city exactly once.]] | ||
* [[Assignment problem]] | * [[Assignment problem]] | ||
* [[Bin packing problem]] | * [[Bin packing problem]] | ||
| Line 280: | Line 278: | ||
*[https://www.springer.com/mathematics/journal/10878 Journal of Combinatorial Optimization] | *[https://www.springer.com/mathematics/journal/10878 Journal of Combinatorial Optimization] | ||
*[http://www.iasi.cnr.it/aussois The Aussois Combinatorial Optimization Workshop] | *[http://www.iasi.cnr.it/aussois The Aussois Combinatorial Optimization Workshop] | ||
*[ | *[https://sourceforge.net/projects/jcop/ Java Combinatorial Optimization Platform] (open source code) | ||
*[https://www.mjc2.com/staff-planning-complexity.htm Why is scheduling people hard?] | *[https://www.mjc2.com/staff-planning-complexity.htm Why is scheduling people hard?] | ||
*[https://web.archive.org/web/20170830023312/https://www7.in.tum.de/~kugele/files/jobsis.pdf Complexity classes for optimization problems / Stefan Kugele] | *[https://web.archive.org/web/20170830023312/https://www7.in.tum.de/~kugele/files/jobsis.pdf Complexity classes for optimization problems / Stefan Kugele] | ||
Latest revision as of 06:45, 14 October 2025
Combinatorial optimization is a subfield of mathematical optimization that consists of finding an optimal object from a finite set of objects,[1] 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. 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, algorithm theory, and computational complexity theory. It has important applications in several fields, including artificial intelligence, machine learning, auction theory, software engineering, VLSI, applied mathematics and theoretical computer science.
Applications
Basic applications of combinatorial optimization include, but are not limited to:
- Logistics[2]
- Supply chain optimization[3]
- 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 problems (e.g. reservoir flow-rates)[4]
Methods
There is a large amount of literature on polynomial-time algorithms for certain special classes of discrete optimization. A considerable amount of it is unified by the theory of linear programming. Some examples of combinatorial optimization problems that are covered by this framework are shortest paths and shortest-path trees, flows and circulations, spanning trees, matching, and matroid problems.
For NP-complete 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 algorithms that run in polynomial time and find a solution that is close to optimal
- parameterized approximation algorithms that run in FPT time and find a solution close to the optimum
- 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[5]).
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 or metaheuristic can be used to solve them. Widely applicable approaches include 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, such as the traveling salesman (decision) problem,[6] this is expected unless P=NP.
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 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 algorithms 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.[7]
NP optimization problem
An NP-optimization problem (NPO) is a combinatorial optimization problem with the following additional conditions.[8] Note that the below referred polynomials 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 , where denotes the set of feasible solutions to instance , is polynomially bounded in the size of the given instance ,
- the languages of valid instances and of valid instance–solution pairs can be recognized in polynomial time, and
- The measure of a solution to problem 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. 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.[9]
NPO is divided into the following subclasses according to their approximability:[8]
- NPO(I): Equals FPTAS. Contains the Knapsack problem.
- 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 Algorithms for Hard Problems, excluded from this class are all NPO(II)-problems save if P=NP.[8] Without the exclusion, equals APX. Contains MAX-SAT and metric TSP.
- 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 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
Script error: No such module "labelled list hatnote". Script error: No such module "Hatnote".
- Assignment problem
- Bin packing problem
- Chinese postman problem
- Closure problem
- Constraint satisfaction problem
- Cutting stock problem
- Dominating set problem
- Integer programming
- Job shop scheduling
- Knapsack problem
- Metric k-center / vertex k-center problem
- Minimum relevant variables in linear system
- Minimum spanning tree
- Nurse scheduling problem
- Ring star problem
- Set cover problem
- Talent scheduling
- Traveling salesman problem
- Vehicle rescheduling problem
- Vehicle routing problem
- Weapon target assignment problem
See also
Notes
<templatestyles src="Reflist/styles.css" />
- ↑ Script error: No such module "Footnotes"..
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "Citation/CS1".
- ↑ Script error: No such module "Footnotes"..
- ↑ Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ a b c Script error: No such module "citation/CS1".
- ↑ Script error: No such module "citation/CS1".
- ↑ Take one city, and take all possible orders of the other 14 cities. Then divide by two because it does not matter in which direction in time they come after each other: 14!/2 = 43,589,145,600.
Script error: No such module "Check for unknown parameters".
References
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1". (Information on the largest TSP instances solved to date.)
- Script error: No such module "citation/CS1". (This is a continuously updated catalog of approximability results for NP optimization problems.)
- Script error: No such module "citation/CS1".
- Script error: No such module "Citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
- Script error: No such module "citation/CS1".
External links
Script error: No such module "Side box".
- Journal of Combinatorial Optimization
- The Aussois Combinatorial Optimization Workshop
- Java Combinatorial Optimization Platform (open source code)
- Why is scheduling people hard?
- Complexity classes for optimization problems / Stefan Kugele
Template:Optimization algorithms Script error: No such module "Authority control".