查看原文
其他

什么是组合优化 | 集智百科

集智俱乐部 集智俱乐部 2024-03-18


导语


组合优化的定义、应用、方法、特定问题。




目录


一、应用

二、方法

三、形式化定义

四、NP优化问题

五、特定问题

六、编者推荐

七、百科项目志愿者招募


一个加权平面图的最小生成树 Minimum Spanning Tree。找到最小生成树是一个涉及组合优化 Combinatorial Optimization的常见问题。

组合优化是数学优化方法 Mathematical Optimization的一个子领域,与运筹学 Operations Research、算法理论 Algorithm Theory和计算复杂性理论 Computational Complexity有关。它在人工智能 Artificial Intelligence、机器学习 Machine Learning、拍卖理论 Auction Theory、软件工程 Software Engineering、应用数学 Applied Mathematics和理论计算机科学 Theoretical Computer Science等领域有着重要的应用。

组合优化主要是从一个有限的对象集合中寻找一个最佳对象。在许多这样的问题中,穷举搜索 exhaustive search 是不易处理的。如果这些优化问题可行解集是离散的,或者可行解集可以化为离散的,那么可以在问题范围内进行运算,其目标是找到最优解。典型的问题是旅行商问题 Traveling Salesman Problem (“ TSP”)、最小生成树问题 (“ MST”) 和背包问题 Knapsack Problem。

一些研究文献认为离散优化 Discrete Optimization 是由整数规划 Integer Programming和组合优化组成的(反过来由解决图结构的优化问题组成),尽管所有这些主题的研究文献都紧密地交织在一起。它通常涉及如何有效地分配用于寻找数学问题解决方案的资源的决策。




应用




组合优化的应用包括但不限于:

  • 物流

  • 供应链优化

  • 发展最好辐条和目的地的航空公司网络

  • 决定车队中哪辆出租车来载客

  • 确定运送包裹的最佳方式

  • 制定最佳工作分配




方法




对于某些特殊的离散优化问题,有大量的文献是关于多项式时间算法 Polynomial-Time Algorithm的,其中相当一部分是通过线性规划 Linear Programming理论统一起来的。属于这个框架的组合优化问题的一些例子包括最短路径 Shortest paths和最短路径树 Shortest-path Tree、流和循环 Flows And Circulations、生成树、匹配和拟阵 Matching And Matroid Problems问题。


对于NP完全 NP-Complete的离散优化问题,目前的研究文献包括以下主题:

 • 多项式时间可精确解决的特殊问题(例如,固定参数可解)

 • 在“随机”实例上表现良好的算法(例如,TSP)

 • 近似算法 Approximation Algorithm在多项式时间内运行并找到一个“接近”最优值的解

 • 解决现实世界中出现的实例,这些实例不一定表现出NP完全问题固有的最坏情况(例如,具有成千上万个节点的TSP实例)


组合优化问题可以看作是在一些离散项目中搜索最佳元素,因此,原则上,任何一种搜索算法或元启发式算法都可以用来解决它们。也许最普遍适用的方法是分支定界法 Branch-and-bound (一种可以在任何时间点停止来用作启发式的精确算法)、分支切割法 Branch-and-cut (使用线性最优化生成边界)、动态规划法 Dynamic Programming (一种有限搜索窗口的递归解构法) 和禁忌搜索法 Tabu Search (一种贪婪交换算法)。然而,遗传搜索算法 Generic Search Algorithms 不能保证首先找到最优解,也不能保证快速运行 (在多项式时间内)。由于一些离散优化问题是NP完全的,例如旅行商问题,除非P=NP,否则这是可以预期的。




形式化定义




从形式上来说,一个组合优化问题A是涉及四个变量(I, f, m, g)的问题 :

 • I 是实例中的数学集合;

 • 给定I中的一个实例,f(x)是可行解的有限集合;

 • 给定一个实例x和其对应的可行解y,m(x,y)表示y的测度,其中,y通常是正实数。

 • g是目标函数,可以是最小值也可以是最大值。

然后,我们的目标是找到实例x一个最优解,也就是可行解y。
 

对于每一个组合优化问题,都有一个相应的决策问题,它查找是否存在某一特定测度的可行解。例如,如果一个图形G包含顶点u和v,那么最优化问题可能是“找到一条从u到v使用最少边的路径”。这个问题的答案可能是,比方说,一个相应的决策问题是“是否存在一条从u到v使用10条或更少边的路径? ”这个问题可以用简单的“是”或“否”来回答。

在近似算法approximation algorithms领域,算法被设计来寻找困难问题的近似最优解。因此,通常的决策版本对问题的定义不够充分,因为它只指定了可接受的解决办法。尽管我们可以引入合适的决策问题,使这个问题更自然地被描述为一个最优化问题。




NP优化问题




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

 • 每个可行解y∈f(x)的大小都是由给定实例x的大小多项式约束的,

 • 语言{x | x∈I}and{(x,y) | y∈f(x)}在多项式时间内可以可判定语言/识别,并且,

 • m是可计算的多项式时间。

这意味着相应的决策问题在NP中。在计算机科学中,有趣的优化问题通常具有上述性质,因此是NPO问题。如果存在一种在多项式时间内找到最优解的算法,则该问题又称为P-优化(PO)问题 P-optimization problem 。通常,在处理NPO类问题时,人们对决策版本为NP完全的优化问题感兴趣。请注意,硬度关系总是与某些降低有关。由于近似算法和计算优化问题之间的联系,在某些方面保持近似性的缩减比一般的图灵和卡普规约 Turing and Karp Reductions 更为可取。这种规约的一个例子就是L-规约 L-reduction 。因此,具有NP完全决策版本的优化问题不一定称为NPO完全问题。

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

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

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

 • NPO(III):具有多项式时间算法的NPO问题类,其计算的解的成本最多为最优成本的“c”倍(对于最小化问题),或成本至少为最优成本的1/c对于最大化问题。在尤拉·赫罗姆科维奇 Juraj Hromkovic 的书中,除了P=NP之外,所有的NPO(II)问题都被排除在这个类之外。如果没有排除,则等于APX(approximable)。包含最大可满足性问题 MAX-SAT 和标准的旅行商问题 | TSP。

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

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

