Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Datenstrukturen, Algorithmen und Programmierung 2 (DAP2)
Graphalgorithmen
Idee des Algorithmus von Prim Verwende generischen Algorithmus Nimm immer eine Kante mit minimalem Gewicht, die einen Knoten in Baum A mit einem Knoten verbindet, der nicht in Baum A ist und füge diese zu A hinzu Die Kante ist eine leichte Kante, die Baum A mit einem weiteren Knoten verbindet Damit ist sie sicher für A
Graphalgorithmen
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A 5 6 3 5 8 9 1 4 3 10 7
Graphalgorithmen Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Prim(G,r) 1. Q ←V –{r} 2. A ←∅ 3. while Q ≠∅ 4. Finde Kante (u,v) mit minimalem Gewicht, die den Schnitt (Q,V-Q) kreuzt, wobei u ∈Q 5. Q ←Q - {u} 6. A ←A∪{(u,v)} 7. return A Graphalgorithmen 5 6 3 5 8 9 1 4 3 10 7
Comments