Skip to content Skip to sidebar Skip to footer

How To Find Subgraphs In A Directed Graph Without Converting To Undirected Graph?

I have a graph that has many subgraphs. I have some edges that connect two nodes in both directions, that is, A-->B and B-->A. The bidirectionality is important, as it repres

Solution 1:

Maybe you are looking for weakly connected components?

That algorithm treats the edges as if they were undirected and returns the connected components in that graph.

In [1]: import networkx as nx

In [2]: G = nx.DiGraph([(1,2),(2,1),(3,4)])

In [3]: for w in nx.weakly_connected_component_subgraphs(G):
   ...:     print(w.edges())
   ...:     
[(1, 2), (2, 1)]
[(3, 4)]

Solution 2:

You are looking for SCC of the graph, that are strongyconnectedcomponent s. They can be found with a variant of DFS (depth first search).

You should take a look at the wiki article.

Post a Comment for "How To Find Subgraphs In A Directed Graph Without Converting To Undirected Graph?"