我们介绍了cayleyR,一个用于通过检测Cayley图中的循环交集来解决置换难题的R包。核心算法执行双向搜索:从初始和目标置换状态出发,随机操作序列生成对称群 $S_n$ 的Cayley图中的循环;它们的交集产生连接路径。
当未找到直接交集时,距离引导的桥接选择缩小间隔,过程重复。该包针对TopSpin(n,k)难题,其状态空间是由循环移位和前缀翻转生成的 $S_n$ 的Cayley图。
我们描述了数学框架、算法及其实现,结合了C++哈希索引状态存储和可选的Vulkan GPU加速。该软件已在CRAN上公开发布。
博主点评: cayleyR的算法创新在于利用Cayley图的特性,通过循环交集高效解决置换难题,充分利用了双向搜索的优势。结合C++和GPU加速的实现,使得这一工具在性能上具备了极大的潜力,值得研究者和开发者关注。