祝!1周年!
ルービックキューブ交流会 @ LODGE
2017年6月18日 (日)
寺田 晃太朗
― ルービックキューブ交流会 @ LODGE LT ―
Jun. 18th, 2017 2ルービックキューブ交流会 @ LODGE / K. Terada
そんな名前の人知らない......
Jun. 18th, 2017 3ルービックキューブ交流会 @ LODGE / K. Terada
Who am I ?
寺田 晃太朗 (1991年生まれ)
• WCA ID: 2010TERA01
• WCAサイト/規約の日本語翻訳とか
• ピラミンクスオープン運営メンバー
• 普段は大学で研究しています
2014年頃~
• tribox システム関係のお仕事
https://store.tribox.com/
Jun. 18th, 2017 4ルービックキューブ交流会 @ LODGE / K. Terada
What is “tribox Contest” ?
Jun. 18th, 2017 5ルービックキューブ交流会 @ LODGE / K. Terada
What is “tribox Contest” ?
「triboxコンテストは、誰でも参加可能。
毎週開催の “お得な” ネットコンテストです。」
Jun. 18th, 2017 6ルービックキューブ交流会 @ LODGE / K. Terada
“tribox Contest” Anniversary!
• 2016年7月 開始
• ユーザー数は 668人 (6月17日時点)
• おかげさまで今月末で1周年!
今日は少し技術 (コンピュータ) よりの話をします!
Jun. 18th, 2017 7ルービックキューブ交流会 @ LODGE / K. Terada
“tribox Contest” の内側
• 馴染みやすいテーマをピックアップしました
• tribox Contest 向けに工夫したポイント等を
なるべくわかりやすく紹介します
• 宇宙語は可能な限り使わない努力をします
Jun. 18th, 2017 8ルービックキューブ交流会 @ LODGE / K. Terada
今日話すこと
(1) スクランブル生成システム
(2) FMC採点システム
• 馴染みやすいテーマをピックアップしました
• tribox Contest 向けに工夫したポイント等を
なるべくわかりやすく紹介します
• 宇宙語は可能な限り使わない努力をします
Jun. 18th, 2017 9ルービックキューブ交流会 @ LODGE / K. Terada
今日話すこと
(1) スクランブル生成システム
(2) FMC採点システム
Jun. 18th, 2017 10ルービックキューブ交流会 @ LODGE / K. Terada
(1) スクランブル生成システム
そもそもスクランブルって?
厳密には スクランブル文字列 (scramble sequence) という
↑ これ
どうやってスクランブルする?
3x3x3 の場合...
• 完全ランダムな解を生成可能
• スクランブルに適した手数・時間
で解けるソルバが必要 (難しい!!)
• 実装が簡単
• どんなパズルでもOK
• ランダム性に劣る
Jun. 18th, 2017 11ルービックキューブ交流会 @ LODGE / K. Terada
(1) スクランブル生成システム
for i in range(30):
ランダムな面の回転
ランダム状態Sの生成 (1/4300京を選ぶ)
Sから完成状態までの手順を求める
A: ランダム回転操作 B: ランダム状態生成
Jun. 18th, 2017 12ルービックキューブ交流会 @ LODGE / K. Terada
(1) スクランブル生成システム
TNoodle
– WCA公式スクランブルアプリケーション
https://www.worldcubeassociation.org/regulations/scrambles/
A: ランダム回転操作 B: ランダム状態生成
5x5x5 以上
Megaminx
3x3x3
Kociemba’s
Two-phase Algorithm
4x4x4
TPR Solver
Square-1
sq12phase
Pyraminx, Skewb, 2x2x2
全部試す!(枝刈り探索)
Jun. 18th, 2017 13ルービックキューブ交流会 @ LODGE / K. Terada
(1) スクランブル生成システム
TNoodle
– 本来 Web アプリケーション
 コマンドラインから利用する方法を活用
