ブール関数
出典: フリー百科事典『ウィキペディア(Wikipedia)』
ブール関数(Boolean Function)とは、数学において、非負整数 k 個のブール領域の引数からブール領域の値を得る関数 f : Bk → B を指す。k = 0 であるような場合、この関数は単に定数要素 B を表す。
さらに一般化すると、f : X → B という形式の関数において、X が任意の集合である場合を「ブール値関数」と呼ぶ。X = M = {1, 2, 3, …} であるとき、f は無限の「二値数列; binary sequence」すなわち 0 と 1 の無限列である。X = [k] = {1, 2, 3, …, k} であるとき、f は長さ k の二値数列である。そのような関数は 個存在する。これは計算複雑性理論における問題で基本的な役割を果たす他、デジタルコンピュータの論理回路の設計でも利用される。ブール関数の特徴は暗号理論においても重要であり、特に共通鍵暗号の設計で重要である。
目次 |
[編集] リード-マラー標準形
ブール関数は積(AND)の総和(XOR)で一意に記述できる。これを リード-マラー標準形と呼ぶ。
ここで である。
従って、列 の値の列もブール関数を一意に表している。ブール関数の代数的次数は、1つの(AND)項に現われる xi の個数で表される。つまり、f(x1,x2,x3) = x1 + x3 の次数は 1(線形)であり、f(x1,x2,x3) = x1 + x1x2x3 の次数は 3(立方)である。
[編集] 効率的表現
ブール関数は命題論理での文として表現されることが多いが、より効率的な表現として次のようなものがある。
- 二分決定図 (BDD)
- 否定標準形
- Propositional Directed Acyclic Graph (PDAG)
[編集] 関連項目
[編集] 外部リンク
- Boolean Planet — 暗号におけるブール関数