Graph Edge Partitioning via Neighborhood Heuristic

news/2024/10/4 23:30:46

目录
  • 符号说明
  • 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.ryyt.cn/news/57943.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

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…

Docker数据持久化

本章将和大家分享Docker中如何实现数据的持久化。本章将和大家分享Docker中如何实现数据的持久化。废话不多说,下面我们直接进入主题。 一、什么是数据卷 我们都知道在Docker中,容器的数据读写默认发生在容器的存储层,当容器被删除时其上的数据将会丢失。如果想实现数据的持…

VNC简明教程

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