微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

计算网络中的唯一三角形

如何解决计算网络中的唯一三角形

使用 iGraph 我可以计算给定顶点所属的三角形数量,但我找不到一种方法来简单地计算网络中唯一三角形的数量。例如,我们创建了一个形成两个不同三角形的网络:A-B-D、B-C-E

library(igraph)

edges <- data.frame("vertex1" = c("A","A","B","C"),"vertex2"= c("B","D","C","E","E"))

example_graph <- graph_from_data_frame(edges,directed = FALSE)

如果我运行 sum(count_triangles()) 我得到的结果是 6

> sum(count_triangles(example_graph))
[1] 6

这是有道理的,因为这只是对每个顶点所属的三角形数量求和:A = 1,B = 2,C = 1,D = 1,E = 1。

但是,我们可以看到只有两个不同的三角形:

> triangles(example_graph)
+ 6/5 vertices,named,from 9c62b6b:
[1] B A D B C E

有没有办法只计算图中唯一的三角形?这样我就得到了 2 以上的答案?在我的实际数据中,我有数千个顶点和几百万条边,因此无法手动计算唯一三角形的数量。我应该简单地使用 length(triangles(example_graph))/3 吗?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。