フロック部分群検定を実装する

どうも進捗が思わしくない.どうも極大検定から入ったのが敗因だったようだ.極小検定から入っていれば,もう少し進んでいたはずだ.極小検定には極大検定で出てくるような組み合わせの問題は発生しない.まず,最初に単独のフロックから生成される群を選り分けて見ることにしよう.これをフロック部分群検定と呼ぶことにする.⇒実装した.

これはかなりよい.A4の位数3の部分群を4個すべて切り出してきた.これまでのやり方ではどうしても出てこなかったものだ.フロック類にはまだお宝が秘匿されている.フロック番号0のグループだ.このグループに属する元と単位元から位数2の部分群が生成されるはずだ.A4では7個のフロック部分群が生成された.位数2X3 位数3X4.

A4の部分群検定でエラーが発生した.追加登録で例外が発生している.⇒余計な修正が入っていた.乗積表の生成で配列サイズをケチって現物サイズに収めようとしたためだ.動的に伸長する場合があり,ギリギリサイズでは例外が発生する.

A4の部分群検定で生成される部分群は全部で8個,位数2X3 位数3X4 位数4X1だから,フロック群生成で生成できなかったのは,位数4×1だけということになる.A5の場合,■群A5は57個の真部分群を持つ■ 位数2X15 位数3X10 位数4X5 位数5X6 位数6X10 位数10X6 位数12X5 ということになっている.フロック分解ではこのうちの25個を生成した.■ 位数2X15 位数3X10.これはA5の部分群のうち,位数2と3のものの総数だ.つまり,フロック分解によって任意の群について位数2と3の部分群は完全に生成可能ということだ.

これはおそらくすべての素群を含むと考えてよいのではないだろうか?A4の素群は7個であり,これはフロック分解で生成された部分群の個数に一致する.A5の場合,素群の総数は31でこの中には位数5X6というのが含まれている.これは現在のところまだフロック分解では生成できていない.少なくともフロック分解は現行の極小部分群検定をカバーできるものでなくてはならないだろう.

極小部分群検定にフロックを導入するのは容易だが,もう少しフロック独自のコンテキストで考えてみたい.位数5の部分群には以下がある.

[31] 群A5:<23> 位数5 フロック=1 2^1=2〈23〉 素群 極小 可換 巡回 自己同型 {e,23,54,38,31} [0,23,31,23,31]
[32] 群A5:<18> 位数5 フロック=1 2^1=2〈18〉 素群 極小 可換 巡回 自己同型 {e,18,46,26,56} [0,18,46,18,46]
[33] 群A5:<16> 位数5 フロック=1 2^1=2〈16〉 素群 極小 可換 巡回 自己同型 {e,16,32,48,45} [0,16,32,16,32]
[34] 群A5:<20> 位数5 フロック=1 2^1=2〈20〉 素群 極小 可換 巡回 自己同型 {e,20,42,50,34} [0,20,34,20,34]
[35] 群A5:<21> 位数5 フロック=1 2^1=2〈21〉 素群 極小 可換 巡回 自己同型 {e,21,58,25,44} [0,21,44,21,44]
[36] 群A5:<17> 位数5 フロック=1 2^1=2〈17〉 素群 極小 可換 巡回 自己同型 {e,17,35,36,57} [0,17,35,17,35]

フロックで見ると,単位元を別として,位数2の2つのフロックの対になっている.[23, 31], [18, 46], [16, 32], [20, 34], [21, 44], [17, 35].これらのフロックの元はいずれも長さ5の巡回置換の形になっているが,これらの組み合わせは厳密なマッチングによるものと見られる.どのような仕組みでマッチングしているのか興味あるところだが,ちょっと見では解析できない.

いずれにしてもフロックの対を試してみればこれらを列挙することは可能であり,そのコストはそれほど大きなものではないので,十分許容できるものと思われる.フロック対以上の,たとえば3つ組などでも素群になるのかどうか?という辺りは調べる必要がある.

