代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか?...

57
代数系の基礎

Transcript of 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか?...

Page 1: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

代数系の基礎

Page 2: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

何に使えるのか?

• ブール代数

– デジタル計算機、論理回路設計

• プログラムの意味論

– 型のチェック、型の整合性

• 分子や社会ネットワークの構造解析

• 暗号理論

• 「線形代数」も代数

Page 3: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

今日の目標

代数系が集合と演算とから定義される離散構造であることを理解する

– 例:プログラムの動作をモデル化している

代数系に関する基本的な概念(性質)について理解する

– 可換性、結合性、etc

単位元、逆元について理解する

Page 4: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

閉じた演算

関数 f: AnBを、集合Aで定義されたn項演

算と呼ぶ(以下では、二項演算に注目)

B⊆Aのとき、その演算を閉じた演算と呼ぶ

例:整数集合は、加算と減算と乗算については閉じているが、除算については閉じていない(なぜか?)

Page 5: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

代数系

集合AとAで定義された演算f1, f2, …, fkとの組を代数系と呼び〈A, f1, f2, …, fk 〉などと記す

例1:Aが整数集合でf1が加算、 f2が乗算

例2:Σが文字の集合で、 f1が文字の連接(concatenation)

Page 6: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

二項演算の性質(1)

閉包性: ∀a,b∈A, (a*b∈A) のとき、二項演算*はA上で閉じているという

可換性: ∀a,b∈A, a*b = b*aのとき可換でない例としては、正方行列の積など

結合性: ∀a,b,c∈A, (a*b)*c = a*(b*c)のとき結合性をもたない二項演算の例としては、除算な

どがある((6/3)/2 ≠ 6/(3/2))

Page 7: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

二項演算の性質(2)

*と★を集合A上の二項演算とする

∀a,b,c∈A, a*(b ★c)= (a*b)★(a*c)かつ(b★c)*a=(b*a)★(c*a)のとき、*は★に関して分配的であるという– 分配的でない例:*が加算で★が乗算のとき

∀a,b∈A, A上の可換な二項演算*と★がa*(a★b)=aかつa★(a*b)=aを満たすとき、*と★は吸収律を満たすという

Page 8: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

べき等律

∀a∈A, a*a=aを満たすとき、二項演算*はべき等律を満たすという

– べき等律を満たす例としては、集合和や集合積など

Page 9: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

演算表

* a b c

a a b a

b b c a

c c a b

a*c = a c*a = c

この代数系は可換ではない

Page 10: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

単位元(identity)

任意のx∈Aに対してe*x=xとなるようなAの要素を、左単位元と呼ぶ

任意のx∈Aに対してx*e=xとなるようなAの要素を、右単位元と呼ぶ

• 左単位元でありかつ右単位元であるような要素を、単位元と呼ぶ

Page 11: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

* a b c

a a b c

b b c a

c c a b

• この代数系は可換である(a*b=b*a)

• 左単位元はa(a*a=a, a*b=b, a*c=c)

• 右単位元もa(a*a=a, b*a=b, c*a=c)

Page 12: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

注意

* a b c

a a b c

b b c a

c a a b

この代数系には、左単位元しか存在しない!

Page 13: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

零元

任意のx∈Aに対してp*x=pとなるようなAの要素を、左零元と呼ぶ

任意のx∈Aに対してx*p=pとなるようなAの要素を、右零元と呼ぶ

• 左単位元でありかつ右単位元であるような要素を、零元と呼ぶ

Page 14: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

逆元

〈A,*〉を単位元eをもつ代数系とする

x∈Aに対してy*x=eとなるようなAの要素を、aの左逆元と呼ぶ

x∈Aに対してx*y=eとなるようなAの要素を、 aの右逆元と呼ぶ

• 左逆元でありかつ右逆元であるような要素を、逆元と呼ぶ

Page 15: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

Aが整数集合、*が加算のとき、単位元は0であり、xの逆元は-xである

Aが0を含まない実数集合、*が乗算のとき、単位元は1であり、xの逆元は1/xである

– なぜ0を含んではいけないのか

Page 16: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

性質

• 〈A,*〉を単位元eをもつ代数系とする

• Aの任意の要素aに対して、aの左逆元bが存在し、かつ演算*が結合的であるとき、

1)aの右逆元もbである

2)aの逆元はひとつだけである

Page 17: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

略証

• b*a = e 仮定(bがaの左逆元)から

• a*(b*a) = a

• (a*b)*a = a 結合律

• a*b = e x*a = a となるxは(左)単位元

• 逆元が唯一であることは、背理法によって証明できる

Page 18: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

単位元や逆元の意味

• 代数系において、演算をすることは、状況を変化させることに対応している

• 「閉じている」ことは、状況をどのように変化させてもあらかじめ決めた範囲から逸脱しないことを意味している

• 単位元は、「足踏み」に対応する

• 逆元は、「巻き戻し」に対応する(単位元に関して定義されていることに注意)

