论文阅读-AAAI2021-将小型预训练模型推广到任意大型 TSP 实例(点|多)

摘要

1987年Bruce Abramson在他的博士论文中提出了基于蒙特卡洛方法的树搜索这一想法。这种算法简而言之是用蒙特卡洛方法估算每一种走法的胜率。如果描述的再具体一些,通过不断的模拟每一种走法,直至终局,该走法的模拟总次数N,与胜局次数W,即可推算出该走法的胜率为 W/N。通过随机的对游戏进行推演来逐渐建立一棵不对称的搜索树的过程。

主要思想

对于旅行推销员问题(TSP),现有的基于监督学习的算法由于泛化能力而严重不足。为了克服这一缺点,本文试图(以监督的方式)训练一种小规模模型,该模型可以基于图采样、图转换和热图合并等一系列技术,重复用于构建任意大大小的TSP实例的热图。此外,将热图输入一种强化学习方法(蒙特卡罗树搜索),以指导高质量的解决方案的搜索。基于大量实例(多达10,000个顶点)的实验结果表明,该方法明显优于现有的基于机器学习的TSP算法,并显著提高了训练模型的泛化能力。

  • 首先基于一个具有注意机制的图卷积残差网络(【Att-GCRN】),通过监督学习(SL)训练一个小规模(规模为m)的模型。经过良好的训练,给定一个具有m个顶点的TSP实例,该模型就能够在边缘上建立一个热图(heat map)。
  • 然后推广该模型来处理大型实例。反复使用【图采样】方法提取具有精确m个顶点的子图,然后将其【转换】为一个标准的TSP实例,并调用预先训练的模型来【构建子热图】。子热图【合并】在一起,得到原始图上的一个完整的热图,显著提高了训练模型的泛化能力。
  • 基于合并后的热图,使用蒙特卡罗树搜索(【MCTS】)获得高质量的解决方案。每个状态都是一个完整的行程(tour),每个动作将当前状态转换为一个新的完整行程。
  • 在【TSP10000】上进行实验(比用于评估现有ML算法的实例-TSP1000大一个数量级),表明新算法能够在合理的时间内获得最优或接近最优的解,明显优于所有现有的基于学习的算法。

作者

深圳人工智能和社会机器人研究所——Zhang-Hua Fu
香港中文大学机器人与智能制造研究所——Kai-Bin Qiu
香港中文大学数据科学学院——Hongyuan Zha

目的

  • 求解TSP等NP-Hard问题的传统方法,由许多手工制作的规则组成,严重依赖于专家知识。
  • 有人试图通过学习机制来自动化搜索过程。这种方法不太依赖于专家知识,可以很容易地推广到各种组合优化问题上。
  • 基于ML的算法大致可以分为两类
    • (1)监督学习(SL)算法,它们试图发现由预先计算的TSP解决方案监督的共同模式。
      • 不能处理不同大小的TSP实例;难以获得大量预先计算的最优(至少是高质量的)TSP解
    • (2)强化学习(RL)算法,它试图在与环境交互时学习(没有预先计算的解决方案)。
      • 可以考虑结合SL和RL

方法

准备

  • 二维对称TSP问题,点集V,边集E,所有顶点随机分布在单位平方内,欧氏距离 d i j d_{ij} dij,图G,热图P,边(i,j)属于最优解的概率 P i j P_{ij} Pij
  • 随机生成99万个具有m个顶点的TSP实例作为训练集,并使用精准求解器concorde获得解标签,监督学习预训练一个Att-GCRN模型

Pipeline

  • 离线学习,用图采样(graph sampling)提取大图的子图,利用预训练的Att-GCRN获得子图的热图(概率)
  • 再将子图的热图合并为大图的热图
  • 强化学习,利用MCTS依据热图搜索高质量的TSP解
    在这里插入图片描述