単独のフロックが群になるときは,そのフロック群を含む部分群は合成群になると考えられるから,素群の成分となるようなフロックはそれ自体では群を構成しないものと考えるべきだろう.このような観点からすると,フロックには①単独で群となるようなフロック,②単独では群とならず,複数のフロックの組み合わせによって初めて群となるもの,の別があると考えられる.これらは素群の成分と考えられるので,フロックを成分としてそれらが素群を構成するまでの組み合わせを試すという手順になるのではないだろうか?

おそらく,素群というのは成分フロックを集めたものになると考えられるので,集合の直和になっているのではないかという気がするのだが… どうだろうか?この点に関しては,極小部分群分解の結果を見てみればわかる.⇒確かにそのようだ.

A4のフロック検定中に群の検査で落ちる.⇒共役変換検定でエラーが起きている.⇒検定中に台集合をいじるというのはやはり差し支えがある.⇒フロック現数のカウント関数の仕様を変更し,引数で台集合(のコピー)を渡すようにした.

A5のフロック検定でフェーズⅡまで進んだ段階で単位元を除いて12個のフロックが残っている.これらを対にすると6個の部分群が生成され,完全に片がつくことになる.⇒完璧だ.S4の場合は2×9, 3×4で13個までしか取り出せていない.極小部分群検定では#4×7のうち,3個は素群であると認定している.S4ではフェーズⅡとⅢでまったく変化がない.以下はS4の位数4の部分群のリストだ.

[14] 群S4:<17> 位数4 フロック=1 2^1=2〈17〉 合成群 極小 可換 巡回 自己同型 {e,17,7,22} [0,17,0,17]
[15] 群S4:<9> 位数4 フロック=1 2^1=2〈9〉 合成群 極小 可換 巡回 自己同型 {e,9,16,18} [0,9,0,9]
[16] 群S4:<10> 位数4 フロック=1 2^1=2〈10〉 合成群 極小 可換 巡回 自己同型 {e,10,23,13} [0,10,0,10]
[17] 群S4:<1,6> 位数4 フロック=1 2^1=2〈1,6〉 合成群 可換 巡回 自己同型 {e,1,6,7} [0,0,0,0]
[18] 群S4:<2,21> 位数4 フロック=1 2^1=2〈2,21〉 合成群 可換 巡回 自己同型 {e,2,21,23} [0,0,0,0]
[19] 群S4:<5,14> 位数4 フロック=1 2^1=2〈5,14〉 合成群 可換 巡回 自己同型 {e,5,14,16} [0,0,0,0]
[20] 群S4:<7,16> 位数4 フロック=1 2^1=2〈7,16〉 合成群 正規部分群 可換 巡回 自己同型 {e,7,16,23} [0,0,0,0]

どうもかなり厄介な話になってきた.すべてフロック0が関係している.逆に言えば,フロック0を取ることができれば解決する.ただし,フロック0は1箇所にまとめて放り込んであるので,このままではかなりコストが掛かってしまう.逆に言えば,フロックゼロの内容をもっと詳細化(階層化)しなくてはならない.これは原理的にはそれほど難しい話ではないので,やるしかないだろう.

フロック検定でストックに追加されないのはなぜか?登録されるためには,部分群名称という配列が用意されていなくてはならない.⇒部分群の登録という処理を実行する必要がある.A4では位数2と3の部分群がそれぞれ登録された.A5では#2, #3, #5×2の計4個が登録された.

A5では位数5の部分群が6個生成されている.これらは[16, 32], [17, 35], [18, 46], [20, 34], [21, 44], [23, 31]という組み合わせになっているが,これらは実際は2つで一つのフロックだったのではないだろうか?つまり,何かまだフロックとなる条件で見つかっていないものがあるのではないか?この2つのフロックはあるノードのべき順路で繋がっている.ただし,巡回路ではなくeに収束するコースだ.[16, 32]の場合,16→ 32→ 45→ 48→ e となる.

この中には2つのべきループ(16, 48), (32, 45)があるため分離しているが,一つのフロック(というより一つの群)となるべきものだろう.これは結局,べき順路は無差別に連結してよいということだろうか?x^2=yを見るのがよいのかもしれない.


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA