Python约束非线性优化
作者:互联网
在python中推荐的约束非线性优化包是什么?
我试图解决的具体问题是:
我有一个未知的X(Nx1),我有M(Nx1)u向量和M(NxN)s矩阵.
max [5th percentile of (ui_T*X), i in 1 to M]
st
0<=X<=1 and
[95th percentile of (X_T*si*X), i in 1 to M]<= constant
当我开始解决这个问题时,我只对u和s进行了一次估算,并且我能够用cvxpy解决上面的问题.
我意识到,不是对你和你的一个估计,我有整个值的分布,所以我想改变我的目标函数,以便我可以使用整个分布.上面的问题描述是我尝试以有意义的方式包含该信息.
cvxpy不能用来解决这个问题,我试过scipy.optimize.anneal,但我似乎无法设置未知值的界限.我也看过纸浆,但它不允许非线性约束.
解决方法:
scipy有一个壮观的包约束非线性优化.
您可以通过阅读optimize doc开始,但这是SLSQP的一个示例:
minimize(func, [-1.0,1.0], args=(-1.0,), jac=func_deriv, constraints=cons, method='SLSQP', options={'disp': True})
标签:python,mathematical-optimization,cvxpy 来源: https://codeday.me/bug/20190930/1836455.html