0
軌道内のリソース容量をキュー長の関数として変更できるようにしたい。simmer:内部軌跡関数からリソースを読み込む
以下の(簡略化された)コードは機能しません。 - 私は、関数の内部get_mon_resources(simStore)
を呼び出そうとすると、エラーでコードがクラッシュ:
Error in run_(private$sim_obj, until) :
Expecting a single value: [extent=0].
はあなたの助けをいただき、ありがとうございます。書かれたが、下図のように、他のパッケージ(lubridate)マスクは「煮る」からオブジェクトということです問題の原因は何https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!topic/simmer-devel/NgIikOpHpss
:
simStore <- simmer()
fUpdateNumberOfCashiers <- function() {
dtLastRes <- simStore %>% get_mon_resources %>% tail(1)
nCapacityNow <- dtLastRes$capacity # same result with get_capacity(simStore),
nQueueNow <- dtLastRes$queue # same result with get_queue_count(simStore)
print(dtLastRes) # prints empty data-frame !
return (5) # crashes here ! (eventually 5 will be replaced with more meaningful formula
}
trajClient <- trajectory("Client's path") %>%
log_("Arrived to cashier") %>%
set_capacity("Cashier", value = fUpdateNumberOfCashiers) %>%
seize("Cashier") %>%
timeout(function() {rexp(1, 30)}) %>% # One Cashier processes 30 clients/hour
release("Cashier") %>%
log_(function(attr) { sprintf("In total spent %.2f", now(simStore) - attr["start_time"])})
simStore <- simmer("Store") %>%
add_resource("Cashier", 1) %>%
add_generator("Store Clients", trajClient, function() {rexp(1, 120)}) %>% # 120 clients/hour
run(until=nHoursObserved <- 1) ; simStore