Wystąpił następujący problem:
Biorąc pod uwagę ukierunkowany wykres acykliczny z rzeczywistymi wartościami grubości krawędzi oraz dwoma wierzchołkami s i t, oblicz minimalny st st cut.
Dla ogólnych wykresów jest to trudne NP, ponieważ można w prosty sposób zredukować maksymalne cięcie, po prostu odwracając wagi krawędzi (popraw mnie, jeśli się mylę).
Jaka jest sytuacja z DAG? Czy cięcie minimalne (lub maksymalne) można rozwiązać w czasie wielomianowym? Czy jest to trudne dla NP, a jeśli tak, to czy są znane algorytmy aproksymacyjne?
Próbowałem znaleźć pracę nad tym, ale nie byłem w stanie (może po prostu używam niewłaściwych słów kluczowych podczas wyszukiwania), więc miałem nadzieję, że ktoś może coś o tym wiedzieć (lub znaleźć).
Odpowiedzi:
Udoskonaliłeś swój problem w komentarzach. Mówiąc ściślej, masz DAG ze wszystkimi krawędziami odpływającymi ze źródła kierunku ujścia (to znaczy wszystkie krawędzie znajdują się na ścieżce od do ). Chcesz znaleźć minimalne cięcie między dwoma kawałkami DAG, gdzie pierwszy kawałek jest podłączony do , a drugi podłączony do . W przypadku tego problemu działa wariant standardowego algorytmu programowania liniowego dla MIN-CUT, nawet z ujemnymi wagami krawędzi.s t s t s t
Używamy tego samego zapisu, co w Wikipedii . Koszt przewagi wynosi . Umieszczamy potencjalną funkcję na każdym węźle i pozwalamy . LP to(i,j) cij pi dij=pi−pj
Te równania gwarantują, że , ponieważ każdy wierzchołek jest na pewnej ścieżce - . Podobnie, ponieważ jest nieujemne, potencjały na dowolnej ścieżce od do maleją. Wciąż musimy pokazać, że nie jest optymalnym rozwiązaniem LP ze wszystkimi albo albo . Wynika to z faktu, że wartość rozwiązania LP powyżej jest wartością oczekiwaną cięcia , gdzie wybiera się losowo w , a gdzie cięcie uzyskuje się poprzez umieszczenie wszystkich wierzchołków0≤pi≤1 s t dij=pi−pj s t pi 0 1 Cw w [0,1] Cw i z w pierwszym zestawie wierzchołków, a wszystkie wierzchołki z w drugim zestawie.pi≥w pi<w
źródło