包除原理

提供: testwiki
2023年4月29日 (土) 01:45時点における60.47.88.57 (トーク)による版 (外部リンク)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
ナビゲーションに移動 検索に移動

包除原理(ほうじょげんり、テンプレート:Lang-en-short)あるいは包含と排除の原理とは、数え上げ組合せ論における基本的な結果のひとつ。特別な場合には「有限集合 AB和集合に属する元の数を計算するには、まずそれぞれに属する元の数 |A| と |B| を足しあわせた後、それらの共通部分に属する元の数 |AB| を引き去ればよい」というものである。つまり単に数え上げた後で重複を取り除くことに相当する。

以上の2つの有限集合 A, B に対する包除原理は次のように表せる。

|AB|=|A|+|B||AB|

同様に、3つの有限集合 A, B, C に対する包除原理は次のように表せる。

|ABC|=|A|+|B|+|C||AB||BC||CA|+|ABC|
3つの集合について包除を図示

一般に、 n 個の有限集合 A1, ..., An が与えられたとき、その和集合に属する元の数は

|i=1nAi|=k=1n(1)k1J[n], |J|=k|jJAj|=i|Ai|i<j|AiAj|++(1)n1|A1An|

と表せるテンプレート:Sfnテンプレート:Sfn。ただし、ここで [n] = {1, 2, …, n} とした。

この原理の名称は、あらゆるものを「含め」、その後で「取り除いて」補正をするという考え方に基づいていることからきている。n > 2 のとき、共通部分の補正項を計算するのが非常に困難になることもある。また、公式には符号が交互にあらわれる。

この公式はアブラーム・ド・モアブルによるものと考えられているが、ジェームス・ジョセフ・シルベスターまたはアンリ・ポアンカレによるとも言われる。

証明

包除原理を一般に証明するため、XA1, ..., An上位集合とする。公式はまず恒等式

1Ai=i1Aii<j1AiAj++(1)n11Ai

指示関数の変形でもとめ、全ての xX について足しあわせることで示される。

その他の形

この原理は時に以下のような形で表されるテンプレート:Sfn。有限集合 Sべき集合 2S 上で定義された関数 f, g

g(A)=BAf(B)

を満たすならば、

f(A)=BA(1)|AB|g(B).

この形は半順序集合 2S隣接代数におけるメビウスの反転公式となる。

また、包除原理は確率においても以下のように用いられる。

Pr(iAi)=iPr(Ai)i<jPr(AiAj)++(1)n1Pr(iAi)

テンプレート:仮リンクによれば、この公式の始めの k 項の和は左辺の上界下界を交互にとるテンプレート:Sfn

Pr(iAi)iPr(Ai),Pr(iAi)iPr(Ai)i<jPr(AiAj),Pr(iAi)iPr(Ai)i<jPr(AiAj)+i<j<kPr(AiAjAk),

このことは公式全体が扱いにくい場合に利用される。

応用

おそらく、包除原理のもっともよく知られている応用は、組み合わせ問題における有限集合の攪乱(derangement)に対するものであろう。集合Aの攪乱とはAから自分自身への全単射であって不動点を持たないもののことである。包除原理によって、Aの基数(要素数)をnとしたときの攪乱の数が

[n!e]

となることを示せる。ここで[x]はもっとも近い整数をあたえる関数(nearest integer function)を表す。

これはnのsubfactorialとしても知られ、!nと表す。 これはまた、全ての全単射に等しい確率が与えられた場合、無作為に選ばれた全単射が攪乱となっている確率がnの増加に従い、1/e に素早く近づくことを示している。

この原理によって理論的な公式を求める場合(特にエラトステネスの篩を用いる素数の数え上げ)、誤差評価が困難であるため有効な公式が得られないことが多い。これは、各項が個別には正確に求められてもそれらの相殺の様子を一般的に定式化することが難しい上に、和の項数が非常に多くなってしまうためである。数論において、ヴィーゴ・ブルンはこのような困難を部分的に克服する方法を見出し、これは現代的な篩の理論の端緒となった。ただし、この理論を用いてもたいてい、厳密な公式はもとより漸近公式さえ得られるのもまれで、したがってふるい落とされた集合の大きさの評価を与えるにとどまる。

共通部分の計算

包除原理とド・モルガンの法則とを合わせることで、共通部分の要素数を計算できる。A を普遍集合、各 i について AiA とし、AiA に関する Ai の補集合を表すものとする。このとき

|i=1nAi|=|i=1nAi|

をえる。こうして、共通部分をもとめる問題を和集合をもとめる問題に帰着させることができる。

脚注

テンプレート:Reflist

参考文献

関連項目

テンプレート:Div col

テンプレート:Div col end

外部リンク


テンプレート:PlanetMath attribution