我知道 L-BFGS-B 仅支持以下形式的简单框约束:, 在哪里和是常数。对于我的具体优化问题,我需要指定一些简单的线性约束形式:
在哪里是一个固定常数。本质上,我需要每个变量保持在索引处的两个变量之间(并在一定距离内)和. 是否可以使用 L-BFGS-B 实现这一目标?
可以和每次迭代后修改约束向量?我尝试过的一个愚蠢的想法(并且似乎有效,尽管我没有对其进行广泛测试)是修改和使用此规则进行每次迭代后:
提前致谢!
编辑:我忘了提到第一个变量() 也受恒定下限和最后一个变量 () 服从一个恒定的上限:
这使得将问题重新定义为未知数是两个差异的基础变量不可行,因为这两个额外的边界(在当前系统中是实际的框约束)将变成线性约束。