1. はじめに:この記事の使い方
この記事は,学部レベルの組合せ論を 一記事で俯瞰する ことを目的とする.各トピックについて,定義・主要定理・アルゴリズムを簡潔にまとめる.
使い方 :
初学者 → セクション順に読み進め,組合せ論の全体像を掴むとよい
復習・試験対策 → 目次から必要なセクションへジャンプされたい
競プロの確認 → セクション14「定理・アルゴリズム一覧」で主要結果を一覧できる
以下の依存関係図は,各トピックがどのように繋がっているかを示す.
graph TD
A["数え上げの基礎"] --> B["二項係数と二項定理"]
A --> C["包除原理"]
B --> C
B --> D["母関数I(通常型)"]
C --> D
D --> E["母関数II(指数型)"]
A --> F["漸化式と数え上げ"]
D --> F
B --> G["カタラン数と格子経路"]
D --> G
F --> G
A --> H["鳩の巣・ラムゼー理論"]
B --> I["バーンサイド・ポリア"]
A --> J["組合せデザイン"]
C --> K["半順序集合と束"]
D --> L["代数的組合せ論"]
E --> L
G --> L
style A fill:#f5f5f5,stroke:#333,color:#000
style D fill:#f5f5f5,stroke:#333,color:#000
style G fill:#f5f5f5,stroke:#333,color:#000
style L fill:#f5f5f5,stroke:#333,color:#000
2. 数え上げの基礎
和の法則 :互いに排反な事象 A 1 , … , A k の少なくとも1つが起こる場合の数は ∣ A 1 ∣ + ⋯ + ∣ A k ∣ である. 積の法則 :独立な選択を順に行うとき,場合の数は各段階の場合の数の積である.
n 個の異なるものから r 個を選んで並べる 順列 (permutation)の数は P ( n , r ) = ( n − r )! n ! である.順序を考えない 組合せ (combination)の数は ( r n ) = r ! ( n − r )! n ! である.
n 種類のものから重複を許して r 個選んで並べる 重複順列 の数は n r である.順序を考えない 重複組合せ の数は ( r n + r − 1 ) = H ( n , r ) である.
n 個のものを k 群に分ける(各群のサイズが n 1 , … , n k , n 1 + ⋯ + n k = n )方法の数は ( n 1 , n 2 , … , n k n ) = n 1 ! n 2 ! ⋯ n k ! n !
→ 詳しくは :
https://interconnectd.app/articles/NSCVeBcqW4bXMAfJ55ki
3. 二項係数と二項定理
任意の非負整数 n と x , y に対して ( x + y ) n = k = 0 ∑ n ( k n ) x k y n − k
実数 α と非負整数 k に対して ( k α ) = k ! α ( α − 1 ) ⋯ ( α − k + 1 ) と定める.これにより二項定理は冪級数に拡張される.
→ 詳しくは :
https://interconnectd.app/articles/k0GmsScwb3gKbS4E6WUM
4. 包除原理
有限集合 A 1 , A 2 , … , A n に対して i = 1 ⋃ n A i = i ∑ ∣ A i ∣ − i < j ∑ ∣ A i ∩ A j ∣ + i < j < k ∑ ∣ A i ∩ A j ∩ A k ∣ − ⋯ + ( − 1 ) n − 1 ∣ A 1 ∩ ⋯ ∩ A n ∣
n 個の元の置換で不動点を持たないもの( 完全順列 ,derangement)の数 D n は D n = n ! k = 0 ∑ n k ! ( − 1 ) k
n → ∞ で D n / n ! → 1/ e である.
包除原理を用いて φ ( n ) = n ∏ p ∣ n ( 1 − p 1 ) が導かれる.ここで積は n の相異なる素因数 p を動く.
アルゴリズム :
→ 詳しくは :
https://interconnectd.app/articles/zo5vkgUVJPFIAYBEf0S0
5. 母関数 I(通常型)
数列 { a n } n ≥ 0 の 通常型母関数 (OGF)は形式的冪級数 A ( x ) = n = 0 ∑ ∞ a n x n
である.
→ 詳しくは :
https://interconnectd.app/articles/vD7qgQ3oh7Mwj9jSexz3
6. 母関数 II(指数型)
数列 { a n } n ≥ 0 の 指数型母関数 (EGF)は A ^ ( x ) = n = 0 ∑ ∞ a n n ! x n
である.ラベル付き構造の数え上げに適する.
e x = ∑ n ≥ 0 n ! x n : a n = 1 (全ラベル付き集合)
e e x − 1 = ∑ n ≥ 0 B n n ! x n : B n はベル数(集合の分割数)
− ln ( 1 − x ) = ∑ n ≥ 1 ( n − 1 )! n ! x n :連結置換(巡回置換)
ラベル付き構造 C の EGF が C ( x ) のとき, C の集合(Set 構成)の EGF は e C ( x ) である.
A ^ ( x ) ⋅ B ^ ( x ) = ∑ n ≥ 0 ( ∑ k = 0 n ( k n ) a k b n − k ) n ! x n .これはラベル集合を2つに分割して独立に構造を構成する操作に対応する.
→ 詳しくは :
https://interconnectd.app/articles/ve1PbtKUHIeo7Wr6txNz
7. 漸化式と数え上げ
定数係数 d 階線形漸化式とは a n = c 1 a n − 1 + c 2 a n − 2 + ⋯ + c d a n − d の形の関係式である.
漸化式 a n = c 1 a n − 1 + ⋯ + c d a n − d の 特性方程式 は x d − c 1 x d − 1 − ⋯ − c d = 0 である.根 r 1 , … , r d がすべて異なるとき,一般項は a n = α 1 r 1 n + ⋯ + α d r d n と書ける.
d 階線形漸化式の OGF は有理関数 Q ( x ) P ( x ) となり,部分分数分解から一般項が求まる.
F n = F n − 1 + F n − 2 , F 0 = 0 , F 1 = 1 の一般項は F n = 5 φ n − ψ n ( φ = 2 1 + 5 , ψ = 2 1 − 5 )である.
アルゴリズム :
→ 詳しくは :
https://interconnectd.app/articles/Y4ikULaijwNmUXApIvfo
8. カタラン数と格子経路
カタラン数 C n は以下で定義される: C n = n + 1 1 ( n 2 n ) = ( n 2 n ) − ( n + 1 2 n )
最初のいくつかの値は C 0 = 1 , C 1 = 1 , C 2 = 2 , C 3 = 5 , C 4 = 14 , C 5 = 42 である.
C 0 = 1 , C n + 1 = ∑ k = 0 n C k C n − k .OGF は C ( x ) = 2 x 1 − 1 − 4 x である.
C n は以下のいずれの数とも等しい:
( 0 , 0 ) から ( 2 n , 0 ) への山道(Dyck path)の数
n + 1 個の葉をもつ完全二分木の数
n 個の因子の括弧付けの数
n + 2 角形の三角形分割の数
n 個の要素に対する非交差分割の数
( 0 , 0 ) から ( m , n ) への格子経路(右・上移動)のうち,対角線 y = x を超えないものの数は,全経路数 ( m m + n ) から「悪い経路」の数を反射で数えることで得られる.
候補者 A が a 票, B が b 票を得て A が勝った( a > b )とき,開票の全過程で A が常にリードしている確率は a + b a − b である.
→ 詳しくは :
https://interconnectd.app/articles/uW9bGLpvRDBPkZf8kLZI
9. 鳩の巣原理とラムゼー理論
n + 1 個以上のものを n 個の箱に入れると,少なくとも1つの箱には2個以上入る.一般化: kn + 1 個のものを n 個の箱に入れると,少なくとも1つの箱には k + 1 個以上入る.
長さ mn + 1 以上の実数列は,長さ m + 1 の単調増加部分列または長さ n + 1 の単調減少部分列を含む.
ラムゼー数 R ( s , t ) は, K n の辺を赤・青に2色彩色したとき,赤の K s または青の K t が必ず出現する最小の n である.
任意の正整数 s , t ≥ 2 に対して R ( s , t ) は有限である.上界として R ( s , t ) ≤ ( s − 1 s + t − 2 ) が知られる.特に R ( 3 , 3 ) = 6 である.
確率論的論法により R ( k , k ) ≥ 2 k /2 ( k ≥ 3 )が示される.
→ 詳しくは :
https://interconnectd.app/articles/XsiI9saR8h0dH64M1ujb
10. バーンサイドの補題とポリアの数え上げ定理
群 G が集合 X に 作用する とは,写像 G × X → X ( ( g , x ) ↦ g ⋅ x )が e ⋅ x = x と ( g h ) ⋅ x = g ⋅ ( h ⋅ x ) を満たすことである. x の 軌道 は { g ⋅ x ∣ g ∈ G } である.
g ∈ G に対して Fix ( g ) = { x ∈ X ∣ g ⋅ x = x } を g の 不動点集合 という.
有限群 G が有限集合 X に作用するとき,軌道の数 ∣ X / G ∣ は ∣ X / G ∣ = ∣ G ∣ 1 g ∈ G ∑ ∣ Fix ( g ) ∣
置換群 G が { 1 , … , n } に作用するとき, g ∈ G の巡回型が j 1 個の1-サイクル, j 2 個の2-サイクル,…を持つとする. 巡回指標 は Z ( G ) = ∣ G ∣ 1 g ∈ G ∑ s 1 j 1 ( g ) s 2 j 2 ( g ) ⋯ s n j n ( g )
k 色で彩色するとき, G の作用で同値な彩色の数は Z ( G ) で s i = k ( ∀ i )と代入した値に等しい.さらに重み付き版では s i = w 1 i + w 2 i + ⋯ + w k i と代入すればパターンの母関数が得られる.
→ 詳しくは :
https://interconnectd.app/articles/Jn8paejHgnjTYntp3GZY
11. 組合せデザインとラテン方陣
n × n の配列で,各行・各列に { 1 , 2 , … , n } がちょうど1回ずつ現れるものを n 次の ラテン方陣 (Latin square)という.
2つの n 次ラテン方陣 L 1 , L 2 が 直交する とは, ( L 1 ( i , j ) , L 2 ( i , j )) の n 2 個の組がすべて異なることをいう.互いに直交する k 個のラテン方陣の組を k -MOLS という.
n 次の MOLS の最大個数は n − 1 以下である. n が素数冪のとき最大値 n − 1 が達成される.
v 元集合 V の k 元部分集合( ブロック )の族 B で, V の任意の t 元部分集合がちょうど λ 個のブロックに含まれるものを t - ( v , k , λ ) デザイン という.
2 - ( v , k , λ ) デザインにおいて,ブロック数 b は b ≥ v を満たす.
2 - ( v , 3 , 1 ) デザインを Steiner三重系 S ( 2 , 3 , v ) という.これが存在する必要十分条件は v ≡ 1 または 3 ( mod 6 ) である.
→ 詳しくは :
https://interconnectd.app/articles/Th2k9zGY7e1iIdljsC8C
12. 半順序集合と束
集合 P と二項関係 ≤ の組 ( P , ≤ ) が 半順序集合 (poset)であるとは, ≤ が反射律・反対称律・推移律を満たすことをいう.
すべての要素が互いに比較可能な部分集合を 鎖 (chain),互いに比較不能な部分集合を 反鎖 (antichain)という.
有限半順序集合において,反鎖の最大サイズ = 鎖への最小分割数である.
有限半順序集合において,鎖の最大長 = 反鎖への最小分割数である.
半順序集合 ( L , ≤ ) で,任意の2元 a , b に対して上限 a ∨ b (結び)と下限 a ∧ b (交わり)が存在するものを 束 (lattice)という.
有限半順序集合 ( P , ≤ ) 上の メビウス関数 μ : P × P → Z は, μ ( x , x ) = 1 , x < y のとき ∑ x ≤ z ≤ y μ ( x , z ) = 0 で帰納的に定まる.
f ( x ) = ∑ y ≤ x g ( y ) ならば g ( x ) = ∑ y ≤ x μ ( y , x ) f ( y ) .包除原理はべき集合束上のメビウス反転の特殊ケースである.
→ 詳しくは :
https://interconnectd.app/articles/tc6hpcXOondSu5A2Yt8T
13. 組合せ論と代数
非負整数の単調非増加列 λ = ( λ 1 ≥ λ 2 ≥ ⋯ ≥ λ k > 0 ) ( ∣ λ ∣ = ∑ λ i = n )を n の 分割 (partition)という.対応する箱の配置を Young図形 と呼び,箱に数を入れたものを Young盤 (tableau)という.
Young図形 λ の各箱に 1 , 2 , … , n を重複なく入れ,各行・各列で狭義単調増加となるものを 標準Young盤 という.
形 λ の標準Young盤の総数 f λ は f λ = ∏ u ∈ λ h ( u ) n !
ここで h ( u ) は箱 u の フック長 ( u と同じ行の右側 + 同じ列の下側 + 1 )である.
{ 1 , … , n } の置換と ( P , Q ) (同じ形の標準Young盤の組)との間に Robinson–Schensted–Knuth対応 と呼ばれる全単射が存在する.この対応より ∑ λ ⊢ n ( f λ ) 2 = n ! が従う.
変数の置換で不変な多項式を 対称多項式 という.基本対称多項式 e k と完全斉次対称多項式 h k がその基本的な生成系をなす.
Schur多項式 s λ は半標準Young盤によって定義され,対称多項式環の基底をなす. s λ の積の展開係数( Littlewood–Richardson係数 )は表現論や交差理論と深く関わる.
→ 詳しくは :
https://interconnectd.app/articles/PVQTKpZTRX23VdoC0lnE
14. 定理・アルゴリズム一覧
離散数学と競技プログラミングで登場する主要な定理とアルゴリズムの一行サマリーである.
数え上げの基本定理 :
二項定理 : ( x + y ) n = ∑ ( k n ) x k y n − k
Vandermondeの畳み込み : ( r m + n ) = ∑ k ( k m ) ( r − k n )
包除原理 : ∣ ⋃ A i ∣ = ∑ ∣ A i ∣ − ∑ ∣ A i ∩ A j ∣ + ⋯
完全順列 : D n = n ! ∑ k = 0 n ( − 1 ) k / k !
カタラン数 : C n = n + 1 1 ( n 2 n )
指数公式 :Set構成の EGF = e C ( x )
フック長の公式 : f λ = n ! / ∏ h ( u )
存在定理・構造定理 :
鳩の巣原理 : n + 1 個 → n 個の箱に少なくとも1つは2個以上
Erdős–Szekeresの定理 :長さ mn + 1 の列に長さ m + 1 の増加列 or 長さ n + 1 の減少列
ラムゼーの定理 : R ( s , t ) は有限, R ( s , t ) ≤ ( s − 1 s + t − 2 )
Dilworthの定理 :最大反鎖サイズ = 最小鎖分割数
Fisherの不等式 : 2 -デザインのブロック数 b ≥ v
RSK対応 :置換 ↔ 標準Young盤の組, ∑ ( f λ ) 2 = n !
群作用と対称性 :
バーンサイドの補題 :軌道数 = ∣ G ∣ 1 ∑ ∣ Fix ( g ) ∣
ポリアの数え上げ定理 :巡回指標で s i = k と代入
メビウスの反転公式 :包除原理の一般化
主要アルゴリズム :