构建热图Building and merging heat maps

  • 图采样:从原始图G中提取出m规模的子图
    顶点i(边i-j) O i ( O i j ) O_i(O_{ij}) OiOij属于子图的次数(归属于几个子图),选择次数最少的作为簇中心(不被其他子图覆盖),KNN算法获得m规模的子图G’,重复直到最小的 O i O_i Oi达到下界(门槛) ω \omega ω(超参数自己设置)
  • 图转换:将采样的子图的顶点都映射到在一个随机分布的单位正方形内
    x的最小(最大) x m i n ( x m a x ) x^{min}(x^{max}) xminxmax,y的最小(最大) y m i n ( y m a x ) y^{min}(y^{max}) yminymax,转换后的图G‘’
    扩增因子 s = 1 m a x { x m a x − x m i n , △ y } s=\frac1{max\{x^{max}-x^{min},\triangle y\}} s=max{xmaxxmin,y}1,x转换 x i n e w ← s × ( x i − x m i n ) x_i^{new}\gets s\times (x_i-x^{min}) xinews×(xixmin)(y同理)
  • 建立子热图:G’'输入预训练的Att-GCRN模型,得到子热图
  • 合并子热图:求原始图的边在所有子图上的平均概率
    掩盖(mask) P i j ≤ 1 0 − 4 P_{ij}\leq10^{-4} Pij104的边,减小搜索空间, P i j ′ ′ ( l ) P''_{ij}(l) Pij′′(l)是边属于第l个子图G‘’的概率
    P i j = 1 O i j × ∑ P i j ′ ′ ( l ) P_{ij}=\frac1{O_{ij}}\times\sum P''_{ij}(l) Pij=Oij1×Pij′′(l)

强化学习优化解

  • 状态和动作空间设计
    • 基于马尔可夫决策过程(MDP),从初始状态 π = ( π 1 . . . π n ) ) π=(\pi_1...\pi_n)) π=(π1...πn))开始,迭代动作a来达到一个新的状态 π ∗ π^* π
    • 因为TSP解的本质是边的子集,所以动作就是k-opt(2<=k<=n)的变换(n条边中更换k条),随机是2k个子决策,但可以根据ai概率(最高)来限定下一个目标点bi, a = ( a 1 , b 1 , . . . . a k , b k , a k + 1 ) , a k + 1 = a 1 a=(a_1,b_1,....a_k,b_k,a_{k+1}),a_{k+1}=a_1 a=(a1,b1,....ak,bk,ak+1)ak+1=a1 ( a i , b i ) (a_i,b_i) (ai,bi)是删除边, ( b i , a i + 1 ) (b_i,a_{i+1}) (bi,ai+1)是添加边,当 P b i a i + 1 ≤ 1 0 − 4 P_{b_ia_{i+1}}\leq 10^{-4} Pbiai+1104就消除动作
      在这里插入图片描述
  • (解)状态的初始化
    随机选择一个节点,然后以概率 e x p ( P π i , j ) exp(P_{\pi_{i,j}}) exp(Pπi,j)选择下一个节点。
  • 小范围(k=2)邻居枚举
    首先通过K=2贪心搜索动作a,直到状态s不能再提升,有效地、稳健地收敛到一个局部最优的状态。
  • 大范围(k>2)邻居目标采样(k个连续的动作a)(强化学习引导)
    然后通过蒙特卡洛搜索树进行采样和搜索。(详细见下文)
    在这里插入图片描述

MCTS学习框架