– TNoodleをAPI的に使う
http://www.terabo.net/blog/tnoodle-api/
• 馴染みやすいテーマをピックアップしました
• tribox Contest 向けに工夫したポイント等を
なるべくわかりやすく紹介します
• 宇宙語は可能な限り使わない努力をします
Jun. 18th, 2017 14ルービックキューブ交流会 @ LODGE / K. Terada
今日話すこと
(1) スクランブル生成システム
(2) FMC採点システム
• オンラインコンテストでFMC採点
• 人間は採点をさぼりたい......
• 採点システムを作った
[スクランブル]
R2 B' U2 L2 B R2 B2 D2 R2 B R' D2 B' D F D L B2 D' U2
[解答]
L' D R D' L F D2 F' D R' B2 L' B' F2 R B L2 F' R2
[スクランブル] + [解答]  完成状態 ⇒ 正解
• 回転記号入力から完成状態判定プログラム開発
– Sarumawashi
https://github.com/kotarot/Sarumawashi
Jun. 18th, 2017 15ルービックキューブ交流会 @ LODGE / K. Terada
(2) FMC採点システム
Jun. 18th, 2017 16ルービックキューブ交流会 @ LODGE / K. Terada
(2) FMC採点システム
厄介な問題点
• FMCが受け付ける記号の種類が多すぎる!
• 特に全体回転は (プログラム上) 扱いにくい!



Jun. 18th, 2017 17ルービックキューブ交流会 @ LODGE / K. Terada
(2) FMC採点システム
工夫ポイント
{R, L, U, D, F, B} のみで表せばよい
アルゴリズム (入力例でフローを示す)
ステップ 手順
入力 Rw2 y [f] B’
[*] の置換 Rw2 y z B’
2層回し  1層回し + 全体回転 L2 x2 y z B’
全体回転を繰り返し削除する L2 x2 y’ z’ F’
L2 y’ x’ L’
(略)......
出力 L

ここまでで
{R, L, U, D, F, B,
x, y, z}だけで表現
Jun. 18th, 2017 18ルービックキューブ交流会 @ LODGE / K. Terada
(2) FMC採点システム
• 手数カウントはライブラリがある!
– alg (npm)
– 開発者: Lucas Garron
– https://www.npmjs.com/package/alg
• まとめると
(i) 解答の手数をカウントする
(ii) 解答の手順変換
(iii) [スクランブル]+[変換済解答] の完成状態チェック
var alg = require(‘alg’);
alg.cube.countMoves(“R U R’ U R U2 R’”, {metric: ‘obtm’});
// 7
Jun. 18th, 2017 19ルービックキューブ交流会 @ LODGE / K. Terada
“tribox Contest” is improving
Jun. 18th, 2017 20ルービックキューブ交流会 @ LODGE / K. Terada
“tribox Contest” is improving
いろいろな課題
• トップページがださい
• トップページ一見してなんのサービスか全然わからない
• ローディングが遅い
• タイマーの挙動がときどき変
• その他いろいろ......
tribox Contest はオープンソースです!
• https://github.com/tribox/tribox-contest
• Play Framework (Scala) と Firebase (javascript / node.js)
• 興味もってくれた方はのぞいてくれると嬉しいです!
(PRも大歓迎です!)
Jun. 18th, 2017 21ルービックキューブ交流会 @ LODGE / K. Terada
“tribox Contest” is improving ?
Jun. 18th, 2017 22ルービックキューブ交流会 @ LODGE / K. Terada
“tribox Contest” is improving ?
Jun. 18th, 2017 23ルービックキューブ交流会 @ LODGE / K. Terada
“tribox Contest” is NOW improving
ということで、
2017年後半期 (7月2日スタート) から
tribox Contest にピラミンクス追加します!!
いや待ちきれないでしょ、
本日21時スタート 2017年前半期25節 から
ピラミンクス追加します!!
※ただし今期の間は総合順位が
つかないオープン戦になります
Enjoy Pyraminx✌

