depth-first-search

    4热度

    2回答

    这种情况: 应用程序世界由数十万个状态组成。 给定一个状态,我可以计算出一组3个或4个其他可达状态。一个简单的递归可以建立一个非常快非常大的状态树。 我需要从根状态到树中的特定深度执行DFS,以搜索包含'最小'状态(计算节点的值与问题无关)的子树。 使用单个线程执行DFS工作,但速度非常慢。涵盖15个级别可能需要几分钟的时间,我需要改善这种残酷的表现。试图为每个子树分配一个线程创建了太多的线程并导

    0热度

    2回答

    我正在做一个在java中的8件益智游戏,并做了一个DFS查找解决方案的任务命令,从随机状态开始。 我有一个Node类,每个Node对象知道它在使用int [] []和它的父节点是什么状态。此外,它知道什么方向,它可以移动的(左,右,上,下) goal state: start state (random): [0 1 2] [1 8 0] [3 4 5] [3 7

    0热度

    4回答

    我有一棵树(在图形意义上)表示树(在物理意义上)。该树被表示为BGL邻接列表,其中每个顶点包含半径和位置特性,即,我的曲线图的形式 struct TreeVertexType { double radius; double position[3]; } typedef adjacency_list<vecS, vecS, undirectedS, TreeVertexTy

    7热度

    1回答

    所有延续教程我能看到的是在固定长度的延长体(即数据结构具有已知的一些项目,因为它正在走过 我实现深度优先搜索Negamax(HTTP:// EN .wikipedia.org /维基/ Negamax),并在代码的工作,我想使用continuation重写代码 我的代码如下所示 let naiveDFS driver depth game side = List.map (fun x -

    1热度

    1回答

    boolean backtrackDFS(v) { If (SolutionFound(v)) return true; Mark vertex v as reached. for (each unreached vertex u adjacenct from v) if (backtrakDFS(u)) return true; Unmark

    1热度

    1回答

    我有定义3D形状的网格表面的三角形集合, 我想修正每个三角形的法线以指出形状。 我试图下述(伪): 1.定义第一三角形法线方向是右方向 2.过去使用一种DFS的这样的网格: 3.三角形=在triangle.getNeighbours第一三角形 4.的foreach neigbour 5.如果邻居和三角形大于180做neighbor.flip() 6.三角形=邻居 7之间的角度,如果邻居已经挑选的Ñ

    6热度

    1回答

    我试图在我的游戏中实现深度优先搜索算法。我一直在研究这个网页:http://www.mazeworks.com/mazegen/mazetut/index.htm,只是发现我不能用它来代替Walls来使用它。我所说的块是指覆盖整个单元格的正方形,而不仅仅是边缘。我认为这样做会更容易,但现在我不太确定。有没有人做过这个?如果是这样,怎么样? (psuedocode很好)。或者,如果我更喜欢墙壁方法,

    32热度

    3回答

    我一直在阅读迭代加深,但我不明白它是如何与深度优先搜索不同。 我明白深度优先搜索越来越深入。 在迭代加深你建立一个公平的值,如果在该级别无解,你增加该值,并从头开始(根)再次启动。 难道这与深度优先搜索是一回事吗? 我的意思是,你会不断递增,并且递增,不断深入,直到你找到一个解决方案。我认为这是一回事!我会沿着同一个分支走,因为如果我从头开始重新开始,我会像以前一样走下去。

    0热度

    1回答

    虽然我知道我们可以通过检测后端边缘http://cs.wellesley.edu/~cs231/fall01/dfs.pdf来检测具有DFS算法的循环。我无法弄清楚如何在遵循上述方法的同时以高效和“干净”的方式输出循环中的节点。 将gratfeull一些帮助 感谢

    0热度

    1回答