首页 > TAG信息列表 > graph-algorithm

java-深度优先搜索列表路径到所有末端节点

嗨,我有一棵树,我想在其中获得从初始(根)节点到所有叶子的路径. 我发现了几个算法,列出了图中任何给定的两个节点之间的(所有)顶点(例如,以下SO问题:Graph Algorithm To Find All Connections Between Two Arbitrary Vertices) 对于二叉树,也存在一种算法http://techieme.in/print-a

java-有障碍的最短路径

我们给定了N x N雷场(二维数组),在另一个M x 2数组中给出了地雷的坐标.在不踩雷场的情况下找到从左上角到右下角最短路径的最佳算法是什么?解决方法:这是一个shortest path problem,可以通过将问题简化为graph来解决: G=(V,E) V = { (x,y) | for all x,y such that (x,y) is not a m

java-将整数数组划分为2个未连接的部分

给定一个int数组(每个元素的值等于它的索引),数组元素之间的长度为n和m.将数组分为2部分(相对于给定的m个连接,部分中的所有元素都必须未连接). 如果存在这样的分区,则输出true,否则输出false. 这是3个示例: >给定数组:{0,1,2,3} 给定的连接:0-1、2-3(0连接到1、2连接到3) 输出应为:tru

java-检查权重不等于0的循环

我有一个具有n个顶点和m个边的连通图g. 可以从两个方向遍历每个边,而在一个方向上遍历它们的权重为正,在另一个方向上遍历它们的权重为负. 因此,对于每个边缘,u->具有权重w的v存在边v->你的体重-w. 我的目标: 对于给定的顶点v,检查是否存在返回v的路径(一个循环),以使该路径的边权重

java-查找多维数组的所有垂直遍历

如果我有以下多维数组(具有任意大小): a,b,c d,e,f g,h,i 我想找到所有可能的垂直遍历(adg,adh,aeh,aeg,aei,bdg等),我将如何在Java中做到这一点? 让我感到困难的是数组的大小是任意正方形的(您不知道它是2×2还是3×3或4×4),所以您不能仅使N嵌套用于循环,其中N =多维数组的长度

如何在C#中编写布雷森汉姆算法?

我这样写,但仅在50%的情况下有效.有人可以说出什么问题吗? public void Bresenham(int x1,int y1,int x2,int y2,Color c) { double dx = x2 - x1; double dy = y2 - y1; double d = 2*dy-dx; //aux variable

图算法的PHP实现

我不是PHP程序员,但是我需要编写一个脚本,并且想在PHP中准备一些DFS算法.我认为所有编程语言都应该至少具有一些用于处理图形的库,因此我不必强迫自己实现它. 有经验的PHP程序员可以告诉我,在哪里可以找到一些免费的库来执行DFS?解决方法:http://mirkules.com/blog/?p=20

我如何才能使最长节点的递归搜索更有效?

我正在尝试在有向无环图中找到最长的路径.此刻,我的代码似乎在运行时复杂度为O(n3). 该图的输入为{0:[1,2],1:[2,3],3:[4,5]} #Input: dictionary: graph, int: start, list: path #Output: List: the longest path in the graph (Recurrance) # This is a modification of a depth f

python – 如何更正错误’AttributeError:’dict_keys’对象没有属性’remove”?

我正在尝试使用dijkstra算法进行最短路径查找,但似乎无法正常工作.无法弄清问题是什么.这是代码和错误消息. (我正在研究Python 3.5.https://www.youtube.com/watch?v=LHCVNtxb4ss) graph = { 'A': {'B': 10, 'D': 4, 'F': 10}, 'B': {'E': 5, 'J&#

Python Dijkstra k最短路径

我正在尝试制作一个小型公共交通路线应用程序. 我的数据以下列结构表示: graph = {'A': {'B':3, 'C':5}, 'B': {'C':2, 'D':2}, 'C': {'D':1}, 'D': {'C':3}, 'E': {�

java – 具有最大顶点数的最短路径

我想找到两个顶点之间的最短路径和一个额外的约束:可以访问max n个顶点.该图是定向的,连接的,非负权重,并且可以包含循环. 例: > n = 2的最短路径0-> 2是18 > n = 3的最短路径0-> 3是22> n = 4的最短路径0-> 3是9 到目前为止,我已经实现了Djikstras算法以获得简单的最短路径,我的想

如何计算具有加权顶点的图的最短路径?

我想弄清楚,如何计算具有加权顶点的图的最短路径.像Dijkstra和Floyd-Warshall这样的经典算法通常使用加权边缘,我没有看到如何将它们应用到我的情况(加权顶点)的方法: 我的一个想法是将图形转换为具有加权边缘的更经典的视图.这是我收到的: 这里我们有单向和双向加权边,但我仍然不确

c – 在图算法中,确定节点是否被访问的最佳方法是什么?

我最初是以两种方式做到的.一种方法是将访问的节点存储在列表中并遍历列表以确定之前是否已访问过节点.另一个是使用布尔数组,它跟踪访问和未访问的节点.它真的让我感兴趣,最好的方法是什么?解决方法:一种可用于微优化(更好的缓存行为,避免查找)的方法是在每个节点对象上存储标志.明

c – 我可以用这个瓶颈做些什么

我刚刚找到了一种方法来优化我的代码算法从50到15分钟,但这部分需要14分钟.它将成为更大的模型化系统的一部分,所以我不能让它长期运行.因为我必须比较我的矢量的所有值,它具有大约100,000个值(100亿比较),我想知道是否有一种方法来优化代码. struct Coor { double x1; doub

c – 两点之间网格中的最短路径.抓住了

我有这个问题,我必须通过向右或向下移动找到NxM网格中从A点(总是左上角)到B点(总是在右下角)的最短路径.听起来很简单,嗯?好吧,这里有一个问题:我只能移动我正坐在的瓷砖上显示的数字.让我说明一下: 2 5 1 2 9 2 5 3 3 3 1 1 4 8 2 7 在这个4×4网格中,最短路径需要3个步骤,从左上角

java – 扭曲的最短路径

我有n个顶点和m个无向加权边(权重代表分钟).每个顶点包含在该顶点上喝咖啡所需的分钟数. 我想确定从顶点v到顶点w所需的最短时间(分钟),但是附加约束我必须在从v到w的路上的一个顶点上喝咖啡. 例: (顶点中的数字是喝咖啡所需的分钟数,边缘上的重量表示行进此边缘所需的分钟数) 从v到

java – 如何将加权循环图划分为n个图,尽可能少地断开连接

问题的背景: 在我女儿学校的每一个新年开始时,校长总是谈到将孩子分成几个班级是多么困难,因为他们对于他们想要在课堂上的人有很多要求,幼儿园也有一些建议. 在我看来,这只是一个加权的循环图,其中孩子作为节点,请求/推荐作为需要拆分的边. 问题: 想象一下,如果你愿意的话,带有周期

python – 在大图上运行DFS

我试图在实现Kosaraju算法的大图中找到强连通组件.它需要在图形上反向运行DFS,然后转发.如果您感兴趣,此图表的边缘列表如下:https://dl.dropboxusercontent.com/u/28024296/SCC.txt.tar.gz 我不能在Python中递归地实现它,它超过了它的递归限制并且如果我增加它们会崩溃.我正在尝试

mysql – 数据库查询比在一台服务器上查找LinkedIn类型第二级连接的算法更快吗?

我有一个表与朋友id,u1,u2和约<单个mysql服务器上有500,000个条目 我想带上userA和userB并检查他们是否有共同的朋友. 做得快吗? select u2 from friends where u1 = userA and u2 IN (select u2 from friends where u1 = userB) 而不是在图表上(在一台服务器上)运行最短路径算法?