선형 프로그래밍 문제를 시뮬레이션하려고합니다. 모델에는 obj
함수와 일부 제약 조건이 있습니다. 이 경우 정규 분포에서 무작위로 그린 2 개의 값을 도입하려고합니다.Loop Trough R 항목의 집합
그런 다음 for 루프를 사용하여 최적화 모델 10.000 번을 시뮬레이션합니다. 나는 for-loops를 사용하는 것이 좋지 않다는 것을 알고 있지만,이 경우에는 속도가 내 관심사가 아닙니다.
#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 시뮬레이션을하는 것입니다. 성능 값뿐만 아니라 수요 값도 한 번만 발생합니다. (이미 가지고있는 다른 루프가 아닌 다른 루프가 두 가지 목록).
도움을 주시면 감사하겠습니다.
답변 주셔서 감사합니다 .-) 최적화를 위해 ROI 패키지 사용 – MikeR