首页 > 解决方案 > 如何在 Simmer 环境中编写生成器循环

问题描述

在我的排队应用程序中,我有 c 类具有不同服务率的客户。c 可以是 5、10、15、...,并且可能是一个非常大的数字。因此,我需要在 simmer 环境 c 次中应用“add_generator”。这个想法在代码中。

env <- lapply(1:100, function(i) { 
simmer("SuperDuperSim") %>%
add_resource("server",capacity=100,queue_size=0) 
%>%
for(j in 1:c){
  add_generator(names[j], class_j_trajectory, 
  at(0)) 
}%>%
run(until=100)
})

内部的 for 循环不起作用。但是写下每个班级的轨迹太乏味了。有没有任何有效的方法来添加许多生成器?谢谢。

标签: rloopsqueuesimulation

解决方案


一个 for 循环不能被管道。使用如下辅助变量:

envs <- lapply(1:100, function(i) { 
  env <- simmer() %>%
    add_resource("server",capacity=100,queue_size=0)

  for(j in 1:c) env %>%
    add_generator(names[j], class_j_trajectory, at(0))

  env %>% run(until=100)
})

推荐阅读