MathLabs

競技数学と問題解決

場合分けと極値原理

問題をすべての場合に分けて解く、または極端な(最大・最小の)要素に着目して解く方法。

直観手に負えなさそうな問題を扱える場合に分ける

55 人によるノックアウトなしの総当たり将棋(引き分けなし)を想像してほしい。すべての組が1回ずつ対戦し、必ずどちらかが勝つ。選手をある順序 v1,v2,…,v5v_1, v_2, \dots, v_5 に並べて、各選手がすぐ次の選手に勝っているようにできるだろうか。5!=1205! = 120 通りの並びを手で全部調べるのは無駄が多く、答えは誰が誰に勝ったかに依存するように見える。代わりに、選手たちの間に既に存在する最長の勝ち続きの連鎖——最も極端な連鎖——を選び出せば、短い議論でそれがこれ以上伸ばせないことが示され、結果としてすでに全員を含んでいることが強制される。

最長勝利経路を強調した対話型有向トーナメントグラフ。
55 人の選手による対戦グラフ:各矢印は勝者から敗者へ向く。強調された経路は既存の最長の勝ち続き連鎖であり、極値原理によりそれがすでに全選手を通っていることが示される。

大学互いを補い合う二つの戦略:場合分けの網羅性と極値原理

定義: 網羅的な場合分けと極値原理の定義

網羅的な場合分けは、あらゆる可能性の集合 SS を、和集合が SS 全体となる有限個の互いに素な場合 S1,…,SkS_1,\dots,S_k に分割し、それぞれの場合の中で主張を個別に検証する方法である。どの可能性も取りこぼされず、二重に数えられることもないため、すべての場合で主張を示せば SS 全体に対して主張が示されたことになる。極値原理はその代わりに、有限(あるいは整列された)集合の中で、ある量に関して最も極端な要素——最大・最小・最長——を1つ取り出し、その要素がこれ以上改善できないという事実を利用して矛盾を導いたり、直接的な構成を行ったりする。

S=S1∪S2∪⋯∪Sk,Si∩Sj=∅ for i≠jS = S_1 \cup S_2 \cup \cdots \cup S_k,\quad S_i \cap S_j = \varnothing \text{ for } i \neq j

ここで SS は考察対象となるあらゆる可能性の全体であり、kk は場合の数であり、2つの条件はそれらの場合が網羅的(和集合が SS を回復するので取りこぼしがない)かつ互いに排反(2つずつの共通部分が空なので二重に数えられない)であることを述べている。

∅≠A⊆Z≥0  ⟹  ∃ m∈A with m≤a for all a∈A\varnothing \neq A \subseteq \mathbb{Z}_{\ge 0} \implies \exists\, m \in A \text{ with } m \le a \text{ for all } a \in A

この整列原理こそが、整数上で極値原理を厳密にするものである。負でない整数からなる任意の空でない集合 AA には最小元 mm が存在するため、「最小の反例」や「最短経路」という言い回しは決して空虚な表現ではなく、その存在が保証されている。対称性により、AA がさらに有限であるか上に有界であれば、最大元についても同様のことが成り立つ。

M=max⁡x∈Af(x)  ⟹  f(x)≤M for every x∈AM = \max_{x \in A} f(x) \implies f(x) \le M \text{ for every } x \in A

これは最大値の定義以上の何ものでもない——しかしそれこそがあらゆる極値原理の証明の原動力である。MM が最大値として固定されれば、あらゆる競合者 xx が f(x)≤Mf(x) \le M を満たさなければならず、これには MM が実は十分に極端でなかった場合に矛盾を露呈させるために証明が巧妙に構成する競合者も含まれる。

場合分けと極値原理の比較
手法核心となる考え方典型的な用途
網羅的な場合分けあらゆる可能性を有限個の互いに素な場合に分割し、それぞれを検証するnn を法とする偶奇・剰余の議論、小さな有限枚挙
極値原理(最大値)ある量を最大化する要素を取り、それが厳密には改善できないことを示すグラフの最長経路、最も離れた2点、最大の反例
極値原理(最小値)ある量を最小化する要素を取り、それが厳密には超えられないことを示す点と直線の最小距離(シルベスター=ガライ)、最小の反例(無限降下法)
Z≥0\mathbb{Z}_{\ge 0} の整列性負でない整数からなる任意の空でない集合に最小元が存在することを保証する「極値要素」を厳密にする;無限降下法の基礎

