8

非線形プログラミング用の C++ ライブラリの推奨事項を探しています (整数だけではありません! )。

積極的に維持されている F/OSS ソリューションが優先されますが、無料の評価版を提供する積極的に維持されている商用ソリューションも受け入れられます。

前もって感謝します!

編集:リクエストに応じて、詳細は次のとおりです。

私が取り組んでいるアプリケーションは単純で、次数 4 以上 (最大 11) の多項式を、不等式 (多項式として、次数 <= 4) として表される小さなセット (~20) の制約で最小化することに関するものです。ただし、場合によっては、三角関数を投入する必要がある場合もあります。いずれにせよ、私が扱っているのは常に連続的で微分可能な関数です。変数の数は今のところ 1 から 12 の範囲であり、それ以上になることはありません。

最後に、Windows で動作するソリューションが必要ですが、クロスプラットフォームのソリューションが望ましいでしょう。

4

3 に答える 3

6

よくわかりませんが、CERN のROOTが適しているかもしれません。これは、CERN 自体の非常に巨大なライブラリ ( ROOT::Math::Polynomialクラスなど) です。

確かに「1 分で学習できる」ライブラリではありませんが、すべての数学をリアルタイムで操作するためのコンソール(MathCAD コマンドラインに似ています) と、リンクできるライブラリdllの両方があります。静的にコーディングします。そして、それはクロスプラットフォームのライブラリです。さらに言うと、ROOT の最も強力な機能は、ほぼすべての種類のチャートとプロットを作成できることです。

于 2012-04-20T10:59:11.460 に答える
4

私が知っているそのようなライブラリの中で最も堅牢なのはIPOPTです。

驚くほど堅牢で、市販のソルバーでも解決できない化学工学の問題の結果が得られました。アプリケーションのさらなる例については、サクセスストーリーをご覧ください。

于 2012-04-21T07:58:29.420 に答える
2

NLoptには、MJD Powell による COBYLA 、非線形不等式および等式制約による導関数のない最適化のための Constrained Optimization BY Linearapproximationsを含む、12 のアルゴリズム用のしっかりした C コードがあります。
追加: の非微分オプティマイザのいくつかの実行を次に示しますNLopt
5d と 10d の Rosenbrock と Powell のテスト関数の場合、それらはすべてランダムな開始点に非常に敏感です。ymmv。

于 2012-05-12T17:19:54.267 に答える