本文整理汇总了Python中networkx.path_graph方法的典型用法代码示例。如果您正苦于以下问题:Python networkx.path_graph方法的具体用法?Python networkx.path_graph怎么用?Python networkx.path_graph使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类networkx
的用法示例。
在下文中一共展示了networkx.path_graph方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_broadcast_nodes
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_broadcast_nodes():
# test#1: basic
g0 = dgl.DGLGraph(nx.path_graph(10))
feat0 = F.randn((1, 40))
ground_truth = F.stack([feat0] * g0.number_of_nodes(), 0)
assert F.allclose(dgl.broadcast_nodes(g0, feat0), ground_truth)
# test#2: batched graph
g1 = dgl.DGLGraph(nx.path_graph(3))
g2 = dgl.DGLGraph()
g3 = dgl.DGLGraph(nx.path_graph(12))
bg = dgl.batch([g0, g1, g2, g3])
feat1 = F.randn((1, 40))
feat2 = F.randn((1, 40))
feat3 = F.randn((1, 40))
ground_truth = F.cat(
[feat0] * g0.number_of_nodes() +\
[feat1] * g1.number_of_nodes() +\
[feat2] * g2.number_of_nodes() +\
[feat3] * g3.number_of_nodes(), 0
)
assert F.allclose(dgl.broadcast_nodes(
bg, F.cat([feat0, feat1, feat2, feat3], 0)
), ground_truth)
示例2: test_broadcast_edges
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_broadcast_edges():
# test#1: basic
g0 = dgl.DGLGraph(nx.path_graph(10))
feat0 = F.randn((1, 40))
ground_truth = F.stack([feat0] * g0.number_of_edges(), 0)
assert F.allclose(dgl.broadcast_edges(g0, feat0), ground_truth)
# test#2: batched graph
g1 = dgl.DGLGraph(nx.path_graph(3))
g2 = dgl.DGLGraph()
g3 = dgl.DGLGraph(nx.path_graph(12))
bg = dgl.batch([g0, g1, g2, g3])
feat1 = F.randn((1, 40))
feat2 = F.randn((1, 40))
feat3 = F.randn((1, 40))
ground_truth = F.cat(
[feat0] * g0.number_of_edges() +\
[feat1] * g1.number_of_edges() +\
[feat2] * g2.number_of_edges() +\
[feat3] * g3.number_of_edges(), 0
)
assert F.allclose(dgl.broadcast_edges(
bg, F.cat([feat0, feat1, feat2, feat3], 0)
), ground_truth)
示例3: test_node_batch
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_node_batch():
g = dgl.DGLGraph(nx.path_graph(20))
feat = F.randn((g.number_of_nodes(), 10))
g.ndata['x'] = feat
# test all
v = utils.toindex(slice(0, g.number_of_nodes()))
n_repr = g.get_n_repr(v)
nbatch = NodeBatch(v, n_repr)
assert F.allclose(nbatch.data['x'], feat)
assert nbatch.mailbox is None
assert F.allclose(nbatch.nodes(), g.nodes())
assert nbatch.batch_size() == g.number_of_nodes()
assert len(nbatch) == g.number_of_nodes()
# test partial
v = utils.toindex(F.tensor([0, 3, 5, 7, 9]))
n_repr = g.get_n_repr(v)
nbatch = NodeBatch(v, n_repr)
assert F.allclose(nbatch.data['x'], F.gather_row(feat, F.tensor([0, 3, 5, 7, 9])))
assert nbatch.mailbox is None
assert F.allclose(nbatch.nodes(), F.tensor([0, 3, 5, 7, 9]))
assert nbatch.batch_size() == 5
assert len(nbatch) == 5
示例4: test_prop_edges_dfs
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_prop_edges_dfs():
g = dgl.DGLGraph(nx.path_graph(5))
g = dgl.graph(g.edges())
g.ndata['x'] = F.ones((5, 2))
dgl.prop_edges_dfs(g, 0, message_func=mfunc, reduce_func=rfunc, apply_node_func=None)
# snr using dfs results in a cumsum
assert F.allclose(g.ndata['x'],
F.tensor([[1., 1.], [2., 2.], [3., 3.], [4., 4.], [5., 5.]]))
g.ndata['x'] = F.ones((5, 2))
dgl.prop_edges_dfs(g, 0, has_reverse_edge=True, message_func=mfunc, reduce_func=rfunc, apply_node_func=None)
# result is cumsum[i] + cumsum[i-1]
assert F.allclose(g.ndata['x'],
F.tensor([[1., 1.], [3., 3.], [5., 5.], [7., 7.], [9., 9.]]))
g.ndata['x'] = F.ones((5, 2))
dgl.prop_edges_dfs(g, 0, has_nontree_edge=True, message_func=mfunc, reduce_func=rfunc, apply_node_func=None)
# result is cumsum[i] + cumsum[i+1]
assert F.allclose(g.ndata['x'],
F.tensor([[3., 3.], [5., 5.], [7., 7.], [9., 9.], [5., 5.]]))
示例5: test_prop_nodes_topo
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_prop_nodes_topo():
# bi-directional chain
g = dgl.DGLGraph(nx.path_graph(5))
g = dgl.graph(g.edges())
assert U.check_fail(dgl.prop_nodes_topo, g) # has loop
# tree
tree = dgl.DGLGraph()
tree.add_nodes(5)
tree.add_edge(1, 0)
tree.add_edge(2, 0)
tree.add_edge(3, 2)
tree.add_edge(4, 2)
tree = dgl.graph(tree.edges())
# init node feature data
tree.ndata['x'] = F.zeros((5, 2))
# set all leaf nodes to be ones
tree.nodes[[1, 3, 4]].data['x'] = F.ones((3, 2))
dgl.prop_nodes_topo(tree, message_func=mfunc, reduce_func=rfunc, apply_node_func=None)
# root node get the sum
assert F.allclose(tree.nodes[0].data['x'], F.tensor([[3., 3.]]))
示例6: test_glob_att_pool
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_glob_att_pool():
ctx = F.ctx()
g = dgl.DGLGraph(nx.path_graph(10))
gap = nn.GlobalAttentionPooling(th.nn.Linear(5, 1), th.nn.Linear(5, 10))
gap = gap.to(ctx)
print(gap)
# test#1: basic
h0 = F.randn((g.number_of_nodes(), 5))
h1 = gap(g, h0)
assert h1.shape[0] == 1 and h1.shape[1] == 10 and h1.dim() == 2
# test#2: batched graph
bg = dgl.batch([g, g, g, g])
h0 = F.randn((bg.number_of_nodes(), 5))
h1 = gap(bg, h0)
assert h1.shape[0] == 4 and h1.shape[1] == 10 and h1.dim() == 2
示例7: test_set2set
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_set2set():
g = dgl.DGLGraph(nx.path_graph(10))
ctx = F.ctx()
s2s = nn.Set2Set(5, 3, 3) # hidden size 5, 3 iters, 3 layers
s2s.initialize(ctx=ctx)
print(s2s)
# test#1: basic
h0 = F.randn((g.number_of_nodes(), 5))
h1 = s2s(g, h0)
assert h1.shape[0] == 1 and h1.shape[1] == 10 and h1.ndim == 2
# test#2: batched graph
bg = dgl.batch([g, g, g])
h0 = F.randn((bg.number_of_nodes(), 5))
h1 = s2s(bg, h0)
assert h1.shape[0] == 3 and h1.shape[1] == 10 and h1.ndim == 2
示例8: test_glob_att_pool
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_glob_att_pool():
g = dgl.DGLGraph(nx.path_graph(10))
ctx = F.ctx()
gap = nn.GlobalAttentionPooling(gluon.nn.Dense(1), gluon.nn.Dense(10))
gap.initialize(ctx=ctx)
print(gap)
# test#1: basic
h0 = F.randn((g.number_of_nodes(), 5))
h1 = gap(g, h0)
assert h1.shape[0] == 1 and h1.shape[1] == 10 and h1.ndim == 2
# test#2: batched graph
bg = dgl.batch([g, g, g, g])
h0 = F.randn((bg.number_of_nodes(), 5))
h1 = gap(bg, h0)
assert h1.shape[0] == 4 and h1.shape[1] == 10 and h1.ndim == 2
示例9: test_edge_softmax
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_edge_softmax():
# Basic
g = dgl.DGLGraph(nx.path_graph(3))
edata = F.ones((g.number_of_edges(), 1))
a = nn.edge_softmax(g, edata)
assert len(g.ndata) == 0
assert len(g.edata) == 0
assert np.allclose(a.asnumpy(), uniform_attention(g, a.shape).asnumpy(),
1e-4, 1e-4)
# Test higher dimension case
edata = F.ones((g.number_of_edges(), 3, 1))
a = nn.edge_softmax(g, edata)
assert len(g.ndata) == 0
assert len(g.edata) == 0
assert np.allclose(a.asnumpy(), uniform_attention(g, a.shape).asnumpy(),
1e-4, 1e-4)
示例10: test_glob_att_pool
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_glob_att_pool():
g = dgl.DGLGraph(nx.path_graph(10))
gap = nn.GlobalAttentionPooling(layers.Dense(1), layers.Dense(10))
print(gap)
# test#1: basic
h0 = F.randn((g.number_of_nodes(), 5))
h1 = gap(g, h0)
assert h1.shape[0] == 1 and h1.shape[1] == 10 and h1.ndim == 2
# test#2: batched graph
bg = dgl.batch([g, g, g, g])
h0 = F.randn((bg.number_of_nodes(), 5))
h1 = gap(bg, h0)
assert h1.shape[0] == 4 and h1.shape[1] == 10 and h1.ndim == 2
示例11: complement_edges
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def complement_edges(G):
"""Returns only the edges in the complement of G
Example
-------
>>> G = nx.path_graph((1, 2, 3, 4))
>>> sorted(complement_edges(G))
[(1, 3), (1, 4), (2, 4)]
>>> G = nx.path_graph((1, 2, 3, 4), nx.DiGraph())
>>> sorted(complement_edges(G))
[(1, 3), (1, 4), (2, 1), (2, 4), (3, 1), (3, 2), (4, 1), (4, 2), (4, 3)]
>>> G = nx.complete_graph(1000)
>>> sorted(complement_edges(G))
[]
"""
if G.is_directed():
for u, v in it.combinations(G.nodes(), 2):
if v not in G.adj[u]:
yield (u, v)
if u not in G.adj[v]:
yield (v, u)
else:
for u, v in it.combinations(G.nodes(), 2):
if v not in G.adj[u]:
yield (u, v)
示例12: test_1d_3_on_c16
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_1d_3_on_c16(self):
embedding = find_grid_embedding([3], 16)
self.assertEqual(len(embedding), 3)
target_adj = dwave.embedding.target_to_source(dnx.chimera_graph(16), embedding)
G = nx.path_graph(3)
for u in G.adj:
for v in G.adj[u]:
self.assertIn(u, target_adj)
self.assertIn(v, target_adj[u])
for u in target_adj:
for v in target_adj[u]:
self.assertIn(u, G.adj)
self.assertIn(v, G.adj[u])
示例13: test_maximum_independent_set_weighted
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_maximum_independent_set_weighted(self):
weight = 'weight'
G = nx.path_graph(6)
# favor odd nodes
nx.set_node_attributes(G, {node: node % 2 + 1 for node in G}, weight)
indep_set = dnx.maximum_weighted_independent_set(G, weight, dimod.ExactSolver())
self.assertEqual(set(indep_set), {1, 3, 5})
# favor even nodes
nx.set_node_attributes(G, {node: (node + 1) % 2 + 1 for node in G}, weight)
indep_set = dnx.maximum_weighted_independent_set(G, weight, dimod.ExactSolver())
self.assertEqual(set(indep_set), {0, 2, 4})
# make nodes 1 and 4 likely
nx.set_node_attributes(G, {0: 1, 1: 3, 2: 1, 3: 1, 4: 3, 5: 1}, weight)
indep_set = dnx.maximum_weighted_independent_set(G, weight, dimod.ExactSolver())
self.assertEqual(set(indep_set), {1, 4})
示例14: test_vertex_cover_weighted
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_vertex_cover_weighted(self):
weight = 'weight'
G = nx.path_graph(6)
# favor even nodes
nx.set_node_attributes(G, {node: node % 2 + 1 for node in G}, weight)
cover = dnx.min_weighted_vertex_cover(G, weight, ExactSolver())
self.assertEqual(set(cover), {0, 2, 4})
# favor odd nodes
nx.set_node_attributes(G, {node: (node + 1) % 2 + 1 for node in G}, weight)
cover = dnx.min_weighted_vertex_cover(G, weight, ExactSolver())
self.assertEqual(set(cover), {1, 3, 5})
# make nodes 1 and 4 unlikely
nx.set_node_attributes(G, {0: 1, 1: 3, 2: 1, 3: 1, 4: 3, 5: 1}, weight)
cover = dnx.min_weighted_vertex_cover(G, weight, ExactSolver())
self.assertEqual(set(cover), {0, 2, 3, 5})
for __ in range(10):
G = nx.gnp_random_graph(5, .5)
nx.set_node_attributes(G, {node: random.random() for node in G}, weight)
cover = dnx.min_weighted_vertex_cover(G, weight, ExactSolver())
self.vertex_cover_check(G, cover)
示例15: test_bad_energy_range
# 需要导入模块: import networkx [as 别名]
# 或者: from networkx import path_graph [as 别名]
def test_bad_energy_range(self):
graph = nx.path_graph(3)
decision_variables = (0, 2)
feasible_configurations = {(-1, -1): 0., (+1, +1): 0.}
spec = pm.Specification(graph, decision_variables, feasible_configurations, vartype=dimod.SPIN)
linear = {v: -3 for v in graph}
quadratic = {edge: -1 for edge in graph.edges}
model = dimod.BinaryQuadraticModel(linear, quadratic, 0.0, vartype=dimod.SPIN)
with self.assertRaises(ValueError):
widget = pm.PenaltyModel.from_specification(spec, model, 2., -2)
linear = {v: 0 for v in graph}
quadratic = {edge: 5 for edge in graph.edges}
model = dimod.BinaryQuadraticModel(linear, quadratic, 0.0, vartype=dimod.SPIN)
with self.assertRaises(ValueError):
widget = pm.PenaltyModel.from_specification(spec, model, 2., -2)