iterative-deepening

    0热度

    1回答

    应用迭代深化深度优先搜索(IDDFS) 我试图在树的形式第一次做这样的事图形应用IDDFS,结果是这样的: At level 1: d,e,p At level 2: d,b,e,c,e,h,r,p,q At level 3: d,b,a,e,h,c,a,e,h,q,p,r,f,p,q At level 4: d,b,a,e,h,p,q,c,a,e,h,q,p,q,r,f,c,GOAL

    3热度

    1回答

    我有一个问题,我正在参与广度优先搜索和迭代加深搜索。我了解树的搜索机制,但我不明白如何将其应用于网格和几何形状。如果我想要执行BFS(广度优先搜索),我将如何将它应用于这个问题,我必须移动这些部分以便它们完全适合右侧的方形。我的尝试是先拿两块,然后将它们放在正方形中,然后从两边分出。问题是,我可以在BFS树的第1层放置这些块。通过查看图像我知道解决的办法,但不知道我怎么会去它在搜索

    1热度

    1回答

    好的,所以,首先,我不知道我在迭代深化中做了什么。我一直在努力让这段代码能够工作,但我不能。我在网上查找并找不到任何有关C++中的搜索的参考。 void Graph::IDS(int x, int required, int depth = 1) { if(x == required) return; cout << "Iterated Deepening Search f

    1热度

    1回答

    看来,迭代深化搜索应该比BFS较高的时间复杂度,因为每一个深度的限制增加的时候,就必须从头开始其搜索。 但维基说,否则,为什么呢?

    0热度

    1回答

    我一直在尝试在Java中实现迭代深化搜索。但是,出于某种原因,并非所有的孩子,对于每个节点都正在访问,导致不正确的结果。这是我到目前为止的代码: public int IDS(Node start, Node goal){ int depth = 0; //set starting depth to 0 Node current=start; //current node

    1热度

    1回答

    我用下面的伪代码从维基百科page实现了图形反复深入深度优先搜索 function IDDFS(root) for depth from 0 to ∞ found ← DLS(root, depth) if found ≠ null return found function DLS(node, depth) if depth = 0

    1热度

    2回答

    我正在编写一个程序来播放点和框,并且我想通过在迭代深化方案中基于它们的启发式值来订购我在alphaBeta中考虑的动作来提高我的时间效率。本质上,我想进入搜索树,每次迭代增加深度,并用alphaBeta评估每个节点。在每次连续迭代中,我认为节点的顺序将由先前迭代中的节点的启发式值决定。但是,我无法理解这将如何实施。有人可以提供一个标准alphaBeta程序如何使用迭代加深进行搜索的伪代码?谢谢!

    1热度

    1回答

    我有一个关于搜索技术迭代加深的问题。我的问题是,正常的深度优先搜索和迭代深化没有指定的深度限制有什么区别?所以我有一个有目标节点的树,但在我的迭代深化搜索中没有指定的限制。这是否会输出相同的遍历序列,就像我要进行常规的深度优先搜索一样?

    1热度

    1回答

    为了提高极小极大算法与α-β剪枝的表现,我已经实现了迭代深化: public Integer iterativeDeepening(int maxDepth, boolean isFirstPlayer) { Integer bestCell = -1; for (Integer depth = 1; depth <= maxDepth; depth++) {

    1热度

    1回答

    我现在有作为接着实施了深度优先搜索: protected void algorithmLogic() { currentNode = ((Stack<Node>) expanded).pop(); if(atGoal()) { // Goal reached so stop return; } else { visited