大学重要定理:最小距離による通常直線、およびトーナメントにおけるハミルトン路

平面上の n≥3n \ge 3 個の点がすべて同一直線上にはないとき、そのうちちょうど 22 個の点を通る直線(通常直線)が存在する。

なぜ正しいのか?

点が直線上にない(点、2点を通る直線)という有限個の組の中から、厳密に最小の距離を達成する組を選ぶ。もしその最も近い直線上に3つ目の点があれば、幾何学的にさらに近い組が作られてしまい、最小性に矛盾する。

証明

ステップ1(極値による選択の設定)。 PP を、すべてが同一直線上にはない n≥3n \ge 3 個の点からなる与えられた有限集合とする。ℓ\ell が PP の少なくとも 22 個の点を通る直線であり、Q∈PQ \in P が ℓ\ell 上にない点であるような組 (Q,ℓ)(Q, \ell) からなる有限集合を考える。この集合は(PP がすべて同一直線上にはないため)空でなく、有限であるから、極値原理により、点から直線までの距離 d(Q0,ℓ0)d(Q_0, \ell_0) を最小にする組 (Q0,ℓ0)(Q_0, \ell_0) を選ぶことができる。

ステップ2(矛盾の仮定)。 矛盾を導くために、ℓ0\ell_0 が PP の点を 33 個以上含むと仮定する。FF を Q0Q_0 から ℓ0\ell_0 への垂線の足とする。ℓ0\ell_0 上には PP の点が ≥3\ge 3 個あり、それらは FF から ℓ0\ell_0 に沿って伸びる高々 22 本の半直線上にあるので、鳩の巣原理により、そのうち2点 BB と CC が同じ半直線上にあり、BB が FF と CC の間にある(B=FB = F の場合も含む)ようにできる。

ステップ3(相似三角形によるより近い組の構成)。 BB から直線 Q0CQ_0C へ垂線を下ろし、その足を GG とする。直角三角形 △BGC\triangle BGC と △Q0FC\triangle Q_0FC は CC における角を共有するので相似であり、BGQ0F=BCQ0C\dfrac{BG}{Q_0F} = \dfrac{BC}{Q_0C} が成り立つ。BB が FF と CC の間にあるので BC≤FCBC \le FC であり、△Q0FC\triangle Q_0FC は FF で直角なので斜辺について FC<Q0CFC < Q_0C が成り立つ。これらを合わせると BC<Q0CBC < Q_0C となり、したがって BG<Q0F=d(Q0,ℓ0)BG < Q_0F = d(Q_0, \ell_0) を得る。

ステップ4(矛盾)。 直線 Q0CQ_0C は PP の 22 個の点(すなわち Q0Q_0 と CC)を通り、BB はその上にない PP の点であるから、(B,Q0C)(B, Q_0C) は有限集合の中の有効な組であり、d(B,Q0C)=BG<d(Q0,ℓ0)d(B, Q_0C) = BG < d(Q_0, \ell_0) を満たす。これは (Q0,ℓ0)(Q_0, \ell_0) の最小性に矛盾する。

ステップ5(結論)。 この矛盾により ℓ0\ell_0 は PP の点を 33 個以上含むことはできない。少なくとも 22 個を含むように選ばれていたので、ちょうど 22 個を含み、ℓ0\ell_0 が求める通常直線である。

nn 個の頂点を持つあらゆるトーナメント(相異なる各頂点対 u,vu, v に対して弧 u→vu \to v または v→uv \to u のちょうど一方が存在する完全有向グラフ)には、すべての頂点をちょうど1回ずつ訪れるハミルトン路 v1→v2→⋯→vnv_1 \to v_2 \to \cdots \to v_n が存在する。

なぜ正しいのか?

有向路の中で長さが最大のものを取る。もし取り残された頂点があれば、トーナメントの性質(すべての対に有向辺が存在する)により、路の端を延長するか、途中に欠けた頂点を挿入することができ、最大性に矛盾する。

