Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Optimization Scipy'中等式约束的最大数量是多少;s SLSQP算法?_Optimization_Scipy - Fatal编程技术网

Optimization Scipy'中等式约束的最大数量是多少;s SLSQP算法?

Optimization Scipy'中等式约束的最大数量是多少;s SLSQP算法?,optimization,scipy,Optimization,Scipy,我使用以下代码使用Scipy的优化模块优化一组参数: slsqp_res = minimize(obj_func, params, method='SLSQP', constraints= eq_cons) 其中obj_func是我的目标函数,params是初始参数值的向量,eq_cons是一组等式约束。我尝试了不同的等式约束,但有时会出现以下错误: File "C:\Python36\lib\site-packages\scipy\optimize\_minimize.py&quo

我使用以下代码使用Scipy的优化模块优化一组参数:

slsqp_res = minimize(obj_func, params, method='SLSQP', constraints= eq_cons)
其中obj_func是我的目标函数,params是初始参数值的向量,eq_cons是一组等式约束。我尝试了不同的等式约束,但有时会出现以下错误:

File "C:\Python36\lib\site-packages\scipy\optimize\_minimize.py", line 618, in minimize
  constraints, callback=callback, **options)
File "C:\Python36\lib\site-packages\scipy\optimize\slsqp.py", line 329, in _minimize_slsqp
  w = zeros(len_w)
ValueError: negative dimensions are not allowed

我想这是因为在某些情况下,我的平等约束是过度的。我的问题是,在SLSQP算法中,等式约束的最大可能数量是多少?

此消息似乎来自工作空间计算:

# Define the workspaces for SLSQP
n1 = n + 1
mineq = m - meq + n1 + n1
len_w = (3*n1+m)*(n1+1)+(n1-meq+1)*(mineq+2) + 2*mineq+(n1+mineq)*(n1-meq) \
        + 2*meq + n1 + ((n+1)*n)//2 + 2*m + 3*n + 3*n1 + 1
len_jw = mineq
w = zeros(len_w)   <-----
jw = zeros(len_jw)
#定义SLSQP的工作空间
n1=n+1
mineq=m-meq+n1+n1
len_w=(3*n1+m)*(n1+1)+(n1 meq+1)*(mineq+2)+2*mineq+(n1+mineq)*(n1 meq)\
+2*meq+n1+((n+1)*n)//2+2*m+3*n+3*n1+1
len_jw=mineq
w=零(len_w)