情報数学 I
第六回 (2010年11月12日)
論理回路と記号論理
Martin J. Dürst
http://www.sw.it.aoyama.ac.jp/20/Math1/lecture6.html
© 2005-10 Martin
J. Dürst 青山学院大学
今日の目次
今回の主な目的
- 論理演算子と論理回路の関係が分かる
- 論理回路が書ける
- 記号論理の目的と性質が分かる
前回の復習
- 組み合わせと順列:
nCm =
n!/(m!·(n-m)!),
nPm =
n!/(n-m)!
- 論理演算の性質は集合演算の性質とそっくり
- 双対原理
- 加法標準形 (選言標準形、disjunctive normal form): 変数の
(否定の) 積の和
- 乗法標準形 (連言標準形、conjunctive normal form): 変数の
(否定の) 和の積
前回の宿題
[都合により削除]
XOR, NAND, NOR
今までの論理演算子以外に、回路やプログラミングによく使う演算子がある:
- 「いずれか一つ」: xor, A ⊕ B
(排他的論理和、exclusive or): 暗号学など幅広い応用
- NAND, ¬(A ∧ B)
- NOR, ¬(A ∨ B)
論理回路
論理関数を実際に計算する回路を作ることが可能
論理演算と電気 (電子) 回路の関係は 1938 年に C. Shannon
が修士論文で発表
論理回路の部品は「ゲート」
あるゲートの出力を次のゲートの入力につなぐことが可能
実際の回路では出力を元のゲートに戻すことなどもあるが、その場合には論理回路ではない
論理回路の場合に真と偽の代わりに 1 と 0
を使うのが普通
論理回路に使う (主な) ゲート
NOT ゲート |
AND ゲート |
OR ゲート |
|
|
|
XOR ゲート |
NAND ゲート |
NOR ゲート |
|
|
|
論理回路の例
この例は半加算器 (half adder) を実現する
(足し算一ビットごとに二個必要)
入力 |
出力 |
A |
B |
S (sum) |
C (carry) |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
論理回路の書き方
- 入力は左、出力は右
- 入力と出力の線に変数名や式を表記
- 線は交差のところつないでいるかどうかを明記
- (N)AND と (N)OR
のゲートの場合交換律と結合律が成り立つため、入力の数は無制限
NAND、NOR の特徴
NAND だけ (又は NOR だけ) で全ての論理関数が実現可能
証明 (NOR の場合):
標準系で ∧、∨、と ¬
を使って全ての論理関数が実現可能
上記の三つの演算子を NOR
で実現できれば証明ができる。
¬ A =
A ∧ B =
A ∨ B =
Q.E.D.
NAND の場合には双対原理を使って証明できる。
記号論理
(symbolic logic)
- 論理のモデルを作って、記号演算だけで論理ができるようにする。
- 論理にはいくつかの種類がある。例えば:
- 二値論理 (真と偽だけ)
- 多値論理 (真と偽以外の値がある)
- ファジィ論理 (曖昧さの計算を含む)
- 命題論理 (propositional logic, 命題だけを使う)
- 述語論理 (predicate logic, 一階 (first order) 等)
- 時間など他の要素を取り入れた論理
論理に大切な演算子
- 「同値である」: equiv, A ↔ B
(同値、equivalence)
A と B が同じ値の場合だけ T
- 「ならば」: imp, A → B
(含意、implication)
A が T で B が F の場合だけ F
例: 情報数学 I
に合格するならば三月に沖縄に旅行に行く。
同値と含意の真理表
A |
B |
A ↔ B |
A → B |
F |
F |
T |
T |
F |
T |
F |
T |
T |
F |
F |
F |
T |
T |
T |
T |
「同値である」と「ならば」の性質
(「=」と「↔」などの使い分けに注意)
- 含意の除去: A→B =
¬A∨B = ¬(A∧¬B)
- 同値の除去: A↔B =
(A→B)∧(B→A) =
(A∧B)∨(¬A∧¬B)
- 推移律: ((A→B) ∧
(B→C)) ⇒ (A→C),
((A↔B) ∧ (B↔C)) ⇒
(A↔C)
- 背理法: A→¬A = ¬A
- 対偶: A→B = ¬B→¬A
- 同値の性質: A↔B =
¬A↔¬B, ¬(A↔B) =
(A↔¬B)
- 含意の性質: T→A = A, F→A = T,
A→T = T, A→F = ¬A
恒真と恒偽
- 常に真の式を「恒真式」と呼ぶ
トートロジー (tautology) ともいう
- 常に偽の式を「恒偽式」と呼ぶ
今週の宿題
二つの変数 (例: A, B)
で可能な論理関数を全て表に列挙し、それぞれの関数を
NAND (又は NOR) だけの式で書きなさい。
NAND と NOR
の他に一つの論理関数からすべての論理関数を作れるものはあるか調べなさい。例えば
→ ではどうでしょうか。