• Keine Ergebnisse gefunden

Graphen und Algorithmen

N/A
N/A
Protected

Academic year: 2022

Aktie "Graphen und Algorithmen"

Copied!
26
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Graphen und Algorithmen

Vorlesung #7: Matchingtheorie

WS 2007/2008

Dr. Armin Fügenschuh

Technische Universität Darmstadt

(2)

Übersicht

Matchings und erweiternde Wege Satz von Berge

Das Heiratsproblem und der Heiratssatz von Hall Matchings in bipartiten Graphen

Der Ungarische Algorithmus

Der Kuhn-Munkres-Algorithmus

Lösung des Chinesischen Postbotenproblems 1/2-Approximation des TSP von Christofides

(3)

Matchings (Paarungen, Korrespondenzen)

Generalvoraussetzung: In dieser Vorlesung sei stets ein schlingenfreier (Multi-) Graph mit Knotenmenge und Kantenmenge .

Definition 1:

Eine Kantenteilmenge heißt Matching von , wenn keine zwei Kanten aus einen gemeinsamen Endknoten haben.

Beispiel:

Definition 2:

Ist ein Knoten des Graphen ein Endknoten einer Kante im Matching , dann wird als -gesättigt bezeichnet. Man sagt auch, dass durch gesättigt wird.

Andernfalls ist -ungesättigt.

Beispiel (Forts.):

Die Knoten sind -gesättigt, und sind -ungesättigt.

Jeder Knoten ist -gesättigt.

3

G

V = V (G) E = E(G)

G

a b

c e d

f

M1 := {e1, e2} M2 := {e1, e3, e4} G

a b

c e d

f

M E G M

v G M v

M v M

v M

a, b, c, e M1 f d M1

M2

e1

e2

e1

e3 e4

(4)

Definition 3:

Ist ein Matching von , in dem jeder Knoten von -gesättigt ist, dann wird als perfektes Matching bezeichnet.

Ein Matching heißt maximal, wenn kein Matching enthält, welches mehr Kanten als hat.

Ein Matching heißt inklusionsmaximal, wenn nicht durch Hinzufügen einer weiteren Kante von vergrößert werden kann.

Beispiel (Forts.):

ist ein perfektes Matching.

ist ein inklusionsmaximales Matching.

Bemerkung:

Jedes perfekte Matching ist ein maximales Matching.

Die Umkehrung davon ist nicht wahr.

Beispiel: Zwei maximale, nicht-perfekte Matchings.

Perfekte und maximale Matchings

M G G M M

M G M!

M

M2

M M

G

M1

(5)

Alternierende und erweiternde Wege

Definition 4:

Sei ein Matching von . Ein -alternierender Weg in ist ein Weg, dessen Kanten abwechselnd zu und gehören.

Beispiel: ist ein -alternierender Weg.

Definition 5:

Ein -alternierender Weg, dessen Anfangs- und Endknoten -ungesättigt sind, heißt -erweiternder Weg.

Beispiel: ist ein -erweiternder Weg

5

v7

v4 v5 v6 v1 e1 v2 e2 v3

e3

e4 e5 e6

e7 e8 e9

e10 e11 e12

P := (v1, e3, v4, e4, v2, e5, v5, e8, v6, e6, v3) {e3, e5, e6}

M G M G

M E\M

M M

M

v7

v4

v5 v6 v1 e1 v2 e2 v3

e3

e4 e5 e6 e7

e8

e9 e10 e11 e12

v8

v9

v10 e13 e14 e15 e16

P = (v6, e6, v3, e2, v2, e5, v5, e7, v4, e4, v1, e3, v7, e12, v8) {e2, e3, e7, e16}

(6)

Lemma von der symmetrischen Differenz

Lemma 6:

Seien zwei Matchings in einem schlichten Graphen . Sei der Untergraph von , der durch die Kantenmenge gegeben ist, d.h. durch die symmetrische Differenz der beiden Matchings. Sei eine Zusammenhangskomponente von . Dann gilt:

Entweder ist ein Zyklus gerader Länge, dessen Kanten abwechselnd in und liegen, oder ist ein Weg, dessen Kanten abwechselnd in und liegen und dessen Endknoten in einem der beiden Matchings ungesättigt sind.

Beispiel:

Beweis (von Lemma 6):

Sei ein Knoten von .

Da Matching, gibt es höchstens eine Kante in , die als Endknoten hat.

Ebenso gibt es höchstens eine Kante in , die als Endknoten hat.

1. Fall, ist Endknoten einer Kante in und auch einer Kante in . Dann ist .

2. Fall, ist Endknoten einer Kante in oder in , aber nicht in beiden.

Dann ist .

Die Zusammenhangskomponente von ist dann entweder ein Weg oder ein Zyklus.

e1 e2

e3

e4 e5 e6

e7 e8 e9

e10 e11 e12

M1 := {e2, e8, e10}

e1 e2

e3

e4 e5 e6

e7 e8 e9

e10 e11 e12

M2 := {e1, e7, e12}

e1 e2

e7 e8

e10 e12

M1!M2 := {e1, e2, e7, e8, e10, e12}

M1, M2 G H G

M1!M2 := (M1\M2) (M2\M1) K

H

K M1 M2

K M1 M2

v H

M1 M1 v

M2 v

v M1\M2 M2\M1

degH(v) = 2

v M1\M2 M2\M1 degH(v) = 1

v

(7)

Umfärbungen entlang von Wegen

Sei ein Matching von . Wir bezeichnen die Kanten in als „rot“, alle anderen als „blau“.

Sei ein -alternierender Weg in , so dass die Kanten abwechselnd rot und blau sind.

Ist zudem -erweiternd, dann sind die Endknoten ungesättigt.

Also sind die erste und die letzte Kante von blau.

Damit ist eine alternierende Folge der Form blau, rot, blau, ..., rot, blau.

Somit hat eine ungerade Anzahl von Kanten, , davon rote und blaue.

Wir definieren eine Kantenmenge , welche aus den Kanten von minus den roten Kanten von plus den blauen Kanten von besteht.

Die Endknoten von sind nicht durch gesättigt, und alle anderen Knoten von sind bereits durch gesättigt.

Also ist wiederum ein Matching, welches eine Kante mehr als hat.

Definition 7:

Die oben beschriebene Operation, die ein gegebenes Matching in ein größeres Matching unter Verwendung eines -erweiternden Weges umwandelt, wird als Umfärbung entlang des erweiternden Weges bezeichnet.

Beispiel:

7

v7

v4

v5 v6 v1 e1 v2 e2 v3

e3

e4 e5 e6 e7

e8

e9 e10 e11 e12

v8

v9

v10 e13 e14 e15 e16

v7

v4

v5 v6 v1 e1 v2 e2 v3

e3

e4 e5 e6 e7

e8

e9 e10 e11 e12

v8

v9

v10 e13 e14 e15 e16

M G M

P M G

P M

P P

P 2m + 1 m m + 1

M! M

P P

P M P

M

M! M

M

M! M P

P

M = {e2, e3, e7, e16} M! = {e4, e5, e6, e12, e16} P = (e6, e2, e5, e7, e4, e3, e12)

(8)

Satz von Berge

Satz 8 (Berge, 1957):

Ein Matching in einem Graphen ist genau dann ein maximales Matching, wenn keinen -erweiternden Weg enthält.

Beweis:

( ) Sei maximales Matching von und sei ein -erweiternder Weg.

Durch Umfärbung entlang entsteht ein Matching von , welches eine Kante mehr enthält als , im Widerspruch zur Maximalität von .

( ) Sei ein Matching von , so dass es keinen -erweiternden Weg gibt.

Sei ein maximales Matching von . Zu zeigen ist: . Es ist und . Also bleibt zu zeigen: .

Sei der Untergraph von mit Kantenmenge . Für die Zusammenhangskomponenten von gilt nach Lemma 6:

Entweder sind es gerade Zyklen mit Kanten abwechselnd in und , oder

es sind Wege mit Kanten abwechselnd in und , deren Endknoten in einem der beiden Matchings ungesättigt sind.

Wenn eine Komponente ein Weg ist, dann ist dieser gerade.

Ein Weg ungerader Länge hätte Endknoten, die im selben Matching (oder ) ungesättigt sind. Dann gibt es einen - (oder -) erweiternden Weg.

-erweiternde Wege gibt es nicht (nach Voraussetzung).

-erweiternde Wege gibt es nicht (da maximal, siehe -Teil des Beweises).

Also sind alle Komponenten von gerade Wege oder gerade Zyklen, welche die selbe Zahl von Kanten in wie in haben.

Somit ist .

M G G

M

M G P M

P M! G

M M

M G M

M! G |M| = |M!|

