概念地圖・ALOHA 吞吐曲線
分類:系統
這一頁不只是把一個概念解釋一遍——一張自己畫的結構圖,加上拿台灣情境從頭走一次的實例演練、這個框架什麼時候會騙你,以及它接回 P.A.I.N. 之後長什麼樣。一頁必須交付的三層 →
ALOHA 吞吐曲線:為什麼多派人手,反而做得更少
一九七○年代的夏威夷,幾台終端機共用一條無線頻道,誰想送資料就直接送——撞在一起的那幾筆,等一下再送一次。有人把這件事畫成一條線:橫軸是單位時間送出去的嘗試次數,縱軸是真的送成功的量。線先往上爬,爬到一個頂,然後掉頭往下。那個頂,就是這條頻道的天花板。後來的人把它拿去看調度台、看急診分流、看一支只有幾台車的車隊——凡是「同一個時間只容得下一個人動作」的地方,形狀都長得一樣。真正要回答的問題只有一個:你現在站在頂的哪一邊。
兩條曲線,各自在哪個負載到頂
兩條線用的是同一組座標。G 是單位時間送出去的嘗試次數,重送也算一次。S 是那段時間裡真的沒撞到、順利送達的量。
| 負載 G | 純 ALOHA 的成功量 S | 時槽 ALOHA 的成功量 S |
|---|---|---|
| 0.1 | 0.082 | 0.090 |
| 0.5 | 0.184(到頂) | 0.303 |
| 1.0 | 0.135 | 0.368(到頂) |
| 2.0 | 0.037 | 0.271 |
| 3.0 | 0.007 | 0.149 |
純 ALOHA 那一欄有個很少人念出來的細節:從 0.5 走到 3.0,送出去的嘗試變成原來的六倍,成功的量卻掉到 0.007。中間還有一格值得記——G 等於 0.25 的時候 S 已經有 0.152,也就是說,這條線在真正到頂之前就幾乎爬完了。它的公式是 S=G 乘上 e 的負 2G 次方,時槽版是 S=G 乘上 e 的負 G 次方;差在「一次碰撞會毀掉多長的時間」。時槽版的峰 0.368,是純 ALOHA 那個峰 0.184 的兩倍。
你的線在峰的哪一邊,先看三個地方
一、嘗試與成果分開記。調度台的白板上通常只有一個數字:今天出了幾趟。那個數字落在橫軸上,屬於 G 這一欄——它包含了空跑、包含了到現場發現對方已經自己開走、也包含了兩台車撞在同一個匝道口互相等的那幾十分鐘。自問:你這條線上「送出去的嘗試」跟「成功的量」是不是分開在記?
只要這兩欄擠在同一格裡,你永遠拿不到那條線——因為橫軸跟縱軸用的是同一個數。先把派工單分成「派出去」與「完成結案」兩欄,一個月就夠看出形狀。
二、重送要算進負載。拖吊這一行的重送很好認:同一個案子第二次派車、客戶等太久取消之後又打回來、車到現場停不進去改派另一台。這些在成本上都是真的出勤,在統計表上卻常常被歸成「同一件」。自問:重送算不算進負載,你的統計表講不講得清楚?
把重送藏起來,G 就被系統性低估——於是曲線看起來永遠停在左半邊,永遠是「再加一台車就好」。真正的位置可能早就過頂了。
三、有沒有一個共同的開始時刻。時槽版之所以能把峰抬高,靠的是一件很土的事:所有人只在整點、半點這種對好的時刻起跑,不准隨機插隊。拖吊調度台也做得到——把派車決定收攏在每十分鐘一次的窗口——電話進來先排隊,時間到了一起發。自問:現場能不能靠「排隊等一個開始時刻」把碰撞減掉一半?
這件事的代價要一起算:等窗口意味著最快的那一件會慢幾分鐘。願不願意用「最快那一件慢一點」換「整體不要互相卡」,是調度主管的判斷,圖上不會替你決定。
一支拖吊車隊的雨夜調度,走一遍
底下這家台灣中部的拖吊車隊,是為了把這個結構講清楚而編出來的示意情境,沒有指涉任何真實公司。
- 那一個小時的負載:下雨的週五晚上,快速道路上同時有三台事故車,調度台手上有 6 台拖吊車。案件數與可用車輛都清楚,這是少見的好起點
- 調度台的直覺動作:全部派出去,6 台一次上路,誰先到誰處理。這一步把 G 直接推到最右邊,而右邊那一段是往下的
- 碰撞長什麼樣子:其中 2 台被派到同一個匝道口,路肩只容得下一台作業,兩台互相等,誰都動不了。這就是圖上那個「撞在一起」——兩次嘗試同時發生,兩次都不算成功
- 那一小時的成果:三件事故案,只完成 1 件。派出去的是 6,結案的是 1
- 前一週同一時段:一樣的路段、一樣的雨,調度台只派了 3 台,三件全部結案。派出去的是 3,結案的是 3
兩個晚上放在一起看,形狀就出來了:派 3 台完成 3 件,派 6 台完成 1 件。多出來的那三台一樣在跑,一樣滿身汗——只是那份忙碌花在堵住別人的作業面。這正是曲線過頂之後的樣子,忙碌程度往上,交出去的件數往下。難的地方在於,現場沒有人感覺得到自己過頂了:調度台看到的是「六台都在跑」,司機看到的是「我一整晚沒停」,客戶看到的是「等了七十分鐘」——三種視角各自都成立,而那條線握在誰手上,沒有人說得出來。要看見它,只能把「派出去幾趟」跟「結案幾件」抄在同一張表的兩欄,連續記上幾個雨夜。以上為說明結構用的示意情境,僅供理解框架之用。
這條曲線什麼時候會騙你
- 它假設抵達是隨機的,你的尖峰卻常常是同一個原因一次觸發的。ALOHA 的數學建立在「每個嘗試互相獨立」上。現場往往長成另一個樣子——一場大雨、一次連環追撞、一條主線封閉,三通電話是同一件事的三個分身。這種相關性會讓碰撞比公式預測的更集中、更嚴重,曲線右半邊掉得比圖上更快。所以這張圖的用途是判斷方向。拿它去對帳,數字一定兜不攏。
- 圖上量的是每一次嘗試的成功率,客戶問的是幾點被拖走。S 高不代表等待時間短——它只保證「送出去的嘗試裡,成功的比例好看」。一支車隊可以把 S 調得很漂亮,同時讓最後那一件等到凌晨。到場時間、完工時間、客訴率,這兩條線上都沒有座標軸可以放。要看那些,得另外畫。
- 時槽版的峰是純 ALOHA 那個峰的兩倍,代價是每個人的錶要對得夠準。整條時槽 ALOHA 的優勢,來自一個圖上完全沒畫的前提:全體節點共用一個時間基準。換到拖吊調度上,那個前提叫做「所有司機都會在窗口開始的那一刻真的動」。有人提早三分鐘自己出發,時槽就破了,曲線悄悄退回朱紅色那一條。峰是公式算出來的,紀律才是把它守住的東西。
用痛點的眼光量那條線
那個彎點,是車隊的上限。
《痛點》裡的 P.A.I.N. 有一步是問「誰在痛、痛到願意付錢」。ALOHA 吞吐曲線在這裡的位置很微妙——它把「我們很忙」翻譯成一個可以放上橫軸的數,這是老闆最需要、卻最少人算的一件事。但這張圖畫得出一支車隊在哪個負載開始虧,畫不出那個站在雨裡的車主等到第幾分鐘會開始打第二通電話。前者是產能問題,後者是願付價格的來源。真正值錢的服務常常長在後者身上:同樣是 0.184 的成功量,「六十分鐘到場、全程有訊息」跟「不知道什麼時候會來」,在客戶心裡是兩個價位。曲線幫你決定要不要再加一台車,客戶的痛點幫你決定那一趟能收多少錢——這兩個算式都得有人算。今晚翻開這個月的派工表,挑出最忙的那三個小時,把兩個數字抄在同一行:那三小時派出去幾趟、完成幾件。
關於 ALOHA,常被問到的幾件事
純 ALOHA 的最大吞吐量為什麼只有 0.184?
因為在純 ALOHA 裡,一個封包的「危險區間」有兩個封包長度那麼寬——比它早一點開始、或比它晚一點開始的鄰居,都會撞上來。把這件事寫成式子就是 S=G 乘上 e 的負 2G 次方,微分之後最大值落在 G=0.5,值是 1 除以 2e,約 0.184。換句話說,就算把負載調到最理想的位置,這條頻道也只有不到兩成的時間在做有效的事。
時槽 ALOHA 為什麼可以到 0.368?
時槽版加了一條規則:只准在對好的時刻開始送。這一刀把危險區間從兩個封包長度砍成一個——只有「同一個時槽裡的鄰居」才會撞。式子變成 S=G 乘上 e 的負 G 次方,峰值移到 G=1.0,高度是 1 除以 e,約 0.368,是純 ALOHA 那個峰的兩倍。代價是全體必須共用一個時間基準,這在現場往往比數學難。
ALOHA 跟後來的乙太網路有什麼關係?
乙太網路走的是同一條路的下一步:先聽再送。ALOHA 是「想送就送」,載波偵測則要求節點在開口之前先聽一下線上有沒有人在講——碰撞機率因此再往下掉一大截。所以這條曲線今天的價值來自它的身分:第一次有人把「爭用同一個資源」畫成可以計算的形狀。後面所有的退讓、排程、限流,都是在這張圖上找更好的位置。
這條曲線可以拿來排班或排產嗎?
可以拿來判斷方向,不要拿來當公式。凡是「同一時間只容得下一個人動作」的資源——一台堆高機、一間開刀房、一個路肩作業面——加大投入之後總會遇到一個頂,過了頂就開始互相卡。先別把 0.184 這個數字套進排班表——先把自己的「嘗試」與「完成」分兩欄記上幾個月,看看那個彎點大概長在哪個負載上。形狀是通用的,位置是你自己的。
下一次尖峰之前,先量一次自己的 G。想知道系統收得到回饋之後該怎麼退,可以接著看 AIMD 擁塞視窗 那條鋸齒;想知道怎麼在上游就把水龍頭關小,則是 背壓與流量控制 那一張圖的工作。這一張只回答一個問題:送到多少,就開始虧。
喜歡這篇文章嗎?
每週幫你拆二本好書,把判斷力、好書金句、好問題,直送你的信箱。
不適合你可隨時退訂 · 每週兩封,陪你把書讀進生活。
送出即表示同意我們依隱私權政策使用你的 email。