如果对于每个实例x和f(x)中的每个解y中的每个解m(x,y),M(x,y)被一个大小为x的多项式函数所限制,则该NPO问题称为多项式有界(PB)。NPOPB 类是一类多项式有界的 NPO 问题。




特定问题





德国15个最大城市的最佳旅行推销员之旅。最优的旅行商途经德国15个最大的城市。在43,589,145,600个可能的游览每个城市的旅行团中,这是最短的一个。


  • 指派问题 Assignment Problem

  • 封闭性问题 Closure Problem

  • 约束满足问题 Constraint Satisfaction Problem

  • 切割问题 Cutting Stock Problem

  • 控制集问题 Dominating Set

  • 整数规划 Integer Programming

  • 背包问题 Knapsack Problem

  • 线性系统中的最小相关变量 Minimum Relevant Variables In Linear System

  • 最小生成树 Minimum Spanning Tree

  • 护士调度问题 Nurse Scheduling Problem

  • 集合覆盖问题 Set Cover Problem

  • 旅行商问题 Traveling Salesman Problem

  • 车辆重新调度问题 Vehicle Rescheduling Problem

  • 车辆线路优化问题 Vehicle Routing Problem

  • 武器目标分配问题 Weapon Target Assignment Problem





编者推荐




王磊,中国科学院理论物理研究所研究员,主要研究方向是深度学习、量子算法、量子多体计算。

集智视频

张量网络与组合优化
https://campus.swarma.org/course/1994
本课程是由王磊在集智凯风研读营“张量网络与机器学习专题”中的分享。在此分享中,王磊介绍了如何在张量网络中引入 Tropic 代数,直接将自旋玻璃零温的配分函数映射到张量网络缩并问题上,并利用 GPU,Yao以及 NiLang 进行有效的计算。

张量网络可以用来计算有限温度下统计物理模型的配分函数,但一般无法处理零温的基态问题,即组合优化问题。在这个报告中,中科院物理研究所的王磊研究员将介绍如何在张量网络中引入 Tropic 代数,直接将自旋玻璃零温的配分函数映射到张量网络缩并问题上,并利用 GPU,Yao以及 NiLang 进行有效的计算。

结合图卷积网络的组合优化和树搜索——图网络读书会第3期
https://campus.swarma.org/course/1086
本课程来自集智第 3 期图网络论文解读活动。本课程是对论文《Combinatorial Optimization with Graph Convolutional Networks and Guided Tree Search》的解读。

集智俱乐部图网络论文读书会第3期

GCOMB:在上亿节点网络上学习带约束的组合优化算法法|Openlab内部读书会第13期
https://campus.swarma.org/course/2200
本文提出监督学习+强化学习两阶段的框架:监督学习部分利用GCN学习出节点的作为候选解的优劣,强化学习部分在比较好的节点中选出问题的解。


18年的S2V-DQN是第一篇尝试学习如何求解图上组合优化问题的工作,它以及后续的工作主要都集中于如何提升算法的逼近程度,而没有特别考虑在大图上的效率和扩展性,这次介绍的工作GCOMB主要关注这个问题。本文的能够扩展到上亿节点的核心是,计算密集型的步骤只在比较“好”的节点上进行计算。本文提出监督学习+强化学习两阶段的框架:监督学习部分利用GCN学习出节点的作为候选解的优劣,强化学习部分在比较好的节点中选出问题的解。在实际应用中,第一阶段筛除了图上的大部分“无用”节点,使得计算密集型的第二阶段所需考虑的备选节点大大减少,从而完成加速。


图神经网络与组合优化读书会


现实世界中大量问题的解决依赖于算法的设计与求解。传统算法由人类专家设计,而随着人工智能技术不断发展,算法自动学习算法的案例日益增多,如以神经网络为代表的的人工智能算法,这是算法神经化求解的缘由。在算法神经化求解方向上,图神经网络是一个强有力的工具,能够充分利用图结构的特性,实现对高复杂度算法的高效近似求解。基于图神经网络的复杂系统优化与控制将会是大模型热潮之后新的未来方向。

集智俱乐部联合国防科技大学系统工程学院副教授范长俊、中国人民大学高瓴人工智能学院助理教授黄文炳,共同发起「图神经网络与组合优化」读书会,聚焦于图神经网络与算法神经化求解的相关领域,包括神经算法推理、组合优化问题求解、几何图神经网络,以及算法神经化求解在 AI for Science 中的应用等方面。读书会从2023年6月14日开始,每周三晚 19:00-21:00 举行,持续时间预计8周。欢迎感兴趣的朋友报名参与!


详情请见:
加速经典算法效率,突破现实技术瓶颈:图神经网络与组合优化读书会启动



推荐阅读

1. P,NP,PSPACE都是什么鬼?一文讲清计算复杂性分类
2. 让GPT-4写代码,模拟物理复杂系统中的涌现
3. 编程的终结:经典计算机领域正在迎来剧变
4. 《张江·复杂科学前沿27讲》完整上线!
5. 成为集智VIP,解锁全站课程/读书会
6. 加入集智,一起复杂!



点击“阅读原文”,报名读书会
继续滑动看下一个
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存