Prims Algorithm: Difference between revisions

From Rice Wiki
No edit summary
No edit summary
Line 40: Line 40:
Prove that <math>A = OPT - (x, y)</math> is a MST for the subproblem
Prove that <math>A = OPT - (x, y)</math> is a MST for the subproblem
<math>G - X</math>
<math>G - X</math>
By contradiction, assume that <math>A</math> is not optimal. There must
be <math>B</math> such that
<math>
w(B) < w(A)
</math>
Adding the edge (x, y) back to both graphs, we have
<math>
w(B + w(x,y)) < w(A + w(x,y)) = w(OPT)
</math>
Therefore, OPT is not the optimal solution.
By contradiction, <math>A</math> must be optimal.




[[Category:Algorithms]]
[[Category:Algorithms]]

Revision as of 01:23, 8 March 2024

Approach: Greedy

See Minimum_Spanning_Tree

Implementation

for each u in V:
    key[u] = infinity   // cost array
    pi[u] = infinity    // from array
Q = new PriorityQueue(V)
key[root] = 0
while Q is not empty:
    u = extractMin(Q)
    # Reduce nodes
    for v in adj[u]:
        if v in Q and w[u,v] < key[v]:
            key[v] = w[u,v]

Analysis

Priority queue is slower than array when the graph is dense, so sometimes it's better to use Dijsktra's algorithm.

Proof: Greedy

Suboptimality

Given MST tree for the graph G

where the number of edges is , the weight of edges is minimum, and the tree is spanning.

Consider , where X is a leaf node.

Prove that is a MST for the subproblem

By contradiction, assume that is not optimal. There must be such that

Adding the edge (x, y) back to both graphs, we have

Therefore, OPT is not the optimal solution.

By contradiction, must be optimal.