Is there an algorithm to compute the spanning trees from an specific node in digraphs?

43 Views Asked by At

Given a strongly connected digraph $\mathcal{D}=(\mathcal{V},\mathcal{E})$, where $\mathcal{V}={1,\cdots,N}$ is the set of vertices and $\mathcal{E}\subseteq\mathcal{V}\times\mathcal{V}$ is the set of directed edges, denote as $\mathbb{T}_v$ the set of all spanning trees rooted at vertex $v\in\mathcal{V}$. Is there a distributed algorithm to compute $\mathbb{T}_v$?

Since $\mathcal{D}$ is strongly connected, then $\mathbb{T}_v$ is nonempty. Also, from the Caley's Formula, $|\mathbb{T}_v|\leq N^{N-2}$, which corresponds to fully connected digraph. I need this information being available on each node to complete a distributed controller design for multi-agent systems.

1

There are 1 best solutions below

1
On BEST ANSWER

There is a non-distributed algorithm to do this kind of things, which computes determinants in a version of the adjacency matrix, see https://en.wikipedia.org/wiki/Kirchhoff%27s_theorem#Kirchhoff's_theorem_for_multigraphs

To get the number of spanning trees, you just compute a integer-valued determinant. If you want an enumeration of the spanning trees, you replace edges by indeterminates and compute the determinant as a polynomial : each monomial will be a spanning tree.