人気ブログランキング | 話題のタグを見る

演算表

群 G = {a1,a2,a3,a4,a5,a6} は集合である。

しかし、その要素 ai を自由に選べるというわけではない。単なる集合なら G = {いぬ、さる、きじ} でも G = {1,2,3,5,8} でも自由に作ることができるが、群 G の要素には次のような縛りがあるので、それに見合う要素の集合しか作れない。

群の要素に対する縛りとはつぎの4つだ。
  1. 群 G には ab = c となる要素の積が定義され、c もまた G の要素である。
  2. 積は結合法則 (ab)c = a(bc) を満たす。
  3. G の要素には ae = ea = a となる単位元 e が含まれる。
  4. G の任意の要素には aa-1 = a-1a = e となるような逆元 a-1 が存在する。
どんな集合でも群になれるというわけではなく、要素間に上のような関係がある集合のみが群になることができる。

厚紙で正三角形を切り出して、それを反転させたり回転させたりして元の三角形に重ねる操作を考えてみよう。考えられるのは次の6つだ。

a1 -- 正三角形を全く動かさない。
a2 -- 正三角形を120度時計方向に回転する。
a3 -- 正三角形を240度時計方向に回転する。
a4 -- 正三角形を反転させる。
a5 -- 正三角形を反転させ、さらに時計方向に120度回転させる。
a6 -- 正三角形を反転させ、さらに時計方向に240度回転させる。

これらの6つの操作は、独立である。すなわち、他の操作の結果と重なるものはない。しかし、正三角形を360度回転させた結果は正三角形を全く動かさなかったものと同じ結果になるので、独立した要素とみなすことはできない。正三角形を動かして元の三角形に重ねる操作の結果は全て、上の6つの操作の結果のどれかと一致する。

正三角形を最初に時計方向に120度回転して、さらに時計方向に240度回転することもできる。操作の連結だ。この場合は三角形は元の位置に重なる。つまり、三角形を全く動かさなかった場合と同じ結果になる。つまり、操作 a2 と a3 の積を考えることができ、その結果も a1 になる。すなわち、a2a3 = a1 だ。

この a1,a2, ... , a6 を集めて集合 G を作る。そうして、a1, a2, ... , a6 どうしの積の演算表を作ってみると次のようになる。

     a1 a2 a3 a4 a5 a6
a1  a1 a2 a3 a4 a5 a6
a2  a2 a3 a1 a5 a6 a4
a3  a3 a1 a2 a6 a4 a5
a4  a4 a6 a5 a1 a3 a2
a5  a5 a4 a6 a2 a1 a3
a6  a6 a5 a4 a3 a2 a1

この演算表から、集合 G は積について閉じており、積の結合法則が成り立ち、単位元 a1 と G のおのおのの要素の逆元 (aiaj = a1 となる aj が存在する) があることが分かる。すなわち、G は群をなしている。

実は G の要素 a1, a2, ... , a6 は正三角形の回転操作でなくても構わない。上の演算表と同じ演算表ができれば、例えば a1 は (1,2,3) の置換でも構わない。ai は無定義用語で、演算表における ai, aj 間の関係を表している変数のようなものだ。演算表さえ満たしていれば、ai の中身はなんでも構わない。

群論とは、このような演算表を持った集合 G = {a1,a2,a3,a4,a5,a6} の様々な性質を調べる数学だ。

この演算表を眺めていると面白いことに気づく、例えば a2 の行には a2 と a1, a2, ... , a6 の積の値が並んでいるが、そこには順序は入れ替わっているものの、a1, a2, ... , a6 の要素が1回ずつ現れており重複はない。つまり、a2 と {a1,a2, ... ,a6} の積は要素の置換になっている。

これは簡単に理解できる。まず積の値は全て G に属するのだから、{a1, a2, ... , a6} 以外に現れる値はない。さらに a2ai = a2aj となるような ai, aj があったとすると、a2-1a2ai = a2-1a2aj -> eai = eaj -> ai = aj となるが、ai と aj は異なるので、a2 との積に同じ値が現れることはない。したがって必然的に a2 の積は、{a1,a2, ... , a6} の並べ替えになる。

