ご注文は数オリですか?

トピック一覧へ戻る

グラフ理論入門
更新日:2021-07-11

この記事は,執筆陣より平山が第74回灘校文化祭(2020年・オンライン開催)に寄せて数学研究部の部誌として執筆した きほんの「き」から始めるグラフ理論 ~数学オリンピックの視点から~ の移植・改訂版となります.今後も継続的に加筆・修正が施される可能性があります.

0. はじめに

早速ですが,「グラフ」という単語を聞いて皆さんはどのような概念を想像しますか?明鏡国語辞典第二版(大修館書店)には以下のような定義がなされています:

これにはいわゆる「棒グラフ」や「円グラフ」,あるいは座標平面上に直線や曲線を表現したものが含まれるでしょう.しかし今回我々が扱う「グラフ」はこれらとはかなり異なる概念です.

今回考える「グラフ」として最も身近な対象の一つに鉄道の路線図があります.路線図には実際の形状や距離などが正確には表現されていません.それでも我々が困らないのは,「それぞれの駅(頂点)がどのように路線(辺)で結ばれているか」が最も重要な情報だからです1.こうした「つながり方」に着目して抽象化された図形が今回扱う「グラフ」です.

言語的に定義をすると,グラフ (graph) とは有限個の頂点 (vertex) と有限本の (edge) からなる図形です2.ただし各辺は 2 つの頂点(同じでも構わない)を結ぶものとします.この一見単純で抽象的な対象に様々な情報を乗せていくことで多彩な結果が展開されるのがグラフ理論であり,その汎用性の高さから組み合わせ論において重要な立ち位置を占めています.

ところでこのグラフ理論ですが,タイトルにもある通り数学オリンピックにおいても題材となることが少なくありません.一つ例を見てみましょう.この問題は本編で再び扱います.

#1
★★☆☆☆

17 人の人がそれぞれ他の全員と手紙をやり取りしている.それらの手紙は 3 つの言語でやり取りされており,同じ 2 人の間でやり取りされる手紙は常に同じ言語で書かれている.このとき,互いに同じ言語で手紙をやり取りしている 3 人組が存在することを示せ.

数学オリンピックでグラフ理論が題材となっている問題は上のように適当な設定付けが行われていることが多く,題意を理解する上で直接的にグラフ理論の知識が求められることは基本的にありません.しかしながらグラフ理論の知識を有していると見通しが良くなるケースが殆どです.不思議なことに数学オリンピックにおけるグラフ理論は,いわゆる競技プログラミングなどにおけるそれと比べて遥かに開拓が進んでいない印象があり,全体的に難易度も過大評価されているように見えます.したがって一定の訓練を積めば,ある程度の難問でも物にできるチャンスがある分野と言えましょう.

基本的に一切の前提知識を仮定せず記述していくので,ある程度の心得があるという方は適宜スキップしてください.

1. 基本的な用語

まずは大前提となる基本的な用語の定義を列挙します3

以下,特に断りがない限り単に「グラフ」と言えば有限・単純・無向なものを指すものとします.

以下の命題は定義より明らかですが非常に重要なもので,問題を解く上で意外な盲点になることもあります.

命題 1.1(握手の補題). あるグラフのすべての頂点の次数の総和は,辺数の 2 倍に等しい.特にこれは偶数である.
系 1.2. あるグラフにおいて,次数が奇数の頂点は偶数個である.
命題 1.3. (1) あるグラフにおいて頂点 AB の間に路が存在するとき,頂点 AB の間には道が存在する.

(2) あるグラフにおいて頂点 ABBC の間にそれぞれ道が存在するとき,AC の間にも道が存在する.

証明. 明らか.直感的に理解できない場合は図を描いて納得せよ.

何がグラフとみなせるか?

冒頭で述べた通り,グラフ理論を背景とする数学オリンピックの問題のステートメントのほとんどはグラフ理論の用語で記述されていません.多くは日常感のある設定に置き換えられており,代表的なものとしては人間関係(友人である・同じグループである etc.)や交通網(航空網・高速道路 etc.)などが挙げられます.

しかしながら,一見グラフに関係するようには全く見えないが実はグラフとみなせる状況も数多く存在し,これはグラフ理論の醍醐味の一つと言えるかもしれません.一例としてはマス目です.

#2
★☆☆☆☆

m,n を正整数とする.m×n のマス目において,次の条件をみたすように各マスを黒または白に塗る:任意の黒マスについて,隣接する(一辺を共有する)黒マスは奇数個である.このとき黒マスの総数は偶数であることを示せ.

一般にマス目に対して,各マスを頂点とし隣接する 2 マス間に辺を張ったグラフを考えることがしばしばあります.上の例題は黒マスについてこのグラフを考え,握手の補題(系1.2.)を適用することで直ちに示されます.

他にもより奇抜なグラフの構築を求められることはしばしばあります.そもそも設定がC分野ではないかもしれません.(ネタバレにはなりますが)例えば以下の問題でグラフが利用できるとは,一瞥しただけでは誰も気付かないでしょう(練習問題として再掲します).

#3
★★★★☆
出典不明

n を正の偶数とする.n 個の(相異なるとは限らない)実数 a1,,an について,1<|aiaj|<2 をみたす組 1i<jn の個数の最大値を求めよ.

逆にグラフのように見えるが別なる視点から捉え直した方が良い問題も無論あります.

