本文整理汇总了Python中networkx.is_tree函数的典型用法代码示例。如果您正苦于以下问题:Python is_tree函数的具体用法?Python is_tree怎么用?Python is_tree使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了is_tree函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_disconnected_graph
def test_disconnected_graph():
# https://github.com/networkx/networkx/issues/1144
G = nx.Graph()
G.add_edges_from([(0, 1), (1, 2), (2, 0), (3, 4)])
assert_false(nx.is_tree(G))
G = nx.DiGraph()
G.add_edges_from([(0, 1), (1, 2), (2, 0), (3, 4)])
assert_false(nx.is_tree(G))
开发者ID:4c656554,项目名称:networkx,代码行数:9,代码来源:test_recognition.py
示例2: euler_tour
def euler_tour(G, node=None, seen=None, visited=None):
"""
definition from
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.192.8615&rep=rep1&type=pdf
Example:
>>> # DISABLE_DOCTEST
>>> from utool.experimental.euler_tour_tree_avl import * # NOQA
>>> edges = [
>>> ('R', 'A'), ('R', 'B'),
>>> ('B', 'C'), ('C', 'D'), ('C', 'E'),
>>> ('B', 'F'), ('B', 'G'),
>>> ]
>>> G = nx.Graph(edges)
>>> node = list(G.nodes())[0]
>>> et1 = euler_tour(G, node)
>>> et2 = euler_tour_dfs(G, node)
"""
if node is None:
node = next(G.nodes())
if visited is None:
assert nx.is_tree(G)
visited = []
if seen is None:
seen = set([])
visited.append(node)
for c in G.neighbors(node):
if c in seen:
continue
seen.add(c)
euler_tour(G, c, seen, visited)
visited.append(node)
return visited
开发者ID:Erotemic,项目名称:utool,代码行数:33,代码来源:euler_tour_tree_avl.py
示例3: add_edge
def add_edge(self, u, v):
print('[euler_tour_forest] add_edge(%r, %r)' % (u, v))
if self.has_edge(u, v):
return
ru = self.find_root(u)
rv = self.find_root(v)
if ru is None:
self.add_node(u)
ru = u
if rv is None:
self.add_node(v)
rv = v
assert ru is not rv, (
'u=%r, v=%r not disjoint, can only join disjoint edges' % (u, v))
assert ru in self.trees, 'ru must be a root node'
assert rv in self.trees, 'rv must be a root node'
subtree1 = self.trees[ru]
subtree2 = self.trees[rv]
del self.trees[rv]
new_tree = nx.compose(subtree1, subtree2)
new_tree.add_edge(u, v)
self.trees[ru] = new_tree
print(list(new_tree.nodes()))
assert nx.is_connected(new_tree)
assert nx.is_tree(new_tree)
开发者ID:Erotemic,项目名称:utool,代码行数:25,代码来源:dynamic_connectivity.py
示例4: question4
def question4(T, node1, node2):
BSTG=nx.from_numpy_matrix(np.matrix(T))
if (nx.is_tree(BSTG) & check_sum(T)):
path = nx.all_simple_paths(BSTG, node1, node2)
return min(list(path)[0])
else:
print ("This graph is not a binary search tree")
return None
开发者ID:OlgaBelitskaya,项目名称:resume-builder,代码行数:8,代码来源:solutions.py
示例5: inspectlabels
def inspectlabels(milestone,sent):
for h,d in sent.edges():
if type(sent[h][d]['deprel']) == str:
pass
else:
print(milestone,"ARLAMA",sent)
if not nx.is_tree(sent):
print("not tree")
开发者ID:hectormartinez,项目名称:mweparse,代码行数:8,代码来源:ud2mweconll_strict.py
示例6: test_default_flow_function_karate_club_graph
def test_default_flow_function_karate_club_graph(self):
G = nx.karate_club_graph()
nx.set_edge_attributes(G, 1, 'capacity')
T = nx.gomory_hu_tree(G)
assert_true(nx.is_tree(T))
for u, v in combinations(G, 2):
cut_value, edge = self.minimum_edge_weight(T, u, v)
assert_equal(nx.minimum_cut_value(G, u, v),
cut_value)
开发者ID:aparamon,项目名称:networkx,代码行数:9,代码来源:test_gomory_hu.py
示例7: test_karate_club_graph_cutset
def test_karate_club_graph_cutset(self):
G = nx.karate_club_graph()
nx.set_edge_attributes(G, 1, 'capacity')
T = nx.gomory_hu_tree(G)
assert_true(nx.is_tree(T))
u, v = 0, 33
cut_value, edge = self.minimum_edge_weight(T, u, v)
cutset = self.compute_cutset(G, T, edge)
assert_equal(cut_value, len(cutset))
开发者ID:aparamon,项目名称:networkx,代码行数:9,代码来源:test_gomory_hu.py
示例8: span_makes_subtree
def span_makes_subtree(self, initidx, endidx):
G = nx.DiGraph()
span_nodes = list(range(initidx,endidx+1))
span_words = [self.node[x]["form"] for x in span_nodes]
G.add_nodes_from(span_nodes)
for h,d in self.edges():
if h in span_nodes and d in span_nodes:
G.add_edge(h,d)
return nx.is_tree(G)
开发者ID:hectormartinez,项目名称:ancora2ud,代码行数:9,代码来源:conll.py
示例9: test_davis_southern_women_graph
def test_davis_southern_women_graph(self):
G = nx.davis_southern_women_graph()
nx.set_edge_attributes(G, 'capacity', 1)
for flow_func in flow_funcs:
T = nx.gomory_hu_tree(G, flow_func=flow_func)
assert_true(nx.is_tree(T))
for u, v in combinations(G, 2):
cut_value, edge = self.minimum_edge_weight(T, u, v)
assert_equal(nx.minimum_cut_value(G, u, v),
cut_value)
开发者ID:jklaise,项目名称:networkx,代码行数:10,代码来源:test_gomory_hu.py
示例10: test_florentine_families_graph
def test_florentine_families_graph(self):
G = nx.florentine_families_graph()
nx.set_edge_attributes(G, 1, 'capacity')
for flow_func in flow_funcs:
T = nx.gomory_hu_tree(G, flow_func=flow_func)
assert_true(nx.is_tree(T))
for u, v in combinations(G, 2):
cut_value, edge = self.minimum_edge_weight(T, u, v)
assert_equal(nx.minimum_cut_value(G, u, v),
cut_value)
开发者ID:aparamon,项目名称:networkx,代码行数:10,代码来源:test_gomory_hu.py
示例11: _graphml2nx
def _graphml2nx(fname):
g=nx.DiGraph()
def _attrdict(node):
attrs=node.attributes()
return {key:attrs[key].value for key in attrs if key not in attr_blacklist}
parser=GraphMLParser()
imported_graph=parser.parse(fname)
edges=[(edge.node1.id, edge.node2.id) for edge in imported_graph.edges()]
nodes=[(node.id, _attrdict(node)) for node in imported_graph.nodes()]
g.add_edges_from(edges)
g.add_nodes_from(nodes)
assert(nx.is_tree(g))
assert(nx.is_directed(g))
return g
开发者ID:troeger,项目名称:deplytics,代码行数:14,代码来源:importer.py
示例12: default
def default(self, obj):
if isinstance(obj, np.ndarray):
return obj.tolist()
elif isinstance(obj, np.generic):
return obj.item()
elif isinstance(obj, nx.Graph) or isinstance(obj, nx.DiGraph):
if nx.is_tree(obj):
# NOTE: the root must be the first node added. otherwise it won't work
return json_graph.tree_data(obj, obj.nodes_iter().next())
else:
return json_graph.node_link_data(obj)
elif isinstance(obj, pd.DataFrame):
return obj.to_dict(orient='records')
return json.JSONEncoder.default(self, obj)
开发者ID:learn2manage,项目名称:matta,代码行数:14,代码来源:sketch.py
示例13: default
def default(self, obj):
if isinstance(obj, np.ndarray):
return obj.tolist()
elif isinstance(obj, np.generic):
return obj.item()
elif isinstance(obj, nx.Graph) or isinstance(obj, nx.DiGraph):
if nx.is_tree(obj) and 'root' in obj.graph:
# NOTE: there must be a root graph attribute, or the root must be the first node added.
# otherwise it won't work
return json_graph.tree_data(obj, obj.graph['root'])
else:
return json_graph.node_link_data(obj)
elif isinstance(obj, pd.DataFrame):
return obj.to_dict(orient='records')
return json.JSONEncoder.default(self, obj)
开发者ID:folkengine,项目名称:matta,代码行数:15,代码来源:sketch.py
示例14: test_wikipedia_example
def test_wikipedia_example(self):
# Example from https://en.wikipedia.org/wiki/Gomory%E2%80%93Hu_tree
G = nx.Graph()
G.add_weighted_edges_from((
(0, 1, 1), (0, 2, 7), (1, 2, 1),
(1, 3, 3), (1, 4, 2), (2, 4, 4),
(3, 4, 1), (3, 5, 6), (4, 5, 2),
))
for flow_func in flow_funcs:
T = nx.gomory_hu_tree(G, capacity='weight', flow_func=flow_func)
assert_true(nx.is_tree(T))
for u, v in combinations(G, 2):
cut_value, edge = self.minimum_edge_weight(T, u, v)
assert_equal(nx.minimum_cut_value(G, u, v, capacity='weight'),
cut_value)
开发者ID:aparamon,项目名称:networkx,代码行数:15,代码来源:test_gomory_hu.py
示例15: check_spanning_tree
def check_spanning_tree(tree):
'''Check that a graph is a spanning tree.
Parameters
----------
tree : networkx graph
'''
nodes = np.array(tree.nodes())
n_nodes = len(nodes)
edges = np.array(tree.edges())
n_edges = len(edges)
# check number of edges
if not n_nodes - 1 == n_edges:
raise ValueError('Incorrect number of edes in graph.')
# check that graph is a tree
if not nx.is_tree(tree):
raise TypeError('Must input a tree.')
开发者ID:klarnemann,项目名称:network_simulation,代码行数:16,代码来源:utils.py
示例16: to_dict_tree
def to_dict_tree(digraph, root):
import networkx as nx
"""
Convert a networkx.DiGraph to a tree.
(king, (governor,(editor,)), (state,(collapse,),(head,)(lord,)))
"""
assert nx.is_tree(digraph)
str2node = {root: []}
for parent, child in nx.traversal.dfs_edges(digraph, root):
score = digraph.edge[parent][child]['score']
childnode = {child: [], 'score': score}
children = str2node[parent]
children.append(childnode)
str2node[child] = childnode[child]
return {root: str2node[root]}
开发者ID:hugoflug,项目名称:pydsm,代码行数:16,代码来源:utils.py
示例17: modif_free_mwe_labels
def modif_free_mwe_labels(sent,most_common_label_filler):
for h,d in sent.edges():
if sent[h][d]["deprel"] in freemwes:
head_over_mwe = sent.head_of(h)
overall_mwe_function = sent[head_over_mwe][h]['deprel']
if type(overall_mwe_function) == str:
if "_" in overall_mwe_function or overall_mwe_function.startswith("mwe"):
pass
else:
sent[h][d]["deprel"] = sent[h][d]["deprel"]+"_rmwe_"+most_common_label_filler[overall_mwe_function]
else:
#pass
print("MUCHO WRONG",h,d,overall_mwe_function)
print(sent, sent.edges(),nx.is_tree(sent))
return sent
开发者ID:hectormartinez,项目名称:mweparse,代码行数:16,代码来源:ud2mweconll_strict.py
示例18: optimal_placement
def optimal_placement(tree, budget):
"""
Place `budget` sensors on a tree in an optimal way.
Parameters
----------
tree : networkx.Graph
A tree (undirected) on which to place the sensors.
budget : int
The sensor budget, i.e. the number of nodes that can be chosen as
sensors
Returns
-------
(perr, obs) : tuple
`perr` is the error probability, and `obs` a tuple containing the
sensors.
"""
#one single sensor is useless
assert budget >= 2
assert nx.is_tree(tree)
leaves = utilities.find_leaves(tree)
if budget >= len(leaves):
return (0, tuple(leaves))
#define a non-leaf root arbitrarily
root = random.choice(filter(lambda x: x not in leaves, tree.nodes()))
directed = nx.dfs_tree(tree, source=root) #dir DFS tree from source
#compute the subtree sizes
for x in directed:
directed.node[x]['size'] = utilities.size_subtree(directed, x)
utilities.size_subtree.cache_clear()
#add the budget and the root to the tree as an attribute
directed.graph['root'] = root
directed.graph['budget'] = budget
#place the sensors using the DP algorithm
err, obs = _opt(directed, root, budget)
_optc.cache_clear()
_opt.cache_clear()
return (float(err) / len(tree), obs)
开发者ID:DiNAi,项目名称:budgeted-sensor-placement,代码行数:47,代码来源:prob_err.py
示例19: is_forest
def is_forest(G):
"""Return True if the input graph is a forest
Parameters
----------
G : NetworkX Graph
An undirected graph.
Returns
-------
True if the input graph is a forest
Notes
-----
For undirected graphs only.
"""
for graph in nx.connected_component_subgraphs(G):
if not nx.is_tree(graph):
return False
return True
开发者ID:Bramas,项目名称:networkx,代码行数:20,代码来源:recognition.py
示例20: find_root
def find_root(G):
"""Returns root node ID for the Graph."""
if not nx.is_tree(G):
return None
return nx.topological_sort(G)[0]
开发者ID:jad-b,项目名称:matchwell,代码行数:5,代码来源:tree.py
注:本文中的networkx.is_tree函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论