CCM をつかった地図やグラフ頂点の彩色の方法

はじめに

CCM では問題をとくのにプロダクション規則と局所評価関数とをつかいます. 地図やグラフの頂点をぬりわけるには,1 個のプロダクション 規則と 1 個の局所評価関数とをつかいます.

基本のプロダクション規則

あたえられた色のなかからひとつを選択して,地図であれば 1 個の領域, グラフであれば 1 個の頂点の色を変更する規則をつかいます.4 色ぬりわけで あればその (現在の色をふくむ) 4 色のなかからえらびます. この規則を適用するときには,領域または頂点をランダムに (乱数をつかって) 選択します.ただし,選択した頂点に対して実際に規則を適用するかどうかは, つぎにのべる局所評価関数をつかってきめます.地図の場合の領域と 色の選択を,右のアプレットについているボタンをおして,ためしてみてください. (右のアプレットの原始プログラム)

局所評価関数

局所評価関数は 2 個の領域または頂点のあいだに定義されます.地図のばあいに ついていえば,領域 x, y のあいだの局所評価関数 o(x, y) の値は,x, y がことなる色でぬられているときには 1,同一の 色でぬられているときには 0 と定義します.つまり,よりよい状態のときには, よりたかい値をとるように定義します.

規則の適用法

プログラムの実行においては,適用候補の領域または頂点をランダムに選択します. 地図のばあいについていえば,選択した領域に実際に規則を適用するか どうかは,それと周囲の領域とのあいだの局所評価関数をつかってきめます. 規則の適用によって選択されたすべての領域に関するすべての 局所評価関数の和をもとめて,それが規則の適用によって増加するときには 規則を適用し,そうでないときには規則を適用しません. つまり,規則の適用が局所的に彩色の状態を改善するときにはそれを適用し, 改悪するときには適用しないということです.ただし,もちろん局所的に改善 されても全体としては改悪されることもありますし,その逆のこともあります.

触媒

上記の基本のプロダクション規則では 1 個の領域しか選択しないので, じつは局所評価関数の和は 0 になってしまいます.これでは解をもとめることはできないので,規則の なかで色を変更する領域だけでなくてそれに隣接するいくつかの領域もあわせて 選択するようにします.こうすると,それらの隣接領域も局所評価関数の 和をもとめるときに計算に参加するので,CCM の計算機構がはたらくように なります.このように規則の適用の前後で変化しないデータのことを 触媒 (catalyst) とよびます.隣接領域を 1 個だけ 選択するのが,アプレットのページで つかわれている ``Single catalyst swapping rule'' です.

触媒の数はふやすことができます. アプレットのページでも 2 個の触媒をつかう ``Double catalyst swapping rule'' をためすことができ ます.存在する隣接領域の数は領域ごとにことなるので,すべての隣接領域を 触媒とする規則をつくることもできます.これが ``Variable catalyst rule'' です. 触媒の数をふやすにつれてしだいに計算に非局所的な情報をつかうよう になって,解をもとめるまでの規則の適用回数は減少していきます.


[アプレットのページにもどる][例題ホームページにもどる]
著作 (C) 1996, 1999  金田 泰
コメントは yasusi @ kanadas.com におくってください.
作成: 96-9-29, 改訂: 2003-10-19.