我可以将只有连续值的二次规划问题放在哪个问题类别中,而矩阵 A 应该是对称的但不需要是半正定的?
minimize/maximize x' * A * x
whereas
lowerbound <= x <= upperbound
例如,我可以将其重新表述为混合整数问题吗?或者有什么算法或方法可以解决这个问题?
我可以将只有连续值的二次规划问题放在哪个问题类别中,而矩阵 A 应该是对称的但不需要是半正定的?
minimize/maximize x' * A * x
whereas
lowerbound <= x <= upperbound
例如,我可以将其重新表述为混合整数问题吗?或者有什么算法或方法可以解决这个问题?
正如 WolfgangBangerth 所说,这是一个二次程序。不失一般性,我假设您正在最小化您的二次形式。(如果你要最大化你的二次形式,用最小化你的二次形式的负数来代替这个问题,我所说的仍然适用;我在地方,用代替。)
如果是半正定的,则您的程序是凸的,因此任何收敛到局部最小值的优化器都将收敛到全局最小值,因为凸程序的两组最小值重合。此外,这可以在多项式时间内完成,并且可以利用问题的二次结构,因此在实践中会很快。
如果至少有一个负特征值,则您的问题是非凸的。无论您的框约束是什么,此陈述都是正确的,因为您的二次形式的 Hessian 矩阵将为,因为是对称的。这个恒定的 Hessian 矩阵意味着您的目标函数的凸性属性在任何地方都是相同的。对于至少有一个负特征值的情况,已知问题是 -hard。
据我所知,大多数二次规划(或更一般地,非线性规划)的方法都收敛到局部最优。如果局部最优满足您的应用程序,那么任何标准方法——活动集 SQP 是解决中小型问题的一种常用方法——都可以工作。另一方面,如果您希望将非凸优化问题解决到全局最优,那么您应该选择另一种方法。通常,凸优化方法通过分支和定界方法来增强,以确定性地解决非凸问题;这类算法比凸优化算法慢,但具有返回全局最优而不是局部最优的优点。将确定性地解决非凸问题以实现全局最优性的库包括 BARON 和 LINDOGlobal,可以作为 GAMS 的一部分访问。如果您没有 GAMS 副本,您可以通过 NEOS 服务器提交 GAMS 作业。如果您愿意,也可以使用非确定性全局优化方法。
有关更适合非凸二次规划的算法示例,请参阅通过完全正规划全局求解非凸二次规划、通过半定松弛非凸二次规划的有限分支定界算法和基于半定的全局求解框约束二次规划有限分支定界。这些算法更适合您的特定问题,但看起来您需要推出自己的实现,这就是为什么我首先建议使用现成的库。
不需要是正定的。您所需要的只是您的约束切断了目标函数变为负数的那部分域。例如,问题 受约束有一个完美的解决方案(实际上,它有两个)。您遇到的唯一问题是,通常您的问题在解决方案中可能不是凸的,因此直接牛顿法将不起作用。然而,牛顿的方法有很多修改,即使在像你这样的情况下也能继续工作。
使用这种情况的方法是活动集 SQP 方法。看看 Nocedal 和 Wright 关于数值优化的书。
我建议沃尔夫冈和杰夫的答案比必要的更笼统。这是一个有框约束的二次规划,这个问题一直是大量具体研究的主题。例如,这里是S. Burer 和 A. Letchford 的“On Nonconvex Quadratic Programming with Box Constraints”的 PDF。我建议这是一个完美的起点,如果需要,其中的参考书目将提供更多方向。