|M| = |M\M!| + |M M!| |M!| = |M!\M| + |M! M|

|M\M!| = |M!\M|

H G M!M! = (M\M!) (M!\M) H

M M! M M!

M M! M M!

M

M! M!

H M M!

|M\M!| = |M!\M|

(9)

Das Heiratsproblem

Gegeben sei eine endliche Menge Jungen.

Jeder Junge hat mehrere Freundinnen.

Können alle Jungen so verheiratet werden,

dass jeder Junge (genau) eine Freundin heiraten kann?

Als graphentheoretisches Problem formuliert:

Gegeben sei ein bipartiter Graph mit Bipartition .

Welche Bedingungen sind notwendig bzw.

hinreichend, damit ein Matching in existiert, welches jeden Knoten von sättigt.

Philip Hall (engl. Mathematiker, 1904-1982) zeigte,

dass das Heiratsproblem für Jungen genau dann lösbar ist, wenn für jedes , , jede Menge von Jungen

zusammen mindestens Freundinnen haben.

Definition 9:

Sei eine Knotenmenge in . Die benachbarte Menge von in ist die Menge aller Knoten, die adjazent zu Knoten in ist.

9

G = (V, E) V = X Y

G X

k 1 k n k k

S G

N(S) S G S

n

(10)

Der Heiratssatz von Hall

Satz 10 (Hall, 1935):

Sei ein bipartiter Graph mit . hat genau dann ein Matching, welches jeden Knoten von sättigt, wenn für alle Teilmengen von .

Beweis:

( ) Sei ein Matching, welches jeden Knoten in sättigt.

kann nur dann gesättigt werden, wenn sie mindestens Nachbarn hat.

Also ist für alle Teilmengen von . ( ) Sei für alle Teilmengen von .

Angenommen, es gibt kein Matching, welches jeden Knoten von sättigt.

Sei ein maximales Matching von . Auch durch wird nicht ganz gesättigt.

Sei ein Knoten, der nicht durch gesättigt wird.

Da maximal, gibt es nach dem Satz von Berge keinen -erweiternden Weg in . Wenn also ein -alternierender Weg in ist, dessen Endknoten ist, dann muss das andere Ende von ein -gesättigter Knoten sein.

Es ist entweder oder , mit ( bipart.),

Im zweiten Fall wird durch gesättigt. Aber ist keine Kante in . Also gibt es noch eine weitere Kante , um die verlängert werden kann.

Somit kommt o.B.d.A. nur der erste (linke) Fall für vor.

Seien bzw. die Menge aller Knoten in bzw. , die durch einen

-alternierenden Weg von erreichbar sind (wobei wir aus ausschließen).

Da jeder Knoten in mit einem Knoten in gepaart ist, gilt .

G = (V, E) V = X Y G

X |N(S)| |S| S X

M X

S X |S|

|N(S)| |S| S X

|N(S)| |S| S X

X

M G M X

x0 M

M M G

P M G x0

P M

P = (x0, y1, x1, y2, x2, . . . , yn, xn) P = (x0, y1, x1, . . . , xn1, yn) xi X, yi Y G {y1, x1},{y2, x2}, . . . M,{x0, y1},{x1, y2}, . . . /∈ M.

yn M {xn1, yn} M {yn, xn} P

P

S! T X Y

M x0 x0 S!

X Y |S!| = |T|

(11)

Der Heiratssatz von Hall (Forts.)

Beispiel:

Beweis (Forts.):

Sei und adjazent zu einem Knoten in , d.h. . 1. Fall, ist adjazent zu .

Dann ist Endknoten eines -alternierenden Weges der Länge 1.

Also ist .

2. Fall, ist adjazent zu einem Knoten , der auf einem -alternierenden Weg mit Endknoten vorkommt.

1. Fall, ist bereits ein Knoten in .

2. Fall, kann durch Hinzufügen der Kante zu einem längeren -alternierenden Weg erweitert werden.

In beiden Unterfällen ist .

Da in beiden Fällen stets , ist . Offensichtlich gilt . Also ist . Anderseits ist

Also ist , im Widerspruch zur Voraussetzung.

Die Annahme war also falsch, und es gibt ein Matching, welches alle Knoten von sättigt.

11

S := S! {x0} y Y S

y x0

y M

y T

y xi X M

x0

y P

P {xi, y}

M P!

y T

y T N(S) T N(S) = T

|S| = |S!| + 1 = |T| + 1 = |N(S)| + 1.

