To łącze zapewnia algorytm znajdowania średnicy drzewa bezkierunkowego za pomocą BFS / DFS . Zreasumowanie:
Uruchom BFS na dowolnym węźle na wykresie, pamiętając węzeł wykryty jako ostatni. Uruchom BFS, pamiętając ostatnio wykryty węzeł v. d (u, v) to średnica drzewa.
Dlaczego to działa?
Strona 2 tego zawiera uzasadnienie, ale jest mylące. Cytuję początkową część dowodu:
Uruchom BFS na dowolnym węźle na wykresie, pamiętając węzeł wykryty jako ostatni. Uruchom BFS, pamiętając ostatnio wykryty węzeł v. d (u, v) to średnica drzewa.
Prawidłowość: Niech a i b będą dowolnymi dwoma węzłami, tak aby d (a, b) była średnicą drzewa. Istnieje unikalna ścieżka od a do b. Niech będzie pierwszym węzłem na ścieżce odkrytej przez BFS. Jeśli ścieżki od s do u oraz od a do b nie dzielą krawędzi, wówczas ścieżka od t do u zawiera s. Więc
.... (kolejne nierówności następują ..)
Nierówności nie mają dla mnie sensu.