首页 > 其他分享 >Graph Edge Partitioning via Neighborhood Heuristic

Graph Edge Partitioning via Neighborhood Heuristic

时间:2024-09-08 14:14:00浏览次数:4  
标签:Heuristic Partitioning via leftarrow 分割 partitioning setminus edge 节点

目录

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]

标签:Heuristic,Partitioning,via,leftarrow,分割,partitioning,setminus,edge,节点
From: https://www.cnblogs.com/MTandHJ/p/18402831

相关文章

  • 《NET CLR via C#》---第十一章(事件)
    事件成员的类型提供了以下功能:方法能等级它对事件的关注方法能注销它对事件的关注事件发生时,登记的方法将收到通知CLR事件模型以委托为基础。委托是调用回调方法的一种类型安全的方式。对象凭借回调方法接受它们订阅的通知。设计要公开事件的类型在某些情况下,当某个事件......
  • (多模态)MedM2G: Unifying Medical Multi-Modal Generation via CrossGuided Diffusion
    1.摘要医学生成模型以其高质量的样本生成能力而闻名,加速了医学应用的快速增长。然而,目前的研究主要集中在针对不同医疗任务的单独医学生成模型上,受限于医学多模态知识的不足,制约了医学的综合诊断。在本文中,我们提出MedM2G,即医学多模态生成框架,其关键创新是在统一模型内对齐......
  • (多模态)CoDi:Any-to-Any Generation via Composable Diffusion
    摘要我们提出了可组合扩散(CoDi),这是一种新的生成模型,能够从任何输入模式组合生成任何输出模式组合,如语言、图像、视频或音频。与现有的生成式人工智能系统不同,CoDi可以并行生成多种模式,其输入不限于文本或图像等模式的子集。尽管缺乏许多模式组合的训练数据集,但我们建议在输......
  • JeecgBoot积木报表AviatorScript表达式注入漏洞复现
    漏洞信息影响组件:JimuReport积木报表影响版本:v1.6.0<JimuReport≤1.7.8漏洞名称:AviatorScript表达式注入漏洞漏洞链接:积木报表软件存在AviatorScript代码注入RCE漏洞·Issue#2848漏洞描述:积木报表软件存在AviatorScript代码注入RCE漏洞使用接口/jmreport/save处在te......
  • WPF communicate across different modules via event
    //Runtimeproject,cclasslibraryusingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Linq.Expressions;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Input;namespaceRuntime{publicclassDelCmd:......
  • 《NET CLR via C#》---第十章(无参属性,对象和集合初始化器,匿名类型,元组,有参属性)
    面向对象设计和编程的重要原则之一就是数据封装,意味着类型的字段永远不应该公开,否则很容易因为不恰当使用字段而破坏对象的状态。无参属性对于类型中数据字段的封装,有以下3点好处:可能希望访问字段来执行一些“副作用”,缓存某些值或者推迟创建一些内部对象可能希望以线程安全......
  • PoLLMgraph: Unraveling Hallucinations in Large Language Models via State Transit
    本文是LLM系列文章,针对《PoLLMgraph:UnravelingHallucinationsinLargeLanguageModelsviaStateTransitionDynamics》的翻译。PoLLMgraph:通过状态转换动力学揭示大型语言模型中的幻觉摘要1引言2相关工作3PoLLMgraph4实验5结论局限性摘要尽管近......
  • 《NET CLR via C#》---第八章(类的实例构造器,结构的实例构造器,类型构造器,操作符重载方
    类的实例构造器构造器是将类型的实例初始化为良好状态的特殊方法。构造器方法在“方法定义元数据表”中始终叫做.ctor(constructor的简称)。创建引用类型的实例时,首先为实例的数据字段分配内存,然后初始化对象的附加字段(类型对象指针和同步块索引),最后调用类型的实例构造器来设置对象......
  • C# generate thumbnailimage via System.Drawing
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows;usingSystem.Windows.Data;usingSystem.Windows.Documents;usingSystem.Windows.Input;usingSystem.Windows.Media.I......
  • C# COM interact with Excel via Com Microsoft.Office.Interop.Excel,write content
    1.AddComReference,Microsoft.Office.Interop.Excel  2.usingMicrosoft.Office.Interop.Excel;usingSystem;usingSystem.IO;usingSystem.Runtime.CompilerServices;usingExcel=Microsoft.Office.Interop.Excel;usingSystem.Reflection;namespaceConsol......