论文导读

2023-11-10

图的最大独立集问题(MIS problem)是图论研究中的一个重要问题,具有广泛的应用。本文介绍了最大独立集求解相关的三篇工作,包括一篇启发式方法和两篇基于学习的方法,希望能让大家对这个问题有所了解。

问题定义

一个图G(V, E)的顶点集子集I称为图G的一个独立集(independent set)是指:I中任意两点没有边相连。图G中大小最大的独立集(拥有顶点数目最多)称为图G的最大独立集(maximum indepent set,MIS)。

与独立集类似的概念还有顶点覆盖(vertex cover):称G的顶点子集C为G的一个顶点覆盖,是指C中包含G中任意一条边的至少一个顶点。大小最小的顶点覆盖称为图G的最小顶点覆盖(minimum vertex cover,MVC)。

例如下图中,可以找到如下最大独立集和最小顶点覆盖:

图片

需要注意的是一个图的最大独立集和最小顶点覆盖可能不是唯一的。

读者可以容易地根据定义证明如下结论:I为G的(最大)独立集当且仅当V/I为G的(最小)顶点覆盖。

图片

 

Computing A Near-Maximum Independent Set in Linear Time by Reducing-Peeling

图片

原文《Computing A Near-MaximumIndependent Set in Linear Time by Reducing-Peeling》发表在SIGMOD2017。

文中针对真实图提出了求解MIS问题的框架——Reducing-Peeling框架,并结合该框架提出了四种启发式算法。这些算法可以高效地在线性时间复杂度或者近似线性时间复杂度下,近似求解真实图的独立集,实际实验中较好地验证了这一点。

论文地址:

https://dl.acm.org/doi/10.1145/3035918.3035939

问题引入

近年来,许多学者提出了不同的MIS求解方法,这些方法可以归为如下三类:

(1)精确算法。MIS问题是NP难的,暴力求解并适当剪枝的方法虽然能求出精确解,但通常需要指数时间复杂度,效率不高。

(2)近似算法。近似算法求解MIS的近似解,并给出误差上界,时间复杂度较精确算法得到很大改进。

(3)启发式算法。这是一类线性时间或近似线性时间的算法,通过贪心的方法,逐步扩大顶点集合,使其仍满足独立集的性质。缺点是得到得独立集是近似解,且没有误差估计。

作者通过观察真实图,发现有真实图的三种特征:(a)节点度数服从幂律(power-law),有很多节点度数很小。(b)一些约化规则(reduction rules)(什么是约化规则,下面有进一步介绍)可以高效去除一些度数低的节点,并保持求得独立集的最大性。(c)高度数节点比低度数节点有更小概率出现在最大独立集中。

故作者针对这三个特征,提出了reduction-peeling 框架来求解MIS问题,本质上属于启发式方法。

两种约化规则

本文作者介绍了两种约化规则,通过这两种规则,可以快速删去原图中度数较小的一些顶点以及其相邻的边,在简化问题规模的同时,还确保了原图和新图最大独立集的一致性。作者将这两种约化规则称为度数一约化(degree-one reduction)和度数二约化(degree-two reduction)。

度数一约化是指若删去原图中与度数为1的节点u相邻的节点v以及v的所有相邻边,图的最大独立集不会改变。

度数二约化相对比较复杂:记图中度数为2的节点u的两个邻居为w和v,若w和v有边相连,则可以将w和v两个顶点删除;若w和v没有边相连,则可以将u、v和w三个顶点缩为一点,求解出新图的最大独立集后,将其还原(独立集大小加1)。如下所示:其中G\S表示在图G中删去顶点集S和相邻边,G/S代表将图G中顶点集S收缩为一点,图片表示图G的最大独立集大小。

图片

Reduction-peeling 框架

这是本文四种算法的框架,主要思想为通过约化缩小问题规模,当没有约化规则适用时,则直接删去度数最大的节点(基于观察c)。最终得到一个只有孤立点的图,其中点构成了原图的一个独立集。框架的伪代码如下所示:

图片

在 reduction-peeling 框架中应用度数一约化和度数二约化,就得到了本文中的BDOne算法和BDTwo算法:

图片

图片

线性时间算法和近似线性时间算法

尽管BDTwo算法可以得到很好的结果,但其时间复杂度较高(后面有时间复杂度比较),为了简化过程,作者又提出了两种约化方法——度数二路径约化(degree-two path reduction)和支配约化(dominance reduction)(具体可参考原文),并结合reduction-peeling 框架,提出了线性时间(linear time)算法和近似线性时间(near linear time)算法,效率有较大提升,伪代码如下所示:

