メインコンテンツまでスキップ

core

このモジュールは、モデルをロードし、ビーム探索アルゴリズムを使用してルービックキューブの解法を見つけるコアクラス Solver を提供します。

クラス:

  • Solver: ルービックキューブの設定、解法モデル、および探索機能を管理するためのクラスです。

Solver

class Solver()

環境、モデル、および探索設定を管理するためのソルバークラスです。

メソッド:

  • load: ソルバーモデルをロードし、CPUまたはGPU用に最適化します。
  • __call__: キューブの状態を設定し、ビーム探索を使用して解法を求めます。

load

def load(model_id: str = "small" if device.type == "cpu" else "large", prefer_gpu: bool = True, quantize_on_cpu: bool = True, jit_mode: bool = False, *args, **kwargs)

ルービックキューブソルバーモデルをロードし、CPUまたはGPU用に最適化します。

引数:

  • model_id str - ロードするモデルのバリアントの識別子("small"、"base"、または"large")。
  • prefer_gpu bool - 利用可能な場合、GPUを優先するかどうか。
  • quantize_on_cpu bool - CPU最適化のためにモデルを量子化するかどうか。
  • jit_mode bool - 実行速度を上げるためにJITモードを有効にするかどうか。
  • *args - モデルのロードに関する追加の引数。
  • **kwargs - モデルのロードと最適化に関する追加のキーワード引数。

戻り値:

  • None

__call__

def __call__(scramble, format="moves", allow_wide=True, **kwargs)

formatscramble からキューブの状態を設定し、**kwargs とともに search.beam_search に渡します。

引数:

  • format str - スクランブルの入力形式: "moves" または "stickers"。
  • scramble list - ルービックキューブの初期状態を表す一連の動作/ステッカー。
  • allow_wide bool - ワイド動作を許可するかどうか。
  • **kwargs - beam_search に渡すキーワード引数。

戻り値:

  • solutions dict | None - search.beam_search からの解法レスポンスを含む辞書。