计算二分网络 x 图中的方块数

counting the number of squares in a bipartite networkx graph

我有一个二分网络,我想计算网络中的方块数,例如:

import networkx as nx
B=nx.Graph()
B=nx.bipartite.random_graph(100, 100, .05) 

我知道 networkx 有一个内置的方法来计算平方聚类系数(封闭 4 路径与开放 3 路径的份额),但我想简单地计算封闭 4 路径的数量。有人能想出一个使用内置函数的好技巧吗?

我认为您可以简单地调整代码 nx.square_clustering,如下所示。如果需要,将它包装成一个函数

v = 0 # or any other node
clustering = 0
potential = 0
for u, w in combinations(B[v], 2):
    squares = len((set(B[u]) & set(B[w])) - {v})
    clustering += squares