握手引理

在圖論中，握手引理（handshaking lemma）為在每個有限無向圖中，頂點鄰接奇數個邊的數量有偶數個。也可以說，度數為奇數的頂點有偶數個。例如，在某派對上大家互相握手，則「跟奇數個人握手的人」有偶數個。此引理是由度求和公式（degree sum formula）推導而得，內容為無向圖中所有頂點的度數（鄰接到該頂點的邊數）總和為該圖邊數的兩倍。上面的兩個結果都由在他著名的柯尼斯堡七橋問題的論文上證明，也就是圖論研究的起點。

除了後來催生一筆畫問題的柯尼斯堡七橋問題之外，度求和公式的其他應用還包括了某些組合結構的證明。例如，在斯苯納引理和爬山問題的證明中，該公式的幾何特性經常出現。複雜度類 PPA 概括了在給定大型隱式定義圖中給定一個奇數頂點的情況下，找出第二個奇數頂點的難度。

## 定義與陳述

在無向圖中，包含一系列的頂點與連接無序頂點對的邊。在任何的圖中，頂點 $v$ 的度數 $\deg(v)$ 定義為以 $v$ 為端點的邊的數量。對於允許包含連接頂點本身，也就是包含環的圖，為了符合握手引理，每個環應該對其端點的度數貢獻兩單位（即有環的頂點本身度數加二）。然後握手引理指出，在每個有限無向圖中，度數 $\deg(v)$ 為奇數的頂點數必須為偶數。圖中度數為奇數的頂點有時稱為奇頂點（或奇節點）；以此術語而言，握手引理可改述為「每個圖都有偶數個奇頂點」的陳述。

度求和公式指出：$$\sum_{v\in V} \deg v = 2|E|,$$其中 $V$ 是圖中節點（或頂點）的集合且 $E$ 是圖中邊的集合。也就是說，頂點度數的總和等於邊數的兩倍。在有向圖中，度求和公式的另一種形式指出，所有頂點的入度（in-degree）之和與出度（out-degree）之和皆等於邊的數量。這裡的入度是指「起點為某節點的邊的數量」，出度是指「終點為某節點的邊的數量」。度求和公式的一個版本也適用於有限的集族，等價於多重圖：元素度數的總和（其中度數等於包含它的集合的數量）總是等於集合的勢總和。

這兩個結果也適用於給定圖的任何子圖，特別是其連通元件。推論是對於任何奇數頂點，必存在一條路徑將其連接到另一個奇頂點。

## 應用

### 歐拉路徑與迴路

萊昂哈德·歐拉在研究柯尼斯堡七橋問題時首次證明了握手引理。這個問題是關於如何在柯尼斯堡（現為加里寧格勒）城中進行一次徒步旅行，跨過七座橋，且每座橋都只能走一次。以圖論的術語來說，相當於在一個代表城市和橋梁的連通圖中尋找一條歐拉路徑（Euler path）或歐拉迴路（Euler tour）：遍歷圖中每條邊一次的路徑，其區別為歐拉路徑的起點和終點不同，而歐拉迴路則會回到起點。

歐拉根據圖中奇頂點的數量闡述了此問題的基本結果，握手引理則將奇數頂點的數量限制為偶數。如果奇頂點的數量為零，則存在歐拉迴路；如果為兩個，則存在歐拉路徑。否則，問題就無法解決。在柯尼斯堡七橋問題中，代表該問題的圖有四個奇數頂點，因此既不存在歐拉路徑，也不存在歐拉迴路。這表示在柯尼斯堡，不可能在不重複過橋的情況下走完所有七座橋。

在近似旅行推銷員問題（縮寫為 TSP）的克里斯托菲德斯演算法中，度求和公式的幾何意義扮演著至關重要的角色，使該演演算法得以將頂點成對連接，從而構建一個圖，並在此圖上形成一個歐拉迴路作為近似 TSP 路徑。

### 組合計數

某些組合結構的數量可以透過將它們與適當的「交換圖（exchange graph）」中的奇頂點相關聯來證明其為偶數。

