M/M/1 排隊(M/M/1 queue)
想像一位銀行櫃員、一個結帳台、一台印表機,前面排著一條等候線。顧客(或工作)隨機出現,一次一個依序被服務,然後離開。M/M/1 排隊是這個日常情境最簡單而可完全求解的模型。它古怪的名字是一種簡寫:第一個 M 表示到達是馬可夫的(一個卜瓦松過程),第二個 M 表示服務時間是馬可夫的(指數的,因而無記憶),而 1 表示單一伺服器,等候空間無限、先到先服務。
它其實是偽裝的生滅過程:「計數」是系統中的顧客數,一次出生是一次到達(速率 lambda),一次死亡是一次服務完成(有人在場時速率為 mu)。最重要的單一量是交通強度 rho = lambda/mu,即工作到達多快與被清掉多快的比值。若 rho < 1,系統穩定並穩定到一個穩態;若 rho >= 1,工作到達的速度至少與能被服務的速度一樣快,隊伍便無界地增長。在穩態下,系統中的人數服從幾何律,P(系統中有 n 人) = (1 - rho)*rho^n,由此乾淨的公式紛紛落下:系統中的平均人數是 rho/(1 - rho),而由 Little 法則,顧客所花的平均時間(等待加服務)是 1/(mu - lambda)。
M/M/1 是通往排隊論的門戶,也是客服中心、網路與服務櫃台的有用初步估計。它最重要也最令人謙卑的教訓是非線性的壅塞:當 rho 逐漸逼近 1 時,平均隊長與等待並非平緩上升——它們會朝無限暴衝。一個以 90% 使用率運轉(rho = 0.9)的系統,裡頭平均已有 9 位顧客;推到 95% 就是 19。這正是為何「只要讓伺服器幾乎一直忙著」是個陷阱。誠實的提醒:真實到達不總是卜瓦松,真實服務也鮮少恰好是指數,所以 M/M/1 是一個乾淨的理想化——很有啟發性,但要在意識到其假設的前提下使用。
顧客以 lambda = 9(每小時)到達,單一店員以 mu = 10(每小時)服務,所以 rho = 9/10 = 0.9。系統穩定(rho < 1)但忙碌:平均在場人數是 rho/(1 - rho) = 0.9/0.1 = 9,而在系統中的平均時間是 1/(mu - lambda) = 1/(10 - 9) = 1 小時。把到達提到 lambda = 9.5,平均就跳到 19——小變動,大效應。
只有 rho = lambda/mu < 1 時才穩定;當 rho 逼近 1,平均隊長暴增。
壅塞是非線性的:平均隊長 rho/(1-rho) 在 rho 逼近 1 時爆炸,所以高使用率是危險的、而非有效率的。且 M/M/1 假設卜瓦松到達與指數服務——真實系統常有出入。