簡體   English   中英

R中的MILP優化器

[英]MILP optimizer in R

我正在嘗試使用重新訓練為 1 的權重進行最小方差優化。我嘗試了多個求解器,但它們要么計算時間太長,要么計算不精確,所以我想嘗試使用 MILP 求解器。 這是我的 Objectif 函數:

library(Rglpk)

funct1 <- function(weight)  {
  t(weight) %*% covariance_matrix %*% weight
}

約束:

equality <- function(weight) { 
  a1 <- sum(weight)
  return(a1)
}

Rglpk_solve_LP(funct1,equality,c("=="),c(1))

我不斷收到錯誤:

as.numeric(funct1) 中的錯誤:
不能將“閉包”類型強制轉換為“雙精度”類型的向量

我假設錯誤是由於函數而存在,但是如何在沒有函數的情況下制定優化目標?

這是一個二次模型:目標是x'Qx 這意味着您不能使用 Rglpk,因為它僅適用於 LP 和 MIP 模型(即線性模型)。

您可以查看支持 QP 和 MIQP 模型的 CVXR。 請注意,最好(最快、最可靠)的 MIQP 求解器不是開源求解器,而是像 Cplex 和 Gurobi 這樣的求解器(對於學術用戶,它們可能是免費的)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM