---
title: ルービックキューブをコンピュータで解く考え方
tags:  #日曜数学会 #数学  
author: [USAMI Kosuke](https://www.docswell.com/user/usami-k)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/V7P2MGQV78.jpg?width=480
description: 第32回日曜数学会 - 2025/2/16(日) 14:00開始 - ニコニコ生放送 https://live.nicovideo.jp/watch/lv347018985  ルービックキューブを解く考え方を群論の言葉で話してみました #日曜数学会 - usami-k 数学日記 https://usami-k.hatenadiary.jp/entry/2025/02/16/193725
published: February 16, 25
canonical: https://www.docswell.com/s/usami-k/K9V2X7-group-theory-solve-rubiks
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/V7P2MGQV78.jpg)

ルービックキューブを
コンピュータで解く考え方
宇佐見公輔
2025-02-16 / 第 32 回日曜数学会


# Page. 2

![Page Image](https://bcdn.docswell.com/page/2JVD965RJQ.jpg)

自己紹介
• 宇佐見公輔（うさみこうすけ）
• 本業はプログラマー
近況
月刊 I/O に記事をいくつか書きました
• 8〜9 月号 : ルービックキューブの解法
• 10 月号 : パズルキューブ スクエア 1
• 12 月号 : 組版ソフトウェア Typst
1 / 21


# Page. 3

![Page Image](https://bcdn.docswell.com/page/5EGYZN66EL.jpg)

今回の話
ルービックキューブの解法はコンピュータ計算で求めることが可能で
す。その考え方を、群論の言葉を使って説明します。
ルービックキューブを理解するためにわざわざ群論の言葉を使う必要
はないのですが、使うとシンプルにとらえることができます。
余談
実は以前、ルービックキューブと群論の話をしました。
• ルービックキューブと群論
‣（第 7 回関西日曜数学友の会 / 2020-10-03）
• ルービックキューブ群を SageMath で見る
‣（第 19 回日曜数学会 / 2020-10-31）
2 / 21


# Page. 4

![Page Image](https://bcdn.docswell.com/page/4JQMLQ427P.jpg)

ルービックキューブ群


# Page. 5

![Page Image](https://bcdn.docswell.com/page/K74VDNQPJ1.jpg)

ルービックキューブ
今回は標準的な 3x3x3 のルービック
キューブを扱います。
ルービックキューブを解くとは、各面の色
がバラバラになっている状態から、面を回
転させる操作によって、完成状態（各面が
1 色）にすることです。
ルービックキューブ群
4 / 21


# Page. 6

![Page Image](https://bcdn.docswell.com/page/LJ13Z5PX7G.jpg)

基本操作
𝑈 / 𝐷 / 𝐹 / 𝐵 / 𝑅 / 𝐿 : 各面を時計回りに 90 度回転
（図は https://tribox.com/3x3x3/solution/notation/ より引用）
ルービックキューブ群
5 / 21


# Page. 7

![Page Image](https://bcdn.docswell.com/page/GJWP952K72.jpg)

ルービックキューブ群
基本操作で生成される置換群を、ルービックキューブ群と呼びます。
𝐺 = ⟨𝑈, 𝐷, 𝐹, 𝐵, 𝑅, 𝐿⟩
• 単位元 1 : 完成状態
• 𝑅 : 完成状態から右面を時計回りに 90 度回転
• 𝑈𝑅 : 右面を 90 度回転、さらに上面を 90 度回転
補足
記法の都合上、右から順に操作を適用することにしておきます。
ルービックキューブ群
6 / 21


# Page. 8

![Page Image](https://bcdn.docswell.com/page/4EZK9NDNE3.jpg)

ルービックキューブの解法


# Page. 9

![Page Image](https://bcdn.docswell.com/page/Y76QK8197V.jpg)

主な解法
コーナー・エッジ法
• まずコーナーだけ揃え、次にエッジを揃える
• 数学的な理屈として自然な発想
LBL（Layer by Layer）法
• 1 段目、2 段目、3 段目の順に揃える
• 初心者向けの手順が整備されている
CFOP 法
• Cross、F2L、OLL、PLL の 4 段階で揃える
• スピード競技向けにパターン化されている
ルービックキューブの解法
8 / 21


# Page. 10

![Page Image](https://bcdn.docswell.com/page/G75RP94DE4.jpg)

CFOP 法
Cross
F2L (First 2 Layers)
OLL (Orientation of the Last
Layer)
PLL (Permutation of the Last
Layer)
ルービックキューブの解法
9 / 21


# Page. 11

![Page Image](https://bcdn.docswell.com/page/9J2D62LMJR.jpg)

共通する考え方
• まず、一部分を完成状態にする
• 次に、完成部分を崩さずに、他の部分を完成状態にする
• これを何段階かにわけて行う
補足
•「完成部分を崩さずに」
‣ 一時的には崩れても、あとで元に戻るような手順を使う
•「何段階かにわけて」
‣ たとえば CFOP 法なら 4 段階にわけている
ルービックキューブの解法
10 / 21


# Page. 12

![Page Image](https://bcdn.docswell.com/page/DEY29YQPEM.jpg)

解法を群論の言葉で


# Page. 13

![Page Image](https://bcdn.docswell.com/page/VJN8LPKM78.jpg)

部分群で考える
• 解法の考え方「完成部分を崩さずに」
↓
• 完成部分を崩さない操作手順だけを使う
↓
• 完成部分を崩さない操作がなす部分群で考える
解法を群論の言葉で
12 / 21


# Page. 14

![Page Image](https://bcdn.docswell.com/page/YE9K43VWE3.jpg)

部分群の系列を考える
• 解法の考え方「何段階かにわけて」
↓
• 部分群の系列を考える
𝐺 = 𝐺 0 ⊃ 𝐺 1 ⊃ 𝐺 2 ⊃ … ⊃ 𝐺 𝑛 = {1}
解法を群論の言葉で
13 / 21


# Page. 15

![Page Image](https://bcdn.docswell.com/page/GE8RQMPRJD.jpg)

剰余類を使う
𝐺 = 𝐺 0 ⊃ 𝐺 1 ⊃ 𝐺 2 ⊃ … ⊃ 𝐺 𝑛 = {1}
𝐺 𝑘 から 𝐺 𝑘+1 への移行は、左剰余集合 𝐺 𝑘 /𝐺 𝑘+1 を考えます。
• 𝑔𝑘 ∈ 𝐺 𝑘 を含む左剰余類 𝑥𝐺 𝑘+1 をとる
• 𝑔𝑘+1 ≔ 𝑥−1 𝑔𝑘 とすると、𝑔𝑘+1 ∈ 𝐺 𝑘+1 となる
解法を群論の言葉で
14 / 21


# Page. 16

![Page Image](https://bcdn.docswell.com/page/LELKX312JR.jpg)

CFOP 法を群論の言葉で
𝐺 = 𝐺 0 ⊃ 𝐺 1 ⊃ 𝐺 2 ⊃ 𝐺 3 ⊃ 𝐺 4 = {1}
• 𝐺 1 : Cross を崩さない操作がなす部分群
• 𝐺 2 : F2L を崩さない操作がなす部分群
• 𝐺 3 : OLL を崩さない操作がなす部分群
• 𝐺 4 : PLL を崩さない操作がなす部分群（完成状態のみ）
• Cross を揃える : 𝐺 から 𝐺 1 へ（𝐺/𝐺 1 の元を探す）
• F2L を揃える : 𝐺 1 から 𝐺 2 へ（𝐺 1 /𝐺 2 の元を探す）
• OLL を揃える : 𝐺 2 から 𝐺 3 へ（𝐺 2 /𝐺 3 の元を探す）
• PLL を揃える : 𝐺 3 から 𝐺 4 へ（𝐺 3 /𝐺 4 ≃ 𝐺 3 の元を探す）
解法を群論の言葉で
15 / 21


# Page. 17

![Page Image](https://bcdn.docswell.com/page/4JM2LDW9JW.jpg)

コンピュータで解く考え方


# Page. 18

![Page Image](https://bcdn.docswell.com/page/PJRMK4Y9E9.jpg)

部分群の系列を考える
人間が解くための解法では、それぞれの段階の完成状態が認識しやす
いものでないと困ります。 （Cross 状態、F2L 状態、など）
しかし、コンピュータで解く場合はそのような制約はなく、自由に部
分群の系列を考えることができます。
補足
剰余類を使うので、単なる部分集合でなく部分群を考えます。
コンピュータで解く考え方
17 / 21


# Page. 19

![Page Image](https://bcdn.docswell.com/page/PEXVL2G37X.jpg)

コシエンバ法（Two Phase Algorithm）
𝐺 = 𝐺 0 ⊃ 𝐺 1 ⊃ 𝐺 2 = {1}
𝐺 1 ≔ ⟨𝑈, 𝐷, 𝐹 2 , 𝐵2 , 𝑅2 , 𝐿2 ⟩
• 𝐺/𝐺 1 の元を探す
• 𝐺 1 /𝐺 2 ≃ 𝐺 1 の元を探す
𝐺 1 は次のような特徴があります。
• 各ピースの向きを変えない
• U 面や D 面を側面に移動できない
（https://kociemba.org/twophase.htm に解説があります）
コンピュータで解く考え方
18 / 21


# Page. 20

![Page Image](https://bcdn.docswell.com/page/3EKQLM4NED.jpg)

コシエンバ法の手数
• 𝐺/𝐺 1 の剰余類の代表元は、高々 12 手である
• 𝐺 1 の元は、高々 18 手である
• この 2 つの群の元を探すことで、高々 29 手で解く手順が見つかる
手数が少なめで、それぞれの元の探索は、アルゴリズムの工夫により
実用的な時間で行えます。 （今回はこのあたりの話は省略）
コンピュータで解く考え方
19 / 21


# Page. 21

![Page Image](https://bcdn.docswell.com/page/L73P3YLZE5.jpg)

まとめ


# Page. 22

![Page Image](https://bcdn.docswell.com/page/87DL45N4EG.jpg)

群論の言葉は便利
• ルービックキューブの解法は、群論の言葉を使って説明できる
• 必要な知識は、部分群や剰余類といった基本的なものだけ
まとめ
21 / 21


