You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

我的8数码问题DFS求解器失效,后期状态异常循环求排查

8数码问题DFS求解器异常排查

问题背景

  • 初始棋盘状态:
    1 4 2
    3 _ 5
    6 7 8
    
    其中_代表空格
  • 目标状态在代码中格式化为字符串"_12345678",对应棋盘:
    _ 1 2
    3 4 5
    6 7 8
    
  • 预期完成求解的操作序列:7U,8L,5D,2D,4R,7U,8U,5L,2D,4D,7R,8U,5U,2L,4D,7D,8R,5U,2U,4L,7D,8D,5R,2U,4U,7L,8D,5D,2R,1R(格式说明:如7U表示将数字7向上移动)

异常现象

前期状态遍历符合预期,但临近结束时出现逻辑异常:

  1. 执行8D操作后,进入状态:
    1 2 5
    3 4 _
    6 7 8
    
  2. 接着执行5D操作,进入状态:
    1 2 _
    3 4 5
    6 7 8
    
  3. 此时本应执行2R和1R即可完成求解,但空块突然跳至中间,状态变为:
    1 2 5
    3 _ 4
    6 7 8
    
  4. 随后算法陷入循环,需手动终止程序。

核心疑问

代码包含get_neighbors和dfs两个核心函数:

  • get_neighbors:通过移动空块生成相邻状态
  • dfs:实现深度优先搜索逻辑

目前无法确定是这两个函数存在逻辑错误,还是其他环节导致的异常。

代码说明

附上完整代码(注:运行时可能陷入循环,需手动终止)


内容的提问来源于stack exchange,提问作者j k

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 06:27:08