| 
(1) 制約解消解消系本体の開発
当初の予定では既存の制約解消解消系Creamを用いる予定であったが,
(a)柔軟性に乏しく提案手法を適用しづらい,
(b)遅い
という二つの理由から,制約解消系を新しく書き直した.新しい制約解消系を,便宜上 "veecon" と仮称する.
Creamに対するveeconの改良は主に3つある.
(a) メタ制約(AND, OR, NOT等)の導入
(b) ranch-and-boundループの高速化
(c) 変数ドメイン表現の動的最適化
このうち (a) が柔軟性,(b) と (c) が速度に寄与する.(b)はいわゆる「ループ最適化」である.またそれができるようにデータ構造も変えた.(c)
はドメインの大きさによって適切な (≒最も高速な) ドメイン表現に切り替えるものである.Cream (ver.2) にも同様の機能はあったが,表現が2種類から3種類に増え,より細かな制御が可能になっている.
ILOG Solverは商用制約解消系の中でも最も速いもののひとつであるが,基礎的なベンチマークで比較すると,ILOG solverに対して
Cream: 十数倍から数十倍
veecon: 2.0-3.0倍
程度の時間がかかった.このように,基本的な制約解消速度が,商用製品と比較しうる程度にまで大きく改善された.ただし,メモリ効率の点ではILOGに大きく遅れを取っているのでこちらの改善も必要である.
(2) 近傍生成アルゴリズムの開発・改良
(2-1) 2次元カッティング問題への適用
2次元カッティング問題では
(a) 1枚の大きな矩形の板(の寸法)
(b) (a)よりは小さい複数の異なる矩形の板(の寸法)
(c) (b)の板それぞれの価値(目的関数)
(d) (b)の板それぞれの最低/最大切り出し枚数.(制約条件)
が与えられる.目的は,(a)の板から(d)を満たすように(b)の板を切り出して,切り出された板の価値の合計値を最大化することである.
単純化していうと,それぞれの板pについて「切り出す」「切りださない」を決定することが重要である.板pを切り出す場合,「板pは大きな板(a)からはみ出さない」という制約が加わり,さらに「板pは他の切り出される板と重ならない」という制約も加えられる.
以前のアルゴリズム (Cream ver.2) では上のすべての制約を一度全部加えてから最適化を行っていた.つまり,全ての板について切り出すか切り出さないかを決めてから最適化を行っていた.しかし,加えられる制約間にコンフリクトがあった場合
(つまり解が存在しない場合) その間の時間は無駄になってしまう.
新しいアルゴリズムでは「制約プール」という制約のコンフリクトを監視するようなオブジェクトを用意し,そこにひとつずつ制約を入れていくことにした.これにより,途中でコンフリクトが発見されればそこで中止して次のステップに進むことができる.これで無駄な時間を減らすことができ,近傍生成ループ全体の速度を向上させることができる.それを実装した結果,従来の近傍生成法より良い解を(平均的に)より早く発見することができるようになった.
ただし,「全体として(平均的に)速くなった」ことを確かめただけで,内部動作の詳しい解析はまだ行っていない.すなわち,そのアルゴリズムによって実際に
(a) 近傍生成時の矛盾の発生は減少したか,
(b) 近傍生成の時間が短くなったか,
という二点について,はっきりと確認がとれてはいない.これを調べることは
(a) プログラムが確率的動作をする
(b) 新手法と旧手法がveeconとcreamという別の制約エンジ上で動いている
点からすこし難しい.しかし,今後のためにこの解析は必要である.
(2-2) 0-1最適化問題への適用
0-1最適化問題は,整数最適化問題の一種で(ほぼ)全ての変数が値として0か1をとるものを言う.変数の数が非常に多いのが特徴である.問題が線形であれば商用/非商用の一般型整数計画法ソフトを使うと良い.しかし問題が非線形になると,対象となっている問題に特化したソルバーがなければ実用的解を得るのは難しいというのが現状である.
さて,提案手法 (近傍自動生成による局所探索) でこの問題にアタックするのは,二次元カッティングの場合よりも難しい.それは(0-1)整数計画問題では制約条件が全て変数の(非)線形(不)等式であらわされ,「p
OR q」といった明示的な選言的制約は現れないからである.
単純に思いつく方法のひとつとして,それぞれの0-1変数xについて「x=0 OR x=1」という制約条件があるものとして無理やり選言的制約に変換する方法があるが,この方法は各変数に0/1を割り当てるのを遠回りにしているだけで意味がない.それに,変数の数が多いから制約の数も比例して多くなり,提案手法では処理しきれないと考えられる.
現時点ではまだこちらの問題には手をつけていない.しかし提案手法の適用範囲を広げるために避けて通ることはできない.
|