Page 19: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論
Page 20: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

半群、モノイド、群

Page 21: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

今日の目標

閉じた代数系

– 結合律が満足されていれば「半群」という

半群+単位元=モノイド

モノイド+逆元=群

群はある意味で「完全体」

Page 22: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

半群

• 代数系〈S,*〉を考える

– Sは空でなく、*はS上の二項演算とする

• 以下の2つの条件を満たすとき、 〈S,*〉を半群(semi-group)と呼ぶ:

1)*が閉じた演算であること

2)*が結合的な演算であること

可換性を要請していないことに注意!

Page 23: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

正整数の集合は、加法に関して半群である

唯一の元xからなる集合 {x} は、x*x = x と置けば半群になる(自明な半群あるいは一元半群という)

集合 S から一つの元 0 を選び、S の演算を任意の元 x, y に対して x*y = 0 と定めると、S は半群である(零半群という)

Page 24: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

例(つづき)

文字集合 Σ に含まれる文字から生成される有限な文字列全体の集合は、列の連接を演算とすることで半群になる(Σ から生成される自由半群という)

a * b = ab

ab * bc = abbc

abbc * bcbc = abbcbcbc

Page 25: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

部分半群

• 〈S,*〉が半群であり、*がB⊆Sで閉じているならば〈B,*〉もまた半群である

• そのような〈B,*〉を〈S,*〉の部分半群と呼ぶ

• 例:Sが正整数の集合で*が加算のとき、偶数の正整数の集合は、加算に関して、部分半群を構成している– 奇数集合についてはそうではない。なぜか

Page 26: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

モノイド

単位元が存在する半群をモノイドと呼ぶ

– モノイドは単系と訳されることもある

例:0 を含む自然数全体の集合Nは、加算について0を単位元とするモノイドであり、乗算に対しても1を単位元とするモノイドである

– 演算ごとに単位元が異なっていることに注意

Page 27: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

その他の例

正の自然数全体の集合N+は、乗算に対して1を単位元とするモノイドである

– 0×1=0であることに注意!

集合SからS自身への写像全体の集合は、写像の合成を演算と考えることで、恒等写像を単位元とするモノイドとなる

自然数係数のn次正方行列全体の集合 Mn(N) は、加算に関しても(単位元は零行列)乗算に関しても(単位元は単位行列)モノイドである

Page 28: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

モノイドの性質

• 〈S,*〉がモノイドのとき、その演算表の中に、値の同じ2つの行または2つの列は存在しない

– 単位元eに対して、e*c = e*bとなってしまうから(どこに矛盾があるのでしょうか)

Page 29: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

例(2.7)

• A= { 0,1,2,3,4 }とする

• A上の演算*、★を以下のように定義する

a*b = a+b (mod 5)

a★b= a×b (mod 5)

• このとき、〈A,*〉, 〈A,★〉はいずれもモノイドである

定義に立ち返って証明してみること!

Page 30: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

• 〈G,*〉を代数系とする

• 以下の4つの条件を満たすとき〈G,*〉を群(group)と呼ぶ:

1)*は閉じた演算であること

2)*は結合的な演算であること

3)単位元が存在すること

4)Gの各要素が逆元をもつこと

ここまでで半群

ここまででモノイド

Page 31: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

整数, 有理数, 実数, 複素数は加法に関して群を成す

– 単位元と逆元はそれぞれ何か?

有理数, 実数, 複素数から0を除いたものは乗法に関して群を成す

– 単位元と逆元は?なぜ0を除くのか?

(実数係数の)n次正則行列全体の集合は、どの行列も逆行列を持つから群になる

– 「正則」ということばの意味は?

Page 32: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

有限群

• 群〈G,*〉はGが有限集合のとき有限群と呼ばれ、|G|をその有限群の位数とよぶ

• Gが有限集合ではない群を無限群と呼ぶ

– 前述の例はすべて無限群

Page 33: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

• A= { 0,1,2,3,4 }とし、A上の演算*を以下のように定義したとき、〈A,*〉は位数5の有限群である

a*b = a+b (mod 5)

Page 34: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論
Page 35: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

可換群と巡回群

Page 36: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

今日の目標

• 群の性質について理解する

– 「逆元がある」ことから何が導かれるのか

• 部分群について理解する

• さまざまな特殊な群について理解する

– 置換(対称群)、可換群、巡回群

Page 37: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

群の性質

• 群には零元がない

– なぜか?

• 〈G,*〉が群のとき、∀a,b∈G, (a*x=b)を満たすxはG上に唯一つ存在する

– なぜか?

• ∀a,b,c ∈G, (a*b=a*cまたはb*a=c*a)であるとき、b=cである

– そのような性質を消去律と呼ぶ

Page 38: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

べき等元

• 群〈G,*〉の唯一のべき等元は、単位元eである

– べき等元とは、代数系〈A,*〉において、a*a=aであるようなAの要素のこと

