情報数学 I
第六回 (2007年11月30日)
関係
Martin J. Dürst
duerst@it.aoyama.ac.jp
O 棟 529号室
http://www.sw.it.aoyama.ac.jp/2007/Math1/lecture6.html
© 2005-7 Martin
J. Dürst 青山学院大学
今日の予定
- 先回の宿題と復習
- 論理関数
- 命題論理の基礎
- 関係の基本
先回の宿題
提出: 再来週の木曜日 (11月22日)、22:00 (厳守)、Moodle
にて。形式はプレーンテキスト。ファイル名は
solution5_xxxxxxxx.txt
(例,
メモ帳など; xxxxxxxx
は八桁の学籍番号)
二つの変数 (例: A, B)
で可能な論理関数を全て表に列挙し、それぞれの関数を
NAND だけの式で書きなさい。
現在,諸事情により閲覧不可
宿題の解き方
- 先週までの宿題 (二変数の全ての論理関数を ∨, ∧, ¬
で表す) で ∨, ∧, ¬ を NOR や NAND
で表した式に置き換える
- ある論理関数の否定を取って、これを今までできたものから
∨ (又は ∧) で作れるのか見てみる
例: TFFT → FTTF → FFTF ∨ FTFF → NOR(NOR(NOR(A),
B), NOR(NOR(B), A))
- プログラムで解いてみる
- 以上の方法に沿ったプログラム
- あらゆる式を作り、評価する
宿題を解くプログラム
- プログラム言語は Ruby
- 式を集合 (内部は配列) で表現
例: NOR(NOR(A), B) → {{A},
B}
- 単純な式から複雑な式を作成
- 一番単純な式は定数や変数だけ: T, F, A,
B
- これを集合にし、E0 = {T, F,
A, B} とする
- NOR (又は NAND) が一段階だけの式の集合は
E0
のベキ集合から空集合を引いて、E0
を足すことでできる
- 一般には Ei+1 =
(P(Ei)-{})∪
Ei
- 式の数が急に爆発するため、各段階で同一の結果の式の内に一つだけ残す
先週の復習
- 論理関数の単純化
- NAND, NOR, XOR
- 論理回路の役割と書き方
- 記号論理
記号論理
(symbolic logic)
- 論理のモデルを作って、記号演算だけで論理ができるようにする。
- 論理にはいくつかの種類がある。例えば:
- 二値論理 (真と偽だけ)
- 多値論理 (真と偽以外の値がある)
- ファジィ論理 (曖昧さの計算を含む)
- 命題論理 (propositional logic, 命題だけを使う)
- 述語論理 (predicate logic, 一階 (first order) 等)
- 時間など他の要素を取り入れた論理
「同値である」と
「ならば」の真理表
A |
B |
A ↔ B |
A → B |
T |
T |
T |
T |
T |
F |
F |
F |
F |
T |
F |
T |
F |
F |
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
性質の応用
次の式を単純化しなさい (宿題、提出なし)
- (A→B) →(A ∧ B)
- (E∧F)→(E∨F)
- A→(B∨C) =
(A→B)∨(A→C)
- ¬C→(D→C)
恒真と恒偽
- 常に真の式を「恒真式」と呼ぶ。トートロジー
(tautology) ともいう。
関係
- 関係の情報テクノロジーでの役割
- 関係の定義
- 関係の表現
- 関数と関係
関係の情報テクノロジーでの役割
- 関係データベース (relational database)
- 関係とグラフ
- 関係と論理演算
順序対、n 項組
- 順序対 (ordered pair) は二つのもの a と b
を順序付けたもので、(a, b) で表す
- 二つの集合 A と B の直積集合 (Cartesian
product set) A × B
は次のように定義されている:
A × B = {(x, y) | x
∈ A, y ∈ B}
(集合の大きさ: |A × B| =
|A|·|B|)
- A × A の代わりに A2
と書くこともある
- n 項組は順序対の拡張。n
字組とも言う。
- 英語で一般的に n-tupple
と言うが、数が固定されていると triple (三字組),
quadruple, quintuple, sextuple, septuple, octuple, nonuple
と言います
関係の定義
- 二つの集合 A と B の関係 R
(A から B への関係とも言う) は
A × B の部分集合
- 例: A = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, B = {3,
4},「割り切れる」対を R の元とすると
R = {(3, 3), (6, 3), (9, 3), (4, 4), (8, 4)}
- (a, b) ∈ R を aRb
とも書く
- A = B の場合には 「A
の中の関係」、「A の上の関係」や「A
における関係」という
- 二つの集合の関係は 2 項関係 (binary relation) と言う。3
項関係 (ternary relation) などもある。
関係と関数
- n 項関係は n
項組から真理値への関数
- 関数はある入力に対し一つだけの出力
- n 項関係は n-1
変数の「複数の出力が許されている」関数 (多値関数)
に相当
- n-1 変数の関数は n 項の関係
関係の表現
- 行列表現:
A を縦、B を横
にして、関係のある場合に 1、そうでない場合に 0
を書く
- 表としての表現:
一列目を A、二列目を B
にして、行ごとに関係の元を列挙する
- 有向グラフ表現:
A 等の元を節として、(a, b)
が関係に属する場合に a から b
への矢印を書く
逆関係
(inverse relation)
- (二項) 関係の逆関係は順序対を逆にした関係
- R の逆関係を R-1 と書く
- xRy ⇔
yR-1x
関係の合成
- A から B への関係 P、B
からC への関係 Q に対して P と
Q の合成 (composition) が定義されている
- P と Q の合成 R の場合
R = P∘Q と書く
- R = {(x, z) | (x,
y) ∈ P, (y, z) ∈
Q}
- 行列表現では合成は通常の行列の積と相当。但し、掛け算と足し算の代わりに論理積と論理和を使う。
来週の予定
- 来週は30分間のミニテストを行う
- 今までの授業の内容の範囲
- 問題の例:
- 用語の説明と使い方 (英語を含む)
- 論理式の計算や単純化
- 集合と関係