| クラス | グラフ彩色 |
|---|---|
| 最悪の場合の空間計算量 | Ο ( n 2 ) |
DSaturは、 1979年にダニエル・ブレラズによって提唱されたグラフ彩色アルゴリズムです。[ 1 ]貪欲彩色アルゴリズムと同様に、DSaturはグラフの頂点を1つずつ彩色し、必要に応じて未使用の色を追加します。新しい頂点が彩色されると、アルゴリズムは残りの未彩色頂点のうち、近傍の色数が最も多い頂点を決定し、次にその頂点を彩色します。ブレラズはこの数値を、与えられた頂点の彩度(degree of saturation )と定義しています。 [ 1 ]「彩度(degree of saturation)」という用語の短縮形が、このアルゴリズムの名前の由来です。[ 2 ] DSaturはヒューリスティックなグラフ彩色アルゴリズムですが、二部グラフ、[ 1 ]サイクルグラフ、ホイールグラフに対して正確な結果を生成します。[ 2 ] DSaturは、文献では彩度LFとも呼ばれています。[ 3 ]
頂点の「彩度」を、その近傍で使用されている異なる色の数とします。頂点集合と辺集合からなる単純な無向グラフ が与えられた場合、アルゴリズムは色ラベルを使用してすべての頂点に色を割り当てます。アルゴリズムは次のように動作します。[ 4 ]
このアルゴリズムのステップ2では、貪欲彩色アルゴリズムと同じ手法を用いて頂点に色を割り当てます。2つのアプローチの主な違いは、上記のステップ1で、最も「制約」されていると判断された頂点が最初に色付けされるという点にあります。

右に示すグラフを考えてみましょう。これは車輪グラフなので、DSaturアルゴリズムによって最適に色付けされます。アルゴリズムを実行すると、以下のように頂点が選択され、色付けされます。(この例では、DSaturの両方のヒューリスティックで同点が発生した場合、これらの頂点の中で最も辞書式ラベルの低い頂点が選択されます。)
これにより、最終的な 3 色のソリューションが得られます。
DSaturの最悪ケースの計算量は です。ここではグラフの頂点数です。これは、次に色を付ける頂点を選択するプロセスに時間がかかり、このプロセスが 回実行されるためです。このアルゴリズムは、飽和度を格納するためにバイナリヒープを使用して実装することもできます。バイナリヒープは で動作します。または、フィボナッチヒープは で動作します。 [ 2 ]これにより、疎グラフでの実行速度が大幅に向上します
DSaturは二部グラフ[ 1 ]だけでなく、サイクルグラフやホイールグラフでも正確であることが知られています。 [ 2 ] 2021年のルイスによる実験的比較では、DSaturは、エッジ確率を持つランダムグラフ上で貪欲アルゴリズムよりも大幅に優れた頂点彩色を生成しましたが、一方で再帰最大優先アルゴリズムよりも大幅に劣った彩色を生成しました。[ 2 ]