我一直在使用scipy中的约束优化BY线性逼近scipy.optimize.fmin_cobyla
例程来最小化我的目标函数有两个非负约束并且它在大多数时间都很好用,但是当我不喜欢时我有问题这两个变量没有合适的起始值 - 这种情况经常发生。
def constraint1(x):
return x[0]
def constraint2(x):
return x[1]
def objective(x):
return x[0] * x[1]; # not actual objective function
x0 = [1.2, 3]
result = fmin_cobyla(objective, x0, [constraint1, constraint2])
我通常使用Excel作为第二组眼睛来测试我的优化例程,这使我在Solver中找到了Set Objective f(n)到Value Of:0选项。这是我可以在Scipy.Optimize中轻易复制的东西,还是我让这个太复杂了?由于我的实际目标函数是试图最小化平方差的总和,我的目标是在最佳程序尽可能接近0时停止优化程序。