# 组合优化

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 that 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, applied mathematics and theoretical computer science.

Combinatorial optimization is a subfield of mathematical optimization that 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, applied mathematics and theoretical computer science.

Combinatorial optimization is a topic that consists of finding an optimal object from a finite set of objects.[1] In many such problems, exhaustive search is not tractable. It operates on the domain of those optimization problems in which the set of feasible solutions is discrete or can be reduced to discrete, and in which the goal is to find the best solution. Typical problems are the travelling salesman problem ("TSP"), the minimum spanning tree problem ("MST"), and the knapsack problem.

Combinatorial optimization is a topic that consists of finding an optimal object from a finite set of objects. In many such problems, exhaustive search is not tractable. It operates on the domain of those optimization problems in which the set of feasible solutions is discrete or can be reduced to discrete, and in which the goal is to find the best solution. Typical problems are the travelling salesman problem ("TSP"), the minimum spanning tree problem ("MST"), and the knapsack problem.

-- Flipped讨论） 第一句话读不通顺

Some research literature[3] considers discrete optimization to consist of integer programming together with combinatorial optimization (which in turn is composed of optimization problems 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.

Some research literature considers discrete optimization to consist of integer programming together with combinatorial optimization (which in turn is composed of optimization problems 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 for combinatorial optimization include, but are not limited to:

Applications for combinatorial optimization include, but are not limited to:

• 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

• Working out the best allocation of jobs to people

## Methods 方法

There is a large amount of literature on polynomial-time algorithms for certain special classes of discrete optimization, a considerable amount of it unified by the theory of linear programming. Some examples of combinatorial optimization problems that fall into this framework are shortest paths and shortest-path trees, flows and circulations, spanning trees, matching, and matroid problems.

There is a large amount of literature on polynomial-time algorithms for certain special classes of discrete optimization, a considerable amount of it unified by the theory of linear programming. Some examples of combinatorial optimization problems that fall into 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:

For NP-complete discrete optimization problems, current research literature includes the following topics:

• algorithms that perform well on "random" instances (e.g. for TSP)

• solving real-world instances that arise in practice and do not necessarily exhibit the worst-case behavior inherent in NP-complete problems (e.g. TSP instances with tens of thousands of nodes[9]).

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. 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, such as the traveling salesman problem模板:Cn, this is expected unless P=NP.

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. 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, such as the traveling salesman problem, this is expected unless P=NP.

## Formal definition 形式化定义

Formally, a combinatorial optimization problem $\displaystyle{ A }$ is a quadruple[citation needed] $\displaystyle{ (I, f, m, g) }$, where

Formally, a combinatorial optimization problem $\displaystyle{ A }$ is a quadruple $\displaystyle{ (I, f, m, g) }$, where

• $\displaystyle{ I }$ is a set of instances;

$\displaystyle{ I }$是实例中的数学集合；

• given an instance $\displaystyle{ x \in I }$, $\displaystyle{ f(x) }$ is the finite set of feasible solutions;

• given an instance $\displaystyle{ x }$ and a feasible solution $\displaystyle{ y }$ of $\displaystyle{ x }$, $\displaystyle{ m(x, y) }$ denotes the measure of $\displaystyle{ y }$, which is usually a positive real.

• $\displaystyle{ g }$ is the goal function, and is either $\displaystyle{ \min }$ or $\displaystyle{ \max }$.

$\displaystyle{ g }$是目标函数，可以是最小值也可以是最大值。

The goal is then to find for some instance $\displaystyle{ x }$ an optimal solution, that is, a feasible solution $\displaystyle{ y }$

The goal is then to find for some instance $\displaystyle{ x }$ an optimal solution, that is, a feasible solution $\displaystyle{ y }$

$\displaystyle{ \lt math\gt m(x, y) = g \{ m(x, y') \mid y' \in f(x) \} . m(x, y) = g \{ m(x, y') \mid y' \in f(x) \} . M (x，y) = g { m (x，y’) mid y’ in f (x)}。 }$

[/itex]

For each combinatorial optimization problem, there is a corresponding decision problem that asks whether there is a feasible solution for some particular measure $\displaystyle{ m_0 }$. For example, if there is a graph $\displaystyle{ G }$ which contains vertices $\displaystyle{ u }$ and $\displaystyle{ v }$, an optimization problem might be "find a path from $\displaystyle{ u }$ to $\displaystyle{ v }$ 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 $\displaystyle{ u }$ to $\displaystyle{ v }$ that uses 10 or fewer edges?" This problem can be answered with a simple 'yes' or 'no'.

For each combinatorial optimization problem, there is a corresponding decision problem that asks whether there is a feasible solution for some particular measure $\displaystyle{ m_0 }$. For example, if there is a graph $\displaystyle{ G }$ which contains vertices $\displaystyle{ u }$ and $\displaystyle{ v }$, an optimization problem might be "find a path from $\displaystyle{ u }$ to $\displaystyle{ v }$ 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 $\displaystyle{ u }$ to $\displaystyle{ v }$ that uses 10 or fewer edges?" This problem can be answered with a simple 'yes' or 'no'.

In the field of approximation algorithms, algorithms are designed 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 more naturally characterized as an optimization problem.[11]

In the field of approximation algorithms, algorithms are designed 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 more naturally characterized as an optimization problem.

## NP optimization problem NP优化问题

An NP-optimization problem (NPO) is a combinatorial optimization problem with the following additional conditions.[12] 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.

An NP-optimization problem (NPO) is a combinatorial optimization problem with the following additional conditions. 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.

NP优化问题（NPO）是一个具有以下附加条件的组合优化问题。[12]注意，下面提到的多项式是相应函数输入大小的函数，而不是某些隐式输入实例集大小的函数。

• the size of every feasible solution $\displaystyle{ y\in f(x) }$ is polynomially bounded in the size of the given instance $\displaystyle{ x }$,

• the languages $\displaystyle{ \{\,x\,\mid\, x \in I \,\} }$ and $\displaystyle{ \{\,(x,y)\, \mid\, y \in f(x) \,\} }$ can be recognized in polynomial time, and

-- Flipped讨论） Languages 的理解

$\displaystyle{ m }$是可计算的多项式时间。

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 the L-reduction. For this reason, optimization problems with NP-complete decision versions are not necessarily called NPO-complete.[13]

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 the 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:[12]

NPO is divided into the following subclasses according to their approximability:

NPO问题根据其近似性可分为以下子类: [12]

NPO(I)：等价于完全多项式时间近似方案 Fully Polynomial-time approximation scheme | PTAS 。包含背包问题。

• NPO(II): Equals PTAS. Contains the Makespan scheduling problem.

NPO(II)：等价于多项式时间近似方案 Polynomial-time approximation scheme | PTAS 。包含分批调度问题。

• 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 $\displaystyle{ 1/c }$ 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.

NPO(III)：具有多项式时间算法的NPO问题类，其计算的解的成本最多为最优成本的“c”倍（对于最小化问题），或成本至少为最优成本的$\displaystyle{ 1/c }$（对于最大化问题）。在尤拉·赫罗姆科维奇 Juraj Hromkovic 的书中，除了P=NP之外，所有的NPO(II)问题都被排除在这个类之外。如果没有排除，则等于APX（approximable）。包含最大可满足性问题 MAX-SAT 和标准的旅行商问题| 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 Hromkovic's book, all NPO(III)-problems are excluded from this class unless P=NP. Contains the set cover problem.

NPO(IV)：多项式时间算法的一类NPO问题，以比率为输入大小的对数多项式来逼近最优解。在Hromkovic的书中，除非P=NP，否则所有的NPO(III)-问题都不属于此类。包含集合覆盖问题。

• 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 Max Clique problems.

NPO(V)：多项式时间算法的一类NPO问题，以某个函数限定的比率来逼近最优解。在Hromkovic的书中，除非P=NP，否则所有NPO(IV)-问题都不属于这类问题。包含旅行商问题| TSP和团问题|最大团问题 Clique problem|Max Clique problems

An NPO problem is called polynomially bounded (PB) if, for every instance $\displaystyle{ x }$ and for every solution $\displaystyle{ y\in f(x) }$, the measure $\displaystyle{ m(x, y) m(x, y) M (x，y) }$is bounded by a polynomial function of the size of $\displaystyle{ x }$. The class NPOPB is the class of NPO problems that are polynomially-bounded.

An NPO problem is called polynomially bounded (PB) if, for every instance $\displaystyle{ x }$ and for every solution $\displaystyle{ y\in f(x) }$, the measure is bounded by a polynomial function of the size of $\displaystyle{ x }$. The class NPOPB is the class of NPO problems that are polynomially-bounded.

## Specific problems 特定问题

An optimal traveling salesperson tour through Germany’s 15 largest cities. It is the shortest among 43,589,145,600[14] possible tours visiting each city exactly once.

An optimal traveling salesperson tour through Germany’s 15 largest cities. It is the shortest among 43,589,145,600 possible tours visiting each city exactly once.

## Notes

1. 脚本错误：没有“Footnotes”这个模块。.
2. 脚本错误：没有“Footnotes”这个模块。.
3. Discrete Optimization. Elsevier. Retrieved 2009-06-08.
4. Discrete Optimization. Elsevier. Retrieved 2009-06-08.
5. Sbihi, Abdelkader; Eglese, Richard W. (2007). "Combinatorial optimization and Green Logistics" (PDF). 4Or. 5 (2): 99–116. doi:10.1007/s10288-007-0047-3.
6. Sbihi, Abdelkader; Eglese, Richard W. (2007). "Combinatorial optimization and Green Logistics" (PDF). 4Or. 5 (2): 99–116. doi:10.1007/s10288-007-0047-3.
7. Eskandarpour, Majid; Dejax, Pierre; Miemczyk, Joe; Péton, Olivier (2015). "Sustainable supply chain network design: An optimization-oriented review" (PDF). Omega. 54: 11–32. doi:10.1016/j.omega.2015.01.006.
8. Eskandarpour, Majid; Dejax, Pierre; Miemczyk, Joe; Péton, Olivier (2015). "Sustainable supply chain network design: An optimization-oriented review" (PDF). Omega. 54: 11–32. doi:10.1016/j.omega.2015.01.006.
9. 脚本错误：没有“Footnotes”这个模块。.
10. 脚本错误：没有“Footnotes”这个模块。.
11. Ausiello, Giorgio; et al. (2003), Complexity and Approximation (Corrected ed.), Springer, ISBN 978-3-540-65431-5
12. Hromkovic, Juraj (2002), Algorithmics for Hard Problems, Texts in Theoretical Computer Science (2nd ed.), Springer, ISBN 978-3-540-44134-2
13. Kann, Viggo (1992), On the Approximability of NP-complete Optimization Problems, Royal Institute of Technology, Sweden, ISBN 91-7170-082-X
14. 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.
15. 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.

## References

• Beasley, J. E.

Http://people.brunel.ac.uk/~mastjjb/jeb/or/ip.html "Integer programming 整数规划"] Check |url= value (help) (lecture notes

}}

}}

