【问题标题】:is there an R package that allows to maximize a linear objective with a non-linear constraint?是否有允许最大化具有非线性约束的线性目标的 R 包?
【发布时间】:2019-07-04 01:42:31
【问题描述】:

我已经能够使用quadprog 最小化具有线性约束的非线性目标,但是,我无法以相反的方式做到这一点......

require(quadprog)
min_var <- function(Obj,Rentabilidades,var_covar){

  b <- c(Obj,1)
  Betha <- var_covar
  A <- t(matrix(rbind(Rentabilidades,c(1,1)),nrow=2))
  Gamma <- matrix(0,nrow=2)
  solve.QP(Betha,Gamma,A,b,2)

}

现在我想最大化以前的约束,将以前的目标作为新的约束。很遗憾,solve.QP() 只支持线性约束。有谁知道类似于quadprog 的软件包可能对我有帮助吗?

【问题讨论】:

标签: r optimization


【解决方案1】:

标准的投资组合优化模型如下所示:

min sum((i,j), x(i)*Q(i,j)*x(j))
sum(i,x(i)) = 1
sum(i,r(i)*x(i)) >= R
x(i) >= 0

这是一个二次规划模型,可以使用标准 QP 求解器求解。

如果你扭转这种局面(在风险约束下最大化回报),你可以这样写:

max sum(i,r(i)*x(i))
sum((i,j), x(i)*Q(i,j)*x(j)) <= V
sum(i,x(i)) = 1
x(i) >= 0

现在这是一个二次约束问题。幸运的是,这是凸的,因此您可以使用 Cplex、Gurobi 或 Mosek 等求解器来求解它们(它们具有 R 接口)。开源候选者可以是像 ECOSolveR 这样的求解器,或者更好的是像 cxvr 这样的框架。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多