Tymon氏のソルブからみる応用手順の有効性

この記事はSpeedcubing Advent Calendar 2023の17日目の記事です.
16日目はさ_もん様の「激ヤバ大会に行ってきた話」でした.
18日目はNoki様の「書いてる暇なんか無いですが……」です.

本記事ではトップスピードキューバーであるTymon Kolasiński氏のソルブデータをもとに応用手順の有効性を統計分析します.具体的には,重回帰分析を用いて各応用手順がタイムにどれだけ寄与するのかを定量的に評価します.

※結果を先に見たい人は「■ 分析 – 結果」にジャンプ

■ 前提

なぜTymon氏か

トップスピードキューバーの中でも特に多種多様な応用手順を高い次元で使いこなしており,その記録の数も豊富だからです.例えば,本記事執筆時点(2023/12)で平均世界記録所持者であるYiheng Wang氏はそもそもZBLLを採用していないためその効果検証には参照できません.また,複数人のキューバーのソルブを扱う場合,平均タイムが異なればそれだけバラつきが増えてしまうという事情もあります.

バイアスは否定できませんが,今回は「むしろTymon氏ひとりに限定した方がわかりやすい」と割り切っての分析となりますのでご了承ください.

応用手順とは

本記事ではX-Cross,Multi-Slotting,ZBLL等のCFOP法でより速くソルブするためのテクニック,手順を「応用手順」と呼称します.X-Cross,Multi-Slottingは応用テクニックなどと呼んだ方が適切かもしれませんが便宜のために統一します.各応用手順の詳細は後述します.

これらは上級者のソルブでよくみられますが,定量的にどれほどのタイム短縮効果があるのかはわかっていません.特にZBLLなどの「追加の手順を覚えるもの」は判別が複雑になるため,本当に効果があるのかさえ曖昧です.

重回帰分析とは

ある結果(目的変数)を説明する際に関連する複数の要因(説明変数)のうち,どの変数がどの程度結果を左右しているのかを関数の形で数値化し両者の関係を表す統計手法のことです.詳細は記事の本筋から外れた内容となるので重回帰分析 – Wikipedia をご参照ください.

代わりに簡単な例を使って説明します.以下の説明は例に合わせた限定的なものであり,一般性・厳密性を欠いていることを断っておきます.また,具体的な計算方法には一切触れていません.
表に4つのソルブのタイムと応用手順の使用の内訳を示しています.

この例では簡単のために応用手順は「X-Cross」「ZBLL」に限定しました.「X-Cross」「ZBLL」の列の1はその応用手順をそのソルブで使用したことを意味し,0は不使用を意味します(名義尺度データとして考慮).
たとえば,Solve ID =1,2は「X-Cross,ZBLLともに不使用 = ふつうのCFOP法」を意味します.当然,ソルブごとにタイムはバラバラなのでこれらもそのようになっています.Solve ID = 3,4のソルブはそれぞれ「X-Crossだけ使用」「ZBLLだけ使用」ということになります.
ここでタイムを目的変数,各応用手順の使用/不使用を説明変数として重回帰分析した結果,得られる関数が以下となります.

難しく見えるかもしれませんが,非常にシンプルです.δは各応用手順の使用/不使用に応じて1/0の値をとるダミー変数です.

まず,δX-Cross=δZBLL=0を考えます.これは「X-Cross,ZBLLともに不使用」のときの平均タイムを意味し,t=9.50secとなります.この数値は確かに表のSolve ID=1,2の平均と一致します.
次にδX-Cross=1,δZBLL=0を考えます.これは「X-Crossだけを使用」の平均タイムを意味し,t=8.00secになります.この数値も表のSolve ID=3の結果と一致します.

このように,重回帰分析では各説明変数の係数をそれぞれの平均と合うように調整しているのです.よって,δX-Crossの係数の「-1.50」は「X-Crossを使用すれば平均的に-1.50secの効果が期待できる」といえることになります.また,ZBLLも同じ理屈で-0.50secの効果があるといえます.これを利用して各応用手順の効果を定量的に評価することができます.

実際はもっと大量のソルブデータを用いることになりますし,それらの中には「X-Cross」「ZBLL」以外の応用手順も含まれます.さらにそれらが入り混じったソルブもあるのでもっと複雑になりますが,やっていることは同じです.「係数がその応用手順のタイム短縮効果を意味する」ということだけわかっていただければそれでOKです.

■ 分析

条件・データについて

  • Tymon氏のソルブのデータはreco.nzに登録されている2019/8/24 – 2023/11/22間の508ソルブを使用します.非公式の結果も含まれることにご留意ください.
  • [DNF]や7.00sec以上のソルブでTymon氏が明らかにミスした(2021-11-28 7.79sec)と思われるソルブは省きました.また[+2]は加算せずにソルブタイムをそのまま採用しました.本記事はあくまで「応用手順の有効性」を評価したいからです.
  • 説明変数として考慮する(Tymon氏が実際に採用している)応用手順を以下にまとめます.なお,応用手順のほかにOLL Skip,PLL Skipも説明変数とします.これらは通常の「C-F-O-P」通りのソルブから外れ,タイムに明らかに影響があるからです.
その他の詳細情報
  • 「EO+ZBLL」は例えば2022-10-06 4.95secを参照してください(厳密にはコーナーピースも意図して調整しているため「Setup」などと呼んだ方が適切かもしれません).手数の多いOLLに対し,代わりに簡単なOLLを用いることが一般的です.
  • Tymon氏はSune,Anti-SuneのZBLLを採用していません.ゆえにEOLSやEOの後にSuneが出現した場合はSune→PLLで処理しています.ただ今回はこの場合についても「EOLS+ZBLL」「EO+ZBLL」としてカウントしています.そもそもSuneのZBLLを採用しない理由はSune自体が短く,回しやすいからです.このことから,EOLSやEOによってSuneを意図的に出現させることにもZBLL並みのタイム短縮効果が期待できると判断しました.
  • 「EO+ZBLL」「EOLS+ZBLL」を一緒くたにして考慮している理由は変数の多重共線性を避けるためでもあります.なお,これらをカウントした場合,「ZBLL」はカウントしません.
  • XXX-Cross,Triple-Slotting,EOLS,COLL,OLLCP,1LLLは使用されたソルブが少ないため,参考程度にみてください.
    サンプルの少ない応用手順は当初は省略する予定でしたが,重回帰分析ではそれらが全体の結果へ与える影響は小さいため,せっかくなので考慮することにしました.
  • COLLは2019年以前のソルブで採用していたようです(2019-08-24 6.37sec).その後はZBLLへ移行しているため,最近のソルブではほとんど使われていません.そういう意味でもあまり参考になる数値とはいえません.
  • OLLCPの内,意図しないもの(「OLL(CP)」と書かれるもの)は通常のOLL,PLLとしてカウントしています.
  • 1LLLは特定のパターンで迷いながら回しているソルブ(2022-10-06 5.84sec)が数個あっただけで,本格採用しているわけではありません.そういう意味でもあまり参考になる数値とはいえません.
  • Pseudo Cross,Pseudo X-CrossはそのままCross,X-Crossとしてカウントしました(これらはKeyholeの要領でAdjust D-Faceを利用してF2Lを効率的にそろえるテクニックです).
  • ここまでで扱った応用手順のいずれにも含まれないものは著者判断でもっとも性質が近い応用手順に分類しています.
  • 見えない応用手順や線引きの難しい応用手順もたくさんあり,完璧に分類できているわけではないことを断っておきます.例えば「ソルブ上は単なるOLLでも,実際はその段階でPLLまで読んでいて事実上の1LLL」などは考慮できませんし,それを1LLLに含めるかもグレーということです.

結果

重回帰分析の結果を以下に示します.

先に説明したように各応用手順(説明変数)の「係数」がタイム短縮効果となります(「CFOP」だけは切片に相当します).また,参考までに「標準誤差」「t値」等も記載していますが,わからない人はスルーしてください.本記事では単純にサンプル数が多い説明変数(表中,黄色でハイライトしたもの)に対し,係数だけを使って考察します(これらは標準誤差も小さいです).

統計・結果に関する細かい注記
  • 決定係数R2は0.24となり,回帰分析としては精度の低いものとなりました.応用手順の効果より,それ以外の要因のバラつきの方が大きいようです(例えば,ふつうのOLL同士でも6手差の手順があることを考えれば納得できる結果です).ただし,これは目的変数(平均タイム)を予測する際の精度の話です.本分析は各説明変数の影響の大きさを評価することが目的なのであまり関係ありません.
  • 重回帰分析において目的変数は正規分布に近い方がよいとされます.タイムは「ゼロ以下になることはない」という性質から右側に裾が長い分布になる懸念がありました.しかし,実際分布を見るとそこまで偏っていませんでした.
       
    念のため,対数変換しての分析も実施しましたが,ほとんど変わらない結果となりました.
  • OLSが-1.08secとやたら大きな数字になっています.そもそもTymon氏は簡単なOLSしか採用しておらず,その性質はOLL Skipに近いです(Sledge hammerでOLL Skipする形が多いです.2022-2-7 4.10sec2021-5-17 3.47sec2021-2-16 3.93sec).ゆえに本来のOLSにここまでのタイム短縮効果はないと思われます.このように簡単なケースだけを採用している応用手順は見かけ上,効果が大きくなってしまうことに注意が必要です.ゆえにサンプル数を重視した背景があります.

考察・所感

以下に分析結果に対する考察・所感を示します.サンプル数の少ない説明変数の考察は省略します.

  • X-Crossの効果は-0.20secとなった.上級者はインスペクションタイム中にCross~F2L #1まで読むことが一般的で,X-Crossはその手順を数手キャンセルしていることが本質になると思う.そういう意味では妥当な数値か.さらに読みが進んだXX-Crossは-0.48secと倍以上の結果となった.
  • Double-Slottingの-0.27secもスロット間の処理を数手キャンセルすることが本質になると思う(上級者は次のスロットの処理まで読んでいるのが一般的).そういう意味では妥当な数値か.
  • EO+ZBLLは+0.06secと本分析においてはほとんど効果がない結果となった.本来,ZBLLはその手数がOLL+PLLより少ないことと,判別が1-Lookで済むことを利用してタイム短縮を図る.しかし,EO+ZBLLはEOの分だけ手数が増え,判別も2-Lookになる.そういう意味では妥当な結果といえる.
    ※一方,本来「手数の長いOLL」を「手数の短いEO」で代替しているため,「手数の長いOLL」によるタイムロスの低減効果があるとも見れる.ただし,これは今回の分析からは判断できない.
  • ZBLLの-0.28secはやはりOLL+PLLからの手数の低減効果と,判別が1-Lookで済むことが有効らしい.Tymon氏は判別にHarris/Baum systemを採用している.固有の判別の難しさと余計なAUFが発生するが,それでも有効といえそう.
  • PLL Skipの-1.18secは通常のソルブで同ステップにかかる時間を考えると妥当な数値だと思う.一方,上で考察した応用手順のタイム短縮効果(いずれも0.10secオーダー)より効果がはるかに大きい.「小手先の応用手順より運の方が大きく影響する」というスピードキューブらしい残酷な結果ともいえる.

■ あとがき

これまで本当に効果があるのかどうかが曖昧だった各種応用手順をこうして定量的に評価できたとは意義的だったと思っています.実際,多くの応用手順でタイム短縮効果が確認できましたが,一方でその効果は0.10秒オーダーという「わかっていたけど,残酷な事実」を再認識できました.

この分析手法自体は去年から思いついていたのですが,当時はまだ統計に関する知識が浅かったり,「サンプルをどう選定するか」で悩んだりしていました.冒頭でも述べた通り,今回は「Tymon氏だけの方がわかりやすい」と割り切り,結果も直観にあうものが得られたので公開に至りました.あくまでこれは最初の試みにすぎず,今後さらなる改善・一般化を図るつもりです.

最後に注意です.上記の通り,本記事の結果はあくまで限られたサンプルから得た統計的な結果であり,解釈を誤ったり,絶対視したりするのは危険です.例えば「ZBLLを覚えれば”必ず”タイムが0.28sec短くなる」わけではありません.日々平均タイムとにらめっこしている皆さんならこの辺のリテラシーは大丈夫だと思いますが,念のための注意となります.

■ おまけ

Tymon氏の各種応用手順の使用率

本分析で扱った508ソルブ中の各応用手順の使用率.

  • X-CrossはXX-Cross,XXX-Crossも含みます.
  • Standard CFOPは「応用手順を一切使わない標準的なCFOP」を意味します.

Tymon氏によるロマンあふれるソルブの紹介

WordPress.com Blog.

WordPress.com で次のようなサイトをデザイン
始めてみよう