问题描述
我试图将scipy.optimize.minimize与方法trust-constr一起使用以优化8个变量的函数。不幸的是,该功能过于复杂,无法在此处完整发布。它涉及大约1000个词,每个词都包含一个整数。但这是我摘录的摘录,表明它不能按预期工作。
def objective(variables):
starts_neg=variables[0]
starts_neu=variables[1]
etc
return _____
(这是导致问题的两个变量)
定义了目标函数之后,我需要定义约束。有12个约束条件涉及8个变量。但我只展示那些涉及违规变量的变量。
constraint_matrix=[[0 for j in range(8)] for i in range(12)]
constraint_matrix[0][0]=1
constraint_matrix[1][1]=1
constraint_matrix[2][0]=1
constraint_matrix[2][1]=1
etc
lower_bounds=[10**(-12) for i in range(12)]
upper_bounds=[1 for i in range(12)]
prob_constraints=LinearConstraint(constraint_matrix,lower_bounds,upper_bounds,keep_feasible=True)
我的目的是说0 然后我给scipy初始估计值x0 = [估计值,估计值等] 最后,请按以下方式调用优化: 不幸的是,这产生了一个nan错误。因此,我尝试将以下内容插入目标函数并再次运行: 此命令在nan错误和追溯之前输出 尽管我设置了result=minimize(objective,x0,method='trust-constr',constraints=[prob_constraints],options={'xtol':10**(-9)}).x
if starts_neg<=0 or starts_neg>=1 or starts_neu<=0 or starts_neu>=1 or starts_neu+starts_neg>=1:
print(starts_neg,starts_neu)
-0.02436406136453448 0.7588112085953852
,这似乎太大了,无法通过舍入错误解释。不,这不是初始估计值x0;我也检查过。keep_feasible=True
,但显然scipy违反了我的约束之一。我设置错了吗?抱歉,该功能太长,无法完整包含。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)