gpt4 book ai didi

algorithm - 为什么 igraph 的 cliques() 方法比 justTheCliques 慢几个数量级?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:45:27 27 4
gpt4 key购买 nike

我想找到中等大小但密集连接的图形中的所有团,该图形具有 369 个节点和 22,724 条边。首先我简单的通过python接口(interface)调用了igraph的Graph.cliques()方法:

cliques = graph.cliques()

它仍在运行,并且在 i7-4600U 内核上消耗了超过 3 小时的净 CPU 时间。因此我开始寻找其他的可能性,我想起了几年前我已经用过的一个很好的代码。它被称为 justTheCliques,可在此处获得:https://github.com/aaronmcdaid/MaximalCliques .描述说:

runs the Bron-Kerbosch algorithm on an edge list

运行此算法会在几秒钟内在同一张图上给出结果:

justTheCliques edge-list > cliques

我喜欢 igraph,我只想知道,这背后的本质原因是什么? Igraph 使用不同的算法?结果应该一样吧?

最佳答案

看起来 igraph 正在使用类似 apriori 的算法因为它实现了 .cliques()。 1-cliques 是单个顶点。 k-cliques 是两个 (k-1)-cliques 的并集,除了两个顶点之外,它们共享所有顶点,它们之间有一条边。我想这个算法在你的图表上明显不如 Bron--Kerbosch。如果您只需要最大派系,它看起来好像 .maximal_cliques() 使用的是类似 B--K 的算法。

关于algorithm - 为什么 igraph 的 cliques() 方法比 justTheCliques 慢几个数量级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25648192/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com