運籌優化(十六)--排隊論基礎及其最優化求解

Eason.wxd發表於2019-01-23

排隊過程的一般表示

下圖1就是排隊過程的一般模型。各個顧客由顧客源(總體)出發,到達服務機構 (服務檯、服務員)前排隊等候接受服務, 服務完成後就離開。排隊結構指佇列的數目和排列方式 , 排隊規則和服務規則是說明顧客在排隊系統中按怎樣的規 則、次序接受服務的。我們所說的排隊系統就指圖中虛線所包括的部分。

排隊系統的組成和特徵

一般的排隊系統都有三個基本組成部分 : 1輸入過程 ; 2排隊規則 ; 3服務機構。

1. 輸入過程

輸入即指顧客到達排隊系統 , 可能有下列各種不同情況 , 當然這些情況並不是彼此排斥的。

(1) 顧客的總體(稱為顧客源)的組成可能是有限的,也可能是無限的。上游河水流入水庫可以認為總體是無限的 , 工廠內停機待修的機器顯然是有限的總體。

(2) 顧客到來的方式可能是一個一個的, 也可能是成批的。例如到餐廳就餐就有單個到來的顧客和受邀請來參加宴會的成批顧客,我們將只研究單個到來的情形。

(3) 顧客相繼到達的間隔時間可以是確定型的, 也可以是隨機型的。

(4) 顧客的到達可以是相互獨立的,就是說,以前的到達情況對以後顧客的到來沒有影響 , 否則就是有關聯的 。

(5) 輸入過程可以是平穩的,或稱對時間是齊次的,是指描述相繼到達的間隔時間分佈和所含引數(如期望值、方差等)都是與時間無關的, 否則稱為非平穩的。

2. 排隊規則

(1) 顧客到達時, 如所有服務檯都正被佔用,在這種情形下顧客可以隨即離去, 也可以排隊等候。隨即離去的稱為即時制或稱損失制 , 因為這將失掉許多顧客 ; 排隊等候的稱為等待制。普通市內電話的呼喚屬於前者 , 而登記市外長途電話的呼喚屬於後者。對於等待制,為顧客進行服務的次序可以採用下列各種規則: 先到先服務, 後到先服 務 , 隨機服務 , 有優先權的服務等。

先到先服務 , 即按到達次序接受服務 , 這是最通常的情形。後到先服務,如乘用電梯的顧客常是後入先出的。倉庫中存放的厚鋼板也是如此。 在情報系統中 , 最後到達的資訊往往是最有價值的 , 因而常採用後到先服務 ( 指被採用 ) 的 規則。

隨機服務 , 指服務員從等待的顧客中隨機地選取其一進行服務 , 而不管到達的先後 , 如電話交換臺接通呼喚的電話就是如此。

有優先權的服務 , 如醫院對於病情嚴重的患者將給予優先治療。

(2) 從佔有的空間來看,佇列可以排在具體的處所(如售票處、候診室等),也可以是抽象的 ( 如向電話交換臺要求通話的呼喚 ) 。由 於空間的限制或其他原因 , 有的系統要規定容量(即允許進入排隊系統的顧客數)的最大限;有的沒有這種限制(即認為容量可以是無限的)。

(3) 從佇列的數目看, 可以是單列, 也可以是多列。在多列的情形, 各列間的顧客有的可以互相轉移,有的不能(如用繩子或欄杆隔開)。有的排隊顧客因等候時間過長而中途退出 , 有的不能退出 ( 如高速公路上的汽車流 ) , 必須堅持到被服務為止。

3. 服務機構

從機構形式和工作情況來看有以下幾種情況。

(1) 服務機構可以沒有服務員,也可以有一個或多個服務員(服務檯、通道、視窗等)。 例如 , 在敞架售書的書店 , 顧客選書時就沒有服務員 , 但交款時可能有多個服務員。

(2) 在有多個服務檯的情形中,它們可以是平行排列(並列)的,可以是前後排列(串 列)的, 也可以是混合的。

