Optimization 最小化必须为正的差值

Optimization 最小化必须为正的差值,optimization,nonlinear-optimization,Optimization,Nonlinear Optimization,我有以下优化: mnimize:obj(x)=f(x)-常数 sbj.to:lb

我有以下优化:

mnimize:obj(x)=f(x)-常数

sbj.to:lb sbj.to:f(x)-常数>=0

我觉得这不是解决优化问题最方便的方法。有没有另一种计算上更方便的方法?
到目前为止,我试图修改目标,例如使用obj(x)=(f(x)-常量)^2,这允许我避免第二个约束。但它给了我一些依赖于常数值的收敛性问题。一些想法?

我可以想出另外两种可能的方法——不确定它们是否更好,但那就是:

  • 如果[f(x)-常数]^2给您带来收敛问题(不确定原因),请尝试将其替换为abs(f(x)-常数)。警告:abs()函数并不总是性能最好的,有时它会混淆一些优化算法
  • 在目标函数中,如果(f(x)-常数)变为负值,则返回一个大值-与变为负值的程度成比例。否则返回正常差异

  • 我已经尝试了绝对值,但考虑到我可以计算分析梯度,这并不理想。我也不知道为什么会出现收敛问题。我正在调查,如果找到答案,我会回来的。关于大值,如果它是负数,你指的是惩罚函数?是的,像惩罚函数。它在很多情况下都很有效。好的,是的,我可以试试,非常感谢