蒙特卡罗树搜索大概可以被分成四步。选择(Selection),拓展(Expansion),模拟(Simulation),反向传播(Back Propagation)。在开始阶段,搜索树只有一个节点,也就是我们需要决策的局面。搜索树中的每一个节点包含了三个基本信息:代表的局面,被访问的次数,累计评分。
在这里插入图片描述

  • 初始化
    边权(概率、热图)矩阵W=P*100,访问(边被选中到子图的次数)矩阵Q,模拟的次数M

  • 模拟
    选中 a i a_i ai,因为概率最大的 b i b_i bi就确定了,决策动作就是添边操作: ( b i , a i + 1 ) (b_i,a_{i+1}) (bi,ai+1)

    b i b_i bi选择 j j j的可能性 Z b i , j = W b i , j Ω b i + α ln ⁡ ( M + 1 ) Q b i , j + 1 Z_{b_i,j}=\frac{W_{b_i,j}}{\Omega_{b_i}}+\alpha \sqrt{\frac{\ln(M+1)}{Q_{b_i,j}+1}} Zbi,j=ΩbiWbi,j+αQbi,j+1ln(M+1)
    左边表示利用(贪心化- intensification),右边表示探索(多样化-diversification),α可以调控探索和利用。
    在这里插入图片描述表示所有连接点bi的边的平均权值
    a 1 a_1 a1是随机选择的, a i + 1 a_{i+1} ai+1的选择分为两种:
    (1)如果结束循环可以提升动作,或者i>=10,就 a i + 1 = a i a_{i+1}=a_i ai+1=ai
    (2)将W>=1的点j作为候选集,以一定概率选取
    在这里插入图片描述
    迭代(获得采样池),直到动作使得状态提升产生更好的状态,或者动作的次数达到上限H(超参数)。

  • 筛选
    遇到能改进的就转换状态,否则就用之前提到的初始化方法进入随机状态。

  • 反向传播:Q,W是对称矩阵(Wij=Wji,Qij=Qji)
    反向更新M(模拟/采样次数),Q(边被删除的次数)
    W:通过采样得到的a(加、删边轨迹),如果新的状态(解)比之前更好,对每一个删边策略执行以下公式。
    在这里插入图片描述
    β是W的增长率,仅状态变好才更新W,可以增加好边的权重,以增加其被选择的机会,从而使采样过程越来越有针对性。

  • 终止条件
    直到采样池中不存在改进状态的行动,MDP重新从小范围建图,直到耗尽时间T(超参数),返回最佳状态作为TSP的解。

实验

code:https://github.com/Spider-scnu/TSP.
data_set1:https://drive.google.com/file/d/1-5WS5e7CKsJ9uY9uVXIyxgbcZZNYBrp/view.

设置

  • 设备:Att-GCRN模型(Python),MCTS(C++),与8个最新的基于学习的基线(GTX1080Ti)以及3种非学习的最优算法(Intel® Xeon® Gold5118 CPU @ 2.30GHz (with 8 cores))进行了比较
  • 数据集
    • set1:分别为TSP20、50、100(10000个实例)
    • set2:生成TSP200、500、1000(128个)TSP10000(16个)
  • 参数:6个超参数 m, ω, α, β, H and T
    • set1:m=20, ω=5, α=1, β=10, H=10n , T=10n(ms)
    • set2:m=50, ω=5, α=1, β=10, H=10n , T=40n(ms)

结果

  • 结果 of set1
    在这里插入图片描述

  • 结果 of set2
    在这里插入图片描述

  • 结果 of TSP10000(16个)
    三个基于学习的算法:内存异常
    两个精确的求解器(concorde和Gurobi):时间异常(每个实例允许五个小时)
    两个GAT模型:时间异常(每个实例允许五个小时)。
    因此排除了这7种基线算法,而只是将Att-GCRN+MCTS算法与其余3种基于学习的算法[22]进行比较。
    在这里插入图片描述

关于热图的消融研究(对照)

强调热图的重要性,为新实例的每条边分配了一个相等的概率,并单独重新运行MCTS算法来搜索解决方案。
在这里插入图片描述

总结

监督学习的小规模图模型,通过图采样、转换、融合生成heatmap,再用MCTS搜索可以扩展到大规模的TSP问题中去。

  • 可以尝试解决:
    更大的TSP实例
    非欧几里得TSP实例
    将该方法扩展到其他具有挑战性的优化问题。

备注

实验结果数据上,2021Fu[本文] 的效果和时间 优于 2020Xing[43]的最优结果,但硬件和迭代时间可能不一致。

参考文献

Fu Z H, Qiu K B, Zha H. Generalize a Small Pre-trained Model to Arbitrarily Large TSP Instances[J]. arXiv preprint arXiv:2012.10658, 2020.
https://zhuanlan.zhihu.com/p/422795068
https://zhuanlan.zhihu.com/p/333348915

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值