|N(S)| < |S|

X

x0 X

Y G

a b c d e f g

A B C D E F G H I

L¨ange 1: (x0, B),(x0, C) L¨ange 2: (x0, B, b),(x0, C, c)

L¨ange 3: (x0, B, b, A),(x0, B, b, C) L¨ange 4: (x0, B, b, A, a),(x0, B, b, C, c) L¨ange 5: (x0, B, b, A, a, D)

L¨ange 6: (x0, B, b, A, a, D, d) S!

! "# $

! "# $

T

T N(S)

y N(S)

P

(12)

Perfekte Matchings in regulären bipartiten Graphen

Satz 11:

Sei ein -regulärer bipartiter Graph (mit ). Dann hat ein perfektes Matching.

Das heißt: Wenn jeder Junge Freundinnen hat und jedes Mädchen Freunde, dann kann jeder Junge eine seiner Freundinnen und jedes Mädchen einen ihrer Freunde heiraten.

Beweis (von Satz 11):

Sei die Bipartition von .

Es gibt Knoten in , und jeder Knoten hat Kanten.

Somit gibt es Kanten zwischen und .

Mit dem gleichen Argument gibt es Kanten zwischen und . Aus folgt durch Kürzen ( ) dann .

Sei und die Teilmenge der Kanten, die mit Knoten aus inzidieren.

Aufgrund der -Regularität gilt .

Sei die Teilmenge der Kanten, die mit Knoten aus inzidieren.

Da die Menge der mit benachbarten Knoten ist, gilt . Folglich .

Aufgrund der -Regularität gilt . Also ist

Durch Kürzen ( ) folgt dann .

Da eine beliebige Knotenteilmenge war, folgt aus dem Heiratssatz von Hall, dass ein Matching enthält, welches jeden Knoten von sättigt.

Da , wird auch jeder Knoten in durch dieses Matching gesättigt.

Damit ist ein perfektes Matching.

G k k > 0 G

k k

X Y = V G = (V, E)

|X| X k

k · |X| X Y

k · |Y | Y X

k · |X| = k · |Y | k > 0 |X| = |Y |

S X E1 S

k |E1| = k · |S|

E2 N(S)

N(S) S E1 E2

|E1| |E2|

k |E2| = k · |N(S)| k · |N(S)| = |E2| |E1| = k · |S|.

k > 0 |N(S)| |S|

S G

M X

|X| = |Y | Y M

M

(13)

Skizze eines Matchingalgorithmus für bipartite Graphen

Eingabe: bipartiter Graph mit . Ausgabe:

(a) entweder ein Matching , durch das alle Knoten in gesättigt werden, (b) oder eine Knotenteilmenge mit .

(1) algorithm matching

(2) wähle ein beliebiges Matching

(3) while es gibt einen -ungesättigten Knoten do

(4) if es gibt einen -erweiternden Weg mit Endknoten then (5) bestimme Matching durch Umfärbung von entlang (6) setze

(7) else

(8) bestimme wie im Beweis des Heiratssatzes (9) gib aus

(10) goto (14) (11) end if

(12) end while (13) gib aus (14) end algorithm

Die algorithmische Schwierigkeit ist dabei die Bestimmung eines -erweiternden Weges mit Endknoten bzw. der Nachweis, dass es keinen solchen Weg gibt.

13

G = (V, E) V = X Y

M X

S |N(S)| < |S| M

M x0

M P x0

M! M P

M := M! S

S

M

M x0

(14)

Alternierende Bäume

Definition 12:

Sei ein Matching des bipartiten Graphen mit . Sei ein

-ungesättigter Knoten in . Ein Untergraph von mit den folgenden Eigenschaften:

(a) ist ein Baum, (b) ,

(c) für jeden Knoten ist der (eindeutige) Weg zwischen und in ein -alternierender Weg,

wird als -alternierender Baum mit Wurzel bezeichnet.

Beispiel:

Ein -erweiternder Weg mit Endknoten kann konstruiert werden, indem man einen -alternierenden Baum mit Wurzel „wachsen“ lässt.

Dieses Verfahren wird Ungarische Methode genannt (nach D. König und J. Egerváry, 1931).

X

Y G

a b c d e

A B C D E

C B

a

A e

D

b

E

c x0

M G = (V, E) V = X Y x0

M X G

x0 v M

M x0

M x0

M x0

H H

x0 V (H)

v V (H) H

