|
|
1
33
您需要计算保持顶点可达性的最小图。 |
|
2
1
有几种方法可以解决这个问题,但首先需要更精确地定义问题。首先,这里的图是非循环的和有方向的:这永远是真的吗? 接下来,您需要定义“冗余边”的含义。在本例中,您从一个具有两条路径a->c:一个通过b,一个直接。从这一点,我推断“多余”的意思是这样的。允许 v 和 E⊆ V×V 边的集合。看起来你在定义所有的边 v v 比最长边短的称为“冗余”。因此,最简单的方法是使用深度优先搜索,枚举路径,当您找到一个较长的新路径时,将其保存为最佳候选路径。
|
|
|
3
1
给定图中不包含“冗余边”的子图称为“A” spanning tree “那是一张图表。对于任何给定的图,多个生成树都是可能的。 所以,为了去除多余的边,你需要做的就是找到你的图的任何一个生成树。你可以使用任何 depth-first-search breadth-first-search 算法并继续搜索,直到您访问了图中的每个顶点。 |
|
|
4
1
因为@Craig提到的Wikipedia文章只给出了一个实现的成功案例,所以我用Java 8 streams发布了我的实现:
|
|
|
5
0
我认为最简单的方法是,想象一下在实际工作中会是什么样子,想象一下如果你有关节,比如 (A->B)(B->C)(A->C),想象一下,如果近图之间的距离等于1,那么
换句话说,最小化。 这只是我的想法,我将如何考虑它在一开始。网上有各种各样的文章和资料来源,你可以查看它们并深入了解。
Algorithm for Removing Redundant Edges in the Dual Graph of a Non-Binary CSP Graph Data Structure and Basic Graph Algorithms Google Books, On finding minimal two connected Subgraphs Redundant trees for preplanned recovery in arbitraryvertex-redundant or edge-redundant graphs |
|
|
6
0
我有一个类似的问题,最终以这种方式解决:
我的数据结构是由
|
|
|
bb ef · 如何使用递归从列表中删除某些内容?python 8 年前 |
|
|
Adam Morad · 方案更改树值 8 年前 |
|
johnny 5 · 角度将ViewChild绑定到类中的属性 8 年前 |
|
|
user2467011 · 为什么给定的二叉树是用空节点构造的? 8 年前 |