情報数学 I
第六回 (2009年11月13日)
関係
Martin J. Dürst
duerst@it.aoyama.ac.jp
http://www.sw.it.aoyama.ac.jp/2009/Math1/lecture6.html
© 2005-09 Martin
J. Dürst 青山学院大学
今日の予定
- 前回の復習と宿題
- 論理関数
- 命題論理の基礎
- 関係の基本
前回の復習
- NAND, NOR, XOR
- 論理回路の役割と書き方
- 記号論理 (→ と ↔)
前回の宿題
二つの変数 (例: 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
- 式の数が急に爆発するため、各段階で同一の結果の式から一つだけ残す
関係
- 関係の情報テクノロジーでの役割
- 関係の定義
- 関係の表現
- 関数と関係
関係の情報テクノロジーでの役割
- 関係データベース (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
とも書く
- 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, 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分間のミニテストを行う
- 今までの授業の内容の範囲
- 問題の例:
- 用語の説明と使い方 (英語を含む)
- 論理式の計算や単純化
- 集合と関係