SlideShare ist ein Scribd-Unternehmen logo
Einführung in minmale Spannbäume
       und deren Berechnung


        Johannes Diemke           Nils Sommer

Universität Oldenburg, FK II – Department für Informatik
       Vortrag im Rahmen des Proseminars 2006


                                                           1
Inhalt
■ Spannbäume
■ Greedy Algorithmen
■ Algorithmus von Kruskal
■ Prims Algorithmus
■ Praktische und theoretische Bedeutung
■ Resümee




                                               2
Spannbäume
■ Spannbaum T=(V,E')
■ Teilgraph eines ungerichteten
  zusammenhängenden Graphen G=(V,E)
■ Mit E'⊂E
■ T ist ein Baum (keine Zyklen)




                                      3
Spannbäume
■ Kantengewichtete Graphen G=(V,E,w)
■ Zuordnung einer reelen Zahl zu jeder Kante
■ Gewichtungsfunktion w:E ⇒ R
■ Gewicht des Graphen

                       G=∑e∈E w  e


■   Ein Spannbaum ist minimal gdw. kein
    Spannbaum mit geringerem Gewicht existiert




                                                4
Algorithmus von Kruskal
■ Konstruiert einen minimalen Spannbaum
  T=(V,E') aus einem zusammenhängenden,
  ungerichteten, gewichteten Graphen G=(V,E)
■ Funktionsweise:
    
        T enthält genau die Knoten aus G
    
        Setze E'={}
    
        Füge die Kanten sukzessiv in aufsteigender
        Reihenfolge ihres Gewichtes in Abhängigkeit einer
        Auswahlbedingung zu E' hinzu




                                                        5
Algorithmus von Kruskal
■   Auswahlbedingung:
    
        Führt das Einfügen einer Kante in T zu Zyklen, so
        verwerfe die Kante. Ansonsten füge sie ein.
■   Pseudocode:
    while(!isConnectedGraph(T)) {

         edge = getEdgeWithMinimumCost(E);

         deleteEdgeFromGraph(E, edge);

         if(!addingEdgeToGraphCreatesCycle(T, edge)) {
           addEdgeToGraph(T, edge)
         }

    }

                                                            6
Algorithmus von Kruskal
■   Konkrete Implementierungen nutzen:
    
        Priority-Queue
    
        Merge-Find-Struktur
■ Hauptaufwand durch Verwaltung der Priotry-
  Queue
■ Insgesamt ergibt sich ein Gesamtaufwand von
  O(e log e)




                                              7
Prims Algorithmus
■   Schritte:
    
        Wähle beliebigen Knoten
    
        Füge Kante hinzu, die einen neuen Knoten aus
        dem Ausgangsgraphen mit dem neuen Graphen
        verbindet.
    
        Kante zu diesem Knoten muss minimale
        Gewichtungen haben
    
        Fertig wenn Kantenmenge von beiden Graphen
        gleich




                                                       8
Prims Algorithmus
■   Pseudocode:

public static Graph primMinSpanTree(Graph 
  input) {
   Graph T = new Graph();
   T.addNode(input.getAnyNode());
   while(!T.nodesEqual(input)) {
     Edge edges[] = 
      getEdgesWhichAddNewNode(input, T);
       edges.sortByWeight();
       T.addEdgeWithNode(edges[0]);
   }
   return T;
}
                                             9
Prims Algorithmus
■   Noch stark optimierbar
    
        Datenstrukturen
    
        Sortieralgorithmus
■ In diesem Fall O(n²)
■ Immer optimal




                                             10
Praktische und Theoretische Bedeutung
■   Theorie
    
        Lehre
    
        Basis für komplexere Probleme
■   Praxis:
    
        Netzwerke: Computer, Elektrische Netze
    
        Routing




                                                 11
Resümee
■ Weitgehend erforschtes Gebiet
■ Forschung schon in den 50er Jahren (Bell)
■ In der Praxis oft eingesetzt




                                              12
Fragen ?




       13

Weitere ähnliche Inhalte

Was ist angesagt?

Lerntagebuch mathe
Lerntagebuch matheLerntagebuch mathe
Lerntagebuch mathe
guestdf0a063
 
Lec 1 numstoch motivation und_grundlagen
Lec 1 numstoch motivation und_grundlagenLec 1 numstoch motivation und_grundlagen
Lec 1 numstoch motivation und_grundlagen
Ahmed Labib
 
Aufgaben Flächenberechnung
Aufgaben FlächenberechnungAufgaben Flächenberechnung
Aufgaben Flächenberechnung
oberprima
 
Integralrechnung
IntegralrechnungIntegralrechnung
Integralrechnung
oberprima
 
Dimensionstheorie Noetherscher Ringe
Dimensionstheorie Noetherscher RingeDimensionstheorie Noetherscher Ringe
Dimensionstheorie Noetherscher Ringe
Heinrich Hartmann
 
Dimension und Multiplizität von D-Moduln
Dimension und Multiplizität von D-ModulnDimension und Multiplizität von D-Moduln
Dimension und Multiplizität von D-Moduln
Heinrich Hartmann
 
4to Trabajo de Matematica Aplicada II - Series de Fourier - UNTECS
4to Trabajo de Matematica Aplicada II - Series de Fourier - UNTECS4to Trabajo de Matematica Aplicada II - Series de Fourier - UNTECS
4to Trabajo de Matematica Aplicada II - Series de Fourier - UNTECS
Ing. Electrónica xD
 
Distributed systems and parallel processing
Distributed systems and parallel processingDistributed systems and parallel processing
Distributed systems and parallel processing
julianvollmer
 
Tabla%20de%20transformadas%20de%20 laplace[1]
Tabla%20de%20transformadas%20de%20 laplace[1]Tabla%20de%20transformadas%20de%20 laplace[1]
Tabla%20de%20transformadas%20de%20 laplace[1]
Draco Ismael Hernandex
 
06 abiturvorbereitung analysis kurvendiskussion
06 abiturvorbereitung analysis kurvendiskussion06 abiturvorbereitung analysis kurvendiskussion
06 abiturvorbereitung analysis kurvendiskussion
PaulFestl
 
Aufgaben Flächenberechnung
Aufgaben FlächenberechnungAufgaben Flächenberechnung
Aufgaben Flächenberechnung
oberprima
 

Was ist angesagt? (13)

Lerntagebuch mathe
Lerntagebuch matheLerntagebuch mathe
Lerntagebuch mathe
 
Lec 1 numstoch motivation und_grundlagen
Lec 1 numstoch motivation und_grundlagenLec 1 numstoch motivation und_grundlagen
Lec 1 numstoch motivation und_grundlagen
 
Aufgaben Flächenberechnung
Aufgaben FlächenberechnungAufgaben Flächenberechnung
Aufgaben Flächenberechnung
 
Integralrechnung
IntegralrechnungIntegralrechnung
Integralrechnung
 
HM1 Übung
HM1 ÜbungHM1 Übung
HM1 Übung
 
Integrale
IntegraleIntegrale
Integrale
 
Dimensionstheorie Noetherscher Ringe
Dimensionstheorie Noetherscher RingeDimensionstheorie Noetherscher Ringe
Dimensionstheorie Noetherscher Ringe
 
Dimension und Multiplizität von D-Moduln
Dimension und Multiplizität von D-ModulnDimension und Multiplizität von D-Moduln
Dimension und Multiplizität von D-Moduln
 
4to Trabajo de Matematica Aplicada II - Series de Fourier - UNTECS
4to Trabajo de Matematica Aplicada II - Series de Fourier - UNTECS4to Trabajo de Matematica Aplicada II - Series de Fourier - UNTECS
4to Trabajo de Matematica Aplicada II - Series de Fourier - UNTECS
 
Distributed systems and parallel processing
Distributed systems and parallel processingDistributed systems and parallel processing
Distributed systems and parallel processing
 
Tabla%20de%20transformadas%20de%20 laplace[1]
Tabla%20de%20transformadas%20de%20 laplace[1]Tabla%20de%20transformadas%20de%20 laplace[1]
Tabla%20de%20transformadas%20de%20 laplace[1]
 
06 abiturvorbereitung analysis kurvendiskussion
06 abiturvorbereitung analysis kurvendiskussion06 abiturvorbereitung analysis kurvendiskussion
06 abiturvorbereitung analysis kurvendiskussion
 
Aufgaben Flächenberechnung
Aufgaben FlächenberechnungAufgaben Flächenberechnung
Aufgaben Flächenberechnung
 

Mehr von Johannes Diemke

Polymorphie
PolymorphiePolymorphie
Polymorphie
Johannes Diemke
 
Prozedurale Texturen
Prozedurale TexturenProzedurale Texturen
Prozedurale Texturen
Johannes Diemke
 
Pfadplanung mit harmonischen Potentialfeldern
Pfadplanung mit harmonischen PotentialfeldernPfadplanung mit harmonischen Potentialfeldern
Pfadplanung mit harmonischen Potentialfeldern
Johannes Diemke
 
2010-JOGL-12-Projection-Shadows
2010-JOGL-12-Projection-Shadows2010-JOGL-12-Projection-Shadows
2010-JOGL-12-Projection-Shadows
Johannes Diemke
 
2010-JOGL-11-Toon-Shading
2010-JOGL-11-Toon-Shading2010-JOGL-11-Toon-Shading
2010-JOGL-11-Toon-Shading
Johannes Diemke
 
2010-JOGL-10-Wavefront-OBJ
2010-JOGL-10-Wavefront-OBJ2010-JOGL-10-Wavefront-OBJ
2010-JOGL-10-Wavefront-OBJ
Johannes Diemke
 
2010-JOGL-09-Texture-Mapping
2010-JOGL-09-Texture-Mapping2010-JOGL-09-Texture-Mapping
2010-JOGL-09-Texture-Mapping
Johannes Diemke
 
2010-JOGL-07-Hinweise-Uebungsblatt05
2010-JOGL-07-Hinweise-Uebungsblatt052010-JOGL-07-Hinweise-Uebungsblatt05
2010-JOGL-07-Hinweise-Uebungsblatt05
Johannes Diemke
 
2010-JOGL-06-Licht-und-Material
2010-JOGL-06-Licht-und-Material2010-JOGL-06-Licht-und-Material
2010-JOGL-06-Licht-und-Material
Johannes Diemke
 
2010-JOGL-05-Transformationen
2010-JOGL-05-Transformationen2010-JOGL-05-Transformationen
2010-JOGL-05-Transformationen
Johannes Diemke
 
2010-JOGL-04-Geometrische-Primitive-und-Hidden-Surface-Removal
2010-JOGL-04-Geometrische-Primitive-und-Hidden-Surface-Removal2010-JOGL-04-Geometrische-Primitive-und-Hidden-Surface-Removal
2010-JOGL-04-Geometrische-Primitive-und-Hidden-Surface-Removal
Johannes Diemke
 
2010-JOGL-02-Einfuehrung
2010-JOGL-02-Einfuehrung2010-JOGL-02-Einfuehrung
2010-JOGL-02-Einfuehrung
Johannes Diemke
 
2010-JOGL-01-Organisation
2010-JOGL-01-Organisation2010-JOGL-01-Organisation
2010-JOGL-01-Organisation
Johannes Diemke
 
Einführung in minimale Spannbäume und deren Berechnung (Ausarbeitung)
Einführung in minimale Spannbäume und deren Berechnung (Ausarbeitung)Einführung in minimale Spannbäume und deren Berechnung (Ausarbeitung)
Einführung in minimale Spannbäume und deren Berechnung (Ausarbeitung)
Johannes Diemke
 
Software Produktlinien: Einführung und Überblick (Vortrag)
Software Produktlinien: Einführung und Überblick (Vortrag)Software Produktlinien: Einführung und Überblick (Vortrag)
Software Produktlinien: Einführung und Überblick (Vortrag)
Johannes Diemke
 
Theory Exploration (Ausarbeitung)
Theory Exploration (Ausarbeitung)Theory Exploration (Ausarbeitung)
Theory Exploration (Ausarbeitung)
Johannes Diemke
 
Theory Exploration (Vortrag)
Theory Exploration (Vortrag)Theory Exploration (Vortrag)
Theory Exploration (Vortrag)
Johannes Diemke
 
Domainvergabe durch die DENIC (Vortrag)
Domainvergabe durch die DENIC (Vortrag)Domainvergabe durch die DENIC (Vortrag)
Domainvergabe durch die DENIC (Vortrag)
Johannes Diemke
 
Team Oldenburger Robo-Fußball – Abschlussbericht der Projektgruppe 2010
Team Oldenburger Robo-Fußball – Abschlussbericht  der Projektgruppe  2010Team Oldenburger Robo-Fußball – Abschlussbericht  der Projektgruppe  2010
Team Oldenburger Robo-Fußball – Abschlussbericht der Projektgruppe 2010
Johannes Diemke
 

Mehr von Johannes Diemke (20)

Polymorphie
PolymorphiePolymorphie
Polymorphie
 
Prozedurale Texturen
Prozedurale TexturenProzedurale Texturen
Prozedurale Texturen
 
Pfadplanung mit harmonischen Potentialfeldern
Pfadplanung mit harmonischen PotentialfeldernPfadplanung mit harmonischen Potentialfeldern
Pfadplanung mit harmonischen Potentialfeldern
 
2010-JOGL-12-Projection-Shadows
2010-JOGL-12-Projection-Shadows2010-JOGL-12-Projection-Shadows
2010-JOGL-12-Projection-Shadows
 
2010-JOGL-11-Toon-Shading
2010-JOGL-11-Toon-Shading2010-JOGL-11-Toon-Shading
2010-JOGL-11-Toon-Shading
 
2010-JOGL-10-Wavefront-OBJ
2010-JOGL-10-Wavefront-OBJ2010-JOGL-10-Wavefront-OBJ
2010-JOGL-10-Wavefront-OBJ
 
2010-JOGL-09-Texture-Mapping
2010-JOGL-09-Texture-Mapping2010-JOGL-09-Texture-Mapping
2010-JOGL-09-Texture-Mapping
 
2010-JOGL-07-Hinweise-Uebungsblatt05
2010-JOGL-07-Hinweise-Uebungsblatt052010-JOGL-07-Hinweise-Uebungsblatt05
2010-JOGL-07-Hinweise-Uebungsblatt05
 
2010-JOGL-06-Licht-und-Material
2010-JOGL-06-Licht-und-Material2010-JOGL-06-Licht-und-Material
2010-JOGL-06-Licht-und-Material
 
2010-JOGL-05-Transformationen
2010-JOGL-05-Transformationen2010-JOGL-05-Transformationen
2010-JOGL-05-Transformationen
 
2010-JOGL-04-Geometrische-Primitive-und-Hidden-Surface-Removal
2010-JOGL-04-Geometrische-Primitive-und-Hidden-Surface-Removal2010-JOGL-04-Geometrische-Primitive-und-Hidden-Surface-Removal
2010-JOGL-04-Geometrische-Primitive-und-Hidden-Surface-Removal
 
2010-JOGL-02-Einfuehrung
2010-JOGL-02-Einfuehrung2010-JOGL-02-Einfuehrung
2010-JOGL-02-Einfuehrung
 
2010-JOGL-01-Organisation
2010-JOGL-01-Organisation2010-JOGL-01-Organisation
2010-JOGL-01-Organisation
 
Boost C++ Libraries
Boost C++ LibrariesBoost C++ Libraries
Boost C++ Libraries
 
Einführung in minimale Spannbäume und deren Berechnung (Ausarbeitung)
Einführung in minimale Spannbäume und deren Berechnung (Ausarbeitung)Einführung in minimale Spannbäume und deren Berechnung (Ausarbeitung)
Einführung in minimale Spannbäume und deren Berechnung (Ausarbeitung)
 
Software Produktlinien: Einführung und Überblick (Vortrag)
Software Produktlinien: Einführung und Überblick (Vortrag)Software Produktlinien: Einführung und Überblick (Vortrag)
Software Produktlinien: Einführung und Überblick (Vortrag)
 
Theory Exploration (Ausarbeitung)
Theory Exploration (Ausarbeitung)Theory Exploration (Ausarbeitung)
Theory Exploration (Ausarbeitung)
 
Theory Exploration (Vortrag)
Theory Exploration (Vortrag)Theory Exploration (Vortrag)
Theory Exploration (Vortrag)
 
Domainvergabe durch die DENIC (Vortrag)
Domainvergabe durch die DENIC (Vortrag)Domainvergabe durch die DENIC (Vortrag)
Domainvergabe durch die DENIC (Vortrag)
 
Team Oldenburger Robo-Fußball – Abschlussbericht der Projektgruppe 2010
Team Oldenburger Robo-Fußball – Abschlussbericht  der Projektgruppe  2010Team Oldenburger Robo-Fußball – Abschlussbericht  der Projektgruppe  2010
Team Oldenburger Robo-Fußball – Abschlussbericht der Projektgruppe 2010
 

Einführung in minimale Spannbäume und deren Berechnung (Vortrag)

  • 1. Einführung in minmale Spannbäume und deren Berechnung Johannes Diemke Nils Sommer Universität Oldenburg, FK II – Department für Informatik Vortrag im Rahmen des Proseminars 2006 1
  • 2. Inhalt ■ Spannbäume ■ Greedy Algorithmen ■ Algorithmus von Kruskal ■ Prims Algorithmus ■ Praktische und theoretische Bedeutung ■ Resümee 2
  • 3. Spannbäume ■ Spannbaum T=(V,E') ■ Teilgraph eines ungerichteten zusammenhängenden Graphen G=(V,E) ■ Mit E'⊂E ■ T ist ein Baum (keine Zyklen) 3
  • 4. Spannbäume ■ Kantengewichtete Graphen G=(V,E,w) ■ Zuordnung einer reelen Zahl zu jeder Kante ■ Gewichtungsfunktion w:E ⇒ R ■ Gewicht des Graphen G=∑e∈E w  e ■ Ein Spannbaum ist minimal gdw. kein Spannbaum mit geringerem Gewicht existiert 4
  • 5. Algorithmus von Kruskal ■ Konstruiert einen minimalen Spannbaum T=(V,E') aus einem zusammenhängenden, ungerichteten, gewichteten Graphen G=(V,E) ■ Funktionsweise:  T enthält genau die Knoten aus G  Setze E'={}  Füge die Kanten sukzessiv in aufsteigender Reihenfolge ihres Gewichtes in Abhängigkeit einer Auswahlbedingung zu E' hinzu 5
  • 6. Algorithmus von Kruskal ■ Auswahlbedingung:  Führt das Einfügen einer Kante in T zu Zyklen, so verwerfe die Kante. Ansonsten füge sie ein. ■ Pseudocode: while(!isConnectedGraph(T)) { edge = getEdgeWithMinimumCost(E); deleteEdgeFromGraph(E, edge); if(!addingEdgeToGraphCreatesCycle(T, edge)) { addEdgeToGraph(T, edge) } } 6
  • 7. Algorithmus von Kruskal ■ Konkrete Implementierungen nutzen:  Priority-Queue  Merge-Find-Struktur ■ Hauptaufwand durch Verwaltung der Priotry- Queue ■ Insgesamt ergibt sich ein Gesamtaufwand von O(e log e) 7
  • 8. Prims Algorithmus ■ Schritte:  Wähle beliebigen Knoten  Füge Kante hinzu, die einen neuen Knoten aus dem Ausgangsgraphen mit dem neuen Graphen verbindet.  Kante zu diesem Knoten muss minimale Gewichtungen haben  Fertig wenn Kantenmenge von beiden Graphen gleich 8
  • 9. Prims Algorithmus ■ Pseudocode: public static Graph primMinSpanTree(Graph  input) { Graph T = new Graph(); T.addNode(input.getAnyNode()); while(!T.nodesEqual(input)) { Edge edges[] =  getEdgesWhichAddNewNode(input, T); edges.sortByWeight(); T.addEdgeWithNode(edges[0]); } return T; } 9
  • 10. Prims Algorithmus ■ Noch stark optimierbar  Datenstrukturen  Sortieralgorithmus ■ In diesem Fall O(n²) ■ Immer optimal 10
  • 11. Praktische und Theoretische Bedeutung ■ Theorie  Lehre  Basis für komplexere Probleme ■ Praxis:  Netzwerke: Computer, Elektrische Netze  Routing 11
  • 12. Resümee ■ Weitgehend erforschtes Gebiet ■ Forschung schon in den 50er Jahren (Bell) ■ In der Praxis oft eingesetzt 12
  • 13. Fragen ? 13