2017-06-18 tribox Contest 祝!1周年!

  • 1.
    祝!1周年! ルービックキューブ交流会 @ LODGE 2017年6月18日(日) 寺田 晃太朗 ― ルービックキューブ交流会 @ LODGE LT ―
  • 2.
    Jun. 18th, 20172ルービックキューブ交流会 @ LODGE / K. Terada そんな名前の人知らない......
  • 3.
    Jun. 18th, 20173ルービックキューブ交流会 @ LODGE / K. Terada Who am I ? 寺田 晃太朗 (1991年生まれ) • WCA ID: 2010TERA01 • WCAサイト/規約の日本語翻訳とか • ピラミンクスオープン運営メンバー • 普段は大学で研究しています 2014年頃~ • tribox システム関係のお仕事 https://store.tribox.com/
  • 4.
    Jun. 18th, 20174ルービックキューブ交流会 @ LODGE / K. Terada What is “tribox Contest” ?
  • 5.
    Jun. 18th, 20175ルービックキューブ交流会 @ LODGE / K. Terada What is “tribox Contest” ? 「triboxコンテストは、誰でも参加可能。 毎週開催の “お得な” ネットコンテストです。」
  • 6.
    Jun. 18th, 20176ルービックキューブ交流会 @ LODGE / K. Terada “tribox Contest” Anniversary! • 2016年7月 開始 • ユーザー数は 668人 (6月17日時点) • おかげさまで今月末で1周年! 今日は少し技術 (コンピュータ) よりの話をします!
  • 7.
    Jun. 18th, 20177ルービックキューブ交流会 @ LODGE / K. Terada “tribox Contest” の内側
  • 8.
    • 馴染みやすいテーマをピックアップしました • triboxContest 向けに工夫したポイント等を なるべくわかりやすく紹介します • 宇宙語は可能な限り使わない努力をします Jun. 18th, 2017 8ルービックキューブ交流会 @ LODGE / K. Terada 今日話すこと (1) スクランブル生成システム (2) FMC採点システム
  • 9.
    • 馴染みやすいテーマをピックアップしました • triboxContest 向けに工夫したポイント等を なるべくわかりやすく紹介します • 宇宙語は可能な限り使わない努力をします Jun. 18th, 2017 9ルービックキューブ交流会 @ LODGE / K. Terada 今日話すこと (1) スクランブル生成システム (2) FMC採点システム
  • 10.
    Jun. 18th, 201710ルービックキューブ交流会 @ LODGE / K. Terada (1) スクランブル生成システム そもそもスクランブルって? 厳密には スクランブル文字列 (scramble sequence) という ↑ これ
  • 11.
    どうやってスクランブルする? 3x3x3 の場合... • 完全ランダムな解を生成可能 •スクランブルに適した手数・時間 で解けるソルバが必要 (難しい!!) • 実装が簡単 • どんなパズルでもOK • ランダム性に劣る Jun. 18th, 2017 11ルービックキューブ交流会 @ LODGE / K. Terada (1) スクランブル生成システム for i in range(30): ランダムな面の回転 ランダム状態Sの生成 (1/4300京を選ぶ) Sから完成状態までの手順を求める A: ランダム回転操作 B: ランダム状態生成
  • 12.
    Jun. 18th, 201712ルービックキューブ交流会 @ LODGE / K. Terada (1) スクランブル生成システム TNoodle – WCA公式スクランブルアプリケーション https://www.worldcubeassociation.org/regulations/scrambles/ A: ランダム回転操作 B: ランダム状態生成 5x5x5 以上 Megaminx 3x3x3 Kociemba’s Two-phase Algorithm 4x4x4 TPR Solver Square-1 sq12phase Pyraminx, Skewb, 2x2x2 全部試す!(枝刈り探索)
  • 13.
    Jun. 18th, 201713ルービックキューブ交流会 @ LODGE / K. Terada (1) スクランブル生成システム TNoodle – 本来 Web アプリケーション  コマンドラインから利用する方法を活用 – TNoodleをAPI的に使う http://www.terabo.net/blog/tnoodle-api/
  • 14.
    • 馴染みやすいテーマをピックアップしました • triboxContest 向けに工夫したポイント等を なるべくわかりやすく紹介します • 宇宙語は可能な限り使わない努力をします Jun. 18th, 2017 14ルービックキューブ交流会 @ LODGE / K. Terada 今日話すこと (1) スクランブル生成システム (2) FMC採点システム
  • 15.
    • オンラインコンテストでFMC採点 • 人間は採点をさぼりたい...... •採点システムを作った [スクランブル] R2 B' U2 L2 B R2 B2 D2 R2 B R' D2 B' D F D L B2 D' U2 [解答] L' D R D' L F D2 F' D R' B2 L' B' F2 R B L2 F' R2 [スクランブル] + [解答]  完成状態 ⇒ 正解 • 回転記号入力から完成状態判定プログラム開発 – Sarumawashi https://github.com/kotarot/Sarumawashi Jun. 18th, 2017 15ルービックキューブ交流会 @ LODGE / K. Terada (2) FMC採点システム
  • 16.
    Jun. 18th, 201716ルービックキューブ交流会 @ LODGE / K. Terada (2) FMC採点システム 厄介な問題点 • FMCが受け付ける記号の種類が多すぎる! • 特に全体回転は (プログラム上) 扱いにくい!   
  • 17.
    Jun. 18th, 201717ルービックキューブ交流会 @ LODGE / K. Terada (2) FMC採点システム 工夫ポイント {R, L, U, D, F, B} のみで表せばよい アルゴリズム (入力例でフローを示す) ステップ 手順 入力 Rw2 y [f] B’ [*] の置換 Rw2 y z B’ 2層回し  1層回し + 全体回転 L2 x2 y z B’ 全体回転を繰り返し削除する L2 x2 y’ z’ F’ L2 y’ x’ L’ (略)...... 出力 L  ここまでで {R, L, U, D, F, B, x, y, z}だけで表現
  • 18.
    Jun. 18th, 201718ルービックキューブ交流会 @ LODGE / K. Terada (2) FMC採点システム • 手数カウントはライブラリがある! – alg (npm) – 開発者: Lucas Garron – https://www.npmjs.com/package/alg • まとめると (i) 解答の手数をカウントする (ii) 解答の手順変換 (iii) [スクランブル]+[変換済解答] の完成状態チェック var alg = require(‘alg’); alg.cube.countMoves(“R U R’ U R U2 R’”, {metric: ‘obtm’}); // 7
  • 19.
    Jun. 18th, 201719ルービックキューブ交流会 @ LODGE / K. Terada “tribox Contest” is improving
  • 20.
    Jun. 18th, 201720ルービックキューブ交流会 @ LODGE / K. Terada “tribox Contest” is improving いろいろな課題 • トップページがださい • トップページ一見してなんのサービスか全然わからない • ローディングが遅い • タイマーの挙動がときどき変 • その他いろいろ...... tribox Contest はオープンソースです! • https://github.com/tribox/tribox-contest • Play Framework (Scala) と Firebase (javascript / node.js) • 興味もってくれた方はのぞいてくれると嬉しいです! (PRも大歓迎です!)
  • 21.
    Jun. 18th, 201721ルービックキューブ交流会 @ LODGE / K. Terada “tribox Contest” is improving ?
  • 22.
    Jun. 18th, 201722ルービックキューブ交流会 @ LODGE / K. Terada “tribox Contest” is improving ?
  • 23.
    Jun. 18th, 201723ルービックキューブ交流会 @ LODGE / K. Terada “tribox Contest” is NOW improving ということで、 2017年後半期 (7月2日スタート) から tribox Contest にピラミンクス追加します!! いや待ちきれないでしょ、 本日21時スタート 2017年前半期25節 から ピラミンクス追加します!! ※ただし今期の間は総合順位が つかないオープン戦になります Enjoy Pyraminx✌