これは有限離散群の演算表の全てについて言えることなので、ある元 ai と群 G の全ての要素との積は要素の置換になる。

置換とは数字 {1,2, ... , n } の並べ替えのことだ。例えば、{1,2,3} の並べ替え方は次の6通りある。

Prelude> :m Data.List
Prelude Data.List> let perm [] = [[]]; perm xs = concat [map (x:) (perm (delete x xs)) | x <- xs]
Prelude Data.List> perm [1,2,3]
[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]

[1,2,3] -> [2,1,3] の並べ替え(置換)を [2,1,3] で表すことにすると、可能な置換の種類は上の6通りだ。置換した数値の並びに更に置換を加えることも考えられる。[2,1,3] の置換にさらに [3,2,1] という置換を加えると、1->3, 2->2, 1->3 の置換が行われ、[2,3,1] となる。すなわち、[2,1,3] [3,2,1] = [2,3,1] だこのように置換には置換の積が定義できる。証明は行わないが、置換はこの積について群をなす。このような置換の集合の群を対称群という。

この置換群について a1, a2, ... , a6 を次のように定義すると置換群の積は上の演算表と同じ結果になる。

a1 = [1,2,3]
a2 = [2,3,1]
a3 = [3,1,2]
a4 = [1,3,2]
a5 = [2,1,3]
a6 = [3,2,1]

ところで、ai は無定義用語なので、いろいろな集合の要素で置き換えができるはずだ。それでは群 G = {a1,a2, ... , a6} と群 G' = {b1,b2, ... , b6} が同じ演算表を共有できることはどのようにして調べることができるだろうか。それは群 G と群 G' の間に同型写像 φ が存在すれば良い。φ は G -> G' の全単射(1対1対応) であって、ab ∈G のとき、φ(ab) = φ(a)φ(b) であることである。つまり ab を先に計算してそれを φ で写像しても、φ(a) と φ(b) を先に求めてその積 φ(a)φ(b) を計算しても値が一致するということだ。Haskell のモナドのプログラムにもよく出てくる図式だ。

このような場合、群 G と群 G' は同型であるといい、同じ演算表を共有できることを意味している。

ところで、位数 n の有限群は対称群 Sn の部分群と同型であることが分かっている。したがって、全ての有限群の性質はそれと同型な対称群を調べれば分かることになる。冒頭の三角形の重ね合わせの操作の群は6個の要素からなり、位数 6 の有限群だから、対称群 S6 の部分群となる。この場合は上の a1, a2, ... , a6 は、

a1 = [1,2,3,4,5,6]
a2 = [2,3,1,5,6,4]
a3 = [3,1,2,6,4,5]
a4 = [4,6,5,1,3,2]
a5 = [5,4,6,2,1,3]
a6 = [6,5,4,3,2,1]

と同型となる。試しに a2a3 = [2,3,1,5,6,4] [3,1,2,6,4,5] を計算してみると、1->3, 2->1, 3->2, 4->6, 5->4, 6->5 だから [1,2,3,4,5,6] となって G に閉じていることが分かる。明らかに単位元は a1 で a2a3 = a1 だから a2 の逆元は a3 だ。

群から群への同型写像は群 G から自分自身への自己同型(関数) φ も考えることができる。この場合も φ は明らかに群 G の要素の置換だ。さらに、この φ を集めた集合は群をなすので、自己同型群と呼ばれる。自己同型群も置換群なので、対称群Snの部分群と同型である。

長々と書いてきたが、要するに、有限群の議論は、対称群(数字の置換全体の集合)をモデルとして全て理解することができるということを言いたかったのだ。対称群ならば、具体的なモデルが作りやすいし、プログラムも作りやすい。抽象的な議論になりやすい群に具体的なイメージをあたえるには格好の素材だということだ。

群論は対称群をモデルにすれば、難しくはない。
by tnomura9 | 2012-08-26 08:30 | Haskell | Comments(0)
<< 演算表とプログラミング 群作用 >>