Usuń minimalną liczbę wierzchołków, aby rozłączyć wykres

9

Zastanów się nad niekierowanym wykresem ze źródłem i wierzchołkiem ujścia. Chcemy usunąć minimalną liczbę wierzchołków na tym wykresie, aby odłączyć dowolną ścieżkę między źródłem a ujściem.

Czy możemy to zrobić, używając algorytmu maksymalnego przepływu, minimalnego cięcia?

babysnow
źródło
4
Powinien działać (zakładam, że wszystkie krawędzie mają tę samą pojemność).
A.Schulz,

Odpowiedzi:

3

(Ta odpowiedź została pierwotnie podana jako część pytania, w celu weryfikacji).

Moja intuicja mówi mi, że możemy użyć algorytmu maksymalnego przepływu, minimalnego cięcia, aby rozwiązać ten problem:

  1. Zastąp każdą z nieukierunkowanych krawędzi parą skierowanych krawędzi.
  2. Zamień każdy wierzchołek v z dwoma wierzchołkami vw i vna zewnątrzpołączone krawędzią. wszystkie przychodzące krawędziev będzie związany z vw, wszystkie wychodzące krawędzie v będzie związany z vna zewnątrz.
  3. Spróbuj znaleźć minimalne cięcie M.. KrawędzieM. odnoszą się do wierzchołków, które musimy usunąć.
FrankW
źródło
Nie jest dla mnie jasne, dlaczego miałoby to gwarantować pracę ręczną. Co się stanie, jeśli minimalne cięcie zmodyfikowanego wykresu zawiera niektóre krawędzie, które nie znajdują się między niektórymivw i vna zewnątrz, ale czy jest ukierunkowana krawędź od kroku 1 rozwiązania? Jak myślisz, dlaczego każde cięcie minimalnego wierzchołka oryginalnego wykresu będzie w korespondencji jeden-do-jednego z cięciem minimalnym zmodyfikowanego wykresu? Myślę, że potrzebny jest dowód.
DW
Aby wesprzeć odpowiedź FrankW, skorzystaj z poniższych linków, jest artykuł z Abdol – Hossein Esfahanian popierający zamianę nieukierunkowanej krawędzi na dwie skierowane krawędzie. - networkx.github.io/documentation/latest/reference/generated/… - cse.msu.edu/~cse835/Papers/Graph_connectivity_revised.pdf
Pawan Puttaswamy
1
@awanp, nie podążam za tobą. Oczywiście możesz zastąpić niekierowaną krawędź dwiema skierowanymi krawędziami. Pytanie nie brzmi, czy możesz to zrobić, ale czy po zastosowaniu algorytmu wymienionego na liście FrankW, czy wyjście jest gwarantowane jako prawidłowe rozwiązanie pierwotnego problemu. Nie widzę znaczenia strony man biblioteki NetworkX. Jeśli chodzi o artykuł: ma 14 stron, z 11 różnymi algorytmami, większość bez dowodu poprawności. Czy możesz sprecyzować, która część jest tutaj istotna?
DW