4.1 Erlang 電話理論1917#
本章導言#
排隊論誕生於電話線路不夠用的年代。二十世紀初,電話正從貴族玩具變成商業必需品,哥本哈根電話公司(Copenhagen Telephone Company)面臨一個昂貴的兩難:交換機的中繼線(trunk lines)建太少,顧客撥號時聽到的是忙音、生意流向對手;建太多,昂貴的銅纜與設備平時卻閒置。公司無法回答「該建幾條線」——因為撥電話的時刻是隨機的、通話長短也是隨機的,直覺與會計帳本都幫不上忙。
公司裡有一位自学出身的數學家 Agner Krarup Erlang(厄爾朗,1878–1929)。Erlang 原本在哥本哈根大學讀數學與物理,1908 年進入電話公司做技術顧問。他把電話流量當成一門數學來做:1909 年發表《機率論與電話交談》(The Theory of Probabilities and Telephone Conversations),首次以機率過程刻畫來話;1917 年發表著名的擁塞公式,今日稱為 Erlang B 公式與 Erlang C 公式。這是排隊論史上第一個可計算、可驗證的擁塞模型——比 Taylor 的科學管理晚了幾年,卻同樣源於一個純粹的管理問題:錢該花在哪個閘門上。
從忙音到公式:Erlang 的建模#
Erlang 的觀察是:來話在時間上「近乎隨機且互不影響」——每位用戶何時拿起話筒,與別人無關;通話時間長短也彼此獨立。用今日語言,他的假設是:
- 來話遵循泊松過程:長度 \(t\) 的時間內平均來話 \(\lambda t\) 通,實際通數的機率為 $$ P(N(t)=k) = \frac{(\lambda t)^k e^{-\lambda t}}{k!}; $$
- 通話時長獨立且服從指數分配,平均 \(1/\mu\) ;
- 有 \(s\) 條中繼線,來話遇到全忙則被阻塞(Erlang B 情形)或等待(Erlang C 情形)。
Erlang B 公式給出「全忙(忙音)機率」:設話務強度 \(a = \lambda / \mu\) (單位:Erlang,恰以他命名),則 \(s\) 條線的阻塞機率為
這個公式有一個優雅的遞迴: \(B(0,a)=1\) ,且
使電話工程師能在算尺與手搖計算機年代逐條線算出所需容量。Erlang C 公式則給出「來話必須等待(進入佇列)的機率」:
例題:哥本哈根的中繼線該建幾條#
例題 4.1.1:某交換局尖峰時段來話率 \(\lambda = 30\) 通/分鐘,平均通話 \(1/\mu = 2\) 分鐘。公司要求「忙音機率不超過 \(5\%\) 」,試以 Erlang B 估計需要幾條中繼線。
解:話務強度 \(a = \lambda/\mu = 30 \times 2 = 60\) Erlang。用遞迴式計算 \(B(s, 60)\) :
- \(B(1,60) = \dfrac{60}{1+60} \approx 0.9836\)
- 逐步遞推可得 \(B(60,60) \approx 0.0966\) 、 \(B(63,60) \approx 0.0718\) 、 \(B(65,60) \approx 0.0581\) 、 \(B(67,60) \approx 0.0466\)
因此 \(s = 66\) 時 \(B \approx 0.0521\) , \(s = 67\) 時 \(B \approx 0.0466 < 0.05\) 。約需 67 條中繼線。注意直覺會說「平均同時有 60 通在講話,60 條線就夠」——但隨機波動使得要再多備 7 條,才能把忙音壓到 \(5\%\) 以下。這個「隨機性要花錢買保險」的教訓,是排隊論對管理的第一個核心洞見。
順帶一個歷史事實:Erlang 的預測與實測相符到令人驚訝的程度,丹麥電話系統因此成為歐洲效率最高的網路之一;他的公式至今仍是電信、客服中心(呼叫中心)與網路流量工程(如 IP 語音的容量規劃)的標準工具,話務量的國際單位也以「Erlang」紀念他。
Erlang 的方法論遺產#
Erlang 的工作有兩點超越時代。其一,他其實已經發明了馬可夫過程的生滅分析——用「狀態 \(n\) :目前 \(n\) 通電話在線」與流入、流出率的平衡,推導穩態分配,這比馬可夫鏈的系統理論(馬可夫 1906 年提出離散鏈,Kolmogorov 1930 年代完善連續版)更早應用於實務。其二,他示範了「排隊模型=輸入過程+服務機制+佇列規則」的三件套分析框架,後世 Kendall 記號(1953)的 \(M/M/s\) 正是對 Erlang 模型的整理命名。
前因後果與驅動關係#
- 管理問題驅動理論:電話公司的「線路投資 vs. 顧客忙音」是史上第一個「服務容量最適化」問題。它與 1.2 節 Ford 流水線的節拍問題恰好對偶:Ford 要消除等待,Erlang 要為等待定價。
- 理論如何改變實務:Erlang B/C 使容量規劃從「憑感覺」變成「給定服務水準反解容量」,成為電話公司工程預算的標準程序;今日的呼叫中心排班(第 4.3 節)、機房容量設計、急診室與銀行櫃台規劃,全是同一公式的後裔。
- 對後續章節的影響:4.2 節把 Erlang 的生滅過程整理成 \(M/M/1\) 排隊模型的等待時間公式;4.3 節將等待成本與服務成本合併做最適化。7.2 節六標準差中「變異是敵人」的觀念,在排隊論裡有精確的定量版本(變異越大、佇列越長)。
- 與兄弟書的連結:《金融的數學》第 5 章的隨機過程與本章同根——泊松過程既描述來話,也描述跳躍股價;《機率統計》一書的指數分配與無記憶性,正是 Erlang 模型的積木。
練習#
- 某客服專線 \(\lambda = 10\) 通/分鐘、平均通話 3 分鐘。求話務強度(Erlang 數),並用 Erlang B 遞迴計算 \(B(1)\) 、 \(B(2)\) (至少前兩階)。
- 話務量不變( \(a = 60\) Erlang)而線路從 67 條減到 64 條,用遞迴估計忙音機率上升的幅度,並說明「線路愈多、每條的邊際改善愈小」的遞減現象。
- 比較兩系統:甲系統 1 條線、 \(a=0.5\) Erlang;乙系統 2 條線、 \(a=2 \times 0.5 = 1\) Erlang。分別計算阻塞率,解釋為何集中共用的系統阻塞率反而較低(統計複用/pooling 效應)。
- Erlang C 公式只在 \(a < s\) (線路數大於話務量)時有意義。說明若 \(a \ge s\) 會發生什麼,這對呼叫中心排班意味著什麼。
- 思考題:忙音機率 \(5\%\) 這個「服務水準」本身該如何訂定?若每位顧客的忙音成本不同(重撥者 vs. 流失者),你會如何把它轉成經濟問題?
年表速查#
- 1905:Erlang 進入哥本哈根電話公司,開始研究話務。
- 1909:發表《機率論與電話交談》,排隊論的第一篇論文。
- 1917:發表 Erlang B 與 Erlang C 擁塞公式。
- 1920:提出「理想交換系統」的漸近分析(truncated Poisson 的進一步研究)。
- 1930s:Kolmogorov 等人完善生滅過程理論,Erlang 模型獲得嚴格基礎。
- 1946:國際電信聯盟採用「Erlang」為話務量單位。
- 1953:Kendall 提出 \(A/B/s\) 記號,排隊論系統化。
深化問答#
問:為什麼 Erlang 敢假設來話是泊松過程? 答:因為成千上萬的用戶各自、獨立地偶爾撥號。當大量彼此獨立的稀有事件匯總時,到達過程趨近泊松——這是機率論中的稀薄化/聚合定理(後由 Palm 於 1943 年系統化為 Palm 理論)。Erlang 以實測話務驗證了間隔的指數性,這是「理論假設必須接受數據檢驗」的早期示範。
問:Erlang B 的遞迴式為何重要? 答:直接計算 \(B(s,a)\) 要處理兩個都在爆炸的階乘與冪,手算幾乎不可行;遞迴式 \(B(s,a) = aB(s-1,a)/(s + aB(s-1,a))\) 只需逐線一步算術,使 1920 年代的電話工程師能用算尺為整座城市做容量規劃。「公式要配合當時的計算工具設計」,這是演算法思想的先聲。
問:忙音機率與等待機率,實務上該用哪個? 答:取決於系統面對過載的態度。電話中繼線的通話一旦開始不可中斷,全忙只能拒絕(損失制,Erlang B);客服中心可以讓人排隊(等待制,Erlang C),但等待有成本上限。混合理論(部分來話排隊、超時轉出)是現代呼叫中心的真實形態。
名詞速查表#
- 話務強度(traffic intensity, \(a\) ): \(\lambda/\mu\) ,單位 Erlang,等於「同時佔線的期望通數」。
- Erlang B 公式:無等待、全忙即損失(blocked calls cleared)的阻塞機率。
- Erlang C 公式:無限等待佇列下,來話需等待的機率。
- 生滅過程(birth–death process):狀態只相鄰跳躍的連續時間馬可夫鏈,Erlang 分析的核心工具。
- 阻塞(blocking):資源全忙導致新來話被拒或等待。
- 統計複用(pooling):共用容量比分散專線更省的效應。
(本節完)