我正在尝试用 R 学习 DES 来解决维护优化问题。但是,如果它实际上是一个很好的工具,我会感到非常困惑。
作为初步试验,我在这里发布了一个非常简单的问题,其中组件在状态 0 下运行,在状态 1 下失败,如图所示。故障和修复时间都呈指数分布,分别与相关比率 $\lambda$ 和 $\mu$。
我的目标是找出系统的不可用性,即系统在故障状态 (1) 上花费的时间,如图所示。
我用 simmer 设置模型如下(可重现):
library(simmer)
library(simmer.plot)
library(magrittr)
set.seed(1234)
env.fr <- simmer("FailureRepair")
lambda <- 1/1000
mu <- 1/10
traj <- trajectory() %>%
seize("Repairman") %>%
timeout(function() rexp(1, mu)) %>%
release("Repairman")
env.fr %>%
add_resource("Repairman", queue_size = Inf) %>%
add_generator("failure", traj, function() rexp(1, lambda)) %>%
run(until = 10000000)
任何人都可以帮助验证这种表示是否正确,我如何计算在这些状态中花费的时间?