Page 39: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

部分群

• 〈G,*〉を群とし、SをGの部分集合とする。〈S,*〉は、それ自身が群であるとき、〈G,*〉の部分群と呼ばれる

• 〈S,*〉が〈G,*〉の部分群であるとき、〈G,*〉の単位元は〈S,*〉の単位元でもある

Page 40: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

• Gが整数集合、*が加算のとき、〈G,*〉は群である(単位元は0)

• Sを偶数の集合とすると、〈S,*〉は〈G,*〉の部分群である

– 〈S,*〉の単位元も0であることに注意しよう

– 3の倍数の集合、4の倍数の集合、…という風に部分群の「階層」を考えることができる

Page 41: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

置換

• 集合Sから自分自身への全単射はSの置換と呼ばれる

• 記法:

= (4 3 2 5 6 1)

1

6

6

5

5

4

2

3

3

2

4

1

123456

123456

S S

Page 42: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

対称群(symmetric group)

• 置換を要素とする群

• 置換群(permutation group)とも呼ばれる

• 置換の合成を(積)演算とする

• A = { 123, 132, 213, 231, 312, 321 }とすると、たとえば132*213は、「2と3を交換したあとで1と2を交換する置換を表しており、312と一致する

Page 43: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

例(つづき)

* 123 132 213 231 312 321

123 123 132 213 231 312 321

132 132 123

213 213 123

231 231 123

312 312 123

321 321 123

• 312*231 = 123

• 231*312 = 123

Page 44: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

可換群

• 群〈G,*〉の演算*が可換ならば、 〈G,*〉は可換群もしくはアーベル群と呼ばれる

• ニールス・ヘンリック・アーベル(Niels Henrik Abel, 1802年8月5日 - 1829年4月6日)はノルウェーの数学者

• 5 次以上の代数方程式には、べき根n√ と四則演算だけで書けるような解の公式が存在しないことに初めて正確な証明を与えた

• ガロア(フランスの数学者)とほぼ同年代

Page 45: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

可換群の性質

• 群〈G,*〉が可換群であるための必要十分条件は、

∀a,b∈G, (a*b)*(a*b)=(a*a)*(b*b)

が成り立つことである

Page 46: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

可換群はなぜ重要か

• 可換性を満足することで、いろいろな性質がすっきりと成立する

• 典型的には、代数方程式の可解性に関する議論とかかわっている

– 可換群の任意の部分群が正規部分群であること

– 任意の可換群が可解であること

Page 47: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

可換でない群の例

• Aを正則行列の集合とし、*を行列積としたとき

• 単位元は単位行列

• 正則なので逆元は存在する(→群)

1320

58

12

34

43

21

85

2013

43

21

12

34

Page 48: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

巡回群

• 〈G,*〉を群とする。

• 任意の要素b∈Gに対してb=aiとなるa∈Gが存在するならば、 〈G,*〉を巡回群と呼び、aをその生成元と呼ぶ

Page 49: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

• A= { 0,1,2,3,4 }とし、A上の演算*を以下のように定義したとき、 〈A,*〉は巡回群である

a*b = a+b (mod 5)

• 2 = 1*1

• 1 = 3*3 (= 3+3 (mod 5))

• 0 = 1*1*1*1*1

Page 50: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

巡回群の性質

• 任意の巡回群は可換である

• 〈G,*〉を生成元aをもつ有限巡回群とする。Gの要素数がnであるとき、単位元e=anかつ、G = { a, a2, …, an = e }である。

Page 51: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論
Page 52: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

ブール代数の基礎

Page 53: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

環(ring)

• 代数系〈A,★,*〉は、以下の条件を満たすとき環(ring)と呼ばれる

1) 〈A,★〉が可換群であること

2) 〈A,*〉が半群であること

3)演算*が演算★に関して分配的であること

通常、★を加法、*を乗法と呼ぶ

Page 54: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

• 整数集合Zと通常の加法+、乗法×について、代数系〈Z,+,×〉は環である

– 加法に関しては可換

– 乗法に関しては半群(単位元がない)

• 同様のことは、有理数集合、偶数集合、複素数集合などについても言える

Page 55: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

体(field)

• 代数系〈A,★,*〉は、以下の条件を満たすとき体(field)と呼ばれる

1) 〈A,★〉が可換群であること

2) 〈A-{θ},*〉が可換群であること。ここでθは、加法★の単位元である

3)演算*が演算★に関して分配的であること

Page 56: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論

• 有理数集合Qと通常の加法+、乗法×について、代数系〈Z,+,×〉は体である– 加法に関しては可換

– 乗法に関しても、0を除外すればOK

• 同様のことは、実数集合、複素数集合などについても言える

• 整数集合については、乗法に関する逆元が存在しないので、体ではない

Page 57: 代数系の基礎 - Hiroshima University · 2008-12-10 · 何に使えるのか? •ブール代数 –デジタル計算機、論理回路設計 •プログラムの意味論