Reklama
Dzisiaj jest 10 stycznia 2025 r.
Chcę dodać własny artykuł
Reklama
Reklama
Reklama

Algorytm Kruskala

Algorytm Kruskala

Algorytm Kruskala to algorytm grafowy służący do wyznaczania minimalnego drzewa rozpinającego w spójnym, nieskierowanym grafie ważonym. Jego celem jest znalezienie drzewa obejmującego wszystkie wierzchołki grafu o najmniejszej możliwej wadze. Algorytm został opisany przez Josepha Kruskala w 1956 roku.

Reklama

Opis algorytmu

Algorytm Kruskala przebiega w kilku krokach:

  • Utwórz las L z wierzchołków grafu, gdzie każdy wierzchołek stanowi osobne drzewo.
  • Utwórz zbiór S zawierający wszystkie krawędzie grafu.
  • Dopóki zbiór S nie jest pusty, a L nie stanowi jeszcze drzewa rozpinającego:
    • Wybierz krawędź o minimalnej wadze z S i usuń ją.
    • Jeśli krawędź łączy dwa różne drzewa, dodaj ją do lasu L, łącząc te drzewa.
    • W przeciwnym razie, odrzuć tę krawędź.

Po zakończeniu algorytmu, L będzie minimalnym drzewem rozpinającym.

Reklama

Implementacja i złożoność

W celu implementacji algorytmu można użyć tablicy krawędzi posortowanych według wag. W każdym kroku wystarczy wybrać następną krawędź. Sortowanie krawędzi odbywa się w czasie O(E \log E), co można także zapisać jako O(E \log V). Następnie wykorzystuje się struktury zbiorów rozłącznych, co pozwala na efektywne łączenie i sprawdzanie zbiorów. Całkowity czas działania algorytmu wynosi O(E \log V). W przypadku, gdy krawędzie są już posortowane, czas działania może wynosić O(E \alpha(E,V)).

Dowód poprawności

Dowód poprawności algorytmu Kruskala składa się z dwóch części:

  • Udowodnienie, że wynikowy graf jest drzewem rozpinającym.
  • Udowodnienie, że jest to drzewo o minimalnej wadze.

Drzewo rozpinające

Niech G będzie spójnym, ważonym grafem, a T podgrafem wygenerowanym przez algorytm. T nie może zawierać cyklu, ponieważ każda dodana krawędź łączy dwa różne drzewa. Ponadto, T nie może być niespójny, ponieważ pierwsza napotkana krawędź łącząca różne składowe musi być wybrana przez algorytm. W ten sposób T stanowi drzewo rozpinające G.

Minimalna waga

Dowód minimalnej wagi uzyskuje się w drodze indukcji.

Reklama
Reklama