是否有一个R包允许最大化具有非线性约束的线性目标?

是否有一个R包允许最大化具有非线性约束的线性目标?,r,optimization,R,Optimization,我已经能够使用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=

我已经能够使用
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)

}
require(quadprog)

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

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
最大和(i,r(i)*x(i))
和((i,j),x(i)*Q(i,j)*x(j))=0

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

我猜您不知道在发布问题之前搜索的要求。我还猜测您不知道存在CRAN任务视图,特别是: