論理関数とは、以前の授業で論理式と言っていたものです。ブール関数とかス
イッチング関数と呼ばれることもあります。変数はのみで、演算子は
の3個しかありません。要するに論理関数と
いうものは、変数, , , があるとき、
|
(1) |
のようになっているものを言います。論理式のことです。当然、この関数の演
算の結果は、のいずれかになります。
変数の0のことを偽(false)、のことを真(true)と言ったりすることがありま
す。その場合、のことをOR(又は)、のことをAND(かつ)、
を否定(NOT)といいます。この場合、変数, , , は命題を表
します。1年生の時に学習したFORTRANの論理式です。あの時も、.OR.とか.
AND.とか.NOT.の論理演算子を使ったと思います。命題とは、FORTRANのA.GT.B
とかに対応します。命題の話はこれくらいにしておきます。
もうひとつ、真理値表のことを述べておきます。変数がとりうる全ての値と
の関係を表したものを真理値表と呼びます。変数が少ない場合は、真理値
表は簡単ですが、変数の数が増えると大変です。変数の数をとすると、
行必要になります。
ここで、興味のある問題は、「任意の真理値表はOR()とAND()、
NOT(
)で書き表すことができるか?」ということです。この問いに対す
る答えは、「YES」です。このことを、「OR()とAND()、
NOT(
)は完全系をなす」といいます。この証明は非常に大変でこの講
義のレベルを超えます。講義ではなくて、私の頭のレベルを超えるのか
。従って、完全な証明をしません(できません)が、任意の真理値表か
ら論理関数を導く方法を示すことにより、そのことを理解してもらいたいと思
います。これなら理解できる。
ここでは、真理値表から論理式を導く方法として、主加法標準展開と主乗法標
準展開という方法を示します。教科書は非常に分かりづらいので、以降の議論
は松本光功著「論理回路」を参考にしました。
3変数(入力)を含む論理関数で、その出力をとします。例えば、表
1のようなものです。各変数を一つずつ含む式を標準項
(canonical term)といいます。例えば、
や
、
、
、、
などがそうです。このうち最も項が少ないもの、例えば
や
を最小項(minterm)と
いいます。項というのは数学が学習したものと同じで、乗算のかたまりを1つ
の項として数えます。要するに最小項の標準項が乗算のみで構成されており、
その項数は1となります。一方、、
のように最も
項数の多いものを最大項(maxterm)といいます。最大項の項数は、変数の数と
同じになります。
や
は、項数2で最小項で
も最大項でもありません。
準備ができたので、表1で示されている真理値表
から、論理式を導き出します。まずは、主加法標準形で最小項を利用した方法を
示します。
表1を見てください。入力変数がの場合、の
場合と表します。やも同様です。そして、それらを乗算して
最小項を書き出します。つまり、表1の最小項ようにしま
す。入力が8種類あるので8個の最小項を得ることができます。おのおのの最小
項は、それに応じた入力の時のみになります。例えば、の入力が
の場合、その出力が1になる論理関数は、表から分かるように
のみです。の場合は
のみという具合です。
そうして、今度は出力を注目します。出力のうち、となる最小項
を次のように加算します。
これが、元の真理値表を表す論理式になっています。式(2)
は4つの最小項を含み、それぞれが1になる場合を加算しているので、元の真理
値表を表すのはあたりまえですよね。
このように最小項の和で表すことを主加法標準形、あるいは主加法標準展開
(principal disjunctive canonical expansion)といいます。もう一度の手順
をまとめると以下のようになります。
- 真理値表に従い、入力がのとき、のときと表
す。、、と入力変数の数だけ同じように表す。
- そうして、それらを乗算して、最小項を作る。これを全ての入力の組み合わせにつ
いて行う。
- 次に、出力の場合の最小項を加算する。これで主加法標準形が完
成します。
表 1:
3入力の真理値表と最小項
入力 |
出力 |
最小項 |
|
|
|
|
|
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
0 |
|
0 |
1 |
0 |
0 |
|
0 |
1 |
1 |
1 |
|
1 |
0 |
0 |
0 |
|
1 |
0 |
1 |
1 |
|
1 |
1 |
0 |
1 |
|
1 |
1 |
1 |
1 |
|
主加法標準形では出力の値が1になるものに着目しましたが、主乗法標準形
ではが0になるものに着目します。今度は主加法標準形とは逆に、入力変数
がの場合、の場合と表します。やも同様です。
そして、それらを加算して最大項を書き出します。つまり、表
2のようにします。おのおのの最大項は、それに応じた入
力の時のみ0になります。例えば、の入力がの場合、そ
の出力が0になる論理関数は、表から分かるようにのみです。
の場合は
のみという具合です。
そうして、今度は出力を注目します。出力のうち、となる最大項
を次のように乗算します。
これが、元の真理値表を表す論理式になっています。式(3)
は4つの最大項を含み、それぞれが0になる場合を乗算しているので、元の真理
値表を表すのはあたりまえですよね。
このように最大項の積で表すことを主乗法標準形、あるいは主乗法標準展開
(principal conjunctive canonical expansion)といいます。もう一度の手順
をまとめると以下のようになります。
- 真理値表に従い、入力がのとき、のときと表
す。、、と入力変数の数だけ同じように表す。
- そうして、それらを加算して、最大項を作る。これを全ての入力の組み合わせにつ
いて行う。
- 次に、出力の場合の最大項を乗算する。これで主乗法標準形が完
成します。
表 2:
3入力の真理値表と最大項
入力 |
出力 |
最大項 |
|
|
|
|
|
0 |
0 |
0 |
0 |
|
0 |
0 |
1 |
0 |
|
0 |
1 |
0 |
0 |
|
0 |
1 |
1 |
1 |
|
1 |
0 |
0 |
0 |
|
1 |
0 |
1 |
1 |
|
1 |
1 |
0 |
1 |
|
1 |
1 |
1 |
1 |
|
ホームページ: Yamamoto's laboratory
著者: 山本昌志
Yamamoto Masashi
平成19年8月20日