本研究の目標は、困難な組み合わせ最適化問題を解くためのヒューリスティクス(発見的探索法)を自動的に生成するために、遺伝アルゴリズムをどのように使用すれば良いのかを調査することであった。昨年、我々はその計画を順調に実行することができた。 まず、遺伝アルゴリズムを用いて並列なシステム上でSAT問題を解くための発見的自動探索アルゴリズムを改善した。 SAT問題とは与えられたSATの充足可能性を判定する問題で、ジョブスケジューリングやAIのプランニング等幅広い応用がある。一方でNP困難な問題としても知られ大規模なSATに対し充足の可能性を厳密に判定するのは非常に困難である。そのため、様々なヒューリスティクスが考えられている。 我々のプログラム中で、並列な遺伝プログラミングシステムはドメイン特定の言語で表現されたSATの探索機能を発達させるために使用されている。実際には自動的に生成されるヒューリスティクス関数はSATのローカルサーチアルゴリズムの一部としてコンパイル・実行されている。 この新たなSATに対するヒューリスティクスアルゴリズムはグリッドクラスターを用いた大規模な実験の結果、人間が試行錯誤して探すのは元より既存の逐次のアルゴリズムと比べても非常に高いパフォーマンスを持つことが示せた。 また並列遺伝プログラミングシステムを実装する為の基盤として、新たにCommon Lisp内で標準的なMessage Passing Interface(MPI)の機能を簡単に使用するためのライブラリーを実装した。
|