グラフ彩色

スケジューリング問題

図1 打ち合せたいペア

彩色の研究紹介をする前に、スケジューリング問題という問題を考えましょう。

会社には様々なプロジェクトがあり、複数のプロジェクトに参加している人もいます。
今、AさんとBさんが打ち合わせをしたいのですが、AさんはCさんとも打ち合わせをしなくてはなりません。
同様に、BさんはCさんともDさんとも打ち合わせをしたいですし、CさんはDさんと打ち合わせをしたいです。
つまり、打ち合わせをしたいペアを挙げると、

(A,B)(A,C)(B,C)(B,D)(C,D)

となります。

図2 スケジューリング

では、この4人が全ての打ち合わせを終了し、早く帰宅するためにはどのようにスケジュールを組めばよいでしょう?
ただし、各ペアの打ち合わせはちょうど1時間かかるものとします。

スケジュールを考えましょう。
まず1時間目に(A,B)ペアの打ち合わせをすると、その間AさんとBさんが入っているペア(A,C)(B,C)(B、D)は打ち合わせをすることができません。しかし、AさんもBさんも入っていないペア(C,D)は同時刻に打ち合わせをすることができます。
2時間目に(A,C)ペアが打ち合わせをすると、先ほどと同じように同時刻に打ち合わせができるのは(B,D)ペアだけになります。
そして、最後の3時間目に、残った(B,C)ペアの打ち合わせをします。

スケジューリング問題とグラフ

さて、ここまでの話をもっとわかりやすくできないでしょうか?今の例では人数が4人ですから、先ほどのようになんとか手作業でスケジュールを組むことができます。しかし、人数が100人、1000人と膨れ上がってきたら… そこで登場するのがグラフであり、その理論の中でも彩色問題であるのです。

図3 グラフの例 図4 グラフとスケジューリング問題の対応

グラフとは、点集合と辺集合で定義されるものです。 例えば、下の図1を見てください。ここで{v1, v2, v3, v4}は点集合と呼ばれ、{e1, e2, e3, e4, e5}は辺集合と呼ばれます。

実はこのグラフ、先ほどのスケジューリング問題に対応させることができるのです。下の図2のように、Aさんを点v1に対応させ、同様にBさんを点v2に、Cさんを点v3に、Dさんを点v4に対応させます。すると、先ほどの打ち合わせのペアは、

(A,B)⇔ e1
(A,C)⇔ e2
(B,C)⇔ e3
(B,D)⇔ e4
(C,D)⇔ e5

というように、グラフの各辺に対応させることができるのです。

では、グラフ上でスケジュールはどのように立てればよいのでしょうか?そこで登場するのが、辺彩色という問題です。

辺彩色

図5 辺彩色の例とスケジューリング問題への対応

辺彩色とは、その名の通り、グラフの各辺に色を割当てていきます。ただし、点を共有している辺には異なる色を割当てるようにします。例えば、上の図2のグラフに辺彩色を行うと下の図3のようになります。

例えば、点v2を共有している辺e1, e3, e4は、それぞれ異なる色(赤,緑,青)で塗られていますよね。他の点に関しても同様のことが言えます。したがって、上の辺彩色は成功しているわけです。

そして、各辺に塗られている色をスケジュールの時間に対応させます。つまり、赤を1時間目に、青を2時間目に、緑を3時間目に対応させ、それに従って打ち合わせを行うのです。上の例では、1時間目に赤で塗られている(A,B)と(C,D)の打ち合わせを行い、2時間目に青で塗られている(A,C)と(B,D)の打ち合わせを行い、3時間目に緑で塗られている(B,C)の打ち合わせを行うのです。今、同じ点(人)に繋がっている辺(打ち合わせ)には異なる色(時間)が割当てられていますので、スケジュールがぶつかる事はありません。

そして、できるだけ早く帰宅するためには、できるだけ少ない色でグラフを彩色すればよいことがわかります。このように最少の色数を求める問題は辺彩色問題と呼ばれています。

様々な彩色問題

点彩色

図6 点彩色の例

グラフの点に色を割当てます。ただし、辺で結ばれている2点は異なる色になるように割当てます。例えば、下のグラフで点v2と辺で結ばれている点v1,v3,v4は、赤と異なる色で塗られています。その一方で、辺で結ばれていない点v1とv4は同じ色(緑)で塗られています。もちろん、v1とv4は異なる色で塗られていても構いません。

全彩色

図7 全彩色の例

これは上記の点彩色と辺彩色を組合わせたような彩色です。辺で結ばれている点同士、同じ点に繋がっている辺同士、さらに繋がっている点と辺が異なる色になるように色を割当てます。例えば、下のグラフで点v2に注目すると、v2と辺で結ばれている点v1,v3,v4は紫と異なる色で塗られていますし、点v2に繋がっている辺e1,e3,e4はそれぞれ異なる色で塗られており、さらにそれらの辺はv2の赤とも異なる色で塗られてます。

この他にも様々な彩色問題が研究されています。私たちは、その中のいくつかに注目し研究しています。