R語言代寫如何使用排隊論預測等待時間?


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

介紹

顧名思義,排隊論是對用於預測隊列長度和等待時間的長等待線的研究。這是一種流行的理論,主要用於運營,零售分析領域。

到目前為止,我們已經解決了傳入呼叫量和呼叫持續時間事先已知的情況。在現實世界中,情況並非如此。在現實世界中,我們需要假設到達率和服務率的分布並相應地采取行動。

到貨率僅僅是客戶需求的結果,公司無法控制這些需求。另一方面,服務費率在很大程度上取決於有多少來電者代表可以服務,他們的表現如何以及他們的日程安排如何優化。

在本文中,我將使用排隊理論讓您更接近實際操作分析。我們還將解決幾個問題,我們在之前的文章中以簡單的方式回答了這些問題。

R的排隊論模型綜合指南

 

目錄

  1. 什么是排隊論?
  2. 排隊論中使用的概念
    • 肯德爾的記譜法
    • 感興趣的重要參數
    • 小定理
  3. 案例研究1使用R
  4. 案例研究2使用R.

 

什么是排隊論?

如上所述,排隊理論是對用於估計隊列長度和等待時間的長等待線的研究。它使用概率方法進行運籌學,計算機科學,電信,交通工程等領域的預測。

排隊論最早是在20世紀初實施的,用於解決電話呼叫擁堵問題。因此,它不是任何新發現的概念。如今,沃達豐,Airtel,沃爾瑪,AT&T,Verizon等公司正大量使用這一概念,以便為未來的流量做好准備。

讓我們現在深入研究這個理論。我們現在將理解一個稱為肯德爾符號和小定理的排隊理論的重要概念。

 

感興趣的參數

排隊模型使用多個參數。這些參數有助於我們分析排隊模型的性能。想想我們可以感興趣的所有因素是什么?以下是我們對任何排隊模型感興趣的一些參數:

  1. 系統中沒有客戶的概率
  2. 系統中沒有隊列的概率
  3. 新客戶進入系統后直接獲得服務器的可能性
  4. 系統中不允許新客戶的概率
  5. 隊列的平均長度
  6. 系統中的平均人口
  7. 平均等待時間
  8. 系統中客戶的平均時間

 

小定理

這是一個有趣的定理。讓我們用一個例子來理解它。

考慮具有 實際進入系統的平均到達率λ的過程的隊列  。設  是系統中作業(客戶)的平均數(等待和服務),  W  是系統中作業(等待和服務)所花費的平均時間。

 然后,Little的結果表明這些數量將彼此相關:

N =  λ w ^ 

這個定理非常方便地得出給定系統隊列長度的等待時間。

4個最簡單系列的參數:

1. M / M / 1 /∞/∞

屏幕截圖2016-04-23在2.48.17 pm

這里,N和Nq分別是系統和隊列中的人數。W和Wq分別是系統和隊列中的等待時間。Rho是到達率與服務率的比率。概率也可以如下:

屏幕截圖2016-04-23在下午2.51.46

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

 

2. M / M / 1 /∞/∞排隊  

這是常見的分布之一,因為如果隊列長度增加,到達率會下降。想象一下,你去了必勝客在美食廣場舉辦比薩派對。但隊列太長了。你可能會因為期待很長的等待時間而吃其他東西。

屏幕截圖2016-04-23在下午2.55.30

屏幕截圖2016-04-23在3.01.37 pm

如您所見,到達率隨着k的增加而減少。

 

3. M / M / c /∞/∞

使用c服務器,方程變得更加復雜。以下是到達和服務時這種馬爾可夫分布的表達式。

屏幕截圖2016-04-23在3.07.04 pm

屏幕截圖2016-04-23在3.06.18 pm

截屏2016-04-23於3.08.17 pm

屏幕截圖2016-04-23在3.08.56 pm

截屏2016-04-23於下午3時9分15分

 

案例研究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)))
  P0inv = P0inv +(Rho ^ i)/ factorial(i)
 } 
   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){ 
  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 
   a < -  cbind(Lq,Wq,Ls,Ws,customer_serviced)
 return(a)
 } 

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

出席

顯然,您需要更多7個代表來滿足客戶離開時出現的問題

 

 

如果您有任何疑問,請在下面發表評論。 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM