W jaki sposób mogę ustalić liczbę unikalnych prostych ścieżek na niekierowanym wykresie? Albo dla określonej długości, albo w zakresie dopuszczalnych długości.
Przypomnij sobie, że prosta ścieżka to ścieżka bez cykli, więc mówię o policzeniu liczby ścieżek bez cyklu.
Odpowiedzi:
Istnieje kilka algorytmów, które liczą proste ścieżki długości w czasie , który jest o wiele lepszy niż czas brutalnej siły ( ). Patrz np. Vassilevska i Williams, 2009 .k f(k)nk/2+O(1) O(nk)
źródło
Jest to # P-complete (Valiant, 1979), więc prawdopodobnie nie zrobisz nic lepszego niż brutalna siła, jeśli chcesz dokładnej odpowiedzi. Przybliżenia omawia Roberts i Kroese (2007).
B. Roberts i DP Kroese, " Szacowanie liczby ścieżek - na wykresies t ". Journal of Graph Algorytmy i aplikacje , 11 (1): 195–214, 2007.
LG Valiant, „ Złożoność problemów związanych z wyliczaniem i niezawodnością ”. SIAM Journal on Computing 8 (3): 410-421, 1979.
źródło
Chciałbym dodać inny algorytm aproksymacyjny, sparametryzowany: dla ustalonego (lub bardziej precyzyjnie δ = Ω ( 1δ>0 ), można obliczyćw(1+hemibursztynianu)-approximation liczby prostych odcinków, w obu nieukierunkowane lub skierowanej wykresie o długościKw czasieO*(2O(K)).δ=Ω(1poly(k)) (1+δ) k O∗(2O(k))
źródło