Как определить разные таймауты для ресурсов в Траектории?кипеть / DES - PullRequest
0 голосов
/ 23 марта 2019

Как я могу определить разные таймауты для разных ресурсов в Траектории (симмер для R) в DES?Приведенный ниже код генерирует время активности для «doctor1», «doctor2» и «doctor3» как одно и то же, то есть среднее значение = 5, sd = .5 Нормальный RV.Требуемое среднее = 5, SD = .5 для врача 1;среднее = 10, сд = 0,5 для врача 2 и среднее = 20, сд = 0,5 для врача 3. Как этого можно достичь?

patient_traj <- trajectory(name = "patient_trajectory") %>%
  select(resources = c("doctor1", "doctor2", "doctor3")) %>%
  set_capacity_selected(1) %>%
  seize_selected(amount = 1) %>%
  timeout(function() rnorm(1, 5, .5)) %>%
  release_selected(amount = 1)

env <- simmer() %>%
  add_resource("doctor1", capacity = 0) %>%
  add_resource("doctor2", capacity = 0) %>%
  add_resource("doctor3", capacity = 0) %>%
  add_generator("patient", patient_traj, function() rnorm(1,2,.8),mon = 2) %>%
  run(500)

arrival <- get_mon_arrivals(env, per_resource = T)

Требуется среднее = 5, сд = 0,5 для врача1;среднее = 10, SD = 0,5 для врача 2 и среднее = 20, SD = 0,5 для врача 3. то есть разные тайм-ауты, показывающие разницу в производительности среди врачей

1 Ответ

0 голосов
/ 24 марта 2019

Вы можете использовать get_selected(), но, вообще говоря, если вы хотите, чтобы происходили разные вещи, лучше использовать branch() с несколькими путями.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...