このように分野をクロスオーバーする問題は,ともすれば大外れした方針に嵌まり込んでしまう危険性もありますが,数学オリンピックの面白さの一つでもあります.地道に実験と考察を重ねて手がかりをつかみましょう.

練習問題

#1-1
★☆☆☆☆
有名事実

連結グラフにおいて最長のパスが 2 つ存在するとき,これらはある共通の頂点を経由することを示せ.

#1-2
★★☆☆☆
有名事実

連結グラフの辺 e について,e が橋であることは e を含む閉路が存在しないことと同値であることを示せ.

#1-3
★★☆☆☆
有名事実

グラフ G に対して,ある 2 頂点の間に辺が存在しないとき新たに辺を張り,元々存在した辺を消去して得られるグラフ G補グラフ (complement graph) と呼ぶ.G が非連結ならば G は連結であることを示せ.

#1-4
判定中

n3 を整数とする.各頂点に 1n の番号が振られた n 頂点の連結グラフであって,以下の条件をみたすものが存在することを示せ:隣接する頂点の番号の総和が頂点によらず等しい.

#1-5
★★★☆☆
有名事実

V(G) の部分集合 D支配的 (dominating) であるとは,任意の頂点 vV(G)D について v と隣接する頂点 wD が存在することである.任意のグラフ G について支配的な集合は奇数個であることを示せ.

#1-6
判定中
有名問題

区分線形関数 f:[0,1]R0f(0)=f(1)=0 をみたす.2P,Q が初めそれぞれ座標 (0,0),(1,0) におり,2 点の y 座標が常に一致するように曲線 y=f(x) 上を連続に動く.適切に動くことで 2 点は出会えることを示せ.

#1-7
判定中
有名問題

m×n のマス目において,各マスが黒または白で塗られている.いま「あるマスを指定し,自身及び隣接するマスすべての白黒を反転させる」という操作を何回か行う.すべてのマスの白黒が反転した状態を作ることは可能か?

2. きほんの「木」

補題 2.1. n 頂点 n1 辺からなる連結グラフ G には,次数 1 の頂点が 2 つ以上存在する.
証明. 高々 1 つを除いて頂点の次数が 2 以上とすると,辺数について 2(n1)2(n1)+1 より矛盾する.
定理 2.2. n(2) 頂点からなる連結グラフ G において,以下の条件は互いに同値である:

 (1) G は閉路を持たない

 (2) G はちょうど n1 辺からなる

 (3) G の任意の 2 頂点について,これらを結ぶ道が一意に存在する

 (4) G の辺はすべて橋である (すなわち G からどの辺を取り除いても非連結となる) 10

証明. (1)(3) は明らか (対偶を取ると良い).(1)(4) は練習1-2より.
(1)(2)n 個の頂点のみがある状況から辺を 1 本ずつ加えることを考えると,閉路を持たないという条件から辺を 1 本加えるごとに連結成分の個数はちょうど 1 ずつ減少する.同様の過程より逆も従う.

定理2.2.の条件の一つ (すなわちすべて) を満たすような連結グラフを (tree) と呼びます.以下の系は定理2.2.の証明よりただちに得られますが,系2.3.は不等式評価などで盲点になりがちですし,系2.4.も決して完全に自明ではありません.

系 2.3. n 頂点からなるグラフ G が連結であるとき,Gn1 本以上の辺を持つ.
系 2.4. n 頂点からなる連結グラフ G は,n 頂点からなる木を部分グラフに持つ.これを全域木 (spanning tree) と言う.

これらの性質をみたすグラフが「木」と呼ばれる所以を探りましょう.ある頂点を選び,それが一番「上」にあるとします.このとき,定理2.2.(3)を考慮すると,2 頂点の間に「上下」の関係を考えることが出来ます11.ここで一番「上」に定めた頂点を (root) と呼び,このような木を特に根付き木 (rooted tree) と呼びます12.木は任意の頂点を根として根付き木とみなすことができ,この操作によって扱いが良くなることが多いです.

2 頂点 u,v が隣接しており,かつ u の方が v より根に近いとき,uv (parent),vu (child) と言います.一般に v と根を結ぶ経路上に u があるとき,uv祖先 (ancestor),vu子孫 (descendant) と言います.

(根以外で) 次数 1 の頂点を (leaf) と呼びます.「子を持たない」とも表現できます.補題2.1.より葉は必ず存在します.

深さ優先探索 (DFS)

根付き木の重要な応用例の一つとして深さ優先探索 (depth-first search) を紹介します.情報科学の用語ですが,その発想自体は数学オリンピックにも無用ではありません13.これは一般のグラフの頂点を全探索するアルゴリズムの一つです.

まず根付き木に対するDFSは定式的に以下のように表現されます.頂点 u に対し操作 op(u) を以下で定めると,根 r について op(r) によって全ての頂点を一度ずつ経由できることが確認できます.これがDFSです.

より噛み砕いて言語化すると以下のようになります.実際に適当な根付き木を描いて追ってみましょう14 15

  1. 根からスタートし,適当な子を選びながら下れるだけ下る.
  2. 葉に到達したら,一つずつ後戻りする.
  3. 訪れていない子が存在するとき,そこから適当な子を選びながら下れるだけ下る.
  4. 2.と3.を繰り返し,根に再び戻ってきたら終了する.

この方法を応用して,一般のグラフに対してもDFSを考えることが出来ます.

  1. 適当な頂点からスタートし,隣接する頂点であって過去に訪れていないものを適当に選びながら進めるだけ進む.
  2. 進める頂点が無くなったら,一つずつ後戻りする.
  3. 隣接する頂点であって過去に訪れていないものが存在するとき,1.に戻る.
  4. 最初にスタートした頂点に再び戻ってきたら終了する.

上の手順で明らかに全ての頂点を経由します.ここで途中で通った辺集合に着目すると,連結で閉路を含まないことから木,すなわち全域木をなしていることがわかります.DFSは全域木を取得する最も単純なアルゴリズムの一つでもあります.

ここでは取り扱いませんが,同様のアルゴリズムに幅優先探索 (breadth-first search) があります.これはある頂点から見た「深さ」が等しい頂点をすべて同時に見ていくことで探索を行います.DFSとBFSにはそれぞれの長所があります.

練習問題

#2-1
★☆☆☆☆
有名事実

n 頂点のグラフのいくつかの辺を赤く塗る.任意の頂点で接続する赤い辺を奇数本に出来るか?

#2-2
★★★☆☆

2010 個の島とそれらを繋ぐ 2009 本の橋が木をなしている.それぞれの島が 1 通の手紙をいずれかの島 (自身でも良い) に送付したところ,以下が成立した:

  • AB が隣接しているとき,2 島の手紙の送付先は隣接しているか同一である

このとき「自分自身に手紙を送った島」または「互いに手紙を交換した隣接する 2 島」の存在を示せ.

#2-3
判定中

無限に広がるマス目のうち,連結な 2007 個以上のマスからなる集合を恐竜と呼ぶ.特に恐竜が原始的とは,二つ以上の恐竜に分割されないことを言う.原始的な恐竜に含まれるマス数の最大値を求めよ.

#2-4
判定中
出典不明

n 頂点からなる単純 (外周が自己交差しない) 多角形 P について,以下の条件をともにみたす対角線の存在を示せ:

  • P の内部に完全に含まれる
  • 二つに分けられた外周それぞれが n/31 個以上の頂点を含む (対角線の端点を除く)

3. 辺彩色

辺彩色 (edge coloring) とは,読んで字の如くグラフの辺をいくつかの色を用いて塗り分けることです.ここで (当然ですが) それぞれの辺全体は同じ色で塗るものとします.一般的に「辺彩色」と言えば「隣接する辺は異なる色で塗る」という制約が課されることがほとんどですが,ここではこの制約を課した辺彩色を特に最適辺彩色と呼んで区別するものとします

Ramseyの定理

Ramseyの定理とは辺彩色における最も根本的な主張の一つで,一般には以下のように記述されます16 17

定理 3.1 (Ramsey). k1,,kr2 を整数とする.このときある R が存在して以下をみたす:nR ならば,完全グラフ Kn の辺をどのように色 1,,r で彩色しても,ある i が存在して同色の辺からなるクリーク Kki が存在する.

ここでは最も単純な結果である18 以下の定理について 2 通りの証明を与えます.いずれの証明も汎用性が高く,より複雑な問題にも容易く応用できるアイディアを含んでいます.なお「Ramseyの定理」で単に以下を指すこともあります.

定理 3.2 (Ramsey). 完全グラフ K6 の各辺を赤または青で塗るとき,同色からなるクリーク K3 が存在する.
証明 1. 適当な頂点 A について,鳩の巣原理より接続する 5 辺のうち同色の 3 辺が存在する.一般性を失わずこれを赤とし,相手を B,C,D とする.これらのうち 2 頂点,例えば B,C を結ぶ辺が赤色ならば ABC が赤色の K3 となる.辺 CD,DB が赤色のときも同様.そうでないとき,BCD が青色の K3 となる.
証明 2. 特に同色の K32 個以上存在することを示そう.相異なる 3 頂点の組 (X,Y,Z) について考える (ここで XZ の順序は区別しない).特に辺 XYYZ の色が異なるとき,これを良い組と呼ぶ.Y を固定したとき良い組の個数の最大値は 3×2=6 個であるから,全体では高々 6×6=36 個.一方で同色でない K3 には良い組がちょうど 2 個ずつ含まれるから,同色の K3 は少なくとも 6C336/2=2 個以上存在する.

最適辺彩色

あるグラフを出来るだけ少ない種類数の色で最適辺彩色することを考えます.グラフ G を最適辺彩色するために必要な色の種類数の最小値を γ(G) で表し,これを求めたいです.まず最もシンプルなケースとして以下が考えられます.

命題 3.3. グラフ G の最大次数を Δ とおく.G が木であるとき,γ(G)=Δ である.

この場合は明らかですが,実際には木のみならず,一般に二部グラフについても同様の主張が成立することが知られています.γ(G)Δ は定義より明らかですが,二部グラフならば常に等号が成立する事実は十分な驚きをもって迎えられます.

定理 3.4 (König). グラフ G の最大次数を Δ とおく.G が二部グラフであるとき,γ(G)=Δ である.
証明. 辺数について帰納法.仮定より適当な辺 uv を取り除いたグラフは Δ 色で最適辺彩色できる.u,v それぞれについて接続する辺の彩色に使われてない色が存在する.これが同じとき e をそれで塗れば良いから,異なるときを考える (u,v について赤・青とする).u には青色の辺が接続しているから,u から始まり青赤青赤 と塗られている最長の道を考えると,これは閉路でなく,かつ v を通らないことがわかる (二部グラフの性質を用いた).さらに最長性よりこの道に含まれる赤と青をすべて入れ替えても最適辺彩色が保たれることがわかるので,辺 uv を青色で塗ることが出来る.

さらに一般のグラフについても類似の主張が成立します.一般的にかなり高い効率で最適辺彩色が可能ということです.

定理 3.5 (Vizing). グラフ G の最大次数を Δ とおくと,γ(G)=Δ または Δ+1 である.

証明はこちらのPDFなどを参照してください.残念ながら具体的に Δ なのか Δ+1 なのかを一般的に判定することは困難ですが,一部のケースについては確定させることが出来ます.例えば完全グラフ Kn などは良い演習になるでしょう (練習3-1).解答は同じPDFに掲載されています.

練習問題

#3-1
判定中
有名問題

完全グラフ Kn を最適辺彩色するのに必要な色の種類数の最小値,すなわち γ(Kn) を求めよ.

#3-2
★★★☆☆

K25 の各辺を赤または青で塗る.同色の辺からなるクリーク K3 の個数の最大値を求めよ.

#3-3
★★☆☆☆

17 人の人がそれぞれ他の全員と手紙をやり取りしている.それらの手紙は 3 つの言語でやり取りされており,同じ 2 人の間でやり取りされる手紙は常に同じ言語で書かれている.互いに同じ言語で手紙をやり取りしている 3 人組が存在することを示せ.

#3-4
★★★☆☆

n6 と互いに素な整数とする.正 n 角形の各頂点を,どの色も奇数回使うように 3 色で塗り分けた.このとき,正 n 角形の頂点からなる二等辺三角形であって,頂点の色がすべて異なるものの存在を示せ.

4. 二部グラフ

グラフ G の頂点集合について,これを n 個の部分集合に分割し (これらを独立集合 (independent set) と呼びます) 各部分集合内の頂点間には辺が張られていないように出来るとき,Gn 部グラフ (n-partite graph) と呼びます.

n 部グラフは「最適頂点彩色」によって特徴付けされます19.すなわち,隣接する頂点が異なる色になるように頂点を「彩色」するとき,ちょうど n 色を用いてこれが可能であるようなグラフが n 部グラフです.ここから明らかに,m>n に対して n 部グラフは m 部グラフであることがわかります.

異なる独立集合に属する頂点対すべてに辺を張った n 部グラフを完全 n 部グラフ (complete n-partite graph) と呼びます.特に各独立集合のサイズが a,b である完全二部グラフを記号 Ka,b で表します.

ここでは特に n=2 とした二部グラフ (bipartite graph) の性質について見ていきます.「男女間の知り合い関係」などに代表されるように様々な設定から立ち現われる,極めて自然な対象です.

定理 4.1. 木は二部グラフである.
証明. 適当に根付き木とみなし,DFSなどの要領で順に交互に彩色すれば,閉路を持たないことから矛盾は起こらない.

二部グラフの最も重要な言い換えが以下の定理4.2.です.直感的に明らかに思えるようになると良いです.

定理 4.2. グラフ G は二部グラフである G は奇閉路(奇数本の辺からなる閉路)を持たない
証明. ():定義より明らか (対偶を取ると良い).():まず適当な全域木を取り,補題4.1.の要領で 2 色に彩色する.ここから残りの辺を 1 本ずつ追加すると,ある辺の両端点が同色になったとき奇閉路に含まれていることがわかる.

上の定理の意外な応用例を見ることが出来ます.なお実際のところ後半はただのオマケで,前半の方が本質的です20

定理 4.3. d を正整数とする.座標平面上の格子点全体を頂点とし,距離が d である 2 点に辺を張ったグラフは二部グラフである.特に n3 を奇数としたとき,格子点のみを頂点とする正 n 角形は存在しない.
証明. a2+b2=d なる整数 (a,b) の組について考える.d3 (mod 4) にはなり得ない.d0 (mod 4) のとき a,b はともに偶数である.連結成分ごとに考えて良いので,x 座標と y 座標の偶奇の組ごとに見ることで d/4 の場合に帰着される.d1 (mod 4) のとき ab の偶奇が異なるから,x 座標と y 座標の和の偶奇によって分類し,d2 (mod 4) のとき ab はともに奇数であるから,x 座標の偶奇によって分類すればよい.後半は定理4.2.より従う.

Hallの結婚定理

あるグラフのマッチング (matching) とは,辺集合であって互いに端点を共有しないものを言います.特に二部グラフにおけるそれ (二部マッチング) は重要な興味です.唐突ですが合コンを想像してみましょう.同じ人数の男女が参加しており,各人には好みの異性が何人かいます.このとき全員が好みの異性と結ばれるような「マッチング」(完全マッチングと呼ばれます) は存在するでしょうか?これに対して簡潔な必要十分条件を与えるのが以下の定理です.

定理 4.4 (Hallの結婚定理). 頂点集合 A に対し Γ(A)A に属する頂点の隣接点の集合を表す.独立集合 U,V からなる二部グラフ G に対して,U の頂点をすべてカバーするマッチングが存在するための必要十分条件は,任意の U の部分集合Aに対し |A||Γ(A)| が成立することである.
証明. 必要性は容易であるから十分性を帰納法で示す.任意の真部分集合 A に対し |A|<|Γ(A)| であるとき,適当な辺を選びその両端点を取り除けば,残ったグラフは条件をみたすため求めるマッチングが得られる.以下 |A|=|Γ(A)| なる真部分集合 A が存在するとする.AΓ(A) からなる二部グラフは条件をみたすため求めるマッチングが存在する.これらを取り除く.UA の部分集合 B について |A|+|B|=|AB||Γ(AB)| であることより,|Γ(AB)Γ(A)||B| が従う.よって残りのグラフにも求めるマッチングが存在する.

