Mój problem jest następujący:Centrum w drzewo (w minimalnej sumy odległości sensie)
Biorąc pod drzewem (V, E), znaleźć węzła centrum v takie, że suma {W, V} [ dist (v, w)] jest minimalne, gdzie dist (v, w) jest liczbą krawędzi najkrótszej ścieżki od v do w. Algorytm powinien działać w czasie O (n) (n oznacza liczbę węzłów w drzewie).
Pytania here i here również wymagają centralnego węzła, ale definiują go inaczej.
Nie rygorystycznie przechodziłem przez kolejne etapy, ale uważam, że rozwiązanie mojego problemu powinno być podobne do rozwiązania this problem.
Jednak zdecydowałem, że powinienem podzielić się moim problemem ze społecznością, ponieważ zabrało mi to trochę czasu na nawigację do the link, która jednak nie odpowiada bezpośrednio na pytanie.
@maraca - Myślę, że to, co mówisz, może być trochę niepoprawne. Pomyśl o przypadku, w którym wynikowa wysokość drzewka jest o jeden większy od drzewa, które otrzymujesz, ponieważ _jeden oddział jest dłuższy, ale całkowita suma odległości jest krótsza. Nie jestem do końca pewien, czy ten przykład może istnieć, po prostu sugeruję, że to powinno być zbadane ... –
@maraca Tak, chcę znaleźć optymalny root. Mam jednak o tym i mogę dać ci kontrprzykład, w którym rozwiązania nie są takie same. Wyobraź sobie drzewo, w którym korzeń ma wielu sąsiadów, powiedzmy m, z których każdy jest urlopem, a pojedynczy "ogon" długości mówi 3 (składający się z 3 wierzchołków). Wtedy wierzchołek wierzchołka odkryty na najniższej głębokości nie byłby wierzchołkiem wielu sąsiadów (byłby to pierwszy wierzchołek na ogonie, dający wynik min. 2 na każdy inny wierzchołek), a rozwiązaniem mojego problemu byłby ten z wieloma sąsiadami. – MindaugasK
@MindaugasK Przepraszam, mój błąd, chcesz zminimalizować odległość sum do katalogu głównego, a nie między wszystkimi węzłami ... – maraca