技能一覧 › 大学院数学 計算理論・ラムダ計算

条件つきブール関数の数え上げ

変数のブール関数が 個あることから出発し、すべての変数に本質的に依存する関数の個数を包除原理で、巡回不変性・自己双対性などの対称性の条件を満たす関数の個数を の軌道(巡回と補元の作用)を数えて求められる

前提

この技能までの道筋(29 技能)
算数中学高校大学大学院

読み込み中…

右端(太枠)がこの技能です。左へドラッグすると、さらに前の前提をさかのぼれます。技能を押すと、そこまでの道筋が光ります。

一覧で見る(前提が先)
  1. 樹形図で数え上げる (算数 場合の数)
  2. 積の法則と和の法則 (算数 場合の数)
  3. 和の法則・積の法則と樹形図 (数学A 場合の数と確率)
  4. 順列・円順列・重複順列 (数学A 場合の数と確率)
  5. 組合せ (数学A 場合の数と確率)
  6. 確率の定義と和事象・余事象 (数学A 場合の数と確率)
  7. 包除原理 (数学A 場合の数と確率)
  8. 同じものを含む順列・重複組合せ (数学A 場合の数と確率)
  9. 一般の包除原理 (大学数学 離散数学・組合せ論)
  10. 約数の見つけ方 (算数 整数の性質)
  11. 最大公約数と最小公倍数 (算数 整数の性質)
  12. 素因数分解と約数の個数 (算数 整数の性質)
  13. 最大公約数と最小公倍数 (数学A 整数の性質)
  14. 分数のたし算・ひき算 (算数 計算と数のきまり)
  15. 小数の四則計算 (算数 計算と数のきまり)
  16. 正負の数の加法・減法 (中学数学 数と式)
  17. 分数のかけ算・わり算 (算数 計算と数のきまり)
  18. 四則の混じった計算の順序 (算数 計算と数のきまり)
  19. 正負の数の乗除・累乗と四則混合 (中学数学 数と式)
  20. 分配法則を使った計算のくふう (算数 計算と数のきまり)
  21. 文字式の計算(同類項・分配法則) (中学数学 数と式)
  22. 乗法公式による展開 (中学数学 数と式)
  23. 因数分解 (中学数学 数と式)
  24. 文字式で表した整数の性質 (中学数学 数と式)
  25. 余りによる整数の分類 (数学A 整数の性質)
  26. 合同式 (数学A 整数の性質)
  27. 群の位数と元の位数 (大学数学 代数学)
  28. 置換の巡回置換分解と位数 (大学数学 代数学)
  29. バーンサイドの補題 (大学数学 離散数学・組合せ論)

説明

変数のブール関数とは、写像 のことです。この技能では、まず全体の個数 を出発点にして、「すべての変数に本当に依存する」「変数を巡回させても値が変わらない」「自己双対である」といった条件を満たす関数の個数を求めます。依存性の条件には包除原理を、対称性の条件には入力の集合 を軌道に分ける考え方(バーンサイドの補題)を使います。論理回路の分類や、対称な関数の数え上げの基本となる計算です。

なぜそうしてよいのか

全体の個数: は 個の入力からなり、各入力に対して出力 を独立に選べるので、積の法則で 個です。以後の数え上げはすべて「どの入力の値を自由に選べ、どの入力の値が他から決まってしまうか」を見ることに帰着します。

本質的な依存: が に本質的に依存するとは、 だけが異なる 2 つの入力 で となるものがあることです。 を「 に依存しない関数」の集合とすると、添字の集合 ()について は「 の変数をどう変えても値が変わらない関数」、すなわち残りの 変数だけの関数全体です( の変数を 1 つずつ順に変えていけば、値が変わらないことがわかります)。よってその個数は で、 だけで決まります。包除原理から、すべての変数に依存する関数の個数は です。

対称性: 置換や補元のような入力の変換の群 が に作用しているとき、「 のどの元で入力を変換しても値が変わらない」関数は、各軌道の上で一定な関数と同じことです。軌道ごとに値を 1 つ選べばよいので、個数は で、軌道の数はバーンサイドの補題で数えられます。例えば巡回シフト では、 で固定される入力は 個です。また が自己双対(、 は各成分を反転した入力)であるとき、補元をとる操作は固定点をもたず を 組の対 に分けます。各対では一方の値を選べば他方が決まるので、自己双対な関数は 個です。巡回不変かつ自己双対なら、巡回の軌道 の補元 もまた軌道であり、 上の値を選べば 上の値が決まります。 となる軌道が 1 つでもあれば矛盾するので 0 個、そうでなければ 個です。

手順

  1. 数える対象を写像 として捉え、全体が 個であることを確認する

  2. 条件の種類を見分ける。「すべての変数に依存する」のような否定の条件なら包除原理へ(手順 3)、「入力を変換しても値が変わらない」のような対称性の条件なら軌道の数え上げへ(手順 4)

  3. 包除原理: を「 に依存しない関数」の集合とし、 個の の共通部分が 個であることから を計算する

  4. 軌道の数え上げ: 入力に作用する群の各元で固定される入力の個数を求め、バーンサイドの補題で軌道の数 を出し、不変な関数の個数を とする

  5. 自己双対性が加わるときは、軌道を補元で対にする。自分自身と対になる軌道があれば 0 個、なければ 個( は軌道の数)

例題

3 変数のブール関数 のうち、3 つの変数 のすべてに本質的に依存するもの(各 について、 だけが異なる 2 つの入力で値が異なるものがある関数)の個数を求めよ。

例題の解答

(手順 1)3 変数のブール関数は全部で 個ある。

(手順 2)「すべての変数に依存する」は「どの にも属さない」という否定の条件なので、包除原理を使う。

(手順 3) を に依存しない関数の集合とする。 個の の共通部分は残り 変数の関数全体で、 個ある。
- :
- : 通り、各 個
- : 通り、各 個
- : 通り、 個(定数関数 )

よって求める個数は

答え:

よくある誤り

この説明は AI が書き、別の AI が例題を独立に解いて答えを確かめ、説明を一歩ずつ査読しました。

入口の問題

この技能を使う問題

この技能の次に学べること