実際の問題では、問題解決に必要な制約条件が多種多様であり、計算機上での表現が困難である。
これらの制約を計算機で効率よく扱うためには、制約を整理・分類することが必要であると考えられる。
その際に考えられる点は以下の通りである。
本研究では、制約条件を分析することで、それぞれの性質により分類できることに注目した。
乱雑な大量のルールでは冗長性を多く含み、計算にかかるコストが大きくなる。
そこで、本研究では、実際問題に適応できる制約表現の枠組みを提案することを目的として、現在研究を行っている。
探索とは、多くの可能性の中から、特定の問題の条件に合った解を見つけ出すための戦略である。
ここで対象とする組合せ最適化問題は、NP困難であるという、
計算の複雑さの意味で本質的に困難であることの理論的根拠があり、汎用な解法は存在しない。
制約充足問題などの組合せ探索問題の解法は、大きく次の2通りに分けることができる。
以下に、それぞれの解法を簡単に紹介し、本研究で用いた解法を説明する。
ここで紹介する解法については、次のマップカラーリング問題を用いる。
この問題は、各ノード(変数)に色(値)を割り当てる問題であるが、
隣接するノード間には同じ色を塗らないという制約がある。
木探索法の具体例を以下に示す。ここでは、rootから、変数V1,V2,V3の順に値を割り当て、
制約を満たさなくなると、バックトラックにより別の割当を試みる。
このように値の割当順で結果が異なる。さらに、変数の割当順でも結果は異なる。
山登り法の具体例を以下に示す。それぞれ四角で囲まれたものは、解候補である。
×印は、その変数が制約に違反していることを示す。
図4)のように探索が失敗することがある(局所最適解という)。
本研究で扱う問題は、探索空間が膨大であるため、近似解法の山登り法を用いることにした。
また、制約の表現の問題点からも、既存の探索法をそのまま使うのでは対処しきれないため、
人間とシステムが対話によって協調して探索を進めるようにした。
以下に、本研究で開発した時間割編成システムの処理の流れを図で示す。
制約の表現
例1) 時間割編成問題(一部)
例2) 室内レイアウト問題(一部)
例3) 日本語点字変換(1996年度研究テーマ、一部)
このテーマでは、日本語を点字に置き換える際に用いられる「分かち書き」に区切るための制約を考案している。
探索手法
厳密解法
系統的に探索し、正確な解を得るための探索法である。
探索空間をいかに狭めるのかがポイントである。
《具体的な探索手法の例》
木探索法、動的計画法、分枝限定法など。
《特徴》
近似解法
準最適解を得るための戦略であり、初期値を反復改良して近似解を得る解法である。
この近似解法において、確率的に保証された形で最適解が得られればよいというのが、
確率的アルゴリズムである(実行ごとに探索パスが異なる)。
《具体的な探索手法の例》
山登り法、遺伝的アルゴリズム(GA)など。
《特徴》
本研究で用いた解法
お帰りはこちら