Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Combinatorial optimization
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Subfield of mathematical optimization}} [[File:Minimum spanning tree.svg|thumb|300px|right|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 related to [[operations research]], [[algorithm|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]]<ref>{{cite journal|doi=10.1007/s10288-007-0047-3|title=Combinatorial optimization and Green Logistics|journal=4OR|volume=5|issue=2|pages=99–116|year=2007|last1=Sbihi|first1=Abdelkader|last2=Eglese|first2=Richard W.|s2cid=207070217|url=https://hal.archives-ouvertes.fr/hal-00644076/file/COGL_4or.pdf|access-date=2019-12-26|archive-date=2019-12-26|archive-url=https://web.archive.org/web/20191226162210/https://hal.archives-ouvertes.fr/hal-00644076/file/COGL_4or.pdf|url-status=live}}</ref> * [[Supply chain optimization]]<ref>{{cite journal|doi=10.1016/j.omega.2015.01.006|title=Sustainable supply chain network design: An optimization-oriented review|journal=Omega|volume=54|pages=11–32|year=2015|last1=Eskandarpour|first1=Majid|last2=Dejax|first2=Pierre|last3=Miemczyk|first3=Joe|last4=Péton|first4=Olivier|url=https://hal.archives-ouvertes.fr/hal-01154605/file/eskandarpour-et-al%20review%20R2.pdf|access-date=2019-12-26|archive-date=2019-12-26|archive-url=https://web.archive.org/web/20191226162207/https://hal.archives-ouvertes.fr/hal-01154605/file/eskandarpour-et-al%2520review%2520R2.pdf|url-status=live}}</ref> * 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)<ref>{{cite journal|doi=10.1016/j.advwatres.2018.10.002|title=Estimating fluid flow rates through fracture networks using combinatorial optimization|journal=Advances in Water Resources|year=2018|last1=Hobé|first1=Alex|last2=Vogler|first2=Daniel|last3=Seybold|first3=Martin P.|last4=Ebigbo|first4=Anozie|last5=Settgast|first5=Randolph R.|last6=Saar|first6=Martin O.|volume=122|pages=85–97|url=https://www.sciencedirect.com/science/article/abs/pii/S0309170818300666|arxiv=1801.08321|bibcode=2018AdWR..122...85H|s2cid=119476042|access-date=2020-09-16|archive-date=2020-08-21|archive-url=https://web.archive.org/web/20200821114559/https://www.sciencedirect.com/science/article/abs/pii/S0309170818300666|url-status=live}}</ref> ==Methods== There is a large amount of literature on [[polynomial-time algorithm]]s 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 path]]s and [[shortest-path tree]]s, [[flow network|flows and circulations]], [[spanning tree]]s, [[Matching (graph theory)|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#Path length for random sets of points in a square|traveling salesman problem]]) * [[approximation algorithm]]s that run in polynomial time and find a solution that is close to optimal * [[parameterized approximation algorithm]]s that run in [[Fixed-parameter tractability|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<ref>{{harvnb|Cook|2016}}.</ref>). 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|branch-and-bound]] (an exact algorithm which can be stopped at any point in time to serve as heuristic), [[Branch and cut|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,<ref>{{Cite web|title=Approximation-TSP|url=https://www.csd.uoc.gr/~hy583/papers/ch11.pdf|access-date=2022-02-17|archive-date=2022-03-01|archive-url=https://web.archive.org/web/20220301220806/https://www.csd.uoc.gr/~hy583/papers/ch11.pdf|url-status=live}}</ref> 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 <math>m_0</math>. For example, if there is a [[Graph (discrete mathematics)|graph]] <math>G</math> which contains vertices <math>u</math> and <math>v</math>, an optimization problem might be "find a path from <math>u</math> to <math>v</math> 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 <math>u</math> to <math>v</math> that uses 10 or fewer edges?" This problem can be answered with a simple 'yes' or 'no'. The field of [[approximation algorithm]]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.<ref name="Ausiello03">{{citation|last1=Ausiello|first1=Giorgio|title=Complexity and Approximation|year=2003|edition=Corrected|publisher=Springer|isbn=978-3-540-65431-5|display-authors=etal}}</ref> == NP optimization problem == {{Confusing section|date=December 2021|reason=the notation introduced in this section is not explained well and may not be standard}} 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> is polynomially [[Bounded set|bounded]] in the size of the given instance <math>x</math>, * 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 * <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> NPO is divided into the following subclasses according to their approximability:<ref name="Hromkovic02" /> * ''NPO(I)'': Equals [[FPTAS]]. Contains the [[Knapsack 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{{Which|date=December 2021}}, excluded from this class are all NPO(II)-problems save if P=NP. 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(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]]. An NPO problem is called ''polynomially bounded'' (PB) if, for every instance <math>x</math> and for every solution <math>y\in f(x)</math>, the measure <math> m(x, y) </math> is bounded by a polynomial function of the size of <math>x</math>. The class NPOPB is the class of NPO problems that are polynomially-bounded. ==Specific problems== {{Further|Category:Combinatorial optimization}} {{Dynamic list}} [[Image:TSP Deutschland 3.png|thumb|200px|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]] * [[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== *{{annotated link|Constraint composite graph}} ==Notes== {{reflist}} ==References== *{{Cite web | url = http://people.brunel.ac.uk/~mastjjb/jeb/or/ip.html | title = Integer programming | last = Beasley | first = J. E. | type = lecture notes }} *{{Cite book | first1 = William J. | last1 = Cook | author1-link = William J. Cook | first2 = William H. | last2 = Cunningham | first3 = William R. | last3 = Pulleyblank | author3-link = William R. Pulleyblank | last4 = Schrijver | first4 = Alexander | author4-link = Alexander Schrijver | title = Combinatorial Optimization | publisher = Wiley | year = 1997 | isbn = 0-471-55894-X }} *{{Cite web | title = Optimal TSP Tours | url = http://www.tsp.gatech.edu/optimal/index.html | last = Cook | first = William | publisher = [[University of Waterloo]] | year = 2016 }} ''(Information on the largest TSP instances solved to date.)'' *{{Cite web | editor-last1 = Crescenzi | editor-first1 = Pierluigi | editor-last2 = Kann | editor-first2 = Viggo | editor-last3 = Halldórsson | editor-first3 = Magnús | editor-last4 = Karpinski | editor-first4 = Marek | editor4-link = Marek Karpinski | editor-last5 = Woeginger | editor-first5 = Gerhard | editor5-link = Gerhard J. Woeginger | url = https://www.csc.kth.se/%7Eviggo/wwwcompendium/ | title = A Compendium of NP Optimization Problems }} ''(This is a continuously updated catalog of approximability results for NP optimization problems.)'' *{{Cite book | editor-last1 = Das | editor-first1 = Arnab | editor-last2 = Chakrabarti | editor-first2 = Bikas K | editor2-link = Bikas K Chakrabarti | title = Quantum Annealing and Related Optimization Methods | series = Lecture Notes in Physics | volume = 679 | publisher = Springer | year = 2005 | isbn = 978-3-540-27987-7 | bibcode = 2005qnro.book.....D }} *{{Cite journal | last1 = Das | first1 = Arnab | last2 = Chakrabarti | first2 = Bikas K | s2cid = 14255125 | title = Colloquium: Quantum annealing and analog quantum computation | journal = Rev. Mod. Phys. | volume = 80 | issue = 3 | page = 1061 | year = 2008 | doi = 10.1103/RevModPhys.80.1061 | citeseerx = 10.1.1.563.9990 | bibcode = 2008RvMP...80.1061D | arxiv = 0801.2193 }} *{{Cite book | last = Lawler | first = Eugene | author-link = Eugene Lawler | title = Combinatorial Optimization: Networks and Matroids | year = 2001 | publisher = Dover | isbn = 0-486-41453-1 <!-- pages = 117–120 --> }} *{{Cite book | first = Jon | last = Lee | author-link = Jon Lee (mathematician) | url = https://books.google.com/books?id=3pL1B7WVYnAC | title = A First Course in Combinatorial Optimization | publisher = Cambridge University Press | year = 2004 | isbn = 0-521-01012-8 }} *{{Cite book | last1 = Papadimitriou | first1 = Christos H. | last2 = Steiglitz | first2 = Kenneth | author2-link = Kenneth Steiglitz | title = Combinatorial Optimization : Algorithms and Complexity | publisher = Dover | date = July 1998 | isbn = 0-486-40258-4 }} *{{Cite book | last = Schrijver | first = Alexander | title = Combinatorial Optimization: Polyhedra and Efficiency | publisher = Springer | series = Algorithms and Combinatorics | volume = 24 | year = 2003 | url = https://books.google.com/books?id=mqGeSQ6dJycC | isbn = 9783540443896 }} *{{Cite book | last = Schrijver | first = Alexander | chapter = On the history of combinatorial optimization (till 1960) | title = Handbook of Discrete Optimization | editor-last1 = Aardal | editor-first1 = K.|editor1-link=Karen Aardal | editor-last2 = Nemhauser | editor-first2 = G.L. | editor-last3 = Weismantel | editor-first3 = R. | publisher = Elsevier | year = 2005 | pages = 1–68 | chapter-url = http://homepages.cwi.nl/~lex/files/histco.pdf }} *{{Cite book | last = Schrijver | first = Alexander | title = A Course in Combinatorial Optimization | url = http://homepages.cwi.nl/~lex/files/dict.pdf | date = February 1, 2006 }} *{{Cite book | last1 = Sierksma | first1 = Gerard | last2 = Ghosh | first2 = Diptesh | author1-link = Gerard Sierksma | title = Networks in Action; Text and Computer Exercises in Network Optimization | publisher = Springer | date = 2010 | isbn = 978-1-4419-5512-8 }} *{{Cite book | author1=Gerard Sierksma | author2=Yori Zwols | title=Linear and Integer Optimization: Theory and Practice | year=2015 | publisher=CRC Press | isbn=978-1-498-71016-9 }} *{{Cite book | last = Pintea | first = C-M. | title = Advances in Bio-inspired Computing for Combinatorial Optimization Problem | url = https://www.springer.com/la/book/9783642401787 | publisher = Springer | year = 2014 | isbn = 978-3-642-40178-7 | series = Intelligent Systems Reference Library }} ==External links== {{Commons category}} *[https://www.springer.com/mathematics/journal/10878 Journal of Combinatorial Optimization] *[http://www.iasi.cnr.it/aussois The Aussois Combinatorial Optimization Workshop] *[http://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://web.archive.org/web/20170830023312/https://www7.in.tum.de/~kugele/files/jobsis.pdf Complexity classes for optimization problems / Stefan Kugele] {{Optimization algorithms}} {{Authority control}} {{DEFAULTSORT:Combinatorial Optimization}} [[Category:Combinatorial optimization| ]] [[Category:Computational complexity theory]] [[Category:Theoretical computer science]] [[eo:Diskreta optimumigo]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Annotated link
(
edit
)
Template:Authority control
(
edit
)
Template:Citation
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite web
(
edit
)
Template:Commons category
(
edit
)
Template:Confusing section
(
edit
)
Template:Dynamic list
(
edit
)
Template:Further
(
edit
)
Template:Harvnb
(
edit
)
Template:Optimization algorithms
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Which
(
edit
)