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
edytujSilnie 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)