物理学解体新書

ブール代数

HOME情報科学>ブール代数

ブール代数

ブール代数とは、情報を論理的に扱う数学の一分野である。
ここでは、まずブール代数の基本となる命題について解説しよう。
ブール代数は命題しか扱わないからだ。



命題

正誤が明確に判定できる情報を命題という。
例えば、「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にとっての偽になる。

状態AA
実際に10円玉を投げたら表が出た10
実際に10円玉を投げたら裏が出た01

「表が出なかった」状態が「真」であるためには、裏が出なくてはならない。
だから、「実際に10円玉を投げたら裏が出た」はAにとっては「偽」Aにとっては「真」になるのだ。




真理値表と論理素子

命題の取りうる真偽のパターンと、論理演算の結果の真偽のパターンをまとめた表を真理値表という。


例えば、論理和の真理値表は次のようになる。 ここではY=A+Bとしている。

ABY
111
101
011
000

論理和は「どちらか一方が真(1)なら、答えも真(1)」となる。
この表から分かるように、論理和の計算パターは以下の4つだ。
1+1=1
1+0=1
0+1=1
0+0=0



「1+1=1」には違和感があるが、論理演算には1と0の値しか登場しないのでこれでヨシとする。



同じように、論理積の真理値表は次のようになる。
ここではY=A・Bとしている。

ABY
111
100
010
000

論理積は「両方とも真(1)のときのみ、答えも真(1)」となる。
この表から分かるように、論理積の計算パターは以下の4つだ。
1・1=1
1・0=0
0・1=0
0・0=0



否定(NOT)の真理値表は簡単だ。
単に反転するだけである。

AA
10
01


ブール代数とデジタル回路

命題の真偽を2通りの電圧値(H、L)に対応させ、電気的に論理演算を行うのがデジタル回路だ。
デジタル回路は、2通りの電圧値(H、L)のみで情報を論理演算する。



このためデジタル回路は、ブール代数の論理式の組み合わせで置き換えることができるし、論理素子もそのまま回路図の記号としても使用できるのである。



ブール代数はデジタル回路の設計には必須の知識である。

■最初のページ:情報量

このページのTOPへ



スポンサーリンク

2006/07/01



スポンサーリンク

Amazon.co.jpアソシエイト



スポンサーリンク

Amazon.co.jpアソシエイト