在python中使用networkx在无向图中计算大小k的集团的最佳方法是什么?

金虫

我很惊讶networkx似乎没有内置函数来执行此操作,但是也许我错过了一些使用内置算法来执行此操作的聪明方法?

米哈尔·扬科(Michal Yanko)

您可以使用以下内置函数之一:enumerate_all_cliquesfind_cliques,以获取无向图中的所有k-clique。

这些功能之间的区别在于,enumerate_all_cliques遍历所有可能的派系,并且find_cliques仅遍历最大派系。我们最终会看到它会影响运行时间。

选项1使用enumerate_all_cliques

import networkx as nx

def enumerate_all_cliques_size_k(G, k):
    i = 0
    for clique in nx.enumerate_all_cliques(G):
        if len(clique) == k:
            i += 1
        elif len(clique) > k:
            return i
    return i

选项2使用find_cliques

import networkx as nx
import itertools

def find_cliques_size_k(G, k):
    i = 0
    for clique in nx.find_cliques(G):
        if len(clique) == k:
            i += 1
        elif len(clique) > k:
            i += len(list(itertools.combinations(clique, k)))
    return i

第一个选项更直接,但是它的运行时间是有问题的,因为即使最大派系大小小于k,我们也要遍历最大派系的所有可能子集。我们可以看到enumerate_all_cliques_size_k,在尺寸为20的完整图形上运行需要花费10倍的时间:

G = nx.complete_graph(20)


@timing
def test_enumerate_all_cliques_size_k(G,k):
    print(enumerate_all_cliques_size_k(G, k))

@timing
def test_find_cliques_size_k(G, k):
    print(find_cliques_size_k(G, k))

test_enumerate_all_cliques_size_k(G,5)
test_find_cliques_size_k(G,5)

# --------------------Result-----------------------

15504
test_enumerate_all_cliques_size_k function took 616.645 ms
15504
test_find_cliques_size_k function took 56.967 ms

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python中使用“不等于”的最佳方法是什么?

来自分类Dev

用Python在字符串中计算后搜索数字并将其替换的最佳方法是什么?

来自分类Dev

在R中使用SF-向大点数据集添加几何的最佳方法是什么?

来自分类Dev

使用rem来计算html元素的字体大小的最佳方法是什么?

来自分类Dev

在C ++中使用迭代器同时迭代不同大小的多个列表的最佳方法是什么?

来自分类Dev

在Ruby on Rails中计算TIMESTAMP值之间的差异的最佳方法是什么

来自分类Dev

重新组合结果并从查询集中计算它们的最佳方法是什么?

来自分类Dev

在TCP连接中使用绑定方法的最佳方法是什么?

来自分类Dev

使用python3计算列表中几个整数的幂的最佳方法是什么?

来自分类Dev

在休眠中使用连接的最佳方法是什么

来自分类Dev

Scrapy:在Postgres管道中使用itemloader的最佳方法是什么?

来自分类Dev

在react js中使用试剂组件的最佳方法是什么?

来自分类Dev

AngularJS中使用Ajax获取数据的最佳方法是什么

来自分类Dev

在Node.js中使用Akka的最佳方法是什么

来自分类Dev

在iOS应用中使用JSON的最佳方法是什么?

来自分类Dev

在QlikView中使用查找表的最佳方法是什么?

来自分类Dev

在Parsec中使用WriterT的最佳方法是什么?

来自分类Dev

在Webpack中使用样式表的最佳方法是什么?

来自分类Dev

在 Swift 中使用 map 和排序的最佳方法是什么

来自分类Dev

在 R 中使用正则表达式计算向量中重复字符串的最佳方法是什么?

来自分类Dev

什么是计算索引大小的最佳方法

来自分类Dev

返回计算时间的最佳方法是什么?

来自分类Dev

在python中使用re时忽略大小写的最快方法是什么?

来自分类Dev

使用networkx在python中绘制无向图

来自分类Dev

在omnet ++中计算延迟的正确方法是什么?

来自分类Dev

在MATLAB中计算总和的快速方法是什么?

来自分类Dev

在C ++中计算矩阵秩的最快方法/库是什么

来自分类Dev

从php提交数组中计算$ _POST的方法是什么

来自分类Dev

在MATLAB中计算此总和的快速方法是什么?

Related 相关文章

  1. 1

    在python中使用“不等于”的最佳方法是什么?

  2. 2

    用Python在字符串中计算后搜索数字并将其替换的最佳方法是什么?

  3. 3

    在R中使用SF-向大点数据集添加几何的最佳方法是什么?

  4. 4

    使用rem来计算html元素的字体大小的最佳方法是什么?

  5. 5

    在C ++中使用迭代器同时迭代不同大小的多个列表的最佳方法是什么?

  6. 6

    在Ruby on Rails中计算TIMESTAMP值之间的差异的最佳方法是什么

  7. 7

    重新组合结果并从查询集中计算它们的最佳方法是什么?

  8. 8

    在TCP连接中使用绑定方法的最佳方法是什么?

  9. 9

    使用python3计算列表中几个整数的幂的最佳方法是什么?

  10. 10

    在休眠中使用连接的最佳方法是什么

  11. 11

    Scrapy:在Postgres管道中使用itemloader的最佳方法是什么?

  12. 12

    在react js中使用试剂组件的最佳方法是什么?

  13. 13

    AngularJS中使用Ajax获取数据的最佳方法是什么

  14. 14

    在Node.js中使用Akka的最佳方法是什么

  15. 15

    在iOS应用中使用JSON的最佳方法是什么?

  16. 16

    在QlikView中使用查找表的最佳方法是什么?

  17. 17

    在Parsec中使用WriterT的最佳方法是什么?

  18. 18

    在Webpack中使用样式表的最佳方法是什么?

  19. 19

    在 Swift 中使用 map 和排序的最佳方法是什么

  20. 20

    在 R 中使用正则表达式计算向量中重复字符串的最佳方法是什么?

  21. 21

    什么是计算索引大小的最佳方法

  22. 22

    返回计算时间的最佳方法是什么?

  23. 23

    在python中使用re时忽略大小写的最快方法是什么?

  24. 24

    使用networkx在python中绘制无向图

  25. 25

    在omnet ++中计算延迟的正确方法是什么?

  26. 26

    在MATLAB中计算总和的快速方法是什么?

  27. 27

    在C ++中计算矩阵秩的最快方法/库是什么

  28. 28

    从php提交数组中计算$ _POST的方法是什么

  29. 29

    在MATLAB中计算此总和的快速方法是什么?

热门标签

归档