こんにちは! ももやまです!
たまには数学系じゃなくて情報系のまとめをしたくなったのでたまには情報系でいきます。
前回の記事 論理回路の基礎編
ということで、今回は主加法標準形、主乗法標準形、リードマラー標準形の3つについてまとめてみたいと思います。
論理式の基本法則についてはこちらの記事でまとめているので、もし論理式についてわからないことがあればこちらをご覧ください。
なお、今回は論理和を 、論理積を
、否定を
と書くことにします。ほかの記事では、論理和を
、論理積を
、否定を
と書いているのもあるのでご注意ください。
1.主加法標準形(論理和標準形)
主加法標準形とは、最小項(論理積で表されている)同士の和の形になっているような論理式、具体的に1つ例を挙げてみると \[ X= \bar{A} \bar{B} C + \bar{A} B C + ABC \] のような形になっている論理式を表します。数学界では「選言標準形」、「DNF」と呼ばれます。
例えば2変数 の次の論理式を考えてみましょう。
\[ X = A + \bar{A}B \]
まずは、この式の真理値表と最小項を求めてみましょう。
最小項とは、それぞれの入力(今回は と
)を論理式の積で表したものを表します。例えば、
のときの最小項は2変数の否定の積、つまり
となります。
A | B | X | 最小項 |
0 | 0 | 0 | |
0 | 1 | 1 | |
1 | 0 | 1 | |
1 | 1 | 1 |
真理値表が が1になっている部分の最小項に注目してください。(ピンク色の部分)
が1の部分の最小項の和を全部取ると主加法標準形が完成します。この場合だと、
\[ X = \bar{A}B + A \bar{B} + AB \]
となります。
2.主乗法標準形(論理積標準形)
主乗標準形とは、最大項(論理和で表されている)同士の積の形になっているような論理式、具体的に1つ例を挙げてみると \[X= (\bar{A} + \bar{B} + C)(A + \bar{B} + C)(\bar{A} + B + C)\] のような形になっている論理式を表します。数学界では「連言標準形」、「CNF」と呼ばれます。
1と同じように \[ X = A + \bar{A}B \] で考えてみましょう。
今度は最小項ではなく、最大項をもとめます。
最大項は、それぞれの入力(今回は と
)の場合のみ満たさないように論理式の和で表したものとなります。
例えば、,
の最大項を求めてみます。例えば、
と
の和、つまり
であれば、
,
のときだけが0、つまり偽になりますね。なので
の最大項は
となります。*1
同じように該当する入力だけを満たさないような和を下のように求めていきます。
A | B | X | 最大項 |
0 | 0 | 0 | |
0 | 1 | 1 | |
1 | 0 | 1 | |
1 | 1 | 1 |
今度は真理値表の が 0 になっている部分の最大項に注目してください。
0の部分の最大項の and をすべて取ると主乗法標準形が完成します。この場合だと、
\[ X = A+B \]
となります。
3.リードマラー標準形(展開)
リードマラー標準形とは、論理積で表されたもの同士を排他的論理和で表したもの、例えば \[X= A \oplus BC \oplus AC \oplus ABC\] のようなものを表します。not も使用できないことに注意してください。
求め方は、まず変数のうちの一部を0に固定、残りを固定しなかったときに、 が真の数をすべて数えます。
の真の数が奇数個であるパターンの場合のみ、固定しなかった変数(複数固定しなかった場合は変数同士の積)を追加していきます。
調べ終わったときに追加した変数同士すべての排他的論理和がリードマラー標準形となります。*2
試しに1と同じ \[ X = A + \bar{A}B \] のリードマラー標準形を求めてみましょう。
今回は2変数なので次の4パターンを調べます。
,
ともに0に固定
だけを0に固定
だけを0に固定
,
ともに固定しない
(1) ,
ともに0に固定
がともに0のときの真理値表に注目してください。このときは0になっていますよね。なので、真の数の合計は0個です。0は偶数なのでNG、追加はしない。
(仮にもしここがOKの場合、追加されるのは1(恒真)です)
(2) だけを0に固定
を0とします。このとき、
が0のとき、
は0
が1のとき、
は1
この2パターンの中で が真なのは1パターンですね。
1は奇数なのでOKです。なので固定しなかった を追加。
(3) だけを0に固定
を0とします。このとき、
が0のとき、
は0
が1のとき、
は1
この2パターンの中で が真なのは1パターンですね。
1は奇数なのでOKです。なので固定しなかった を追加。
(4) ,
ともに固定しない
この場合は真理値表すべてのパターンに注目してください。4パターン中真に該当するのは3パターンですよね。
3は奇数なのでOKです。なので固定しなかった を追加。
(2変数以上固定しなかった場合は追加するのは変数同士の積です)
よって、(2),(3),(4)のパターンのすべての排他的論理和を取ればよいので、リードマラー標準形は、
\[ X = A \oplus B \oplus AB \]
となります。
では1問練習してみましょう。
4.練習
練習
つぎの真理値表 の入力に対して、以下の出力となる論理式を考える。
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
このとき、論理式 の
(a) 主加法標準形
(b) 主乗法標準形
(c) リードマラー標準形
をもとめなさい。
解答
まずは、最小項と最大項を求める。
最小項 | 最大項 | ||||
0 | 0 | 0 | 0 | ||
0 | 0 | 1 | 1 | ||
0 | 1 | 0 | 1 | ||
0 | 1 | 1 | 0 | ||
1 | 0 | 0 | 1 | ||
1 | 0 | 1 | 0 | ||
1 | 1 | 0 | 0 | ||
1 | 1 | 1 | 1 |
(a) 主加法標準形は が1のときの最小項のすべての和
\[ X = \bar{A}\bar{B} C + \bar{A}B\bar{C} + A\bar{B}\bar{C} + ABC\]
(b) 主乗法標準形は が0のときの最大項のすべての積
\[ X = (A+B+C)(A+\bar{B}+\bar{C})(\bar{A}+B+\bar{C})(\bar{A}+\bar{B}+C)\]
(c) リードマラー標準形は0を固定していく。固定のしかたを8パターン(3変数なので 通り)変えて
が真の数が合計が奇数のパターンのすべての排他的論理和を取ればOK。
(1) すべて0に固定
このときの は0、
の真の数の合計数は0 → NG。
(2) を0で固定(
を固定しない)
固定させたところは緑で表しています(下も同じく)。
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
表より、 の真の数の合計は1つ → OK、固定しなかった
を追加
(3) を0で固定(
を固定しない)
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
表より、 の真の数の合計は1つ → OK、固定しなかった
を追加
(4) を0で固定(
を固定しない)
0 | 0 | 0 | 0 |
1 | 0 | 0 | 1 |
表より、 の真の数の合計は1つ → OK、固定しなかった
を追加
(5) だけを0で固定(
を固定しない)
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
表より の真の数の合計は2つ→NG。
(6) だけを0で固定(
を固定しない)
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
表より の真の数の合計は2つ→NG。
(7) だけを0で固定(
を固定しない)
0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 |
1 | 0 | 0 | 1 |
1 | 1 | 0 | 0 |
表より の真の数の合計は2つ→NG。
(8) すべて固定しない
上の真理値表より の真の数は合計4つ→NG。
よって、(2),(3),(4)のパターンの排他的論理和同士をとればよい。よって、
\[ X = A \oplus B \oplus C \]
となる。
5.さいごに
今回は主加法標準形、主乗法標準形、リードマラー標準形の出し方についてまとめてみました。
主加法標準形、主乗法標準形、リードマラー標準形は、論理式を変形して求めることもできるのですが、変形の際にミスしてしまうことがあるので「真理値表書かずに解け」と指示されたとき以外は真理値表を書いて解くことをおすすめします。
Next 論理式の簡略化(カルノー図編)