首页 > 解决方案 > R Mosek 使用二次规划

问题描述

我找到了 RMosek 库来解决优化问题。就我而言,我将使用二次优化。这是有关 Rmosek 上的二次优化的文档:https ://docs.mosek.com/9.0/rmosek/tutorial-qo-shared.html#

例如,我有这个问题:

min y1^2 + y2^2 x1 + y1 - x2 - y2 > 0 x1+x2=2

我不明白如何将我的公式转换为矩阵公式。我认为文档中的示例不是很清楚。有人能帮我吗?

标签: roptimization

解决方案


我假设您的变量按 (x1,x2,y1,y2) 排序,即 x1 的索引为 1,依此类推,直到 y2 的索引为 4。然后您的二次目标指定为

prob$qobj$i <- c(3, 4)
prob$qobj$j <- c(3, 4)
prob$qobj$v <- c(2, 2)

对于线性部分,您应该使用矩阵

1 -1 1 -1
1 1 0 0 

界限是

prob$bc <- rbind(blc=c(0,2), buc=c(Inf,2))

顺便说一句,如果您真的只想最小化向量的范数,最好使用二次圆锥和圆锥优化,而不是将其公式化为二次项。


推荐阅读