#cli-tool #rubiks-cube #algorithm #commutators

app three-style

A CLI tool for searching 3x3 Rubiks'cube 3-style commutators

2 releases

0.1.1 2024年2月26日
0.1.0 2024年2月22日

#414 in 算法

MIT许可证

67KB
1.5K SLoC

three-style

Build/test crates.io

three-style是一个程序,用于搜索在3-style中使用的3x3交换子,3-style是一种高级盲解魔方的方法,一次交换3个部件而不影响魔方的其余部分。

内容

安装

您可以通过从发布下载适用于您的系统的预构建二进制文件或使用cargo安装来使用three-style。

cargo install three-style

用法

three-style使用层来描述部件或更确切地说,是贴纸目标。示例:UF(棱),UBL(角)。目前,它只公开了一个主要命令search,并按以下方式使用

# corners
three-style search --gen RUD --corners UFR UBL RFD --depth 4

# edges
three-style search --gen RUE --edges UF UB LF --depth 5

# shorter versions
three-style search -g RUD -c UFR UBL RFD -d 4
three-style search -g RUE -e UF UB LF -d 5

[!NOTE] 深度相对于交换子的表示形式中的长度。

概念

交换子是以下形式的算法:A B A' B',它允许我们一次交换3个部件而不影响魔方的其余部分。它通常以下列方式描述:[A, B]

它由两个基本可交换的部分组成

  • 交换是单次移动,交换两个部件而不影响第三个部件
  • 插入是三次移动,将第三个部件插入到两个部件中的一个空位中,而不影响另一个部件。

但并非所有情况都可以仅使用纯交换子解决,有些情况需要使用设置移动。一个 设置移动 是一系列移动,将情况转换为可以仅使用纯交换子解决的问题。使用设置移动的交换子形式为 S A B A' B' S',并且更常见地写作 [S: [A, B]]

[!NOTE] 边缘有一个称为 4 movers 的特殊情况,它不使用正常的3次移动插入。例如:[M', U2]

该程序基本上执行迭代深度优先搜索,并应用这些规则来查找换位。因为这些规则允许高效地剪枝,所以搜索速度相当快。

参考

贡献

欢迎提交错误报告、拉取请求和功能请求!

依赖项

~1.3–1.9MB
~36K SLoC