情報数学 I
第七回 (2011年11月25日)
関係
Martin J. Dürst
http://www.sw.it.aoyama.ac.jp/2011/Math1/lecture7.html
© 2005-11 Martin
J. Dürst 青山学院大学
今日の予定
- 前回の復習と宿題
- 関係の基本
- 関係の情報テクノロジーでの役割
- 関係の定義
- 関係の表現
- 関数と関係
前回の復習
- NAND, NOR, XOR
- 論理回路の役割と書き方
- 記号論理 (→ と ↔)
前回の宿題
二つの変数 (例: A, B)
で可能な論理関数を全て表に列挙し、それぞれの関数を
NAND (又は NOR) だけの式で書きなさい。
NAND と NOR
の他に一つの論理関数からすべての論理関数を作れるものはあるか調べなさい。例えば
→ ではどうでしょうか。
宿題の解き方
- 前回までの宿題 (二変数の全ての論理関数を ∨, ∧, ¬
で表す) で ∨, ∧, ¬ を 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
- 式の数が急に爆発するため、各段階で同一の結果の式から一つだけ残す
以前の資料の修正
論理演算の復習 (第5回の資料)
|
論理和 |
論理積 |
論理否定 |
又は |
かつ |
でない |
conjunction disjunction |
disjunction conjunction |
negation |
or |
and |
not |
優先度 |
低 |
中 |
高 |
A |
B |
A ∨ B |
A ∧ B |
¬B |
F |
F |
F |
F |
T |
F |
T |
T |
F |
F |
T |
F |
T |
F |
|
T |
T |
T |
T |
関係
- 関係の情報テクノロジーでの役割
- 関係の定義
- 関係の表現
- 関数と関係
関係の情報テクノロジーでの役割
- 関係データベース (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-tuple
と言うが、数が固定されていると 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
とも書く
- 二つの集合の関係は 2 項関係 (binary relation) と言う。3
項関係 (ternary relation) などもある。
- A = B の場合には 「A
の中の関係」、「A の上の関係」や「A
における関係」という
関係と関数
- n 項関係は n
項組から真理値への関数
- 関数はある入力に対し一つだけの出力
- n 項関係は n-1
変数の「複数の出力が許されている」関数 (多値関数)
に相当
- n-1 変数の関数は n
項の関係で表現可能
関係の表現
- 集合としての表現 (内包的又は外延的)
- 行列表現:
A を縦、B を横
にして、関係のある場合に 1、そうでない場合に 0
を記入
- 表としての表現:
一列目を A、二列目を B
にして、行ごとに関係の元を列挙
- 有向グラフ表現:
A と B の元を節として、(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}
- 行列表現では合成は通常の行列の積と相当
(但し、掛け算と足し算の代わりに論理積と論理和を使う)
- 注: 数学の分野などによって、Q∘P
と書くこともある
- P∘Q は行列の掛け算が由来
- Q∘P は関数の合成が由来
(f(x) と g(y) の合成は
f(g(y))
- この授業では P∘Q を使用
次回の予定
- 次回は30分間のミニテストを行う
- 今までの授業の内容の範囲
- 問題の例:
- 用語の説明と使い方 (英語を含む)
- 論理式の計算や単純化
- 集合と関係