HigherOrderNetwork.py 文件源码

python
阅读 30 收藏 0 点赞 0 评论 0

项目:Networks 作者: dencesun 项目源码 文件源码
def motif_m7(g):
    n = nx.number_of_nodes(g)
    W = np.zeros((n, n), dtype=float)
    W = np.mat(W)

    # nei = set(nx.all_neighbors(g, 2))
    # print('all_neighbors: ', nei)
    for u in range(1, n+1):
        u_neighbors = set(nx.all_neighbors(g, u))
        # sorted(u_neighbors)
        # print(u, u_neighbors)
        for v in u_neighbors:
            if v < u:
                continue
            v_neighbors = set(nx.all_neighbors(g, v))
            # sorted(v_neighbors)
            for w in v_neighbors:
                if w < u or w < v:
                    continue
                if g.has_edge(u, v) and g.has_edge(v, u) and g.has_edge(u, w) and g.has_edge(v, w):
                    W[u - 1, w - 1] = W[u - 1, w - 1] + 1
                    W[w - 1, u - 1] = W[w - 1, u - 1] + 1
                    W[u - 1, v - 1] = W[u - 1, v - 1] + 1
                    W[v - 1, u - 1] = W[v - 1, u - 1] + 1
                    W[v - 1, w - 1] = W[v - 1, w - 1] + 1
                    W[w - 1, v - 1] = W[w - 1, v - 1] + 1
                    continue
                if g.has_edge(u, w) and g.has_edge(w, u) and g.has_edge(u, v) and g.has_edge(w, v):
                    W[u - 1, w - 1] = W[u - 1, w - 1] + 1
                    W[w - 1, u - 1] = W[w - 1, u - 1] + 1
                    W[u - 1, v - 1] = W[u - 1, v - 1] + 1
                    W[v - 1, u - 1] = W[v - 1, u - 1] + 1
                    W[v - 1, w - 1] = W[v - 1, w - 1] + 1
                    W[w - 1, v - 1] = W[w - 1, v - 1] + 1
                    continue
                if g.has_edge(v, w) and g.has_edge(w, v) and g.has_edge(w, u) and g.has_edge(v, u):
                    W[u - 1, w - 1] = W[u - 1, w - 1] + 1
                    W[w - 1, u - 1] = W[w - 1, u - 1] + 1
                    W[u - 1, v - 1] = W[u - 1, v - 1] + 1
                    W[v - 1, u - 1] = W[v - 1, u - 1] + 1
                    W[v - 1, w - 1] = W[v - 1, w - 1] + 1
                    W[w - 1, v - 1] = W[w - 1, v - 1] + 1
                    continue
    # print(W)
    # print(type(W))

    return W
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号