# Samples from the spanning trees of a graph randomly and uniformly

Source:`R/trees.R`

`sample_spanning_tree.Rd`

`sample_spanning_tree()`

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

## Arguments

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

- vid
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.

## Value

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()`

## Examples

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