第 7 章

圖形結構:人際關係、交通路線與網路世界

當資料重點不在層級,而在彼此的連結關係時,圖形結構會比樹更貼近真實世界。很多你以為只是「網路」的東西,本質上其實都是圖。

Graph

預計閱讀時間:約 7 分鐘

關係管理 營運規劃

本章開場

如果你想從台北車站搭車去淡水,中間會經過哪些站?如果你想知道某位朋友和另一位朋友之間有沒有共同認識的人,又該怎麼想?這些問題都不是在問上下層級,而是在問「誰跟誰連在一起」——這正是圖形結構擅長表達的世界。

本章要解決的問題

當資料之間的重點是關係,而不是分類或排序時,該怎麼描述它們?特別是在一筆資料可能同時連到很多其他資料時,單純的樹狀分類已經不夠用了。

核心概念

圖形結構的基本元素是節點與連線。節點代表人、地點、物件、系統或任務;連線則代表它們之間的關係。和樹狀結構不同的是,一個節點不一定只有一個上層,也可能與很多節點互相連接。

因此,圖特別適合描述社群網路、交通路線、物流網路、網站連結與系統依賴。它的重點不是某個元素在第幾層,而是從這裡能通到哪裡、彼此之間距離多遠、有哪些可能的路徑。

圖形結構不是在分類世界,而是在描繪世界裡的連結。
圖形結構示意:節點與連線 A B C D E F 節點(Node)以圓形表示,連線(Edge)代表兩者之間的關係或路徑
圖形結構示意:六個節點互相連結,每條線代表一條可行的關係或路徑

這也是為什麼很多現代服務離不開圖。只要你在乎「推薦誰給誰」、「從哪裡到哪裡」、「什麼東西彼此有關」,圖就會非常自然地出現。

這在生活中像什麼

捷運轉乘圖是一個很典型的例子。站點是節點,站與站之間的軌道是連線。你查路線時,不是在看層級,而是在找一條可行的路。社群關係也一樣,你和朋友、朋友的朋友,彼此之間形成一張關係網。

地圖導航、推薦餐廳、找共同好友,甚至安排送貨路線,本質上都在處理節點之間的關係與路徑。

捷運路網示意圖 淡水 中山(轉乘) 台北車站 西門 北投 捷運路網:站點為節點,軌道為連線,雙環表示可轉乘的交叉節點
捷運路網示意:同一個節點(中山站)可屬於多條不同路線,這正是圖有別於樹的關鍵

具體例子

  1. 捷運路線圖:每個站是節點,軌道是連線。搜尋「台北車站到淡水」最快路徑,就是在圖上暫覽遊歷,找出換乘次數最少、時間最短的路徑。
  2. LINE 共同好友推薦:「你認識的人」功能就是圖概念。A 認識 B,B 也認識 C,就對 A 推薦 C,對應的是圖中的「共同鄰居」或「距離為 2 的節點」。
  3. 電商平台商品關聯推薦:「買了這個的人也買了那個」,是商品被視如節點、購買行為被視如連線的圖結構。
  4. 停車場空位導引:停車場入口、各樓層、各區域都是節點,出口、電梯、樓梯是連線;導引系統幫你找距入口最近的空位,本質上是在圖上找最短路徑。
  5. 專案任務前置依賴:任務 A 完成後才能開始任務 B 和 C,B 完成後才能開始 D。這些前置依賴關係用圖來表示,遠比簡單的線性清單更清楚。

這在工作上有什麼用

企業系統裡的服務相依圖、供應鏈流程、跨部門協作關係,都很像圖形結構。當某一個服務壞掉時,你需要知道它會影響哪些其他服務;當某個供應商延遲時,你要知道哪些流程會被連帶拖慢。

在專案管理中,若任務之間存在前置依賴或彼此影響,也很適合用圖來看。這比單純列清單更能看出哪些節點是關鍵,哪些路徑最容易卡住。

任務前置依賴有向圖 需求 分析 設計 原型 技術 評估 開發 實作 上線 發布 有向圖(DAG):箭頭代表前置依賴方向,需求分析完成後才能分頭進行設計與技術評估
任務前置依賴圖:用有向圖清楚呈現哪些工作必須先完成,才能解鎖下一個節點

為什麼重要

  • 它能描述多對多關係,貼近真實世界。
  • 它有助於理解路徑、依賴、影響範圍與推薦邏輯。
  • 它讓我們看見資訊不是孤立的,而是互相牽動的。

但圖也容易讓人頭大。當節點太多、連線太密,整張圖會迅速變得難以閱讀。所以圖的應用不只在於把關係畫出來,更在於挑出重要節點、看清關鍵路徑與核心影響。

一句話總結

當你要理解的是「誰跟誰有關」,圖形結構會比分類表更接近真相。

💭 捲輊三問

  1. 你的工作或生活中有沒有一張「關係圖」——人和人、地點和地點之間的連結?把它畫出來。
  2. 圖形和樹狀的主要差異是「可以有環路」,這讓你想到什麼現實場景?
  3. 如果你要描述你們部門的溝通路徑,它比較像樹(有明確層級)還是圖(任意連結)?
下一章

不要逐一比對、不要一層一層找——雜湊讓查找幾乎不花時間。