Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.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 确定是否存在包含2个不同边集的某些边的MST_Algorithm_Graph Algorithm_Minimum Spanning Tree_Kruskals Algorithm - Fatal编程技术网

Algorithm 确定是否存在包含2个不同边集的某些边的MST

Algorithm 确定是否存在包含2个不同边集的某些边的MST,algorithm,graph-algorithm,minimum-spanning-tree,kruskals-algorithm,Algorithm,Graph Algorithm,Minimum Spanning Tree,Kruskals Algorithm,设G=(V,E)是一个加权连通无向图。设T1和T2为两个不同的MST。假设我们可以写出E=(a1u bu A2)这样: B是T1和T2边缘的交点, A1=T1-B A2=T2-B 假设G中的每个MST都包含B的所有边,找到一个算法来确定是否存在一个MST,它在A1中至少包含一条边,在A2中至少包含一条边 编辑:我已经删除了这里的部分。我认为它弊大于利。您应该将您的边排序为红色边优先于蓝色边供选择。然后您可以使用与的算法相同的任何MST算法: 如果一个图是空的,那么我们马上就完成了。因此,我们假设

设G=(V,E)是一个加权连通无向图。设T1和T2为两个不同的MST。假设我们可以写出E=(a1u bu A2)这样:
B是T1和T2边缘的交点,
A1=T1-B
A2=T2-B

假设G中的每个MST都包含B的所有边,找到一个算法来确定是否存在一个MST,它在A1中至少包含一条边,在A2中至少包含一条边


编辑:我已经删除了这里的部分。我认为它弊大于利。

您应该将您的边排序为红色边优先于蓝色边供选择。然后您可以使用与的算法相同的任何MST算法:

如果一个图是空的,那么我们马上就完成了。因此,我们假设 否则。该算法从一棵由单个 顶点,并一次连续增加一条边的大小,直到 它跨越所有顶点。输入:非空连通加权图 使用顶点V和边E(权重可以为负数)。初始化: Vnew={x},其中x是来自V,Enew的任意节点(起点) ={}重复,直到Vnew=V:选择一条具有最小权重的边{u,V},使u在Vnew中,V不在Vnew中(如果有多条具有最小权重的边) 相同的权重,可以拾取其中任何一个)将v添加到Vnew和{u,v} 到Enew输出:Vnew和Enew描述最小生成树


您应该对边进行排序,以便选择红色边优先于蓝色边。然后您可以使用与的算法相同的任何MST算法:

如果一个图是空的,那么我们马上就完成了。因此,我们假设 否则。该算法从一棵由单个 顶点,并一次连续增加一条边的大小,直到 它跨越所有顶点。输入:非空连通加权图 使用顶点V和边E(权重可以为负数)。初始化: Vnew={x},其中x是来自V,Enew的任意节点(起点) ={}重复,直到Vnew=V:选择一条具有最小权重的边{u,V},使u在Vnew中,V不在Vnew中(如果有多条具有最小权重的边) 相同的权重,可以拾取其中任何一个)将v添加到Vnew和{u,v} 到Enew输出:Vnew和Enew描述最小生成树


要么这个黑匣子是一条红鲱鱼,要么这个问题的原始装腔作势者应该更新他们的知识。嗨,大卫。首先,我们还不知道拟阵是什么,所以我不明白你的意思。我说过可以使用上一段中描述的算法,但你不必这样做。要么黑匣子是一条红鲱鱼,要么问题的原始装腔作势者应该更新他们的知识。嗨,大卫。首先,我们还不知道拟阵是什么,所以我不明白你的意思。我说可以使用上一段描述的算法,但你不必。谢谢你的回答。对不起,我想我应该用不同的方式来表达我的问题。我们需要找到一个算法来决定是否有一个MST在A1中至少包含一条边,在A2中至少包含一条边。因此,对A1和A2进行排序,然后选择A1和A2中的第一条边。现在对另一条边执行算法。你如何知道如果有另一个MST,你会找到它?你想在你的图中找到所有的MST吗?不。我们得到2不同的MST:T1和T2。我们需要确定是否至少有一个MST包含A1的边和A2的边(显然,这意味着MST不同于T1和T2)。感谢您的回答。对不起,我想我应该用不同的方式来表达我的问题。我们需要找到一个算法来决定是否有一个MST在A1中至少包含一条边,在A2中至少包含一条边。因此,对A1和A2进行排序,然后选择A1和A2中的第一条边。现在对另一条边执行算法。你如何知道如果有另一个MST,你会找到它?你想在你的图中找到所有的MST吗?不。我们得到2不同的MST:T1和T2。我们需要确定是否至少有一个MST包含A1的边和A2的边(显然,这意味着MST不同于T1和T2)。