私は線形計画問題のシミュレーションをしようとしています。モデルにはobj
関数といくつかの制約があります。この場合、正規分布からランダムに引き出された2つの値を導入しています。ループトラフRのアイテムのセット
次にforループを使用して最適化モデルを10.000回シミュレートします。私はそれが悪いことを知っているRの練習forループを使用するが、速度はこの場合私の懸念ではありません。
#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)の需要値が欲しいトラフ一つの変数(パフォーマンスを)、行くんパフォーマンス・ベクトルのrow(i)のパフォーマンス値。
全体的な目的は、LPモデルの10.000シミュレーションを持つことです。パフォーマンス値もデマンド値も1回だけ発生します(私が既に持っているループ以外の別のループが、 2つのリスト)。
ご協力いただければ幸いです。
回答ありがとう:-)最適化のためのROIパッケージを使用しました – MikeR