Skip to contents

sample_spanning_tree() picks a spanning tree of an undirected graph randomly and uniformly, using loop-erased random walks.


sample_spanning_tree(graph, vid = 0)



The input graph to sample from. Edge directions are ignored if the graph is directed.


When the graph is disconnected, this argument specifies how to handle the situation. When the argument is zero (the default), the sampling will be performed component-wise, and the result will be a spanning forest. When the argument contains a vertex ID, only the component containing the given vertex will be processed, and the result will be a spanning tree of the component of the graph.


An edge sequence containing the edges of the spanning tree. Use subgraph.edges() to extract the corresponding subgraph.

See also

subgraph.edges() to extract the tree itself

Other trees: is_forest(), is_tree(), make_from_prufer(), to_prufer()


g <- make_full_graph(10) %du% make_full_graph(5)
edges <- sample_spanning_tree(g)
forest <- subgraph.edges(g, edges)