論理関数とは、以前の授業で論理式と言っていたものです。ブール関数とかス
イッチング関数と呼ばれることもあります。変数は
のみで、演算子は
の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日