コンピュータは究極的に「はい」か「いいえ」しか理解できない。1か0、真か偽、オンかオフ。この単純な二択の組み合わせだけで、複雑な判断がどう実現されるのか。19世紀の数学者ジョージ・ブールが考案した代数体系が、現代のif文とSQLの原型になっている。

ブール代数 論理演算 ド・モルガンの法則 真理値表

ブール代数とは

ブール代数(Boolean algebra)は、真(true, 1)と偽(false, 0)の2つの値のみを扱う代数体系である。1847年、イギリスの数学者ジョージ・ブールが「論理の数学的分析」で提案した。当時は純粋な数学理論だったが、約100年後、クロード・シャノンが電気回路の設計に応用できることを示し、デジタルコンピュータの基盤となった。

基本演算

ブール代数には3つの基本演算がある。

AND(論理積)

両方が真のときのみ真。記号:∧、・、&&

「AかつB」の意味。両方の条件を満たす必要がある。

OR(論理和)

少なくとも一方が真なら真。記号:∨、+、||

「AまたはB」の意味。どちらか一方でも満たせばよい。

NOT(否定)

真偽を反転。記号:¬、!、~

「Aでない」の意味。

真理値表

論理演算の結果をすべての入力パターンについて示した表を真理値表(truth table)という。

A B A AND B A OR B NOT A
00001
01011
10010
11110

ド・モルガンの法則

論理演算の重要な性質として、ド・モルガンの法則(De Morgan's laws)がある。

ド・モルガンの法則

NOT (A AND B) = (NOT A) OR (NOT B)

NOT (A OR B) = (NOT A) AND (NOT B)

この法則は、否定と論理演算の関係を示している。「AかつBでない」は「Aでない、またはBでない」と同値。複雑な条件式を書き換えて可読性を上げたり、最適化したりする際に使われる。

その他の演算

基本演算の組み合わせで、いくつかの派生演算が定義される。

XOR(排他的論理和)

どちらか一方のみが真のとき真。記号:⊕、^

「AまたはB、ただし両方ではない」の意味。暗号やエラー検出で使われる。

NAND(否定論理積)

ANDの否定。両方が真のときのみ偽。

すべての論理演算はNANDのみで表現可能(万能ゲート)。

実務での応用

WEB開発での応用

条件分岐:if文の条件式はブール式そのもの。複数の条件を組み合わせる際、ANDとORの優先順位、ド・モルガンの法則による書き換えが重要になる。

SQLのWHERE句:データベースクエリの条件指定はブール代数。複雑な条件を効率的に書くには論理演算の理解が不可欠。

フラグ管理:ビットフラグを使った権限管理やステータス管理では、AND/OR/XORを直接操作する。

AI/MLでの応用

特徴量フィルタリング:データの前処理で、条件に基づいてサンプルを選択・除外する際にブール演算を使う。

決定木:各ノードでの分岐条件はブール式。複数の条件の組み合わせで予測を行う。

論理推論:知識グラフやルールベースAIでは、論理演算による推論が基盤となる。

深掘りリンク