Вот стандартная проблема банковского счетчика, чтобы проиллюстрировать мой вопрос:
Рассмотрим простой банк с случайным числом клиентов.Клиенты должны обслуживаться на одном из двух прилавков, выбирая случайное время для обслуживания на каждом.Также предположим, что ожидающие клиенты формируют одну очередь FIFO.
Вот сложность:
Предположим, что мы заинтересованы в моделировании этой системы, начиная с полудня определенного дня вместов начале дня.В полдень оба счетчика заняты, и уже есть очередь из 4 клиентов.
Есть ли способ создать это начальное состояние в R simmer?
Вот код, который у меня уже есть:
library(simmer)
set.seed(1234)
customer <-
trajectory("Customer's path") %>%
log_("Here I am") %>%
set_attribute("start_time", function() {now(bank)}) %>%
seize("counter") %>%
log_(function() {paste("Waited: ", now(bank) - get_attribute(bank, "start_time"))}) %>%
timeout(function() {rexp(1, 1/12)}) %>%
release("counter") %>%
log_(function() {paste("Finished: ", now(bank))})
bank <-
simmer("bank") %>%
add_resource("counter", 2) %>%
add_generator("Customer", customer, function() sample(1:15,1))
bank %>% run(until = 300)