graph-algorithm相关内容

Dijkstra的算法伪码

我想用C ++编写Dijkstra的算法,在互联网上有无数的例子,但我只是不能理解示例如何工作。我宁愿这样做对我有意义,所以我可以更好地理解算法。我知道算法本身应该如何工作,我已经写了一些代码。我想知道是否有人可以指出我的思维过程中的缺陷。我选择将我的图表表示为边列表。我将写入伪代码,因为我的实际代码是一个巨大的混乱: class Node { vector ..
发布时间:2016-10-25 15:52:55 C/C++开发

扭转C#广度优先遍历

任何人有在C#中准备实施反向广度优先遍历算法的? 通过反向广度优先遍历,我的意思,而不是搜索一个共同的出发一棵树,节点,我想从底部搜索树并逐渐融合到一个共同的节点 让我们来看看下面的图,这是一个广度优先遍历的输出: 在我的反向广度优先遍历, 9 , 10 , 11 和 12 将是第一个找到的几个节点(它们的顺序是并不重要,因为他们都是一阶)。 5 , 6 , 7 和 8 是找到的 ..
发布时间:2016-09-22 21:20:48 C#/.NET

查找在向标定图的两个节点之间的所有可能路径

可能重复: 找到两个特定节点之间的路径? 给定一个有向图,如何找到两个节点之间的所有可能的路径,并返回这些路径 如果没有在Java中,请推荐给我的算法吧。我搜索,我发现正在使用BFS或DFS,但我没能看到这是在我的情况比较好。而如何跟踪所有的路径,不仅最短的一个。 例如,给出如下图: 1 - > 2 1 - > 3 2 - > 3 3 - > 4 有关节点1和4之间的路径,输出应 ..
发布时间:2015-11-30 22:32:49 Java开发

分配作业使用最大流量的人,很难版

我的自我学习的最大流量,有这个问题: 原来的问题是 假设我们有作业列表 {J1,J1,...,JM} 和已申请了他们的人的名单 {P1,P2,P3,...,PN} 每个人有不同的利益,其中有些已经申请了多个作业(每个人都有工作,他们可以做一个列表) 没有人被允许做3个以上的就业机会。 所以,这个问题可以通过寻找在下面的图中的一个最大流量解决 我理解这个解决方案,但 问题的较 ..
发布时间:2015-11-30 22:30:52 C/C++

错误使用Kruskal算法发现的最小值生成树

我写的code,从增加顶点成为图形和更新边的权重,然后找出最小生成树。我想我已经做到了,但似乎有它的一些错误,但我不能找到它out.The系统使用Valgrind的,并表明,MST的呼唤“无效写尺寸4”和“无效的读取大小为4” ,但我认为它的工作Valgrind的的罚款。整个误差下面code被称为像 CreateNewGraph(); AddEdge(1,2,10); AddEdge(2,4, ..
发布时间:2015-11-30 22:30:39 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,你会到达另外两个的第一步。留给你的,不属于生成树它们之间的边缘 ..

Dijkstra的(或其他最短路径算法),其中终端节点可以启动节点

传统的*实现Dijkstra的不处理好这种情况。我想我已经想出了一些解决方案,将工作,但他们不是特别优雅**。这是一个已知的问题与标准的解决方案? 这是假设的不平凡的解决方案,即一个路径像A-> B-> C-> A,而不只是A->一个。 *当我说传统的我的意思是标记每个节点所访问。 **存储的时间和每一节点已被访问的数目和基础终止条件对端节点是否是开始节点 解决方案 拆分为两个节点,所谓 ..
发布时间:2015-11-30 22:24:15 C/C++

A *寻路的java工作不正常

我创建一个Java的迷宫游戏中,想要添加一个智者鬼(像吃豆子),其走向用户的位置追上他。对于智者鬼我选择了A *寻路算法,发现下面的链接实现该算法: HTTPS :?//$c$c.google.com/p/a-star/source/browse/trunk/java/PathFinder.java R = 8 HTTPS :?//$c$c.google.com/p/a-star/source ..
发布时间:2015-11-30 22:24:02 Java开发

基于动态规划和图形算法,一个不错的问题

代理是 N 生产者和 M 消费者之间的作品。 我日生产,产生 S_I 糖果和Ĵ日消费消耗 b_j 糖果在今年。对于每一个糖果的销售,代理获得 1 美元的回报。对于一些问题,一是严格的规则中定义一个制片人应该是销售的糖果生产商的任何它们之间的距离不大于 100 KM(千米)更大。如果我们有所有对生产者 - 消费者的列表使它们之间的距离比 100 KM,以下算法中的哪一个混日子寻找最大收益降低? (假 ..
发布时间:2015-11-30 22:21:58 C/C++

检测是否存在一个循环在无向图中

我的问题是关于检测是否存在一个周期。我不在乎发生的周期,但仅当存在一个周期。 特别是,我工作的一个(最大)生成树算法的实现。我已经按降序排列的边缘,然后我挑选的时候一边,并把它放在集合图中边IFF它不会导致一个循环。 我还发现,在只够无向图检查 no_of_edges> no_of_vertices - 1 。这是正确的吗?我试图找到一种情况时,这是不正确的BT我不能。当然,这并不意味着,这是正 ..
发布时间:2015-11-30 22:14:52 C/C++

验证和标准化偏序集

我对数组是这样的: [“A”,“B”],[“B”,“D”],[“A”,“C”],[“E”,“D “],[”一个“,”D“],...,[”S“,”F“]] 什么是有效的方法来检查,如果给定阵列的前preSS偏序?也就是说,有是给定的数组中没有“循环”像 [“A”,“B”],[“B”,“C”],[“C”,“A”] 。 如果可以确认,在阵列前presses偏序,我要通过除去所有能 ..
发布时间:2015-11-30 22:14:02 C/C++

如何找到图中精确长度的路径

我想找个固定长度的路径(假设在运行程序)的无向图。我用我的图的邻接矩阵。 我试图用一些算法,如DFS或A *,但他们只返回的最短路径。 节点不能再次访问。 所以我们可以说,我的图有9个节点的最短路径是由4个节点建设。 我想有一个会“告诉”我想找到路径,具有(例如)7个节点的算法额外的变量,它将返回其包括在我的预期路径{1,2,4,5,6节点, 7,8}。 当然,如果有,我想对路径无解,它 ..
发布时间:2015-11-30 22:12:51 C/C++

寻找最小/最大重量Steine​​r树

我问Reddit上这个问题,但还没有一个解决方案融合呢。由于我的很多搜索带给我堆栈溢出,我决定试试这个。这里是我的问题的一个简单的配方: 由于加权无向图G(V,E,W)和顶点S在克子,找到最小/最大重量树跨越S.添加的顶点是不允许的。的基本模型的扩展是加入边缘与0重量,而且必须排除的顶点。这似乎类似于这里提出这样的问题: 也有更深入的了解什么值的边缘可以采取。每个边缘实际上是一个关联的概率,这 ..
发布时间:2015-11-30 22:10:36 C/C++

寻找独特的循环闭合曲线图

我终于写了一个code找出所有的循环可能与当前的配置。例如,对于下面的图像,下面是输入到我的程序 网​​络2 = Pipes.NetworkManager(顶点= [1,2,3,4] 节点= [(1,2),(1,3),(1,4),(2,1),(2,3), (2,4),(3,1),(3,2),(3,4),(4,1 ..
发布时间:2015-11-30 22:07:47 Python

两个顶点通过一组给定的最短路径

假设我有一个源节点的取值,目的节点的ð和一组 A 的中间节点 P1,P2,P3 ...... 在边加权无向图。我想找到顶点的的丕∈A 的是 减少DIST(S,PI)+ DIST(D,PI)的?此外,从整体路径的取值为D 应包含的只有一个从设置节点的。什么是一个高效的算法呢?我不想去与蛮力的方法。 解决方案 你说的蛮力是什么意思? 没有假设 如果您删除有关“从集合A中只有一个节点”比你可以进 ..
发布时间:2015-11-30 22:06:15 C/C++

如何实现一个无向图使用邻接表在Perl或Java PPI?

我在类似下面的格式的文本文件的蛋白质的列表: ATF-1 MET4 ATF-1 NFE2L1 ATF-2 ATF-7 ATF-2 B-ATF ARR1 ARR1 ARR1 CHOP 我想从文本文件阅读和使用邻接表无论是在Java或Perl中的无向图执行。我要计算的最小和最大数目的边,节点之间的最短和最长的路径,以及其它类似的功能。 解决方案 在Perl中,你可以重新present ..
发布时间:2015-11-30 21:56:09 Java开发