计算 networkx 图中开放三角形的数量

问题描述

我有一个 networkx 图 G,例如

import networkx as nx
G=nx.erdos_renyi_graph(100,.1)

我想以一种有效的方式计算开三元组数量,即模式的频率:A 连接到 B,B 连接到 C 但 A 和 B 不连接。

有没有聪明的方法可以利用内置函数来实现这一点?

解决方法

如果您可以计算(1 if i->j,else 0) 的距离矩阵G,您可以对其进行平方,对于每个非对角线条目,检查a[i,j] 是否与a[j,i] 不同。