Python networkx.edge_connectivity() Examples
The following are 30
code examples of networkx.edge_connectivity().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
networkx
, or try the search function
.
Example #1
Source File: test_edge_kcomponents.py From aws-kube-codesuite with Apache License 2.0 | 6 votes |
def _assert_local_cc_edge_connectivity(G, ccs_local, k, memo): """ tests properties of k-edge-connected components the local edge connectivity between each pair of nodes in the the original graph should be no less than k unless the cc is a single node. """ for cc in ccs_local: if len(cc) > 1: # Strategy for testing a bit faster: If the subgraph has high edge # connectivity then it must have local connectivity C = G.subgraph(cc) connectivity = nx.edge_connectivity(C) if connectivity < k: # Otherwise do the brute force (with memoization) check _all_pairs_connectivity(G, cc, k, memo) # Helper function
Example #2
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 6 votes |
def test_brandes_erlebach(): # Figure 1 chapter 7: Connectivity # http://www.informatik.uni-augsburg.de/thi/personen/kammer/Graph_Connectivity.pdf G = nx.Graph() G.add_edges_from([(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 6), (3, 4), (3, 6), (4, 6), (4, 7), (5, 7), (6, 8), (6, 9), (7, 8), (7, 10), (8, 11), (9, 10), (9, 11), (10, 11)]) for flow_func in flow_funcs: kwargs = dict(flow_func=flow_func) assert_equal(3, local_edge_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(3, nx.edge_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(2, local_node_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.node_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.edge_connectivity(G, **kwargs), # node 5 has degree 2 msg=msg.format(flow_func.__name__)) assert_equal(2, nx.node_connectivity(G, **kwargs), msg=msg.format(flow_func.__name__))
Example #3
Source File: test_connectivity.py From qgisSpaceSyntaxToolkit with GNU General Public License v3.0 | 6 votes |
def test_brandes_erlebach(): # Figure 1 chapter 7: Connectivity # http://www.informatik.uni-augsburg.de/thi/personen/kammer/Graph_Connectivity.pdf G = nx.Graph() G.add_edges_from([(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 6), (3, 4), (3, 6), (4, 6), (4, 7), (5, 7), (6, 8), (6, 9), (7, 8), (7, 10), (8, 11), (9, 10), (9, 11), (10, 11)]) for flow_func in flow_funcs: kwargs = dict(flow_func=flow_func) assert_equal(3, local_edge_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(3, nx.edge_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(2, local_node_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.node_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.edge_connectivity(G, **kwargs), # node 5 has degree 2 msg=msg.format(flow_func.__name__)) assert_equal(2, nx.node_connectivity(G, **kwargs), msg=msg.format(flow_func.__name__))
Example #4
Source File: test_connectivity.py From qgisSpaceSyntaxToolkit with GNU General Public License v3.0 | 6 votes |
def test_white_harary_1(): # Figure 1b white and harary (2001) # # http://eclectic.ss.uci.edu/~drwhite/sm-w23.PDF # A graph with high adhesion (edge connectivity) and low cohesion # (vertex connectivity) G = nx.disjoint_union(nx.complete_graph(4), nx.complete_graph(4)) G.remove_node(7) for i in range(4, 7): G.add_edge(0, i) G = nx.disjoint_union(G, nx.complete_graph(4)) G.remove_node(G.order() - 1) for i in range(7, 10): G.add_edge(0, i) for flow_func in flow_funcs: assert_equal(1, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(3, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #5
Source File: test_edge_kcomponents.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _assert_local_cc_edge_connectivity(G, ccs_local, k, memo): """ tests properties of k-edge-connected components the local edge connectivity between each pair of nodes in the the original graph should be no less than k unless the cc is a single node. """ for cc in ccs_local: if len(cc) > 1: # Strategy for testing a bit faster: If the subgraph has high edge # connectivity then it must have local connectivity C = G.subgraph(cc) connectivity = nx.edge_connectivity(C) if connectivity < k: # Otherwise do the brute force (with memoization) check _all_pairs_connectivity(G, cc, k, memo) # Helper function
Example #6
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 6 votes |
def test_directed_edge_connectivity(): G = nx.cycle_graph(10, create_using=nx.DiGraph()) # only one direction D = nx.cycle_graph(10).to_directed() # 2 reciprocal edges for flow_func in flow_funcs: assert_equal(1, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(1, local_edge_connectivity(G, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(1, nx.edge_connectivity(G, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.edge_connectivity(D, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(2, local_edge_connectivity(D, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.edge_connectivity(D, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #7
Source File: test_connectivity.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_directed_edge_connectivity(): G = nx.cycle_graph(10, create_using=nx.DiGraph()) # only one direction D = nx.cycle_graph(10).to_directed() # 2 reciprocal edges for flow_func in flow_funcs: assert_equal(1, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(1, local_edge_connectivity(G, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(1, nx.edge_connectivity(G, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.edge_connectivity(D, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(2, local_edge_connectivity(D, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.edge_connectivity(D, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #8
Source File: test_disjoint_paths.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_graph_from_pr_2053(): G = nx.Graph() G.add_edges_from([ ('A', 'B'), ('A', 'D'), ('A', 'F'), ('A', 'G'), ('B', 'C'), ('B', 'D'), ('B', 'G'), ('C', 'D'), ('C', 'E'), ('C', 'Z'), ('D', 'E'), ('D', 'F'), ('E', 'F'), ('E', 'Z'), ('F', 'Z'), ('G', 'Z')]) for flow_func in flow_funcs: kwargs = dict(flow_func=flow_func) # edge disjoint paths edge_paths = list(nx.edge_disjoint_paths(G, 'A', 'Z', **kwargs)) assert_true(are_edge_disjoint_paths(G, edge_paths), msg=msg.format(flow_func.__name__)) assert_equal( nx.edge_connectivity(G, 'A', 'Z'), len(edge_paths), msg=msg.format(flow_func.__name__), ) # node disjoint paths node_paths = list(nx.node_disjoint_paths(G, 'A', 'Z', **kwargs)) assert_true(are_node_disjoint_paths(G, node_paths), msg=msg.format(flow_func.__name__)) assert_equal( nx.node_connectivity(G, 'A', 'Z'), len(node_paths), msg=msg.format(flow_func.__name__), )
Example #9
Source File: test_connectivity.py From qgisSpaceSyntaxToolkit with GNU General Public License v3.0 | 6 votes |
def test_directed_edge_connectivity(): G = nx.cycle_graph(10, create_using=nx.DiGraph()) # only one direction D = nx.cycle_graph(10).to_directed() # 2 reciprocal edges for flow_func in flow_funcs: assert_equal(1, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(1, local_edge_connectivity(G, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(1, nx.edge_connectivity(G, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.edge_connectivity(D, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(2, local_edge_connectivity(D, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.edge_connectivity(D, 1, 4, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #10
Source File: test_disjoint_paths.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_karate(): G = nx.karate_club_graph() for flow_func in flow_funcs: kwargs = dict(flow_func=flow_func) # edge disjoint paths edge_dpaths = list(nx.edge_disjoint_paths(G, 0, 33, **kwargs)) assert_true(are_edge_disjoint_paths(G, edge_dpaths), msg=msg.format(flow_func.__name__)) assert_equal( nx.edge_connectivity(G, 0, 33), len(edge_dpaths), msg=msg.format(flow_func.__name__), ) # node disjoint paths node_dpaths = list(nx.node_disjoint_paths(G, 0, 33, **kwargs)) assert_true(are_node_disjoint_paths(G, node_dpaths), msg=msg.format(flow_func.__name__)) assert_equal( nx.node_connectivity(G, 0, 33), len(node_dpaths), msg=msg.format(flow_func.__name__), )
Example #11
Source File: test_connectivity.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_white_harary_1(): # Figure 1b white and harary (2001) # # http://eclectic.ss.uci.edu/~drwhite/sm-w23.PDF # A graph with high adhesion (edge connectivity) and low cohesion # (vertex connectivity) G = nx.disjoint_union(nx.complete_graph(4), nx.complete_graph(4)) G.remove_node(7) for i in range(4, 7): G.add_edge(0, i) G = nx.disjoint_union(G, nx.complete_graph(4)) G.remove_node(G.order() - 1) for i in range(7, 10): G.add_edge(0, i) for flow_func in flow_funcs: assert_equal(1, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(3, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #12
Source File: test_connectivity.py From Carnets with BSD 3-Clause "New" or "Revised" License | 6 votes |
def test_brandes_erlebach(): # Figure 1 chapter 7: Connectivity # http://www.informatik.uni-augsburg.de/thi/personen/kammer/Graph_Connectivity.pdf G = nx.Graph() G.add_edges_from([(1, 2), (1, 3), (1, 4), (1, 5), (2, 3), (2, 6), (3, 4), (3, 6), (4, 6), (4, 7), (5, 7), (6, 8), (6, 9), (7, 8), (7, 10), (8, 11), (9, 10), (9, 11), (10, 11)]) for flow_func in flow_funcs: kwargs = dict(flow_func=flow_func) assert_equal(3, local_edge_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(3, nx.edge_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(2, local_node_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.node_connectivity(G, 1, 11, **kwargs), msg=msg.format(flow_func.__name__)) assert_equal(2, nx.edge_connectivity(G, **kwargs), # node 5 has degree 2 msg=msg.format(flow_func.__name__)) assert_equal(2, nx.node_connectivity(G, **kwargs), msg=msg.format(flow_func.__name__))
Example #13
Source File: test_edge_kcomponents.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def _assert_subgraph_edge_connectivity(G, ccs_subgraph, k): """ tests properties of k-edge-connected subgraphs the actual edge connectivity should be no less than k unless the cc is a single node. """ for cc in ccs_subgraph: C = G.subgraph(cc) if len(cc) > 1: connectivity = nx.edge_connectivity(C) assert_greater_equal(connectivity, k)
Example #14
Source File: test_edge_kcomponents.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def _memo_connectivity(G, u, v, memo): edge = (u, v) if edge in memo: return memo[edge] if not G.is_directed(): redge = (v, u) if redge in memo: return memo[redge] memo[edge] = nx.edge_connectivity(G, *edge) return memo[edge]
Example #15
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_white_harary_2(): # Figure 8 white and harary (2001) # # http://eclectic.ss.uci.edu/~drwhite/sm-w23.PDF G = nx.disjoint_union(nx.complete_graph(4), nx.complete_graph(4)) G.add_edge(0, 4) # kappa <= lambda <= delta assert_equal(3, min(nx.core_number(G).values())) for flow_func in flow_funcs: assert_equal(1, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(1, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #16
Source File: test_connectivity.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_edge_connectivity_flow_vs_stoer_wagner(): graph_funcs = [ nx.icosahedral_graph, nx.octahedral_graph, nx.dodecahedral_graph, ] for graph_func in graph_funcs: G = graph_func() assert_equal(nx.stoer_wagner(G)[0], nx.edge_connectivity(G))
Example #17
Source File: test_connectivity.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_interface_only_target(): G = nx.complete_graph(5) for interface_func in [nx.node_connectivity, nx.edge_connectivity]: assert_raises(nx.NetworkXError, interface_func, G, t=3)
Example #18
Source File: test_connectivity.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_not_connected(): G = nx.Graph() nx.add_path(G, [1, 2, 3]) nx.add_path(G, [4, 5]) for flow_func in flow_funcs: assert_equal(nx.node_connectivity(G), 0, msg=msg.format(flow_func.__name__)) assert_equal(nx.edge_connectivity(G), 0, msg=msg.format(flow_func.__name__))
Example #19
Source File: test_connectivity.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_not_weakly_connected(): G = nx.DiGraph() nx.add_path(G, [1, 2, 3]) nx.add_path(G, [4, 5]) for flow_func in flow_funcs: assert_equal(nx.node_connectivity(G), 0, msg=msg.format(flow_func.__name__)) assert_equal(nx.edge_connectivity(G), 0, msg=msg.format(flow_func.__name__))
Example #20
Source File: test_connectivity.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_edge_missing_target(): G = nx.path_graph(4) for flow_func in flow_funcs: assert_raises(nx.NetworkXError, nx.edge_connectivity, G, 1, 10, flow_func=flow_func)
Example #21
Source File: test_cuts.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_edge_cutset_random_graphs(): for flow_func in flow_funcs: for i in range(3): G = nx.fast_gnp_random_graph(50, 0.25) if not nx.is_connected(G): ccs = iter(nx.connected_components(G)) start = arbitrary_element(next(ccs)) G.add_edges_from((start, arbitrary_element(c)) for c in ccs) cutset = nx.minimum_edge_cut(G, flow_func=flow_func) assert_equal(nx.edge_connectivity(G), len(cutset), msg=msg.format(flow_func.__name__)) G.remove_edges_from(cutset) assert_false(nx.is_connected(G), msg=msg.format(flow_func.__name__))
Example #22
Source File: test_connectivity.py From Carnets with BSD 3-Clause "New" or "Revised" License | 5 votes |
def test_petersen(): G = nx.petersen_graph() for flow_func in flow_funcs: assert_equal(3, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(3, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #23
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_complete_graphs(): for n in range(5, 20, 5): for flow_func in flow_funcs: G = nx.complete_graph(n) assert_equal(n-1, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(n-1, nx.node_connectivity(G.to_directed(), flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(n-1, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(n-1, nx.edge_connectivity(G.to_directed(), flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #24
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_empty_graphs(): for k in range(5, 25, 5): G = nx.empty_graph(k) for flow_func in flow_funcs: assert_equal(0, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(0, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #25
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_petersen(): G = nx.petersen_graph() for flow_func in flow_funcs: assert_equal(3, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(3, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #26
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_tutte(): G = nx.tutte_graph() for flow_func in flow_funcs: assert_equal(3, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(3, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #27
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_octahedral(): G=nx.octahedral_graph() for flow_func in flow_funcs: assert_equal(4, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(4, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #28
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_icosahedral(): G=nx.icosahedral_graph() for flow_func in flow_funcs: assert_equal(5, nx.node_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__)) assert_equal(5, nx.edge_connectivity(G, flow_func=flow_func), msg=msg.format(flow_func.__name__))
Example #29
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_edge_missing_source(): G = nx.path_graph(4) for flow_func in flow_funcs: assert_raises(nx.NetworkXError, nx.edge_connectivity, G, 10, 1, flow_func=flow_func)
Example #30
Source File: test_connectivity.py From aws-kube-codesuite with Apache License 2.0 | 5 votes |
def test_edge_missing_target(): G = nx.path_graph(4) for flow_func in flow_funcs: assert_raises(nx.NetworkXError, nx.edge_connectivity, G, 1, 10, flow_func=flow_func)