综述笔记《Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon》

这里写目录标题

  • 0. 补充概念
  • 1. Introduction
  • 2. 算法结构(原文 3.2)
    • 2.1 端到端的学习 End to end learning
    • 2.2 将学习扩充到运筹学算法 Learning to configure algorithms
    • 2.3 Machine learning alongside optimization algorithms

0. 补充概念

(1)旅行商问题(travelling salesman problem, TSP)

  • 典型旅行商问题 举例:有个快递员分别要给3家顾客送快递,他自己到达每个顾客家的路程各不相同,每个顾客之间的路程也各不相同。那么,如果想要将快递依次送达,并最终返回起点,哪一条路线所走的总距离最短?
  • 思路1-枚举法,但该方法时间复杂度为 O ( n ! ) O(n!) O(n!) ,花费的运算时间太高。
  • 思路2-相对优化的解决方法,如动态规划法、分支定界法,但时间复杂度仍然是指数级的。

(2)P 问题、NP 问题、NPC 问题

【1】漫画:什么是旅行商问题?
【2】NP问题真的很难理解
【3】P问题、NP问题、NPC问题、NP hard问题

补充概念——归约

  • 定义:可以简单理解成问题之间的转化,例如问题 Q : 3 x + 6 = 12 Q: 3x+6=12 Q:3x+6=12,可以转化为一元二次问题 Q ′ : 0 x 2 + 3 x + 6 = 12 Q': 0x^2+3x+6 = 12 Q:0x2+3x+6=12。只要有办法解决 Q ′ Q' Q 就一定能够解决 Q Q Q, 对于这种情况,我们可以说问题 Q Q Q归约于问题 Q ′ Q' Q
  • 归约可以逐级传递,比如问题A归约于问题B,问题B归约于问题C,问题C归约于问题D,那么我们可以说问题A归约于问题D
问题 描述
P 问题(多项式时间算法 Polynomial-time) 时间复杂度可以用多项式表示的算法,例如:归并排序 O ( n l o g n ) O(nlogn) O(nlogn);冒泡排序 O ( n 2 ) O(n^2) O(n2);Floyd算法 O ( n 3 ) O(n^3) O(n3)
NP 问题(Non-deterministic Polynomial-time) 无法(至少是暂时无法)在多项式时间内解决的,比如一些算法的时间复杂度是 O ( n ! ) O(n!) O(n!) ,甚至 O ( 2 n ) O(2^n) O(2n)。NP 问题具体指不确定是否存在多项式时间的求解算法,但可以在多项式时间内验证一个猜测解的正确性的问题
NP-hard 问题 如果所有NP问题可在多项式时间内转化(归约,意思是解决了后者也就相应的解决了前者)成某个问题,则该问题称为NP-hard 问题
NPC 问题 将众多 NP 问题层层规约,得到一个或多个终极问题,这些规约的终点就是 NPC 问题。旅行商问题,被科学家证明属于 NPC 问题。

(3)启发式算法

【4】用于组合优化的强化学习:学习策略解决复杂的优化问题
【5】机器学习中“启发式“一词如何理解?——三三的回答

  • 在现实生活中TSP的运用实例涉及到的是成千上万的城市数量运算,为了能在合理的时间(可能是几个小时)内解决问题,通常需要运用那些高度复杂的搜索算法和启发式算法。
  • 启发式就是能快速出结果的算法,出来的结果一般是可用的,但是不能保证全局最优,也不能保证算法的完备性。 全局最优容易理解,完备性是说能这个算法能不能找到所有的解,或者干脆判定此问题无解。

(4)补充背景知识

文章的摘要部分提到 “hand-crafted heuristics”,当时不太理解,后来无意中看到一篇文章【参考链接4,见上】很好地梳理了图神经网络在 NPC 类问题求解的发展过程,其中就提到了这个概念。概括如下:

  • 《 Learning Combinatorial Optimization Algorithms over Graphs》
    该文章方法的一大缺点就是使用了辅助函数,以帮助神经网络找到更好的解决方案。这个辅助函数是人为设计的,并且是特定于问题的,而这正是我们想要避免的。(还没有看过这篇文章,此处暂时理解为hand-crafted heuristics,待核实)

  • 《 Attention! Learn to Solve Routing Problems》
    该文章开始尝试学习如何在没有人类知识干预的情况下解决问题

  • 《 Learning Heuristics Over Large Graphs Via Deep Reinforcement Learning》
    该文章向解决现实世界那般规模大小的问题迈出了重要一步,解决真实的大型实例问题

1. Introduction

从组合优化(CO)问题角度看,机器学习可以从两个方面辅助求解:

  • 假定优化算法具有专家知识,但希望通过快速近似代替繁重计算。希望通过机器学习,在不派生新的显示算法情况下,用一种通用的方法建立这样的近似。
  • 假定优化算法不具备充足专家知识(或不令人满意),这样一来 使用机器学习的目的即为探索解空间,从最优解中学习这种专家知识,以提升算法性能。

