我想在R中模拟计划过程。我发现必须使用Simmer软件包在R中进行模拟。
[当任务到达我的模拟中时,它们都到达了“等待列表”中。必须安排的任务具有不同的优先级和特征。确定要安排哪个任务,应取决于“权重”。该权重取决于它在等待列表中等待的天数和优先级。但是我只能找到需要预定义优先级值的优先级功能(当任务在等待列表中较长时,我的权重就会提高)。
我希望有可能根据到达属性中的信息创建一个功能,该功能决定必须安排哪个任务。这可能吗?
谢谢。
[Roos
traj <- trajectory() %>%
# ...
renege_if(
"recompute priority",
out = trajectory() %>%
set_prioritization(function() {
# check attributes using get_attribute()
# then, return the new prioritization values
}) %>%
# go 2 steps back to renege_if
rollback(2)) %>%
seize("your resource") %>%
renege_abort() %>%
timeout(some_task) %>%
# trigger this before releasing the resource
send("recompute priority") %>%
release("your resource") %>%
# ...
每个到达都订阅信号“重新计算优先级”,并尝试占用资源。队列中的那些最终将接收信号,将跟随信号处理程序设置新的优先级,然后回滚到与以前相同的情况:他们再次怀疑信号并进入队列。但是现在资源已释放,因此优先级最高的资源将占用该资源。