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\)が求まる。

\(A\)\(B\)\(C\)\(Z\)最小項
0000
0010
0100
0111\(\overline{A}\cdot B \cdot C\)
1001\(A \cdot \overline{B} \cdot \overline{C}\)
1011\(A \cdot \overline{B} \cdot C\)
1101\(A \cdot B \cdot \overline{C}\)
1111\(A \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\)が求まる。

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

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

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

\(A\)\(B\)\(Z\)最小項最大項
000\(A + B\)
011\(\overline{A} \cdot B\)
101\(A \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\))