Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 使用DFS查找MST的算法_Algorithm_Graph_Graph Algorithm_Depth First Search - Fatal编程技术网

Algorithm 使用DFS查找MST的算法

Algorithm 使用DFS查找MST的算法,algorithm,graph,graph-algorithm,depth-first-search,Algorithm,Graph,Graph Algorithm,Depth First Search,我有以下算法:对于边上具有正权函数的给定(有限无向简单)图G=(V,E): 运行DFS(深度优先搜索),直到发现一条正在后退的边或DFS停止。如果停止,返回G 在由后向边构成的圆上,找到最重的边并将其从G中移除 返回到1 现在我需要了解这个算法在做什么。我已经证明了这个算法给了我一个G的生成树,我相信这是一个最小生成树,但我没有证明。请帮我证明这一点。看起来您正在执行的是的一个变化,但您仍然必须证明您的算法与删除所有未断开图形的最高加权边是等价的。证明,当e是G循环中最重的边时,G-e的MST的

我有以下算法:对于边上具有正权函数的给定(有限无向简单)图G=(V,E):

  • 运行DFS(深度优先搜索),直到发现一条正在后退的边或DFS停止。如果停止,返回G
  • 在由后向边构成的圆上,找到最重的边并将其从G中移除
  • 返回到1

  • 现在我需要了解这个算法在做什么。我已经证明了这个算法给了我一个G的生成树,我相信这是一个最小生成树,但我没有证明。请帮我证明这一点。

    看起来您正在执行的是的一个变化,但您仍然必须证明您的算法与删除所有未断开图形的最高加权边是等价的。

    证明,当e是G循环中最重的边时,G-e的MST的代价不大于G的MST的代价(设T是G的MST,利用T和关于e的假设构造G-e的生成树T′,代价为(T′)≤ 成本(T)。通过对| E |的归纳得出结论,该算法产生了MST。

    不完全如此。。我是一名家庭教师,我有一大堆问题要向我的学生解释,但我坚持做这件事。是的,我想这是一种方法。。但是我的算法有不同的选择顺序,而且每一条边并不总是有一个唯一的圆