Graph Edge Partitioning via Neighborhood Heuristic

news/2024/12/21 20:34:21/文章来源:https://www.cnblogs.com/MTandHJ/p/18402831

目录
  • 符号说明
  • Vertex vs Edge partitioning
  • NE (Neighbor Expansion)
  • 代码

Zhang C., Wei F., Liu Q., Tang Z. G. and Li Z. Graph edge partitioning via neighborhood heuristic. KDD, 2017.

本文提出了一种图分割方法 (edge partitioning), 保证只有少量的重复结点.

符号说明

  • \(G = (V, E)\), 无向无权图;
  • \(n = |V|, m = |E|\);
  • \((x, y) \in E\), edge;
  • \(N(x) = \{y| (x, y) \in E\}\), 节点 \(x\) 的一阶邻接矩阵;
  • \([p] := \{1, 2, \ldots, p\}\)

Vertex vs Edge partitioning

  • 图分割里面有两种分割类型:

    1. vertex partitioning: 旨在将点集分割成不相交的子集, 代价是会有部分边被舍弃;
    2. edge partitioning: 旨在将边集分割成不相交的子集, 代价是会有重复的节点 (即两个子图可能会有相同的节点).
  • 本文主要关注的是第二个问题, 严格来说:

    1. 假设我们将 \(G\) 分成 \(p\) 个子图 \(G_i = (V_i, E_i), i \in [p]\), 满足:

      \[E_i \subset E, \quad \bigcup_{i \in [p]} E_i = E, \quad E_i \cap E_j = \empty. \]

    2. 定义节点重复率 (replication factor) 为

      \[\text{RF}(E_1, \ldots, E_p) := \frac{1}{|V|} \sum_{i \in [p]} |V(E_i)|. \]

    3. 则我们称该 \(p\) edge partitioning 是最优的, 如果满足
      1. \(\alpha\)-balanced:

        \[\max_{i \in [p]} \{|E_i|\} \le \lceil \alpha |E| / p \rceil. \]

      2. minimal replication factor: 在所有 \(\alpha\)-balanced 的分割中, 节点重复率最低.

NE (Neighbor Expansion)

  • 上述的问题是 NP-hard 的, 作者给出一个启发式的算法.

    • 初始化:

      \[C, S, E_k \leftarrow \empty \]

    • 挑选核心节点:

      \[x \leftarrow \left \{ \begin{array}{ll}\text{selected randomly in } V \setminus C & S \setminus C = \empty, \\\text{argmin}_{v \in S \setminus C} |N(v) \setminus S| & S \setminus C \not= \empty. \end{array} \right . \]

    • 更新:

      1. \(C \leftarrow C \cup \{x\}\);
      2. \(S \leftarrow S \cup N(x)\);
      3. \(E_k \leftarrow \{(x, y) | x, y \in S\}\).
    • 如果 \(|E_k| > \alpha m / p\), 则停止, 否则回到第二步.

  • 这里的重点是核心节点的选择, 它旨在选择那些尽可能引起少量重复边出现的节点 (即该节点的邻居最好已经都在 \(S\) 中了), 从而保证最后的分割的节点重复是少的.

代码

[zongshenmu/GraphPartitioners]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/794016.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P11020 「LAOI-6」Radiation 题解

一道简单的构造题,其实不用想的十分复杂的说。 首先,最多发射的宇宙射线 \(sum\) 也最多为 \(sum_{max}=min(m,n)\) 也就是说,无论如何摆放石子,也只能达到这个数量。那么我们的目的便变成了如何让石子变成这一个形状。如上图,在一个 \(3\times6\) 的矩阵中,其实只要三颗…

适合科研的团队协作工具:8款实用评测

本文介绍的8款工具如下:1.Worktile;2.PingCode;3.蓝湖;4.智方科研管理系统;5.九云办公;6.和鲸ModelWhale;7.有道云协作;8.Maxhub。在科研项目中,团队协作软件的选择总是让人头疼。市面上有太多工具,不知道哪款更适合自己?每个软件都宣传自己效率高、功能全,但真正好…

精选10款团队协作工具,让合作更高效

本文将介绍10款团队协作工具:1.Worktile;2.PingCode;3.哨子办公;4.智办事;5.曲奇云盘;6.小钉贴;7.协同易;8.BoardMix;9.CORNERSTONE;10.ORGOS。团队合作中总是有很多信息来回传递,却没有一个统一的平台来管理任务和沟通,这不仅让工作效率大打折扣,还可能让团队成员…

1-2Java基本数据类型

Java基本数据类型 变量就是申请内存来存储值。也就是说,当创建变量的时候,需要在内存中申请空间。 内存管理系统根据变量的类型为变量分配存储空间,分配的空间只能用来储存该类型数据。因此,通过定义不同类型的变量,可以在内存中储存整数、小数或者字符。 Java 的两大数据…

知识库软件对比:10款适合团队的工具揭秘

本文将介绍10款知识库软件:1.PingCode; 2. Worktile; 3. 亿方云; 4. 掘金文档; 5. 问道文档; 6. 海豚智库; 7. 麦客; 8. Helpjuice; 9. Confluence; 10. FlowUs。如今,团队协作越来越依赖于高效的工具,而一个简单、易用的知识库软件能极大提升工作效率。面对市场上…

南方科技大学院士分析

网页信息获取分析报告 1.Python获取页面信息 这里需要爬取的是南方科技大学研究生院-师资概况页面,使用的是requests和BeautifulSoup方法 以下是要爬取的页面import requests from bs4 import BeautifulSoup import pandas as pd import matplotlib.pyplot as plt import seab…

VNC简明教程

VNC的安装方法 VNC是一款局域网远程工具。 安装包: https://cry33.lanzoum.com/b00oc0kmj密码:3zum 激活码: FBV9V-7Z3V9-MED3U-47SEU-85T3A 安装过程很简单,一直点下一步就行。激活有两种方式,第一种是邮箱激活,第二种是激活码激活。我们选择第二种激活方式,直接将上面的…

图解六种防火墙规则

图解六种防火墙规则

【个人向】常用日文网站汇总

个人常用日文网站電子辞書 weblio weblio 「収録辞書500以上。国内最大級のオンライン辞書」 官方、权威的电子词典,日本最大的在线辞书。国内的moji辞書上大部分的单词释义都是直接从这上面照搬的(而且还搬不完整,笑)。缺点是查不到某些网络流行语,而且网页排版很古老。以…

使用 nuxi preview 命令预览 Nuxt 应用

title: 使用 nuxi preview 命令预览 Nuxt 应用 date: 2024/9/8 updated: 2024/9/8 author: cmdragon excerpt: 摘要:本文介绍了如何使用nuxi preview命令预览Nuxt.js应用,包括安装和准备环境、启动预览服务器的步骤,以及如何指定根目录和使用自定义.env文件等高级用法。通…

如何打印CSDN博文和博客园博文

如何打印CSDN博文和博客园博文 相信大家看到一些比较不错的博文,都想打印保存一下,但是浏览器自带的打印会发生覆盖的问题并且除了博文之外的文字也会被打印,很不友好; 这里提供一个新的方法: 1、打开想要打印的博文; 2、右键鼠标,选择检查,如图所示。3、点击检查,进入…

线段树分治

适用 某一个条件在查询的一段区间中存在的问题 如:有 \(t\) 个询问,每个询问输入一条边 \(u, v\), 如果当前图中没有这条边,那么插入这条边;反之删除这条边 思路 假设有 \(q\) 组询问,并且 \(q = 8\),我们就对 \(q\) 组询问建一棵线段树,如下图:假设现在第一个条件出现在了 \(3…