【问题标题】:Is there an R function to deal with overflow calls in a call center?是否有 R 函数来处理呼叫中心的溢出呼叫?
【发布时间】:2022-07-30 20:23:14
【问题描述】:

我正在尝试如下建模系统:

有两种不同类型的呼叫,到达率分别为 lambda1 和 lambda2,并由不同的熟练代理 S1 和 S2 应答。(S1=S2=1)。 S1 处理的类型 1 调用的处理时间为 mu1,S2 处理的类型 2 调用的处理时间为 mu2。

如果系统 1 中的服务器 S1 正忙(因此新的呼入呼叫必须在队列中等待),则等待呼叫被重定向到系统 2 中的服务器 S2,并以处理时间 mu3 完成。 服务器 S2 先应答来自系统 1 的呼叫,当系统 1 中的队列为空时,服务器 S2 再应答来自系统 2 的呼叫。

我多次尝试对环境进行建模,但这是我能想到的一切:

## Create arrivals
## rho = traffic load (0:1)
rho = 0.5
inter_arrival1 = rexp(500, 1.3*rho)
inter_arrival2 = rexp(500, 0.4*rho)
mu1 = 1
mu2= 1
mu3= 0.5
m = 1 # number of servers

## Queue model System 1
m.queue <- trajectory() %>%
  seize("server", amount=1) %>%
  timeout(function() rexp(1, mu1)) %>%
  release("server", amount=1)

mean(mmc.df.arr$activity_time)
mmc.env <- simmer() %>%
  add_resource("server", capacity=1, queue_size=Inf) %>%
  add_generator("arrival", m.queue, function() rexp(500, 1.3*rho)) %>%
  run(2000)


mmc.df.res <- get_mon_resources(mmc.env)
mmc.df.arr <- get_mon_arrivals(mmc.env)
mmc.df.arr
mmc.df.res

#Data dataframe system1
system1 <- data.frame("Call number"=(1:length(mmc.df.res$time)),
                      "Arrival time"=mmc.df.res$time,
                      "Arrival rate"= (system1$Call.number/system1$Arrival.time),
                      "Expected start"=mmc.df.arr$start_time,
                      "Expected end" = mmc.df.arr$end_time,
                      "Processing time"= mmc.df.arr$activity_time,
                      "Waiting time" = mmc.df.arr$start_time-mmc.df.res$time,
                      "Number of calls in the system" = mmc.df.res$system,
                      "Time spent in the system"=system1$Expected.end-system1$Arrival.time)

## Queue model System 2
m.queue2 <- trajectory() %>%
  seize("server", amount=1) %>%
  timeout(function() rexp(1, mu2)) %>%
  release("server", amount=1)


mmc.env2 <- simmer() %>%
  add_resource("server", capacity=1, queue_size=Inf) %>%
  add_generator("arrival", m.queue, function() rexp(500, 0.4*rho)) %>%
  run(2000)

mmc.df.res2 <- get_mon_resources(mmc.env2)
mmc.df.arr2 <- get_mon_arrivals(mmc.env2)

我对 R 很陌生,所以我正在努力寻找一种方法来识别系统 1 队列中等待的呼叫,并将它们优先重定向到系统 2 中的代理。如果有人能建议我摆脱困境,我将不胜感激。

【问题讨论】:

  • 嗨@Luna你能分享用于运行代码的包
  • 嗨@Isa,包是“simmer”和“simmer.plot”

标签: r queue priority-queue


【解决方案1】:

您找到解决方案了吗? 我无法运行你的代码。无法构建 system1 数据框(反正后面的代码中也没有用到)。

尽管如此,我怀疑您设置的结构是否可以工作,因为您将两个系统隔离开来,而根据您的描述它们可以交互。

即使两组调用不同,它们仍然可以在一个模拟环境中运行,您可以确定它们使用的是哪种类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-30
    • 2019-10-27
    相关资源
    最近更新 更多