Batch Solverを用いたZBLS探索

Batch Solverはここ:

https://trangium.github.io/BatchSolver/

ドキュメントはここ:

Batch Solver Documentation - Google ドキュメント

 

この記事ではめっちゃ便利な手順探索ツールのBatch Solverについて,その使い方を簡単にご紹介できればと思います(※0)(※1)(※2)

※0そもそもドキュメントが簡潔に書かれているので,参照推奨です.

※1そもそも詳細にこのツールについて知識があるわけではないので,つまり私より使用方法を正しく把握している人がいれば,ぜひともご教授お願いします.

※2良い手順見つかったら教えてください;;喜びます;;

 

A) 結論

ZBLSを探索する場合,こんな感じに設定する.

以上です.ありがとうございました.

 

B) 各パラメータの雑記

・Unique Orientations & Equivalences:

{UF UL UB UR}
1:{UFR UFL UBL UBR}

{}で囲まれたパーツはpermutationが無視される.

1:の後ろに置かれたパーツはOrientationが無視される

つまり1:{}で記述されたパーツは,探索において状態を問わない.

 

・Prune    Search    Subgroup;

適当,適当,任意の探索させたい手順群を設定※3.

※3, <F,R,U>genを探索させたいのなら,F R Uと入力

探索させる手順長=Prune+Searchの値.

Pruneはデカすぎるとメモリがフローしそうなので,そこそこ大きくてそこそこ小さな値に設定する.

 

・Scramble

<U,F R U R' U' F',R U R' U R U2 R',R U R' U' >

->探索する手順群について記述する.

<>で囲まれた手順について,その順/逆手順及び,各手順どうしを組み合わせたスクランブルが探索される.

上記では,AUFのU,3種類のEOを生成するための6手OLL,COは全てSuneで記述され,これらとスロットの出し入れを担うRUR'U'で全てのZBLSを作り出せる.

 

・Case Sorting

順に,

Orientation of DFR, Permutation of DFR,

Permutation of FR,Orientation of FR

Orientation of UF UL UB UR 

->探索された手順が,それぞれのケースについてごちゃまぜになると,とても読み辛い.そのため,ある程度分かりやすいようにグループ分けを行う.

私は,DFRコーナの状態→FRエッジの状態→U面色のEOの順に手順を整理しているので,これに従って優先順位を決めた.

 

・Mask:

wwwwwwwwwrrrrrrlllbbbbbbllllylyyylyloooooolllgggggglll

->状態を問わないパーツはグレー色にすると判断が付きやすい.

 

・その他のパラメータ

->ノリで設定する.

 

C)このツールの利点

 私は3x3の手順探索にしか使用していないので,その他の分割数のキューブや変形パズルについては存じませんが,ZBLSやF2L,抜きスロット手順(?)の探索など,ある程度の手順数より構成されるsubstepの探索にとても有利だと思う(※4)

(※4) というのも,他のツール,,ksolveやcube explorerなどは,個別のケースの探索は強力ですが,ある程度手順数が多いsubstepの類では,いちいち個別に探索するのが面倒臭い.一方でBatch Solverなら,探索させたい手順群の状態を定義さえすれば,自動で探索するスクランブルの生成及び各スクランブルを任意のグループにソート及び手順の探索及び探索した手順をそこそこ回しやすい順番へソート(※5)を行ってくれるので,とても時間的な節約になる.

 

(※5) なんかMCCなる基準で手順の順位付けを行ってくれるっぽいけど,よくワカんねぇから使ってねぇ.MCCってどうなんっすかね?