(15)

So wachsen alternierende Bäume

Alternierende Bäume wachsen so, dass stets eine der beiden Bedingungen erfüllt ist:

(a) entweder sind alle Knoten von , mit Ausnahme von , -gesättigt und in gepaart, (b) oder enthält einen -ungesättigten Knoten .

Fall (a): Bezeichne mit die Knoten in mit gerader Entfernung ( ) zu . Bezeichne mit die Knoten in mit ungerader Entfernung zu .

Per Induktion sieht man ein, dass dann gilt.

Setze .

Bemerke: sind wie im Heiratssatz von Hall definiert.

Es gilt . 1. Fall, .

Dann gibt es einen Knoten , der adjazent mit einem Knoten ist.

Dann ist entweder oder .

Damit ist entweder ungesättigt oder bereits gepaart.

Also ist die Kante nicht in .

Wird durch gesättigt, gibt es eine weitere Kante . Der Baum wächst dann durch Hinzufügen von und . Ist ungesättigt, tritt Fall (b) ein (siehe unten).

2. Fall, .

Dann gilt (siehe Beweis von Hall) , also . Somit enthält der Graph kein Matching, welches jeden Knoten in sättigt.

Fall (b): Der Baum hat einen Weg , dessen beide Endknoten und -ungesättigt sind.

Durch Umfärben entlang erhält man ein vergrößertes Matching.

15

x0

H x0 M M

H M v != x0

S! H != 0 x0

T H x0

|T| = |S!| S := S! {x0}

S, S!, T T N(S)

T N(S)

y V (G), y / T x S

x = x0 x S! x

{x, y} M

y M {y, z} M

{y, z} {x, y}

y

T = N(S)

|N(S)| = |T| = |S!| = |S| 1 |N(S)| < |S| X

P x0 v M

P

(16)

Der Ungarische Algorithmus

Eingabe: bipartiter Graph mit . Ausgabe:

(a) entweder ein Matching durch das alle Knoten in gesättigt werden,

(b) oder eine Knotenteilmenge mit . (1) algorithm hungarian

(2) wähle ein beliebiges Matching

(3) while es gibt einen -ungesättigten Knoten do (4)

(5) repeat

(6) if then (7) gib aus

(8) goto (19) (9) else

(10) wähle (11)

(12) if es gibt ein mit then (13)

(14) end if (15) end if

(16) until ungesättigt

(17) färbe entlang des Weges von nach um (18) end while

(19) end algorithm

G = (V, E) V = X Y M

X

S |N(S)| < |S| M

M x0

S := {x0}, T :=

N(S) = T S

y N(S)\T

z {y, z} M

y

M x0 y

M := {aB, cC, eD, f G}

S := S {z} T := T {y}

a

B

A c

C

b F a

e b

B C

D

d G

Y

A B C D E F G

X a b c d e f g

a

b

B C

g

(17)

Korrektheitsbeweis

Satz 13:

Der ungarische Algorithmus arbeitet korrekt.

Beweis:

Zu Beginn jeder äußeren Iteration, in Schritt (4), hat ein Element mehr als .

Werden weitere gesättigte Knoten angehängt, dann wird ein Element zu und ein Element zu hinzugefügt, vgl. Schritt (11) und (13).

Also hat stets ein Element mehr als , d.h. .

Terminiert der Algorithmus aufgrund von , so ist . Wegen des Heiratssatzes von Hall ist die Ausgabe, dass es in diesem Fall kein Matching gibt, welches jeden Knoten von sättigt, korrekt.

Andernfalls terminiert der Algorithmus erst, wenn jeder Knoten von gesättigt ist.

17

S T

S T

S T |T| = |S| 1

N(S) = T |N(S)| = |T| = |S| 1 < |S| X

X

(18)

Optimale Matchings

Definition 14:

Sei ein bewerteter vollständiger bipartiter Graph mit Bipartition ,

wobei und und die Bewertung der Kante ist.

Ein optimales Matching ist ein maximal-bewertetes perfektes Matching in . Definition 15:

Sei wie zuvor. Eine Abbildung heißt zulässige Knotenkennzeichnung von , wenn für alle gilt.

Eine zulässige Knotenkennzeichnung kann stets erzielt werden durch die Setzung für alle und für alle . Beispiel:

Definition 16:

Sei eine zulässige Knotenkennzeichnung von und . Dann wird als der Gleichheitsuntergraph bzgl. bezeichnet.