• [[William J. Cook

1-link = William j. Cook |Cook

1 = Cook, William J.

1 = William j.]]; Cunningham

2 = Cunningham, William H.

1997年). Combinatorial Optimization

}}

}}

• Cook, William

Http://www.tsp.gatech.edu/optimal/index.html "Optimal TSP Tours"] Check |url= value (help). 滑铁卢大学. line feed character in |first= at position 8 (help); line feed character in |ref= at position 5 (help); line feed character in |url= at position 45 (help); line feed character in |year= at position 5 (help); Check date values in: |year= (help) (Information on the largest TSP instances solved to date.)

}} (Information on the largest TSP instances solved to date.)

}(迄今为止已解决的最大 TSP 实例的信息)

• Crescenzi

1 = Crescenzi, Pierluigi

1 = Pierluigi; Kann

2 = Kann, Viggo

2 = Viggo; Halldórsson, Magnús; [[Marek Karpinski

4-link = Marek Karpinski|Karpinski

4 = Karpinski, Marek

4 = Marek]]; [[Gerhard J. Woeginger

5-link = Gerhard j. Woeginger|Woeginger

5 = Woeginger, Gerhard]] (eds.). [http://www.nada.kth.se/%7Eviggo/wwwcompendium/

Http://www.nada.kth.se/%7eviggo/wwwcompendium/ "A Compendium of NP Optimization Problems 最优化问题概要"] Check |url= value (help). Unknown parameter |编辑器-first5= ignored (help); line feed character in |editor-last4= at position 10 (help); line feed character in |editor5-link= at position 21 (help); line feed character in |editor-last2= at position 5 (help); line feed character in |editor-first4= at position 6 (help); line feed character in |editor-first2= at position 6 (help); line feed character in |url= at position 47 (help); line feed character in |editor-first1= at position 10 (help); line feed character in |editor4-link= at position 16 (help); line feed character in |title= at position 41 (help); line feed character in |editor-last5= at position 10 (help); line feed character in |ref= at position 5 (help); line feed character in |editor-last1= at position 10 (help) (This is a continuously updated catalog of approximability results for NP optimization problems.)

}} (This is a continuously updated catalog of approximability results for NP optimization problems.)

}(这是一个不断更新NP 优化问题的近似结果的目录。)

