greedy-algorithmen -...

89
Greedy-Algorithmen El Jabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik und Informatik [email protected] [email protected] 11. Dezember 2014 El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 1 / 35

Upload: others

Post on 24-Oct-2019

20 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Greedy-Algorithmen

El Jabri Großmann

Hochschule Zittau/GörlitzFakultät Elektrotechnik und Informatik

[email protected]@stud.hszg.de

11. Dezember 2014

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 1 / 35

Page 2: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Inhaltsverzeichnis

1 Greedy Algorithmen

2 Kürzeste Wege in Graphen

3 Die Repräsentation von Graphen

4 Minimaler Spannbaum

5 Optimale Substruktur

6 Minimaler Spannbaum Algorithmen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 2 / 35

Page 3: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Inhaltsverzeichnis

1 Greedy Algorithmen

2 Kürzeste Wege in Graphen

3 Die Repräsentation von Graphen

4 Minimaler Spannbaum

5 Optimale Substruktur

6 Minimaler Spannbaum Algorithmen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 3 / 35

Page 4: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Greedy Algorithmen

Vergleichsweise effizient bei Lösung von Optimierungsproblemen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 4 / 35

Page 5: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Greedy Algorithmen

Definition„Gierige/Gefräßige“ Algorithmen.

Lösung auf Grundlage lokaler Optima.Vorteil: sehr schnell, gute (Näherungs-)Lösung.Nachteil :

1 keine Berücksichtigung früherer Lösungen; keine Revision einmalgetroffener Entscheidungen.

2 Endlösung möglicherweise nicht optimale Lösung.

Voraussetzungen: Optimierungsproblem, Lösungen aus Einzelstückenbestehend, Teillösungen qualitativ unterscheidbar.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 5 / 35

Page 6: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Greedy Algorithmen

Definition„Gierige/Gefräßige“ Algorithmen.Lösung auf Grundlage lokaler Optima.

Vorteil: sehr schnell, gute (Näherungs-)Lösung.Nachteil :

1 keine Berücksichtigung früherer Lösungen; keine Revision einmalgetroffener Entscheidungen.

2 Endlösung möglicherweise nicht optimale Lösung.

Voraussetzungen: Optimierungsproblem, Lösungen aus Einzelstückenbestehend, Teillösungen qualitativ unterscheidbar.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 5 / 35

Page 7: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Greedy Algorithmen

Definition„Gierige/Gefräßige“ Algorithmen.Lösung auf Grundlage lokaler Optima.

Vorteil: sehr schnell, gute (Näherungs-)Lösung.

Nachteil :1 keine Berücksichtigung früherer Lösungen; keine Revision einmal

getroffener Entscheidungen.2 Endlösung möglicherweise nicht optimale Lösung.

Voraussetzungen: Optimierungsproblem, Lösungen aus Einzelstückenbestehend, Teillösungen qualitativ unterscheidbar.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 5 / 35

Page 8: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Greedy Algorithmen

Definition„Gierige/Gefräßige“ Algorithmen.Lösung auf Grundlage lokaler Optima.

Vorteil: sehr schnell, gute (Näherungs-)Lösung.Nachteil :

1 keine Berücksichtigung früherer Lösungen; keine Revision einmalgetroffener Entscheidungen.

2 Endlösung möglicherweise nicht optimale Lösung.

Voraussetzungen: Optimierungsproblem, Lösungen aus Einzelstückenbestehend, Teillösungen qualitativ unterscheidbar.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 5 / 35

Page 9: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Greedy Algorithmen

Definition„Gierige/Gefräßige“ Algorithmen.Lösung auf Grundlage lokaler Optima.

Vorteil: sehr schnell, gute (Näherungs-)Lösung.Nachteil :

1 keine Berücksichtigung früherer Lösungen; keine Revision einmalgetroffener Entscheidungen.

2 Endlösung möglicherweise nicht optimale Lösung.

Voraussetzungen: Optimierungsproblem, Lösungen aus Einzelstückenbestehend, Teillösungen qualitativ unterscheidbar.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 5 / 35

Page 10: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Greedy Algorithmen

Definition„Gierige/Gefräßige“ Algorithmen.Lösung auf Grundlage lokaler Optima.

Vorteil: sehr schnell, gute (Näherungs-)Lösung.Nachteil :

1 keine Berücksichtigung früherer Lösungen; keine Revision einmalgetroffener Entscheidungen.

2 Endlösung möglicherweise nicht optimale Lösung.

Voraussetzungen: Optimierungsproblem, Lösungen aus Einzelstückenbestehend, Teillösungen qualitativ unterscheidbar.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 5 / 35

Page 11: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Greedy Algorithmen

Definition„Gierige/Gefräßige“ Algorithmen.Lösung auf Grundlage lokaler Optima.

Vorteil: sehr schnell, gute (Näherungs-)Lösung.Nachteil :

1 keine Berücksichtigung früherer Lösungen; keine Revision einmalgetroffener Entscheidungen.

2 Endlösung möglicherweise nicht optimale Lösung.

Voraussetzungen: Optimierungsproblem, Lösungen aus Einzelstückenbestehend, Teillösungen qualitativ unterscheidbar.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 5 / 35

Page 12: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Implementierung

Vorsortierte liste zur Kanditatenauswahl – priority queue.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 6 / 35

Page 13: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Implementierung

Vorsortierte liste zur Kanditatenauswahl – priority queue.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 6 / 35

Page 14: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Inhaltsverzeichnis

1 Greedy Algorithmen

2 Kürzeste Wege in Graphen

3 Die Repräsentation von Graphen

4 Minimaler Spannbaum

5 Optimale Substruktur

6 Minimaler Spannbaum Algorithmen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 7 / 35

Page 15: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Dijkstra-Algorithmus

DIJKSTRA Algorithmus: berechnet kürzesten Weg in Graphen voneinem Startknoten aus für nichtnegative Kantengewichte.

kürzeste Strecke zw. A und B, z.B. kürzeste Route Görlitz-Dresden.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 8 / 35

Page 16: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Dijkstra-Algorithmus

DIJKSTRA Algorithmus: berechnet kürzesten Weg in Graphen voneinem Startknoten aus für nichtnegative Kantengewichte.kürzeste Strecke zw. A und B, z.B. kürzeste Route Görlitz-Dresden.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 8 / 35

Page 17: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Dijkstra-Algorithmus

DIJKSTRA Algorithmus: berechnet kürzesten Weg in Graphen voneinem Startknoten aus für nichtnegative Kantengewichte.kürzeste Strecke zw. A und B, z.B. kürzeste Route Görlitz-Dresden.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 8 / 35

Page 18: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Floyd-Warshall-Algorithmus und die transitive Hülle

FLOYD und WARSHALL: Floyd-algorithmus findet kürzeste Pfadezwischen allen Knotenpaaren; Warshall-algorithmus findet transitiveHülle.

Transitive Hülle: enthält zusätzlich zu direkten Relationen (erreichbarePunkte) alle indirekten Relationen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 9 / 35

Page 19: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Floyd-Warshall-Algorithmus und die transitive Hülle

FLOYD und WARSHALL: Floyd-algorithmus findet kürzeste Pfadezwischen allen Knotenpaaren; Warshall-algorithmus findet transitiveHülle.Transitive Hülle: enthält zusätzlich zu direkten Relationen (erreichbarePunkte) alle indirekten Relationen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 9 / 35

Page 20: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Floyd-Warshall-Algorithmus und die transitive Hülle

FLOYD und WARSHALL: Floyd-algorithmus findet kürzeste Pfadezwischen allen Knotenpaaren; Warshall-algorithmus findet transitiveHülle.Transitive Hülle: enthält zusätzlich zu direkten Relationen (erreichbarePunkte) alle indirekten Relationen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 9 / 35

