按属性模拟资源使用情况

Simmer plot resource usage by attributes

是否可以在 simmer 中按属性绘制资源使用情况?因此,例如在此模拟中:

library(simmer)
library(simmer.plot)

workerCount <- 2

actualData <- data.frame(
  time = c(1:10,1:5), priority = 1:3, service = rnorm(150, 50, 5)) %>%
  dplyr::arrange(time)

actualData$gender<-floor(runif(150, min=1, max=3))

actualData

activityTraj <- trajectory() %>%
  seize('worker') %>%
  timeout_from_attribute("service") %>%
  release('worker')

env <- simmer() %>%
  add_resource('worker', workerCount, Inf, preemptive = TRUE) %>%
  add_dataframe('worker_', activityTraj, actualData, mon=2, col_time="time", time="absolute", col_attributes=c("gender","service")) %>%
  run()


plot(get_mon_attributes(env), keys="gender", metric="usage")

生成的图显示随时间变化的性别,但不显示资源使用情况。 plot.attributes 的文档说:

The S3 method for 'attributes' does not support any metric. It simply shows a stairstep graph of the values throughout the simulation for the keys provided (or all the collected attributes if no key is provided).

目前有什么方法可以按属性绘制资源使用情况吗?

感谢您的任何建议。

您可以从到达 table 和 get_mon_arrivals(env, per_resource=TRUE) 获取每个资源的服务和等待时间。然后,从属性 table 和 get_mon_attributes(env) 中获取名称<->性别对应关系,加入 table ,最后使用时间序列重建按性别划分的服务器使用情况。但这有点挑战。可行,但需要一些工作。

我只是 increment/decrement 一些基于该属性的辅助全局变量来为我计算。