Składowa silnie spójna

Silnie spójna składowa (SSS) grafu skierowanego G to taki maksymalny podgraf H, a jednocześnie jego spójna składowa, taka, że pomiędzy każdymi dwoma jej wierzchołkami istnieje ścieżka.

Innymi słowy, w silnie spójnej składowej da się dojść z każdego jej wierzchołka do każdego innego.

Dla grafu nieskierowanego każda spójna składowa będzie silnie spójna.

Zastosowanie

edytuj

Silnie spójne składowe mają zastosowanie przy de-cyklizacji grafu (usunięciu cykli) - graf silnie spójnych składowych(tzn. graf w którym wierzchołki odpowiadają silnie spójnym składowym, a krawędź istnieje pomiędzy wierzchołkami w.t.w. gdy w wejściowym grafie istniała między silnie spójnymi składowymi) jest acykliczny.

Algorytm

edytuj
  • Dla grafu nieskierowanego, wystarczy wyznaczyć jego spójne składowe. Będą one tożsame z silnie spójnymi składowymi. Można to zrobić, przechodząc drzewo algorytmem DFS, za każdym razem oznaczając wierzchołki połączone krawędzią jednym numerem.
  • Dla grafu skierowanego algorytm jest bardziej złożony:
    • Obliczamy tabelę czasów przetworzenia Post-order wierzchołków, algorytmem przeszukiwania w głąb (DFS)
    • Wywołujemy algorytm DFS dla grafu transponowanego (tj. grafu z odwróconymi zwrotami krawędzi) w kolejności malejących czasów przetworzenia wierzchołków, zapisanych w tablicy Post-order. Wszystkie wierzchołki w jednym drzewie przeszukiwania w głąb należą do jednej silnie spójnej składowej.

W obu przypadkach złożoność czasowa wynosi O(E), pamięciowa O(E+V)

Zobacz też

edytuj

Bibliografia

edytuj