编程语言
首页 > 编程语言> > Python约束非线性优化

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