跳到主要内容

__init__

alphacube 包提供了几个用于不同目的的函数:

  • load(*args, **kwargs):加载训练好的深度神经网络。
  • solve(*args, **kwargs):使用加载的求解器解决魔方。
  • set_verbose(loglevel=logging.INFO):设置日志记录器的详细程度。
  • cli():使用 AlphaCube 解决魔方的命令行工具。

有关基本用法,请参阅入门指南

load

def load(model_id: str = "small" if device.type == "cpu" else "large", *args, **kwargs)

加载魔方求解器模型。

参数

  • model_id - 要加载的模型变体的标识符("small"、"base" 或 "large")。在 CPU 上默认为 small;在 GPU/MPS 上默认为 large
  • *args - 用于配置模型加载的其他位置参数。
  • **kwargs - 用于配置模型加载的其他关键字参数。

返回

  • None

solve

def solve(*args, **kwargs)

使用加载的求解器模型解决魔方难题。

参数

*args, **kwargs:用于配置难题求解的参数;传递给 alphacube.core.Solver.__call__()alphacube.search.beam_search

返回

  • dict | None:包含解法和性能指标的字典。如果失败则返回 None。

list_models

def list_models()

列出可用的模型 ID。

返回

  • list - 可用模型 ID 的列表。

cli

def cli()

使用 AlphaCube 解决魔方的命令行工具。

参数

  • --model_id/-m (str):选择用于求解的特定模型(默认:CPU 上为 'small',否则为 large;另一个选择是 base)。
  • --format/-f (str):指定输入格式('moves' 或 'stickers')。
  • --scramble/-s (str):使用一系列步骤或字符串化的 JSON 字典定义初始魔方状态。
  • --beam_width/-bw (int):设置搜索的光束宽度(默认值:1024)。
  • --extra_depths/-ex (int):指定额外的探索深度(默认值:0)。
  • --verbose/-v:启用详细输出以进行调试和跟踪进度。

返回

  • None

使用示例:

语法
alphacube [--model_id MODEL_ID] [--format FORMAT] [--scramble SCRAMBLE]
[--beam_width BEAM_WIDTH] [--extra_depths EXTRA_DEPTHS]
1. 使用默认设置解魔方
alphacube --scramble "R U R' U'"
2. 使用自定义设置解魔方
alphacube --model_id large --beam_width 128 --extra_depths 2 \
--scramble "R U2 F' R2 B R' U' L B2 D' U2 R F L"
3. 使用贴纸表示法解魔方
alphacube --format stickers \
--scramble '{ \
"U": [0, 0, 5, 5, 0, 5, 5, 4, 0], \
"D": [1, 3, 3, 4, 1, 1, 4, 1, 3], \
"L": [4, 5, 1, 0, 2, 2, 0, 1, 4], \
"R": [5, 2, 0, 2, 3, 3, 2, 0, 2], \
"F": [4, 3, 2, 4, 5, 1, 1, 4, 3], \
"B": [1, 5, 5, 0, 4, 3, 3, 2, 2] \
}' \
--beam_width 64