私はRで微分進化ライブラリをいじっていましたが、疑問に思っていました:これは並列化するのが理にかなっているアルゴリズムですか? 最適化間隔をいくつかのセグメントに分割し、各セグメントでアルゴリズムを実行し、各セグメントの結果を比較して最小値を返すことができるように思えます。
1 に答える
2
はい、並列化する必要があります。このトピックに関する多数の Google ヒットを見つけることはそれほど難しくありません。また、Soureforge のGAULプロジェクトには、いくつかのコード (R にはまったく移植されていません) もあります。
R とその DE バリアントに戻ると、最良のアプローチはコンパイルされたレベルになります。DEoption の RcppDE 'port' の 'RcppParDE' バリアントで OpenMP を使用してみましたが、完成しませんでした。
次の (現在の?) DEoptim バージョンには、R レベルで foreach ループを使用するバリアントがあることを理解しています。これは理想的ではありませんが、シリアルのみのアプローチよりも優れています。
于 2012-01-23T05:08:02.083 に答える