(3) 服務方式可以對單個顧客進行,也可以對成批顧客進行,公共汽車對在站臺等候 的顧客就成批進行服務。

(4) 和輸入過程一樣, 服務時間也分確定型的和隨機型的。自動沖洗汽車的裝置對每輛汽車沖洗 ( 服務 ) 的時間就是確定型的 , 但大多數情形的服務時間是隨機型的。對於隨機型的服務時間 , 需要知道它的概率分佈。如果輸入過程 , 即相繼到達的間隔時間和服務時間二者都是確定型的 , 那麼問題就太 簡單了。因此 , 在排隊論中所討論的是二者至少有一個是隨機型的情形。

(5) 和輸入過程一樣, 服務時間的分佈我們總假定是平穩的, 即分佈的期望值、方差等引數都不受時間的影響。

排隊模型的分類

D .G .Kendall 在 1953 年提出排隊模型分類方法 , 影響最大的特徵有三個, 即:

(1) 相繼顧客到達間隔時間的分佈;

(2) 服務時間的分佈;

(3) 服務檯的個數。

按照這三個特徵分類 , 並用一定符號表示 , 稱為 Kendall 記號。 這隻對並列的服務檯 (如果服務檯是多於一個的話)的情形,他用的符號形式是:

X/ Y/ Z

其中 , X 處填寫表示相繼到達間隔時間的分佈;

Y 處填寫表示服務時間的分佈;

Z 處填寫並列的服務檯的數目。

表示相繼到達間隔時間和服務時間的各種分佈的符號是:

M——負指數分佈( M是 Markov的字頭,因為負指數分佈具有無記憶性,即 Markov性);
D——確定型(deterministic);
Ek ——k階愛爾朗(erlang)分佈;
GI—— 一般相互獨立(general independent)的時間間隔的分佈; G—— 一般(general)服務時間的分佈。

例如, M/ M/ 1 表示相繼到達間隔時間為負指數分佈、服務時間為負指數分佈、單服務檯的模型; D/ M/ c 表示確定的到達間隔、服務時間為負指數分佈、c個平行服務檯(但顧客是一隊)的模型。

以後 , 在 1971 年一次關於排隊論符號標準化會議上決定 , 將 Kendall 符號擴充成為 : X/ Y/ Z/ A/ B/ C 形式 , 其中前三項意義不變 , 而後三項意義分別是 :

A 處填寫系統容量限制N ;
B 處填寫顧客源數目m;
C 處填寫服務規則 , 如先到先服務( FCFS) , 後到後服務( LCFS)等。

並約定 , 如略去後三項 , 即指 X/ Y/ Z/ ∞/ ∞/ FCFS 的情形。這裡只討論先到先服務FCFS 的情形 , 所以略去第六項。

排隊問題的求解

一個實際問題作為排隊問題求解時 , 首先要研究它屬於哪個模型 , 其中只有顧客到達的間隔時間分佈和服務時間的分佈需要實測的資料來確定 , 其他因素都是在問題提出時給定的。

解排隊問題的目的,是研究排隊系統執行的效率, 估計服務質量, 確定系統引數的最優值 , 以決定系統結構是否合理、研究設計改進措施等。所以必須確定用以判斷系統執行優劣的基本數量指標 , 解排隊問題就是首先求出這些數量指標的概率分佈或特徵數。 這 些指標通常是 :

(1) 隊長,指在系統中的顧客數,它的期望值記作 Ls;

排隊長(佇列長),指在系統中排隊等待服務的顧客數,它的期望值記作 Lq;

系統中顧客數 =  在佇列中等待服務的顧客數 + 正被服務的顧客數

一般情形, Ls (或 Lq )越大,說明服務率越低,排隊成龍,是顧客最厭煩的。

(2) 逗留時間,指一個顧客在系統中的停留時間,它的期望值記作 Ws;

等待時間, 指一個顧客在系統中排隊等待的時間, 它的期望值記作 Wq ,

逗留時間 = 等待時間 + 服務時間