証明

ステップ1(極値による選択)。 トーナメント内のすべての有向路の中から、頂点数 kk が最大となるもの P:v1→v2→⋯→vkP: v_1 \to v_2 \to \cdots \to v_k を選ぶ。頂点は有限個しかないため、この最大値は存在する。矛盾を導くために k<nk < n と仮定し、uu を PP に含まれない頂点とする。

ステップ2(両端での場合分け)。 トーナメントでは u→v1u \to v_1 または v1→uv_1 \to u のちょうど一方が成り立つ。もし u→v1u \to v_1 が成り立てば、先頭に uu を加えることでより長い路 u→v1→⋯→vku \to v_1 \to \cdots \to v_k が得られ、kk の最大性に矛盾する。したがって v1→uv_1 \to u が成り立つ。同様に、vk→uv_k \to u または u→vku \to v_k のちょうど一方が成り立つ。もし vk→uv_k \to u が成り立てば、末尾に uu を加えることでより長い路が得られ、最大性に矛盾する。したがって u→vku \to v_k が成り立つ。

ステップ3(挿入位置の特定)。 ここまでで v1→uv_1 \to u と u→vku \to v_k が分かった。vj→uv_j \to u が成り立つような {1,…,k−1}\{1, \dots, k-1\} 内の最大の添字を jj とする。j=1j = 1 が条件を満たすためこの添字集合は空でなく、極値原理により jj が存在する。jj の最大性より弧 vj+1→uv_{j+1} \to u は成り立たないので、トーナメントの性質により u→vj+1u \to v_{j+1} が成り立つ。

ステップ4(挿入による矛盾)。 vj→uv_j \to u と u→vj+1u \to v_{j+1} を組み合わせて、vjv_j と vj+1v_{j+1} の間に uu を挿入すると、路 v1→⋯→vj→u→vj+1→⋯→vkv_1 \to \cdots \to v_j \to u \to v_{j+1} \to \cdots \to v_k が得られ、これは k+1k + 1 個の頂点を持ち、kk の最大性に矛盾する。

ステップ5(結論)。 そのような頂点 uu は存在し得ないので k=nk = n となり、PP はハミルトン路である。

発展実世界での応用と具体例

スポーツ分析やランキングアルゴリズムにおいて、レーデイの定理は、総当たり戦の結果が——AA が BB に勝ち、BB が CC に勝ち、CC が AA に勝つといった循環的などんでん返しを含む場合でも——各競技者が次の競技者に勝つような線形順位付けに少なくとも1通り並べ替えられることを保証し、これはまさに「はみ出た1人を挿入する」式のスケジューリング発見法が生成する順序と一致する。代数的計算量理論では、シルベスター=ガライの定理の定量版が、制限された共線条件を対ごとに満たせる線形形式の個数を上から抑え、線形形式のべき乗の和を計算する算術回路の下界を証明する鍵となる道具である。アルゴリズム設計とプログラム検証では、「最小の反例を取る」という形の極値原理が、貪欲法や交換法アルゴリズムの正当性を無限降下法で証明する際の標準的な原動力である。

例: x2−y2=45x^2 - y^2 = 45 のすべての解を場合分けで求める

x>yx > y を満たす正の整数の組 (x,y)(x, y) で x2−y2=45x^2 - y^2 = 45 を満たすものをすべて求めよ。

解答

左辺を因数分解する:x2−y2=(x−y)(x+y)=45x^2 - y^2 = (x - y)(x + y) = 45。x,yx, y が x>yx > y を満たす正の整数であるから、d1=x−yd_1 = x - y と d2=x+yd_2 = x + y はともに 4545 の正の約数であり、d1<d2d_1 < d_2 かつ d1d2=45d_1 d_2 = 45 を満たす。さらに両者は偶奇が一致していなければならない(d1+d2=2xd_1 + d_2 = 2x が偶数であるため)が、4545 は奇数なので 4545 のすべての約数が奇数であり、この条件は自動的に満たされる。

