Чтобы найти все треугольники на графике, вы можете использовать функцию enumerate_all_cliques()
, которая возвращает все клики на графике.Вы можете отфильтровать все треугольники по количеству узлов в кликах.
import networkx as nx
G = nx.house_x_graph()
%matplotlib inline # jupyter notebook
nx.draw(G, with_labels = True, node_color='pink', node_size=1000)
tri = filter(lambda x: len(x) == 3, nx.enumerate_all_cliques(G))
tri_subraphs = [G.subgraph(nodes) for nodes in tri]
for graph in tri_subraphs:
print(graph.nodes())
Вывод:
[0, 1, 2]
[0, 1, 3]
[0, 2, 3]
[1, 2, 3]
[2, 3, 4]