36

fmincon制約付き線形最適化のためのMATLABの関数に代わるオープンソースの方法はありますか?Python / NumPy / SciPyを使用するようにMATLABプログラムを書き直していますが、これは私が同等のものを見つけられなかった唯一の関数です。NumPyベースのソリューションが理想的ですが、どの言語でもかまいません。

4

10 に答える 10

32

あなたの問題は凸ですか?線形?非線形?SciPy.optimize がおそらく仕事をすることに同意しますが、fmincon は最適化問題を解決するためのバズーカのようなものであり、以下のカテゴリの 1 つに限定できれば (解決の難易度が高くなるにつれて) より良い結果が得られます。効率的)

  • 線形プログラム (LP)
  • 二次計画法 (QP)
  • 凸二次制約付き二次計画法 (QCQP)
  • 二次円錐プログラム (SOCP)
  • 半期プログラム (SDP)
  • 非線形凸問題
  • 非凸問題

Mixed-Integer Linear Programs (MILP) などの組み合わせ問題もありますが、完全性制約について言及していませんでした。それらは別のクラスの問題に分類されると言えば十分です。

CVXOpt パッケージは、問題が凸状である場合に非常に役立ちます。

問題が凸状でない場合は、ローカル ソリューションを見つけるか、グローバル ソリューションを見つけるかを選択する必要があります。多くの凸ソルバーは、非凸領域で「一種の」動作をします。グローバル ソリューションの適切な近似値を見つけるには、何らかの形式のシミュレーテッド アニーリングまたは遺伝的アルゴリズムが必要になります。グローバル ソリューションを見つけるには、すべてのローカル ソリューションの列挙、または分岐限定などの組み合わせ戦略が必要です。

于 2008-10-13T05:51:51.143 に答える
18

Python 最適化ソフトウェア:

于 2009-12-06T18:51:50.420 に答える
14

オープンソースの Python パッケージであるSciPyには、制約のある多変数問題のためのいくつかを含む、非常に大きな最適化ルーチンのセットがあります (これは fmincon が私が信じていることです)。SciPy をインストールしたら、Python コマンド プロンプトで次のように入力します。

ヘルプ (scipy.optimize)

結果として得られるドキュメントは広範であり、あなたに役立つと思われる次の内容が含まれています。

   Constrained Optimizers (multivariate)

   fmin_l_bfgs_b -- Zhu, Byrd, and Nocedal's L-BFGS-B constrained optimizer
                      (if you use this please quote their papers -- see help)

   fmin_tnc      -- Truncated Newton Code originally written by Stephen Nash and
                      adapted to C by Jean-Sebastien Roy.

   fmin_cobyla   -- Constrained Optimization BY Linear Approximation
于 2008-09-16T09:45:06.120 に答える
4

GNU Octaveは、必要なものを備えている可能性があるもう 1 つの MATLAB クローンです。

于 2008-09-08T15:22:49.917 に答える
3

Python での数値最適化については、OpenOpt ソルバーを参照してください。

http://openopt.org/NLP

http://openopt.org/問題

于 2009-04-19T08:10:36.770 に答える
1

MATLAB のクローンであるSciLabというプログラムがあります。

私はまったく使用していませんが、オープンソースであり、探している機能を備えている可能性があります。

于 2008-09-08T15:21:43.070 に答える
1

そこにあるかどうかはわかりませんが、探しているものが含まれている可能性があるEnthoughtというpython ディストリビューションがあります。データ分析用に特別に設計されており、60 以上の追加ライブラリがあります。

于 2008-09-08T16:02:04.283 に答える
1

http://www.aemdesign.com/downloadfsqp.htmをご覧ください。

そこには、 と同じ機能を提供する C コードがありますfmincon。(ただし、別のアルゴリズムを使用しています。詳細に興味がある場合は、マニュアルを参照してください。)

オープンソースですが、GPL ではありません。

于 2009-01-14T18:38:44.757 に答える
1

最新バージョンの Octave は、Matlab の fmincon 関数に相当するものを最適化パッケージに実装しています。

https://octave.sourceforge.io/optim/function/fmincon.html

于 2021-08-02T02:57:23.690 に答える