breadth-first-search相关内容

广度首次枚举Gremlin中

我试图用Gremlin获得第一个枚举,但是我很难找到一种方法来输出在枚举期间观察到的所有步骤。我只能打印出最后一次迭代的结果。 我的问题是,如果像这样的起始节点,我如何遵循所有路径(不知道整体深度)使用Gremlin并打印出我一路上找到的所有东西? study = gv('myId') 我已经尝试了散布方法,循环方法(尽管两者似乎都需要事先知道路径的实际长度,如果我理 ..
发布时间:2018-05-25 17:07:16 Java开发

高效地查找大图中的最短路径

我正在寻找一种方法来实时查找巨大图形中节点之间的最短路径。它有数十万个顶点和数百万条边。我知道这个问题之前已经被问过了,我想答案是使用广度优先搜索,但我更感兴趣的是知道您可以使用哪些软件来实现它。例如,如果它已经存在一个用于在无向图中执行bfs的库(带有python绑定!),那将是完全不错的。 p> python-graph 添加: 这些评论让我很好奇,pygraph的性能如何影响OP ..
发布时间:2018-05-25 17:03:49 Python

使用加权图的BFS

我修改了单源最短路径算法,并且在视频中,老师提到 BFS / DFS 不能直接用于找到最短路径 strong>加权图(我想大家都知道这一点),并说自己找出原因。 我想知道确切原因/解释至于为什么它不能用于加权图。是由于边缘的重量还是其他因素?有人可以解释我,因为我觉得有点困惑。 PS:我经历了这个问题。 解决方案 考虑一个像这样的图表: A ---(3)----- B ..
发布时间:2018-05-25 16:59:32 其他开发

如何检测有向图是循环的?

我们如何检测有向图是循环的?我想过使用广度优先搜索,但我不确定。有任何想法吗? 解决方案 通常使用深度优先搜索。 我不知道BFS是否适用于您。 在 DFS ,生成树是按访问顺序构建的。如果树中的节点的祖先被访问(即创建了一个后沿),那么我们检测到一个循环。 请参阅 http://www.cs.nyu.edu/courses/summer04 /G22.1170-001/6a-G ..
发布时间:2018-05-25 16:55:31 其他开发

为什么DFS和BFS的时间复杂度取决于图表的显示方式?

网站 http://web.eecs.utk .edu /〜huangj / CS302S04 / notes / graph-searching.html 描述了当使用邻接列表时,DFS和BFS具有复杂度O(V + E),并且如果使用邻接矩阵,复杂度为O(V 2 )。为什么是这样? 解决方案 在这两种情况下,运行时间取决于迭代给定给定节点。使用邻接列表,运行时间与输出边的数量成正比。由于 ..

如何在有向图和线性时间之间找到两个顶点之间不同最短路径的数量?

这是练习: 让v和w是有向图G =(V,E)中的两个顶点。设计一个线性时间算法来查找v和w之间不同的最短路径(不一定是顶点不相交)的数量。注意:G中的边不加权 对于这个消费,我总结如下: 它是一个有向图 它要求不同的最短路径。首先,路径应该是最短的,那么可能有不止一个长度相同的最短路径。在v和w之间,从v到w和从w到w v应计算在内。 线性时间。 图表不加权。 从以上 ..
发布时间:2017-04-03 11:10:28 其他开发

如何使用算法BFS指示生成树的预订

我在c ++中执行BFS算法来找到一个生成树,生成树的输出应该以预订的形式显示,但我在实现中有疑问,如果没有确切知道每个节点有多少个孩子?考虑树结构递归树的数据结构可以写成: typedef struct node { int val; struct node * left,* right; } * tree; // tree已经被typedefed作为一个节点指针。 ..

曲线/路径骨架二值图像处理

我试图开发一个可以处理图像骨架的路径/曲线的代码。我想在两点之间有一个来自骨架的点的向量。 此代码在添加一些点后结束。我没有找到解决方案。 #include“opencv2 / highgui / highgui.hpp” #include“opencv2 / imgproc / imgproc.hpp” #include“ opencv2 / imgproc / imgproc ..
发布时间:2016-10-27 21:46:46 C/C++开发

在二叉树BFS

我试着写codeS为二叉树广度优先搜索。我已经存储的所有数据在队列中,但我无法弄清楚如何前往所有节点和消费他们的孩子。 下面是我的code在C: 无效breadthFirstSearch(B树* BT,队列** Q){ 如果(BT!= NULL){ //存储数据队列是否有 如果(BT-GT&;!左= NULL)入队(Q,BT-GT&;&左GT;数据); 如 ..
发布时间:2016-08-21 20:04:09 C/C++

我如何使用深度优先搜索来解决这个难题?

所以我所做的就是采取滑动拼图看起来像这样: 1 0 3 4 2 6 7 5 8 其中0重新presents空的空间,并通过我邻接矩阵把它变成一个图形。那么,什么我想要做的就是通过图形搜索,发现这是0,然后将该值从该值开始,执行DFS,找到从0到右下角的路径时,解决的难题是这样的: 1 2 3 4 5 6 7 8 0 这里的code这是应该执行DFS:公共静态布尔SolveNinePuz ..
发布时间:2016-06-01 21:21:03 Java开发

广度优先在Java中搜索

我有运行在Java进行分配广度优先搜索。我有瓦片的5x5的网格(24共计 - 1瓦留“空白”)。搜索的点是通过移动“空白”到重新排列瓷砖,向下,向左或向右最终重新排列瓷砖到正确的顺序。 要做到这一点搜索,我创建了一个ArrayList“排队”。我有需要在这个ArrayList的索引0状态的方法,发现每一个可以遵循的法律动作,然后将它们每个添加到数组列表的末端。 在理论上,这将继续直到“goal ..
发布时间:2016-05-29 17:38:52 Java开发

Dijktra算法VS一口气首先寻找图中最短路径

我需要一些澄清和inputts就在向图 Dijktra算法 VS 呼吸优先搜索,如果这是正确的 Dijktra的算法可以找到到节点的最短路径节点 A F 在权重图,无论是否有循环或没有(只要不存在负权重)的 但是,从 A到图中的所有其他节点的所有路径的计算,我们抓住从 A 的路径 F 通过反转节点的序列 prev`。 BFS:发现从节点A 的最短路径节点F 在非权图,但如果如果一个周期检测失 ..
发布时间:2015-11-30 22:42:26 C/C++

如何实现广度优先搜索遍历?

我不能清楚地了解如何使用队列来实现广度优先搜索。 这就是我理解的: 创建队列Q 排队根到Q 而(!Q.empty()) { 结点t = Q.deque(); 如果(t是我们追求的目标) 返回吨; 排队的T> leftchild 排队的T> rightchild } 让我错过了这里? 解决方案 正如评论所说,你错误地认为,每个国家都有,可以 ..
发布时间:2015-11-30 22:33:58 C/C++

给定一个有向图,找出是否有两个节点之间的路线

我试图解决这个问题,我是相当新的图形。 我试图BFS图了这一点,但我没有得到正确的答案。 我究竟做错了什么?此外,有没有这样做,比我现在用的方法等更好的办法。 公共静态布尔isThereARoute(INT [] []图,的GNode N1,N2的GNode){ //我们在这里可以移动? - 在任何地方,其中x和y的值是1 - 否则不能动 //开始与节点1,然后遍历无论是BF ..
发布时间:2015-11-30 22:30:22 Java开发

如何才能广度优先搜索树包括交叉的边缘?

嗯,我知道了一个无向图的广度优先搜索树不能有一个底部。但我不知道它怎么能连一个交叉的边缘?我不能够像图G构造出OFS的,包含交叉边缘的生成树 解决方案 建筑使用BFS在无向图中会产生边缘以下类型的生成树的过程: 在树边 十字边缘(在不同的分支连接顶点) 一个简单的例子:假设一个三角形(一个三顶点集团) - 从任何节点开始BFS,你会到达另外两个的第一步。留给你的,不属于生成树它们之间的边缘 ..

如何检测如果一个无向图有一个周期和输出使用BFS或DFS它

在此另一个问题只是回答如何检测一个周期,而不是​​还输出它。所以,我想写O型算法运行BFS或DFS(V + E)时(V =顶点,E =边),在无向图,输出循环,如果它有一个。 我所知道的,到目前为止是BFS / DFS是如何工作的,以及是否可以检测到循环使用BFS,如果你访问已经被标记为已访问节点。 解决方案 要检测并输出与DFS一个周期,只是标记每个顶点,你得面对它。如果当前顶点的任何儿童 ..
发布时间:2015-11-30 22:22:42 C/C++

优化连接查询,在向非循环图

这是我的工作对个人的项目之一。我有N个节点(比如亿美元),我会在查询两个节点连接的DAG [isConnected(A,B}。我会查询DAG在线M(比如亿美元)次。有没有办法来优化流程? 下面是我能想出的最好的办法。 BFS = O(M * N) Dijkstra算法= O(M * E *日志N),其中E为图中的边数。 是否有这个过程的任何其他更好的方法?我现在使用的第二个策略。这需要永远 ..
发布时间:2015-11-30 22:07:11 C/C++