45=32×545 = 3^2 \times 5 の正の約数は 1,3,5,9,15,451, 3, 5, 9, 15, 45 であり、45\sqrt{45} より小さい各約数をそれより大きい対応する約数と組にすると、ちょうど 33 通りの網羅的な場合が得られる:(d1,d2)∈{(1,45),(3,15),(5,9)}(d_1, d_2) \in \{(1, 45), (3, 15), (5, 9)\}。4545 のすべての約数がこの3組のうちちょうど1つに現れるため、他の場合はあり得ない。

各場合について x=d1+d22x = \dfrac{d_1 + d_2}{2} と y=d2−d12y = \dfrac{d_2 - d_1}{2} を解くと:(1,45)(1, 45) からは (x,y)=(23,22)(x, y) = (23, 22)、(3,15)(3, 15) からは (x,y)=(9,6)(x, y) = (9, 6)、(5,9)(5, 9) からは (x,y)=(7,2)(x, y) = (7, 2) が得られる。すべての場合を網羅的に確認したので、この 33 組が解の全体である。

例: 極値原理(無限降下法)による 2\sqrt{2} の無理性の証明

通常の既約分数を用いる議論の代わりに、極値(整列)原理を用いて 2\sqrt{2} が無理数であることを証明せよ。

解答

矛盾を導くために、2\sqrt{2} が有理数であると仮定する。すると集合 A={ q∈Z>0:q2∈Z>0 }A = \{\, q \in \mathbb{Z}_{>0} : q\sqrt{2} \in \mathbb{Z}_{>0} \,\} は空でないので、整列原理によりその最小元 q0q_0 が存在する。p0=q02∈Z>0p_0 = q_0\sqrt{2} \in \mathbb{Z}_{>0} とおく。

1<2<21 < \sqrt{2} < 2 なので、q0q_0 を掛けると q0<p0<2q0q_0 < p_0 < 2q_0 が得られる。q1=p0−q0q_1 = p_0 - q_0 および p1=2q0−p0p_1 = 2q_0 - p_0 と定めると、この2つの不等式から 0<q1<q00 < q_1 < q_0 と 0<p1<q00 < p_1 < q_0 が分かり、q1q_1 は q0q_0 より真に小さい正の整数である。

q12=(p0−q0)2=p02−q02=p02−p0q_1\sqrt{2} = (p_0 - q_0)\sqrt{2} = p_0\sqrt{2} - q_0\sqrt{2} = p_0\sqrt{2} - p_0 を計算する。ところが p0=q02p_0 = q_0\sqrt{2} より p02=q02⋅2=2q0p_0\sqrt{2} = q_0\sqrt{2}\cdot\sqrt{2} = 2q_0 となるので、q12=2q0−p0=p1q_1\sqrt{2} = 2q_0 - p_0 = p_1 は正の整数である。

したがって q1∈Aq_1 \in A かつ q1<q0q_1 < q_0 となり、q0q_0 が AA の最小元であることに矛盾する。この矛盾は AA が実際には空でなければならないことを示しており、よって 2\sqrt{2} は無理数である。

シルベスター=ガライの定理は、平面上の有限個の n≥3n \ge 3 点の集合に対して、以下の条件を満たせば通常直線(ちょうど 22 点を通る直線)の存在を保証する:

66 チームによる総当たり戦(引き分けなし)が行われる。レーデイの定理によれば、6!=7206! = 720 通りあり得るチームの並び順のうち、有効なハミルトン路(各チームがすぐ次のチームに勝つという完全な順位付け)であることが保証されるのは何通りか。

33 を法とする剰余についての網羅的な場合分けを用いると、11 から 300300 までの整数のうち 33 で割り切れないものはいくつあるか。

「最小の反例による」証明は、命題が偽であると仮定して失敗する最小の事例を取り、それよりさらに小さい失敗事例を導いて矛盾に至る。この論法が有効であるためには、反例となりうる集合はどのような性質を持たなければならないか。

参考文献

  1. Martin Aigner, Günter M. Ziegler (2018). Proofs from THE BOOK · DOI:10.1007/978-3-662-57265-8
  2. Thomas Schweser, Michael Stiebitz, Bjarne Toft (2025). The Tournament Theorem of Rédei revisited · arXiv:2510.10659 [プレプリント・未査読]