2012-04-20 7 views
8

私は非線形プログラミング(のためだけでなく、)のためのC++ライブラリの推奨をお探しです。C++の非線形プログラミングライブラリ

この設定は積極的に維持されているF/OSSソリューションですが、無償評価版を提供している積極的に維持されている商用ソリューションが受け入れられます。

ありがとうございます!

編集:要求されたとして、ここでは詳細は以下のとおりです。

私が働いているアプリケーションに簡単ですが、それは小さなセットで度4の多項式と高い(11まで)を最小化についてです( ~20)、不等式(やはり多項式の次数、< = 4)で表されます。私は時には、三角関数を投げなければならないこともあります。いずれにせよ、それは私が扱っている、常に連続的で微分可能な関数です。可変範囲の数は現在1から12の範囲であり、これを大幅に上回ることはありません。

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

+0

実行する計算の例を教えてください。どの分野(金融?物理?)で?どのOSで? (むしろ* nixかWindows?) –

+0

私の編集を見てください – em70

答えて

2

NLoptはM. J. D. Powellの非線形不等式と等式制約を有する誘導体を含まない最適化のための線形近似BY COBYLA、 制約付き最適化など良好なダースのアルゴリズムのための固体Cコードを有しています。
追加:here は、NLoptのいくつかの非派生オプティマイザを実行しています。
5dと10dのRosenbrockとPowellのテスト関数の場合、それらはすべて非常にランダムスタートポイントに影響されます。 ymmv。

6

わかりませんが、おそらくROOTがCERNに適しています。これは、CERN自体からの本当に巨大なライブラリ(例えば、ROOT::Math::Polynomialクラス)です。

私はそれは確かに「1分に習得できる」ライブラリーではありませんが、両方持っている、と言わなければならない:リアルタイムですべての数学のもので動作するようにコンソール(のMathcad CMDラインに似)とLIBSをdllあなたはあなたのコードを静的にリンクすることができます。そしてそれはクロスプラットフォームのライブラリです。さらに言えば、ROOTの最も強力な機能は、ほぼすべての種類のチャートやプロットを作成できることです。

+0

非線形プログラミングを行うクラスに(あなたの答えで)リンクを提供してください。 – Ali

4

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

これは驚くほど頑丈なので、市販のソルバーでも解決できない化学工学的問題の結果をもたらしました。アプリケーションの例については、success storiesをご覧ください。

+0

@Denis私はMacにアクセスすることができないので、私は確かに言えません。しかし、[これらの手順](https://projects.coin-or.org/Ipopt/wiki/Ipopt_on_Mac_OS_X)はうまく維持されているようで、2012年3月14日からのものです。 – Ali