4. 論理関数の標準形

論理関数の標準形とは、論理関数を論理積と論理和の組み合わせで表現する方法のことで、主に、論理回路の設計や論理式の簡略化に用いられる。論理関数の標準形には、主加法標準形と主乗法標準形の2種類がある。
主加法標準形とは、論理関数を最小項の和の形で表現する方法である。ここで、最小項とは、N個のリテラルの論理積(ただし、リテラルはすべ て異なる)からなる積項を最小項と呼ぶ。
主乗法標準形とは、論理関数を最大項の積の形で表現する方法である。ここで、最大項とは、N個のリテラルの論理和(ただし、リテラ ルはすべて異なる)からなる和項を最大項 と呼ぶ。
論理関数の標準形は、論理回路の設計に役立つ。例えば、主加法標準形の論理関数は、NANDゲートとORゲートで構成された論理回路で実現できる。また、主乗法標準形の論理関数は、ANDゲートとNOTゲートで構成された論理回路で実現できる。また、論理関数の標準形は、論理式の簡略化にも役立つ。

リテラル、リテラル数

論理変数及びその否定のことをリテラル(literal)と呼ぶ。また、論理変数の個数をリテラル数と言う。
【例】bc+bd+adのリテラル数 は、b,c,b,d,a,d の6個となる。(論理変数の種類は、a,b,c,dの4種類)

主加法標準形

論理変数がA,B,Cの3種類の場合を考える。論理関数をfとして、出力結果をZとすると、Z=f(A,B,C)と表せる。このとき、各変数を1つずつ含む式を標準項という。N個のリテラルの論理積(ただし、リテラルはすべ て異なる)からなる積項を最小項と呼ぶ。主加法標準形は、最小項の論理和で論理式を表す方法である。
表1の真理値表となる論理関数f(A,B,C)を主加法標準形を使って求める。最小項の和からZ = f(A,B,C)= \overline{A}\cdot B \cdot C + A \cdot \overline{B} \cdot \overline{C} + A \cdot \overline{B} \cdot C + A \cdot B \cdot \overline{C} + A \cdot B \cdot Cと表せる。この式を整理すると、f(A,B,C) = \overline{A} \cdot B \cdot C + A \cdot(\overline{B} \cdot \overline{C} + \overline{B} \cdot C + B \cdot \overline{C} + B \cdot C) \\= \overline{A} \cdot B \cdot C + A \cdot \left \{ \overline{B} \cdot (\overline{C} + C) + B \cdot (\overline{C} + C) \right\} \\= \overline{A} \cdot B \cdot C + A \cdot (\overline{B} + B) = \overline{A} \cdot B \cdot C + A \\= A + \overline{A} \cdot B \cdot C = A + A \cdot B \cdot C + \overline{A} \cdot B \cdot C \\= A + B \cdot C \cdot (A + \overline{A}) = A + B \cdot Cとなる。よって、表1で示されるZを得るための論理関数として、f(A,B,C) = A + B \cdot Cが求まる。

ABCZ最小項
0000
0010
0100
0111\overline{A}\cdot B \cdot C
1001A \cdot \overline{B} \cdot \overline{C}
1011A \cdot \overline{B} \cdot C
1101A \cdot B \cdot \overline{C}
1111A \cdot B \cdot C
表1 主加法標準形による論理関数の生成

主乗法標準形

論理変数がA,B,Cの3種類の場合を考える。論理関数をfとして、出力結果をZとすると、Z=f(A,B,C)と表せる。このとき、各変数を1つずつ含む式を標準項という。N個のリテラルの論理和(ただし、リテラルはすべ て異なる)からなる和項を最大項と呼ぶ。主乗法標準形は、最大項の論理積で論理式を表す方法である。
表2の真理値表となる論理関数f(A,B,C)を主乗法標準形を使って求める。最大項の積からZ = f(A,B,C) = (A + B + C)\cdot (A + B + \overline{C}) \cdot (A + \overline{B} +C)と表せる。この式を整理すると、f(A,B,C) = A + B \cdot Cとなる。よって、表2で示されるZを得るための論理関数として、f(A,B,C) = A + B \cdot Cが求まる。

ABCZ最大項
0000A + B + C
0010A + B + \overline{C}
0100A + \overline{B} +C
0111
1001
1011
1101
1111
表2 主乗法標準形による論理関数の生成

主加法標準形と主乗法標準形

論理変数がA,Bの2種類の場合における、論理関数(EXOR)の主加法標準形と主乗法標準形を比較する。真理値表を表3に示す。

ABZ最小項最大項
000A + B
011\overline{A} \cdot B
101A \cdot \overline{B}
110\overline{A} + \overline{B}
表3 EXORの真理値表

表3より、主加法標準形は、Z = \overline{A} \cdot B + A \cdot \overline{B}となる。また、主乗法標準形は、Z = (A +B) \cdot (\overline{A} + \overline{B}) である。Z = (A +B) \cdot (\overline{A} + \overline{B}) を整理すると、(A +B) \cdot (\overline{A} + \overline{B}) = A \cdot \overline{A} + A \cdot \overline{B} + B \cdot \overline{A} + B \cdot \overline{B} = \overline{A} \cdot B + A \cdot \overline{B}となる。(A \cdot \overline{A} = 0 ,\;\; B \cdot \overline{B} = 0