情報数学 I
第六回 (2012年11月 9日)
論理回路と記号論理
Martin J. Dürst
http://www.sw.it.aoyama.ac.jp/2012/Math1/lecture6.html
© 2005-12 Martin
J. Dürst 青山学院大学
今日の目次
- 前回の残り: カルノー図表
- 前回の宿題と復習
- 論理回路
- 記号論理
今回の主な目的
- 論理演算子と論理回路の関係が分かる
- 論理回路が書ける
- 記号論理の目的と性質が分かる
前回の復習
- 組み合わせと順列:
nCm =
n!/(m!·(n-m)!),
nPm =
n!/(n-m)!
- 論理演算の性質 (集合演算の性質とそっくり)
- 双対原理
- 加法標準形 (選言標準形、disjunctive normal form): 変数の
(否定の) 積の和
- 乗法標準形 (連言標準形、conjunctive normal form): 変数の
(否定の) 和の積
前回の宿題
- 削除
XOR, NAND, NOR
Boolean functions other than and, or, not used frequently in programs and
electronic circuits:
- XOR: Exclusive or
- written A xor B , A ⊕
B
- A ⊕ B is true if either A or
B is true, but not both
- widely used in encryption, cryptography
- NAND, defined as ¬(A ∧ B)
- NOR, defined as ¬(A ∨ B)
Logic Circuits
Boolean functions can be calculated (evaluated) using logic circuits
The relationship between logic formulæ and electric (electronic) circuits
was established by Claude Shannon in his 1938 master thesis
The components of a logic circuit are called "gates"
Gates are connected with wires
The output of one gate is the input of another gate
In case of logic circuits, 1 and 0 are often used rather than true and
false
Gates Used in Logic Circuits
NOT gate |
AND gate |
OR gate |
|
|
|
XOR gate |
NAND gate |
NOR gate |
|
|
|
Example of a Logic Circuit
Half adder (to add two binary numbers, two half adders per digit are
necessary)
input |
output |
A |
B |
S (sum) |
C (carry) |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
How to Write Logic Circuits
- Input from the left, output to the right
- Write variable name or formula for each input/output
- Make clear where crossing lines (wires) touch and where not
- AND, NAND, OR, and NOR gates may use more than two inputs
Properties of NAND and NOR
It is possible to implement all boolean functions using only NAND [or only
NOR]
Proof:
We know that we can write any boolean function using only ∧, ∨, and ¬
(e.g. using a normal form)
If we can write these three boolean operations using only NAND [or only
NOR], our proof is complete.
¬ A = NAND(A) [NOR(A)]
A ∧ B = ¬¬(A ∧
B) = NAND(¬(A ∧ B)) =
NAND(NAND(A, B))
[= ¬¬(A ∧ B) =
¬(¬A ∨ ¬B) = NOR(¬A, ¬B) =
NOR(NOR(A), NOR(B))]
A ∨ B = ¬¬(A ∨
B) = ¬(¬A ∧ ¬B) = NAND(¬A,
¬B) = NAND(NAND(A), NAND(B))
[= ¬¬(A ∨
B) = NOR(¬(A ∨ B)) = NOR(NOR(A,
B))]
Q.E.D.
記号論理
(symbolic logic)
- 論理のモデルを作って、記号演算だけで論理ができるようにする。
- 論理にはいくつかの種類がある。例えば:
- 二値論理 (真と偽だけ)
- 多値論理 (真と偽以外の値がある)
- ファジィ論理 (曖昧さの計算を含む)
- 命題論理 (propositional logic, 命題だけを使う)
- 述語論理 (predicate logic, 一階 (first order) 等)
- 時間など他の要素を取り入れた論理
論理に大切な演算子
- 「同値である」: equiv, A ↔ B
(同値、equivalence、A is equivalent to B)
A と B が同じ値の場合だけ T
- 「ならば」: imp, A → B
(含意、implication、A implies B)
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) ともいう
- 常に偽の式を「恒偽式」と呼ぶ
- 性質は全て恒真が、恒真式は全て性質でもない
(例: T→A = ¬¬A)
今週の宿題
提出方法:
- 来週の木曜日 (11月15日) 19時00分締切
- O 棟 529号室の前の箱に提出
- A4 一枚 (両面可; 表紙なし) 厳守
- 名前 (ふりがな) と学生番号を忘れずに記述
- 解答は読みやすい手書きのこと
課題:
二つの変数 (例: A, B)
で可能な論理関数を全て表に列挙し、それぞれの関数を
NAND (又は NOR) の短い式だけで書きなさい。
発展問題:
NAND と NOR
以外に一つの論理関数からすべての論理関数を作れるものはあるか調べなさい。例えば
→ ではどうでしょうか。
Glossary
- exclusive or
- 排他的論理和
- encryption
- 暗号化
- cryptography
- 暗号学
- (electronic) circuit
- (電子) 回路
- logic circuit
- 論理回路
- master thesis
- 修士論文
- gate
- ゲート
- half adder
- 半加算器
- variable name
- 変数名
- implement
- 実装する