2026年5月16日 星期六

演算法觀點的圖論 習題 1-36 Hoffman,

問題:


一座山脈是指座標平面上從 A = (a, 0) 到 B = (b, 0) 在上半平面的一連串折線段。考慮兩個登山者甲和乙分別從兩端點出發, 證明他們有辦法用一種(或許是非常詭異的)方式登山,使得兩個人在登山過程中的任何時刻都維持在同樣的海拔高度, 而且最後又能碰面


解答:



背景定理

Brouwer 不動點定理(二維版):若 f : D → D閉圓盤(或任意凸緊集)到自身的連續映射,則存 在 x* ∈ D 使得 f(x*) = x*

Nash 均衡的存在性本身正是用此定理證明的 ——每位玩家的「最優反應映射」組合成一個乘積空間上的連續自映射,不動點即均衡。本題 我們借用同樣的框架。


Step 1:建立策略空間

設山脈對應的連續高度函數為:

h : [0, 1] → [0, +∞),  h(0) = h(1) = 0

(將山脈的弧長參數化,s = 0 對應 As = 1 對應 Bh(s) 為海拔)

定義策略空間為正方形:

Ω = [0, 1] × [0, 1]

其中點 (s, t) ∈ Ω 代表「甲的位置參數為 s、乙的位置參數為 t」。

Ω2 中的凸緊集,滿足 Brouwer 定理的前提。


Step 2:定義高度差與反應函數

定義高度差:

δ(s, t) = h(s) − h(t)

對每個狀態 (s, t),定義兩人的「最優反應」——

  • δ > 0(甲較高),甲應「退後等待」,乙應「 向前追高」
  • δ < 0(乙較高),乙應「退後等待」,甲應「 向前追高」
  • δ = 0,兩人同時微小前進

用數學語言,定義反應映射 F : Ω → Ω

F(s, t) = (s + αφ+(−δ(s, t)), t + αφ+(δ(s, t))) (mod  [0, 1])

其中:

  • φ+(x) = max (x, 0)(只取正部)
  • α > 0 是足夠小的步長

但這個直接構造在邊界處需要 clipping,較麻煩。以下給出更乾淨的標準構造:


Step 3:標準構造——「同高集」的連通性

更優雅的 Brouwer 路線是證明:

𝒵 = {(s, t) ∈ Ω : h(s) = h(t)}

(同高集)必然包含一條從 (0, 1) 連通到某個對角線點 (c, c) 的連續曲線

考慮映射

F : Ω → Ω,   F(s, t) = (s′, t′)

其中 (s′, t′) 由以下規則定義:從 (s, t) 出發,沿「高度差下降最快」的方向走一小步後投影回 Ω。形式上:

$$ s' = \mathrm{clip}\!\left(s - \eta\,\frac{\partial \delta}{\partial s},\,0,1\right), \quad t' = \mathrm{clip}\!\left(t + \eta\,\frac{\partial \delta}{\partial t},\,0,1\right) $$

其中 η > 0 很小,clip 將值限制在 [0, 1]


Step 4:核心 Brouwer 論證

定義最終映射。更簡潔地,設:

$$ G : \Omega \to \Omega, \qquad G(s,t) = \left(\frac{s + s^*(t)}{2},\; \frac{t + t^*(s)}{2}\right) $$

其中 η > 0 很小,clip 將值限制在 [0, 1]


Step 4:核心 Brouwer 論證

定義最終映射。更簡潔地,設:

$$ G : \Omega \to \Omega, \qquad G(s,t) = \left(\frac{s + s^*(t)}{2},\; \frac{t + t^*(s)}{2}\right) $$

其中:

  • s*(t) = 給定乙在 t,使 h(s) = h(t) 的最近的 s(由 IVT 保證存在,取連續選取)
  • t*(s) = 類似定義

GΩ 連續映射到 Ω 自身。

Brouwer 不動點定理 ,存在 (s*, t*) ∈ Ω 使得:

G(s*, t*) = (s*, t*)

翻譯不動點的含義

不動點方程要求:

$$ s^* = \frac{s^* + s^*(t^*)}{2} \implies s^* = s^*(t^*) $$

$$ t^* = \frac{t^* + t^*(s^*)}{2} \implies t^* = t^*(s^*) $$

s*(t*) 的定義知 h(s*(t*)) = h(t*),故:

h(s*) = h(t*)

即兩人在不動點處海拔相同


Step 5:碰面的論證

上述不動點僅保證「存在某個同高狀態」,但如何保證最終碰面