图片

图片

实验分析

作者分析了本文中四种算法的时间和空间复杂度,较精确算法提升很大:

图片

并与其他方法做了对比分析:

图片

可以发现近似线性算法取得的效果是最优的(求得的独立集大小近似等于最大独立集大小),作者也比较了不同算法的运行时间和内存占用(具体可参考原文),结果表明本文方法具有一定优越性。

图片

Combinatorial Optimization with Graph Convolutional Networks and Guided Tree Search

图片

原文《Combinatorial Optimization with Graph Convolutional Networks and Guided Tree Search》发表在NIPS 2018。

本文通过训练图神经网络,预测图中每个节点出现在问题结果集中的可能性,来解决一类求解NP难的图问题,例如MIS、MVC等(近似解)。

论文地址:

https://dl.acm.org/doi/10.5555/3326943.3326993

问题引入

近年来,出现了很多基于学习(learning based)的方法求解NP难的问题。通常对于NP难的问题,如果在意运行时间,我们只能寄希望于启发式方法。而基于学习的方法通常能通过大量训练数据,发现人类设计者难以察觉的模式和规则帮助问题的求解。

本文主要研究如下四种与图相关的NP难问题:最大独立集(maximum independent set,MIS)、最小顶点覆盖(minimum vertex cover,MVC)、最大团(maximal clique,MC)和可满足性(satisfiability,SAT)。这四类问题可以在多项式时间内相互转化,具体可查看原文附录(MIS和MVC的等价性在问题定义部分已经介绍)。本文主要研究图神经网络解决MIS问题。

初始方法

作者先提出了应用图神经网络解MIS问题的初始方法。

图片为待求解MIS的图,图片为顶点集合,顶点个数为N,图片为邻接矩阵,是对称阵(图为无向图)。主体思想为训练一个神经网络图片,输入为1代表该点应包含在MIS的解中,0代表该点不包含在MIS的解中。但一般这样的直接预测可能不能保证独立性,所以还需要后期处理。网络采用基础的图卷积网络

图片

其中

图片

为第l层特征(初始赋值为全1向量),

图片

图片

为第l层可学习的参数,D为图的度数对角矩阵,图片为激活函数(除最后一层使用sigmoid,其他层使用ReLU)。可以看出,由于第l层的网络参数与具体图数据无关,故此网络可以适用于任何图MIS的求解。给定训练数据集

图片

,则可采用交叉熵损失函数

图片

(第i个训练样本的损失)。

虽然我们希望网络 能直接输出1或0代表该点是否应当出现在MIS的解中,但我们并不能直接这样处理,原因有二:(1)最后一层网络的输出是取值是[0, 1]中的数,并不一定恰好等于1或0;(2)即便输出是0或1,这样的解甚至有可能不构成独立集。

为解决这个问题,作者提出了将图中各点按照网络输出值从大到小排序,取值较大代表该点更有可能出现在MIS的解中,由此逐步构造一个独立集,伪代码如下所示:

图片

改进算法

前面提到的基础算法仍有一些细节上没有解决的问题,例如,怎么区别同一图中的多个MIS解?比如下面的图示中,任意对角的两点都构成MIS,网络给出的输出可能四个点值都是相同的:

图片

为解决这个问题,作者又提出了初始方法的改进版本:

图片

同时训练M个网络,取训练样本的损失为这M个网络中最小的损失,这使得样本损失只由最适合(损失最小)的那个网络决定,可以学习到多样化的解。伪代码如下:

实验分析

作者对比了不同方法求解MIS和MVC问题的效果和时间(时间比较可查看原文),发现本文提出的方法在选定的数据集上都取得了最好的效果(注意MVC解集越小越好):

图片

图片

Learning What to Defer for Maximum Independent Sets

图片

本文通过强化学习的方式,引入马尔可夫决策过程,逐步往解集中加点解决MIS问题。

论文地址:

https://arxiv.org/abs/2006.09607

学习推迟

本文作者采用学习推迟(learning what to defer,LwD)的方法来逐步生成MIS问题的解集。其主要思想为:当前阶段可以判断是否出现在MIS解集,那我们就先做判断;若当前阶段尚且无法判断某点的归属(是否属于解集),那我们则将这个判断留到之后的阶段。这样的方式比较适合MIS这类跟图局部特征有关的问题,并且效果比一般的贪心算法要好,因为它可以同时对很多点做判断。

