Algorithm 克鲁斯卡尔';s MST算法非确定性?

Algorithm 克鲁斯卡尔';s MST算法非确定性?,algorithm,computer-science,greedy,kruskals-algorithm,Algorithm,Computer Science,Greedy,Kruskals Algorithm,下面是我们的CS算法讲师提供的Kruskal最小生成树算法的伪代码。我想知道MST算法是否是非确定性的。给定两条具有相同权重的边,如果将两条边相加到T时,两条边都没有形成一个循环,算法将如何决定它们之间的关系。当然,如果是随机的,则无法确定将哪些确切边相加到T的结果 Given an undirected connected graph G=(V,E) T=Ø //Empty set, i.e. empty E'=E while E'≠Ø do b

下面是我们的CS算法讲师提供的Kruskal最小生成树算法的伪代码。我想知道MST算法是否是非确定性的。给定两条具有相同权重的边,如果将两条边相加到T时,两条边都没有形成一个循环,算法将如何决定它们之间的关系。当然,如果是随机的,则无法确定将哪些确切边相加到T的结果

    Given an undirected connected graph G=(V,E)    
    T=Ø //Empty set, i.e. empty
    E'=E
    while E'≠Ø do
    begin
        pick an edge e in E' with minumum weight
        if adding e to T does not form a cycle then
            T = T∪{e} //Set union, add e to T
        E' = E'\{e} //Set difference, remove e from E'
    end

谢谢

Kruskal的算法是确定性的,如果你为你有选择的情况选择了一个确定性的选择函数,否则它是非确定性的。如果随机选择,如果存在多种可能性,则无法判断哪些边在MST中结束。

Kruskal的算法是确定性的,如果您为有选择的情况选择确定性选择函数,否则它是不确定性的。如果随机选择,如果存在多种可能性,则无法判断哪些边最终会出现在MST中

给定两条具有相同权重的边,算法将如何决定 当添加到T时,如果两条边都没有形成一个循环,则在它们之间 如果它是随机的,那么就无法确定确切的结果 将边添加到T

    Given an undirected connected graph G=(V,E)    
    T=Ø //Empty set, i.e. empty
    E'=E
    while E'≠Ø do
    begin
        pick an edge e in E' with minumum weight
        if adding e to T does not form a cycle then
            T = T∪{e} //Set union, add e to T
        E' = E'\{e} //Set difference, remove e from E'
    end
这取决于实现

Kruskal的算法找到了连通加权图(不是树)的许多可能的MST之一。这是因为在每次迭代中,您都有多个选择(从具有相同权重的边中选择边)。这是非确定性位。当然,当您将实现算法时,您将做出选择(即施加顺序),但是不同的实现很可能施加不同的顺序。因此,您将有两个算法实现,正确地解决同一个问题,但最终结果可能不同

给定两条具有相同权重的边,算法将如何决定 当添加到T时,如果两条边都没有形成一个循环,则在它们之间 如果它是随机的,那么就无法确定确切的结果 将边添加到T

    Given an undirected connected graph G=(V,E)    
    T=Ø //Empty set, i.e. empty
    E'=E
    while E'≠Ø do
    begin
        pick an edge e in E' with minumum weight
        if adding e to T does not form a cycle then
            T = T∪{e} //Set union, add e to T
        E' = E'\{e} //Set difference, remove e from E'
    end
这取决于实现

Kruskal的算法找到了连通加权图(不是树)的许多可能的MST之一。这是因为在每次迭代中,您都有多个选择(从具有相同权重的边中选择边)。这是非确定性位。当然,当您将实现算法时,您将做出选择(即施加顺序),但是不同的实现很可能施加不同的顺序。因此,您将有两个算法实现,正确地解决同一个问题,但最终结果可能不同