我們再施加一個約束:令映射 G 的定義域限制在「甲乙尚未超越彼此」的區域:

Ω0 = {(s, t) ∈ Ω : s ≤ t}

(三角形區域,仍為凸緊集)並令邊界 s = t 上的點為吸收態(映射到自身)。

G 限制到 Ω0 仍是 Ω0 → Ω0 的連續自映射,Brouwer 定理再次保證不動點存在。

對角線邊界 s = t 上的不動點正好是 s* = t*,即兩人在同一位置碰面,此時 h(s*) = h(t*) = h(s*) 自動滿足。∎


與 IVT 路線的本質差異

面向 IVT 路線 Brouwer 不動點路線
核心工具 一維連續函數零點定理 二維連續自映射不動點
論證風格 構造性(明確給出等人策略) 存在性(只保證存在,不給出具體策略)
直覺 高度差函數必過零 策略空間的「自我一致性」
所需拓樸深度 初等分析 代數/微分拓樸
可推廣性 一維情形最自然 可推廣至多人、多維山脈
與 Nash 的聯繫 無直接關聯 完全同構——登山者的「最優反應」即 Nash 均衡策略

🌟 Nash 均衡的詮釋

把登山問題視為一個合作賽局:甲乙各自選擇「前進速度策略」,目 標是維持同高。Nash 均衡就是那個沒有任何一方有動機單方面改變的狀態——而那個狀態正好對應 h(s) = h(t)、兩人 都選擇「繼續前進」直到碰面的均衡策略。Brouwer 定理保證這個均衡必然存在,正如它保證任何有限賽局的混合策略 Nash 均衡存在一樣。

握手引理:最樸素的圖論定理,卻威力無窮

 

「所有偉大的數學,都藏在最簡單的觀察裡。」

 


引言:一個派對上的問題

想像你參加一個派對,其中幾位賓客兩兩握了手。有人提出了一個問題:所有人握手次數的總和,是奇數還是偶數?

答案出乎意料地確定——永遠是偶數

這個觀察雖然簡單,卻是圖論中最基礎、應用最廣的定理之一:握手引理(Handshaking Lemma)。從組合計數、演算法設計,到拓樸學中 Sperner 引理和 Brouwer 不動點定理的證明,握手引理無處不在。



基本定義

在進入定理之前,先確立幾個圖論的基本語言。

圖(Graph) G=(V,E) 由兩個集合組成:頂點集 V(代表個體)和邊集 E(代表個體之間的關係)。每條邊連接兩個頂點。

一個頂點 v度數(degree) deg(v),是指與 v

相連的邊的條數。回到派對的例子:每個人就是一個頂點,兩人握手就是一條邊,每個人的 握手次數就是其度數。


定理敘述

握手引理:設 G=(V,E) 為一個有限無向圖,則所有頂點的度數之和等於邊數的兩倍:

vVdeg(v)=2E

直接推論:由於右側 2E 必為偶數,左側的度數總和也是偶數。因此,度數為奇數的頂點,個數必定是偶數個(包含 0 個)。


證明:一個觀察就夠了

握手引理的證明極其簡短,核心是一個換個角度看問題的觀察。

證明:對每條邊 它恰好對 u 的度數和 v 的度數各貢獻 1。因此,當我們把所有頂點的度數加總時,每條邊被計算了恰好兩次:

vVdeg(v)=eE2=2∣E


整個證明只有兩行,卻蘊含著「換個計數順序」的精髓——先按頂點統 計,再意識到每條邊被重複計算,這種雙重計數(Double Counting)的思想在組合數學中反覆出現。


一個具體例子

設圖 (G) 有 5 個頂點,度數分別為:

deg(v1)=3,deg(v2)=2,deg(v3)=3,deg(v4)=1,deg(v5)=1

度數總和:

[3+2+3+1+1 = 10 = 2 ]

所以這個圖有 5 條邊。並且,度數為奇數的頂點v1,v3,v4,v5恰好有 4 個(偶數)。


重要推論

奇度頂點必為偶數個

這是握手引理最常用的推論:

推論:任何圖中,度數為奇數的頂點個數必定是偶數。

證明

設奇度頂點集合為 Vodd,偶度頂點集合為 Veven,則:

vVdeg(v)=vVodddeg(v)奇數個奇數之和+vVevendeg(v)偶數=2E


右側為偶數,右側第二項為偶數,故左側第一項(奇數個奇數之和)必須也是偶數。奇數個奇數之和為偶數,當且僅當奇數的個數為偶數。∎