框架介绍

设图为图片,MIS本质是求一向量图片,并且使图片最大化。

我们便可引入马尔可夫决策过程:节点状态空间为

图片

,其中*代表当前节点状态未定;1代表该节点出现在MIS解集中;0代表不出现在MIS解集中。初始时刻每个节点的状态都是*。终止条件为每个节点都赋有非未定状态,或者运行时间超过设定的阈值。

每一步,我们给未定状态的节点一个行动(action)用来更新节点状态,

图片

,其中

图片

代表当前步骤状态未定的节点集。状态更新包含两步:update和clean up。update直接将状态未定的节点赋状态为行动值,clean up主要包含三类操作:(1)将某些只和状态0节点相连的节点的状态置为1。(2)回退两个状态为1且相邻的节点的状态为*。(3)将某些与状态1节点相连的节点的状态置为0。下面的状态图展示了如上的更新步骤:

图片

 那如何通过学习的方式得到这样的行动a呢?作者采用了图神经网络的方式:

图片

,初始化H包括每个节点的度数和相应轮次(需要做归一化)。最后一层网络采用softmax就能产生一个行动a。具体训练步骤和过程可以参考原文。

实验分析

作者同样在一些数据集上做了实验,提出的方法在某些场景下能够取得很好的效果:

图片

总结

本文通过介绍三篇与最大独立集计算有关的三篇工作,我们能对这个图计算问题有个简单直观的印象。如何设计效果更好的启发式或学习型的新算法仍需要我们继续探索。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

论文导读 的相关文章

  • nafxcwd.lib(afxmem.obj) error lnk2005

    最近写程序突然遇到个错误 nafxcwd lib afxmem obj error lnk2005 查了下msdn发现主要原因是同时使用了CRT中的new delete和MFC中的new delete重载导致的 参考 http suppor
  • RabbitMq基本概念 = >实践DirectExchange和TopicExchange交换机模式

    AMQP 和IM的区别 AMQP 高级消息队列 1 可以一对多广播 也可以一对一广播 2 生产者和消费者不知道对方是谁 IM 1 只能一对一广播 2 生产者和消费者知道对方是谁 RabbitMQ 只是消息代理 我们不生产消息 我们只是消息的