Page 21: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Inhaltsverzeichnis

1 Greedy Algorithmen

2 Kürzeste Wege in Graphen

3 Die Repräsentation von Graphen

4 Minimaler Spannbaum

5 Optimale Substruktur

6 Minimaler Spannbaum Algorithmen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 10 / 35

Page 22: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Gerichtete Graphen

DefinitionEin gerichteter Graph umfaßt eine endliche Menge von Knoten V undeine endliche Menge von gerichteten Kanten E.

Dabei verbindet jede Kante e ∈ E genau einen Anfangsknoten v ∈ Vmit genau einem Endknoten u ∈ V . Man sagt auch, Kante e führt vonKnoten v nach Knoten u.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 11 / 35

Page 23: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Gerichtete Graphen

DefinitionEin gerichteter Graph umfaßt eine endliche Menge von Knoten V undeine endliche Menge von gerichteten Kanten E.Dabei verbindet jede Kante e ∈ E genau einen Anfangsknoten v ∈ Vmit genau einem Endknoten u ∈ V . Man sagt auch, Kante e führt vonKnoten v nach Knoten u.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 11 / 35

Page 24: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Gerichtete Graphen

DefinitionEin gerichteter Graph umfaßt eine endliche Menge von Knoten V undeine endliche Menge von gerichteten Kanten E.Dabei verbindet jede Kante e ∈ E genau einen Anfangsknoten v ∈ Vmit genau einem Endknoten u ∈ V . Man sagt auch, Kante e führt vonKnoten v nach Knoten u.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 11 / 35

Page 25: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Ungerichtete Graphen

DefinitionEin ungerichteter Graph umfaßt eine endliche Menge von Knoten Vund eine endliche Menge von ungerichteten Kanten E.

Jede ungerichtete Kante e ∈ E verbindet entweder zwei verschiedeneKnoten (u, v) ∈ V miteinander oder im Falle einer ungerichtetenSchlinge einen Knoten v ∈ V mit sich selbst.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 12 / 35

Page 26: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Ungerichtete Graphen

DefinitionEin ungerichteter Graph umfaßt eine endliche Menge von Knoten Vund eine endliche Menge von ungerichteten Kanten E.Jede ungerichtete Kante e ∈ E verbindet entweder zwei verschiedeneKnoten (u, v) ∈ V miteinander oder im Falle einer ungerichtetenSchlinge einen Knoten v ∈ V mit sich selbst.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 12 / 35

Page 27: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Ungerichtete Graphen

DefinitionEin ungerichteter Graph umfaßt eine endliche Menge von Knoten Vund eine endliche Menge von ungerichteten Kanten E.Jede ungerichtete Kante e ∈ E verbindet entweder zwei verschiedeneKnoten (u, v) ∈ V miteinander oder im Falle einer ungerichtetenSchlinge einen Knoten v ∈ V mit sich selbst.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 12 / 35

Page 28: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Die Adjazenzmatrix

Die Adjazenzmatrix RepräsentationDie Adjazenzmatrix von einem Graph G = (V ,E ), wo V = 1, 2, ..., n,ist die Matrix A[1..n, 1..n] .Gegeben durch :

A[i , j ] =

