我试图在scipy中对目标函数进行非线性约束优化。
我的问题是我有许多共享中间结果的约束。类似的东西:
def constraint1_i(x):
T = f_i(x)
return g(T)
def constraint2_j(x):
T = f_j(x)
return h(T)
其中i
和j
通过1到n。
换句话说,在每个约束中,我在f
上运行x
以获得计算约束所需的中间值。同样的事情会不必要地运行两次(i==j
时,对于所有i,j
)!
有没有办法以某种方式在约束之间共享计算以避免双重计算?
注意:this question有点类似,但更具体(也没有答案)。