随机推荐

  • 怎样成为一名优秀的程序员?

    新加坡国立大学计算机系有两门课 CS 1101 1102 几乎所有的大学计算机系课程都有两门类似的课程 但几乎所有的学生都误解了这两门课 以为前者是教C 后者是教java 但实际上前者是 Programming Methodology 后者
  • Java学习笔记——34多线程01

    多线程 实现多线程 进程和线程的区别 多线程的实现方式 方式一 继承Thread类 设置线程名称 线程调度 线程控制 线程生命周期 方式二 实现Runnable接口 实现多线程 进程和线程的区别 进程 是正在运行的程序 是系统进行资源分配和
  • Netstat命令详解(Windows)

    Netstat 用于显示与IP TCP UDP 和ICMP 协议相关的统计数据 一般用于检验本机各端口的网络连接情况 如果你的计算机有时候接收到的数据报导致出错数据或故障 你不必感到奇怪 TCP IP 可以容许这些类型的错误 并能够自动重发
  • Kotlin/Java之常用“集合型”数据类型

    先说说数组 Array 和 ArrayList lt 数组 Array gt 整型数组初始化 val point intArrayOf 0 0 实为IntArray 对应Java类型 int 其他还有 charArrayOf byteArr
  • 两数求和

    给定一个整数数组 nums 和一个目标值 target 请你在该数组中找出和为目标值的那 两个 整数 并返回他们的数组下标 你可以假设每种输入只会对应一个答案 但是 你不能重复利用这个数组中同样的元素 示例 给定 nums 2 7 11 1
  • 服务器租用机房机房的类型应该如何选择

    服务器租用机房机房的类型应该如何选择 1 单电信机房 单电信服务器机房业务模式比较固定 访问量也不是很大 适合新闻类网站或政务类网站 如果网站的PV流量持续增加 建议后期采用租赁CDN的方式解决非电信用户访问网站速度过慢的问题 2 双线机房
  • QKL123区块链排行榜(2019年04月)

    QKL123区块链排行榜包括区块链项目 区块链交易平台 区块链媒体 区块链公众号 区块链矿机 区块链矿池 EOS Dapp ETH Dapp 区块链钱包九大榜单 目前 区块链项目榜单选取的客观指标包括流通市值 GitHub提交数 区块链交易
  • 嵌入式stm32基础项目开发:心率检测仪的设计与实现

    嵌入式stm32基础项目开发 心率检测仪的设计与实现 本教程主要给大家谅解了嵌入式stm32开发 心率检测仪的设计与实现 需要的朋友们可以下载来看看 作为参考 项目描述 通过心律传感器采集我们的心律数据 然后通过串口传送到上位机中 上位机用
  • 这篇文章教大家怎么生成ai图片

    在数字化时代 人工智能技术的发展正在改变我们的生活方式 其中之一就是在艺术领域的应用 ai绘画是人工智能技术在艺术领域的一种应用 它可以自动创作出各种各样的图片 为艺术家和设计师提供了更加便捷和高效的绘画工具 ai绘画的出现 不仅可以缩短绘
  • 素数环(回溯算法)

    回溯算法 在包含问题的所有可能解的解空间树中 从根节点出发 按照深度优先遍历的策略进行搜索 对于解空间树种的某个节点 如果该节点满足问题的约束条件 则进入该子树继续进行搜索 否则将以该节点为根节点的子树进行剪枝 回溯法常常可以避免所有的可能
  • layui table.js表格一直返回数据异常

    1 排查数据是否已经正常返回 2 layui table 返回格式默认不能自定义的 返回的分页json格式需要和table js中规定的返回键一致 如下 3 经过测试 其实最重要的是code需要和上图中statusName后的resultC
  • Cisco 路由器VOIP 配置解析

    在企业网络中推广 IP 语音技术有很多优点 例如可以控制数据流量 保证语音质量 充分利用企业租用的数据线路资源 节省传统的长途话费等等 企业使用 IP 语音技术 可以将语音 数据和多媒体通信融合在一个集成的网络中 并在一个企业解决方案中 把
  • 简易版的飞机大战(C语言)

    一 只会发射激光 画质不清晰的飞机大战 游戏的总体结构根据C语言的循环制作的 本来还想说点什么但是注释里面都有 代码 include
  • ansys18安装以后打不开_ansys18.0安装过程及常见问题解决方案【图文】

    1 首先打开ansys18 0安装文件夹 一般情况下通过网络渠道下载的ansys18 0安装包会有四个文件夹 crack文件夹为授权配置文件夹 disk1 disk2 disk3文件夹为安装程序包 我们首先打开disk1文件夹 双击setu
  • 物联网LoRa系列-31:通过LoRa终端实现远程抄表的原理与系统框架(水、电、气、热等通用)

    LoRa终端远程抄表的系统架构图 抄表系统由 无线电表 线集中器 业务数据中心组成 1 无线电表 又称为LoRa终端 内嵌LoRa模块 进行数据的采集 并LoRa WAN协议实现远程数据的传输 LoRa智能终端能将传统水表 电表等读数通过电
  • 可迭代(iterable)和类数组(array-like)

    可迭代 iterable 和类数组 array like 可迭代 iterable 是实现了 Symbol iterator 方法的对象 可以应用 for of 的对象被称为 可迭代的 类数组 array like 是有索引和 length
  • Redis主从复制的原理

    更多内容 欢迎关注微信公众号 全菜工程师小辉 公众号回复关键词 领取免费学习资料 在Redis集群中 让若干个Redis服务器去复制另一个Redis服务器 我们定义被复制的服务器为主服务器 master 而对主服务器进行复制的服务器则被称为
  • pyautogui库的使用教程(超详细)

    一 前言 PyAutoGUI 让您的 Python 脚本控制鼠标和键盘以自动与其他应用程序交互 官方文档 PyAutoGUI documentation 常用函数列表 函数名 功能 基本 pyautogui size 返回包含分辨率的元组
  • 在编辑操作时,el-select多选下拉组件,选中label标签后,框中无法回显选中的label,,,

    1 问题描述 在编辑操作时 页面的el select多选下拉组件 在选择新的label标签时 change事件和监听数组对象都能确定数据已发生改变 ngmodel绑定就是最新的id集合 但就是框中不显示最新选中的label 而change事
  • 论文导读

    图的最大独立集问题 MIS problem 是图论研究中的一个重要问题 具有广泛的应用 本文介绍了最大独立集求解相关的三篇工作 包括一篇启发式方法和两篇基于学习的方法 希望能让大家对这个问题有所了解 问题定义 一个图G V E 的顶点集子集