SlideShare ist ein Scribd-Unternehmen logo
1 von 13
Downloaden Sie, um offline zu lesen
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 matheguestdf0a063
 
Lec 1 numstoch motivation und_grundlagen
Lec 1 numstoch motivation und_grundlagenLec 1 numstoch motivation und_grundlagen
Lec 1 numstoch motivation und_grundlagenAhmed Labib
 
Aufgaben Flächenberechnung
Aufgaben FlächenberechnungAufgaben Flächenberechnung
Aufgaben Flächenberechnungoberprima
 
Integralrechnung
IntegralrechnungIntegralrechnung
Integralrechnungoberprima
 
Dimensionstheorie Noetherscher Ringe
Dimensionstheorie Noetherscher RingeDimensionstheorie Noetherscher Ringe
Dimensionstheorie Noetherscher RingeHeinrich 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-ModulnHeinrich 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 - UNTECSIng. Electrónica xD
 
Distributed systems and parallel processing
Distributed systems and parallel processingDistributed systems and parallel processing
Distributed systems and parallel processingjulianvollmer
 
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 kurvendiskussionPaulFestl
 
Aufgaben Flächenberechnung
Aufgaben FlächenberechnungAufgaben Flächenberechnung
Aufgaben Flächenberechnungoberprima
 

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

Pfadplanung mit harmonischen Potentialfeldern
Pfadplanung mit harmonischen PotentialfeldernPfadplanung mit harmonischen Potentialfeldern
Pfadplanung mit harmonischen PotentialfeldernJohannes Diemke
 
2010-JOGL-12-Projection-Shadows
2010-JOGL-12-Projection-Shadows2010-JOGL-12-Projection-Shadows
2010-JOGL-12-Projection-ShadowsJohannes Diemke
 
2010-JOGL-11-Toon-Shading
2010-JOGL-11-Toon-Shading2010-JOGL-11-Toon-Shading
2010-JOGL-11-Toon-ShadingJohannes Diemke
 
2010-JOGL-10-Wavefront-OBJ
2010-JOGL-10-Wavefront-OBJ2010-JOGL-10-Wavefront-OBJ
2010-JOGL-10-Wavefront-OBJJohannes Diemke
 
2010-JOGL-09-Texture-Mapping
2010-JOGL-09-Texture-Mapping2010-JOGL-09-Texture-Mapping
2010-JOGL-09-Texture-MappingJohannes Diemke
 
2010-JOGL-07-Hinweise-Uebungsblatt05
2010-JOGL-07-Hinweise-Uebungsblatt052010-JOGL-07-Hinweise-Uebungsblatt05
2010-JOGL-07-Hinweise-Uebungsblatt05Johannes Diemke
 
2010-JOGL-06-Licht-und-Material
2010-JOGL-06-Licht-und-Material2010-JOGL-06-Licht-und-Material
2010-JOGL-06-Licht-und-MaterialJohannes Diemke
 
2010-JOGL-05-Transformationen
2010-JOGL-05-Transformationen2010-JOGL-05-Transformationen
2010-JOGL-05-TransformationenJohannes 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-RemovalJohannes Diemke
 
2010-JOGL-02-Einfuehrung
2010-JOGL-02-Einfuehrung2010-JOGL-02-Einfuehrung
2010-JOGL-02-EinfuehrungJohannes Diemke
 
2010-JOGL-01-Organisation
2010-JOGL-01-Organisation2010-JOGL-01-Organisation
2010-JOGL-01-OrganisationJohannes 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 2010Johannes 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