時間がかかりすぎていると最小化が完了します私は1に対する耐性を減らす場合は、実行するために30分以上....は、私は約1500の変数と制約付き最適化問題を実行しています
を取っています約5分で、それは物事をスピードアップする良い方法のようには思われません。
from scipy.optimize import minimize
results = minimize(objFun, initialVals, method='SLSQP', bounds = bnds, constraints=cons, tol = toler)
print(results)
fun: -868.72033130318198
jac: array([ 0., 0., 0., ..., 0., 0., 0.])
message: 'Optimization terminated successfully.'
nfev: 1459
nit: 1
njev: 1
status: 0
success: True
x: array([ 0., 0., 0., ..., 1., 1., 1.])
いずれかの提案があります。
ステップサイズ/有限差分派生イプシロンを増やしてみましたか?時には、小さすぎると進歩はほとんどないでしょうが、これは問題に依存します(滑らかさは大きな要因です)。また、他のオプティマイザを試すこともできます。 – sascha
1回の反復だけが必要ですか?あなたは幸せでなければなりません。あなたは勾配を与えなかったように見えるので、ソルバは有限の違いを示しました。あなたの関数は高価で評価され、利用可能な勾配がないため、この問題はこのソルバにはあまり適していません。派生フリーソルバを見る必要があるかもしれません。 –
非線形方程式で動作する他の制約付き最適化ライブラリがPython用にありますか?私は何も見ていない。 –