この定理の少し特殊な応用例の一つとして,各マスに 0 または 1 が書き込まれているマス目が題材となった問題があります.このとき,各行および各列に対応する頂点を作り,1 が書き込まれているマス目の行・列に対応する頂点間に辺を張った二部グラフを構築します.ここに何らかの形で上の定理を適用すると,常にでは無いにせよ,上手くはまることが少なくないです.以下の練習問題にもいくつか選んだのでチャレンジしてみてください.

練習問題

#4-1
判定中

n 個の島があり,初めはどの島の間にも橋が架かっていない.橋の架かっていない 2 島を選びその間に橋を架ける操作を 2 人が交互に繰り返す.ただし以下の条件が常に満たされねばならない:

  • どの島からも奇数本の橋を渡って自身へ戻ってこれない.

先に橋を架けられなくなった方を負けとするとき,先手必勝となる n をすべて求めよ.

#4-2
★★★☆☆

n を奇数とし,Sn 個の座標平面上の格子点からなる集合とする.置換 fSS について次が成り立つとする:

  • 任意の A,BS に対し,f(A)f(B) の距離は AB の距離以上である.

このとき f(X)=X なる XS が存在することを示せ.

#4-3
判定中

d1,d2 を正整数とする.座標平面上の点の集合 S良いとは,S に属するどの 2 点間の距離も d1 および d2 でないことを指す.n 個の格子点からなる集合に対し,n/4 点以上からなる良い部分集合が存在することを示せ.

#4-4
判定中
出典不明

マス目 n×n の各マスに 0,1,1 のいずれかが書き込まれており,1 および 1 は各行および各列にちょうど 1 つずつ書かれている.このとき,行および列をそれぞれ適当に入れ替えることで,元のマス目の 11 を完全に入れ替えられることを示せ.

#4-5
判定中

各マスに非負整数の書き込まれた n×n のマス目のうち,各行および各列に書かれた数の総和が 1 以上ですべて等しいものを不思議な配置,特に n 個の 1n(n1) 個の 0 からなるものを単純な配置と呼ぶことにする.任意の不思議な配置は有限個の単純な配置の和として表せることを示せ.

#4-6
判定中
出典不明

各マスに 0 または 1 が書き込まれた n×n のマス目が以下の条件をみたす

  • 同行および同列のものを含まないような任意の n マスからなる部分集合には,少なくとも 1 が一つ以上存在する.

このとき,i+jn+1 かつ共通部分の ij マスにすべて 1 が書かれているような i 行および j 列の存在を示せ.

5. 隣接行列

n 頂点の有向グラフ G に対し,頂点 i から j への辺が存在するとき aij=1,それ以外のとき aij=0 として n×n 行列 A を定めます.ただし aii=0 とします.これを G隣接行列 (adjacency matrix)と呼び,以下に挙げるような良い性質を持ちます.いずれも定義から容易に従うので各自で確認してみてください.

無向グラフに対しても同様に定められます.すなわち頂点 ij が隣接しているとき aij=1,それ以外のとき aij=0 とします.A が対称行列 (すなわち A=A) であることに留意すると,上の諸性質は以下のように書き換えられます.

このような値を演算で取り出せるのは扱いが良く,隣接行列の性質を調べることで問題が解けることもあります21

#4
判定中

ある学校において,どの男女の組も互いに知り合いであるか知り合いでないかのいずれかである.どの男子もちょうど n(2) 人の女子と知り合いであり,どの女子もちょうど n 人の男子と知り合いである.また,どの 2 人の男子についても共通の知り合いである女子はちょうど k(0) 人である.このとき,どの 2 人の男子についても共通の知り合いである女子はちょうど k 人であることを示せ.

生徒を頂点とみなし,知り合いである男女の間に辺を張った二部グラフを考えると,一つ目の条件から辺数を考えることで男子と女子の人数が等しいことがわかるので,これを x とおく.x×x の単位行列を E,すべての成分が 1x×x 行列を I とおく.i 人目の男子と j 人目の女子が知り合いのとき aij=1,それ以外のとき aij=0 とすることで正方行列 A を構成すると,各条件より AA=kI+(nk)E が従う (これを T とおく) 22x 本の列ベクトルの一次独立性より T は正則で 23,特に A も正則である.また一つ目の条件より AI=IA=nI であり 24AE=EA=A と合わせて AT=TA が従う.よって AA=A1TA=T であり,これが示すべきことであった.

もちろん線型代数を前提にした問題は数学オリンピックでは出題されませんから,基本的になんらかの純粋に組み合わせ論的な解法は存在するのですが,一つの武器として持ち合わせておくに越したことは全くありません.いくら「オーバーキル」のように見えたところで正解は正解です.好機を逃さないようにしましょう.

練習問題

#5-1
★★★★★

何人かの数学者がおり,どの 2 人も互いに知り合いかそうでないかのいずれかである.彼らを次の条件をみたすように 2 つのグループに分ける方法の場合の数は 2 べき (ある非負整数 k を用いて 2k と表せる整数) であることを示せ:

  • どの数学者についても同じグループに知り合いが偶数人いる.