• Quantum Annealing and Related Optimization Methods

679. Springer. 2005

2005 qnro. book... d 2005qnro.book.....D 2005 qnro. book... d].

}}

}}


• Das

1 = Das, Arnab

1 = Arnab; Chakrabarti

2 = Chakrabarti, Bikas K

2 = Bikas k (2008

2008年). "学术讨论会: 量子退火和模拟量子计算". Rev. Mod. Phys. 80

80 (3

1061. arXiv:[//arxiv.org/abs/0801.2193

0801.2193 0801.2193 0801.2193] Check |arxiv= value (help). Bibcode:[https://ui.adsabs.harvard.edu/abs/2008RvMP...80.1061D

2008/rvmp... 80.1061 d 2008RvMP...80.1061D 2008/rvmp... 80.1061 d] Check |bibcode= length (help). CiteSeerX [//citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.563.9990%0A%0A10.1.1.563.9990 10.1.1.563.9990 10.1.1.563.9990] Check |citeseerx= value (help). doi:10.1103/RevModPhys. 80.1061 Check |doi= value (help). Unknown parameter |日记= ignored (help); line feed character in |last2= at position 12 (help); line feed character in |issue= at position 2 (help); line feed character in |citeseerx= at position 16 (help); line feed character in |last1= at position 4 (help); line feed character in |first2= at position 8 (help); line feed character in |first1= at position 6 (help); line feed character in |arxiv= at position 10 (help); line feed character in |volume= at position 3 (help); line feed character in |page= at position 5 (help); line feed character in |bibcode= at position 20 (help); line feed character in |year= at position 5 (help); line feed character in |ref= at position 5 (help); Check date values in: |year= (help)

}}

}}


