depth-first-search

    5熱度

    1回答

    快樂的復活節,每個人。 我目前正在學習拓撲排序,並且對拓撲排序試圖進行真正排序有個疑問。 的Algorithm Design Manual這樣描述拓撲排序: 拓撲排序是有向無環圖(DAG)的最重要的操作。 它對一條線上的頂點進行排序,使得所有有向邊從左到右。 這個大膽的部分混淆了我。那麼拓撲排序頂點或所有有向邊? 讓我們來看一個也在書中的例子。 所以對於上述DAG,我們可以得到一個拓撲排序(G,A

    1熱度

    1回答

    我期待提出一個多項式時間算法,該算法以圖形G和整數K的形式輸入並確定G是否爲K-頂點連接。我在想這可能會利用深度優先搜索。我可以看到它如何不是一個無多項式的解決方案,即只刪除K個隨機頂點,運行DFS檢查連通性,然後再用一組不同的頂點組合。 〜O(n^K)的運行時間稍微多一些,並且顯然可以將其降低到多項式時間。任何想法我在這裏失蹤?我想它與運行DFS後得到的非樹頂點有關,但我不完全確定我在找什麼?提

    2熱度

    4回答

    我有一個很好的圖表(一個列表),包含81個頂點(每個頂點是頂點類的一個實例)。每個頂點有20個鄰居。每個頂點都有許多可能的值(從1到9),考慮到對問題的一些初始約束將平均爲4或5.我在此圖上實現了一個簡單的DFS,該節點的可能值較少, foreach值創建另一個只有一個可能值的「深層」圖形,最後遞歸地將「deepcopied」圖形再次傳遞到DFS。這個問題是關於速度的; cprofiling我的代

    2熱度

    1回答

    尊敬的先生, 我正在用一個特定的圖形結構代表2人正常形式的遊戲(博弈論)。我知道我可以通過Tarjans計算O(V + E)中有向圖的所有強連通分量,但想知道計算強連通分量的所有簡單循環的複雜性是什麼?並且,如果在給定定義強連通分量的頂點數量的情況下,這樣的簡單循環的數量存在已知上限? 我正在尋找任何有關這兩個問題的文獻/算法。謝謝!

    1熱度

    3回答

    所以我一直在研究一個問題,基本前提是給定任意大小的網格,我需要計算「遊覽」的數量。巡視是從左上角開始的一個運行(我使用點x = 1,y = 1 for)並結束於左下角點(x = 1 y = max),不管y的最大值是多少)。除此之外,它必須沿途觸及其他所有點,並且只能訪問一次網格中的任意點。 我把它寫在下面的方式,它運行在〜42-45秒,但如果可能的話,我想讓它在30秒或更短的時間內運行。所以,我

    2熱度

    1回答

    從我可以收集如何使用BGL,以便從非得要我的 class MyVisitor : public boost::default_dfs_visitor { public: void discover_vertex(MyVertex v, const MyGraph& g) const { cerr << v << endl; return; } };

    -1熱度

    1回答

    我正在研究一個由在特定學校是朋友的學生組成的無向友誼圖。我想使用dfs來獲得派系(圖中所有連接的子圖)。但由於某些原因,我的DFS無法正常工作..對算法或代碼的任何建議表示讚賞 這是手動創建一個樣品圖.. import java.util.LinkedHashMap; public class DFS { /** * @param args */

    1熱度

    1回答

    美好的一天。 我在執行基於Strategy.py類中定義的策略的深度優先搜索時遇到問題。還有一個圖形和一個遍歷類。遍歷類負責很好地遍歷圖。 策略類如下: class Strategy: init_priority = 0 def __init__(self, init_pri = 0): self.init_priority = init_pri def init(self,

    0熱度

    1回答

    這裏是使用++ DFS在C,它有缺陷,拓撲排序(出界錯誤) #include<iostream> #include<stdio.h> using namespace std; int count=0; static int *a=new int[8]; void dfs(int u,bool v[],bool matrix[][8]) { v[u]=true; f

    4熱度

    2回答

    我讀過BFS算法比DFS更適合並行實現。我很難理解爲什麼這應該是真實的直覺。誰能解釋一下? 感謝