如何在Simmer包的轨迹中编写循环

时间:2017-10-19 18:35:57

标签: r loops queue simulation

我试图使用R&#39的软件包Simmer来模拟排队网络。但是,我在主轨道中加入循环时遇到了麻烦。一个简单的单节点队列代码如下:

react-error-overlay

在运行轨迹功能之后,它向我显示"错误输入(。在i中)1:100:4参数传递给'对于'这需要3"。

实际网络更复杂,需要一个不同节点通信的循环。例如,我希望节点1流向节点2和3.节点2流向节点1和3.节点3流向节点1和2.唯一可能的出口是节点3.

提前致谢。

1 个答案:

答案 0 :(得分:0)

rollback活动就是为了这个目的:

library(simmer)

to_queue_1 <- trajectory() %>%
  seize("nurse", 1) %>%
  timeout(1) %>%
  release("nurse", 1) %>%
  rollback(3, 100)

env <- simmer() %>%
  add_resource("nurse",1) %>%
  add_generator("arrival1_", to_queue_1, function() rexp(1, 1), mon=2) %>%
  run(200)

其中3是要回滚的活动数,100是重复次数。