Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Rubik Cube And Group Theory
Search
USAMI Kosuke
October 03, 2020
Science
1
3.4k
Rubik Cube And Group Theory
※ Docswell に移行しました
https://www.docswell.com/s/usami-k/5XYV62-rubik-cube-and-group-theory
USAMI Kosuke
October 03, 2020
Tweet
Share
More Decks by USAMI Kosuke
See All by USAMI Kosuke
Onsager代数とその周辺 / Onsager algebra tsudoi
usamik26
0
650
Apple HIG 正式名称クイズ結果発表 / HIG Quiz Result
usamik26
0
190
ゆめみ大技林製作委員会の立ち上げの話 / daigirin project
usamik26
0
340
@ViewLoadingプロパティラッパの紹介と自前で実装する方法 / @ViewLoading property wrapper implementation
usamik26
0
490
これからUICollectionViewを実践活用する人のためのガイド / Guide to UICollectionView
usamik26
1
760
Xcodeとの最近の付き合い方のはなし / Approach To Xcode
usamik26
2
680
UICollectionView Compositional Layout
usamik26
0
800
Coding Swift with Visual Studio Code and Docker
usamik26
0
520
Swift Extension for Visual Studio Code
usamik26
2
1.1k
Other Decks in Science
See All in Science
生成AIと学ぶPythonデータ分析再入門-Pythonによるクラスタリング・可視化をサクサク実施-
datascientistsociety
PRO
4
1.8k
データから見る勝敗の法則 / The principle of victory discovered by science (open lecture in NSSU)
konakalab
1
140
地表面抽出の方法であるSMRFについて紹介
kentaitakura
1
860
科学で迫る勝敗の法則(電気学会・SICE若手セミナー講演 2024年12月) / The principle of victory discovered by science (Lecture for young academists in IEEJ-SICE))
konakalab
0
130
地質研究者が苦労しながら運用する情報公開システムの実例
naito2000
0
250
CV_3_Keypoints
hachama
0
200
高校生就活へのDA導入の提案
shunyanoda
0
5.9k
Celebrate UTIG: Staff and Student Awards 2025
utig
0
150
My Favourite Book in 2024: Get Rid of Your Japanese Accent
lagenorhynque
1
110
点群ライブラリPDALをGoogleColabにて実行する方法の紹介
kentaitakura
1
380
オンプレミス環境にKubernetesを構築する
koukimiura
0
340
ランサムウェア対策にも考慮したVMware、Hyper-V、Azure、AWS間のリアルタイムレプリケーション「Zerto」を徹底解説
climbteam
0
110
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.5k
Art, The Web, and Tiny UX
lynnandtonic
302
21k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.5k
Documentation Writing (for coders)
carmenintech
73
5k
Rails Girls Zürich Keynote
gr2m
95
14k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Visualization
eitanlees
147
16k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
507
140k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
51
5.6k
Transcript
1/22 ルービックキューブと群論 宇佐見 公輔 2020 年 10 月 3 日
宇佐見 公輔 ルービックキューブと群論
2/22 自己紹介 職業:プログラマ / 趣味:数学 最近の活動(登壇・ブログ・Twitter) : 平面の敷き詰めとルート系(2020 年 6
月 / 日曜数学会) 四元数のはなし(2020 年 5 月 / 関西日曜数学友の会) はじめて学ぶリー環 ノート(2020 年 4 月〜 / Twitter) Ising 模型 ノート(2020 年 3 月〜4 月 / Twitter) Onsager 代数の話(2020 年 3 月 / 京都某所) はじめて学ぶリー群 ノート(2020 年 1 月〜3 月 / Twitter) 宇佐見 公輔 ルービックキューブと群論
3/22 今日の話 今日はルービックキューブの話です。過去の発表内容とは特に関 係ありません。 ルービックキューブを数学的に考えるにはどうするのかという話 と、SageMath での計算の紹介になります。 宇佐見 公輔 ルービックキューブと群論
4/22 ルービックキューブ 3 × 3 × 3 が普通ですが、2 × 2
× 2 など別サイズもあります。 宇佐見 公輔 ルービックキューブと群論
5/22 ルービックキューブの数学的な解析 ルービックキューブに対する興味の持ち方は様々です。 6 面完成させる解法は? スピードキューブ(完成までの時間を競う) キューブの機構はどうなっているのか? ここでは、ルービックキューブパズルを数学的に解析することを 考えます。ルービックキューブは、群論の言葉を用いて記述する ことが可能です。
宇佐見 公輔 ルービックキューブと群論
6/22 考察にあたっての前提 3 次元空間の中でキューブの位置や向きを固定して考えます。 キューブそのものを回転させることは考えません。 キューブの操作は、各面を時計回りまたは反時計回りに 90 度ずつ 動かすことを考えます。真ん中の列を回転させることはしません。 宇佐見
公輔 ルービックキューブと群論
7/22 小方体(cubelet) 小方体:キューブを構成する小立方体。中心を除いて 26 個。 1 面体:1 つの面が外側に見えている小方体。6 個。 2
面体:2 つの面が外側に見えている小方体。12 個。 3 面体:3 つの面が外側に見えている小方体。8 個。 先ほどの前提から、1 面体は動きません。2 面体と 3 面体がキュー ブの操作によって移動します。 宇佐見 公輔 ルービックキューブと群論
8/22 小面(facet) キューブの各面を構成する正方形を小面と呼びます。各面で中央 を除いて 8 個、全体で 48 個あります。 +--------------+ |
1 2 3 | | 4 top 5 | | 6 7 8 | +------------+--------------+-------------+------------+ | 9 10 11 | 17 18 19 | 25 26 27 | 33 34 35 | | 12 left 13 | 20 front 21 | 28 right 29 | 36 rear 37 | | 14 15 16 | 22 23 24 | 30 31 32 | 38 39 40 | +------------+--------------+-------------+------------+ | 41 42 43 | | 44 bottom 45 | | 46 47 48 | +--------------+ 番号づけの規則は何でもよいです。上図は SageMath の出力です。 宇佐見 公輔 ルービックキューブと群論
9/22 小面のシングマスター記法 番号づけの代わりに、シングマスター記法という方法もあります。 上下左右前後の各面に u, d, l, r, f ,
b を割り当てる 2 面体上の小面:xy 形式 x は小面を含む面 y は隣接する面 3 面体上の小面:xyz 形式 x は小面を含む面 y と z は隣接する面 例:下図の 7 は uf、18 は fu、6 は ufl、17 は flu と書けます。 +--------------+ | 1 2 3 | | 4 top 5 | | 6 7 8 | +------------+--------------+-------------+------------+ | 9 10 11 | 17 18 19 | 25 26 27 | 33 34 35 | | 12 left 13 | 20 front 21 | 28 right 29 | 36 rear 37 | | 14 15 16 | 22 23 24 | 30 31 32 | 38 39 40 | +------------+--------------+-------------+------------+ | 41 42 43 | | 44 bottom 45 | | 46 47 48 | +--------------+ 宇佐見 公輔 ルービックキューブと群論
10/22 キューブ操作のシングマスター記法 各面を時計回りに 90 度回転する操作を U, D, L, R, F,
B と書くこ とにします。 宇佐見 公輔 ルービックキューブと群論
11/22 キューブ操作と置換 X を小面 48 個の集合とします。キューブ操作は、X の置換写像で あると考えることができます。 例えば操作 R
は、以下のような置換です。小面を 20 個動かしま す。4 個の元の巡回置換が 5 つ起こります。 rf ↦→ ru ↦→ rb ↦→ rd ↦→ rf ruf ↦→ rub ↦→ rbd ↦→ rdf ↦→ ruf fr ↦→ ur ↦→ br ↦→ dr ↦→ fr fur ↦→ ubr ↦→ bdr ↦→ dfr ↦→ fur fdr ↦→ ufr ↦→ bur ↦→ dbr ↦→ fdr 宇佐見 公輔 ルービックキューブと群論
12/22 キューブ操作と置換 (2) もうひとつ例を見ます。R を 2 回行った R2 は、以下のような置換 です。2
個の元の互換が 10 個起こります。 rf ↦→ rb ↦→ rf ru ↦→ rd ↦→ ru ruf ↦→ rbd ↦→ ruf rub ↦→ rdf ↦→ rub fr ↦→ br ↦→ fr ur ↦→ dr ↦→ ur fur ↦→ bdr ↦→ fur ubr ↦→ dfr ↦→ ubr fdr ↦→ bur ↦→ fdr ufr ↦→ dbr ↦→ ufr 宇佐見 公輔 ルービックキューブと群論
13/22 対称群 集合 X の置換全体の集合 SX は群になります。これを X の対称群 と呼びます。
SX := {f : X → X | fは全単射} キューブ操作(の組み合わせ)は、小面集合 X の対称群に含まれ ます。 宇佐見 公輔 ルービックキューブと群論
14/22 ルービックキューブ群 小面集合 X の対称群 SX の中にはキューブ操作の組み合わせだけ では実現できないものもあります。 例えば、3 面体のひとつをルービックキューブから取り外して、小
面のうち 2 つの色を逆に貼り替えてからルービックキューブに戻 す、ということをします。これは小面集合 X の置換にはなってい ますが、キューブ操作だけでは元の配置に戻すことができません。 基本操作 U, D, L, R, F, B で生成される SX の部分群 G を、ルー ビックキューブ群と呼びます。 G := U, D, L, R, F, B ⊂ SX 宇佐見 公輔 ルービックキューブと群論
15/22 SageMath SageMath は数学関連のソフトウェアを統合したものです。 SageMath には、ルービックキューブ群を扱うプログラムが最初 から組み込まれています。 宇佐見 公輔 ルービックキューブと群論
16/22 ルービックキューブ群を SageMath で扱う sage : rubik = CubeGroup (
) sage : rubik . plot_cube ( " " ) sage : rubik . plot3d_cube ( " " ) 宇佐見 公輔 ルービックキューブと群論
17/22 ルービックキューブ群を SageMath で扱う (2) sage : rubik = CubeGroup
( ) sage : rubik . plot_cube ( "R" ) sage : rubik . plot_cube ( "R∗U" ) 宇佐見 公輔 ルービックキューブと群論
18/22 SageMath とシングマスター記法 sage : rubik = CubeGroup ( )
sage : rubik . display2d ( " " ) +--------------+ | 1 2 3 | | 4 top 5 | | 6 7 8 | +------------+--------------+-------------+------------+ | 9 10 11 | 17 18 19 | 25 26 27 | 33 34 35 | | 12 left 13 | 20 front 21 | 28 right 29 | 36 rear 37 | | 14 15 16 | 22 23 24 | 30 31 32 | 38 39 40 | +------------+--------------+-------------+------------+ | 41 42 43 | | 44 bottom 45 | | 46 47 48 | +--------------+ sage : from sage . groups . perm_gps . cubegroup import ∗ sage : index2singmaster (17) ’ flu ’ 宇佐見 公輔 ルービックキューブと群論
19/22 ルービックキューブ群の位数 ルービックキューブ群は定義から有限群ですが、その大きさがど れくらいなのか見てみます。 sage : rubik = CubeGroup (
) sage : rubik . order ( ) 43252003274489856000 sage : rubik . order ( ) . f a c t o r ( ) 2^27 ∗ 3^14 ∗ 5^3 ∗ 7^2 ∗ 11 宇佐見 公輔 ルービックキューブと群論
20/22 元の位数 ルービックキューブ群の元の位数(gm = 1 を満たす最小の m)も 見てみましょう。 操作 R
は 4 回行えば元に戻ります。 sage : R = rubik . move( "R" ) [ 0 ] sage : R. order ( ) 4 ルービックキューブ群には位数 1260 の元があります。そのひとつ が RU2D−1BD−1 です。これより大きい位数の元はありません。 sage : J = rubik . move( "R∗U^2∗D^−1∗B∗D^−1" ) [ 0 ] sage : J . order ( ) 1260 宇佐見 公輔 ルービックキューブと群論
21/22 その他の豆知識 どんな配置でも 20 手以内で 6 面完成できることが知られて います(ただし、180 度回転も 1
手とみなして数えた場合。 180 度回転を 2 手とするときは 26 手となる) 。 ルービックキューブ群は単純群ではありません(非自明な正 規部分群を持つ) 。 分解の例:G (Z7 3 × Z11 2 ) ((A8 × A12 ) Z2 ) 宇佐見 公輔 ルービックキューブと群論
22/22 まとめ・参考文献 ルービックキューブ群は群論の題材として(ちょっと大きいです が)良いものだと思います。また、SageMath を使うといろいろ 遊べるのも良いと思います。 参考文献: David Joyner、群論の味わい −置換群で解き明かすルービッ
クキューブと 15 パズル− 島内剛一、ルービック・キューブと数学パズル 宇佐見 公輔 ルービックキューブと群論