Beispiel (Forts.):

G = (V, E) V = X Y

X = {x1, . . . , xn} Y = {y1, . . . , yn} wi,j {xi, yj} G

G λ : V R G

λ(xi) + λ(yj) wi,j xi X, yj Y

λ(xi) := max{wi,j : 1 j n} xi X λ(yj) := 0 yj Y

13 5

8 3 10

6 9

4 5

x1 x2 x3

y1 y2 y3

λ( ) = 0 λ( ) = 0 λ( ) = 0 λ( ) = 13 λ( ) = 10 λ( ) = 9

13 5

8 3 10

6 9

4 5

x1 x2 x3

y1 λ( ) = 0y2 λ( ) = 0y3 λ( ) = 13 λ( ) = 11 λ( ) = 9

λ( ) = 1

λ G Eλ := {{xi, yj} : λ(xi) + λ(yj) = wi,j}

Gλ := (V, Eλ) λ

13

10 9

x1 x2 x3

y1 y2 y3

λ( ) = 0 λ( ) = 0 λ( ) = 0

λ( ) = 13 λ( ) = 10 λ( ) = 9 x1 x2 x3

y1 λ( ) = 0y2 λ( ) = 0y3 λ( ) = 13 λ( ) = 11 λ( ) = 9

λ( ) = 1

(19)

Satz 17:

Sei eine zulässige Knotenkennzeichnung für den bewerteten vollständigen bipartiten

Graphen . Wenn der Gleichheitsuntergraph ein perfektes Matching enthält, dann ist ein optimales Matching für .

Beweis:

Sei ein perfektes Matching für .

Da die gleichen Knoten wie enthält, ist ein perfektes Matching von . Es ist .

Für jede Kante ist , also .

Da das Matching perfekt ist, verbinden seine Kanten alle Knoten von genau ein Mal.

Damit ist . Sei nun ein beliebiges perfektes Matching von .

Dann gilt . Es folgt .

Da ein beliebiges Matching von war, ist daher ein optimales Matching von .

Gleichheitsuntergraphen und optimale Matchings

19 λ

G Gλ M

M G

M Gλ

Gλ G M G

w(M) = !

{xi,yj}∈M wi,j

{xi, yj} M {xi, yj} Gλ wi,j = λ(xi) + λ(yj)

M G

G M

w(M) w(M)

M G M G

w(M) = !

{xi,yj}∈M wi,j = !n

i=1(λ(xi) + λ(yi)) w(M) = !

{xi,yj}∈M wi,j !n

i=1(λ(xi) + λ(yi))

(20)

Ein Algorithmus für optimale Matchings in vollständigen bipartiten Graphen

Beginne mit einer zulässigen Knotenkennzeichnung für . Bestimme den Gleichheitsuntergraphen .

Wähle ein beliebiges Matching in .

Wende die ungarische Methode auf und an.

1. Fall, die ungarische Methode liefert ein perfektes Matching . Nach Satz 17 ist dann ein optimales Matching für . Fertig.

2. Fall, sie liefert ein nicht-perfektes Matching , das nicht weiter vergrößert werden kann.

Dann gibt es einen -alternierenden Baum , der keinen -erweiternden Weg hat.

Dieser Baum kann in nicht mehr weiter wachsen.

Wir verändern nun zu , so dass

ebenso eine zulässige Knotenkennzeichnung ist,

der Gleichheitsuntergraph sowohl als auch den -alternierenden Baum enthält,

der -alternierende Baum in weiter wachsen kann.

Bemerke, dass der -alternierende Baum so erzeugt wurde, dass es Untermengen und gibt mit .

λ G Gλ

M Gλ

Gλ M

M

M G

M!

M! H M!

Gλ λ λ! λ!

Gλ! M! M! H

M! H Gλ!

M! H S X

T Y NGλ(S) = T

(21)

Defekte

Definition 18:

Seien und die durch die ungarische Methode erzeugten Untermengen mit . Dann ist der Defekt von . Für einen Knoten in setze

Dieses erfüllt die vorhin geforderten Eigenschaften:

ist eine zulässige Knotenkennzeichnung,

der Gleichheitsuntergraph enthält und den -alternierenden Baum , der -alternierende Baum kann in weiter wachsen.

Dann wird das Verfahren mit (an Stelle von ) fortgesetzt.

Die Knotenkennzeichnung wird so lange geändert, bis ein perfektes Matching im