2001年). Combinatorial Optimization: Networks and Matroids

}}

}}

• [[Jon Lee (mathematician)

Https://books.google.com/books?id=3pl1b7wvynac A First Course in Combinatorial Optimization

}}

}}

1 = Papadimitriou, Christos H.

1 = Christos h.; Steiglitz 2 = Steiglitz, Kenneth 2 = Kenneth (July 1998

}}

}}

• Schrijver, Alexander

Https://books.google.com/books?id=mqgesq6djycc Combinatorial Optimization: Polyhedra and Efficiency

24. Springer. ISBN [[Special:BookSources/9783540443896

9783540443896|9783540443896

9783540443896]]

}}

}}


• Schrijver, Alexander

2005年). "On the history of combinatorial optimization (till 1960)". 离散优化手册. Elsevier. pp. 1–68.

}}

}}

• Schrijver, Alexander

Http://homepages.cwi.nl/~lex/files/dict.pdf A Course in Combinatorial Optimization

}}

}}

• [[Gerard Sierksma

1-link = Gerard Sierksma |Sierksma

1 = Sierksma, Gerard

1 = Gerard]]; Ghosh

2 = Ghosh, Diptesh

2 = Diptesh (2010

2010年). Networks in Action; Text and Computer Exercises in Network Optimization

}}

}}

• Gerard Sierksma

1 = Gerard Sierksma; Yori Zwols

2 = Yori Zwols (2015

2015年). 线性和整数优化: 理论与实践. CRC Press. ISBN 978-1-498-71016-9.

}}

}}

• pinter, C-M. (2014

Https://www.springer.com/la/book/9783642401787 组合优化问题的仿生计算进展]. 智能系统参考库. Springer. ISBN 978-3-642-40178-7

}}

}}