【グラフ理論】握手補題とは? 主張・証明・応用・名前の由来について解説

2025.03/20

こんにちは!半沢です!

今回の記事ではグラフ理論における握手補題(handshaking lemma)について解説します。

握手補題は単純なものながら,グラフ理論のいたるところで現れる基礎的なものです。

今回の記事では握手補題の主張・証明・応用について紹介しています。

ぜひ読んでいってください。

握手補題

主張

握手補題(handshaking lemma)
\(V\,\)を点集合,\(\,E\,\)を辺集合とするグラフ\(\,G\,\)について次の関係式が成り立つ。

\(\displaystyle \sum_{v\in V}\deg v =2|E|\)

グラフの点の次数の総和は,辺の数の\(\,2\,\)倍になるという単純な補題ですね。

しかしこの簡単な補題は,グラフ理論のいたるところで出てくる重要なものです。

握手補題だけでも面白い応用がたくさん得られるので,気になる方はご覧ください。

よく使用される次の系も押さえておきましょう。


任意のグラフにおいて,奇数次の点の個数は偶数個である。

こちらの系の証明は簡単で,任意のグラフ\(\,G(V,E)\,\)について,
偶数次の点集合を\(\,V_e\,\),奇数次の点集合を\(\,V_o\,\)とおくと,

\(\displaystyle \sum_{v\in V}\deg v =\sum_{v\in V_{e}}\deg v+\sum_{v\in V_{o}}\deg v\)

と分解できます。

よって握手補題\(\,\displaystyle \sum_{v\in V}\deg v =2|E|\,\)の式から

\(\displaystyle \sum_{v\in V_{o}}\deg v =\sum_{v\in V_{e}}\deg v-2|E|\)

となりますが,\(\,\displaystyle\sum_{v\in V_{e}}\deg v\,\)と\(\,2|E|\,\)は偶数なので,\(\displaystyle \sum_{v\in V_{o}}\deg v\,\)も偶数となります。

奇数の項を奇数個足し上げても奇数なので,
矛盾しないためには奇数次の点の個数\(\,|V_o|\,\)が偶数である必要が示されます。

したがって系は示されました。\(\quad\square\)

次節では名前の由来が分かる握手補題の証明について確認していきましょう。

証明

それでは握手補題の証明です。

\(2\,\)通りの方法で数える手法により示していきます。
この手法は握手補題以外にも用いられることが多いので,しっかり身に着けておきましょう。

点の次数の合計を次の\(\,2\,\)通りの方法で数えましょう。

\((1)\,\)単純に点の次数を数え上げる。

\((2)\,\)\(\,1\,\)つの辺がその\(\,2\,\)つの端点の次数に寄与していることに着目して数え上げる。

\((1)\,\)の数え方で数えるともちろん,\(\displaystyle \sum_{v\in V}\deg v\,\)となります。

\((2)\,\)の数え方で数えると,

辺\(\,1\,\)つにつき,\(\,2\,\)つの端点の次数に寄与しているので,\(\,2|E|\,\)となることが分かります。

したがって握手補題

\(\displaystyle \sum_{v\in V}\deg v =2|E|\)

は示されました。\(\quad\square\)

この証明は次のようなイメージで考えることもできます。

点から伸びている辺を「手」とみなし,グラフの辺はその手が「握手」することで作られると考えると

\(1\,\)つの握手のためには\(\,2\,\)つの手が必要であることから証明されているわけです。

このようなイメージで考えられるので,握手補題と呼ばれているわけですね。

今回の記事では詳しく言えば無向グラフの握手補題を示していますが,\(\,2\,\)通りの方法で数え上げる手法により,有効グラフの握手補題も簡単に証明できるので,証明をしっかり押さえておきましょう。

応用

単純な握手補題だけから理解できる面白い事実が下のようにたくさんあります。

【グラフ理論】ライツアウトとは? 遊び方から全ライトがONの状態は消灯できることの証明まで解説

握手補題からシュペルナーの補題を導く

握手補題と登山問題(mountain climbing problem)との関係

詳しい解説はこれから別の記事として書きたいと思うので,楽しみにしておいてください。

まとめ

今回の記事では握手補題(handshaking lemma)を解説いたしました。

応用で紹介したことは,別の記事として書く予定なのでお待ちいただけると嬉しいです。

もし「説明がわかりにくい」などご要望・ご感想がありましたら,
X(旧:Twitter)で#トイカラでつぶやいていただけると,できる限り対応します。

ここまで読んでいただき,ありがとうございました。

人気記事ランキング

  • 【超基本_小学校レベル第9回】速さ 算数における時間の表し方・単位換算,時速・分速・秒速の変換,距離・速さ・時間の関係,平均の速さ

  • 【グラフ理論】隣接行列とは? 定義・イメージから隣接行列の固有値の重要性についても解説

  • 【超基本_小学校レベル第6回】四則演算の計算する順番 計算の工夫

  • 【受験生必見!】京大数学の整数問題に有効な「フェルマーの小定理」を紹介

  • 【東大受験生必見!】東大数学の体積問題の解き方 ~おまけ~

新着記事

  • 【解析学】リーマンゼータ関数の整数における特殊値は? 証明も含めて解説

    2025.04/03

  • 【複素解析学】\(\,\cot\,\)の部分分数分解! 留数定理による証明を解説

    2025.04/01

  • 【解析学】\(\,\cot\,\)の部分分数分解! 美しいヘルグロッツの技法による証明を解説

    2025.03/31

  • オリジナル問題集

    2025.03/21

  • 【グラフ理論】ライツアウトとは? 遊び方から全ライトがONの状態は消灯できることの証明まで解説

    2025.03/20