6. 雑多な話題たち

ハミルトン路

グラフ上のすべての頂点を一度ずつ通る路のことをハミルトン路 (Hamiltonian trail) と言い,特に閉路であるときハミルトン閉路 (Hamiltonian cycle) と呼びます.一般に与えられたグラフがハミルトン (閉) 路を持つための条件を記述するのは困難ですが,辺が「ある程度の密度で」存在すればハミルトン閉路を持つという事実にあまり不思議は無いでしょう.

定理 6.1 (Dirac). n 頂点のグラフ G において,すべての頂点の次数が n/2 以上ならば,G はハミルトン閉路を持つ.
証明. 最小の連結成分を考えることで,G の連結性が従うことに注意する.v0,,vkG における最長の道であるとする.条件より v1,,vk のうち n/2 個以上が v0 と隣接しており,v0,,vk1 のうち n/2 個以上が vk と隣接しているから,鳩の巣原理より v0vi+1,および vivk がともに隣接しているような i が存在する.このとき v0vi+1vi+2vkvivi1v0 は閉道であり,G の連結性からこれはハミルトン閉路でなければならない.

証明を観察すると,条件は弱められることがわかります.すなわち以下の拡張が容易に可能です.

定理 6.2 (Ore). n 頂点のグラフ G において,隣接しない任意の 2 頂点 v,w に対し vw の次数の合計が n 以上ならば,G はハミルトン閉路を持つ.

ハミルトン路のうち,特にすべての辺を一度ずつ通るものをオイラー路 (Eulerian trail) といい,特に閉路のときオイラー閉路 (Eulerian cycle) と呼びます.これはいわゆる「一筆書き」に相当するもので馴染み深く,簡潔な必要十分条件の存在も有名です.しかし特に「すべての次数が頂点が偶数のときオイラー閉路が存在する」という事実は盲点になりがちです.

定理 6.3 (Euler). ある連結グラフ G がオイラー路を持つための必要十分条件は,次数が奇数の頂点が 0 個または 2 個になっていることである.特に 0 個のときオイラー閉路になる.
証明. 必要性は容易.十分性を辺数による帰納法で示す.次数が奇数の頂点が 2 個 (u,v とする) のとき,オイラー路が存在するならばこれらが端点になる.uv が隣接しているとき,これを除去すれば残りでオイラー閉路をとれる.uv が隣接していないとき,u とその適当な隣接点 w を結ぶ辺を除去すれば w の次数は奇数になるため,残りで vw を端点とするオイラー路がとれる.0 個のときは適当な辺を除去すれば,両端点を端点とするオイラー路がとれる.

クリーク

クリーク (clique) 22 とは,あるグラフの部分集合となっている完全グラフのことです.

定理 6.4 (Mantel). n 頂点 m 辺からなるグラフ G がクリーク K3 を含まないとき,mn2/4 である.

なお, K3 を含まないという条件は「triangle-free」とも言います.実際 K3 は完全グラフというよりかは単なる閉路として意識されるのが普通な気はします.

証明. G の頂点の次数の最大値を Δ とおき,次数 Δ の適当な頂点 v をとる.条件より v と接続する Δ 個の頂点同士の間に辺は存在しないため,これらの頂点の次数は高々 nΔ である.またこれら以外の頂点 nΔ の次数は高々 Δ であるから,これらより mΔ(nΔ) の評価が得られる.特に右辺は Δ=n/2 で最大となる.

なお, 頂点を n/2 ずつ独立集合に分けて構成される完全二部グラフを考えると,この評価はstrictです.

このMantelの定理の一般化として得られたのが,次のTuránの定理です.実際 r=2 とすれば主張が一致します.

定理 6.5 (Turán). n 頂点 m 辺からなるグラフ G がクリーク Kr+1 を含まないとき,m(11r)n22 である.
証明. m を最大化するような G を考える.いま関係 を「頂点 xy が隣接していないとき xy」として定め,これが同値関係であることを示す.ある頂点 u,v,w について,uv かつ vw だが uw でないと仮定する.頂点 x の次数を d(x) で表し,場合分けを行う.

以上より は同値関係である.したがってある k が存在して Gk 部グラフであり,特にクリークの条件より kr が必要である.残りは単なる不等式評価の範疇であるから割愛する.

またこの章立てとは直接関係ないですが,参考までにMantelの定理の別視点からの拡張である以下の結果を紹介します.

定理 6.6 (Reiman). n 頂点 m 辺からなるグラフ G が長さ 4 の閉路 C4 を含まないとき,mn4(1+4n3)

同じ対象を 2 通りで評価する,いわゆる「ダブルカウント」と呼ばれる手法を用います.他に練習3-4がその例です.

証明. 各頂点の次数を d1,,dn で表す.相異なる 3 頂点の組 (X,Y,Z) であって (XZ の順序は区別しない),XY および YZ の間にともに辺が存在するものからなる集合を S とする.このとき Y を固定することで |S|= diC2 がわかる.また C4 を含まないことより,XZ の組を固定したとき S の元は高々 1 つであるから,|S| nC2 がわかる.Cauchy-Schwarzの不等式より (2m)2=(di)2ndi2 であるから,4m2n2(n1)+2mn が従う.

有向グラフをはじめ,ここでは統一的に取り上げなかったテーマは他にも多数存在します.興味のある人は探求してみると良いでしょう.なお以下の練習問題はこれらの内容も含めて総合的にチョイスしています.骨のある問題も多いですから,是非じっくり腰を据えて実力試しをしてみてください.

