生得分離モデルの再帰的な初期化戦略にDIRECTの再帰的な空間分割戦略を適用した新しい探索手法を提案する。 これは、多目的最適化問題に対し、並列にGAを行うフレームワークである。 加えて、多目的NKモデルのベンチマーク問題を新たに作成し、提案手法の大域的探索性能を評価した。 実験の結果より、提案手法は、設計変数空間上での大域的探索性能の観点で、ベースラインを上回ることがわかった。
染色体長や目的数といった重要なパラメータはconfig.hに記載されています。
これらのパラメータは、GAによる探索や真のパレート最適解の探索だけでなく、探索結果の分析の際にも用いられます。
g++ -O2 execute_ga.cpp
./a.out
checkpointフォルダ内に各試行ごとの探索結果が出力されます。
g++ -O2 merge_results.cpp
./a.out 128
実行時引数は、試行数以上となる2のべき乗にしてください。
例えば、試行数が100の場合、実行時引数は128となります。
正しく処理されると、checkpointフォルダ内に新しく、マージの結果であるcheckpoint.csvというファイルが出力されます。
まず、search_truePareto.cppとmerge_truePareto.cpp内の変数OFFSET_LENを編集します。
OFFSET_LENは探索の間中固定しておくビットの長さを表しており、固定していないビットを全探索します。
例えば、config.h中のNが40、search_truePareto.cpp中のOFFSET_LENが8の場合、40ビットのうち8ビットを固定し、残りの32ビットを全探索(2^32個の染色体を評価)します。
bash job.sh
実行すると、offset_value_lower,offset_value_upper,max_jobnを入力するように言われます。
offset_value_lowerとoffset_value_upperは探索するオフセットの10進数の値の区間を表しています。
例えば、search_truePareto.cpp中のOFFSET_LENが8の場合、offset_value_lowerは0から2^8-1(255)までの値になります。offset_value_upperは、とりあえず最も大きい値(今回であれば255)としてよいかもしれません。
true_paretoフォルダ内に各オフセットの値ごとの探索結果が出力されます。
g++ merge_truePareto.cpp
./a.out
正しく処理されると、true_paretoフォルダ内に新しく、マージの結果であるtrue_pareto.csvというファイルが出力されます。
質問やご意見等ございましたら、小田康平(s2420017@jaist.ac.jp)までご連絡ください。