How to find two disjoint spanning trees of an undirected graph

前端 未结 4 924
抹茶落季
抹茶落季 2021-02-06 10:04

Is there any applicable approach to find two disjoint spanning trees of an undirected graph or to check if a certain graph has two disjoint spanning trees

4条回答
  •  悲&欢浪女
    2021-02-06 10:45

    This is an example of Matroid union. Consider the graphic matroid where the basis are given by the spanning trees. Now the union of this matroid with itself is again a matroid. Your question is about the size of the basis of this matroid. (whether there exist a basis of size $2(|V|-1)$.

    The canonical algorithm for this is Matroid partitioning algorithm. There exist an algorithm which does does the following: It maintains a set of edges with a partitioning into two forests. At each step given a new edge $e$, it decides whether there exist a reshuffling of the current partition into a new partition such that the new edge can be added to the set and the partition remains independent. And if not, it somehow will provide a certificate that it cannot.

    For details look at a course in Comb. Optimization or the book by Schriver.

提交回复
热议问题