ブール代数 論理演算 ド・モルガンの法則 真理値表
ブール代数とは
ブール代数(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 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 1 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 |
ド・モルガンの法則
論理演算の重要な性質として、ド・モルガンの法則(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では、論理演算による推論が基盤となる。
深掘りリンク
- Wikipedia: ブール代数
- Wikipedia: ド・モルガンの法則
- 書籍:「論理と計算のしくみ」萩谷昌己
- 次のステップ:命題論理、述語論理