在機器故障問題中 , 無論是等待修理或正在修理都使工廠受到停工的損 失。所以逗留時間(停工時間)是主要的。但一般購物、診病等問題中僅僅等待時間常是顧客們所關心的。

此外,還有忙期( busy period)指從顧客到達空閒服務機構起到服務機構再次為空閒止這段時間長度, 即服務機構連續繁忙的時間長度, 它關係到服務員的工作強度。忙期和一個忙期中平均完成服務顧客數都是衡量服務機構效率的指標。

在即時制或排隊有限制的情形, 還有由於顧客被拒絕而使企業受到損失的損失率以及以後經常遇到的服務強度等 , 這些都是很重要的指標。

計算這些指標的基礎是表達系統狀態的概率。所謂系統的狀態即指系統中顧客數 , 如果系統中有n個顧客就說系統的狀態是 n,它的可能值是:

(1) 隊長沒有限制時,n=0,1,2,⋯
(2) 隊長有限制,最大數為N時,n=0,1,2,⋯,N
(3) 即時制,服務檯個數是 c時, n=0,1,2,⋯,c
後者,狀態n又表示正在工作(繁忙)的服務檯數。這些狀態的概率一般是隨時刻t而變化, 所以在時刻t、系統狀態為n的概率用Pn(t)表示。求狀態概率 Pn (t)的方法,首先要建立含 Pn (t)的關係式見下圖,因為t是連續變數,而n只取非負整數,所以建立的Pn(t)的關係式 一般是微分差分方程(關於t的微分方程,關於n的差分方程)。方程的解稱為瞬態(或稱過渡狀態)(transient state)解。求瞬態解是不容易的, 一般地, 即使求出也很難利用, 因此我們常用它的極限(如果存在的話 ):

\lim_{t \to \infty } P_{n}(t)) = P_{n}

稱為穩態(steady state) , 或稱統計平衡狀態(statistical equilibrium state)的解。

 

穩態的物理含義是, 當系統執行了無限長的時間之後 , 初始 ( t = 0 ) 出發狀態的概率分佈( Pn (0), n≥0)的影響將消失,而且系統的狀態概率分佈不再隨時間變化。當然,在實際應用中大多數問題系統會很快趨於穩態, 而無需等到t→∞以後。但永遠達不到穩態的情形也確實存在的。求穩態概率Pn時,並不一定求t→∞時Pn(t)的極限,而只需令導數P′n(t)=0即可。以下著重研究穩態的情形。

到達間隔的分佈和服務時間的分佈

解決排隊問題首先要根據原始資料作出顧客到達間隔和服務時間的經驗分佈 , 然後按照統計學的方法(例如χ2檢驗法)以確定適合於哪種理論分佈,並估計它的引數值。經驗分佈就是概率分佈的半參估計或者無參估計,可以用直方圖平滑,也可以用核函式平滑。常見的理論分佈——泊松分佈、負指數分佈和 愛爾朗 (Erlang)分佈。這裡不再囉嗦了,下面直接說明輸入過程是泊松過程,服務時間服從負指數分佈,單服務檯的排隊系統。

單服務檯負指數分佈排隊系統的分析

按以下三種情形討論。

  1. 標 準 的 M/ M/ 1 模 型 , 即 ( M/ M/ 1/ ∞/ ∞ ) ;
  2. 系 統 的 容 量 有 限 制 , 即 ( M/ M/ 1/ N/ ∞ ) ;
  3. 顧客源為有限,即(M/ M/ 1/ ∞/ m)。

標準的 M/ M/ 1模型(M/ M/ 1/ ∞/ ∞)

標準的 M/ M/ 1 模型是指適合下列條件的排隊系統 :

(1) 輸入過程——顧客源是無限的, 顧客單個到來, 相互獨立, 一定時間的到達數服從泊松分佈, 到達過程已是平穩的。

(2) 排隊規則——單隊,且對隊長沒有限制,先到先服務。

(3) 服務機構——單服務檯, 各顧客的服務時間是相互獨立的, 服從相同的負指數分佈。

