iterative-deepening

    1熱度

    1回答

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

    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++) {