Depth-First-Search:订单重要吗?

时间:2015-10-31 14:22:49

标签: python search graph depth-first-search

我已经使用Python构建了一个深度优先搜索脚本,该脚本遍历图形。由于我没有最优的排序算法,DFS的可视化看起来有点奇怪。我的意思是我的DFS获取节点的顺序是可重现的,但它看起来很奇怪,因为我的图形类在内部逐行读取文本文件并将边(节点的元组)存储在一个集合中。

当我启动算法时,它会扩展起始节点,查找它的邻居,移动并继续这个但是因为边缘是集合中的元组,有时我的DFS所采用的第一个邻居是底部节点。下一次可能是正确的,依此类推。这样打破了可视化,因为人类会说确定,如果我扩展我的节点,收集邻居并加深/向右移动,我将总是将图表加深到右边,这意味着一些具体的顺序。

我的问题是:解决方案仍然正确吗?或者在这种情况下应该使用DFS,例如走一条直线到右边?必须对图表中的边缘进行排序,然后......

我想实现图形,就像在数学中定义一样。这就是为什么我为边缘设置了节点和元组(V x V)的集合。

每个州的行动包括: up down left right 。只要没有墙/障碍物存在。

示例

x: wall | s: start | g: goal | o: path taken by the DFS

xxxxxxxxxxxxxxxxxxxxxxxxx
x                       x
x                       x
x  s               goo  x
x  oo                o  x
x   o    ooooo     ooo  x
x   oo  oo   oooo  o    x
x    oooo       oooo    x
xxxxxxxxxxxxxxxxxxxxxxxxx

0 个答案:

没有答案