困難な組合せ最適化問題を効率良く解くことの重要性がますます高まっている。
伝統的なアプローチのひとつに、山登り法やタブーサーチ、遺伝的アルゴリズムをはじめとする局所探索がある。局所探索は非常に探索効率が良く、現在でも組合せ最適化問題に対する最も効果的な手法のひとつである。しかし、局所探索プログラムを設計するには対象とする問題についての詳しい知識が必要で、コーディングも煩雑である。特に「近傍関数」のコーディングが難しい。また作られたプログラムが問題に特化したものになり、柔軟性に乏しいという問題もある。
他方、新しいアプローチとして制約プログラミングが注目を集めている。制約プログラミングでは、プログラマは問題の制約条件と目的関数を記述して制約システムに渡すだけで良い。解の探索は制約システムが自動で行う。このように汎用性・簡便性・柔軟性が制約プログラミングの大きな利点であるが、反面、探索アルゴリズムが多くの場合バックトラックと分枝限定法による大域探索のみであり、探索効率が悪い。
本プロジェクトの目標は、「局所探索が使える制約プログラミングシステム」を作ることである。開発項目は大きくふたつの項目に分かれる:
1.近傍関数の自動生成システム
これにより、問題の制約条件と目的関数を記述するだけで局所探索が適用可能になり、従来の大域探索より効率良く解が求まるようになる。
2.局所探索プログラムの開発支援システム。
制約プログラミングの特性を利用して、局所探索プログラムの開発・改良を支援する。
最後にこれらをひとつの制約プログラミングシステムとして統合する。本提案により、大域探索か局所探索かの二者択一ではない両方の利点を生かしたような最適化手法を確立できれば良いと考えている。
|