練習問題

#6-1
★★★★★

無向グラフ G についてどの頂点の次数も 3 であるとする.G がハミルトン閉路をもつとき,それと異なる (経由する辺集合が一致しない) ハミルトン閉路が存在することを示せ.

#6-2
判定中
出典不明

n を正の偶数とする.n 個の(相異なるとは限らない)実数 a1,,an について,1<|aiaj|<2 をみたす組 1i<jn の個数の最大値を求めよ.

#6-3
判定中

n 頂点 m 辺のグラフは m(4mn2)3n 個以上のクリーク K3 を持つことを示せ.

#6-4
判定中

n 頂点からなる無向グラフ G が次の条件をみたすとする:

  • 任意の 4 頂点の組 {A,B,C,D} について,ABBCCDDA の間に辺が存在するならば,AC,または BD の間には辺が存在する.

G の相異なる極大クリーク(あるクリークに真に含まれないクリーク)は高々 n(n1)/2 個であることを示せ.

#6-5
判定中

ある無向グラフ G に含まれるクリーク K3,K4 の個数をそれぞれ f(G),g(G) とおく.このとき任意の G に対して cf(G)4g(G)3 が成立するような正定数 c の最小値を求めよ.

#6-6
判定中
有名事実

各辺がいずれか一方に向き付けされた完全グラフをトーナメントグラフ (tournament graph) と呼ぶ.トーナメントグラフは (有向グラフとしての) ハミルトン路をもつことを示せ.

#6-7
判定中

トーナメントグラフの各辺が赤または青で塗られている.このとき,次の条件をみたすような頂点 v の存在を示せ:

  • 任意の頂点 w(v) について,v から w への同色の道が存在する.

凸多面体の各辺がいずれか一方に向き付けされており,すべての頂点について入次数と出次数がともに 1 以上であるとする.このとき,外周が閉路をなすような面の存在を示せ.

#6-9
判定中
JJMO 2016 問5

正整数 n,mm(m+1)<2n をみたす.ある国には n 個の都市と 2 つの航空会社 X,Y がある.各航空会社は 2 都市間の(双方向とは限らない)直行便を開設しており,次の条件をともにみたしている:

  • どの都市 C についても,C から同じ会社のみを乗り継いで C に戻ってこれない.
  • どの相異なる 2 都市についても,いずれかからもう片方へ,同じ会社のみを乗り継いで移動できる.

このとき,ある都市から出発して次の条件をみたすように m 本の直行便を乗り継げることを示せ:

  • Y の便の直後に X の便に乗ることがない.
#6-10
判定中

m,n は正の整数であり,m2,n<32(m1) をみたしている.ある国には m 個の都市と n 本の道路があり,どの道路も 2 つの相異なる都市を結んでいる.同じ都市間を結ぶ複数本の道路があってもよい.

いま,都市を 2 つのグループ α,β に分割し,グループ α の都市とグループ β の都市を結ぶ道路をすべて高速道路とすることになった.このとき,以下の条件をみたす分類が存在することを示せ:

  • どちらのグループも都市を 1 つ以上含む.
  • どの都市に対しても,その都市から出ている高速道路は 1 本以下である.
#6-11
判定中

n3 人の人がいて,そのうち 3 人以上が参加する集会が毎日ある.各集会では参加したどの 2 人も 1 回ずつ握手をする.n 日目の集会が終わった時点でどの 2 人もちょうど 1 回ずつ握手していたとき,すべての集会に同じ人数が参加していたことを示せ.

#6-12
判定中

ある国は 2016 個の都市からなり,どの都市からもちょうど 1 本が出ているように都市間の(双方向とは限らない)直行便を開設したい.このとき開設の仕方によらず次の条件が成立するような最小の k を求めよ:

  • 開設の後,都市をうまく k 個のグループに分けることで,任意の都市について,同じグループ内のどの都市にも 28 本以下の直行便を乗り継いで移動することが不可能なようにできる.
#6-13
判定中

ある学校には 4 人以上の生徒がおり,どの 2 人も互いに友人であるか友人でないかのいずれかである.4 人の生徒が円卓に座ったとき,選び方や座り方によらず,両隣が友人である,または両隣が友人でない生徒が存在したという.このとき,生徒全体を 2 つのグループに分割し,一方はどの 2 人も友人であり,もう一方はどの 2 人も友人でないように出来ることを示せ.

4950 頂点からなる有向グラフ G において,頂点 A から B,および B から C にともに辺が張られているとき,A から C への辺も存在するという.このとき,以下の条件をみたす n の最小値を求めよ:

  • 頂点を n 個のグループに分割して,各グループの頂点間には常に辺が存在するか存在しないかのいずれかに出来る.
#6-15
判定中

a,b を正整数とする.じゃんけん大会が行われ,どの参加者のペアについても勝ち負け引き分けのいずれかを定めた.どの参加者もa 回以上勝ち b 回以上負けたとき,i=1,,a+b に対して QiQi+1 に勝ったような a+b 人の参加者 Q1,,Qa+b の存在を示せ.

#6-16
★★★★☆

あるサービスには 2019 人のユーザーがおり,どの 2 人も互いに友人であるか否かのいずれかである.次のようなイベントが繰り返し起きる:

  • ABAC が友人であり,BC は友人でないようなある 3 人組について,BC が友人となり,ABAC はともに友人でなくなる.

