免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2747 | 回复: 3
打印 上一主题 下一主题

请教一个图的深度优先搜索问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-03 23:43 |只看该作者 |倒序浏览
startstate = problem.getStartState()    # 获取最初状态

  stack = util.Stack()           # stack 是一个堆栈
  visited = {}
  stack.push(startstate)

  """
  DFS of Graph
  """
  if problem.isGoalState(startstate) == False:
    visited[startstate] = True                                  # 访问标志
    fringe = problem.getSuccessors(startstate)      # 获取后续状态
    #print fringe, "\n"

    while fringe:
      f = fringe[0]
      fringe.remove(fringe[0])                                   # remove-first
      
      if problem.isGoalState(f):                                 # 判断是否目标节点
        break

      stack.push(f)

      if f not in visited:
        visited[f] = True
        expandf = problem.getSuccessors(f)
        if expandf == []:
          stack.pop()
        fringe = expandf + fringe                                # 加入状态集


请问这样为什么有问题?

论坛徽章:
0
2 [报告]
发表于 2008-11-04 12:29 |只看该作者
什么问题?

论坛徽章:
0
3 [报告]
发表于 2008-11-04 13:24 |只看该作者
路径搜索问题

论坛徽章:
0
4 [报告]
发表于 2008-11-04 13:45 |只看该作者
主要的问题是深度找到回到原来的或走错时回溯就出问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP