2017-01-03 10 views
3

Pythonでいくつかの目的関数f(x1、x2、x3)を最小化したいと思います。その非常に単純な関数ですが、問題は、デザインベクトルx = [x1、x2、x3]が整数のみを保持するということです。 X = [1.12、3.36ため 「fは最小:デザインベクトルを使ったScipy.optimize.minimize整数のみを含むx

なく "fは、X = [1、3、2]の最小である":

だから、例えば、私は結果を取得したいです、2.24] "これは私の問題には意味がないからです。

このような問題を解決するためにscipy.minimizeを使用する方法はありますか?あるいはこれを行うことができる他のPythonライブラリがありますか?

+0

非連続関数の最適化は非常に難しく、 'scipy'はそれを実行できません。 –

+0

x1、x2、x3のドメインは何ですか?あなたのスピードの制約は何ですか?それは常に3つの変数の関数ですか?これらは重要な考慮事項です。 – user3684792

答えて

0

これは、実際には数学を話すのが難しい問題ですが、同じアルゴリズムは実行できません。この問題はnp-hardです。たぶんpyglpkをチェックしてみてください...混合整数プログラミングをチェックしてください。

+0

私はこれがあいまいだと思います。関数が常に定数変数であれば、ブルートフォースアプローチは実際には変数のドメイン内の多項式時間です(高次かもしれませんが)。 – user3684792

+0

私はブルートフォースアプローチを考えましたが、実際にはデザインベクトルには15の変数がすべて含まれています。これらの変数はすべて20の異なる値になります。したがって、たとえ目的関数が非常に単純であっても、20^15の組み合わせはあまりにも長くかかるでしょう。 Schorschが示唆したように、私はpyglpkと整数プログラミングを今チェックアウトします。 – JaapJ

関連する問題