Nasycenie

Nasycenie
Klasa Kolorowanie wykresów
Złożoność przestrzeni w najgorszym przypadku Ο ( n 2 )

DSatur to algorytm kolorowania grafów zaproponowany przez Daniela Brélaza w 1979 roku. Podobnie jak algorytm zachłannego kolorowania , DSatur koloruje wierzchołki grafu jeden po drugim, dodając wcześniej nieużywany kolor w razie potrzeby. Po pokolorowaniu nowego wierzchołka algorytm określa, który z pozostałych niekolorowanych wierzchołków ma największą liczbę kolorów w swoim sąsiedztwie i koloruje ten wierzchołek jako następny. Brélaz definiuje tę liczbę jako stopień nasycenia danego wierzchołka. Skrócenie terminu „stopień nasycenia” tworzy nazwę algorytmu. DSatur to heurystyczny algorytm kolorowania grafów, który zapewnia dokładne wyniki dla wykresów dwudzielnych, cyklicznych i kołowych. W literaturze DSatur jest również określany jako nasycenie LF.

Pseudo kod

Niech „stopień nasycenia” wierzchołka będzie liczbą różnych kolorów używanych przez jego sąsiadów. Biorąc pod uwagę prosty , nieukierunkowany wykres który zagraża zestawowi i zestawowi krawędzi kolory wszystkim wierzchołkom za pomocą kolorowych etykiet sol . Algorytm działa w następujący sposób:

  1. Niech wierzchołkiem w najwyższym stopniu W przypadku powiązań wybierz wierzchołek spośród wierzchołków o największym stopniu w podgrafie indukowanym przez wierzchołki bez koloru.
  2. Przypisz która nie jest używana przez żadnego z jej sąsiadów.
  3. Jeśli wszystkie wierzchołki zostały pokolorowane, to koniec; w przeciwnym razie wróć do kroku 1.

Krok 2 tego algorytmu przypisuje kolory wierzchołkom przy użyciu tego samego schematu, co algorytm zachłannego kolorowania . Główne różnice między tymi dwoma podejściami pojawiają się w kroku 1 powyżej, gdzie wierzchołki postrzegane jako najbardziej „ograniczone” są kolorowane jako pierwsze.

Przykład

Wykres kołowy z siedmioma wierzchołkami i dwunastoma krawędziami

Rozważ wykres pokazany po prawej stronie. Jest to wykres kołowy i dlatego zostanie optymalnie pokolorowany przez algorytm DSatur. Wykonanie algorytmu powoduje wybranie i pokolorowanie wierzchołków w następujący sposób. (W tym przykładzie, gdy powiązania występują w obu heurystykach DSatur, wybierany jest wierzchołek z najniższym spośród nich etykietowaniem leksykograficznym.)

  1. wierzchołek sol (kolor 1)
  2. wierzchołek (kolor 2)
  3. wierzchołek (kolor 3)
  4. wierzchołek do (kolor 2)
  5. wierzchołek (kolor 3)
  6. Wierzchołek mi (kolor 2)
  7. wierzchołek (kolor 3)

Daje to ostateczne trójkolorowe rozwiązanie .

Wydajność

Najgorszy przypadek złożoności DSatur to wierzchołków na wykresie ponieważ proces wybierania następnego wierzchołka do pokolorowania zajmuje trochę przeprowadzany Algorytm można również zaimplementować przy użyciu sterty binarnej do przechowywania stopni nasycenia, działając w gdzie jest liczbą krawędzi w grafie. Daje to znacznie szybsze przebiegi z rzadkimi wykresami.

Wiadomo, że DSatur jest dokładny dla grafów dwudzielnych, a także dla wykresów cykli i kół. W porównaniu empirycznym przeprowadzonym przez Lewisa w 2021 r. DSatur dawał znacznie lepsze kolorowanie wierzchołków niż zachłanny losowych wykresach z prawdopodobieństwem krawędzi gdy z kolei dawał znacznie gorsze kolorowanie niż rekurencyjny największy pierwszy algorytm .

Linki zewnętrzne