## predefined policy
traj <- trajectory() %>%
select(paste0("doctor", 1:3), "round-robin") %>%
seize_selected(1) %>%
timeout(5) %>%
release_selected(1)
simmer() %>%
add_resource("doctor1") %>%
add_resource("doctor2") %>%
add_resource("doctor3") %>%
add_generator("patient", traj, at(0, 1, 2)) %>%
run() %>%
get_mon_resources()
## custom policy
env <- simmer()
res <- paste0("doctor", 1:3)
traj <- trajectory() %>%
select(function() {
occ <- get_server_count(env, res) + get_queue_count(env, res)
res[which.min(occ)[1]]
}) %>%
seize_selected(1) %>%
timeout(5) %>%
release_selected(1)
for (i in res) env %>%
add_resource(i)
env %>%
add_generator("patient", traj, at(0, 1, 2)) %>%
run() %>%
get_mon_resources()
Run the code above in your browser using DataLab