R 慢炖 - "Number of keys and values don't match"
R Simmer - "Number of keys and values don't match"
我正在尝试模拟 JSQ(d)(加入 d 个采样队列的最短队列)系统,但在执行我的代码时遇到问题。在这种情况下,让我们假设 d=2。我希望在到达时确定作业大小("X" 的值)以及选择哪 2 个队列将被采样和 "JSQ-ed"(这可能会以不同的方式完成,尽管出于我的目的这个最小的工作示例,这些必须在到达时确定)。
library(simmer)
set.seed(1337)
sim <- simmer("sim")
queues <- vector(length=1000)
for (i in 1:1000) {
queues[i] <- paste0("q_",i)
}
queueing_system <- trajectory() %>%
set_attribute("X", function() rexp(1)) %>%
set_attribute("d", function() sample(1000,2)) %>%
select(function() queues[get_attribute(sim, "d")], policy="shortest-queue") %>%
seize_selected()%>%
timeout(function() get_attribute(sim, "X")*(rpois(1, 1)+1)) %>%
release_selected()
for (i in 1:1000) {
sim %>%
add_resource(queues[i], 1)
}
sim %>%
add_generator("path", queueing_system, function() rexp(1,1)) %>%
run(400) %>%
now()
我收到了
Error: 'path0' at 0.15 in [SetAttribute]->SetAttribute->[Select]:
number of keys and values don't match
似乎是什么问题,我该如何解决这个问题?
属性存储单个值。为什么不直接在select
activity中采样呢?即,
queueing_system <- trajectory() %>%
set_attribute("X", function() rexp(1)) %>%
select(function() queues[sample(1000, 2)], policy="shortest-queue") %>%
seize_selected()%>%
timeout(function() get_attribute(sim, "X")*(rpois(1, 1)+1)) %>%
release_selected()
我也会就地调用 rexp(1)
,而不是定义 X
。
我正在尝试模拟 JSQ(d)(加入 d 个采样队列的最短队列)系统,但在执行我的代码时遇到问题。在这种情况下,让我们假设 d=2。我希望在到达时确定作业大小("X" 的值)以及选择哪 2 个队列将被采样和 "JSQ-ed"(这可能会以不同的方式完成,尽管出于我的目的这个最小的工作示例,这些必须在到达时确定)。
library(simmer)
set.seed(1337)
sim <- simmer("sim")
queues <- vector(length=1000)
for (i in 1:1000) {
queues[i] <- paste0("q_",i)
}
queueing_system <- trajectory() %>%
set_attribute("X", function() rexp(1)) %>%
set_attribute("d", function() sample(1000,2)) %>%
select(function() queues[get_attribute(sim, "d")], policy="shortest-queue") %>%
seize_selected()%>%
timeout(function() get_attribute(sim, "X")*(rpois(1, 1)+1)) %>%
release_selected()
for (i in 1:1000) {
sim %>%
add_resource(queues[i], 1)
}
sim %>%
add_generator("path", queueing_system, function() rexp(1,1)) %>%
run(400) %>%
now()
我收到了
Error: 'path0' at 0.15 in [SetAttribute]->SetAttribute->[Select]:
number of keys and values don't match
似乎是什么问题,我该如何解决这个问题?
属性存储单个值。为什么不直接在select
activity中采样呢?即,
queueing_system <- trajectory() %>%
set_attribute("X", function() rexp(1)) %>%
select(function() queues[sample(1000, 2)], policy="shortest-queue") %>%
seize_selected()%>%
timeout(function() get_attribute(sim, "X")*(rpois(1, 1)+1)) %>%
release_selected()
我也会就地调用 rexp(1)
,而不是定义 X
。