舉例，如 C. A. B. Smith 所證，在任何立方圖 $G$ 中，通過任何固定邊 $uv$ 的漢米頓迴圈數量必為偶數；這些迴圈恰好經過每個頂點一次。則是利用基於握手引理的證明，將此結果推廣到所有頂點都具有奇數度數的圖。湯瑪森定義一個交換圖 $H$，其頂點與 $G$ 中始於 $u$ 並持續通過邊 $uv$ 的漢米頓路徑一一對應。若一條路徑 $p_2$ 可透過在 $p_1$ 的末端添加一條新的邊並從 $p_1$中間移除另一條邊來獲得，那麼 $p_1$ 和 $p_2$ 這兩條路徑在 $H$ 中被定義為透過一條邊連接。此操作是可逆的，形成一個對稱關係，因此 $H$ 是一個無向圖。若路徑 $p$ 結束於頂點 $w$，則 $H$ 中對應於 $p$ 的頂點的度數等於 $p$ 可透過不連接回 $u$ 的邊進行擴展的方法數；也就是若 $p$ 不構成通過 $uv$ 之漢米頓迴圈的一部分，則 $H$ 中此頂點的度數為 $\deg(w)-1$（偶數）；若 $p$ 通過 $uv$ 之漢米頓迴圈的一部分，則為 $\deg(w)-2$（奇數）。因為 $H$ 具有偶數個奇頂點，因此 $G$ 必須有偶數個通過 $uv$ 的漢米頓迴圈。

### 其他應用

握手引理（或度求和公式）在數學中也用於證明其他幾項結果。其中包括：

- 斯苯納引理指出，若一個大三角形被細分成邊對邊相接的小三角形，且頂點會被標上三種顏色，使得大三角形的每條邊上只使用其中的兩種顏色，那至少有一個小三角形的頂點會包含所有三種顏色；此引理應用於不動點定理、求根演演算法，與公平分配賽局。其中一個證明方法是構造一個交換圖，其頂點是這些（大大小小）的三角形且其邊連接的是共享某兩種特定顏色的兩個頂點的三角形對。這個交換圖中，大三角形的度數必然是奇數，具所有三種顏色的小三角形的度數也為奇數，而其他小三角形的度數則為偶數。根據握手定理，具所有三種顏色的小三角形的數量必為奇數，因此至少存在一個這樣的小三角形。
- 爬山問題指出，對於單位區間上的良態，且區間兩端點函數數值相等的函數，可以協調從兩個區間端點同時出發的點的運動（如動畫所示），使它們在區間內的某點相遇，並且在整個運動過程中始終保持在函數值相等的位置。該問題的證明方法之一，需要一個近似原始函數的，具相同極值點的分段線性函數。接著透過單位正方形中單一點的座標來參數化兩個移動點的位置。最後，證明兩個點的可移動位置形成一個嵌入在此單位正方形中的有限圖，而該圖中只有起始位置及其反向位置為奇頂點。根據握手定理，這兩個位置屬於圖中的同一個連通元件，因此從一個位置到另一個位置的路徑必然會經過所需的相遇點。
- 重構猜想是關於從移除單一頂點所形成的子圖多重集來唯一確定圖結構的問題。給定這些資訊，度求和公式可以用來恢復原始圖中的邊數以及每個頂點的度數，而從中可以判斷給定圖是否為正則圖。如果是，則可以通過為所有度數過低的子圖頂點添加新鄰居，從任何一個刪除頂點的子圖中唯一地確定該正則圖。因此，所有正則圖都可以被重構。
- 六貫棋（Hex）是一種由兩名玩家進行的遊戲。玩家輪流在由六邊形方格組成的平行四邊形棋盤上放置自己顏色的棋子，直到其中一名玩家的棋子從棋盤的一邊連接到另一邊，形成一條連續的路徑為止。這個遊戲永遠不會出現平局：當棋盤完全被棋子填滿時，其中一名玩家必然已經形成了一條獲勝路徑。證明這一點的方法之一是從一個已經下滿棋子的棋盤構造一個圖。在這個圖中，六邊形的角點是頂點，而分隔兩種玩家顏色的六邊形邊緣則是邊。這個圖在棋盤的四個角點有四個奇頂點，其他地方的頂點則都是偶數。因此，它必然包含一條連接兩個角點的路徑，這條路徑的其中一側必然屬於其中一名玩家的獲勝路徑。

## 證明

歐拉證明度求和公式時使用了雙重計數的技巧：他以兩種不同的方式，計算了關聯對 $(v,e)$ 的數量，其中 $e$ 是一條邊，且頂點 $v$ 是它的其中一個端點。頂點 $v$ 屬於 $\deg(v)$ 個關聯對，其中 $\deg(v)$（$v$ 的度數）是與它鄰接的邊的數量。因此，關聯對的數量就是所有度數的總和。然而，圖中的每條邊都恰好屬於兩個關聯對，每個端點一個；因此，關聯對的數量是 $2|E|$。由於這兩個公式計算的是同一組物件，它們的值必然相等。同樣的證明也可以解釋為：透過兩種方式對圖的關聯矩陣中的條目進行求和，按行求和得到度數的總和，按列求和得到邊數的兩倍。

