我有一个形式的二次优化问题
min wrt to x 1/2 x'x + q'x St Gx <= h
我有一个相当大的问题(几百万个点和约束),虽然 cvxopt 的默认求解器被证明是有效的,但我很好奇在 SCS 中实现它应该更快(并且不使用 CVXPY 接口)。
经过文献检索(主要是 Boyd's Convex Analysis),对 SOCP 形式的重新表述应该产生
min wrt to z of c'z 服从 Az + s = b, s in K
其中 c = (1 q)' 和 z = (tx)' 其中 t 是标量,K 是与我的原始约束 (Gx \leq h) 相关的线性锥体和二次锥体 Q = { (t,x) | t >= ||x||}
但是,我应该如何实际定义 A 和 b ?
我想象了类似于 A = [[0 G],[2, 1, .., 1]] 和 b = (h 0) 的东西。但是,在 python scs.solve 锥字典参数中将 'q' 选项设置为 [1] 时,我无法让它工作?A 的最后一行的预期语法是什么?(也就是说,假设我的数学重新表述是正确的......)
谢谢您的帮助 !