{1 wenn (i , j) ∈ E0 wenn (i , j) /∈ E

A 1 2 3 41 0 1 1 02 0 0 1 03 0 0 0 04 0 0 1 0

Storage = Θ(V 2)

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 13 / 35

Page 29: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Die Adjazenzmatrix

Die Adjazenzmatrix RepräsentationDie Adjazenzmatrix von einem Graph G = (V ,E ), wo V = 1, 2, ..., n,ist die Matrix A[1..n, 1..n] .Gegeben durch :

A[i , j ] =

{1 wenn (i , j) ∈ E0 wenn (i , j) /∈ E

A 1 2 3 41 0 1 1 02 0 0 1 03 0 0 0 04 0 0 1 0

Storage = Θ(V 2)

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 13 / 35

Page 30: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Die Adjazenzmatrix

Die Adjazenzmatrix RepräsentationDie Adjazenzmatrix von einem Graph G = (V ,E ), wo V = 1, 2, ..., n,ist die Matrix A[1..n, 1..n] .Gegeben durch :

A[i , j ] =

{1 wenn (i , j) ∈ E0 wenn (i , j) /∈ E

A 1 2 3 41 0 1 1 02 0 0 1 03 0 0 0 04 0 0 1 0

Storage = Θ(V 2)

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 13 / 35

Page 31: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Die Adjazenzmatrix

Die Adjazenzmatrix RepräsentationDie Adjazenzmatrix von einem Graph G = (V ,E ), wo V = 1, 2, ..., n,ist die Matrix A[1..n, 1..n] .Gegeben durch :

A[i , j ] =

{1 wenn (i , j) ∈ E0 wenn (i , j) /∈ E

A 1 2 3 41 0 1 1 02 0 0 1 03 0 0 0 04 0 0 1 0

Storage = Θ(V 2)

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 13 / 35

Page 32: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Die Adjazenzliste

Die Adjazenzliste RepräsentationDie Adjazenzliste von einem Knoten v ∈ V ist die Liste Adj[v] vonKnoten, die zu v adjazent sind.

Die Adjazenzliste von diesem Graph ist :

Adj [1] = (2, 3)Adj [2] = (3)Adj [3] = ()Adj [4] = (3)

Storage = Θ(V + E )

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 14 / 35

Page 33: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Die Adjazenzliste

Die Adjazenzliste RepräsentationDie Adjazenzliste von einem Knoten v ∈ V ist die Liste Adj[v] vonKnoten, die zu v adjazent sind.Die Adjazenzliste von diesem Graph ist :

Adj [1] = (2, 3)Adj [2] = (3)Adj [3] = ()Adj [4] = (3)

Storage = Θ(V + E )

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 14 / 35

Page 34: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Die Adjazenzliste

Die Adjazenzliste RepräsentationDie Adjazenzliste von einem Knoten v ∈ V ist die Liste Adj[v] vonKnoten, die zu v adjazent sind.Die Adjazenzliste von diesem Graph ist :

Adj [1] = (2, 3)Adj [2] = (3)Adj [3] = ()Adj [4] = (3)

Storage = Θ(V + E )

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 14 / 35

Page 35: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Die Adjazenzliste

Die Adjazenzliste RepräsentationDie Adjazenzliste von einem Knoten v ∈ V ist die Liste Adj[v] vonKnoten, die zu v adjazent sind.Die Adjazenzliste von diesem Graph ist :

Adj [1] = (2, 3)Adj [2] = (3)Adj [3] = ()Adj [4] = (3)

Storage = Θ(V + E )

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 14 / 35

Page 36: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Inhaltsverzeichnis

1 Greedy Algorithmen

2 Kürzeste Wege in Graphen

3 Die Repräsentation von Graphen

4 Minimaler Spannbaum

5 Optimale Substruktur

6 Minimaler Spannbaum Algorithmen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 15 / 35

Page 37: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Minimaler Spannbaum

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 16 / 35

Page 38: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Minimaler Spannbaum

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 16 / 35

Page 39: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Minimaler Spannbaum

Verwendungen von Minimalen Spannbäumen

Verwendung Knoten KantenSchaltung Bauelement DrahtFluggesellschaft Flughafen FlugrouteStromverteiler Kraftwerk LeitungFluggesellschaft Flughafen Flugroute

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 17 / 35

Page 40: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Minimaler Spannbaum

Definition1 Ein gewichteter ungerichteter Graph (G ,w) ist ein ungerichteter

Graph G = (V ,E ) zusammen mit einer Gewichtsfunktionw : E =⇒ R

2 Ein Teilgraph H eines ungerichteten Graphen G heisst Spannbaum vonG, wenn H ein Baum auf den Knoten von G ist.

3 Ein Spannbaum T eines gewichteten ungerichteten Graphen G heisstminimaler Spannbaum von G, wenn T minimales Gewicht unter allenSpannbäumen von G besitzt.

w(t) =∑

(u,v)∈Tw(u, v)

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 18 / 35

Page 41: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Minimaler Spannbaum

Definition1 Ein gewichteter ungerichteter Graph (G ,w) ist ein ungerichteter

Graph G = (V ,E ) zusammen mit einer Gewichtsfunktionw : E =⇒ R

2 Ein Teilgraph H eines ungerichteten Graphen G heisst Spannbaum vonG, wenn H ein Baum auf den Knoten von G ist.

3 Ein Spannbaum T eines gewichteten ungerichteten Graphen G heisstminimaler Spannbaum von G, wenn T minimales Gewicht unter allenSpannbäumen von G besitzt.

w(t) =∑

(u,v)∈Tw(u, v)

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 18 / 35

Page 42: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Minimaler Spannbaum

Definition1 Ein gewichteter ungerichteter Graph (G ,w) ist ein ungerichteter

Graph G = (V ,E ) zusammen mit einer Gewichtsfunktionw : E =⇒ R

2 Ein Teilgraph H eines ungerichteten Graphen G heisst Spannbaum vonG, wenn H ein Baum auf den Knoten von G ist.

3 Ein Spannbaum T eines gewichteten ungerichteten Graphen G heisstminimaler Spannbaum von G, wenn T minimales Gewicht unter allenSpannbäumen von G besitzt.

w(t) =∑

(u,v)∈Tw(u, v)

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 18 / 35

Page 43: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Äquivalente Charakterisierungen von Bäumen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 19 / 35

Page 44: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Beispiel

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 20 / 35

Page 45: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Beispiel

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 20 / 35

Page 46: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Inhaltsverzeichnis

1 Greedy Algorithmen

2 Kürzeste Wege in Graphen

3 Die Repräsentation von Graphen

4 Minimaler Spannbaum

5 Optimale Substruktur

6 Minimaler Spannbaum Algorithmen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 21 / 35

Page 47: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Minimaler Spannbaum T : (Die anderen Kanten von G sind nichtgezeigt)

Wir löschen irgendeine Kante (u, v) ∈ T .Wir löschen irgendeine Kante (u, v) ∈ T .Wir löschen irgendeine Kante (u, v) ∈ T .T ist unterteilt in zwei Teilbäume T1 und T2

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 22 / 35

Page 48: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Minimaler Spannbaum T : (Die anderen Kanten von G sind nichtgezeigt)

Wir löschen irgendeine Kante (u, v) ∈ T .

Wir löschen irgendeine Kante (u, v) ∈ T .Wir löschen irgendeine Kante (u, v) ∈ T .T ist unterteilt in zwei Teilbäume T1 und T2

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 22 / 35

Page 49: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Minimaler Spannbaum T : (Die anderen Kanten von G sind nichtgezeigt)

Wir löschen irgendeine Kante (u, v) ∈ T .

Wir löschen irgendeine Kante (u, v) ∈ T .

Wir löschen irgendeine Kante (u, v) ∈ T .T ist unterteilt in zwei Teilbäume T1 und T2

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 22 / 35

Page 50: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Minimaler Spannbaum T : (Die anderen Kanten von G sind nichtgezeigt)

Wir löschen irgendeine Kante (u, v) ∈ T .Wir löschen irgendeine Kante (u, v) ∈ T .

Wir löschen irgendeine Kante (u, v) ∈ T .T ist unterteilt in zwei Teilbäume T1 und T2

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 22 / 35

Page 51: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

TheoremDer Teilbaum T1 ist ein minimaler Spannbaum von G1 = (V1,E1), der denTeilgraph von G durch die Knoten von T1 induziert.

V1 = die Knoten von T1E1 = (x,y) ∈ E : (x,y) ∈ V1

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 23 / 35

Page 52: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

TheoremDer Teilbaum T1 ist ein minimaler Spannbaum von G1 = (V1,E1), der denTeilgraph von G durch die Knoten von T1 induziert.

V1 = die Knoten von T1E1 = (x,y) ∈ E : (x,y) ∈ V1

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 23 / 35

Page 53: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Beweis (durch Wiederspruch)w(T ) = w(u, v) + w(T1) + w(T2)

Widerspruch ausnahme :Es gibt einen Teilbaum T ′

1, der ein niedrigeres Gewicht als T1 hat

w(T ′) = w(u, v) + w(T ′1) + w(T2)

T ′ ist optimaler als T : Wiederspruch !

⇒ Eigenschaft Dynamischer Programmierung : Overlapping subproblems

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 24 / 35

Page 54: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Beweis (durch Wiederspruch)w(T ) = w(u, v) + w(T1) + w(T2)

Widerspruch ausnahme :

Es gibt einen Teilbaum T ′1, der ein niedrigeres Gewicht als T1 hat

w(T ′) = w(u, v) + w(T ′1) + w(T2)

T ′ ist optimaler als T : Wiederspruch !

⇒ Eigenschaft Dynamischer Programmierung : Overlapping subproblems

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 24 / 35

Page 55: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Beweis (durch Wiederspruch)w(T ) = w(u, v) + w(T1) + w(T2)

Widerspruch ausnahme :Es gibt einen Teilbaum T ′

1, der ein niedrigeres Gewicht als T1 hat

w(T ′) = w(u, v) + w(T ′1) + w(T2)

T ′ ist optimaler als T : Wiederspruch !

⇒ Eigenschaft Dynamischer Programmierung : Overlapping subproblems

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 24 / 35

Page 56: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Beweis (durch Wiederspruch)w(T ) = w(u, v) + w(T1) + w(T2)

Widerspruch ausnahme :Es gibt einen Teilbaum T ′

1, der ein niedrigeres Gewicht als T1 hat

w(T ′) = w(u, v) + w(T ′1) + w(T2)

T ′ ist optimaler als T : Wiederspruch !

⇒ Eigenschaft Dynamischer Programmierung : Overlapping subproblems

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 24 / 35

Page 57: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Beweis (durch Wiederspruch)w(T ) = w(u, v) + w(T1) + w(T2)

Widerspruch ausnahme :Es gibt einen Teilbaum T ′

1, der ein niedrigeres Gewicht als T1 hat

w(T ′) = w(u, v) + w(T ′1) + w(T2)

T ′ ist optimaler als T : Wiederspruch !

⇒ Eigenschaft Dynamischer Programmierung : Overlapping subproblems

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 24 / 35

Page 58: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Beweis (durch Wiederspruch)w(T ) = w(u, v) + w(T1) + w(T2)

Widerspruch ausnahme :Es gibt einen Teilbaum T ′

1, der ein niedrigeres Gewicht als T1 hat

w(T ′) = w(u, v) + w(T ′1) + w(T2)

T ′ ist optimaler als T : Wiederspruch !

⇒ Eigenschaft Dynamischer Programmierung : Overlapping subproblems

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 24 / 35

Page 59: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Optimale Substruktur - Dynamic Programming

Beweis (durch Wiederspruch)w(T ) = w(u, v) + w(T1) + w(T2)

Widerspruch ausnahme :Es gibt einen Teilbaum T ′

1, der ein niedrigeres Gewicht als T1 hat

w(T ′) = w(u, v) + w(T ′1) + w(T2)

T ′ ist optimaler als T : Wiederspruch !

⇒ Eigenschaft Dynamischer Programmierung : Overlapping subproblems

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 24 / 35

Page 60: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Inhaltsverzeichnis

1 Greedy Algorithmen

2 Kürzeste Wege in Graphen

3 Die Repräsentation von Graphen

4 Minimaler Spannbaum

5 Optimale Substruktur

6 Minimaler Spannbaum Algorithmen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 25 / 35

Page 61: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Minimaler Spannbaum Algorithmen

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 26 / 35

Page 62: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Der Prim-Algorithmus

Vorgehen1 Ausgangspunkt für das Verfahren ist ein beliebiger Startknoten.

2 Alle Kanten zu Nachbarknoten werden in eine Nachbarliste eingefügt,man wählt eine Kante minimaler Länge aus der Nachbarliste und fügtdiese Kante dem bereits initialisierten Spannbaum zu(Greedy-Prinzip!) .

3 Von dort wird wieder der minimale Weg, basierend auf derausgewählten Kante, zum nächsten Knoten gewählt, ist dieser Knotenbereits besucht worden, wird er nicht berücksichtigt.

4 Dieses Verfahren führt man durch, bis alle Knoten besucht wurden.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 27 / 35

Page 63: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Der Prim-Algorithmus

Vorgehen1 Ausgangspunkt für das Verfahren ist ein beliebiger Startknoten.2 Alle Kanten zu Nachbarknoten werden in eine Nachbarliste eingefügt,

man wählt eine Kante minimaler Länge aus der Nachbarliste und fügtdiese Kante dem bereits initialisierten Spannbaum zu(Greedy-Prinzip!) .

3 Von dort wird wieder der minimale Weg, basierend auf derausgewählten Kante, zum nächsten Knoten gewählt, ist dieser Knotenbereits besucht worden, wird er nicht berücksichtigt.

4 Dieses Verfahren führt man durch, bis alle Knoten besucht wurden.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 27 / 35

Page 64: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Der Prim-Algorithmus

Vorgehen1 Ausgangspunkt für das Verfahren ist ein beliebiger Startknoten.2 Alle Kanten zu Nachbarknoten werden in eine Nachbarliste eingefügt,

man wählt eine Kante minimaler Länge aus der Nachbarliste und fügtdiese Kante dem bereits initialisierten Spannbaum zu(Greedy-Prinzip!) .

3 Von dort wird wieder der minimale Weg, basierend auf derausgewählten Kante, zum nächsten Knoten gewählt, ist dieser Knotenbereits besucht worden, wird er nicht berücksichtigt.

4 Dieses Verfahren führt man durch, bis alle Knoten besucht wurden.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 27 / 35

Page 65: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Der Prim-Algorithmus

Vorgehen1 Ausgangspunkt für das Verfahren ist ein beliebiger Startknoten.2 Alle Kanten zu Nachbarknoten werden in eine Nachbarliste eingefügt,

man wählt eine Kante minimaler Länge aus der Nachbarliste und fügtdiese Kante dem bereits initialisierten Spannbaum zu(Greedy-Prinzip!) .

3 Von dort wird wieder der minimale Weg, basierend auf derausgewählten Kante, zum nächsten Knoten gewählt, ist dieser Knotenbereits besucht worden, wird er nicht berücksichtigt.

4 Dieses Verfahren führt man durch, bis alle Knoten besucht wurden.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 27 / 35

Page 66: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 28 / 35

Page 67: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 28 / 35

Page 68: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 28 / 35

Page 69: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 28 / 35

Page 70: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 28 / 35

Page 71: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 28 / 35

Page 72: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 28 / 35

Page 73: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 28 / 35

Page 74: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Prim-Pseudocode

Algorithmus von prim(G,w,r)Q ← VG //Initialisierungfor all u ∈ Q do

wert[u]←∞π[u]← 0wert[r ]← 0

while Q 6= ∅ dou ← extractmin(Q)for all v ∈ Adj [u] do

wenn v ∈ Q und w(u, v) < wert[v ]dann π[v ]← uwert[v ]← w(u, v)

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 29 / 35

Page 75: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Der Kruskal-Algorithmus

Vorgehen1 Alle Kanten des Graphen werden nach ihrem Gewicht in einer

Kantenliste sortiert.

2 Jeder Knoten wird als Baum aufgefasst, dabei ist jeder Knoten Sohnund Vater zugleich.

3 Die Kante mit dem geringsten Gewicht wird genommen(Greedy-Prinzip) und überprüft, ob die Knoten am Kantenende inunterschiedlichen Bäumen sind (kein Zyklus), ist dies der Fall, werdendie Kanten vereinigt und die Kante aus der Kantenliste gelöscht, imanderen Fall wird die Kante nicht aufgenommen .

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 30 / 35

Page 76: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Der Kruskal-Algorithmus

Vorgehen1 Alle Kanten des Graphen werden nach ihrem Gewicht in einer

Kantenliste sortiert.2 Jeder Knoten wird als Baum aufgefasst, dabei ist jeder Knoten Sohn

und Vater zugleich.

3 Die Kante mit dem geringsten Gewicht wird genommen(Greedy-Prinzip) und überprüft, ob die Knoten am Kantenende inunterschiedlichen Bäumen sind (kein Zyklus), ist dies der Fall, werdendie Kanten vereinigt und die Kante aus der Kantenliste gelöscht, imanderen Fall wird die Kante nicht aufgenommen .

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 30 / 35

Page 77: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Der Kruskal-Algorithmus

Vorgehen1 Alle Kanten des Graphen werden nach ihrem Gewicht in einer

Kantenliste sortiert.2 Jeder Knoten wird als Baum aufgefasst, dabei ist jeder Knoten Sohn

und Vater zugleich.3 Die Kante mit dem geringsten Gewicht wird genommen

(Greedy-Prinzip) und überprüft, ob die Knoten am Kantenende inunterschiedlichen Bäumen sind (kein Zyklus), ist dies der Fall, werdendie Kanten vereinigt und die Kante aus der Kantenliste gelöscht, imanderen Fall wird die Kante nicht aufgenommen .

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 30 / 35

Page 78: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 31 / 35

Page 79: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 31 / 35

Page 80: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 31 / 35

Page 81: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 31 / 35

Page 82: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 31 / 35

Page 83: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 31 / 35

Page 84: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 31 / 35

Page 85: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Illustration

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 31 / 35

Page 86: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Kruskal-Pseudocode

G = (V,E,w) : ungerichteter, kantengewichteter Graph.Kruskal(G)E ′ ← ∅L← ESortiere die Kanten in L aufsteigend nach ihrem Kantengewicht.for all L 6= ∅ do

wähle eine Kante e ∈ L mit kleinstem Kantengewichtentferne die Kante e aus Lwenn der Graph (V ,E ′ ∪ {e}) keinen Kreis enthältdann E ′ ← E ′ ∪ {e}

M = (V,E’) ist ein minimaler Spannbaum von G.

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 32 / 35

Page 87: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Effizienz der MST-Algorithmen

Algorithmus Speicherbedarf LaufzeitDer Prim-Algorithmus V E log(V )Der Kruskal-Algorithmus E E log(E )

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 33 / 35

Page 88: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Vielen Dank für Ihre Aufmerksamkeit

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 34 / 35

Page 89: Greedy-Algorithmen - ProgrammingWikiprogrammingwiki.de/images/9/9d/Greedy-Algorithmen_Vorlesung.pdf · Greedy-Algorithmen ElJabri Großmann Hochschule Zittau/Görlitz Fakultät Elektrotechnik

Literaturhinweise

Algorithmen und KomplexitätChristian Wagenknecht (2003)

AlgorithmsRobert Sedgewick, Kevin Wayne (2011)

Introduction to Algorithms - Third EditionThomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein (2009)

The Algorithm Design ManualSteven S Skiena (2008)

Data Structures and AlgorithmsAlfred V. Aho, Jeffrey D. Ullman, John E. Hopcroft (1983)

El Jabri, Großmann (HSZG) Greedy-Algorithmen 11. Dezember 2014 35 / 35