Gleichheitsuntergraphen entsteht. Dieses ist nach Satz 17 dann ein optimales Matching.

Dieses Verfahren ist nach Kuhn (1955) und Munkres (1957) benannt.

21

S X T Y

dλ := min{λ(x) + λ(y) wx,y : x S, y /∈ T} λ v G

λ!(v) :=



λ(v) dλ ; v S, λ(v) + dλ ; v T,

λ(v) ; v /∈ S T.

λ! λ!

Gλ! M! M! H

M! H Gλ!

Gλ! Gλ NGλ(S) = T

(22)

Der Algorithmus von Kuhn-Munkres

Eingabe: vollständiger bipartiter Graph mit Bewertung .

Ausgabe: optimales Matching . (1) algorithm kuhnMunkres

(2) wähle eine zul. Knotenkennzeichung (3) wähle ein beliebiges Matching von

(4) while es gibt -ungesättigten Knoten do (5)

(6) repeat

(7) if then (8)

(9)

(10) end if (11) wähle (12)

(13) if es gibt ein mit then (14)

(15) end if

(16) until ungesättigt

(17) färbe entlang des Weges von nach um (18) end while

(19) end algorithm

22

G = Kn,n = (V, E) w : E R

M

λ M Gλ

M x0

S := {x0}, T := NGλ(S) = T

y NGλ(S)\T T := T {y}

z {y, z} M S := S {z}

y

M x0 y

dλ := min{λ(x) + λ(y) wx,y : x S, y /∈ T}

λ(v) := λ(v) dλ ∀v S,λ(v) := λ(v) + dλ v T

G Y

A B C D E F G

X a b c d e f g

(wx,y)x∈X

y∈Y =

3 5 5 4 1 2 3 5 7 7 6 5 4 6 2 0 2 2 2 2 1 2 4 4 4 3 2 4 1 2 1 3 1 3 1 6 8 8 5 8 7 8 2 4 4 1 0 3 3

. x0 = g .

S = {g}, T = {}

b

. dλ = 1 .

e f E

G

d

a D

B C

F

g

G Y

X a b c d e f g

(23)

Lösung des chinesischen Briefträgerproblems