友人の数が 1009 人であるユーザーが 1010 人,友人の数が 1010 人であるユーザーが 1009 人いたとする.イベントをうまく起こすことで,すべてのユーザーの友人の数が高々 1 人になるように出来ることを示せ.

#6-17
★★★★☆

4n 個の小石があり,それぞれの重さは 1,2,,4n である.各小石は n 色のうちのいずれか 1 色で塗られており,各色で塗られている小石はちょうど 4 個ずつある.小石をうまく 2 つの山に分けることで,次の 2 つの条件をともにみたせることを示せ:

  • 各山に含まれる小石の重さの合計は等しい.
  • 各色で塗られている小石は,各山にちょうど 2 個ずつある.
#6-18
判定中

ある無向グラフ G に含まれるクリークの頂点数の最大値は偶数であることがわかっている.このとき頂点集合をうまく 2 つの部分集合に分割することで,それぞれより誘導される部分グラフに含まれるクリークの頂点数の最大値を等しく出来ることを示せ.

#6-19
判定中

あるコンテストで 6 問が出題され,どの 2 問をとっても,それらに両方正解した人は参加者全体の 2/5 より多かった.また 6 問すべてに正解した参加者はいなかった.5 問に正解した参加者が 2 人以上いることを示せ.


  1. ここから「辺彩色」(要するに路線)や「辺の重み(コスト)」(要するに所要時間)などの手段によって様々な種の情報を乗せていくことが出来ます. ↩︎

  2. この定義は全く数学的ではありませんが,ここでは拘らないものとします.興味のある人は形式的な定義についても調べてみましょう.なお,頂点や辺に有限性を課す必要は実際にはありませんが,この記事内では基本的に無限グラフは考えないものとします. ↩︎

  3. 用語の命名や定義には種々の流儀が存在します.誤解を生みそうな用法は避けるか,厳密に定義しておくべきでしょう. ↩︎

  4. 用語こそ同じですが対象が違うので混同のおそれは無いでしょう. ↩︎

  5. 要するに「あるグラフの一部になっているグラフ」です. ↩︎

  6. 要するに「あるグラフからいくつか適当に頂点を選び,それらの間に存在する辺をすべて張って作られる部分グラフ」です. ↩︎

  7. これを歩道 (walk) と総称することもあります.この辺りの定義は流儀によって特に齟齬が生じやすいところですが,命題1.3.が有用です. ↩︎

  8. 始点と終点が一致する道には閉道 (closed path) や単純閉路 (simple cycle) という名称もありますが,多くはこれらも単に閉路と呼ばれます. ↩︎

  9. 「ある 2 頂点の間に道が存在するか」は命題1.3.より同値関係となります.この関係による同値類として連結成分を定義してもよいです. ↩︎

  10. 日常的で直感的な好例に迷路があります.一般的に迷路の解が一意なのは閉路を持たないことから保障されており,逆も然りなわけです. ↩︎

  11. 図を描きましょう.すべての頂点間に「上下」関係が定まるわけではないことに留意してください.要するに「半順序」の関係です. ↩︎

  12. 視覚的には一番「下」に描いた方が「根」や「木」の語感は自然ですが,以下の用語のように家系図をイメージすると「上」の方が良いですね. ↩︎

  13. 一般に情報科学,もとい競技プログラミング方面の知識・発想は,グラフに限らず数学オリンピックの特にC分野やN分野で多く有用に働きます.同時に,逆も然りではないでしょうか. ↩︎

  14. やはり迷路を想像すると良いでしょう.「行き止まりに突き当たるたびに引き返す」という(恐らく)自然で馴染み深い戦略がまさにそれです. ↩︎

  15. この手順で得られた根から出て根へ戻る経路のことをオイラーツアー (Euler tour)と呼びます. ↩︎

  16. 実際にはこれはグラフに限らず組み合わせ論における広範的な主張で,さらなる一般化も可能です.詳細はWikipediaなどを参照して下さい. ↩︎

  17. クリークについては第5章を参照して下さい. ↩︎

  18. 具体的には k1=k2=3 のとき R=6 で良いことを主張しています.逆に K3 を含まない K52 色での彩色を考えてみてください. ↩︎

  19. 単に「彩色」と言えば一般には「最適頂点彩色」を指すことが多いようです.確かに四色定理に代表されるように最も自然な対象ではあります. ↩︎

  20. 後半部分については,実は n を偶数に広げても n=4 に限られ,これには簡潔な証明が知られています:n5 に対し格子点を頂点とする正 n 角形の存在を仮定し,面積最小の A1An をとると,Ai1AiAi+1Bi が平行四辺形となるような各 Bi は格子点で,B1Bn は完全に含まれる正 n 角形となり矛盾. ↩︎

  21. 線型代数を以下しっかり使います.数学オリンピックでは大学以降の知識を援用しても何ら問題ありません.あくまで正しく使えてさえいれば… ↩︎

  22. このように条件が二部グラフの場合は隣接行列を簡潔化できます.ただし上に挙げた諸演算で得られるものが少し変わるので注意して下さい. ↩︎ ↩︎

  23. 正確には n>k が必要ですが,n=k のとき x=n で特に全ての男女が知り合いとわかります.コーナーケースには常に注意しましょう. ↩︎

  24. 固有値の匂いがしますね.その辺りの議論も実際グラフとは好相性です.これは記事の補強によってまた扱いたいと思っています. ↩︎