Zliczanie wszystkich par rozłącznych ścieżek

10

Z uwagi na skierowany wykres , a dwa wierzchołki s , t V . Para prostych ścieżek p 1 , p 2 od s do t jest rozłącznymi krawędziami, jeśli nie dzielą krawędzi.G=(V,E)s,tVp1,p2st

Za pomocą maksymalnego przepływu łatwo jest zdecydować, czy istnieje para rozłącznych ścieżek krawędzi od do t . Czy istnieje algorytm wielomianowego opóźnienia czasowego do wyliczenia wszystkich par rozłącznych ścieżek brzegowych od s do t ?stst

Amator
źródło
1
Nie, ponieważ może istnieć wykładniczo wiele takich ścieżek.
Kaveh
6
@Kaveh: Myślę, że „algorytm wielomianowego opóźnienia” może zająć wykładniczy czas, o ile opóźnienie między wyjściami jest wielomianowe. Na przykład istnieje algorytm wielomianowego opóźnienia, który wyświetla listę wszystkich maksymalnych klików w porządku rosnącym, nawet jeśli liczba maksymalnych klików jest wykładnicza.
Robin Kothari,
3
Czy w pytaniu można podać wyjaśnienie opóźnienia wielomianowego? Nie znałem go, dopóki nie przeczytałem komentarza Robina.
Artem Kaznatcheev
@ Robin, masz rację, nie zwracałem uwagi na słowo „opóźnienie”.
Kaveh

Odpowiedzi:

6

Uważam, że odpowiedź Artema Kaznatcheeva jest poprawna, ale nie daje przestrzeni wielomianowej. Oto inne podejście, które powinno pod tym względem działać nieco lepiej.

Za pomocą maksymalnego przepływu możliwe jest rozwiązanie nieco bardziej ogólnego problemu: znajdź parę ścieżek rozłącznych krawędzi od niektórych dwóch wierzchołków {s1, s2} do innej pary wierzchołków {t1, t2}, ale bez kontrolowania, który wierzchołek źródłowy jest podłączony do którego wierzchołka docelowego.

Załóżmy, że mamy wykres G i wierzchołki s1, s2, t1, t2, dla których chcemy wymienić wszystkie pary ścieżek. Znajdź pojedynczą parę ścieżek P1, P2 i niech e = (s1, v) będzie pierwszą krawędzią na jednej z tych ścieżek. Następnie możemy podzielić przestrzeń problemową na dwa podproblemy: pary ścieżek używających e są takie same jak ścieżki od {v, s2} do {t1, t2} w G-s1, i pary ścieżek, które nie używają e są takie same jak ścieżki od {s1, s2} do {t1, t2} w Ge. Powtórz w obu tych dwóch podproblemach i (aby uniknąć powielania) zgłoś ścieżkę tylko wtedy, gdy znajdziesz się u dołu rekurencji.

David Eppstein
źródło
1
czy jest oczywiste, że algorytm ma wielomianowe opóźnienie, jeśli poczekamy do końca rekurencji?
Artem Kaznatcheev
Rekurencja zabiera wielomianowo wiele poziomów do dołu (ponieważ każdy poziom usuwa coś z wykresu), a każda gałąź albo natychmiast wraca (ponieważ nie może znaleźć pary ścieżek), albo robi dolną część i zwraca coś, więc tak, to zajmuje tylko opóźnienie wielomianowe.
David Eppstein
5

Po raz pierwszy czytam o algorytmach wielomianowego opóźnienia, więc nie jestem w 100% pewien swojej odpowiedzi, ale myślę, że coś takiego powinno działać.

<DG

F


F(s,t,G,D)

DD

  1. (P,Q)P<Qst
  2. (P,Q)D

    (P,Q)D

    uvE(PQ)F(s,t,G{uv},D)


Ds,tV(G)s<tstF(s,t,G,D)

PSPACEPSPACE

Artem Kaznatcheev
źródło