Aus dem letzten Kapitel (#6) haben wir gesehen, wie das chinesische Briefträgerproblem (CPP) zu lösen ist, wenn

der zu Grunde liegende Graph eulersch ist, oder der Graph genau zwei Knoten ungeraden Grades hat.

In der allgemeinen Situation (mehr als zwei ungerade Knoten) kann eine Lösung wie folgt ermittelt werden:

Sei die Menge der ungeraden Knoten in .

Für jedes Paar ungerader Knoten berechne man ihre Entfernung im Graphen bzgl. der Bewertung (z.B. mittels des Algorithmus von Dijkstra oder Floyd-Warshal).

Wir definieren einen vollständigen bewerteteten Graphen . Bemerke, dass die Anzahl ungerader Knoten gerade ist.

Also hat ein perfektes Matching.

Es gibt effiziente Algorithmen (Edmonds, 1965) zur Bestimmung eines minimalen perfekten Matchings in .

Die Wege in , die den Kanten in entsprechen, werden in verdoppelt.

Dadurch entsteht ein Eulerscher Obergraph von . In diesem kann mittels des Algorithmus von Fleury eine Eulertour bestimmt werden.

Diese ist dann die Lösung des chinesischen Briefträgerproblems.

23 G = (V, E)

U

u, v U du,v

G c

(KU, d)

KU

M (KU, d)

G M

G

G! G G

(24)

Der Algorithmus von Christofides (1976)

Eingabe: Instanz für mTSP Ausgabe: 1/2-approximative Tour (1) algorithm christofides

(2) bestimme minimalen Spannbaum für

(3) sei die Menge der Knoten mit ungeradem Grad in (4) bestimme ein minimales perfektes Matching in (5) sei der eulersche Multigraph, der aus durch

Hinzufügen der Kanten von entsteht.

(6) bestimme eine Eulertour für (7) wähle eine in enthaltene Tour (8) end algorithm

(Kn, c)

C

T (Kn, c)

K G

K C

Aa Be Da Du¨ F r Ha Mu¨ Nu¨ St Aa 0 64 26 8 57 49 64 47 46 Be 64 0 56 57 88 29 60 44 63 Da 26 56 0 23 34 50 40 22 20 Du¨ 8 57 23 0 54 43 63 44 41 F r 57 88 34 54 0 83 37 43 27 Ha 49 29 50 43 83 0 80 63 70 Mu¨ 64 60 40 63 37 80 0 17 22 Nu¨ 47 44 22 44 43 63 17 0 19 St 46 63 20 41 27 70 22 19 0

c(T) = 186 T

U T

G T

U = {Aa, Be, Du, F r, M¨ u, St¨ } M

M = {AaDu, BeM¨ u, F rSt¨ }

München Stuttgart

Berlin

Freiburg Aachen

Düsseldorf

M

G

K = (Be, Mu, N¨ u, St, F r, St, Da, D¨ u, Aa, D¨ u, Ha, Be)¨ C = (Be, Mu, N¨ u, St, F r, Da, D¨ u, Aa, Ha, Be)¨

C

Darmstadt

München Stuttgart

Hamburg

Nürnberg

Berlin

Freiburg Aachen

Düsseldorf

c(C) = 266 (KU, c)

c(M) = 95

(25)

Beweis der Approximationsgüte

Satz 19:

Der Algorithmus von Christofides ist 1/2-approximativ.

Beweis:

Sei eine optimale Tour.

Nach Lemma 30 / VL 6 gilt für die in Schritt (8) konstruierte Tour die Abschätzung aus Schritt (3) hat eine gerade Anzahl von Knoten, .

Sei die Reihenfolge, in der die Knoten von in besucht werden.

Wir definieren zwei perfekte Matchings von durch Da die Dreicksungleichung erfüllt und minimal ist, gilt Also ist .

Ferner ist .

Somit gilt . Nach Definition ist der Algorithmus daher 1/2-approximativ.

25 c(C) c(E) = c(T) + c(M). C

U |U| = 2m

(i1, i2, . . . , i2m) U C

M1, M2 KU C

M1 := {i1i2, i3i4, . . . , i2m1i2m}, M2 := {i2i3, i4i5, . . . , i2mi1}.

c M

c(C) ci1i2 + ci2i3 + ci3i4 + . . . + ci2m1i2m + ci2mi1 = c(M1) + c(M2) c(M) c(C)/2

c(T) c(C)

c(C) c(T) + c(M) c(C) + c(C)/2 = 3/2c(C)

2c(M).

(26)

Literaturquellen

J. Clark, D.A. Holton, Graphentheorie, Spektrum Akademischer Verlag, Heidelberg, 1994.

(Kapitel 4, Seite 133-172)

D. Jungnickel: Graphen, Netzwerke und Algorithmen, BI Wissenschaftsverlag, Mannheim, 1994. (Kapitel 12-14, Seite 435-570)

B. Korte, J. Vygen: Combinatorial Optimization - Theory and Algorithms, 2nd Edition, Springer Verlag, Berlin, 2001. (Kapitel 10&11, Seite 205-260)

Referenzen

ÄHNLICHE DOKUMENTE

Für einen Knoten eines Graphen ist der Grad definiert als die Anzahl der mit inzidenten Kanten.. Für einen Knoten eines Digraphen definieren wir den Ausgangsgrad

Wenn dieser Eintrag (nennen wir ihn ) in der ersten Zeile aufgezeichnet wird, dann sind alle vorherigen Knoten in der ersten Zeile gelöscht,.

Möglichkeit B: Zwei Bäume sind gleich, wenn man eine eineindeutige (bijektive) Abbildung zwischen den Knoten definieren kann, so dass zwei Urbildknoten genau dann benachbart

Wir haben gezeigt (Satz 11), dass eine Abbildung genau dann ein maximaler - -Fluss im Flussnetz ist, wenn sie die folgenden Eigenschaften erfüllt:. es gibt keinen

Ein schlichter Graph ist genau dann -fach zusammenhängend, wenn für jedes Knotenpaar von , , mindestens paarweise innerlich disjunkte - -Wege

Bemerkung: Da in einem Weg die Kanten per Definition paarweise verschieden sind, enthält ein Eulerscher Weg damit jede Kante genau einmal.. G = (V, E)

Bemerkung: Da abgesehen vom Endknoten kein Knoten wiederholt wird, enthält auch ein Hamiltonscher Zyklus jeden Knoten von genau einmal.. Hamiltonsche Graphen sind benannt nach

Wenn die Nachbarn von weniger als Farben verbrauchen, dann kann mit einer nicht verbrauchten Farbe gefärbt werden... Satz von