Questions tagged «spanning-trees»

连通无向图G的生成树是具有G的所有顶点和一些边的树。

7
最小生成树与最短路径
最小生成树算法和最短路径算法有什么区别? 在我的数据结构课程中,我们介绍了两种最小生成树算法(Prim和Kruskal)和一种最短路径算法(Dijkstra)。 最小生成树是图形中跨越所有顶点的树,并且树的总权重最小。最短路径很明显,它是从一个顶点到另一个顶点的最短路径。 我不明白的是,由于最小生成树的总权重最小,树中的路径不是最短的路径吗?有人可以解释我所缺少的吗? 任何帮助表示赞赏。


3
图的最小生成树何时不唯一
给定一个加权的无向图G:哪些条件必须成立,以便G 有多个最小生成树? 我知道,当所有权重都不同时,MST是唯一的,但是您不能撤销此声明。如果图中有多个权重相同的多重边,则可能有多个MST,但也可能只有一个: 在此示例中,左侧的图具有唯一的MST,而右侧的图则没有。 我最能找到MST非唯一性的条件是: 考虑图G中的所有无弦循环(不包含其他循环的循环)。如果在这些循环中的任何一个中最大加权边存在多次,则该图将没有唯一的最小生成树。 我的想法是像这样一个周期 使用n个顶点,您可以精确地忽略其中一条边,但仍将所有顶点连接在一起。因此,您有多种选择来删除具有最大权重的边缘以获得MST,因此MST不是唯一的。 但是,然后我想到了这个示例: 您可以看到此图的确有一个符合我的条件的循环:(E,F,G,H),但据我所知,最小生成树是唯一的: 因此,看来我的情况不正确(或者可能不完全正确)。我非常感谢为最小生成树的非唯一性找到必要和充分条件的任何帮助。

2
加权图的最小生成树在给定的权重下具有相同数量的边吗?
如果加权图具有两个不同的最小生成树和,那么这是真的,对于任何边缘在,在边缘的数量用相同的重量(包括本身)与的边数相同,权重与?相同。如果这个说法是正确的,那我们怎么证明呢?T 1 = (V 1,E 1)T 2 = (V 2,E 2)e E 1 E 1 e e E 2 eGGGŤ1个= (V1个,E1个)T1=(V1,E1)T_1 = (V_1, E_1)Ť2= (V2,E2)T2=(V2,E2)T_2 = (V_2, E_2)ËeeË1个E1E_1Ë1个E1E_1ËeeËeeË2E2E_2Ëee

4
图有两个/三个不同的最小生成树?
我试图找到一种有效的方法来检测给定图G是否具有两个不同的最小生成树。我还试图找到一种方法来检查它是否具有3个不同的最小生成树。我曾经想过的天真的解决方案是运行一次Kruskal算法,然后找到最小生成树的总权重。稍后,从图中移除一条边并再次运行Kruskal算法,并检查新树的权重是否为原始最小生成树的权重,因此对图中的每条边也是如此。运行时是O(| V || E | log | V |),这一点都不好,我认为有更好的方法来执行。 任何建议都会有所帮助,在此先感谢

2
为什么有k界的生成树问题NP完全?
以界的生成树问题是您拥有无向图G (V ,E )的问题,您必须决定它是否具有生成树,以使每个顶点的度数最大为k。kkkG(V,E)G(V,E)G(V,E)kkk 我意识到对于的情况,这就是哈密顿路径问题。但是我在k > 2的情况下遇到麻烦。我试着从可以将更多节点添加到k = 2的现有生成树上的角度考虑问题,并且也许由于基数是NP完整的,因此添加内容也会使其也成为NP完整的,但这似乎并没有对。我正在自学CS,并且在理论方面遇到麻烦,因此我们将不胜感激!k=2k=2k=2k>2k>2k>2k=2k=2k=2

2
具有双重权重参数的最小生成树
考虑图。每个边缘具有两个权重和。查找最小化乘积。该算法应相对于在多项式时间内运行 。ê 甲é 乙é (Σ ê ∈ Ť 甲ë)(Σ Ë ∈ Ť 乙ë) | V | ,| E |G(V,E)G(V,E)G(V,E)eeeAeAeA_eBeBeB_e(∑e∈TAe)(∑e∈TBe)(∑e∈TAe)(∑e∈TBe)\left(\sum_{e \in T}{A_e}\right)\left(\sum_{e \in T}{B_e}\right)|V|,|E||V|,|E||V|, |E| 我发现很难在生成树上适应任何传统算法(Kruskal,Prim,Edge-Deletion)。怎么解决呢?有什么提示吗?

1
推断优化类型
在工作中,我的任务是推断一些有关动态语言的类型信息。我将语句序列重写为嵌套let表达式,如下所示: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T else F; Z => if x then { T; Z } else { F; Z } 由于我从一般类型信息开始,并试图推断出更具体的类型,因此自然的选择是精简类型。例如,条件运算符返回其真假分支类型的并集。在简单的情况下,它效果很好。 但是,在尝试推断以下类型时遇到了障碍: function …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
修正的Borůvka算法的更严格分析
Borůvka算法是计算图的最小生成树的标准算法之一,。G=(V,E)G=(V,E)G = (V,E)|V|=n,|E|=m|V|=n,|E|=m|V| = n, |E| = m 伪代码为: MST T = empty tree Begin with each vertex as a component While number of components > 1 For each component c let e = minimum edge out of component c if e is not in T add e to T …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.