對於圖而言，握手引理是度求和公式的直接推論。在整數的和中，總和的奇偶性不受總和中偶數項的影響；當奇數項的數量為偶數時，總和為偶數；當奇數項的數量為奇數時，總和為奇數。由於度求和公式的一邊是偶數 $2|E|$，所以另一邊的和必須有偶數個奇數項；也就是說，必須有偶數個奇數度數頂點。

此外，也可使用數學歸納法來證明度求和公式，或者透過從給定圖中一次移除一條邊，並對其端點的度數進行窮舉法，以確定此移除對奇數度數頂點數量奇偶性的影響，從而直接證明奇數度數頂點的數量為偶數。

## 特殊類別的圖

克萊布希圖是五度正則圖，有偶數個頂點（16個），邊數（40條）是五的倍數。

### 正則圖

度求和公式意味著每個具有 $n$ 個頂點的 $r$-正則圖有 $nr/2$ 條邊。因為邊的數量必須是整數，所以當 $r$ 是奇數時，頂點的數量必須是偶數。此外，對於 $r$ 的奇數值，邊的數量必須可被 $r$ 整除。

### 二部圖與雙正則圖

一個二部圖的頂點被分成兩個子集，每條邊的兩個端點分別位於不同的子集中。同樣地，透過雙重計數的論證可以推斷，在每個子集中，度數之和都等於圖中邊的數量。特別是，這兩個子集的度數之和相等。對於雙正則圖，如果頂點被劃分為 $V_1$ 和 $V_2$ 兩個子集，並且子集 $V_i$ 中的每個頂點都具有度數 $r_i$，那麼必然滿足 $|V_1|r_1=|V_2|r_2$；兩者都等於邊的數量。

### 無限圖

握手引理之通常形式不適用於無限圖，即使這些圖只有有限數量的奇數度數頂點。例如，一條只有一個端點的無限路徑圖圖就只有一個奇數度數頂點，而不是偶數個。然而，可以利用末端（end）的概念來表述握手引理的一個版本。末端是指半無限路徑（「射線（"rays"）」）的等價類，當存在第三條射線同時無限次使用兩條射線中的頂點時，這兩條射線被視為等價。一個末端的度數是它所包含的最大邊不相交射線的數量，如果度數是有限且為奇數，則該末端是奇數的。更普遍地說，對於所有頂點都具有有限度數的圖，無論末端是否具有無限度數，都可以將其定義為奇數或偶數。然後，在這樣的圖中，奇數頂點和奇數末端的數量加總後是偶數或無限個。

### 子圖

根據 Gallai 定理，任何圖的頂點集 $V$ 都可以被劃分為 $V=V_e\cup V_o$，使得在兩個由此產生的導出子圖中，$G[V_e]$ 的所有度數都是偶數，而 $G[V_o]$ 的所有度數都是奇數。根據握手引理，$|V_o|$ 必須是偶數。此外，也可以找到具有許多頂點的偶數度數和奇數度數的導出子圖。可以找到一個至少包含一半頂點的偶數度數導出子圖，並且（在沒有孤立頂點的圖中）可以找到一個奇數度數導出子圖，其滿足 $|V_o|/|V|>1/10000$。

## 計算複雜度

關於利用交換圖（exchange graph）方法證明組合結構存在性的問題，人們對於如何有效地找到這些結構很感興趣。例如，假設輸入是一個三次圖中的漢米頓迴圈；根據史密斯定理，存在第二個迴圈。那這個第二個迴圈能多快被找到呢？

```
研究了這類問題的[[计算复杂度|計算複雜度]]，更廣義地說，是在一個大型隱式定義圖中，當給定一個奇數度頂點時，尋找第二個奇數度頂點的問題。他定義了[[複雜度類]] PPA 來概括這類問題；一個密切相關、定義在有向圖上的類別 PPAD，在演算法賽局理論中引起了廣泛關注，因為計算[[納許均衡]]在計算上等同於此類別中最困難的問題。
```

被證明是 PPA 複雜度類別完備（complete）的計算問題包括與斯苯納引理相關的計算任務，以及根據Hobby–Rice 定理進行資源公平劃分的問題。