关于算法:拓端tecdatR语言中如何使用排队论预测等待时间

59次阅读

共计 2771 个字符,预计需要花费 7 分钟才能阅读完成。

原文链接:http://tecdat.cn/?p=4698

原文出处:拓端数据部落公众号

介绍

顾名思义,排队论是对用于预测队列长度和等待时间的长期待线的钻研。这是一种风行的实践,次要用于经营,批发剖析畛域。

到目前为止,咱们曾经解决了传入呼叫量和呼叫持续时间当时已知的状况。在事实世界中,状况并非如此。在事实世界中,咱们须要假如达到率和服务率的散布并相应地采取行动。

到货率 仅仅是客户需要的后果,公司无法控制这些需要。另一方面,服务费率 在很大水平上取决于有多少复电者代表能够服务,他们的体现如何以及他们的日程安排如何优化。

在本文中,我将应用排队实践让您更靠近实际操作剖析。咱们还将解决几个问题,咱们在之前的文章中以简略的形式答复了这些问题。

目录

  1. 什么是排队论?
  2. 排队论中应用的概念
  • 肯德尔的记谱法
  • 感兴趣的重要参数
  • 小定理
  1. 案例钻研 1 应用 R
  2. 案例钻研 2 应用 R.

什么是排队论?

如上所述,排队实践是对用于预计队列长度和等待时间的长期待线的钻研。它应用概率办法进行运筹学,计算机科学,电信,交通工程等畛域的预测。

排队论最早是在 20 世纪初施行的,用于解决电话呼叫拥挤问题。因而,它不是任何新发现的概念。现在,沃达丰,Airtel,沃尔玛,AT&T,Verizon 等公司正大量应用这一概念,以便为将来的流量做好筹备。

让咱们当初深入研究这个实践。咱们当初将了解一个称为肯德尔符号和小定理的排队实践的重要概念。

感兴趣的参数

排队模型应用多个参数。这些参数有助于咱们剖析排队模型的性能。想想咱们能够感兴趣的所有因素是什么?以下是咱们对任何排队模型感兴趣的一些参数:

  1. 零碎中没有客户的概率
  2. 零碎中没有队列的概率
  3. 新客户进入零碎后间接取得服务器的可能性
  4. 零碎中不容许新客户的概率
  5. 队列的均匀长度
  6. 零碎中的均匀人口
  7. 均匀等待时间
  8. 零碎中客户的均匀工夫

小定理

这是一个乏味的定理。让咱们用一个例子来了解它。

思考具备 理论进入零碎的均匀达到率 λ 的过程的队列。设  _N _是零碎中作业(客户)的平均数(期待和服务),_W_  是零碎中作业(期待和服务)所破费的均匀工夫。

 而后,Little 的后果 表明这些数量将彼此相干:

N =  λ w ^ 

这个定理十分不便地得出给定零碎队列长度的等待时间。

4 个最简略系列的参数:

1. M / M / 1 /∞/∞

这里,N 和 Nq 别离是零碎和队列中的人数。W 和 Wq 别离是零碎和队列中的等待时间。Rho 是达到率与服务率的比率。概率也能够如下:

其中,p0 是零碎中零人的概率,pk 是零碎中 k 人的概率。

2. M / M / 1 /∞/∞排队  **

这是常见的散布之一,因为如果队列长度减少,达到率会降落。设想一下,你去了必胜客在美食广场举办比萨派对。但队列太长了。你可能会因为期待很长的等待时间而吃其余货色。

如您所见,达到率随着 k 的减少而缩小。

3. M / M / c /∞/∞

应用 c 服务器,方程变得更加简单。以下是达到和服务时这种马尔可夫散布的表达式。

案例钻研 1

设想一下,你在一家多国家银行工作。您有责任设置整个呼叫核心流程。您须要与呼叫核心分割并通知他们您须要的服务器数量。

您正在为客户的特定性能查问设置此呼叫核心,该客户在一小时内有大概 20 个查问。每个查问大概须要 15 分钟能力解决。找出所需的服务器 / 代表数量,将均匀等待时间缩短至不到 30 秒。

给定的问题是具备以下参数的 M / M / c 类型查问。

Lambda = 20 
Mue = 4

这是一个 R 代码,能够找出每个服务器 / 代表数量值的等待时间。

> Lambda < -  20 
> Mue < -  4 

> Rho < -  Lambda / Mue#

创立一个空矩阵
 
#创立一个函数而不是能够找到等待时间
> calculatewq < - { 
 P0inv < -  Rho ^ c /(factorial(c)*(1-(Rho / c)))(i in 1:c-1){P0inv = P0inv +(Rho ^ i)/ factorial(i)} 
 P0 = 1 / P0inv 
  Wq = 60 * Lq / Lambda 
 Ls < -  Lq + Rho 
 Ws < -  60 * Ls / Lambda 
  a < -  cbind(Lq,Wq,Ls,Ws)}

#Now 用等待时间的每个值填充矩阵
> for(i in 1:10){matrix \[i,2\] < -  calculatewq(i)\[2\] 
             }

以下是咱们等待时间的值:

等待时间的负值意味着参数的值不可行,并且咱们有一个不稳固的零碎。很显著,9 Reps,咱们的均匀等待时间降至 0.3 分钟。

案例钻研 2

让咱们来看一个更简单的例子。

设想一下,您是银行分行的运营官。您的分支机构最多可包容 50 名客户。如果客户以 100 客户 / 小时的速度进入并且出纳员在 3 分钟内解决查问,您须要多少柜员?

您须要确保可能包容超过 99.999%的客户。这意味着只有不到 0.001%的客户应该在没有进入分支机构的状况下返回,因为 brach 曾经有 50 个客户。还要确保等待时间少于 30 秒。

这是一种“M / M / c / N = 50 /∞”类型的队列零碎。不要放心这种简单零碎的队列长度公式(间接应用此代码中给出的那个)。只关注咱们如何可能在这种无限队列长度零碎中找到没有解决方案的客户来到的概率。

这是 R 代码

> Lambda < -  100 

> Mue < -  20 
> Rho < -  Lambda / Mue 
> N < -  50 
 
> calculatewq(6)> calculatewq < -(c){ 
 P0inv < -(R ^ c *(1  -((Rho / c)^(N-c + 1))))/((c)*(1-(Rho / c)))for(i in 1:c-1){P0inv = P0inv +(Rho ^ i)/ factorial(i)} 
 P0 = 1 / P0inv 
 
 Wq = 60 * Lq / Lambda 
 Ls < -  Lq + Rho 
 Ws < -  60 * Ls / Lambda 
 PN < -(Rho ^ N)* P0 /((c)* c ^(Nc))customer_serviced < -(1  -  PN)* 100
  a < -  cbind(Lq,Wq,Ls,Ws,customer_serviced)return(a)} 

> for(i in 1:100){matrix \[i,2\] < -  calculatewq(i)\[2\] 
 matrix \[i,3 \] < -  calculatewq(i)\[5\] 
 }

显然,您须要更多 7 个代表来满足客户来到时呈现的问题

正文完
 0