示例#1
0
 def test_no_weight(self):
     inf = float('inf')
     expected = {(3, 4, inf), (4, 3, inf)}
     assert_in(next(nx.local_bridges(self.BB)), expected)
     expected = {(u, v, 3) for u, v, in self.square.edges}
     assert_equal(set(nx.local_bridges(self.square)), expected)
     assert_equal(list(nx.local_bridges(self.tri)), [])
示例#2
0
 def test_no_weight(self):
     inf = float('inf')
     expected = {(3, 4, inf), (4, 3, inf)}
     assert next(nx.local_bridges(self.BB)) in expected
     expected = {(u, v, 3) for u, v, in self.square.edges}
     assert set(nx.local_bridges(self.square)) == expected
     assert list(nx.local_bridges(self.tri)) == []
示例#3
0
 def test_no_weight(self):
     inf = float('inf')
     expected = {(3, 4, inf), (4, 3, inf)}
     assert_in(next(nx.local_bridges(self.BB)), expected)
     expected = {(u, v, 3) for u, v, in self.square.edges}
     assert_equal(set(nx.local_bridges(self.square)), expected)
     assert_equal(list(nx.local_bridges(self.tri)), [])
示例#4
0
    def test_weight(self):
        inf = float('inf')
        G = self.square.copy()

        G.edges[1, 2]['weight'] = 2
        expected = {(u, v, 5 - wt) for u, v, wt in G.edges(data='weight', default=1)}
        assert_equal(set(nx.local_bridges(G, weight='weight')), expected)

        expected = {(u, v, 6) for u, v in G.edges}
        lb = nx.local_bridges(G, weight=lambda u, v, d: 2)
        assert_equal(set(lb), expected)
示例#5
0
    def test_weight(self):
        inf = float("inf")
        G = self.square.copy()

        G.edges[1, 2]["weight"] = 2
        expected = {(u, v, 5 - wt)
                    for u, v, wt in G.edges(data="weight", default=1)}
        assert set(nx.local_bridges(G, weight="weight")) == expected

        expected = {(u, v, 6) for u, v in G.edges}
        lb = nx.local_bridges(G, weight=lambda u, v, d: 2)
        assert set(lb) == expected
示例#6
0
 def test_nospan(self):
     expected = {(3, 4), (4, 3)}
     assert_in(next(nx.local_bridges(self.BB, with_span=False)), expected)
     assert_equal(set(nx.local_bridges(self.square, with_span=False)),
                  self.square.edges)
     assert_equal(list(nx.local_bridges(self.tri, with_span=False)), [])
示例#7
0
 def test_nospan(self):
     expected = {(3, 4), (4, 3)}
     assert_in(next(nx.local_bridges(self.BB, with_span=False)), expected)
     assert_equal(set(nx.local_bridges(self.square, with_span=False)), self.square.edges)
     assert_equal(list(nx.local_bridges(self.tri, with_span=False)), [])
示例#8
0
 def test_nospan(self):
     expected = {(3, 4), (4, 3)}
     assert next(nx.local_bridges(self.BB, with_span=False)) in expected
     assert set(nx.local_bridges(self.square,
                                 with_span=False)) == self.square.edges
     assert list(nx.local_bridges(self.tri, with_span=False)) == []
# https://stackoverflow.com/questions/43208737/using-networkx-to-calculate-eigenvector-centrality?rq=1
lEigenVectorCentrality = nx.eigenvector_centrality_numpy(network_weight)
for nodeId, cent in lEigenVectorCentrality.items():
    network_weight.node[nodeId]['eigen'] = float(cent)

# katz centrality
lKatzCentrality = nx.katz_centrality(network_weight)
for nodeId, cent in lKatzCentrality.items():
    network_weight.node[nodeId]['katz'] = float(cent)

# Betweeness centrality
lBetCentrality = nx.betweenness_centrality(network_weight)
for nodeId, cent in lBetCentrality.items():
    network_weight.node[nodeId]['betweenness'] = float(cent)
# %%
for g in nx.local_bridges(network_weight, with_span=True, weight=None):
    if g[2] < 100:
        print(g)
# %%
import altair as alt

alt.renderers.enable('notebook')
# %%
# Generating Data
source = pd.DataFrame({
    'Degree Centrality': list(lDegCentrality.values()),
    #     'Eigenvector Centrality': list(lEigenVectorCentrality.values()),
    'Betweenness Centrality': list(lBetCentrality.values()),
    'Katz Centrality': list(lKatzCentrality.values())
})
bridge_count = []
local_bridge_count = []
c1, c2 = 0, 0
#C between a bully and a victim in Gs is a bridge or a local bridge
for graph in Gs:
    graph1 = graph.to_undirected()
    #Get all the bridges
    bridges = list(nx.bridges(graph1))
    #Check if a bully and a victim in Gs is a bridge or a local bridge
    for bridge in bridges:
        if IsBridgeBetweenBullyAndVictim(graph1, bridge):
            c1 += 1
    bridge_count.append(c1)
    c1 = 0
    #Get all the local bridges
    local_bridges = list(nx.local_bridges(graph1))
    for local_bridge in local_bridges:
        if IsBridgeBetweenBullyAndVictim(graph1, local_bridge):
            c2 += 1
    local_bridge_count.append(c2)
    c2 = 0
#print(sum(bridge_count))
#print(sum(local_bridge_count))

#e Compute the principal eigenvalue, λws, of the weighted and undirected adjacency matrix of each Gs
print('Number of nodes of each graph: \n', num_of_nodes)
print('Number of edges of each graph: \n', num_of_nodes)
print('Total degree of each graph: \n', total_degrees)

#Convert graphs to undirected to calculate principal eigen value
Hs = []