此外 , 還假定到達間隔時間和服務時間是相互獨立的。

在分析標準的 M/ M/ 1 模型時, 首先要求出系統在任意時刻t的狀態為n(系統中有n個顧客)的概率Pn(t) ,它決定了系統執行的特徵。

因已知到達規律服從引數為λ的泊松過程, 服務時間服從引數為 μ的負指數分佈 , 所以在[ t, t +Δt)時間區間內分為:

  1. 有1個顧客到達的概率為 λΔt+o (Δt) ; 沒有顧客到達的概率就是1-λΔt+o(Δt) 。
  2. 當有顧客在接受服務時,1個顧客被服務完了(離去)的概率是μΔt+o(Δt),沒有離去的概率就是1- μΔt+o(Δt) 。
  3. 多於一個顧客的到達或離去的概率是 o(Δt),是可以忽略的。

略去中間計算狀態概率的推導過程,計算得到系統狀態為 n的概率:

P_{0} = 1 - \rho \, P_{n} = (1 - \rho)\rho^{n} \, \, \, \, \, \, \, \rho < 1

上式的ρ有其實際意義。根據表示式的不同, 可以有不同的解釋。當 ρ= λ/μ表達時, 它是平均到達率與平均服務率之比; 即在相同時區內顧客到達的平均數與被服務的平均數之比。若表示為 ρ= (1/μ)/(1/λ) , 它是為一個顧客的服務時間與到達間隔時間之比;稱ρ為服務強度(traffic intensity) ,或稱ρ為話務強度。這是因為早期排隊論是愛爾朗等人在研究電話理論時用的術語,一直沿用至今,ρ= 1 - P0 ,它刻畫了服務機構的繁忙程度 ; 所以又稱服務機構的利用率。由此,我們得出系統的執行指標:

(1) 在系統中的平均顧客數(隊長期望值):L_{s} = \lambda / (\mu - \lambda) 或者L_{s} = \rho / (1 - \rho ) \, \, 0 < \rho < 1 

(2) 在佇列中等待的平均顧客數(佇列長期望值)L_{q} = \rho \lambda / (\mu - \lambda)

關於顧客在系統中逗留的時間W(隨機變數),在 M/ M/ 1 情形下,它服從引數為μ-λ 的負指數分佈1 ,即:

分佈函式:F(w) = 1 - e ^ {- (\mu - \lambda)*w} \, \, w \geq 0

概率密度:f(w) = (\mu - \lambda)e ^ {- (\mu - \lambda)*w},於是得到:

(3) 在系統中顧客逗留時間的期望值W_{s} =E(w)= 1 / (\mu - \lambda)

(4) 在佇列中顧客等待時間的期望值W_{q} =W(s) - \frac{1}{\mu}= \rho / (\mu - \lambda)

現將以上各式歸納如下 :

它們相互的關係如下 :

上式稱為 Little 公式。

不同的服務規則 (先到先服務 , 後到先服務 , 隨機服務 ) 它們的不同點主要反映在等待時間的分佈函式的不同 , 而一些期望值是相同的。我們上面討論的各種指標 , 因為都是期望值,所以這些指標的計算公式對三種服務規則都適用(但對有優先權的規則不適用)。

系統的容量有限制的情況( M/ M/ 1/ N/ ∞) 

如果系統的最大容量為 N,對於單服務檯的情形,排隊等待的顧客最多為 N - 1,在 某時刻一顧客到達時,如系統中已有 N 個顧客,那麼這個顧客就被拒絕進入系統。

當 N=1時為即時制的情形;當 N→∞,為容量無限制的情形。我們仍只考慮穩態的情況(上面標準公式只考慮穩態情況):

P_{0} = \frac{1 - \rho }{1 - \rho^{N + 1}} \rho \neq 1 \\ P_{n} = \frac{1 - \rho }{1 - \rho^{N + 1}} \rho^{n} \, \, \, \, \, \, \, n \leqslant N

