Excelソルバーは何千もの最適化で実行するのが非常に遅いため(スプレッドシートをインターフェイスとして使用するため)、C ++で同様の(問題固有の)ソルバーを実装しようとしています(Visual Studio 2010を使用して、Winで) 7 64ビットプラットフォーム)。私はVBAのDeclareステートメントを介してDLLを含め、すでにこれを行った経験があるので、これは問題ではありません。
私の問題は、経験的データと、非線形であるが滑らかなターゲット関数との間の二乗誤差の合計を最小化することであり、問題には、非負性(X> = 0)または正の制約(たとえば、X> = 0.000000001)が含まれます。 、Xは決定変数を示します。
堅牢で実績のある実装を探しています。確立されたライブラリの一部である可能性があります。たとえば、私はすでにALGLIBが何を保管しているかを調べましたが(http://www.alglib.net/optimization/を参照)、それらのアルゴリズムの1つだけが制限付き制約を受け入れるようです。でも、それが何の価値があるのかわからないので、意見を集めようとしています。
または、別の注意点として、たとえば、私の制約を満たさないすべての中間解を拒否することによって、ALGLIBのLevenberg-Marquardtアルゴリズムをそのような基本的な制約で拡張することをお勧めしますか?(それはそれをしないと思いますが、それでも尋ねる価値があります)