情報数学 I

第五回 (2006年11月10日)

論理回路と記号論理

Martin J. Dürst

duerst@it.aoyama.ac.jp

O 棟 529号室

http://www.sw.it.aoyama.ac.jp/2006/Math1/lecture5.html

AGU

© 2006 Martin J. Dürst 青山学院大学

今日の目次

今週の主な目的

三週間前の復習

三週間前の宿題

[都合により削除]

論理関数の単純化の方法

三つは基本的に同じことをやるが、使う「道具」(式、図、表) が違う。

下の二つの方法は標準形の構造 ((否定) の積の和等) を保つ。違う構造でもっと単純にできる例もある。

論理関数の単純化: 式の操作

例: A∧B∧C ∨ A∧¬B∧C ⇒ A∧C∧ (B ∨ ¬B) ⇒ A∧C

先週の例全体: A∧B∧C ∨ A∧¬B∧C ∨ ¬A∧¬B∧C ∨ ¬A∧¬B∧¬C ⇒ A∧C ∨ ¬A∧¬B

注意: 複数の単純化の道で、複数の結果がありうる。複数をやってみるが、混乱しないように注意 (元の式のそれぞれの項をなくさないように)。

論理関数の単純化: カルノー図表

カルノー図表の例

A=F
B=F
A=T
B=F
A=T
B=T
A=F
B=T
C=F
D=F
T T F T
C=T
D=F
F T T F
C=T
D=T
F T T F
C=F
D=T
F F F T

XOR, NAND, NOR

今までの論理演算子以外に、回路やプログラミングによく使う演算子がある:

論理回路

論理関数を実際に計算する回路を作ることができる。

論理演算と電気 (電子) 回路の関係は 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 

論理回路の書き方

NAND、NOR の特徴

NAND だけ (又は NOR だけ) で全ての論理関数が実現できる。

∧、∨、と ¬ で標準形を使って全ての論理関数が実現できるので、この三つを NAND で実現できれば証明ができる。

¬ A =

A ∧ B =

A ∨ B =

NOR の場合には双対原理を使って証明できる。

記号論理

(symbolic logic)

論理に大切な演算子

「同値である」と
「ならば」の真理表
A B A ↔ B A → B
T T T T
T F F F
F T F T
F F T T

「同値である」と「ならば」の性質

  1. 含意の除去: A→B = ¬A∨B = ¬(A∧¬B)
  2. 同値の除去: A↔B = (A→B)∧(B→A) = (A∧B)∨(¬A∧¬B)
  3. 推移律: ((A→B) ∧ (B→C)) → (A→C),
    ((A↔B) ∧ (B↔C)) → (A↔C)
  4. 背理法: A→¬A = ¬A
  5. 対偶: A→B = ¬B→¬A
  6. 同値の性質: A↔B = ¬A↔¬B, ¬(A↔B) = (A↔¬B)
  7. 含意の性質: T→A = A, F→A = T, A→T = T, A→F = ¬A

恒真と恒偽

今週の宿題

提出: 再来週の木曜日 (11月16日)、22:00 (厳守)、Moodle にて。形式はプレーンテキスト。ファイル名は solution5.txt (メモ帳など、solution4.txt の第一問と同様な形式)

二つの変数 (例: A, B) で可能な論理関数を全て表に列挙し、それぞれの関数をNOR だけの式又は NAND だけの式で書きなさい。

A = F
B = F
A = F
B = T
A = T
B = F
A = T
B = T
簡単な式
F F F F ?
F F F T NAND(NAND(A, B))
F F T F ?
? ? ? ? ?