我試圖做一個線性規劃問題的模擬。該模型具有obj
函數和一些約束。在這種情況下,我引入了從正態分佈隨機抽取的2個值。循環槽R中的一組項目
我然後使用for-loop模擬10.000次優化模型。我知道使用for-loop是不好的做法,但在這種情況下速度並不是我所關心的。
#List of 10000 random, normally distributed observations:
Demand = rnorm(10000, mean=5, sd=2.5)
Demand
Performance = rnorm(10000, mean=100, sd=6)
Performance
Optimas = NULL
#combined_list = c(Demand, Performance)
for (i in Performance){
op <- OP(objective = c(2.5, 4, i), #Performance value[i]: works fine
L_constraint(L = matrix(c(1, 0, 0, #LHS
0, 1, 0,
0, 0, 1),
ncol=3, nrow = 3,
byrow = TRUE),
dir = c("<=", "<=", "<="),
rhs = c(50, 70, Demand)), #Demand value[i]: should go here
maximum = TRUE,
types = c("B", "I", "I"))
Optima <- ROI_solve(op, solver = "glpk") #solve
print(Optima)
print(i)
Optimas = rbind(Optimas, Optima)
}
Optimas <- as.data.frame(Optimas)
Optimas$objval <- as.numeric(Optimas$objval)
hist(Optimas$objval)
從上面可以看出,我的循環就只能走線槽一個變量(性能),在這裏我想在需求矢量在行(i)需求值將被放入模型中,在同一時間,行(i)在性能向量中的性能值。
總體目標是對LP模型進行10.000次模擬,其中性能值和需求值都只出現一次(因爲我已有的另一個循環之外的循環將生成笛卡兒積兩個清單)。
任何幫助將不勝感激。
感謝您的回答:-)使用ROI包進行優化 – MikeR