问题标签 [undirected-graph]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 如何使用 Dinic 算法在无向图中找到最小切边?
我正在寻找一种算法,当一个给定的两个节点's'和't'在一个未处理的图中,找到最小切边,它将图分成两个A和B,'s'将在A和't ' 将在 B.
我看到大多数人建议使用 Ford-Fulkerson 算法来完成这项任务,在这里。我在想是否可以使用 Dinic 的算法。由于 Dinic 的算法可以通过动态树来加速。因为我想以最快的方式找到最小切边。
哪种算法可以更快地在巨大的无向图中找到最小切边?
在研究这些算法的细节时,我想听听一些建议。
提前致谢
graph - 知道无向图是否连通的最有效算法
我一直在尝试找到一种算法来搜索图是否已连接。该图是无向的,我只想找到一个解决方案(可以有多个)或者如果没有。我在找一个alg。执行接近线性时间,可能是 O(logN) 或 O(NlogN)。
DFS 能否胜任这项任务,或者对于这个特定问题是否有另一种选择?
matlab - 如何在matlab中删除无向图中的倒边
我有一个边缘列表作为单元格数组 ['a' 'b','c' 'b','b' 'a']
我一直在尝试使用 G=graph(s,t) 在 MATLAB 中生成一个图形,但我得到一个重复边的错误,我认为这是因为 [ab] 和 [ba]。我无法删除单元格数组中的那些。
我怎样才能删除那些?
谢谢你。
dijkstra - Dijkstra 的算法如何在一个程序中同时适用于无向和有向算法?
该图以如下格式表示:
我需要使用相邻列表来读取这些边缘。但是如果我想把它当作一个无向图,也就是忽略所有边的所有直接性。我怎么知道每对节点的连通性?
例如,在无向图中,(NODE 2, NODE 8) 之间的最短距离是 2 (2->1>8),但是使用 Dijkstra 算法对该图得到 4 (2->3->6->7 -> 8)。如何在仍然使用相同技术读取边的同时表示无向图?
graph - 唯一路径无向循环图
我正在处理图表中的一个问题,并试图找出找到独特的路径
让我举个例子,让我们考虑一个有 4 个节点和 6 个边的图,边如下 -
1 2
2 3
3 4
4 1
1 3
2 4
长度为 5 的唯一循环路径将是 -
1 -> 2 -> 3 -> 4 -> 1
1 -> 3 -> 2 -> 4 -> 1
1 -> 2 -> 4 -> 3 -> 1
如果路径的边集相等,则认为两条路径相等。考虑两条路径 1 -> 2 -> 3 -> 4 -> 1 和 1 -> 3 -> 2 -> 4 -> 1 第一条路径就是集合 = [(1,2), (2,3 ), (3,4), (4,1)],而第二个是 = [(1,3), (3,2), (2,4), (4,1)]
显然,这两组是不同的,因此路径也是不同的。边的顺序无关紧要,因为您只比较任何两组(路径)之间公共边的存在。
获得循环路径后,如何检查路径中是否具有相同的节点集?即 , 1 -> 2 -> 3 -> 4 -> 1 和 1 -> 4 -> 3 -> 2 -> 1 具有相同的集合,即
[(1,2), (2,3), (3 ,4), (4,1)] 以不同的顺序。
我想实现一对集合的映射并检查重复项.. 仍在寻找更好的选择。对如何进行的任何帮助表示赞赏?
java - 为什么我在 Java 中针对无向图的 Dijkstra 算法实现不起作用?
我对有向图的实现工作正常。这是一个“惰性”版本,因为它使用简单的优先级队列而不是索引队列。我更改了代码以获得无向图的解决方案,但它不起作用。dijkstra(int s)
是一个类的方法Graph
。的实现Graph
基于邻接列表。整个代码基于 Sedgewick 书中的解释。
c - 邻接表 C 的无向图中的边有问题
我一直在尝试使用无向图创建邻接列表。一切都很顺利,除了当我需要一个节点(或我的代码中的顶点)有多个连接到它的边时。我有 6 个顶点 A、B、C、D、E、F,只有从 A 到 B、A 到 C、A 到 D 的边, 这就是概念上的样子。 我一直在一遍又一遍地尝试提出一种将多个边缘连接在一起的算法,但我无法弄清楚。这是我的结构供参考,我的 else 语句是我需要走到链接边缘的末端并附加新边缘的地方。