在對容量沒有限制的情形 , 我們曾設 ρ<1, 這不僅是實際問題的需要, 也是無窮級數收斂所必需的。在容量為有限數N的情形下,這個條件就沒有必要了。當ρ>1時, 表示損失率的PN(或表示被拒絕排隊的顧客平均數λPN)將是很大的。

現 在 把 M/ M/ 1/ N/ ∞ 型 的 指 標 歸 納 如 下 ( 當 ρ≠ 1 時 )(計算過程略) :

顧客源為有限的情形(M/M/1/∞/m) 

 關於平均到達率 , 在無限源的情形是按全體顧客來考慮的; 在有限源的情形必須按每個顧客來考慮。為簡單起見, 設各個顧客的到達率都是相同的λ, 這時在系統外的顧客平均數為m- Ls ,對系統的有效到達率λe應是λe =λ(m-Ls)

推導過程跟上面方法類似:

求得系統的各項指標為: 

多服務檯負指數分佈排隊系統的分析 

現在討論單隊、並列的多服務檯(服務檯數 c)的情形,我們分以下三種情形討論。

( 1 ) 標準的M/ M/ c 模型(M/ M/ c/ ∞/ ∞ ) ;
( 2 ) 系統容量有限制 ( M/ M/ c/ N/ ∞ ) ;
( 3 ) 有限顧客源 ( M/ M/ c/ ∞ / m ) 。

標準的M/M/c模型(M/M/c/∞/∞)

關於標準的 M/ M/ c模型各種特徵的規定與標準的 M/ M/ 1 模型的規定相同。另外規定各服務檯工作是相互獨立(不搞協作)且平均服務率相同μ1 =μ2 =⋯=μc =μ。與標準的 M/ M/ 1推導類似:

系統的執行指標求得如下: 

平均等待時間和逗留時間仍由 Little 公式求得, 

W(q) = \frac{L_{q}}{\lambda},W(s) = \frac{L_{s}}{\lambda}\

系統的容量有限制的情形(M/M/c/N/∞)

設系統的容量最大限制為 N(≥c) , 當系統中顧客數n已達到N(即佇列中顧客數已達N - c)時,再來的顧客即被拒絕,其他條件與標準的 M/ M/ c型相同。

系統的狀態概率和執行指標如下 :

特別當 N = c(即時制)的情形, 例如在街頭的停車場就不允許排隊等待空位,這時:  

其中,當 n= c即關於 Pc 的公式,被稱為愛爾朗呼喚損失公式,是 A. K. Erlang 早在1917年發現的, 並廣泛應用於電話系統的設計中。 這時的執行指標如下:

它又是使用的服務檯數(期望值) 。 

顧客源為有限的情形(M/M/c/∞/m)

設顧客總體(顧客源)為有限數m,且m>c,和單服務檯情形一樣,顧客到達率λ是按每個顧客來考慮的,在機器管理問題中, 就是共有m臺機器, 有c個修理工人, 顧客到達就是機器出了故障, 而每個顧客的到達率λ是指每臺機器每單位運轉時間出故障的期望次數。系統中顧客數n就是出故障的機器臺數,當n≤c時,所有的故障機器都在被修理, 有(c-n)個修理工人在空閒;當 c< n≤m時,有(n- c)臺機器在停機等待修理,而修理工 人都在繁忙狀態。假定這 c個工人修理技術相同,修理(服務)時間都服從引數為μ的負指數分佈, 並假定故障的修復時間和正在生產的機器是否發生故障是相互獨立的。

(2) 平均顧客數(即平均故障臺數):

有效的到達率λe 應等於每個顧客的到達率λ乘以在系統外(即正常生產的)機器的期望數 : λe =λ(m-Ls)在機器故障問題中,它是每單位時間m臺機器平均出現故障的次數。

其他指標:

由於 P0 , Pn 計算公式過於複雜 , 有專用圖書列成表格可供使用。 

 一般服務時間M/G/1模型

