情報数学 I
第九回 (11月28日)
代数系とブール代数
Martin J. Dürst
duerst@it.aoyama.ac.jp
http://www.sw.it.aoyama.ac.jp/2008/Math1/lecture9.html
© 2005-8 Martin
J. Dürst 青山学院大学
今日の予定
前回のまとめ
- 反射的、反対称的、かつ推移的な関係は
半順序関係 (semiorder relation)
- 半順序関係はハッセ図で表現可能
- 全順序の場合は全ての順序対で順序が確定
追加: 同値関係と半順序の行列表現
- 集合 A の元の順番は任意
- 行列表現で行と列を同時に置き換えるのが可能
- 置き換えで、同値類は次の形に変更可能:
- T がある数の正方形にまとまる
- 正方形の中心点は対角線上に
- 正方形がお互いに共通項目を持たない
- 対角線は全て T (正方形内)
- 置き換えで、半順序は次の形に変更可能:
代数系
(algebraic system)
- 集合が一つ (以上)
- その集合の元の間の演算が一つ以上
(結果もまたその集合の元)
- 公理が一つ以上
- 公理から演算の性質が証明できる
代数系の例: 群
(group)
演算は二項演算「∘」一つ。公理:
- 結合律
- 単位元の存在
- 逆元 (inverse element) の存在
例: (Z; +), (R-{0}; ×), 置換群
(permutation group)
置換群
- n 次置換群は n
個の要素の置き換えすべてを
含まれる
- 置換群の要素は 1..n の順列で表す
例: (2, 4, 1, 3) は (猫、犬、馬、牛) を
(犬、牛、猫、馬) に置き換える
- 置換群の二次演算は置き換えの連結
例: (2, 4, 1, 3) ∘ (1, 4, 2, 3) = (2, 3, 4, 1)
- 単位元は「何もしない」置き換え
例: (1, 2, 3, 4)
- 結合律は成立するが、交換律は成り立たない:
例: (2, 4, 1, 3) ∘ (1, 4, 2, 3) ≠
(1, 4, 2, 3) ∘ (2, 4, 1, 3)
代数の例
- 可換群 (アベル群、Abelian group):
群に交換律を追
例: (Z; +), (R-{0}; ×)
- 半群 (semigroup): 結合律だけ、単位元と逆元なし
- 環 (ring):
加法と乗法という二つの演算があり、加法に対して可換群、乗法に対して半群、乗法は加法に対して分配可能
(例: 多項式環)
- 体 (field)
- 束 (lattice):
二つの演算に対して結合律と交換律、そしてお互いに吸収律が成り立つ
ブール代数
(boolean algebra)
- 論理演算、集合演算、半順序の「交差点」
- 論理演算、集合演算、一部の半順序の上位概念
- B = (B, 0, 1,
¬, ∧, ∨)
は次の条件でブール代数となる:
- 0 ∈ B, 1 ∈
B (1 は単位元、0
は零元と言う)
- ¬
はB上の単項演算、∧
と∨は二項演算
- ∧と∨について交換律、結合律と分配率が成り立つ
- a ∈ B の場合に a
∨ 0 = a, a
∧1=a が成り立つ
- a ∈ B の場合に a
∨¬a = 1, a
∧¬a = 0
が成り立つ
- 公理はもっと少なめでよいが、複数のやり方が存在
- ブール代数は半順序、束の一種
- 注意: 0、1、∧
など太字のものは代表で、具体的の意味ではない
ブール代数の例 (1): 集合演算
- B は (有限) 集合 U
のベキ集合
- 0 は空集合
- 1 は U
- ¬ は補集合演算
- ∧ は積集合演算
- ∨ は和集合
- 半順序関係は ⊂ (部分集合)
ビット毎演算
- 計算機の中で情報は全てビットの列で表される
- ビット毎演算はビット毎の論理演算です
- ビット毎 ¬: 1ビット1ビット毎に ¬ を適応 (C 言語等で
~
)
- ビット毎 ∧: 同じ位のビット毎に ∧ を適応 (C
言語等で
&
)
- ビット毎 ∨: 同じ位のビット毎に ∨ を適応 (C
言語等で
|
)
ブール代数の例 (2): ビット毎論理演算
- B は
- 0 は
- 1 は
- ¬ は
- ∧ は
- ∨ は
- 半順序関係は
ブール代数の例 (3)
- B は
- 0 は
- 1 は
- ¬ は
- ∧ は
- ∨ は
- 半順序関係は
有限ブール代数の構造
- 有限ブール代数は全て |B| = 2n
である
- 有限ブール代数は全て同じ構造である (n
次元の立方体の辺)
- n のブール代数は全て同型 (isomorphic) である
- ブール代数は全て同じ性質が成り立つ
(公理から証明可能)
ブール代数の同型
- 部分集合はビット列で表せる
- 集合の演算は論理演算で表せる
例: A ∪ B = { x | x ∈
A ∨ x ∈ B}