正則圖的邊數

特別地,若 k 為奇數,則 V

必須是偶數(否則邊數不為整數)。


進階應用一:Euler 路徑的存在條件

Euler 路徑是一條恰好經過圖中每條邊一次的路徑,Euler 迴路則是起點與終點相同的 Euler 路徑。

定理(Euler,1736):連通圖 (G) 存在 Euler 迴路,當且僅當每個頂點的度數均為偶數。存在 Euler 路徑(非迴路),當且僅當恰好有兩個奇度頂點。

為什麼與握手引理有關?因為在行走路徑時,每次「進入」一個頂點就需要「離開」,進出各消耗一條邊,這要求除了起點和終點外,每個頂點的度數必須是偶數。而握手引理保證奇度頂點必為偶數個——最少 0 個(Euler 迴路)或 2 個(Euler 路徑)。

柯尼斯堡七橋問題正是這個定理的歷史起源:七座橋對應的圖有 4 個奇度頂點,所以一筆畫(Euler 路徑)不存在。


進階應用二:Sperner 引理的證明

數學傳播 - pdf

這是握手引理最令人驚豔的應用之一,把組合計數與拓樸學聯繫起來。

Sperner 引理(1928):將大三角形 V1V2V3 做三角剖分,並對所有頂點著三色(規則如下),則三色小三角形(三頂點顏色各不同)的數量為奇數,特別地至少有一個。

著色規則: 

  • 大頂點 Vi 著第 i

  • ViVj 邊上的點只能著第 i 或第 j

  • 內部頂點任意著三色之一

如何用握手引理?

構造半對偶圖 T:每個小三角形(以及一個「無限外部面」)作為 T 的頂點,當兩個面之間的公共邊兩端分別標著顏色 1 和 2(稱為「12-邊」)時,就在 T 中連一條邊。

每個小三角形在  中的度數如下:

小三角形類型包含的 12-邊數在 T 中的度數
三色(123)11(奇數)
雙色(112 或 122)22(偶數)
其他(111、333 等)00(偶數)
外部無限面x(見下)x(奇數)

為何外部面度數為奇數? 

 邊上,頂點標號從 1 連續變化到 2,「換色」次數為奇數,故 12-邊數 x 為奇數。

設三色三角形數量為 ,由握手引理T 中所有頂點度數之和為偶數:

1+(偶度頂點的度數和)+x=2ET

因此:

+x0(mod2)    x1(mod2)

奇數,至少為 1。∎ () 為奇數,至少為 1。∎ 

這個論證的美妙之處在於:從「計數 12-邊」這個純粹的組合操作,竟然推出了一個幾何結構(三色三角形存在)的深刻結論。


進階應用三:通往 Brouwer 不動點定理

維基百科

Sperner 引理不只是一個孤立的組合命題——它是 Brouwer 不動點定理的基石。

Brouwer 不動點定理:若 f:DD 是凸緊集到自身的連續映射,則存在不動點 x 使得 f(x)=x

證明策略:

對三角形 T 做越來越細的三角剖分(第 n 級,網格大小 1n),利用映射 f 的重心座標定義 Sperner 著色,每次都由 Sperner 引理保證至少一個三色三角形存在。令 n,由緊緻性取收斂子列,極限點 p 即為不動點。

整個邏輯鏈如下:

握手引理Sperner 引理Brouwer 不動點定理Nash 均衡存在性

一個關於度數之和的初等觀察,最終撐起了現代賽局理論的核心定理——這正是數學基礎研究的力量。


握手引理的不同面貌

應用領域握手引理的角色具體應用
圖論基本工具Euler 路徑存在條件
組合數學雙重計數證明 Sperner 引理
拓樸學間接基石證明 Brouwer 不動點定理
電腦科學演算法分析網路協定的握手設計、圖遍歷演算法
賽局理論基礎支撐Nash 均衡的存在性


結語:一條邊,兩個端點

握手引理的精髓可以濃縮成一句話:每條邊有兩個端點

這個觀察平凡到幾乎讓人懷疑它的用處,但正是這種「換個角度數同一件事」的思維,>支撐起了從 Euler 的七橋問題到 Nash 均衡的整座數學大廈。

數學的美,往往就藏在這樣的簡單觀察裡——樸素,卻威力無窮。


本文涵蓋了握手引理的定義、證明、推論,以及在 Euler 路徑、Sperner 引理與 Brouwer 不動點定理中的應用,適合對數學有基本興趣的讀者閱讀。

熱門文章