ブール代数
ブール代数
ブール代数とは、情報を論理的に扱う数学の一分野である。
ここでは、まずブール代数の基本となる命題について解説しよう。
ブール代数は命題しか扱わないからだ。
命題
正誤が明確に判定できる情報を命題という。
例えば、「1月1日は元旦である」という情報は命題である。
正しいか誤りであるかが明確に判定できるからだ。
正しい命題を真の命題という。
「1月1日はこどもの日である」もやはり命題だ。
この命題は誤りであるので、偽の命題という。
「太郎君は背が高い」「政治は悪い方へ向かっている」は命題ではない。
背の高低、政治の善し悪しの判断は主観的なものであるからだ。
「太郎君の背は178cmである」とすれば、命題である。
命題は真・偽のどちらか一方の値を必ず取らなくてはならない。
真でも偽でもない状態はない。同時に真・偽の両方であることもない。
このような命題を数学で解釈するのが、ブール代数なのである。
「10円玉を投げたら表が出た」という命題がある。
この命題の真偽は実際に10円玉を投げてみればいい。
実際に10円玉を投げて表が出ればこの命題は真であり、裏が出れば偽である。
この命題を「A」と名付ける。
また真を「1」、偽を「0」とする。
そうすると、この命題は式で表現することが出来る。
状態 | 式 |
実際に10円玉を投げたら表が出た | A=1 |
実際に10円玉を投げたら裏が出た | A=0 |
このように書くと、数学っぽくなってきたと感じられることだろう。
これが、ブール代数の基本だ。
論理演算とブール代数
今度は100円玉を投げてみよう。
この命題は「B」とする。
そうすると、この命題の式は次のようになる。
状態 | 式 |
実際に100円玉を投げたら表が出た | B=1 |
実際に100円玉を投げたら裏が出た | B=0 |
10円が100円、AがBに置換しただけなので本質的な違いはない。
次に10円玉と100円玉を同時に投げてみる。
「10円玉と100円玉を同時に投げたら、両方とも表が出た」という命題が真になるのは、「A=1」と「B=1」が同時に起こった場合だ。
この場合は「A・B=1」と書く。「・」はかけ算を意味する黒丸だ。
ブール代数は数学の一種なので計算ができるのである。
実際に10円玉と100円玉を同時に投げた場合の裏・表のパターンは4通りである。
その中で「両方とも表」のみが「真」であり、残りの3パターンが「偽」である。
10円玉 | 100円玉 | 式 |
表 | 表 | A・B=1 |
表 | 裏 | A・B=0 |
裏 | 表 | A・B=0 |
裏 | 裏 | A・B=0 |
「A・B=1」は「AかつBが真」であることを示している。
「A・B=1」は二つの命題を、論理的に操作して求めることができた。
「AかつB」のような論理の操作方法を論理積という。
「10円玉と100円玉を同時に投げたら、少なくとも一方のコインが表だった」という命題は、「A=1」と「B=1」のうちのどちらか起こるだけで十分だ。
この場合は「A+B=1」と書く。「+」はたし算を意味するプラス記号である。
10円玉と100円玉を同時に投げた場合の裏・表の4パターンの中で、「少なくとも一方が表」は3パターンありこれが「真」である。
10円玉 | 100円玉 | 式 |
表 | 表 | A+B=1 |
表 | 裏 | A+B=1 |
裏 | 表 | A+B=1 |
裏 | 裏 | A+B=0 |
「A+B=1」は「AまたはBが真」であることを示している。
「A+B=1」は二つの命題を、論理的に操作して求めることができた。
「AまたはB」のような論理の操作方法を論理和という。
ここで、論理和と論理積をまとめておこう。
A(10円玉) | B(100円玉) | 論理和A+B | 論理積A・B |
1(表) | 1(表) | 1(表+表) | 1(表・表) |
1(表) | 0(裏) | 1(表+裏) | 0(表・裏) |
0(裏) | 1(表) | 1(裏+表) | 0(裏・表) |
0(裏) | 0(裏) | 0(裏+裏) | 0(裏・裏) |
単独の命題A、Bを数学のように論理的な操作をすることができた。
ここではコイン投げを扱ったが、ブール代数はコインにこだわらない。
命題であればすべて通用するのである。
このように、命題を論理的に加工することを論理演算という。
数値演算を扱うのが代数であり、論理演算を扱うのがブール代数なのである。
論理演算の基本は論理積(AND)、論理和(OR)、否定(NOT)の3種類である。
論理積(AND)、論理和(OR)は解説したので、ここでは否定(NOT)を取り上げよう。
「10円玉を投げたら表が出た」という命題を論理的に加工して「10円玉を投げたら表が出なかった」という命題を得たとする。
このように、命題の論理を反転させる論理演算を否定(NOT)という。
否定(NOT)の演算記号は上線を付ければいい。
Aに上線を付け「A」と書き、エイバーと読む。
例題の場合は以下のようになる。
A=「10円玉を投げたら表が出た」
A=「10円玉を投げたら表が出なかった」
否定(NOT)では論理が反転する。
Aにとっての真は、Aにとっての偽になる。
状態 | A | A |
実際に10円玉を投げたら表が出た | 1 | 0 |
実際に10円玉を投げたら裏が出た | 0 | 1 |
「表が出なかった」状態が「真」であるためには、裏が出なくてはならない。
だから、「実際に10円玉を投げたら裏が出た」はAにとっては「偽」Aにとっては「真」になるのだ。
真理値表と論理素子
命題の取りうる真偽のパターンと、論理演算の結果の真偽のパターンをまとめた表を真理値表という。
例えば、論理和の真理値表は次のようになる。 ここではY=A+Bとしている。
A | B | Y |
1 | 1 | 1 |
1 | 0 | 1 |
0 | 1 | 1 |
0 | 0 | 0 |
論理和は「どちらか一方が真(1)なら、答えも真(1)」となる。
この表から分かるように、論理和の計算パターは以下の4つだ。
1+1=1
1+0=1
0+1=1
0+0=0
「1+1=1」には違和感があるが、論理演算には1と0の値しか登場しないのでこれでヨシとする。
同じように、論理積の真理値表は次のようになる。
ここではY=A・Bとしている。
A | B | Y |
1 | 1 | 1 |
1 | 0 | 0 |
0 | 1 | 0 |
0 | 0 | 0 |
論理積は「両方とも真(1)のときのみ、答えも真(1)」となる。
この表から分かるように、論理積の計算パターは以下の4つだ。
1・1=1
1・0=0
0・1=0
0・0=0
否定(NOT)の真理値表は簡単だ。
単に反転するだけである。
A | A |
1 | 0 |
0 | 1 |
ブール代数とデジタル回路
命題の真偽を2通りの電圧値(H、L)に対応させ、電気的に論理演算を行うのがデジタル回路だ。
デジタル回路は、2通りの電圧値(H、L)のみで情報を論理演算する。
このためデジタル回路は、ブール代数の論理式の組み合わせで置き換えることができるし、論理素子もそのまま回路図の記号としても使用できるのである。
ブール代数はデジタル回路の設計には必須の知識である。
■最初のページ:情報量
スポンサーリンク
2006/07/01