ブール関数

提供: testwiki
ナビゲーションに移動 検索に移動

テンプレート:Expand English ブール関数(ブールかんすう、テンプレート:Lang-en-short)は、非負整数 k 個のブール領域 B ={0,1} の引数をとり、1個のブール領域の値となる関数 f : BkB である。k = 0 では、単に定数 B となる。

ブール関数を一般化すると、f : XB という形式の関数において、X が任意の集合である場合を「ブール値関数」と呼ぶ。X = M = {1, 2, 3, …} であるとき、f は無限の「二値数列; テンプレート:En」すなわち 0 と 1 の無限である。X = [k] = {1, 2, 3, …, k} であるとき、f は長さ k の二値数列である。そのような関数は 22k 個存在する。これは計算複雑性理論における問題で基本的な役割を果たす。

効率的表現

命題論理の)論理式で表現できるが、効率的な表現としては次のようなものがある。

簡単化

簡単な表現に変換する手法として次のようなものがある。

  • カット・アンド・トライ法
ブール代数の定義を用い、効率的な表現に変形していく。
  • ベン図
ベン図を用いて視覚的にわかりやすい表現にする。

以上は人間の直感によるものであり「変換する手法」と言えたものではない。

  • カルノー図法
カルノー図を用い、効率的な表現に変形していく。
  • クワイン・マクラスキー法
クワイン・マクラスキー法を用い、効率的な表現に変形していく。計算機で簡単化するのに適している。

標準形

選言標準形連言標準形が代表的である。他に、リード-マラー標準形などがある。

リード-マラー標準形

リード-マラー標準形(en:Algebraic normal form)は、積(AND)の排他的論理和(XOR)による標準形である。

f(x1,x2,,xn)= a0+
a1x1+a2x2++anxn+
a1,2x1x2+an1,nxn1xn+
+
a1,2,,nx1x2xn

ここで a0,a1,,a1,2,,n{0,1}* である。

従って、列 a0,a1,,a1,2,,n の値の列もブール関数を一意に表している。ブール関数の代数的次数は、1つの(AND)項に現われる xi の個数で表される。つまり、f(x1,x2,x3)=x1+x3 の次数は 1(線形)であり、f(x1,x2,x3)=x1+x1x2x3 の次数は 3(立方)である。

関連項目

テンプレート:Col-begin テンプレート:Col-break

テンプレート:Col-break

テンプレート:Col-break

テンプレート:Col-end