我正在尝试解决其中一个约束条件为的凸优化问题
其中表示矩阵的核范数。我在 Python 中使用CVXOPT将其作为线性程序 (LP) 来解决,但核范数(奇异值之和)不是一个很好的线性约束。我该如何制定这个?
我正在尝试解决其中一个约束条件为的凸优化问题
其中表示矩阵的核范数。我在 Python 中使用CVXOPT将其作为线性程序 (LP) 来解决,但核范数(奇异值之和)不是一个很好的线性约束。我该如何制定这个?
引用迈克尔格兰特 [MG'14]:
核范数不等式当且仅当存在对称矩阵 ,满足
这里,应该被解释为意味着块矩阵是半正定的。由于这种转换,您可以在任何半定编程设置中处理核范数的最小化或核范数的上限。
请注意,CVXOPT有一个半定规划 (SDP) 求解器。
[MG'14] Michael Grant,关于其论点的核范数的导数,数学堆栈交换,2014 年 3 月。