前面我們研究了泊松輸入和負指數的服務時間的模型。下面將討論服務時間是任意分佈的情形, 當然 , 對任何情形下面關係都是正確的。

E[系統中顧客數 ] = E[佇列中顧客數] + E[服務機構中顧客數 ]

E[在系統中逗留時間 ] = E[排隊等候時間] + E[服務時間 ]

Ls =λWs , Lq =λWq

Pollaczek-Khintchine( P-K) 公式

對於M/ G/ 1 模型 , 服務時間T的分佈是一般的, (但要求期望值E[T]和方差Var[ T]都存在),其他條件和標準的 M/ M/ 1 型相同。為了達到穩態,ρ<1 這一條件還是必要的,其中ρ= λE[T] 。

在上述條件下 , 則有:

這就是 Pollaczek-Khintchine(P-K)公式。只要知道λ, E[ T]和Var[T] ,不管T是什麼具體分佈,就可求出 Ls。

由這公式還可注意到, 因為有方差項的存在 , 在研究各期望值( 各執行指標都是期望值)時,完全不考慮概率性質會得出錯誤結果,僅當 Var[ T] = 0 時,隨機性的波動才不影響 Ls,所以要想改進各指標,除考慮期望值外,還可以從改變方差來考慮。

定長服務時間M/D/1模型

服務時間是確定的常數 , 例如在一條裝配線上完成一件工作的時間就應是常數。 自動的汽車沖洗臺, 沖洗一輛汽車的時間也是常數 , 這時:

注意 可以證明,在一般服務時間分佈的Lq和Wq中以定長服務時間的為最小, 這符合我們通俗的理解——服務時間越有規律 , 等候 的時間就越短。 

愛爾朗服務時間M/Ek/1模型

如果顧客必須經過k個服務站, 在每個服務站的服務時間Ti相互獨立 , 並服從相同的負指數分佈,那麼T=∑Ti 服從k階愛爾朗分佈.

對於 M/ Ek/ 1 模型(除服務時間外,其他條件與標準的 M/ M/ 1 型相同):

經濟分析——系統的最優化 

排隊系統的最優化問題

排隊系統的最優化問題分為兩類 : 系統設計的最優化和系統控制 優化。前者稱為靜態問題 , 從排隊論一誕生起就成為人們研究的內容 , 目的在於使裝置達到最大效益 , 或者說,在一定的質量指標下要求機構最為經濟。後者稱為動態問題, 是指一個給定的系統,如何運營可使某個目標函式得到最優,這是近10多年來排隊論的研究重點之一。

在一般情形下 , 提高服務水平 (數量 , 質量 ) 自然會降低顧客的等待費用 (損失) , 但卻常常增加了服務機構的成本, 我們最優化的目標之一是使二者費用之和為最小, 決定達到這個目標的最優的服務水平。另一個常用的目標函式是使純收入或使利潤(服務收入與 服務成本之差)為最大。

各種費用在穩態情形下, 都是按單位時間來考慮的。一般情形, 服務費用 (成本) 是可以確切計算或估計的。至於顧客的等待費用就有許多不同情況, 像機械故障問題中等待費用 ( 由於機器待修而使生產遭受的損失) 是可以確切估計的 , 但像病人就診的等待費用(由於拖延治療使病情惡化所受的損失 ) , 或由於佇列過長而失掉潛在顧客所造成的營業損失,就只能根據統計的經驗資料來估計。服務水平也可以由不同形式來表示, 主要的是平均服務率μ(代表服務機構的服務能力和經驗等),其次是服務裝置,如服務檯的個數 c,以及由佇列所佔空間大小所決定的佇列最大限制數N等,服務水平也可以通過服務強度ρ來表示。

我們常用的求解方法 , 對於離散變數常用邊際分析法 , 對於連續變數常用經典的微分法, 對於複雜問題當然可以用非線性規劃或動態規劃的方法。

注意:

當排隊系統的到達間隔時間和服務時間的概率分佈很複雜時 , 或不能用公式給出時 , 那麼就不能用解析法求解。

相關文章