文章框架:

  • Section 2 主要讲的是 为理解本文 读者需要掌握的组合优化、机器学习、深度学习和强化学习必要的基础知识
  • Section 3.1 说明机器学习如何通过模仿专家/借助经验以学习到最优策略;Section 3.2 说明 ML 和 CO 的相互作用机制
  • Section 5 列举现存问题和方法论要点
  • Section 6 列举该领域挑战
  • Section 7 总结

2. 算法结构(原文 3.2)

2.1 端到端的学习 End to end learning

用机器学习处理 TSP 问题并不是个新话题,早期工作从90年代开始,集中在 Hopfield 神经网络和自组织神经网络。具体可参照下方文献:

1999《 Neural Networks for Combinatorial Optimization: A Review of More Than a Decade of Research.》

具体端到端的学习框架,描述如下图:
综述笔记《Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon》_第1张图片

2015《 Pointer networks》

  • 提出 Pointer networks,用 RNN 作为 encoder 解析(parse) 输入图上的 TSP 节点,并生成每个节点的 encoding

  • 再用一个带有注意力机制的 RNN decode,生成每个节点的概率分布

  • 将计算好的 TSP 的解作为目标,训练模型

2017 《 Neural Combinatorial Optimization with Reinforcement Learning 》

  • 用了一个类似的模型,使用的是强化学习,将行程长度(the tour length) 作为 reward
  • 这样的做法能够解决监督学习(supervised / imitation learning)的局限性,例如,必须要计算出问题最优解才能训练的问题。
  • 但反过来,本文中的这种模型,在求不出精确解或者存在多个解时就显得很不明确。

2018《 Attention Solves Your TSP 》

  • 模型中引入了更多先验知识
  • 使用 GNN 替换 RNN 处理输入

2018《 Learning Permutations with Sinkhorn Policy Gradient 》
2017《 A Note on Learning Algorithms for Quadratic Assignment with Graph Neural Networks

  • 在神经网络的输出 直接近似双随机矩阵

2018《 Predicting Solution Summaries to Integer Linear Programs under Imperfect Information with Machine Learning 》

  • 训练得到一个神经网络,用来预测确定的混合整数线性规划模型(MILP)情况下,随机负荷规划问题(stochastic load planning problem)的解
  • 主要研究动机是,一些应用需要在战术/策略水平(a tactical level)上做出决策,比如在信息不完备情况下

2.2 将学习扩充到运筹学算法 Learning to configure algorithms

综述笔记《Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon》_第2张图片
这种结构通过 ML 模型,向运筹学算法提供一些有价值的信息,从而提升模型性能

2016《 ASlib: A benchmark library for algorithm selection 》

  • 在复杂优化算法中,常有一组参数保持不变(在机器学习中称为超参数),仔细选择这些参数大小能够极大改善算法性能
  • 将学习思想扩展到优化问题中,目的就是寻找这样一组合适的参数,这样的参数在类似的问题实例中能够通用

2017《 Learning When to Use a Decomposition 》

  • 在这篇文章中,一个数据点被表示为一个固定长度的向量,feature 代表实例(instance)
  • 在求解 MILP 问题时,事先估计 Dantzig-Wolf 是否有效
  • 这样分解的方法或许有效,但是决定是否使用/如何应用这种方法,还是取决于具体问题和等式

2018《 Learning a Classification of Mixed-Integer Quadratic Programming Problems》

  • 用机器学习决定线性化问题是否能够加速问题求解
  • 例如在求解二次规划问题(the quadratic programming problem),当其松弛问题是凸的,我们就可以通过B&B算法求解其松弛问题,以得到问题的下界

2.3 Machine learning alongside optimization algorithms

综述笔记《Machine Learning for Combinatorial Optimization: a Methodological Tour d'Horizon》_第3张图片
这种结构主要是一个主算法(master algorithm) 控制着高层结构,同时频繁调用 ML 模型以协助决策下级决策问题。这个结构和上一个不同之处在于,组合优化算法每次使用的都是用一个 ML 模型,只是按照算法的迭代顺序逐次调用 ML 模型,从而做出相同类型的决策。

一般的应用还是基于分支定界法的框架,每个节点上所做的分支决策都是有待学习的,

2017《 Deep Learning Assisted Heuristic Tree Search for the Container Pre-marshalling Problem 》

  • 学习 a branching policy 和 value network 以实现启发式树搜索

2018《 Strong sparse cut selection via trained neural nets for quadratic semidefinite outer-approximations 》

  • 目标是解决原始二次规划问题,学习的模型用来筛选割平面,每次筛出一个,cuts将会被添加到 LP 松弛问题中。这样一来,集成了 ML 的模型也能求得精确解。

你可能感兴趣的:(论文笔记)