Date: 2010-01-01T11:19:57+00:00
Keywords: Algebra & Zahlentheorie; Informatik; Business & Karriere; Operations Research; Mathematik; Kombinatorik; Bildung; Fachbücher; Naturwissenschaften & Technik; Lineare Algebra; Angewandte Mathematik; Abstrakte Algebra; Graphentheorie; Analysis; Computer & Internet
Description: Mit diesem Buch wollen wir verschiedene Teilgebiete der Mathematik aus algorithmischer Perspektive vorstellen und dabei auch Implementierungs- und Laufzeitaspekte diskutieren. Gleichzeitig möchten wir, bei einer verkürzten Grundausbildung in Mathematik in naturwissenschaftlichen und informatischen Studiengängen, möglichst viele Teilaspekte der Mathematik vorstellen und vielleicht zu einer vertiefenden Beschäftigung mit dem einen oder anderen Aspekt anregen. Unser Ziel ist es dabei nicht, den Leser zu einem versierten Anwender der besprochenen Algorithmen auszubilden, sondern wir wollen, immer
Publisher: Springer

Springer-Lehrbuch

Winfried Hochstättler

Algorithmische Mathematik

123

Winfried Hochstättler

Fernuniversität in Hagen

Fachbereich Mathematik

Lützowstr. 125

58095 Hagen

Winfried.Hochstaettler@FernUni-Hagen.de

ISSN 0937-7433

ISBN 978-3-642-05421-1
e-ISBN 978-3-642-05422-8

DOI 10.1007/978-3-642-05422-8

Springer Heidelberg Dordrecht London New York

Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie;
detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar.

Mathematics Subject Classification (2000): 68-01
c

Springer-Verlag Berlin Heidelberg 2010

Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte, insbesondere die der

Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von Abbildungen und Tabellen, der

Funksendung, der Mikroverfilmung oder der Vervielfältigung auf anderen Wegen und der Speicherung
in Datenverarbeitungsanlagen, bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine

Vervielfältigung dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen
der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik Deutschland vom 9.

September 1965 in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich vergütungspflichtig.

Zuwiderhandlungen unterliegen den Strafbestimmungen des Urheberrechtsgesetzes.

Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in diesem Werk
berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme, dass solche Namen im Sinne der

Warenzeichen- und Markenschutz-Gesetzgebung als frei zu betrachten wären und daher von jedermann
benutzt werden dürften.

Einbandentwurf: WMXDesign GmbH, Heidelberg

Gedruckt auf säurefreiem Papier

Springer ist Teil der Fachverlagsgruppe Springer Science+Business Media (www.springer.com)

... und da ich bedachte, dass unter allen, die sonst nach

Wahrheit in den Wissenschaften geforscht, die

Mathematiker allein einige Beweise, das heißt einige
sichere und einleuchtende Gründe hatten finden können, so
war ich gewiß, dass ich mit diesen bewährten Begriffen
anfangen müsse ...

René Descartes (1637)

Vorwort

Obwohl jeder schon in der Grundschule die ersten Algorithmen kennen lernt, nämlich die Addi-
tion, Subtraktion, Multiplikation und Division im Zehnersystem, ist der Begriff Algorithmus“ kein

”

Allgemeingut, und Mathematik wird in den weiterführenden Schulen und oft auch an Hochschulen
wenig aus algorithmischer Sichtweise betrachtet. In den Anfangszeiten der Informatikausbildung
wurde Mathematik vor allem aus klassischer Grundlagensicht gelehrt, die Algorithmenausbildung
als Teil der Theoretischen Informatik betrachtet. In letzter Zeit ist allerdings der Anteil der Ma-
thematik und der Theoretischen Informatik in der Informatikausbildung deutlich zurückgegangen.

Ursache ist einerseits die zunehmende Bedeutung des Engineering in der Softwareentwicklung und
andererseits die Verkürzung der Grundlagenausbildung im Rahmen des Bolognaprozesses.

Mit diesem Buch wollen wir verschiedene Teilgebiete der Mathematik aus algorithmischer Per-
spektive vorstellen und dabei auch Implementierungs- und Laufzeitaspekte diskutieren. Gleichzeitig
möchten wir, bei einer verkürzten Grundausbildung in Mathematik in naturwissenschaftlichen und
informatischen Studiengängen, möglichst viele Teilaspekte der Mathematik vorstellen und vielleicht
zu einer vertiefenden Beschäftigung mit dem einen oder anderen Aspekt anregen. Unser Ziel ist es
dabei nicht, den Leser zu einem versierten Anwender der besprochenen Algorithmen auszubilden,
sondern wir wollen, immer ausgehend von konkreten Problemen, Analyse- und Lösungsstrategien
in den Mittelpunkt stellen. Hierbei spielen insbesondere Beweise und Beweistechniken eine zentrale

Rolle.

Bevor wir uns konkreten algorithmischen Fragestellungen zuwenden, widmen wir uns der Kom-
binatorik und dem elementaren Abzählen. Hier kann man, ohne ausgefeiltes Theoriegebäude, sehr
schön mathematische Argumentations- und Schlussweisen vorstellen und etwa darlegen, wie man
längere Rechnungen durch geschickte Argumentation vermeiden kann. Gleichzeitig dient dieses Ka-
pitel auch der Vorbereitung von Abschätzungen und Laufzeitanalysen.

In den nächsten beiden Kapiteln stellen wir einige algorithmische Probleme auf Graphen und

Digraphen vor. Wir diskutieren Baumsuche, Valenzsequenzen, Eulertouren, minimale aufspannende

Bäume, das Isomorphieproblem bei Bäumen, maximale bipartite Matchings und stabile Hochzeiten.

Bei der Auswahl haben wir uns eher an der Breite der angesprochenen Themen als an der Relevanz
der Aufgabenstellungen orientiert.

Mit dem folgenden Kapitel verlassen wir die diskrete Mathematik und wollen zunächst Problem-
bewusstsein für die Schwierigkeiten beim Rechnen mit Fließkommazahlen wecken. Wir stellen bei-
spielhaft Auslöschung und Fehlerfortpflanzung vor. Daneben diskutieren wir Grundalgorithmen der

Linearen Algebra, wie LU -Zerlegung und Choleskyfaktorisierung aus numerischer Sicht.

vii
viii

Vorwort

Die Kapitel 6 und 7 sind der Nichtlinearen Optimierung als algorithmischer Anwendung der

Analysis gewidmet. In dem ersten dieser beiden Kapitel diskutieren wir vor allem notwendige und
hinreichende Bedingungen für Extremwerte. Einen Beweis für die Lagrangebedingungen oder der

Kuhn-Tucker-Bedingungen müssen wir im Rahmen dieses Buches schuldig bleiben, da wir den dafür
benötigten Satz über implizit definierte Funktionen“ nicht voraussetzen wollen. Statt dessen versu-

”

chen wir, die Aussagen anschaulich geometrisch plausibel zu machen. Die geometrische Sichtweise
halten wir auch bei der Diskussion numerischer Verfahren zur Lösung von nichtlinearen Optimie-
rungsproblemen in Kapitel 7 bei. Schlüsselwörter sind hier Abstiegsrichtung und Schrittweite.

Das abschließende Kapitel zur Linearen Optimierung haben wir hinten angestellt, da wir den

Dualitätssatz der Linearen Optimierung aus den Kuhn-Tucker Bedingungen ableiten. Darüber hinaus
diskutieren wir den Simplexalgorithmus aus geometrischer Sicht und wie sich die geometrischen

Ideen effizient im Tableau umsetzen lassen.

Wir setzen an einigen Stellen Kenntnisse in Linearer Algebra und Analysis voraus, wie sie
in einführenden Büchern und Veranstaltungen der Mathematik für Ingenieure und Natur- oder

Wirtschaftswissenschaftler vermittelt werden.

Dieses Buch ist aus einem Fernstudienkurs der FernUniversität in Hagen hervorgegangen, der Teil
der mathematischen Grundausbildung in den Bachelorstudiengängen Informatik und Wirtschaftsin-
formatik im zweiten Semester ist, und den wir auch in der Lehrerfortbildung einsetzen.

Hagen, im September 2009

Winfried Hochstättler

Danksagung

Bei der Wahl der Themen und des Titels dieses Buches habe ich mich von meinen akademischen

Lehrern Achim Bachem und Jaroslav Nešetřil anregen lassen. Dem diskreten Teil in den Kapiteln 2–

4 merkt man wahrscheinlich noch die Vorbildfunktion an, die das Buch Diskrete Mathematik – Eine

”

Entdeckungsreise“ von Matoušek und Nešetřil hier für mich hatte. Die Wahl der Themen der übrigen

Kapitel lehnt sich an die Vorlesung “Algorithmische Mathematik – für Wirtschaftsinformatiker“ an,
die ich als Assistent von Achim Bachem im Wintersemester 1991/92 betreuen durfte.

Darüber hinaus gilt mein Dank allen, die mir bei der Entwicklung dieses Manuskripts behilf-
lich waren, meinem ehemaligen Mitarbeiter Robert Nickel, insbesondere für seine Beiträge zu
weiterführenden Literaturhinweisen, meinen Mitarbeitern Dr. Manfred Schulte und Dr. Dominique

Andres, Herrn Klaus Kuzyk, Frau Heidrun Krimmel sowie zahllosen aufmerksamen FernStudieren-
den der FernUniversität in Hagen.

ix

Inhaltsverzeichnis

1

Notation und Grundstrukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.1

Gliederung und Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2

1.3

Abbildungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4

1.4

Beweismethoden und das Prinzip der vollständigen Induktion . . . . . . . . . . . . . . . . . . .

5

1.4.1

Beweis durch Kontraposition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5

1.4.2

Widerspruchsbeweis oder reductio ad absurdum . . . . . . . . . . . . . . . . . . . . . . . .

7

1.4.3

Das Prinzip der vollständigen Induktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7

2

Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten . . . . . . . . . . . . . . . . . . 11

2.1

Abbildungen und Mengen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

2.2

Injektive Abbildungen, Permutationen und Fakultät . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

2.3

Binomialkoeffizienten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.4

Abschätzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.5

Abschätzungen für Fakultäten und Binomialkoeffizienten . . . . . . . . . . . . . . . . . . . . . . . 23

2.6

Das Prinzip von Inklusion und Exklusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

2.7

Diskrete Wahrscheinlichkeitsrechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.7.1

Wahrscheinlichkeitsraum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

2.7.2

Bedingte Wahrscheinlichkeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

2.7.3

Paradoxa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

2.7.4

Zufallsvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

3

Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.1

Relationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.1.1

Äquivalenzrelationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

3.1.2

Partialordnungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

3.2

Definition eines Graphen, Isomorphismus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

3.3

Teilgraphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

3.4

Zusammenhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

3.5

Kodierung von Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51

3.6

Effiziente Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55

3.7

Breitensuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
xi
xii

Inhaltsverzeichnis

3.8

Tiefensuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.9

Valenzsequenzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60

3.10 Eulertouren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

3.11 Gerichtete Graphen und Eulertouren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

3.12 2-Zusammenhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

4

Bäume und Matchings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

4.1

Definition und Charakterisierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

4.2

Isomorphismen von Bäumen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79

4.3

Aufspannende Bäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

4.4

Minimale aufspannende Bäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

4.5

Die Algorithmen von Prim-Jarnik und Bor˚uvka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

4.6

Die Anzahl aufspannender Bäume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

4.7

Bipartites Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94

4.8

Stabile Hochzeiten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

5

Numerik und lineare Algebra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

5.1

Etwas mehr Notation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

5.2

Kodierung von Zahlen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

5.3

Fehlerquellen und Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

5.4

Gaußelimination und LU -Zerlegung, Pivotstrategien . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

5.5

LU -Zerlegung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

5.6

Gauß-Jordan-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

5.7

Elementares über Eigenwerte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

5.8

Choleskyfaktorisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

5.9

Matrixnormen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

5.10 Kondition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

6

Nichtlineare Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

6.1

Steilkurs mehrdimensionale Differentialrechnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

6.1.1

Kurven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

6.1.2

Partielle Ableitungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146

6.2

Notwendige und hinreichende Bedingungen für Extremwerte . . . . . . . . . . . . . . . . . . . . 151

6.3

Exkurs Mannigfaltigkeiten und Tangentialräume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

6.4

Bedingungen für Extrema auf gleichungsdefinierten Mengen . . . . . . . . . . . . . . . . . . . . 156

6.5

Bedingungen für Extrema auf ungleichungsdefinierten Mengen . . . . . . . . . . . . . . . . . . 161

7

Numerische Verfahren zur Nichtlinearen Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

7.1

Das allgemeine Suchverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

7.2

Spezielle Suchverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

7.3

Koordinatensuche und Methode des steilsten Abstiegs . . . . . . . . . . . . . . . . . . . . . . . . . . 181

7.4

Newtonverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186

7.5

Verfahren der konjugierten Richtungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190

Inhaltsverzeichnis
xiii

8

Lineare Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

8.1

Modellbildung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

8.2

Der Dualitätssatz der Linearen Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207

8.3

Das Simplexverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211

8.4

Tableauform des Simplexalgorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 216

8.5

Pivotwahl, Entartung, Endlichkeit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218

8.6

Bemerkungen zur Numerik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221

8.7

Die Zweiphasenmethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222

8.8

Sensitivitätsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 226

9

Lösungsvorschläge zu den ¨

Ubungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

9.1

Lösungsvorschläge zu den Übungen aus Kapitel 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229

9.2

Lösungsvorschläge zu den Übungen aus Kapitel 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231

9.3

Lösungsvorschläge zu den Übungen aus Kapitel 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238

9.4

Lösungsvorschläge zu den Übungen aus Kapitel 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246

9.5

Lösungsvorschläge zu den Übungen aus Kapitel 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254

9.6

Lösungsvorschläge zu den Übungen aus Kapitel 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265

9.7

Lösungsvorschläge zu den Übungen aus Kapitel 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 273

9.8

Lösungsvorschläge zu den Übungen aus Kapitel 8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 283

Symbolverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293

Literaturhinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301

Kapitel 1

Notation und Grundstrukturen

1.1 Gliederung und Motivation

Schwerpunkt dieses Buches ist vor allem die Schulung des folgerichtigen und algorithmischen Den-
kens. Wenn Sie Informatiker oder Ökonom sind, werden Sie oft in Wenn-Dann“-Situationen sein,

”

ob Sie nun Produktionsabläufe oder die Struktur einer komplexen Hard- oder Softwareumgebung
analysieren wollen. Diese Analysekompetenz trainiert man unseres Erachtens am besten, indem man
abstrakte Strukturen analysiert, die von störendem Ballast befreit sind. Diese Art von Analysen ist
natürlicherweise Bestandteil von mathematischen Wenn-Dann“-Aussagen, wenn diese nämlich be-

”

wiesen werden. Folglich werden wir verstärkt Wert auf Beweise legen. Ein Beweis eines Satzes ist
nichts anderes als eine folgerichtige, vollständige Schlusskette, mit der man aus der Gültigkeit einer

Reihe von Voraussetzungen die Aussage des Satzes herleitet.

Wir werden in diesem Kapitel noch verschiedene Besonderheiten von Beweisen vorstellen. Dabei
kommt dem Induktionsbeweis im Rahmen der Algorithmischen Mathematik eine besondere Bedeu-
tung zu. Induktionsbeweise sind in der Regel konstruktiv und führen häufig zu Algorithmen, mit
denen man zum Beispiel eine Struktur, deren Existenz die Induktion beweist, auch algorithmisch
auffinden kann.

Nachdem wir in diesem Kapitel etwas Notation einführen, werden wir uns zunächst mit Zählpro-
blemen beschäftigen. Dort werden Sie z. B. lernen, folgendes Problem zu lösen:

Problem 1.1. Wie groß ist die Chance, mit einem Lotto-Tipp fünf Richtige mit Zusatzzahl zu
bekommen?

Im dritten Kapitel werden wir Graphen kennenlernen und das Haus vom Nikolaus ohne abzuset-
zen zeichnen. Ferner werden wir ein Kriterium kennenlernen, das es uns erlaubt, auch das Doppel-
haus vom Nikolaus zu betrachten.

Problem 1.2. Kann man nebenstehende Figur ohne ab-
zusetzen zeichnen?

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

1

DOI 10.1007/978-3-642-05422-8 1, c

Springer-Verlag Berlin Heidelberg 2010

2

Kapitel 1. Notation und Grundstrukturen

Im vierten Kapitel lernen wir Bäume kennen und lösen algorithmisch effizient folgendes Problem:

Problem 1.3. Gegeben sind n Stationen und Kosten für
eine paarweise Verbindung von je zwei Stationen. Instal-
liere möglichst kostengünstig Verbindungen so, dass je-
de Station von jeder anderen Station aus (evtl. über Zwi-
schenstationen) erreichbar ist.

Bis hierhin konnten wir von allen Zahlenwerten annehmen, dass sie ganz oder zumindest rational
sind. Im zweiten Teil des Buches untersuchen wir Probleme, bei denen dies nicht immer der Fall
ist. Allerdings können wir nicht einmal theoretisch die Menge der reellen Zahlen im Computer dar-
stellen. Die Speicherzellen im Computer sind nummeriert, also kann man nur abzählbare Mengen
darstellen. Die Menge der reellen Zahlen ist aber nicht abzählbar. Hingegen kann man die ganzen
und die rationalen Zahlen abzählen. Aber auch beim Rechnen mit rationalen Zahlen können wir
im Allgemeinen nicht davon ausgehen, dass wir mit beliebiger Genauigkeit rechnen können, da wir
nur mit endlichem Speicherplatz rechnen können. Dies führt zu Rundungsfehlern, die sich in Rech-
nungen verstärken und fortpflanzen können. Nach der Diskussion dieser allgemeinen Problematik
diskutieren wir Verfahren zur Optimierung linearer und nicht-linearer Modelle.

1.2 Notation

Zunächst wiederholen wir Symbole aus der Mengenlehre, die aus der Schule bekannt sein sollten:

Wir bezeichnen mit

N
die Menge der natürlichen Zahlen, die nach DIN-Norm 5473 die Null beinhaltet N :=

{ 0 , 1 , 2 , 3 , 4 , 5 , 6 ,...}.

Z die Menge der ganzen Zahlen Z := {...,− 4 ,− 3 ,− 2 ,− 1 , 0 , 1 , 2 , 3 , 4 ,...}.

Q die Menge der rationalen Zahlen Q := { p | p ∈ Z , q ∈ N \ { 0 }}.

q

R
die Menge der reellen Zahlen, dies sind alle Zahlen, die sich als nicht notwendig abbrechende

Dezimalbrüche darstellen lassen. Dazu gehören zusätzlich zu den rationalen Zahlen irrationale,

√
algebraische Zahlen wie etwa

2 , die Nullstelle von x 2 − 2 ist, aber auch irrationale, transzen-
dente Zahlen, die nicht Nullstelle eines Polynoms mit rationalen Koeffizienten = 0 sind, wie
etwa π . Anstatt eines Dezimalkommas, benutzen wir die internationale Schreibweise mit Dezi-
malpunkt.

Die meisten Operationen, die wir mit Zahlen durchführen, wie Summe, Produkt, Differenz,

Quotient, Potenz etc. setzen wir als allgemein bekannt voraus. Ist x eine reelle Zahl, so bezeichnen
wir mit
x die nächstkleinere ganze Zahl, also etwa 1 . 99 = 1 , 2 . 01 = 2 , 2 = 2 , − 1 . 99 = − 2
und mit
x die nächstgrößere ganze Zahl, also etwa 1 . 99 = 2 , 2 . 01 = 3 , 2 = 2 , − 1 . 99 = − 1 .

Summen und Produkte mehrerer Elemente kürzen wir mit dem Summationszeichen Σ und dem

Produktzeichen Π ab.

1.2. Notation

3
n
n

∑ ai := a 1 + a 2 + ... + an, ∏ ai := a 1 ·a 2 ·...·an.

i=1
i=1

5

Also zum Beispiel ∑ i 2 = 1 + 4 + 9 + 16 + 25 = 55 .

i=1

Die leere Summe setzen wir auf 0 und das leere Produkt auf 1, also z. B.

0

0

∑3 = 0 , ∏3 = 1 .

i=1
i=1

Allgemeine Mengen bezeichnen wir meist mit Großbuchstaben. Wenn x in M liegt, schreiben
wir x ∈ M , ansonsten x ∈ M . Falls M aus endlich vielen Elementen besteht, so bezeichnet |M| die

Kardinalität (oder Mächtigkeit) von M , also die Anzahl der Elemente, die in M liegen.

Sind M, N zwei Mengen, so ist M eine Teilmenge von N , in Zeichen M ⊆ N , wenn

∀x : ( x ∈ M ⇒ x ∈ N) ,

(1.1)

in Worten, wenn x in M liegt, so liegt es auch in N“.

”

Wir haben dabei soeben den Allquantor ∀ benutzt, um zu betonen, dass die Bedingung stets
erfüllt sein muss. Dieser Allquantor ist eine Abkürzung für für alle“. Also bedeutet (1.1) wörtlich

”

Für alle x gilt: wenn x in M liegt, so liegt es auch in N .“ Daneben benutzen wir auch noch

”den Existenzquantor ∃, der bedeutet Es gibt ein ...“. Dabei ist Es gibt ein“ immer als Es gibt

”

”

”

mindestens ein . . .“ zu verstehen.

Zwei Mengen M, N sind gleich ( M = N ), wenn M ⊆ N und N ⊆ M ist.

Vereinigung und Schnitt von Mengen sind definiert als

M ∪ N := {x | x ∈ M oder x ∈ N},

M ∩ N := {x | x ∈ M und x ∈ N}.

Man beachte, dass im Falle der Vereinigung das oder“ nicht exklusiv ist, d. h. x darf auch

”

in beiden Mengen liegen. M ˙

∪N schreiben wir für die Vereinigung M ∪ N nur, wenn zusätzlich
gilt, dass M ∩ N = /0. Wir sagen dann auch, M und N partitionieren M ∪ N . Allgemeiner ist

M = A 1 ˙ ∪A 2 ˙ ∪ . . . ˙ ∪Ak eine Partition von M , wenn für alle i, j ∈ { 1 , . . . , k} mit i = j gilt: Ai ∩A j = /0.

Die Ai bezeichnen wir dann als Klassen von M .

Die Differenzmenge M \ N ist definiert als M \ N := {x | x ∈ M und x ∈ N}.

Betrachtet man Mengen bezüglich einer gegebenen Grundmenge X , die wir als Universum
bezeichnen, so ist für M ⊆ X das Komplement M von M definiert als X \ M .

Das kartesische Produkt zweier Mengen M und N , symbolisch M × N , ist erklärt als die Menge
der geordneten Paare ( x, y) mit x ∈ M und y ∈ N . Wir nennen ein solches Paar Tupel. Elemente von
kartesischen Produkten von n Mengen, also ( x 1 , . . . , xn) nennen wir auch n-Tupel.

Ist X eine Menge, so bezeichnen wir mit

2 X = {Y | Y ⊆ X}

die Potenzmenge von X , das ist die Menge aller Teilmengen von X .

4

Kapitel 1. Notation und Grundstrukturen

1.3 Abbildungen

Eine Abbildung ordnet jedem Element aus einer Urbildmenge ein Element aus einer Wertemenge zu.

Formal:

Eine Abbildung f : M → N aus einer Menge M in eine Menge N ist eine Menge von geordneten

Paaren ( x, y) ∈ M × N mit der Eigenschaft, dass es für jedes x ∈ M genau ein Paar in dieser Menge
gibt, das x als erste Komponente hat. Wir schreiben dann auch x → y.

Statt ( x, y) ∈ f schreiben wir üblicherweise f ( x) = y. Ist A ⊆ M , so bezeichnen wir mit f ( A) :=

{ f ( a) | a ∈ A} ⊆ N die Menge aller Bilder von Elementen in A.

Sind f : M → N und g : Y → M Abbildungen, so definieren wir die Komposition oder Hinterein-
anderausführung h := f ◦ g der Abbildungen durch h( x) := f ( g( x)).

Eine Abbildung f : M → N heißt
injektiv,
wenn verschiedene Urbilder verschiedene Bilder haben, also
x = y ⇒ f ( x) = f ( y) ,
surjektiv,
wenn jedes Element in der Wertemenge getroffen wird, also f ( M) = N ,
bijektiv,
wenn sie injektiv und surjektiv ist.

Eine bijektive Abbildung σ : M → M , bei der Urbildmenge und Wertemenge übereinstimmen,
nennen wir auch eine Permutation.

Definition 1.1. Zwei Mengen A, B heißen gleichmächtig, wenn es eine bijektive Abbildung f : A →

B gibt.

Mit diesen Begrifflichkeiten beweisen wir einige erste kleine Aussagen.

Proposition 1.1. a) Die Hintereinanderausführung injektiver Abbildungen ist injektiv.

b) Die Hintereinanderausführung surjektiver Abbildungen ist surjektiv.

c) Die Hintereinanderausführung bijektiver Abbildungen ist bijektiv.

Beweis.

a) Seien also f , g zwei injektive Abbildungen und die Wertemenge von g sei identisch mit dem

Definitionsbereich (Urbildmenge) von f . Wir haben zu zeigen, dass x = y ⇒ ( f ◦ g)( x) =

( f ◦ g)( y) . Seien also x = y zwei verschiedene Elemente aus dem Definitionsbereich von g.

Da g injektiv ist, sind g( x) = g( y) zwei verschiedene Elemente aus dem Definitionsbereich von
f . Da f injektiv ist, folgt nun ( f ◦ g)( x) = f ( g( x)) = f ( g( y)) = ( f ◦ g)( y).

b) Hier müssen wir zeigen, dass jedes Element aus der Wertemenge N von f ◦ g als Bild angenom-
men wird. Sei also x ein solches Element. Da f surjektiv ist, gibt es ein y aus dem Definitions-
bereich von f mit f ( y) = x , analog gibt es ein z mit g( z) = y . Also ist ( f ◦ g)( z) = x.

c) Dies folgt aus den beiden vorhergehenden Aussagen.

2

Als Zeichen, dass der Beweis fertig ist, haben wir rechts ein offenes Quadrat gesetzt.

Bei einer bijektiven Abbildung f : M → N hat jedes Element in der Wertemenge ein Urbild,
und dieses ist eindeutig. Also können wir die Umkehrabbildung g : N → M definieren durch
g( y) = x ⇐⇒ f ( x) = y. Wir bezeichnen ein solches g auch mit f − 1 .

1.4. Beweismethoden und das Prinzip der vollständigen Induktion

5

Ist f : M → N eine Abbildung und L ⊆ M , so bezeichnen wir mit f|L : L → N , definiert durch
f|L( x) := f ( x), die Einschränkung von f auf L. Damit können wir auch zwei Abbildungen f ,g
verketten, wenn der Bildbereich von der ersten ( g ) nur eine Teilmenge des Definitionsbereichs der
zweiten ( f ) Funktion ist, indem wir für g : K → L definieren:

f ◦ g := f|L ◦ g.

Aufgabe 1.1. Bezeichne 2Z die Menge der geraden ganzen Zahlen. Bestimmen Sie bei den folgen-
den Zuordnungsvorschriften fi , ob es Abbildungen sind. Wenn ja, stellen Sie fest, ob diese injektiv,
surjektiv oder bijektiv sind.

f 1 : Z → N
f 2 : Z → Z
f 3 : Z → 2Z
k → 2 k
k

→ 2 k
k → 2 k
f 4 : Z → Z
f 5 : 2Z → Z
k → 1 k
k

→ 1 k

2

2

Lösung siehe Lösung 9.1.

Aufgabe 1.2. Seien f : M → N und g : L → M Abbildungen. Zeigen Sie:

a) Ist f ◦ g surjektiv, so ist auch f surjektiv.

b) Ist f ◦ g injektiv, so ist auch g injektiv.

c) Geben Sie jeweils ein Beispiel für ( f , g) an, bei dem f ◦ g surjektiv, aber g nicht surjektiv, bzw.

f ◦ g injektiv, aber f nicht injektiv ist.

Lösung siehe Lösung 9.2.

1.4 Beweismethoden und das Prinzip der vollständigen Induktion

Wie Sie in den bisherigen Abschnitten bereits gesehen haben, besteht ein mathematischer Text zu-
meist aus Definitionen, Sätzen und Beweisen. Dabei ist eine Definition eine sprachliche Verein-
barung, die jeweils einer gewissen Struktur einen Namen gibt. Ein Satz besteht zumeist aus ei-
nigen Voraussetzungen und einer Behauptung. In dem zugehörigen Beweis wird schlüssig Schritt
für Schritt dargelegt, warum unter Annahme der Gültigkeit der Voraussetzungen die Behauptung
notwendig auch gelten muss. Jeder einzelne Schritt des Beweises muss logisch nachvollziehbar
sein.

Neben solchen direkten Beweisen, wollen wir hier noch drei weitere Vorgehensweisen vorstellen.

Zunächst den

1.4.1 Beweis durch Kontraposition

Betrachten wir hierzu den Satz“:

”

Wer einkaufen geht und bar bezahlt, hat danach weniger Geld in der Brieftasche.

6

Kapitel 1. Notation und Grundstrukturen

Diese Aussage hat die Form

( A und B) ⇒ C.

Logisch gleichwertig ist die umgekehrte Implikation der Negationen, nämlich
nicht C ⇒ nicht ( A und B) ,
wobei die rechte Seite der Implikation wiederum gleichwertig ist mit

(nicht A) oder (nicht B) .

Insgesamt können wir statt obiger Aussage also genau so gut zeigen:

Wer danach nicht weniger Geld in der Brieftasche hat, war nicht einkaufen oder hat nicht bar bezahlt.

Wir stellen einen solchen Beweis an einem geometrischen Beispiel vor. Ein Geradenarrangement
ist eine endliche Menge von (paarweise verschiedenen) Geraden in der Ebene. Diese zerteilt die

Ebene in (beschränkte und unbeschränkte) Zellen, das sind die zusammenhängenden Gebiete, die
entstehen, wenn man alle Geraden entfernt. Die Schnittpunkte der Geraden nennen wir Ecken des

Arrangements. Beachte, zwei Geraden schneiden sich in genau einer Ecke oder sie sind parallel.

Ein Dreieck in einem Geradenarrangement ist eine beschränkte Zelle, die von genau drei Geraden
berandet wird.

Abb. 1.1 Ein Geradenarrangement und eines seiner acht Dreiecke

Wir zeigen nun

Sei G ein Geradenarrangement, bei dem alle bis auf eine Gerade paarweise parallel sind oder es eine

Ecke gibt, die auf allen Geraden liegt. Dann enthält G kein Dreieck.

Beweis. Man kann diese Aussage selbstverständlich direkt beweisen. Mit Kontraposition wird es
aber einfacher. Die Kontraposition der Aussage ist:

1.4. Beweismethoden und das Prinzip der vollständigen Induktion

7

Enthält ein Geradenarrangement ein Dreieck, so gibt es drei Geraden, die paarweise nicht parallel sind,
und für jede Ecke gibt es eine Gerade, welche diese nicht enthält.

Seien also g 1 , g 2 , g 3 ∈ G so, dass sie ein Dreieck beranden. Dann sind sie offensichtlich nicht
parallel. Da sich zwei Geraden in höchstens einer Ecke schneiden, kann es auch keine Ecke geben,
die auf allen drei Geraden liegt.

2

1.4.2 Widerspruchsbeweis oder reductio ad absurdum

Hier wird eine Behauptung dadurch bewiesen, dass man zeigt, dass die Verneinung der Behauptung
etwas Unsinniges impliziert. Erhält man nämlich durch folgerichtiges Schließen eine offensichtlich
falsche Aussage, so müssen die Prämissen (Voraussetzungen) falsch gewesen sein. Wenn aber die

Prämisse eine falsche Aussage ist, so ist ihre Verneinung eine richtige Aussage.

Betrachten wir hier als Beispiel:

Es gibt unendlich viele Primzahlen: 2 , 3 , 5 , 7 , 11 , 13 , 17 , 19 , 23 , . . . .

Nehmen wir das Gegenteil an und sei etwa {p 1 , . . . , pn} die endliche Menge der Primzahlen und
sei P = ∏ n p
i=1
i . Dann ist P + 1 keine Primzahl, wird also von einer Primzahl, etwa pi , echt geteilt.

0

Also ist

⎛

⎞

P + 1

⎜ n

⎟

1

= ⎝∏ pi⎠ +
pi
p

0
i=1
i 0
i= i 0
eine natürliche Zahl, was offensichtlich Unsinn ist, da pi ≥ 2 ist. Also muss die Annahme, dass es

0
nur endlich viele Primzahlen gibt, falsch und obige Aussage richtig sein.

1.4.3 Das Prinzip der vollständigen Induktion

Oft will man Aussagen für endliche Mengen beweisen. Dafür kann man den konstruktiven Aufbau
der natürlichen Zahlen ausnutzen. Diese lassen sich nämlich durch einen Anfang, die 0, und eine

Nachfolgerfunktion beschreiben. Wenn eine Teilmenge von ganzen Zahlen die 0 und mit jeder Zahl
auch ihren Nachfolger enthält, dann enthält sie alle natürlichen Zahlen. (Sie enthält die 0, also die 1,
also die 2, also ...). Dieses Induktionsprinzip gilt genauso für Teilmengen der ganzen Zahlen, die ein
kleinstes Element n 0 ∈ Z haben und aus allen dessen Nachfolgern bestehen, also für

Z ≥n := {z ∈ Z | z ≥ n

0

0 }.

Folglich kann man eine Aussage für eine Zahl n 0 ∈ Z beweisen und zeigen, dass sie, wenn sie
für eine Zahl n ≥ n 0 gilt, dann auch für ihren Nachfolger n + 1. Diese beiden Fakten zusammen-
genommen beweisen, dass die Aussage für alle ganzen Zahlen, die größer oder gleich n 0 sind,
gilt.

Den Beweis der Aussage für n 0 ∈ Z nennen wir Induktionsanfang. In der Induktionsannahme
gehen wir davon aus, dass die Aussage für alle ganzen Zahlen, die kleiner als n ≥ n 0 sind, gilt, und

8

Kapitel 1. Notation und Grundstrukturen
zeigen im Induktionsschluss, dass die Aussage dann auch für n selber gilt. Wir werden in diesem

Buch immer den Schluss von n − 1 auf n durchführen. In anderen Büchern werden Sie statt dessen
oft Schlüsse von n auf n + 1 sehen. Dies macht inhaltlich keinen Unterschied. Wir bevorzugen
aber aus didaktischen Gründen, wenn die Induktionsannahme von der zu beweisenden Aussage zu
unterscheiden ist.

Wir betrachten als Beispiel wieder ein Geradenarrangement und behaupten

Ein Geradenarrangement G mit mindestens drei Geraden enthält genau dann ein Dreieck, wenn es drei

Geraden enthält, die paarweise nicht parallel sind und keinen gemeinsamen Punkt haben.

Wenn ein Geradenarrangement ein Dreieck enthält, so sind die drei Geraden, die das Dreieck be-
randen, paarweise nicht parallel und enthalten keinen gemeinsamen Punkt. Also ist diese Bedingung
notwendig.

Dass sie auch hinreichend ist, zeigen wir per Induktion über die Anzahl n ≥ 3 der Geraden.

Diese Aussage ist offensichtlich richtig, wenn das Arrangement nur aus drei Geraden besteht.

Denn zwei Geraden, die nicht parallel sind, schneiden sich in einem Punkt, etwa p . Sei dann q der

Punkt auf der dritten Geraden mit dem geringsten Abstand von p . Dann ist p = q und pq bildet die

Höhe eines Dreiecks.

Sei nun ein Geradenarrangement mit n ≥ 4 Geraden gegeben. Wir zeigen:

Wenn die Aussage für n − 1 Geraden richtig ist, so ist sie auch für n Geraden richtig.

Nach Voraussetzung enthält G drei Geraden g 1 , g 2 , g 3 , die paarweise nicht parallel sind. Da G
mindestens vier Geraden enthält, gibt es h ∈ G \{g 1 , g 2 , g 3 } und G \{h} erfüllt dann offensichtlich
weiterhin die Voraussetzung. Wir können also induktiv annehmen, dass es in dem verbleibenden

Arrangement von n − 1 Geraden ein Dreieck gibt. Nun nehmen wir die Gerade h wieder dazu und
unterscheiden drei Fälle.

a) Die Gerade h schneidet das Dreieck nicht im Inneren. Offensichtlich bleibt das Dreieck dann
erhalten.

b) Die Gerade h schneidet das Dreieck in zwei Kanten. Dann wird das Dreieck in ein Dreieck und
ein Viereck zerlegt.

c) Die Gerade schneidet das Dreieck in einem Knoten und einer Kante. Dann zerlegt h das Dreieck
in zwei Dreiecke.

In jedem Fall enthält unser Arrangement wieder ein Dreieck. Also erhalten wir:

h
h
h

Abb. 1.2 Die drei Fälle im Beweis

1.4. Beweismethoden und das Prinzip der vollständigen Induktion

9

Weil die Aussage für 3 Geraden richtig ist, ist sie für 4 richtig, ist sie für 5 richtig usf. Nach dem

Induktionsprinzip ist sie also für alle Geradenarrangements richtig.

2

Man kann nicht nur vom individuellen Vorgänger, sondern von allen Vorgängern einer Zahl auf
diese schließen, also zeigen:

Wenn die Aussage für { 1 , . . . , n − 1 } wahr ist, so ist sie auch für n wahr.

Implizit enthält der eben geführte Beweis auch einen Algorithmus, mit dem man ein Dreieck
finden kann. Er ist effizient in einem Sinne, den wir noch kennenlernen werden. In der Praxis gibt es
aber deutlich schnellere Verfahren.

Unser Algorithmus hier sucht zuerst drei Geraden, die ein Dreieck bilden und nimmt dann iterativ
weiter Geraden hinzu, wobei das Dreieck, falls notwendig, aktualisiert wird.

Abb. 1.3 3-Eck, 4-Eck und 5-Eck

Aufgabe 1.3. Ein konvexes n -Eck ist ein Gebilde in der Ebene, das von n Strecken berandet wird,
von denen jede genau zwei weitere in je einer Ecke in einem Winkel = π (also = 180 ◦) trifft, so
dass die Verbindungsstrecke zwischen je zwei inneren Punkten zweier verschiedener Strecken keine
weitere Strecke trifft. Zeigen Sie: Die Summe der Winkel in einem n -Eck ist für n ≥ 3

( n − 2)π ˆ

=( n − 2)180 ◦.

Lösung siehe Lösung 9.3.

Aufgabe 1.4. Geben Sie ein Beispiel für ein Geradenarrangement, das kein Dreieck enthält, bei dem
aber weder alle bis auf eine Gerade parallel sind, noch alle Geraden durch einen Punkt gehen.

Lösung siehe Lösung 9.4.

Kapitel 2

Elementare Abzählprobleme und diskrete

Wahrscheinlichkeiten

In diesem Abschnitt betrachten wir Zählprobleme wie etwa

• Auf wie viele Arten kann ich n Personen m Objekte zuweisen?

• Wie viele Tischordnungen sind möglich?

• Wie viele verschiedene Lotto-Tipps sind möglich?

2.1 Abbildungen und Mengen

Wir beginnen mit einem Beispiel.

Beispiel 2.1. Die lokale IT-Abteilung stellt 7 Standard-Rechnerkonfigurationen zur Verfügung. In
einer Abteilung gibt es 12 Personen, die einen neuen Arbeitsplatzrechner brauchen. Auf wie viele

Arten kann die IT-Abteilung die 12 Kollegen mit Hard- und Software standardmäßig beglücken?

Für den ersten Empfänger haben wir 7 Konfigurationen zur Auswahl, für den zweiten wieder

7. Die Auswahlen hängen nicht voneinander ab, also ergeben sich insgesamt 49 Möglichkeiten.

Iterieren wir diese Argumentation, ergeben sich 712 Möglichkeiten.

Abstrakt betrachten wir die Menge aller Abbildungen von einer n -elementigen Menge A (Ar-
beitsplätzen) in eine m -elementige Menge R (von Rechnerkonfigurationen).

Man klassifiziert die unterschiedlichen Objekte, die wir in diesem und dem folgenden Abschnitt
beschreiben, auch häufig als Urnenexperimente. Wir wollen hier die Möglichkeiten zählen, eine

Sequenz von nummerierten Kugeln aus einer Urne zu ziehen, wobei wir uns gezogene Kugeln
merken und sie wieder zurücklegen. Man spricht auch von einer Variation mit Wiederholung.

Proposition 2.1. Seien n, m ∈ N , m ≥ 1 und A eine n-elementige Menge und R eine m-elementige

Menge. Dann ist die Anzahl aller Abbildungen f : A → R gerade mn .

Beweis. Wir führen Induktion über n . Die Anzahl der Abbildungen von der leeren Menge A nach

R ist gerade 1 = m 0 . Dies würde als Verankerung genügen. Wenn Ihnen die leere Abbildung
etwas unheimlich ist, so können wir Sie damit beruhigen, dass es offensichtlich genau |R| = m

Abbildungen einer einelementigen Menge nach R gibt. Sei also n ≥ 1 und a ∈ A fest gewählt.

Nach Induktionsvoraussetzung gibt es mn− 1 Abbildungen von A \ {a} nach R. Außerdem gibt es
m Abbildungen von {a} nach R. Nun können wir jede Abbildung f : A → R in zwei Abbildungen

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

11

DOI 10.1007/978-3-642-05422-8 2, c

Springer-Verlag Berlin Heidelberg 2010

12

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten
f 1 : A \ {a} → R und f 2 : {a} → R zerlegen. Umgekehrt definiert jedes solche Paar ( f 1 , f 2) ein
f : A → R und diese sind für verschiedene Tupel verschieden. Also gibt es davon mn− 1 · m = mn

Stück.

2

Als Konsequenz erhalten wir den Grund, warum wir die Potenzmenge von X mit 2 X bezeichnen.

Es gilt nämlich:

Korollar 2.2. Sei X eine n -elementige Menge, n ∈ N . Dann hat X genau 2 n Teilmengen, oder als

Formel

2 X = 2 |X|.

(2.1)

Beweis. Zu einer gegebenen Teilmenge Y ⊆ X definieren wir die charakteristische Funktion χ Y
von Y als χ Y : X → { 0 , 1 }

χ

1 , falls x ∈ Y

Y ( x) :=

(2.2)

0 sonst.

Offensichtlich sind die charakteristischen Funktionen verschiedener Teilmengen voneinander ver-
schieden. Umgekehrt erhält man aber jede Funktion f : X → { 0 , 1 } als charakteristische Funktion
einer Teilmenge. Also ist die Anzahl der Teilmengen von X gerade gleich der Anzahl der Abbildun-
gen f : X → { 0 , 1 }, also 2 n nach Proposition 2.1.

2

Die Hälfte dieser Teilmengen hat gerade viele Elemente und die andere ungerade viele:

Proposition 2.2. Sei n ≥ 1 . Jede n-elementige Menge hat genau 2 n− 1 Teilmengen mit ungerade
vielen Elementen und ebenso viele mit gerade vielen Elementen.

Beweis. Sei X eine n -elementige Teilmenge und a ∈ X ein festes Element. Dann hat X \ {a} nach

Korollar 2.2 2 n− 1 Teilmengen. Jede solche Teilmenge T hat entweder ungerade viele Elemente oder
dies gilt für T ∪{a}. Umgekehrt enthält jede ungerade Teilmenge S von X entweder das Element a
nicht, oder |S \{a}| ist gerade. Also hat X genau 2 n− 1 ungerade Teilmengen und 2 n − 2 n− 1 = 2 n− 1
gerade Teilmengen.

2

2.2 Injektive Abbildungen, Permutationen und Fakultät

Unter den Anwärtern auf Arbeitsplatzrechner teilen fünf ein Team-Büro, die, um ihre Individualität
zu betonen, vor allem verschiedene Konfigurationen erhalten wollen. Auf wie viele Arten können
wir diese fünf Personen mit sieben Konfigurationen beglücken?

In diesem Falle zählen wir also die injektiven Abbildungen in eine endliche Menge.

Das zugehörige Urnenexperiment lautet wie oben, aber ohne Zurücklegen. Wir sprechen von
einer Variation ohne Wiederholung.

Proposition 2.3. Seien m, n ∈ N . Dann gibt es genau
n− 1
m( m − 1) . . . ( m − n + 1) = ∏( m − i)

(2.3)

i=0

2.2. Injektive Abbildungen, Permutationen und Fakultät

13
injektive Abbildungen einer gegebenen n -elementigen Menge A in eine gegebene m -elementige

Menge R .

Beweis. Wir führen wieder Induktion über n . Ist n = 0 , so gibt es genau eine solche Abbildung.

Das leere Produkt ist per definitionem 1. Sei also nun n > 0 und a ∈ A ein festes Element. Es gibt
m mögliche Bilder f ( a) ∈ R für a. Jede dieser Möglichkeiten wird durch jede injektive Abbildung
von A \ {a} nach R \ { f ( a) } zu einer injektiven Abbildung von A nach R ergänzt. Von letzteren
gibt es nach Induktionsvoraussetzung aber genau ∏ n− 2( m − 1 − i) = ∏ n− 1( m − i) Stück, woraus die
i=0
i=1

Behauptung folgt.

2

Für unser Team-Büro erhalten wir also 7 · 6 · 5 · 4 · 3 = 2520 mögliche Rechnerkonfigurationen.

Eine bijektive Abbildung σ : M → M einer Menge in sich selbst hatten wir Permutation der

Menge M genannt. Ist |M| endlich, so gibt es nach Proposition 2.3 n( n − 1) · . . . 2 · 1 Permutationen.

Diese Zahl nennen wir Fakultät von n .

Definition 2.1. Sei n ∈ N. Die Zahl
n
n! := ∏ i = 1 · 2 · ... · ( n − 1) · n

(2.4)

i=1
nennen wir die Fakultät von n .

Durch Abzählen der Elemente können wir jede Permutation σ einer endlichen Menge der Kar-
dinalität n als Permutation von N := { 1 , 2 , . . . , n} auffassen. Manchmal ist es nützlich, eine Permu-
tation als lineare Anordnung von N zu betrachten. Dafür schreiben wir sie als Abbildungsmatrix

1

2

3

. . .

n
σ(1) σ(2) σ(3) ... σ( n)

oder auch als n -Tupel (σ (1) σ (2) σ (3) . . . σ ( n)).

Beispiel 2.3. Wir schreiben die Permutation

1 2 3 4 5 6 7

4 7 6 1 2 3 5
kurz als (4 7 6 1 2 3 5) .

Wir wollen noch die Zerlegung einer Permutation in Zyklen diskutieren. Ein Zyklus (oder Zykel)

ist eine wiederholungsfreie Folge von Zahlen a 1 a 2 . . . ak in N . Wir können einen Zyklus wiederum
als Permutation σ betrachten, die die Elemente des Zyklus zyklisch vertauscht und alle anderen

Elemente fix lässt, also mit σ ( ai) = ai+1 für i = 1 , . . . , k − 1 und σ ( ak) = a 1 und σ ( a) = σ ( a) für a ∈ N \ {a 1 , . . . , ak}.

Die Hintereinanderausführung σ1 ◦ σ2 zweier Permutationen σ1 , σ2 bezeichnen wir auch als

Produkt. Das Produkt zweier Zyklen ist immer eine Permutation. Schreiben wir eine Permutation σ
als Produkt von Zyklen, so sagen wir, dass wir σ in Zyklen zerlegen.

Der zugehörige Satz lautet:

Proposition 2.4. Jede Permutation σ lässt sich (bis auf die Reihenfolge eindeutig) in paarweise
disjunkte Zyklen zerlegen.

14

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

Beweis. Einen Beweis kann man per Induktion über die Anzahl der Elemente führen, die keine

Fixpunkte von σ sind. Sind alle Elemente Fixpunkte, so ist σ die identische Abbildung und
somit Komposition von n Zyklen der Länge 1. Andernfalls startet man bei einem Element a ,
das kein Fixpunkt von σ ist, berechnet dessen Bild σ ( a) und dann wieder dessen Bild σ (σ ( a))

und so weiter. Da die Grundmenge endlich ist, muss sich irgendwann ein Element wiederholen.

Da σ bijektiv ist und somit die Vorgänger dieser Folge auch wiederum eindeutig sind, muss
sich a als erstes Element wiederholen und wir haben einen Zyklus σ1 gefunden. Sei nun τ die

Permutation, die aus σ entsteht, wenn wir aus allen Elementen, die in dem eben gefundenen Zyklus
vorkommen, Fixpunkte machen. Offensichtlich hat τ weniger Elemente, die keine Fixpunkte sind.

Nach Induktionsvoraussetzung lässt es sich also in paarweise disjunkte Zyklen zerlegen, bei denen
alle Elemente, die in σ1 nicht Fixpunkte sind, Zyklen der Länge 1 sind. Entfernen wir diese aus der

Zerlegung und ersetzen sie durch σ1 , erhalten wir die gesuchte Zerlegung in paarweise disjunkte

Zyklen.

2

Aus diesem Induktionsbeweis können wir folgenden Algorithmus zur Zerlegung einer Permutati-
on in paarweise disjunkte Zyklen extrahieren. Wir gehen davon aus, dass die Permutation als Array
sigma[] gegeben ist. Zusätzlich halten wir noch eine Liste N, in der zu Beginn die Zahlen von 1 bis
n stehen. Aus dieser Liste können wir einzelne Elemente, etwa b mit der Methode N.remove(b)

entfernen. Der Parameter b wird dabei der Methode übergeben. Später werden auch Methoden auf-
treten, die keinen Parameter erhalten. So liefert und entfernt N.pop() das letzte Element in der

Liste N.

Damit verfahren wir wie folgt: Man wählt ein noch nicht erledigtes Element, verfolgt sein Bild
unter iterierter Anwendung von sigma, bis es wiederkehrt, wobei wir die jeweils gefundenen

Elemente aus der Liste entfernen. Wenn die Wiederholung eintritt, also sigma[b]!=a falsch ist,
haben wir insgesamt einen Zyklus gefunden und aus der Grundmenge entfernt. Dies iteriert man, bis
alle Elemente abgearbeitet sind.

Wir erhalten damit folgenden Algorithmus, den wir in der Programmiersprache Python notieren,
von der wir annehmen, dass sie jeder versteht, der schon einmal eine imperative Programmiersprache
kennengelernt hat. Sie ist eine Interpretersprache und für alle gebräuchlichen Betriebssysteme frei
erhältlich. Wie in BASIC bewirkt der leere print“-Befehl einen Zeilenumbruch.

”

Wir werden allerdings alle Algorithmen stets im Vorfeld ausführlich diskutieren. Wenn Sie also
noch keinerlei Programmierkenntnisse haben, so fassen Sie die Pythonprogramme einfach als kurze

Zusammenfassung des vorher textuell erläuterten Vorgehens auf.

for a in N:

print
b=a
print b,
while sigma[b] != a:

b=sigma[b]

print b,

N.remove(b)

2.3. Binomialkoeffizienten

15

Beispiel 2.4. Wir zerlegen

1 2 3 4 5 6 7

4 7 6 1 2 3 5
in die Zyklen 14 275 36 .

Stellen Sie dem obigen Programm die Zeilen

N=[1,2,3,4,5,6,7]

sigma=[0,4,7,6,1,2,3,5]

voran, so erhalten Sie ein lauffähiges Programm mit Output

1 4

2 7 5

3 6.

Beachten Sie, dass in Python das erste Element in einem Array den Index Null hat, weswegen
hier ein beliebiger Platzhalter, in diesem Falle 0, eingesetzt wurde.

Aufgabe 2.5. Sei X eine Menge. Eine signierte Teilmenge von X ist ein Tupel ( C 1 ,C 2) mit C 1 ∩C 2 =

/0 , C 1 ∪C 2 ⊆ X .

Zeigen Sie: Ist X eine endliche Menge, so hat X genau 3 |X| signierte Teilmengen.

Tipp: Betrachten Sie die signierte charakteristische Funktion χ( C 1 ,C 2) definiert durch

⎧

⎪

⎨ 1 , falls x ∈ C 1 ,
χ( C

− 1 , falls x ∈ C

(2.5)

1 ,C 2)( x) := ⎪

⎩

2 ,

0 sonst.

Lösung siehe Lösung 9.5.

Aufgabe 2.6. Eine Transposition ist eine Permutation, die nur zwei Zahlen vertauscht und alle an-
deren fest lässt. Zeigen Sie: Jede Permutation lässt sich als Produkt von Transpositionen schreiben.

(Dabei ist die Identität das leere Produkt von Transpositionen).

Tipp: Benutzen Sie Proposition 2.4.

Lösung siehe Lösung 9.6.

2.3 Binomialkoeffizienten

Definition 2.2. Seien n, k ∈ N , n ≥ k . Der Binomialkoeffizient n über k ist definiert vermöge

n
n( n − 1)( n − 2) · . . . · ( n − k + 1)

∏ k− 1( n − i)

:=

=
i=0

.

(2.6)

k

1 · 2 · . . . · ( k − 1) k
k!

Diese Definition hat gegenüber der verbreiteten Formel n =
n!

den Vorteil, dass sie sich
k
k!( n−k)!

auf den Fall n ∈ R verallgemeinern lässt. Insbesondere wollen wir zulassen, dass k > n ist mit

k ∈ N. In diesem Falle ist n = 0.

k

Die Zahl n über k gibt nun die Anzahl der Möglichkeiten an, aus einer n -elementigen Menge
eine k -elementige Teilmenge auszuwählen, wie wir in Proposition 2.5 zeigen werden.

16

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

Beim zugehörigen Urnenexperiment ziehen wir Kugeln ohne Zurücklegen und ignorieren im Er-
gebnis die Reihenfolge der gezogenen Zahlen. Wir sprechen von einer Kombination ohne Wieder-
holung.

Bevor wir dies beweisen, definieren wir:

Definition 2.3. Sei X eine Menge und k ∈ N. Dann bezeichne das Symbol

X
k
die Menge aller k -elementigen Teilmengen von X .

Proposition 2.5. Sei X eine n -elementige Menge und k ∈ N . Dann hat X genau n k -elementige
k

Teilmengen. Als Formel geschrieben:

X

|X|

.

(2.7)

k =
k

Beweis. Offensichtlich ist die Behauptung richtig für k > |X|, sei also k ≤ |X|. Wir betrach-
ten die k -elementigen Teilmengen als Bildmengen f ( { 1 , . . . , k}) injektiver Abbildungen von f :

{ 1 ,...k} → X . Davon gibt es zunächst nach Proposition 2.3 n! . Ist nun σ eine Permutation von

( n−k)!

{ 1 ,...,k}, so ist f ◦σ eine weitere injektive Abbildung mit gleicher Bildmenge. Sei nun umgekehrt
g : { 1 , . . . k} → X eine injektive Abbildung mit gleicher Bildmenge. Wir betrachten dann die Ab-
bildung σ : { 1 , . . . , k} → { 1 , . . . , k}, welche jedem Element j ∈ { 1 , . . . , k} dasjenige (eindeutige!)

i ∈ { 1 , . . . , k} zuordnet mit f ( i) = g( j), wir notieren dies suggestiv als i = σ ( j) = f − 1( g( j)). Da sowohl g als auch f injektive Abbildungen in X und damit bijektive Abbildungen in ihre Bildmenge sind, ist σ eine Permutation von { 1 , . . . , k}. Also haben wir oben jede k -elementige Menge
genau k! mal gezählt, und die gesuchte Zahl ist

n!

X

( n−k)!

n!

n

|X|

=

=

=

.

k =
k!

( n − k)! k!

k
k

Dies war gerade die Behauptung.

2

Beispiel 2.7. Sei X = { 1 , 2 , . . . , 49 } und k = 6. Dann gibt es 49 = 13 983 816 mögliche Lottotipps.

6

Mit Hilfe der Binomialkoeffizienten können wir auch die Anzahl der Partitionen einer natürlichen

Zahl in k Summanden zählen, also z. B. kann man 4 schreiben als 0 + 4, 1 + 3, 2 + 2, 3 + 1 und 4 +

0, also gibt es 5 Partitionen von 4 in 2 Summanden. Zur Bestimmung dieser Anzahl betrachten wir
zunächst eine feste Partition
n = a 1 + . . . + ak
und stellen uns vor, dass wir die ai in unärer Notation geschrieben hätten, d. h. wir machen ai

Striche. Zusammen mit den Pluszeichen haben wir dann eine Zeichenkette aus n + k − 1 Zeichen.

Betrachten wir also die Pluszeichen als Trennsymbole, so entsprechen die Partitionen eineindeutig
den Möglichkeiten, k − 1 Pluszeichen in einer Zeichenkette der Länge n + k − 1 zu platzieren. Also
haben wir

Korollar 2.8. Die Anzahl der Partitionen der Zahl n in k Summanden (mit Beachtung der Reihen-
folge) ist

2.3. Binomialkoeffizienten

17

n + k − 1 .

(2.8)

k − 1

Folgende Eigenschaften von Binomialkoeffizienten sollten Sie kennen:

Proposition 2.6. Seien n, k ∈ N , n ≥ k . Dann gilt

n
n
a)

=

,
k
n − k
b) Seien zusätzlich n ≥ k ≥ 1 . Dann ist

n − 1
n − 1
n

+

=

.

(2.9)

k − 1
k
k

Beweis. Die erste Aussage kann man unmittelbar aus der Formel

n
n!

n!

n

=

=

=
k

( n − k)! k!

( n − k)! ( n − ( n − k))!

n − k
ablesen, oder man stellt fest, dass das Komplement einer k -elementigen Teilmenge in einer n -
elementigen Menge X eine n − k -elementige Menge ist. Wir erhalten dadurch sofort eine bijektive

Abbildung zwischen X und

X

, und folglich ist die Anzahl der n − k -elementigen Teilmengen
k
n−k
einer n -elementigen Menge gleich der Anzahl der k -elementigen Teilmengen.

Die zweite Aussage kann man leicht nachrechnen:

n − 1
n − 1

( n − 1)!

( n − 1)!

+

=

+
k − 1
k

( k − 1)!( n − k)!

k!( n − 1 − k)!

k( n − 1)! + ( n − k)( n − 1)!

=
k!( n − k)!

n( n − 1)!

= k!( n−k)!

n

=

.

k

Wenn man nicht gerne rechnet, kann man alternativ auch eine n -elementige Menge X und a ∈ X

wählen. Dann gibt es n− 1
k -elementige Teilmengen von X , die a enthalten und
n− 1 , die a
k− 1
k
nicht enthalten. Also folgt die behauptete Gleichung.

2

Die letzte der beiden Gleichungen führt zur Konstruktion des sogenannten Pascalschen Dreiecks.

1

1

1

1

2

1

1

3

3

1

1

4

6

4

1

1

5

10

10

5

1

..

.

.

..

Dabei schreibt man an den linken und rechten Rand des Dreiecks lauter Einsen und ein innerer

Eintrag entsteht, indem man die Summe der links und rechts darüberstehenden Zahlen bildet. In

18

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

der n -ten Zeile stehen dann aufgrund der letzten Proposition und dem Fakt, dass n = n = 1 für
n

0

beliebiges n ist, gerade die Zahlen n für k = 0 , . . . , n .

k

Der Name der Binomialkoeffizienten hat folgenden Ursprung:

Satz 2.9 (Binomischer Satz). Sei n ∈ N . Dann ist

n
n

(1 + x) n = ∑
xk.

(2.10)

k
k=0

Beweis. Wir führen Induktion über n . Die Aussage ist richtig für n = 0 , denn

0

(1 + x)0 = 1 =
x 0 .

0

Wir nehmen nun induktiv an, dass die Aussage für n − 1 (mit n ≥ 1) richtig ist, dass also

n− 1
n − 1

(1 + x) n− 1 = ∑
xk.

k
k=0

Die Stelle, an der dies in der folgenden Rechnung eingeht, haben wir mit IV für Induktionsvor-
aussetzung markiert. Von der dritten auf die vierte Zeile haben wir in der hinteren Summe nur den

Summationsindex verschoben. Überzeugen Sie sich davon, dass die einzelnen Summanden die glei-
chen sind. Für die darauf folgende Gleichung haben wir in der ersten Summe den ersten Summanden
und in der zweiten Summe den letzten Summanden abgespalten. Schließlich benutzen wir noch die

Identität (2.9).

(1 + x) n = (1 + x)(1 + x) n− 1

n− 1

IV
n − 1

= (1 + x) ∑
xk
k
k=0

n− 1
n − 1
n− 1
n − 1

=

∑
xk + ∑
xk+1
k
k
k=0
k=0

n− 1
n − 1
n
n − 1

=

∑
xk + ∑
xk
k
k − 1
k=0
k=1

n − 1
n− 1
n − 1
n− 1
n − 1
n − 1

=

+ ∑
xk + ∑
xk +
xn

0
k
k − 1
n − 1
k=1
k=1

n − 1
n− 1
n − 1
n − 1
n − 1

=

+ ∑

+
xk +
xn

0
k
k − 1
n − 1
k=1

n− 1

(2.9)

n

= 1 + ∑
xk + xn
k
k=1

n
n

=

∑
xk
k
k=0

2

Korollar 2.10.

n
n

( a + b) n = ∑
akbn−k.

k
k=0

Beweis. Siehe Übung 2.13.

2

2.3. Binomialkoeffizienten

19

Korollar 2.11.

n
n
n
n

+

+

+ ··· +

= 2 n.

(2.11)

0

1

2
n

Beweis. Diese Gleichung erhalten wir, wenn wir im binomischen Satz x = 1 wählen.

2

Das letzte Korollar liefert einen alternativen Beweis dafür, dass 2 n die Anzahl der Teilmengen
einer n -elementigen Menge ist. Wir können ähnlich die Anzahl der Teilmengen mit ungerade vielen

Elementen herleiten; da

n − n
n
n
n

+

−

+ ··· + ( − 1) n

= (1 − 1) n = 0

0

1

2

3
n
für n ≥ 1 ist, gibt es genauso viele ungerade wie gerade Teilmengen einer nichtleeren Menge mit n

Elementen, nämlich jeweils 2 n− 1 .

Formelsammlungen sind voll von Gleichungen mit Binomialkoeffizienten. Hier eine weitere:

Proposition 2.7.

n

2

∑ n

2 n

=

.

i
n
i=0

Beweis. Einen Beweis durch Nachrechnen oder mittels vollständiger Induktion sehen wir hier nicht
so einfach. Gehen wir also kombinatorisch vor: Wir betrachten eine 2 n -elementige Menge X . Bei
dieser färben wir n Elemente rot und die übrigen blau. Jede n -elementige Teilmenge von X setzt
sich dann aus i roten Elementen und n − i blauen Elementen zusammen für ein i ∈ { 0 , 1 , . . . , n}.

Umgekehrt ergibt jede Menge aus i roten und n − i blauen Elementen genau eine n-elementige

Teilmenge von X . Die Anzahl der Möglichkeiten, aus den n roten i auszuwählen ist n und die
i

Möglichkeit, n − i aus den n blauen auszuwählen ist
n

. Wir haben also insgesamt
n−i

n
n
i
n − i
n -elementige Teilmengen von X , bei denen i Elemente rot sind. Da jede Anzahl roter Elemente in
einer solchen Menge auftreten kann, erhalten wir als Resultat

2 n
n
n
n
n
n 2

= ∑

= ∑

.

n
i
n − i
i
i=0
i=0

2

Zum Ende dieses Abschnitts wollen wir noch eine Verallgemeinerung der Binomialkoeffizienten
kennenlernen. Dafür betrachten wir zunächst die Fragestellung, wie viele verschiedene Zeichenket-
ten man aus den Buchstaben des Wortes BANANE bilden kann. Nach dem bisher Gelernten können
wir die 6 Buchstaben auf 6! Arten anordnen. Dabei erhalten wir allerdings jedes Wort viermal, da

N und A je zweimal vorkommen. Die Anzahl der Möglichkeiten ist also

6!

= 180 . Allgemein

1!2!2!1!

definieren wir

Definition 2.4. Sei k 1 + . . . + km = n. Der Multinomialkoeffizient ist definiert als

n
n!

:=

.

(2.12)

k 1 , k 2 , . . . , km
k 1! k 2! . . . km!

20

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

Der Multinomialkoeffizient beschreibt also die Anzahl der Möglichkeiten, n Objekte, von denen
jeweils ki nicht unterscheidbar sind, anzuordnen. Im Falle m = 2 erhalten wir wieder den Binomi-
alkoeffizienten.

Gleichung (2.9) und der Binomialsatz haben dann folgende Verallgemeinerungen:

Satz 2.12 (Multinomialsatz). Sei n ∈ N . Dann ist

m

∑
n − 1
n

=

,

(2.13)

k
k
i=1

1 , . . . , ki− 1 , ki − 1 , ki+1 , . . . , km

1 , . . . , km

n

( x 1 + x 2 + . . . + xm) n =

∑
xk 1 xk 2 . . . xkm
k

1

2
m .

(2.14)

k

1 , k 2 , . . . , km

1+ ... + km= n
k 1 ,...,km≥ 0

Beweis. Übung analog zum Binomialsatz.

2

Aufgabe 2.13. Beweisen Sie Korollar 2.10.

Lösung siehe Lösung 9.7.

Aufgabe 2.14. Seien n ≥ k ≥ i natürliche Zahlen. Zeigen Sie:

a)

n
k
n
n − i

=

,

(2.15)

k
i
i
k − i
b)

n

∑ n
j

= n 2 n− 1 .

(2.16)

j
j=1

Lösung siehe Lösung 9.8.

Aufgabe 2.15. Zeigen Sie (2.13) und (2.14).

Lösung siehe Lösung 9.9.

2.4 Abschätzungen

Nachdem wir kurzentschlossen 5 verschiedene Rechnerkonfigurationen ausgewählt haben, sind wir
immer noch unschlüssig, wie wir diese auf das Teambüro verteilen wollen. Als Notmaßnahme rufen
wir jeden an und bitten ihn, eine Zahl zwischen 1 und 5 zu nennen. Wie groß ist die Wahrscheinlich-
keit, dass alle 5 Zahlen genannt werden?

Wahrscheinlichkeiten werden wir in Kürze etwas ausführlicher vorstellen. In diesem Falle gehen
wir davon aus, dass alle Zahlen gleichwahrscheinlich sind und wir nur die Anzahl der positiven

Möglichkeiten zählen und durch die Anzahl aller Möglichkeiten dividieren müssen.

Wie wir gelernt haben, geht es hier also um die Wahrscheinlichkeit, dass eine zufällige Abbildung
zwischen zwei n -elementigen Mengen eine Permutation ist. Diese Wahrscheinlichkeit ist also nach
den Propositionen 2.3 und 2.1 gleich
n! .

nn

2.4. Abschätzungen

21

Für den Fall n = 5 können wir die Zahl noch zu 0.0384 berechnen, wir haben also eine etwa

4-prozentige Chance. Wie ist es aber im Allgemeinen?

Binomialkoeffizienten und Fakultäten wachsen sehr schnell. Manchmal ist es zu aufwändig oder
schwierig, solche oder andere Größen exakt zu bestimmen. Oftmals ist uns aber auch schon mit

Abschätzungen geholfen. In diesem und dem nächsten Abschnitt benutzen wir Resultate aus der

Analysis, die wir hier ohne Beweis angeben oder als aus der Schule bekannt voraussetzen.

Als erstes Beispiel für eine Abschätzung betrachten wir die Teilsummen der harmonischen Reihe.

1

1

1
n 1

Hn := 1 +

+

+ . . . +

= ∑ .

(2.17)

2

3
n
i
i=1

Hn heißt auch n-te harmonische Zahl, und es ist für diese Summe keine geschlossene Form bekannt,
die sie vereinfacht. Wir schätzen nun Hn gegen den Logarithmus ab. Wir bezeichnen hier mit log2 n
den Logarithmus von n zur Basis 2 und später mit ln den natürlichen Logarithmus (also zur Basis
e ).

Wir teilen die Summanden nun in Päckchen und setzen für k = 1 , . . . , log2 n

1

1

1

1

Gk :=

,

,

, . . . ,

.

2 k− 1 2 k− 1 + 1 2 k− 1 + 2

2 k − 1

Die kleinste Zahl in Gk ist

1

, die größte ist

1
und |G

2 k− 1

2 k− 1
k| = 2 k− 1 . Hieraus schließen wir

1 = |Gk| 1 < |Gk| 1 ≤ ∑ x ≤ |Gk| 1 = 1 .

2

2 k

2 k − 1

2 k− 1
x∈Gk

Aufsummiert erhalten wir

1
log2 n
log2 n+1

1
log

∑ < Hn ≤ ∑ 1 = log

2

2 n =

2

2 n + 1 .

(2.18)

k=1
k=1

Genauer kann man sogar zeigen, dass ln n < Hn ≤ ln n+1, wobei ln den natürlichen Logarithmus
also den Logarithmus zur Basis e bezeichnet. In gewissem Sinne ist diese Abschätzung nicht we-
sentlich schärfer als die eben angegebene. Der natürliche Logarithmus ist ein konstantes Vielfaches
des Zweierlogarithmus, und beide Abschätzungen sagen aus, dass die Teilsummen der harmonischen

Reihe asymptotisch wie der Logarithmus wachsen. Dies wollen wir jetzt formalisieren.

Definition 2.5. Seien f , g : N → R Abbildungen. Dann schreiben wir
f = O( g)

oder
f ( n) = O( g( n)) ,
wenn es eine Konstante C > 0 und einen Startpunkt n 1 ∈ N gibt, so dass für alle n ∈ N, n ≥ n 1 , gilt

| f ( n) | ≤ Cg( n).

Vorsicht! Die Big-Oh“-Notation liefert nur eine Abschätzung nach oben, nicht nach unten. Zum

”

Beispiel ist n = O( n 5) .

Folgende Zusammenhänge sind nützlich bei Abschätzungen (z. B. auch von Laufzeiten von

Algorithmen).

22

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

Proposition 2.8. Seien C, a, α , β > 0 feste reelle, positive Zahlen unabhängig von n . Dann gilt
a) α ≤ β ⇒ nα = O( nβ ) ,
b) a > 1 ⇒ nC = O( an) ,
c) α > 0 ⇒ (ln n) C = O( nα ) .

Beweis.

a) Wir haben zu zeigen, dass nα ≤ Cnβ zumindest ab einem gewissen n 0 gilt. Da aber nβ = nα nβ −α

≥ 1
haben wir sogar stets nα ≤ nβ mit der Konstanten C = 1.

b) Wir betrachten die Folge

n

C
an :=

.

n − 1

Nach den Grenzwertsätzen und wegen der Stetigkeit der Exponentialfunktion – wir setzen dies
hier als Schulwissen voraus – ist lim n→∞ an = 1. Da a > 1 ist, gibt es für ε = a − 1 ein n 1 ∈ N,
so dass für alle n ≥ n 1 gilt |an − 1 | < ε = a − 1, also insbesondere

∀n ≥ n 1 : an = an − 1 + 1 ≤ |an − 1 | + 1 < a − 1 + 1 = a.

Nun setzen wir
nC

C

1

1 := an 1
und zeigen
nC ≤ C 1 an

(2.19)

mittels vollständiger Induktion für n ≥ n 1 . Zu Anfang haben wir
nC

1 = C 1 an 1 .

Sei also n > n 1 . Dann ist unter Ausnutzung der Induktionsvoraussetzung und wegen an ≤ a

n

C

IV
an≤a
nC =

( n − 1) C = an( n − 1) C ≤ anC 1 an− 1 ≤ aC 1 an− 1 = C 1 an.

n − 1

Also gilt (2.19) für n ≥ n 1 , also per definitionem nC = O( an).

c) Wir setzen a := eα . Dann ist a > 1 und wir wählen n 1 und C 1 wie eben. Ferner wählen wir n 2
mit ln( n 2) ≥ n 1 . Indem wir die Monotonie und Stetigkeit des Logarithmus ausnutzen, erhalten
wir für n ≥ n 2 nach b)

(ln n) C ≤ C 1 a ln n

⇐⇒ (ln n) C ≤ C 1( e ln a)ln n = C 1( e ln n)ln a = C 1 n ln a

⇐⇒ (ln n) C ≤ C 1 nα .

2

Wir merken uns, dass Logarithmen langsamer wachsen als Wurzel- und Polynomfunktionen und
diese wiederum langsamer als Exponentialfunktionen.

Beispiel 2.16. Wenn man eine Formelsammlung zur Hand hat, schlägt man nach (und beweist mittels
vollständiger Induktion), dass

2.5. Abschätzungen für Fakultäten und Binomialkoeffizienten

23
n

∑
n 2( n + 1)2
i 3 =

.

(2.20)

4
i=1

Hat man keine Formelsammlung zur Hand, ist die Herleitung dieser Formel recht mühselig. Darum

3
schätzen wir ab: Zunächst ist ∑ n
n

≥ n 4
i=1 i 3 ≤ ∑ n
i=1 n 3 = n 4 . Außerdem ist ∑ n
i=1 i 3 ≥ ∑ n

.

i= n 2

16

2

Also verhält sich die Summe bis auf einen konstanten Faktor“ wie n 4 .

”

Im Falle des Beispiels ist n 4 nicht nur eine obere, sondern auch eine untere Schranke. Auch dafür
gibt es Symbole wie z. B.

f ( n) = o( g( n))

: ⇔ lim
f ( n)

n→∞

= 0 , also wächst f echt langsamer als g ,
g( n)

f ( n) = Ω ( g( n))

: ⇔ g( n) = O( f ( n)), g( n) ist eine untere Schranke für f ( n) für große n,
f ( n) = Θ ( g( n))

: ⇔ f ( n) = O( g( n)) und f ( n) = Ω ( g( n)), also verhalten sich f und g bis auf

”

einen konstanten Faktor“ asymptotisch gleich, genauer gibt es c 1 , c 2 > 0 und n 0 ∈ N mit

∀n ≥ n 0 : c 1 g( n) ≤ f ( n) ≤ c 2 g( n) .

f ( n) ∼ g( n)

: ⇔ lim
f ( n)

n→∞

= 1 , wie eben, aber exakt“ mit Faktor 1.

g( n)

”

2.5 Abschätzungen f ür Fakultäten und Binomialkoeffizienten

Taschenrechner mit zweistelligem Exponenten versagen bei 70!. Das Xwindow-Programm xcalc
berechnete im Jahre 2009 immerhin noch 170! = 7 . 25741 ∗ 10306 , 171! bis 500! sind infinity und
für größere Zahlen erhält man nur noch error.

Zunächst haben wir die folgenden offensichtlichen Abschätzungen

Proposition 2.9.

2 n− 1 ≤ n! ≤ nn.

Beweis. Einerseits ist 1 · 2 n− 1 ≤ ∏ n i = n
i=1

! und andererseits kann man jeden der Faktoren nach
oben gegen n abschätzen.

2

Die Abschätzung ist recht grob und es drängt sich die Frage auf, ob die Fakultät näher bei der
linken oder der rechten Seite liegt.

Die folgende, bessere Abschätzung geht auf Carl-Friedrich Gauß zurück, dessen Gesicht Ihnen
vielleicht noch vom 10-DM-Schein bekannt ist.

Satz 2.17. Für alle n ≥ 1 ist

n
n
n + 1
n 2 ≤ n! ≤

.

(2.21)

2

Beweis. Der Beweis dieses Satzes benutzt eine Beziehung zwischen dem arithmetischen Mittel a+ b

2

√
und dem geometrischen Mittel
ab zweier positiver reeller Zahlen.

Lemma 2.1 (Ungleichung arithmetisches-geometrisches Mittel).

Seien a, b > 0 zwei reelle Zahlen. Dann ist

√ab ≤ a+ b.

(2.22)

2

24

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

√

√

√

Beweis. Aus 0 ≤ ( a − b)2 = a − 2 ab + b folgt sofort die Behauptung.

2

Beweis von Satz 2.17: Wir betrachten

n
n
n

( n!)2 =

∏ i ∏( n+1 −i) = ∏ i( n+1 −i) .

i=1
i=1
i=1

Also gilt mit (2.22)

n
n! = ∏ i( n + 1 − i)

i=1
n

≤ ∏ i+( n+1 −i)

2
i=1

n + 1 n

=

,

2
womit die obere Schranke bewiesen ist.

Für die untere genügt es zu beobachten, dass für i = 1 , . . . , n stets i( n + 1 − i) ≥ n. Dies ist sofort
klar für i = 1 und i = n . Ansonsten haben wir das Produkt zweier Zahlen, bei dem die kleinere

Zahl mindestens zwei und die größere mindestens n ist. Nutzen wir die Monotonie der Wurzel aus,

2
erhalten wir

1

1

1
n
n

2
n

2
n

2
n
n! =

∏ i∏( n+1 − j) = ∏ i( n+1 −i) ≥ ∏ n = n 2 .

i=1 j=1
i=1
i=1

2

Die wichtigsten, weil genauesten Abschätzungen für die Fakultät erhalten wir mit Hilfe der
eulerschen Zahl e = 2 . 718 ... , der Basis des natürlichen Logarithmus. Die Exponentialfunktion
y = ex hat an der Stelle x 0 = 0 den Wert 1 und ebenfalls wegen y = ex die Steigung 1, also ist
y = 1 + x Tangente an ex an der Stelle x 0 = 0. Da die zweite Ableitung der Exponentialfunktion
y = ex > 0 ist, ist die Funktion linksgekrümmt bzw. konvex. Folglich schneiden sich die beiden

Graphen (vgl. Abbildung 2.1) nur an der Stelle x 0 = 0 und es gilt für alle x ∈ R

1 + x ≤ ex.

(2.23)

Satz 2.18. Für alle n ∈ N \ { 0 } ist

n n
n n
e

≤ n! ≤ en

.

(2.24)

e
e

Beweis. Wir führen vollständige Induktion über n . Für n = 1 haben wir

1 ≤ 1! ≤ 1 .

2.5. Abschätzungen für Fakultäten und Binomialkoeffizienten

25

4

3

2

1

0

−2,8

−2,4

−2,0

−1,6

−1,2

−0,8

−0,4

0,0

0,4

0,8

1,2
x

−1

−2

Abb. 2.1 1 + x ≤ ex

Sei also n ≥ 2. Dann ist unter Ausnutzung der Induktionsvoraussetzung

n n
n − 1 n− 1 n
n
n− 1
e

= e
e
e
e
n − 1

IV
n− 1

≤
n
n

( n − 1)! e
n − 1

n
n− 1 1

= n!

,
n − 1
e
und analog

n n
n − 1 n− 1 n
n
n
en

= e( n − 1)

e
e
e
n − 1

IV
n

≥
n
n

( n − 1)! e
n − 1

n
n 1

= n!

.

n − 1
e

Für die Behauptung genügt es nun, noch zu zeigen, dass

n
n− 1 1
n

≤
n

1

1 ≤
n − 1
e
n − 1
e

26

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten
oder äquivalent

n
n− 1
n

≤
n
e ≤

.

(2.25)

n − 1
n − 1

Nach (2.23) ist nun
n

1

1

= 1 +

≤ en− 1
n − 1
n − 1
und andererseits
n − 1 = 1 − 1 ≤ e− 1 n.

n
n

Aus der ersten Ungleichung erhalten wir durch Exponentation auf Grund der Monotonie der Expo-

1
nentialfunktion sofort die linke Ungleichung von (2.25) und aus der zweiten zunächst
n

≥ en und
n− 1
dann die rechte.

2

Ohne Beweis geben wir eine noch bessere Abschätzung an, die Stirlingsche Formel. Einen Beweis
findet man z. B. in [13].

√

n n
n! ∼

2π n

.

(2.26)

e

Wir erinnern daran, dass dies bedeutet, dass der Quotient der beiden Funktionen gegen 1 geht, also
der relative Fehler gegen 0.

Aus den bewiesenen Formeln für die Fakultät leiten wir nun her den

Satz 2.19. Seien 1 ≤ k ≤ n ∈ N . Dann ist
n
k

≤ en .

(2.27)

k
k

Beweis. Wir zeigen die stärkere Abschätzung

n
n
n
n
en k

+

+

+ . . . +

≤

.

0

1

2
k
k

Zunächst einmal ist nach dem Binomischen Satz

n
n
n
n

+
x +
x 2 + . . . +
xn = (1 + x) n.

0

1

2
n

Dies gilt inbesondere auch für positive x , also schließen wir, dass für 0 < x ≤ 1

n
n
n
n

+
x +
x 2 + . . . +
xk ≤ (1 + x) n

0

1

2
k
und somit auch

1
n

1
n

1
n
n

+

+

+ . . . +

≤ (1 + x) n .

xk

0
xk− 1

1
xk− 2

2
k
xk

Da

0 < x ≤ 1 ,
können wir die Terme 1 nach unten gegen 1 abschätzen. Fixieren wir nun noch 0 < x = k ≤ 1,
xl
n
ergibt sich

n
n
n
n
k n n k

+

+

+ . . . +

≤ 1 +

.

0

1

2
k
n
k

2.5. Abschätzungen für Fakultäten und Binomialkoeffizienten

27

Benutzen wir nun wieder (2.23), so erhalten wir

k n
k
n

1 +

≤ en

= ek,
n
also insgesamt

n
n
n
n
en k

+

+

+ . . . +

≤

.

0

1

2
k
k

2

Aus der Definition der Binomialkoeffizienten folgt für k ≥ 1 sofort die Beziehung

n
n − k + 1
n

=

.

(2.28)

k
k
k − 1

Aus dieser liest man ab, dass die Folge der Binomialkoeffizienten für wachsendes k bis k = n

2
wächst und hinter k = n wieder fällt, denn

2
n − k + 1 ≥ 1 ⇐⇒ k ≤ n+1 .

k

2

Die größten Binomialkoeffizienten sind also von der Gestalt 2 m . Diesen Ausdruck wollen wir nun
m
noch abschätzen.

Proposition 2.10. Für alle m ≥ 1 ist

22 m

√ ≤ 2 m

22 m

< √

.

(2.29)

2 m
m

2 m

Beweis. Wir betrachten die Zahl

1 · 3 · 5 · . . . · (2 m − 1)

P =

.

2 · 4 · 6 · . . . · 2 m

Dann ist

1 · 3 · 5 · . . . · (2 m − 1)

P =

· 2 · 4 · 6 · ... · 2 m

2 · 4 · 6 · . . . · 2 m

2 · 4 · 6 · . . . · 2 m

1 · 2 · 3 · . . . · (2 m − 1) · 2 m

= (2(1) · 2(2) · 2(3) ·...· 2( m))2

(2 m)!

2 m

=

=
m

.

22 mm! m!

22 m

Also ist die Behauptung der Proposition in (2.29) äquivalent zu

1

√ ≤

1

P < √

.

(2.30)

2 m

2 m

Für die obere Schranke von (2.30) betrachten wir das Produkt von

1 · 3

3 · 5

(2 m − 1)(2 m + 1)

. . .

= (2 m + 1) P 2 .

22

42

(2 m)2

Jeder der geklammerten Ausdrücke ist aber von der Gestalt ( k− 1)( k+1) = 1 − 1 und somit ist das
k 2
k 2

Produkt kleiner als 1. Also ist

28

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

1

1

P <

<

.

2 m + 1

2 m

Für die untere Schranke benutzen wir analog, dass für m ≥ 2 gilt:

2 · 4

4 · 6

(2 m − 2)2 m

1

1 >

. . .

=

.

32

52

(2 m − 1)2

2(2 m) P 2

Für m = 1 , und nur dann, ist die untere Schranke offenbar scharf.

2

Aufgabe 2.20. Im italienischen Lotto zieht man 6 Zahlen aus 90. Das ergibt offensichtlich deutlich
mehr Kombinationen als beim deutschen 6 aus 49. Wenn wir aber ein (imaginäres) Lottospiel mit
einer Ziehung von 5 aus 90 betrachten, ist dann die Anzahl der Lottokombinationen ungefähr
a) gleich groß,
b) doppelt so groß,
c) dreimal so groß oder
d) viermal so groß
wie beim deutschen Lotto 6 aus 49? Lösen Sie die Aufgabe möglichst ohne Einsatz elektronischer
oder mechanischer Rechenhilfen.

Lösung siehe Lösung 9.10.

2.6 Das Prinzip von Inklusion und Exklusion

Wir erläutern das Zählprinzip dieses Abschnitts an einem einfachen Beispiel.

Beispiel 2.21. In einem Freundeskreis besitzen 20 Personen ein Handy, 15 ein Auto und 8 eine eigene

Wohnung. Es gibt 2 Handybesitzer und 3 Autofahrer unter den Wohnungsinhabern, 6 handybesit-
zende Autofahrer und einen mit Wohnung, Auto und Handy. Aus wie vielen Personen besteht die

Gruppe, wenn jede Person mindestens eines von Auto, Handy oder Wohnung hat?

Zählen wir zunächst die Gruppe der Personen, die ein Handy oder eine Wohnung haben. Zählen
wir Handybesitzer und Wohnungsinhaber zusammen, so haben wir zwei Personen doppelt gezählt,
also kommen wir auf

|H ∪W| = |H| + |W| − |H ∩W| = 28 − 2 = 26 .

Betrachten wir das VENN-DIAGRAMM der Situation.

H

W

A

Wenn wir die Größen der einzelnen Mengen addieren, so haben wir die paarweisen Schnitte doppelt
und den Schnitt aller Mengen dreifach gezählt. Ziehen wir die paarweisen Schnitte ab, so haben

2.6. Das Prinzip von Inklusion und Exklusion

29
wir alle die Elemente genau einmal gezählt, die nicht in allen Mengen liegen. Also erhalten wir die

Formel

|H ∪ A ∪W| = |H| + |A| + |W| − |H ∩ A| − |H ∩W| − |A ∩W| + |H ∩ A ∩W|,

(2.31)

was in unserer Situation auf 33 Personen schließen lässt.

Wenn wir diesen Ansatz verallgemeinern, kommen wir auf eine Formel wie

|A 1 ∪ A 2 ∪ ··· ∪ An| = |A 1 | + |A 2 | + ··· + |An| − |A 1 ∩ A 2 | − |A 1 ∩ A 3 |

−··· − |A 1 ∩ An| − |A 2 ∩ A 3 | − ··· + ( − 1) n− 1 |A 1 ∩ ... ∩ An− 1 ∩ An|.

Diese Schreibweise ist sehr unübersichtlich und wir wollen Alternativen diskutieren. Eine Möglich-
keit ist
n

|A 1 ∪ A 2 ∪ ··· ∪ An| = ∑ |Ai|− ∑ |Ai ∩A |

1
i 2
i=1

1 ≤i 1 <i 2 ≤n

+

∑

|Ai ∩ A ∩ A | − ··· + ( − 1) n− 1 |A

1
i 2
i 3

1 ∩ . . . ∩ An− 1 ∩ An|.

1 ≤i 1 <i 2 <i 3 ≤n

Kürzer und (fast) ohne Punkte ist die folgende Schreibweise, die die Notation X für die Menge
k
aller k -elementigen Teilmengen von X benutzt.

Satz 2.22 (Prinzip von Inklusion und Exklusion, Siebformel). Seien A 1 , . . . , An endliche Teilmen-
gen eines gemeinsamen Universums. Dann ist

n

n

∑

Ai =

( − 1) k− 1

∑ Ai .

(2.32)

i=1
k=1

I∈( { 1 , 2 ,...,n}) i∈I
k

Den Beweis dieses wichtigen Satzes wollen wir auf zwei Arten führen. Einmal mittels vollständi-
ger Induktion und dann mittels elementarem Abzählen.

Erster Beweis (vollständige Induktion über n ≥ 1): Im Falle n = 1 ist die Aussage trivial,
nämlich |A 1 | = |A 1 |. Für n = 2 haben wir uns davon überzeugt, dass die Formel gilt. Sei also n ≥ 3.

Dann ist

n

n− 1

n− 1

n− 1

∩

Ai = An ∪

Ai = Ai+ |An|−

Ai

An .

i=1
i=1
i=1
i=1

In der letzten Gleichung haben wir die Gültigkeit der Formel für n = 2 ausgenutzt. Nun wenden wir
die Induktionsvoraussetzung an und erhalten:

30

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

n

n− 1

n− 1

Ai =

Ai+ |An|− ( Ai ∩An)

i=1
i=1
i=1

⎛

⎞
n− 1

IV ⎜

⎟

= ⎝ ∑ ( − 1) k− 1

∑

Ai⎠+ |An|
k=1

I∈( { 1 , 2 ,...,n− 1 }) i∈I
k

n− 1

− ∑( − 1) k− 1

∑

A
i
k=1

I∈( { 1 , 2 ,...,n− 1 }) i∈I∪{n}

k

⎛

⎞

⎜ n− 1

⎟

= ⎝ ∑ ( − 1) k− 1

∑

Ai⎠+ |An|
k=1

I∈( { 1 , 2 ,...,n− 1 }) i∈I
k

n

+ ∑( − 1) k− 1

∑

Ai .

k=2
n∈I∈( { 1 , 2 ,...,n− 1 ,n}) i∈I
k

In der ersten Summe treten alle Teilmengen von { 1 , . . . , n} auf, die n nicht enthalten, dahinter alle,
die n enthalten. Die Vorzeichen sind richtig, also ist die Behauptung bewiesen.

2

Zweiter Beweis (mittels Abzählen): Wir untersuchen, wie oft ein festes Element x ∈ A 1 ∪···∪ An
auf der rechten Seite gezählt wird. Sei J ⊆ { 1 , . . . , n} die Menge der Indizes l ∈ J mit x ∈ Al und
j := |J|. Beachte, j ≥ 1. Dann trägt x auf der rechten Seite zu jedem Summanden genau eins bei,

für dessen Indexmenge I gilt I ⊆ J . Nun gibt es j k -elementige Teilmengen von { 1 , . . . , n}, die
k
in J enthalten sind, nämlich genau dessen Teilmengen. Das Element x wird also auf der rechten

Seite genau

j
j
j
j −

+

− ··· + ( − 1) j− 1

2

3
j

j
j
j
j
j

=

−

− j +

−

+ ··· + ( − 1) j

0

0

2

3
j

j

=

− (1 − 1) j = 1

0
mal gezählt.

2

Beispiel 2.23. Wir haben von n Freunden je einen Witz aufgeschnappt und uns zwar die Pointe, aber
nicht den Erzähler gemerkt. Als kommunikative Menschen erzählen wir jedem der Freunde genau
einen zufälligen dieser n Witze, aber jedem einen anderen. Wie groß ist die Wahrscheinlichkeit, dass
wir keinem Freund seinen eigenen Witz erzählen?

Abstrakt suchen wir nach der Wahrscheinlichkeit, dass eine zufällige Permutation keinen Fix-
punkt hat. Betrachten wir nämlich die Abbildung, die jedem Witze erzählenden Freund den

Empfänger des Witzes zuordnet, so erhalten wir eine Permutation σ : { 1 , . . . , n} → { 1 , . . . , n}. Wir
erzählen niemandem seinen eigenen Witz, wenn σ ( i) = i für alle 1 ≤ i ≤ n, also σ keinen Fixpunkt,
das ist ein i mit σ ( i) = i , hat. Sei D( n) die Anzahl der fixpunktfreien Permutationen.

Da wir davon ausgehen, dass jede Permutation gleichwahrscheinlich ist, ist die gesuchte Wahr-
scheinlichkeit

D( n) .

n!

2.6. Das Prinzip von Inklusion und Exklusion

31

Wir zählen dafür die Permutationen mit Fixpunkt. Wir können nämlich sehr leicht die Permuta-
tionen zählen, die mindestens eine gegebene Menge von k Elementen festlassen. Dies sind ja genau
die Permutationen der übrigen n − k Elemente, also ( n − k)! Stück.

Die Menge aller Permutationen der Menge { 1 , . . . , n} bezeichnen wir mit Sn .

Sei für i = 1 , . . . , n : Ai := {σ ∈ Sn | σ ( i) = i}. Dann ist

D( n) = n! − |A 1 ∪ A 2 ∪ ··· ∪ An|.

(2.33)

Ferner haben wir |Ai| = ( n − 1)! und ist I ⊆ { 1 , . . . , n}, dann ist

Ai = ( n − |I|)! .

i∈I

Setzen wir dies in das Prinzip von Inklusion und Exklusion ein, so erhalten wir, da es jeweils nk
k -elementige Indexmengen gibt und die zugehörigen Schnitte alle die gleiche Kardinalität haben:

n
n

|
n

A 1 ∪ . . . ∪ An| = ∑( − 1) k− 1

( n − k)! = ∑( − 1) k− 1 n! .

k
k!

k=1
k=1

Wir halten fest, indem wir in (2.33) einsetzen,

Satz 2.24. Die Anzahl der fixpunktfreien Permutationen einer n -elementigen Menge ist
n

D( n) = ∑( − 1) i n! .

i!

i=0

2

Kommen wir zurück zu der Fragestellung, so sehen wir, dass wir die Wahrscheinlichkeit als

∑ n ( −
i=0

1) i 1 erhalten. Diese Zahl konvergiert mit n → ∞ gegen e− 1 ≈ 0 . 36787. Wir werden das in
i!

diesem Rahmen nicht herleiten. Aber in jeder Formelsammlung finden Sie, dass

∞ xi
ex = ∑ .

i!

i=0

Die Folge dieser (Partial-)Summen konvergiert sogar sehr schnell. Für n = 5 hat man schon

0 . 36666666 . . . . Die Wahrscheinlichkeit hängt hier also fast nicht von n ab.

Als letzte Anwendung in diesem Abschnitt betrachten wir zu einer Zahl n ∈ N \ { 0 } die Anzahl
ϕ( n) der zu n teilerfremden positiven, kleineren natürlichen Zahlen. Die Funktion n → ϕ( n) heißt

Eulerfunktion ϕ und spielt in der Zahlentheorie und in der Kryptographie eine wichtige Rolle.

(Beim Online-Banking verlassen Sie sich darauf, dass ϕ( n) sich nicht effizient berechnen lässt,
wenn n = pq das Produkt zweier großer Primzahlen ist, man p und q aber nicht kennt.)

Bezeichne ggT ( a, b) für zwei Zahlen a, b den größten gemeinsamen Teiler dieser beiden Zahlen.

Dann ist die eulersche ϕ -Funktion definiert durch
ϕ( n) = |{m ∈ { 1 , 2 ,...,n} | ggT( n,m) = 1 }|.

32

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

Ist n eine Primzahl n = p , so ist offensichtlich ϕ( p) = p − 1. Als nächstes untersuchen wir

Primzahlpotenzen n = pk mit k ∈ N, k ≥ 2. Wir zählen dann alle Zahlen ≤ pk , die keine Vielfachen
von p sind, das sind pk − pk− 1 = pk(1 − 1 ) Stück.

p

Sei nun n ≥ 1 eine beliebige natürliche Zahl. Dann kann man sie in ihre Primfaktoren zerlegen:

α α
n = p 1 p 2 . . . pα r

1

2
r ,
wobei p 1 , . . . , pr die verschiedenen Primteiler von n sind, also α i ≥ 1. Dann setzen wir

Ai := {m ∈ { 1 , 2 , . . . , n} | pi teilt m}.

Dann ist
ϕ( n) = n − |A 1 ∪ A 2 ∪ ···∪ Ar|.

Die Menge
i∈I Ai f ür /0 = I ⊆ { 1 , . . . , r} besteht aus allen Zahlen ≤ n, die durch ∏ i∈I pi teilbar
sind, also

n

Ai = ∏

.

i∈I
i∈I pi

Nun können wir mit dem Prinzip von Inklusion und Exklusion zeigen
α α

Satz 2.25. Sei n = p 1 p 2 . . . pα r

1

2
r . Dann ist

ϕ( n) = n 1 − 1

1 − 1

··· 1 − 1 .

(2.34)

p 1
p 2
pr

Beweis. Das Prinzip von Inklusion und Exklusion liefert
ϕ( n) = n −

∑

( − 1) |I|− 1
n

∏

= n

∑ ( − 1) |I| 1

∏

.

/0 = I⊆{ 1 , 2 ,...,r}

i∈I pi

I⊆{ 1 , 2 ,...,r}

i∈I pi

Dass diese Formel mit der behaupteten übereinstimmt, zeigen wir mittels vollständiger Induktion
über r . Den Fall r = 1 haben wir oben schon diskutiert. Sei also r ≥ 2. Dann ist

r
r− 1

∏ 1 − 1 = 1 − 1 ∏ 1 − 1
p
p
p
i=1
i
r
i=1
i

IV

=

1 − 1

∑

( − 1) |I|

1
pr

∏

I⊆{ 1 , 2 ,...,r− 1 }

i∈I pi

=

∑

( − 1) |I|

1

−

∑

∏

( − 1) |I|− 1

1

∏

I⊆{ 1 , 2 ,...,r− 1 }

i∈I pi
r∈I⊆{ 1 , 2 ,...,r}

i∈I pi

=

∑ ( − 1) |I| 1

∏

.

I⊆{ 1 , 2 ,...,r}

i∈I pi

2

Wenn man die Primzahlzerlegung einer Zahl n kennt, ist ϕ( n) also leicht zu berechnen.

Aufgabe 2.26. Wieviele Zahlen zwischen 1 und 100 sind durch 2, 3 oder 5 teilbar?

Lösung siehe Lösung 9.11.

2.7. Diskrete Wahrscheinlichkeitsrechnung

33

2.7 Diskrete Wahrscheinlichkeitsrechnung

Im abschließenden Abschnitt dieses Kapitels wollen wir noch einige Begrifflichkeiten klären, die
wir teilweise schon (naiv) benutzt haben. Die Ursprünge der Kombinatorik und der diskreten Wahr-
scheinlichkeitsrechnung fallen zusammen. Insbesondere wenn wir gleichwahrscheinliche Ereignisse
haben, ist das Berechnen von Wahrscheinlichkeiten ein Abzählproblem.

Beispiel 2.27. Wie groß ist die Chance, mit einem Lotto-Tipp fünf Richtige mit Zusatzzahl zu
bekommen?

Wir gehen davon aus, dass alle Zahlenkombinationen gleich wahrscheinlich sind. Dann müssen
wir die Anzahl der möglichen Zahlenkonstellationen und die Anzahl der positiven Konstellationen
unter einer gegebenen Lottozahlenkonfiguration zählen.

Zunächst einmal gibt es 49 Lottozahlenkombinationen und dann noch 43 Möglichkeiten für die

6

Zusatzzahl. Die Wahrscheinlichkeit für jedes einzelne dieser Ereignisse beträgt dann

1

1

=

.

43 49

601 304 088

6

Offensichtlich ist für die Anzahl der positiven Ereignisse 5 Richtige mit Zusatzzahl“ aus Sym-

”

metriegründen die tatsächlich gefallene Lottokombination unerheblich. Wir können also von den

Lottozahlen

1

2

3

4

5

6

Zusatzzahl: 7
ausgehen. Positive Ereignisse erhalten wir genau dann, wenn wir eine der 6 Lottozahlen durch eine
der übrigen Zahlen von 8 bis 49 ersetzen. Also haben wir dafür

6 · 42 Möglichkeiten .

Die Wahrscheinlichkeit fünf Richtige mit Zusatzzahl im Lotto zu tippen beträgt also

6 · 42

3

=

.

601 304 088

7 158 382

Betrachten wir diese Wahrscheinlichkeitsüberlegungen allgemeiner:

2.7.1 Wahrscheinlichkeitsraum

Wir gehen aus von einem Zufallsexperiment. Jedes mögliche Ergebnis des Experiments nennen wir
ein Ereignis. Die Vereinigung aller Ereignisse ist die Menge der Elementarereignisse Ω , jedes Ele-
ment von Ω heißt also Elementarereignis, wohingegen sich ein Ereignis aus mehreren Elementarer-
eignissen zusammensetzen kann. Die Menge aller möglichen Ereignisse, die Ereignismenge Σ , ist
also eine Teilmenge der Potenzmenge von Ω , also

Σ ⊆ 2Ω .

Diese Menge Σ muss gewisse Bedingungen erfüllen. Wir wollen hier nicht näher darauf eingehen
und uns ab sofort auf endliche Ereignismengen und Σ = 2Ω zurückziehen.

34

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

Um von Wahrscheinlichkeiten zu sprechen, ordnen wir den Ereignissen A Zahlen p( A) zwischen

0 und 1 zu, wobei die 0 für unmögliche und die 1 für sichere Ereignisse steht. Im endlichen Fall
erhalten wir damit folgende abstrakte Bedingungen, die Kolmogorow-Axiome, welche definieren,
wann eine Funktion p ein Wahrscheinlichkeitsmaß ist.

Definition 2.6. Sei Ω eine endliche Menge. Eine Abbildung p : 2Ω → R heißt Wahrscheinlichkeits-
maß, wenn

K1

∀A ⊆ Ω : p( A) ≥ 0 .

K2
p(Ω ) = 1 .

K3

Sind A 1 , A 2 ⊆ Ω und A 1 ∩ A 2 = /0, wir sagen auch, die Ereignisse sind inkompatibel, so gilt
p( A 1 ˙ ∪A 2) = p( A 1) + p( A 2) .

Wir nennen dann das Tupel (Ω , p) einen Wahrscheinlichkeitsraum.

Bemerkung 2.28. Im Falle endlicher Ereignismengen folgt aus dem dritten Axiom sofort, dass

∀A ∈ 2Ω : p( A) = ∑ p( {a})

a∈A
ist. Aus diesem Grunde findet man als Definition für diskrete Wahrscheinlichkeitsmaße in der

Literatur oft auch Funktionen ˜
p : Ω → R mit den Eigenschaften

∀a ∈ Ω : ˜ p( a) ≥ 0 und ∑ ˜ p( a) = 1 .

a∈Ω

Anstatt p( {a}) schreiben wir auch oft kurz p( a).

Aus der Definition folgt sofort:

Proposition 2.11. Sei (Ω , p) ein Wahrscheinlichkeitsraum und A, B, Ai ⊆ Ω , i = 1 , . . . , k . Dann gilt:

a) A ⊆ B ⇒ p( A) ≤ p( B) ,
k
b) Ist A = A 1 ˙ ∪ . . . ˙ ∪Ak eine Partition von A, so ist p( A) = ∑ p( Ai) ,
i=1
c) p( A ∪ B) = p( A) + p( B) − p( A ∩ B) ,
d) p(Ω \ A) = 1 − p( A) ,

k

k
e) p

Ai

≤ ∑ p( Ai) .

i=1
i=1

Beweis. Wir zeigen nur die dritte Aussage. Den Rest lassen wir als Übung. Zunächst stellen wir
fest, dass

A ∪ B = ( A \ B) ˙ ∪ ( B \ A) ˙ ∪ ( A ∩ B)

A = ( A \ B) ˙ ∪ ( A ∩ B)

B = ( B \ A) ˙ ∪ ( A ∩ B) .

2.7. Diskrete Wahrscheinlichkeitsrechnung

35

Also ist
p( A ∪ B) = p( A \ B) + p( B \ A) + p( A ∩ B)

= ( p( A \ B) + p( A ∩ B)) + ( p( B \ A) + p( A ∩ B)) − p( A ∩ B)

= p( A) + p( B) − p( A ∩ B) .

2

Wir hatten bisher stets Zufallsexperimente untersucht, bei denen die Elementarereignisse gleich-
wahrscheinlich sind. Wir nennen solche Experimente Laplace-Experimente. Wir sprechen von einem
uniformen Wahrscheinlichkeitsraum und nennen p die Gleichverteilung auf Ω . Dort gilt dann stets

|A|
p( A) = |Ω |.

Ist nämlich a ein Elementarereignis, so ist

1

1 = p(Ω ) = ∑ p( {b}) = |Ω |p( {a}) ⇒ p( {a}) = |Ω |
b∈Ω
und

|A|
p( A) = ∑ p( {b}) = |A|p( {a}) = |Ω |.

b∈A

Beispiel 2.29. Wir berechnen die Wahrscheinlichkeit, mit zwei (fairen) Würfeln eine Summe von 7
zu würfeln, also die Wahrscheinlichkeit der Menge

{(1 , 6) , (2 , 5) , (3 , 4) , (4 , 3) , (5 , 2) , (6 , 1) }.

Da jedes Elementarereignis die Wahrscheinlichkeit 1 hat, ist die Wahrscheinlichkeit dieses Ereig-

36
nisses 1 .

6

Da wir ingesamt 11 mögliche Würfelsummen haben, kann dieses Experiment kein Laplaceexpe-
riment sein. Wir berechnen als Wahrscheinlichkeiten der Ereignisse

1

1

1
p(2) = p(12) =
p(3) = p(11) =
p(4) = p(10) =

36

18

12

1

5

1
p(5) = p(9) =
p(6) = p(8) =
p(7) =

9

36

6
und verifizieren, dass die Summe dieser Wahrscheinlichkeiten 1 ist.

2.7.2 Bedingte Wahrscheinlichkeiten

Das Axiom K3 nennen wir auch Summenregel. Ebenso gibt es eine Produktregel. Wenn wir danach
fragen, wie groß die Wahrscheinlichkeit ist, in zwei Lottoziehungen hintereinander keinen Richtigen
zu haben, so haben wir es mit zwei Ereignissen zu tun, die voneinander unabhängig sind. Die

Wahrscheinlichkeit, in einer Lottoziehung keinen Richtigen zu haben, ist

43

6

≈ 0 . 436 .

49

6

36

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

Die Wahrscheinlichkeit, dass dies zweimal hintereinander passiert ist mit etwa 0.19, also 19%, schon
relativ klein.

Aber nicht bei allen zweistufigen Experimenten sind die Ereignisse unabhängig.

Beispiel 2.30. Wir berechnen die Wahrscheinlichkeit, dass bei 17+4 (BlackJack) die ersten beiden

Karten eine 10 und eine 7 sind und mit der dritten Karte die Augenzahl von 21 echt überschritten
wird. Wir spielen mit einem Skatblatt, die Wertigkeit von As, Bube, Dame, König ist 1,2,3,4,
ansonsten die auf der Karte aufgedruckte Punktzahl.

• p( erste 10, zweite 7) = 4 · 4 = x,

32 · 31

• p( erste 7, zweite 10) = 4 · 4 = y,

32 · 31

• p(7,8,9,10 aus 32 \{ 7 , 10 }) = 3+4+4+3 = 14 = 7 = z.

30

30

15

Die ersten beiden Ereignisse sind disjunkt, die Wahrscheinlichkeit, dass die ersten beiden Karten
eine 7 und eine 10 sind, ist also x + y = 1 . Beim dritten Ereignis fragen wir nach einer bedingten

31

Wahrscheinlichkeit. Die Wahrscheinlichkeit, dass 7,8,9 oder 10 aus einem vollen Skatblatt gezogen
wird, ist nämlich 1 = 7 . Das oben beschriebene Ereignis hat die Gesamtwahrscheinlichkeit ( x +

2

15
y) z = 7 . Nennen wir das Ereignis des dritten Zuges A und die ersten beiden B und bezeichnen

465
unser Gesamtereignis als A unter der Voraussetzung B , geschrieben A | B, so erhalten wir
p( A ∩ B)

p( A | B) =

,
p( B)

wobei p( A | B) = z, p( A ∩ B) = ( x + y) z und p( B) = ( x + y) ist.

Definition 2.7. Seien A und B Ereignisse und p( B) > 0 . Die Wahrscheinlichkeit von A unter der

Bedingung B ist definiert als
p( A ∩ B)

p( A | B) =

.

p( B)

Zwei Ereignisse A, B heißen unabhängig, wenn
p( A ∩ B) = p( A) p( B) .

Dies können wir auch notieren als p( A | B) = p( A) oder p( B | A) = p( B). Bei den letzten Äquiva-lenzen haben wir vorausgesetzt, dass p( A) p( B) > 0 .

Satz 2.31 (Satz von Bayes). Sind A, B ⊆ Σ Ereignisse mit p( A) p( B) > 0 , so gilt
p( B) p( A | B) = p( A) p( B | A) .

(2.35)

Beweis. Beide Ausdrücke sind gleich p( A ∩ B).

2

2.7.3 Paradoxa

Hier zwei kleine Beispiele mit überraschenden Ergebnissen.

2.7. Diskrete Wahrscheinlichkeitsrechnung

37

Beispiel 2.32. Wie viele Leute müssen in einem Raum sein, damit die Wahrscheinlichkeit, dass
zwei am gleichen Tag Geburtstag haben, größer als 1 ist? Dabei gehen wir davon aus, dass die

2

Wahrscheinlichkeit, dass ein Tag Geburtstag ist, bei allen 365 Tagen des Jahres die gleiche ist,
vernachlässigen also saisonale Schwankungen und Schaltjahre.

Haben wir n Tage und k Personen, so haben wir nk mögliche Geburtstagskombinationen als

Elementarereignisse. Wir untersuchen, wie viele dieser k -Tupel keinen Eintrag doppelt haben.

Offensichtlich muss dafür k ≤ n sein. Nun haben wir für den ersten Eintrag n mögliche Tage, für
den zweiten n − 1 usw. Also haben insgesamt
n!

dieser k -Tupel keinen Eintrag doppelt. Die

( n−k)!

gesuchte Wahrscheinlichkeit, dass zwei am gleichen Tag Geburtstag haben, ist das Komplement,
also gleich
n!

k− 1
k− 1

( n−k)!

n − i

1 −

= 1 − ∏

= 1 − ∏(1 − i ) .

nk
n
n
i=0
i=0

Unter Ausnutzung von ∀x ∈ R : 1 + x ≤ ex , unter Einbeziehung der Potenzsätze und der Formel

∑ ni=0 i = ( n+1) n schließen wir:

2
k− 1
k− 1
i

1 − ∏(1 − i ) ≥ 1 − ∏ e− in = 1 − e−∑ k− 1
i=0 n = 1 − e− k( k− 1)

2 n

.

n
i=0
i=0

Somit ist diese Wahrscheinlichkeit für positives k größer als 1 , wenn

2

1
e− k( k− 1)

2 n

<

⇐⇒ −k( k − 1) < − ln2

2

2 n

⇐⇒ k 2 − k > 2 n ln n

√
k≥ 0

⇐⇒

1

1

1 +

1 + 8 n ln 2
k >

+

+ 2 n ln 2 =

.

2

4

2

Die letzte Äquivalenz erhalten wir aus

1

1
k 2 − k − 2 n ln n = k − 1 −

+ 2 n ln 2
k − 1 +

+ 2 n ln 2 .

2

4

2

4
k 2 − k > 2 n ln n gilt also genau dann, wenn entweder beide Faktoren positiv oder beide Faktoren
negativ sind. Ersteres haben wir oben berücksichtigt, letzteres ist genau dann der Fall, wenn

1

1
k <

−

+ 2 n ln 2 ,

2

4
also kleiner als Null ist, was k als natürliche Zahl nicht ist.

Setzen wir n = 365 ein so erhalten wir k > 22 . 999943 als Bedingung. Dieses Ergebnis ist auch
als Geburtstagsparadoxon“ bekannt.

”

Beispiel 2.33. Das Ziegenparadoxon“ errang 1990 als solches Berühmtheit durch eine kontroverse

”

Diskussion, die durch ein Problem in der Kolumne Ask Marilyn“ des US-Magazins Parade“

”

”

ausgelöst wurde. Dabei mag es manchen herausgefordert haben, dass die Kolumnistin Marilyn vos

Savant im Guinness-Buch der Rekorde mit einem IQ von 228, gemessen im zarten Alter von 10

Jahren, 5 Jahre als Rekordhalterin geführt wurde. Das zugehörige abstrakte Problem wurde vorher
in der Literatur schon öfter diskutiert, unter anderem in Martin Gardners Buch More Mathematical

”

Puzzles and Diversions“ von 1961.

38

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

Das Problem ist das Folgende: In einer Spielshow, nennen wir sie einmal Geh aufs Ganze“,

”

steht man in der Schlussrunde vor drei verschlossenen Toren. Hinter einem ist der Hauptgewinn, ein
neues Auto, hinter den beiden anderen ein Zonk (in der analogen Show in den USA nahm man eine

Ziege). Nachdem man eine Tür ausgewählt hat, öffnet der Showmaster, der weiß, wo das Auto steht,
eine der beiden anderen Türen, hinter der sich ein Zonk verbirgt. Man hat nun die Chance, seine

Entscheidung zu revidieren, und die andere der verbleibenden Türen auszuwählen. Sollte man dies
tun?

Eine Analyse ist hier wiederum durch Fallunterscheidung am leichtesten. Sei A das von uns
ausgewählte Tor.

1. Fall

Das Auto verbirgt sich hinter Tür A . Die Wahrscheinlichkeit dafür ist ein Drittel und ein

Wechsel ist nachteilig.

2. Fall

Das Auto verbirgt sich nicht hinter Tür A . Die Wahrscheinlichkeit dafür ist zwei Drittel
und bei einem Wechsel gewinnt man das Auto.

Also ist die Chance, das Auto zu gewinnen, bei einem Wechsel doppelt so groß wie ohne ihn.

2.7.4 Zufallsvariablen

Definition 2.8. Sei (Ω , p) ein Wahrscheinlichkeitsraum. Unter einer Zufallsvariablen X verstehen
wir dann eine Abbildung

X : Ω → R .

Dann induziert X ein Wahrscheinlichkeitsmaß q auf 2 X(Ω) , also auf den von der Funktion ange-
nommenen Werten. Ist nämlich y ∈ X(Ω ), so setzen wir
q( y) =

∑ p( {ω }) .

ω ∈Ω

X (ω)= y

Man rechnet leicht nach, dass q ein Wahrscheinlichkeitsmaß ist.

Um das Verhalten von X zu analysieren, betrachtet man dann den Erwartungswert E( X ) von X .

Dies ist der Wert, den die Zufallsvariable im Mittel annimmt, also

E( X ) := ∑ p( {ω }) X(ω) .

ω ∈Ω

Ist Y eine weitere Zufallsvariable, so ist auch die Summe X + Y wieder eine Zufallsvariable.

Dabei bilden wir Summen oder Vielfache reellwertiger Funktionen wie üblich, indem wir jeweils
die Funktionswerte addieren bzw. skalar multiplizieren. Für den Erwartungswert der Summe gilt:

E( X + Y ) = ∑ p( {ω })( X + Y)(ω)

ω ∈Ω

= ∑ p( {ω }) X(ω) + ∑ p( {ω }) Y(ω)

ω ∈Ω
ω ∈Ω

= E( X ) + E( Y ) .

2.7. Diskrete Wahrscheinlichkeitsrechnung

39

Analog rechnet man nach, dass für α ∈ R : E(α X) = α E( X). Der Erwartungswert ist also eine
lineare Funktion auf dem Vektorraum der Zufallsvariablen. Ist die Zufallsvariable eine konstante

Funktion X = c , so ist offensichtlich E( X ) = c .

Als zweiten wichtigen Parameter bei einer Zufallsvariable haben wir deren Streuung, die als

Varianz V ( X ) bezeichnet wird. Die Varianz misst die erwartete quadratische Abweichung einer

Messung vom Erwartungswert.

V ( X ) := E(( X − E( X))2) .

Proposition 2.12.

V ( X ) = E( X 2) − ( E( X))2 .

Beweis.

V ( X ) = E(( X − E( X))2) = E( X 2 − 2 E( X) X + E( X)2)

= E( X 2) − 2 E( X)2 + E( E( X)2)

= E( X 2) − 2 E( X)2 + E( X)2 = E( X 2) − ( E( X))2 .

2

Wir beschließen dieses Kapitel mit einem Beispiel.

Beispiel 2.34. Wir betrachten gleichverteilte Permutationen von { 1 , . . . , n}. Als Zufallsvariable be-
trachten wir hierzu F(σ ) , die Anzahl der Fixpunkte einer Permutation σ . Wir können F = ∑ n F
i=1 i
schreiben, wobei Fi(σ ) = 1 , falls σ ( i) = i , also i ein Fixpunkt ist und Null sonst gelten soll.

Da, wie oben bereits gesehen, i ein Fixpunkt von genau ( n − 1)! Permutationen ist, ist E( Fi) = 1 ,
n
also E( F) = 1 . Für die Varianz berechnen wir zunächst
n
n

E( F 2) = E((∑ Fi)2) = ∑ E( F 2 i) + 2 ∑ E( FiFj) .

i=1
i=1

1 ≤i< j≤n

Offensichtlich ist F 2 = F
i
i und ( FiFj )(σ ) = 1 dann und nur dann, wenn σ Fixpunkte in i und j hat.

Dies ist bei ( n − 2)! Permutationen der Fall. Somit ist E( FiFj) = ( n− 2)! =

1

. Also haben wir
n!

n( n− 1)

2 n

E( F 2) = 1 + 2

∑ E( F

2
iFj ) = 1 +

= 1 + 1 = 2 .

n( n − 1)

1 ≤i< j≤n

Somit ist

V ( F) = E( F 2) − ( E( F))2 = 2 − 1 = 1 .

Man sagt auch, dass eine Permutation im Mittel 1 ± 1 Fixpunkte hat. Hierbei steht die erste 1 für

E( F) , die zweite für V ( F) .

Aufgabe 2.35. Zeigen Sie Proposition 2.11 a), b), d) und e).

Lösung siehe Lösung 9.12.

Aufgabe 2.36. In einer Allee stehen 50 Kastanien – je 25 auf jeder Seite, von denen 10, die neben-
einander stehen, erkrankt sind. Legt diese Tatsache den Schluss nahe, dass die Krankheit von Baum
zu Baum übertragen wird?

Lösung siehe Lösung 9.13.

40

Kapitel 2. Elementare Abzählprobleme und diskrete Wahrscheinlichkeiten

Aufgabe 2.37. Wie groß ist die Wahrscheinlichkeit, dass bei 2 m Würfen mit einer fairen 1-Euro

Münze genau m -mal Zahl und m -mal Adler geworfen wird? Wie ist das Verhalten für m → ∞?

Lösung siehe Lösung 9.14.

Aufgabe 2.38. Bestimmen Sie Erwartungswert und Varianz der Augenzahlen eines Wurfes mit zwei
fairen Würfeln. Lösung siehe Lösung 9.15.

Aufgabe 2.39. Zeigen Sie die Siebformel von Poincare-Sylvester. Seien A 1 , . . . , Am Ereignisse einer
diskreten Ereignismenge Ω . Zeigen Sie:

m

m

p

Ak

= ∑( − 1) k+1

∑ p

Ai .

k=1
k=1

I∈( { 1 , 2 ,...,m})

i∈I
k

Lösung siehe Lösung 9.16.

Kapitel 3

Graphen

Graphen begegnen einem insbesondere in der Informatik häufig, da sie ein probates Mittel sind, um

Relationen zu modellieren.

3.1 Relationen

Zunächst wollen wir die Situation betrachten, in der in einer Grundmenge zwischen manchen

Elementen eine Beziehung besteht und zwischen anderen nicht. Die Menge der Paare, für die diese

Beziehung gilt, nennen wir eine Relation.

Definition 3.1. Seien M, N Mengen. Eine (binäre) Relation ist eine beliebige Teilmenge R ⊆ M × N
des kartesischen Produktes dieser Mengen. Ist ( x, y) ∈ R, so sagen wir auch x steht in Relation mit

”

y“ und schreiben dies als xRy .

Bemerkung 3.1. Sind M 1 , . . . , Mn Mengen, so nennt man Teilmengen von M 1 × . . . × Mn analog
n -äre Relationen. In der mathematischen Logik werden ( n -äre) Relationen auch als ( n -stellige)

Prädikate bezeichnet. Anstatt ( x

( x

” 1 , . . . , xn) gehört zur Relation R“ sagen wir auch ” 1 , . . . , xn) hat
das Prädikat R“.

Zu jedem x und y können wir bzgl. R die Mengen aussondern:

[ x] l := {y ∈ N | ( x, y) ∈ R},

[ y] r := {x ∈ M | ( x, y) ∈ R}.

Also ist [ x] l die Menge aller rechten Partner“, die x haben kann, wenn es in der Relation links steht

”

und für [ y] r gilt Analoges. Den Index lassen wir weg, wenn die Interpretation eindeutig ist, z. B.

wenn [ x] l = [ x] r .

3.1.1 ¨

Aquivalenzrelationen

Wir betrachten von nun an (binäre) Relationen auf einer Menge M , d. h. R ⊆ M × M .

Definition 3.2. Sei R eine Relation auf einer Menge M . Die Relation heißt

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

41

DOI 10.1007/978-3-642-05422-8 3, c

Springer-Verlag Berlin Heidelberg 2010

42

Kapitel 3. Graphen
reflexiv,
wenn für alle x ∈ M : ( x, x) ∈ R,
symmetrisch,
wenn ( x, y) ∈ R ⇒ ( y, x) ∈ R,
transitiv,
wenn (( x, y) ∈ R und ( y, z) ∈ R) ⇒ ( x, z) ∈ R,
antisymmetrisch,
wenn (( x, y) ∈ R und ( y, x) ∈ R) ⇒ x = y.

Man beachte, dass bei der Definition der Symmetrie, Transitivität und Antisymmetrie Aussagen über
alle x, y bzw. x, y, z gemacht werden. Die Allquantoren haben wir, da es so wie es aufgeschrieben
auch logisch korrekt ist, aus Gründen der Übersichtlichkeit weggelassen. Eine reflexive, symmetri-
sche und transitive Relation nennen wir ¨

Aquivalenzrelation.

Beispiel 3.2. Sei M = Z , n ∈ Z und für a, b ∈ Z sei definiert:

aRb : ⇐⇒ ∃k ∈ Z : a − b = kn.

Oder in anderen Worten n teilt a − b oder auch a und b lassen bei Division durch n denselben

Rest. Offensichtlich definiert dies eine binäre Relation auf Z. Wir zeigen, dass dies eine Äquiva-
lenzrelation ist.

Reflexivität:

Offensichtlich ist für beliebiges a ∈ Z: a − a = 0 · n, also gilt stets aRa.

Symmetrie:

Gilt aRb , so gibt es ein k ∈ Z mit a − b = kn. Dann ist aber auch −k ∈ Z und es gilt
b − a = ( −k) n, also auch bRa.

Transitivität:

Seien also a, b, c ∈ Z und sowohl ( a, b) ∈ R als auch ( b, c) ∈ R. Dann gibt es k 1 , k 2 ∈

Z mit a−b = k 1 n und b−c = k 2 n, und Addition der Gleichungen ergibt a−c = ( k 1 + k 2) n, also auch aRc .

Beispiel 3.3. Sei M = N und für a, b ∈ N sei die Relation Q definiert durch
aQb : ⇔ ∃k ∈ Z : b = ka
oder mit anderen Worten a teilt b . Wir schreiben dafür auch a | b. Dann ist Q reflexiv, transitiv und
antisymmetrisch. Da 3 | 6, aber 6 teilt 3 nicht, ist die Relation nicht symmetrisch, also auch keine

Äquivalenzrelation. Wir zeigen nun den Rest der Behauptung:

Reflexivität:

Wegen a = 1 · a gilt aQa für alle a ∈ N.

Antisymmetrie:

Wir haben zu zeigen, dass aus aQb und bQa folgt, dass a = b ist. Die Relation
liefert uns Koeffizienten k 1 , k 2 ∈ Z mit b = k 1 a bzw. a = k 2 b und somit a = k 2 k 1 a. Falls a = 0 ist, folgt b = k 1 · 0 = 0 = a. Ansonsten ist auch b = 0 und k 1 k 2 = 1. Wir schließen k 1 = k 2 ∈ {+1 , − 1 }. Da aber a, b ∈ N \ { 0 } und b = k 1 a ist, folgt k 1 = 1 und damit a = b.

Transitivität:

Hier haben wir b = k 1 a und c = k 2 b, also c = k 2 k 1 a und somit aQc.

Aufgabe 3.4. Sei M = R n×n die Menge aller n × n-Matrizen mit reellen Einträgen. Sei dann die

Relation R auf M definiert vermöge

ARB ⇐⇒ es gibt eine reguläre n × n-Matrix Q mit A = Q− 1 BQ.

Zeigen Sie: R ist eine Äquivalenzrelation.

Lösung siehe Lösung 9.17.

Äquivalenzrelationen definieren so etwas Ähnliches wie Gleichheit. Sie zerlegen die Grundmenge
in paarweise disjunkte ¨

Aquivalenzklassen, die Mengen [ x] .

3.1. Relationen

43

Proposition 3.1. Sei R eine ¨

Aquivalenzrelation auf M . Dann gilt
a) [ x] = /0 für alle x ∈ M .

b) Für je zwei x, y ∈ M ist (entweder) [ x] = [ y] oder [ x] ∩ [ y] = /0 . Also bilden die ¨

Aquivalenzklassen
eine Partition von M .

c) R ist durch ihre ¨

Aquivalenzklassen vollständig bestimmt.

Beweis.

a) Da R reflexiv ist, gilt stets x ∈ [ x].

b) Die Aussage A oder B ist offensichtlich logisch äquivalent zu wenn B nicht gilt, muss zumindest

”

A gelten“. Wir können also hier auch die äquivalente Aussage

∀x,y ∈ M : [ x] ∩ [ y] = /0 ⇒ [ x] = [ y]

beweisen. Seien also x, y ∈ M und z ∈ [ x] ∩ [ y]. Wir zeigen

[ x] ⊆ [ y]:

Sei dazu t ∈ [ x], wir haben also
xRz, yRz, xRt.

Wegen Symmetrie ( xRt = ⇒ tRx) folgt tRx aus xRt . Mit der Transitivität (( tRx und xRz) = ⇒
tRz ) folgt tRz aus tRx und xRz . Analog schließen wir mit

( yRz = ⇒ zRy)

und

(( tRz und zRy) = ⇒ tRy)

auf tRy . Hieraus folgt wieder wegen Symmetrie
yRt
und somit auch t ∈ [ y]. Also ist [ x] ⊆ [ y].

[ y] ⊆ [ x]:

Die Symmetrie der Voraussetzungen in x und y liefert [ y] ⊆ [ x] als Analogie.

Somit haben wir [ x] = [ y] gezeigt.

c) Offensichtlich gilt ( xRy ⇔ {x, y} ⊆ [ x]).

2

Aufgabe 3.5. Zeigen Sie, dass über Proposition 3.1 c) hinaus auch gilt, dass jede Partition eine

Äquivalenzrelation definiert. Sei also M eine Menge und M = M 1 ˙ ∪ . . . ˙ ∪Mk eine Partition. Dann
definiert
xRy : ⇔ ∃i ∈ { 1 , . . . , k} : {x, y} ⊆ Mi
eine Äquivalenzrelation.

Lösung siehe Lösung 9.18.

3.1.2 Partialordnungen

Definition 3.3. Sei M eine Menge. Eine reflexive, antisymmetrische und transitive Relation R auf

M heißt Partialordnung. Ist M eine endliche Menge, so nennen wir R eine endliche Partialordnung.

44

Kapitel 3. Graphen

Ist R eine Partialordnung und ( x, y) ∈ R, so schreiben wir auch x ≤ y. Oft nennen wir die

Grundmenge P statt M und notieren die Relation als ( P, ≤). Stehen je zwei Elemente in Relation,
gilt also für x, y ∈ M stets x ≤ y oder y ≤ x, so sprechen wir von einer linearen Ordnung, einer

Totalordnung oder einfach von einer Ordnung.

Beispiel 3.6. Die bekannten Ordnungen auf (N , ≤) und (R , ≤) sind Totalordnungen, denn offen-
sichtlich ist hier die ≤-Relation reflexiv, antisymmetrisch und transitiv. Da je zwei Elemente mit-
einander vergleichbar sind, handelt es sich um Totalordnungen.

Beispiel 3.7. Die Inklusionsbeziehung (Teilmengenbeziehung) auf der Potenzmenge 2 M einer Men-
ge M ist eine Partialordnung ( P, ≤). Also für N 1 , N 2 ⊆ M

( N 1 , N 2) ∈ ( P, ≤) ⇐⇒ N 1 ⊆ N 2 .

Da für jede Menge N gilt N ⊆ N , ist die Relation reflexiv. Wegen

( N 1 ⊆ N 2 und N 2 ⊆ N 1) ⇐⇒ N 1 = N 2
ist die Relation antisymmetrisch und wegen

( N 1 ⊆ N 2 und N 2 ⊆ N 3) = ⇒ N 1 ⊆ N 3
ist sie transitiv.

Ist N ⊆ M , aber /0 = N = M , so sind N und M \ N nicht miteinander vergleichbar. Also ist ( P, ≤) keine Totalordnung, falls solch ein N existiert, also falls |M| ≥ 2.

Beispiel 3.8. In Beispiel 3.3 wurde gezeigt, dass die Teilbarkeitsrelation eine Partialordnung ist.

Offensichtlich gibt es auch hier unvergleichbare Elemente, z. B. 2 und 5 .

Sei ( P, ≤) eine Partialordnung und a, b ∈ P mit a ≤ b. Ist a = b, so schreiben wir a < b. Wir sagen
b bedeckt a , in Zeichen a <· b, wenn a < b und für alle c ∈ P gilt a ≤ c ≤ b ⇒ c ∈ {a, b}. Endliche

Partialordnungen werden durch die Bedeckungsrelation erzeugt:

Proposition 3.2. Sei ( P, ≤) eine endliche Partialordnung und x, y ∈ P. Dann gilt x < y genau dann,
wenn es k ≥ 0 Elemente x 1 , . . . , xk gibt mit x <· x 1 <· . . . <· xk <· y.

Beweis. Gilt x <· x 1 <· . . . <· xk <· y, so folgt aus der Transitivität x ≤ y. Für k = 0 wird explizit
x < y vorausgesetzt und für k > 0 impliziert x <· x 1 ≤ y, dass x = y und damit x < y. Die andere Implikation zeigen wir mittels Induktion über die Anzahl n der Elemente t ∈ P mit x < t < y.

Ist n = 0 , so ist nichts zu zeigen. Ist n ≥ 1, so wählen wir ein festes z mit x < z < y. Dann gibt
es sowohl zwischen x und z , als auch zwischen z und y weniger als n Elemente. Also gibt es
nach Induktionsvoraussetzung x 1 , . . . , xl und xl+2 , . . . , xk mit x <· x 1 <· . . . <· xl <· z := xl+1 und xl+1 <· xl+2 <· . . . <· xk <· y.

2

Es genügt also zur Beschreibung einer endlichen Partialordnung, nur die Bedeckungsrelationen
zu betrachten. Diese werden oft graphisch als HASSE -Diagramm dargestellt, wobei die Elemente als

Punkte und die Relationen als Verbindungen vom kleineren unteren Element zum größeren oberen

Element dargestellt werden.

3.2. Definition eines Graphen, Isomorphismus

45

Beispiel 3.9. In Abbildung 3.1 sehen wir links das HASSE-Diagramm der Teilbarkeitsrelation a ≤
b ⇔ a teilt b auf der Menge { 1 , 2 , . . . , 11 , 12 } und rechts das der Teilmengenrelation der Potenzmenge von { 1 , 2 , 3 , 4 }.

{ 1, 2, 3, 4}

12

8

{ 1, 2, 3}

{ 2, 3, 4}

9

6

4

10

5

7 11

3

2

{ 1}

{ 2}

{ 3}

{ 4}

1

Ø

Abb. 3.1 Zwei HASSE-Diagramme

Aufgabe 3.10. Sei (Σ , ≤) eine endliche total geordnete Menge. Ist m ∈ N und w ∈ Σ m , so nennen
wir w ein Wort über Σ . Die Menge aller Wörter über Σ (beliebiger Länge m ) bezeichnen wir mit

Σ ∗ . Wir betrachten folgende Relation auf den Wörtern über Σ . Seien w, ˜ w ∈ Σ ∗ , dann definieren
wir
w ∈Σ k, ˜ w∈Σ m mit m≥k
w ˜
w : ⇔ ∃k ∈ N : wi = ˜
wi für alle 1 ≤ i ≤ k und
oder wk+1 < ˜
wk+1 .

Zeigen Sie: Durch ist eine Totalordnung auf Σ ∗ definiert. Diese nennen wir die lexikographische

Ordnung auf Σ ∗ .

Lösung siehe Lösung 9.19.

3.2 Definition eines Graphen, Isomorphismus

Analog zu HASSE-Diagrammen kann man ganz allgemein binäre Relationen visualisieren. Wir wol-
len uns zunächst auf binäre, irreflexive, symmetrische Relationen auf endlichen Mengen konzentrie-
ren, die auch Graphen heißen. Dabei heißt eine Relation irreflexiv, wenn für alle x ∈ M : ( x, x) /

∈ R.

Ausgehend von der Visualisierung dieser Relation können wir sagen, dass Graphen aus einer
endlichen Menge von Knoten (Objekten, Punkten) und Kanten, die jeweils zwei dieser Knoten
verbinden, bestehen. Graphen sind also z. B. recht nützlich, um Straßennetzwerke oder Relationen
zu kodieren.

Definition 3.4. Sei V eine endliche Menge (von Knoten, engl. vertices) und E ⊆ V eine Teilmenge

2
der zweielementigen Teilmengen von V . Dann nennen wir das geordnete Paar ( V, E) einen Graphen

46

Kapitel 3. Graphen

(genauer einen ungerichteten, einfachen Graphen). Die Elemente von E nennen wir Kanten engl.

edges von G .

Haben wir einen Graphen G gegeben, dann bezeichnen wir seine Knotenmenge auch mit V ( G)

und seine Kantenmenge mit E( G) . Ist {u, v} eine Kante eines Graphen G, sagen wir, u und v sind
adjazent oder Nachbarn oder u kennt v bzw. v kennt u . Manchmal schreiben wir auch einfach ( u, v)

für eine Kante {u, v}.

Beispiel 3.11. Wir können Graphen zeichnen, indem wir für jeden Knoten einen Punkt in die Ebene
zeichnen und die Punkte durch eine Linie verbinden, wenn es die entsprechende Kante gibt. In der

Abbildung sehen Sie einen Graphen mit 14 Knoten und 17 Kanten.

7

6

3

1

2

11

12

4

5

10

8

9

13

14

Man beachte aber, dass diese Skizze nur eine Visualisierung des abstrakten Objekts ist. Zum Beispiel
für die algorithmische Behandlung speichern wir den Graphen als Listen

V = { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 }, E = {{ 1 , 2 }, { 1 , 3 }, { 2 , 6 }, { 6 , 7 }, { 3 , 7 }, { 3 , 4 }, { 4 , 5 }, { 2 , 5 }, { 5 , 11 }, { 11 , 12 }, { 9 , 12 }, { 9 , 14 },

{ 13 , 14 },{ 10 , 13 },{ 10 , 11 },{ 8 , 9 },{ 8 , 10 }}.

Wir führen nun einige wichtige Graphenklassen ein. Bei den zugehörigen Visualisierungen lassen
wir die Knotennummern bewusst weg. Der Grund dafür sollte spätestens klar werden, wenn wir im

Folgenden Isomorphie von Graphen kennen lernen.

Beispiel 3.12. Sei n ∈ N und V = { 1 , 2 , . . . , n}.

• K

V
n , der vollst ¨
andige Graph mit n Knoten hat die Knotenmenge V und die Kantenmenge

.

2

K

K

1

K 2

3

K 4

K 5

• Sei n ≥ 3. Der Kreis mit n Knoten Cn hat Knotenmenge V und die Kantenmenge {i,i + 1 } für
i = 1 , . . . , n − 1 und {n, 1 }.

3.2. Definition eines Graphen, Isomorphismus

47

C 3

C 4

C 5

• Pn , der Weg mit n Knoten hat ebenfalls die Knotenmenge V und Kantenmenge {i,i + 1 } für
i = 1 , . . . , n − 1. Es sind P 1 = K 1 , P 2 = K 2 .

P 3

P 4

P 5

• Km,n der vollständige, bipartite Graph mit m + n Knoten hat Knotenmenge V ∪ W mit W =

{n + 1 ,...,n + m} und Kantenmenge V ×W .

K 2 , 3

K 3 , 4

Wir sehen zwei Graphen als gleich an, wenn sie im Wesentlichen aus der selben Knoten- und

Kantenmenge bestehen. Genauer definieren wir:

Definition 3.5. Seien G = ( V, E) und G = ( V , E) zwei Graphen. Dann heißen G und G iso-
morph, wenn es eine bijektive Abbildung f : V → V gibt mit

∀u,v ∈ V : ( {u,v} ∈ E ⇔ { f ( u) , f ( v) } ∈ E) .

Die Abbildung f heißt dann ein Isomorphismus und wir schreiben G ∼

= G .

Wir können die Bijektion als Umnummerierung der Knoten“ betrachten. Daher lassen wir bei

”

Graphen wie oben oft die Knotenbezeichnung weg.

Beispiel 3.13. Der K 4 ist isomorph zu dem Graphen

.

Bei kleinen Graphen kann man noch alle möglichen Permutationen der Knoten enummerieren

(aufzählen), um zu entscheiden, ob zwei Graphen isomorph sind. Für den allgemeinen Fall ist jedoch
kein effizienter Algorithmus bekannt (die Anzahl der Permutationen wächst zu stark, um effizient
enummeriert werden zu können, siehe z. B. Satz 2.17). Man vermutet, dass es keinen effizienten

Algorithmus gibt.

Aufgabe 3.14. Zeigen Sie, dass die Isomorphie von Graphen – zwei Graphen stehen in Relation
genau dann, wenn sie isomorph sind – eine Äquivalenzrelation ist.

Lösung siehe Lösung 9.20.

48

Kapitel 3. Graphen

Aufgabe 3.15. Sei V = { 1 , 2 , 3 , 4 , 5 , 6 }. Wir betrachten die Graphen Gi = ( V, Ei) mit E 1 := {(1 , 4) , (1 , 6) , (2 , 6) , (3 , 4) , (3 , 5) , (3 , 6) }

E 2 := {(1 , 2) , (1 , 4) , (2 , 6) , (2 , 5) , (2 , 3) , (3 , 6) }

E 3 := {(1 , 3) , (1 , 4) , (2 , 5) , (3 , 4) , (3 , 5) , (3 , 6) }

E 4 := {(1 , 4) , (1 , 3) , (2 , 6) , (5 , 6) , (3 , 4) , (3 , 5) }.

Zeichnen Sie die Graphen und entscheiden Sie, welche Graphen isomorph sind (mit Begründung).

Lösung siehe Lösung 9.21.

Wir wollen im Folgenden die Anzahl nicht isomorpher Graphen mit n Knoten abschätzen. Sei

also V = { 1 , . . . , n}. Jede Teilmenge von V definiert zunächst einmal einen Graphen. Wie Sie

2
wissen, gibt es 2( n)

2
solche Graphen. Allerdings haben wir hierunter isomorphe Graphen. Z. B. gibt
es drei isomorphe Graphen auf { 1 , 2 , 3 } mit einer Kante. Isomorphe Graphen werden aber durch
eine Permutation der Knoten ineinander überführt. Also haben wir von jedem Graphen höchstens
n! isomorphe Kopien gezählt. Einige Graphen (wie den Graphen ohne Kanten) haben wir zwar nur
einmal gezählt, aber dennoch bewiesen: Es gibt mindestens

2( n)

2
n!

paarweise nicht isomorphe Graphen mit n Knoten. Wir schätzen die Größenordnung dieser Zahl ab.

Dafür genügt die grobe Schranke n! ≤ nn . Diese impliziert

2( n)

2
n
log

−

−

2

=
log
log
n!

2

2( n!) ≥ n( n − 1)

2

2( nn)

n 2

=

− n − n log

2

2

2( n)

n 2

=

1 − 1 − 2 log2( n) .

2
n
n

Der letzte Ausdruck verhält sich für große n etwa wie n 2 , insbesondere gibt es für jedes ε > 0 ein

2
n 0 ∈ N mit:

∀
n 2
n 2
n ≥ n 0 :

1 − 1 − 2 log2( n)

≥ (1 − ε) .

2
n
n

2
n 2

Die Anzahl paarweise nicht isomorpher Graphen ist somit in unserer Terminologie Ω (2 (1 −ε)

2

)

für jedes ε > 0 . Damit haben wir für wachsendes n deutlich mehr Graphen mit n Knoten als

Teilmengen einer n -elementigen Menge.

In unseren Graphen gibt es zwischen zwei Knoten stets höchstens eine Kante und jede Kante hat
genau zwei Endknoten. Manchmal kann es notwendig und sinnvoll sein, mehrere Kanten zwischen
den gleichen Endknoten zuzulassen. Wir nennen solche Kanten parallel. Auch Schleifen, das sind

Kanten, bei denen die Endknoten übereinstimmen, können auftreten. Graphen, bei denen parallele

Kanten und Schleifen erlaubt sind, heißen Multigraphen.

3.3. Teilgraphen

49

Abb. 3.2 Ein Graph und ein Multigraph mit 3 parallelen Kanten und Schleifen

Bemerkung 3.16. In manchen Lehrbüchern sind Schleifen und Parallelen schon bei Graphen erlaubt.

Das hat einige Vorteile. Allerdings ist eine saubere Definition solcher Multigraphen etwas umständ-
lich, wie das Folgende belegt.

Definition 3.6. Ein Multigraph G = ( V, E, ad) ist ein Tripel bestehend aus einer endlichen Menge V

(von Knoten), einer endlichen Menge E (von Kanten) und einer Adjazenzfunktion ad : E → V ∪V ,

2
die jeder Kante einen oder zwei Endknoten zuordnet. Haben e, e ∈ E die gleichen Endknoten, so
heißen sie parallel. Eine Kante mit nur einem Endknoten heißt Schleife.

Beispiel 3.17. Als Multigraph müssten wir den Graphen G 1 aus Aufgabe 3.15 als Tripel

( V, E, ad) kodieren mit V = { 1 , 2 , 3 , 4 , 5 , 6 }, E = {A, B,C, D, E, F} und ad( A) = { 1 , 4 }, ad( B) =

{ 1 , 6 },ad( C) = { 2 , 6 },ad( D) = { 3 , 4 },ad( E) = { 3 , 5 } sowie ad( F) = { 3 , 6 }.

Aufgabe 3.18. Geben Sie einen Multigraphen an,
der sich wie nebenstehend zeichnen lässt.

Lösung siehe Lösung 9.22.

3.3 Teilgraphen

Wir wollen zunächst eine Enthaltenseinbeziehung für Graphen definieren.

Definition 3.7. Seien G = ( V, E) und H = ( W, F) zwei Graphen. Dann heißt H ein Teilgraph von

G , wenn W ⊆ V und F ⊆ E . Darüber hinaus sagen wir H ist ein induzierter Teilgraph, wenn

F = E ∩ W .

2

Ein induzierter Teilgraph besteht also aus einer Teilmenge der Knoten und allen Kanten, die im

Ausgangsgraphen zwischen diesen Knoten existieren.

Beispiel 3.19. Der P 4 ist (nicht induzier-
ter) Teilgraph des C 4 und ein induzierter

Teilgraph des C 5 . In der nebenstehenden

Graphik induzieren im C 5 die schwarzen

Knoten den P 4 .

C

C

4

5

50

Kapitel 3. Graphen

Ein Teilgraph, der isomorph zu einem Weg Pt ist, heißt Weg oder Pfad im Graphen. Einen Weg
kann man als alternierende Sequenz von paarweise verschiedenen Knoten und Kanten

( v 0 , e 1 , v 1 , e 2 , . . . , ek, vk)

mit ei = ( vi− 1 , vi) darstellen. Oft notieren wir Wege auch nur als Knotensequenz ( v 0 , v 1 ,...,vk) oder

Kantensequenz ( e 1 , e 2 , . . . , ek). Wir nennen einen solchen Weg auch einen v 0 -vk -Weg der Länge k .

Analog nennen wir einen Teilgraphen, der isomorph zu einem Kreis ist, einen Kreis in G . Auch

Kreise kann man als Knoten-Kantenfolge oder auch als Knotenfolge bzw. Kantenfolge notieren.

Diese müssen jeweils (bis auf Anfangs- und Endknoten) paarweise verschieden sein. Die Anzahl der

Kanten oder Knoten eines Kreises heißt die Länge des Kreises.

3.4 Zusammenhang

Definition 3.8. Ein Graph G = ( V, E) heißt zusammenhängend, wenn es zu je zwei Knoten u, v
einen u - v -Weg gibt. Ein mengentheoretisch maximaler zusammenhängender Teilgraph eines Gra-
phen heißt Komponente oder Zusammenhangskomponente.

Beispiel 3.20. Den Zusammenhang sieht man der Zeichnung nicht immer sofort an. Der Davidsstern
in Abbildung 3.3 ist unzusammenhängend und hat zwei Komponenten.

Abb. 3.3 Das Pentagramm ist zusammenhängend, der Davidsstern nicht.

Der Nachteil bei der Definition des Zusammenhangs über Wege ist, dass wir stets darauf achten
müssen, dass diese Wege keine Wiederholungen von Knoten oder Kanten haben.

Definition 3.9. Eine alternierende Folge von Knoten und Kanten

( v 0 , e 1 , v 1 , e 2 , . . . , ek, vk = vt) mit ei = ( vi− 1 ,vi) heißt Spaziergang der Länge k von v 0 nach vt .

Proposition 3.3. Sei G = ( V, E) ein Graph und v 0 , vt ∈ V . Es gibt genau dann einen v 0 -vt -Weg,
wenn es einen Spaziergang von v 0 nach vt gibt.

Beweis. Jeder Weg ist auch ein Spaziergang. Gibt es nun einen Spaziergang

( v 0 , e 1 , v 1 , e 2 , . . . , ek, vt) von v 0 nach vt , so gibt es auch einen darunter, der die kürzes-te Länge hat. Dieser muss ein Weg sein. Denn angenommen vi = v j mit i < j , so wäre

( v 0 , e 1 , v 1 , . . . , ei, vi, e j+1 , v j+1 , . . . , ek, vt) ein kürzerer Spaziergang von v 0 nach vt im Widerspruch zur Annahme.

2

3.5. Kodierung von Graphen

51

Auf Grund dieser Tatsache identifizieren wir die Knoten der Komponenten als Äquivalenzklassen
der Äquivalenzrelation (!)

aRb ⇔ es gibt einen Spaziergang von a nach b.

Aufgabe 3.21. Zeigen Sie, dass die soeben angegebene Relation eine Äquivalenzrelation ist.

Lösung siehe Lösung 9.23.

Die Zusammenhangskomponenten bestimmt man algorithmisch mit Suchverfahren, z. B. mit

Breitensuche oder Tiefensuche, die wir später kennenlernen werden.

In einem zusammenhängenden Graphen können wir endliche Distanzen definieren.

Definition 3.10. Sei G = ( V, E) ein zusammenhängender Graph und u, v ∈ V . Die Länge eines
kürzesten u - v -Weges nennen wir den Abstand dist G( u, v) von u und v in G.

Die Abstandsfunktion oder Metrik ist also eine Abbildung dist G : V ×V → N.

Proposition 3.4. Die Metrik eines Graphen erfüllt

Nichtnegativität und Definitheit:

dist G( u, v) ≥ 0 und dist G( u, v) = 0 ⇔ u = v.

Symmetrie:

Für alle u, v ∈ V : dist G( u, v) = dist G( v, u) .

Dreiecksungleichung:

Für alle u, v, w ∈ V : dist G( u, w) ≤ dist G( u, v) + dist G( v, w) .

Beweis. Die ersten beiden Eigenschaften sind offensichtlich erfüllt. Im dritten Fall erhält man durch

Verkettung eines kürzesten u - v -Weges mit einem kürzesten v - w -Weg einen Spaziergang von u
nach w der Länge dist G( u, v) + dist G( v, w). Ein kürzester Weg von u nach w kann sicherlich nicht
länger sein.

2

Bemerkung 3.22. Die Eigenschaften in Proposition 3.4 bilden in der Topologie die Axiome einer

Metrik. Diese Axiome sind z. B. auch von der euklidischen Abstandsfunktion im anschaulichen

Raum erfüllt.

3.5 Kodierung von Graphen

Graphen spielen in der Datenverarbeitung eine große Rolle. Üblicherweise werden sie als Adjazenz-
listen abgespeichert. Darauf werden wir im nächsten Abschnitt etwas näher eingehen. Die folgenden

Darstellungen mit Matrizen sind eher bei strukturellen Untersuchungen sinnvoll.

Definition 3.11. Sei G = ( V, E) ein Graph mit Knotenmenge V = {v 1 , . . . , vn} und Kantenmenge

E = {e 1 , . . . , em}. Die Adjazenzmatrix AG = ( ai j) ist dann eine n × n-Matrix definiert vermöge

1 wenn ( vi,vj) ∈E,
ai j =

0 sonst.

Die Knoten-Kanten Inzidenzmatrix BG ist eine n × m-Matrix BG = ( bi j) definiert vermöge

1 wenn vi Endknoten von ej ist,
bi j =

0 sonst.

52

Kapitel 3. Graphen

Beispiel 3.23. Wir betrachten den Graphen aus Beispiel 3.11.

7

6

3

1

2

11

12

4

5

10

8

9

13

14

Dieser hat die Adjazenzmatrix

1

2

3

4

5

6

7

8

9

10

11

12

13

14

⎛

⎞

1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

⎜

⎟

2 ⎜ 1

0

0

0

1

1

0

0

0

0

0

0

0

0

⎜

⎟

⎟

3 ⎜

⎜ 1 0 0 1 0 0 1 0 0 0 0 0 0 0 ⎟

⎜

⎟

⎟

4 ⎜ 0 0 1 0 1 0 0 0 0

0

0

0

0

0

⎜

⎟

⎟

5 ⎜

⎜ 0 1 0 1 0 0 0 0 0 0 1 0 0 0 ⎟

⎟

⎟

6 ⎜

⎜ 0 1 0 0 0 0 1 0 0 0 0 0 0 0

⎜

⎟

⎟

7 ⎜ 0 0 1 0 0 1 0 0 0

0

0

0

0

0 ⎟

AG =

⎜

⎟

8 ⎜

⎜ 0 0 0 0 0 0 0 0 1 1 0 0 0 0 ⎟

⎜

⎟

⎟

9 ⎜ 0 0 0 0 0 0 0 1 0 0

0

1

0

1

⎜

⎟

⎟

10 ⎜

⎜ 0 0 0 0 0 0 0 1 0 0 1 0 1 0 ⎟

⎟

⎟

11 ⎜

⎜ 0 0 0 0 1 0 0 0 0 1 0 1 0 0

⎜

⎟

⎟

12 ⎜ 0 0 0 0 0 0 0 0 1

0

1

0

0

0

⎜

⎟

⎟

13 ⎝ 0

0

0

0

0

0

0

0

0

1

0

0

0

1 ⎠

14

0

0

0

0

0

0

0

0

1

0

0

0

1

0
und die Knoten-Kanten-Inzidenzmatrix (wenn wir uns bei der Nummerierung der Kanten an der

Reihenfolge in der Liste in Beispiel 3.11 halten)

3.5. Kodierung von Graphen

53

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

⎛

⎞

1

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

⎜

⎟

2 ⎜ 1

0

1

0

0

0

0

1

0

0

0

0

0

0

0

0

0

⎜

⎟

⎟

3 ⎜

⎜ 0 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 ⎟

⎜

⎟

⎟

4 ⎜ 0 0 0 0 0 1 1 0 0 0

0

0

0

0

0

0

0

⎜

⎟

⎟

5 ⎜

⎜ 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 ⎟

⎟

⎟

6 ⎜

⎜ 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0

⎜

⎟

⎟

7 ⎜ 0 0 0 1 1 0 0 0 0

0

0

0

0

0

0

0

0 ⎟

BG =

⎜

⎟ .

8 ⎜

⎜ 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 ⎟

⎜

⎟

⎟

9 ⎜ 0 0 0 0 0 0 0 0 0 0

1

1

0

0

0

1

0

⎜

⎟

⎟

10 ⎜

⎜ 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 ⎟

⎟

⎟

11 ⎜

⎜ 0 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0

⎜

⎟

⎟

12 ⎜ 0 0 0 0 0 0 0 0 0

1

1

0

0

0

0

0

0

⎜

⎟

⎟

13 ⎝ 0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0 ⎠

14

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

Man sieht schon an diesem Beispiel, dass die Matrizenschreibweisen von eher theoretischem

Interesse sind, als dass sie eine sinnvolle Kodierung für die Datenverarbeitung wären. Insbesondere
bei der Inzidenzmatrix würde man fast ausschließlich Nullen abspeichern.

Hier aber ein Beispiel für eine Anwendung:

Proposition 3.5. Sei G = ( V, E) ein Graph mit Knotenmenge V = {v 1 , . . . , vn} und sei A = AG
seine Adjazenzmatrix. Für k ∈ N bezeichnen wir mit Ak die k -te Potenz der Adjazenzmatrix (bzgl.

der Matrizenmultiplikation aus der linearen Algebra, d. h. die Einträge von B = A 2 sind bi j =

∑ n a
den Eintrag der Matrix Ak an der Stelle ( i, j) . Dann ist ak die Anzahl
k=1 ikak j ). Bezeichne akij
i, j
der Spaziergänge von vi nach v j der Länge k .

Beweis. Wir führen Induktion über k ≥ 1. Für k = 1 ist die Aussage sicherlich richtig, denn
zwischen zwei Knoten gibt es entweder einen Weg der Länge 1, nämlich wenn sie adjazent sind,
oder es gibt keinen. Sei nun k > 1 . Jeder Spaziergang von vi nach v j , der genau k Kanten benutzt,
besteht aus einer Kante ( vi, vl) und einem Spaziergang der Länge k − 1 von vl nach v j . Nach

Induktionsvoraussetzung ist die Anzahl solcher Spaziergänge aber ak− 1 . Somit erhalten wir für die
l j

Anzahl der Spaziergänge von vi nach v j , die genau k Kanten benutzen, den Ausdruck
n

∑ ak− 1 = ∑ a

= ak
l j
il ak− 1
l j
i j .

( vi,vl) ∈E
i=1

2

Als direkte Folgerung erhalten wir

Korollar 3.24. Der Abstand zweier Knoten vi, v j ist
dist G( vi, v j) = min {k ∈ N | ak
i j = 0 }.

2

54

Kapitel 3. Graphen

Wir haben in den letzten beiden Resultaten stets k ≥ 1 vorausgesetzt. Für k ∈ N ist aber auch
k = 0 zugelassen. Üblicherweise definiert man A 0 als Einheitsmatrix. Damit gilt das Resultat auch
für k = 0 , denn genau für vi = v j gibt es einen vi - v j -Weg der Länge 0.

In Computeranwendungen wird man in der Regel, wie gesagt, Adjazenzlisten verwenden. Eine
mögliche Kodierung ist eine (doppelt) verkettete Liste von Knoten. Jeder Knoten wiederum hat einen

Zeiger auf den Anfang seiner Adjazenzliste, die eine (doppelt) verkettete Liste der Nachbarn ist.

Beispiel 3.25. Wir fahren mit unserem Beispielgraphen aus Beispiel 3.11 fort.

7

6

3

1

2

11

12

4

5

10

8

9

13

14

Zunächst haben wir die Knotenliste

(1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14) und für jeden Knoten eine Adjazenzliste wie in Tabelle 3.1.

Knoten

1 2 3 4 5 6 7 8 9 10 11 12 13 14

Adjazenz- 2 1 1 3 2 2 3 9 8 8 5 9 10 9
liste

3 5 4 5 4 7 6 10 12 11 10 11 14 13

6 7

11

14 13 12

Tabelle 3.1 Eine Adjazenzliste

Dadurch ist sichergestellt, dass man an einem Knoten in konstanter Zeit eine nächste Kante erhält.

Beachte: Ein Knoten sieht nur den Anfang seiner Adjazenzliste.

Bemerkung 3.26. Wenn man Graphen kodieren will, bei denen Kanten und/oder Knoten noch zusätz-
liche Daten tragen, wie etwa Gewichte, Kapazitäten oder Farben, so ersetzt man in der Adjazenzliste
die Nachbarn jeweils durch Zeiger auf Datenpakete, die die relevanten Informationen tragen. Zum

Beispiel würde zu dem Datenpaket einer Kante je ein Zeiger auf Vorgänger und Nachfolger in der

Adjazenzliste, ein Zeiger auf den anderen Endknoten der Kante sowie Daten zu den Zusatzinforma-
tionen gehören.

Hat eine Kante keinen Vorgänger bzw. Nachfolger, so setzen wir die zugehörigen Zeiger auf

None, damit wir wissen, dass hier die Liste beginnt bzw. endet.

An dieser Stelle wollen wir nun auch noch endlich aufklären, was wir im mathematisch exakten

Sinne meinen, wenn wir von einem effizienten Algorithmus sprechen.

3.6. Effiziente Algorithmen

55

3.6 Effiziente Algorithmen

Sie haben im Verlauf dieser Vorlesung bereits Algorithmen kennengelernt, ohne dass wir explizit
gesagt haben, was wir unter einem Algorithmus verstehen. Wir werden auch weiterhin von einem
intuitiven Algorithmenbegriff ausgehen, halten aber an dieser Stelle fest:

Ein Algorithmus für ein Problem“ ist eine Folge von wohldefinierten Regeln bzw. Befehlen, die

”

in einer endlichen Anzahl von Elementarschritten aus jeder spezifischen Eingabe eine spezifische

Ausgabe erzeugt. Wir forden also:

a) Ein Algorithmus muss sich in einem Text endlicher Länge beschreiben lassen.

b) Die Abfolge der Schritte ist in jeder Berechnung eindeutig.

c) Jeder Elementarschritt lässt sich mechanisch und effizient ausführen.

d) Der Algorithmus stoppt bei jeder Eingabe nach endlich vielen Schritten.

Ein wichtiges Qualitätskriterium eines Algorithmus ist die jeweilige Anzahl der bis zur Termi-
nierung des Algorithmus auszuführenden Elementarschritte. Was ein Elementarschritt ist, hängt vom
jeweiligen Maschinenmodell ab, wir können hier nicht auf Details eingehen. Es soll genügen, wenn

Sie sich unter einem Elementarschritt etwa einen Maschinenbefehl vorstellen. Die Anzahl der aus-
geführten Elementarschritte wird dann als Laufzeit des Algorithmus bezeichnet. Werden die In-
stanzen größer, so wird man dem Algorithmus auch eine längere Laufzeit zugestehen. Deswegen
betrachten wir die Laufzeit eines Algorithmus in Abhängigkeit der Kodierungslänge der Eingabe-
daten. Dabei gehen wir davon aus, dass die Daten in einem sinnvollen Format gespeichert sind. Im

Falle einer ganzen Zahl z wählt man als Kodierungslänge üblicherweise 1 + log |

2 z| . Damit kann
man das Vorzeichen und den Betrag in der Binärdarstellung von z speichern. Bei Graphen nimmt
man als Kodierungslänge üblicherweise die Anzahl der Knoten und Kanten.

Ist M ein Algorithmus und w die Eingabe, so bezeichnen wir mit timeM( w) die Zahl der

Elementarschritte, die M bei Eingabe von w bis zur Terminierung benötigt.

Bezeichnet w die Kodierungslänge von w, so nennen wir
tM( n) = max {timeM( w) | w = n }

die Komplexität oder auch Worst-Case-Komplexität des Algorithmus.

Den genauen Funktionswert tM( n) für jedes n zu bestimmen, wird in den seltensten Fällen
möglich sein. Die exakten Zahlen sind auch nicht so wesentlich. Interessanter ist das asymptotische

Verhalten. Dafür haben wir in Kapitel 2.4 die Big-Oh“-Notation kennengelernt.

”

Ist nun tM = O( n), so spricht man von Linearzeit, wobei wir mit n die Folge der natürlichen

Zahlen selber bezeichnen. Ist tM( n) = O( nk) für ein k ∈ N, so ist die Laufzeit durch ein Polynom
in der Kodierungslänge beschränkt. Man spricht von Polynomialzeit, und der Algorithmus heißt
effizient.

In der Komplexitätstheorie werden algorithmische Probleme hinsichtlich ihrer Zeitkomplexität
klassifiziert. Dabei werden sogenannte Komplexitätsklassen eingeführt.

P ist die Klasse der auf deterministischen Turingmaschinen mit Eingabelänge n in Polynomialzeit

O( nk) lösbaren Probleme. Dabei ist k ∈ N problemabhängiger Exponent und deterministische

Maschinen sind solche, die aus einer gegebenen Situation durch Ausführung eines Maschinenbefehls
stets in höchstens eine Nachfolgesituation übergehen können.

56

Kapitel 3. Graphen

Im Gegensatz dazu nennt man Maschinen, bei denen es mehr als eine mögliche Nachfolgesituati-
on geben kann, nichtdeterministische Maschinen. Dies ist ein theoretisch nützliches Konzept zur Be-
schreibung solcher Probleme, die zu ihrer Lösung einen vollständigen Binärbaum von polynomialer

Tiefe zu fordern scheinen. Für reale Maschinen ist Determinismus selbstverständlich wünschens-
wert. NP ist die Klasse der auf nichtdeterministischen Turingmaschinen mit Eingabelänge n in

Polynomialzeit O( nk) lösbaren Probleme. Wir wollen hier nicht näher darauf eingehen, was in die-
sem Falle Lösbarkeit genau heißt. Im Wesentlichen handelt es sich aber bei NP um die Klasse aller

Probleme, bei denen man eine gegebene Lösung effizient verifizieren kann. Ein klassisches Beispiel
ist das Problem des Handlungsreisenden. Dabei ist eine Rundtour nach oben beschränkter Länge
durch eine Menge von n Städten gesucht. Ist eine solche Rundtour gegeben, so kann man deren

Länge durch Addition von n Zahlen (also in Linearzeit) nachrechnen.

Es sei hier noch erwähnt, dass offenbar P ⊆NP gilt. Die echte Inklusion ist ein offenes Problem

– das sogenannte P-NP-Problem (ein zentrales Problem der Komplexitätstheorie). Allgemein wird
angenommen, dass P =NP ist. Man kann in NP eine Klasse schwerster“ Probleme identifizieren,

”

die so genannten NP -vollständigen Probleme. Ist P =NP, so kann es für keines dieser Probleme
einen Algorithmus mit polynomialer Laufzeit geben. Das Problem des Handlungsreisenden ist ein
prominenter Vertreter dieser Klasse.

3.7 Breitensuche

Wir wollen am Beispiel der Breitensuche (BFS, von engl. Breadth-First-Search) nun studieren, wie
man die Listenstruktur aus 3.5 in einem Algorithmus verwendet.

Als Eingangsdaten bekommen wir einen Graphen G = ( V, E) und einen Startknoten r ∈ V .

Aufgabenstellung ist es zu testen, ob alle Knoten von r aus erreichbar sind. Mit anderen Worten: Wir
wollen die Zusammenhangskomponente bestimmen, zu der r gehört. Zunächst betrachten wir dazu
alle Nachbarn von v=r in Neighborhood(v), dann die Nachbarn der Nachbarn, die Nachbarn
der Nachbarn der Nachbarn, usw. Damit wir dabei aber keine Endlosschleife produzieren, sollten
wir keine Knoten doppelt untersuchen. Ein bearbeiteter Knoten sollte dafür markiert werden. Dafür
merken wir uns für jeden neu entdeckten Knoten w den Vorgängerknoten pred[w], von dem aus
wir w entdeckt haben. In einem Initialisierungsschritt setzen wir vor dem Algorithmus alle Vorgänger
auf None. Also ist ein Knoten w genau dann noch unentdeckt, wenn pred[w]==None. Beachte,
einfaches Gleichheitszeichen heißt Zuweisung, doppeltes Gleichheitszeichen heißt Vergleich.

Zur Organisation der Arbeit an den Knoten stellen wir diese in eine Warteschlange Q. Als
nächster bedient wird, wer als Q.Top() vorne in der Schlange steht, wobei diese Methode das
erste Element aus der Schlange entfernt, und neu zu bearbeitende Knoten werden mit Q.Append()

hinten angestellt.

Also iterieren wir nun wie folgt:

• Wir gehen davon aus, dass pred komplett mit None initialisiert ist. Der Wurzelknoten r wird
keinen Vorgänger erhalten. Um ihn zu markieren, müssen wir aber pred setzen. Deswegen setzen
wir pred[r]=r und initialisieren eine neue Komponente mit component[r]=r, d. h. die

Komponente erbt ihren Namen vom Wurzelknoten. Wir beenden die Initialisierung damit, dass
wir den Wurzelknoten mit Q.Append(r) in die bisher leere Warteschlange einstellen.

3.7. Breitensuche

57

• Solange die Warteschlange nicht leer ist, nehmen wir den Kopf v=Q.Top() der Schlange und
markieren seine Nachbarn w in Neighborhood(v), die weder abgearbeitet sind noch in
der Schlange stehen, bei denen also noch pred[w]==None gilt, als zur gleichen Komponen-
te component[v] wie v gehörend und stellen diese Nachbarn ans Ende der Schlange mit

Q.Append(w).

Wir erhalten folgenden Code
pred[r] = r
component[r] = r

Q.Append(r)

while Q.IsNotEmpty():

v = Q.Top()

for w in Neighborhood(v):

if pred[w] == None:

pred[w] = v
component[w] = component[v]

Q.Append(w)

Wenn wir nun alle Komponenten berechnen wollen, so müssen wir, wenn wir nicht mehr wei-
terkommen, noch überprüfen, ob es noch einen unbearbeiteten Knoten gibt. Dies machen wir am
einfachsten, indem wir um die ganze Prozedur eine Schleife legen, die für jeden Knoten überprüft,
ob er bereits angefasst wurde und andernfalls eine Suche mit diesem Knoten als Wurzel startet.

Insgesamt erhalten wir also folgende Prozedur:

for v in Vertices:

if pred[v] == None:

pred[v] = v
component[v] = v

Q.Append(v)

while Q.IsNotEmpty():

v = Q.Top()

for w in Neighborhood(v):

if pred[w] == None:

pred[w] = v
component[w] = component[v]

Q.Append(w)

Der durch diese Vorgängerrelation definierte Graph ist ein Wald. Wir werden im nächsten Kapitel
lernen, was das heißt. Dann werden wir auch nachweisen, dass der Algorithmus tatsächlich die

Zusammenhangskomponenten berechnet. Die einzelnen Komponenten des so berechneten Waldes
heißen Breitensuchbaum oder BFS-tree.

Wir wollen nun den Rechenaufwand zur Bestimmung der Komponenten abschätzen. Dafür halten
wir zunächst fest:

• Aufgrund der gewählten Datenstrukturen können wir jede einzelne Zeile des Algorithmus in
konstanter Zeit bearbeiten. Das heißt, wir müssen nicht erst lange Listen durchsuchen oder

58

Kapitel 3. Graphen
so etwas, sondern finden direkt den Anfang oder das Ende der Schlange, sowie den nächsten

Nachbarn in unserer Liste.

• Die äußere for-Schleife betreten wir |V|-mal, müssen bis zu |V|-mal die while-Schleife ausführen
und darin bis zu |V |-mal Nachbarn abarbeiten.

Fassen wir dies zusammen, so kommen wir zu einer Abschätzung von O( |V | 3) für die Laufzeit.

Wie wir sehen werden, ist diese Abschätzung extrem schlecht und ungeschickt. Günstiger ist es,
wenn wir zunächst einmal festhalten, dass

• der erste if-Block für jeden Knoten genau einmal ausgeführt wird.

Ein Knoten wird nämlich nur dann in die Schlange gestellt, wenn er noch keinen Vorgänger hatte.

Hat er einmal einen Vorgänger, so verliert er ihn auch nicht mehr. Also kommt jeder Knoten genau
einmal in die Schlange. Somit wird für jeden Knoten genau einer der beiden if-Blocks genau einmal
ausgeführt.

Die Gesamtarbeit im Innern der if-Blocks ist also O( |V |).

Die sonstige Arbeit in der while-Schleife können wir ermitteln, wenn wir zählen, wie oft die
innere for-Schleife betreten wird. Da jeder Knoten genau einmal aus der Schlange genommen wird,
werden in der for-Schleife genau alle Nachbarschaftsbeziehungen für jeden Knoten abgearbeitet.

Jede Kante vermittelt genau zweimal, nämlich für beide Endknoten, eine solche Relation. Also wird
der if-Block in der for-Schleife O( |E|)-mal abgearbeitet. Die über die Arbeit im Innern des if-Blocks
hinausgehende Arbeit in der for-Schleife ist also O( |E|) und wir erhalten als Gesamtlaufzeit:

Satz 3.27. BFS berechnet die Komponenten eines Graphen in O( |V | + |E|) Zeit.

Wir haben zwar die Aussage über die Laufzeit bewiesen, aber, wie bereits oben erwähnt, die

Aussage über die Komponenten noch nicht. Wir vertagen dieses Thema auf das nächste Kapitel,
wenn wir aufspannende Bäume von Graphen behandeln.

Bemerkung 3.28. In den Listenstrukturen kann man auch Multigraphen kodieren, was bei Adjazenz-
matrizen nur bedingt möglich ist.

3.8 Tiefensuche

Anstatt in die Breite zu suchen, können wir auch in die Tiefe suchen. Dieses wollen wir hier
kurz, aber nur für den Fall eines zusammenhängenden Graphen, diskutieren. Eingangsdaten und

Aufgabenstellung sind identisch wie bei der Breitensuche. Darüber hinaus berechnen wir hier auch
noch eine Knotennummerierung, die angibt, in welcher Reihenfolge die Knoten entdeckt wurden.

Dafür versehen wir einen Knoten, sobald wir ihn finden, mit einen label.

In der Breitensuche betrachten wir an einem Knoten zunächst alle Nachbarn, bevor wir die

Nachbarn der Nachbarn untersuchen. In der Tiefensuche (DFS, von engl. Depth-First-Search) gehen
wir, sobald wir einen Nachbarn gefunden haben, gleich zu dessen Nachbarn weiter.

Dies lässt sich natürlich nur einrichten, wenn der aktuelle Knoten noch einen Nachbarn hat, der
noch nicht entdeckt worden ist. Andernfalls müssen wir eventuell einen Schritt zurück gehen. Wenn
wir den ganzen Vorgang rekursiv organisieren, geht das fast von selbst:

3.8. Tiefensuche

59

An jedem gefundenen Knoten v setzen wir zunächst ein label. Die nächste freie Nummer für
ein label merken wir uns in der globalen Variablen step. Im Folgenden untersuchen wir alle

Nachbarn w in Neighborhood(v), ob sie bereits ein label tragen. Ist beim Knoten w noch
kein label gesetzt, so setzen wir seinen Vorgänger und starten ausgehend von diesem Knoten

(rekursiv) eine Tiefensuche, die aber die gesetzten Labels berücksichtigt. Dadurch wird die Unter-
suchung der Nachbarn von v unterbrochen, bis die Tiefensuche ausgehend von w abgeschlossen ist.

Wir definieren also eine Prozedur DFS(v), die wir rekursiv aufrufen (DFS wie Depth-First-Search).

Damit erhalten wir folgenden Code:

def DFS(v):

global step
label[v] = step
step = step + 1
for w in Neighborhood(v):

if label[w]==None:

pred[w]=v

DFS(w)

return
step=1

DFS(r)

Wiederum machen wir uns um die Korrektheit noch keine Gedanken, analysieren aber die Lauf-
zeit. Zunächst halten wir fest, dass die Prozedur rekursiv an jedem Knoten genau einmal aufgerufen
wird. Die for-Schleife wird für jede Kante genau zweimal betreten, also der if-Block für jede Kante
höchstens zweimal ausgeführt. Die Gesamtarbeit ist also O( |E| + |V |).

Satz 3.29. Die Prozedur DFS terminiert in O( |V | + |E|) Zeit.

Beispiel 3.30. Der Einfachheit halber betrachten wir als Graphen G = ( V, E) einen Baum und geben
nur die unterschiedliche Reihenfolge an, in der die Knoten entdeckt werden. Unsere Wurzel ist

1

1

2

3

4

2

6

8

5

6

7

8

9 10

11

3

4

5

7

9 10 11

Abb. 3.4 Ein Breiten- und ein Tiefensuchbaum
jeweils der obere Knoten mit der Nummer 1. Wir gehen davon aus, dass in den Adjazenzlisten
jeweils zunächst der höhere Nachbar und dann die darunter liegenden Nachbarn von links nach
rechts auftreten. Die Nummerierung beim Breitensuchbaum ist hoffentlich selbsterklärend.

Bei dem Folgenden benutzen wir für die Erläuterung die Nummerierung links, also so wie sie in
der Breitensuche gefunden wurde.

60

Kapitel 3. Graphen

Bei der Tiefensuche finden wir zunächst ausgehend vom Knoten 1 die 2, von der aus wir
eine Tiefensuche starten. Von 2 ausgehend finden wir zunächst die 1, aber diese hat bereits einen

Vorgänger, als nächstes finden wir die 5, von der aus wir eine Tiefensuche starten. Der einzige

Nachbar der 5 ist die 2 und wir beenden die Tiefensuche in der 5. Zurück in der Tiefensuche der 2
finden wir die 6, deren Tiefensuche wir wieder schnell beenden, ebenso wie die, die wir nun in der

7 anwerfen. Damit ist die Tiefensuche in der 2 beendet, wir kehren zurück in die Tiefensuche in der

1 und finden als nächstes die 3 usf.

Aufgabe 3.31. Bestimmen Sie für den Petersengraph in Abbildung 3.5 den Breiten- und den Tiefen-
suchbaum. Gehen Sie dabei davon aus, dass die Adjazenzlisten aufsteigend sortiert sind.

Lösung siehe Lösung 9.24.

1

2

6

7

10

8

5

3

9

4

Abb. 3.5 Der Petersengraph

Aufgabe 3.32. Ein Stack oder auch Keller oder Stapel ist eine Liste, bei der man sowohl neue

Elemente nur vorne anfügen darf als auch nur vorne Elemente entnehmen darf. Schreiben Sie eine
nicht-rekursive Prozedur, die in Linearzeit denjenigen Suchbaum berechnet, den die Tiefensuche
berechnen würde, wenn man an jedem Knoten die Reihenfolge in der Adjazenzliste invertieren

(umkehren) würde. Die Prozedur ist derjenigen recht ähnlich, die Sie erhalten, wenn Sie in der

Tiefensuche die Queue durch einen Stack ersetzen.

Lösung siehe Lösung 9.25.

Aufgabe 3.33. Sei G = ( V, E) ein Graph, r ∈ V und T ein Tiefensuchbaum mit Wurzel r . Zeigen

Sie: Ist e = ( u, v) mit label[u] < label[v], so ist u ein Vorfahr von v, d. h. es gibt v =
v 0 , v 1 , . . . , vk =u mit pred[ vi ]= vi+1 für i = 0 , . . . , k − 1.

Lösung siehe Lösung 9.26.

3.9 Valenzsequenzen

Sei G = ( V, E) ein Graph (oder ein Multigraph) und v ∈ V . Der Knotengrad oder die Valenz deg G( v)

von v ist dann die Anzahl Kanten, deren Endknoten v ist (oder kurz deg( v) , wenn klar ist, welcher

Graph gemeint ist). In Multigraphen werden Schleifen dabei doppelt gezählt.

3.9. Valenzsequenzen

61

Ist v 1 , . . . , vn (irgend-)eine lineare Anordnung der Knoten, so nennen wir

(deg( v 1) , deg( v 2) , . . . , deg( vn))

die Gradsequenz oder Valenzsequenz des Graphen. Wir sehen zwei Valenzsequenzen als gleich an,
wenn sie durch Umordnen auseinander hervorgehen. Deswegen gehen wir im Folgenden davon aus,
dass die Zahlen der Größe nach, und zwar nicht aufsteigend sortiert sind. Der Graph aus Beispiel 3.11
hat dann die Valenzsequenz

(3 , 3 , 3 , 3 , 3 , 3 , 2 , 2 , 2 , 2 , 2 , 2 , 2 , 2) .

Kann man einem Zahlentupel ansehen, ob es eine Valenzsequenz eines Graphen ist? Zunächst
einmal können wir Folgen wie (3 , 3 , 3 , 2 , 2 , 2) ausschließen:

Proposition 3.6 (Handshake-Lemma). In jedem Graphen G = ( V, E) ist die Summe der Knoten-
grade gerade, genauer gilt

∑ deg( v) = 2 |E|.

(3.1)

v∈V

Die Formel und damit die obige Behauptung gilt auch in Multigraphen.

Beweis. Links wird jede Kante e = ( u, v) für jeden Endknoten genau einmal (bzw. für Schleifen
zweimal) gezählt, also insgesamt doppelt gezählt, nämlich in deg( u) und in deg( v) .

2

Als direkte Konsequenz erhalten wir:

Korollar 3.34. In jedem Graphen oder Multigraphen ist die Anzahl der Knoten mit ungeradem

Knotengrad gerade.

Beweis. Nach dem Handshake-Lemma ist ∑ v∈V deg( v) = 2 |E|. In der Summe muss also die Anzahl
der ungeraden Summanden und damit die Anzahl der Knoten mit ungeradem Knotengrad gerade
sein.

2

Dies charakterisiert aber Gradfolgen von Graphen noch nicht, denn z. B. ist (4 , 3 , 1 , 1 , 1) keine

Gradfolge, da aus den ersten zwei Knoten noch mindestens jeweils 3 bzw. 2 Kanten in die anderen
drei führen müssten, die aber keine Chance haben, anzukommen. Im Allgemeinen gilt der folgende

Satz:

Satz 3.35 (Erdös und Gallai 1963). Sei d 1 ≥ d 2 ≥ . . . ≥ dn ≥ 0 eine Folge natürlicher Zahlen. Dann
ist ( d 1 , . . . , dn) genau dann die Gradsequenz eines einfachen Graphen, wenn ∑ ni=1 di gerade ist und
i
n

∀i = 1 ,...,n : ∑ dj ≤ i( i− 1)+ ∑ min {i,dj}.

(3.2)

j=1
j= i+1

Beweis. Wir zeigen nur die Notwendigkeit der Bedingung. Die andere Implikation sprengt den Rah-
men dieses Buches und kann in [21, Problem 7.51] nachgeschlagen werden. Dass die Valenzsumme
gerade sein muss, sagt das Handshake Lemma. Ist G ein Graph mit der angegebenen Valenzse-
quenz und ist I = { 1 , . . . , i} die Menge der Knoten mit Knotengraden d 1 , . . . , di , dann kann jeder
der i Knoten in I höchstens alle anderen i − 1 Knoten in I kennen. Also müssen noch mindestens

∑ i d
j=1
j − i( i − 1) Kanten von Knoten in I zu Knoten außerhalb von I f ühren. Jeder Knoten v ∈ V \ I
kann aber höchstens min {i, deg( v) } Knoten in I kennen, da G ein Graph, also einfach ist. Also ist
notwendige Bedingung dafür, dass d 1 ≥ . . . ≥ dn eine Valenzsequenz ist, dass

62

Kapitel 3. Graphen
i
n

∀i ∈ { 1 ,...,n} : ∑ dj −i( i− 1) ≤ ∑ min {i,dj}.

j=1
j= i+1

2

Im Falle von Multigraphen ist die Charakterisierung von Valenzsequenzen viel einfacher:

Aufgabe 3.36. Zeigen Sie: Ein Folge d 1 ≥ d 2 ≥ . . . ≥ dn ≥ 0 natürlicher Zahlen ist genau dann die

Gradfolge eines Multigraphen, wenn ∑ n d
i=1 i gerade ist.

Lösung siehe Lösung 9.27.

Die folgende rekursive Charakterisierung führt auf einen Algorithmus zum Erkennen von Valenz-
sequenzen und zur Konstruktion eines entsprechenden Graphen insofern es sich um eine Valenzse-
quenz handelt. Die Idee ist, dass, wenn es einen Graphen gibt, der die Valenzsequenz d 1 ≥ . . . ≥ dn
hat, es auch einen solchen gibt, bei dem der Knoten mit dem größten Knotengrad, also der Knoten
v 1 , genau die Knoten mit den nächstkleineren Knotengraden, also v 2 , v 3 , . . . , vd 1+1 , kennt. Wenn wir
dann den Knoten mit dem größten Knotengrad entfernen, erhalten wir einen Graphen mit Valenzse-
quenz (noch nicht notwendig monoton fallend) d 2 − 1 , d 3 − 1 , . . . dd 1+1 − 1 ,dd 1+2 ,dd 1+3 ,...,dn .

Satz 3.37. Sei D = ( d 1 , d 2 , . . . , dn) eine Folge natürlicher Zahlen, n > 1 und d 1 ≥ d 2 ≥ . . . , dn ≥ 0 .

Dann ist D genau dann die Valenzsequenz eines einfachen Graphen, wenn d 1 + 1 ≤ n ist und die

Folge D = ( d , d , . . . , d

2

3
n) definiert durch
di− 1 für i=2 ,...,d 1+1
di :=
di
für i = d 1 + 2 , . . . , n
die Valenzsequenz eines einfachen Graphen ist.

Beweis. Ist D die Valenzsequenz eines Graphen G , so fügen wir zu G einen neuen Knoten
hinzu, der genau die Knoten mit Valenz d , . . . , d
kennt und erhalten so einen Graphen G mit

2
d 1+1

Valenzsequenz D . Also ist die Bedingung schon mal hinreichend. Die Notwendigkeit ist geringfügig
schwerer nachzuweisen. Wie eben bereits bemerkt, bedeutet die Aussage gerade

Behauptung: Wenn es einen Graphen mit der Sequenz D gibt, so gibt es auch einen solchen,
bei dem der Knoten v mit der größten Valenz genau zu den deg( v) Knoten mit den nächsthöheren

Valenzen adjazent ist.

Setzen wir also voraus, es gäbe einen Graphen mit Sequenz D . Unter diesen wählen wir nun
einen solchen Graphen G mit Knotenmenge {v 1 , . . . , vn}, bei dem stets deg( vi) = di ist und der
maximale Index j eines zu v 1 benachbarten Knotens minimal ist. Ist j = d 1 + 1, so können wir
v 1 mit allen Kanten entfernen und erhalten einen Graphen mit Valenzsequenz D . Angenommen es
wäre j > d 1 + 1. Dann gibt es ein 1 < i < j , so dass vi den Knoten v 1 nicht kennt. Da di ≥ d j ist
und v j v 1 kennt, vi aber nicht, muss es auch einen Knoten vk geben, den vi kennt, aber v j nicht

(vgl. Abbildung 3.6). Wir entfernen nun aus G die Kanten ( v 1 v j) und ( vivk) und fügen die Kanten

( v 1 vi) und ( v jvk) hinzu und erhalten einen einfachen Graphen ˜

G mit Valenzsequenz D , bei dem
der größte Index eines Knoten, der v 1 kennt, kleiner ist als bei G, im Widerspruch zur Wahl von

G , denn wir hatten G so gewählt, dass der größte Index eines Nachbarn von v 1 möglichst klein ist.

Also muss für G schon j = d 1 + 1 gegolten haben.

2

3.9. Valenzsequenzen

63
k
i
k
i
j
j

1

2

1

2

Abb. 3.6 Zum Beweis von Satz 3.37

Aus diesem Satz erhält man sofort ein Verfahren, das entscheidet, ob eine gegebene Sequenz die

Valenzsequenz eines Graphen ist. Das Verfahren nennen wir Verfahren nach Havel und Hakimi.

Beispiel 3.38. Wir betrachten die Sequenz D = (5 , 5 , 4 , 4 , 3 , 3 , 2 , 2 , 1 , 1) . Durch Anwenden des Satzes erhalten wir die Sequenz D = (4 , 3 , 3 , 2 , 2 , 2 , 2 , 1 , 1) . Ist D die Valenzsequenz eines einfachen Graphen, so muss dies auch für D gelten. Im nächsten Schritt erhalten wir (2 , 2 , 1 , 1 , 2 , 2 , 1 , 1) . Diese Sequenz ist nun nicht mehr sortiert. Zur weiteren Anwendung des Satzes müssen wir sie sortieren.

Dabei merken wir uns die ursprünglichen Knotennummern und erhalten zunächst

3 4 7 8 5 6 9 10

.

2 2 2 2 1 1 1 1

Direkte Anwendung des Satzes auf diese Sequenz liefert die wieder nicht geordnete Se-

4 7 8 5 6 9 10

8 4 7 5 6 9 10
quenz

, die wir umsortieren zu

. Hieraus erhalten wir

1 1 2 1 1 1 1

2 1 1 1 1 1 1

4 7 5 6 9 10

. Letztere Folge können wir in wenigen Schritten auf (0) , den K 1 reduzieren. Als

0 0 1 1 1 1

Graphen konstruieren wir rückwärts

4

4

9

10

9

10

7

5

6

7

8 5

6

2

3

4

3

4

9

10

9

10

7

8 5

6

7

8 5

6

2

1

3

4

9

10

7

8 5

6

.

64

Kapitel 3. Graphen

Wir geben hier noch ein kurzes Pythonprogramm an, das testet, ob ein gegebenes Array, etwa
d=[5,5,4,4,3,3,2,2,1,1] eine Valenzsequenz ist. Bei der Implementierung benutzen wir
die in Python eingebaute Sortiermethode, die mit d.sort() das Array d aufsteigend sortiert, im

Beispiel wäre danach also d=[1,1,2,2,3,3,4,4,5,5]. Mit last=d.pop() entfernen wir
das letzte Element aus der Liste, also in unserer Sequenz das erste Element, da unsere Sortierungs-
funktion die Zahlen aufsteigend sortiert. Im Beweis war das in der ersten Iteration d 1 . Mit dem

Pythonbefehl range(len(d)-1,len(d)-last-1,-1) erzeugen wir in der ersten Iteration
die Liste [ n − 1 , n − 2 , n − 3 , n − 4 , . . . , n − d 1 − 1] und für alle diese Indizes dekrementieren (er-niedrigen) wir den Listeneintrag. Tritt dabei irgendwann ein negativer Listeneintrag auf oder ist der
größte Listeneintrag größer als die Anzahl der verbleibenen Einträge, so war d keine Valenzsequenz.

Ansonsten wird die Liste auf die leere Liste reduziert.

print d,
valseq=1
while len(d) > 0:

d.sort()

last=d.pop()

if last > len(d):

valseq=0
break
for i in range(len(d)-1,len(d)-last-1,-1):

if d[i] > 0:

d[i]=d[i]-1
else:

valseq=0
if valseq==1:

print ‘‘ ist Valenzsequenz’’

else:

print ‘‘ ist keine Valenzsequenz’’

Aufgabe 3.39. Geben Sie bei folgenden Sequenzen an, ob sie Valenzsequenzen einfacher Graphen
sind, und bestimmen Sie gegebenenfalls einen entsprechenden Graphen.

a) (10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 1)

b) (10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 3 , 3 , 2)

c) (10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 3 , 3 , 3) .

Lösung siehe Lösung 9.28.

3.10 Eulertouren

In diesem Abschnitt werden auch Schleifen und Parallelen eine Rolle spielen.

Definition 3.12. Sei G = ( V, E) ein Multigraph ohne isolierte Knoten, d. h. G = K 1 oder deg( v) > 0
für alle v ∈ V und v 0 ∈ V . Ein Spaziergang v 0 e 1 v 1 e 2 . . . emv 0 von v 0 nach v 0 heißt Eulertour, wenn

3.10. Eulertouren

65
er jede Kante genau einmal benutzt. Der Graph G heißt eulersch, wenn er eine Eulertour ausgehend
von einem (und damit von jedem) Knoten v 0 ∈ V hat.

Die in der obigen Definition gegebene Graphenklasse ist nach dem großen Schweizer Mathemati-
ker Leonhard Euler (1707 – 1783) benannt. Mit seiner berühmten Abhandlung Solutio problematis

”

ad geometriam situs pertinentis“ über das Königsberger Brückenproblem aus dem Jahre 1735 wurde
die Graphentheorie geboren“.

”

Abbildung 3.7 zeigt eine Landkarte von Königsberg wie es im 18ten Jahrhundert aussah. Im Fluss

Pregel, der durch Königsberg floss, befinden sich zwei Inseln, die mit den beiden Flussufern und
untereinander durch insgesamt sieben Brücken verbunden sind. Die erste Insel heißt Kneiphof, die
zweite entstand durch Änderung des Flusslaufs, der Pregel teilt sich auf in alter und neuer Pregel. Die
erwähnte Arbeit behandelt das damals in der Königsberger Gesellschaft wohl populäre Problem, ob
jemand seinen Spazierweg so einrichten könne, dass er jede der Brücken genau einmal überschreitet
und zum Ausgangspunkt zurückkehrt.

Abb. 3.7 Über sieben Brücken musst Du gehn

Dieses Problem lässt sich als ein graphentheoretisches Problem auffassen. Wir bezeichnen mit
den Knoten A, B,C, D jeweils die vier getrennten Landgebiete, nämlich die zwei Inseln und die zwei

Ufer. Jede Brücke zwischen zwei Gebieten wird durch eine Kante zwischen den entsprechenden

Knoten repräsentiert und wir erhalten den Multigraphen in Abbildung 3.8.

Das Königsberger Brückenproblem lautet dann mit Definition 3.12:

Ist der Graph in Abbildung Abbildung 3.8 eulersch? Oder mit anderen Worten: Können Sie diesen Graph
in einem Zug, ohne abzusetzen zeichnen, wobei Sie am Ende wieder am Ausgangspunkt ankommen?

Nach einigen vergeblichen Versuchen kommt Ihnen vielleicht die Idee, dass es nicht hilfreich ist,
dass die Valenzen der Knoten alle ungerade sind.

66

Kapitel 3. Graphen

C

A

D

B

Abb. 3.8 Königsberg abstrakt

Tatsächlich lässt sich die Existenz einer Eulertour sehr einfach charakterisieren.

Satz 3.40. Sei G = ( V, E) ein Multigraph. Dann sind paarweise äquivalent:

a) G ist eulersch.

b) G ist zusammenhängend und alle Knoten haben geraden Knotengrad.

c) G ist zusammenhängend und E ist disjunkte Vereinigung von Kreisen.

Beweis.

a) ⇒ b)

Die erste Implikation ist offensichtlich, da eine Eulertour alle Kanten genau einmal
benutzt und geschlossen ist, man also in jeden Knoten genauso oft ein- wie auslaufen muss. Also
muss der Graph zusammenhängend sein, und alle Knoten müssen geraden Knotengrad haben.

b) ⇒ c)

Die zweite Implikation zeigen wir mittels vollständiger Induktion über die Kardinalität
der Kantenmenge. Aus diesem und dem nächsten Induktionsbeweis werden wir im Anschluss
einen Algorithmus extrahieren, der eine Eulertour konstruiert. Sei also G ein zusammenhängen-
der Graph, bei dem alle Knoten einen geraden Knotengrad haben. Ist |E| = 0, so ist G = K 1 und
die leere Menge ist die disjunkte Vereinigung von null Kreisen. Sei also |E| > 0. Wir starten bei
einem beliebigen Knoten v 0 und wählen eine Kante e = ( v 0 , v 1). Ist diese Kante eine Schleife, so
haben wir schon einen Kreis C 1 gefunden. Andernfalls gibt es, da deg( v 1) gerade ist, eine Kante

{v 1 ,v 2 } = e. Wir fahren so fort. Da V endlich ist, muss sich irgenwann ein Knoten w zum ersten

Mal wiederholen. Der Teil des Spaziergangs von w nach w ist dann geschlossen und wiederholt
weder Kanten noch Knoten, bildet also einen Kreis C . Diesen entfernen wir. Jede Zusammen-
hangskomponente des resultierenden Graphen hat nur Knoten mit geradem Knotengrad, ist also
nach Induktionsvoraussetzung disjunkte Vereinigung von Kreisen.

c) ⇒ a)

Sei schließlich G zusammenhängend und E = C 1 ˙ ∪ . . . ˙ ∪Ck disjunkte Vereinigung von

Kreisen. Wir gehen wieder mit Induktion, diesmal über k , vor. Ist k = 0 , so ist nichts zu
zeigen. Andernfalls ist jede Komponente von G \ C 1 eulersch nach Induktionsvoraussetzung.

Seien die Knoten von C 1 = ( v 1 , . . . , vl) durchnummeriert. Dann enthält jede Komponente von

G \ C 1 auf Grund des Zusammenhangs von G einen Knoten von C 1 mit kleinstem Index und
diese Kontaktknoten“ sind paarweise verschieden. Wir durchlaufen nun C

”

1 und, wenn wir an
einen solchen Kontaktknoten kommen, durchlaufen wir die Eulertour seiner Komponente, bevor
wir auf C 1 fortfahren.

2

3.10. Eulertouren

67

Offensichtlich kann man aus diesem Beweis einen Algorithmus ableiten, der sukzessiv Kreise
sucht und diese zu einer Eulertour zusammensetzt. Wenn wir den Ehrgeiz haben, dies so zu imple-
mentieren, dass er in Linearzeit, also O( |E| + |V |) terminiert, müssen wir die auftretenden Daten-
strukturen und -operationen etwas detaillierter diskutieren. Das Vorgehen aus dem Beweis ändern
wir wie folgt ab:

Tourkonstruktion

Ausgehend vom Startknoten v 0 laufen wir immer weiter, solange wir unbenutz-
te Kanten finden. Die Reihenfolge, in der wir die Kanten besuchen, merken wir uns in einer Liste

T . Wenn wir keine unbenutzte Kante mehr finden, sind wir wieder im Startknoten v 0 angekom-
men, da alle Knotengrade gerade sind.

Einfügen einer Tour

Nun suchen wir in T den ersten Knoten v 1 , an dem es noch eine unbenutzte

Kante gibt, nennen das Teilstück davor T

˜

1 und dahinter ˜

T , also T = v 0 T 1 v 1 T v 0 . Ausgehend von
v 1 verfahren wir wieder wie in Tourkonstruktion, finden eine Tour ˆ

T aus unbenutzten Kanten
und landen wieder in v

ˆ

˜

1 . Unsere aktuelle Tour ist nun T = v 0 T 1 v 1 T v 1 T v 0 .

Suche des nächsten Knoten

Wir fahren so fort, indem wir an der letzten Stelle, an der wir einen

Knoten mit unbenutzten Kanten gefunden haben, einsteigen, also in der zuletzt geschilderten

Situation ausgehend von v 1 in ˆ

T nach einem weiteren Knoten v 2 mit unbenutzten Kanten suchen.

Dies machen wir so lange, bis wir wieder bei v 0 ankommen und die ganze derzeit konstruierte

Tour ein zweites Mal durchlaufen haben.

Bemerkung 3.41. Für eine Linearzeitimplementierung müssen wir zu jeder Zeit an jedem Knoten
die nächste unbenutzte Kante bestimmen, bzw. benutzte Kanten aus dem Graphen löschen können.

Deswegen sollte man sich von dem Eindruck, in Tabelle 3.1 könne es sich um Arrays handeln,
nicht täuschen lassen. Oft muss man mitten aus den Listen Elemente aushängen oder mittendrin
welche einfügen. Dies ist in konstanter Zeit möglich, wenn jedes Listenelement seinen Vorgänger
bzw. seinen Nachfolger kennt. Man muss dann für Lösch- oder Einfügeoperationen nur“ die Zeiger

”

auf Vorgänger bzw. Nachfolger umbiegen“.

”

Wollen wir etwa aus der Liste ( a, b) die Liste ( a, c, b) erzeugen, so setzen wir zunächst

Nachfolger[c]=Nachfolger[a] und Vorgaenger[c]=Vorgaenger[b] und dann
noch Nachfolger[a]=c sowie Vorgaenger[b]=c. Wie so oft liegt der Teufel im Detail,
da man aufpassen muss, ob man sich nicht am Ende oder am Anfang der Liste befindet. Deswegen
sparen wir uns diese Details der Implementierung des Algorithmus zur Bestimmung der Eulertour.

Für die Suche nach der nächsten unbenutzten Kante könnte man sich noch mit Arrays behelfen,
wenn man sich zu jedem Knoten zusätzlich den Index der nächsten unbenutzten Kante im Array
und jeweils die Anzahl der noch unbenutzten Kanten merkt. Allerdings können wir auf diese Weise
die Kante am anderen Knoten nicht effizient löschen. Auch die Tour selber müssen wir als Liste
vorhalten, da wir nicht im Vorhinein wissen, an welcher Stelle noch neue Teiltouren eingefügt
werden.

Wir erhalten dann den Algorithmus in Abbildung 3.9, wenn wir davon ausgehen, dass der

Knoten v0 vorgegeben ist. T[] wird am Ende die Eulertour als Kantenliste enthalten, HatT[]

wird jeweils die Teiltour werden, die wir eben mit ˆ

T bezeichnet haben. T.position ist
die Position, an der wir die nächste Teiltour in T einfügen müssen, dies erledigt die Methode

T.Insert(HatT,T.position). Die Methode T.vertex(i) liefert den gemeinsamen End-
knoten der i -ten und der i + 1 -sten Kante von T bzw. v0 falls i = 0 und FALSE wenn i = |T | ist.

68

Kapitel 3. Graphen
done=FALSE

T=[]

T.position=0
vertex=v0

HatT=[]

e=vertex.NextEdge()

while not done:

while e:

HatT.Append(e)

vertex=OtherEnd(e,vertex)

e=vertex.NextEdge()

T.Insert(HatT,T.position)

HatT=[]

vertex=T.vertex(T.position)

while 1:

e=vertex.NextEdge()

if not e:

T.position += 1
vertex=T.vertex(T.position)

if not vertex:

done=TRUE
break
else:

break

Abb. 3.9 Algorithmus Eulertour

Die Methode vertex.NextEdge() holt und löscht die nächste Kante an vertex und löscht
diese auch aus der Kantenliste ihres anderen Endknotens. Wird keine Kante gefunden, so wird e auf

FALSE gesetzt.

Schließlich bemerken wir noch, dass T.position += 1 diese Variable um 1 erhöht und die

Konstruktion mit while 1: und break nötig ist, da Python keine eigene Kontrollstruktur für eine
fußgesteuerte Schleife hat.

Akzeptieren wir, dass wir mit den oben skizzierten Datenstrukturen

• die nächste unbenutze Kante an einem beliebigen vorgegebenen Knoten in konstanter Zeit be-
stimmen können und

• in konstanter Zeit eine Teiltour einhängen können,
so erhalten wir:

Satz 3.42. In einem eulerschen Graphen kann man eine Eulertour in O( |V | + |E|) bestimmen.

Beweis. Jede Kante finden wir in konstanter Zeit, für die Tourkonstruktion benötigen wir also

O( |E|). Für die Suche nach dem nächsten Knoten fahren wir die Tour ein zweites Mal ab, wofür wir
wiederum O( |E|) benötigen. Eine Toureinfügeoperation machen wir an jedem Knoten höchstens
einmal, da wir erst einfügen, wenn wir keine weiteren Kanten mehr finden. Diese Operation können
wir jeweils in konstanter Zeit erledigen, der Aufwand dafür ist also insgesamt O( |V |).

2

3.11. Gerichtete Graphen und Eulertouren

69

Beispiel 3.43. Wir betrachten den K 7 , den vollständigen Graphen mit 7 Knoten. Nach Satz 3.40
ist dieser eulersch. Wir gehen davon aus, dass in den Adjazenzlisten die Kanten nach aufstei-
gender Nummer des anderen Endknoten sortiert sind, also etwa die Adjazenzliste am Knoten 3

{(1 , 3) , (2 , 3) , (3 , 4) , (3 , 5) , (3 , 6) , (3 , 7) } ist. Als v 0 nehmen wir 1. Dann finden wir zunächst als Kanten

(1 , 2) , (2 , 3) , (3 , 1) , (1 , 4) , (4 , 2) , (2 , 5) , (5 , 1) , (1 , 6) , (6 , 2) , (2 , 7) , (7 , 1) .

Am Knoten 1 liegt keine Kante mehr vor, auch nicht am Knoten 2. Also fahren wir fort mit

(3 , 4) , (4 , 5) , (5 , 3) , (3 , 6) , (6 , 4) , (4 , 7) , (7 , 3) .

Nach dem Einfügen sieht unsere Tour nun so aus (1 , 2) , (2 , 3) , (3 , 4) , (4 , 5) , (5 , 3) , (3 , 6) , (6 , 4) , (4 , 7) , (7 , 3) , (3 , 1) , (1 , 4) , (4 , 2) , (2 , 5) , (5 , 1) , (1 , 6) , (6 , 2) , (2 , 7) , (7 , 1) . Wir sind mit T.position noch an der Stelle 3. Weder an Knoten 3 noch an Knoten 4 liegen weitere Kanten vor, wir finden nur
noch (5 , 6) , (6 , 7) , (7 , 5) und erhalten als Eulertour

(1 , 2) , (2 , 3) , (3 , 4) , (4 , 5) , (5 , 6) , (6 , 7) , (7 , 5) , (5 , 3) , (3 , 6) , (6 , 4) , (4 , 7) , (7 , 3) , (3 , 1) , (1 , 4) , (4 , 2) , (2 , 5) , (5 , 1) , (1 , 6) , (6 , 2) , (2 , 7) , (7 , 1) .

Aufgabe 3.44. Sei G = ( V, E) der Graph, der aus K 6 entsteht, wenn man die Kanten { 1 , 2 }, { 3 , 4 }

und { 5 , 6 } entfernt. Bestimmen Sie eine Eulertour in G.

Lösung siehe Lösung 9.29.

3.11 Gerichtete Graphen und Eulertouren

Wir hatten Graphen als ungerichtete einfache Graphen eingeführt. In gerichteten Graphen ist die

Adjazenzrelation nicht mehr notwendig symmetrisch. Dieses Phänomen taucht bei Einbahnstraßen
in der Wirklichkeit auf. Auch unsere Ordnungsrelationen, bei denen wir mit den Hasse-Diagrammen

Graphen schon motiviert hatten, sind asymmetrisch. Dies führt nun auf gerichtete Graphen oder

Digraphen.

Definition 3.13. Sei V eine endliche Menge (von Knoten) und A ⊆ ( V ×V ) \ Δ eine Teilmenge der

(geordneten) Tupel über V ohne die Diagonale Δ , d. h. ohne die Elemente der Form ( v, v). Dann
nennen wir das geordnete Paar ( V, A) einen gerichteten Graphen oder einen Digraphen (genauer,
einen einfachen, gerichteten Graphen). Die Kanten ( v, w) ∈ A nennen wir auch Bögen ( engl. arcs)

und v den Anfang ( engl. tail) und w das Ende ( engl. head).

Die Definitionen für Graphen lassen sich in der Regel auf Digraphen übertragen. Wir erhal-
ten so gerichtete Pfade, Kreise oder Spaziergänge, auch sprechen wir von Multidigraphen, wenn
gleichgerichtete Kanten mehrfach vorkommen dürfen oder Schleifen vorkommen. Ein gerichte-
ter Spaziergang ist z. B. eine alternierende Folge aus Knoten und Bögen ( v 0 , a 1 , v 1 , a 2 , . . . , ak, vk)

mit ai = ( vi− 1 , vi). Bei Knotengraden unterscheiden wir zwischen dem Innengrad deg+( v), der

G

Anzahl der einlaufenden Kanten, deren Ende v ist, und dem Außengrad deg −( v) (oder kurz

G
deg+( v) , deg −( v) ). Der zugrundeliegende Multigraph eines (Multi)-Digraphen ist der Multigraph,
der entsteht, wenn man die Orientierung der Bögen vergisst. Ist der zugrundeliegende Multigraph

70

Kapitel 3. Graphen
ein Graph, so heisst der Digraph eine Orientierung des zugrundeliegenden Graphen. Ein Digraph
heißt zusammenhängend, wenn der zu Grunde liegende ungerichtete Graph zusammenhängend ist.

Auch den Begriff der Eulertour übernehmen wir.

Definition 3.14. Sei D = ( V, A) ein (Multi)-Digraph ohne isolierte Knoten. Ein Spaziergang, der
jeden Bogen genau einmal benutzt und in seinem Anfangsknoten endet, heißt Eulertour. Ein (Multi)-

Digraph heißt eulersch, wenn er eine Eulertour hat.

Und wie im ungerichteten Fall zeigt man:

Satz 3.45. Sei D = ( V, A) ein (Multi)-Digraph. Dann sind paarweise äquivalent:

a) D ist eulersch.

b) D ist zusammenhängend und alle Knoten haben gleichen Innen- wie Außengrad.

c) D ist zusammenhängend und A ist disjunkte Vereinigung von gerichteten Kreisen.

Beweis. Übungsaufgabe analog zu Satz 3.40.

2

Aufgabe 3.46. Beweisen Sie Satz 3.45.

Lösung siehe Lösung 9.30.

Beispiel 3.47 (Das Rotating Drum Problem nach Good 1946). In einer rotierenden Trommel wird
die Position durch jeweils einen String aus k Nullen und Einsen bestimmt. Wieviele Stellungen
kann man auf diese Art und Weise unterscheiden? Genauer: Wie lang kann ein binärer (aus Nullen
und Einsen bestehender) zyklischer String sein, bei dem alle Teilstrings der Länge k paarweise
verschieden sind?

1 1 0 0 1 0

Wir betrachten den Digraphen, bei dem die Knoten alle 01-Strings der Länge k − 1 sind, V =

{ 0 , 1 }k− 1 . Wir haben einen Bogen a von dem Knoten v = b 1 b 2 ...bk− 1 zum Knoten w =
a 1 a 2 . . . ak− 1 , wenn bi = ai− 1 für i = 2 ,...,k − 1, also w aus v durch Streichen des ersten Bits und Anhängen eines weiteren entsteht. Wir können a mit der Bitfolge b 1 b 2 . . . bk− 1 ak− 1 identifizieren. Die Kantenmenge entspricht dann genau den binären Wörtern der Länge k . Dieser Multidigraph
heißt deBruijn Graph.

Die obige Aufgabenstellung ist dann gleichbedeutend damit, dass wir in diesem Graphen einen
möglichst langen, kantenwiederholungsfreien, geschlossenen Spaziergang suchen. Wie sieht dieser

3.11. Gerichtete Graphen und Eulertouren

71

Graph aus? Er hat 2 k− 1 Knoten und in jeden Knoten führen genau zwei Kanten hinein und genau
zwei wieder heraus. Also ist der Digraph eulersch und aus einer Eulertour konstruieren wir ein
zyklisches Wort der Länge 2 k .

Betrachten wir den Fall k = 4 , erhalten wir den Graphen in Abbildung 3.10 und als zyklischen

String z. B.

0000111101100101 .

0000

000

0001

1000

1001

001

100

0010

0100

101

1100

0011

010

011

110

0110

111

Abb. 3.10 Der deBruijn Graph für k = 4

Aufgabe 3.48. a) Zeigen Sie, dass man, wenn man das Haus vom Nikolaus in einem Zug ohne
abzusetzen zeichnen will, in einer der beiden unteren Ecken starten und in der anderen enden
muss.

b) Zeigen Sie, dass man das Doppelhaus vom Nikolaus (vgl. Problem 1.2) nicht ohne abzusetzen
zeichnen kann.

Abb. 3.11 Das Haus und das Doppelhaus vom Nikolaus

Lösung siehe Lösung 9.31.

72

Kapitel 3. Graphen

3.12 2-Zusammenhang

Wir haben den Zusammenhangsbegriff bereits kennengelernt. Insbesondere für die Ausfallsicherheit
und Durchsatzfähigkeit von Netzen sind aber auch höhere Zusammenhangsbegriffe relevant. Sie
entstehen aus der Fragestellung, wieviel Knoten oder Kanten man aus einem Graphen mindestens
entfernen muss, um seinen Zusammenhang zu zerstören.

Definition 3.15. Sei G = ( V, E) ein Graph und k ≥ 2. Wir sagen, G ist k -fach knotenzusam-
menhängend oder kurz k -zusammenhängend, wenn |V | ≥ k + 1 ist und der Graph nach Entfernen
beliebiger k − 1 Knoten immer noch zusammenhängend ist. Wir sagen G ist k -fach kantenzusam-
menhängend, wenn er nach Entfernen beliebiger k − 1 Kanten immer noch zusammenhängend ist.

Die größte natürliche Zahl, für die G knoten- bzw. kantenzusammenhängend ist, heißt Knoten- bzw.

Kantenzusammenhangszahl κ( G) bzw. κ ( G).

Für diese Definition haben wir Operationen auf Graphen benutzt, die noch nicht definiert sind.

Das wollen wir nun nachholen (vgl. Abbildung 3.12).

Definition 3.16. Sei G = ( V, E) ein Graph. Wir definieren folgende Graphen, die durch Operationen
auf G entstehen.

e’

e
v

G

G +e’

G\e

G\v

G%e

G/e

Abb. 3.12 Operationen auf Graphen

Entfernen einer Kante e ∈ E :

Der Graph G \ e ist der Graph G \ e := ( V, E \ {e}).

Einfügen einer Kante ¯
e ∈ V \ E :

Der Graph G + ¯
e ist der Graph

2

G + ¯
e := ( V, E ∪ { ¯ e}) .

Entfernen eines Knotens v ∈ V :

Der Graph G \ v ist der Graph

G \ v = ( V \ {v}, ˜

E) mit ˜

E := {e ∈ E | v ∈ e}.

Unterteilen einer Kante e ∈ E :

Die Unterteilung G% e mit e = ( v, w) ist der Graph G% e :=

( V ∪ u, ˆ

E) , wobei u ∈ V ein neuer Knoten sei und

ˆ

E := ( E \ {e}) ∪ {( v, u) , ( u, w) }.

Kontraktion einer Kante e ∈ E :

Die Kontraktion von e = ( v, w) ist der Multigraph G/e = ( ˜

V , ˜

E)

mit ˜

V := V ∪ {u} \ {v, w}, wobei u ∈ V ein neuer Knoten sei und

3.12. 2-Zusammenhang

73

˜

E := {e ∈ E | e ∩ {v, w} = /0 } ∪ {( u, x) | ( v, x) ∈ E} ∪ {( y, u) | ( y, w) ∈ E}.

Alle diese Operationen sind assoziativ und kommutativ (sofern sie miteinander verträglich sind).

Also kann man auch Knotenmengen W löschen oder Kantenmengen S kontrahieren oder löschen.

Dies notieren wir dann als G \W, G/S bzw. G \ S . Alle diese Operationen werden analog auch für

Multigraphen und (Multi)-Digraphen erklärt.

Entsteht ein (Multi)-Graph N durch Löschen und Kontrahieren von Teilmengen der Kantenmen-
ge aus G , so heißt N ein Minor von G . Ein Graph der durch sukzessives Unterteilen von Kanten
ausgehend von G entsteht, heißt Unterteilung von G .

Spezialisieren wir nun den Zusammenhangsbegriff für k = 2 , so ist ein Graph 2 -
knotenzusammenhängend (oder kurz 2-zusammenhängend), wenn man seinen Zusammenhang nicht
durch Entfernen eines Knotens zerstören kann. Dafür können wir zeigen:

Satz 3.49. Ein Graph ist genau dann 2 -knotenzusammenhängend, wenn je zwei Knoten u = v auf
einem gemeinsamen Kreis liegen.

Beweis. Liegen je zwei Knoten auf einem Kreis, so kann man den Zusammenhang des Graphen
sicherlich nicht durch Entfernen eines einzelnen Knoten zerstören. Die andere Implikation zeigen
wir mittels vollständiger Induktion über dist( u, v) . Ist dist( u, v) = 1 , so gibt es eine Kante e =

( u, v) ∈ E . Auf Grund des 2-Zusammenhangs hat G nach Definition mindestens drei Knoten. Also
hat mindestens einer von u und v noch einen weiteren Nachbarn. Wir können annehmen, dass u
einen Nachbarn w = v hat. Da G 2-knotenzusammenhängend ist, gibt es in G \ u immer noch
einen Weg P von w nach v . Dieser Weg zusammen mit e = ( v, u) und der Kante ( u, w) bildet
den gesuchten Kreis. Sei nun dist( u, v) ≥ 2 und u = u 0 u 1 . . . uk− 1 uk = v ein kürzester Weg von u nach v . Dann liegen nach Induktionsvoraussetzung u und uk− 1 auf einem gemeinsamen Kreis C .

Liegt v auch auf diesem Kreis, so sind wir fertig. Sei also v ∈ C (vgl. Abbildung 3.13). Da G \ uk− 1
zusammenhängend ist, gibt es darin immer noch einen Weg P von u nach v . Sei w ∈ {uk− 1 ,v} der
letzte Knoten auf diesem Weg, der zu C gehört und sei ˜

P der Teilweg von P von w nach v . Sei

Q der Weg von w nach uk− 1 auf C , der nicht über u führt. Dann ist ( C \ Q) ∪ ˜

P ∪ {( v, uk− 1) } ein

Kreis, der u und v enthält.

2

P

˜

P
w

Q

C
v
u
u k− 1

Abb. 3.13 Im Beweis von Satz 3.49

Bemerkung 3.50. Satz 3.49 ist ein Spezialfall des Satzes von Menger, der besagt, dass ein Graph
genau dann k -knotenzusammenhängend ist, wenn es zu je zwei Knoten u, v k u - v -Wege gibt, die
paarweise nur die Endknoten gemeinsam haben.

74

Kapitel 3. Graphen

Aus dieser Charakterisierung schließen wir

Korollar 3.51. Ein Graph G = ( V, E) ist genau dann 2-zusammenhängend, wenn jede Unterteilung
von G 2-zusammenhängend ist.

Beweis. Es genügt, die Behauptung für G% e und eine Kante e = ( v, w) ∈ E zu beweisen, denn dann
folgt die Behauptung mittels vollständiger Induktion. Wenn je zwei Knoten von G% e auf einem
gemeinsamen Kreis liegen, gilt dies sicherlich auch für G . Für die andere Implikation müssen wir
nun nachweisen, dass der 2-Zusammenhang von G den 2-Zusammenhang von G% e impliziert. Hier
gehen wir direkt mit der Definition vor. Ist x ∈ V ein Originalknoten“ von G verschieden von v

”

und w , so ist ( G% e) \ x = ( G \ x)% e zusammenhängend. Wenn wir v oder w entfernen, erhalten wir den Originalgraphen, bei dem v oder w entfernt worden sind und an den anderen Knoten eine

Kante zum Unterteilungsknoten u angehängt wurde, also etwa ( G% e) \ v = ( G \ v) + ( w, u). Wird
schließlich der Unterteilungsknoten u entfernt, so ist G% e \ u = G \ e. Da G 2-zusammenhängend
ist, liegen aber v und w auf einem gemeinsamen Kreis, also sind sie auch in G \ e noch durch einen

Weg verbunden und somit auch G \ e zusammenhängend.

2

Oft wird von 2-zusammenhängenden Graphen eine konstruktive Eigenschaft genutzt. Sie haben
eine Ohrenzerlegung. Dies bedeutet, dass man jeden solchen Graphen so aufbauen kann, dass man
zunächst mit einem Kreis startet und dann an den bereits konstruierten Graphen Pfade ( Öhrchen“)

”

anklebt, die mit dem bereits konstruierten Graphen nur Anfangs- und Endknoten gemeinsam haben.

Dies formulieren wir in der folgenden Definition:

Definition 3.17. Sei G = ( V, E) ein Graph. Eine Folge ( C 0 , P 1 , P 2 , . . . , Pk) heißt Ohrenzerlegung von G , wenn

• C 0 ein Kreis ist,

!

• für alle i = 1 ,...,k P
i− 1
i ein Pfad ist, der mit V ( C 0) ∪

V ( P
j=1
j ) genau seinen Anfangs- und

Endknoten gemeinsam hat,

• E( C 0) ,E( P 1) ,...,E( Pk) eine Partition der Kantenmenge E bildet.

P 1

P 3

C 0

P 2

Abb. 3.14 Eine Ohrenzerlegung

3.12. 2-Zusammenhang

75

Bemerkung 3.52. Die Definition der Ohrenzerlegung in Definition 3.17 findet man in der Literatur
oft auch als offene Ohrenzerlegung. In diesem Falle wäre bei einer Ohrenzerlegung im Unterschied
zu Definition 3.17 auch erlaubt, dass Pi ein Kreis ist. Der folgende Satz ist aber nur für offene

Ohrenzerlegungen richtig.

Satz 3.53. Ein Graph ist genau dann 2-zusammenhängend, wenn er eine Ohrenzerlegung hat.

Beweis. Habe der Graph zunächst eine Ohrenzerlegung C 0 , P 1 , . . . , Pk . Wir zeigen per Induktion
über k , dass G 2-zusammenhängend ist. Ist k = 0 , so liegen offensichtlich je zwei Knoten auf einem
gemeinsamen Kreis, sei also k > 0 . Nach Induktionsvoraussetzung ist dann der Graph ˜

G , der aus

C 0 , P 1 , . . . , Pk− 1 gebildet wird, 2-zusammenhängend. Sei Pk ein v- w-Weg. Ist G = ˜

G + ( vw) , so ist

G sicherlich auch 2-zusammenhängend. Andernfalls entsteht der Graph G aus ˜

G , indem entweder
zunächst die Kante ( v, w) hinzugefügt und dann (evtl. mehrfach) unterteilt wird oder, weil ( vw) ∈ ˜

G
ist, zunächst diese Kante unterteilt wird und dann ( vw) wieder hinzugefügt wird. Beim Addieren
einer Kante bleibt der 2-Zusammenhang erhalten und beim Unterteilen nach Korollar 3.51.

Sei nun G 2-zusammenhängend. Wir definieren die Ohrenzerlegung induktiv. Sei zunächst C 0
ein beliebiger Kreis in G . Wir nehmen nun an, es seien die Ohren C 0 , P 1 , . . . , Pi definiert. Ist E =

!

E( C
i

0) ∪
j=1 E ( Pj ) , so sind wir fertig. Andernfalls gibt es, da G zusammenhängend ist, eine Kante

!

e = ( v, w) , die im bisherigen Graphen noch nicht enthalten ist, also e ∈ E \ E( C
i

0) ∪
j=1 E ( Pj ) ,
aber mindestens einen Endknoten hat, der in der Ohrenzerlegung bereits vorkommt, d. h. mit {v, w}∩

!

V
i
i = /

0 , wobei Vi := V ( C 0) ∪ j=1 V ( Pj). Sei v ∈ {v, w} ∩ Vi ein Knoten in diesem Schnitt. Liegt
auch w im Schnitt, so setzen wir Pi+1 = e, andernfalls (siehe Abbildung 3.15) gibt es, da G \ v
zusammenhängend ist, zu jedem Knoten x ∈ Vi \ {v} einen Weg von w nach x. Sei x und ein
solcher Weg P so gewählt, dass er außer x keinen weiteren Knoten in Vi enthält. Wir verlängern P
um e zu einem v - x -Weg, der unser neues Ohr Pi+1 ist.

2
w
v
e

P
x

Abb. 3.15 Zum Beweis von Satz 3.53

Der Beweis verdeutlicht auch, dass man jeden 2-zusammenhängenden Graphen aus dem C 3
durch sukzessive Hinzunahme von Kanten zwischen existierenden Knoten und Unterteilung von

Kanten erhalten kann. Außerdem können wir, da der zweite Teil des Beweises algorithmisch ist, aus
dem Beweis einen Algorithmus konstruieren, der eine Ohrenzerlegung konstruiert bzw. feststellt,
dass der Graph nicht 2-zusammenhängend ist.

76

Kapitel 3. Graphen

Bemerkung 3.54. Tatsächlich kann man einen solchen Algorithmus in Linearzeit implementieren.

Die erste Idee: Finde einen Kreis, stelle Knoten in eine Queue und starte ausgehend von diesen

Knoten Pfade wie beim Algorithmus Eulertour, hat aber den Nachteil, dass sie nicht sicherstellt,
dass der erste bereits bearbeitete Knoten, den man so findet, nicht wieder der Ausgangsknoten ist.

Mit anderen Worten, mit dieser Methode müsste man auch zulassen, dass Pi ein Kreis ist. Eine solche

Ohrenzerlegung“ gibt es stets in 2-kantenzusammenhängenden Graphen, die aber nicht notwendig

”2-knotenzusammenhängend sein müssen, wie etwa zwei Kreise, die sich in einem Knoten berühren,
verdeutlichen.

Für die richtige Ohrenzerlegung nutzt man statt dessen strukturelle Eigenschaften des Tiefen-
suchbaums wie in Aufgabe 3.33. Wir gehen hier nicht auf die Details ein und verweisen auf die

Literatur, etwa [4].

Aufgabe 3.55. Sei G = ( V, E) ein zusammenhängender Graph, r ∈ V und T , der Tiefensuchbaum
von G , ausgehend von r , enthalte alle Knoten (das folgt aus dem Zusammenhang, wie wir im
nächsten Kapitel sehen werden). Zeigen Sie:

a) G \ r ist genau dann unzusammenhängend (wir sagen r ist ein Schnittknoten), wenn r
mehr als einen direkten Nachfolger in T hat, es also v 1 , v 2 ∈ V , v 1 = v 2 gibt mit
pred[ v 1 ]=pred[ v 2 ] = r .

b) Sei v ∈ V \ {r}. Die Zusammenhangskomponenten, die die Nachkommen von v in T induzie-
ren, heißen Teilbäume an v . Zeigen Sie: v ist genau dann kein Schnittknoten, wenn aus allen

Teilbäumen an v Nichtbaumkanten e ∈ E( T ) zu Vorfahren von v führen.

Lösung siehe Lösung 9.32.

Bemerkung 3.56. Mit Hilfe der Aussagen der letzten Aufgabe kann man die Tiefensuche zu einem

Algorithmus erweitern, der in Linearzeit Schnittknoten sucht bzw. feststellt, dass ein Graph zweizu-
sammenhängend ist, also keine Schnittknoten hat. Auf ähnliche Weise kann man in Linearzeit eine

Ohrenzerlegung berechnen (siehe z. B. [4]).

Kapitel 4

Bäume und Matchings

Wir haben im letzten Kapitel Bäume implizit als Ergebnis unserer Suchverfahren kennengelernt. In
diesem Kapitel wollen wir diese Graphenklasse ausführlich untersuchen.

4.1 Definition und Charakterisierungen

Die in den Suchverfahren konstruierten Graphen waren zusammenhängend und enthielten keine

Kreise. Also vereinbaren wir:

Definition 4.1. Ein zusammenhängender Graph T = ( V, E) , der keinen Kreis enthält, heißt Baum

( engl. tree).

Wenn ein Graph keinen Kreis enthält, muss jeder maximale Weg zwangsläufig in einer Sackgas-

”

se“ enden. Eine solche Sackgasse in einem Graphen nennen wir ein Blatt.

Definition 4.2. Sei G = ( V, E) ein Graph und v ∈ V mit deg( v) = 1. Dann nennen wir v ein Blatt
von G .

Genauer haben wir in einem Graphen ohne Kreis sogar immer mindestens zwei Blätter.

Lemma 4.1. Jeder Baum mit mindestens zwei Knoten hat mindestens zwei Blätter.

Beweis. Da der Baum zusammenhängend ist und mindestens zwei Knoten hat, enthält er Wege der

Länge mindestens 1. Sei P = ( v 1 , . . . , vk) ein möglichst langer Weg in T . Da T kreisfrei ist, ist
v 1 zu keinem von v 3 , . . . , vk adjazent. Dann muss deg( v 1) aber schon 1 sein, da man ansonsten Pk
verlängern könnte. Die gleiche Argumentation gilt für vk .

2

Wenn wir an einem Baum ein Blatt abzupfen“, bleibt er immer noch ein Baum. Gleiches gilt,

”

wenn wir ein Blatt ankleben“.

”

Lemma 4.2. Sei G = ( V, E) ein Graph und v ein Blatt in G . Dann ist G ein Baum genau dann,
wenn G \ v ein Baum ist.

Beweis.

⇒“ Sei G ein Baum und v ein Blatt von G. Dann enthält kein Weg in G den Knoten v als

” inneren Knoten. Also ist G\v immer noch zusammenhängend und gewiss weiterhin kreisfrei.

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

77

DOI 10.1007/978-3-642-05422-8 4, c

Springer-Verlag Berlin Heidelberg 2010

78

Kapitel 4. Bäume und Matchings

⇐“ Sei umgekehrt nun vorausgesetzt, dass G \ v ein Baum ist. Da v ein Blatt ist, hat es einen

” Nachbarn u, von dem aus man in G\v alle Knoten erreichen kann, also ist G zusammenhängend.

Offensichtlich kann v auf keinem Kreis liegen.

2

Lemma 4.2 ist nun ein wesentliches Hilfsmittel um weitere Eigenschaften, die Bäume charakte-
risieren, induktiv zu beweisen.

Satz 4.1. Sei T = ( V, E) ein Graph und |V | ≥ 2 . Dann sind paarweise äquivalent:

a) T ist ein Baum.

b) Zwischen je zwei Knoten v, w ∈ V gibt es genau einen Weg von v nach w.

c) T ist zusammenhängend und für alle e ∈ E ist T \ e unzusammenhängend.

d) T ist kreisfrei und für alle ¯
e ∈ V \ E enthält T + ¯ e einen Kreis.

2
e) T ist zusammenhängend und |E| = |V | − 1 .

f) T ist kreisfrei und |E| = |V | − 1 .

Beweis. Ist |V | = 2, so sind alle Bedingungen dann und nur dann erfüllt, wenn G isomorph zum

K

V

2 ist. Man beachte, dass es in der Bedingung d) eine Kante ¯
e ∈

\ E nicht gibt, weswegen die

2

Bedingung trivialerweise erfüllt ist.

Wir fahren fort per Induktion und nehmen an, dass |V | ≥ 3 und die Gültigkeit der Äquivalenz für

Graphen mit höchstens |V | − 1 Knoten bewiesen sei.

a) ⇒ b)

Seien also v, w ∈ V . Ist v oder w ein Blatt in G, so können wir o. E. annehmen, dass
v ein Blatt ist, ansonsten vertauschen wir die Namen. Sei x der eindeutige Nachbar des Blattes
v in T . Nach Lemma 4.2 ist T \ v ein Baum. Also gibt es nach Induktionsvoraussetzung genau
einen Weg von w nach x in T \ v. Diesen können wir mit ( x, v) zu einem Weg von w nach
v verlängern. Umgekehrt setzt sich jeder Weg von v nach w aus der Kante ( x, v) und einem
xw -Weg in T \ v zusammen. Also gibt es auch höchstens einen vw-Weg in T .

Ist weder v noch w ein Blatt, so folgt die Behauptung per Induktion, wenn wir ein beliebiges

Blatt aus G entfernen.

b) ⇒ c)

Wenn es zwischen je zwei Knoten einen Weg gibt, ist der Graph zusammenhängend. Sei
e = ( v, w) ∈ E . Gäbe es in T \ e einen vw-Weg, dann gäbe es in T deren zwei, da e schon einen
vw -Weg bildet. Also muss T \ e unzusammenhängend sein.

c) ⇒ d)

Wenn es in T einen Kreis gibt, so kann man jede beliebige Kante dieses Kreises entfer-
nen, ohne den Zusammenhang zu zerstören, da diese Kante in jedem Spaziergang durch den Rest
des Kreises ersetzt werden kann. Da aber das Entfernen einer beliebigen Kante nach Vorausset-
zung in c) den Zusammenhang zerstört, muss T kreisfrei sein. Die Aussage in c) verbietet also
die Existenz eines Kreises.

Sei ¯
e = ( v, w) ∈ V \ E . Da T zusammenhängend ist, gibt es in T einen vw-Weg, der mit der

2

Kante ¯
e einen Kreis in T + ¯
e bildet.

d) ⇒ a)

Wir müssen zeigen, dass T zusammenhängend und kreisfrei ist. Letzteres wird in d) ex-
plizit vorausgesetzt. Wenn T nicht zusammenhängend wäre, so könnte man eine Kante zwischen
zwei Komponenten einfügen, ohne einen Kreis zu erzeugen. Also muss T zusammenhängend
sein.

4.2. Isomorphismen von Bäumen

79
a) ⇒ e) , f )

Nach Voraussetzung ist T sowohl zusammenhängend als auch kreisfrei. Sei v ein

Blatt in T . Nach Lemma 4.2 ist T \ v ein Baum. Nach Induktionsvoraussetzung ist also |E( T \
v) | = |V ( T \ v) | − 1. Nun ist aber |E( T ) | = |E( T \ v) | + 1 = |V ( T \ v) | = |V ( T ) | − 1.

a) ⇐ e)

Da T nach Voraussetzung zusammenhängend ist und |V | ≥ 3, haben wir deg( v) ≥ 1 für
alle v ∈ V und nach dem Handshake Lemma Proposition 3.6

∑ deg( v) = 2 |E| = 2 |V|− 2 .

v∈V

Angenommen alle Knoten hätten Valenz deg G( v) ≥ 2, so müsste

∑ deg( v) ≥ 2 |V|
v∈V
sein. Da dies nicht so ist, aber G zusammenhängend und nicht trivial ist, muss es einen Knoten
mit deg( v) = 1 , also ein Blatt in T , geben. Dann ist T \ v weiterhin zusammenhängend und

|E( T \ v) | = |V( T \ v) | − 1. Nach Induktionsvoraussetzung ist also T \ v ein Baum und somit
nach Lemma 4.2 auch T ein Baum.

a) ⇐ f )

Da T nach Voraussetzung kreisfrei und |V | ≥ 3 ist, hat T mindestens eine Kante.

Angenommen T hätte kein Blatt. Dann könnten wir an einem beliebigen Knoten einen Weg
starten und daraufhin jeden Knoten durch eine andere Kante verlassen, als wir sie betreten haben.

Da |V | endlich ist, müssen dabei Knoten wiederholt auftreten, was wegen der Kreisfreiheit nicht
möglich ist. Also hat T ein Blatt und wir können wie in a) ⇐ e) schließen.

2

Aufgabe 4.2. Sei T = ( V, E) ein Baum und ¯
e ∈ V \ E . Zeigen Sie:

2
a) ¯
e schließt genau einen Kreis C mit T , den wir mit C( T, ¯
e) bezeichnen.

b) Für alle e ∈ C( T, ¯ e) \ ¯ e ist ( T + ¯ e) \ e ein Baum.

Lösung siehe Lösung 9.33.

4.2 Isomorphismen von Bäumen

Im Gegensatz zu der Situation bei allgemeinen Graphen, bei denen angenommen wird, dass die

Isomorphie ein algorithmisch schweres Problem ist, kann man bei Bäumen (und einigen anderen
speziellen Graphenklassen) die Isomorphie zweier solcher Graphen effizient testen.

Wir stellen in diesem Abschnitt einen Algorithmus vor, der zu jedem Baum mit n Knoten einen

2 n -stelligen Klammerausdruck berechnet, den wir als den Code des Graphen bezeichnen. Dieser

Code zweier Bäume ist genau dann gleich, wenn die Bäume isomorph sind.

Zunächst ist folgendes Konzept hilfreich, das wir implizit schon bei der Breitensuche kennenge-
lernt haben.

Definition 4.3. Ein Wurzelbaum oder eine Arboreszenz ist ein Paar ( T, r) bestehend aus einem Baum

T und einem ausgezeichneten Knoten r ∈ V , den wir als Wurzelknoten bezeichnen. Wir denken
uns dann alle Kanten des Baumes so orientiert, dass die Wege von r zu allen anderen Knoten v

80

Kapitel 4. Bäume und Matchings
gerichtete Wege sind. Ist dann ( v, w) ein Bogen, so sagen wir v ist Elternteil von w und w ist Kind
oder direkter Nachfahre von v .

Aufgabe 4.3. Zeigen Sie: Ein zusammenhängender, gerichteter Graph D = ( V, A) ist genau dann ein

Wurzelbaum, wenn es genau einen Knoten r ∈ V gibt, so dass deg+( r) = 0 und für alle anderen

Knoten v ∈ V \ {r} gilt
deg+( v) = 1 .

Lösung siehe Lösung 9.34.

Wir werden in unserem Algorithmus zunächst in einem Baum einen Knoten als Wurzel auszeich-
nen, so dass wir bei isomorphen Bäumen isomorphe Wurzelbäume erhalten. Diese Wurzelbäume
pflanzen wir dann in die Zeichenebene, wobei wir wieder darauf achten, dass wir isomorphe Wur-
zelbäume isomorph einpflanzen. Gepflanzten Bäumen sieht man dann die Isomorphie fast sofort
an.

Definition 4.4. Ein gepflanzter Baum ( T, r, ρ) ist ein Wurzelbaum, bei dem an jedem Knoten v ∈ V
eine Reihenfolge ρ( v) der direkten Nachfahren vorgegeben ist. Dadurch ist eine Zeichenvorschrift“

”

definiert, wie wir den Graphen in die Ebene einzubetten haben.

Wie wir eben schon angedeutet haben, kann man für jede dieser Baumklassen mit zusätzlicher

Struktur Isomorphismen definieren. Ein Isomorphismus zweier Wurzelbäume ( T, r) , ( T , r) ist ein

Isomorphismus von T und T , bei dem r auf r abgebildet wird. Ein Isomorphismus gepflanzter

Bäume ist ein Isomorphismus der Wurzelbäume, bei dem zusätzlich die Reihenfolge der direkten

Nachfahren berücksichtigt wird.

Die Bäume in Abbildung 4.1 sind alle paarweise isomorph als Bäume, die beiden rechten sind
isomorph als Wurzelbäume, und keine zwei sind isomorph als gepflanzte Bäume.

Abb. 4.1 Gepflanzte Bäume

Wie angekündigt gehen wir nun in drei Schritten vor.

a) Zu einem gegebenen Baum bestimmen wir zunächst eine Wurzel.

b) Zu einem Wurzelbaum bestimmen wir eine kanonische Pflanzung.

c) Zu einem gepflanzten Baum bestimmen wir einen eindeutigen Code.

Da sich der erste und der zweite Schritt leichter darstellen lassen, wenn der dritte bekannt ist,
stellen wir dieses Verfahren von hinten nach vorne vor.

Sei also ( T, r, ρ) ein gepflanzter Baum. Wir definieren den Code Bottom-Up“ für jeden Knoten,

”

indem wir ihn zunächst für Blätter erklären und dann für gepflanzte Bäume, bei denen alle Knoten
außer der Wurzel schon einen Code haben. Dabei identifizieren wir den Code eines Knotens x mit

4.2. Isomorphismen von Bäumen

81
dem Code des gepflanzten Baumes, der durch den Ausgangsbaum auf x und allen seinen (nicht
notwendigerweise direkten) Nachfahren induziert wird.

• Alle Blätter haben den Code ().

• Ist x ein Knoten mit Kindern in der Reihenfolge y 1 ,...,yk , deren Codes C 1 ,...,Ck sind, so erhält
x den Code ( C 1 C 2 . . .Ck).

Wir können nun aus dem Code den gepflanzten Baum wieder rekonstruieren. Dazu stellen wir
zunächst fest, dass wir durch obiges Verfahren nur wohlgeklammerte Ausdrücke erhalten.

Definition 4.5. Sei C ∈ {( , ) } 2 m eine Zeichenkette aus Klammern. Dann nennen wir C wohlgeklam-
mert, wenn C gleich viele öffnende wie schließende Klammern enthält und mit einer öffnenden

Klammer beginnt, welche erst mit der letzten Klammer geschlossen wird.

Beispiel 4.4. Der

Ausdruck

C 1

=

((())())

ist
wohlgeklammert,
aber

C 2

= (())(()()) und C 3 = ())(() sind nicht wohlgeklammert.

Aufgabe 4.5. Der Code eines gepflanzten Baumes ist ein wohlgeklammerter Ausdruck.

Lösung siehe Lösung 9.35.

Wenn wir nun einen wohlgeklammerten Ausdruck haben, erhalten wir rekursiv einen gepflanzten

Baum wie folgt.

• Zeichne eine Wurzel r.

• Streiche die erste (öffnende) Klammer.

• Solange das nächste Zeichen eine öffnende Klammer ist

– Suche die entsprechende schließende Klammer, schreibe die so definierte Zeichenkette Ci
bis hierhin raus, hänge die Wurzel yi des durch Ci definierten gepflanzten Wurzelbaums als
rechtes Kind an r an und lösche Ci aus C .

– Streiche die letzte (schließende) Klammer.

(((()())(()()()))()(()()()))

((()())(()()()))

()

(()()())

(()()())

(()())

() () ()

() () () () ()

In dem Beispiel in der Abbildung erhalten wir als Codes der Kinder der Wurzel auf diese Weise
völlig zu Recht C 1 = ((()())(()()())), C 2 = (), C 3 = (()()()). Beachten Sie, dass dies nicht der

Code des obigen Baumes ist, da der obige Baum nicht kanonisch gepflanzt ist.

82

Kapitel 4. Bäume und Matchings

Aufgabe 4.6. Sei ( T, r, ρ) ein gepflanzter Baum und C der Code von ( T, r, ρ) . Zeigen Sie: Mittels
der soeben beschriebenen rekursiven Prozedur erhalten wir einen gepflanzten Baum, der isomorph
zu ( T, r, ρ) ist.

Lösung siehe Lösung 9.36.

Eine anschauliche Interpretation des Codes eines gepflanzten Baumes erhält man, wenn man
den geschlossenen Weg betrachtet, der an der Wurzel mit der Kante nach links unten beginnt und
dann außen um den Baum herumfährt. Jedesmal, wenn wir eine Kante abwärts fahren, schreiben
wir eine öffnende Klammer, und eine schließende Klammer, wenn wir eine Kante aufwärts fahren.

Schließlich machen wir um den ganzen Ausdruck noch ein Klammerpaar für die Wurzel.

Da wir nach Aufgabe 4.6 so den gepflanzten Baum (bis auf Isomorphie) aus C rekonstruieren
können, haben nicht isomorphe gepflanzte Bäume verschiedene Codes. Umgekehrt bleibt der Code
eines gepflanzten Baumes unter einem Isomorphismus offensichtlich invariant, also haben isomor-
phe gepflanzte Bäume den gleichen Code.

Wir übertragen diesen Code nun auf Wurzelbäume, indem wir die Vorschrift modifizieren.

Zunächst erinnern wir an die lexikographische Ordnung aus Aufgabe 3.10. Durch (“ <

)“ er-

”

”

halten wir eine Totalordnung auf {( , ) } und damit eine lexikographische Ordnung auf den Klam-
merstrings.

Dann ist ein Klammerstring A lexikographisch kleiner als ein anderer B , in Zeichen A B,
wenn entweder A der Anfang von B ist oder die erste Klammer, in der die beiden Wörter sich
unterscheiden, bei A öffnend und bei B schließend ist. Z. B. ist (()) ().

Die Wahl dieser Totalordnung ist hier willkürlich. Unser Algorithmus funktioniert mit jeder

Totalordnung auf den Zeichenketten.

Wir definieren nun unseren Code auf Wurzelbäumen Bottom-Up wie folgt:

• Alle Blätter haben den Code ().

• Ist x ein Knoten mit Kindern, deren Codes bekannt sind, so sortiere die Kinder so zu y 1 ,...,yk ,
dass für die zugehörigen Codes gilt C 1 C 2 . . . Ck .

• x erhält dann den Code ( C 1 C 2 ...Ck).

Diese Vereinbarung definiert auf den Knoten eine Reihenfolge der Kinder, macht also auf ein-
deutige Weise aus einem Wurzelbaum einen gepflanzten Baum.

Aufgabe 4.7. Zeigen Sie: Isomorphe Wurzelbäume erhalten so den gleichen Code.

Lösung siehe Lösung 9.37.

Kommen wir nun zu den Bäumen. Wir versuchen zunächst von einem gegebenen Baum einen

Knoten zu finden, der sich als Wurzel aufdrängt und unter Isomorphismen fix bleibt. Ein solcher

Knoten soll in der Mitte des Baumes liegen. Das zugehörige Konzept ist auch auf allgemeinen

Graphen sinnvoll.

Definition 4.6. Sei G = ( V, E) ein Graph und v ∈ V . Als Exzentrizität exG( v) bezeichnen wir die

Zahl
exG( v) = max {distG( v, w) | w ∈ V },

(4.1)

also den größten Abstand zu einem anderen Knoten.

4.2. Isomorphismen von Bäumen

83

Das Zentrum Z( G) ist die Menge der Knoten minimaler Exzentrizität

Z( G) = {v ∈ V | exG( v) = min {exG( w) | w ∈ V }} .

(4.2)

Ist das Zentrum unseres Baumes ein Knoten, so wählen wir diesen als Wurzel. Ansonsten nutzen
wir aus:

Lemma 4.3. Sei T = ( V, E) ein Baum. Dann ist |Z( T ) | ≤ 2 . Ist Z( T ) = {x, y} mit x = y, so ist ( x, y) ∈ E .

Beweis. Wir beweisen dies mittels vollständiger Induktion über |V |. Die Aussage ist sicherlich
richtig für Bäume mit einem oder zwei Knoten. Ist nun |V | ≥ 3, so ist nach Satz 4.1 e) ∑ v∈V deg( v) =

2 |V | − 2 > |V |, also können nicht alle Knoten Blätter sein. Entfernen wir alle Blätter aus T , so
erhalten wir einen nicht leeren Baum T auf einer Knotenmenge V ⊂ V , die echt kleiner geworden
ist. In einem Graphen mit mindestens drei Knoten kann kein Blatt im Zentrum liegen, da die

Exzentrizität seines Nachbarn um genau 1 kleiner ist. Also ist Z( T ) ⊆ V , und für alle Knoten
in w ∈ V gilt offensichtlich
exT( w) = exT ( w) − 1 .

Folglich ist Z( T ) = Z( T ) und dieses hat nach Induktionsvoraussetzung höchstens zwei Elemente.

Sind es genau zwei Elemente, so müssen diese adjazent sein.

2

Besteht das Zentrum aus zwei Knoten {x 1 , x 2 }, so entfernen wir die verbindende Kante ( x 1 , x 2),
bestimmen die Codes der in x 1 bzw. x 2 gewurzelten Teilbäume und wählen den Knoten als Wurzel
von T , dessen Teilbaum den lexikographisch kleineren Code hat. Wir fassen zusammen:

• Ist Z( G) = {v}, so ist der Code von T der Code von ( T,v).

• Ist Z( G) = {x 1 ,x 2 } mit x 1 = x 2 , so sei e = ( x 1 ,x 2). Seien T 1 ,T 2 die Komponenten von T \ e mit x 1 ∈ T 1 und x 2 ∈ T 2 . Sei Ci der Code des Wurzelbaumes ( Ti, xi) und die Nummerierung der

Bäume so gewählt, dass C 1 C 2 . Dann ist der Code von T der Code des Wurzelbaumes ( T, x 1).

Satz 4.8. Zwei Bäume haben genau dann den gleichen Code, wenn sie isomorph sind.

Beweis. Sind zwei Bäume nicht isomorph, so sind auch alle zugehörigen gepflanzten Bäume nicht
isomorph, also die Codes verschieden. Sei für die andere Implikation ϕ : V → V ein Isomorphismus
von T = ( V, E) nach T = ( V, E) . Seien r, r die bei der Konstruktion der Codes ausgewählten

Wurzeln von T bzw. T . Ist ϕ( r) = r , so sind die Wurzelbäume ( T, r) und ( T , r) isomorph
und haben nach Aufgabe 4.7 den gleichen Code. Andernfalls besteht das Zentrum von T aus
zwei Knoten r, s und ϕ( s) = r . Dann ist aber der Code des in r gewurzelten Teilbaumes ( T , r)

1
von T \ (ϕ( r) , r) lexikographisch kleiner als der des in ϕ( r) gewurzelten Teilbaumes ( T , ϕ( r)).

2

Letzterer ist aber isomorph zu dem in r gewurzelten Teilbaum ( T 2 , r) von T \ ( r, s), welcher also
nach Aufgabe 4.7 den gleichen Code wie ( T , ϕ( r)) hat. Da aber r als Wurzel ausgewählt wurde,

2
ist dieser Code lexikographisch kleiner als der des in s gewurzelten Teilbaumes ( T 1 , s). Dessen

Code ist aber wiederum nach Aufgabe 4.7 gleich dem Code von ( T , r) . Also müssen alle diese

1

Codes gleich sein. Somit sind ( T 1 , r) und ( T 2 , s) nach Aufgabe 4.7 isomorphe Wurzelbäume. Sei
ψ( V 1 ,V 2) : V 1 → V 2 ein entsprechender Isomorphismus. Betrachten wir V = V 1 ˙ ∪V 2 als ( V 1 ,V 2) bzw. ( V 2 ,V 1), so vermittelt (ψ , ψ − 1) : ( V 1 ,V 2) → ( V 2 ,V 1) = V einen Automorphismus von T und ϕ ◦ ψ ist ein Isomorphismus von ( T,r) nach ( T,r), also haben nach dem bereits Gezeigten T und

T denselben Code.

2

84

Kapitel 4. Bäume und Matchings

4.3 Aufspannende Bäume

In diesem Abschnitt werden wir unter Anderem den fehlenden Teil des Beweises, dass der BFS
die Komponenten eines Graphen berechnet, nachholen. Die dort berechneten Teilgraphen spannen
die Ausgangsgraphen auf. Solche minimalen aufspannenden Teilgraphen bezeichnet man manchmal
auch als Gerüste. Aber erst noch mal zur Definition:

Definition 4.7. Ein kreisfreier Graph heißt Wald. Sei G = ( V, E) ein Graph und T = ( V, F) ein

Teilgraph, der die gleichen Zusammenhangskomponenten wie V hat. Dann sagen wir T ist G
aufspannend. Ist T darüberhinaus kreisfrei, so heißt T ein G aufspannender Wald oder ein Gerüst
von G . Ist G zusammenhängend und T ein Baum, so heißt T ein G aufspannender Baum.

Diese Definition ist offensichtlich auch für Multigraphen sinnvoll. Wir werden im Folgenden auch
bei Multigraphen von aufspannenden Bäumen sprechen.

Wir analysieren nun zwei schnelle Algorithmen, die in einem zusammenhängenden Graphen
einen aufspannenden Baum berechnen. Die im vorhergehenden Kapitel betrachteten Algorithmen

BFS und DFS kann man als Spezialfälle des zweiten Verfahrens betrachten.

Die Methode T.CreatingCycle(e) überprüfe zu einer kreislosen Kantenmenge T mit
e ∈ T , ob T + e einen Kreis enthält, T.AddEdge(e) füge zu T die Kante e hinzu.

Algorithmus 4.9. Sei E eine (beliebig sortierte) Liste der Kanten des Graphen ( V, E) und zu Anfang

T = /0 .

for e in E:

if not T.CreatingCycle(e):

T.AddEdge(e)

Lemma 4.4. Algorithmus 4.9 berechnet einen G aufspannenden Wald.

Beweis. Zu Anfang enthält T gewiss keinen Kreis. Da nie eine Kante hinzugefügt wird, die einen

Kreis schließt, berechnet der Algorithmus eine kreisfreie Menge, also einen Wald T . Wir haben
zu zeigen, dass zwischen zwei Knoten u, v genau dann ein Weg in T existiert, wenn er in G
existiert. Eine Implikation ist trivial: wenn es einen Weg in T gibt, so gab es den auch in G . Sei
also u = v 0 , v 1 , . . . , vk = v ein uv-Weg P in G. Angenommen u und v lägen in unterschiedlichen Komponenten von T . Sei dann vi der letzte Knoten auf P , der in T in der gleichen Komponente wie
u liegt. Dann ist e = ( vivi+1) ∈ E \ T . Als e im Algorithmus abgearbeitet wurde, schloss e folglich
mit T einen Kreis. Also gibt es in T einen Weg von vi nach vi+1 im Widerspruch dazu, dass sie in
verschiedenen Komponenten liegen.

2

Betrachten wir die Komplexität des Algorithmus, so hängt diese von einer effizienten Implemen-
tierung des Kreistests ab. Eine triviale Implementierung dieser Subroutine in O( |V |) Zeit labelt aus-
gehend von einem Endknoten u von e = ( u, v) alle Knoten, die in T von u aus erreichbar sind. Wird
v gelabelt, so schließt e einen Kreis mit T und sonst nicht. Dies führt aber zu einer Gesamtlaufzeit
von O( |V | · |E|). Um effizienter zu werden, müssen wir folgendes Problem schneller lösen:

Problem 4.1 (UNION-FIND). Sei V = { 1 , . . . , n} und eine initiale Partition in n triviale einele-
mentige Klassen V = { 1 } ˙ ∪ . . . ˙ ∪{n} gegeben. Wie sieht eine geeignete Datenstruktur aus, so dass
man folgende Operationen effizient auf einer gegebenen Partition ausführen kann?

4.3. Aufspannende Bäume

85

UNION

Gegeben seien x, y aus verschiedenen Klassen, vereinige diese Klassen.

FIND

Gegeben seien x, y ∈ V . Stelle fest, ob x und y in der gleichen Klasse liegen.

Was hat dieses Problem mit einer effizienten Implementierung von Algorithmus 4.9 zu tun? Zu je-
dem Zeitpunkt besteht Ti aus den Kanten eines Waldes. Die Knotenmengen seiner Zusammenhangs-
komponenten liefern die Klassen unserer Partition. Für den Kreistest genügt es dann zu prüfen, ob
die Endknoten x, y der Kante ( x, y) in der gleichen Klasse liegen. Ist dies nicht der Fall, so nehmen
wir e in Ti+1 auf und müssen die Klassen von x und y vereinigen.

Also benötigen wir für unseren Algorithmus zur Berechnung eines aufspannenden Waldes |E|

FIND und höchstens |V | − 1 UNION Operationen.

Wir stellen eine einfache Lösung dieses Problems vor. Jede Klasse hat eine Nummer, jeder

Knoten die Nummer seiner Klasse. In einem Array speichern wir einen Zeiger auf die Klasse jedes

Knotens. Die Klasse enthält eine Liste ihrer Knoten und zusätzlich einen Eintrag für die Anzahl der

Elemente der Klasse. Bei einer nicht mehr existierenden Nummer ist der Eintrag 0. Für eine FIND-

Operation benötigen wir dann nur einen Vergleich der Nummern der Klassen, also konstante Zeit.

Bei einer UNION-Operation erbt die kleinere Komponente die Nummer der größeren, wir datieren
die Nummern der Knoten in der kleineren Komponente auf und verschmelzen die Listen.

Klasse k

Elementzahl nk

Knoten v

Knoten v 1

Klasse k

...

Knoten vnk

Abb. 4.2 Eine einfache UNION-FIND Datenstruktur

Lemma 4.5. Die Kosten des Komponentenverschmelzens über den gesamten Lauf des Algorithmus
betragen akkumuliert O( |V | log |V |) .

Beweis. Wir beweisen dies mit vollständiger Induktion über n = |V |. Für n = 1 ist nichts zu zeigen.

Verschmelzen wir zwei Komponenten T 1 und T 2 der Größe n 1 ≤ n 2 mit n = n 1 + n 2 , dann ist n 1 ≤ n 2
und das Update kostet cn 1 . Addieren wir dies zu den Kosten für das Verschmelzen der einzelnen

Knoten zu T 1 und T 2 , die nach Induktionsvoraussetzung bekannt sind, erhalten wir
n
cn 1 + cn 1 log2 n 1 + cn 2 log2 n 2 ≤ cn 1 + cn 1 log2 + cn 2 log

2

2 n

= cn 1 + cn 1(log2 n − 1) + cn 2 log2 n

= cn log2 n.

2

Bemerkung 4.10. Die beste bekannte UNION-FIND Struktur geht auf R. Tarjan zurück. Die Laufzeit
ist dann beinahe linear. Man hat als Laufzeitkoeffizienten zusätzlich noch die so genannte Inverse
der Ackermann-Funktion, eine Funktion, die zwar gegen Unendlich wächst, aber viel langsamer als
log n , log log n etc. (siehe etwa [9]).

86

Kapitel 4. Bäume und Matchings

Unser zweiter Algorithmus sieht in etwa aus wie eine allgemeinere Version des Breadth-First-

Search Algorithmus. Auf Grund dieser Allgemeinheit beschreiben wir ihn nur verbal.

Algorithmus 4.11. Sei v ∈ V .

• Setze V 0 = {v}, T 0 = /0 , i = 0

• Solange es geht

Wähle eine Kante e = ( x, y) ∈ E mit x ∈ Vi, y ∈ Vi und setze Vi+1 = Vi ∪ {y}, Ti+1 =

Ti ∪ {e}, i = i + 1.

Lemma 4.6. Wenn Algorithmus 4.11 endet, dann ist T = Ti aufspannender Baum der Komponente
von G , die v enthält.

Beweis. Die Kantenmenge T ist offensichtlich zusammenhängend und kreisfrei und verbindet alle

Knoten in Vi . Nach Konstruktion gibt es keine Kante mehr, die einen Knoten aus Vi mit einem
weiteren Knoten verbindet.

2

Zwei Möglichkeiten, diesen Algorithmus zu implementieren, haben wir mit BFS und DFS ken-
nengelernt und damit an dieser Stelle deren Korrektheitsbeweise nachgeholt. Der zu BFS angege-
bene Algorithmus startet allerdings zusätzlich in jedem Knoten und überprüft, ob dieser in einer
neuen Komponente liegt. Indem wir Lemma 4.6 in jeder Komponente anwenden, haben wir auch
den fehlenden Teil des Beweises von Satz 3.27 nachgeholt.

4.4 Minimale aufspannende Bäume

Wir wollen nun ein einfaches Problem der Kombinatorischen Optimierung“ kennenlernen. Die

”

Kanten unseres Graphen sind zusätzlich mit Gewichten versehen. Sie können sich diese Gewichte
als Längen oder Kosten der Kanten vorstellen.

Betrachten wir etwa das Problem, eine Menge von Knoten kostengünstigst durch ein Netzwerk
zu verbinden. Dabei sind zwei Knoten miteinander verbunden, wenn es im Netzwerk einen Weg –
eventuell mit Zwischenknoten – vom einen zum anderen Knoten gibt.

Uns sind die Kosten der Verbindung zweier Nachbarn im Netzwerk bekannt, und wir wollen
jeden Knoten von jedem aus erreichbar machen und die Gesamtkosten minimieren.

Als abstraktes Problem erhalten wir dann das Folgende:

Problem 4.2. Sei G = ( V, E) ein zusammenhängender Graph und w : E → N eine nichtnegative

Kantengewichtsfunktion. Bestimme einen aufspannenden Teilgraphen T = ( V, F) , so dass
w( F) := ∑ w( e)

(4.3)

e∈F
minimal ist.

Bemerkung 4.12. Bei den Überlegungen zu Problem 4.2 macht es keinen wesentlichen Unterschied,
ob die Gewichtsfunktion ganzzahlig oder reell ist. Da wir im Computer mit beschränkter Stellenzahl
rechnen, können wir im praktischen Betrieb sowieso nur mit rationalen Gewichtsfunktionen umge-
hen. Multiplizieren wir diese mit dem Hauptnenner, ändern wir nichts am Verhältnis der Kosten,

4.4. Minimale aufspannende Bäume

87
insbesondere bleiben Optimallösungen optimal. Also können wir in der Praxis o. E. bei Problem 4.2
stets von ganzzahligen Daten ausgehen.

Da die Gewichtsfunktion nicht-negativ ist, können wir, falls eine Lösung Kreise enthält, aus
diesen so lange Kanten entfernen, bis die Lösung kreisfrei ist, ohne höhere Kosten zu verursachen.

Also können wir uns auf folgendes Problem zurückziehen:

Problem 4.3 (Minimaler aufspannender Baum (MST, von engl. Minimum Spanning Tree)).

Sei G = ( V, E) ein zusammenhängender Graph und w : E → N eine nichtnegative Kantengewichts-
funktion. Bestimme einen G aufspannenden Baum T = ( V, F) minimalen Gewichts w( F) .

Der vollständige Graph Kn mit n Knoten hat nn− 2 aufspannende Bäume, wie wir in Abschnitt 4.6
sehen werden. Eine vollständige Aufzählung ist also kein effizientes Verfahren. Ein solches gewin-
nen wir aber leicht aus Algorithmus 4.9. Der folgende Algorithmus heißt Greedy-Algorithmus (gree-
dy ist englisch für gierig), weil er stets lokal den besten nächsten Schritt tut. Eine solche Strategie ist
nicht immer zielführend, in diesem Falle aber schon, wie wir sehen werden. Der lokal beste nächste

Schritt ist hier die leichteste Kante, die mit dem bereits erzeugten Graphen keinen Kreis schließt.

Also sortieren wir zunächst die Kanten nicht-absteigend und wenden dann Algorithmus 4.9 an.

Algorithmus 4.13 (Greedy-Algorithmus (Kruskal)). Sortiere die Kanten so, dass
w( e 1) ≤ w( e 2) ≤ . . . ≤ w( em)

und führe Algorithmus 4.9 aus.

Satz 4.14. Der Greedy-Algorithmus berechnet einen minimalen aufspannenden Baum.

C 2
f

C1
g
e

Abb. 4.3 Zum Beweis von Satz 4.14. Kanten in ˜

T sind durchgezogen gezeichnet, die in T gestrichelt.

Beweis. Als spezielle Implementierung von Algorithmus 4.9 berechnet der Greedy-Algorithmus
einen aufspannenden Baum T . Angenommen es gäbe einen aufspannenden Baum ˜

T mit w( ˜

T ) <
w( T ) . Sei dann ein solches ˜

T so gewählt, dass |T ∩ ˜

T | maximal ist. Sei e die Kante mit kleinstem

Gewicht in T \ ˜

T . Dann schließt e in ˜

T nach Satz 4.1 einen Kreis C 1 (siehe Abbildung 4.3).

Nach Wahl von ˜

T muss nun w( f ) < w( e) für alle f ∈ C 1 \ T sein, denn sonst könnte man durch

Ersetzen eines solchen f mit w( f ) ≥ w( e) durch e einen Baum ˆ

T = ( ˜

T \ f ) + e konstruieren mit

88

Kapitel 4. Bäume und Matchings
w( ˆ

T ) ≤ w( ˜

T ) < w( T ) und |T ∩ ˆ

T | > |T ∩ ˜

T |. Sei nun f ∈ C 1 \ T . Da f vom Greedy-Algorithmus
verworfen wurde, schließt es mit T einen Kreis C 2 . Da die Kanten nach aufsteigendem Gewicht
sortiert wurden, gilt für alle g ∈ C 2 : w( g) ≤ w( f ). Sei g ∈ C 2 \ ˜

T . Dann ist g ∈ T \ ˜

T und
w( g) ≤ w( f ) < w( e). Also hat g ein kleineres Gewicht als e im Widerspruch zur Wahl von e.

2

Aufgabe 4.15. Sei G = ( V, E) ein zusammenhängender Graph, w : E → Z eine Kantengewichts-
funktion und H = ( V, T ) ein G aufspannender Baum. Zeigen Sie: H ist genau dann ein minimaler

G aufspannender Baum, wenn

∀ ¯ e ∈ E \ T ∀e ∈ C( T, ¯ e) : w( e) ≤ w(¯ e) ,
wenn also in dem nach Aufgabe 4.2 eindeutigen Kreis C( T, ¯
e) , den ¯
e mit T schließt, keine Kante
ein größeres Gewicht als ¯
e hat. Diese Bedingung ist als Kreiskriterium bekannt.

Lösung siehe Lösung 9.38.

Bemerkung 4.16. Man kann im Allgemeinen n Zahlen in O( n log n) Zeit sortieren, und man kann
zeigen, dass es schneller im Allgemeinen nicht möglich ist. Wir wollen im Folgenden diese Aussage
ohne Beweis voraussetzen und benutzen (siehe etwa [19, 9]).

Also benötigen wir hier für das Sortieren der Kanten O( |E| log( |E|)), und erhalten wegen

O(log( |E|)) = O(log( |V | 2)) = O(log( |V |))

mit unserer Implementierung von UNION-FIND ein Verfahren der Komplexität O(( |E| +

|V|)log( |V|)).

4.5 Die Algorithmen von Prim-Jarnik und Bor ˚uvka

Auch aus Algorithmus 4.11 können wir ein Verfahren ableiten, um minimale aufspannende Bäume
zu berechnen. Dieser Algorithmus ist nach Robert C. Prim benannt, der ihn 1957 wiederentdeckte.

Die erste Veröffentlichung dieses Verfahrens von Vojtech Jarnik war auf Tschechisch.

Algorithmus 4.17 (Prims Algorithmus). Sei v ∈ V .

• Setze V 0 = {v}, T 0 = /0 , i = 0

• Solange es geht

– Wähle eine Kante e = ( x, y) ∈ E mit x ∈ Vi, y ∈ Vi von minimalem Gewicht und setze

Vi+1 = Vi ∪ {y}, Ti+1 = Ti ∪ {e}, i = i + 1.

Bevor wir diskutieren, wie wir effizient die Kante minimalen Gewichts finden, zeigen wir
zunächst einmal die Korrektheit des Verfahrens.

Satz 4.18. Prims Algorithmus berechnet einen minimalen aufspannenden Baum.

Beweis. Als Spezialfall von Algorithmus 4.11 berechnet Prims Algorithmus einen aufspannenden

Baum. Im Verlauf des Algorithmus haben wir auch stets einen Baum, der v enthält. Dieser erhält in
jeder Iteration eine neue Kante. Wir zeigen nun mittels Induktion über die Anzahl der Iterationen:

4.5. Die Algorithmen von Prim-Jarnik und Bor˚uvka

89

Zu jedem Zeitpunkt des Algorithmus ist Ti in einem minimalen aufspannenden Baum enthalten.

Diese Aussage ist sicherlich zu Anfang für T 0 = /0 wahr. Sei nun soeben die Kante e zu Ti
hinzugekommen. Nach Induktionsvoraussetzung ist Ti \e in einem minimalen aufspannenden Baum

ˆ

T enthalten. Wenn dieser e enthält, so sind wir fertig. Andernfalls schließt e einen Kreis mit ˆ

T .

Dieser enthält neben e mindestens eine weitere Kante f , die die Knotenmenge von Ti \ e mit dem

Komplement dieser Knotenmenge verbindet. Nach Wahl von e ist
w( e) ≤ w( f )

und nach Aufgabe 4.2 ist ( ˆ

T + e) \ { f } ein aufspannender Baum und

w ( ˆ

T + e) \ f = w( ˆ

T ) + w( e) − w( f ) ≤ w( ˆ

T ) .

Da ˆ

T ein minimaler aufspannender Baum war, schließen wir w( e) = w( f ) und somit ist ( ˆ

T + e) \ f
ein minimaler aufspannender Baum, der Ti enthält.

2

Aufgabe 4.19. Sei G = ( V, E) ein zusammenhängender Graph. Ist S ⊆ V , so nennen wir die Kan-
tenmenge

∂ G( S) := {e ∈ E | |e ∩ S| = 1 }

den von S induzierten Schnitt. Allgemein nennen wir eine Kantenmenge D einen Schnitt in G ,
wenn es ein S ⊆ V gibt mit D = ∂ G( S). Sei nun ferner w : E → Z eine Kantengewichtsfunktion und

H = ( V, T ) ein G aufspannender Baum. Zeigen Sie:

a) Für alle e ∈ T ist die Menge

D( T, e) := { ¯ e ∈ E | ( T \ e) + ¯ e ist ein Baum }

ein Schnitt in G .

b) H ist genau dann ein minimaler G aufspannender Baum, wenn

∀e ∈ T ∀¯ e ∈ D( T,e) : w( e) ≤ w(¯ e) ,
wenn also e eine Kante mit kleinstem Gewicht ist, die die Komponenten von T \ e miteinander
verbindet. Diese Bedingung ist als Schnittkriterium bekannt.

Lösung siehe Lösung 9.39.

Kommen wir zur Diskussion der Implementierung von Prims Algorithmus. Sicherlich wollen wir
nicht in jedem Schritt alle Kanten überprüfen, die aus T herausführen. Statt dessen merken wir
uns stets die kürzeste Verbindung aus T zu allen Knoten außerhalb von T in einer Kantenmenge

F. Zu dieser Kantenmenge haben wir als neue Methode F.MinimumEdge(weight), die aus F
eine Kante minimalen Gewichts liefert. Wenn wir diese Datenstruktur aufdatieren, müssen wir nur
alle Kanten, die aus dem neuen Baumknoten herausführen, daraufhin überprüfen, ob sie eine kürzere

Verbindung zu ihrem anderen Endknoten aus T heraus herstellen. Wir erhalten also folgenden Code:

T=[]

F=[]

for w in G.Neighborhood(v):

90

Kapitel 4. Bäume und Matchings

F.AddEdge((v,w))

pred[w] = v
while not T.IsSpanning():

(u,v) = F.MinimumEdge(weight)

F.DeleteEdge((u,v))

T.AddEdge((u,v))

for w in G.Neighborhood(v):

if not T.Contains(w) and weight[(pred[w],w)] > weight[(w,v)]:

F.DeleteEdge((pred[w],w))

F.AddEdge((w,v))

pred[w] = v

Dabei gehen wir davon aus, dass vor Ausführung des Algorithmus die Felder pred für alle Kno-
ten mit pred[v]=v und weight[(v,v)] mit unendlich initialisiert worden sind. Die Kanten
fassen wir hier als gerichtet auf, dass heißt in (u,v) = F.MinimumEdge(weight) ist u ein

Knoten innerhalb des Baumes und v ein Knoten auf der anderen “ Seite.

”

Auf diese Weise wird jede Kante in genau einer der beiden for-Schleifen genau einmal un-
tersucht. Die Kosten für das Aufdatieren von F sind also O( |E|). Die while-Schleife wird
nach Satz 4.1 genau ( |V | − 1 |)- mal durchlaufen. Für die Laufzeit bleibt die Komplexität von

F.minimumEdge(weight) zu betrachten. Hier wird aus einer Menge von O( |V |) Kanten das

Minimum bestimmt. Man kann nun die Daten, etwa in einer so genannten Priority Queue so orga-
nisieren, dass |F| stets geordnet ist. Das Einfügen einer Kante in F kostet dann O(log |F|) und das

Löschen und Finden des Minimums benötigt ebenso O(log |F|). Für Details verweisen wir auf [9].

Als Gesamtlaufzeit erhalten wir damit

O( |E| log |V |) .

Aufgabe 4.20. Zeigen Sie: In jeder Implementierung ist die Laufzeit von Prims Algorithmus von
unten durch Ω ( |V | log |V |) beschränkt. Weisen Sie dazu nach, dass man mit Prims Algorithmus |V |

Zahlen sortieren kann.

Lösung siehe Lösung 9.40.

Als letztes stellen wir das älteste Verfahren vor, das schon 1926 von Otakar Bor˚uvka, ebenfalls
auf Tschechisch, publiziert wurde. Dazu zunächst noch eine vorbereitende Übungsaufgabe.

Aufgabe 4.21. Sei G = ( V, E) ein zusammenhängender Graph und w : E → Z eine Kantengewichts-
funktion. Zeigen Sie:

a) Ist T ein minimaler G aufspannender Baum und S ⊆ E( T ), so ist T \ S ein minimaler aufspan-
nender Baum von G/S (vgl. Definition 3.16).

b) Ist darüberhinaus w injektiv, und sind also alle Kantengewichte verschieden so ist die Menge S
der Kanten, die aus den (eindeutigen) Kanten kleinsten Gewichts an jedem Knoten besteht, in
dem eindeutigen minimalen aufspannenden Baum enthalten.

Lösung siehe Lösung 9.41.

Der Algorithmus von Bor˚uvka verfährt nun wie folgt. Wir gehen zunächst davon aus, dass

G = ( V, E) ein Multigraph mit einer injektiven Gewichtsfunktion ist.

4.5. Die Algorithmen von Prim-Jarnik und Bor˚uvka

91

Algorithmus 4.22 (Bor˚uvkas Algorithmus). Setze T = /0 .

• Solange G noch mehr als einen Knoten hat:

Jeder Knoten markiert die Kante minimalen Gewichts, die zu ihm inzident und keine Schleife
ist.

Füge alle markierten Kanten S zu T hinzu und setze G = G/S .

Hierbei interpretieren wir die Kanten in T am Ende als Kanten des ursprünglichen Graphen G .

Satz 4.23. Bor˚uvkas Algorithmus berechnet den eindeutigen minimalen aufspannenden Baum von

G .

Beweis. Wir zeigen per Induktion über die Anzahl der Iterationen, dass T in jedem minimalen
aufspannenden Baum enthalten ist. Solange T leer ist, ist dies gewiss richtig. Sei also T in jedem
minimalen aufspannenden Baum enthalten und S wie beschrieben. Nach Aufgabe 4.21 b) ist S in
dem eindeutigen aufspannenden Baum ˜

T von G/T enthalten. Sei nun ˆ

T ein minimaler aufspannen-
der Baum von G , also T ⊆ ˆ

T . Nach Aufgabe 4.21 a) ist ˆ

T \ T ein minimaler aufspannender Baum
von G/T . Wir schließen ˆ

T \ T = ˜

T . Insgesamt erhalten wir wie gewünscht S ∪ T ⊆ ˜

T .

Da in jedem Schritt die Anzahl der Knoten mindestens halbiert wird, berechnet man in höchstens
log |

2 V | Schritten eine Kantenmenge T , die ein aufspannender Baum ist und in jedem minimalen
aufspannenden Baum enthalten ist. Also ist dieser Baum eindeutig.

2

Bemerkung 4.24. Die Bedingung, dass w injektiv ist, ist keine wirkliche Einschränkung. Wird ein

Kantengewicht mehrfach angenommen, so kann man z. B. die Nummer der Kante dazu benutzen, in
der Ordnung auf den Kantengewichten überall eine echte Ungleichung“ zu haben, was das Einzige

”

ist, was in Aufgabe 4.21 b) benutzt wurde.

Wie wir oben bereits bemerkt hatten, wird in jeder Iteration die Anzahl der Knoten mindestens
halbiert, also haben wir höchstens log2( |V |) Iterationen. Für die Kontraktion müssen wir bei O( |E|)

Kanten die Endknoten aufdatieren und erhalten (wenn wir davon ausgehen, dass |V | = O( |E|) ist)

als Gesamtlaufzeit

O( |E| log |V |) .

Beispiel 4.25. Wir betrachten die geometrische Instanz in Abbildung 4.4 mit 13 Knoten. Darauf
betrachten wir den vollständigen Graphen, wobei die Kantengewichte durch die Entfernung in der

Zeichnung gegeben seien. In der linken Grafik haben wir einige Kanten eingezeichnet. Diejenigen,
die wir weggelassen haben sind so lang, dass sie für einen minimalen aufspannenden Baum auch
nicht in Frage kommen.

In der mittleren Figur haben wir die Kanten in der Reihenfolge nummeriert, in der sie der

Greedy-Algorithmus in den minimalen aufspannenden Baum aufnimmt. Dabei ist die Reihenfolge
der zweiten, dritten und vierten sowie der achten und neunten vertauschbar, da diese alle jeweils die
gleiche Länge haben. Wir gehen im Folgenden davon aus, dass die früher gewählten Kanten eine
kleinere Nummer haben.

Die Nummerierung im Baum ganz rechts entspricht der Reihenfolge, in der Prims Algorithmus
die Kanten in den Baum aufnimmt, wenn er im obersten Knoten startet. Hier ist die Reihenfolge
eindeutig.

92

Kapitel 4. Bäume und Matchings

12

1

4

5

2

3

11

4

6

7

6

5

8

7

9

10

9

11

3

12

2

10

1

8

Abb. 4.4 Kruskal und Prim

Abb. 4.5 Bor˚uvka

In Abbildung 4.5 haben wir den Verlauf des Algorithmus von Bor˚uvka angedeutet. Es kommt hier
nicht zum Tragen, dass die Kantengewichtsfunktion nicht injektiv ist. In der ersten Iteration sind die
markierten Kanten, die fett gezeichneten Kanten in den ersten beiden Bäumen. Im mittleren Baum
haben wir Kanten eliminiert, die nach der Kontraktion entweder Schleifen oder parallel zu kürzeren

Kanten sind. Im Baum rechts erkennt man, dass der Algorithmus bereits nach der zweiten Iteration
den minimalen aufspannenden Baum gefunden hat.

Aufgabe 4.26. Sei V = { 1 , 2 , . . . , 30 } und G = ( V, E) definiert durch
e = ( i, j) ∈ E ⇐⇒ i | j oder j | i
der Teilbarkeitsgraph. Die Gewichtsfunktion w sei gegeben durch den ganzzahligen Quotienten ji
bzw. i .

j

Geben Sie die Kantenmengen und die Reihenfolge ihrer Berechnung an, die die Algorithmen
von Kruskal, Prim und Bor˚uvka berechnen. Bei gleichen Kantengewichten sei die mit den kleineren

Knotennummern die Kleinere.

Lösung siehe Lösung 9.42.

4.6. Die Anzahl aufspannender Bäume

93

4.6 Die Anzahl aufspannender Bäume

Wir hatten zu Anfang unserer Überlegungen zu minimalen aufspannenden Bäumen angekündigt
nachzuweisen, dass der Kn nn− 2 aufspannende Bäume hat. Da Kanten unterschiedliche Gewichte
haben können, betrachten wir dabei isomorphe aber nicht identische Bäume als verschieden, wir
nennen diese knotengelabelte Bäume.

Die Formel wurde 1889 von Cayley entdeckt und ist deswegen auch unter dem Namen Cayley-

Formel bekannt. Der folgende Beweis ist allerdings 110 Jahre jünger, er wurde erst 1999 von Jim

Pitman publiziert und benutzt die Methode des doppelten Abzählens. Anstatt knotengelabelte Bäume
zu zählen, zählen wir knoten- und kantengelabelte Wurzelbäume. Darunter verstehen wir einen

Wurzelbaum zusammen mit einer Nummerierung seiner Kanten. Da es ( n − 1)! Möglichkeiten gibt,
die Kanten zu nummerieren und weitere n Möglichkeiten gibt, die Wurzel auszuwählen, entspricht
ein knotengelabelter Baum insgesamt n! knoten- und kantengelabelten Wurzelbäumen. Dies halten
wir fest:

Proposition 4.1. Jeder knotengelabelte Baum mit n Knoten gibt Anlass zu genau n! knoten- und
kantengelabelten Wurzelbäumen.

Wir zählen nun die knoten- und kantengelabelten Wurzelbäume, indem wir die Nummerierung
der Kanten als dynamischen Prozess interpretieren. Im ersten Schritt haben wir n isolierte Knoten.

Diese interpretieren wir als n (triviale) Wurzelbäume und fügen eine gerichtete Kante hinzu, so
dass daraus n − 1 Wurzelbäume entstehen. Im k -ten Schritt haben wir n − k + 1 Wurzelbäume und
fügen die k -te gerichtete Kante hinzu (siehe Abbildung 4.6). Diese Kante darf von einem beliebigen

Knoten in einem der Wurzelbäume ausgehen, darf aber wegen Aufgabe 4.3 nur in der Wurzel eines
der n − k übrigen Wurzelbäume enden.

Lemma 4.7. Es gibt genau n! nn− 2 knoten- und kantengelabelte Wurzelbäume mit n Knoten.

Beweis.

Die eben beschriebenen Wahlmöglichkeiten waren alle unabhängig voneinander. Also
erhalten wir die Anzahl der knoten- und kantengelabelte Wurzelbäume als
n− 1

∏ n( n−k) = nn− 1( n− 1)! = nn− 2 n! .

k=1

2

Fassen wir Proposition 4.1 und Lemma 4.7 zusammen, so erhalten wir:

Satz 4.27 (Cayley-Formel). Die Anzahl der knotengelabelten Bäume mit n Knoten ist nn− 2 .

2

Aufgabe 4.28. Sei G = Kn der vollständige Graph mit n Knoten und e eine feste Kante. Zeigen Sie:

Die Anzahl der knotengelabelten Bäume von G , die die Kante e enthalten, ist 2 nn− 3 .

Lösung siehe Lösung 9.43.

94

Kapitel 4. Bäume und Matchings

Abb. 4.6 Wenn man den quadratischen Knoten als Startknoten für die dreizehnte Kante auswählt, hat man 5 =

18 − 13 = 6 − 1 Möglichkeiten, einen Endknoten auszusuchen, die wir durch die gepunkteten Kanten angedeutet
haben.

4.7 Bipartites Matching

Wir betrachten nun Zuordnungsprobleme. Der Einfachheit halber betrachten wir nur Aufgabenstel-
lungen, bei denen Elementen aus einer Menge U jeweils ein Element aus einer Menge V unter
gewissen Einschränkungen zugeordnet werden soll.

Beispiel 4.29. a) In einer geschlossenen Gesellschaft gibt es m heiratsfähige Männer und n hei-
ratsfähige Frauen. Die Frauen haben jeweils eine Liste der akzeptablen Partner. Verheirate
möglichst viele Paare unter Beachtung der Akzeptanz und des Bigamieverbots.

b) An einer Universität bewerben sich Studenten für verschiedene Studiengänge, wobei die Indivi-
duen sich für mehrere Studiengänge bewerben. Die Anzahl der Studienplätze in jedem Fach ist
begrenzt. Finde eine Zuordnung der Studenten zu den Studiengängen, so dass die Wünsche der

Studenten berücksichtigt werden und möglichst viele Studienplätze gefüllt werden.

In beiden Situationen haben wir es mit einem bipartiten Graphen zu tun, der im ersten Fall die

Neigungen der Damen und im zweiten die Wünsche der Studenten modelliert:

Definition 4.8. Sei G = ( W, E) ein Graph. Dann heißt G bipartit, wenn es eine Partition W = U ˙

∪V
gibt, so dass alle Kanten je einen Endknoten in beiden Klassen haben. Wir nennen dann U und V
die Farbklassen von G .

Sie haben in Beispiel 3.12 bereits die vollständigen bipartiten Graphen Km,n kennen gelernt.

Allgemeine bipartite Graphen lassen sich aber auch sehr leicht charakterisieren.

Proposition 4.2. Ein Graph G = ( W, E) ist bipartit genau dann, wenn er keinen Kreis ungerader

Länge hat.

Beweis. Ist G bipartit, so müssen die Knoten jedes Kreises abwechselnd in U und in V liegen. Da
der Kreis geschlossen ist, muss er also gerade Länge haben.

4.7. Bipartites Matching

95

Sei nun G ein Graph, in dem alle Kreise gerade Länge haben. Ohne Beschränkung der Allge-
meinheit nehmen wir an, dass G zusammenhängend ist. Ansonsten machen wir das Folgende in
jeder Komponente. Sei v ∈ W . Wir behaupten zunächst, dass für alle w ∈ W jeder vw-Weg entwe-
der stets gerade oder stets ungerade Länge hat. Denn angenommen P wäre ein vw -Weg der Länge

2 k und Q ein vw -Weg der Länge 2 k + 1 . Dann ist die symmetrische Differenz

PΔ Q := ( P ∪ Q) \ ( P ∩ Q)

eine Menge mit ungerade vielen Elementen, denn

|PΔ Q| = |P| + |Q| − 2 |P ∩ Q| = 2( k + k − |P ∩ Q|) + 1 .

Wir untersuchen nun, welche Knotengrade in dem von PΔ Q gebildeten Teilgraphen von G auftreten
können. Sowohl in P als auch in Q haben u und w jeweils den Knotengrad 1 und alle anderen

Knoten entweder Knotengrad 0 oder Knotengrad 2. Also haben in PΔ W alle Knoten den Knotengrad

0, 2 oder 4, insbesondere ist H = ( W, PΔ Q) eulersch und somit nach Satz 3.40 kantendisjunkte

Vereinigung von Kreisen. Da die Gesamtzahl der Kanten in PΔ Q aber ungerade ist, muss unter
diesen Kreisen mindestens einer ungerader Länge sein im Widerspruch zur Voraussetzung. Also hat
für alle w ∈ W jeder vw-Weg entweder stets gerade oder stets ungerade Länge.

Seien nun U ⊆ W die Knoten u, für die alle uv-Wege ungerade Länge haben und V die Knoten
mit gerader Distanz von v . Angenommen, es gäbe eine Kante e zwischen zwei Knoten u 1 , u 2 in

U . Ist dann P ein vu 1 Weg, so ist PΔ ( u 1 , u 2) ein vu 2 -Weg gerader Länge im Widerspruch zum

Gezeigten. Analog gibt es auch keine Kanten zwischen Knoten in V . Also ist G bipartit.

2

Die Zuordnungsvorschriften in Beispiel 4.29 kann man auch für beliebige Graphen definieren.

Definition 4.9. Sei G = ( V, E) ein Graph. Eine Kantenmenge M ⊆ E heißt ein Matching in G, falls
für den Graphen GM = ( V, M) gilt

∀v ∈ V : deg G ( v) ≤ 1 .

(4.4)

M

Wir sagen u ist mit v gematched, wenn ( u, v) ∈ M , und nennen einen Knoten gematched, wenn er
mit einer Matchingkante inzident ist, und ansonsten ungematched.

Gilt in (4.4) stets Gleichheit, so nennen wir das Matching perfekt. Wir bezeichnen (4.4) auch als

Bigamieverbot.

Bei der Bestimmung von Matchings mit maximal vielen Kanten ist nun die Greedy-Strategie,
die bei aufspannenden Bäumen so erfolgreich war, kein probates Mittel. Betrachten wir etwa den

Graphen in Abbildung 4.7 mit der fett gezeichneten Kante als Matching, so kann man zu dieser

Kante keine weitere Kante hinzunehmen, ohne das Bigamieverbot zu verletzen.

Hingegen gibt es offensichtlich Matchings mit zwei Kanten. Um eine intelligentere Strategie zu
entwickeln, betrachten wir den Unterschied zwischen einem Matching und einem Matching mit einer

Kante mehr.

Seien also M, M Matchings in G = ( V, E) und |M| > |M|. Wiederum analysieren wir die

Knotengrade in ( V, MΔ M) . Da die Knotengrade in M wie in M nur 0 und 1 sind, kommen
als Knotengrade in ( V, MΔ M) nur 0 , 1 und 2 in Frage. Also besteht ( V, MΔ M) aus isolierten

Knoten, Pfaden und Kreisen. In den Kreisen müssen sich aber stets Kanten aus M mit Kanten aus M

96

Kapitel 4. Bäume und Matchings

Abb. 4.7 Ein inklusionsmaximales Matching
abwechseln, also müssen diese immer gerade Länge haben. Da aber M mehr Elemente als M hat,
muss es unter den Wegen einen geben, der mehr Kanten in M als in M hat. Auch umgekehrt kann
man aus einem solchen Weg stets ein größeres Matching konstruieren. Dafür führen wir zunächst
einmal den Begriff des augmentierenden Weges ein:

Definition 4.10. Sei G = ( V, E) ein (nicht notwendig bipartiter) Graph und M ⊆ E ein Matching.

Ein Weg P = v 0 v 1 v 2 . . . vk heißt M -alternierend, wenn seine Kanten abwechselnd in M und außer-
halb von M liegen. Der Weg P ist M -augmentierend, wenn darüber hinaus die beiden Randknoten
v 0 und vk ungematched sind. Insbesondere ist dann k ungerade und vivi+1 ∈ M genau dann, wenn

1 ≤ i ≤ k − 2 und i ungerade.

Satz 4.30. Sei G = ( V, E) ein (nicht notwendig bipartiter) Graph und M ⊆ E ein Matching. Dann
ist M genau dann von maximaler Kardinalität, wenn es keinen M -augmentierenden Weg in G gibt.

Beweis. Wir zeigen die Kontraposition dieses Satzes, also, dass M genau dann nicht maximal
ist, wenn es einen M -augmentierenden Weg gibt. Wir haben vor der letzten Definition bereits
gezeigt, dass, wenn M ein Matching von G mit |M| > |M| ist, MΔ M einen M -augmentierenden

Weg enthält. Sei also nun umgekehrt P ein M -augmentierender Weg in G . Wir untersuchen die

Kantenmenge M := MΔ P . Da Anfangs- und Endknoten von P ungematched und verschieden sind,
aber P ansonsten zwischen Matching- und Nichtmatchingkanten alterniert, hat H = ( V, M) überall

Knotengrad 0 oder 1, also ist M ein Matching und enthält eine Kante mehr als M .

2

Wir haben nun das Problem, ein maximales Matching zu finden, auf das Bestimmen eines
augmentierenden Weges reduziert. Wie findet man nun einen augmentierenden Weg? In allgemeinen

Graphen wurde dieses Problem erst 1965 von Jack Edmonds gelöst. Wir wollen darauf hier nicht
näher eingehen. In bipartiten Graphen ist die Lage viel einfacher, da ein M -augmentierender Weg
stets die Endknoten in unterschiedlichen Farbklassen haben muss:

Proposition 4.3. Sei G = ( U ˙

∪V,E) ein bipartiter Graph, M ein Matching in G und P =
v 0 v 1 v 2 . . . vk ein M -augmentierender Weg in G. Dann gilt
v 0 ∈ U ⇔ vk ∈ V.

Beweis. Wie oben bemerkt, ist k ungerade. Ist v 0 ∈ U , so ist v 1 ∈ V und induktiv schließen wir,
dass alle Knoten mit geradem Index in U und alle mit ungeradem Index in V liegen. Insbesondere
gilt letzteres für vk . Analog impliziert v 0 ∈ V auch vk ∈ U .

2

4.7. Bipartites Matching

97

Wenn wir also alle Kanten, die nicht in M liegen, von U nach V richten, und alle Kanten in M
von V nach U , so wird aus P ein gerichteter Weg von einem ungematchten Knoten in U zu einem
ungematchten Knoten in V . Da P beliebig war, ist dies unser Mittel der Wahl. Das Schöne an dem
folgenden Verfahren ist, dass es, wenn es keinen augmentierenden Weg findet, einen Beweis“ dafür

”

liefert, dass es einen solchen auch nicht geben kann.

Algorithmus 4.31 (Find-Augmenting-Path). Input des Algorithmus ist ein bipartiter Graph G =

( U ˙

∪V,E) und ein Matching M ⊆ E . Output ist entweder ein Endknoten eines M-augmentierenden

Weges oder ein Zertifikat“ C für die Maximalität von M . In der Queue Q merken wir uns die

”

noch zu bearbeitenden Knoten. Wir gehen davon aus, dass in einer Initialisierung alle Zeiger des

Vorgängerfeldes pred mit None initialisiert worden sind und C die leere Liste ist. Bei Rückgabe
eines Endknotens, kann man aus diesem durch Rückverfolgen der Vorgänger den augmentierenden

Weg konstruieren.

for u in U:

if not M.matches(u):

Q.Append(u)

pred[u]=u
while not Q.IsEmpty():

u=Q.Top()

for v in G.Neighborhood(u):

if pred[v]==None:

pred[v]=u
if not M.IsMatched(v):

return v
else:

s=M.Partner(v)

Q.Append(s)

pred[s]=v
for all u in U:

if pred[u]==None:

C.Append(u)

for all v in V:

if pred[v]!=None:

C.Append(v)

Zunächst initialisieren wir Q mit allen ungematchten Knoten u in U . Dann untersuchen wir deren

Nachbarn v und setzen u als ihren Vorgänger ein. Finden wir darunter ein ungematchtes v, so wurde
schon ein augmentierender Weg gefunden. Ansonsten sei s sein Matchingpartner. Der Knoten s
kann bisher noch nicht bearbeitet worden sein, wir hängen ihn an die Warteschlange und setzen
seinen Vorgänger auf v. So fahren wir fort, bis wir entweder einen ungematchten Knoten in V
finden oder die Schlange Q leer ist.

Findet das Verfahren keinen augmentierenden Weg mehr, so sammeln wir in C den Beweis“ der

”

Maximalität des Matchings. Warum dies ein Beweis der Maximalität ist, werden wir in Lemma 4.8
und Satz 4.33 erfahren.

98

Kapitel 4. Bäume und Matchings

Beispiel 4.32. Wir starten unseren Algorithmus mit dem Matching in Abbildung 4.7.

Zunächst stellen wir u 1 und u 3 in die Warteschlange und setzen pred( u 1 )= u 1 und
pred( u 3 )= u 3 . Ausgehend vom Knoten u 1 finden wir v 2 , setzen pred( v 2 )= u 1 und stellen
dessen Matchingpartner u 2 in die Schlange mit pred( u 2 )= v 2 . Von u 3 aus finden wir keinen neu-
en Knoten, aber von u 2 aus den ungematchten Knoten v 1 , dessen Vorgänger wir auf pred( v 1 )= u 2
setzen und den wir zurückliefern. Durch Rückverfolgen der Vorgängerfunktion finden wir u 1 v 2 u 2 v 1
als M -augmentierenden Weg und ersetzen die bisherige Matchingkante durch ( u 1 v 2) und ( u 2 v 1).

u
v

1

1
u
v

2

2
u 3
v 3

Abb. 4.8 Zwei Durchläufe der Suche nach einem erweiternden Weg

Wir löschen nun wieder alle Vorgänger, d.h. wir setzen pred auf NULL und stellen u 3 in die

Schlange, finden von dort aus v 2 , dessen Matchingpartner u 1 in die Schlange aufgenommen wird.

Von u 1 aus finden wir nichts Neues und die Warteschlange ist erfolglos abgearbeitet worden. Der
einzige Knoten ohne gesetzten Vorgänger in U ist u 2 und der einzige mit gesetztem Vorgänger in V
ist v 2 . Also ist C= {u 2 , v 2 }.

Proposition 4.4. Findet die Prozedur Find Augmenting Path“ einen ungematchten Knoten v , so

”

erhält man durch Rückverfolgen des pred -Arrays einen M -augmentierenden Weg.

Beweis. Der Knoten w wurde von einem Knoten u in U aus gelabelt. Dieser ist entweder selber
ungematched, also uw ein M -augmentierender Weg, oder wir suchen vom Matchingpartner von u an

Stelle von w weiter. Da die Knotenmenge endlich ist und das Verfahren wegen der Vorgängerabfrage
in der 8. Zeile nicht zykeln kann, muss es in einem augmentierenden Weg enden.

2

Im Folgenden wollen wir klären, inwiefern die Liste C ein Beweis dafür ist, dass es keinen
augmentierenden Weg mehr gibt. Dafür zunächst noch eine Definition:

Definition 4.11. Sei G = ( V, E) ein (nicht notwendig bipartiter) Graph und C ⊆ V . Dann heißt C
kantenüberdeckende Knotenmenge oder kürzer Knotenüberdeckung (engl. vertex cover), wenn für
alle e ∈ E gilt: C ∩ e = /0.

Lemma 4.8. Liefert das Verfahren eine Knotenliste C zurück, so ist | C | = |M| und C ist eine
kantenüberdeckende Knotenmenge.

Beweis. C besteht aus allen unerreichten Knoten in U und allen erreichten Knoten in V . Also sind
alle Knoten in C ∩ U gematched, da ungematchte Knoten zu Beginn in Q aufgenommen werden,
und alle Knoten in C ∩ V sind gematched, da kein ungematchter Knoten in V gefunden wurde.

Andererseits sind die Matchingpartner von Knoten in V ∩ C nicht in C, da diese ja in Q aufgenommen
wurden. Somit gilt

∀m ∈ M : | C ∩ m| ≤ 1 .

4.7. Bipartites Matching

99

Da M ein Matching ist und somit kein Knoten zu 2 Kanten in M inzident sein kann, schließen wir
hieraus

| C | ≤ |M|.

Wir zeigen nun, dass C eine kantenüberdeckende Knotenmenge ist. Angenommen, dies wäre
nicht so und e = (u,v) eine Kante mit { u,v } ∩ C = /0. Dann ist pred[v]=None, aber
pred[u] = None. Als aber pred[u] gesetzt wurde, wurde u gleichzeitig in Q aufgenommen,
also irgendwann auch mal abgearbeitet. Dabei wurde bei allen Nachbarn, die noch keinen Vorgänger
hatten, ein solcher gesetzt, insbesondere auch bei v, im Widerspruch zu pred[v]=None. Also ist

C eine Knotenüberdeckung.

Schließlich folgt | C | ≥ |M| aus der Tatsache, dass kein Knoten zwei Matchingkanten überdecken
kann.

2

Den folgenden Satz haben wir damit im Wesentlichen schon bewiesen:

Satz 4.33 (Satz von König 1931). In bipartiten Graphen ist
max {|M| | M ist Matching } = min {|C| | C ist Knotenüberdeckung} .

Beweis. Da jeder Knoten einer Knotenüberdeckung C höchstens eine Matchingkante eines Mat-
chings M überdecken kann, gilt stets |M| ≤ |C|, also auch im Maximum. Ist nun M ein maxi-
males Matching, so liefert die Anwendung von Algorithmus 4.31 eine Knotenüberdeckung C mit

|C| = |M|. Also ist eine minimale Knotenüberdeckung höchstens so groß wie ein maximales Mat-
ching.

2

Bemerkung 4.34. In allgemeinen Graphen ist das Problem der minimalen Knotenüberdeckung NP-
vollständig.

Wir stellen nun noch zwei Varianten des Satzes von König vor. Dafür führen wir den Begriff der

Nachbarschaft von Knoten ein.

Definition 4.12. Ist G = ( V, E) ein (nicht notwendig bipartiter) Graph und H ⊆ V , so bezeichnen
wir mit NG( H) bzw. N( H) die Nachbarschaft von H

N( H) := {v ∈ V | ∃u ∈ H : ( u, v) ∈ E}.

Korollar 4.35 (Heiratssatz von Frobenius 1917). Sei G = ( U ˙

∪V,E) ein bipartiter Graph. Dann
hat G genau dann ein perfektes Matching, wenn |U| = |V | und

∀H ⊆ U : |N( H) | ≥ |H|.

(4.5)

Beweis. Hat G ein perfektes Matching und ist H ⊆ U , so liegt der Matchingpartner jedes Knotens
in H in der Nachbarschaft von H , die also gewiss mindestens so groß wie H sein muss. Die

Bedingung |U| = |V | ist bei Existenz eines perfekten Matchings trivialerweise erfüllt.

Die andere Implikation zeigen wir mittels Kontraposition. Wir nehmen an, dass G keine isolierten

Knoten hat, denn sonst ist (4.5) offensichtlich verletzt. Hat G kein perfektes Matching und ist

|U| = |V| so hat G nach dem Satz von König eine Knotenüberdeckung C mit |C| < |U|. Wir setzen

H = U \C . Da C eine Knotenüberdeckung ist, ist

N( H) ⊆ C ∩V.

100

Kapitel 4. Bäume und Matchings

Also ist

|N( H) | ≤ |C ∩V| = |C| − |C ∩U| < |U| − |C ∩U| = |U \C| = H.

Also verletzt H (4.5).

2

Der Name Heiratssatz kommt von der Interpretation wie in Beispiel 4.29. Wenn alle Frauen nur

Supermann heiraten wollen, bleiben einige ledig.

Die letzte Variante des Satzes von König ist eine asymmetrische Version des Satzes von Frobeni-
us:

Satz 4.36 (Heiratssatz von Hall). Sei G = ( U ˙

∪V,E) ein bipartiter Graph. Dann hat G ein Mat-
ching, in dem alle Knoten in U gematched sind, genau dann, wenn

∀H ⊆ U : |N( H) | ≥ |H|.

(4.6)

Beweis.

Wie im Satz von Frobenius ist die Notwendigkeit der Bedingung offensichtlich. Wir
können ferner davon ausgehen, dass |U| ≤ |V | ist, da ansonsten sowohl die Nichtexistenz eines
gewünschten Matchings als auch die Verletzung von (4.6) offensichtlich ist. Wir fügen nun |V |−|U|

Dummyknoten zu U hinzu, die alle Knoten in V kennen, und erhalten den bipartiten Graphen

˜

G = ( ˜

U ˙

∪V, ˜ E), der offensichtlich genau dann ein perfektes Matching hat, wenn G ein Matching
hat, das alle Knoten in U matched. Hat ˜

G kein perfektes Matching, so gibt es nach dem Satz von

Frobenius eine Menge H ⊆ ˜

U mit |N ˜ ( H) | < |H|. Da die Dummyknoten alle Knoten in V kennen,

G
muss H ⊆ U sein und also

|NG( H) | = |N ˜( H) | < |H|.

G

2

Wir wollen diesen Abschnitt beschließen mit dem nun hoffentlich offensichtlichen Algorithmus
zur Bestimmung eines maximalen Matchings in einem bipartiten Graphen und der Analyse seiner

Laufzeit.

Algorithmus 4.37 (Bipartites Matching). Starte mit einem leeren Matching und setze C=[].

while C==[]:

(C,w)=FindAugmentingPath(M)

if C==[]:

P=BackTrackPath(w)

Augment(M,P)

Wir können offensichtlich höchstens min {|U|, |V |} Matchingkanten finden, also wird die while-

Schleife O(min {|U|, |V |})-mal ausgeführt. Die Prozedur Find-Augmenting-Path besteht im We-
sentlichen aus einer Breitensuche in dem Digraphen, der aus G entsteht, wenn Matchingkanten

Rückwärtskanten“ und die übrigen Kanten Vorwärtskanten“, also von U nach V orientiert sind.

”

”

Der Aufwand beträgt also O( |E|). Für das Backtracking und die Augmentierung zahlen wir noch-
mal je O(min {|U|, |V |}), wenn wir davon ausgehen, dass min {|U|, |V |} = O( |E|) ist, geht dieser

Term in O( |E|) auf und wir erhalten als Gesamtlaufzeit

O(min {|U|, |V |}|E|) .

4.8. Stabile Hochzeiten

101

Bemerkung 4.38. Mit etwas, aber nicht viel mehr, Aufwand berechnet ein Algorithmus von Hopcroft

und Tarjan ein maximales bipartites Matching in O(

|V||E|).

Aufgabe 4.39. Bestimmen Sie in dem Graphen in Abbildung 4.9 ein maximales Matching und eine
minimale Knotenüberdeckung. Lösung siehe Lösung 9.44.

Abb. 4.9 Ein bipartiter Graph

Aufgabe 4.40. Betrachten Sie ein Schachbrett, auf dem einige Felder markiert sind. Auf den markier-
ten Feldern sollen Sie nun möglichst viele Türme platzieren, so dass sich keine zwei davon schlagen
können. Zeigen Sie:

Die Maximalzahl der Türme, die man auf den markierten Feldern platzieren kann, ohne dass
zwei sich schlagen können ist gleich der minimalen Summe der Anzahl der Zeilen und Spalten,
die man auswählen kann, so dass jedes markierte Feld in einer ausgewählten Spalte oder in einer
ausgewählten Zeile liegt.

Lösung siehe Lösung 9.45.

Aufgabe 4.41. Eine Permutationsmatrix ist eine Matrix P ∈ { 0 , 1 }n×n , bei der in jeder Zeile und

Spalte jeweils genau eine 1 und sonst nur Nullen stehen.

Eine Matrix A ∈ R n×n , bei der für alle Einträge ai j gilt 0 ≤ ai j ≤ 1, heißt doppelt stochastisch,
wenn die Summe aller Einträge in jeder Zeile und Spalte gleich 1 ist.

Zeigen Sie (etwa per Induktion über die Anzahl k ≥ n der von Null verschiedenen Einträge in

A ): Jede doppelt stochastische Matrix ist eine Konvexkombination von Permutationsmatrizen, d. h.

es gibt l ∈ N und Permutationsmatrizen P 1 , . . . , Pl sowie Koeffizienten λ1 , . . . , λ l mit 0 ≤ λ i ≤ 1
und ∑ l
λ
i=1
i = 1 so, dass
l

A = ∑ λ iPi.

i=1

Lösung siehe Lösung 9.46.

4.8 Stabile Hochzeiten

Beschließen wollen wir dieses Kapitel mit einer Variante des Matchingproblems, die der Spieltheorie
zugeordnet und durch einen einfachen Algorithmus gelöst wird. Es fängt ganz ähnlich wie beim

Matching an.

102

Kapitel 4. Bäume und Matchings

Beispiel 4.42. In einer geschlossenen Gesellschaft gibt es je n heiratsfähige Männer und Frauen.

Sowohl Frauen als auch Männer haben Präferenzen, was die Personen des anderen Geschlechts
angeht. Aufgabe ist es nun, Männer und Frauen so zu verheiraten, dass es kein Paar aus Mann und

Frau gibt, die nicht miteinander verheiratet sind, sich aber gegenseitig Ihren Ehepartnern vorziehen.

Wir werden uns im Folgenden in der Darstellung an diesem Beispiel orientieren. Das liegt einer-
seits daran, dass es so in den klassischen Arbeiten präsentiert wird und außerdem die Argumentation
dadurch anschaulicher wird. Ähnlichkeiten mit Vorkommnissen bei lebenden Personen oder Perso-
nen der Zeitgeschichte werden von uns weder behauptet noch gesehen.

Unsere Modellierung sieht wie folgt aus:

Definition 4.13. Seien U,V Mengen mit |U| = |V | und für alle u ∈ U sei ≺u eine Totalordnung von

V , sowie für alle v ∈ V sei ≺v eine Totalordnung von U . Eine bijektive Abbildung von τ : U → V
heißt stabile Hochzeit, wenn für alle u ∈ U und v ∈ V gilt,
entweder τ( u) = v oder v ≺u τ( u) oder u ≺v τ − 1( v) .

In Worten: entweder u und v sind miteinander verheiratet oder mindestens einer zieht seinen

Ehepartner dem anderen (d.h. u oder v ) vor.

Wir nennen U die Menge der Männer und V die Menge der Frauen.

Es ist nun nicht ohne Weiteres klar, dass es für alle Präferenzlisten stets eine stabile Hochzeit
gibt. Dass dies so ist, wurde 1962 von den Erfindern dieses Spiels“ Gale und Shapley algorithmisch

”

gezeigt. Der Algorithmus, mit dem sie eine stabile Hochzeit berechnen, trägt seine Beschreibung
schon im Namen: Men propose – Women dispose“.

”

Algorithmus 4.43 (Men propose – Women dispose). Eingabedaten wie eben. Zu Anfang ist niemand
verlobt. Die verlobten Paare bilden stets ein Matching im vollständigen bipartiten Graphen auf U
und V . Der Algorithmus terminiert, wenn das Matching perfekt ist.

• Solange es einen Mann gibt, der noch nicht verlobt ist, macht dieser der besten Frau auf seiner

Liste einen Antrag.

• Wenn die Frau nicht verlobt ist oder ihr der Antragsteller besser gefällt als ihr Verlobter, nimmt
sie den Antrag an und löst, falls existent, ihre alte Verlobung. Ihr Ex-Verlobter streicht sie von
seiner Liste.

• Andernfalls lehnt Sie den Antrag ab, und der Antragsteller streicht sie von seiner Liste.

Zunächst stellen wir fest, dass wir alle soeben aufgeführten Schritte in konstanter Zeit
durchführen können, wenn wir davon ausgehen, dass die Präferenzen als Liste gegeben sind und wir
zusätzlich zwei Elemente in konstanter Zeit vergleichen können. Die unverlobten Männer können
wir in einer Queue verwalten, deren erstes Element wir in konstanter Zeit finden. Ebenso können
wir später einen Ex-Verlobten in konstanter Zeit ans Ende der Queue stellen. Der Antragsteller fin-
det seine Favoritin in konstanter Zeit am Anfang seiner Liste und diese braucht nach Annahme auch
nicht länger, um ihn mit Ihrem Verlobten zu vergleichen.

Für die Laufzeit des Algorithmus ist also folgende Feststellung ausschlaggebend:

Proposition 4.5. Kein Mann macht der gleichen Frau zweimal einen Antrag.

Beweis. Wenn ein Mann beim ersten Antrag abgelehnt wird, streicht er die Frau von seiner Liste.

Wird er angenommen, so streicht er sie von seiner Liste, wenn sie ihm den Laufpass gibt.

2

4.8. Stabile Hochzeiten

103

Nun überlegen wir uns, dass der Algorithmus zulässig ist, dass also stets ein Mann, der nicht
verlobt ist, noch mindestens eine Kandidatin auf seiner Liste hat. Dazu beobachten wir:

Proposition 4.6. Eine Frau, die einmal verlobt ist, bleibt es und wird zu keinem späteren Zeitpunkt
mit einem Antragsteller verlobt sein, der ihr schlechter als ihr derzeitiger Verlobter gefällt.

Beweis. Eine Frau löst eine Verlobung nur, wenn sie einen besseren Antrag bekommt. Der Rest
folgt induktiv, da die Ordnung der Präferenzen transitiv ist.

2

Da die Anzahl der verlobten Frauen und Männer stets gleich ist, gibt es mit einem unverlobten

Mann auch stets noch mindestens eine unverlobte Frau, die also auch noch auf der Liste unseres

Antragstellers stehen muss. Setzen wir nun |U| = |V | = n, so haben wir damit fast schon gezeigt:

Satz 4.44. a) Der Algorithmus Men propose – Women dispose“ terminiert in O( n 2) .

”

b) Wenn er terminiert, sind alle verlobt.

c) Die durch die Verlobungen definierte bijektive Abbildung ist eine stabile Hochzeit.

Beweis.

a) Eine Antragstellung können wir in konstanter Zeit abarbeiten. Jeder Mann macht jeder Frau
höchstens einen Antrag, also gibt es höchstens n 2 Anträge und somit ist die Laufzeit O( n 2) .

b) Da der Algorithmus erst terminiert, wenn jeder Mann verlobt ist und |U| = |V | ist, sind am Ende
alle verlobt.

c) Bezeichnen wir die Verlobungsabbildung wieder mit τ . Seien u ∈ U und v ∈ V nicht verlobt,
aber τ( u) ≺u v. Als u τ( u) einen Antrag machte, stand v nicht mehr auf seiner Liste, muss also
vorher gestrichen worden sein. Als u v von seiner Liste strich, war sie entweder mit einem Mann
verlobt, den sie u vorzog oder hatte soeben von einem entsprechenden Kandidaten einen Antrag
bekommen. Nach Proposition 4.6 gilt also auch zum Zeitpunkt der Terminierung u ≺v τ − 1( v).

Also bildet τ eine stabile Hochzeit.

2

Aufgabe 4.45. Zeigen Sie: Der Algorithmus Men propose – Women dispose“ liefert eine männer-

”

optimale stabile Hochzeit, d. h. ist u ∈ U ein beliebiger Mann und τ das Ergebnis von Men propose

”

– Women dispose“, so gibt es keine stabile Hochzeit σ , in der u mit einer Frau verheiratet wird, die
er seiner gegenwärtigen vorzieht, d. h.

∀σ stabile Hochzeit ∀u ∈ U : σ( u) u τ( u) .

Lösung siehe Lösung 9.47.

Selbstverständlich kann man aus Symmetriegründen im gesamten Abschnitt die Rollen von

Männern und Frauen vertauschen. Dann liefert Women propose – Men dispose“ eine frauenop-

”

timale, stabile Hochzeit. Mischformen dieser beiden Ansätze, die eine stabile Hochzeit liefern, sind
uns aber nicht bekannt.

Kapitel 5

Numerik und lineare Algebra

Nachdem wir in den bisherigen Kapiteln im Wesentlichen Algorithmen auf Graphen betrachtet
haben und insbesondere unsere numerischen Berechnungen sich auf die Addition zweier Zahlen
beschränkten, wollen wir uns nun Algorithmen zuwenden, bei denen Zahlen eine größere Rolle
spielen. Vorher müssen wir aber noch etwas Notation einführen und diskutieren, wie wir gebrochene
oder reelle Zahlen im Rechner darstellen bzw. annähern. In diesem Zusammenhang müssen wir auch
ansprechen, wie sich die unvermeidbaren Näherungsrechnungen auf den weiteren Verlauf unserer

Berechnungen auswirken.

Im Anschluss daran diskutieren wir die Implementierung des Gaußalgorithmus zur Lösung linea-
rer Gleichungssysteme, den Sie vielleicht in der Schule oder der linearen Algebra bereits kennen
gelernt haben.

5.1 Etwas mehr Notation

Zunächst müssen wir die Notation, soweit sie nicht im ersten Kapitel eingeführt wurde, vorstellen.

Bei den zugehörigen Begriffen gehen wir davon aus, dass Sie sie in der Schule oder an anderer Stelle
bereits kennen gelernt haben.

Mit Z+ , (Q+ , R+ ) bezeichnen wir die nichtnegativen ganzen (rationalen, reellen) Zahlen. Sind
a, b ∈ R, so bezeichnen wir mit

[ a, b] := {x ∈ R | a ≤ x ≤ b}

das abgeschlossene und mit

] a, b[ := {x ∈ R | a < x < b}

das offene

Intervall zwischen a und b . Analog sind die halboffenen Intervalle [ a, b[:= {x ∈ R | a ≤ x < b} bzw.

] a, b] := {x ∈ R | a < x ≤ b} definiert.

Für n ∈ N bezeichnet N n (Z n, Q n, R n ) die Menge der Vektoren mit n Komponenten mit Ein-
trägen in N (Z , Q , R). Sind E und R Mengen, so bezeichnet RE die Menge aller Abbildungen von

E nach R . Wenn E endlich ist, so betrachten wir die Elemente von RE auch als |E|-Vektoren und
schreiben
x = ( xe) e∈E.

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

105

DOI 10.1007/978-3-642-05422-8 5, c

Springer-Verlag Berlin Heidelberg 2010

106

Kapitel 5. Numerik und lineare Algebra

Soweit nicht explizit anders gesagt, sind Vektoren stets Spaltenvektoren. Ein hochgestelltes
bedeutet Transposition, also ist für x, y ∈ R n x ein Zeilenvektor und als Matrixprodukt ist
n
xy = ∑ xiyi.

i=1

Sind a, b ∈ R n , so bedeutet
a ≤ b ⇐⇒ ∀i = 1 , . . . , n : ai ≤ bi.

Sind M, N ⊆ R n und α ∈ R, so gelte

M + N

:= {x + y | x ∈ M, y ∈ N},

M − N

:= {x − y | x ∈ M, y ∈ N},
α M

:= {α x | x ∈ M},

M⊥

:= {y ∈ R n | ∀x ∈ M : xy = 0 }.

Ist R eine Menge, so bezeichnen wir mit Rm×n die Menge der ( m × n)-Matrizen mit Einträgen
in R , das sind Matrizen mit m Zeilen und n Spalten. Ist A ∈ Rm×n , so heißt der Eintrag in der i-ten

Zeile und j -ten Spalte ai, j oder Ai, j , manchmal auch ohne Komma im Index. Wir schreiben auch

A = ( ai, j) i=1 ,...,m oder kurz A = ( ai, j). Sind M, N die Zeilen- bzw. Spaltenindexmenge von A und j=1 ,...,n

I ⊆ M, J ⊆ N , so bezeichnen wir mit AI,J die Matrix ( ai, j) i∈I, j∈J , statt AI,N ( AM,J ) schreiben wir
kurz AI. ( A.J). Mit In bezeichnen wir die Einheitsmatrix, d. i. die ( n × n)-Matrix mit Einsen auf der

Diagonale und sonst lauter Nullen.

Allgemein definieren wir für eine ( m × n)-Matrix A = ( ai, j) die Transponierte als die ( n × m)-

Matrix

A = ( a j,i) .

Eine quadratische Matrix A heißt symmetrisch, wenn A = A ist.

Mit ei ∈ R n bezeichnen wir den i-ten Einheitsvektor, d. h. ( ei) j = 1 falls i = j und 0 sonst.

Ist x ∈ R n , so bezeichnet, falls nicht ausdrücklich anders definiert, !x! stets die euklidische Norm
oder L 2 -Norm

"

n

!x! 2 := xx = ∑ x 2 .i
i=1

Manchmal verwenden wir auch andere Normen, wie etwa
die L 1 - oder 1-Norm:

!x! 1 := ∑ n |
i=1 xi|
die L∞ - oder Maximumsnorm:

!x! ∞ := max1 ≤i≤n |xi|.

Ist P ⊆ R n und ε > 0, so bezeichnen wir mit

Uε ( P) := {x ∈ R n | ∃p ∈ P : !x − p! < ε }

die offene ε -Umgebung der Menge P . Ist P = {p} einelementig, so schreiben wir statt Uε ( {p})

kurz Uε ( p).

Sind A, B ∈ N natürliche Zahlen mit B = 0, so bezeichnen wir mit A mod B den Rest, der bei
ganzzahliger Division von A durch B bleibt. Diesen können wir mit der Gaußklammer ausdrücken
als

5.2. Kodierung von Zahlen

107

# $

A

A mod B = A −

B.

B

5.2 Kodierung von Zahlen

Die Einführung der Zahlen der Inder“, die hier zu Lande als arabische Zahlen“ bekannt sind, ist

”

”

ein wesentliches Verdienst des Mannes, der unserer Veranstaltung den Namen gab: al-Khwarizmi.

Mit römischen Zahlen lässt sich nämlich schlecht rechnen. Was steckt eigentlich genau hinter der

Zehnerstellennotation der arabischen Zahlen? Jede Stelle steht für eine Zehnerpotenz, wir haben als

Basis Zehn. Also ist etwa 123456.789 eine abkürzende Schreibweise für

123456 . 789

= 1 · 105 + 2 · 104 + 3 · 103 + 4 · 102 + 5 · 101 + 6 · 100 + 7 · 10 − 1 + 8 · 10 − 2 + 9 · 10 − 3

= + 106 · 0 . 123456789

= + 106(1 · 10 − 1 + 2 · 10 − 2 + 3 · 10 − 3 + 4 · 10 − 4 + 5 · 10 − 5 + 6 · 10 − 6 +

+ 7 · 10 − 7 + 8 · 10 − 8 + 9 · 10 − 9) .

Dass sich bei dieser Darstellung die 10 als Basis durchgesetzt hat, liegt vielleicht daran, dass wir

10 Finger haben. Vom mathematischen Gesichtspunkt aus ist jede natürliche Zahl verschieden von

Null und 1 geeignet dafür. Dies ist der Inhalt des folgenden Satzes.

Satz 5.1. Sei B ∈ N , B ≥ 2 , und sei x ∈ R \ { 0 }. Dann gibt es genau eine Darstellung der Gestalt

∞
x = σ Bn ∑ x−iB−i

(5.1)

i=1
mit
a) σ ∈ {+1 , − 1 }

b) n ∈ Z
c) x−i ∈ { 0 , 1 ,...,B − 1 }

d) x− 1 = 0 und zusätzlich
e) ∀ j ∈ N ∃k ≥ j : x−k = B − 1 .

Mit der letzten Bedingung schließen wir im Zehnersystem Neunerperioden aus. Allgemein würde
eine Periode B − 1 die Eindeutigkeit zerstören, da wir die gleiche Zahl erhalten, wenn wir die letzte

Stelle, die verschieden von B − 1 ist, um eins erhöhen und die nachfolgenden Stellen auf Null setzen.

Der Existenzbeweis, den wir nun führen werden, enthält auch einen Algorithmus, mit dem

Sie eine solche Darstellung berechnen können. Im Anschluss werden wir das an einem Beispiel
vorführen.

Beweis. Zur Existenz: Das Vorzeichen können wir offensichtlich übernehmen. Als Nächstes be-
stimmen wir ein n ∈ N mit Bn− 1 ≤ |x| < Bn . Also setzen wir zunächst
σ := sign( x)

und
n := log B( |x|) + 1 .

108

Kapitel 5. Numerik und lineare Algebra

Die xi erhalten wir, indem wir das Komma geeignet verschieben“. Dies leistet die Multiplikation

”

mit einer geeigneten Potenz von B . Zur Bestimmung der führenden Stelle führen wir nun eine

Division mit Rest durch B durch, also

%

&
x− 1 = |x| B 1 −n mod B

%

&
x− 2 = |x| B 2 −n mod B

... %

&
x−i = |x| Bi−n mod B.

Zum Beweis der Existenz müssen wir nun zeigen, dass die so definierte Reihe gegen x konvergiert.

Dazu zeigen wir mittels vollständiger Induktion über n zunächst:

'

(
i− 1
x−i =

|x| − Bn ∑ x−jB−j Bi−n .

(5.2)

j=1

Nach Definition von n ist Bn− 1 ≤ |x| < Bn also

1 ≤ |x|B 1 −n < B
und somit zunächst einmal

%

&
x− 1 = |x|B 1 −n mod B

%

&

= |x|B 1 −n

'

(

1 − 1

=

|x| − Bn ∑ x−jB−j B 1 −n
j=1
und somit (5.2) gezeigt für i = 1 . Beachten Sie, dass hier die Summe von 1 bis 0 läuft, also leer ist,
die leere Summe aber per Definitionem Null ist.

Sei nun i 0 ≥ 2 und die Behauptung für alle i ≤ i 0 − 1 bewiesen. Nach Induktionsvoraussetzung
ist dann

'

(
i 0 − 2
x−( i

|x| − Bn ∑ x−

Bi 0 − 1 −n

0 − 1) =
j B− j
j=1
und somit

i 0 − 2

0 ≤ |x| − Bn ∑ x−jB−j Bi 0 − 1 −n − x−( i 0 − 1) < 1 .

j=1

Durch Multiplikation mit B folgt

i 0 − 2

0 ≤

|x| − Bn ∑ x−jB−j Bi 0 −n −Bn−i 0+1+( i 0 −n) x−( i 0 − 1)

j=1

i 0 − 1

=

|x| − Bn ∑ x−jB−j Bi 0 −n < B
j=1
und somit

5.2. Kodierung von Zahlen

109

%

&
x−i = |x|Bi 0 −n mod B

0

'

(
i 0 − 1

=

|x| − Bn ∑ x−jB−j Bi 0 −n
j=1
womit (5.2) bewiesen ist.

Für einen Konvergenzbeweis müssen wir, wie wir aus der Analysis wissen, zeigen, dass es zu
jedem ε > 0 ein i 0 ∈ N gibt mit

N

∀

N ≥ i 0 :

∑
x − σ Bn
x−iB−i < ε .

i=1

Sei also ε > 0 vorgegeben und i 0 = n + 2 − log ε

B

. Nach dem soeben Bewiesenen ist

i 0 − 1

0 ≤ |x| − Bn ∑ x−jB−j Bi 0 −n < B

(5.3)

j=1
und somit

N

N

∑

|

∑

x − σ Bn
x− jB− j = x|−Bn x−jB−j
j=1
j=1

(

1)

i 0 − 1

N

≤ |

∑

∑ |

x| − Bn
x− jB− j+ Bn
x− j|B− j
j=1
j= i 0

(

2)

i 0 − 1

∞

≤ |

∑

∑
x| − Bn
x− jB− j+ Bn ( B− 1) B−j
j=1
j= i 0

(3)

B

1

<

+ Bn( B − 1)

Bi 0 −n

Bi 0 (1 − 1 )

B

B

= Bn+1 −i 0 + Bn( B − 1) Bi 0( B− 1)

Bn+1

= Bn+1 −i 0 + Bi 0

= 2 Bn+1 −i 0

(4)

≤ Bn+2 −i 0

= Bn+2 −n+2 − log ε

B

= Bn+2 −n− 2 −− log ε

B

= B log ε

B ≤ ε .

Dabei haben wir in (1) die Dreiecksungleichung ausgenutzt und in (2) in der rechten Summe die

|x−j| alle nach oben durch B − 1 abgeschätzt. In (3) haben wir (5.3) und die Formel der geometri-
schen Reihe ( ∑∞ i= i qi = qi 0 für |q| < 1) ausgenutzt. Schließlich haben wir in (4) ausgenutzt, dass

0

1 −q

B ≥ 2 ist.

Wir müssen noch zeigen, dass nicht ab irgendeinem j 0 alle weiteren x− j = B − 1 sind. Nehmen
wir im Gegenteil an, es gäbe ein j 0 ∈ N mit ∀k ≥ j 0 : x−k = B − 1 . Dann ist

110

Kapitel 5. Numerik und lineare Algebra

'

(
j 0 − 2
x−( j

|x| − Bn ∑ x

B j 0 − 1 −n

0 − 1) =

−k B−k
k=1

'

(

∞
j 0 − 2

=

Bn ∑ x−iB−i − Bn ∑ x−k B−k Bj 0 − 1 −n
i=1
k=1

'

(

∞

=

B j 0 − 1 ∑ x−iB−i
i= j 0 − 1

'

(

∞

=
x−( j

∑ Bj 0 − 1 −i

0 − 1) + ( B − 1)

i= j 0

'

(

∞

= x−( j

( B − 1) ∑ B−i

0 − 1) +
i=1

Die Reihe in der letzten Zeile ist wieder eine geometrische. Setzen wir deren Wert ein, erhalten
wir

'

(

∞
x−( j

( B − 1) ∑ B−i

0 − 1) = x−( j 0 − 1) +
i=1

'

(

1

1

= x−( j

( B − 1)

0 − 1) +

B 1 − 1 B

= x−( j 0 − 1) + 1 .

Mit diesem Widerspruch ist die Existenz einer Darstellung wie angegeben gezeigt.

Wir kommen nun zur Eindeutigkeit. Seien also σ2 ∈ { 1 , − 1 }, n 2 ∈ N und y−i ∈ { 0 , 1 ,...,B −

1 }, y− 1 = 0 mit

∞

∞
σ1 Bn 1 ∑ x−iB−i = σ2 Bn 2 ∑ y−iB−i.

i=1
i=1

Offensichtlich muss wegen x = 0 dann σ1 = σ2 sein. Also ist

∞

∞
x− 1 Bn 1 − 1 + Bn 1 ∑ x−iB−i = y− 1 Bn 2 − 1 + Bn 2 ∑ y−iB−i.

(5.4)

i=2
i=2

Da allgemein gilt

∞

∞

∑ z−iB−i < ∑( B− 1) B−i
i=2
i=2

B − 1

1

=

B 2 1 − 1 B

1

=

,

B
falls alle z−i ∈ { 0 ,...,B − 1 } aber nicht alle identisch B − 1 sind, erhalten wir, wenn wir (5.4) durch

Bn 1 − 1 dividieren

'

( '

(

∞

∞
x− 1 = x− 1 + B ∑ x−iB−i = y− 1 Bn 2 −n 1 + Bn 2+1 −n 1 ∑ y−iB−i .

i=2
i=2

Aus x− 1 = 0 = y− 1 , und weil 1 ≤ x− 1 < B ist, schließen wir, dass n 1 = n 2 sein muss.

5.2. Kodierung von Zahlen

111

Es bleibt zu zeigen x−i = y−i für alle i. Angenommen dies wäre nicht so. Dann betrachten wir

0 = ∑∞

i=1( x−i − y−i) B−i . Nach Annahme gibt es einen kleinsten Index i 0 mit x−i = y

. Für alle

0

−i 0

1 ≤ i < i 0 gilt also x−i − y−i = 0. Durch eventuelles Vertauschen der Namen können wir o.B.d.A.

(ohne Beschränkung der Allgemeinheit) annehmen, dass x−i < y

. Dann erhalten wir

0

−i 0

∞

1 ≤ y−i − x

=

∑ ( x

0

−i 0

−i − y−i) B−i+ i 0
i= i 0+1

∞

= ∑( x−i−i − y

) B−i

0

−i−i 0
i=1

∞

≤ ∑( B− 1) B−i
i=1

≤

1

( B − 1)

= 1 .

B − 1

Demnach muss in allen Ungleichungen dieser Kette Gleichheit herrschen. Hieraus folgt aber, dass
x−i = B − 1 und y−i = 0 für alle i > i 0 , was wir ausgeschlossen hatten.

2

Für allgemeine B ∈ N , B ≥ 2 heißt die Darstellung in (5.1) B-adische Darstellung von x.

Bemerkung 5.2. Im Rechner verwenden wir bekanntermaßen B ∈ { 2 , 8 , 16 }. Die entsprechenden

Darstellungen heißen Binärzahlen, Oktalzahlen und Hexadezimalzahlen.

Beispiel 5.3. a) Sei B = 7 und x = 12 345 678 . 9 (dezimal). Es ist 78 = 5 764 801 und 79 =

40 353 607 . Also ist n = 9 . Nun berechnen wir durch Division mit Rest

12345678 . 9 ÷ 5764801 = 2 Rest 816076 . 9

816076 . 9 ÷ 823543 = 0 Rest 816076 . 9

816076 . 9 ÷ 117649 = 6 Rest 110182 . 9

110182 . 9 ÷

16807 = 6 Rest 9340 . 9

9340 . 9 ÷

2401 = 3 Rest 2137 . 9

2137 . 9 ÷

343 = 6 Rest 79 . 9

79 . 9 ÷

49 = 1 Rest 30 . 9

30 . 9 ÷

7 = 4 Rest 2 . 9

2 . 9 ÷

1 = 2 Rest 0 . 9

0 . 9 ÷

7 − 1 = 6 Rest 0 . 9 − 6

= 3

7

70

3 ÷

7 − 2 = 2 Rest 21 − 2

= 1

70

490

49

490

1

÷

7 − 3 = 0 Rest

1

490

490

1

÷

7 − 4 = 4 Rest

49

− 4

=

9

490

490 · 49

492

24010

9

÷

7 − 5 = 6 Rest

63

− 6

=

3

24010

70 · 492

7 · 492

168070

3

÷

7 − 6 = 2 Rest

21

− 2

168070

10 · 493

493

Da scheint sich etwas zu wiederholen und wir vermuten, dass

12345678 . 9 = 206636142 . 6204 in 7-adischer Darstellung
ist. Diese Vermutung bestätigt sich dadurch, dass der Rest

9
gerade der 74 -te Teil von 9 ist.

24010

10

Folglich gilt

9

÷

9

7 − 5 =

÷ 7 − 1

24010

10

112

Kapitel 5. Numerik und lineare Algebra
und wir müssen nur für unsere weitere Rechnung den Rest wieder durch 74 teilen. Also wieder-
holen sich im Folgenden die Rechnungen und es ergibt sich eine periodische Wiederholung.

b) Wie wirkt es sich aus, wenn wir mehr Dezimalstellen hinter dem Komma haben. Etwas übermütig
betrachten wir wieder zur Basis B = 7 die Dezimalzahl x = 12345 . 6789 . Wir starten wie eben:

Es ist 74 = 2401 und 75 = 16807 und somit n = 5 . Wir rechnen weiter

12345 . 6789 ÷ 2401 = 5 Rest 340 . 6789

340 . 6789 ÷ 343 = 0 Rest 340 . 6789

340 . 6789 ÷

49 = 6 Rest 46 . 6789

46 . 6789 ÷

7 = 6 Rest 4 . 6789

4 . 6789 ÷

1 = 4 Rest 0 . 6789

0 . 6789 ÷ 7 − 1 = 4 Rest 0 . 6789 − 47

0 . 6789 − 4 ÷ 7 − 2 = 5 Rest 0 . 6789 − 33

7

49

0 . 6789 − 33 ÷ 7 − 3 = 1 Rest 0 . 6789 − 232

49

343

0 . 6789 − 232 ÷ 7 − 4 = 6 Rest 0 . 6789 − 1630

343

2401

0 . 6789 − 1630 ÷ 7 − 5 = 0 Rest 0 . 6789 − 1630

2401

2401

0 . 6789 − 1630 ÷ 7 − 6 = 1 Rest 0 . 6789 − 79871

2401

117649

0 . 6789 − 79871 ÷ 7 − 7 = 6 Rest 0 . 6789 − 559103

117649

823543

0 . 6789 − 559103 ÷ 7 − 8 = 2 Rest 0 . 6789 − 3913723

823543

5764801

0 . 6789 − 3913723 ÷ 7 − 9 = 2 Rest 0 . 6789 − 27396063

5764801

40353607

0 . 6789 − 27396063 ÷ 7 − 10 = 5 Rest 0 . 6789 − 191772446

40353607

282475249

Langsam wird das Rechnen etwas mühsam und das Beispiel etwas lang. Anstatt von Hand zu
rechnen, wollen wir den Vorgang automatisieren. Schnell übersetzen wir unsere Rechnungen in
folgenden Algorithmus:

Wir initialisieren a=1.0, b=0.0, g=0.6789 und benutzen dann folgenden Code:

for i in range(18):

# entspricht for i=0 to 17
c=(g*a-b)*7
d=int(c)

b=b*7+d
a=a*7
print d,
und erhalten als Output

4 5 1 6 0 1 6 2 2 5 3 5 5 2 1 2 0 5
was noch nicht sehr periodisch aussieht. Vorsichtig erhöhen wir die Anzahl der Iterationen auf 23
mit folgendem Ergebnis:

4 5 1 6 0 1 6 2 2 5 3 5 5 2 1 2 0 5 5 7 -56 -448 0

Da ist offensichtlich etwas schief gelaufen. Jede neue Stelle unserer 7-adischen Entwicklung
sollte doch zwischen 0 und 6 liegen.

Wir werden später noch einmal auf das letzte Beispiel eingehen. Zunächst wollen wir aber diskutie-
ren, was da wohl falsch gelaufen ist.

5.3. Fehlerquellen und Beispiele

113

Aufgabe 5.4. Entwickeln Sie 10000 , 1 und 0 . 1 als Binärzahlen.

3

Lösung siehe Lösung 9.48

5.3 Fehlerquellen und Beispiele

Man kann keine Reihen mit unendlich vielen Gliedern bei vorgegebenem endlichen Speicher darstel-
len. Auch mit unendlich vielen nummerierten Speicherstellen könnten wir nicht alle reellen Zahlen
darstellen, da man die reellen Zahlen nicht abzählen kann. Beim praktischen Rechnen ist man des-
halb gezwungen zu runden.

Es seien x, ˜
x ∈ R, wobei ˜ x eine Näherung für x sei. Dann heißen
a) x − ˜ x der absolute Fehler und
b) für x = 0, x−˜ x der relative Fehler.

x

√

√

Beispiel 5.5. Ist x =

2 und ˜
x = 1 . 41 , so ist der absolute Fehler

2 − 1 . 41 ≈ 0 . 0042136 und der
relative Fehler

√

√

2 − 1 . 41

√

√

2 − 1 . 41 2

=

= 1 − 0 . 705 2 ≈ 0 . 0029794 .

2

2

Bei der Darstellung von Zahlen bzgl. einer Basis B ∈ N , B ≥ 2 wollen wir folgende Rundungs-
vorschrift für die t -stellige Darstellung mit x ∈ R \ { 0 } für x = σ Bn ∑∞ i=1 x−iB−i benutzen: σ Bn∑ t

Rd
i=1 x−iB−i
falls x−t− 1 < B 2
t ( x) :=
σ Bn( B−t + ∑ ti=1 x−iB−i) falls x−t− 1 ≥ B 2

Sei nun eine Maschinengenauigkeit t ∈ N vorgegeben. Dann bezeichnen wir Zahlen mit einer

Darstellung der Gestalt σ Bn ∑ t
x
i=1 −iB−i als Maschinenzahlen oder Gleitkommazahlen. Dabei heißt
n der Exponent, σ das Vorzeichen und ∑ t
x
i=1 −iB−i die Mantisse der Zahl. Wir sagen auch, die Zahl
habe eine t -stellige Mantisse.

Beispiel 5.6. a) Bei den Dezimalzahlen bedeutet diese Vereinbarung, dass alle Zahlen, die in der
t + 1 -ten Stelle der Mantisse die Ziffern 0,1,2,3 oder 4 haben abgerundet und alle übrigen
aufgerundet werden.

b) Die Zahl 206 636 142 . 6204 in 7-adischer Darstellung wird mit 10-stelliger Mantisse zu 710 ∗

0 . 2066361426 . Die Ziffer 2 wird abgerundet, da sie kleiner als 7 ist.

2

Satz 5.7. Seien k ∈ N , B = 2 k , t ∈ N und x = σ Bn ∑∞ i=1 x−iB−i = 0 . Dann gilt:

a) Rdt ( x) hat eine Darstellung der Gestalt σ Bn ∑ t
x B−i =
i=1 −

0 ,
i
b) der absolute Fehler ist beschränkt durch |x − Rdt( x) | < Bn−t ,

2

c) der relative Fehler ist beschränkt durch x−Rdt( x) < B 1 −t ,
x

2

d) der relative Fehler bzgl. Rdt ( x) ist beschränkt durch x−Rdt( x) ≤ B 1 −t .

Rdt ( x)

2

Beweis. Übung.

Aufgabe 5.8. Beweisen Sie die Aussage des letzten Satzes.

Lösung siehe Lösung 9.49.

114

Kapitel 5. Numerik und lineare Algebra

Bei der Verknüpfung zweier Gleitkommazahlen, wie Addition, Subtraktion, Multiplikation und

Division werden wir nun zunächst das Ergebnis möglichst genau berechnen und dann auf t Stellen
runden. Betrachten wir dies zum Beispiel bei der Addition.

Beispiel 5.9. Wir wollen mit 4-stelliger Arithmetik (d. h. 4-stelliger Mantisse) zur Basis 10 die

Zahlen 12 , 34 und − 0 , 09876 addieren.

+ . 1 2 3 4

2

− . 9 8 7 6

-1

+ . 1 2 3 4 0 0 0 0

2

− . 0 0 0 9 8 7 6 0 2

+ . 1 2 2 4 1 2 4 0

2

+ . 1 2 2 4

2

Das Runden von Zahlen liefert also ein zusätzliches Fehlerpotential bei der numerischen Lösung
eines Problems. Andere Fehlerquellen sind Datenfehler oder Verfahrensfehler. Letzteres sind etwa

Ungenauigkeiten, die dadurch enstehen, dass iterative, konvergente Prozesse nach endlich vielen

Schritten abgebrochen werden. Alle diese Fehler können durch Fehlerfortpflanzung verstärkt wer-
den.

Beispiel 5.10. Wir berechnen (9 . 8765 − 8 . 8764)10000 ≈ e ≈ 2 . 7181459 . Die Potenz berechnen wir aber nicht, indem wir die Differenz zehntausendmal mit sich selbst multiplizieren. Indem wir die

Binärdarstellung von 10000 aus Aufgabe 5.4 ausnutzen und iteriert quadrieren, können wir den

Rechenaufwand auf 2 log2 10000 viele Multiplikationen reduzieren.

Ist nämlich ganz allgemein n = ∑ t
b
i=0 i 2 i die binäre Entwicklung einer natürlichen Zahl n ∈ N,
so können wir für eine reelle Zahl x bei der Berechnung von xn die Potenzgesetze ausnutzen:

xn = x∑ t
b
i=0 i 2 i
t

= ∏ xbi 2 i
i=0

=

∏ x 2 i.

alle i mit bi=1

Durch wiederholtes Quadrieren erhalten wir die Zahlen x 2 i und müssen davon dann diejenigen

Aufmultiplizieren, bei denen bi = 1 ist.

Wenn wir mit vierstelliger Genauigkeit rechnen, also 9 . 8765 − 8 . 8764 durch 9 . 877 − 8 . 876 =

1 . 001 ersetzen, so erhalten wir in unserem Beispiel

5.3. Fehlerquellen und Beispiele

115

1 . 001 ∗ 1 . 001 ≈ 1 . 002 ≈ 1 . 0012

1 . 002 ∗ 1 . 002 ≈ 1 . 004 ≈ 1 . 0014

1 . 004 ∗ 1 . 004 ≈ 1 . 008 ≈ 1 . 0018

1 . 008 ∗ 1 . 008 ≈ 1 . 016 ≈ 1 . 00116

1 . 016 ∗ 1 . 016 ≈ 1 . 032 ≈ 1 . 00132

1 . 032 ∗ 1 . 032 ≈ 1 . 065 ≈ 1 . 00164

1 . 065 ∗ 1 . 065 ≈ 1 . 134 ≈ 1 . 001128

1 . 134 ∗ 1 . 134 ≈ 1 . 286 ≈ 1 . 001256

1 . 286 ∗ 1 . 286 ≈ 1 . 654 ≈ 1 . 001512

1 . 654 ∗ 1 . 654 ≈ 2 . 736 ≈ 1 . 0011024

2 . 736 ∗ 2 . 736 ≈ 7 . 486 ≈ 1 . 0012048

7 . 486 ∗ 7 . 486 ≈ 56 . 04 ≈ 1 . 0014096

56 . 04 ∗ 56 . 04 ≈ 3140 ≈ 1 . 0018192

Wegen 10000 = 8192 + 1024 + 512 + 256 + 16 berechnen wir

1 . 00110000 ≈ 3140 ∗ 2 . 736 ∗ 1 . 654 ∗ 1 . 286 ∗ 1 . 016

≈ 8591 ∗ 1 . 654 ∗ 1 . 286 ∗ 1 . 016

≈ 14210 ∗ 1 . 286 ∗ 1 . 016

≈ 18270 ∗ 1 . 016 ≈ 18560 .

Hier tauchte durch das Runden bei der Differenzenbildung früh ein relativ großer Fehler auf,

9 . 8765 − 8 . 8764 = 1 . 0001 wird durch Runden vor der Differenzenbildung zu 1 . 001. Der relative

Fehler beträgt aber nur etwa ein Tausendstel. In den Berechnungen schaukelt sich der relative Fehler
auf und liegt am Ende etwa bei 18560 /e ≈ 6828.

Aufgabe 5.11. Seien ˆ
x, ˆ
y Näherungen von x, y ∈ R \ { 0 }. Bezeichne δ x = x − ˆ x den absoluten und
ε x = δ x den relativen Fehler bzgl. x und analog δ
x
y, ε y f ür y . Wir nehmen an, dass |δ x| < min {|x|, | ˆ x|}

bzw. analog für y . Schätzen Sie die Beträge der absoluten und relativen Fehler als Funktion von

|δ x|,|δ y|,|ε x|,|ε y|,|x| und |y| ab, der entsteht, wenn man mit den Näherungen exakt rechnet für
x + y, xy und x , sowie für ax , wenn a ∈ R \ { 0 } eine fixe Zahl ist.

y

Lösung siehe Lösung 9.50.

Wir kommen nun noch einmal auf Beispiel 5.3 zurück. Die kritische Zeile im Pythonprogramm
ist c=(g*a-b)*7. Denn b ist eine im Laufe des Verfahrens immer bessere Approximation von
a
g , d.h. g ∗ a und b nähern sich immer stärker an. Wenn ihre Differenz in den Bereich der Maschi-
nengenauigkeit gerät, löschen sie sich im Wesentlichen aus. Manchmal kann man solche Probleme
durch andere Formeln vermeiden.

In unserem Beispiel hatten wir g immer besser durch einen Bruch b approximiert und die Diffe-
a
renz immer neu ausgewertet. Wenn wir uns statt dessen immer nur die Differenz, also den Rest mer-
ken, vermeiden wir das Problem der Auslöschung. Wir fangen also an mit d=int(7*0.6789) und
erhalten als Rest r=7*0.6789-d. Damit berechnen wir nun die nächste Ziffer als d=int(7*r)

und iterieren dies. Noch besser wird das Resultat, wenn wir uns den Rest als ganze Zahl merken,
also wie folgt vorgehen:

116

Kapitel 5. Numerik und lineare Algebra
r=6789
for i in range(500):

d=int(7*r/10000)

r=7*r-10000*d
print d,

Die Funktion int() liefert den ganzzahligen Teil einer Zahl. Wir müssten Sie hier nicht verwen-
den, da Python, wenn man keine Dezimalpunkte schreibt, automatisch in ganzzahliger Arithmetik
rechnet. Obige Routine multipliziert also immer den Rest mit 7 und gibt den ganzzahligen Anteil
aus, den sie danach abschneidet. Alle Rechnungen benutzen nur ganze Zahlen.

Analysieren wir die Ausgabe, so erkennen wir, dass die 7-adische Darstellung dieser Zahl peri-
odisch mit Periodenlänge 100 ist.

Aufgabe 5.12. Betrachten Sie die Gleichung ax 2 + bx + c = 0 für a, b, c ∈ R, a = 0. Bekanntlich
hat diese die Lösungen

√

√

−b + b 2 − 4 ac

−b − b 2 − 4 ac
x 1 =
x 2 =

.

2 a

2 a

Ist nun b 2 deutlich größer als 4 ac , so kommt es für b > 0 bei x 1 zu Auslöschung und ansonsten bei
x 2 . Finden Sie äquivalente numerisch stabilere Formeln für x 1 , falls b > 0, und für x 2 , falls b < 0.

Lösung siehe Lösung 9.51.

Dies muss hier als Veranschaulichung der Problematik genügen. Im Anhang weisen wir auf
weiterführende Literatur zur Numerik hin.

5.4 Gaußelimination und LU -Zerlegung, Pivotstrategien

Eine der wichtigsten numerischen Aufgaben ist das Lösen linearer Gleichungssysteme, denn dieses

Problem taucht in vielen numerischen Verfahren als Teilproblem auf. Hierzu gibt es im Wesentlichen
zwei Typen von Algorithmen. Die direkten Verfahren, die in endlich vielen Schritten eine Lösung
berechnen, die mit Rundungsfehlern und ihren Konsequenzen behaftet ist. Andererseits die indirek-
ten, iterativen Verfahren, die abbrechen, wenn eine gewisse“ Genauigkeit erreicht ist. Wir werden

”

uns nur mit direkten Verfahren beschäftigen.

Im gesamten Abschnitt werden wir folgende Fragestellung untersuchen: Gegeben seien A ∈

R m×n, b ∈ R m . Gesucht ist ein Vektor x ∈ R n mit Ax = b. Diese Aufgabenstellung haben Sie,
vielleicht nicht in Matrizenschreibweise, bereits in der Schule kennen gelernt. Wir wollen das
dort vorgestellte Eliminationsverfahren, das auf Gauß zurück geht, etwas implementationsnäher
darstellen und untersuchen.

Zunächst einmal stellen wir die Vorgehensweise an Hand eines Beispiels vor.

Beispiel 5.13. Sei folgendes lineare Gleichungssystem gegeben:

x 1 + x 2 + x 3 + x 4 = 10

−x 1

= − 4

− x 2

= − 3

− x 3

= − 2 .

5.4. Gaußelimination und LU -Zerlegung, Pivotstrategien

117

In Matrixschreibweise erhalten wir:

⎛

⎞

⎛

⎞

1

1

1 1

10

⎜

⎜ −

⎟

⎜

⎟

1

0

0 0 ⎟

⎜ − 4 ⎟

A = ⎜

⎝

⎟

⎜

⎟

0 − 1

0 0 ⎠ , b = ⎝ − 3 ⎠ .

0

0 − 1 0

− 2

1

1

1 1 10

1

1

1 1 10

1 1 1 1 10

− 1 0 0 0 − 4

0 1

1 1

6

0 1 1 1

6 ,

0 − 1

0 0 − 3

0 − 1

0 0 − 3

0 0 1 1

3

0

0 − 1 0 − 2

0

0 − 1 0 − 2

0 0 − 1 0 − 2

Wir wählen zunächst in der ersten Zeile den ersten Eintrag als Pivotelement und erzeugen unter
diesem in der ersten Spalte Nullen. Hier genügt es, dafür die erste Zeile zur zweiten zu addieren.

Wir wählen im Folgenden hier die Pivotelemente stets auf der Diagonalen und bringen die Matrix
durch elementare Zeilenumformungen in Zeilenstufenform, so dass unterhalb dieser Treppe“ nur

”

noch Nullen stehen. Die transformierte Matrix hat nun die Gestalt

1 1 1 1 10

0 1 1 1 6 .

0 0 1 1 3

0 0 0 1 1

Nun können wir durch Einsetzen leicht die Lösung ausrechnen:

x 4 = 1 , x 3 = 3 − 1 = 2 , x 2 = 6 − 2 − 1 = 3 , x 1 = 10 − 3 − 2 − 1 = 4 .

Man führt im Allgemeinen von links nach rechts Gaußeliminationen durch. Für jeden solchen

Schritt wählt man zunächst ein Pivotelement aus und sorgt dann durch elementare Zeilenumformun-
gen dafür, dass unter diesem nur noch Nullen stehen.

Notieren wir zunächst den Gaußeliminationsschritt bzgl. des Elementes ai j = 0. Für alle Indizes
a
k > i ziehen wir das k j -fache der i -ten Zeile von der k -ten ab. Bezeichnen wir die nun entstehende
ai j
neue k -te Zeile als ˜

Ak. , so notieren wir also
a

˜
k j

Ak. = Ak. −

Ai.

ai j
oder als Pythoncode, für den Sie im Folgenden stets das Paket NumPy für numerische Berechnungen
in Python einbinden müssen, wenn Sie die Algorithmen ausprobieren wollen.

def gausselim(A,i,j):

for k in range(i+1,m):

A kj=A[k,j]

A ij=A[i,j]

Q kj=-A kj/A ij

A[k,:]=A[k,:]+Q kj*A[i,:]

Mit A[k,:]=A[k,:]+Q kj*A[i,:] greifen wir zeilenweise auf die Matrix A zu. Der

Befehl ist also eine Abkürzung für

118

Kapitel 5. Numerik und lineare Algebra
for l in range(m):

A[k,l]=A[k,l]+Q kj*A[i,l].

Bei der Bestimmung des Pivotelementes entlang der Diagonalen kann der Fall eintreten, dass
a j j = 0 ist. Gibt es dann ein akl mit k ≥ j und l ≥ j , welches verschieden von Null ist, vertauschen
wir die k -te und j -te Zeile, sowie l -te und j -te Spalte, merken uns, dass in der Lösung die Indizes
l und j vertauscht werden müssen und führen eine Gaußelimination mit a j j durch. Dies geschieht
in folgender Pythonroutine
def gaussalg(A,b):

d=min([m,n])

index=range(0,n)

# Permutation der Variablen

C=concatenate((A,b),1)

# Verschmelze A,b nebeneinander
for k in range(d):

if C[k,k]==0:

pivotfound,i,j = findpivot(C,index,k)

if pivotfound == 0:

break
else:

if i != k:

# vertausche Zeilen i and k
swaprows(C,i,k)

if j != k:

# vertausche Spalten
swapcolumns(C,index,j,k)

# und Variablen j and k
gausselim(C,k,k)

solvable, x = compute x(C,index,k)

return solvable,x

Abschließend können wir nun anhand der transformierten Matrix feststellen, ob das Gleichungs-
system lösbar ist und, wenn ja, eine spezielle Lösung bestimmen. Wenn wir keine Spaltenvertau-
schung durchgeführt haben, so setzen wir xm = bm und iterieren rückwärts
cmm
m
xi = bi − ∑ cijxj.

j= i+1

Das letzte Summationszeichen implementieren wir in einer for-Schleife und erhalten als Code,
bei dem wir allerdings den Anfang weglassen, indem wir überprüfen, ob das transformierte Glei-
chungssystem Nullzeilen hat oder unlösbar ist:

def compute x(C,ind,d):

# C=[A | b], wobei A eine obere Dreiecksmatrix mit m < = n ist.

# Wir loesen das System Ax=b unter Beruecksichtigung der

# Permutation index fuer x.

.

if solvable:

x[ind[d]]=C[d,n]/C[d,d]

for i in range(1,d+1):

x[ind[d-i]]=C[d-i,n]

5.5. LU -Zerlegung

119
for j in range(0,i):

x[ind[d-i]]=x[ind[d-i]]-C[d-i,d-j]*x[ind[d-j]]

x[ind[d-i]]=x[ind[d-i]]/C[d-i,d-i]

return solvable,x

Bemerkung 5.14. Grundsätzlich sollte man bei numerischen Berechnungen wegen der Rundungs-
fehler Abfragen nach Gleichheit vermeiden. So sollte für wirkliche Berechnungen in den oberen

Routinen z. B. stets anstatt der Abfrage x = 0 besser |x| ≥ ε für eine kleine Konstante abgefragt
werden. Auch bei der Bestimmung des Pivotelementes ist es numerisch günstig, Elemente zu ver-
meiden, deren Betrag relativ klein im Vergleich mit den anderen Einträgen der Matrix ist.

Aufgabe 5.15. Lösen Sie das lineare Gleichungssystem

10 x −

7 y

=

7

− 3 x + 2 . 099 y + 6 z = 3 . 901

5 x −
y + 5 z =

6
mit dem Gaußalgorithmus einmal exakt und einmal in 5-stelliger (dezimaler) Arithmetik.

Lösung siehe Lösung 9.52.

5.5 LU -Zerlegung

Wir wollen nun noch etwas detaillierter den Fall untersuchen, dass A eine reguläre Matrix, also eine

Matrix, deren Zeilen und Spalten linear unabhängig sind, ist. Speziell ist die Matrix dann quadratisch
und wir definieren:

Definition 5.1. Sei A eine ( n×n)-Matrix. A heißt obere Dreiecksmatrix, wenn unterhalb der Diago-
nalen nur Nullen stehen, wenn also Ai j = 0 für alle i > j und 1 ≤ i, j ≤ n ist. Analog definieren wir
die untere Dreiecksmatrix, bei der oberhalb der Diagonalen nur Nullen stehen dürfen, also Ai j = 0
für alle i < j und 1 ≤ i, j ≤ n ist.

Die folgenden Überlegungen sind nützlich, wenn das System Ax = b mit festem A , aber variie-
rendem b zu lösen ist. Zunächst halten wir fest, dass wir uns bei regulärem A bei der Suche eines

Pivotelementes auf die aktuelle Spalte beschränken können.

Proposition 5.1. Sei A eine reguläre ( n × n) -Matrix und 1 ≤ d ≤ n so, dass für alle 0 < j < d und
alle i > j die Bedingung Ai j = 0 erfüllt ist, d. h. A hat in den ersten d − 1 Spalten die Gestalt einer
oberen Dreiecksmatrix. Dann gibt es ein i , d ≤ i ≤ n mit Aid = 0 .

Beweis. Angenommen die Behauptung wäre falsch und für alle d ≤ i ≤ n: Aid = 0. Wir betrachten
dann die Zeilen d bis n der Matrix A . Die von diesen Zeilen gebildete Matrix hat in den ersten
d Spalten nur Nulleinträge, also nur n − d von Null verschiedene Spalten und somit Spaltenrang
höchstens n − d . Da Spaltenrang gleich Zeilenrang ist und diese Matrix n − d + 1 Zeilen hat, sind
diese Zeilen linear abhängig im Widerspruch zur angenommenen Regularität von A .

2

120

Kapitel 5. Numerik und lineare Algebra

Unter der Annahme, dass nur Zeilentransformationen, also insbesondere keine Spaltenvertau-
schungen, durchgeführt werden, können wir nun alle Transformationen, die im Gaußalgorithmus
durchgeführt werden, als Multiplikation des Systems [ A|b] von links mit einer geeigneten Matrix
schreiben.

Definition 5.2. Sei i = j . Eine ( n × n) Matrix der Gestalt
i
j

⎛

⎞

1

⎜

⎜

⎟

⎜

1

0

⎟

⎟
i ⎜

⎜

0

. . .

. . .

. . .

1

⎟

⎜

⎟

.

.

⎜

.

. .

.

⎟

⎜

.

.

.

⎟

⎜

.

.

⎟

⎜

.

⎟

.

1

..

⎟

Pn
i j =

⎜

⎜

.

⎟

.

. .

..

⎜

.

.

.

⎟

⎜

⎟

⎟
j ⎜

⎜

1

. . .

. . .

. . .

0

⎟

⎜

⎟

⎜

1

⎟

⎜

⎟

.

⎝

⎟

0

. .

⎠

1
also eine symmetrische Matrix mit n Einsen, von denen n − 2 auf der Diagonalen stehen, und sonst
lauter Nulleinträgen, heißt Transpositionsmatrix. Ein Produkt von Transpositionsmatrizen nennen
wir eine Permutationsmatrix.

Bemerkung 5.16. Multipliziert man eine ( m × n)-Matrix A von links mit Pm , so bewirkt dies die
i j

Vertauschung der i -ten mit der j -ten Zeile. Die Rechtsmultiplikation von A mit Pn bewirkt die
i j

Vertauschung der i -ten mit der j -ten Spalte.

Proposition 5.2. a) Pn = I

− e

+ e

+ e

.

i j
n − eie
i
j e
j
ie
j
j e
i
b) Transpositionsmatrizen sind selbstinvers, d.h. Pn Pn = I
i j i j
n.

Beweis. Übung.

2

Bemerkung 5.17. Beachten Sie, dass das Produkt eie eines Spaltenvektors mit einem Zeilenvektor
j
eine n × n-Matrix ist. Hingegen ist das Produkt eines Zeilenvektors mit einem Spaltenvektor das
bekannte Skalarprodukt.

Aufgabe 5.18. . Beweisen Sie Proposition 5.2.

Lösung siehe Lösung 9.53.

Auch ein Gaußeliminationsschritt läßt sich als Linksmultiplikation mit einer geeigneten Matrix
schreiben.

5.5. LU -Zerlegung

121

Definition 5.3. Eine ( n × n)-Matrix der Gestalt
d

⎛

⎞

1

···

0

··· 0

⎜ .

.

.

⎜ . ..

.

. .

. ⎟

⎜ .

.

.

.

. ⎟

⎟
d ⎜

⎜ 0 ···

1

··· 0⎟

⎟

Gd =

⎜

⎜

⎟

⎜ 0 ··· −gd+1 ,d ··· 0⎟

⎜

⎟

.

.

⎝ . .

.

⎟

.

. .

..

. . 0⎠

0

···

−gn,d

··· 1
heißt Frobeniusmatrix. Sie unterscheidet sich höchstens in der d -ten Spalte von einer Einheitsmatrix.

Wir können also schreiben

Gd = In − gde
d mit gd = (0 , . . . , 0 , gd+1 ,d , . . . , gn,d ) .

Ein Gaußeliminationsschritt mit dem Pivotelement add wird durch Linksmultiplikation mit einer

Frobeniusmatrix bewirkt, bei der gid = Aid . Denn bei Linksmultiplikation mit G

A
d bleiben die ersten
dd
d Zeilen unverändert und von den folgenden wird das gid -fache der d -ten Zeile abgezogen.

Bemerkung 5.19. Die Frobeniusmatrix Gd ist regulär und man rechnet nach:

d

⎛

⎞

1

···

0

··· 0

⎜ .

.

.

⎜ . ..

.

. .

. ⎟

⎜ .

.

.

.

. ⎟

⎟
d ⎜

⎜ 0 ···

1

··· 0⎟

⎟

G− 1 = I

⎜

⎟ .

d
n + gd e
d =

⎜

⎜ 0 ··· gd+1 ,d ··· 0⎟

⎜

⎟

.

.

⎝ . .

.

⎟

.

. .

..

. . 0⎠

0

···
gn,d

··· 1

Denn

( In − gde

−

−
d )( In + gd e
d ) = In + gd e
d
gde
d

( gde
d )( gd e
d )

= In − gd( e
d gd ) e
d = In.

denn eg
d
d = ( gd ) d = 0 . Die Umklammerung ist erlaubt, da das Matrixprodukt assoziativ ist.

Wir werden im Beweis von Satz 5.20 von der Dreieckszerlegung das Zusammenspiel von

Frobenius- und Transpositionsmatrizen untersuchen müssen. Dafür stellen wir zunächst fest.

Proposition 5.3. a) Ist Pn eine Transpositionsmatrix mit i, j > d , so gilt
i j

Pn
i j G− 1 Pn
d
i j = Pn
i j ( In + gd e
d ) Pn
i j = In + ( Pn
i jgd ) e
d .

b) Sind Pn , . . . , Pn

Transpositionsmatrizen mit i
i
l , jl > d , so gilt

1 j 1
ik jk
k
k
k

∏ Pn

∏

∏
i

G− 1

Pn

= In + ((

Pn ) gd) e
l jl
d
ik+1 −l jk+1 −l
il jl
d .

l=1
l=1
l=1

122

Kapitel 5. Numerik und lineare Algebra

Beweis.

a) Zunächst ist wegen i, j > d

Pn
i j G− 1 Pn
d
i j

= Pn
i j ( In + gd e
d ) Pn
i j = In + Pn
i j gd e
d Pn
i j

= In + ( In − eie −
i
e jej + eiej + e je
i ) gd e
d Pn
i j

= In + ( gde −

−
d
gi,deie
d
g j,de je
d + g j,d eie
d + gi,d e j e
d ) Pn
i j

= In + gde

−
d ( In − eie
i
e jej + eiej + e je
i )

−gi,deie

−
d ( In − eie
i
e jej + eiej + e je
i )

−gj,deje

−
d ( In − eie
i
e jej + eiej + e je
i )

+ g j,deie

−
d ( In − eie
i
e jej + eiej + e je
i )

+ gi,de je

−
d ( In − eie
i
e jej + eiej + e je
i )

i, j>d

= In + gde −

−
d
gi,deie
d
g j,de je
d + g j,d eie
d + gi,d e j e
d

= In + ( gd − gi,dei − g j,de j + g j,dei + gi,de j) e
d

= In + ( Ingd − eie
i gd − e j e
j gd + eie
j gd + e j e
i gd ) e
d

= In + ( In − eie −
i
e jej + eiej + e je
i ) gd e
d

= In + ( Pnijgd) e
d
b) Wir führen Induktion über k , den Fall k = 1 haben wir soeben erledigt. Sei also k > 1 . Nach

Induktionsvoraussetzung ist dann
k
k− 1
k

∏ Pn

∏

∏
i

G− 1

Pn

= In + ((

Pn ) gd) e
l jl
d
ik+1 −l jk+1 −l
il jl
d
l=2
l=1
l=2
also
k
k
k

∏ Pn

∏

∏
i

G− 1

Pn

= Pn ( In + ((

Pn ) gd) e
l jl
d
ik+1 −l jk+1 −l
i 1 j 1
il jl
d ) Pn
i 1 j 1
l=1
l=1
l=2
k
a)

= In + ((∏ Pni ) gd) e
l jl
d .

l=1

2

Führen wir den Gaußalgorithmus bei einer regulären Matrix A durch, so können wir dies auch
durch eine Multiplikation mit einer Folge von Frobenius- und Transpositionsmatrizen beschreiben.

Nach einer Gaußelimination können wir den Speicherplatz unterhalb des Diagonalelementes gdd
zur Abspeicherung des Vektors gd nutzen. Der folgende Satz verdeutlicht, warum es sinnvoll ist,
alle weiteren Zeilenvertauschungen auch mit dem gd -Vektor durchzuführen. Genauer gilt:

Satz 5.20 (Satz von der Dreieckszerlegung). Sei A ∈ R n×n eine reguläre Matrix und seien

Pn , . . . Pn
und G
i

1 , . . . , Gn− 1 die ben ¨
otigten Transpositions- 1 bzw. Frobeniusmatrizen. Setzen

1 j 1
in− 1 jn− 1
wir

n− 1
n− 1
n−k− 1

P = ∏ Pn

∏

∏
i
und

L =

In +

Pn
gke
n−k jn−k
in−s jn−s
k
k=1
k=1
s=1

1 genaugenommen müssten wir hier schreiben: Transpositions- oder Einheitsmatrizen

5.5. LU -Zerlegung

123
und bezeichnen mit U die Transformierte von A , also die obere Dreiecksmatrix, die das Ergebnis“

”

unserer Transformationen ist. Dann ist L eine untere Dreiecksmatrix und es gilt

PA = LU.

Beweis. Zunächst einmal ist für alle k die Matrix In + ∏ n−k− 1 Pn
g
offensichtlich wie-
s=1
in−s jn−s
ke
k
der eine Frobeniusmatrix, denn wir haben nur mehrfach Einträge in der k -ten Spalte unterhalb der

Diagonalen vertauscht. Somit ist L das Produkt von Frobeniusmatrizen mit von rechts nach links
wachsendem Index. Wir fügen ein Lemma ein:

Lemma 5.1. Sei für 1 ≤ r ≤ n − 1 die Matrix L = ∏ r

I

Produkt von Frobeniusmatrizen
k=1
n + gke
k
mit wachsendem Index. Dann ist
r

L = In + ∑ gkek,
k=1
also eine untere Dreiecksmatrix mit nur Einsen auf der Diagonale, und die Spalten r + 1 , . . . , n sind

Einheitsvektoren.

Beweis. Wir zeigen dies mittels vollständiger Induktion über r , der Fall r = 1 ist trivial. Sei also
nun r > 1 . Dann ist nach Induktionsvoraussetzung
r− 1

r− 1

∏ In + gke

∑
k

= In +
gke
k
k=1
k=1
und somit

r

r− 1

∏ In + gke

∑
k

=

In +
gke
k

In + gre
r
k=1
k=1
r
r− 1

= In + ∑ gke ∑
k +

( e
k gr ) gke
r
k=1
k=1
r

= In + ∑ gkek,
k=1
denn wegen k < r sind die Skalarprodukte ( eg
k
r ) alle Null.

2

Fortsetzung des Beweises des Satzes von der Dreieckszerlegung. Wir haben soeben bewiesen,
dass L eine untere Dreiecksmatrix mit Einsen auf der Diagonale ist. Zu zeigen bleibt nun noch die

Gleichung PA = LU . Setzen wir ein, so haben wir U = ∏ n− 1 G

A und
k=1
n−kPn
in−k jn−k

n− 1
n−k− 1
n− 1

LU = ∏ In +

∏ Pn

∏
i
g

G

A
n−s jn−s
ke
k
n−kPn
in−k jn−k
k=1
s=1
k=1

Wir müssen also noch zeigen, dass

n− 1
n−k− 1
n− 1

∏ In + ∏ Pn

∏
i
g

G

= P
n−s jn−s
ke
k
n−kPn
in−k jn−k
k=1
s=1
k=1
die im Satz definierte Permutationsmatrix ist.

124

Kapitel 5. Numerik und lineare Algebra

Betrachten wir den letzten Faktor des ersten Produkts, also für k = n − 1

n−n+1 − 1

In +

∏ Pni
g
n−s jn−s
n− 1 e
n− 1 ,
s=1
so ist das Produkt der Transpositionsmatrizen leer – das leere Matrizenprodukt ist die Einheitsmatrix

– und der Faktor ist nichts anderes als G− 1 . Diese Matrix hebt sich gegen G
n− 1
n− 1 im ersten Faktor
des rechten Produkts auf und von dort bleibt Pn
stehen.

in− 1 jn− 1

Betrachten wir nun den vorletzten Faktor des ersten Produkts, also

5.3a)

In + Pni
gn− 2 e

= Pn

G− 1 Pn

.

n− 1 jn− 1
n− 2
in− 1 jn− 1 n− 2 in− 1 jn− 1

Die letzte Transpositionsmatrix kürzt sich zunächst gegen das im letzten Ansatz stehengebliebene

Pn
und dann heben sich G− 1 und G
i
k− 2 aus dem zweiten Faktor des rechten Produktes auf.

n− 1 jn− 1
k− 2

Stehen bleiben von links ein Pn
und von rechts Pn

. Wir zeigen also mittels vollständiger
in− 1 jn− 1
in− 2 jn− 2

Induktion über l , dass

n− 1
n−k− 1
l
l

∏ In + ∏ Pn

∏

∏
i
g

G

=

P

(5.5)

n−s jn−s
ke
k
n−kPn
i
i
n−k jn−k
n−k jn−k
k= n−l
s=1
k=1
k=1
ist, woraus für l = n − 1 mit LU = (∏ n− 1 P

) A = PA die Behauptung folgt.

k=1 in−k jn−k

Für l = 1 , 2 haben wir eben die Behauptung nachgerechnet. Sei also nun 2 < l ≤ n − 1.

Nach Induktionsvoraussetzung ist dann

n− 1
n−k− 1
l− 1
l− 1

∏ In + ∏ Pn

∏

∏
i
g

G

=

P

(5.6)

n−s jn−s
ke
k
n−kPn
i
i
n−k jn−k
n−k jn−k
k= n−l+1
s=1
k=1
k=1

Spalten wir also in (5.5) links den ersten und rechts den letzten Faktor ab, so können wir für die
restlichen Terme die rechte Seite von (5.6) einsetzen und erhalten

n− 1
n−k− 1
l

∏ In + ∏ Pn

∏
i
g

G
n−s jn−s
ke
k
n−kPn
in−k jn−k
k= n−l
s=1
k=1

l− 1
l− 1

=

In + ∏ Pn

∏
i
g

P

G
n−s jn−s
n−l e
n−l
in−k jn−k
n−l Pn
in−l jn−l
s=1
k=1

5.3
l− 1
l− 1
l− 1

=

∏ Pn

∏

∏
i

G− 1

Pn

P

G
n−s jn−s
n−l
i
i
n−l Pn
n−l+ s jn−l+ s
n−k jn−k
in−l jn−l
s=1
s=1
k=1

l− 1
l

=

∏ Pn

∏
i

G− 1 G

=

Pn

.

n−s jn−s
n−l
n−l Pn
in−l jn−l
in−s jn−s
s=1
s=1

2

Bemerkung 5.21. Wir hatten bereits angedeutet, dass die LU -Zerlegung nützlich ist, wenn man

Ax = b für verschiedene Vektoren b lösen muss. Dafür berechnet man zunächst ein c ∈ R n mit

Lc = Pb . Da L eine untere Dreiecksmatrix ist, lässt sich diese Gleichung durch eine einfache

Rekursion lösen. Nun berechnet man ein x ∈ R n mit Ux = c. Insgesamt gilt dann Ax = P− 1 PAx =

P− 1 LU x = P− 1 Lc = P− 1 Pb = b .

5.5. LU -Zerlegung

125

Beispiel 5.22. Wir berechnen die LU -Zerlegung der Matrix

⎛

⎞

1 2 3 4

⎜

⎜

⎟

2 9 12 15 ⎟

A = ⎜

⎝

⎟

3 16 29 35 ⎠ .

4 23 46 65

Zunächst ziehen wir das Doppelte der ersten Zeile von der zweiten ab, das Dreifache von der dritten
und das Vierfache von der vierten. Dies entspricht der Linksmultiplikation der Matrix mit

⎛ ⎞

⎛

⎞

0

1 0 0 0

⎜

⎜ ⎟

⎜

⎟

2 ⎟

⎜ − 2 1 0 0 ⎟

G 1 = I 4 − ⎜

⎝ ⎟

⎜

⎟

3 ⎠ (1 , 0 , 0 , 0) = ⎝ − 3 0 1 0 ⎠ .

4

− 4 0 0 1

Aus A wird dann die Matrix

⎛

⎞

1 2 3 4

⎜

⎜

⎟

0 5 6 7 ⎟

G 1 A = ⎜

⎝

⎟

0 10 20 23 ⎠ .

0 15 34 49

Wir merken uns diesen Zustand und die Transformationsmatrix, indem wir den relevanten Teil des
g 1 -Vektors in die erste Spalte unter die Diagonale schreiben. Unsere gespeicherte Matrix“ (dass die

”

Einträge nicht einer einzigen Matrix entsprechen, deuten wir an, indem wir an Stelle der Klammern

Striche nehmen) sieht also nun so aus:

1 2 3 4

2 5 6 7

.

3 10 20 23

4 15 34 49

Nun ziehen wir das Doppelte der zweiten Zeile von der Dritten und das Dreifache der zweiten von
der vierten Zeile ab und erhalten

1 2 3 4

2 5 6 7

3 2 8 9

4 3 16 28
und im letzten Schritt ziehen wir die dritte Zeile zweimal von der vierten ab

1 2 3 4

2 5 6 7

.

3 2 8 9

4 3 2 10

126

Kapitel 5. Numerik und lineare Algebra

Also haben wir die LU -Zerlegung von A berechnet mit

⎛

⎞

⎛

⎞

1 0 0 0

1 2 3 4

⎜

⎜

⎟

⎜

⎟

2 1 0 0 ⎟

⎜ 0 5 6 7 ⎟

L = ⎜

⎝

⎟

⎜

⎟

3 2 1 0 ⎠
und

U = ⎝0 0 8 9⎠ .

4 3 2 1

0 0 0 10

Mit dieser Zerlegung wollen wir nun die Gleichung Ax = b für zwei rechte Seiten lösen und zwar
b = (1 , 13 , 26 , 49) und b = ( − 2 , − 1 , 17 , 45) .

Dafür lösen wir zunächst Lc = b und erhalten
c 1 = 1 ,
c 2 = 13 − 2 = 11 ,
c 3 = 26 − 22 − 3 = 1 ,
c 4 = 49 − 2 − 33 − 4 = 10
also c = (1 , 11 , 1 , 10) . Nun lösen wir U x = c und erhalten

1 − 9

11 + 6 − 7
x 4 = 1 ,
x 3 =

= − 1 ,
x 2 =

= 2 ,
x 1 = 1 − 2 ∗ 2 + 3 − 4 = − 4 .

8

5

Also löst x = ( − 4 , 2 , − 1 , 1) die Gleichung Ax = b.

Führen wir die analogen Rechnungen mit b durch, so erhalten wir
c = ( − 2 , 3 , 17 , 10)

und
x = ( − 5 , − 2 , 1 , 1) .

Analysieren wir die Komplexität des Algorithmus, so sind für den d -ten Gaußeliminationsschritt
zunächst einmal n − d Divisionen, ( n − d)2 Multiplikationen und ( n − d)2 Additionen durch-
zuführen. Wir fassen Divisionen und Multiplikationen zusammen zu n − d + ( n − d)2 Multiplikatio-
nen. Abgesehen von der Pivotsuche erhält man somit einen Aufwand von
n− 1
n− 1

∑
n( n − 1)

( n − 1) n(2 n − 1)

n 3

( n − i + ( n − i)2) = ∑ ( i + i 2) =

+

=

− n

2

6

3

3
i=1
i=1

Multiplikationen und

( n − 1) n(2 n − 1)

n 3
n

=

− n 2 +

6

3

2

6

Additionen.

Hierbei haben wir die aus der Schule bekannte Formel
n

∑
n( n + 1)(2 n + 1)

i 2 =

6
i=1
benutzt.

Bei der Lösung von Lc = Pb und U x = c beträgt der Aufwand jeweils n = n 2 − n Additionen

2

2

2

und n+1 = n 2 + n Multiplikationen.

2

2

2

Bemerkung 5.23. Bei der Pivotsuche sollte man aus Gründen der numerischen Stabilität nach
möglichst großen Einträgen suchen. Führt man allerdings eine Spaltenpivotsuche durch, so emp-
fiehlt es sich, vorher das Maximum der Zeilen zu skalieren.

5.6. Gauß-Jordan-Algorithmus

127

Aufgabe 5.24. Führen Sie für die Matrix

⎛

⎞

1 2 3 4

⎜

⎜

⎟

4 9 14 19 ⎟

A = ⎜

⎝

⎟

5 14 24 34 ⎠

6 17 32 48
eine LU -Zerlegung durch und lösen Sie Ax = bi für b 1 = (0 , 3 , 13 , 20) , b 2 = ( − 1 , 2 , 24 , 46) und b 3 = (7 , 32 , 53 , 141 ) .

2

Lösung siehe Lösung 9.54.

5.6 Gauß-Jordan-Algorithmus

Anstatt nur unterhalb des Pivotelementes die Variable zu eliminieren, kann man dies natürlich auch
oberhalb der Diagonale tun. Wir erhalten so die Gauß-Jordan-Elimination.

def gaussjordanelim(A,i,j):

A ij=A[i,j]

A[i,:]=A[i,:]/A ij
for k in range(i)+range(i+1,m):

A kj=A[k,j]

A[k,:]=A[k,:]-A[i,:]*A kj

Dabei erzeugen wir für die for-Schleife mit dem Befehl
range(i)+range(i+1,m)

eine Liste von 0 bis m − 1, die das Element i auslässt. Indem wir diese Liste als Laufindex benutzen,
können wir den Befehl in einer einzigen for-Schleife kodieren.

Analog zu dem Vorherigen kann man diese Eliminationsschritte zu einem Algorithmus kombi-
nieren, bei dem in A eine Einheitsmatrix übrigbleibt und rechter Hand eine Lösung des Gleichungs-
systems steht.

Vorteile hat man beim Einsatz von Vektorrechnern, ansonsten ist die Komplexität um einen Faktor
drei schlechter als eben. Den Gauß-Jordan-Eliminationsschritt werden wir allerdings in der Linearen

Programmierung noch intensiv benutzen.

Auch den Gauß-Jordan-Eliminationsschritt kann man als Linksmultiplikation mit einer Matrix
beschreiben. Diese hat bei einem Pivotschritt mit dem Element ai j die Gestalt

⎛
i

⎞

−a

1

1 j

⎜
ai j

⎜

⎟

⎜

.

⎟

.

⎜

.

0

⎟

⎜

⎟

⎟
i ⎜

1

⎟
a

G

⎜
i j

⎟
i, j =

⎜

−a

⎜
i+1 , j

⎟

⎜
a

⎟
i j

⎜

⎟

⎜

.

⎟

.

. .

⎝

0

.

.

⎟

⎠

−anj

1
ai j

128

Kapitel 5. Numerik und lineare Algebra
und wird als η -Matrix bezeichnet. Die i -te Spalte wird auch η -Vektor genannt.

Aufgabe 5.25. Lösen Sie die linearen Gleichungssysteme aus Aufgabe 5.24 mit dem Gauß-Jordan-

Algorithmus.

Lösung siehe Lösung 9.55.

5.7 Elementares über Eigenwerte

Eigenwerte quadratischer Matrizen haben Sie vielleicht in anderem Zusammenhang schon kennen
gelernt. Wir geben hier die Definition und ein paar elementare Fakten an.

Definition 5.4. Sei A eine ( n × n)-Matrix über R. Eine Zahl λ ∈ R heißt Eigenwert von A, wenn
es ein x ∈ R n \ { 0 } gibt mit Ax = λ x. Jeder solche Vektor x = 0 heißt Eigenvektor von A zum

Eigenwert λ .

Definition 5.5. Eine quadratische Matrix Q heißt orthogonal, wenn QQ = QQ = I .

Orthogonale Matrizen beschreiben bzgl. der Standardbasen des R n lineare Abbildungen, die

Längen und Winkel konstant lassen.

Wir übernehmen aus der Linearen Algebra ohne Beweis den Satz von der Hauptachsentransfor-
mation. Beachten Sie die Voraussetzung, dass A symmetrisch sein muss.

Satz 5.26. Ist A eine reellwertige, symmetrische Matrix, dann gibt es eine orthogonale Matrix Q ,
so dass QAQ = D eine Diagonalmatrix ist. Die Spalten von Q bilden eine Orthonormalbasis aus

Eigenvektoren .

2

Wir nennen A = QDQ die Hauptachsentransformation von A , da die Eigenwerte von A die

Diagonaleinträge von D sind und zugehörige Eigenvektoren die Zeilen von Q . Ist D eine Diago-
nalmatrix und y der Vektor der Diagonaleinträge, so schreiben wir auch D = diag( y) .

Der Name dieses Satzes rührt unter anderem daher, dass wenn alle Eigenwerte der symmetrischen

Matrix A positiv sind, die Menge der Punkte

)

*

E := x ∈ R n | xAx ≤ 1
im R n ein Ellipsoid ist. Die orthogonale Transformation mit Q dreht“ dann die Achsen des

”

Ellipsoids in die Koordinatenachsen.

Korollar 5.27. Die Zeilen der Matrix Q bilden eine Orthonormalbasis von R n bestehend aus

Eigenvektoren von A .

5.8 Choleskyfaktorisierung

Der Satz über die Hauptachsentransformation besagt, dass man eine symmetrische Matrix A durch

Drehung und Spiegelung des Koordinatensystems in eine Diagonalmatrix überführen kann, welche

5.8. Choleskyfaktorisierung

129
die Eigenwerte von A auf der Diagonalen hat. Sind diese alle nicht-negativ, so kann man aus A
die Wurzel ziehen“. Dann ist nämlich A = Q diag( y) Q und y ist in jeder Koordinate positiv.

”

√

Bezeichnen wir mit
y den Vektor(!), den wir aus y erhalten, wenn wir in jeder Koordinate die

√

√

Wurzel ziehen, so ist A = ( Q diag( y))( Q diag( y)) .

Definition 5.6. Sei A ∈ R n×n eine symmetrische Matrix. Dann heißt A positiv definit, falls xAx > 0
für alle x ∈ R n \ { 0 }. Gilt nur xAx ≥ 0 für alle x ∈ R n , so heißt die Matrix positiv semidefinit.

Positiv definite Matrizen werden beim sogenannten Newtonverfahren in der nichtlinearen Pro-
grammierung eine Rolle spielen.

Im Folgenden werden wir zeigen, wie man bei positiv definiten Matrizen das Gleichungssystem

Ax = b noch effizienter lösen kann. Dafür werden wir eine Wurzel“ solcher Matrizen bestimmen,

”

allerdings nicht die oben angeführte, sondern eine untere Dreiecksmatrix L mit A = LL .

Vorher zum Warmwerden eine Beobachtung:

Proposition 5.4. Eine reellwertige, symmetrische Matrix ist positiv definit genau dann, wenn der
kleinste Eigenwert λ n > 0 ist.

Beweis. Ist λ n ≤ 0 und xn ein Eigenvektor zu λ n , so haben wir sofort
x
λ
n Axn = x
n
nxn = λ n!x! 2 ≤ 0 .

Die Bedingung ist also offensichtlich notwendig.

Umgekehrt, sei b 1 , . . . , bn eine Orthonormalbasis aus Eigenvektoren zu den Eigenwerten λ1 ≥

. . . ≥ λ n > 0 und x ∈ R n \{ 0 }. Diese erhalten wir nach Korollar 5.27 aus den Zeilen der Transforma-
tionsmatrix in der Hauptachsentransformation. Die Koordinaten von x bzgl. einer Orthonormalbasis
erhalten wir durch die Formel
n
x = ∑( xbi) bi,
i=1
die wir aus der linearen Algebra übernehmen. Dann ist

n
n
xAx

=

∑( xbi) b

∑
i

A

( xb j) b j
i=1
j=1

n
n

=

∑( xbi) b ∑
i

( xb j) Ab j
i=1
j=1
b
n
j sind EV

=

∑ ( xbi)( xbj)λ jbibj
i, j=1
n

( bi) ist ONB

=

∑ λ j( xbj)2
j=1
x=0 , λ j> 0

>

0 .

Da x beliebig gewählt war, ist damit die positive Definitheit von A gezeigt.

2

130

Kapitel 5. Numerik und lineare Algebra

So genannte Hauptuntermatrizen quadratischer Matrizen erhalten wir, wenn wir einige Zeilen
und die Spalten mit dem gleichen Index streichen. Streichen wir nur Zeilen und Spalten mit höchsten

Indizes, so erhalten wir eine so genannte führende Hauptuntermatrix.

Hauptuntermatrizen positiv definiter Matrizen sind wieder positiv definit, wie die folgende Pro-
position zeigt.

Proposition 5.5. Sei A ∈ R n×n symmetrisch und positiv definit und I ⊆ { 1 , . . . , n}. Dann ist auch

AI,I symmetrisch und positiv definit.

Beweis. Offensichtlich ist AI,I symmetrisch. Angenommen sie wäre nicht positiv definit, dann gäbe
es ein ˜
x ∈ R I \ { 0 } mit ˜ xAI,I ˜ x ≤ 0. Wir definieren x ∈ R n durch

˜ xi falls i∈I
xi :=

0 sonst.

Dann ist x = 0 und xAx = ˜ xAI,I ˜ x ≤ 0 im Widerspruch zur positiven Definitheit von A.

2

Diese Proposition erlaubt es uns, von links oben nach rechts unten positiv definite Matrizen als

Quadrat“ einer unteren Dreicksmatrix zu schreiben.

”

Satz 5.28 (Satz von der Choleskyfaktorisierung). Sei A ∈ R n×n symmetrisch und positiv definit.

Dann existiert eine eindeutig bestimmte, reguläre untere Dreiecksmatrix L mit A = LL und Lii > 0
für i = 1 , . . . , n .

Beweis. Wir führen vollständige Induktion über n . Im Fall n = 1 ist A = ( a 11) mit a 11 > 0 und wir

√
setzen L = ( a 11). Sei also n > 1. Wir zerlegen A als

An− 1 ,n− 1 b

A =

.

b
an,n

Wie oben gezeigt ist An− 1 ,n− 1 positiv definit und symmetrisch. Nach Induktionsvoraussetzung
gibt es also genau eine reguläre untere Dreiecksmatrix Ln− 1 mit positiven Diagonalelementen und

Ln− 1 L = A
n− 1
n− 1 ,n− 1 . Jedes L wie in dem Satz behauptet hat also wegen der Eindeutigkeit von

Ln− 1 ,n− 1 notwendig die Form

Ln− 1 ,n− 1 0

L =

.

c
ln,n

Setzen wir ein, so erhalten wir

An− 1 ,n− 1 b

Ln− 1 0

L
c

A =

=
n− 1
b
an,n
c ln,n

0
ln,n
und somit als notwendige und hinreichende Bedingungen Ln− 1 c = b und !c! 2 + l 2 n,n = an,n . Da Ln− 1
regulär ist, können wir c = L− 1 b setzen. Die Behauptung folgt nun, wenn wir zeigen können, dass
n− 1
an,n − !c! 2 > 0 ist. Dafür betrachten wir x = ( cL− 1 , − 1). Dann ist x = 0 und somit
n− 1

5.8. Choleskyfaktorisierung

131

0 < xAx

An− 1 ,n− 1 b

( L− 1 ) c

= x
n− 1
b
an,n

− 1

Ln− 1 L ( L− 1 ) c − b

= x
n− 1
n− 1
cL ( L− 1 ) c − a
n− 1
n− 1
n,n

0

= ( cL− 1 , − 1)

n− 1
cc − an,n

= an,n − !c! 2 .

2

Aus diesem Induktionsbeweis erhalten wir direkt einen Algorithmus, indem wir umsetzen, wie
wir jeweils die Gleichung LI,IcI = bI nach c auflösen (dies ist leicht, da L eine Dreiecksmatrix ist),
und dann aus ai+1 ,i+1 − cc

I

I die Wurzel ziehen.

Wir können aber auch einfach von der Gleichung A = LL ausgehen und betrachten für die
einzelnen Rechenschritte der Choleskyfaktorisierung das Zustandekommen der einzelnen Einträge
von A .

n
min {i, j}

ai j = Li.L

∑

∑

. j =
likl jk =
likl jk.

k=1
k=1

Das Minimum in der Summe können wir einsetzen, da L eine untere Dreiecksmatrix ist. Wir
können nun leicht rekursiv die Einträge von L ausrechnen und erhalten folgenden Algorithmus:

√

+
ai 1
ai 2 − l 21 li 1
l 11 =
a 11 ,
li 1 =

,
l 22 =
a 22 − l 2 ,
li 2 =
l

21

11
l 22
und allgemein

,

-

-
k− 1
aik − ∑ k− 1 l
j=1 k j li j
l

.

kk =
akk − ∑ l 2 , l
für i = k + 1 , . . . , n.

ki
ik =
l
i=1
kk

Als Pythoncode erhalten wir hieraus:

def cholesky(A):

n=A.shape[0]

L=zeros((n,n))

try:

for k in range(n):

L[k,k]=sqrt(A[k,k]-dot(L[k,:],L[k,:]))

for l in range(k+1,n):

L[l,k]=(A[l,k]-dot(L[l,:],L[k,:]))/L[k,k]

except:

print “Matrix nicht positiv definit”

return L

Der Ausdruck dot(L[k,:],L[k,:]) ist ein Befehl des Paketes NumPy, mit dem man das

Skalarprodukt zweier Vektoren berechnet.

132

Kapitel 5. Numerik und lineare Algebra

Analysieren wir den Rechenaufwand des Verfahrens. Dabei zählen wir den Rechenaufwand
nicht spaltenweise, wie es sich an Hand der Implementierung zunächst anbieten würde, sondern
zeilenweise. Bei festem Zeilenindex i haben wir für die Spalte k mit 1 ≤ k ≤ i − 1 für das Element
lik jeweils einen Aufwand von k − 1 Multiplikationen, k − 1 Additionen und einer Division. Das

Element lii trägt zusätzlich i − 1 Multiplikationen und Additionen, sowie eine Quadratwurzel

bei. Summieren wir dies auf, so erhalten wir für die i -te Zeile einen Aufwand von ∑ i− 1 k = i
k=1

2

Additionen,
i

Multiplikationen, i − 1 Divisionen und einer Quadratwurzel. Über alle Spalten

2
aufsummiert erhalten wir

1 n

∑
n( n + 1)(2 n + 1) − 3 n( n + 1)

n 3 − n
i 2 − i =

=

2

12

6
i=1

Additionen und Multiplikationen,
n

Divisionen und n Quadratwurzeln. Die Cholesky-

2

Faktorisierung läßt sich analog zur LU-Zerlegung zur Lösung von Gleichungssystemen Ax = b be-
nutzen. Der Aufwand beträgt aber nur etwa die Hälfte des Gaußverfahrens. (Tatsächlich haben wir
wegen der Symmetrie eigentlich ja auch nur halb so viele Daten.) Außerdem ist dieser Algorithmus
numerisch stabiler.

Beispiel 5.29. Wir betrachten die Matrix

⎛

⎞

1 − 1 − 1 − 1

⎜

⎜ −

⎟

1

2

0

0 ⎟

A = ⎜

⎝

⎟

− 1 0 3 1 ⎠

− 1 0 1 4
und berechnen

√
l 1 , 1 =

1 , l 2 , 1 = − 1 , l 3 , 1 = − 1 , l 4 , 1 = − 1 ,

l 2 , 2 =

2 − ( − 1)2 = 1 , l 3 , 2 = (0 − ( − 1) · ( − 1)) / 1 = − 1 ,
l 4 , 2 = (0 − ( − 1) · ( − 1)) / 1 = − 1 ,

√
l 3 , 3 =

3 − 1 − 1 = 1 , l 4 , 3 = (1 − ( − 1) · ( − 1) − ( − 1) · ( − 1)) / 1 = − 1 ,

√
l 4 , 4 =

4 − 1 − 1 − 1 = 1 ,
also

⎛

⎞ ⎛

⎞⎛

⎞

1 − 1 − 1 − 1

1

0

0

0

1 − 1 − 1 − 1

⎜

⎜ −

⎟ ⎜

⎟⎜

⎟

1

2

0

0

− 1 1 0 0

0

1 − 1 − 1

⎜

⎟ ⎜

⎟⎜

⎟

⎝

⎟ ⎜

⎟⎜

⎟

− 1 0 3 1 ⎠ = ⎝ − 1 − 1 1 0 ⎠⎝ 0 0 1 − 1 ⎠ .

− 1 0 1 4

− 1 − 1 − 1 1

0

0

0

1

Aufgabe 5.30. Sei A eine reguläre symmetrische Matrix. Zeigen Sie:

a) λ ∈ R ist genau dann ein Eigenwert von A, wenn λ − 1 Eigenwert von A− 1 ist.

b) A ist genau dann positiv definit, wenn A− 1 positiv definit ist.

Aufgabe 5.31. Sei A ∈ R n×n eine symmetrische Matrix. Zeigen Sie: A ist genau dann nicht positiv
definit, wenn im Verlauf des Choleskyverfahrens für ein 1 ≤ k ≤ n der Ausdruck
k− 1
akk − ∑ l 2 ≤
ki

0
i=1
ist. Lösung siehe Lösung 9.57.

5.9. Matrixnormen

133

Aufgabe 5.32. Bestimmen Sie für die Matrizen A 1 , A 2 , ob Sie positiv definit sind und berechnen Sie
gegebenenfalls die Choleskyfaktorisierung.

⎛

⎞

16 8 4 16 20

⎛

⎞

⎜

⎜

⎟

⎟

6

0

6 − 4

⎜ 8 5 4 11 14 ⎟

⎜

⎜

⎟

⎜

⎟

0

6 − 4

6 ⎟

⎜

⎟

A

⎜

⎟

1 = ⎜

⎝

⎟

⎜ 4 4 14 16 22 ⎟ .

6 − 4

6

0 ⎠

A 2 = ⎜

⎟

−

⎜

⎟

4

6

0

6

⎜ 16 11 16 30 40

⎝

⎟

⎠

20 14 22 40 55

Lösung siehe Lösung 9.58.

5.9 Matrixnormen

In diesem Abschnitt wollen wir Überlegungen zur numerischen Stabilität von Operationen der Li-
nearen Algebra diskutieren. Sie haben in Aufgabe 5.11 gezeigt, dass der Betrag des absoluten Fehlers
bei Multiplikation mit einer Konstanten a = 0 ebenfalls mit |a| multipliziert wird und der relative

Fehler sich betragsmäßig nicht ändert. Wie sieht das im Mehrdimensionalen aus? Zur Untersuchung
des relativen Fehlers werden wir Normen von Matrizen studieren. Die reelle Multiplikation können
wir auch auffassen als Multiplikation mit einer eindimensionalen Matrix und somit sind Matrizen
so etwas wie lineare Koeffizienten“ im Mehrdimensionalen. Dafür benötigen wir aber zunächst

”

Längenmaße in Vektorräumen.

Definition 5.7. Sei X ein Vektorraum über R. Eine Abbildung ! · ! : X → R heißt Norm, wenn

(N1)

!x! = 0 ⇐⇒ x = 0,

(N2)

∀α ∈ R : ! α x! = |α |!x!

(Homogenität),

(N3)

!x + y! ≤ !x! + !y!

(Dreiecksungleichung).

Ein Vektorraum mit Norm heißt normierter Vektorraum.

Wegen 0 = !x − x! ≤ !x! + ! − x! = 2 !x! gilt stets !x! ≥ 0.

Beispiel 5.33. Für x ∈ R n ist die euklidische Norm ! · ! die bekannte Größe

"

n

!x! 2 := xx = ∑ x 2 .i
i=1

Zu einem normierten n -dimensionalen R-Vektorraum X und einem normierten m-dimensionalen

R-Vektorraum Y gibt es eine natürliche Norm auf dem Vektorraum der ( m × n)-Matrizen über R.

Dafür untersuchen wir, um welchen Faktor A einen Vektor streckt oder staucht und bilden über diese

Zahlen das Supremum.

Aufgabe 5.34. Zeigen Sie, dass die zu Anfang dieses Kapitels eingeführten Normen“ ! · !

”

1 und

! · ! ∞ Normen sind.

Lösung siehe Lösung 9.59.

134

Kapitel 5. Numerik und lineare Algebra

Proposition 5.6. Seien X = R n , Y = R m normierte R -Vektorräume der Dimensionen n bzw. m mit

Normen ! · !X , ! · !Y . Dann ist die Abbildung ! · !X→Y : R m×n → R , definiert durch

!

!

Ax!Y !

A!X→Y :=
sup

!

!

= max

Ax!Y
x∈ R n\{ 0 }

x!X

!x!X =1
eine Norm auf dem Vektorraum der ( m × n) -Matrizen über R , die natürliche Norm. (Mit dem

Ausrufezeichen über dem letzten Gleichheitszeichen deuten wir an, dass diese Gleichheit nicht a
priori klar ist und noch bewiesen werden muss.)

Beweis. Zunächst zeigen wir die Gleichheit

!Ax!Y
sup

!

!

= max

Ax!Y .

x∈ R n\{ 0 }

x!X

!x!X =1

Sei x ∈ R n \ { 0 }. Dann ist

/

/

!Ax!

/

/

Y

/
x

/

!

=
x!

/ A

/

X

!x!X Y

// //

Da / x

!

/ = 1 ist, sind aber die Mengen
x!X

X

!Ax!Y |

!

x ∈ R n \ { 0 } = {!Ax!Y | x ∈ R n, !x!X = 1 }

x!X
gleich. In der rechten Menge betrachten wir nur die Vektoren der Standardsphäre. Diese Menge ist
beschränkt und abgeschlossen, weshalb das Maximum existiert. Diese Aussage, die Existenz von

Extremwerten stetiger Funktionen auf abgeschlossenen, beschränkten Mengen, setzen wir an dieser

Stelle ohne Beweis voraus.

ad N1:

max !x!X=1 !Ax!Y = 0 impliziert mit der Homogenität, dass Ax = 0 für alle x ∈ R n . Also
ist A die Nullmatrix A = 0 .

ad N2:

max !x!X=1 ! α Ax!Y = max !x!X=1 |α |!Ax!Y = |α | max !x!X=1 !Ax!Y .

ad N3:

max ! ( A + B) x!Y ≤ max ( !Ax!Y + !Bx!Y )

!x!X =1

!x!X =1

≤ max !Ax!Y + max !By!Y .

!x!X =1

!y!X =1

Die erste Ungleichung gilt, da ( A + B) x = Ax + Bx und ! · !Y die Dreiecksungleichung erfüllt.

Für die zweite Ungleichung sei x 0 ∈ R n , !x 0 ! = 1 mit

!Ax 0 !Y + !Bx 0 !Y = max ( !Ax!Y + !Bx!Y ) .

!x!X =1

Dann ist

!Ax 0 !Y ≤ max !Ax!Y
und

!Bx 0 !Y ≤ max !Bx!Y ,

!x!X =1

!x!X =1
woraus die zweite Ungleichung folgt.

2

5.9. Matrixnormen

135

Da nun für alle x ∈ X \{ 0 } gilt: !Ax!Y /!x!X ≤ !A!X→Y , haben wir stets !Ax!Y ≤ !A!X→Y !x!X .

Für natürliche Matrixnormen für quadratische Matrizen gilt !I! = 1 und !AB! ≤ !A!!B! .

Letzteres folgt aus

!ABx!X ≤ !A!X→X!Bx!X ≤ !A!X→X!B!X→X!x!X.

Beispiel 5.35. Wir betrachten die zu Anfang dieses Kapitels bereits eingeführten Normen ! · ! 1 ,

! · ! 2 ,!·! ∞ . Sind dann X = R n = Y , so schreiben wir für die zugehörigen Matrixnormen kurz ebenso

!A! 1 ,!A! 2 ,!A! ∞ . Es gilt:

a) !A! 1 = max j∈{ 1 ,...n} ∑ n |a
i=1
i j | (Spaltensummennorm),
b) !A! ∞ = max i∈{ 1 ,...n} ∑ n |a
j=1
i j | (Zeilensummennorm),

√
c) !A! 2 = max { λ | λ ist Eigenwert von AA} (Spektralnorm).

Beweis. Zum Beweis von a). Sei x ∈ R n mit !x! 1 = ∑ n

|
j=1 x j | = 1 . Dann gilt

n n

!

Ax! 1

=

∑∑

ai jx j
i=1 j=1
n

≤

∑ |aij||xj|
i, j=1

n
n

=

∑ |xj|∑ |aij|
j=1
i=1

n
n

≤ ∑ |xj| max ∑ |aik|
j=1
k∈{ 1 ,...,n} i=1

!

n
x! 1=1

=
max

∑ |aij|.

j∈{ 1 ,...,n} i=1

Also ist schon einmal !A! 1 ≤ max j∈{ 1 ,...,n} ∑ n |
i=1 ai j |. Die Gleichheit folgt nun, da !Ae j ! 1 =

∑ n |
i=1 ai j | .

ad b): Sei nun x mit !x! ∞ = max j∈{ 1 ,...,n} |xj| = 1 . Dann gilt

n

!

Ax! ∞ =
max ∑ aijxj
i∈{ 1 ,...,n}

j=1

0
n

≤
max

∑ |aij||xj|
i∈{ 1 ,...,n}

j=1

|xj|≤ 1
n

≤
max

∑ |aij|.

i∈{ 1 ,...,n} j=1

Damit haben wir gezeigt, dass
n

!A! ∞ ≤ max ∑ |aij|.

i∈{ 1 ,...n} j=1

Die Behauptung folgt somit, wenn wir noch einen Vektor angeben, bei dem
n

!Ax! ∞ ≥ max ∑ |aij|
i∈{ 1 ,...n} j=1
ist. Sei dazu i 0 ein Index, an dem das Maximum angenommen wird, also mit

136

Kapitel 5. Numerik und lineare Algebra
n
n
max ∑ |aij| = ∑ |ai 0 j|
i∈{ 1 ,...n} j=1
j=1
und x ∈ R n der Vektor definiert durch

⎧

⎪

⎨ 1 falls ai > 0
xi := ⎪ 0 falls a

⎩
i = 0

− 1 falls ai < 0 .

Dann ist
n
n

!Ax! ∞ ≥ |Ax|i = ∑ |a

∑ |a

0
i 0 j| =
max
i j |.

j=1
i∈{ 1 ,...n} j=1

Für den Beweis von c) erinnern wir uns zunächst daran, dass es, da AA symmetrisch ist, eine

!

Orthonormalbasis b 1 , . . . , bn aus Eigenvektoren zu Eigenwerten λ1 ≥ . . . ≥ λ n ≥ 0 von AA gibt.

(Wegen xAAx = !Ax! 2 ≥ 0 für x = 0 ist AA positiv semidefinit.) Sei nun x = ∑ n β

2
i=1
ibi mit

√

+

!x! 2 = xx = ∑ n β2 =
i=1

1 . Dann ist
i

!Ax! 22

=
xAAx
n
n

=

(∑ β ib

∑β
i ) AA(
ib
i )

i=1
i=1
n
n

=

(∑ β ib ∑ β
i )(
j AA b j )

i=1
j=1
b
n
n
j sind EV

=

(∑ β ib ∑ β
i )(
j λ j b j )

i=1
j=1
n

=

∑ β iβ jλ jbibj
i=1
j=1
n

( bi) ist ONB

=

∑β2λ
i
i
i=1

≤
λ1 .

√

Die Behauptung folgt nun aus bAAb
b
λ . 2

1

1 = λ1 b

1

1 = λ1 . Denn dies impliziert !Ab 1 ! 2 =

5.10 Kondition

Die motivierende Fragestellung dieses Abschnitts ist: Wie wirken sich Datenfehler bei der Aufgabe

Ax = b mit einer regulären Matrix A (bei exakter Lösung) auf den Vektor x aus. In diesem Abschnitt
gehen wir davon aus, dass eine feste Vektornorm ! · ! R n mit zugehöriger Matrixnorm ! · ! R n→ R n
gegeben ist.

Beschränken wir uns zunächst auf eine fehlerbehaftete rechte Seite ˆ b . Bezeichnen wir den
absoluten Fehler der rechten Seite mit Δ b und den absoluten Fehler des Lösungsvektors mit Δ x , so
lautet die fehlerbehaftete Gleichung

A( x + Δ x) = b + Δ b.

5.10. Kondition

137

Hieraus ergibt sich Δ x = A− 1Δ b und somit

! Δ x! ≤ !A− 1 !! Δ b!.

Mit !b! ≤ !A!!x! erhalten wir !x! ≥ !b!

!A! und hieraus folgende Abschätzung für den relativen

Fehler:

! Δ x!

! Δ

≤ !

b!

!

A− 1 !!A!

x!

!b! .

(5.7)

Definition 5.8. Sei A ∈ R n×n eine reguläre Matrix. Die Zahl
cond( A) := !A− 1 !!A!

heißt Kondition der Matrix A .

Die Kondition ist abhängig von der gewählten Norm. Für die natürliche Matrixnorm eines normier-
ten Raumes gilt
cond( A) = !A− 1 !!A! ≥ !A− 1 A! = !In! = 1 .

Wir nennen eine Matrix schlecht konditioniert, wenn die Konditionszahl cond( A) deutlich größer
als 1 ist und gut konditioniert, wenn cond( A) nahe bei 1 ist.

Um auch Auswirkungen von Störungen von A abschätzen zu können, beweisen wir zunächst ein
etwas technisches Lemma:

Lemma 5.2. Sei A ∈ R n×n und !A! < 1 . Dann ist In + A regulär und

1

≤ ! ( In + A) − 1 ! ≤

1

1 + !A!

1 − !A! .

Beweis. Wegen

!x! = !x + Ax − Ax! ≤ !x + Ax! + !Ax! ≤ !x + Ax! + !A!!x!

gilt:

! ( In + A) x! = !x + Ax! ≥ !x! − !A!!x! = (1 − !A! ) !x!.

Da nach Voraussetzung 1 −!A! > 0 ist, kann ( In + A) x = 0 nur gelten, wenn x = 0 ist. Somit muss

In + A regulär sein. Ferner haben wir

(N3)

1 ≤ ! ( In + A) − 1 !!In + A! ≤ ! ( In + A) − 1 ! (1 + !A! ) ,
also gilt die linke Ungleichung und

! ( In + A) − 1 ! = ! ( In + A) − 1 + ( In + A) − 1 A − ( In + A) − 1 A!

= ! ( In + A) − 1( In + A) − ( In + A) − 1 A!

≤ ! ( In + A) − 1( In + A) ! + ! ( In + A) − 1 A!

≤ 1 + ! ( In + A) − 1 !!A!,

138

Kapitel 5. Numerik und lineare Algebra
also

! ( In + A) − 1 ! (1 − !A! ) ≤ 1 ,
woraus die rechte Abschätzung folgt.

2

Wir sind an den Auswirkungen einer Störung von A bei der Lösung von Ax = b und damit
an einer Abschätzung von cond( A + Δ A) interessiert. Nennen wir A + Δ A dann B , so hilft uns
folgendes Lemma weiter.

Lemma 5.3 (Störungslemma). Seien A, B ∈ R n×n quadratisch, A regulär und !A− 1 !!B − A! < 1 .

Dann ist auch B regulär und

!

!

A− 1 !

B− 1 ! ≤ 1 −!A− 1 !!B−A!.

Beweis. Nach Voraussetzung ist !A− 1( B − A) ! ≤ !A− 1 !! ( B − A) ! < 1. Nach Lemma 5.2 ist also

In + ( A− 1 B − In) = A− 1 B regulär, somit auch B regulär, und es gilt

!B− 1 ! = !B− 1 AA− 1 ! ≤ !B− 1 A!!A− 1 !

= !A− 1 !! ( A− 1 B) − 1 !

− 1

= !A− 1 !! In + ( A− 1 B − In)

!

5.2

≤ !A− 1 !

1

1 − !A− 1 B − In!

= !A− 1 !

1

1 − !A− 1( B − A) !

≤ !A− 1 !

1

1 − !A− 1 !!B − A! .

2

Nun können wir abschließend folgenden Satz beweisen.

Satz 5.36. Seien A, Δ A ∈ R n×n und gelte !A− 1 !! Δ A! < 1 . Seien x ∈ R n , x = 0 , bzw. x + Δ x ∈ R n Lösungen des Systems Ax = b bzw. ( A + Δ A)( x + Δ x) = b. Dann lässt sich der relative Fehler in x
abschätzen durch den relativen Fehler in A und die Konditionszahl von A zu

! Δ x!

! Δ

≤
cond( A)

A!

!x!

! Δ

1 − cond( A) A! !A! .

!A!

Beweis. Nach Voraussetzung ist !A− 1 !!A + Δ A − A! < 1. Also ist nach dem Störungslemma 5.3

A + Δ A regulär und

!

!

A− 1 !

( A + Δ A) − 1 ! ≤ 1 −!A− 1 !! Δ A!.

Aus ( A + Δ A)( x + Δ x) − Ax = 0 schließen wir ( A + Δ A)Δ x = −Δ Ax und somit Δ x = −( A + Δ A) − 1Δ Ax.

5.10. Kondition

139

Durch Einsetzen erhalten wir

!

! Δ

A− 1 !

x! ≤

! Δ A!!x!

1 − !A− 1 !! Δ A!

!A− 1 !!A!

! Δ A!

=

!x!

1 − !A− 1 !!A! ! Δ A! !A!

!A!

cond( A)

! Δ A!

=

!

! Δ
x!,

1 − cond( A) A! !A!

!A!

woraus die Behauptung folgt.

2

Aufgabe 5.37. Berechnen Sie die Konditionszahlen der Matrizen A 1 , A 2 aus Aufgabe 5.32 bezüglich

! · ! 1 und ! · ! ∞ .

Lösung siehe Lösung 9.60

Kapitel 6

Nichtlineare Optimierung

In den verbleibenden Kapiteln dieses Buches wollen wir uns mit Optimierungsproblemen im R n
beschäftigen. Wir werden insbesondere in diesem Kapitel Grundkenntnisse in der Differentialrech-
nung einer Veränderlichen voraussetzen, die manchmal merklich über den üblichen Schulstoff hin-
ausgehen. In die Differentialrechnung mehrerer Veränderlicher werden wir kurz einführen. Hier sind

Grundkenntnisse hilfreich, aber nicht unbedingt notwendig.

Das allgemeine Problem lautet
min f ( x) ,
x∈S
wobei S ⊆ R n eine Teilmenge des R n und f : S → R eine reellwertige Funktion ist. f nennt man
auch Zielfunktion. Wir können uns auf Minimierungsprobleme beschränken, da sich Maximierungs-
probleme wegen
max f ( x) = − min( − f )( x)

x∈S
x∈S
darauf reduzieren lassen.

Bemerkung 6.1. Mathematisch präziser müsste man bei allgemeinen Problemen inf x∈S f ( x) statt
min x∈S f ( x) schreiben, da, z. B. bei unbeschränkten Problemen oder wenn das Minimum auf dem

Rand einer offenen Menge angenommen wird, ein Minimum nicht immer in S existiert. Es ist
aber, insbesondere im angelsächsischen Raum, üblich, diese Feinheit meist zu ignorieren. Sei zum

Beispiel S = ]0 , 1[ und f ( x) = 1 . Dann ist inf
x
x∈S f ( x) = 1 , aber f ( x) > 1 f ür alle x ∈ S .

Wir werden im Folgenden ohne weiteren Nachweis benutzen, dass stetige Funktionen auf be-
schränkten abgeschlossenen Mengen ihre Extremwerte stets annehmen.

Lassen wir beliebige Funktionen zu, so kann man sich leicht vorstellen, dass wir algorithmisch
wenig Chancen haben, etwa bei nicht-stetigen Funktionen, ein Minimum zu lokalisieren. Wir werden
hier über die Stetigkeit hinaus sogar verlangen, dass f ein- oder zweimal stetig differenzierbar ist.

In diesem Kapitel wollen wir theoretische Bedingungen für (lokale) Extremwerte untersuchen.

Zunächst einmal betrachten wir den Fall, dass S = R n ist und entwickeln notwendige und
hinreichende Kriterien für lokale Extremwerte. Diese sind Verallgemeinerungen der Ihnen aus der

Kurvendiskussion im Schulunterricht geläufigen Kriterien für den Fall n = 1 .

Danach untersuchen wir den Fall, dass die Menge S durch Gleichungen und Ungleichungen
g( x) ≤ 0 , h( x) = 0 definiert ist, wobei g : R n → R m und h : R n → R k stetig differenzierbare Funktionen sind. Hier werden wir – ohne Beweis – ein notwendiges Kriterium für lokale Extremwerte
angeben, die berühmten Kuhn-Tucker-Bedingungen.

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

141

DOI 10.1007/978-3-642-05422-8 6, c

Springer-Verlag Berlin Heidelberg 2010

142

Kapitel 6. Nichtlineare Optimierung

Im nachfolgenden Kapitel werden wir uns mit allgemeinen Verfahren zur Suche nach lokalen Ex-
tremwerten beschäftigen und mit der Gradientensuche, dem Newtonverfahren und mit der Methode
der konjugierten Gradienten die prominentesten Beispiele dafür kennen lernen. Im Allgemeinen
kann man mit diesen Verfahren nur lokale Extremwerte bestimmen und wenig Aussagen über die

Laufzeit machen.

Im letzten Kapitel wenden wir uns deswegen dem Fall zu, dass f , g und h lineare (genauer affin
lineare) Abbildungen sind, also von der Form cx − α mit c ∈ R n und α ∈ R. Probleme dieser

Art lassen sich effizient lösen. Wir werden den so genannten Simplexalgorithmus vorstellen, der
zwar unsere theoretischen Effizienzbedingungen nicht erfüllt, aber in der Praxis bei kleinen bis mit-
telgroßen Problemen immer noch das Verfahren der Wahl ist. Aus den Kuhn-Tucker-Bedingungen
wird hier der Dualitätssatz der Linearen Programmierung.

Doch zurück zu nicht-linearen Problemen. Bei der Minimierung nicht-linearer Funktionen spielt
die folgende einfache Strategie eine zentrale Rolle. Ausgehend von einem Punkt xi suche eine Ab-
stiegsrichtung und gehe in dieser Richtung bestmöglich zu xi+1 . Iteriere, bis es keine Abstiegsrich-
tung mehr gibt. Im Allgemeinen findet man so kein globales Minimum, sondern nur lokale (oder
auch relative) Minima. Die Theorie macht oftmals auch nur Aussagen über lokale Minima.

Definieren wir nun einige der oben angesprochenen Begriffe, die wir intuitiv benutzt haben,
genauer.

Definition 6.1. Seien S ⊆ R n , f : S → R und x∗ ∈ S . Dann sagen wir, f hat an der Stelle x∗ ein lokales Minimum über S (oder auch relatives Minimum), wenn es ein ε > 0 gibt, so dass

∀x ∈ S ∩Uε( x∗) : f ( x) ≥ f ( x∗) .

Gilt sogar

∀x ∈ S ∩Uε( x∗) , x = x∗ : f ( x) > f ( x∗) ,
so liegt an der Stelle x∗ ein striktes lokales Minimum vor.

Falls ∀x ∈ S : f ( x) ≥ f ( x∗) ist, so hat f an der Stelle x∗ ein globales Minimum und analog zum Vorigen sprechen wir von einem strikten globalen Minimum, falls die letzte Ungleichung stets strikt

– außer in x∗ selbst – ist.

Eine reellwertige Funktion f : R n → R heißt (affin) linear, wenn es einen Vektor c ∈ R n und
einen Skalar α ∈ R gibt mit

∀x ∈ R n : f ( x) = cx − α .

Auch eine Einschränkung einer (affin) linearen Funktion auf einen Bereich S ⊆ R n wollen wir als

(affin) lineare Funktion bezeichnen.

6.1 Steilkurs mehrdimensionale Differentialrechnung

6.1.1 Kurven

Wie bereits erwähnt haben wir im Wesentlichen nur Mittel zur Bestimmung lokaler Minima zur

Hand. Die Werkzeuge dafür liefert die Differentialrechnung mehrerer Veränderlicher. Wir versuchen,

6.1. Steilkurs mehrdimensionale Differentialrechnung

143
uns im Folgenden möglichst nah an als bekannt vorausgesetzten Zusammenhängen der Differential-
rechnung einer Veränderlichen zu orientieren und eine kurze Einführung in die Verallgemeinerung
auf mehrere Veränderliche zu geben.

Eines der zentralen Anliegen der Analysis ist es, Funktionen lokal durch lineare Funktionen (und
evtl. Terme höherer Ordnung) zu approximieren. Dafür muss die Funktion aber lokal hinreichend

”

dicht“ definiert sein. Oftmals betreibt man deshalb Analysis nur auf offenen Mengen.

Definition 6.2. Sei U ⊆ R n . Dann heißt U offen, wenn zu jedem x ∈ U ein ε > 0 mit Uε ( x) ⊆ U
existiert. Eine Menge A ⊆ R n heißt abgeschlossen, wenn R n \ A offen ist.

Unsere Mengen S werden im Allgemeinen nicht offen sein, aber wir werden stets annehmen,
dass die zu minimierende Zielfunktion auf einer offenen Menge U definiert ist, die S enthält.

Aufgabe 6.2. a) Seien a, b ∈ R mit a < b. Zeigen Sie, dass ] a, b[ offen und [ a, b] abgeschlossen ist.

b) Sei B 2 := {( x, y) ∈ R2 | x 2 + y 2 < 1 } die offene Einheitskreisscheibe in der Ebene und S 1 :=

{( x,y) ∈ R2 | x 2 + y 2 = 1 } der Einheitskreis. Zeigen Sie: B 2 ist offen und S 1 abgeschlossen bzgl. der euklidischen Norm ! · ! = ! · ! 2 .

c) Sei ! · ! eine Norm auf dem R n und Sn− 1 die ( n − 1)-dimensionale Standardsphäre bzgl. dieser

Norm, also

Sn− 1 := {x ∈ R n | !x! = 1 }.

Zeigen Sie, dass Sn− 1 abgeschlossen ist.

Lösung siehe Lösung 9.61

Mit Hilfe der offenen Mengen können wir auch Stetigkeit definieren. Kurz, aber dennoch ma-
thematisch präzise, ist eine Funktion stetig, wenn das Urbild offener Mengen stets offen ist. An-
schaulich ist eine Funktion stetig, wenn sie keinerlei Sprünge hat. Das definieren wir so, dass wir
für jedes (noch so kleine) ε -Kügelchen um einen Bildpunkt f ( x∗) ein δ -Kügelchen um x∗ -finden
können, so dass letzteres durch f ganz in das ε -Kügelchen abgebildet wird. Dies wollen wir auch
als Definition nehmen und präzisieren:

Definition 6.3. Sei U ⊆ R n offen und f : U → R m eine Abbildung, sowie x∗ ∈ U . Dann sagen wir
f ist stetig in x∗ , wenn

∀ε > 0 ∃δ > 0 ∀x ∈ Uδ ( x∗) ∩U : f ( x) ∈ Uε( f ( x∗)) .

Ist f stetig in allen x ∈ U , so sagen wir kurz f ist stetig.

Aufgabe 6.3. Zeigen Sie, dass f : R2 → R, definiert durch f ( x, y) = x 2 + y 2 , stetig ist.

Lösung siehe Lösung 9.62

Um die Optimierungsstrategie aus der Einleitung dieses Kapitels präzisieren zu können, wieder-
holen wir nun Wege und Richtungen von Wegen im R n .

Definition 6.4. Sei I ⊆ R ein Intervall. Eine Kurve oder ein Weg im R n ist eine stetige Abbildung
c : I → R n
t → c( t) = ( c 1( t) , . . . , cn( t)) .

144

Kapitel 6. Nichtlineare Optimierung

Dann sind insbesondere alle Komponentenfunktionen ci : I → R stetige, reellwertige Funktionen,
wie Sie sie aus der Schule kennen. Analog nennen wir eine Kurve k -fach stetig differenzierbar,
wenn alle Komponentenfunktionen k -fach stetig differenzierbar sind, für k ∈ N.

Ist t 0 ∈ I , so nennen wir c( t 0) := ( c ( t

1

0) , . . . , cn( t 0)) den Tangentialvektor an c in t 0 , wobei
c( t
i

0) die Ableitungen der Komponentenfunktionen in t 0 sind.

t = 0
t = π
c ′(π)

Abb. 6.1 Zu Beispiel 6.4

Beispiel 6.4. Wir betrachten folgende Kurve in der euklidischen Ebene R2 . Dies ist eine Parametri-
sierung des Einheitskreises S 1 .

c : ]0 , 2π] → R2

t

→ c( t) = sin( t) ,
cos( t)

zunächst allgemein in t 0 ∈ ]0 , 2π]. Die Ableitung des Sinus ist der Cosinus und die Ableitung des

Cosinus das Negative des Sinus. Also ist

cos( t 0)

c( t 0) = −

.

sin( t 0)

Betrachten wir die Situation im speziellen Fall t 0 = π . Dann ist c( t 0) = (0 , − 1) und c( t 0) =

(cos(π) , − sin(π)) = ( − 1 , 0) . Diese Situation haben wir in Abbildung 6.1 graphisch veranschau-
licht.

Aufgabe 6.5. Betrachten Sie folgende Umparametrisierung des Einheitskreises

1

1

˜
c : 0 , 4π2 → R2

√
t

→ c( t) = sin( t)

√
cos( t)

und berechnen Sie den Tangentialvektor in t 0 sowie für t 0 = π2 . Skizzieren Sie die Situation.

Lösung siehe Lösung 9.63

Eine Funktion f : R2 → R kann man sich als Landschaft im dreidimensionalen Raum vorstellen.

In Abbildung 6.2 haben wir ( x, y, z) abgetragen mit z = f ( x, y) = sin( x 2 + xy) , wobei x und y im Intervall [ − 2π , 2π] liegen.

Die lokalen Minima sind die Täler“ in dieser Landschaft. Steht man im Tal, so geht es in alle

”

Richtungen bergauf oder zumindest in keine Richtung bergab. Die folgende Proposition formalisiert
diese anschaulich einsichtige Tatsache:

6.1. Steilkurs mehrdimensionale Differentialrechnung

145

Abb. 6.2 Der Graph der Funktion sin( x 2 + xy) für − 2π ≤ x, y ≤ 2π

Proposition 6.1. Sei S ⊆ R n, f : S → R und x∗ ∈ S . Ist x∗ ein lokales Minimum (striktes lokales

Minimum) von f , so gilt für jedes η > 0 und jeden stetig differenzierbaren Weg c : [0 , η] → S mit
c(0) = x∗ und c(0) = 0 :

∃ 0 < δ ≤ η ∀ 0 < t ≤ δ : ( f ◦ c)( t) := f ( c( t)) ≥ f ( x∗) (bzw. ( f ( c( t)) > f ( x∗) ).

Mit Worten: Es gibt einen Zeitpunkt 0 < δ ≤ η , bis zu dem man entlang c zu keinem tieferen Punkt
als x∗ gelangt.

Beweis. Ist x ein lokales Minimum, so gibt es nach Definition 6.1 ein ε > 0 mit f ( x) ≥ f ( x∗) für alle x ∈ Uε ( x∗) ∩ S . Sei nun c : [0 , η] → S ein Weg mit c(0) = x∗ . Da c insbesondere stetig ist, gibt es ein δ > 0 mit

0 < t ≤ δ ⇒ c( t) ∈ Uε ( x∗) .

Mit der Eigenschaft von ε haben wir also wie gewünscht

0 < t ≤ δ ⇒ f ( c( t)) ≥ f ( x∗) .

Ist x ein striktes lokales Minimum, so gibt es ein ε > 0 mit f ( x) > f ( x∗) für alle x ∈ ( Uε ( x∗) ∩ S) \

{x∗}. Da c(0) = 0 ist, verweilt der Weg nicht in x∗ . Hieraus und aus der Stetigkeit von c schließen
wir auf die Existenz eines δ > 0 mit

0 < t ≤ δ ⇒ c( t) ∈ ( Uε ( x∗) ∩ S) \ {x∗},
woraus die Behauptung wie eben folgt.

2

146

Kapitel 6. Nichtlineare Optimierung

Aufgabe 6.6. Zeigen Sie: Die Funktion f : R2 → R definiert durch f ( x, y) = sin( x 2 + xy) hat in

+

(

3π , 0) ein lokales Minimum, aber kein striktes lokales Minimum.

2

Lösung siehe Lösung 9.64

6.1.2 Partielle Ableitungen

Im letzten Abschnitt haben wir mit den Kurven Abbildungen R → R n untersucht. In der Optimie-
rung haben wir es bei der Zielfunktion üblicherweise mit Abbildungen f : R n → R zu tun. Durch das

Einführen von Wegen c : I → R n können wir solche Funktionen f : R n → R auf Funktionen einer

Veränderlichen, wie sie aus der Schule bekannt sind, zurückführen. Die Hintereinanderausführung
f ◦ c : I → R ist nämlich eine reelle Funktion in einer Variablen. Diese können wir wie gewohnt
ableiten. Dies ist dann die Richtungsableitung entlang des Weges.

Eine besondere Rolle spielen hierbei die Richtungen der Koordinatenachsen.

Definition 6.5. Sei I ⊆ R ein Intervall, t 0 ∈ I , S ⊆ R n , c : I → R n eine stetig differenzierbare Kurve und f : S → R mit p = c( t 0) ∈ S und c( t 0) = d = 0. Existiert dann ( f ◦ c) ( t 0), so heißt diese Zahl

∂
die Richtungsableitung
f

∂
von f in Richtung d in p . Ist c( t
d

0) = ei , so heißt

∂ f

∂ ( p) := ( f ◦ c) ( t 0)

xi
die i -te partielle Ableitung von f . Der Gradient ∇ f ( p) von f in p ist der Zeilenvektor(!) der

∂

∂
partiellen Ableitungen ( f
f

∂ ( p) , . . . ,

( p)) . Der Gradient
x 1

∂ xn

∇ f : S → R n
ist also eine vektorwertige Abbildung.

Bemerkung 6.7. Man beachte, dass der Nullvektor in unserem Sinne keine Richtung ist. Zumindest
ist die Richtungsableitung dann nicht definiert.

Genau genommen ist der von uns hier gewählte Zugang nicht ganz sauber, da nicht klar ist, dass
die oben eingeführte Richtungsableitung unabhängig von der Wahl des Weges c ist. Dies müssen

Sie uns einfach glauben, da die Herleitung der Details hier den Rahmen sprengen würde.

Beispiel 6.8. Wir betrachten f : R2 → R definiert durch f ( x, y) = sin( x 2 + xy). Die partiellen Ableitungen in ( x∗, y∗) bekommen wir etwa durch die Wege cx( t) = ( x∗ + t, y∗) bzw. cy( t) = ( x∗, y∗ + t), wobei t jeweils in einem Intervall lebt, das die Null enthält. Setzen wir dies ein, so erhalten wir

( f ◦ cx)( t) = sin(( x∗)2 + 2 x∗t + t 2 + x∗y∗ + ty∗) .

Leiten wir dies nach t ab, so erhalten wir nach der Kettenregel

( f ◦ cx) ( t) = cos(( x∗)2 + 2 x∗t + t 2 + x∗y∗ + ty∗)(2 x∗ + 2 t + y∗) .

Für t = 0 ergibt dies als Richtungsableitung an der Stelle ( x∗, y∗) in Richtung (1 , 0) den Wert

∂ f

∂ ( x∗,y∗) = cos(( x∗)2 + x∗y∗)(2 x∗ + y∗) .

x

6.1. Steilkurs mehrdimensionale Differentialrechnung

147

Führen wir das Gleiche mit cy durch, so erhalten wir

∂ f

∂ ( x∗,y∗) = cos(( x∗)2 + x∗y∗) x∗.

y

Allgemein erhalten wir die i -te partielle Ableitung, indem wir alle anderen Variablen als Konstante
behandeln und nach der i -ten Variablen ableiten. Überzeugen Sie sich, dass dies in unserem Beispiel
zum gleichen Ergebnis führt.

Der Gradient von f ist also

∇ f ( x∗,y∗) = cos(( x∗)2 + x∗y∗)(2 x∗ + y∗,x∗) .

Schließlich berechnen wir noch die Ableitung in Richtung d = (1 , 1) , zunächst einmal, indem
wir den Weg cd( t) = ( x∗ + t, y∗ + t) verwenden. Dann ist

( f ◦ cd)( t) = sin(( x∗)2 + 2 x∗t + t 2 + x∗y∗ + ty∗ + tx∗ + t 2)

( f ◦ cd) ( t) = cos(( x∗)2 + 2 x∗t + t 2 + x∗y∗ + ty∗ + tx∗ + t 2)(2 x∗ + 2 t + y∗ + x∗ + 2 t) und somit nach Auswertung an der Stelle t = 0 :

∂ f

∂ ( x∗,y∗) = cos(( x∗)2 + x∗y∗)(3 x∗ + y∗) .

d

Dies werden wir später noch einmal anders verifizieren.

Zunächst überlegen wir, was wohl die Ableitung“ einer vektorwertigen Abbildung für U ⊆ R n

”

und h : U → R sein könnte. In der Kurvendiskussion gab die Ableitung die Steigung der Tangente
an die Kurve an. Im Allgemeinen versuchen wir, mit dem Differenzieren eine Abbildung lokal
möglichst gut durch eine lineare Abbildung zu approximieren. Lineare Abbildungen L : R n → R
werden (bzgl. der Einheitsvektoren als Standardbasis) durch ( , n) -Matrizen beschrieben. Also
erwarten wir als Ableitung von h eine Matrix dieser Größe. Wir erhalten diese, indem wir alle
partiellen Ableitungen in einer Matrix vereinen.

Definition 6.6. Ist h : U → R eine vektorwertige Abbildung, so bezeichnen wir mit Jh die Jacobi-
sche d. i. die Matrix der partiellen Ableitungen

⎛ ∂

⎞
h 1

∂

. . . h 1

⎜ ∂ x 1

∂ xn

.

. ⎟

Jh( x) := ⎜

.

⎝ .

⎟

.

. . .. ⎠ .

∂ h

∂

h

∂

. . .

x 1

∂ xn

Beispiel 6.9. Sei f : R3 → R2 definiert durch

⎛⎛ ⎞⎞
x

⎜⎜ ⎟⎟
f 1( x, y, z)

3 x + 5 y + 7 z
f ⎝⎝ y ⎠⎠ =

=

.

f 2( x, y, z)

6 x + 4 y + 2 z
z

148

Kapitel 6. Nichtlineare Optimierung

Dann berechnen wir die Jacobische zu

⎛⎛ ⎞⎞
x

⎜⎜ ⎟⎟

∂ f 1 ∂ f 1 ∂ f 1

3 5 7

J f ⎝⎝

∂

∂

∂
y ⎠⎠ =
x
y
z

∂

=

.

f 2 ∂ f 2 ∂ f 2

6 4 2
z

∂ x ∂ y ∂ z

Bei f handelte es sich um die lineare Abbildung definiert durch

⎛⎛ ⎞⎞

⎞
x

⎛ x

⎜⎜ ⎟⎟

3 5 7

⎜ ⎟
f ⎝⎝ y ⎠⎠ =

⎝ y ⎠ .

6 4 2
z
z

Lineare Abbildungen werden also mit Hilfe der Jacobischen durch sich selbst approximiert und das
ist auch gut so.

Existieren alle partiellen Ableitungen einer reellwertigen Funktion f und sind stetig, so sagen wir
f ist stetig differenzierbar. Wir können nun die Definition der Jacobischen auch auf den Gradienten
anwenden und erhalten damit so etwas wie die zweite Ableitung von f “. Zunächst definieren wir

”

dafür die zweiten partiellen Ableitungen

∂

∂
f

2

∂
f

∂ x

∂

∂
i
f

∂

:=

=:

.

x j∂ xi

∂ xj

∂ xj ∂ xi

∂2

∂2

Für
f
f

∂
schreiben wir auch kürzer

. Existieren alle zweiten partiellen Ableitungen und
xi∂ xi

∂ x 2 i
sind stetig, so heißt f zweimal stetig differenzierbar. Die Jacobische des Gradienten nennen wir

Hessematrix ∇2 f ( x) . Die Hessematrix ist also die Matrix der zweiten partiellen Ableitungen

⎛

⎞

∂2 f

∂2

. . .

f

⎜ ∂ x 2

∂ x

1

1∂ xn ⎟

∇2

⎜

⎟
f ( x) := ⎜

..

. .

..

⎝ .

.

.

⎟

⎠ .

∂2 f

∂2 f

∂

. . .

xn∂ x 1

∂ x 2 n

Existieren alle zweiten partiellen Ableitungen einer Funktion f : S → R und sind stetig, was in
unseren Anwendungen normalerweise der Fall ist, so ist die Hessematrix ∇2 f eine symmetrische

Matrix, denn es gilt der Satz von Schwarz, den wir hier ohne Beweis angeben:

Satz 6.10 (Satz von Schwarz). Ist S ⊆ R2 offen und f : S → R stetig differenzierbar. Existiert dann

∂2

∂2
die zweite partielle Ableitung
f
f

∂
und ist stetig, so existiert auch die partielle Ableitung
und
x∂ y

∂ y∂ x
es gilt

∂2 f

∂2 f

∂

=

.

y∂ x

∂ x∂ y

Beispiel 6.11. a) Wir betrachten die Funktion g( x, y) = x 4 + y 4 − 5 x 2 − 4 y 2 + 5 x + 2 y − 1 . 5 . Dann ist

∇ g( x,y) = (4 x 3 − 10 x + 5 , 4 y 3 − 8 y + 2) und

∇2

12 x 2 − 10

0
g( x, y) :=

.

0

12 y 2 − 8
b) Wir berechnen die Hessematrix der Funktion f : R2 → R definiert durch f ( x, y) = sin( x 2 + xy).

Nach Beispiel 6.8 ist

∇ f ( x,y) = cos( x 2 + xy)(2 x + y,x) .

6.1. Steilkurs mehrdimensionale Differentialrechnung

149

Hieraus erhalten wir mittels Produktregel und Kettenregel

∂2 f

∂

= − sin( x 2 + xy)(2 x + y)2 + cos( x 2 + xy) · 2

2 x

= 2 cos( x 2 + xy) − (2 x + y)2 sin( x 2 + xy)

∂2 f

∂

= − sin( x 2 + xy) x(2 x + y) + cos( x 2 + xy)

y∂ x

= cos( x 2 + xy) − (2 x 2 + xy) sin( x 2 + xy)

∂2 f

= ∂ x∂ y

∂2 f

∂

= − sin( x 2 + xy) x 2 .

2 y

Fassen wir dies zusammen, so erhalten wir

∇2

2 1

(2 x + y)2 2 x 2 + xy
f ( x, y) = cos( x 2 + xy)

− sin( x 2 + xy)

.

1 0

2 x 2 + xy
x 2

Wie oben bereits erwähnt, erhält man durch Differenzieren, so es zulässig ist, lineare Approxima-
tionen. In diesen Zusammenhang geben wir ohne Beweis eine mehrdimensionale Version des Satzes
von Taylor, die nach dem ersten bzw. zweiten Glied abgebrochen ist. Die nach dem zweiten Glied
abgebrochene Taylor-Reihe liefert eine Approximation von g durch eine quadratische Funktion.

Satz 6.12 (Satz von Taylor). Sei S ⊆ R n und f , g : S → R Funktionen, dabei seien f , g stetig
differenzierbar und bei g sei darüberhinaus der Gradient stetig differenzierbar. Ist dann x ∈ S und
v ∈ R n mit x + v ∈ S , so gilt
a) f ( x + v) = f ( x) + ∇ f ( x) · v + o( !v! ) ,
b) g( x + v) = g( x) + ∇ g( x) · v + 1 v∇2 g( x) v + o( !v! 2) .

2

Wir hatten in Beispiel 6.8 die Richtungsableitung in Richtung (1 , 1) berechnet und gesagt, dass
wir das Ergebnis später noch einmal verifizieren wollten. Tatsächlich liefert uns der Satz von Taylor,
dass man beliebige Richtungsableitungen als Skalarprodukt der Richtung mit dem Gradienten erhält.

Proposition 6.2. Ist f stetig differenzierbar, so ist

∂ f

∂ ( p) = ∇ f ( p) · d.

d

Beweis. Sei cd = x + td ein Weg, der an der Stelle t = 0 den Tangentialvektor d hat. Nach dem

Satz von Taylor ist

∂ f

∂ ( x) = ( f ◦ cd) (0) = ( f ( x + td)) (0)

d

= ( f ( x) + ∇ f ( x) td + ( f ( x + td) − f ( x) − ∇ f ( x) td)) (0)

= ( f ( x)) (0) + (∇ f ( x) td) (0) + ( f ( x + td) − f ( x) − ∇ f ( x) td) (0) s.u.

= ∇ f ( x) d.

150

Kapitel 6. Nichtlineare Optimierung

Zunächst einmal ist f ( x) als Funktion in Abhängigkeit von t konstant, also die Ableitung 0 .

∂

Dann haben wir benutzt, dass beim Differenzieren von ∇ f ( x) td = t ∑ n d f
i=1 i ∂
nach t nur das t
xi
verschwindet. Für den letzen Teil setzen wir den Differenzenquotienten ein und erhalten

1

( f ( x + td) − f ( x) − ∇ f ( x) td) − ( f ( x + 0 · d) − f ( x) − ∇ f ( x)0 · d)

!d! lim
t→ 0
t
f ( x + td) − f ( x) − ∇ f ( x) td

= lim
t→ 0

!td!

= 0
da f ( x + td) − f ( x) − ∇ f ( x) td nach dem Satz von Taylor in o( !td! ) ist.

2

Wenn wir Proposition 6.2 auf Beispiel 6.8 anwenden, so können wir die dort berechnete Rich-
tungsableitung verifizieren.

Wir wollen diesen Steilkurs abschließen mit einer Konsequenz aus dem Satz von Taylor für Wege.

Satz 6.13. Sei p ∈ S ⊆ R n und f : S → R zweimal stetig differenzierbar. Sei c ein zweimal stetig
differenzierbarer Weg mit c( t 0) = p und c( t 0) = d = 0 . Dann ist

1

( f ◦ c)( t) = f ( p) + ∇ f ( p) d( t − t 0) + ∇ f ( p) c( t 0)( t − t 0)2

2

1

+ d∇2 f ( p) d( t − t 0)2 + o(( t − t 0)2) .

2

Beweis. Nach dem Satz von Taylor für Variablen einer Veränderlichen bzw. als Spezialfall von

Satz 6.12 ist

1

( f ◦ c)( t) = f ( p) + ( f ◦ c) ( t 0)( t − t 0) + ( f ◦ c) ( t 0)( t − t 0)2 + o(( t − t 0)2) .

2

Nach Definition der Richtungsableitung und Proposition 6.2 ist ( f ◦ c) ( t 0) = ∇ f ( p) d . Zu zeigen ist
also nur

( f ◦ c) ( t 0) = ((∇ f ) ◦ c) ( t) c( t) ( t 0) = ∇ f ( p) c( t 0) + d∇2 f ( p) d (vgl. Produktregel). Dafür betrachten wir die Funktion

Prop. 6.2

( f ◦ c) ( t)

=

∇ f ( c( t)) c( t)

n

∂ f

=

∑ ci( t)∂ ( c( t))

x
i=1
i

n

∂ f

=

∑ c

◦
i( t )

∂
c ( t) .

x
i=1
i

Nach Additionsregel dürfen wir summandenweise ableiten und berechnen zunächst mit der Produkt-
regel und Proposition 6.2:

∂

f

∂ f

∂ f
c

◦

◦
i

∂
c

( t 0)

=
c

( c( t 0)) + c
c

( t 0)

x
i ( t 0)

i( t 0)

i

∂ xi

∂ xi

∂ f

∂

∂ f

=
ci( t 0) ∂ ( c( t 0))+ c

( t 0)

x
i( t 0)

i

∂ d ∂ xi

Prop. 6.2

∂ f

∂ f

=
ci( t 0) ∂ ( p)+ di∇ ( p) d.

xi

∂ xi

6.2. Notwendige und hinreichende Bedingungen für Extremwerte

151

Fassen wir die Summanden zusammen, so erhalten wir:

n

∂ f

∂ f

( f ◦ c) ( t 0) = ∑ ci( t 0)∂ ( p)+ di∇ ( p) d
x

∂ x
i=1
i
i

= ∇ f ( p) c( t 0) + d∇2 f ( p) d.

2

Aufgabe 6.14. Betrachten Sie die Funktion f : R2 → R definiert durch
f ( x, y) = x 4 + x 2 y 2 + y 4 − 8 x 3 − 8 y 3 − 8 x 2 y − 8 xy 2 .

3

3

3

3

Berechnen Sie den Gradienten und die Hessematrix an der Stelle ( x∗, y∗) . Berechnen Sie weiterhin

die Richtungsableitung an der Stelle (1 , 1) in Richtung (1 , 1) , sowie ∇ f 8 , 8 .

3 3

Lösung siehe Lösung 9.65

6.2 Notwendige und hinreichende Bedingungen f ür Extremwerte

Wir wollen nun die Informationen über lokale lineare bzw. quadratische Approximationen ausnut-
zen, um Kriterien für Extremwerte zu entwickeln. Diese sind zunächst direkte Verallgemeinerungen
der aus der Schule bekannten hinreichenden und notwendigen Kriterien für Extremwerte in der Kur-
vendiskussion.

Kommen wir zunächst zurück auf die algorithmische Idee aus der Einleitung dieses Kapitels. Wir
müssen irgendwie ausdrücken, was es heißt, dass es in keine Richtung mehr bergab“ geht. Dafür

”

definieren wir zunächst zulässige Richtungen.

Definition 6.7. Ist U ⊆ R n offen und f k -fach stetig differenzierbar in U , so schreiben wir kurz
dafür f ∈ Ck( U).

Seien S ⊆ R n , x ∈ S und d ∈ R n \ { 0 }. Dann heißt d zulässige Richtung für x bzgl. S , wenn es ein ε > 0 und einen stetig differenzierbaren Weg c : [0 , ε] → S gibt mit c(0) = x und c(0) = d .

Sei nun zusätzlich S ⊆ U ⊆ R n , U offen, und f ∈ C 1( U). Wir nennen d zulässige Abstiegsrich-
tung in x bzgl. S , wenn d zulässige Richtung für x bzgl. S ist und darüber hinaus

∇ f ( x) d < 0
ist.

Notwendig für ein lokales Minimum ist, dass es keine zulässige Abstiegsrichtung gibt.

Proposition 6.3 (Notwendige Bedingung erster Ordnung). Sei S ⊆ U ⊆ R n , U offen, f ∈ C 1( U) .

Ist dann x∗ ein relatives Minimum von f in S , so gilt für jede zulässige Richtung d für x bzgl. S :

∇ f ( x∗) d ≥ 0 .

Beweis. Sei d eine beliebige, fest gewählte, zulässige Richtung. Dann gibt es ein ε1 > 0 und
einen differenzierbaren Weg c : [0 , ε1] → S mit c(0) = x∗ und c(0) = d . Wir betrachten wieder
die Funktion f ◦ c. Nach Definition der Ableitung ist

152

Kapitel 6. Nichtlineare Optimierung

( f ◦ c)( t) − f ( x∗)

( f ◦ c) (0) = lim

.

t→ 0
t

Da f in x∗ ein lokales Minimum hat, gibt es ein ε2 > 0 mit

∀ ˜ x ∈ S ∩Uε ( x∗) : f (˜ x) ≥ f ( x∗) .

2

Da c stetig ist, gibt es ein δ > 0 mit

0 ≤ t < δ ⇒ c( t) ∈ Uε ( x) .

2

Setzen wir nun ε := min {ε1 , δ }, so gilt für alle t < ε : ( f ◦ c)( t) ≥ f ( x∗). Somit

∀

( f ◦ c)( t) − f ( x∗)

0 < t < ε :

≥ 0
t
und wir schließen, dass im Grenzübergang t → 0 auch

∇

Prop. 6.2
f ( x) d

=

( f ◦ c) (0) ≥ 0
gilt. Da d = 0 als zulässige Richtung beliebig gewählt war, folgt die Behauptung.

2

Ist S ⊆ R n volldimensional und nimmt f ein lokales Minimum im Innern von S an, erhalten
wir folgende Aussage, die ganz analog zur notwendigen Bedingung für ein Extremum aus der

Kurvendiskussion ist.

Korollar 6.15. Ist x∗ ein relatives Minimum von f im Innern von S , d. h. es gibt ε > 0 mit

Uε ( x∗) ⊆ S , so ist ∇ f ( x∗) = 0 .

Beweis. Nach Voraussetzung sind alle d ∈ R n zulässige Richtungen. Insbesondere ist also auch

−(∇ f ( x)) eine zulässige Richtung. Nach Proposition 6.3 gilt ∇ f ( x∗) d ≥ 0 für alle zulässigen

Richtungen, also insbesondere auch

∇ f ( x∗)( −∇ f ( x∗) ) = −! ∇ f ( x∗) ! 2 ≥

2

0 .

Wir schließen ! ∇ f ( x∗) ! 2 = 0 und da !·! eine Norm ist, folgt ∇ f ( x∗) = 0 und somit die Behauptung aus (N1).

2

Wir entnehmen diesem Beweis darüber hinaus, dass der negative Gradient, falls er nicht ver-
schwindet und zulässige Richtung ist, die nächstliegende“ Abstiegsrichtung ist.

”

Beispiel 6.16. Wir betrachten das Optimierungsproblem
min f ( x 1 , x 2) = x 2 − x

1

1 + x 2 + x 1 x 2
unter x 1 ≥ 0 , x 2 ≥ 0 .

Hier ist also

x 1

S =

| x 1 ≥ 0 , x 2 ≥ 0 .

x 2

Der Gradient dieser Funktion ist ∇ f ( x 1 , x 2) = (2 x 1 − 1 + x 2 , x 1 + 1). Im Innern des zulässigen Bereiches S ist x 1 > 0, also kann der Gradient nicht verschwinden, folglich hat die Funktion im

Innern kein lokales Minimum.

6.2. Notwendige und hinreichende Bedingungen für Extremwerte

153

Am Rand gilt x 1 = 0 oder x 2 = 0. Im ersten Fall sind die zulässigen Richtungen genau die

Vektoren d mit d 1 ≥ 0 und wir haben als Gradienten ∇ f (0 , x 2) = ( x 2 − 1 , 1). Die Bedingung aus Proposition 6.3 kann hier nicht erfüllt werden, da z. B. (0 , − 1) stets eine zulässige Abstiegsrichtung
ist.

Im zweiten Fall ist der Gradient ∇ f ( x 1 , 0) = (2 x 1 − 1 , x 1 + 1) und eine Richtung ist zulässig
genau dann, wenn d 2 ≥ 0 gilt. Somit ist insbesondere die Richtung (1 − 2 x 1 , 0) zulässig im Punkt

( x 1 , 0) und wir erhalten als notwendige Bedingung für ein Minimum −(2 x 1 − 1)2 ≥ 0. Wir schließen
hieraus, dass der einzige Kandidat für ein lokales Minimum x∗ = ( 1 , 0) ist. Wir haben f ( x∗) = − 1 .

2

4

Dieser Wert ist auch das globale Minimum der Funktion x 2 − x

1

1 und wegen x 1 , x 2 ≥ 0 haben wir
f ( x 1 , x 2) ≥ x 2 − x

1

1 , also hat f in x∗ sogar ein globales Minimum.

In Abbildung 6.3 haben wir die Isoquanten, auch Höhenlinien genannt, der Funktion geplottet.

Der Gradient steht stets senkrecht auf diesen Isoquanten. Der Gradient im Minimum ist ∇ f ( x∗) =

(0 , 3 ) . Im Minimum ist also die x

2

1 -Achse tangential an die Isoquante.

Abb. 6.3 Isoquanten von f in Beispiel 6.16

In der Kurvendiskussion haben Sie gelernt, dass die zweite Ableitung Auskunft über die

Krümmung einer Funktion gibt. Auch das letzte Beispiel deutet an, dass die Isokostenhyperfläche
sich von der Tangentialhyperebene wegkrümmen“ muss. Die in der Kurvendiskussion kennenge-

”

lernten notwendigen Bedingungen zweiter Ordnung für lokale Minima gelten nun für alle Richtun-
gen.

Proposition 6.4 (Notwendige Bedingungen zweiter Ordnung). Sei U ⊆ R n offen und S ⊆ U
sowie f ∈ C 2( U) . Ist dann x∗ ein relatives Minimum von f in S , so gilt für jedes d = 0 , für
das es ein ε gibt mit x∗ + α d ∈ S für 0 ≤ α ≤ ε :

a) ∇ f ( x∗) d ≥ 0 ,
b) falls ∇ f ( x∗) d = 0 , so ist d∇2 f ( x∗) d ≥ 0 .

154

Kapitel 6. Nichtlineare Optimierung

Beweis. Die erste Behauptung haben wir in Proposition 6.3 gezeigt. Für die zweite Behauptung sei
also ∇ f ( x∗) d = 0 und c : [0 , ε] → S definiert durch c( t) = x∗ + td . Dann ist d eine zulässige Richtung, c(0) = x∗ und c(0) = d . Weil c( t) = d konstant ist, verschwindet c(0) und nach Satz 6.13 ist

1

( f ◦ c)( t) = f ( x∗) + ∇ f ( x∗) dt + d∇2 f ( x∗) dt 2 + o( t 2) 2

1

= f ( x∗) + d∇2 f ( x∗) dt 2 + o( t 2) .

2

Nach Definition des Landau-Symbols o in Kapitel 2 ist dies gleichbedeutend mit

( f ◦ c)( t) − f ( x∗) − 1 d∇2 f ( x∗) dt 2
lim

2
t→ 0
t 2

( f ◦ c)( t) − f ( x∗)

= lim

− 1 d∇2 f ( x∗) d = 0 .

t→ 0
t 2

2

Da f in x∗ ein lokales Minimum hat, ist für hinreichend kleines α > 0

( f ◦ c)(α) − f ( x∗)

α

≥ 0

2
und somit

( f ◦ c)(α) − f ( x∗)

0 = lim

− 1 d∇2 f ( x∗) d ≥ − 1 d∇2 f ( x∗) d
α → 0
α2

2

2
und nach Multiplikation mit − 2 erhalten wir hieraus die Behauptung.

2

Auch hier wollen wir wieder den Fall eines inneren Punktes gesondert notieren.

Korollar 6.17. Ist x∗ ein relatives Minimum von c im Innern von S , so gilt für alle d ∈ R n :

a) ∇ f ( x∗) = 0 ,
b) d∇2 f ( x∗) d ≥ 0 .

Beweis. Nach Korollar 6.15 muss der Gradient verschwinden. Somit folgt die Behauptung aus dem
zweiten Teil von Proposition 6.4.

2

Die letzte Ungleichung besagt nach Definition 5.6 gerade, dass die Hessematrix positiv semidefi-
nit ist.

Ähnlich wie im Eindimensionalen lassen sich die notwendigen Bedingungen zweiter Ordnung zu
hinreichenden verschärfen.

Proposition 6.5 (Hinreichende Bedingungen zweiter Ordnung). Sei U ⊆ R n offen, S ⊆ U , f ∈

C 2( U ) und x∗ ∈ S . Gilt dann
a) ∇ f ( x∗) = 0 ,
b) und ∇2 f ( x∗) ist positiv definit,
so ist x∗ ein striktes lokales Minimum von f .

Beweis. Wie im Beweis von Proposition 6.4 entwickeln wir für alle Richtungen d ∈ R n \ { 0 } :

f ( x∗ + α d) = f ( x∗) + α2 1 d∇2 f ( x∗) d + o(α2) .

2

6.3. Exkurs Mannigfaltigkeiten und Tangentialräume

155

Wie eben benutzen wir die Definition des Landau-Symbols
f ( x∗ + α d) − f ( x∗)

lim

− 1 d∇2 f ( x∗) d = 0 .

α → 0
α2

2

Da d∇2 f ( x∗) d > 0 ist, muss folglich für hinreichend kleines α stets f ( x∗ + α d) − f ( x∗) > 0
und somit f ( x∗ + α d) > f ( x∗) sein. Also liegt in x∗ auf jedem Strahl ein striktes lokales Minimum.

Man könnte meinen, dass daraus schon die Behauptung folgt. Es gibt aber Funktionen, die eine Stelle
haben, die auf jedem Strahl ein lokales Minimum ist, aber kein lokales Minimum der Funktion selber
ist. Solche Funktionen gibt es aber nur in unendlich dimensionalen Räumen. Die Behauptung folgt
deshalb aus dem folgenden Satz, der besagt, dass dies im R n nicht passieren kann, was wir hier ohne

Beweis hinnehmen wollen.

2

Satz 6.18. Sei x∗ ∈ U ⊆ R n offen und f ∈ C 1( U) eine Funktion. Gibt es dann für alle d ∈ R n \ { 0 }

ein α d > 0 , so dass 0 striktes lokales Minimum der Funktion fd : [0 , α d] → R , definiert durch fd( t) := f ( x∗ + td) , ist, so ist x∗ striktes lokales Minimum von f .

2

Aufgabe 6.19. Untersuchen Sie die Funktion aus Aufgabe 6.14 an den Stellen (0 , 0) und ( 8 , 8 ) auf

3 3
lokale Extremwerte.

Lösung siehe Lösung 9.66

6.3 Exkurs Mannigfaltigkeiten und Tangentialräume

Wir wollen uns nun mit etwas spezielleren zulässigen Bereichen beschäftigen. Und zwar wollen
wir hier Teilmengen des R n betrachten, die sich durch Ungleichungen g 1( x) ≤ 0 , . . . , gl( x) ≤ 0 mit differenzierbaren Funktionen g 1 , . . . , gl : R n → R beschreiben lassen. Wie wir im letzten Kapitel
gesehen haben, ist die Situation im Innern“ eines solchen Gebildes relativ einfach. Um die Ränder,

”

wo gi( x) = 0 gilt, genauer zu untersuchen, wollen wir zunächst gleichungsdefinierte Mengen,
sogenannte Mannigfaltigkeiten, betrachten.

Seien h 1 , . . . , hk : R n → R differenzierbare Funktionen und k ≤ n. Wir wollen die Lösungsmenge
der Gleichung h( x) = 0 untersuchen, wobei h = ( h 1 , . . . , hk) . Betrachten wir hierzu als Beispiel
die Funktion h( x, y) = ( x 2 − y 2) − a für a ∈ R. Die betrachtete Menge ist also gerade die Höhenlinie
der Funktion ( x 2 − y 2) zum Wert a. Diese Höhenlinien haben wir in der untenstehenden Abbildung
geplottet.

156

Kapitel 6. Nichtlineare Optimierung

1,0

0,8

0,6

0,4

0,2

0,0

−1,0

−0,8

−0,6

−0,4

−0,2

0,0

0,2

0,4

0,6

0,8
x

−0,2

−0,4
y

−0,6

−0,8

−1,0

Die Höhenlinien habe eine geringere Dimension als ihr umgebender Raum. Im Allgemeinen
können wir erwarten, dass eine Gleichung eine Höhenhyperfläche definiert, da sie einen Freiheits-

”

grad einschränkt“. Allerdings möchten wir Zerteilungspunkte, wie in der Abbildung im Ursprung zu
sehen, ausschließen. Dort bildet die Lösung von x 2 − y 2 = 0 ein Kreuz, ist also lokal um (0 , 0) nicht
als Kurve beschreibbar. Man beachte, dass der Gradient der dargestellten Funktion im Ursprung ver-
schwindet. Bei mehreren Funktionen hi ist man auf der sicheren Seite, wenn die Gradienten linear
unabhängig sind. Wir werden dies im Folgenden normalerweise voraussetzen.

Der Tangentialraum an eine Mannigfaltigkeit in einem Punkt x∗ , die durch eine Gleichung defi-
niert wird, steht senkrecht auf dem Gradienten, er bildet das orthogonale Komplement. Bei mehreren

Gleichungen besteht der Tangentialraum aus den Vektoren, die senkrecht auf allen Gradientenvekto-
ren ∇ h 1( x∗) , . . . , ∇ hk( x∗) der die Mannigfaltigkeit definierenden Gleichungen h 1( x) = . . . = hk( x) =

0 in diesem Punkt stehen. In diesem Falle ist also der Tangentialraum das orthogonale Komplement
der linearen Hülle von ∇ h 1( x∗) , . . . , ∇ hk( x∗).

6.4 Bedingungen f ür Extrema auf gleichungsdefinierten Mengen

Wir wollen hier ohne Beweis eine notwendige Bedingung für einen lokalen Extremwert auf einer
gleichungsdefinierten Mannigfaltigkeit formulieren. Geometrisch ist das Kriterium einsichtig und
wir haben es schon in Beispiel 6.16 bemerkt: In einem lokalen Extremum muss der Gradient der

Zielfunktion, wenn er nicht verschwindet, senkrecht auf der Mannigfaltigkeit, oder genauer auf der

Tangentialfläche an die Mannigfaltigkeit, stehen. Ist dies nämlich nicht der Fall, so verschwindet die

Projektion des negativen Gradienten auf die Tangentialfläche nicht und liefert eine Abstiegsrichtung.

Bevor wir uns in 6.24 dazu ein Beispiel ansehen, wollen wir die obige Anschauung mathematisch
präzisieren. Da der Gradient genau dann senkrecht auf der Tangentialfläche steht, wenn er eine

Linearkombination der Gradienten der die Mannigfaltigkeit definierenden Gleichungen ist, gibt
folgender Satz die Anschauung wieder:

6.4. Bedingungen für Extrema auf gleichungsdefinierten Mengen

157

Satz 6.20. Seien h : R n → R k, f : R n → R zweimal stetig differenzierbare Funktionen, k ≤ n und
x∗ ∈ S sei ein lokales Minimum der Optimierungsaufgabe
min
f ( x)

unter h( x) = 0 .

Ferner seien ∇ h 1( x∗) , . . . , ∇ hk( x∗) linear unabhängig. Dann gibt es λ1 , . . . , λ k ∈ R mit

∇ f ( x∗) = λ1∇ h 1( x∗) + ... + λ ∇
k
hk( x∗) .

Die λ i nennt man Langrange’sche Multiplikatoren .

Auch hier können wir wieder notwendige Bedingungen 2. Ordnung angeben. Nun müssen die

Bedingungen an die zweite Ableitung aber nur für zulässige Richtungen, also Vektoren aus dem

Tangentialraum erfüllt sein.

Satz 6.21. Unter den Voraussetzungen des letzten Satzes gilt: Ist x∗ ∈ S ein lokales Minimum der

Optimierungsaufgabe, so gibt es λ1 , . . . , λ k ∈ R mit
a) ∇ f ( x∗) = ∑ k λ
i=1
i∇ hi( x∗) und
b) die Matrix L := ∇2 f ( x∗) − ∑ k λ
i=1
i∇2 hi( x∗) ist positiv semidefinit auf dem Tangentialraum von

S = {x ∈ R n | h( x) = 0 } in x∗ , dies ist gerade die Menge aller Vektoren d im Kern der Matrix

Jh( x∗) . Also gilt für alle d , die senkrecht auf allen ∇ hi( x∗) stehen, dLd ≥ 0 .

Beweis. Wir haben nur die zweite Bedingung zu zeigen. Sei also Jh( x∗) d = 0 und c : [0 , ε] → S ein
zweimal stetig differenzierbarer Weg mit c(0) = x∗ und c(0) = d . Da x∗ auch lokales Minimum
der Funktion f ◦ c ist, gilt bekanntlich ( f ◦ c) (0) ≥ 0. Wir hatten bereits für den Taylorschen Satz
ausgerechnet

( f ◦ c) (0) = ∇ f ( x∗) c(0) + d∇2 f ( x∗) d.

Genauso erhalten wir durch zweimaliges Differenzieren:

( hi ◦ c) (0) = ∇ hi( x∗) c(0) + d∇2 hi( x∗) d
und somit wegen ( hi ◦ c) ≡ 0 :

∇ hi( x∗) c(0) = −d∇2 hi( x∗) d.

Wir setzen dies unter Ausnutzung von ∇ f ( x∗) = ∑ k λ
i=1
i∇ hi( x∗) zusammen zu

0 ≤ ( f ◦ c) (0)

= ∇ f ( x∗) c(0) + d∇2 f ( x∗) d
k

= ∑ λ i∇ hi( x∗) c(0) + d∇2 f ( x∗) d
i=1
k

= ∑ −λ id∇2 hi( x∗) d + d∇2 f ( x∗) d
i=1

k

= d

∇2 f ( x∗) − ∑ λ i∇2 hi( x∗) d.

i=1

Wegen L := ∇2 f ( x∗) − ∑ k λ
i=1
i∇2 hi( x∗) ist das gerade die Behauptung.

2

158

Kapitel 6. Nichtlineare Optimierung

Den Beweis für die hinreichenden Bedingungen zweiter Ordnung wollen wir Ihnen überlassen.

Ist A ∈ R m×n eine Matrix, so bezeichnen wir ab jetzt den Kern von A mit ker( A).

Satz 6.22. Seien h : R n → R k , f : R n → R zweimal stetig differenzierbare Funktionen und k ≤ n.

Gelte h( x∗) = 0 , ∇ f ( x∗) = ∑ k λ
i=1
i∇ hi( x∗) f ¨
ur einen Vektor λ . Sei ferner die Matrix L := ∇2 f ( x∗) −

∑ k λ
i=1
i∇2 hi( x∗) positiv definit auf dem Tangentialraum von S = {x ∈ R n | h( x) = 0 } in x∗ . Dann ist
x∗ striktes lokales Minimum der Optimierungsaufgabe
min
f ( x)

unter h( x) = 0 .

Beweis. Übung.

Aufgabe 6.23. Beweisen Sie Satz 6.22. Dabei dürfen Sie ohne Beweis benutzen, dass, wenn in x∗
kein striktes lokales Minimum von f vorliegt, es einen zweimal stetig differenzierbaren Weg
c : ] −ε , ε[ → R k+ l
gibt mit ( hi◦) c( t) = 0 für alle t ∈ ] −ε , ε[ und alle i = 1 , . . . , k , c(0) = x∗ und c(0) = d = 0, so dass 0 keine strikte lokale Minimalstelle von f ◦ c ist.

Lösung siehe Lösung 9.67

Beispiel 6.24. a) Folgendes Beispiel kennen Sie vielleicht aus der Schule. Dort wird es aber übli-
cherweise mittels Variablenelimination gelöst. Man soll mit Hilfe eines Seiles von 12 m Länge
ein möglichst großes Rechteck abstecken, wobei man für eine Seite des Rechtecks eine Wand

(beliebiger Länge) benutzen darf.

Sind x, y die Seitenlängen des Rechtecks, so ist unsere Zielfunktion also f ( x, y) = xy . Die

Nebenbedingung ist, dass das Seil 12 m lang ist. Da wir für eine Seite die Wand benutzen dürfen,
benötigen wir 2 x + y Meter Seil. Die unsere Mannigfaltigkeit definierende Funktion heißt also
h( x, y) = 2 x + y − 12 .

Wir bilden die Gradienten

∇ f ( x,y) = ( y,x) ,

∇ h( x,y) = (2 , 1) .

Als notwendige Bedingung für ein Extremum erhalten wir also

2 x + y = 12
und

( y, x) = λ (2 , 1) ,
wobei die erste Bedingung verlangt, dass der Punkt auf der Mannigfaltigkeit liegt und die zweite,
dass die Bedingung aus Satz 6.20 erfüllt ist. Eingesetzt erhalten wir

2 x + y = 2λ + 2λ = 12 ,
also λ = 3 und somit einen Kandidaten für ein Extremum in ( x, y) = (3 , 6) mit einem Zielfunk-
tionswert von 18 . Überprüfen wir die Bedingungen zweiter Ordnung. Als Hessematrix von f
erhalten wir

6.4. Bedingungen für Extrema auf gleichungsdefinierten Mengen

159

∇2

0

1
f ( x, y) =

.

1

0

Da die zulässige Menge ein Geradensegment ist, haben wir nur den Richtungsvektor (1 , − 2)

und sein negatives Inverses als zulässige Richtungen. Die zweite Ableitung der Nebenbedingun-
gen ist Null. Wir berechnen

0

1

1

(1 , − 2)

= − 4 < 0 .

1

0

− 2

Also erfüllt die Funktion − f ( xy) = −xy in (3 , 6) die hinreichenden Bedingungen zweiter Ord-
nung aus Satz 6.22 und hat also ein striktes lokales Minimum. Demnach hat f hier ein striktes
lokales Maximum. Tatsächlich ist dies auch das globale Maximum der Funktion unter den ange-
gebenen Nebenbedingungen. In der obigen Abbildung haben wir einige Höhenlinien der Funk-
tion, die Nebenbedingung und den ungefähren Ort des Extremums sowie den Gradienten dort
geplottet.

b) Wir betrachten eine positiv definite, symmetrische Matrix Q ∈ R n×n und einen Vektor b ∈ R n
sowie die quadratische Funktion

1
f ( x) =
xQx + bx.

2

Dazu haben wir die linearen Nebenbedingungen Cx = d mit C ∈ R k×n , wobei C von vollem

Rang k < n sei und d ∈ R k . Lesen wir dies zeilenweise, so haben wir, wenn wir mit c die i-te
i

Zeile von C bezeichnen, cx = d
i
i bzw. die Nebenbedingungen
hi( x) = c
i x − di = 0 f ür i = 1 , . . . , k.

Offensichtlich ist

∇ h( x) = ci für alle x ∈ R n und 1 ≤ i ≤ k.

Berechnen wir den Gradienten der Zielfunktion, so schreiben wir zunächst aus

160

Kapitel 6. Nichtlineare Optimierung
n

1 n
n
n

1 n

1 n
n
f ( x) = ∑ bixi + ∑ ∑ qijxixj = ∑ bixi + ∑ qiix 2

∑ ∑ qijxixj.

2

2
i + 2
i=1
i=1 j=1
i=1
i=1
i=1 j=1
j= i

Also ist, weil Q symmetrisch ist

∂ f

1 n
n

∂ ( x) = bi + qiixi + ∑( qjixj + qijxj) = bi + ∑ qijxj.

xi

2 j=1
j=1
j= i

Da bei uns der Gradient ein Zeilenvektor ist, fassen wir seine Einträge zusammen zu

∇ f ( x) = ( Qx + b) .

Notwendige Bedingung für einen Extremwert ist also, dass

Cx = d und es gibt λ ∈ R k : ( Qx + b) = λ C.

Da Q positiv definit ist, ist damit Q , wie in Aufgabe 5.30 gezeigt wurde, regulär und wir können
die zweite Bedingung nach x auflösen:

x = Q− 1( Cλ − b) .

Setzen wir dies in Cx = d ein, so erhalten wir

CQ− 1( Cλ − b) = d
und somit

CQ− 1 Cλ = d + CQ− 1 b.

Wir zeigen nun, dass CQ− 1 C regulär ist. Sei dazu w ∈ ker( CQ− 1 C). Dann ist

0 = w( CQ− 1 Cw) = ( Cw) Q− 1( Cw) .

Da Q− 1 mit Q positiv definit ist, schließen wir hieraus Cw = 0 . Da die Spalten von C nach

Voraussetzung linear unabhängig sind, impliziert dies w = 0 . Also ist CQ− 1 C invertierbar und
wir können für λ die geschlossene Formel
λ = ( CQ− 1 C) − 1( d + CQ− 1 b)

angeben und damit als einzigen Kandidaten für ein Extremum
x∗ = Q− 1( Cλ − b)

bestimmen. Da

∇2 f ( x) = Q,

Q positiv definit ist und die zweite Ableitung der Nebenbedingungen wieder verschwindet,
impliziert Satz 6.22, dass in x∗ ein striktes lokales Minimum vorliegt. Tatsächlich ist dieses sogar
ein globales Minimum.

6.5. Bedingungen für Extrema auf ungleichungsdefinierten Mengen

161

Aufgabe 6.25. a) Sei f 1( x, y) := 2 − x 2 − 2 y 2 und h 1( x, y) = x 2 + y 2 − 1. Bestimmen Sie das Maximum von f unter der Nebenbedingung h 1( x, y) = 0.

b) Sei f 1( x, y) := 2 − x 2 − 2 y 2 wie eben und h 2( x, y) = x + y − 1. Bestimmen Sie das Maximum von f unter der Nebenbedingung h 2( x, y) = 0.

c) Sei f 2( x, y, z) := ! ( x, y, z) ! , h 3( x, y, z) = y + 1 und h 4( x, y, z) = z + 1. Bestimmen Sie das Minimum von f unter den Bedingungen h 3( x, y, z) = 0 = h 4( x, y, z).

Lösung siehe Lösung 9.68

6.5 Bedingungen f ür Extrema auf ungleichungsdefinierten Mengen

In diesem letzten Paragraphen dieses Kapitels wollen wir die Ergebnisse des letzten Abschnitts auf

Mengen übertragen, die durch Gleichungen und Ungleichungen definiert sind. Bei Gleichungsbe-
dingungen durften wir uns nur orthogonal zu den Gradienten der Bedingungen bewegen. Haben wir
nun etwa die Bedingung g( x) ≤ 0, so liefert diese Bedingung keine Restriktionen an die zulässigen

Richtungen in x∗ , wenn g( x∗) < 0 ist. Erfüllt x∗ hingegen g( x∗) = 0 , so dürfen wir uns in alle Richtungen bewegen, die orthogonal zu ∇ g( x∗) sind oder für g eine Abstiegsrichtung in x∗ sind.

Damit kommen wir zu einem der zentralen Sätze dieses Kapitels, den wir hier auch nicht beweisen
können. Der Satz besagt, dass in einem relativen Minimum der Gradient ∇ f ( x∗) der Zielfunktion
f senkrecht auf allen Tangentialräumen von Gleichungs- und mit Gleichheit angenommenen Un-
gleichungrestriktionen stehen, und im letzten Falle zusätzlich in die zulässige Menge hineinzeigen
muss, d. h. die Koeffizienten in der Darstellung von ∇ f als Linearkombination in den Gradienten
der Ungleichungsnebenbedingungen müssen negativ sein.

Satz 6.26 (Kuhn-Tucker Bedingungen). Seien f : R n → R , h : R n → R k und g : R n → R l stetig
differenzierbar und x∗ ein regulärer Punkt der Nebenbedingungen (Definition siehe unten) und ein
relatives Minimum des Problems
min f ( x)

unter h( x) = 0 ,
g( x) ≤ 0 .

Dann gibt es Koeffizienten λ1 , . . . , λ k ∈ R und μ1 , . . . , μ l ∈ R , μ i ≤ 0 mit
k
l

∇ f ( x∗) = ∑ λ i∇ hi( x∗)+ ∑ μ j∇ gj( x∗)

i=1
j=1
und ∑ l
μ
j=1
j g j ( x∗) = 0 .

Die letzte Bedingung besagt, dass nur Gradienten von aktiven, d. h. mit Gleichheit erfüllten,

Ungleichungsbedingungen in der Linearkombination benutzt werden dürfen, denn wegen gi( x∗) ≤ 0
und μ i ≤ 0 ist für alle i: μ igi( x∗) ≥ 0, also kann ∑ l
μ
j=1
j g j ( x∗) = 0 nur erf üllt sein, wenn gi( x∗) < 0
μ i = 0 impliziert.

Schließlich noch die für den Satz benötigte Definition eines regulären Punktes: Wir nennen x∗
einen regulären Punkt der Nebenbedingungen des oben betrachteten Problems, wenn die Gradienten
der Gleichungsbedingungen und der aktiven Ungleichungsnebenbedingungen linear unabhängig
sind.

162

Kapitel 6. Nichtlineare Optimierung

Beispiel 6.27. Wir betrachten das Problem
max f ( x, y) = 14 x − x 2 + 6 y − y 2 + 7
unter g 1( x, y) = x + y − 2 ≤ 0 ,
g 2( x, y) = x + 2 y − 3 ≤ 0 .

Wir haben also keine Gleichungsnebenbedingungen, werden also keine λ i brauchen. Wir berech-
nen

∇( − f )( x,y) = (2 x − 14 , 2 y − 6)

∇ g 1( x,y) = (1 , 1)

∇ g 2( x,y) = (1 , 2)

und überprüfen zunächst, wo der Gradient von f verschwindet. Dies ist der Fall in (7 , 3) , das nicht
im zulässigen Bereich liegt. Also kann kein lokales Minimum im Innern liegen und wir müssen die

Ränder untersuchen. Dafür machen wir nun Fallunterscheidungen, welche Ungleichungsbedingun-
gen aktiv sind.

Falls nur die erste Ungleichung aktiv ist, erhalten wir als Bedingungen einerseits die für die

Gradienten (2 x − 14 , 2 y − 6) = μ1(1 , 1) = (μ1 , μ1) und, dass die erste Ungleichung aktiv sein muss,
bedeutet x + y = 2 . Somit haben wir insgesamt das Gleichungssystem

(2 x − 14 , 2 y − 6) = μ1(1 , 1) = (μ1 , μ1) ,
x + y = 2 .

Hieraus schließen wir

2 x − 14 = 2 y − 6 und x + y = 2 ⇐⇒ x − y = 4 und x + y = 2 ,
woraus wir x = 3 und y = − 1 berechnen. Die Bedingung an die Gradienten ist mit μ = − 8 ≤ 0
erfüllt, was ein für die Kuhn-Tucker-Bedingungen geeignetes Vorzeichen ist. Außerdem erfüllt

(3 , − 1) auch die zweite Ungleichung mit 3 − 2 − 3 < 0. Der Punkt ist also zulässig und die zweite

Ungleichung ist nicht aktiv.

Kommen wir zum zweiten Fall, dass nur die zweite Ungleichung aktiv ist:

(2 x − 14 , 2 y − 6) = (μ2 , 2μ2) ,
x + 2 y = 3 ,
und somit

4 x − 2 y = 22
x + 2 y = 3 ,
und wir berechnen x = 5 , y = − 1. Dieser Punkt ist nicht zulässig, da x + y − 2 = 5 − 1 − 2 = 2 > 0
ist.

6.5. Bedingungen für Extrema auf ungleichungsdefinierten Mengen

163

4,0

3,2

2,4

1,6

0,8

0,0

0,0

0,8

1,6

2,4

3,2

4,0

4,8

5,6

6,4

7,2

8,0

−0,8
x

−1,6
y

−2,4

−3,2

−4,0

Abb. 6.4 Zu Beispiel 6.27

Schließlich betrachten wir noch den Fall, dass beide Ungleichungen aktiv sind. Dies ist der Fall
in (1 , 1) . Als Kuhn-Tuckerbedingung haben wir dann ( − 12 , − 4) = (μ1 + μ2 , μ1 + 2μ2), woraus wir
μ2 = 8, μ1 = − 20 berechnen. Da μ2 > 0 ist, kann hier auch kein lokales Minimum vorliegen.

Da die Funktion bei betraglich wachsendem x oder y gegen −∞ geht, muss das globale Maxi-
mum in einem lokalen Maximum angenommen werden. Da (3 , − 1) der einzige Kandidat hierfür
ist, ist das Maximum der Funktion also f (3 , − 1) = 33.

Auch für ungleichungsdefinierte zulässige Bereiche gibt es wieder Bedingungen zweiter Ord-
nung.

Satz 6.28. Unter den Bedingungen des letzten Satzes gilt außerdem: Die Matrix
k
l

∇2 f ( x∗) − ∑ λ i∇2 h∗

∑ μ
i ( x∗) −
j ∇2 g j ( x∗)

i=1
j=1
ist positiv semidefinit auf dem Tangentialraum der aktiven Nebenbedingungen von x∗ .

Beweis. Da x∗ auch ein relatives Minimum für das entsprechende gleichungsdefinierte Problem ist,
folgt die Behauptung sofort aus Satz 6.21.

2

Beispiel 6.29. Rechnen wir die Bedingungen zweiter Ordnung für Beispiel 6.27 nach: Die Hessema-
trix von − f ist

∇2

2 0

( − f )( x∗) =

.

0 2

Diese Matrix ist offensichtlich positiv definit. Da die Nebenbedingungen (affin) lineare Funktionen
sind, also deren Hessematrix die Nullmatrix ist, sind die Bedingungen zweiter Ordnung erfüllt.

Das letzte Beispiel erfüllt also sogar die folgenden hinreichenden Bedingungen:

Satz 6.30. Seien f : R n → R , h : R n → R k und g : R n → R l stetig differenzierbar und x∗ ein
regulärer Punkt. Ferner gebe es Koeffizienten λ1 , . . . , λ k ∈ R und μ1 , . . . , μ l ∈ R , μ i ≤ 0 mit

164

Kapitel 6. Nichtlineare Optimierung
k
l

∇ f ( x∗) = ∑ λ i∇ hi( x∗)+ ∑ μ j∇ gj( x∗)

(6.1)

i=1
j=1
und ∑ l
μ
j=1
j g j ( x∗) = 0 , so dass die Matrix
k
l

L := ∇2 f ( x∗) − ∑ λ i∇2 hi( x∗) − ∑ μ j∇2 gj( x∗)

i=1
j=1
positiv definit auf dem Tangentialraum der aktiven Nebenbedingungen, die in Gleichung (6.1) mit
negativem Koeffizienten auftauchen, also auf dem Raum

2

3

M := y ∈ R n | ∇ hi( x∗) y = 0 für alle i und ∇ g j( x∗) y = 0 , falls μ j < 0
ist.

Dann ist x∗ ein striktes lokales Minimum des Optimierungsproblems
min f ( x)

unter h( x) = 0 ,
g( x) ≤ 0 .

Wir geben zunächst ein Beispiel an, das zeigt, dass die Einschränkung auf den Tangentialraum der
aktiven Nebenbedingungen, die an der Linearkombination mit negativem Koeffizienten auftauchen,
wesentlich ist.

Beispiel 6.31. Sei f : R2 → R definiert durch f ( x, y) = x 2 + y 2 , und die Nebenbedingungen gi :

√

R2 → R durch g

2

1( x, y) = x 2 + y 2 − 1 und g 2( x, y) = −

− x. Wir wollen f ( x,y) unter den

2

Bedingungen g 1( x, y) ≤ 0, g 2( x, y) ≤ 0 maximieren.

√

√

Wir betrachten die Stelle ( x∗, y∗) = ( − 2 , − 2 ) . Diese Stelle ist zulässig und beide Neben-

2

2
bedingungen sind aktiv. Offensichtlich liegt an der Stelle kein striktes lokales Maximum vor, da

1 = f ( x∗, y∗) = f sin 5 π + t , cos 5 π + t
und sin 5 π + t , cos 5 π + t

= x∗ für t=0 und für

4

4

4

4
t ∈ [0 , π ] zulässig ist.

2

Wir untersuchen die Bedingungen erster Ordnung. Wegen ∇( − f ( x, y)) = ( − 1) · ∇ g 1( x, y), sind
diese erfüllt, was auch nicht weiter überrascht, da in ( x∗, y∗) ein lokales Maximum vorliegt. Der

Tangentialraum der aktiven Nebenbedingungen ist allerdings der Nullraum, da die beiden Gradi-
enten linear unabhängig sind. Auf dem Nullraum ist jede Matrix positiv definit. Also ist die obige

Bedingung wesentlich, dass die L -Matrix auf dem Tangentialraum der Nebenbedingungen, die mit
nicht verschwindendem Koeffizienten in die Bedingung erster Ordnung eingehen, positiv definit ist.

In der Linearkombination von ∇ f kommt nur ∇ g 1 mit nicht verschwindendem Koeffizienten vor.

Wir müssten hier also verlangen, dass die Matrix L aus Satz 6.30 auf dem orthogonalen Komple-
ment U dieses Gradienten positiv definit ist. Dieses ist nicht der Nullraum. Die Matrix L ist aber in
diesem Falle die Nullmatrix, diese ist nicht positiv definit auf U . Deswegen sind die hinreichenden

Bedingungen nicht erfüllt.

Beispiel 6.32. Lottokönig Kurt aus Westfalen hat den Jackpot im Lotto geknackt und insgesamt 37 . 7

Millionen e gewonnen. Er plant nun das Geld so auszugeben, dass er den Gesamtspaß am Leben
maximiert. Er leitet her, dass, wenn er sein Vermögen zum Beginn des Jahres k mit xk bezeichnet,
die hierdurch definierte Folge in etwa der Rekursiongleichung

6.5. Bedingungen für Extrema auf ungleichungsdefinierten Mengen

165
xk+1 = α xk − yk

(6.2)

x 0 = F

(6.3)

genügt, wenn yk das im Jahr k ausgegebene Geld bezeichnet und er mit einer jährlichen Rendite
von r = α − 1 ≥ 0 auf das verbliebene Kapital rechnen kann.

Der Spaß im Jahr k , wenn er yk e ausgibt, berechnet er mittels seiner Nutzenfunktion u zu u( yk),
wobei u eine auf den positiven reellen Zahlen zweimal stetig differenzierbare, monoton wachsende

Funktion ist, deren zweite Ableitung strikt negativ ist. Der Spaß in der Zukunft wird diskontiert und,
vorausgesetzt er lebt noch N Jahre, erhält er als Gesamtspaß im Leben

N

S = ∑ β ku( yk)

k=0
mit 0 < β < 1 . Zum Lebensende will Kurt alles Geld ausgegeben haben, also soll xN+1 = 0 sein.

Um hieraus eine Optimierung unter Nebenbedingungen zu machen, müssen wir zunächst einmal

37 700 000 als Linearkombination der yi ausdrücken. Aus der Rekursion in (6.2) und der Bedingung
xN+1 = 0 berechnen wir zunächst
yN
xN = α xN yN− 1 yN yN− 1
xN− 1 = α + α = α +

2
α
xN− 1
yN− 2
yN
yN− 1
yN− 2
xN− 2 = α + α = α +

+

3
α2
α .

Dies führt uns auf die Hypothese
j
yN−i
xN− j = ∑ α
für 0 ≤ j ≤ N,
j+1 −i
i=0
die wir zunächst mittels vollständiger Induktion über j ≥ 0 beweisen, die Verankerung haben wir
bereits für j = 0 , 1 , 2 erledigt. Für den Induktionsschritt berechnen wir analog
xN− j
yN−( j+1)

xN−( j+1) = α + α

∑ j
yN−i

IV
yN−( j+1)

=
i=0 α j+1 −i
α

+
α
j+1
yN−i

= ∑ α

.

( j+1)+1 −i
i=0

Insbesondere erhalten wir also

N
y

N

N−i
yi
x 0 = ∑ α

= ∑

.

N−i+1
α i+1
i=0
i=0

In der letzten Gleichung durchlaufen wir die Summanden nur andersherum, wir haben umparame-
trisiert.

Die Nebenbedingung, dass Lottokönig Kurt sein Vermögen komplett ausgibt, wird also durch die

Gleichung

N
yi
h( u) = 37 700 000 − ∑ α = 0
i+1
i=0

166

Kapitel 6. Nichtlineare Optimierung
ausgedrückt, wobei y = ( y 0 , . . . , yN) der Vektor der jährlichen Ausgaben ist. Diese sollen nicht
negativ sein, also haben wir zusätzlich noch die Bedingungen −yi ≤ 0 für 0 ≤ i ≤ N .

Fassen wir zusammen, so lautet die Optimierungsaufgabe
max f ( y) = ∑ N β ku( y
k=0
k)

unter h( y) = 37 , 700 , 000 − ∑ N
yi

=
i=0 α

0
i+1
gi( y) = −yi ≤ 0
für 0 ≤ i ≤ N.

Als Gradienten berechnen wir

∇( − f )( y) = − u( y 0) , β u( y 1) , β2 u( y 2) ,..., β Nu( yN)

∇

1

1

1

1
h( y) = − α , α , ,...,

2
α3
α N+1

∇ gi( y) = −ei.

Die (notwendigen) Kuhn-Tucker-Bedingungen (Satz 6.26) an ein lokales Minimum von − f in
y∗ ∈ R N+1 unter den gegebenen Nebenbedingungen lauten dann, dass es ein λ ∈ R und μ i ≤ 0
gibt, so dass

−λ

−β

>
i
falls y∗

0
u( y∗
α i+1
i
i ) =

−λ
α

− μ

= 0
i+1
i falls y∗
i

Für die Jahre, in denen Kurt Geld ausgibt, erhalten wir demnach als Bedingung

λ

1
i
u( y∗i) = α βα ,

(6.4)

und, falls y∗ = 0 ist
i

λ

1
i
μ i
u( y∗i) = α βα + β ,i
da μ i ≤ 0 gefordert war, ist dies gleichbedeutend mit

λ

1
i
u( y∗i) ≤ α βα .

Betrachten wir dies im Spezialfall, dass

√
u( yi) =
yi,
so kann am Rand die Bedingung wegen lim y↓ 0 u( y) = +∞ nicht erfüllt werden, der Extremwert
wird also auf jeden Fall im Inneren angenommen. In diesem Spezialfall lautet (6.4):

1
λ
i

1

=

.

2
y∗
α βα
i

Durch Umformen ergibt sich
α2 i+2β2 i
y∗i =

.

4λ 2

6.5. Bedingungen für Extrema auf ungleichungsdefinierten Mengen

167

Aus der Nebenbedingung erhalten wir dann

N α i+1β 2 i

37 700 000 = ∑ 4λ2
i=0
woraus wir aus Vorzeichengründen schließen, dass

"

α i+1β2 i
λ

∑ N

=
i=0

150 800 000
und somit

37 700 000 · α2 i+2β 2 i
y∗i =

.

∑ N α j+1β2 j
j=0

Da die Hessematrix ∇2( − f ) eine Diagonalmatrix mit −u( y∗) > 0 auf der Diagonalen ist, ist sie
i
positiv definit und somit sind auch die hinreichenden Bedingungen zweiter Ordnung erfüllt. Somit
handelt es sich an dieser Stelle um das eindeutige Gesamtlebensspaßmaximum.

Aufgabe 6.33. Sei f ( x, y, z) = 3 x − y + z 2 , g( x, y, z) = x + y + z und h( x, y, z) = −x + 2 y + z 2 . Untersuchen Sie f unter den Bedingungen h( x, y, z) = 0 und g( x, y, z) ≤ 0 auf Extremwerte.

Lösung siehe Lösung 9.69

Kapitel 7

Numerische Verfahren zur Nichtlinearen Optimierung

Nachdem wir im letzten Kapitel etwas Theorie betrieben haben, wollen wir uns nun den Algorithmen
zuwenden. Die zentralen Stichworte in der Numerik der Nichtlinearen Optimierung sind

• Suchrichtung und

• Schrittweite.

Viele Algorithmen der nichtlinearen Optimierung verfahren im Wesentlichen wie folgt. Ausge-
hend von einem Iterationspunkt xk bestimmt man eine Suchrichtung dk , bestimmt eine Schrittweite
λ k und setzt dann xk+1 = xk + λ kdk .

Im letzten Kapitel haben wir schon eine Charakterisierung von guten Suchrichtungen, nämlich
die Abstiegsrichtungen, kennengelernt. Nach Proposition 6.3 gibt es, wenn x∗ keine Extremalstelle
ist, stets eine Abstiegsrichtung. Unsere Strategie wird nun sein, uns in diese Richtung zu bewegen.

Dabei stellt sich die Frage, wie weit man gehen sollte. Dies ist die Frage der Schrittweitensteuerung.

Ist die Suchrichtung dk festgelegt, haben wir es mit einem Suchproblem der Funktion ˜ f(α) =
f ( p 0 + α dk) zu tun, also mit einem eindimensionalen Problem der Optimierung einer Funktion

˜ f : R+ → R.

7.1 Das allgemeine Suchverfahren

Sicherlich ist über eine Suche bei allgemeinen Funktionen f : R → R, die uns nur durch eine

Unterroutine gegeben sind, selbst bei stetigen Funktionen keine allgemeine Aussage über globale

Extremwerte möglich.

Oft begegnet man in der nichtlinearen Optimierung Funktionen, deren Auswertung rechenin-
tensiv ist. Ein gutes“ Suchverfahren sollte also mit möglichst wenig Funktionsauswertungen aus-

”

kommen. Wollen wir Suchverfahren nach diesem Kriterium klassifizieren, so ist es zunächst einmal
sinnvoll, sich auf deren Verhalten bei gutartigen Funktionen zu beschränken. Gutartig sind in die-
sem Sinne Funktionen, die stetig sind und ein eindeutiges, globales Minimum haben. Die folgenden

Voraussetzungen garantieren dann eine beweisbar richtige Suche.

Die Suchverfahren beziehungsweise eventuelle Modifikationen werden wir später aber selbst-
verständlich auch dann anwenden, wenn diese Voraussetzungen nicht im strengen Sinne erfüllt sind.

Definition 7.1. Sei [ a, b] ⊆ R ein Intervall und f : [ a, b] → R eine Funktion. Dann heißt f strikt
unimodal auf [ a, b] , wenn f genau ein lokales Minimum in [ a, b] hat.

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

169

DOI 10.1007/978-3-642-05422-8 7, c

Springer-Verlag Berlin Heidelberg 2010

170

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

Beispiel 7.1. Die Funktion f : [0 , 2π] → [ − 1 , 1], mit x → f ( x) = cos( x) ist strikt unimodal ebenso wie g : [0 , 10 000] → R mit x → g( x) = x 2 . Hingegen ist die Funktion h : [0 , 2π] → [ − 1 , 1], mit x → h( x) = sin( x) nicht strikt unimodal, da in 0 und in 3 π lokale Minima vorliegen.

2

Proposition 7.1. Sei [ a, b] ⊆ R ein Intervall und f : [ a, b] → R eine stetige Funktion. Dann ist f strikt unimodal genau dann, wenn für alle a ≤ x < y ≤ b und λ ∈ ]0 , 1[ gilt:

f (λ x + (1 − λ ) y) < max { f ( x) , f ( y) }.

Beweis. Beweis durch Kontraposition. Wir beweisen also:

f ist genau dann nicht strikt unimodal, wenn es a ≤ x < y ≤ b und ein λ ∈ ]0 , 1[ gibt mit
f (λ x + (1 − λ ) y) ≥ max { f ( x) , f ( y) }.

Sei x < y . Wir betrachten zunächst die Einschränkung f|[ x,y] : [ x,y] → R der Funktion und
λ ∈ ]0 , 1[ , p = λ x + (1 − λ) y mit
f ( p) ≥ max { f ( x) , f ( y) }.

Da f nach Annahme stetig ist, können wir folglich ein lokale Minimalstelle z 1 von f verschieden
von p in [ x, p] wählen. Analog finden wir eine lokale Minimalstelle z 2 = p von f in [ p, y]. Da z 1
und z 2 von p verschieden sind, sind sie lokale Minima von f . Somit ist f nicht strikt unimodal.

Sei nun umgekehrt f : [ a, b] → R nicht strikt unimodal, und seien z 1 < z 2 lokale Minimalstellen.

Wir untersuchen zunächst den Fall, dass f ( z 1) ≤ f ( z 2) ist. Da z 2 eine lokale Minimalstelle von f
ist, gibt es ein z 2 − z 1 > ε > 0 mit f ( z 2 − ε) ≥ f ( z 2). Wir setzen nun
ε
λ :=

∈ ]0 , 1[ .

z 2 − z 1

Dann ist
ε
ε
λ z 1 + (1 − λ) z 2 =
z 1 + z 2 −
z 2
z 2 − z 1
z 2 − z 1
ε z

=

1 − ε z 2
z 2 + z 2 −z 1

= z 2 + ε · z 1 − z 2 = z 2 − ε .

z 2 − z 1

Mit x = z 1 , y = z 2 und λ wie angegeben haben wir also
f (λ x + (1 − λ ) y) = f ( z 2 − ε) ≥ f ( z 2) = max { f ( x) , f ( y) }.

Im zweiten Fall, dass f ( z 1) ≥ f ( z 2), finden wir analog ein z 2 − z 1 > ε > 0 mit f ( z 1 + ε) ≥ f ( z 1), setzen
ε
λ := 1 −

∈ ]0 , 1[
z 2 − z 1
und berechnen

7.1. Das allgemeine Suchverfahren

171
ε
ε
λ z 1 + (1 − λ) z 2 = z 1 −
z 1 +
z 2
z 2 − z 1
z 2 − z 1
ε z

=

1 − ε z 2
z 1 − z 2 −z 1

= z 1 − ε · z 1 − z 2 = z 1 + ε
z 2 − z 1
und erhalten wiederum
f (λ x + (1 − λ ) y) = f ( z 1 + ε) ≥ f ( z 1) = max { f ( x) , f ( y) }.

2

Beispiel 7.2 (konvex quadratische Probleme). Sei Q ∈ R n×n eine quadratische, symmetrische, posi-
tiv definite Matrix, b, x 0 ∈ R n und d ∈ R n \ { 0 }. Dann ist die Funktion f : R → R definiert durch 1
f ( t) =

( x 0 + td) Q( x 0 + td) + b( x 0 + td)

2
strikt unimodal auf R, genauer gilt für s < t und λ ∈ ]0 , 1[ :

f (λ s + (1 − λ ) t) < λ f ( s) + (1 − λ ) f ( t) ≤ max { f ( s) , f ( t) }.

Für die Gültigkeit der ersten Ungleichung in der letzten Zeile sagen wir auch: Die Funktion f ist
strikt konvex.

Beweis. Seien s und t wie angegeben gewählt. Dann ist
λ f ( s) + (1 − λ) f ( t) − f (λ s + (1 − λ) t)

1

= λ

( x 0 + sd) Q( x 0 + sd) + b( x 0 + sd)

2

1

+(1 − λ )

( x 0 + td) Q( x 0 + td) + b( x 0 + td)

2

− 1 ( x 0 + (λ s + (1 − λ) t) d) Q( x 0 + (λ s + (1 − λ) t) d)

2

−b ( x 0 + (λ s + (1 − λ) t) d)

1

1

= λ

( x 0 + sd) Q( x 0 + sd) + (1 − λ )

( x 0 + td) Q( x 0 + td)

2

2

− 1 (λ( x 0 + sd) + (1 − λ)( x 0 + td)) Q(λ( x 0 + sd) + (1 − λ)( x 0 + td)) 2

1

1

= λ

( x 0 + sd) Q( x 0 + sd) + (1 − λ )

( x 0 + td) Q( x 0 + td)

2

2

−λ2 1( x 0 + sd) Q( x 0 + sd) − 1λ( x 0 + sd) Q(1 − λ)( x 0 + td) 2

2

− 1

1

(1 − λ )( x 0 + td) Qλ ( x 0 + sd) − (1 − λ )2

( x 0 + td) Q( x 0 + td)

2

2

172

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

1

1

=
λ

( x 0 + sd) Q( x 0 + sd) − λ 2

( x 0 + sd) Q( x 0 + sd)

2

2

1

1

+(1 − λ )

( x 0 + td) Q( x 0 + td) − (1 − λ )2

( x 0 + td) Q( x 0 + td)

2

2

− 1λ( x 0 + sd) Q(1 − λ)( x 0 + td) − 1λ( x 0 + td) Q(1 − λ)( x 0 + sd) 2

2

1

=
λ(1 − λ) ( x 0 + sd) Q( x 0 + sd) + ( x 0 + td) Q( x 0 + td)

2

−( x 0 + sd) Q( x 0 + td) − ( x 0 + td) Q( x 0 + sd)

1

=
λ(1 − λ) ( x 0 + sd) Q( x 0 + sd) + ( x 0 + sd) Q( −x 0 −td)

2

+( −x 0 − td) Q( x 0 + sd) + ( −x 0 − td) Q( −x 0 − td)

1

=
λ(1 − λ)( x 0 + sd − x 0 −td) Q( x 0 + sd − x 0 −td)

2

1

=
λ (1 − λ)(( s −t) d) Q(( s −t) d)

2

> 0

> 0

=0

=0

Q pos. def

>

0 .

2

Wir hatten im ersten Kapitel konvexe n -Ecke kennengelernt. Allgemein nennt man eine Teilmen-
ge des R n konvex, wenn sie mit je zwei Punkten auch ihre Verbindungsstrecke enthält.

Definition 7.2. Sei S ⊆ R n und seien x, y ∈ S . Die abgeschlossene Verbindungsstrecke [ x, y] zwi-
schen x und y ist dann definiert als

[ x, y] = {λ x + (1 − λ ) y | λ ∈ [0 , 1] }.

Analog definieren wir die offene Verbindungsstrecke

] x, y[ = {λ x + (1 − λ ) y | λ ∈ ]0 , 1[ } .

Dann nennen wir S konvex, wenn

∀x, y ∈ S : [ x,y] ⊆ S.

Eine Funktion f : S → R heißt konvex, wenn S konvex ist und

∀x, y ∈ S ∀λ ∈ ]0 , 1[ : f (λ x + (1 − λ) y) ≤ λ f ( x) + (1 − λ) f ( y) .

Ist die letzte Ungleichung für x = y stets strikt, so heißt f strikt konvex.

Bemerkung 7.3. Beachten Sie: Für x = y ist ] x, y[ = {x}.

In der Schule haben Sie vielleicht konvexe Funktionen als die Funktionen kennen gelernt, de-
ren zweite Ableitung positiv ist, und bei denen der Funktionsgraph stets oberhalb aller Tangenten
verläuft. Gleichwertig damit liegt der Funktionsgraph stets unterhalb der Sekante. Diese Eigenschaf-
ten wollen wir in der folgenden Aufgabe für Funktionen mehrerer Variablen verallgemeinern.

7.1. Das allgemeine Suchverfahren

173

Aufgabe 7.4. Sei S ⊆ R n eine konvexe Menge. Zeigen Sie:

a) Eine Funktion f : S → R ist genau dann konvex, wenn der Epigraph der Funktion

x
epi( f ) :=
ξ ∈ R n+1 | x ∈ R n, ξ ≥ f ( x)

eine konvexe Menge ist.

b) Sei f zusätzlich stetig differenzierbar. Zeigen Sie: f ist genau dann konvex, wenn für alle x, y ∈ S
gilt:

f ( y) ≥ f ( x) + ∇ f ( x)( y − x) .

c) Zeigen Sie zunächst: Eine eindimensionale zweimal stetig differenzierbare Funktion ˜ f :] a, b[ → R
ist genau dann konvex, wenn die zweite Ableitung ˜ f überall nicht-negativ ist. Sei f : S → R
zweimal stetig differenzierbar und S offen. Schließen Sie aus dem eindimensionalen Fall, dass
eine Funktion f genau dann konvex ist, wenn die Hessematrix auf ganz S positiv semidefinit ist.

Sie dürfen in c) für den ersten Teil den Mittelwertsatz der Differentialrechnung benutzen:

Ist ˜ f :] a, b[ → R stetig differenzierbar und sind x, y ∈] a, b[ mit x < y, so gibt es ein x < ξ < y mit
f ( y) − f ( x) = ( y − x) f (ξ ) .

Lösung siehe Lösung 9.70.

Kommen wir zurück zu strikt unimodalen Funktionen. Wir zeigen zunächst, dass wir, wenn wir
eine solche Funktion an zwei Punkten x, y ∈ ] a, b[ auswerten, feststellen können, in welchem der
beiden Intervalle [ a, y] oder [ x, b] das globale Minimum der Funktion f im Intervall [ a, b] liegt.

Proposition 7.2. Sei f : [ a, b] → R strikt unimodal und a < x < y < b. Dann gilt
a) f ( x) ≥ f ( y) ⇒ min[ a,b] f = min[ x,b] f .

b) f ( x) ≤ f ( y) ⇒ min[ a,b] f = min[ a,y] f .

Beweis. Sei zunächst f ( x) ≥ f ( y). Für z ∈ [ a, x[ sei λ z := y−x ∈ ]0 , 1[. Dann ist y−z
λ
y − x
zz + (1 − λ z) y =

· z + y − y − x · y
y − z
y − z
y − x

= y +

· ( z − y) = y − ( y − x) = x
y − z
und, da f strikt unimodal ist, gilt
f ( x) = f (λ zz + (1 − λ z) y) < max { f ( z) , f ( y) }.

Wegen f ( x) ≥ f ( y) gilt somit für alle z ∈ [ a, x[ : f ( z) > f ( x) .

Wir könnten nun eine analoge Rechnung für den Fall f ( x) < f ( y) durchführen. Diese können
wir uns sparen, wenn wir die Symmetrie in der Definition strikt unimodaler Funktionen ausnutzen.

Setzen wir nämlich ˜ f : [ a, b] → R als ˜ f( t) = f ( b+ a−t), so ist auch ˜ f strikt unimodal. Anschaulich ist dies sofort klar, da wir [ a, b] nur von rechts nach links durchlaufen. An der Eindeutigkeit
des Minimums ändert sich dadurch sicherlich nichts. Die formale Rechnung überlassen wir Ihnen
als Übung. Nun ist ˜ f( b + a − x) = f ( x) und b + a − y < b + a − x und aus f ( x) < f ( y) wird

174

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

˜ f( b + a − y) > ˜ f( b + a − x). Nach dem bereits Gezeigten liegt das Minimum von ˜ f im Intervall

[ b + a − y, b] und somit das von f in [ a, y].

2

Aus diesem Ergebnis können Sie sich als Faustregel“ merken: Minimieren konvexer Funktionen

”

über konvexen Mengen oder strikt unimodaler Funktionen ist eine gutartige Aufgabenstellung.

Aufgabe 7.5. Zeigen Sie, dass mit f auch ˜ f aus dem letzten Beweis strikt unimodal ist.

Lösung siehe Lösung 9.71.

Nach diesen Vorbereitungen sollte unser allgemeines Suchverfahren fast klar sein: Ausgehend von
einem Intervall [ a, b] wählen wir zwei Testpunkte a < x < y < b und werten die Funktion dort
aus. Ist f ( x) ≥ f ( y), so verkleinern wir das Suchintervall zu [ x, b] und ansonsten zu [ a, y]. Wir
müssen nun noch überlegen, wann wir die Suche abbrechen wollen. Weil wir in den reellen Zahlen

Extremalstellen im Allgemeinen sowieso nur näherungsweise bestimmen können, brechen wir das

Verfahren ab, wenn das Suchintervall hinreichend klein geworden ist. Hinreichend“ definieren wir

”

dabei relativ zur Größe der Zahlen im Suchintervall oder zur Länge des Suchintervalls.

Algorithmus 7.6 (Das allgemeine Suchverfahren). Sei f : [ a, b] → R eine strikt unimodale Funktion
und x ∈ [ a, b].

def findmin(f,a,x,b):

laenge=abs(a)+abs(b)

fx=f(x)

while (b-a)/laenge >= eps:

x,y,fx,fy=choosepoint(f,a,x,b,fx)

if fx >= fy:

a=x
x=y
fx=fy
else:

b=y
return (a+b)/2

Die Funktion findmin erhält als Parameter die Funktion f, die Ränder des Suchintervalls a,b
und einen ersten Auswertungspunkt x. Solange das Suchintervall hinreichend groß ist, wählen wir
einen weiteren Punkt y, an dem wir die Funktion auswerten. Außerdem vertauschen wir eventuell
x und y, falls der neue Punkt ursprünglich kleiner als x war. All dies leistet hier die Funktion
choosepoint. Mögliche Implementierungen dieser Funktion wollen wir im nächsten Abschnitt
diskutieren. Ist fx ≥ fy, so liegt das Minimum in [x,b]. Also setzen wir a=x und x=y, da dies
unser bereits ausgewerteter Punkt ist. Im anderen Fall wird nur y der neue rechte Intervallrand.

Die hier angegebene Formulierung hat den Vorteil, dass die Funktion an jeder Stelle höchstens
einmal ausgewertet wird. Wie oben schon erwähnt, wird der Aufwand in der nichtlinearen Optimie-
rung oft mit der Anzahl der Funktionsauswertungen angegeben. So kann die Funktion, auf der wir
die Liniensuche durchführen, wie oben angedeutet über eine Suchrichtung und eine mehrdimensio-
nale komplizierte Funktion gegeben sein.

7.2. Spezielle Suchverfahren

175

7.2 Spezielle Suchverfahren

In diesem Abschnitt wollen wir zwei spezielle Varianten (Implementierungen) des allgemeinen

Suchverfahrens diskutieren. Gütemaß für ein allgemeines Suchverfahren kann nur die Geschwin-
digkeit der Reduktion der Intervalllänge sein. Ein natürlicher Gedanke ist es, binäre Suche zu imple-
mentieren. Dafür würden wir den neuen Iterationspunkt y immer in der Mitte des größeren Intervalls

[x,b] wählen.

Man überlegt sich leicht, dass hierbei in zwei Schritten die Intervalllänge mindestens halbiert
wird. Es fällt allerdings direkt ein offensichtliches Ungleichgewicht auf. Wählen wir nämlich z. B.

y in [x,b] und stellen fest, dass fx ≤ fy, so ist unser nächstes Suchintervall [a,y] unnötig groß.

Im nächsten Schritt platzieren wir den neuen Suchpunkt in der Mitte von [a,x] und stehen dann
wieder vor der gleichen Situation wie am Anfang. In der nachfolgenden Abbildung haben wir diese

Situation skizziert. Nach x und y geben wir bei den Punkten nur noch Zahlen an, die andeuten, als
wievielter Iterationspunkt die Stelle gewählt wird. Das globale Minimum liege dabei an der Stelle
a .

a 9 7 8 5

6

3

4
x
y
b

Betrachten wir nun allgemein zwei aufeinanderfolgende Iterationen. Wir versuchen jeweils das

Intervall möglichst stark zu verkleinern. Dies soll für beliebige Funktionen f gelten, d.h. wir können
in unseren Überlegungen stets annehmen, dass der ungünstigste Fall eintritt.

Sei zum Zeitpunkt k die Intervalllänge Ik . Zunächst haben wir a < x < y < b und entfernen
entweder [ a, x] oder [ y, b] . Also ist

Ik ≤ Ik+1 + max {b − y, x − a}.

Im darauf folgenden Schritt wird ein z in [ x, b] bzw. in [ a, y] platziert. Platzieren wir z in [ x, b]

und entfernen das linke Teilstück, also [ x, z] , falls z < y , und [ x, y] ansonsten, so bleibt auf jeden

Fall mindestens [ y, b] übrig. Den Fall, dass das rechte Teilstück entfernt wird, brauchen wir auf

Grund der oben aufgeführten Vorüberlegungen nicht zu betrachten. Also ist Ik+2 ≥ b − y. Analoge

Überlegungen für den Fall, dass wir z in [ a, y] platzieren ergeben Ik+2 ≥ x − a. Zusammengefasst
haben wir also

Ik+2 ≥ max {b − y, x − a}.

Insgesamt erhalten wir

Ik ≤ Ik+1 + Ik+2 .

Wir haben also gezeigt:

Proposition 7.3. Sei S ein Suchverfahren und für k ∈ Z+

b

S
k − ak
k := max

| ak,bk nach k-ter Iteration bei strikt unimodalem f ,
b − a
dann gilt

Sk ≤ Sk+1 + Sk+2 .

2

176

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

Im günstigsten Falle erreichen wir in der letzten Proposition Gleichheit. Dann erfüllen alle

Intervalllängen die Rekursion

Sk = Sk+1 + Sk+2 .

Im letzten Iterationsschritt sollten die Intervalle am besten gleich groß und < ε sein. Rückwärts
gesehen erfüllen dann die Intervalle die Rekursionsgleichung der berühmten Fibonaccizahlen.

Definition 7.3. Sei die Folge Fi definiert durch die Rekursionsgleichung

Fi+2 = Fi+1 + Fi für i ∈ N
und die Anfangsbedingungen F 0 = F 1 = 1. Dann heißen die Fi Fibonaccizahlen.

Bemerkung 7.7. In der Literatur findet man häufig auch die Anfangsbedingungen F 0 = 0 und F 1 = 1.

Dies führt in der Folge offensichtlich nur zu einer Indexverschiebung um 1.

Aufgabe 7.8. Die Zahl

√
ζ

1 +

5

=

2
wird Goldener Schnitt“ genannt.

”

√

1

5 − 1

1
a) Zeigen Sie: ζ 2 = 1 + ζ , ζ =
und

= 1 − 1

2
ζ2
ζ .

b) Zeigen Sie: Für alle n ∈ N gilt

⎛

√

⎞
n+1

√
n+1

1

1 +

5

1 − 5

F

⎝

⎠
n = √

−

.

5

2

2

Lösung siehe Lösung 9.72.

Aus Proposition 7.3 schließen wir, dass sich mittels der Fibonaccizahlen ein beweisbar bestes

Suchverfahren konstruieren lässt. Sei dazu Fk die k -te Fibonaccizahl. Sei die Anzahl N der Itera-
tionen des Algorithmus vorgegeben. Für k ≤ N definieren wir im k -ten Schritt der Fibonaccisuche
xk, yk wie folgt:

F
x

N+1 −k
k := ak +

( bk − ak)

FN+3 −k

F
y

N+2 −k
k := ak +

( bk − ak) .

FN+3 −k

Beispiel 7.9. Wir untersuchen die Funktion f ( x) = x 2 − 82 x + 1681 im Intervall [0 , 89] in 7 Iterationen. Die Fibonaccizahlen bis F 10 sind

1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 .

Wir haben a 0 = 0 , b 0 = 89 und berechnen x 0 = 34 , y 0 = 55. Nun ist f ( x 0) = 49 < f ( y 0) = 196 .

Somit ist b 1 = 55 , a 1 = a 0 = 0 , y 1 = x 0 = 34 und x 1 = 21. Die folgenden Werte haben wir in

Tabelle 7.1 eingetragen. Das Minimum liegt an der Stelle x = 41 .

Aufgabe 7.10. Führen Sie 8 Iterationen der Fibonaccisuche im Intervall [ − 72 , 72] für die Funktion
f ( x) = arctan( x)2 aus.

Lösung siehe Lösung 9.73.

7.2. Spezielle Suchverfahren

177

Iteration a b x y f ( x) f ( y)

0

0 89 34 55 49 196

1

0 55 21 34 400 49

2

21 55 34 42 49

1

3

34 55 42 47

1

36

4

34 47 39 42 36

4

5

39 47 42 44

1

9

6

39 44 41 42

0

1

7

39 42 40 41

1

0

Tabelle 7.1 Die Werte zu Beispiel 7.9

Wir haben eigentlich in jeder Iteration der Fibonaccisuche x und y neu gewählt. Dass wir tatsächlich
immer
nur
eine
neue

Funktionsauswertung
benötigen,
ist
der

Inhalt
der
folgenden

Proposition.

Proposition 7.4. a) Die Fibonaccisuche ist eine Implementierung des allgemeinen Suchverfahrens,
d.h. falls
f ( xk) ≥ f ( yk)

und somit ak+1 = xk , so ist xk+1 = yk und falls
f ( xk) < f ( yk)

und somit ak+1 = ak , so ist yk+1 = xk .

b) Die Fibonaccisuche platziert x und y symmetrisch in [ a, b] , d.h. für k < N gilt

F
x

N+1 −k
k − ak = bk − yk =

( bk − ak) .

FN+3 −k

F
c) F

N+
ür k ≤ N ist b

3 −k
k − ak =

( b − a) .

FN+3

Beweis. Ist f ( xk) ≥ f ( yk), so sind ak+1 = xk und bk+1 = bk . Weiter haben wir ak+1 = ak +

FN+1 −k ( b

F
k − ak) und

N+3 −k

F
x

N−k
k+1 = ak+1 +

( bk+

F

1 − ak+1)

N+2 −k

F

F

= a

N+1 −k

N−k
k +

( bk − ak) +
bk − ak − FN+1 −k ( bk − ak)

FN+3 −k

FN+2 −k

FN+3 −k

F

F

= a

N+1 −k

N−k
k +

+

1 − FN+1 −k

( bk − ak)

FN+3 −k

FN+2 −k

FN+3 −k

F

F

F

= a

N+1 −k

N−k

N+1 −k + FN+2 −k − FN+1 −k
k +

+

( bk − ak)

FN+3 −k

FN+2 −k

FN+3 −k

F

F

F

= a

N+1 −k

N−k

N+2 −k
k +

+

( bk − ak)

FN+3 −k

FN+2 −k

FN+3 −k

F

F

= a

N+1 −k

N−k
k +

+

( bk − ak)

FN+3 −k

FN+3 −k

F

= a

N+2 −k
k +

( ak − bk) = yk.

FN+3 −k

Im zweiten Fall berechnet man analog yk+1 = xk oder folgert es aus der Symmetrie (siehe b)). Für
b) berechnen wir

178

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung
bk − yk = ( bk − ak) − FN+2 −k ( bk − ak)

FN+3 −k

= ( bk − ak) 1 − FN+2 −k

FN+3 −k

F

= ( b

N+1 −k
k − ak)

= xk − ak.

FN+3 −k

Die Behauptung in c) zeigen wir mittels vollständiger Induktion. Die Verankerung besagt b 0 − a 0 =
b − a, ist also sicher wahr. Für den Induktionsschritt haben wir zunächst
bk−xk falls f( xk) ≥ f( yk)

bk+1 − ak+1 =
yk − ak falls f ( xk) < f ( yk)

Wegen der eben gezeigten Symmetrie ist bk − xk = yk − ak und somit gilt nun
bk+1 − ak+1 = yk − ak

F

=

N+2 −k ( bk − ak)

FN+3 −k

I.V. F

F

=

N+2 −k

N+3 −k ( b − a)

FN+3 −k FN+3

F

=

N+2 −k ( b − a) .

FN+3

2

Satz 7.11. Seien die Si wie in Proposition 7.3 definiert und setzen wir SN+1 = yN − aN = bN − xN ,
und

SN+2 = max {xN − aN, yN − xN, bN − yN},
dann gilt:

SN+2 ≥

1 .

FN+3

Also kann kein Suchverfahren bei fest vorgewählter Schrittzahl eine stärkere Reduktion des Suchin-
tervalls garantieren.

Beweis. Offensichtlich ist stets SN+1 ≤ 2 SN+2 . Da F 1 = 1 und F 2 = 2 ist, haben wir
für k = 1 , 2 : SN+3 −k ≤ FkSN+2 .

Wir beweisen nun per Induktion, dass diese Aussage für alle k ≤ N gilt. Nach Proposition 7.3 haben
wir
für k ∈ { 3 , . . . , N + 3 } : SN+3 −k ≤ SN+3 −( k− 1) + SN+3 −( k− 2) .

Nach Induktionsvoraussetzung sind

SN+3 −( k− 1) ≤ Fk− 1 SN+2 und SN+3 −( k− 2) ≤ Fk− 2 SN+2 .

Setzen wir dies ein, so erhalten wir

SN+3 −k ≤ Fk− 1 SN+2 + Fk− 2 SN+2 = ( Fk− 1 + Fk− 2) SN+2 = FkSN+2 .

7.2. Spezielle Suchverfahren

179

Damit folgt die Zwischenbehauptung nach dem Prinzip der vollständigen Induktion.

Setzen wir nun k = N + 3 ein, so haben wir

1 = S 0 ≤ FN+3 SN+2 ,
woraus die Behauptung folgt.

2

Die Fibonaccisuche hat zwei Nachteile:

a) Man muss im Voraus wissen, wieviele Iterationen man machen will, bzw. wie klein das Such-
intervall werden soll. Im Allgemeinen wird man jedoch auch die relativen Unterschiede in den

Funktionswerten in diese Entscheidung mit einbeziehen.

b) Man muss eine Tabelle der Fibonaccizahlen bereitstellen. Diese sind entweder in Gleitkomma-
darstellung nur angenähert, oder man muss Langzahlarithmetik verwenden, da z. B. F 100 bereits

21 Dezimalstellen hat.

Statt dessen betrachtet man direkt das Verhalten des Quotienten benachbarter Fibonaccizahlen

(vgl. Aufgabe 7.8):

√

n+1

√
n+1

1+ 5

1 − 5

F

−
n+1

2

2

=

√

√

F
n
n
n

1+ 5

− 1 − 5

2

2

√

n+1

√
n+1
n

1+ 5

− 1 − 5

2 √

2

2

1+ 5

=

√

n

√
n

·
n

1+ 5

− 1 − 5

2 √

2

2

1+ 5

√ √ √ n

1+ 5

− 1 − 5

1 − 5

√

2

2

1+ 5

=

√ n

1 − 1 − 5

√

1+ 5

√
n→∞

→ 1 + 5 .

2

Bei der letzten Grenzwertüberlegung haben wir ausgenutzt, dass

√

1 − 5

√

1 +

5 < 1

√ n
ist und somit der Ausdruck

1 − 5

√
für n → ∞ gegen 0 geht.

1+ 5

√

Die Zahl 1+ 5 hatten wir in Aufgabe 7.8 als Goldenen Schnitt kennen gelernt. Man spricht bei

2
der Unterteilung einer Strecke von einem Goldenen Schnitt, wenn sich das kürzere Teilstück zum
längeren Teilstück wie das längere Teilstück zur gesamten Strecke verhält.

l 1
l 2

Abb. 7.1 Der Goldene Schnitt

180

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

Im Grenzwert wird also aus der Fibonaccisuche die Goldener-Schnitt-Suche. Wir platzieren x so,
dass x, y symmetrisch in [ a, b] liegen und a, x, y ein Goldener Schnitt ist. Setzen wir also l 1 = y − a
und l 2 = b − y, so haben wir wegen der symmetrischen Platzierung von x und y zunächst:

l 1 + l 2 = ( y − a) + ( b − y) = ( b − x) + ( x − a) = b − a.

Betrachten wir l 1 als das längere Teilstück der Strecke und l 2 als das kürzere, so hat die Gesamt-
strecke die Länge l 1 + l 2 . Damit wir einen Goldenen Schnitt erhalten, müssen also x, y so gewählt
werden, dass
l 1
l

= 1 + l 2 .

l 2
l 1

Dies formen wir zunächst um zu
l 21 = ( l 1 + l 2) l 2

⇐⇒ l 21 = ( l 1 + l 2)( l 1 + l 2 − l 1)

⇐⇒ l 21 + ( l 1 + l 2) l 1 − ( l 1 + l 2)2 = 0

Setzen wir nun l 1 + l 2 = b − a ein, erhalten wir hieraus:

l 21 + ( b − a) l 1 − ( b − a)2 = 0 .

Diese quadratische Gleichung hat genau eine positive Nullstelle, nämlich

√

√ − 1

−b − a

( b − a)2

5 − 1

1 +

5

+

+ ( b − a)2 =

( b − a) =

( b − a) .

2

4

2

2

Also wird y an der Stelle

√ −

1

√

1 +

5

5 − 1
y = a +

( b − a) = a +

( b − a)

2

2
platziert und a, y, b ist ein Goldener Schnitt.

√

√

Für die Platzierung von x nutzen wir aus, dass 1 − 5 − 1 = 3 − 5 ist und berechnen

2

2

√

5 − 1
x = b −

( b − a)

2

√

5 − 1

= a + ( b − a) −

( b − a)

2

√

5 − 1

= a +

1 −

( b − a)

2

√

3 − 5

= a +

( b − a) .

2

Somit erhalten wir als Vorschrift für die Goldene-Schnitt-Suche.

7.3. Koordinatensuche und Methode des steilsten Abstiegs

181

√

3 − 5
xk := ak +

( bk − ak)

2

√ 5 − 1
yk := ak +

( bk − ak) .

2

Als Algorithmus erhalten wir dann:

Algorithmus 7.12.

leftfak=(3-sqrt(5))/2
rightfak=(sqrt(5)-1)/2
def choosepoint(f,a,x,b,fx):

if b-x <= x-a:

return a+leftfak*(b-a),x,f(a+leftfak*(b-a)),fx
else:

return x,a+rightfak*(b-a),fx,f(a+rightfak*(b-a))

def findmin(f,a,x,b):

fx=f(x)

while (b-a)/(abs(b)+abs(a)) >= eps:

x,y,fx,fy=choosepoint(f,a,x,b,fx)

if fx >= fy:

a=x
x=y
fx=fy
else:

b=y
else:

return (a+b)/2

Bemerkung 7.13. Wir haben hier nur Verfahren angesprochen, welche die Stetigkeit der Funktion
ausnutzen. Es gibt einige Verfahren, welche Differenzierbarkeitsinformationen ausnutzen, also etwa
lineare oder quadratische Annäherung, auf die wir hier aber nicht näher eingehen wollen. Allerdings
kann man die eindimensionale Variante des Newtonverfahrens, das wir im übernächsten Abschnitt
diskutieren, als Beispiel heranziehen.

7.3 Koordinatensuche und Methode des steilsten Abstiegs

In diesem Abschnitt wollen wir uns der Frage geeigneter Suchrichtungen zuwenden. Dabei wollen
wir in unseren Untersuchungen Nebenbedingungen vernachlässigen. Die hier vorgestellten Algorith-
men sind allerdings eher prinzipiell“ zu verstehen und haben sich in der Praxis als nicht besonders

”

effizient erwiesen. Wir werden auf diese Problematik später noch etwas näher eingehen.

Alle Verfahren benutzen ein allgemeines Suchverfahren, wie wir sie im letzten Abschnitt vor-
gestellt haben, als Unterroutine. Wir nennen solche Suchverfahren auch line search. Bei unseren

182

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung
theoretischen Überlegungen in diesem Abschnitt wollen wir von der idealisierten Vorstellung aus-
gehen, dass line search stets das Minimum findet. In der Praxis spielt die Schrittweitensteuerung bei
line search eine wichtige Rolle.

Das simpelste Verfahren ist die sogenannte Koordinatenabstiegsmethode:

Sei ¯
x ∈ R n gegeben. Wir fixieren alle Koordinaten bis auf die i-te und lösen
min f ( ¯
x 1 , ¯ x 2 , . . . , ¯ xi− 1 , xi, ¯ xi+1 ,..., ¯ xn) .

xi∈ R

Ist x∗ die optimale Lösung dieses Subproblems, so setzen wir ¯
x

, wählen eine andere
i
i = x∗
i

Koordinate und fahren fort. Wir erhalten also folgenden Algorithmus (hier enden leider unsere

Möglichkeiten, mit Python ausführbaren Pseudocode“ zu erzeugen):

”

while !x − xold! > ε :

for i in range(n):

xold = x
λ = argminλ f( x+λ ei) # loese mit line search
x = xold + λ ei

Hierbei ist argmin die Menge aller λ , an denen das Minimum angenommen wird. Da die Auswahl
der Koordinaten zyklisch erfolgt, nennt man obige Methode zyklisches Abstiegsverfahren. Werden
die Koordinaten in der Reihenfolge 1 , 2 , . . . , n − 1, n, n − 1 , . . . , 2 , 1 , 2 , . . . abgearbeitet, so trägt das Verfahren den Namen Aitken double sweep method. Nutzt man zusätzlich Differenzierbarkeitsin-fomationen aus und wählt stets die Koordinate mit dem größten Absolutwert im Gradienten, so
erhalten wir das Gauß-Southwell-Verfahren.

Die dargestellten Verfahren scheinen sinnvoll. Konvergenz gegen etwas Sinnvolles“ kann man

”

jedoch nur garantieren, wenn f differenzierbar ist. Betrachten wir dazu ein Beispiel.

Beispiel 7.14. Sei die stetige (!) Funktion f : R2 → R wie folgt definiert:

( x+ y− 5)2+( x−y− 2)2 falls x≤y
f ( x, y) :=

( x + y − 5)2 + ( x − y + 2)2 falls x > y.

Wir verifizieren zunächst die Stetigkeit. Wir müssen die Stelle x = y untersuchen. In diesem

Falle ist der Funktionswert (2 x − 5)2 + 4. Da mit x → y auch die Funktionsdefinition für x > y
gegen diesen Wert strebt, ist die Funktion an der Schnittstelle“ stetig.

”

Die nachfolgenden Überlegungen zu den jeweiligen Minimalstellen werden wir in Aufgabe 7.15
detailliert untersuchen. Wir führen eine Koordinatensuche beginnend in (0 , 0) durch. Suchen wir
in x -Richtung, stellen wir fest, dass das Minimum in positiver Richtung zu suchen ist. Wir müssen
zunächst die Funktion ( x − 5)2 + ( x + 2)2 minimieren. Diese ist für kleine, positive x kleiner als

( x − 5)2 + ( x − 2)2 für betraglich kleine, negative x. Aus Symmetriegründen (5 − x = x + 2) oder
mittels Nachrechnen findet man das Minimum in x = 1 . 5 . In y -Richtung minimieren wir also nun
die Funktion

( y − 3 . 5)2 + ( −y + 3 . 5)2 = 2( y − 3 . 5)2
für y < 1 . 5 und

( y − 3 . 5)2 + ( −y − 0 . 5)2 = (( y − 1 . 5) − 2)2 + (( y − 1 . 5) + 2)2 für y ≥ 1 . 5 .

7.3. Koordinatensuche und Methode des steilsten Abstiegs

183

Die zusammengesetzte Funktion hat ihr Minimum in y = 1 . 5 . Wieder in x -Richtung betrachten wir
jetzt also die Funktion

( x − 3 . 5)2 + ( x − 3 . 5)2 = 2( x − 3 . 5)2
für x ≤ 1 . 5 und

( x − 3 . 5)2 + ( x + 0 . 5)2 = (( x − 1 . 5) − 2)2 + (( x − 1 . 5) + 2)2 für x > 1 . 5 .

Diese ist wiederum minimal in x = 1 . 5 . In y -Richtung

( y − 3 . 5)2 + ( −y + 3 . 5)2 für y < 1 . 5 und

( y − 3 . 5)2 + ( −y − 0 . 5)2 für y ≥ 1 . 5
erhalten wir die gleiche Funktion, die wir im vorletzten Schritt untersucht haben. Die Koordinaten-
suche terminiert also mit dem Wert 4 + 4 = 8 an der Stelle (1 . 5 , 1 . 5) , das Minimum liegt aber in

(2 . 5 , 2 . 5) mit dem Wert 4.

Aufgabe 7.15. Verifizieren Sie die Minima in der Koordinatensuche in Beispiel 7.14.

Lösung siehe Lösung 9.74.

Aufgabe 7.16. Führen Sie eine Koordinatensuche für die Funktion
f ( x, y) = x 2 + y 2 − 3 x + 5 y + 10
durch. Starten Sie wieder in (0 , 0) .

Lösung siehe Lösung 9.75.

Ist hingegen f differenzierbar, so können wir zeigen, dass jedes Koordinatensuchverfahren, wenn
es konvergiert, gegen einen stationären Punkt, d. i. ein Punkt, an dem der Gradient verschwindet,
konvergiert.

Satz 7.17. Ist f : R n → R stetig differenzierbar und ist ( xi) i∈ N eine Folge, die von einem Koordina-
tensuchverfahren erzeugt wird, das in jede Koordinatenrichtung unendlich oft sucht, so konvergiert
jede konvergente Teilfolge ( xi )

j
j∈ N gegen ein x∗ mit ∇ f ( x∗) = 0 .

Beweis. Angenommen ( xi )

j
j∈ N wäre eine Teilfolge mit
lim xi = x∗ und ∇ f ( x∗) = 0 .

j→∞
j

Wir zeigen zunächst, dass es eine Teilfolge ( yi) i∈ N von ( xi )

j
j∈ N gibt, bei der ausgehend vom
jeweiligen Iterationspunkt yi stets in Richtung ei mit ∇ f ( x∗) = 0 gesucht wird. Nehmen wir zur

0
i 0

Herleitung eines Widerspruchs an, es gäbe für keine Koordinatenrichtung ek eine solche Teilfolge.

Da ( xi )

j
j∈ N nach Voraussetzung eine Teilfolge ( yi) i∈ N enthält, bei der in Richtung ek gesucht wird
und bis auf endlich viele Stellen dann (∇ f ( yi)) k = 0 ist, gilt insbesondere
lim ∇ f ( xi ) k = lim(∇ f ( yi)) k = 0 .

j→∞
j
i→∞

Wenn dies für beliebige Koordinaten k gilt, muss aber schon ∇ f ( x∗) = 0 sein, im Widerspruch zur

Annahme.

Sei also nun ( yi) i∈ N eine Teilfolge von ( xi )

j
j∈ N , bei der ausgehend vom jeweiligen Iterations-
punkt yi stets in Richtung ei mit ∇ f ( x∗) = 0 gesucht wird.

0
i 0

184

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

6.5

Da f ( x∗ + tei ) (0) = ∇ f ( x∗) = 0 ist, hat die Funktion ˜ f( t) := f ( x∗ + te ) an der Stelle t = 0

0
i 0
i 0
kein lokales Minimum. Also gibt es ein α > 0 , so dass entweder f ( x∗ + tei ) < f ( x∗) für alle

0
t ∈ ]0 , α] oder f ( x∗ + tei ) < f ( x∗) gilt für alle t ∈ [ −α , 0[. Da f stetig ist, gibt es ein ε mit 0
f ( x) < f ( x∗) für alle x ∈ Uε ( x∗ + α ei ). Sei nun y

0
j ein Folgenelement mit y j ∈ Uε ( x∗) . Dann ist
y j + α ei ∈ U

) und somit f ( y

) < f ( x∗) , also gilt auch für den Nachfolger x von

0
ε ( x∗ + α ei 0
j + α ei 0
ik
y j in der Folge ( xi )

) < f ( x∗) . Da aber die Folge der ( f ( x
j
j∈ N f ( xik
i)) i∈ N monoton fallend ist und
gegen f ( x∗) konvergiert, impliziert dies mit
f ( x∗) ≤ f ( xi ) < f ( x∗)

k
einen Widerspruch.

2

Koordinatenabstiegsverfahren haben sich in der Praxis nur in ganz wenigen Spezialfällen (z.B. bei

Problemen mit Rechtecknebenbedingungen) bewährt. Im Allgemeinen ist ihr Konvergenzverhalten
schlecht, so dass selbst Probleme mit geringer Variablenzahl kaum gelöst werden können. Es scheint,
dass die einzige einigermaßen erfolgreiche Variante die Methode von Rosenbrock ist, bei der in jeder

Iteration ein neues Koordinatensystem“ gewählt wird.

”

Wir hatten in Definition 6.7 eine zulässige Richtung d als Abstiegsrichtung einer Funktion f
bezeichnet, wenn ∇ f ( x) d < 0 . Ist !d! = 1, so wird diese Zahl vom Betrag her am größten, wenn

∇

−
f ( x)

d = ! ∇ f( x) !

ist. (Offensichtlich impliziert ∇ f ( x) d < 0 , dass ! ∇ f ( x) ! = 0 ist.) Es liegt also nahe, in Richtung des Negativen des Gradienten zu suchen.

Methode des steilsten Abstiegs:

while ! ∇ f ( x) ! > ε :

λ ∗ = argminλ f( x−λ∇ f( x) )

# loese mit line search
x = x − λ ∗∇ f ( x) .

Auch hier weisen wir nach, dass jede konvergente Teilfolge gegen einen stationären Punkt
konvergiert:

Satz 7.18. Sei f : R n → R stetig differenzierbar und sei ( xi) i∈ N eine konvergente Teilfolge einer
von der Methode des steilsten Abstiegs erzeugten Punktfolge. Dann konvergiert ( xi) i∈ N gegen einen
stationären Punkt x∗ , d. h. ∇ f ( x∗) = 0 .

Beweis. Sei x∗ Grenzwert der Folge ( xi) i∈ N . Angenommen ∇ f ( x∗) = 0. Da −∇ f ( x∗) dann eine Abstiegsrichtung ist, gibt es ein α > 0 mit f ( x∗ − α∇ f ( x∗)) < f ( x∗). Da f stetig ist, gibt es ein ε > 0 mit
f ( x) < f ( x∗) für alle x ∈ Uε ( x∗ − α∇ f ( x∗)) .

(7.1)

Da f stetig differenzierbar ist, gilt lim i→∞ ∇ f ( xi) = ∇ f ( x∗) . Nach Definition der Konvergenz gibt es also ein N 1 ∈ N mit
ε

! ∇ f ( xn) − ∇ f ( x∗) ! < 2 |α | für alle n ≥ N 1 .

Da die Folge ( xi) i∈ N gegen x∗ konvergiert, gibt es ferner ein N 2 , so dass

7.3. Koordinatensuche und Methode des steilsten Abstiegs

185
ε

!xn − x∗! < für alle n ≥ N 2 .

2

Setzen wir also N 0 = max {N 1 , N 2 }, so ergibt das zusammen
ε
ε

!xN − x∗! < und ! ∇ f ( x ) − ∇ f ( x∗) ! <

0

N

2

0

2 |α | .

Dann ist aber

!xN − α∇ f ( x ) − ( x∗ − α∇ f ( x∗)) ! = !x − x∗ − (α∇ f ( x ) − α∇ f ( x∗)) !

0

N 0

N 0

N 0

≤ !xN − x∗! + ! α∇ f ( x ) − α∇ f ( x∗)) !

0

N 0

= !xN − x∗! + |α |! ∇ f ( x ) − ∇ f ( x∗)) !

0

N 0
ε
ε

<

+ |α |

2

2 |α | = ε .

Da also xN − α∇ f ( x ) ∈ U

0

N 0
ε ( x∗ − α∇ f ( x∗)) , gilt somit wegen (7.1)

f ( xN − α∇ f ( x )) < f ( x∗) .

0

N 0

Nun ist aber xN 0+1 Minimalstelle der Liniensuche auf

{xN −t∇ f ( x ) | t ∈ R },

0

N 0
also ist insbesondere f ( xN

− α∇ f ( x )). Insgesamt haben wir also

0+1) ≤ f ( xN 0

N 0
f ( xN

− α∇ f ( x )) < f ( x∗) .

0+1) ≤ f ( xN 0

N 0

Wie eben liefert dies einen Widerspruch, da die Folge ( f ( xi)) i∈ N monoton fallend mit Grenzwert
f ( x∗) ist.

2

Obwohl dieses Verfahren lokal die beste“ Richtung benutzt, ist sein Konvergenzverhalten eher

”

mäßig.

Zur qualitativen Bewertung des Konvergenzverhalten definieren wir zunächst:

Definition 7.4. Sei ( ai) i∈ N eine konvergente Folge reeller Zahlen mit lim i→∞ ai = a. Die Konver-
genzrate ist dann das Supremum der nicht negativen Zahlen p ∈ R+ mit

|ai+1 − a|

0 ≤ lim sup

< ∞ .

i→∞

|ai − a|p

Ist p die Konvergenzrate und 1 ≤ q ≤ p, so sagen wir auch, die Folge konvergiert von der

Ordnung q .

Ist die Konvergenzrate mindestens 2, so sagen wir die Folge konvergiert quadratisch. Ist die

Konvergenzrate mindestens 1, so sagen wir die Folge konvergiert linear mit Konvergenzfaktor κ ,
wenn

|ai+1 − a|
lim
i→∞ |ai − a| = κ < 1 .

Gilt dies sogar mit κ = 0 , so sprechen wir von superlinearer Konvergenz.

Bemerkung 7.19. In der obigen Definition können undefinierte Ausdrücke auftreten, wenn einige

Folgenglieder gleich dem Grenzwert sind. Gibt es unendlich viele Folgenglieder, die vom

186

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

Grenzwert verschieden sind, so kann man diese undefinierten Ausdrücke bei der Berechnung des

Limes Superior ignorieren. Sind nur endlich viele Glieder verschieden vom Grenzwert, so legen wir
die Konvergenzrate auf 0 fest.

Kommen wir zurück zum Konvergenzverhalten der Methode des steilsten Abstiegs. Die Analyse
ist aufwändig, deshalb geben wir das folgende Resultat ohne Beweis an. Für eine Herleitung im Falle
eines quadratischen, positiv definiten Problems vergleiche [22] Seiten 149–154.

Satz 7.20. Sei f : R n → R zweimal stetig differenzierbar und x∗ ein relatives Minimum von f .

Sei ferner die Hessematrix ∇2 f ( x∗) positiv definit mit größtem Eigenwert λ1 > 0 und kleinstem

Eigenwert λ n > 0 . Ist dann ( xi) i∈ N eine von dem Gradientenabstiegsverfahren erzeugte, gegen x∗
konvergente Folge, dann konvergiert die Folge der Zielfunktionswerte ( f ( xi)) i

∈ N linear gegen f ( x∗)

λ
mit einem Konvergenzfaktor von höchstens

1 −λ n
λ

.

1+λ n

2

Bemerkung 7.21. Die Gradienten aufeinanderfolgender Iterationspunkte stehen beim Gradienten-
suchverfahren senkrecht aufeinander, d. h. es gilt stets:

∇ f ( xk)∇ f ( xk+1) = 0 .

Beweis. Im Minimum bei line search ist die Ableitung 0 . Wird also das Minimum in xk+1 =
x

∇
k + λ k
f ( xk) angenommen, so gilt
f ( xk + t∇ f ( xk)) (λ k) = 0 .

Mit der Kettenregel berechnen wir somit
f ( x

∇
k + t ∇ f ( xk)) (λ k) = ∇ f ( xk + λ k
f ( xk))∇ f ( xk) = ∇ f ( xk+1)∇ f ( xk) = 0 .

2

Bemerkung 7.22. Bei der Benutzung von Ableitungen in numerischen Algorithmen nähert man diese
üblicherweise nur an, d. h. der Gradient ∇ f ( x∗) wird etwa angenähert durch den Ausdruck

1 ( f( x∗ + he 1) − f( x∗) ,..., f( x∗ + hen) − f( x∗)) .

h

7.4 Newtonverfahren

Der Hauptvorteil des Newtonverfahrens ist, dass das lokale Konvergenzverhalten deutlich besser
als bei der Gradientensuche ist. Vielleicht kennen Sie das Newtonverfahren zur Bestimmung einer

Nullstelle einer Funktion noch aus der Schule:

xk+1 = xk − f ( xk) .

f ( xk)

Hierbei wird iterativ die Funktion y = f ( x) lokal durch eine lineare Funktion

7.4. Newtonverfahren

187

˜
y( x) = f ( xk) + ( x − xk) f ( xk)

angenähert. Von dieser wird als nächster Iterationspunkt xk+1 die Nullstelle bestimmt, also

0 = f ( xk) + x f ( xk) − xk f ( xk)

⇐⇒ x = xk − f ( xk) .

f ( xk)

Wir wählen also als nächsten Punkt
xk+1 = xk − f ( xk) .

f ( xk)

x 6
x 4
x 2
x 1 x 3
x 5

Aufgabe 7.23. Bestimmen Sie, ausgehend von x = 0 und x = − 2, mit dem Newtonverfahren appro-
ximativ zwei Nullstellen der Funktion
f ( x) = x 4 − 5 x 2 + 5 x − 2 . 5 .

Iterieren Sie, bis | f ( x) | ≤ 10 − 5 ist.

Lösung siehe Lösung 9.76.

Wenn wir statt nach einem lokalen Minimum nur nach einem stationären Punkt suchen, so
erhalten wir durch Betrachten von f an Stelle von f aus dem obigen Vorgehen die Vorschrift:

xk+1 = xk − f ( xk) .

f ( xk)

Hier können wir dies so interpretieren, dass die Funktion f lokal durch die quadratische Funktion
q( x) = f ( xk) + f ( xk)( x − xk) + 1 f ( x

2
k)( x − xk)2 approximiert wird, und f ür den nächsten Iterati-
onspunkt der eindeutige stationäre Punkt dieser quadratischen Funktion berechnet wird.

Aufgabe 7.24. Bestimmen Sie, ausgehend von x = 0 , mit dem Newtonverfahren approximativ einen
stationären Punkt der Funktion
f ( x) = x 4 − 5 x 2 + 5 x − 2 . 5 .

Iterieren Sie, bis | f ( x) | ≤ 10 − 5 ist.

Lösung siehe Lösung 9.77.

In dieser Form und Interpretation können wir das Newtonverfahren direkt auf die Situation einer

Funktion f : R n → R übertragen. Wir erhalten dann das folgende Newtonverfahren zur nichtlinearen

Optimierung:

188

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung
while !x − xold! > ε :

xold = x

− 1
x = x

∇2

∇
old −
f ( xold)

f ( xold)

Aufgabe 7.25. Führen Sie ausgehend von (0 , 0) fünf Iterationen des Newtonverfahrens für die Funk-
tion f ( x, y) = x 2 + y 2 + xy − 3 x durch und bestimmen Sie das unrestringierte globale Minimum.

Lösung siehe Lösung 9.78.

Im Allgemeinen können beim Newtonverfahren schon bei der Bestimmung einer Nullstelle im

Eindimensionalen Schwierigkeiten auftreten, nämlich, dass die Ableitung Null wird, weil man sich
einem stationären Punkt nähert. Im Allgemeinen können folgende Probleme auftreten:

a) Im Laufe des Verfahrens kann die Hessematrix singulär oder schlecht konditioniert werden.

b) Es kann passieren, dass f ( xk+1) > f ( xk) ist.

c) Die Folge der generierten Punkte kann gegen einen Sattelpunkt konvergieren.

Wir werden nun aber nachweisen, dass lokal das Konvergenzverhalten sehr gut ist.

Satz 7.26. Sei f : R n → R zweimal stetig differenzierbar und ∇ f ( x∗) = 0 . Sei ferner ∇2 f ( x∗) regulär und x 1 ein Startpunkt, so dass es δ1 , δ2 > 0 gibt mit δ1δ2 < 1 und für alle x mit !x − x∗! <

!x 1 − x∗! gelte:

− 1
a) ! ∇2 f ( x)

! 2 ≤ δ1 ,
b) ! ∇ f ( x∗) − ∇ f ( x) − ∇2 f ( x)( x∗) − x! ≤ δ2 !x∗ − x!.

Dann konvergiert das Newtonverfahren gegen x∗ .

Beweis.

!

− 1
x

∇2

∇
k+1 − x∗!

=

!xk −
f ( xk)

f ( xk) − x∗!

∇ f ( x∗)=0

− 1

=

! ( x

∇2
k − x∗) −
f ( xk)

(∇ f ( xk) − ∇ f ( x∗)) !

− 1

=

! ∇2 f ( x

∇

∇2
k)

f ( x∗) − ∇ f ( xk) −
f ( xk) ( x∗ − xk) !

≤

! ∇2

− 1
f ( xk)

! 2

·! ∇ f ( x∗) − ∇ f ( x) − ∇2 f ( xk) ( x∗ − xk) !

≤
δ1δ2 !x∗ − xk! < !x∗ − xk!.

Wir sagen, die Methode ist kontraktiv. Also bildet ( !x∗ − xk! ) k∈ N eine streng monoton fallende,
nichtnegative Folge, die somit konvergieren muss. Mittels vollständiger Induktion folgt aus der
obigen Rechnung sofort

!xk − x∗! ≤ (δ1δ2) k− 1 !x 1 − x∗!.

Da δ1δ2 < 1 ist, folgt somit
lim !xk − x∗! ≤ lim (δ1δ2) k− 1 !x 1 − x∗! = 0 .

k→∞
k→∞

Also konvergiert die Folge der xi gegen x∗ .

2

7.4. Newtonverfahren

189

Da das Newtonverfahren aus einer quadratischen Annäherung an die Funktion abgeleitet ist,
erwarten wir lokal quadratische Konvergenz. Dies gilt ganz allgemein. Wir rechnen es aber nur
im Eindimensionalen nach.

Satz 7.27. Sei f : R → R viermal stetig differenzierbar, x∗ ein stationärer Punkt , also mit f ( x∗) = 0
und f ( x∗) = 0 . Sei ( xk) k∈N eine vom Newtonverfahren erzeugte, gegen x∗ konvergente Folge, also
xk+1 = N( xk) := xk − f ( xk) .

f ( xk)

Dann konvergiert die Folge quadratisch, d. h. mit Konvergenzrate 2.

Beweis. Sei N : S → R die auf einer Umgebung von x∗ , in der f ( x) = 0 ist, durch

N( x) := x − f ( x)

f ( x)

definierte Funktion. Dann ist N als Verknüpfung zweimal stetig differenzierbarer Funktionen zwei-
mal stetig differenzierbar. Wir berechnen mit der Quotientenregel den Eintrag N( x) .

N( x) = 1 − ( f ( xk))2 − f ( xk) f ( xk)

( f ( xk))2
f ( x

=
k) f ( xk) .

( f ( xk))2

Da nach Annahme f ( x∗) = 0 ist, gilt auch N( x∗) = 0 und wir erhalten aus dem Satz von

Taylor 6.12 b):

|xk+1 − x∗| = |N( xk) − N( x∗) |

1

= |N( x∗)( xk − x∗) | + |N( x∗) ||xk − x∗| 2 + o( |xk − x∗| 2)

2

1

=

|N( x∗) ||xk − x∗| 2 + o( |xk − x∗| 2) .

2

Also ist

|xk+1 − x∗|

1 |
o( |xk − x∗|)2

1 |

|

=

N( x∗) | +

=

N( x∗) | + o(1) .

xk − x∗| 2

2

|xk − x∗| 2

2

Vergleichen wir dies mit der Definition der Konvergenzrate und der des Landau-Symbols in

Kapitel 2, so folgt die Behauptung.

2

Leider konvergiert dieses Verfahren nicht unbedingt. Man kann es auf verschiedene Arten modi-
fizieren, um Konvergenz zu erzwingen. Wir wollen hier eine Möglichkeit kurz skizzieren.

Dazu betrachten wir allgemein Verfahren, bei denen die Iterationsvorschrift gegeben ist durch
x

∇
k+1 = xk − α kMk
f ( xk)

mit einem Suchparameter α k und einer positiv definiten Matrix Mk . Dann ist in erster Näherung

(bei der Entwicklung in erster Näherung bleiben quadratische und höhere Terme übrig“)

”

f ( xk+1) = f ( xk) + ∇ f ( xk)( xk+1 − xk) + o( |xk+1 − xk| 2)

= f ( x

∇

∇
k) − α k
f ( xk) Mk f ( xk) + o(α2 k) .

190

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

Nahe bei Null dominiert der in α k lineare Term, also garantiert die positive Definitheit von Mk ,
dass M ∇
k
f ( xk) eine Abstiegsrichtung ist. Für Mk = I erhalten wir das Gradientensuchverfahren.

Genauso wie dort kann man unter geeigneten Voraussetzungen auch allgemein globale Konvergenz
nachweisen. Nahe bei einem lokalen Minimum mit positiv definiter Hessematrix erhalten wir ein
parametrisiertes Newtonverfahren.

Nun ist die Hessematrix bei zweimal stetig differenzierbaren Funktionen stets symmetrisch, also
gibt es nach Satz 5.26 eine orthogonale Matrix Q und eine Diagonalmatrix D mit ∇2 f ( xk) =

QDQ , wobei auf der Diagonale von D die Eigenwerte von ∇2 f ( xk) stehen. Die Diagonaleinträge
dii ersetzt man nun durch max {δ , dii}, wobei δ > 0 ein Steuerungsparameter ist. Nahe bei einem
strikten lokalen Minimum sind alle Eigenwerte ≥ δ und die Methode wird zum Newtonverfahren.

7.5 Verfahren der konjugierten Richtungen

Der Ansatz der konjugierten Richtungen ist ein weiterer Versuch, die Vorteile des steilsten Abstiegs-
verfahrens (globale Konvergenz unter geeigneten Voraussetzungen) mit denen des Newtonverfahrens

(Ausnutzung von Information zweiter Ordnung) zu verknüpfen. Wir studieren zunächst Ideen und

Eigenschaften am Spezialfall eines quadratischen Programms, im Gegensatz zu Beispiel 6.24 b)

diesmal ohne Nebenbedingungen.

Sei also wieder Q ∈ R n×n eine quadratische, symmetrische, positiv definite Matrix und b ∈ R n .

Wir betrachten das Minimierungsproblem

1
min f ( x) ,
wobei f ( x) =
xQx − bx.

2

Abweichend von Beispiel 6.24 b) ziehen wir hier den linearen Term ab. Das erspart uns im Folgenden
einige Vorzeichen.

Eine Möglichkeit dieses Problem zu lösen, wäre es, die notwendigen Bedingungen aus Proposi-
tion 6.4 zu betrachten und

∇ f ( x) = Qx − b = 0

(7.2)

zu lösen. Dies führt, da Q positiv definit, also regulär, ist, zu der Lösung x∗ = Q− 1 b . Wir wollen
hier aber näher an einer Richtungssuche bleiben und das aufwändige Lösen des Gleichungssystems

Qx = b umgehen. Allerdings wird der hier vorgestellte Ansatz in diesem Falle nicht zu einer

Kostenersparnis führen. Er erläutert vielmehr die prinzipielle Idee, dort wo sie exakt funktioniert,
nämlich für konvexe, quadratische Programme. Danach werden wir kurz skizzieren, wie man diese

Ideen auf die allgemeine Situation übertragen kann.

Im ersten line search löst man die Optimierungsaufgabe optimal auf einem eindimensionalen
affinen Teilraum des Lösungsraumes. Wir werden nun iterativ Suchrichtungen konstruieren, so dass
die Dimension des Teilraumes, auf dem das Problem optimal gelöst ist, stets um eins wächst. Dafür
definieren wir zunächst:

Definition 7.5. Sei Q ∈ R n×n eine quadratische, symmetrische Matrix. Dann heißen zwei Vektoren
d 1 , d 2 ∈ R n Q-orthogonal, Q-konjugiert oder auch kurz konjugiert, wenn dQd

1

2 = 0 gilt. Eine
endliche Menge von Vektoren d 1 , . . . , dk ∈ R n heißt Q-orthogonal, wenn sie paarweise konjugiert
sind.

7.5. Verfahren der konjugierten Richtungen

191

Bilden d 1 , . . . , dn eine Orthonormalbasis von Eigenvektoren einer symmetrischen Matrix Q, so
sind sie Q -orthogonal und orthogonal im euklidischen Sinne. Im Allgemeinen fallen die Begriffe
nicht zusammen. Für den positiv definiten Fall sind Q -orthogonale Vektoren aber stets zumindest
linear unabhängig:

Proposition 7.5. Sei Q ∈ R n×n eine quadratische, symmetrische, positiv definite Matrix und seien
d 1 , . . . , dk ∈ R n \ { 0 } Q-orthogonal. Dann sind diese Vektoren linear unabhängig.

Beweis. Wir haben zu zeigen, dass es nur die triviale Linearkombination der Null gibt. Sei also

∑ k λ
i=1
idi = 0 und j ∈ { 1 , . . . , k} beliebig, aber fest, gewählt. Dann ist auch

k
k

( d

0 = d

∑λ

∑λ
i) ist Q-orth.

j Q 0 = d
j Q
idi

=
i
d
j Qdi

=
λ jdjQdj.

i=1
i=1

Da Q positiv definit ist und j beliebig gewählt war, schließen wir, dass λ j = 0 für j = 1 , . . . , k
gelten muss. Also sind die Vektoren linear unabhängig.

2

Haben wir also in unserer Aufgabenstellung der quadratischen Optimierung konjugierte Rich-
tungen d 1 , . . . , dn gegeben, so bilden diese eine Basis des R n , und die Optimallösung x∗ ist eine

Linearkombination dieser Vektoren:

n
x∗ = ∑ α idi.

i=1

Hieraus erhalten wir zunächst

n

∀ j = 1 ,...,n : d

∑α
j Qx∗ = d
j Q
idi

= α jd
j Qd j .

i=1

Aus dieser Gleichung können wir unter Berücksichtigung von Gleichung (7.2) herleiten:

dQx∗
db
α
j
j
j =

=

.

(7.3)

dQd
dQd
j
j
j
j

Somit können wir x∗ durch Skalar- und Matrixprodukte ausrechnen:

n
db
x∗ = ∑ i
di.

(7.4)

dQd
i=1
i
i

Wir können diese Linearkombination erst berechnen, wenn wir eine konjugierte Basis haben.

Mit einer solchen Basis ist es allerdings immer leicht, auf einem von einer Teilmenge der di
aufgespannten Unterraum das quadratische Problem zu lösen:

Satz 7.28. Seien Q, b wie eben, d 1 , . . . , dn Q-orthogonal und x 0 ∈ R n . Bezeichne Bk den von
d 1 , . . . , dk an x 0 aufgespannten affinen Unterraum
k

B
λ
k := {x 0 + ∑ jd j | λ j ∈ R } = {y ∈ R n | d
i Q( y − x 0) = 0 , i = k + 1 , . . . , n}

(7.5)

j=1
von R n . Seien nun x 1 , . . . , xn definiert durch
x Qdk − bdk
x
k− 1
k := xk− 1 −
dk.

(7.6)

dQd
k
k

192

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

Dann ist xk die Optimallösung des Problems

1
min xQx − bx.

x∈Bk 2

Insbesondere löst xn das volle quadratische Problem.

Beweis. Wir zeigen dies mittels vollständiger Induktion. Für k = 0 ist die Behauptung, dass x 0
die Optimallösung des Problems auf dem affinen Unterraum x 0 + { 0 } ist. Dies ist trivialerweise
richtig. Sei also k > 0 . Da man die Bedingungen, dass die Lösungen in dem angegebenen affinen

Unterraum leben, als lineare Nebenbedingungen wie in (7.5) formulieren kann, erhalten wir aus den

Kuhn-Tucker Bedingungen in Satz 6.26 als notwendige Bedingung an ein Minimum, dass es λ i ∈ R
gibt mit
n

∇ f ( x
λ
k) = x

∑
k Q − b =
id
i Q.

(7.7)

i= k+1

Dies ist aber, da d 1 , . . . , dn eine Q-orthogonale Basis bilden, äquivalent dazu, dass Qxk − b senk-
recht (im klassischen Sinne) auf d 1 , . . . , dk steht. An dieser Stelle wollen wir auch wieder an die
geometrische Anschauung appellieren. Steht ∇ f nicht senkrecht auf den Richtungen, die den affi-
nen Unterraum in x 0 aufspannen, so liefert das Negative seiner Projektion eine Abstiegsrichtung.

Wir setzen also nun per Induktion voraus, dass xk− 1 eine Optimallösung des Problems auf Bk− 1
ist und weisen nach, dass die Kuhn-Tucker Bedingungen in xk erfüllt sind, d. h. dass d( Qx
j
k − b) =

0 für j = 1 , . . . , k gilt. Zunächst berechnen wir dafür direkt

x Qdk − bdk
d
k− 1
k Qxk − d
k b = d
k Qxk− 1 − d
k Q
dk − d
dQd
k b
k
k
x Qdk − bdk

= d
k− 1
k Qxk− 1 −
d
dQd
k Qdk − d
k b
k
k

= d
k Qxk− 1 − x
k− 1 Qdk + bdk − d
k b = 0 .

Die letzte Gleichung gilt, da Q symmetrisch ist.

Für j < k erhalten wir unter Ausnutzung der Induktionsvoraussetzung:

x Qdk − bdk
d
k− 1
j Qxk − d
j b

=
d
j Qxk− 1 − d
j Q
dk − d
dQd
j b
k
k

x Qdk − bdk

=
d
k− 1
j Qxk− 1 −
d
dQd
j Qdk − d
j b
k
k
dQd
j
k =0

=
d
j Qxk− 1 − d
j b

Q symmetrisch

=
x
k− 1 Qd j − bd j

I.V.

=

∇ f ( xk− 1) dj = 0 .

2

Ein großer Nachteil der bisherigen Überlegungen ist, dass sie stets davon ausgehen, dass eine
konjugierte Basis bekannt ist. Im Folgenden werden wir diese dynamisch erzeugen. Dazu berechnen
wir analog zum Gram-Schmidtschen Orthogonalisierungsverfahren, das man in der linearen Algebra

7.5. Verfahren der konjugierten Richtungen

193
kennen lernt, zu einer Menge orthogonaler Vektoren aus einer neuen, linear unabhängigen Richtung
einen weiteren orthogonalen Vektor.

Im Detail benutzen wir die folgenden Formeln.

Methode der konjugierten Gradienten

Sei x 0 ∈ R n und d 1 = −g 0 = b − Qx 0 . Iterativ berechnen
wir
g dk
x
k− 1
k = xk− 1 −
dk

(7.8)

dQd
k
k
gk = Qxk − b

(7.9)

gQdk
d
k
k+1 = −gk +
dk.

(7.10)

dQd
k
k

Wir werden nachweisen, dass d 1 , . . . , dn Q-konjugiert sind. Dann handelt es sich bei dem Verfahren
um eine Implementierung der Methode aus Satz 7.28, denn
g dk
x Qdk − bdk
x
k− 1
k− 1
k = xk− 1 −
dk = xk− 1 − ( Qxk− 1 − b) dk dk = xk− 1 −
dk.

dQd
dQd
dQd
k
k
k
k
k
k

Aufgabe 7.29. Sei

1

3
f ( x, y, z, w) :=
x 2 + y 2 + z 2 + 2 w 2 − xy − xz − xw + zw + 2 y − 2 z − 4 w.

2

2

Berechnen Sie mit der Methode der konjugierten Gradienten ausgehend vom Punkt (0 , 0 , 0 , 0) das
globale Minimum von f ( x, y, z, w) auf R4 .

Lösung siehe Lösung 9.79.

Mit dem folgenden Satz liefern wir den versprochenen Nachweis, dass es sich bei dem Verfahren
um eine Implementierung der Methode aus Satz 7.28 handelt. Zunächst einmal führen wir dafür
folgende Abkürzung für den von einer Menge von Vektoren aufgespannten Untervektorrraums des

R n ein:

Definition 7.6. Sei S ⊆ R n . Mit lin( S) bezeichnen wir dann die Menge aller Linearkombinationen,
die aus Vektoren von S gebildet werden:

0
lin( S) :=

∑λ ss | λ s ∈ R , nur endlich viele λ s = 0 . .

s∈S

Wir nennen lin( S) die lineare Hülle von S .

Satz 7.30. Die in (7.8), (7.9), (7.10) definierte Methode der konjugierten Gradienten erfüllt die

Voraussetzungen von Satz 7.28. Insbesondere gilt, falls das Verfahren nicht in xk terminiert, dass
a) für k = 0 , . . . , n − 1 : lin( {g 0 , g 1 , . . . , gk}) = lin( {g 0 , Qg 0 , Q 2 g 0 , . . . , Qkg 0 }) , b) für k = 0 , . . . , n − 1 : lin( {d 1 , . . . , dk+1 }) = lin( {g 0 , Qg 0 , Q 2 g 0 , . . . , Qkg 0 }) , c) d Qd
k+1
i = 0 f ¨
ur 1 ≤ i ≤ k < n,
g dk
g gk− 1
d) − k− 1

= k− 1

,
dQd
dQd
k
k
k
k
gQdk
ggk
e)

k

=
k

.

dQd
g g
k
k
k− 1 k− 1

194

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung

Beweis. Wir zeigen zunächst die ersten drei Behauptungen mittels vollständiger Induktion, wobei
die Verankerung für k = 1 klar sein sollte, denn in a) steht eine Tautologie (lin( {g 0 }) = lin( {g 0 }),
b) ist nach Definition von d 1 klar. In c) haben wir
gQd 1
d

1

2 Qd 1 = −g

1 Qd 1 +
d
dQd

1 Qd 1 = 0 ,

1

1
was offensichtlich richtig ist.

Sei also nun k > 1 . Dann ist
g dk
g dk
g
k− 1
k− 1
k = Qxk − b = Qxk− 1 −

Qdk − b = gk− 1 −

Qdk.

dQd
dQd
k
k
k
k

Nach Induktionsvoraussetzung sind

gk− 1 ,dk ∈ lin {g 0 ,Qg 0 ,Q 2 g 0 ,...,Qk− 1 g 0 } .

Somit sind

gk− 1 ,Qdk ∈ lin {g 0 ,Qg 0 ,Q 2 g 0 ,...,Qkg 0 } ,
und also auch

gk ∈ lin {g 0 , Qg 0 , Q 2 g 0 , . . . , Qkg 0 } .

Angenommen, gk ∈ lin {g 0 , Qg 0 , Q 2 g 0 , . . . , Qk− 1 g 0 } = lin( {d 1 , . . . , dk}). Da nach Induktionsvoraussetzung d 1 , . . . , dk Q-konjugiert sind, ist
g dk
x Qdk − bdk
x
k− 1
k− 1
k = xk− 1 −
dk = xk− 1 −
dk
dQd
dQd
k
k
k
k
nach Satz 7.28 eine Optimallösung für das Minimierungsproblem von f ( x) auf Bk . Da aber wegen
gk ∈ lin( {d 1 , . . . , dk}) nun Bk− 1 = Bk gilt und somit schon xk− 1 , wiederum nach Satz 7.28, eine Op-
timallösung des Minimierungsproblems auf Bk = Bk− 1 ist, muss gk = 0 sein, also der Algorithmus
in xk− 1 terminieren. Da dies nach Voraussetzung nicht der Fall ist, war die Annahme falsch. Also ist

gk ∈ lin {g 0 , Qg 0 , Q 2 g 0 , . . . , Qk− 1 g 0 } und aus Dimensionsgründen also
lin( {g 0 , g 1 , . . . , gk}) = lin( {g 0 , Qg 0 , Q 2 g 0 , . . . , Qkg 0 }) .

Der Induktionsschritt für b) gelingt nun sofort mit Formel (7.10) und a).

Für c) berechnen wir
gQdk
d
k
k+1 Qdi = −g
k Qdi +
d
dQd
k Qdi.

k
k

Für i = k evaluiert man den Ausdruck zu Null, für i < k sind beide Summanden Null, der zweite
nach Induktionsvoraussetzung und der erste, weil

Qdi ∈ lin( d 1 , . . . , di+1)

und gk nach Satz 7.28 senkrecht auf diesem Raum steht. Also ist auch c) mittels Induktion gezeigt.

Für d) berechnen wir

7.5. Verfahren der konjugierten Richtungen

195
g Qd

−
k− 1
g
k− 1
k− 1 dk = g
k− 1 gk− 1 −
g
d Qd
k− 1 dk− 1 .

k− 1
k− 1

Da d 1 , . . . , dk , wie bereits bewiesen, eine Q-orthogonale Basis bilden und xk− 1 Optimallösung des

Problems auf dem affinen Unterraum ist, steht gk− 1 = Qxk− 1 − b = (∇ f ( xk)) senkrecht auf Bk− 1 .

Somit verschwindet in obiger Summe der zweite Summand und d) folgt.

Wir zeigen nun e). Aus (7.8) und (7.9) schließen wir

(7.8)

dQdk

Qd
k
k

= Q ( xk− 1 − xk) · g d
k− 1 k
dQdk

= (( Qx
k
k− 1 − b) − ( Qxk − b)) · g d
k− 1 k

(7.9)

dQdk

= ( g
k
k− 1 − gk) . g d
k− 1 k

Wegen a) , b) und (7.7) ist g g
k− 1 k = 0 und somit
dQdk
g
k
k Qdk = −
g
g d
k gk.

k− 1 k

Da nun
g Qdk− 1
d
k− 1
k = −gk− 1 +
dk− 1
d Qd
k− 1
k− 1
und gk− 1 orthogonal zu dk− 1 ist, folgt
dQdk
g
k
k Qdk =
g
g g
k gk
k− 1 k− 1
und damit auch e).

2

Aufgabe 7.31. Bestimmen Sie den Rechenaufwand zur Lösung eines strikt konvexen quadratischen

Programms, wenn Sie
a) die Gleichung Qx = b mittels LU -Zerlegung lösen,
b) die Gleichung Qx = b mittels Cholesky-Faktorisierung lösen,
c) das Optimum mittels der Methode der konjugierten Gradienten bestimmen.

Lösung siehe Lösung 9.80.

Zum Abschluss dieses Kapitels wollen wir zwei mögliche Erweiterungen auf nichtquadratische

Probleme anreißen. Eine naheliegende ist die Methode der quadratischen Approximation, bei der
wir stets die Matrix Q durch die momentan aktuelle Hessematrix ersetzen.

Wir betrachten also nun wieder ein nichtlineares Optimierungsproblem
min f ( x) .

Quadratische Approximation:

Sei x 0 ∈ R n und d 1 = −g 0 = − (∇ f ( x 0)) .

while Abbruchbedingung noch nicht erfüllt:

for k = 1 , . . . , n :

196

Kapitel 7. Numerische Verfahren zur Nichtlinearen Optimierung
g dk
x
k− 1
k = xk− 1 −
dk
d∇2 f ( x
k
k− 1) dk
gk = (∇ f ( xk))

if k = n:

g∇2 f ( xk) dk
d
k
k+1 = −gk +
dk
d∇2 f ( x
k
k) dk
else:

x 0 = xn , d 1 = −g 0 = − (∇ f ( x 0)) .

Der Vorteil dieser Methode ist, dass man keinen expliziten line search durchführen muss. Dennoch
hat dieser Ansatz zwei gravierende Nachteile. Zum einen ist die ständige Neuberechnung der Hes-
sematrix sehr aufwändig, zum anderen ist die Methode in dieser Form im Allgemeinen nicht global
konvergent.

Der folgende Ansatz von Fletcher und Reeves berücksichtigt diese Nachteile, indem er einerseits
in jedem Schritt einen line search durchführt und andererseits die Hessematrix durch die Identität
abschätzt.

Methode nach Fletcher-Reeves:

Sei x 0 ∈ R n und d 1 = −g 0 = − (∇ f ( x 0)) .

while Abbruchbedingung noch nicht erfüllt:

for k = 1 , . . . , n :

α k = argmin f ( xk− 1 +α dk) # löse mit line search
xk = xk− 1 + α kdk
gk = (∇ f ( xk))

if k = n:

ggk
d
k
k+1 = −gk +
dk
g g
k− 1 k− 1
else:

x 0 = xn , d 1 = −g 0 = − (∇ f ( x 0)) .

Die globale Konvergenz dieses Verfahrens (wie immer auch hier nur unter geeigneten Voraus-
setzungen) wird dadurch sichergestellt, dass einerseits der Wert der Zielfunktion nie steigt, da ein
line search durchgeführt wird, und andererseits alle n Schritte ein Gradientenabstiegsschritt durch-
geführt wird. Dies ist ein Beispiel für einen sogenannten Spacer Step. Ganz allgemein kann man in

Abstiegsverfahren durch Untermischen“ von unendlich vielen Schritten eines global konvergenten

”

Algorithmus globale Konvergenz erzwingen. Genauer gilt:

Satz 7.32 (Spacer Step Theorem). Seien X ⊆ R n , A : X → X eine Funktion und B : X → X eine
stetige Funktion. Sei ferner f : R n → R eine stetige Funktion und Γ die Menge der stationären

Punkte von f . Ferner gelte
f ( B( x)) < f ( x) für alle x ∈ X \ Γ .

(7.11)

Sei nun ( yn) n∈ N eine konvergente Folge mit y 0 ∈ X , yn+1 = A( yn) und
lim yn = x∗.

n→∞

Sei ferner K ⊆ N eine unendliche Indexmenge mit yn+1 = B( yn) falls n ∈ K . Dann gilt x∗ ∈ Γ .

7.5. Verfahren der konjugierten Richtungen

197

Beweis. Wir haben
f ( x∗) = lim f ( yn)

n→∞

= lim f ( yn+1)

n→∞

= lim f ( yn+
n→∞

1)

n∈K

= lim f ( B( yn))

n→∞
n∈K

= f ( B( x∗)) .

Dabei gilt die letze Gleichung wegen der Stetigkeit von f ◦ B. Also ist x∗ nach (7.11) ein stationärer

Punkt von f .

2

Kapitel 8

Lineare Optimierung

Wenn Ihnen die Verfahren des letzten Kapitels ein wenig wie Stochern im Nebel“ vorkamen, so

”

können wir Ihnen da nicht völlig widersprechen. Im Allgemeinen sind nicht-lineare Minimierungs-
probleme am ehesten auf konvexen Mengen und für konvexe Zielfunktionen effizient lösbar. Sogar
ein quadratisches Optimierungsproblem wie in Beispiel 6.24 b) wird, wenn die Matrix nicht mehr
positiv definit ist, NP-vollständig [25].

Anders liegt der Fall, wenn wir lineare Nebenbedingungen und eine lineare Zielfunktion haben.

Wir beschränken uns also in diesem letzten Kapitel auf den Fall, dass in unserem allgemeinen

Optimierungsproblem
min c( x)

x∈S
c( x) = cx = ∑ n c
i=1 ixi eine lineare Funktion und S eine Teilmenge des R n ist, die durch eine Menge
linearer Gleichungen oder Ungleichungen der Form
n

∑ aixi = ax ≤ β
i=1
n

∑ aixi = ax ≥ β bzw.

i=1
n

∑ aixi = ax = β
i=1
gegeben ist.

Damit können wir nun auch erklären, warum wir in den letzten beiden Kapiteln von nichtlinearer

Optimierung gesprochen haben. Hier in diesem Kapitel, in der Linearen Optimierung, werden so-
wohl die Nebenbedingungen als auch die Zielfunktion ausschließlich als lineare Funktionen gegeben
sein. Ist eins von beidem nicht der Fall, spricht man von nichtlinearer Optimierung.

8.1 Modellbildung

Sie haben mit Beispiel 6.32 in Kapitel 6 bereits ein etwas komplexeres Optimierungsproblem inklu-
sive seiner Modellierung kennengelernt. Die Modellierung praktischer Aufgaben in mathematische

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

199

DOI 10.1007/978-3-642-05422-8 8, c

Springer-Verlag Berlin Heidelberg 2010

200

Kapitel 8. Lineare Optimierung

Aufgaben ist ein weites Feld. Für die lineare Optimierung wollen wir sie hier an zwei Beispielen
vorstellen.

Lineare Programmierungsaufgaben aus der industriellen Praxis sind üblicherweise groß (Tausen-
de bis zu mehrere Millionen Variablen und Ungleichungen). Wir können hier selbstverständlich nur

Spielzeugprobleme“ behandeln.

”

Beispiel 8.1. Eine Ölraffinerie hat vier verschiedene Sorten Rohbenzin zur Verfügung und mischt
daraus Benzin in drei verschiedenen Oktanstärken. Dafür sind folgende Daten gegeben:

Rohstoffsorte Oktanzahl Fässer verfügbar Preis pro Fass Benzinsorte Mindestoktanzahl Nachfrage Preis pro Fass

1

68

4000
e 62.04

1

85 ≥ 15 000
e 81.98

2

86

5050
e 66.30

2

90
beliebig
e 85.90

3

91

7100
e 72.70

3

95 ≤ 10 000
e 90.30

4

99

4300
e 77.50

Gesucht ist ein Produktionsprozess, der den Gewinn maximiert.

Bei der Modellierung müssen wir zunächst überlegen, welche Größen wir durch Variablen aus-
drücken. Wenn wir festlegen, wieviel von jedem Rohstoff in jedes Endprodukt geht, können wir
sowohl den Gesamtrohstoffverbrauch als auch die erzeugte Menge jedes Produkts als Summe aus-
drücken. Also setzen wir
xi j := Anzahl Fässer des Rohstoffs i , die zur Produktion von Sorte j benutzt werden.

Betrachten wir die Mengenbeschränkung bei der Rohstoffsorte 1 mit 68 Oktan. Der Gesamtver-
brauch dieser Sorte ist x 11 + x 12 + x 13 . Also wird aus der Mengenbeschränkung die lineare Unglei-
chung
x 11 + x 12 + x 13 ≤ 4000 .

Betrachten wir analog die anderen Rohstoffsorten, so liefern die Daten aus der ersten Tabelle
insgesamt folgende Restriktionen:

x 11 + x 12 + x 13 ≤ 4000
x 21 + x 22 + x 23 ≤ 5050
x 31 + x 32 + x 33 ≤ 7100
x 41 + x 42 + x 43 ≤ 4300 .

Wie stellen wir nun sicher, dass die Mischungen die entsprechende Qualität haben? Zunächst
einmal ist die Gesamtmenge, die etwa von der Mischung 1 hergestellt wird, x 11 + x 21 + x 31 + x 41 .

Die Oktanzahl ist der Volumenprozentanteil Isooktan in der Mischung. Somit ergibt die Anforderung
an die Qualität der ersten Mischung folgende lineare Bedingung:

0 . 68 x 11 + 0 . 86 x 21 + 0 . 91 x 31 + 0 . 99 x 41 ≥ 0 . 85( x 11 + x 21 + x 31 + x 41) .

Der Einfachheit halber multiplizieren wir diese Bedingung noch mit 100 und bringen alle Variablen
auf die linke Seite. Wenn wir bei den übrigen Sorten analog verfahren, erhalten wir insgesamt die
folgenden drei Ungleichungen

8.1. Modellbildung

201

68 x 11 + 86 x 21 + 91 x 31 + 99 x 41 − 85( x 11 + x 21 + x 31 + x 41) ≥ 0

68 x 12 + 86 x 22 + 91 x 32 + 99 x 42 − 90( x 12 + x 22 + x 32 + x 42) ≥ 0

68 x 13 + 86 x 23 + 91 x 33 + 99 x 43 − 95( x 13 + x 23 + x 33 + x 43) ≥ 0 ,
die wir umformen zu

− 17 x 11 + x 21 + 6 x 31 + 14 x 41 ≥ 0

− 22 x 12 − 4 x 22 + x 32 + 9 x 42 ≥ 0

− 27 x 13 − 9 x 23 − 4 x 33 + 4 x 43 ≥ 0 .

Die zwei Bedingungen an Mindest- und Höchstabsatz ergeben sofort:

x 11 + x 21 + x 31 + x 41 ≥ 15 000
x 13 + x 23 + x 33 + x 43 ≤ 10 000 .

Wir wollen den Gewinn maximieren, den wir hier als Differenz von Erlös und Kosten erhalten.

Der Erlös etwa für Sorte 1

81 . 98( x 11 + x 21 + x 31 + x 41) ,
analog für die übrigen Sorten. Die Kosten etwa für Rohstoffsorte 1 betragen

62 . 04( x 11 + x 12 + x 13) .

Als Gewinn erhalten wir damit
c( x) = 81 . 98( x 11 + x 21 + x 31 + x 41) + 85 . 90( x 12 + x 22 + x 32 + x 42)

+ 90 . 30( x 13 + x 23 + x 33 + x 43) − 62 . 04( x 11 + x 12 + x 13)

− 66 . 30( x 21 + x 22 + x 23) − 72 . 70( x 31 + x 32 + x 33) − 77 . 50( x 41 + x 42 + x 43)

= 19 . 94 x 11 + 15 . 68 x 21 + 9 . 28 x 31 + 4 . 48 x 41 + 23 . 86 x 12 + 19 . 6 x 22 + 13 . 2 x 32

+ 8 . 4 x 42 + 28 . 26 x 13 + 24 x 23 + 17 . 6 x 33 + 12 . 8 x 43 .

Da negative Größen hier keinen Sinn ergeben, müssen wir zusätzlich noch die Bedingung, dass
alle xi j ≥ 0 sein sollten, hinzufügen.

In Tabellenform erhalten wir, ohne die Nichtnegativitätsbedingungen an die Variablen, zunächst
folgende Aufgabenstellung:

x 11
x 21
x 31
x 41
x 12
x 22
x 32
x 42
x 13
x 23
x 33
x 43

19.94

15.68

9.28

4.48

23.86

19.60

13.20

8.40

28.26

24.00

17.60

12.80

1

0

0

0

1

0

0

0

1

0

0

0

≤

4 000

0

1

0

0

0

1

0

0

0

1

0

0

≤

5 050

0

0

1

0

0

0

1

0

0

0

1

0

≤

7 100

0

0

0

1

0

0

0

1

0

0

0

1

≤

4 300

–17

1

6

14

0

0

0

0

0

0

0

0

≥

0

0

0

0

0

–22

–4

1

9

0

0

0

0

≥

0

0

0

0

0

0

0

0

0

–27

–9

–4

4

≥

0

1

1

1

1

0

0

0

0

0

0

0

0

≥ 15 000

0

0

0

0

0

0

0

0

1

1

1

1

≤ 10 000

Bemerkung 8.2. Bei richtigen Problemen ist die Modellbildung natürlich nicht so eindeutig wie in
diesem Beispiel. Dabei können verschiedene Probleme auftauchen.

202

Kapitel 8. Lineare Optimierung

Zunächst liegt ein realistisches Problem nicht in einer klar fassbaren mathematischen Form
vor. Oft hat man konkurrierende Optimierungsziele und weiche Nebenbedingungen, die man vom

Anwender oft nur erfährt, wenn er mitteilt, warum ihm eine Lösung, die man für eine vereinbarte

Modellierung gefunden hat, nicht gefällt.

Zum anderen kann man mögliche Lösungsmengen durch unterschiedliche Ungleichungssysteme
beschreiben, etwa indem man zusätzliche Variablen einführt. Je nach Formulierung sind die Proble-
me schwerer oder leichter lösbar. Insbesondere kann es sein, dass unterschiedliche Softwarepakete
mit unterschiedlichen Formulierungen besser umgehen können.

Aufgabe 8.3. Eine Zulieferfirma der Automobilindustrie stellt drei Kleinteile X ,Y und Z auf zwei

Maschinen A und B her. Gehen Sie davon aus, dass man ohne Umrüstkosten und Zeitverlust ein

Kleinteil erst auf Maschine A produzieren und auf Maschine B fertigstellen kann. Ebensogut soll
man aber auch die Reihenfolgen der Maschinen bei der Produktion vertauschen können.

Die Herstellung von Teil X benötigt auf Maschine A 36 Sekunden und auf Maschine B 180

Sekunden, wie gesagt in beliebiger Reihenfolge. Teil Y benötigt 72 Sekunden auf A und ebenso
lange auf B , Teil Z 180 Sekunden auf A und 144 Sekunden auf B . Die maximale Maschinenlaufzeit
beträgt pro Woche 80 Stunden. Der Abnehmer zahlt für die Teile X ,Y bzw. Z jeweils 5 , 4 bzw. 3
e pro Stück. Modellieren Sie die Aufgabe, den Erlös pro Woche zu maximieren.

Lösung siehe Lösung 9.81.

Zur allgemeinen Behandlung eines Optimierungsproblems, insbesondere in Algorithmen, ist es
ungünstig, eine Mischung aus ≤-, ≥- und =-Restriktionen zu haben. Außerdem wollen wir im

Falle der Linearen Optimierung – wie im vorliegenden Beispiel – lieber Maximierungsprobleme
als, wie bisher, Minimierungsprobleme betrachten. Das macht aber, wie bereits bemerkt, keinen

Unterschied, da

max c( x) = − min −c( x) .

x∈S
x∈S

Wir definieren deswegen folgende Standardaufgabe:

Definition 8.1. Sei A ∈ R m×n, b ∈ R m, b ≥ 0 und c ∈ R n . Die Aufgabenstellung
max cx
unter Ax = b
x ≥ 0
nennen wir Lineares Optimierungsproblem in Standardform oder auch Lineares Programm in Stan-
dardform. Ist x ≥ 0 mit Ax = b, so sagen wir, x ist zulässig für das Problem. Ein Lineares Opti-
mierungsproblem heißt zulässig, wenn es einen zulässigen Punkt x gibt. Die Menge aller zulässigen

Punkte nennen wir den zulässigen Bereich und ein Lineares Problem heißt beschränkt, wenn sein
zulässiger Bereich eine beschränkte Menge ist.

Wie bringen wir nun beliebige Modelle in Standardform? Zunächst einmal können wir b ≥ 0
immer erreichen, indem wir die entsprechende Nebenbedingung mit − 1 durchmultiplizieren. Haben
wir eine Ungleichung
n

∑ aixi = ax ≤ β ,
i=1
so führen wir eine neue, nichtnegative Variable, etwa z 1 ein, die wir auf den Wert

8.1. Modellbildung

203
n
z 1 = β − ∑ aixi = β − ax ≥ 0
i=1
setzen. Da z 1 den Schlupf zwischen der rechten und der linken Seite füllt, nennen wir z 1 eine

Schlupfvariable. Die Ungleichung wird damit zu
n

∑ aixi + z 1 = ax+ z 1 = β , z 1 ≥ 0
i=1
und somit zu einer Gleichung. Analog ersetzen wir ∑ ni=1 aixi = ax ≥ β durch ∑ ni=1 aixi = ax −
z 2 = β und z 2 ≥ 0 .

Um Beispiel 8.1 in Standardform zu bringen, führen wir also für die neun Ungleichungen Schlupf-
variablen y 1 , . . . , y 9 ein und erhalten so neben der geforderten Nichtnegativität als Nebenbedingun-
gen
x 11 + x 12 + x 13 + y 1 = 4000
x 21 + x 22 + x 23 + y 2 = 5050
x 31 + x 32 + x 33 + y 3 = 7100
x 41 + x 42 + x 43 + y 4 = 4300

− 17 x 11 + x 21 + 6 x 31 + 14 x 41 − y 5 = 0

− 22 x 12 − 4 x 22 + x 32 + 9 x 42 − y 6 = 0

− 27 x 13 − 9 x 23 − 4 x 33 + 4 x 43 − y 7 = 0
x 11 + x 21 + x 31 + x 41 − y 8 = 15000
x 13 + x 23 + x 33 + x 43 + y 9 = 10000 .

Diese Nebenbedingungen haben die Form Ax = b mit der Matrix

⎛

⎞

1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0 0

⎜

⎜

⎟

0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 0

⎜

⎟

⎜

⎟

⎜ 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 0 ⎟

⎜

⎟

⎜ 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 0 0 ⎟

⎜

⎟

⎟

A = ⎜

⎜ -17 1 6 14 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 0 0 0 ⎟

⎜

⎟

⎜ 0 0 0 0

⎟

-22 -4 1 9

0 0 0 0 0 0 0 0 0 -1 0 0 0

⎜

⎟

⎜

⎟

0 0 0 0 0 0 0 0

⎜

-27 -9 -4 4 0 0 0 0 0 0 -1 0 0 ⎟

⎝

⎟

1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 -1 0 ⎠

0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1
und dem Vektor
b = (4000 , 5050 , 7100 , 4300 , 0 , 0 , 0 , 15000 , 10000) .

In die Zielfunktion müssen wir nun noch für die neuen Variablen, die für den Zielfunktionswert
keine Rolle spielen, Nullen eintragen, erhalten also den Vektor
c = (19.94,15.68,9.28,4.48,23.86,19.6,13.2,8.4,28.26,24,17.6,12.8,0,0,0,0,0,0,0,0,0) .

204

Kapitel 8. Lineare Optimierung

In unserem Standardprogramm verlangen wir, dass alle Variablen nicht-negativ sind. Ist dies in
unserer Modellierung nicht der Fall, so können wir dies durch Aufsplitten der Variablen erreichen.

Ist etwa u eine nicht vorzeichenbeschränkte Variable, so setzen wir u = u+ − u− mit u+ , u− ≥ 0
und ersetzen bei jedem Vorkommen von u in den Restriktionen und der Zielfunktion etwa ciu durch
ciu+ − ciu−. Auf diese Weise können wir alle nicht vorzeichenbeschränkten Variablen behandeln
und so die Standardform herstellen.

Aufgabe 8.4. Bringen Sie die folgenden linearen Optimierungsprobleme in Standardform:

a) max cx
b) max cx
unter Ax ≤ b
unter Ax = b
x ≥ 0
c)

min bu
d) max bu
unter Au = c
unter Au = c
u ≥ 0

Lösung siehe Lösung 9.82.

Der älteste und immer noch praktisch wichtigste Algorithmus zur Lösung linearer Programme ist
der Simplexalgorithmus. Seit den 90er Jahren haben die so genannten Innere-Punkt-Verfahren, die

Ideen aus der Nichtlinearen Optimierung benutzen, an Bedeutung gewonnen. Bei hoch strukturierten

Problemen mit vielen Variablen sind sie inzwischen überlegen. Es wird auch über Hybridverfahren
berichtet, bei denen man beide Ansätze kombiniert. Wir werden uns hier aber auf den Simplexalgo-
rithmus beschränken.

Die Numerik der linearen Optimierung ist nicht-trivial. Für ernsthafte Anwendungen sollte man
nicht versuchen, einen eigenen Code zu entwickeln, sondern lieber auf Standardpakete zurückgrei-
fen. Kommerzielle Produkte sind etwa CPLEX und Xpress-MP. Für nichtkommerzielle Belange gibt
es auch hinreichend gute Software in der Public Domain. Wir werden für die folgende Diskussionen
zunächst QSopt verwenden, den Sie unter http://www2.isye.gatech.edu/ wcook/qsopt finden können.

Als Eingabeformat nutzen wir das sogenannte LP-Format.

Problem

Refinery

Maximize
value: 19.94x11 + 15.68x21 + 9.28x31 + 4.48x41 + 23.86x12 +19.6x22

+ 13.2x32 + 8.4x42 + 28.26x13 + 24.0x23 +17.6x33 + 12.8x43

Subject To
res1:

x11 + x12 + x13

<= 4000
res2:

x21 + x22 + x23

<= 5050
res3:

x31 + x32 + x33

<= 7100
res4:

x41 + x42 + x43

<= 4300
okt85:

-17x11 + x21 + 6x31 +14x41 >= 0
okt90:

-22x12 -4x22 +
x32 + 9x42 >= 0
okt95:

-27x13 -9x23 - 4x33 + 4x43 >= 0
dem1:

x11 + x21 + x31 + x41 >= 15000
dem2:

x13 + x23 + x33 + x43 <= 10000

8.1. Modellbildung

205

End

Wir rufen qsopt mit der Option -O und erhalten

ILLlp_add_logicals ...

Time for SOLVER_READ: 0.00 seconds.

starting ILLsimplex on scaled_lp...

Problem has 9 rows and 21 cols
starting primal phase I

(0): primal infeas = 15000.000000
starting primal phase II
completed ILLsimplex
scaled_lp: time = -0.000, pI = 4, pII = 6, dI = 0, dII = 0, opt = -277251.2
starting ILLsimplex on Refinery...

Problem has 9 rows and 21 cols
completed ILLsimplex

Refinery: time = 0.001, pI = 0, pII = 0, dI = 0, dII = 0, opt = -277251.2

LP Value: 277251.200000

Time for SOLVER: 0.00 seconds.

Solution Values
x11 = 3485.806452
x21 = 5050.000000
x31 = 7100.000000
x41 = 829.193548
x13 = 514.193548
x43 = 3470.806452

Alle anderen Werte sind Null. Tatsächlich ist das Optimum nicht eindeutig. Wenn Ihre Software
eine andere Lösung aber mit dem gleichen Zielfunktionswert liefert, wird das auch in Ordnung sein.

Die algorithmische Idee des Simplexverfahrens und die Geometrie der Aufgabenstellung erkennt
man am leichtesten an zweidimensionalen Beispielen, die man mit der so genannten graphischen

Methode lösen kann.

Beispiel 8.5 (Graphische Lösung von Problemen mit zwei Variablen). Eine Düngemittelfabrik stellt
zwei Sorten Dünger A und B aus drei Ausgangsstoffen D, E, F her. Vom Ausgangstoff D stehen pro

Periode 1500 Tonnen zur Verfügung, von E 1200t und von F 500t. Zur Produktion einer Tonne A
werden 2 Tonnen D und jeweils 1 Tonne E und F benötigt, für B jeweils eine Tonne D und E. Der

Gewinn pro Tonne A beträgt 30 e, pro Tonne B 20 e.

Als Variablen wählen wir diesmal die Produktionsmengen von A und B in Tonnen. Die Mengen-
beschränkungen ergeben dann die Ungleichungen:

2 x 1 + x 2 ≤ 1500
x 1 + x 2 ≤ 1200
x 1 ≤ 500 .

206

Kapitel 8. Lineare Optimierung

Wir erhalten also das Programm
max 30 x 1 + 20 x 2
unter

2 x 1 +
x 2 ≤ 1500
x 1 +
x 2 ≤ 1200
x 1

≤ 500
x 1 , x 2 ≥

0 .

x 2

1000

500

500

1000
x 1

30 x

30 x

1 + 20 x 2 = 0

1 + 20 x 2 = 27000

Abb. 8.1 Graphische Lösung von Beispiel 8.5

Die Lösungsmenge einer nichttrivialen Gleichung im R n ist eine Hyperebene, in der Ebene be-
kanntlich eine Gerade. Die Ungleichungen definieren dann jeweils einen abgeschlossenen Halbraum,
der von so einer Hyperebene berandet wird. Der zulässige Bereich ist also Schnitt von abgeschlos-
senen Halbräumen. So etwas nennen wir ein Polyeder. Wir haben den zulässigen Bereich für unser

Düngemittelproblem in Abbildung 8.1 grau eingefärbt. Die Isoerlösflächen, also die Orte zu Parame-
tern, bei denen ein fester Erlös erzielt wird, sind wiederum Lösungsmengen einer linearen Gleichung
also Hyperebenen (in der Ebene Geraden).

Bei der graphischen Methode erhält man die Optimallösung, indem man die Isoerlösfläche so
weit wie möglich in Richtung wachsender Erlöse verschiebt, bis sie das Polyeder nur noch berührt.

Betrachten wir die Ecken des Polyeders etwas genauer. Sie sind dadurch definiert, dass zwei

Ungleichungen nicht strikt sind, sondern mit Gleichheit angenommen werden. Dies ist zunächst
x 1 = 0 , x 2 = 0. Wenn wir die Isogewinnfläche in Richtung wachsender Erlöse verschieben, passieren
wir ( x 1 = 500 , x 2 = 0) , ( x 1 = 500 , 2 x 1 + x 2 = 1500) , ( x 1 + x 2 = 1200 , 2 x 1 + x 2 = 1500). Aus letzterem erhalten wir x 1 = 300 , x 2 = 900, wo wir den maximalen Erlös mit 27 000 e erzielen.

Aufgabe 8.6. Eine Raffinerie betreibt Anlagen verschiedener technischer Spezifikationen. Die Anla-
ge 1 hat eine Kapazität von 2 Tonnen pro Tag, Anlage 2 eine von 3 Tonnen pro Tag. Mit Anlage 1
kann man in 10 Stunden aus einer Tonne Rohöl eine 3/4 Tonne Benzin und 1/4 Tonne Heizöl gewin-
nen. Anlage 2 produziert in 5 Stunden aus einer Tonne Rohöl 1/4 Tonne Benzin und eine 3/4 Tonne

Heizöl. Die Verarbeitungskosten für eine Tonne Rohöl liegen für Anlage 1 bei 360 e, für Anlage 2
bei 180 e. Die Anlagen können maximal 20 Stunden pro Tag betrieben werden und vom Zulieferer

8.2. Der Dualitätssatz der Linearen Optimierung

207
erhält man pro Tag 4 Tonnen Rohöl. Der Verkaufspreis für Benzin beträgt 1710 e pro Tonne und für

Heizöl 630 e.

a) Formulieren Sie ein mathematisches Modell zur Maximierung des Nettogewinns an einem Tag.

b) Lösen Sie das Problem mit der graphischen Methode.

Lösung siehe Lösung 9.83.

Bevor wir in Abschnitt 8.3 auf diese Idee zurückkommen und daraus den Simplexalgorithmus
herleiten, müssen wir dessen Korrektheitsbeweis mit etwas Theorie vorbereiten. Zusätzlich definie-
ren wir auch noch Polyeder formal.

Definition 8.2. Eine Menge P ⊆ R n heißt Polyeder, wenn es ein m ∈ N, eine Matrix A ∈ R m×n und
ein b ∈ R m gibt mit

P = {x ∈ R n | Ax ≤ b}.

Aufgabe 8.7. Zeigen Sie: Der zulässige Bereich eines linearen Programms in Standardform ist ein

Polyeder.

Lösung siehe Lösung 9.84.

8.2 Der Dualitätssatz der Linearen Optimierung

Wir wollen hier die Resultate aus Kapitel 6 auf die Lineare Optimierung anwenden. Satz 6.26,
die Kuhn-Tucker-Bedigungen, benötigt zusätzlich die Voraussetzung, dass die Restriktionsmatrix

A vollen Zeilenrang m hat. Genau dann ist nämlich jeder Punkt ein regulärer Punkt der Nebenbe-
dingungen. Satz 6.26 liefert nun notwendige Bedingungen dafür, dass x∗ Optimallösung des linearen

Optimierungsproblems

− min ( −c) x
unter Ax = b

−x ≤ 0
ist. Wir haben dabei m Gleichungsbedingungen, deren Gradienten die Zeilen Ai. von A sind und n

Ungleichungsbedingungen, deren Gradienten die negativen Einheitsvektoren sind.

Satz 6.26 besagt nun, dass, wenn x∗ Optimallösung ist, es λ1 , . . . , λ m ∈ R und μ1 , . . . , μ n ∈ R mit
μ i ≤ 0 gibt mit
m
n

( −c) = ∑ λ iAi. + ∑ μ i( −ei)

i=1
j=1
und ∑ n
μ

=
j=1
ix∗

0 .

i

Wir ersetzen nun λ i durch −yi und multiplizieren die Gleichung mit − 1. Dann erhalten wir
m
n
c = ∑ yiAi. + ∑ μ iei
i=1
j=1
und ∑ n
μ

=
j=1
ix∗
i

0 .

Da die μ i ≤ 0 sind, wirkt der Term ∑ n
μ
j=1
ie
i
als nicht-positiver in jeder Komponente. Wir
können also auch schreiben

208

Kapitel 8. Lineare Optimierung
c ≤ yA und ( x∗i > 0 ⇒ ci = ( yA) i) .

Dies motiviert folgende Definition

Definition 8.3. Das Lineare Programm

( D)

min yb
unter yA ≥ c
heißt das duale Programm zum Linearen Programm in Standardform.

Wir werden im Folgenden zeigen, dass im Wesentlichen das duale Programm ( D) und das
primale Programm

( P)

max cx
unter Ax = b
x ≥ 0
den gleichen Zielfunktionswert haben.

Lemma 8.1 (Schwache Dualität). Ist x ≥ 0 zulässig für das primale Programm und y zulässig für
das duale Programm, so gilt cx ≤ yb.

Beweis.

x≥ 0
cx ≤ yAx = yb.

(8.1)

2

Vergleichen wir diesen Beweis mit unserer Bedingung, die wir aus Satz 6.26 hergeleitet hatten, so
lieferte dieser zu einer Optimallösung x∗ des primalen Programms ein y∗ , bei dem die Ungleichung
in (8.1) eine Gleichung wird, denn wenn x∗ > 0 ist, so haben wir schon c

= 0
i
i = ( yA) i und falls x∗
i
ist, gilt sicherlich auch cix∗ = ( yA)

.

i
ix∗
i

Wie schon in vorangegangenen Kapiteln wollen wir auch an dieser Stelle ohne Beweis voraus-
setzen, dass für stetige Funktionen auf beschränkten und abgeschlossenen Mengen Minimum und

Maximum existieren. Da Polyeder abgeschlossenene Mengen und lineare Abbildungen stetige Funk-
tionen sind, und somit ein beschränktes lineares Programm eine Optimallösung hat – sofern der
zulässige Bereich nicht leer ist, haben wir damit bewiesen:

Satz 8.8 (Dualitätssatz der Linearen Programmierung). Seien A ∈ R m×n, b ∈ R m und c ∈ R n und

A von vollem Zeilenrang m . Dann gilt:

Ist das primale Programm zulässig und beschränkt, so ist auch das duale Programm zulässig und
beschränkt und es gibt Optimallösungen x∗ des primalen bzw. y∗ des dualen Programms mit
cx∗ = y∗b.

2

Ist das primale Programm hingegen zulässig und unbeschränkt, so darf es wegen Lemma 8.1
keine zulässige Lösung für das duale Programm geben. Gleiches gilt, wenn das duale Programm
unbeschränkt ist. Also haben wir

Satz 8.9. Seien A ∈ R m×n, b ∈ R m und c ∈ R n und A von vollem Zeilenrang. Dann gilt genau eine
der folgenden vier Alternativen:

8.2. Der Dualitätssatz der Linearen Optimierung

209
a) Das primale und das duale Programm sind zulässig und beschränkt und ihre Zielfunktionswerte
sind gleich.

b) Das primale Programm ist unbeschränkt, d. h. es gibt ein x 0 ≥ 0 mit Ax 0 = b und ein x 1 ≥ 0 mit

Ax 1 = 0 und cx 1 > 0 .

c) Das duale Programm ist unbeschränkt, d. h. es gibt ein y 0 mit yA ≥ c und ein y

A ≥ 0

0

1 mit y

1
und yb < 0 .

1
d) Beide Programme sind unzulässig, d. h. es gibt weder ein x ≥ 0 mit Ax = b noch ein y ∈ R m mit
yA ≥ c .

Beweis. Nach dem bereits Gezeigten müssen wir nur nachweisen, dass unsere Charakterisierung
von Unbeschränktheit richtig ist. Zunächst einmal bedeutet Unbeschränktheit nur, dass es eine Folge
zulässiger Punkte x j gibt, so dass cx j über alle Schranken wächst. Ist etwa in b) die angegebene

Bedingung erfüllt, so leisten die Punkte auf dem Strahl x 0 + λ x 1 für λ ≥ 0 offensichtlich das

Gewünschte. Die umgekehrte Richtung, dass ein unbeschränktes Programm einen verbessernden

Strahl hat, beweisen wir hier nicht. Ein Beweis wird aus der Korrektheit des Simplexalgorithmus
folgen. Wir werden an den entsprechenden Stellen darauf noch einmal eingehen. Allerdings wollen
wir an dieser Stelle die Aussage über den Strahl im dualen Programm, also in c), auf b) zurückführen.

Ist nämlich das Programm

( D)

min yb
unter yA ≥ c
unbeschränkt, so auch das Programm

( D)

− max −by+ + by−
unter Ay+ − Ay− − z = c
y+ , y−, z ≥ 0 .

Die Aussage in b) liefert uns dann
y+ , y−, z

− Ay− − z

0

0

0 ≥ 0
mit

Ay+

0

0

0 = c
und
y+ , y−, z

− Ay− − z

+ by− > 0 .

1

1

1 ≥ 0
mit

Ay+

1

1

1 = 0
und

− by+1

1

Setzen wir also y 0 = y+ − y− und y

− y− , so haben wir

0

0

1 = y+

1

1
y

≥

≥

0 A = c + z

0
c
und
y

1 A = z

1

0
sowie
y

1 b < 0 .

2

Aufgabe 8.10. Zeigen Sie, dass der Dualitätssatz 8.8 der linearen Optimierung auch gilt, wenn A
nicht vollen Zeilenrang hat und Ax = b lösbar ist.

Lösung siehe Lösung 9.85.

Dass auch die letzte Alternative in Satz 8.9 eintreten kann, zeigt folgendes Beispiel:

210

Kapitel 8. Lineare Optimierung

Beispiel 8.11.

max
x 1 + x 2

( P) unter
x 1 − x 2 = 1

−x 1 + x 2 = 1
x 1 , x 2 ≥ 0
min
y 1 + y 2

( D) unter
y 1 − y 2 ≥ 1

−y 1 + y 2 ≥ 1

Beide Programme sind unzulässig. In (P) ist das Gleichungssystem nicht lösbar und in (D) liefert
die Summe der Ungleichungen die Bedingung 0 ≥ 2. Also kann es auch hier keinen zulässigen Wert
geben.

Aufgabe 8.12. Zeigen Sie: Das duale Programm des dualen Programms ist das primale Programm.

(Bringen Sie das duale Programm in Standardform und dualisieren Sie.)

Lösung siehe Lösung 9.86.

Die Bedingung aus Satz 6.26, dass ∑ n
μ

=
j=1
ix∗

0 ist, wird in der linearen Optimierung zum Satz
i
vom komplementären Schlupf. Haben wir nämlich ein duales Paar linearer Programme, bei der die
erste Alternative von Satz 8.9 gilt, und ein duales Paar von Optimallösungen x∗, y∗ , so ist

( y∗) b − cx∗ = ( y∗A − c) x∗ = 0 .

Da x∗ ≥ 0 und y∗A − c ≥ 0, folgt also:

Satz 8.13 (Satz vom komplementären Schlupf). Seien x∗ ∈ R n+ mit Ax∗ = b und y∗ ∈ R m mit
y∗A ≥ c . Dann sind x∗, y∗ genau dann ein Paar von Optimallösungen des primalen bzw. dualen

Programmes, wenn gilt:

a) x∗ = 0 ⇒ ( c = y∗A)

i
i und
b) ( c < y∗A) i ⇒ x∗ = 0 .

i

Beweis. Die Notwendigkeit der Bedingung hatten wir vor Formulierung des Satzes hergeleitet. Aus
den Bedingungen folgt nun
n
n
cx∗ = ∑ cix∗

∑
i =

( y∗A) ix∗i = y∗Ax∗ = y∗b
i=1
i=1
also folgt aus Satz 8.8 die Behauptung.

2

Aufgabe 8.14. Betrachten Sie die beiden linearen Programme

( P)

max cx

( D)

min yb
unter Ax ≤ b
unter yA ≥ c
x ≥ 0
y ≥ 0 .

Zeigen Sie: Haben beide Programme zulässige Lösungen, so sind die Optimalwerte beider Program-
me gleich.

Lösung siehe Lösung 9.87.

8.3. Das Simplexverfahren

211

8.3 Das Simplexverfahren

Die geometrische Idee des Simplexverfahrens hatten wir im zweidimensionalen Fall schon erläutert.

Wir gehen so lange von einer Ecke zu einer besseren Ecke, bis es nicht mehr besser geht. Im

Allgemeinen müssen wir uns überlegen, wie wir an Ecken des Polyeders – Polyeder heißt Vieleck –
kommen, und wie wir uns von einer Ecke zur nächsten bewegen können. Zunächst einmal definieren
wir Ecken als die Punkte eines Polyeders, die nicht auf der Verbindungsstrecke zweier anderer

Punkte des Polyeders liegen, die also extremal sind:

Definition 8.4. Sei P ein Polyeder. Dann heißt x ∈ P Ecke von P, wenn x nicht echte Konvexkom-
bination verschiedener Elemente in P ist, d. h. wenn aus y, z ∈ P und x ∈ ] y, z[ notwendig folgt, dass
x = y = z ist.

In unseren zweidimensionalen Aufgaben, die wir mit der graphischen Methode lösen konnten,
erhielten wir Ecken, indem wir aus zwei Ungleichungen Gleichungen machten. Aus der linearen

Algebra wissen Sie, dass ein Gleichungssystem genau dann für beliebige rechte Seiten eindeutig
lösbar ist, wenn die zugehörige Matrix quadratisch und von vollem Rang ist.

Ist unser Polyeder also gegeben durch eine reelle m × n Matrix A von vollem Zeilenrang m (d. h.

insbesondere m ≤ n) und einen Vektor b ∈ R m als

P = {x ∈ R n | Ax = b, x ≥ 0 }

(laut Aufgabe 8.7 ist dies ein Polyeder), so benötigen wir für eine Ecke n Gleichungen. Die ersten m
davon liefert Ax = b . Also müssen wir noch n−m der Nichtnegativitätsbedingungen zu Gleichungen
machen, um Kandidaten für eine Ecke zu bekommen. Mit anderen Worten: Wir fixieren n − m

Koordinaten zu Null und rechnen die übrigen mit Ax = b aus. Wenn der so enthaltene Punkt alle

Ungleichungen erfüllt, also keine negative Koordinate hat, so ist er eine Ecke. Dies werden wir nun
formal in einem Lemma zeigen. Wie bereits vereinbart bezeichnen wir für eine Indexmenge I und
eine Matrix A ∈ R m×n mit A.I die Spalten von A mit Index in I und mit AI. die Zeilen von A mit Index in I . Entsprechend ist für ein x ∈ R n xI der Vektor mit den Einträgen mit Indizes I in x.

Lemma 8.2. Habe A ∈ R m×n vollen Zeilenrang m und seien b ∈ R m, x ∈ R n, x ≥ 0 . Dann ist x

Ecke von

P := {x ∈ R n | Ax = b, x ≥ 0 }

genau dann, wenn es B ⊆ { 1 , . . . , n} gibt, mit A.B regulär, xB = A− 1 b ≥ 0 und mit N := { 1 , . . . , n}\B

.B
gilt xN = 0 .

Beweis. Sei zunächst einmal x durch xB = A− 1 b ≥ 0 und x

.B

N = 0 gegeben und seien y, z ∈ P sowie
t ∈ ]0 , 1[ mit x = ty + (1 − t) z. Da die y, z ∈ P sind, gilt insbesondere y ≥ 0 und z ≥ 0. Da t und (1 − t) nichtnegativ sind, schließen wir, dass
yN = zN = xN = 0
ist. Da die Nullen keinen Beitrag zu b leisten können, ist aber auch

Ay = A.ByB = b
und Az = A.BzB = b.

212

Kapitel 8. Lineare Optimierung

Also haben wir auch
yB = zB = xB = A− 1 b

.B
und somit y = z = x . Also ist x eine Ecke.

Die andere Richtung der Aussage zeigen wir mittels Kontraposition. Wir nehmen an, dass es ein
solches B nicht gibt. Sei C die Menge der Indizes mit xC > 0. Da C nicht zu einem B ergänzt
werden kann, hat die Matrix A.C nicht vollen Spaltenrang. Der Kern der Matrix A besteht also nicht
nur aus dem Nullvektor. Also gibt es 0 = yC ∈ ker( A.C). Da x auf C echt positiv ist, können wir uns
sowohl in Richtung yC als auch in Richtung −yC ein wenig bewegen ohne die Polyederbedingungen
zu verletzen. Mit anderen Worten, es gibt ein ε > 0 mit
x 1 C := xC + ε yC > 0
und
x 2 C := xC − ε yC > 0 .

Wir setzen die xi in den übrigen Koordinaten auf Null, also x 1 {

= 0 = x 2

. Dann gilt

1 ,...,n}\C

{ 1 ,...,n}\C
für i = 1 , 2 xi ≥ 0 und

Axi = A.CxC ± ε A.CyC = A.CxC = b.

Also sind die xi ∈ P und sicherlich von x verschieden. Da nun aber

1

1
x =
x 1 + x 2

2

2
gilt, ist x keine Ecke.

2

Wir erhalten also unsere Ecken, indem wir maximal viele linear unabhängige Spalten von A
wählen. Dann ist A.B regulär.

Definition 8.5. Habe A ∈ R m×n vollen Zeilenrang m und sei b ∈ R m . Wir sagen B ⊆ { 1 , . . . , n} ist eine Basis von A , falls A.B regulär ist. Eine Basis B heißt zulässige Basis, wenn darüber hinaus

A− 1 b ≥ 0 ist. Ist B eine (zulässige) Basis, so heißt N := { 1 , . . . , n} \ B (zulässige) Nichtbasis und

.B
der Vektor x ∈ R n mit xB = A− 1 b, x

.B

N = 0 (zul ¨
assige) Basislösung.

Aufgabe 8.15. Sei A ∈ R m×n, b ∈ R m, n ≤ m und

P = {x ∈ R n | Ax ≤ b} = /0 .

Zeigen Sie: x ist genau dann Ecke von P , wenn es B ⊆ { 1 , . . . , m} gibt, so dass AB. vollen Rang
hat, |B| = n und x = A− 1 b.

B.

Lösung siehe Lösung 9.88.

Als Nächstes werden wir untersuchen, wie man von einer Ecke eine benachbarte bessere findet oder
feststellt, dass die Ecke eine Optimallösung darstellt. Zunächst halten wir für Letzteres fest:

Proposition 8.1 (Optimalitätskriterium). Habe A ∈ R m×n vollen Zeilenrang m und sei b ∈ R m .

Sei B eine zulässige Basis. Dann ist die zulässige Basislösung x eine Optimallösung des linearen

Programms, wenn
c − c

B A− 1 A ≤ 0 .

.B

Beweis. Wir setzen y = cA− 1 . Dann ist yA ≥ c und

B

.B
yb = c

B A− 1 b = c

.B

B xB = cx.

8.3. Das Simplexverfahren

213

Nach dem Lemma 8.1 von der schwachen Dualität sind ( xB, xN) und y also Optimallösungen des
primalen bzw. des dualen Programms.

2

Aufgabe 8.16. Zeigen Sie, dass die Optimallösung der Aufgabenstellung in Aufgabe 8.3 (0 , 4000 , 0)

ist!

Lösung siehe Lösung 9.89.

Der Term c − cA− 1 A liefert nicht nur ein Optimalitätskriterium, sondern, wie wir gleich

B

.B
sehen werden, auch Information darüber, welche Nachbarecken lohnend sind. Er trägt den folgenden

Namen:

Definition 8.6. Ist B eine zulässige Basis, so heißen c − cA− 1 A die reduzierten Kosten oder auch

B

.B

Schattenpreise bzgl. der Basis B .

Der Begriff reduzierte Kosten kommt daher, dass man früher zuerst Minimierungsprobleme
eingeführt hat. In unserem Falle spräche man vielleicht besser von reduzierten Gewinnen. Die
ökonomische Interpretation werden wir gleich noch diskutieren.

Kommen wir zunächst einmal zu unserer Idee zurück, von Ecke zu Ecke zu wandern. Benachbarte

Ecken besitzen benachbarte Basen, was meinen wir damit?

Definition 8.7. Zwei Basen B 1 , B 2 heißen benachbart, wenn |B 1 ∩ B 2 | = m − 1.

Zwei benachbarte Basen unterscheiden sich also nur in einem Element. Leider liefern benachbarte

Basen nicht immer benachbarte Ecken. Es kann sein, dass benachbarte Basen zur gleichen Ecke
gehören. Wir werden das im nächsten Abschnitt unter dem Thema Entartung etwas ausführlicher
diskutieren.

Wir wollen ein Kriterium finden, das uns angibt, ob der Basiswechsel lohnend ist. Haben zwei

Ecken x, x benachbarte Basen, so sind sie durch die Kante [ x, x] des Polyeders verbunden. Wir
wollen untersuchen, ob diese Kante eine Abstiegsrichtung von −c ist. Dafür müssen wir das

Vorzeichen von c( x − x) untersuchen. Wir formulieren unser Lemma aber vorsichtshalber mit

Basen und nicht mit Ecken.

Lemma 8.3. Seien B und B = ( B ∪ { j}) \ {i} mit i ∈ B, j ∈ B zwei benachbarte zulässige Basen
mit zugehörigen Basislösungen x und x . Dann ist
cx − cx = xj( c j − c

B A− 1 A

.B

. j ) .

Beweis. Da B und B benachbart sind, hat x − x höchstens an den m + 1 Indizes B ∪ B von Null
verschiedene Werte. Andererseits ist A( x − x) = b − b = 0. Also liegen die Nichtnulleinträge von
x − x im Kern von A.,B∪B , wobei ( x − x) j = x und ( x − x)

j
i = −xi ist. Wir haben also

0 = A.,B∪B( x − x) .,B∪B = xjA.j + A.B( x − x) B
also

−xjA.j = A.B( x − x) B
und somit

( x − x) B = −xjA− 1 A

.B

. j .

214

Kapitel 8. Lineare Optimierung

Setzen wir dies ein, erhalten wir
cx − cx = c

( x − x)

B∪B

B∪B

= c jxj + c

B ( x − x) B

= xjc j − xjc

B A− 1 A

.B

. j

= xj( cj − c

B A− 1 A

.B

. j ) .

2

Wenn x und die j -ten reduzierten Kosten beide echt positiv sind, verbessern wir uns beim
j

Wechsel von x nach x . Haben wir also eine Basis B gegeben, so berechnen wir dazu die reduzierten

Kosten. Haben die reduzierten Kosten noch einen positiven Eintrag, so wollen wir den zugehörigen

Index, etwa j , einer solchen Variablen in die Basis B aufnehmen. Die Frage ist nun, wie man das
i ∈ B bestimmt, das die Basis verlassen muss.

Im Kern der Matrix A.,B∪{j} gibt es genau eine vom Nullvektor verschiedene Richtung, die wir
eben berechnet haben. Wir erhalten diese, wenn wir auf B ∪{ j} jeweils e j − A− 1 A

.B

. j an der richtigen

Position eintragen und die restlichen Koordinaten mit Nullen auffüllen. Wir bewegen uns so von der

Basislösung xB in Richtung einer Kante des Polyeders. In dieser Richtung wird die Variable x j
von Null auf einen positiven Wert gehoben, bis eine Bedingung xi ≥ 0 ein weiteres Fortschreiten
verbietet. Da xi im Folgenden auf 0 gesetzt wird, nennen wir i das basisverlassende Element. Dies
ist also der Index, bei dem bei Erhöhungen der neuen Basisvariablen der zugehörige x -Wert als
erstes auf Null fällt. In der folgenden Proposition geben wir nun an, wie wir diesen Index mit dem

Minimum-Ratio-Test finden:

Proposition 8.2. Ist B eine zulässige Basis, i ∈ B, j ∈ B und

0

( A− 1 b) i
i ∈ argmin

.B

| ( A− 1 A.j) i > 0 ,

( A− 1 A

.B

.B

. j) i
wobei argmin die Menge aller Indizes ist, an denen das Minimum angenommen wird, so ist B :=

( B ∪ { j}) \ {i} eine zulässige Basis.

Beweis. Ist x = ( xB, xN) = ( xB, 0) zulässige Basislösung, j ∈ B und d ∈ R n definiert durch

⎧

⎪

⎨ −( A− 1 A

.B

. j ) k falls
k ∈ B
dk := ⎪1
falls k = j

⎩ 0
sonst,
so gilt für alle λ ∈ R:

A( x + λ d) = b + λ ( Ae j − A. j) = b.

Ist nun

0
λ

( A− 1 b)

.B
i

0 = min

| ( A− 1 A.j) i > 0 ,

( A− 1 A

.B

.B

. j ) i
so gilt außerdem für alle k ∈ B mit ( A− 1 A

.B

. j ) k > 0 zunächst einmal:

−

−λ

( A− 1 b)

.B
k

0( A− 1 A

( A− 1 A

.B

. j) k ≥

. j ) k

( A− 1 A

.B

.B

. j ) k
und damit auch

8.3. Das Simplexverfahren

215

( x + λ0 d) k = ( A− 1 b)

A

.B
k + λ0( −A− 1

.B

. j ) k

= ( A− 1 b)

A

.B
k − λ0( A− 1

.B

. j ) k

≥
b)

(
k

A− 1 b)

( A− 1 A

.B
k − ( A− 1

.B

. j ) k = 0 .

( A− 1 A

.B

.B

. j ) k

Ist hingegen k ∈ B mit ( A− 1 A

.B

. j ) k ≤ 0 , so haben wir sogar

( x + λ0 d) k = ( A− 1 b)

A
b)

.B
k + λ0( −A− 1

.B

. j) k ≥ ( A− 1

.B
k ≥ 0 .

Also ist x := x+λ0 d zulässig. Wir müssen noch zeigen, dass x Basislösung zur Basis ( B∪{ j}) \

{i} ist. Zunächst zeigen wir, dass A.B vollen Rang hat. Angenommen dies wäre nicht der Fall und

˜ z = 0 mit A.B ˜ z = 0. Sei dann z definiert durch zB = ˜ z und zN = 0. Da B \ { j} als Teilmenge von B linear unabhängig ist, muss z j = 0 sein. Dann ist aber auch w := z − z jd = 0, denn ( A− 1 A

.B

. j ) i > 0
und wi = −z j( A− 1 A

.B

. j ) i = 0 . Ferner ist w j = 0 . Also ist w = 0 und hat Nichtnulleinträge nur auf B .

Da aber

Aw = A( z − z jd) = Az − z jAd = 0 − z j 0 = 0
ist, definieren die Nichtnulleinträge von w ein nichttriviales Element im Kern von A.B im Wider-
spruch dazu, dass B eine Basis ist. Also ist B eine Basis. Da x außerhalb von B gleich Null ist
und Ax = b gilt, muss es sich bei x um die Basislösung zu B handeln.

2

Bevor wir den Simplexalgorithmus formulieren, überlegen wir zunächst, was passiert, wenn die

Menge, über die wir durch diese Minimumbildung das basisverlassende Element finden wollen, leer
ist. Wir hatten oben bereits berechnet, dass für ( A− 1 A

.B

. j ) k ≤ 0 die Zulässigkeit von x + λ d für jedes
nicht-negative λ sichergestellt ist. Anschaulich heißt das, dass nie mehr eine Bedingung x ≥ 0 greift,
wir also beliebig viel weiteren Profit einstreichen können.

Lemma 8.4. Ist B eine zulässige Basis mit Basislösung x , c j − cA− 1 A

A

B

.B

. j > 0 und ( A− 1

.B

. j ) i ≤ 0
für alle i , so ist das lineare Programm unbeschränkt.

Beweis. Sei d ∈ R n mit d j = 1 , dB = −A− 1 A

.B

. j und dk = 0 f ür k ∈ B ∪ { j}. Dann ist für λ ≥ 0, da
d im Kern von A ist, A( x + λ d) = b . Außerdem hatten wir eben berechnet, dass für alle k ∈ B mit

( A− 1 A

.B

. j ) i ≤ 0 gilt, dass ( x − λ d) k ≥ 0 f ür beliebiges λ ≥ 0 gilt. Da hier nach Voraussetzung dies
für alle Indizes in B gilt, ist x + λ d ≥ 0. Da wir j so gewählt hatten, dass c j − cA− 1 A

B

.B

. j > 0 ist,
haben wir darüber hinaus
λ →∞
c( x + λ d) = cx + λ ( c j − c

→ ∞

B A− 1 A )

.

.B

. j

> 0

Also ist der Halbstrahl S := {x + λ d | λ ≥ 0 } ganz in unserem zulässigen Bereich enthalten und die

Zielfunktion wächst auf S über alle Grenzen.

2

Wir wollen hier daran erinnern, dass wir in Satz 8.9 nicht explizit bewiesen hatten, dass ein unbe-
schränktes lineares Programm einen Strahl hat, auf dem die Zielfunktion über alle Schranken wächst.

In Lemma 8.4 haben wir einen solchen Strahl gefunden. Der Beweis von Satz 8.9 gelingt nun, wenn
wir nachweisen können, dass in einem unbeschränkten Programm stets eine Basis existiert, die die

Voraussetzungen von Lemma 8.4 erfüllt.

Wir haben jetzt fast alle Fakten beisammen, um den Simplexalgorithmus skizzieren und seine

Korrektheit beweisen zu können. Von den Eingabedaten setzen wir zunächst voraus, dass A vollen

216

Kapitel 8. Lineare Optimierung

Zeilenrang hat. Darüber hinaus gehört zu den Eingabedaten eine zulässige Startbasis B . Wie man
im allgemeinen Fall diese Voraussetzungen herstellt, werden wir später diskutieren.

Algorithmus 8.17 (Schematische Skizze des Simplexalgorithmus). Eingabedaten sind A ∈ R m×n mit
vollem Zeilenrang, b ∈ R m, b ≥ 0, eine zulässige Basis B, c ∈ R n .

While c − cA− 1 A ≤ 0 :

B

.B

Spaltenwahl:

Wähle j mit c j − cA− 1 A

B

.B

. j > 0 .

( A− 1 b)

Zeilenwahl:

Berechne i ∈ argmin

.B
i

| ( A− 1 A.j) i > 0 .

( A− 1 A

.B

.B

. j ) i

Falls diese Menge leer ist: STOP. Das Programm ist unbeschränkt.

Basiswechsel:

Sei k der Spaltenindex, in dem in A− 1 A der i -te Einheitsvektor steht.

.B

Setze B = ( B ∪ { j}) \ {k}.

8.4 Tableauform des Simplexalgorithmus

Alle oben aufgeführten Operationen lassen sich mit Hilfe des Gauß-Jordan-Eliminationsschrittes aus

Abschnitt 5.6 sehr leicht in einer Tableauform formalisieren. Wir nehmen wieder an, dass A vollen

Zeilenrang hat und eine zulässige Startbasis B gegeben ist. Dann lautet das Tableau zur Basis B :

c − cA− 1 A −cA− 1 b

B

.B

B

.B

A− 1 A

A− 1 b

.B

.B

Sei k der Spaltenindex, in dem in A− 1 A der i -te Einheitsvektor steht. Der Basiswechsel von

.B

B nach ( B ∪ { j}) \ {k} wird nun mittels eines Gauß-Jordan-Eliminationsschrittes mit Pivotelement

( A− 1 A)

.B
i j durchgef ührt. Als Beispiel wollen wir die Düngemittelfabrik durchrechnen.

Beispiel 8.18. Zur Erinnerung: Das Problem lautete:

max 30 x 1 + 20 x 2
unter 2 x 1 +
x 2 ≤ 1500
x 1 +
x 2 ≤ 1200
x 1

≤ 500
x 1 , x 2 ≥

0

Wir bringen dies mit Schlupfvariablen y 1 , y 2 , y 3 in Standardform:

max 30 x 1 + 20 x 2
unter 2 x 1 +
x 2 + y 1

= 1500
x 1 +
x 2

+ y 2

= 1200
x 1

+ y 3 = 500
x 1 , x 2 , y 1 , y 2 , y 3 ≥

0

Offensichtlich bilden die Indizes der drei Schlupfvariablen eine zulässige Startbasis B mit A.B =

I 3 . Also lautet unser erstes Tableau einfach nur

8.4. Tableauform des Simplexalgorithmus

217
x 1 x 2 y 1 y 2 y 3 −ZF

30 20 0 0 0

0

2 1 1 0 0 1500

1 1 0 1 0 1200

1

0 0 0 1 500 ,
wobei unter −ZF der negative aktuelle Zielfunktionswert steht. Die ersten beiden Einträge in den
reduzierten Kosten sind positiv, wir sind also noch nicht fertig. Wir wählen hier die erste Spalte
als Pivotspalte. Nun müssen wir die Werte auf der rechten Seite durch die zugehörigen positiven

Einträge in der Pivotspalte dividieren ( außen durch innen“) und davon das Minimum suchen.

”

1500 / 2 = 750 , 1200 / 1 = 1200 und 500 / 1 = 500 . Also wird das Minimum in der dritten Zeile
angenommen. Somit muss y 3 die Basis verlassen und x 1 wird aufgenommen. Dafür finden wir
das bereits eingerahmte Element als Pivotelement. Wenn wir mit diesem Pivotelement einen Gauß-

Jordan-Schritt durchführen, erhalten wir folgendes neues Tableau:

x 1 x 2 y 1 y 2
y 3

−ZF

0 20 0 0 − 30 − 15000

0 1

1 0 − 2

500

0

1 0 1 − 1

700

1

0 0 0

1

500

Wir haben oben die Basiselemente jeweils unterstrichen. Als Pivotspalte bleibt uns nur die zweite,
da in allen anderen die reduzierten Kosten nicht positiv sind. Den Minimalquotiententest müssen
wir nur für die ersten zwei Zeilen durchführen und finden das Minimum in der ersten Zeile. Ein

Pivotschritt auf dem eben eingerahmten Element liefert das folgende Tableau. In diesem finden wir in
der letzten Spalte das eingerahmte Pivotelement und schließlich ein Tableau, in dem die reduzierten

Kosten nirgendwo positiv sind.

x 1 x 2
y 1 y 2 y 3

−ZF
x 1 x 2
y 1
y 2 y 3

−ZF

0 0 − 20 0 10 − 25000

0 0 − 10 − 10 0 − 27000

0 1

1 0 − 2

500

0 1 − 1

2 0

900

0 0 − 1 1 1

200

0 0 − 1

1 1

200

1 0

0 0

1

500

1 0

1 − 1 0

300

Unsere optimale Basis ist also B = {x 1 , x 2 , y 3 } und als Werte der Optimallösung lesen wir ab:

x 1 = 300 , x 2 = 900 und den optimalen Zielfunktionswert haben wir praktischerweise oben rechts
berechnet. Er ist 27000 .

Bemerkung 8.19. In einigen Lehrbüchern wird das Tableau für Minimierungsprobleme eingeführt,
dann wählt man Spalten mit negativen reduzierten Kosten, bis alle positiv sind. Auch wird oft die

Zielfunktion unter die Matrix geschrieben. Das sind aber nur kosmetische Unterschiede.

218

Kapitel 8. Lineare Optimierung

8.5 Pivotwahl, Entartung, Endlichkeit

Die oben angegebene Skizze ist streng genommen noch kein Algorithmus, da, insbesondere bei
der Spaltenwahl noch viel Freiheit herrscht. Auch bei der Zeilenwahl gibt es bei nicht eindeutigem

Minimum Zweideutigkeiten.

Eine feste Vorschrift der Auswahl der Pivotspalte bezeichnet man als Pivotregel. Wir wollen hier
drei erwähnen.

Steilster Anstieg:

Wähle die Spalte mit den größten reduzierten Kosten.

Größter Fortschritt:

Wähle die Spalte, deren Aufnahme in die Basis die größte Verbesserung in
der Zielfunktion liefert.

Bland’s rule:

Wähle stets die Variable mit dem kleinsten Index (sowohl bei Spalten- als auch
bei Zeilenwahl). Also wählt man in der Kopfzeile die erste Spalte mit positiven reduzierten

Kosten. Falls man bei der Zeilenwahl Alternativen hat, so wählt man diejenige Zeile, bei der
das zugehörige (die Basis verlassende) Basiselement den kleinsten Spaltenindex hat.

Beispiel 8.20.

x 1 x 2
y 1 y 2 y 3

−ZF

0 0 − 20 0 10 − 25000

0 1

1 0 − 2

1

0 0 − 1 1

1

0

1 0

0 0 1

0

In diesem Tableau haben wir für die Auswahl der Spalte keine Alternative. Als basisverlassendes

Element kommen x 1 und y 2 in Frage. Nach Bland’s rule muss das Element mit kleinerem Index die

Basis verlassen, dies ist x 1 . Also wird die dritte Zeile zur Pivotzeile.

Die Steilster-Anstieg-Regel ist billig zu implementieren mit zufriedenstellendem Ergebnis. Sie
ist die intuitivste Pivotregel, die häufig verwendet wird. Diese Wahl kann jedoch zu Endlosschleifen
führen, wenn man in einer entarteten Ecke zykelt.

Die zweite Regel ist numerisch aufwändig und wird deshalb kaum verwendet.

Von der dritten meinte man früher, dass sie praktisch fast bedeutungslos sei. Sie hat aber ein
wesentliches theoretisches Feature. Das liegt daran, dass ein Basiswechsel nicht notwendig zu einem

Wechsel der Ecke führt und man deswegen in Ecken zykeln kann. Bei Bland’s rule geschieht dies
nicht. Dies wollen wir im Folgenden nachweisen.

Definition 8.8. Eine Ecke x eines LP in Standardform heißt entartet, wenn es mindestens zwei

Basen B = B gibt mit xB = A− 1 b und x

.B

B = A− 1

.B b , d. h. die zugeh örigen Basislösungen zu B und

B sind gleich. Ebenso nennen wir einen Pivotschritt entartet, der die Basislösung nicht verändert.

Geometrisch liegt eine entartete Ecke auf mehr Hyperebenen als nötig“. Im Zweidimensionalen

”

kann man Entartung nur durch überflüssige Ungleichungen erzeugen. Im Dreidimensionalen ist z. B.

schon die Spitze einer Viereckspyramide entartet. Durch die Spitze gehen vier zweidimensionale

Seitenflächen, für eine Basis benötigen wir aber nur drei.

Proposition 8.3. Ist x eine entartete Ecke, so hat x weniger als m Nichtnulleinträge.

Beweis. x kann nur auf B ∩ B von Null verschieden sein.

2

8.5. Pivotwahl, Entartung, Endlichkeit

219

Abb. 8.2 Die Spitze der Pyramide ist eine entartete Ecke

Proposition 8.4. a) Ein Pivotschritt von der Basis B nach B mit Pivotelement ai j ist genau dann
entartet, wenn ( A− 1 b)

.B
i = 0 = ( A− 1

.B b) i ist.

b) Ist ein Pivotschritt von Basis B zu B nicht entartet, so ist
cx = c
b = cx.

B A− 1

.B b > c

B A− 1

.B

Beweis. Wir betrachten A− 1
b = (η − I
b mit einer η -Matrix wie in Abschnitt 5.6

.B b − A− 1

.B
n) A− 1

.B
angegeben, die den Gauß-Jordan-Schritt beschreibt. Die Matrix (η − In) hat genau eine von Null
verschiedene Spalte, nämlich die i -te. Folglich ist

A− 1
b ⇐⇒ ( A− 1 b)

.B b = A− 1

.B

.B
i = 0 .

Die zweite Behauptung folgt nun mit Lemma 8.3. Dort hatten wir nämlich gezeigt, dass
cx − cx = xj ( c

A

> 0 .

j − cBA− 1

.B

. j )

> 0

> 0

2

In der folgenden Aufgabe sehen wir an einem schon relativ kleinen Beispiel, dass man unter An-
wendung der Steilster-Anstieg-Regel in einer entarteten Ecke hängenbleiben und zykeln kann, d. h.

es gibt eine Folge von Basen B 1 , . . . , Bk = B 1 , so dass der Simplexalgorithmus unter Anwendung
dieser Pivotregel von Bi nach Bi+1 wechselt.

Aufgabe 8.21. Betrachten Sie folgendes lineare Programm:

max 3 x
x

4 1 − 150 x 2 + 1

50 3 − 6 x 4
unter 1 x
x

4 1 −

60 x 2 − 1

25 3 + 9 x 4 ≤ 0

1 x
x

2 1 −

90 x 2 − 1

50 3 + 3 x 4 ≤ 0
x 3

≤ 1
x 1 , x 2 , x 3 , x 4 ≥ 0 .

220

Kapitel 8. Lineare Optimierung

Starten Sie mit den Schlupfvariablen als Basis und zeigen Sie, dass der Simplex-Algorithmus unter

Anwendung der Steilster-Anstieg-Regel, wobei bei der Zeilenwahl im Zweifelsfall die mit kleinerem

Index genommen wird, zykelt.

Lösung siehe Lösung 9.90.

Früher, als die Probleme, die man mit dem Rechner bearbeiten konnte, weniger strukturiert waren
und die numerische Präzision noch kleiner als heute war, hoben Rundungsfehler die Entartung auf.

Es war lange Zeit Lehrmeinung, dass in der Praxis Zykeln nicht auftritt. In letzter Zeit häufen
sich aber Berichte über Zykeln bei sehr großen, strukturierten Probleminstanzen. In einem großen
kommerziellen Code macht man normalerweise nur partial pivoting“, d. h. man berechnet die

”

reduzierten Kosten nur teilweise. Gleichzeitig protokolliert man den Fortschritt. Hegt man den

Verdacht, dass man in einen Zykel geraten sein könnte, wechselt man auf Bland’s rule. Von dieser
werden wir nun zeigen, dass sie nicht zykelt:

Satz 8.22. Bei Anwendung von Bland’s rule zykelt das Simplexverfahren nicht.

Beweis. Angenommen B 1 , . . . , Bk = B 1 wäre ein Zykel und Bi+1 = ( Bi ∪ { fi}) \ {ei}. Da alle

Elemente, die aus B 1 im Laufe des Zykels als ei entfernt wurden, bis Bk = B 1 als f j wieder
hinzugefügt werden müssen, haben wir
k

k

J =

{ei} =

{ fi}.

i=1
i=1

Sei t = ei = f j der größte Index in J . Wenn t = f j in die Basis B j aufgenommen wird, müssen
wegen Bland’s rule die reduzierten Kosten aller weiteren Elemente in J nicht-positiv sein, denn t ist
der größte Index in J . Speziell gilt dies für das Element s := fi , welches in die Basis aufgenommen
wird, wenn t die Basis verlässt. Wir haben also
cs − c

B A− 1 A
j

.B

.s ≤ 0 .

(8.2)

j

Als s in die Basis Bi aufgenommen wurde, waren seine reduzierten Kosten natürlich positiv, also
cs − c

B A− 1 A
i

.B

.s > 0 .

(8.3)

i

Subtrahieren wir (8.3) von (8.2) erhalten wir
c

B A− 1 A

A− 1 A
i

.B

.s − c

.s < 0 .

(8.4)

i

B j .B j

Bei der Wahl des basisverlassenden Elementes kommen jeweils nur die Elemente k mit ( A− 1 b)

.B
k = 0
in Betracht. Dies ist insbesondere für alle k ∈ J erfüllt. Wenn t = ei die Basis verlässt, muss also
wegen Anwendung von Bland’s rule ( A− 1 A

.B

.s) k ≤ 0 f ür alle k ∈ Bi ∩ ( J \ {t}) sein. In der folgenden
i

Rechnung teilen wir Bi auf in {t} ∪ ( Bi ∩ ( J \ {t})) ∪ ( Bi \ J). Da ferner Bi \ J ⊆ B j und somit

Bi \ J = Bi ∩ B j ist, also diese Elemente in beiden Fällen Basiselemente sind, erhalten wir folgende

Rechnung. Der Übersichtlichkeit wegen listen wir die Argumente für die Ungleichungen hinterher
nochmal auf.

8.6. Bemerkungen zur Numerik

221
c

−

B A− 1 A

A− 1 A
c A− 1 A

) A− 1 A
i

.B

.s − c

.s = ( c

.B

.s
i

B j .B j

Bi

B j .B j
i

.Bi

= ( ct − c

B A− 1 A

( A− 1 A

(8.5)

j

.B
t )

.s) t
j

.Bi

> 0

> 0

+ ( c

− c A− 1 A

( A− 1 A

(8.6)

B

.s)

i∩( J\{t})

B j .B j .,Bi∩( J\{t}))

.Bi

Bi∩( J\{t})

≤ 0

≤ 0

+ ( c

−

B
c A− 1 A

)( A

A

(8.7)

i∩B j

B j .B

.,B

.B

.s) B
j
i∩B j

i
i∩B j

=0

> 0

(8.8)

In (8.5) gilt die linke Ungleichung, weil t = f j positive reduzierte Kosten hat und die rechte, weil
t = ei am Minimum-Ratio-Test teilgenommen hat. In (8.6) gilt die linke Ungleichung, weil t = f j
als größtes Element in J gewählt wurde und die rechte, nach der Wahl der Zeile, wenn t = ei die

Basis verlässt. In (8.7) gilt die Gleichung, weil die reduzierten Kosten von Basiselementen Null sind.

Dieses Ergebnis steht aber im Widerspruch zu (8.4), also war unsere Annahme falsch, dass es einen

Zykel geben kann und der Satz ist bewiesen.

2

Damit können wir nun Endlichkeit und Korrektheit des Simplexverfahrens beweisen:

Satz 8.23 (Korrektheit des Simplexverfahrens).

a) Bei Anwendung von Bland’s rule stoppt das Simplexverfahren nach endlich vielen Schritten.

b) Wenn das Simplexverfahren stoppt, und c − cA− 1 A ≤ 0 ist, so ist das Problem unbeschränkt,

B

.B
andernfalls ist B eine optimale Basis.

Beweis. Es gibt nur endlich viele Basen, nämlich nach Proposition 2.5 höchstens n viele. Wegen
m

Satz 8.22 und Lemma 8.3 wird jede Basis höchstens einmal besucht. Die while-Schleife wird also

höchstens n -mal durchlaufen, also terminiert das Verfahren nach endlich vielen Schritten.

m

Wenn das Simplexverfahren stoppt und c − cA− 1 A ≤ 0 ist, so war in der Zeilenwahl bei der

B

.B

Minimumbestimmung die Menge leer. Dann aber ist das Problem nach Lemma 8.4 unbeschränkt.

Andernfalls ist die gegenwärtige zulässige Basislösung x nach dem Optimalitätskriterium in Propo-
sition 8.1 eine Optimallösung des linearen Programms.

2

Für den Beweis von Satz 8.9 fehlt nun nur noch die Aussage, dass ein zulässiges Programm auch
stets eine zulässige Basis hat. Denn dann folgt, dass es entweder eine optimale Basis besitzt oder,
dass im zulässigen Bereich ein Strahl existiert, der über alle Grenzen wächst.

8.6 Bemerkungen zur Numerik

Wie wir bereits zu Beginn dieses Kapitels erwähnt hatten, ist es nicht-trivial, einen numerisch
stabilen LP-Code zu schreiben (LP steht hier für Lineare Programmierung). Es gibt im Netz eine
lange Liste von Standardbeispielen, die gängige numerische Schwächen von Codes testen. Wir
wollen hier mit ein paar Bemerkungen Probleme und Möglichkeiten der LP-Numerik anreißen.

222

Kapitel 8. Lineare Optimierung

Bei einer Implementierung wird man natürlich nicht das ganze Tableau abspeichern. Für die Ba-
sisspalten genügt es, ihre Nummern zu kennen, da sie nur die Einheitsmatrix enthalten (genauer
sollte man sich die zugehörige Permutation merken). Das ergibt allerdings zusätzlichen Buchhal-
tungsaufwand, den wir uns hier sparen.

In der Praxis hat man es häufig mit dünnbesetzten Matrizen zu tun, das sind solche, bei denen die
meisten Einträge Null sind. Hier setzt man (wie auch schon in der numerischen linearen Algebra)

sparse matrix“-Techniken ein.

”

Üblicherweise wird man auch weder stets neu A− 1 noch das Tableau berechnen. Beim Basis-

.B
wechsel von B nach B geht nach Abschnitt 5.6 A− 1

.B durch Multiplikation mit einer η -Matrix
aus A− 1

.B hervor. Außerdem ben ötigt man zur Auswahl der nächsten Basis nur die reduzierten Kos-
ten und die Daten der Pivotspalte. Also genügt es z. B., solange Einträge der reduzierten Kosten
zu berechnen, bis man einen positiven Eintrag gefunden hat. Dieses partial pivoting hatten wir im

Zusammenhang mit den Pivotregeln schon mal erwähnt. Dann berechnet man die Einträge in der

Pivotspalte zur Wahl der Pivotzeile, ändert die Basis und die Inverse. Dieses Vorgehen ist auch als
revidierter Simplex-Algorithmus bekannt. Es empfiehlt sich, wegen der Fehlerfortpflanzung bei der

Matrixmultiplikation hin und wieder eine volle Matrixinversion durchzuführen.

8.7 Die Zweiphasenmethode

Wir haben beim Simplexverfahren vorausgesetzt, dass A vollen Rang hat und dass wir eine zulässige

Startbasis kennen. Dies wird im Allgemeinen nicht der Fall sein. Wir können aber ein Hilfsproblem
formulieren, das diese Voraussetzung erfüllt und dessen Optimallösung entweder beweist, dass das

Ausgangsproblem keine zulässige Basis hat, oder eine solche liefert.

Unser Standardproblem lautet
max cx

( P)

unter Ax = b
x ≥ 0
mit einer beliebigen Matrix A ∈ R m×n und b ∈ R m . Zunächst einmal können wir davon ausgehen,
dass b ≥ 0 ist. Dies können wir stets erreichen, indem wir Gleichungen, in denen diese Bedingung
verletzt ist, mit − 1 multiplizieren. Wenn wir nun jeder Gleichung eine künstliche Schlupfvariable
spendieren, erhalten wir sofort eine zulässige Basis, denn unsere Bedingung lautet nun

x

Ax + y = ( A, Im)

= b.

y

Die Matrix ( A, Im) hat offensichtlich vollen Rang und die Spalten der Einheitsmatrix beim künst-
lichen Schlupf liefern eine zulässige Basis. Die Idee des Hilfsproblems ist es nun, die Summe der

Werte der künstlichen Schlupfvariablen zu minimieren. Wenn das Ausgangsprogramm eine zulässi-
ge Lösung besitzt, wird dieses Minimum Null sein. Umgekehrt liefert uns eine Lösung des Hilfspro-
blems, wenn der Optimalwert des Hilfsproblems Null ist und wir die künstlichen Schlupfvariablen
vergessen, eine zulässige Lösung des Ausgangsproblems.

Das zugehörige Hilfsproblem lautet also:

8.7. Die Zweiphasenmethode

223
m
max − ∑ yi
i=1

( H)

unter Ax + y = b
x, y ≥ 0
mit Startbasis B = {n + 1 , . . . , m + n}.

Unsere Vorüberlegungen fassen wir in der folgenden Proposition zusammen:

Proposition 8.5. a) ( A, Im) hat vollen Rang und B ist zulässige Startbasis.

b) Ist der optimale Zielfunktionswert von ( H) ungleich 0 , so ist ( P) unzulässig.

c) Ist ( x, 0) eine optimale Basislösung zur Basis B ⊆ { 1 , . . . , n} für ( H) , so ist x zulässige Ba-
sislösung zur Basis B für ( P) und A hat vollen Rang.

Beweis.

a) Da ( A, Im) eine Einheitsmatrix enthält, hat die Matrix vollen Rang und die Einheitsmatrix liefert
eine Basis, die zulässig ist, da wir b ≥ 0 vorausgesetzt hatten.

b) Wenn x zulässig für ( P) ist, so ist ( x, 0) sicherlich zulässig für ( H) . Da der Zielfunktionswert
von ( x, 0) bzgl. ( H) 0 ist, kann das Maximum nicht kleiner als Null sein. Da andererseits aber
auch y ≥ 0 gilt, kann das Maximum auch nicht größer sein.

c) Da wir eine Basis in den Indizes der echten Variablen gefunden haben, hatte die Ausgangsmatrix
vollen Rang und B ist eine ihrer Basen. Da alle künstlichen Variablen als Nichtbasiselemente
auf Null gesetzt werden, erfüllt die zugehörige Basislösung Ax = b . Da ( x, 0) zulässig für das

Hilfsproblem ist, ist x ≥ 0, also ist B zulässige Basis des Ausgangsproblems.

2

Wenn man nun nach Lösen des Hilfsproblems (wir sprechen von Phase I) einen Zielfunktionswert

0 erreicht hat, aber noch eine künstliche Schlupfvariable yi in der Basis ist, so können wir diese
gegen ein beliebiges Element xk, k ∈ { 1 , . . . , n} mit ( A− 1

.B A.k) i = 0 austauschen, denn mit B :=

( B ∪ {k}) \ {n + i} haben wir, wenn wir ˜

A := A− 1

.B A setzen

A− 1

.B = η A− 1

.B
mit
i

⎛

⎞

1

0

. . .

− ˜ a 1 k ... 0

⎜

˜
aik

⎜

⎟

⎜ 0 1 ... − ˜ a 2 k ... 0⎟

⎜

˜
aik

⎟

⎜ .

⎟

.

.. ..

.

.

.

.

. ⎟
η

⎜ . .

.

. ⎟

=

⎜

⎟ .

i ⎜

⎜ 0 0 ...

1

. . .

0 ⎟

˜
a

⎜
ik

⎟

⎜ . .

.

.

. ⎟

⎝ .. ..

..

. . .. ⎟

⎠

0

0

. . .

− ˜ amk ... 1

˜
aik

Also ist auch B eine Basis. Außerdem ist ( A− 1

.B b) i = 0 , also A− 1

.B b = η A− 1

.B b = A− 1

.B b . Die Ba-
sislösung ändert sich also nicht.

Im Tableau sieht das so aus: Da im Optimum der Zielfunktionswert Null ist, aber noch eine
künstliche Variable in der Basis ist, hat diese in der Basislösung den Wert Null. Wenn wir nun in den

224

Kapitel 8. Lineare Optimierung
echten Variablen in der zugehörigen Zeile einen Eintrag verschieden von Null finden, so können wir
auf diesem pivotieren, ohne die Basislösung zu verändern.

Abschließend müssen wir noch den Fall untersuchen, dass wir noch eine künstliche Variable y j
in der Basis haben, aber in der entsprechenden Zeile i im Tableau alle Einträge zu echten Variablen

Null sind. Wir haben also in den echten Variablen die Zeile

( A− 1

.B ) i. ( A, b) = (0 , . . . , 0) .

Diese Zeile kann dann gestrichen werden. Da wir soeben eine nicht-triviale Linearkombination
der Null angegeben haben, sind die Zeilen von ( A, b) linear abhängig. Wir werden nun noch
nachrechnen, dass die j -te Zeile redundant war. Sei dazu die künstliche Schlupfvariable y j das
i -te Basiselement. Im Ausgangstableau gehörte dann zu der Variable y j der Spaltenvektor e j und
im gegenwärtigen Tableau die Spalte ei . Also haben wir

( A− 1

.B ) e j = ei.

Hieraus schließen wir

( A− 1

.B ) i j = 1 .

Da

( A− 1

.B ) i. ( A, b) = (0 , . . . , 0)

eine nicht-triviale Linearkombination der Null ist, in der der Koeffizient der j -ten Zeile verschieden
von Null ist, ist die j -te Zeile von ( A, b) eine Linearkombination der übrigen Zeilen. Da nur

Äquivalenzumformungen durchgeführt wurden, hat die transformierte Matrix, aus der die Nullzeile
gestrichen wurde, den gleichen Rang, definiert also ein äquivalentes Gleichungssystem.

Iteriert man diese Vorgehensweise, so endet man mit einer regulären Matrix ˆ

A und einer Basis, die
keine künstliche Variable mehr enthält. Nun kann man die künstlichen Variablen mit ihren Spalten
streichen und den Simplexalgorithmus bzgl. der Originalzielfunktion starten.

Wir erhalten also folgenden schematischen Ablauf:

Eingabedaten:

A ∈ R m×n, b ∈ R m, b ≥ 0, partielle zulässige Basis B (eventuell leer), c ∈ R n .

Phase 1a:

Ergänze B durch künstliche Schlupfvariablen zu einer vollen Basis, und minimiere die

Summe der künstlichen Schlupfvariablen mit dem Simplexalgorithmus. Falls der Optimalwert
nicht Null ist: STOP. Das Problem ist unzulässig. Ansonsten:

Phase 1b:

Enthält die optimale Basis noch künstliche Variablen, pivotiere sie hinaus. Ist dies nicht
möglich, streiche die zugehörige Zeile, Spalte und das Basiselement.

Phase 1c:

Streiche alle Spalten künstlicher Schlupfvariablen.

Phase 2:

Optimiere das Originalproblem mit dem Simplexverfahren.

Beispiel 8.24. Wir betrachten folgendes Lineare Programm
max − 3 x 1 + 2 x 2 + 2 x 3 − 4 x 4 − 2 x 5
unter − 2 x 1 + x 2 + x 3

+ x 5 = 3

− 2 x 1 + x 2

+ x 4

= 2
x 1 + x 2

+ x 4

= 7
x 1 , x 2 , x 3 , x 4 , x 5 ≥ 0

8.7. Die Zweiphasenmethode

225

Als erste Basisvariable können wir x 3 oder x 5 wählen. Für die zweite und dritte Gleichung
brauchen wir künstliche Schlupfvariablen. Das Hilfsproblem lautet dann:

max

−y 1 − y 2
unter

− 2 x 1 + x 2 + x 3

+ x 5

= 3

− 2 x 1 + x 2

+ x 4

+
y 1

= 2
x 1 + x 2

+ x 4

+ y 2 = 7
x 1 , x 2 , x 3 , x 4 , x 5 , y 1 , y 2 ≥ 0

Wir erhalten also zunächst folgendes Tableau:

0 0 0

0

0 − 1 − 1 0

− 3 2 2 − 4 − 2 0 0 0

− 2 1 1 0 1 0 0 3

− 2 1 0 1 0 1 0 2

1 1 0

1

0

0

1 7 .

In der Kopfzeile stehen noch nicht die reduzierten Kosten. Diese erhalten wir durch Pivotoperationen
auf den Spalten der Basis, d. h. wir addieren die letzten beiden Zeilen zur Kopfzeile. Mit den
richtigen reduzierten Kosten lautet unser Starttableau:

− 1 2 0 2 0 0 0 9

− 7 4 4 − 4 0 0 0 6

− 2 1 1 0 1 0 0 3

− 2 1 0 1 0 1 0 2

1

1 0

1 0 0 1 7 .

Als Pivotspalte bezüglich unserer Hilfszielfunktion wählen wir die zweite – eine Alternative wäre die
vierte. Der Minimum-Ratio-Test liefert als Pivotzeile die zweite. Indem wir also den Simplexalgo-
rithmus bzgl. der Hilfszielfunktion durchführen, erhalten wir die folgenden Tableaus. Dabei trans-
formieren wir die echte Zielfunktion immer direkt mit, damit wir später deren reduzierte Kosten
nicht neu berechnen müssen.

3 0 0

0 0 − 2 0

5

0 0

0

0 0

− 1 − 1

0

1 0 4 − 8 0 − 4 0 − 2

0 0

4 − 8 0 − 11 − 1 − 11

3

3

3

0 0 1 − 1 1 − 1 0

1

0 0

1

− 1 1 − 1

0

1

− 2 1 0

1 0

1 0

2

0 1

0

1 0

1

2

16

3

3

3

3

0 0

0 0 − 1 1

5

1 0

0

0 0

− 1

1

5 .

3

3

3

Beim letzten Tableau hat die künstliche Zielfunktion den Wert Null und man hat mit ( 5 , 16 , 1 , 0 , 0)

3

3
eine zulässige Basislösung zur Basis B = { 1 , 2 , 3 } gefunden. Nun kann man die künstliche Ziel-
funktion sowie die künstlichen Variablen streichen und erhält nach einer weiteren Pivotoperation
das Tableau

0 0 0 − 4 − 4 − 23

3

0 0 1 − 1

1

1

0 1 0

1

0

16

3

1 0 0

0

0

5 ,

3

226

Kapitel 8. Lineare Optimierung
welches hier zufälligerweise auch schon gleich ein optimales Tableau bzgl. unserer eigentlichen

Aufgabenstellung ist.

Wir haben nebenbei in diesem Kapitel insgesamt auch noch folgenden Satz gezeigt:

Satz 8.25. Wenn ein lineares Programm in Standardform zulässig und beschränkt ist, so wird das

Optimum an einer Ecke angenommen.

Beweis. Ist das Programm zulässig, so findet man in Phase 1 eine zulässige Ecke. In Phase 2
terminiert der Simplexalgorithmus, da das Programm beschränkt ist, in einer optimalen Ecke. Also
wird das Optimum an einer Ecke angenommen.

2

Darüber hinaus haben wir auch endlich den Beweis von Satz 8.9 komplettiert, da wir gezeigt
haben, dass ein zulässiges Programm stets eine zulässige Ecke besitzt.

Aufgabe 8.26. Lösen Sie das folgende lineare Optimierungsproblem mit dem Simplexalgorithmus:

max x 1
unter 3 x 1 + 5 x 2 + 3 x 3 + 2 x 4 + x 5 + 2 x 6 +
x 7 = 3

4 x 1 + 6 x 2 + 5 x 3 + 3 x 4 + 5 x 5 + 5 x 6 + 6 x 7 = 11

2 x 1 + 4 x 2 + x 3 + x 4 − 3 x 5 − x 6 − 4 x 7 = 1
x 1 + x 2 + 2 x 3 + x 4 + 4 x 5 + 3 x 6 + 5 x 7 = 5
x 1 , x 2 , x 3 , x 4 , x 5 , x 6 , x 7 ≥ 0 .

Lösung siehe Lösung 9.91.

8.8 Sensitivitätsanalyse

Anhand des optimalen Tableaus kann man verschiedene Informationen über Änderungen der Lösung
bei Änderung der Eingangsdaten herleiten. In der Planung ist es oft hilfreich, in Was-wäre-wenn“-

”

Szenarien diese Informationen zu berücksichtigen. Wir wollen dies anhand zweier Beispiele disku-
tieren.

Beispiel 8.27. Angenommen in dem Beispiel der Düngemittelfabrik (8.5) erfände ein Chemiker
eine neue Formel für einen Dünger C , der als Rohstoffvektor A. 3 = (3 , 2 , 2) pro Tonne benötigt.

Wie teuer muss das Unternehmen das Produkt absetzen können, damit die Produktion nach dieser

Formel sich lohnt? Dann ändert sich unser lineares Programm, abgesehen von dem unbekannten

Verkaufspreis, zu
max 30 x 1 + 20 x 2 + ?? x 3
unter 2 x 1 +
x 2 + 3 x 3 ≤ 1500
x 1 +
x 2 + 2 x 3 ≤ 1200
x 1

+ 2 x 3 ≤ 500
x 1 , x 2 , x 3 ≥

0 .

Anstatt das lineare Programm von vorne zu lösen, können wir einfach ausnutzen, dass die
reduzierten Kosten bzgl. der optimalen Basis des Originalproblems {x 1 , x 2 , y 3 } auch für die neue

8.8. Sensitivitätsanalyse

227

Variable leicht zu berechnen sind, nämlich c 3 −cA− 1 A

B

.B

. 3 sind. Damit eine Aufnahme dieses Vektors
in die Basis eine echte Verbesserung bringt, muss also

⎛ ⎞

3

⎜ ⎟
c 3 > (10 , 10 , 0) ⎝ 2 ⎠

2

= 50
sein (siehe auch letztes Tableau von Beispiel 8.18). Anhand der reduzierten Kosten kann man also

Auswirkungen bei Einführung einer neuen Variablen studieren. Außerdem ist offensichtlich die

Optimallösung bei Änderungen der Kostenfunktion in der Nichtbasis desto sensibler, je geringer
die reduzierten Kosten sind.

Als Zweites wollen wir noch kurz die Sensitivität gegenüber Änderungen der rechten Seite
anreißen. Offensichtlich bleibt, da sich die reduzierten Kosten nicht ändern, eine Basis optimal gegen

Änderungen der rechten Seite um einen Vektor ε , solange A− 1( b + ε) ≥ 0 ist. Aus dieser Beziehung

.B
kann man für die rechte Seite obere und untere Schranken ausrechnen. Standardpakete für die lineare

Programmierung bieten oft Werkzeuge für eine Sensitivitätsanalyse an.

Kapitel 9

Lösungsvorschläge zu den ¨

Ubungen

9.1 Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 1

L ösung 9.1 (zu Aufgabe 1.1). Die Zuordnungsvorschriften f 1 und f 4 sind nicht definiert, da etwa
f 1( − 1) = − 2 ∈ N und f 4( − 1) = − 1 ∈ Z. Hingegen sind f

2

2 , f 3 , f 5 Abbildungen.

f 2 ist injektiv, da 2 k = 2 k ⇒ k = k , aber nicht surjektiv, da etwa 1 kein Urbild hat.

f 3 und f 5 sind injektiv (analog zu eben) und surjektiv, also bijektiv, und sogar zueinander invers,
d. h. es gilt f 5 = f − 1 .

3

L ösung 9.2 (zu Aufgabe 1.2).

a) Wir haben zu zeigen, dass f surjektiv ist, also ∀n ∈ N ∃m ∈ M : f ( m) = n. Sei dazu n ∈ N
beliebig, aber fest vorgegeben. Nach Voraussetzung ist f ◦ g surjektiv, d. h. es gibt ein l ∈ L mit

( f ◦ g)( l) = n. Setzen wir dann m = g( l) ∈ M , so ist f ( m) = n, also ein Urbild für n unter f gefunden.

b) Wir haben zu zeigen, dass g injektiv ist, also ∀l, l ∈ L : g( l) = g( l) ⇒ l = l . Ist nun g( l) = g( l), so folgt aus der Abbildungseigenschaft von f , dass auch f ( g( l)) = f ( g( l)) , also ( f ◦ g)( l) =

( f ◦ g)( l). Da nach Voraussetzung f ◦ g injektiv ist, impliziert dies l = l .

c) Sei g 1 : { 1 , 2 } → { 1 , 2 } die Abbildung konstant 1, also g 1(1) = g 1(2) = 1 und f 1 : { 1 , 2 } → { 1 }

ebenfalls die Abbildung konstant 1, dann sind f 1 ◦ g 1 und f 1 surjektiv, aber g 1 ist nicht surjektiv.

Sei g 2 : { 1 } → { 1 } die identische Abbildung und f 2 = f 1 : { 1 , 2 } → { 1 } die Abbildung konstant 1. Dann sind g 2 und f 2 ◦ g 2 injektiv, aber f 2 nicht.

L ösung 9.3 (zu Aufgabe 1.3).

vi

( n

(

2 − 2) π
n 1 − 2) π
vj

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

229

DOI 10.1007/978-3-642-05422-8 9, c

Springer-Verlag Berlin Heidelberg 2010

230

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

Wir führen vollständige Induktion über n ≥ 3. Dass die Winkelsumme im Dreieck 180 ◦ ˆ

=π ist,
setzen wir als bekannt voraus. Sei also n ≥ 4. Dann gibt es zwei Ecken vi, v j , die nicht benachbart
sind. Die Verbindungsstrecke von v 1 nach v 2 zerlegt das n-Eck in ein n 1 - und ein n 2 -Eck, wobei
ohne Einschränkung n 1 ≤ n 2 sei, mit 3 ≤ n 1 ≤ n 2 ≤ n − 1, so dass
n = n 1 + n 2 − 2
ist. Die Winkelsumme des n -Ecks ist dann die Summe der Winkelsummen des n 1 - und des n 2 -Ecks.

Nach Induktionsvoraussetzung erhalten wir also als Winkelsumme

( n 1 − 2)π + ( n 2 − 2)π = (( n 1 + n 2 − 2) − 2) π = ( n − 2)π ˆ

=( n − 2)180 ◦.

L ösung 9.4 (zu Aufgabe 1.4).

9.2. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 2

231

9.2 Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 2

L ösung 9.5 (zu Aufgabe 2.5). Ist ( C 1 ,C 2) eine signierte Teilmenge, so definiert diese eindeutig eine
signierte charakteristische Funktion. Umgekehrt haben wir für jede Abbildung f : X → { 0 , 1 , − 1 }

genau eine signierte Teilmenge, deren signierte charakteristische Funktion gleich f ist. Die Anzahl
der signierten Teilmengen von X ist also gleich der Anzahl der Abbildungen von X in eine 3-
elementige Menge, also nach Proposition 2.1 gleich 3 |X| .

L ösung 9.6 (zu Aufgabe 2.6). Nach Proposition 2.4 lässt sich jede Permutation in paarweise disjunkte

Zyklen zerlegen. Es genügt also, die Aufgabe für Permutationen zu zeigen, die bis auf Fixpunkte nur
einen Zyklus a 1 a 2 . . . ak haben. Wir identifizieren im Folgenden diesen Zyklus mit der zugehörigen

Permutation.

Sei dann τ i für i = 2 , . . . , k die Transposition, welche a 1 mit ai vertauscht, also τ i = a 1 ai. Wir zeigen nun mittels vollständiger Induktion über k ≥ l ≥ 2:

τ l ◦ τ l− 1 ◦...◦τ2 = a 1 a 2 ...al.

Dies ist offensichtlich richtig für l = 2 . Sei also nun k ≥ l > 2. Induktionsvoraussetzung ist dann
τ l− 1 ◦τ l− 2 ◦...◦τ2 = a 1 a 2 ...al− 1 .

Wir haben also noch zu zeigen, dass
a 1 al ◦ a 1 a 2 ...al− 1 = a 1 a 2 ...al.

Ist a ∈ {a 1 , . . . , al}, so ist a offensichtlich sowohl ein Fixpunkt der Abbildung auf der linken als
auch ein Fixpunkt der Abbildung auf der rechten Seite. Es genügt also die Wirkung der Abbildung
auf a j, 1 ≤ j ≤ l zu betrachten.

⎧

⎪

⎨ a 1 al( aj+1) = aj+1
falls 1 ≤ j ≤ l − 2
a 1 al ◦ a 1 a 2 ...al− 1 ( aj) = ⎪ a

⎩ 1 al( a 1) = al = aj+1 falls j = l − 1
a 1 al( al) = a 1
falls j = l.

In allen drei Fällen ist dies aber gleich a 1 a 2 . . . al( a j).

L ösung 9.7 (zu Aufgabe 2.13). Ist b = 0 , so ist der einzige von Null verschiedene Summand

n an 0 n−n = an . Sei also b = 0. Dann berechnen wir
n

a
n

( a + b) n

=
b

+ 1
b

a n

=
bn 1 + b

n

Satz 2.9
n
a k

=
bn ∑ k
b
k=0

n
n ak

=

∑
bn
k bk
k=0
n
n

=

∑
akbn−k.

k
k=0

232

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

L ösung 9.8 (zu Aufgabe 2.14).

a) Wir geben hier sowohl eine numerische als auch eine kombinatorische Lösung an. Zunächst
berechnen wir

n
k
n!

=

·
k!

k
i
k!( n − k)! i!( k − i)!

n!

= i!( n−k)!( k−i)!

n!

=

·

( n − i)!

( n − i)! i! ( n − k)!( k − i)!

n!

=

·

( n − i)!

( n − i)! i! ( n − i − ( k − i))!( k − i)!

n
n − i

=

.

i
k − i

Kombinatorisch ziehen wir auf der linken Seite k Kugeln aus n , von denen wir wiederum i
auswählen und besonders markieren. Rechts ziehen wir erst die i zu markierenden aus der Urne
und wählen dann aus den übrigen n − i Kugeln die k − i unmarkierten aus.

b) Ist n = 0 , so behauptet die Formel 0 = 0 , ist also richtig, sei also n ≥ 1. Sei X eine n-elementige

Menge. Wir betrachten die Summe auf der linken Seite als Addition gewichteter Teilmengen von

X , wobei jede Teilmenge mit der Anzahl ihrer Elemente gezählt wird. Wir paaren in der Menge
der Teilmengen nun jeweils eine Teilmenge Y ⊆ X mit ihrem Komplement X \Y . So erhalten wir
insgesamt 2 n/ 2 = 2 n− 1 Paare. Jedes Paar trägt nun das Gewicht |Y | + |X \Y | = |X| = n, woraus
die Behauptung folgt.

Auch hier wollen wir zusätzlich einen Induktionsbeweis durchführen. Der Rechenaufwand ist
aber nicht unbeträchtlich. Die einzelnen Umformungen erläutern wir hinterher noch einmal.

9.2. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 2

233

n
n− 1

∑ n
n
j

= n + ∑ j
j
j
j=1
j=1

n− 1

(2.9)

n − 1
n − 1

= n + ∑ j

+
j − 1
j
j=1

n− 1
n − 1
n− 1
n − 1
n− 1
n − 1

= n + ∑

+ ∑ ( j − 1)

+ ∑ j
j − 1
j − 1
j
j=1
j=1
j=1

n− 2
n − 1
n− 2
n − 1
n− 1
n − 1

= n + ∑

+ ∑ j

+ ∑ j
j
j
j
j=0
j=1
j=1

n− 1
n − 1
n− 2
n − 1
n− 1
n − 1

= n − 1 + ∑

+ ∑ j

+ ∑ j
j
j − 1
j
j=0
j=1
j=1

n− 2
n− 1

(2.11)

n − 1
n − 1

= n − 1 + 2 n− 1 + ∑ j

+ ∑ j
j
j
j=1
j=1

n− 1
n − 1
n− 1
n − 1

= n − 1 + 2 n− 1 + ∑ j

− ( n − 1) + ∑ j
j
j
j=1
j=1

n− 1
n − 1

= 2 n− 1 + 2 ∑ j
j
j=1

IV

= 2 n− 1 + 2( n − 1)2 n− 2

= 2 n− 1 + ( n − 1)2 n− 1 = n 2 n− 1 .

In der ersten Gleichung haben wir nur den obersten Summanden abgespalten, in der zweiten be-
nutzen wir Gleichung (2.9) aus Proposition 2.6. Für die dritte Gleichung multiplizieren wir aus

und spalten auf j n− 1 = n− 1 + ( j − 1) n− 1 . Die nächste Gleichung beinhaltet zwei Indexver-
j− 1
j− 1
j− 1
schiebungen. In der fünften Gleichung ergänzen wir den obersten Summanden der ersten Summe,
welcher gleich 1 ist, und ziehen ihn direkt wieder ab. Als nächstes benutzen wir Korollar 2.11. Die
nächste verbleibende Summe wird nun um ein oberstes Element ergänzt, das wir sofort wieder
abziehen. In der achten Gleichung heben sich die n − 1 weg, und wir fassen die beiden Sum-
men zusammen. Nun wenden wir die Induktionsvoraussetzung an und sind nach zwei weiteren

Termumformungen fertig.

L ösung 9.9 (zu Aufgabe 2.15). Für (2.13) berechnen wir

m
m

∑
n − 1

( n − 1)!

= ∑
k
k
i=1

1 , . . . , ki− 1 , ki − 1 , ki+1 , . . . , km
i=1 1! . . . ki− 1!( ki − 1)! ki+1! . . . km!

m

( n − 1)! ki

= ∑ k
i=1 1! . . . ki− 1! ki! ki+1! . . . km!

( n − 1)! m

=

∑ ki
k 1! . . . km! i=1
n( n − 1)!

= k 1! ...km!

n

=

.

k 1 , . . . , km

234

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

Kommen wir also nun zu (2.14)

n

( x 1 + x 2 + . . . + xm) n =

∑
xk 1 xk 2 . . . xkm
k

1

2
m .

k

1 , k 2 , . . . , km

1+ ... + km= n
k 1 ,...,km≥ 0

Wir beweisen den Satz mittels vollständiger Induktion über n analog zum Beweis des Binomialsat-
zes.

( x 1 + x 2 + . . . + xm) n = ( x 1 + x 2 + . . . + xm)( x 1 + x 2 + . . . + xm) n− 1

m

IV
n − 1

=

∑ xi

∑
xk 1 xk 2 . . . xkm
k

1

2
m
i=1
k

1 , k 2 , . . . , km

1+ ... + km= n− 1
k 1 ,...,km≥ 0

m
n − 1

= ∑

∑
xi
xk 1 xk 2 . . . xkm
k

1

2
m .

i=1 k

1 , k 2 , . . . , km

1+ ... + km= n− 1
k 1 ,...,km≥ 0

Für festes ( k 1 , . . . , km) ∈ N m mit ∑ m

. . .

i=1 ki = n untersuchen wir nun den Koeffizienten von xk 1 xk 2
xkm

1

2
m .

Dieser Ausdruck entsteht in der obigen Summe für festes i aus

n − 1
k
k
x
i− 1
i+1
i
xk 1 . . . x
xki− 1 x

. . . xkm
k

1
i− 1 i
i+1
m .

1 , . . . , ki− 1 , ki − 1 , ki+1 . . . km

Also erhalten wir als Gesamtkoeffizienten für xk 1 xk 2 . . . xkm

1

2
m

m

∑
n − 1

(2.13)

n

=
k
k
i=1

1 , . . . , ki− 1 , ki − 1 , ki+1 . . . km

1 , . . . , km
und somit ingesamt (2.14).

L ösung 9.10 (zu Aufgabe 2.20). Die Anzahl der Lottokombinationen in Italien wäre dann

90

90 · 89 · 88 · 87 · 86

=

5

5!

und in Deutschland

49

49 · 48 · 47 · 46 · 45 · 44

=

.

6

6!

Also wollen wir folgende Größe abschätzen

90

5

6 · 90 · 89 · 88 · 87 · 86

=

49

49 · 48 · 47 · 46 · 45 · 44

6

6 · 2 · 89 · 2 · 87 · 86

=

49 · 48 · 47 · 46

89 · 87 · 86

= 49 · 2 · 47 · 46

1

9 3

729

>

=

= 2 . 916 .

2

5

250

Als obere Abschätzung erhalten wir

89 · 87 · 86 ≤ 85 · 85 · 85

173

173

17

=

=

≤ 17 · 289 =

= 3 . 4 .

2 · 49 · 47 · 46

2 · 45 · 45 · 45

2 · 729

1458

1445

5

9.2. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 2

235

Also ist die Anzahl etwa dreimal so hoch.

Der Einsatz eines Taschenrechners liefert:

90

5

≈ 3 . 1428665823406141 .

49

6

L ösung 9.11 (zu Aufgabe 2.26). Wir bezeichnen mit A 2 , A 3 , A 5 die Menge der durch 2 , 3 bzw. 5
teilbaren Zahlen zwischen 1 und 100. Die gesuchte Zahl ist dann |A 2 ∪ A 3 ∪ A 5 |. Zunächst ist
offensichtlich

|A 2 | = 50 ,

|A 3 | = 33 ,

|A 5 | = 20 .

Zur Anwendung der Siebformel benötigen wir ferner

|A 6 | = |A 2 ∩ A 3 | = 16

|A 10 | = |A 2 ∩ A 5 | = 10

|A 15 | = |A 3 ∩ A 5 | = 6
sowie

|A 30 | = |A 2 ∩ A 3 ∩ A 5 | = 3 .

Eingesetzt in die Siebformel erhalten wir dann

|A 2 ∪ A 3 ∪ A 5 | = 50 + 33 + 20 − 16 − 10 − 6 + 3 = 74 .

L ösung 9.12 (zu Aufgabe 2.35).

K 3

K 1
a) p( B) = p( A) + p( B \ A) ≥ p( A).

b) Wir führen vollständige Induktion über k ≥ 1. Der Fall k = 1 ist offensichtlich richtig, der Fall
k = 2 ist das Axiom K 3 . Sei nun k ≥ 3. Dann ist
p( A 1 ˙ ∪ . . . ˙ ∪Ak) = p (( A 1 ˙ ∪ . . . ˙ ∪Ak− 1) ˙ ∪Ak))

K 3

= p ( A 1 ˙ ∪ . . . ˙ ∪Ak− 1) + p( Ak)

k− 1
k

IV

= ∑ p( Ai) + p( Ak) = ∑ p( Ai) .

i=1
i=1

K 2

K 3
d) 1 = p(Ω ) = p( A) + p(Ω \ A) ⇒ p( A) = 1 − p(Ω \ A).

i− 1

e) Wir setzen B 1 := A 1 und Bi = Ai \

A j
für i = 2 , . . . , k . Dann ist nach Konstruktion
j=1
k

k

Ai =

Bi
i=1
i=1
k

und die Bi partitionieren

Ai . Außerdem ist
i=1

Bi ⊆ Ai für i = 1 , . . . , k,
also nach a) auch p( Bi) ≤ p( Ai).

Damit berechnen wir

k

k
k
b)

p

Ai

= ∑ p( Bi) ≤ ∑ p( Ai) .

i=1
i=1
i=1

236

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

L ösung 9.13 (zu Aufgabe 2.36). Gehen wir davon aus, dass die Krankheit nicht von Baum zu Baum
übertragen wird, so können wir ein Zufallsexperiment annehmen, bei dem zufällig (gleichverteilt) 10

Bäume erkranken. Wir bestimmen nun die Wahrscheinlichkeit, dass diese nebeneinander stehen. Wir

haben insgesamt 50 mögliche Erkrankungsmuster. Davon bestehen 2 · 16 = 32 aus nebeneinander

10
stehenden Bäumen.

Unter Einsatz eines Taschenrechners finden wir

50

10

50 · 49 · 48 · 47 · 46 · 45 · 44 · 43 · 42 · 41

5 · 49 · 47 · 23 · 11 · 43 · 41

=

=

32

32 · 2 · 3 · 4 · 5 · 6 · 7 · 8 · 9 · 10

16

≈ 3 . 21 · 108 .

Die Wahrscheinlichkeit, dass zufällig 10 Bäume nebeneinander erkranken, beträgt also ≈ 3 . 12 ·

10 − 9 , was als äußerst unwahrscheinlich angesehen werden kann.

L ösung 9.14 (zu Aufgabe 2.37). Wir zählen unter allen Ereignissen von 2 m Münzwürfen diejenigen,

bei denen genau m -mal Zahl geworfen wird, dafür gibt es 2 m Möglichkeiten. Wir interessieren
m
uns also für den Quotienten

2 m
p( A
m
m) =

.

22 m

Aus (2.29) wissen wir

1

√ ≤ p( Am) ≤ 1

√

.

2 m

2 m

Also ist

1
p( Am) = Θ

√

.

m

Für eine genauere Analyse der Asymptotik benutzen wir die Stirlingsche Formel (2.26)

√

2 m

2 m

(2 m)!

2π2 m 2 m

1
m

=

∼
e

= √

.

22 m

( m!)222 m

2 m

2π m m

22 m
π m
e

Also ist
p( Am) ∼

1

√π .

m

L ösung 9.15 (zu Aufgabe 2.38). Als Erwartungswert haben wir

2 + 2 · 3 + 3 · 4 + 4 · 5 + 5 · 6 + 6 · 7 + 5 · 8 + 4 · 9 + 3 · 10 + 2 · 11 + 12

252

=

= 7

36

36
und als Varianz (beachte ( x − 7)2 = (7 − x)2 )

2(25 + 2 · 16 + 3 · 9 + 4 · 4 + 5 · 1)

210

35

5

=

=

= 5 .

36

36

6

6

L ösung 9.16 (zu Aufgabe 2.39). Hier können wir den ersten Beweis der Siebformel im Wesentlichen
abschreiben.

Wir führen vollständige Induktion über m ≥ 1: Im Falle m = 1 ist die Aussage trivial, nämlich
p( A 1) = p( A 1). Für n = 2 fällt die Siebformel mit Proposition 2.11 c) zusammen. Sei also n ≥ 3.

Dann ist

9.2. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 2

237

n

n− 1

n− 1

n− 1

p

Ai

= p An ∪

Ai

= p

Ai + p( An) − p

Ai ∩ An .

i=1
i=1
i=1
i=1

In der letzten Gleichung haben wir Proposition 2.11 c) benutzt. Nun wenden wir die Induktionsvor-
aussetzung an und erhalten:

n

n− 1

n− 1

p

Ai

= p

Ai + p( An) − p

( Ai ∩ An)

i=1
i=1
i=1

⎛

⎞
n− 1

IV ⎜

⎟

= ⎝ ∑ ( − 1) k− 1

∑
p

Ai ⎠ + p( An)

k=1

I∈( { 1 , 2 ,...,n− 1 })

i∈I
k

⎛

⎞
n− 1

− ∑( − 1) k− 1

∑
p ⎝ A ⎠
i
k=1

I∈( { 1 , 2 ,...,n− 1 })

i∈I∪{n}

k

⎛

⎞

⎜ n− 1

⎟

= ⎝ ∑ ( − 1) k− 1

∑
p

Ai ⎠ + p( An)

k=1

I∈( { 1 , 2 ,...,n− 1 })

i∈I
k

n

+ ∑( − 1) k− 1

∑
p

Ai .

k=2
n∈I∈( { 1 , 2 ,...,n− 1 ,n})

i∈I
k

In der ersten Summe treten alle Teilmengen von { 1 , . . . , n} auf, die n nicht enthalten, dahinter
alle, die n enthalten. Die Vorzeichen sind richtig, also ist die Behauptung bewiesen.

238

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

9.3 Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 3

L ösung 9.17 (zu Aufgabe 3.4). Wir haben zu zeigen, dass die Relation transitiv, symmetrisch und
reflexiv ist.

Reflexivität:

Wir setzen Q = In als Einheitsmatrix. Dann ist Q regulär, Q− 1 = In und für jede
n × n-Matrix A gilt

A = InAIn = Q− 1 AQ.

Also gilt für alle A ∈ M : ARA. Somit ist die Relation reflexiv.

Symmetrie:

Seien also A, B ∈ M mit ARB und Q eine reguläre Matrix mit A = Q− 1 BQ. Wir
setzen ˜

Q = Q− 1 . Dann ist ˜

Q− 1 regulär mit ˜

Q− 1 = ( Q− 1) − 1 = Q und

˜

Q− 1 A ˜

Q = QAQ− 1 = Q( Q− 1 BQ) Q− 1 = ( QQ− 1) B( QQ− 1) = B,
woraus BRA und insgesamt die Symmetrie der Relation folgt.

Transitivität:

Seien A, B,C ∈ M mit ARB, BRC und Q 1 , Q 2 reguläre Matrizen mit A = Q− 1 BQ

1

1 , B =

Q− 1 CQ

2

2 . Dann ist

A = Q− 1 BQ

( Q− 1 CQ

Q− 1) C( Q

1

1 = Q− 1

1

2

2) Q 1 = ( Q− 1

1

2

2 Q 1) .

Setzen wir also Q 3 = Q 2 Q 1 , so ist Q 3 eine reguläre Matrix mit Q− 1 = Q− 1 Q− 1 , sowie A =

3

1

2

Q− 1 CQ

3

3 , also gilt auch ARC und die Transitivität der Relation ist gezeigt.

L ösung 9.18 (zu Aufgabe 3.5). Wir haben wieder zu zeigen, dass die Relation transitiv, symmetrisch
und reflexiv ist.

Reflexivität:

Da M = M 1 ∪ . . . ∪ Mk ist, gibt es für jedes x ∈ M ein i mit {x} ⊆ Mi . Also gilt für
alle x ∈ M : xRx und die Relation ist reflexiv.

Symmetrie:

Seien also x, y ∈ M mit xRy und 1 ≤ i ≤ k mit {x, y} ⊆ Mi . Dann ist offensichtlich
auch {y, x} = {x, y} ⊆ Mi , also yRx, und die Relation ist symmetrisch.

Transitivität:

Seien x, y, z ∈ M mit xRy, yRz und i 1 , i 2 ∈ { 1 , . . . , k} mit {x, y} ⊆ Mi und {y, z} ⊆

1

Mi . Da die M

∩ M ist, muss i

2
i paarweise disjunkt sind und y ∈ Mi 1
i 2

1 = i 2 sein, also {x, y, z} ⊆

Mi , also auch {x, z} ⊆ M und somit xRz.

1
i 1

L ösung 9.19 (zu Aufgabe 3.10). Wir haben zu zeigen, dass die Relation reflexiv, antisymmetrisch
und transitiv ist und, dass je zwei Elemente in Relation miteinander stehen.

Reflexivität:

Sei w = ( w 1 , . . . , wk) ∈ Σ k . Dann ist wi = wi für 1 ≤ i ≤ k und w ∈ Σ k also w w.

Antisymmetrie:

Seien w = ( w 1 , . . . , wn) ∈ Σ n und u = ( u 1 , . . . , um) ∈ Σ m mit w u und u w.

Da w u ist, gibt es zunächst ein k ∈ N mit
wi = ui für 1 ≤ i ≤ k
und ( n = k ≤ m oder wk+1 < uk+1) .

Analog erhalten wir wegen u w ein l ∈ N mit
ui = wi für 1 ≤ i ≤ l
und ( m = l ≤ n oder ul+1 < wl+1) .

9.3. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 3

239

Wir zeigen zunächst, dass k = l gelten muss. Angenommen dies wäre nicht so. Aus Symmetrie-
gründen können wir dann annehmen, dass k < l ist (ansonsten vertauschen wir k und l ). Falls
n = k und m = l gilt, so haben wir sofort den Widerspruch n = k < l = m ≤ n. Ist k < n, so erhalten wir zunächst wk+1 < uk+1 , aber auch uk+1 = wk+1 , also wiederum einen Widerspruch.

Also ist k = l . Angenommen wk+1 < uk+1 , so ist m ≥ k + 1 = l + 1 und somit erhalten wir auch
uk+1 < wk+1 und wieder einen Widerspruch. Analoge Widersprüche erhalten wir für die Fälle
uk+1 < wk+1 , k < m bzw. l < n. Folglich muss n = m = k = l und somit u = w sein.

Transitivität:

Seien u, v, w ∈ Σ ∗ mit u v und v w. Also gibt es k, l ∈ N mit
ui = vi für 1 ≤ i ≤ k
vi = wi für 1 ≤ i ≤ l und
bzw.

u ∈ Σ k oder uk+1 < vk+1
v ∈ Σ l oder vl+1 < wl+1 .

Ist l ≤ k , so ist ui = wi für 1 ≤ i ≤ l und ul+1 ≤ vl+1 < wl+1 , also u ≺ w oder v ∈ Σ l und damit k = l , also auch wieder u w.

Ist k < l , so ist ui = wi für 1 ≤ i ≤ k und u ∈ Σ k oder uk+1 < vk+1 ≤ wk+1 . In beiden Fällen ist u w.

Totalität:

Seien u, w ∈ Σ ∗ . Da die Relation reflexiv ist, können wir annehmen, dass u = w. Sei
k + 1 der erste Index, an dem die beiden Wörter nicht übereinstimmen. Falls w ∈ Σ k , so ist
dann w u, analog u w, falls u ∈ Σ k . Es bleibt der Fall, dass beide Wörter länger als k sind.

Dann gilt aber entweder uk+1 < wk+1 oder wk+1 < uk+1 . In jedem Fall sind die beiden Wörter
miteinander vergleichbar.

L ösung 9.20 (zu Aufgabe 3.14).

Reflexivität:

Die identische Abbildung id V : V → V ist eine Bijektion und für alle u, v ∈ V gilt:

{u,v} ∈ E ⇐⇒ { id V ( u) , id V ( v) } = {u,v} ∈ E,
also ist die Relation reflexiv.

Symmetrie:

Seien G = ( V, E) und G = ( V , E) isomorph und f die Isomorphie vermittelnde

Bijektion. Dann ist f − 1 : V → V eine Bijektion und für alle u, v ∈ V gilt

{u,v} = { f ( u) , f ( v) } ∈ E ⇐⇒ {u,v} = { f − 1( u) , f − 1( v) } ∈ E.

Transitivität:

Seien Gi = ( Vi, Ei) Graphen für i ∈ { 1 , 2 , 3 } und f 1 : V 1 → V 2 , f 2 : V 2 → V 3 Bi-jektionen, die Isomorphie zwischen G 1 und G 2 bzw. zwischen G 2 und G 3 vermitteln. Dann ist
f 2 ◦ f 1 : V 1 → V 3 eine Bijektion und für alle u, v ∈ V 1 gilt

{u,v} ∈ E 1 ⇐⇒ { f 1( u) , f 1( v) } ∈ E 2 ⇐⇒ { f 2( f 1( u)) , f 2( f 1( v)) } ∈ E 3 .

Also vermittelt f 2 ◦ f 1 Isomorphie zwischen G 1 und G 3 und die Relation ist transitiv.

240

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

L ösung 9.21 (zu Aufgabe 3.15).

1

2

1

2

1

2

1

2

6

3

6

3

6

3

6

3

5

4

5

4

5

4

5

4

1

4

3

6

1

4

1

4

6

3

2

1

3

5

3

5

2

5

5

4

6

2

2

6

Zunächst einmal haben wir G 1 , G 2 , G 3 und G 4 von links nach rechts gezeichnet und darunter
übersichtlicher dargestellt. Anhand dieser Zeichnungen erkennen wir, dass G 1 der einzige Graph
ist, der einen Kreis der Länge 4 enthält. G 1 kann also zu keinem der anderen Graphen isomorph
sein. G 4 hat als einziger Graph genau einen Knoten, der nur eine Kante kennt, nämlich den mit
der Nummer 2. Wir werden dafür später sagen: Der Graph G 4 unterscheidet sich von den übrigen

Graphen in der Anzahl der Knoten vom Grad 1. Also ist auch G 4 zu keinem der übrigen Graphen
isomorph. Zwischen G 2 und G 3 lesen wir hingegen als eine Isomorphie vermittelnde Bijektion
f : V 2 → V 3 mit
f (1) = 5 , f (2) = 3 , f (3) = 1 , f (4) = 2 , f (5) = 6 , f (6) = 4
ab, wobei f (3) und f (6) auch vertauscht werden dürften.

L ösung 9.22 (zu Aufgabe 3.18). Als Knotennamen vergeben wir

2
a, b, c, d
e, f, g, h

Zahlen von 1 bis 8 wie in nebenstehender Skizze und als
i, j

4

5

Kantennamen Kleinbuchstaben von a bis o . Also ist V =

1
k

6
l

3
m

{ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } und E = {a,b,c,d,e, f ,g,h,i, j,k,l,m,n,o}.

7
n

8

Die Adjazenzfunktion verursacht nun etwas Schreibarbeit:

o
ad( a) = ad( b) = ad( c) = ad( d) = { 1 , 2 },
ad( e) = ad( f ) = ad( g) = ad( h) = { 2 , 3 },
ad( i) = { 2 , 4 },
ad( j) = { 2 , 5 },
ad( k) = { 1 , 4 },
ad( l) = { 3 , 5 },
ad( m) = { 6 },
ad( n) = { 7 , 8 },
ad( o) = { 1 , 3 }.

L ösung 9.23 (zu Aufgabe 3.21).

Reflexivität:

Ist a ein Knoten, so ist ( a) ein Spaziergang der Länge 0 von a nach a , also gilt stets
aRa .

Symmetrie:

Ist ( a = v 0 , e 1 , v 1 , e 2 , . . . , ek, vk = b) ein Spaziergang von a nach b, so ist ( b =
vk, ek, vk− 1 ,ek− 1 ,...,e 1 ,v 0 = a) ein Spaziergang von b nach a, also ist die Relation symmetrisch.

Transitivität:

Sind

( a = v 0 , e 1 , v 1 , e 2 , . . . , ek, vk = b)

9.3. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 3

241
und

( b = w 0 , ek+1 , w 1 , ek+2 , . . . , ek+ k, wk = c)

Spaziergänge von a nach b bzw. von b nach c , so ist

( a = v 0 , e 1 , v 1 , e 2 , . . . , ek, vk = b = w 0 , ek+1 , w 1 , ek+2 , . . . , ek+ k, wk = c) ein Spaziergang von a nach c , also ist die Relation transitiv.

L ösung 9.24 (zu Aufgabe 3.31).

1

2

1

2

6

7

6

7

10

8

10

8

5

3

5

3

9

9

4

4

In obiger Abbildung sehen sie links den Breitensuchbaum durch die dicker gezeichneten Kanten
markiert. Die Reihenfolge, in der die Knoten abgearbeitet werden, ist (1 , 2 , 5 , 6 , 3 , 7 , 4 , 10 , 8 , 9) . Die rechte Grafik zeigt den Tiefensuchbaum, der der Pfad (1 , 2 , 3 , 4 , 5 , 10 , 7 , 9 , 6 , 8) ist.

L ösung 9.25 (zu Aufgabe 3.32). Der erste Versuch, bei dem einfach nur die Queue Q durch einen

Stack S ersetzt wird und die Methoden S.Push(), die ein Element auf den Stack legt und S.Pop(),
die das oberste Element vom Stack nimmt, benutzt werden, ergibt leider nicht das erwünschte Re-
sultat:

pred[r]= r

S.Push(r)

while S.IsNotEmpty():

v = S.Pop()

for w in Neighborhood(v):

if pred[w] == None:

pred[w] = v

S.Push(w)

Betrachtet man etwa den K 4 , so liefert dies das gleiche Ergebnis wie die Breitensuche, während
ein Tiefensuchbaum ein Pfad ist. Betrachtet man die Situation etwas genauer, so fällt auf, dass im
ersten Schritt die ganze Nachbarschaft des ersten Knotens gefunden wird, während zum Tiefensuch-
baum nur eine Kante gehören darf.

Wir lösen dieses Problem, indem wir die Vorgängerrelation später wieder ändern, wenn etwa

Knoten 3 auch von der 2 gefunden wird. Der Vorgänger wird erst fixiert, wenn der Knoten zum
ersten Mal vom Stapel genommen wird. Die Existenz eines Vorgängers ist aber nun ein ungeeignetes

Kriterium, um zu testen, ob der Knoten bereits abgearbeitet wurde. Deswegen führen wir für die

Knoten noch ein label ein.

242

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

So können wir es nun aber nicht vermeiden, dass Knoten mehrfach auf den Stapel getan werden.

Also müssen wir bei der Entnahme vom Stapel prüfen, ob der Knoten bereits abgearbeitet wurde.

pred[r]= r

S.Push(r)

while S.IsNotEmpty():

v = S.Pop()

if not label[v]:

label[v] = TRUE
for w in Neighborhood(v):

if not label[w]:

pred[w] = v

S.Push(w)

Bei der Laufzeitanalyse können wir fast wie bei der Breitensuche verfahren. Der einzige Unter-
schied ist, dass das while-Statement mehr als O( |V |)-mal ausgeführt werden muss, da ein Knoten
mehrfach im Stack liegen kann. Allerdings kann ein Knoten v höchstens deg G( v) mal auf den

Stack gelegt werden (zur Definition von deg G( v) siehe Abschnitt 3.9), die Gesamtarbeit im while-

Statement ist also O( |E|). Insgesamt erhalten wir also eine Laufzeit von O( |E|).

L ösung 9.26 (zu Aufgabe 3.33). Ist e = ( u, v) eine Baumkante, so ist offensichtlich pred[v]=u.

Sei also nun e = ( u, v) keine Baumkante. Angenommen u wäre kein Vorfahre von v . Da r Vorgänger
aller Knoten ist, die ein Label tragen, haben u und v gemeinsame Vorgänger. Sei w der Vorgänger
von u und v mit der größten Nummer. Dann liegen u und v in verschiedenen Teilbäumen von w ,
d. h. die ersten Kanten auf den Pfaden von w nach u bzw. von w nach v in T sind verschieden.

Da label[u] < label[v], wurde der Teilbaum, in dem u liegt, zuerst abgearbeitet, insbeson-
dere war u komplett abgearbeitet, bevor der Teilbaum von v zum ersten Mal betreten wurde. Also
hatte v noch kein Label, als u abgearbeitet wurde, und u hätte Vorgänger von v werden müssen.

Widerspruch.

L ösung 9.27 (zu Aufgabe 3.36). Sei also d 1 ≥ d 2 ≥ . . . ≥ dn ≥ 0 eine Folge natürlicher Zahlen und

∑ ni=1 di gerade. Wir betrachten den Multigraphen mit Knotenmenge V = { 1 ,...,n} und folgender

Kantenmenge: An jedem Knoten i gibt es zunächst di Schleifen. Die gerade vielen Knoten mit

2
ungeraden Knotengrad paaren wir und spendieren jedem Paar eine Kante. Offensichtlich hat dieser

Multigraph die gewünschte Gradsequenz. Als Beispiel zeigen wir noch eine Visualisierung des so
zu der Folge (8 , 7 , 6 , 5 , 4 , 3 , 2 , 1) entstehenden Multigraphen.

9.3. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 3

243

L ösung 9.28 (zu Aufgabe 3.39).

a) Wir berechnen

11

10 + 9 = 19 > 2 · 1 + ∑ min { 2 ,dj} = 2 + 7 · 2 + 2 · 1 = 18 .

j=3

Also verletzt die Folge das Kriterium von Erdös und Gallai und ist also keine Valenzsequenz.

b) Wir berechnen mit dem Verfahren nach Havel und Hakimi die Sequenzen (8 , 7 , 6 , 5 , 4 , 3 , 2 , 2 , 2 , 1) .

Als nächste berechnen wir (6 , 5 , 4 , 3 , 2 , 1 , 1 , 1 , 1) sowie (4 , 3 , 2 , 1 , 0 , 0 , 1 , 1) , nach Umnummerierung

5 6 7 10 11 8 9

2 1 0 0 1 0 0
und erhalten, wenn wir rückwärts die entsprechenden Graphen konstruieren, den in folgender

Abbildung dargestellten Graphen mit der angegebenen Valenzsequenz. Mit den beiden kleineren

Graphen deuten wir dabei zwei Zwischenschritte an.

8

9

10

7

8

9

10

7

4

4

3

11

11

6

5

6

5

8

9

10

7

1

4

2

3

11

5

6
c) Die Summe der Einträge ist ungerade. Also ist die Sequenz keine Valenzsequenz.

L ösung 9.29 (zu Aufgabe 3.44). Wir gehen nach dem Algorithmus Eulertour vor und finden zunächst
die Teiltour

(1 , 3) , (3 , 2) , (2 , 4) , (4 , 1) , (1 , 5) , (5 , 2) , (2 , 6) , (6 , 1) .

An 1 sind alle Valenzen aufgebraucht, also fahren wir am nächsten Knoten auf der bisherigen Tour,
also der 3, fort mit

(3 , 5) , (5 , 4) , (4 , 6) , (6 , 3)

und erhalten nach Einhängen die Eulertour

(1 , 3) , (3 , 5) , (5 , 4) , (4 , 6) , (6 , 3) , (3 , 2) , (2 , 4) , (4 , 1) , (1 , 5) , (5 , 2) , (2 , 6) , (6 , 1) .

L ösung 9.30 (zu Aufgabe 3.46). Man kann den Beweis von Satz 3.40 im Wesentlichen abschreiben.

An einigen Stellen muss man leichte Modifikationen vornehmen. Wir erhalten dann:

244

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen
a) ⇒ b)

Die erste Implikation ist offensichtlich, da eine Eulertour alle Kanten genau einmal
benutzt und geschlossen ist, man also in jeden Knoten genauso oft ein- wie auslaufen muss.

Also muss der Graph zusammenhängend sein, und alle Knoten müssen gleichen Innengrad wie

Außengrad haben.

b) ⇒ c)

Die zweite Implikation zeigen wir mittels vollständiger Induktion über die Kardinalität
der Kantenmenge. Sei also G ein zusammenhängender Graph, bei dem alle Knoten gleichen

Innen- wie Außengrad haben. Ist |E| = 0, so ist G = K 1 und die leere Menge ist die disjunkte

Vereinigung von null gerichteten Kreisen. Sei also |E| > 0. Wir starten bei einem beliebigen

Knoten v 0 und wählen einen Bogen e = ( v 0 , v 1). Ist dieser eine Schleife, so haben wir einen
gerichteten Kreis C 1 gefunden. Ansonsten gibt es, da deg −( v 1) = deg+( v 1) ≥ 1 ist, einen Bogen

( v 1 , v 2). Wir fahren so fort. Da V endlich ist, muss sich irgendwann ein Knoten w zum ersten

Mal wiederholen. Der Teil des gerichteten Spaziergangs von w nach w ist dann geschlossen und
wiederholt weder Kanten noch Knoten, bildet also einen gerichteten Kreis C 1 . Diesen entfernen
wir. Jede Zusammenhangskomponente des resultierenden Graphen hat wiederum nur Knoten mit
gleichem Innen- wie Außengrad, ist also nach Induktionsvoraussetzung disjunkte Vereinigung
gerichteter Kreise.

c) ⇒ a)

Sei schließlich G zusammenhängend und E = C 1 ˙ ∪ . . . ˙ ∪Ck disjunkte Vereinigung ge-
richteter Kreise. Wir gehen wieder mit Induktion, diesmal über k , vor. Ist k = 0 , so ist nichts
zu zeigen. Andernfalls ist jede Komponente von G \C 1 eulersch nach Induktionsvoraussetzung.

Seien die Knoten von C 1 = ( v 1 , . . . , vl) durchnummeriert. Dann enthält jede Komponente von

G \ C 1 auf Grund des Zusammenhangs von G einen Knoten von C 1 mit kleinstem Index und
diese Kontaktknoten“ sind paarweise verschieden. Wir durchlaufen nun C

”

1 und, wenn wir an
einen solchen Kontaktknoten kommen, durchlaufen wir die Eulertour seiner Komponente, bevor
wir auf C 1 fortfahren.

L ösung 9.31 (zu Aufgabe 3.48). Sie können beide Aufgabenteile mit ad-hoc Argumenten lösen. Viel-
leicht haben Sie aber auch den folgenden allgemeineren Satz gesehen“, mit dem beide Aufgaben-

”

teile dann leicht zu lösen sind:

Sei G = ( V, E) ein Graph. Ein Spaziergang in G , der jede Kante genau einmal benutzt und in s
beginnt und in t = s endet, heißt Eulerpfad (von s nach t). Wir zeigen: Ein Graph hat genau dann
einen Eulerpfad, wenn er zusammenhängend ist und genau zwei Knoten mit ungeradem Knotengrad
hat.

Sei dazu G = ( V, E) ein Graph, der einen Eulerpfad von s nach t hat. Sei e = ( s,t) . Dann ist

G + e ein Graph, der eine Eulertour hat, also zusammenhängend ist und nur gerade Knotengrade hat.

Also ist G ein Graph, der zusammenhängend ist und genau zwei Knoten mit ungeradem Knotengrad,
nämlich deg G( s) und deg G( t) hat. Für die Rückrichtung der Behauptung lese man die Implikationen
rückwärts.

a) Als Graph betrachtet hat das Haus vom Nikolaus genau zwei Knoten mit ungeradem Knotengrad,
nämlich die beiden unteren Ecken.

b) Das Doppelhaus vom Nikolaus hat 4 Knoten mit ungeradem Knotengrad, gestattet also weder
eine Eulertour noch einen Eulerpfad.

9.3. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 3

245

L ösung 9.32 (zu Aufgabe 3.55).

a) Hat r in T nur einen Nachfolger, so ist T \ r zusammenhängend. Da T ein Teilgraph von G ist,
ist dann sicherlich auch G \ r zusammenhängend. Hat r hingegen mehrere Nachfolger, so gibt es
zwischen diesen verschiedenen Teilbäumen nach Aufgabe 3.33 keine Kanten in G , also ist G \ r
unzusammenhängend.

b) Ist v ein Blatt des Baumes, d. h. ein Knoten ohne Nachfolger, so ist die Bedingung stets erfüllt
und T \ v zusammenhängend. Die Aussage ist also für v richtig. Hat v nun Nachfolger und
führt aus allen Teilbäumen von v eine Nichtbaumkante zu einem Vorfahren von v , so ist G \ {v}

zusammenhängend, denn man hat immer noch von allen Knoten ausgehend einen Spaziergang
zur Wurzel und deswegen sind je zwei Knoten durch einen Spaziergang verbunden. Hat man
hingegen einen Teilbaum, aus dem keine Nichtbaumkante zu einem Vorgänger von v führt, so
führt nach Aufgabe 3.33 aus diesem Teilgraph überhaupt keine Kante hinaus. Alle Spaziergänge
von einem Knoten außerhalb des Teilbaums in den Teilbaum müssen also über v führen und G \ v
ist unzusammenhängend.

246

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

9.4 Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 4

L ösung 9.33 (zu Aufgabe 4.2).

a) Nach Satz 4.1 d) enthält T + ¯
e einen Kreis, es bleibt also nur die Eindeutigkeit des Kreises zu
zeigen. Ist aber C ein Kreis in T + ¯
e und ¯
e = ( u, v) , so ist C \ ¯ e ein uv-Weg in T . Nach Satz 4.1
b) gibt es in T genau einen uv -Weg P . Also ist C = P + ¯
e und damit eindeutig.

b) Sei e ∈ C( T, ¯ e) \ ¯ e. Da T + ¯ e nur den Kreis C( T, ¯ e) enthält, ist ˜

T = ( T + ¯
e) \ e kreisfrei. Da nach

Satz 4.1 f) |T | = |V | − 1 und offensichtlich | ˜

T | = |T | gilt, ist auch ˜

T nach Satz 4.1 f) ein Baum.

L ösung 9.34 (zu Aufgabe 4.3). Sei zunächst ( T, r) ein Wurzelbaum mit T = ( V, E) und die Kanten
wie in der Definition angegeben orientiert. Da es zu jedem Knoten v einen gerichteten rv -Weg gibt,
muss in alle v ∈ V \ {r} mindestens eine Kante hineinführen, es gilt also

∀v ∈ V \ {r} : deg+( v) ≥ 1 .

(9.1)

Andererseits ist nach Satz 4.1 |E| = |V | − 1 und somit

∑ deg+( v) = |V|− 1 ,
v∈V
also muss in (9.1) überall Gleichheit gelten und deg+( r) = 0 sein.

Sei nun umgekehrt T = ( V, A) ein zusammenhängender Digraph mit den angegebenen Innengra-
den und r ∈ V der eindeutige Knoten mit deg+( v) = 0. Da T als zusammenhängend vorausgesetzt
wurde, ist der T zu Grunde liegende ungerichtete Graph T = ( V, E) wegen

|E| = |A| = ∑ deg+( v) = |V|− 1
v∈V
nach Satz 4.1 ein Baum. Wir haben noch zu zeigen, dass die Kanten wie in der Definition angegeben
bzgl. r als Wurzel orientiert sind. Sei dazu v ∈ V und P = rv 1 v 2 . . . vk− 1 v der nach Satz 4.1
eindeutige rv -Weg in T . Da deg+( r) = 0 ist, muss ( rv 1) von r nach v 1 orientiert sein. Da v 1
schon eine eingehende Kante hat, muss ( v 1 , v 2) von v 1 nach v 2 orientiert sein, und wir schließen
induktiv, dass P ein gerichteter Weg von r nach v ist.

L ösung 9.35 (zu Aufgabe 4.5). Wir führen Induktion über die Anzahl der Knoten von T . Besteht T
aus nur einem Knoten, so ist sein Code () , also wohlgeklammert. Sei nun ( T, r, ρ) ein gepflanzter

Baum mit mindestens zwei Knoten. Die Codes C 1 , . . . ,Ck der Söhne von r sind nach Induktions-
voraussetzung wohlgeklammerte Ausdrücke. Der Code von T ist C = ( C 1 . . .Ck). Mit den Ci hat
also auch C gleich viele öffnende wie schließende Klammern. C beginnt mit einer öffnenden Klam-
mer. Angenommen, diese würde etwa durch eine Klammer in Ci geschlossen. Da die Cj mit j < i
wohlgeklammert sind, ist nach der letzten schließenden Klammer von Ci− 1 noch genau die erste

Klammer von C offen. Wird diese in Ci geschlossen, so wird in Ci selber eine Klammer geschlos-
sen, zu der es vorher keine öffnende gab im Widerspruch dazu, dass Ci wohlgeklammert ist.

L ösung 9.36 (zu Aufgabe 4.6). Wir führen wieder Induktion über die Anzahl Knoten in ( T, r, ρ) . Sei

( T , r, ρ ) der durch obige rekursive Prozedur bestimmte gepflanzte Baum. Hat T nur einen Kno-
ten, so galt dies auch für T und die Bijektion zwischen diesen beiden Knoten ist ein Isomorphismus
der gepflanzten Bäume. Habe nun T mindestens zwei Knoten und seien y 1 , . . . , yk die direkten

9.4. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 4

247

Nachfahren von r und C 1 , . . . ,Ck die zugehörigen Codes der gepflanzten Bäume T 1 , . . . , Tk , die in
den yi gewurzelt sind. Seien y , . . . , y die Wurzeln der in der rekursiven Prozedur zu C

1
k

1 , . . . ,Ck
definierten gepflanzten Wurzelbäume T . Nach Induktionsvoraussetzung gibt es Isomorphismen
i
φ i : ( Ti,yi, ρ i) → ( T,y, ρ ). Indem wir diese Abbildungen vereinigen und r auf r abbilden, erhal-i
i
i
ten wir eine Bijektion φ der Knoten von T und T . Da die in r ausgehenden Kanten berücksichtigt
werden und die φ i Isomorphismen der gepflanzten Bäume sind, ist φ schon mal ein Isomorphismus
der zugrundeliegenden Bäume. Da die Wurzel auf die Wurzel abgebildet wird, an der Wurzel die

Reihenfolge nach Konstruktion und ansonsten nach Induktionsvoraussetzung berücksichtigt wird,
ist φ ein Isomorphismus der gepflanzten Bäume.

L ösung 9.37 (zu Aufgabe 4.7). Seien ( T, r) und ( T, r) Wurzelbäume und φ ein Isomorphismus.

Wir führen wieder Induktion über die Anzahl der Knoten in T und T . Haben die Bäume nur
einen Knoten, so erhalten sie den gleichen Code. Sei also nun die Anzahl der Knoten in T und

T mindestens zwei. Seien y 1 , . . . , yk die Söhne von r und y = φ ( y
i
i) . Die Restriktionen φ i von
φ auf die in yi gewurzelten Teilbäume von T sind offensichtlich Isomorphismen, also sind die
zugehörigen Codes gleich nach Induktionsvoraussetzung. Da die Codes von T und T durch Ordnen
und Einklammern dieser Codes entstehen, erhalten sie den gleichen Code.

L ösung 9.38 (zu Aufgabe 4.15). Sei zunächst T ein minimaler G aufspannender Baum und ¯
e ∈

E \ T . Sei e ∈ C( T, ¯ e) beliebig. Nach Aufgabe 4.2 ist dann ˜

T := ( T + ¯
e) \ e wieder ein Baum und
damit wieder ein G aufspannender Baum. Da T minimal ist, schließen wir
w( T ) = ∑ w( f ) ≤ w( ˆ T) = w( T) − w( e) + w(¯ e)

f ∈T

⇐⇒
w( e) ≤ w( ¯ e) .

Sei nun umgekehrt T ein G aufspannender Baum, der das Kreiskriterium erfüllt und ¯

T ein minima-
ler G aufspannender Baum mit |T ∩ ¯

T | maximal. Wir zeigen T = ¯

T . Angenommen T \ ¯

T = /0. Sei
dann e ∈ T \ ¯

T = /0 von kleinstem Gewicht gewählt. Da ¯

T nach dem bereits Gezeigten das Kreiskri-
terium erfüllt, gilt für alle f ∈ C( ¯

T , e) : w( f ) ≤ w( e). Da T kreisfrei ist, gibt es f ∈ C( ¯

T , e) \ T . Da
man bei w( f ) = w( e) mit ( ¯

T + e) \ f einen weiteren minimalen G aufspannenden Baum erhalten
würde, der aber einen größeren Schnitt mit T hat als ¯

T , muss w( f ) < w( e) sein. Für alle g ∈ C( T, f )

gilt nun wiederum
w( g) ≤ w( f ) < w( e) .

Insbesondere gibt es ein g ∈ C( T, f ) \ ¯

T mit w( g) < w( e) im Widerspruch zur Wahl von e .

Da nach Satz 4.1 alle Bäume auf der gleichen Knotenmenge gleich viele Kanten haben, folgt die

Behauptung.

L ösung 9.39 (zu Aufgabe 4.19).

a) Sei e = ( u, v) ∈ T . Nach Satz 4.1 ist T \ e unzusammenhängend. Da T zusammenhängend ist,
hat T \ e genau zwei Zusammenhangskomponenten. Sei S die Knotenmenge der einen. Wir
behaupten

D( T, e) = ∂ G( S) .

⊆ Sei ¯ e ∈ D( T,e). Da die Komponten von T \e wieder Bäume sind und ( T \e)+ ¯ e als Baum
kreisfrei ist, können nicht beide Endknoten von ¯
e in der gleichen Komponente von T \ e
liegen. Somit gilt | ¯ e ∩ S| = 1, also auch ¯ e ∈ ∂ ( S).

248

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

⊇ Sei ( w,x) = ¯ e ∈ ∂ S und ¯ e ∩ S = {w}. Wir haben zu zeigen, dass ˜ T := ( T \ e) + ¯ e wieder ein Baum ist. Da ˜

T ebenso viele Kanten wie T hat, genügt es nach Satz 4.1 zu zeigen, dass ˜

T
zusammenhängend ist. Da T zusammenhängend ist, genügt es, einen uv -Weg in ˜

T zu finden.

Da die S -Komponente von T \e ein Baum ist, gibt es darin einen uw-Weg P 1 . Analog erhalten
wir in der anderen Komponente einen xv -Weg P 2 . Dann ist aber P 1 ¯ eP 2 ein uv-Weg in ˜

T , das
somit ein Baum ist.

b) Sei T ein minimaler aufspannender Baum, e ∈ T und ¯ e ∈ D( T, e). Auf Grund der Minimalität
von T ist
w( T ) = ∑ w( e) ≤ w(( T \ e) + ¯ e) = w( T) − w( e) + w(¯ e) , e∈T
also auch w( e) ≤ w( ¯ e).

Sei umgekehrt T ein aufspannender Baum, der das Schnittkriterium erfüllt und ˜

T ein minimaler
aufspannender Baum mit |T ∩ ˜

T | maximal. Angenommen T \ ˜

T = /0. Sei dann ( u, v) = e ∈ T \ ˜

T
von maximalem Gewicht. Da ˜

T zusammenhängend ist, enthält er mindestens eine Kante ¯
e , die
die beiden Komponenten von T \ e verbindet. Ist S die Knotenmenge der einen Komponente
von T \ e, so ist also ¯ e ∈ ∂ G( S) = D( T, e). Nach Teil a) ist ( T \ e) + ¯ e wieder ein Baum und damit w( ¯
e) ≥ w( e). Da T zusammenhängend ist, enthält es ein g ∈ D( ˜

T , ¯
e) . Da ˜

T als minimaler
aufspannender Baum nach dem bereits Gezeigten das Schnittkriterium erfüllt, ist w( g) ≥ w( ¯ e).

Da |T ∩ ˜

T | maximal gewählt worden war, muss sogar gelten w( g) > w( ¯ e). Dann ist aber g ∈ T \ ˜

T
mit
w( g) > w( ¯
e) ≥ w( e)

im Widerspruch zur Wahl von e .

L ösung 9.40 (zu Aufgabe 4.20). Sei S eine nicht leere Menge natürlicher Zahlen, v darin die kleinste.

Wir betrachten den vollständigen Graphen auf S und für e = ( i, j) sei
w( e) = max {i, j}.

Offensichtlich nehmen wir in Prims Algorithmus die Elemente von S in aufsteigender Reihenfolge
in T auf, sortieren also die Menge. Damit ist die Laufzeit von unten durch

Ω( |S| log |S|)

beschränkt. Bekanntlich ist Sortieren nämlich Ω ( |S| log |S|), siehe etwa [13].

L ösung 9.41 (zu Aufgabe 4.21).

a) Offensichtlich ist der kontrahierte Graph T /S zusammenhängend. Dieser Graph ist aber gleich
dem von der Kantenmenge E( T ) \ S in G/S induzierten Graphen. Da man ferner bei jeder

Kontraktion einer Kante, die nicht Schleife ist, einen Knoten verliert und also

|T \ S| = |T| − |S| = |V| − 1 − |S| = |V( G/S) | − 1
gilt, ist T /S nach Satz 4.1 ein aufspannender Baum von G/S . Wir zeigen: T /S erfüllt das

Schnittkriterium. Sei also e ∈ E( T ) \ S und ¯ e ∈ DG/S( T \ S, e). Wir zeigen

DG/S( T \ S, e) = DG( T, e) ,

9.4. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 4

249
woraus die Behauptung folgt, da T als minimaler aufspannender Baum das Schnittkriterium
erfüllt. Seien dazu V 1 ,V 2 die Knotenmengen der Komponenten von T \ e. Dann ist DG( T, e) =

∂ G( V 1). Die Komponenten von T \( S ∪{e}) in G/S entstehen aus den Komponenten von T \e,
indem in den Teilbäumen Kanten kontrahiert werden. Seien die Knoten der Komponenten ˜

V 1 , ˜

V 2 .

Dann ist DG/S( T \ S, e) = ∂ G/S( ˜

V 1) . Ist nun e ∈ ∂ G( V 1) so ist in G/S ein Endknoten von e in

˜

V 1 und der andere in ˜

V 2 , also auch e ∈ ∂ G/S( ˜

V 1) . Umgekehrt muss die Kante in G, aus der eine

Kante in ∂ G/S( ˜

V 1) entstanden ist, in ∂ G( V 1) gewesen sein.

b) Sei T ein minimaler aufspannender Baum, v ∈ V und e die eindeutige Kante kleinsten Gewichts
inzident mit v . Angenommen e ∈ T . Da sicherlich e ∈ C( T, e) liegt, hat v in diesem Kreis den

Knotengrad 2. Sei f ∈ C( T, e) die andere Kante inzident mit v. Nach dem Kreiskriterium ist
w( f ) ≤ w( e). Da w injektiv ist, gilt sogar w( f ) < w( e) im Widerspruch zur Wahl von e. Also ist die Kantenmenge S in jedem minimalen aufspannenden Baum enthalten.

Es bleibt zu zeigen, dass der minimale aufspannende Baum eindeutig ist. Angenommen ˜

T wäre
ein weiterer minimaler aufspannender Baum und e ∈ T \ ˜

T von minimalem Gewicht. Sei v der

Knoten, an dem e die kleinste Kante ist. Dann verletzt die andere Kante an v in C( ˜

T , e) das

Kreiskriterium. Widerspruch.

L ösung 9.42 (zu Aufgabe 4.26). Der Algorithmus von Kruskal betrachtet zunächst die Kanten mit
dem Gewicht 2, also ( i, 2 i) mit i = 1 , . . . , 15 in dieser Reihenfolge. Als nächstes wird die Kante

(1 , 3) hinzugefügt. Die Kante (2 , 6) wird verworfen, da sie mit (1 , 2) , (3 , 6) und (1 , 3) einen Kreis
schließt. Aufgenommen von den Kanten mit Gewicht 3 werden (3 , 9) , (5 , 15) , (7 , 21) , (9 , 27) . Die Kanten mit Gewicht 4 brauchen wir nicht zu betrachten, da sie mit zwei Kanten vom Gewicht 2 einen

Kreis schließen. Analoges gilt für alle Gewichte, die keine Primzahlen sind. Kanten vom Gewicht 5
im Baum sind (1 , 5) , (5 , 25) . Schließlich werden aufgenommen

(1 , 7) , (1 , 11) , (1 , 13) , (1 , 17) , (1 , 19) , (1 , 23) , (1 , 29) .

Der Algorithmus von Prim wählt die Kanten (1 , 2) , (2 , 4) , (4 , 8) , (8 , 16) . Dann eine vom Gewicht drei und weitere vom Gewicht zwei nämlich (1 , 3) , (3 , 6) , (6 , 12) , (12 , 24) . Dann (3 , 9) , (9 , 18) , (9 , 27) .

Die übrigen Kanten werden in folgender Reihenfolge gewählt

(1 , 5) , (5 , 10) , (10 , 20) , (5 , 15) , (15 , 30) , (5 , 25) , (1 , 7) , (7 , 14) , (14 , 28) , (7 , 21) und weiter

(1 , 11) , (11 , 22) , (1 , 13) , (13 , 26) , (1 , 17) , (1 , 19) , (1 , 23) , (1 , 29) .

Für den Algorithmus von Bor˚uvka erstellen wir zunächst eine Tabelle der beliebtesten Nachbarn.

Die zugehörigen Kanten haben wir in Abbildung 9.1 fett eingezeichnet. Der zugehörige Wald

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

2 1 6 2 10 3 14 4 18 5 22 6 26 7 30

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

8 1 9 1 10 7 11 1 12 5 13 9 14 1 15

Tabelle 9.1 Die beliebtesten Nachbarn

250

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

29

24

20

22

26

28

30

16

23

12

18

10

11

13

8

14

15

21

19

4

6

9

5

7

2

25

17

3

27

1

Abb. 9.1 Der minimale aufspannende Baum
hat acht Komponenten. Wir schreiben für Repräsentanten wieder die beliebtesten Nachbarn auf:

Dadurch kommen sechs neue Kanten hinzu und die letzte, nämlich (1 , 5) in der dritten Iteration.

1 3 5 7 9 11 13 15

3 1 15 1 3 1 1 5

Tabelle 9.2 Die beliebtesten Nachbarn der verbleibenden Komponenten

Der minimale aufspannende Baum ist ohne unsere Vereinbarung zum Tiebreaking“ nicht ein-

”

deutig. Z. B. kann man die Kante (1 , 3) durch (2 , 6) ersetzen.

L ösung 9.43 (zu Aufgabe 4.28). Sei X die Anzahl der aufspannenden Bäume, welche die Kante e
enthalten. Aus Symmetriegründen ist beim vollständigen Graphen X unabhängig von der Wahl von
e . Wenn wir nun für alle Kanten e in G jeweils die aufspannenden Bäume, die e enthalten, zählen,

haben wir jeden Baum so oft gezählt, wie er Kanten enthält, also n − 1 mal. Da G n Kanten hat,

2
folgt also aus der Cayley Formel

n X = ( n− 1) nn− 2

2

⇐⇒
n( n − 1) X = ( n− 1) nn− 2

2

⇐⇒

X = 2 nn− 3 .

L ösung 9.44 (zu Aufgabe 4.39). Wir betrachten die oberen Knoten als U und die unteren als V .

In den ersten vier Schleifendurchläufen finden wir an den ersten vier Knoten jeweils erweiternde

Wege der Länge 1 also Matchingkanten. Diese sind in Abbildung 9.2 fett gezeichnet. Im fünften

Durchlauf finden wir am fünften Knoten keine Matchingkante, aber am sechsten. Für die nächste

Iteration haben wir Durchläufe der while-Schleife, in der die Knoten gefunden werden, an diesen
angedeutet. Dabei nehmen wir passenderweise für U -Knoten ungerade Nummern und für V -Knoten
gerade. In einem Durchlauf der while-Schleife werden also eigentlich zwei verschiedene Nummern
abgetragen.

9.4. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 4

251

3

3

1

1

2

2

Abb. 9.2 Ein maximales Matching und eine minimale Knotenüberdeckung

Als erstes markieren wir die beiden ungematchten Knoten mit 1, dann deren Nachbarn mit 2. Da
diese beide gematcht sind, markieren wir ihre Matchingpartner mit 3. Die mit 3 markierten Knoten
kennen nun keine unmarkierten Knoten mehr. Das Matching ist maximal, und die markierten V -

Knoten und die unmarkierten U -Knoten, die wir durch Quadrate angedeutet haben, bilden eine
minimale Knotenüberdeckung.

L ösung 9.45 (zu Aufgabe 4.40). Seien die Zeilen des Schachbrettes wie allgemein üblich Z :=

{ 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 } und die Spalten S := {a,b,c,d,e, f ,g,h}. Wir betrachten den bipartiten G

Graphen auf S ˙

∪Z , bei dem ( i,x) eine Kante ist, wenn das Feld ix markiert ist, für i ∈ S und x ∈ Z .

Zwei Türme können sich genau dann schlagen, wenn sie entweder in der gleichen Zeile oder in
der gleichen Spalte stehen. Die entsprechenden Kanten der zugehörigen markierten Felder inzidieren
also mit einem gemeinsamen Knoten in G . Mittels Kontraposition stellen wir fest, dass eine Plat-
zierung von Türmen auf einer Teilmenge der markierten Felder genau dann zulässig ist, wenn die
entsprechenden Kanten in G ein Matching bilden. Gesucht ist also die Kardinalität eines maximalen

Matchings.

Nach dem Satz von König ist diese gleich der minimalen Kardinalität einer Knotenüberdeckung.

Eine Menge von Zeilen und Spalten entspricht aber genau dann einer kantenüberdeckenden Knoten-
menge in G , wenn jedes markierte Feld in einer solchen Zeile oder Spalte liegt.

L ösung 9.46 (zu Aufgabe 4.41). Wie vorgeschlagen, führen wir Induktion über die Anzahl k ≥ n der
von Null verschiedenen Einträge in P . Ist k = n , so ist in jeder Zeile und Spalte höchstens ein Eintrag
von Null verschieden. Da die Matrix doppelt stochastisch ist, schließen wir, dass in jeder Zeile und

Spalte genau ein Eintrag von Null verschieden und genauer gleich 1 ist. Also ist die Matrix eine

Permutationsmatrix. Wir setzen also l = 1 , λ1 = 1 und P 1 = A.

Sei nun k > n . Wir betrachten den bipartiten Graphen G auf der Menge der Zeilen und Spalten,
bei der eine Zeile mit einer Spalte genau dann adjazent ist, wenn der entsprechende Eintrag in der

Matrix von Null verschieden ist.

Wir zeigen nun, dass G die Bedingung des Heiratssatzes von Frobenius erfüllt. Nach Annahme
ist die Matrix quadratisch, die beiden Farbklassen von G sind also gleich groß. Sei nun H eine

Menge von Zeilen von A und N( H) die Menge der Spalten, die zu H in G benachbart sind. Da die

Matrix doppelt stochastisch ist, erhalten wir
n
n

|N( H) | = ∑ ∑ aij ≥ ∑ aij = ∑ ∑ aij = |H|.

j∈N( H) i=1
j∈N( H)

i∈H j=1
i∈H

252

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

Beachten Sie, dass das Ungleichheitszeichen daher rührt, dass in den Spalten von N( H) Nichtnull-
einträge in Spalten außerhalb von H vorkommen können. Die vorletzte Gleichung folgt, da ai j = 0
für alle j ∈ N( H), i ∈ H ist.

Also hat G ein perfektes Matching M . Sei P die Permutationsmatrix, die in ( i, j) genau dann
eine 1 hat, wenn ( i, j) ∈ M und Null sonst. Sei ferner
α = min {aij | ( i, j) ∈ M}.

Da k > n ist und nach Konstruktion von G muss 0 < α < 1 sein. Weil α minimal gewählt wurde,
ist

A − α P
eine Matrix mit nicht-negativen Einträgen und Zeilen- und Spaltensumme jeweils 1 − α . Ferner
hat A − α P mindestens einen Nichtnulleintrag weniger als A, nämlich dort, wo α das Minimum
annahm. Also ist

˜

1

A := 1 −α ( A−α P)

eine doppelt stochastische Matrix mit mindestens einem Nichtnulleintrag weniger als A . Also gibt
es nach Induktionsvoraussetzung ˜ l ∈ N und Permutationsmatrizen P 1 , . . . , P˜, sowie ˜λ
mit
l

1 , . . . , ˜
λ˜ l

0 ≤ ˜λ i ≤ 1 und

˜ l

˜

A = ∑ ˜λ iPi.

i=1

Wir setzen nun
l = ˜ l+ 1 ,

Pl = P,
λ l = α und für 0 ≤ i ≤ ˜ l: λ i = (1 − α)˜λ i.

Dann ist stets 0 ≤ λ i ≤ 1 und
l

˜ l

∑λ iPi = α P+ ∑(1 −α)˜λ iPi
i=1
i=1

˜ l

= α P + (1 − α) ∑ ˜λ iPi
i=1

= α P + (1 − α) ˜

A

= α P + ( A − α P) = A
und
l

˜ l

∑λ i = α + ∑(1 −α)˜λ i
i=1
i=1

= α + (1 − α) · 1 = 1 ,
womit wir A als Konvexkombination von Permutationsmatrizen dargestellt haben.

L ösung 9.47 (zu Aufgabe 4.45). Wir zeigen per Induktion über den Algorithmus, dass für jede stabile

Hochzeit σ : U → V und jeden Mann u ∈ U gilt:

Ist v ∈ V und v ≺u σ ( u) , so macht u v im Algorithmus keinen Antrag.

9.4. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 4

253

Diese Aussage ist sicherlich beim ersten Antrag, der im Algorithmus gemacht wird, klar, da dort
ein Mann seiner absoluten Favoritin einen Antrag macht. Betrachten wir also nun den k -ten Antrag
im Algorithmus, in dem u ∈ U der Frau v ∈ V einen Antrag macht und nehmen an, dass die Aussage
für die ersten k − 1 Anträge richtig ist. Angenommen die Aussage wäre falsch und
v ≺u σ ( u) .

Dann hat u auch σ ( u) im Verlauf des Algorithmus einen Antrag gemacht. Da dieser abgelehnt
wurde oder eine Verlobung aufgelöst wurde, ist σ ( u) zum Zeitpunkt des k -ten Antrags mit u 1
verlobt, den sie u vorzieht:

u = σ − 1(σ ( u)) ≺σ( u) u 1 .

(9.2)

Da der Antrag von u 1 an σ ( u 1) vor dem k -ten Antrag liegt, gilt nach Induktionsvoraussetzung,
dass u 1 Frau σ ( u) nicht unsympathischer finden kann, als jede Frau mit der er in einer beliebigen
stabilen Hochzeit liiert ist. Also gilt für jede stabile Hochzeit τ ,
τ( u 1) u σ( u) .

1

Insbesondere ist also
σ( u 1) u σ( u) .

(9.3)

1

Da σ ( u 1) = σ ( u) muss sogar
σ( u 1) ≺u σ( u)

(9.4)

1
gelten. Die Ungleichungen (9.2) und (9.4) widersprechen aber für σ ( u) und u 1 der angenommenen

Stabilität der Hochzeit σ .

254

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

9.5 Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 5

L ösung 9.48 (zu Aufgabe 5.4). Wegen 10000 = 8192 + 1024 + 512 + 256 + 16 ist die Binärdarstel-
lung von

10000 = 10011100010000(2)

(binär).

Die erste Stelle von 1 ist 1 und lässt den Rest 1 = 1 1 . Da 4 = 22 ist, wiederholen sich bei der

3

4

12

4 3

Entwicklung die Ziffern alle zwei Stellen. Somit ist 1 periodisch mit der Periodenlänge 2 und es gilt

3

1 = 0 . 01

3

(2)

(binär) .

Als Reihe geschrieben heißt dies also

1

∞

1 i

= ∑ ai

,

3

2
i=1
wobei die ai für ungerade i Null und für gerade i Eins sind. Also brauchen wir nur über die geraden

Indizes zu summieren und können statt dessen nur gerade Potenzen aufaddieren:

1

∞

1 2 i

∞

1 i

= ∑

= ∑

.

3

2

4
i=1
i=1

Der Term auf der rechten Seite ist nun eine geometrische Reihe. Für geometrische Reihen gilt
bekanntlich die Formel

∞

∑

1
qi =
für |q| < 1 .

1 − q
i=0

Also

1

∞

1 i

1 ∞

1 i− 1

1 ∞

1 i

1

1

1

= ∑

=

∑

=

∑

=

· 1 = · 1 = · 4 ,

3

4

4

4

4

4

4

4 3

4 3
i=1
i=1
i=0

1 − 14

4
womit wir unser Ergebnis verifiziert haben.

Um genau die Darstellung wie in (5.1) zu erhalten, müssen wir als erste Stelle nach dem Komma
eine 1 haben, also

1 = 2 − 10 . 10

3

(2)

(binär) .

Als nächstes entwickeln wir nun 0 . 1 binär. Die ersten zwei Stellen von 0 . 1 = 1 sind 1 und 1 .

10

16

32

Als Rest behalten wir

1 − 3

1

1

=

=

· 1 .

10

32

160

16 10

Da 16 = 24 ist, ist die Binärdarstellung von 1 periodisch mit der Länge 4 also

10

0 . 1 = 0 . 00011(2) = 2 − 3 · 0 . 1100(2)

(binär) .

Wie eben verifizieren wir dies unter Ausnutzung der Formel für die geometrische Reihe:

1

3 ∞

1
i

3

3 · 16

=

∑

=

· 1

=

.

10

32

16

32

32 · 15
i=0

1 − 1

16

9.5. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 5

255

L ösung 9.49 (zu Aufgabe 5.8).

a) Betrachten wir die Definition von Rdt ( x), so erkennen wir, dass für x−t− 1 < B nichts zu zeigen

2
ist. Andernfalls ist
t

Rdt ( x) = σ Bn( B−t + ∑ x−iB−i) .

i=1

Wir unterscheiden nun zwei Fälle. Gibt es ein 1 ≤ i ≤ t mit x−i < B − 1, so sei 1 ≤ i 0 ≤ t der
größte Index mit x−i < B − 1. Also ist

0

t

Rdt ( x) = σ Bn B−t + ∑ x−iB−i
i=1

i 0
t

= σ Bn

∑ x−iB−i + B−t +( B− 1) ∑ B−i
i=1
i= i 0+1

i 0
t
t

= σ Bn

∑ x−iB−i + ∑ B−i − ∑ B−i
i=1
i= i 0
i= i 0+1

i 0

= σ Bn

∑ x−iB−i + B−i 0 .

i=1

Wir setzen dann

⎧

⎪

⎨ ˜ x−i = x−i
falls i < i 0

˜
x−i =

˜
x

= x

+ 1

0

⎪ −

−

⎩ i 0
i 0

˜
x−i = 0
falls i > i 0
und haben offensichtlich eine Darstellung
t

Rdt ( x) = σ Bn(∑ ˜ x−iB−i)

i=1
wie gewünscht gefunden.

Es bleibt der Fall, dass x−i = B − 1 für alle i = 1 ,...,t . Fast die gleiche Rechnung wie eben, nur
ohne führende Summe zeigt dann, dass

Rdt ( x) = σ Bn = σ Bn+1(1 · B− 1) ,
d.h. wir erhöhen den Exponenten um Eins, setzen x− 1 auf 1 und alle anderen xi auf 0 und haben
die gewünschte Darstellung gefunden.

b) Falls x−t− 1 < B , so ist

2

∞

|x − Rdt( x) | = Bn ∑ x−iB−i < Bn( x−t− 1 +1) B−t− 1 .

i= t+1

Da B gerade ist, muss x−t− 1 + 1 ≤ B sein. Und wir erhalten

2

|

Bn−t
x − Rdt( x) | < Bn · B · B−t− 1 =

.

2

2

256

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

Ist x−t− 1 ≥ B , so haben wir

2

∞

|x − Rdt( x) | = Bn B−t − ∑ x−iB−i < Bn( B−t −x−t− 1 B−t− 1)

i= t+1

≤

Bn−t

Bn( B−t − B B−t− 1) = Bn−t − 1 Bn−t =

.

2

2

2
c) Da |x| ≥ Bn− 1 ist, und wegen Teil b) haben wir:

Bn−t
x − Rd

t ( x)

B 1 −t

2

=

.

x

< Bn− 1

2
d) Wir übernehmen Argumentation und Rechnung aus c), da auch

Rdt ( x) ≥ Bn− 1
ist.

L ösung 9.50 (zu Aufgabe 5.11).

|δ x+ y| = | ˆ x+ ˆ y− x − y| ≤ | ˆ x− x| + |ˆ y− y| = |δ x| + |δ y|,

|

|δ

|ε

ˆ
x + ˆ
y − x − y|
x| + |δ y|
x+ y| =

≤

|x + y|

|x + y| .

Leider kann |x + y| sehr klein werden, es kann zu Auslöschung kommen. Wir werden dieses Phäno-
men im Anschluss an diese Aufgabe etwas eingehender diskutieren. Wegen der möglichen Auslöschung
können wir keine bessere Abschätzung für den relativen Fehler angeben.

|δ xy| = | ˆ xˆ y− xy| = |( ˆ xˆ y− ˆ xy) + ( ˆ xy − xy) | ≤ | ˆ x| · |ˆ y− y| + |y|| ˆ x− x| = | ˆ x||δ y| + |y||δ x|

≤ ( |x| + |δ x|) |δ y| + |y||δ x| = |x||δ y| + |y||δ x| + |δ x||δ y|,

|

|δ

|

|δ

|δ

|δ

|ε

ˆ
x ˆ
y − xy|
xy|
x||δ y| + |y||δ x| + |δ x||δ y|
x|
y|
x||δ y|
xy| =

≤

|xy|

= |xy|

|xy|

= |x| + |y| + |x|·|y| .

|

|

|

|δ

ˆ x

ˆ
xy − x ˆ y|

( ˆ
xy − xy) + ( xy − x ˆ y) |
y||δ x| + |x||δ y|
x | =

− x

≤
y

ˆ y y = |yˆ y| =

|y ˆ y|

|y ˆ y|

|

|

≤ y||δ x| + |x||δ y|
y||δ x| + |x||δ y|

|

=
y|( |y| − |δ y|)

|y| 2 − |δ y||y| ,

| ˆ x − x|

|δ x ||y|

|

|

|δ

|ε

ˆ
y
y
y|( |y||δ
y
x| + |x||δ y|)

y||δ x|
y|
x | =

≤

=
y

|x| = |x|

|x|( |y| 2 − |δ

|x||y| − |δ

|y| 2 − |δ
y
y||y|)

y||x| +
y||y| .

Bei der Abschätzung von |δ x | trat | ˆ y| im Nenner auf. In der Abschätzung müssen wir, damit der
y

Bruch nicht kleiner wird, den Nenner nach unten abschätzen. Per definitionem ist δ y = y − ˆ y oder
δ y = ˆ y−y. Da |δ y| < min {|y|,|ˆ y|} ist, haben y und ˆ y das gleiche Vorzeichen und also gilt entweder

|ˆ y| = |y| + |δ y| oder |ˆ y| = |y| − |δ y| auf jeden Fall aber |ˆ y| ≥ |y| − |δ y|.

Wir kommen nun zum letzten Teil, der der einfachste ist.

|δ ax| = |ax − a ˆ x| = |a||δ x|,

|

|ε
ax − a ˆ x|
ax| =

|ax|

= |ε x|.

9.5. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 5

257

L ösung 9.51 (zu Aufgabe 5.12). Für b > 0 vermeidet

√

−b + b 2 − 4 ac
x 1 =

2 a

√

√

( −b + b 2 − 4 ac)( b + b 2 − 4 ac)

=

√

2 a( b +
b 2 − 4 ac)

√

−b 2 + ( b 2 − 4 ac)2

=

√

2 a( b +
b 2 − 4 ac)

− 4 ac

=

√

2 a( b +
b 2 − 4 ac)

− 2 c

=

√
b +
b 2 − 4 ac
die Auslöschungsgefahr und für b < 0 berechnen wir x 2 als

√

−b − b 2 − 4 ac
x 2 =

2 a

√

√

( −b − b 2 − 4 ac)( −b + b 2 − 4 ac)

=

√

2 a( −b + b 2 − 4 ac)

√
b 2 − ( b 2 − 4 ac)2

=

√

2 a( −b + b 2 − 4 ac)

4 ac

=

√

2 a( −b + b 2 − 4 ac)

2 c

=

√

.

−b + b 2 − 4 ac

L ösung 9.52 (zu Aufgabe 5.15). Wir rechnen zunächst exakt, wobei wir stets, falls möglich, das

Pivotelement auf der Diagonalen wählen:

10

− 7 0

7

10

− 7 0

7

10

− 7

0

7

− 3 2 . 099 6 3 . 901

0

− 0 . 001 6 6 . 001

0 − 0 . 001

6

6 . 001

5

− 1 5

6

0

2 . 5 5

2 . 5

0

0 15005 15005

Im ersten Schritt addieren wir 3 der ersten Zeile, also (3 , − 2 . 1 , 0 , 2 . 1) zur zweiten Zeile und

10
subtrahieren die Hälfte der ersten Zeile von der letzten.

Im zweiten Schritt addieren wir das 2500-fache der zweiten Zeile, also

(0 , 2 . 5 , 15000 , 15002 . 5) zur dritten Zeile.

Wir rechnen nun rückwärts 15005 z = 15005 also z = 1 und − 0 . 001 y+6 = 6 . 001. Wir schließen,
dass das Gleichungssystem die eindeutige Lösung x = 0 , y = − 1 und z = 1 hat.

Nun zur Lösung mit 5-stelliger Arithmetik. Der einzige Schritt, bei dem dieses Problem auftaucht,
ist die Multiplikation von 6 . 001 mit 2500 . Dies ergibt 15002 . 5 = 1 . 50025 · 104 , was wir zu 15003
runden müssen. Dies addieren wir zu 2 . 5 und müssen wieder runden, was 15006 ergibt. Also sehen
die ersten drei Schritte unseres Gauss-Verfahrens so aus:

10

− 7 0

7

10

− 7 0

7

10

− 7

0

7

− 3 2 . 099 6 3 . 901

0

− 0 . 001 6 6 . 001

0 − 0 . 001

6

6 . 001

5

− 1 5

6

0

2 . 5 5

2 . 5

0

0 15005 15006

258

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

Durch rückwärts Einsetzen erhalten wir dann

15006

1
z =

≈ 1 . 0001 , y = − 1000(6 . 001 − 6 . 0006) = − 0 . 4 , x =

(7 − 2 . 8) = 0 . 42 .

15005

10

Der ursprünglich kleine Fehler in z wird durch das kleine Pivotelement bei y extrem verstärkt
und wir erhalten die Lösung (0 . 42 , − 0 . 4 , 1 . 0001), welche sehr weit von der exakten Lösung entfernt
ist. Führt man eine Pivotsuche durch und vertauscht etwa im zweiten Schritt zweite und dritte Zeile,
so erhält man hingegen

10

− 7 0

7 10

− 7 0

7 10 − 7

0

7

− 3 2 . 099 6 3 . 901 0

2.5 5

2 . 5

0 2 . 5

5

2 . 5

5

− 1 5

6

0 − 0 . 001 6 6 . 001

0

0 6 . 002 6 . 002
was beim rückwärts Einsetzen zur exakten Lösung führt.

L ösung 9.53 (zu Aufgabe 5.18).

a) Wir berechnen zunächst die Einträge der Matrix C = eie . Nach Definition der Matrixmultipli-
j
kation ist der Eintrag Ckl das Skalarprodukt aus der k -ten Zeile von ei (diese besteht nur aus

( ei) k ) mit der l -ten Spalte von e j , also ( e j) l . Dieses Produkt ist nur dann von Null verschieden,
wenn beide Faktoren gleich 1 sind. Also ist eie die Matrix, bei der nur der Eintrag mit Index i j
j
von Null verschieden, nämlich 1 ist. Pn entsteht aus I
i j
n , indem wir in den Positionen ii und j j je

1 abziehen und in i j und ji 1 addieren, also

Pn

−
i j = In − eie
i
e jej + eiej + e je
i .

b) Unter Ausnutzung von a), der Assoziativität der Matrizenmultiplikation und der Tatsache, dass
ee
e
i
j = 0 f ür i = j und e
i
i = 1 , erhalten wir

Pn

−

−
i j Pn
i j = ( In − eie
i
e jej + eiej + e je
i )( In − eie
i
e jej + eiej + e je
i )

= In − 2 eie −
i

2 e jej + 2 eiej + 2 e je
i

−eie

−
i ( −eie
i
e jej + eiej + e je
i )

−eje

−
j ( −eie
i
e jej + eiej + e je
i )

+ eie

−
j ( −eie
i
e jej + eiej + e je
i )

+ e je

−
i ( −eie
i
e jej + eiej + e je
i )

= In − 2 eie −

−
i

2 e jej + 2 eiej + 2 e je
i + ( eie
i
eiej)

+( e je −
j
e je
i ) + ( −eie
j + eie
i ) + ( −e je
i + e j e
j )

= In.

L ösung 9.54 (zu Aufgabe 5.24). Wir führen den Gaußalgorithmus an der Matrix A durch und tragen
direkt die Elemente von L unterhalb der Diagonalen ein. Dann erhalten wir

1

2 3 4 1

2 3 4 1 2

3 4 1 2 3 4

4 9 14 19 4 1

2 3 4 1

2 3 4 1 2 3

5 14 24 34 5

4 9 14 5 4 1 2 5 4 1 2

6 17 32 48 6

5 14 24 6 5

4 9 6 5 4 1

9.5. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 5

259

Also haben wir die LU -Zerlegung von A

⎛

⎞ ⎛

⎞⎛

⎞

1 2 3 4

1 0 0 0

1 2 3 4

⎜

⎜

⎟ ⎜

⎟⎜

⎟

4 9 14 19

4 1 0 0

0 1 2 3

⎜

⎟ ⎜

⎟⎜

⎟

⎝

⎟ ⎜

⎟⎜

⎟

5 14 24 34 ⎠ = ⎝ 5 4 1 0 ⎠ ⎝ 0 0 1 2 ⎠ .

6 17 32 48

6 5 4 1

0 0 0 1

Wir lösen nun Lci = bi für i = 1 , 2 , 3 durch vorwärts Einsetzen. Für b 1 = (0 , 3 , 13 , 20) haben wir dafür die Gleichungen
c 11 = 0

4 c 11 + c 12 = 3

5 c 11 + 4 c 12 + c 13 = 13

6 c 11 + 5 c 12 + 4 c 13 + c 14 = 20
woraus wir c 1 = (0 , 3 , 1 , 1) erhalten. Indem wir bei den c 2 und c 3 genauso vorgehen erhalten wir insgesamt
bi
ci 1 ci 2 ci 3 ci 4

(0 , 3 , 13 , 20)

0

3 1 1

( − 1 , 2 , 24 , 46) − 1 6 5 2

(7 , 32 , 53 , 141 ) 7

4 2

1

2

2

Also ist c 1 = (0 , 3 , 1 , 1) , c 2 = ( − 1 , 6 , 5 , 2) und c 3 = (7 , 4 , 2 , 1 ) .

2

Abschließend lösen wir U xi = ci durch rückwärts Einsetzen. Für c 1 haben wir dafür die Glei-
chungen
x 11 + 2 x 12 + 3 x 13 + 4 x 14 = 0
x 12 + 2 x 13 + 3 x 14 = 3
x 13 + 2 x 14 = 1
x 14 = 1
woraus wir x 14 = 1 und dann x 13 = − 1 , x 12 = 2 und x 1 = − 5 schließen. Also ist x 1 = ( − 5 , 2 , − 1 , 1) .

Mit den anderen beiden rechten Seite erhalten wir insgesamt
ci
xi 4 xi 3 xi 2 xi 1

(0 , 3 , 1 , 1)

1 − 1 2 − 5

( − 1 , 6 , 5 , 2) 2 1 − 2 − 8

(7 , 4 , 2 , 1 )

1

1

1

1

2

2

2

Also werden die Gleichungssysteme Axi = bi gelöst durch
x 1 = ( − 5 , 2 , − 1 , 1)

x 2 = ( − 8 , − 2 , 1 , 2)

1

1
x 3 = (1 , , 1 , ) .

2

2

260

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

L ösung 9.55 (zu Aufgabe 5.25). Beim Gauß-Jordan-Algorithmus erzeugen wir in den Pivotspalten

Einheitsvektoren. Damit wir nicht dreimal rechnen müssen, führen wir die elementaren Zeilenope-
rationen gleich auch auf allen rechten Seiten durch. Wir starten also mit dem Schema

1

2 3 4 0 − 1

7

4 9 14 19 3

2 32

5 14 24 34 13 24 53

6 17 32 48 20 46 141

2
und erzeugen durch elementare Zeilenumformumgen in der ersten Spalte einen Einheitsvektor. Dies
ergibt

1

2 3 4 0 − 1 7

0 1

2 3 3

6 4

0

4 9 14 13 29 18

0

5 14 24 20 52 57

2

Wir können im Folgenden weiter auf der Diagonalen pivotieren und erhalten

1 0 − 1 − 2 − 6 − 13 − 1 1 0 0

0 − 5 − 8 1

0 1

2

3

3

6

4 0 1 0 − 1

1 − 4 0

0 0 1

2

1

5

2 0 0 1

2

1

5 2

0 0

4

9

5

22 17 0 0 0 1

1

2 1

2

2

Zuletzt erzeugen wir den vierten Einheitsvektor e 4 in der 4. Spalte:

1 0 0 0 − 5 − 8 1

0 1 0 0

2 − 2 12

0 0 1 0 − 1

1 1

0 0 0 1

1

2 12

In den hinteren drei Spalten können wir nun die aus der letzten Aufgabe schon bekannten Lösungen
ablesen:

x 1 = ( − 5 , 2 , − 1 , 1)

x 2 = ( − 8 , − 2 , 1 , 2)

1

1
x 3 = (1 , , 1 , ) .

2

2

L ösung 9.56 (zu Aufgabe 5.30).

a) Sei λ ∈ R Eigenvektor von A. Da A regulär ist, ist λ = 0. Sei x ∈ R n ein Eigenvektor von A.

Dann ist

1

1

A− 1 x = A− 1 A λ x = λ x.

Also ist x ein Eigenvektor von A− 1 zum Eigenwert λ − 1 . Vertauschen wir die Rollen von A
und A− 1 so folgt aus dem bereits Gezeigten, dass, wenn λ − 1 ein Eigenwert von A− 1 ist, auch
λ = (λ − 1) − 1 ein Eigenwert A = ( A− 1) − 1 ist.

b) Nach Proposition 5.4 ist eine symmetrische Matrix genau dann positiv definit, wenn der kleinste

Eigenwert positiv ist. Dies ist offensichtlich genau dann der Fall, wenn alle Eigenwerte positiv

9.5. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 5

261
sind. Da die multiplikative Inverse einer positiven Zahl stets positiv ist folgt die Behauptung also
aus Teil a).

L ösung 9.57 (zu Aufgabe 5.31). Wir zeigen die Aufgabe mittels Kontraposition, also die Aussage:

A ist genau dann positiv definit, wenn im Verlauf des Choleskyverfahrens für alle 1 ≤ k ≤ n der

Ausdruck
k− 1
akk − ∑ l 2 ki > 0
i=1
ist.

Wir haben zwei Implikationen zu zeigen. Sei A zunächst positiv definit und 1 ≤ k ≤ n beliebig
aber fest. Nach Proposition 5.5 ist die k -te führende Hauptuntermatrix A{ 1 ...k}{ 1 ...k} positiv definit.

Im Beweis des Satzes über die Choleskyfaktorisierung haben wir gezeigt, dass akk − !c! 2 = akk −

∑ k− 1 l 2 > 0 ist.

i=1 ki

Ist umgekehrt dieser Ausdruck stets größer als Null, so gelingt die Choleskyfaktorisierung, also
ist A = LL für eine untere Dreiecksmatrix L mit nur positiven Diagonalelementen. Insbesondere
ist L regulär, also Lx = 0 für alle x ∈ R n \ { 0 } und somit

∀x ∈ R n \ { 0 } : xAx = xLLx = ( Lx) ( Lx) = !Lx! 2 > 0 .

Also ist A positiv definit.

L ösung 9.58 (zu Aufgabe 5.32). Wir starten bei den Matrizen eine Choleskyfaktorisierung. Fangen
wir mit

⎛

⎞

6

0

6 − 4

⎜

⎜

⎟

0

6 − 4

6 ⎟

A 1 = ⎜

⎝

⎟

6 − 4

6

0 ⎠

− 4 6 0 6 √
an. Zunächst ziehen wir aus a 11 die positive Wurzel l 11 =

6 . Als nächstes berechnen wir
a 21
l 21 = √ = 0

6
a

√

31
l 31 = √ =

6

6
a

√

41
l 41 = √ = − 2 6 .

6

3

+

√

√

Nun ist l 22 =
a 22 − l 2 =

6 − 0 =

6 und

21
a

√

32 − l 21 l 31
l 32 =

√

= − 2 6

6

3
a

√

42 − l 21 l 41
l 42 =

√

=

6 .

6

+

+

Wir versuchen weiter l 33 =
a 33 − l 2 − l 2 =

6 − 6 − 8 und stellen fest, dass der Ausdruck

31

32

3
unter der Wurzel negativ ist. Die Matrix ist also nach Aufgabe 5.31 nicht positiv definit.

Als Zusatzinformation betrachten Sie etwa den Vektor x = ( − 3 , 2 , 4 , 0) . Für diesen berechnen
wir

262

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen
xAx = − 34 < 0 .

Tatsächlich ist also schon die Hauptuntermatrix aus den ersten drei Indizes nicht positiv definit.

Kommen wir zu

⎛

⎞

16 8 4 16 20

⎜

⎜

⎟

⎜

⎟

⎜ 8 5 4 11 14 ⎟

⎜

⎟

⎟

A

⎜

⎟

2 = ⎜ 4 4 14 16 22

.

⎜

⎟

⎜

⎟

⎜

⎟

16 11 16 30 40

⎝

⎟

⎠

20 14 22 40 55

Mit den gleichen Formeln wie eben berechnen wir für die ersten drei Spalten den Choleskyfaktor

⎛

⎞

4 0 0

⎜

⎜

⎟

⎜ 2 1 0 ⎟

⎟

L

⎜

⎟

3 = ⎜ 1 2 3

.

⎜

⎟

⎝

⎟

4 3 2 ⎠

5 4 3

Für die letzten beiden Einträge hatten wir
a 43 − l 31 l 41 − l 32 l 42
l 43 =
l 33
a
l

53 − l 31 l 51 − l 32 l 52

53 =

.

l 33

Mit den Formeln

+
l 44 =
a 44 − l 2 − l 2 − l 2

41

42

43
a
l

54 − l 41 l 51 − l 42 l 52 − l 43 l 53

54 =
l 44

+
l 55 =
a 55 − l 2 − l 2 − l 2 − l 2

51

52

53

54
vervollständigen wir L zu

⎛

⎞

4 0 0 0 0

⎜

⎜

⎟

⎜ 2 1 0 0 0 ⎟

⎟

L = ⎜

⎜ 1 2 3 0 0 ⎟ .

⎜

⎟

⎝

⎟

4 3 2 1 0 ⎠

5 4 3 2 1

L ösung 9.59 (zu Aufgabe 5.34). Wir haben zu zeigen, dass die Abbildungen ! · ! 1 : R n → R und

! · ! ∞ : R n → R definiert durch
n

!x! 1 := ∑ |xi|,

!x! ∞ := max |xi|

1 ≤i≤n
i=1
die Axiome (N1), (N2) und (N3) erfüllen.

9.5. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 5

263
n

(N1)

!x! 1 = 0 ⇐⇒ ∑ |xi| = 0 ⇐⇒ ∀ 1 ≤ i ≤ n : xi = 0 ⇐⇒ x = 0,
i=1

!x! ∞ = 0 ⇐⇒ max |xi| = 0 ⇐⇒ ∀ 1 ≤ i ≤ n : xi = 0 ⇐⇒ x = 0 ,

1 ≤i≤n

(N2)

Sei α ∈ R. Dann ist
n
n
n

! α x! 1 = ∑ |α xi| = ∑ |α |·|xi| = |α | ∑ |xi| = |α |!x! 1 ,
i=1
i=1
i=1

! α x! ∞ = max |α xi| = max |α | · |xi| = |α | max |xi| = |α |!x! ∞ .

1 ≤i≤n

1 ≤i≤n

1 ≤i≤n

(N3)

n
n
n
n

!x + y! 1 = ∑ |xi + yi| ≤ ∑( |xi|+ |yi|) = ∑ |xi|+ ∑ |yi| = !x! 1 + !y! 1 , i=1
i=1
i=1
i=1

!x + y! ∞ = max |xi + yi| ≤ max ( |xi| + |yi|)

1 ≤i≤n

1 ≤i≤n

≤ max |xi| + max |yi| = !x! ∞ + !y! ∞ .

1 ≤i≤n

1 ≤i≤n

L ösung 9.60 (zu Aufgabe 5.37). Die Konditionszahl einer Matrix A bzgl. eine Matrixnorm ! · ! ist
cond( A) = !A− 1 !!A! . Wir müssen also zunächst die Matrizen invertieren. Für A 1 machen wir das
mit dem Gauß-Jordan-Algorithmus.

6

0

6 − 4 1 0 0 0 1

0

1 − 2

1 0 0 0

3

6

0

6 − 4

6 0 1 0 0 0 6 − 4

6

0 1 0 0

6 − 4

6

0 0 0 1 0 0 − 4

0

4 − 1 0 1 0

− 4 6 0 6 0 0 0 1 0 6 4 10 2 0 0 1

3

3

1 0

1 − 2

1

0 0 0 1 0 0

7 − 5

1

3 0

3

6

3

24

4

8

0 1

− 2

1

0

1 0 0 0 1 0 − 1

1

0 − 1 0

3

6

4

4

0 0 − 8

8 − 1

2 1 0 0 0 1 − 3

3 − 1 − 3 0

3

3

8

4

8

0 0

8 − 8

2 − 1 0 1 0 0 0 64 − 7

1

3 1

3

3

3

3

1 0 0 0

3

9

3 − 7

64

64

64

64

0 1 0 0

9

3 − 7

3

64

64

64

64

0 0 1 0

3 − 7

3

9

64

64

64

64

0 0 0 1 − 7

3

9

3

64

64

64

64

Also ist

⎛

⎞

3

9

3 − 7

⎜

⎟

1 ⎜ 9 3 − 7 3 ⎟

A− 1 =

⎜

⎟

1

64 ⎝ 3 − 7 3 9 ⎠ .

− 7 3 9 3

Die betrachteten Normen sind die Spaltensummennorm ! · ! 1 und die Zeilensummennorm ! · ! ∞ .

Da die Matrizen A 1 und A 2 und ihre Inverse symmetrisch sind, sind die beiden Normen gleich.

264

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

Die Zeilen- und Spaltensummen der Beträge von A 1 sind alle gleich 16 und von A− 1 alle 22 = 11 .

64

32

Damit erhalten wir

11

1
cond1( A 1) = cond∞( A 1) =

= 5 .

2

2

Zur Invertierung von A 2 nutzen wir die Ergebnisse der Choleskyfaktorisierung und invertieren

L , denn wegen A 2 = LL haben wir

A− 1 = ( LL) − 1 = ( L) − 1 L− 1 = ( L− 1) L− 1 .

2

Zur Erinnerung, wir hatten

⎛

⎞

4 0 0 0 0

⎜

⎜

⎟

⎜ 2 1 0 0 0 ⎟

⎟

L = ⎜

⎜ 1 2 3 0 0 ⎟ .

⎜

⎟

⎝

⎟

4 3 2 1 0 ⎠

5 4 3 2 1

Durch rückwärts Einsetzen finden wir ⎛

⎞

1

0

0

0 0

⎜ 4

⎜

⎟

⎜ − 1

1

0

0 0 ⎟

2

⎟

L− 1 = ⎜

⎜ 1 − 2

1

0 0 ⎟

⎜ 4

3

3

⎟

⎝

⎟

0 − 5 − 2

1 0 ⎠

3

3

0

4

1 − 2 1

3

3
und somit

⎛

⎞⎛

⎞

1 − 1

1

0

0

1

0

0

0 0

⎜ 4

2

4

4

⎜

⎟⎜

⎟

4

⎜ 0 1 − 2 − 5

⎟⎜ − 1 1 0 0 0 ⎟

3

3

3 ⎟ ⎜ 2

⎟

A− 1 = ⎜

− 2 1 ⎟⎜ 1 − 2

1

⎟ =

2

⎜ 0 0 1

0 0

⎜

3

3

3 ⎟ ⎜

4

3

3

⎟

⎝

⎟⎜

⎟

0

0

0

1 − 2 ⎠⎝ 0 − 5 − 2

1 0 ⎠

3

3

0

0

0

0

1

0

4

1 − 2 1

3

3

⎛

⎞

3

− 2 1

0

0

⎜ 8

3

12

⎜

⎟

4

⎜ − 2

6

4 − 13

⎟

3

3

3

3

⎜

⎟

⎜ 1

4

2

− 4 1 ⎟ .

⎜ 12

3

3

3

3 ⎟

⎝

⎟

0 − 13 − 4

5 − 2 ⎠

3

3

0

4

1

− 2 1

3

3

Die Zeilenbetragssumme von A− 1 nimmt das Maximum in der zweiten Zeile an, also

2

!

2

A− 1 !

!

.

2

1 = !A− 1

2

∞ = 13 3

Die maximale Zeilenbetragssumme von A 2 wird in der letzten Zeile angenommen und ist 151. Damit
erhalten wir als Konditionszahl

6191

2
cond1( A 2) = cond∞( A 2) =

= 2063 .

3

3

A 2 ist schlecht konditioniert.

9.6. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 6

265

9.6 Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 6

L ösung 9.61 (zu Aufgabe 6.2).

a) Wir müssen per definitionem zeigen, dass es zu jedem x ∈ ] a, b[ ein ε > 0 gibt mit Uε ( x) ⊆ ] a, b[.

Nun gilt

Uε ( x) ⊆ ] a, b[ ⇐⇒ a + ε ≤ x ≤ b − ε ,
da z ∈ Uε ( x) ⇐⇒ x − ε < z < x + ε . Nach Voraussetzung ist a < x < b. Setzen wir also

ε
x − a b − x

= min

,

,

2

2
so leistet dieses ε offensichtlich das Gewünschte. Also ist ] a, b[ offen.

Um zu zeigen, dass [ a, b] abgeschlossen ist, müssen wir nach Definition nachweisen, dass

R \ [ a,b] = ] −∞ ,a[ ∪ ] b, +∞[
offen ist. Liegt x ∈ ] −∞ , a[, so leistet ε = a − x, liegt es in ] b, +∞[, dann ε = x − b, das

Gewünschte.

b) Wir zeigen zunächst, dass B 2 offen ist. Wiederum wählen wir ε als den Abstand zu der Menge,

die wir vermeiden wollen. Sei x ∈ B 2 und ε = 1 −
x 2 + y 2 > 0 . Wir behaupten
y

x

Uε

⊆ B 2 .

y

Sei dazu

/

/

˜
x

/

/

∈
x

˜
x − x

Uε
d. h.

/

/
x 2 + y 2 .

(9.5)

˜
y
y

/ ˜ y−y / < 1 −

Da !·! als Norm die Dreiecksungleichung erfüllt, und weil

// /

/ x /

/

/
x 2 + y 2 < 1
y / =
ist, erhalten wir

// /

/

/

/ ˜ x /

/ ˜ x−x+ x /

/

/

/

/

˜
y / = / ˜
y − y + y /

/

/ / /

N3 /

/ /

/

≤ / ˜ x− x
x

/

/ /

/

˜
y − y / + / y /

/ /

(9.5)

/ x /

< 1 −
x 2 + y 2 + /

/

/
y /

= 1 .

Im zweiten Teil müssen wir nachweisen, dass

R \ S 1 = {( x,y) ∈ R2 | x 2 + y 2 = 1 }

offen ist. Ist x 2 + y 2 < 1 , so verfahren wir wie eben. Sei also x 2 + y 2 > 1 . Dann setzen wir

/ /

ε / /

= / x / − 1 > 0 und behaupten U
x ) ∩ S 1 = /0. Sei dazu
y
ε ( y

266

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

/

/ / /

˜
x

/

/ /

/

∈
x

˜
x − x
x

Uε
und somit /

/ /

/

˜
y
y

/ ˜ y−y / < / y / − 1 .

Hier brauchen wir die Dreiecksungleichung in der Form !a! ≥ !a + b! − !b! und berechnen
ansonsten analog zu eben

// / /

/ /

/

/ ˜ x /

/ ˜ x+ x − ˜ x / / x− ˜ x /

/

/

/

/ /

/

˜
y / ≥ / ˜
y + y − ˜ y / − / y − ˜ y /

// / / /
x /

/ x /

> /

/

/

/

/

= 1 .

y / − / y / − 1

Wir schließen ˜
x 2 + ˜
y 2 > 1 und somit ˜ x ∈ S 1 .

˜
y
c) Sei x ∈ R n \ Sn− 1 . Wir verfahren genau wie eben. Ist !x! < 1, so setzen wir ε = 1 − !x! > 0 und
behaupten Uε ( x) ∩ Sn− 1 = /0. Sei dazu

˜
x ∈ Uε ( x) und somit ! ˜ x − x! < 1 − !x!.

Dann berechnen wir

! ˜ x! = ! ˜ x− x + x!

≤ ! ˜ x− x! + !x!

< 1 − !x! + !x! = 1 .

Falls !x! > 1 ist, kopieren wir analog die zweite Rechnung aus Aufgabe b): Wir setzen ε =

!x! − 1 > 0 und berechnen für ˜ x ∈ Uε( x), also mit ! ˜ x− x! < !x! − 1:

! ˜ x! ≥ ! ˜ x+ x − ˜ x! − !x − ˜ x!

> !x! − ( !x! − 1) = 1 ,
woraus die Behauptung folgt.

L ösung 9.62 (zu Aufgabe 6.3). Wir haben zu zeigen, dass f in allen x ∈ R2 stetig ist. Wir wählen
y

ein solches Tupel x ∈ R2 beliebig aber fest. Nun müssen wir zeigen, dass es zu jedem (noch so
y
kleinen) ε > 0 ein δ > 0 gibt, so dass

x
x
f

Uδ

⊆ Uε f

.

y
y

Sei ein solches ε > 0 beliebig aber fest vorgegeben. Wir müssen nun ein δ bestimmen, so dass

// /

/ ˜ x
x /

˜
x
x

/

−

/

− f

˜
y
y / < δ = ⇒ f

˜
y
y

< ε .

Die hintere Ungleichung bedeutet

/

/ //

/ /

2

/

/2

|
x

˜
x

˜
x 2 + ˜
y 2 − x 2 − y 2 | = /

/

/

/

/

−

y /

/ ˜ y / < ε .

9.6. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 6

267

Weil ! · ! ≥ 0 ist, und nach der dritten binomischen Formel ist das gleichwertig mit

/ / / / / / / /

/ x / / ˜ x / / x / / ˜ x /

//

/ /

/ /

/ /

/ < ε .

(9.6)

y / − / ˜
y / · / y / + / ˜
y /

// //

Ist nun / ˜ x − x / < δ , so ist nach der Dreiecksungleichung

˜
y
y

// / / / / / / /

/ ˜ x / / ˜ x
x /

/ x / / x /

/

/ /

−

/ /

/ /

/

˜
y / ≤ / ˜
y
y / + / y / < / y / + δ
also

// / / /

/ / / /

/ ˜ x / / x /

/ x / / ˜ x /

/

/ /

/

/

/ /

/

˜
y / − / y / < δ
und analog auch

/ y / −/ ˜ y / < δ .

Setzen wir dies zunächst in (9.6) ein, so erhalten wir als Bedingung

/ / / / / / / /

/ /

/ x / / ˜ x / / x / / ˜ x /

/ x /

//

/ /

/ /

/ /

/ < δ 2/

/

≤ ε .

y / − / ˜
y / · / y / + / ˜
y /

/ y /+δ

Um (9.6) zu erfüllen, genügt es also ein δ mit

// //
δ
x

2 /

/

/

= ε
y / + δ
zu bestimmen. Durch quadratische Ergänzung oder mit der pq -Formel bestimmen wir die Nullstel-
len dieser quadratischen Gleichung als

/

"

/ //

// //2
δ

/ x /

/ x /

1 , 2 = − /

+ ε .

y / ±

/ y /

Wir wählen also

"// //

/ /

2

/

/
δ
x
x

=

//

/ +ε −/

/
y /

/ y / > 0
und rechnen nach, dass

// /

/ /

/ ˜ x
x /

/ x /

/

−

/

˜ x 2 + ˜ y 2 −x 2 −y 2 < δ 2/

/

= ε .

˜
y
y / < δ ⇒

/ y /+δ

L ösung 9.63 (zu Aufgabe 6.5). Nach der Kettenregel ist

( f ◦ g) ( t) = f ( g( t)) g( t) ,
also ist

√

sin

√

1

1
cos( t 0)

c( t 0) =

( t 0) √ = √

√

.

cos

2 t 0

2 t 0 − sin( t 0)

Für t 0 = π2 erhalten wir hieraus

1
cos(π)

− 1

− 0 . 16
c( t

2π

0) =

=

≈

.

2π − sin(π)

0

0

Der Tagentialvektor zeigt also in die gleiche Richtung wie in Beispiel 6.4, ist aber deutlich kürzer,
da wir die Kurve langsamer durchlaufen.

268

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

Hier die zugehörige Skizze:

t = 0
t = π2

L ösung 9.64 (zu Aufgabe 6.6). Wir berechnen zunächst den Wert von f an der angegebenen Stelle:

3π

3π
f

, 0

= sin

= − 1 .

2

2

Da der Sinus stets größer oder gleich − 1 ist, liegt hier ein lokales Minimum vor. Dieses ist kein
striktes lokales Minimum, sondern es gibt eine Kurve (einen Graben) durch diese Stelle, an der
dieses Minimum angenommen wird, wie wir im Folgenden zeigen werden.

Sei I = ] −ε , ε[ ein Intervall um 0. Wir betrachten die Kurve c : I → R2 definiert durch

⎛

+

⎞

3π

3π

2
t + t 2

2
c( t) = ⎝

+ t, − +

⎠ .

2

3π + t

2

+3π

Dann ist c(0) =

2
und ansonsten berechnen wir

0

⎛

+

⎞

2

3π

3π

3π

2
t + t 2

2
f ( c( t)) = sin ⎝

+ t

−

+ t

· +

⎠

2

2

3π + t

2

3π

3π

3π

= sin

+ 2 t

+ t 2 − 2
t − t 2

2

2

2

3π

= sin

= − 1 .

2

Also ist f auf dem gesamten Weg konstant gleich − 1 und somit liegt an der Stelle kein striktes
lokales Minimum vor.

Dieser Weg ist in Abbildung 6.2 schwarz eingezeichnet.

L ösung 9.65 (zu Aufgabe 6.14).

∇ f ( x,y) = 4 x 3 + 2 xy 2 − 8 x 2 − 16 xy − 8 y 2 , 2 x 2 y + 4 y 3 − 8 y 2 − 16 xy − 8 x 2 , 3

3

3

3

∇2

12 x 2 + 2 y 2 − 16 x − 16 y

4 xy − 16 x − 16 y
f ( x, y) =

3

3

3

.

4 xy − 16 y − 16 x

2 x 2 + 12 y 2 − 16 y − 16 x

3

3

3

9.6. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 6

269

Durch Einsetzen erhalten wir

∇ f (1 , 1) = 4 + 2 − 8 − 16 − 8 , 2 + 4 − 8 − 8 − 16 = ( − 10 ,− 10) 3

3

3

3

3

2

3

2

∇

8 8

8

8

8

8
f

,

=

6

− 16

, 6

− 16

= (0 , 0) .

3 3

3

3

3

3

Schließlich berechnen wir die Richtungsableitung an der Stelle (1 , 1) in Richtung d = (1 , 1)

mittels Proposition 6.2

∂ f

1

∂ (1 , 1) = ∇ f (1 , 1)

= − 20 .

d

1

L ösung 9.66 (zu Aufgabe 6.19). Wir hatten in Aufgabe 6.14 bereits den Gradienten an der Stelle

( 8 , 8 ) ausgewertet. Da offensichtlich der Gradient in (0 , 0) auch verschwindet, haben wir

3 3

∇

8 8
f

,

= ∇ f (0 , 0) = (0 , 0) .

3 3

Die Hessematrix an der Stelle Null ist auch Null, liefert also keine weiteren Informationen. Die

Hessematrix an der anderen Stelle ist

128

∇2

8 8

0

128

1 0
f

,

=

3

=

.

3 3

0

128 .

3

0 1

3

Also ist die Hessematrix positiv definit und an der Stelle liegt somit ein striktes lokales Minimum
vor.

Für die Stelle (0 , 0) betrachten wir g( t) = f ( t,t) = 3 t 4 − 32 t 3 = 3 t 3( t − 32 ). Da an der Stelle 3

9
t = 0 der rechte Faktor betraglich relativ groß ist, nämlich ungefähr 32 , verhält sich g in der Nähe

9
von Null in etwa wie t 3 . Da g(0) = g(0) = 0 ist und für ε > 0 hinreichend klein g( −ε) < 0 < g(ε) ist, hat die Funktion g in Null einen Sattelpunkt, also f kein lokales Extremum.

L ösung 9.67 (zu Aufgabe 6.23). Wir zeigen den Satz mittels Kontraposition. Genauer beweisen wir:

Sei x∗ ∈ R n mit h( x∗) = 0 und ∇ f ( x∗) = ∑ k λ
i=1
i∇ hi( x∗) f ür einen Vektor λ . Ist dann x∗ kein strik-
tes lokales Minimum der angegebenen Optimierungsaufgabe, so gibt es ein d im Tangentialraum
von S mit

k
d

∇2 f ( x∗) − ∑ λ i∇2 hi( x∗) d ≤ 0 .

i=1

Wie angegeben haben wir einen zweimal stetig differenzierbaren Weg
c : ] −ε , ε[ → R k+ l
mit ( hi ◦ c)( t) = 0 für alle t ∈ ] −ε , ε[ und alle i = 1 , . . . , k , c(0) = x∗ und d := c(0) = 0, so dass 0
keine strikte lokale Minimalstelle von f ◦ c ist. Dieses d liegt insbesondere im Tangentialraum von

S . Wir berechnen

( f ◦ c) (0) = ∇ f ( c(0)) c(0)

= ∇ f ( x∗) d

k

=

∑λ i∇ hi( x∗) d.

i=1

270

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

Da ( hi ◦ c)( t) = 0 ist, haben wir auch

0 = ( hi ◦ c) (0) = ∇ h( x∗) d
für alle i = 1 , . . . , k . Wir schließen hieraus ( f ◦ c) (0) = 0. Da f ◦ c in 0 keine Minimalstelle hat,
darf also nach den aus der Schule bekannten hinreichenden Bedingungen, bzw. Proposition 6.5,

( f ◦ c) (0) nicht echt positiv sein.

Wie im Beweis von Satz 6.21 haben wir zudem für i = 1 , . . . , k

∇ hi( x∗) c(0) = −d∇2 hi( x∗) d.

Also erhalten wir

0 ≥ ( f ◦ c) (0)

= ∇ f ( x∗) c(0) + d∇2 f ( x∗) d

k

=

∑λ i∇ hi( x∗) c(0)+ d∇2 f( x∗) d
i=1

k

=

∑λ i∇ hi( x∗) c(0) + d∇2 f( x∗) d
i=1
k

= ∑ −λ id∇2 hi( x∗) d + d∇2 f ( x∗) d
i=1

k

= d

∇2 f ( x∗) − ∑ λ i∇2 hi( x∗) d
i=1
und haben somit ein d im Tangentialraum von S gefunden, das beweist, dass L auf diesem Raum
nicht positiv definit ist.

L ösung 9.68 (zu Aufgabe 6.25).

a) Wir sollen f 1 auf dem Einheitskreis maximieren. Zunächst haben wir

∇ f 1( x,y) = ( − 2 x,− 4 y)

und

∇ h 1( x,y) = (2 x, 2 y) .

Als notwendige Bedingung an einen Extremwert erhalten wir hieraus

( − 2 x, − 4 y) = λ (2 x, 2 y) .

Diese Bedingung wird auf dem Einheitskreis für folgende vier Tripel ( x, y, λ ) erfüllt:

(0 , 1 , − 2) ,

(0 , − 1 , − 2) ,

(1 , 0 , − 1) ,

( − 1 , 0 , − 1) .

Für die Bedingungen zweiter Ordnung haben wir die Matrizen

∇

−

2

2

0

2 0

2 0
f 1(0 , ± 1) + 2∇2 h 1(0 , ± 1) =

+ 2

=

0 − 4

0 2

0 0
und

∇

−

2

2

0

2 0

0

0
f 1( ± 1 , 0) + ∇2 h 1( ± 1 , 0) =

+

=

.

0 − 4

0 2

0 − 2

9.6. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 6

271

Die Tangentialräume an S = {x ∈ R2 | x 2 + y 2 = 1 } in den Punkten (0 , ± 1) werden jeweils
aufgespannt von (1 , 0) und die in ( ± 1 , 0) von (0 , 1) .

Wir berechnen

2 0

1

0

0

0

(1 , 0)

= 2 > 0 und (0 , 1)

= − 4 .

0 0

0

0 − 4

1

Da der zulässige Bereich beschränkt und abgeschlossen ist, werden alle Minima und Maxima
angenommen. Also liegen die Minima in (0 , ± 1) mit f 1(0 , ± 1) = 0 und die Maxima in ( ± 1 , 0)

mit f 1( ± 1 , 0) = 1.

b) Hier ist ∇ h 2( x, y) = (1 , 1) und die notwendige Bedingung lautet

( − 2 x, − 4 y) = λ (1 , 1) ,
woraus wir schließen

2 x = 4 y
und
x + y = 1 .

Dieses lineare Gleichungssystem wird gelöst von y = 1 , x = 2 . Da die Hessematrix ∇2 h

3

3

2
verschwindet und ∇2 f 1 negativ definit ist, liegt an dieser Stelle ein lokales Maximum vom Wert
f 1( 2 , 1 ) = 4 . Lassen wir x oder y beliebig wachsen, so strebt f

3 3

3

1 gegen −∞ . Also ist das lokale

Maximum sogar ein globales.

c) Wir haben

∇

1
f 2( x, y, z) = ! ( x,y,z) ! ( x,y,z) für ( x,y,z) = (0 , 0 , 0) ,

∇ h 3( x,y,z) = (0 , 1 , 0) ,

∇ h 4( x,y,z) = (0 , 0 , 1) .

Als notwendige Bedingung unter Berücksichtigung der Nebenbedingungen y = z = − 1 erhalten
wir dann

1

! ( x,− 1 ,− 1) ! ( x,− 1 ,− 1) = (0 , λ1 , λ2) .

√

Wir schließen x = 0 , λ

2

1 = λ2 = −

. Als Kandidat für unser lokales Minimum haben wir also

2

(0 , − 1 , − 1) .

Die Hessematrizen der Nebenbedingungen verschwinden, die Hessematrix von f ist

⎛

⎞

! ( x,y,z) ! 2 −x 2

−xy

−xz

⎜ ! ( x,y,z) ! 3

! ( x,y,z) ! 3

! ( x,y,z) ! 3 ⎟

∇2

⎜

⎟
f

−xy

! ( x,y,z) ! 2 −y 2

−yz

2( x, y, z) = ⎜

⎝

⎟

! ( x,y,z) ! 3

! ( x,y,z) ! 3

! ( x,y,z) ! 3 ⎠ ,

−xz

−yz

! ( x,y,z) ! 2 −z 2

! ( x,y,z) ! 3

! ( x,y,z) ! 3

! ( x,y,z) ! 3
also

⎛

⎞

√

2

0

0

∇2

2 ⎜

⎟
f 2(0 , − 1 , − 1) =

⎝ 0 1 − 1 ⎠ .

4

0 − 1

1

Der Tangentialraum, den wir berücksichtigen müssen, wird aber von (1 , 0 , 0) aufgespannt. Auf
diesem Raum ist ∇2 f 2(0 , − 1 , − 1) positiv definit. Also liegt dort, wie erwartet, ein lokales Mini-

272

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen
mum vor. Betrachten wir das Verhalten von x gegen ±∞, so liegt in (0 , − 1 , − 1) offensichtlich
das globale Minimum von f 2 unter den angegebenen Nebenbedingungen.

L ösung 9.69 (zu Aufgabe 6.33). Zunächst berechnen wir

∇ f ( x,y,z) = (3 ,− 1 , 2 z) , ∇ g( x,y,z) = (1 , 1 , 1) , ∇ h( x,y,z) = ( − 1 , 2 , 2 z) .

Also verschwindet der Gradient von f nirgendwo. Da auch die Bedingung

∇ f ( x,y,z) = λ∇ h( x,y,z)

nicht zu erfüllen ist, muss g in jedem lokalen Extremum aktiv sein. Wir erhalten aus Gleichung (6.1)

in Satz 6.30 das System

3 = −λ + μ

− 1 = 2λ + μ

2 z = 2 zλ + μ

0 =
x + y + z

0 = −x + 2 y + z 2

Die ersten beiden Zeilen bilden ein Gleichungssystem in λ und μ , dessen Lösung wir zu λ = − 43
und μ = 5 berechnen. Da μ ≥ 0 ist, kann es sich hier höchstens um ein Maximum handeln. Setzen

3
wir diese Werte in die dritte Gleichung ein, so erhalten wir z = 5 . Damit bleibt

14

− 5 = x + y

14

− 25 = −x + 2 y

196
und somit y = − 95 , x = − 115 .

588

588

Nun untersuchen wir die L -Matrix. Wir haben

⎛

⎞

⎛

⎞

0 0 0

0 0 0

∇2

⎜

⎟

⎜

⎟
g( x, y, z) = ⎝ 0 0 0 ⎠ und ∇2 h( x,y,z) = ∇2 f ( x,y,z) = ⎝ 0 0 0 ⎠ .

0 0 0

0 0 2

Setzen wir z und λ ein, so ergibt dies

⎛

⎞

0 0

0

⎜

⎟

L = ∇2 f ( x, y, z) − λ ∇2 h( x, y, z) − μ∇2 g( x, y, z) = ⎝ 0 0

0 ⎠ .

0 0 2 + 83

Diese Matrix müssen wir auf dem orthogonalen Komplement von (1 , 1 , 1) und ( − 1 , 2 , 5 ) untersu-

7
chen. Dieses wird aufgespannt von ( − 3 , − 4 , 7). Die Matrix L ist auf diesem Raum positiv definit,
also liegt in dem untersuchten Punkt keine lokale Maximalstelle vor.

Also hat die Funktion unter den angegebenen Nebenbedingungen keine lokalen Extrema.

9.7. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 7

273

9.7 Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 7

L ösung 9.70 (zu Aufgabe 7.4).

a) Wir haben zwei Implikationen zu zeigen.

⇒“ Sei zunächst f eine konvexe Funktion und x , y zwei Punkte in epi( f ), sowie

”

ξ
υ
λ ∈ ]0 , 1[. Da f konvex ist, haben wir
f (λ x + (1 − λ ) y) ≤ λ f ( x) + (1 − λ ) f ( y) .

Da
x
y
ξ , υ ∈ epi( f ) , gilt f ( x) ≤ ξ und f ( y) ≤ υ . Da λ ≥ 0 und auch (1 − λ ) ≥ 0 ist, schließen wir
λ f ( x) ≤ λξ und (1 − λ) f ( y) ≤ (1 −λ)υ .

Setzen wir dies oben ein, erhalten wir
f (λ x + (1 − λ ) y) ≤ λξ + (1 − λ )υ
und somit auch

λ
λ x
y
x + (1 − λ ) y
ξ + (1 − λ) υ = λξ

∈ epi( f ) .

+ (1 − λ )υ

⇒“ Seien nun umgekehrt der Epigraph von f konvex, x,y ∈ S und λ ∈ ]0 , 1[. Da
x
und

”

f ( x)

y
in epi( f ) liegen, ist nach Voraussetzung auch
f ( y)

λ x + (1 − λ) y
x
y
λ

= λ

+ (1 − λ )

∈ epi( f ) .

f ( x) + (1 − λ ) f ( y)

f ( x)

f ( y)

Dies bedeutet aber per definitionem
λ f ( x) + (1 − λ) f ( y) ≥ f (λ x + (1 − λ) y) .

Also ist f konvex.

b) Auch hier sind wieder zwei Implikationen zu zeigen.

⇒“ Sei zunächst f konvex, d.h. für alle x,y ∈ S und alle λ ∈ ]0 , 1[ gilt

”

f (λ y + (1 − λ ) x) ≤ λ f ( y) + (1 − λ ) f ( x) .

Somit ist
f ( x + λ ( y − x)) − f ( x)

λ f ( y) + (1 −λ) f ( x) − f ( x)

λ

≤
λ

= f ( y) − f ( x) .

Lassen wir λ gegen 0 gehen, erhalten wir auf der linken Seite nach Proposition 6.2 gerade

∇ f ( x)( y − x) und somit im Grenzwert

∇ f ( x)( y − x) ≤ f ( y) − f ( x) ,
woraus die Behauptung sofort folgt.

274

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

⇒“ Gelte nun umgekehrt stets f ( y) ≥ f ( x) + ∇ f ( x)( y − x) für alle x,y ∈ S. Seien x

”

1 , x 2 ∈ S
und λ ∈ ]0 , 1[ beliebig aber fest gewählt. Sei
x := λ x 1 + (1 − λ ) x 2 .

(9.7)

Nach Voraussetzung haben wir dann die zwei Ungleichungen
f ( x 1) ≥ f ( x) + ∇ f ( x)( x 1 − x)

f ( x 2) ≥ f ( x) + ∇ f ( x)( x 2 − x) .

Da λ > 0 , (1 − λ ) > 0 schließen wir hieraus
λ f ( x 1) + (1 − λ) f ( x 2) ≥ f ( x) + λ∇ f ( x)( x 1 − x)

+(1 − λ )∇ f ( x)( x 2 − x)

= f ( x) + ∇ f ( x)(λ x 1 + (1 − λ ) x 2 − x)

(9.7)

= f ( x) + ∇ f ( x)( x − x)

(9.7)

= f (λ x 1 + (1 − λ ) x 2) .

Also ist f konvex.

c) Seien zunächst ˜ f :] a, b[ → R zweimal stetig differenzierbar und x, x + h ∈ S . Nach Satz 6.12 ist

˜

1
f ( x + h) = ˜ f( x) + h ˜ f( x) + h 2 ˜ f( x) + o( h 2) .

2

Nach Definition des Landau-Symbols o in Kapitel 2 ist dies gleichbedeutend mit

˜ f( x + h) − ˜ f( x) − h ˜ f( x) − 1 h 2 ˜ f( x)

lim

2

= 0
h→ 0
h 2

˜

⇐⇒
f ( x + h) − ˜ f( x) − h ˜ f( x)

1
lim

=

˜ f( x) .

h→ 0
h 2

2

Nach b) ist ˜ f genau dann konvex, wenn für alle x, y ∈ S stets

˜ f( y) − ˜ f( x) − ( y − x) ˜ f( x) ≥ 0 .

Ist also ˜ f konvex, so muss mit y = x + h auf Grund der letzten Rechnung notwendig für alle
x ∈ S gelten ˜ f( x) ≥ 0.

Ist ˜ f nicht konvex, so gibt es, wieder wegen b), x, y mit

˜ f( y) − ˜ f( x) − ( y − x) ˜ f( x) < 0 .

Nach dem Mittelwertsatz gibt es ein x < ξ1 < y mit

˜ f( y) − ˜ f( x) = ( y − x) ˜ f(ξ1) .

Eine zweite Anwendung des Mittelwertsatzes, diesmal auf die stetig differenzierbare Funktion f
liefert ein x < ξ2 < ξ1 mit

9.7. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 7

275

˜ f(ξ1) − ˜ f( x) = (ξ1 − x) ˜ f(ξ2) .

Insgesamt erhalten wir hieraus

˜ f(ξ

˜

1) − ˜
f ( x)

f (ξ2) =
ξ1 − x

˜ f( y) − ˜ f( x) − ˜ f( x)

y−x

=
ξ1 − x

˜ f( y) − ˜ f( x) − ( y − x) ˜ f( x)

=

< 0 .

( y − x)(ξ1 − x)

Kommen wir nun zum mehrdimensionalen Fall S ⊆ R n mit n ≥ 2.

⇒“ Sei zunächst f konvex und x ∈ S, sowie v ∈ R n . Wir haben zu zeigen, dass v∇2 f ( x) v ≥

” 0 ist. Da S offen ist, gibt es ein ε > 0 mit ] x−ε v,x+ε v[ ⊆ S. Dann ist f ◦c : ] −ε , ε[ → R, wobei c : ] −ε , ε[ → R n definiert ist durch c( t) = x + tv, also insgesamt ( f ◦ c)( t) = f ( x + tv) gilt, eine konvexe eindimensionale Funktion. Also ist ( f ◦ c) (0) ≥ 0. Da c(0) = 0 ist, haben
wir aber (vgl. Beweis von Satz 6.13)

( f ◦ c) (0) = v∇2 f ( x) v.

Somit folgt die Behauptung.

⇐“ Umgekehrt folgt genauso, dass für x,y ∈ S die Funktion ( f ◦ c) : ]0 , 1[ → R, definiert

” durch ( f ◦c)( t)= f( x+ t( y−x)) überall eine nicht-negative zweite Ableitung hat, also konvex
ist. Damit folgt aber
f (λ x + (1 − λ ) y) ≥λ f ( x) + (1 − λ ) f ( y) .

L ösung 9.71 (zu Aufgabe 7.5). Zunächst überlegen wir, dass für a ≤ y ≤ b

−a + b + a ≥ −y + b + a ≥ −b + b + a ⇐⇒ a ≤ b + a − y ≤ b.

Also ist ˜ f auf [ a, b] wohldefiniert.

Da f strikt unimodal ist, gibt es ein x∗ ∈ [ a, b] mit
f ( x∗) < f ( y) für alle y ∈ [ a, b] \ {x∗}.

Wir berechnen
f ( x∗) = f ( b + a − ( b + a − x∗)) = ˜ f( b + a − x∗) .

Nun berechnen wir für beliebiges y ∈ [ a, b]

y = a + b − x∗ ⇐⇒ b + a − y = x∗,
also ist für alle y ∈ [ a, b] \ {a + b − x∗}

˜ f( y) = f ( b + a − y) > f ( x∗) = ˜ f( b + a − x∗) .

Somit ist b + a − x∗ die eindeutige globale Minimalstelle von ˜ f. Also ist ˜ f strikt unimodal.

276

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

L ösung 9.72 (zu Aufgabe 7.8).

√

√

√

1 + 2 5 + 5

4 + 2(1 +

5)

1 +

5
a)

ζ2 =

=

= 1 +

= 1 + ζ ,

4

4

2

√

√

√

1

2

2(1 − 5)

2(1 − 5)

5 − 1
ζ =

√ =

√

√ =

=

,

1 +

5

(1 +

5)(1 − 5)

1 − 5

2

1

1 + ζ − ζ 1+ζ=ζ2 ζ 2 − ζ
ζ =

=

= 1 − 1

2
ζ2
ζ2
ζ .

b) Wir zeigen dies mittels vollständiger Induktion über n ∈ N. Für n = 0 und n = 1 berechnen wir

⎛

√

⎞

1

√

1

√

1

√ ⎝ 1 + 5

− 1 − 5

⎠

1 2 5

= √

= 1 = F 0 ,

5

2

2

5 2

⎛

√

⎞

2

√

2

√

√

1

√ ⎝ 1 + 5

− 1 − 5

⎠

1

5 + 5 − (1 − 2 5 + 5)

= √ · 1 + 2

5

2

2

5

4

√

4 5

= √ = 1 = F 1 .

4 5

Sei nun n ≥ 2. Dann ist

Fn = Fn− 1 + Fn− 2

⎛

√

⎞
n

√
n

√
n− 1

√
n− 1

IV

1

1 +

5

1 − 5

1 +

5

1 − 5

= √ ⎝

−

+

−

⎠

5

2

2

2

2

1
n
n− 1

= √
ζ n − − 1

+ ζ n− 1 − − 1

5
ζ
ζ

1

− 1 n− 1

= √
ζ n− 1 (ζ + 1) −

− 1

5
ζ
ζ + 1

n− 1
a)

1

− 1

1

= √
ζ n− 1ζ2 −

5
ζ
ζ2

1

− 1 n+1

= √
ζ n+1 −

5
ζ

⎛

√

⎞
n+1

√
n+1

1

1 +

5

1 − 5

= √ ⎝

−

⎠ .

5

2

2

L ösung 9.73 (zu Aufgabe 7.10). Wir berechnen zunächst die Fibonaccizahlen F 0 , . . . , F 11 .

1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89 , 144 .

Damit platzieren wir x 0 = − 72 + 55 = − 17 und y 0 = 17. Da wir wissen, dass arctan( x) eine
ungerade Funktion, also punktsymmetrisch zum Ursprung ist, ist arctan( x)2 eine gerade Funktion
und arctan2( x 0) = arctan2( y 0) ≈ 2 . 286 . Wir entscheiden uns, das Intervall [ x 0 , b] zu behalten. Damit wird x 1 = y 0 und y 1 = 38 und arctan2(38) ≈ 2 . 385, also bleibt das Intervall [ − 17 , 38] und wir setzen

9.7. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 7

277

Iteration
a
b
x y
f ( x)

f ( y)

0

− 72 72 − 17 17 2 . 286 2 . 286

1

− 17 72 17 38 2 . 286 2 . 385

2

− 17 38

4 17 1 . 758 2 . 286

3

− 17 17 − 4 4 1 . 758 1 . 758

4

− 4 17

4 9 1 . 758 2 . 132

5

− 4 9

1 4 0 . 617 1 . 758

6

− 4 4 − 1 1 0 . 617 0 . 617

7

− 1 4

1 2 0 . 617 1 . 226

8

− 1 2

0 1

0

0 . 617

Tabelle 9.3 Die Werte zu Lösung 9.73
x 2 = 4, y 2 = y 1 . Die weiteren Werte entnehmen Sie bitte Tabelle 9.3. Wir finden wie erwartet das
absolute Minimum an der Stelle 0 von selbigem Wert.

L ösung 9.74 (zu Aufgabe 7.15). Zunächst haben wir das Minimum der Funktion

( x− 5)2+( x− 2)2 falls x≤ 0
f ( x, 0) =

( x − 5)2 + ( x + 2)2 falls x > 0 .

Für x < 0 ist f ( x, 0) = ( |x| + 5)2 + ( |x| + 2)2 > f (0 , 0). Für x > 0 berechnen wir ( x − 5)2 + ( x + 2)2 = (( x − 1 . 5) − 3 . 5)2 + (( x − 1 . 5) + 3 . 5)2

= 2( x − 1 . 5)2 + 2 · 3 . 52 .

Dieser Ausdruck ist minimal für x = 1 . 5 . Nun haben wir in y -Richtung die Funktion

( y− 3 . 5)2+( −y+3 . 5)2 =2( y− 3 . 5)2 falls y< 1 . 5
f (1 . 5 , y) =

( y − 3 . 5)2 + ( −y − 0 . 5)2
falls y ≥ 1 . 5 .

Da ( y − 3 . 5)2 links vom Minimum 3.5 streng monoton fallend ist, ist f (1 . 5 , y) ≥ f (1 . 5 , 1 . 5) für y < 1 . 5 . Andererseits haben wir für y ≥ 1 . 5
f (1 . 5 , y) = (( y − 1 . 5) − 2)2 + (( y − 1 . 5) + 2)2 = 2( y − 1 . 5)2 + 8 .

Dieser Ausdruck ist minimal für y = 1 . 5 .

Als nächstes untersuchen wir also die Funktion

( x− 3 . 5)2+( x− 3 . 5)2 =2( x− 3 . 5)2 falls x≤ 1 . 5
f ( x, 1 . 5) =

( x − 3 . 5)2 + ( x + 0 . 5)2
falls x > 1 . 5 .

Wie oben ist die Funktion monoton fallend für x ≤ 1 . 5. Dort ist f ( x, 1 . 5) ≥ f (1 . 5 , 1 . 5) = 8.

Rechts von x = 1 . 5 berechnen wir wieder

( x − 3 . 5)2 + ( x + 0 . 5)2 = (( x − 1 . 5) − 2)2 + (( x − 1 . 5) + 2)2 = 2( x − 1 . 5)2 + 8
und wir haben wieder das Minimum in (1 . 5 , 1 . 5) .

Untersuchen wir die Funktion als Ganzes, so haben wir

278

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen
x≤y
f ( x, y) = ( x + y − 5)2 + ( x − y − 2)2

= (( x − 2 . 5) + ( y − 2 . 5))2 + (( x − 2 . 5) − ( y − 2 . 5) − 2)2

= 2 ( x − 2 . 5)2 + 2 ( y − 2 . 5)2 − 4( x − 2 . 5) + 4( y − 2 . 5) + 4

= 2 ( x − 2 . 5)2 + 2 ( y − 2 . 5)2 + 4 ( y − x)

+4 ≥ 4

≥ 0 für x≤y
x>y
f ( x, y) = ( x + y − 5)2 + ( x − y + 2)2

= (( x − 2 . 5) + ( y − 2 . 5))2 + (( x − 2 . 5) − ( y − 2 . 5) + 2)2

= 2 ( x − 2 . 5)2 + 2 ( y − 2 . 5)2 + 4( x − 2 . 5) − 4( y − 2 . 5) + 4

= 2 ( x − 2 . 5)2 + 2 ( y − 2 . 5)2 + 4 ( x − y)

+4 > 4 .

> 0 für x>y

Also hat das globale Minimum den Wert 4 und wird nur in (2 . 5 , 2 . 5) angenommen.

L ösung 9.75 (zu Aufgabe 7.16). Wiederum suchen wir zunächst in x -Richtung, minimieren also die

Funktion
f ( x, 0) = x 2 − 3 x + 10 = ( x − 1 . 5)2 + (10 − 2 . 25) ,
welche ihr Minimum für x = 1 . 5 annimmt. In y -Richtung betrachten wir die Funktion
f (1 . 5 , y) = y 2 + 5 y + 7 . 75 = ( y + 2 . 5)2 + 1 . 5 .

Vom Punkt (1 . 5 , − 2 . 5) aus bewegen wir uns also wieder in x-Richtung
f ( x, − 2 . 5) = x 2 − 3 x + 3 . 75 = ( x − 1 . 5)2 + 1 . 5 .

Da wir für das Minimum in x den gleichen Wert finden, für den wir eben schon in y -Richtung
gesucht haben, endet hier das Verfahren mit dem lokalen Minimum in (1 . 5 , − 2 . 5) (welches hier
wegen f ( x, y) = ( x − 1 . 5)2 + ( y + 2 . 5)2 + 1 . 5 auch das globale Minimum ist) vom Wert 1 . 5.

L ösung 9.76 (zu Aufgabe 7.23). Wir bestimmen zunächst die Ableitung
f ( x) = 4 x 3 − 10 x + 5
und starten in x 0 = 0. Dann ist

− 2 . 5
x 1 = x 0 − f ( x 0) = 0 −

= 0 . 5 .

f ( x 0)

5

Die folgenden Iterationspunkte generieren wir mit folgendem Pythonprogramm und tragen sie
tabellarisch in Tabelle 9.4 ein (die Syntax für xn in Python ist x**n).

x=0.0
f=1
while abs(f)>.00001:

f=x**4-5*x*x+5*x-2.5
df=4*x**3-10*x+5
xneu=x-f/df
print x,f,df,xneu
x=xneu

9.7. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 7

279
k
xk
f ( xk)

f ( xk)

xk+1

0

0 . 0

− 2 . 5

5 . 0

0 . 5

1

0 . 5

− 1 . 1875

0 . 5

2 . 875

2

2 . 875

38 . 8674316406

71 . 3046875 2 . 32991056755

3 2 . 32991056755

11 . 4755669995

32 . 29241631 1 . 97454641984

4 1 . 97454641984

3 . 07946743923 16 . 0482472237 1 . 7826583341

5 1 . 7826583341

0 . 6228004054 9 . 83364766883 1 . 71932472419

6 1 . 71932472419

0 . 0546303135673 8 . 13658133728 1 . 71261056363

7 1 . 71261056363 0 . 000572079686757 7 . 96648086878 1 . 71253875279

8 1 . 71253875279 6 . 49638707273 e − 08 7 . 96467159871 1 . 71253874463

Tabelle 9.4 Die Werte zu Lösung 9.75 für x 0 = 0

Der Tabelle entnehmen wir, dass wir nach 8 Iterationen eine approximative Nullstelle ungefähr
bei x = 1 . 712538745 liegt. Für x 0 = − 2 ändern wir die erste Programmzeile und tragen die Resultate
in Tabelle 9.5 ein. Hier erreichen wir die gewünschte Genauigkeit schon nach 7 Iterationen und
finden näherungsweise eine Nullstelle bei − 2 . 68496.

k
xk
f ( xk)

f ( xk)

xk+1

0

− 2 . 0

− 16 . 5

− 7 . 0 − 4 . 35714285714

1 − 4 . 35714285714

241 . 209417951 − 282 . 304664723 − 3 . 50271341232

2 − 3 . 50271341232

69 . 1698183381 − 131 . 872046797 − 2 . 97819119538

3 − 2 . 97819119538

16 . 9311385894 − 70 . 8798181186

− 2 . 739320117

4

− 2 . 739320117

2 . 59216146226 − 49 . 8288585518 − 2 . 68729882778

5 − 2 . 68729882778

0 . 106776245187 − 45 . 7531317412 − 2 . 68496508053

6 − 2 . 68496508053

0 . 000208620006562 − 45 . 5744048263 − 2 . 68496050296

7 − 2 . 68496050296 8 . 01588129207 e − 10 − 45 . 5740546043 − 2 . 68496050294

Tabelle 9.5 Die Werte zu Lösung 9.75 für x 0 = 2

L ösung 9.77 (zu Aufgabe 7.24). Wir kopieren unsere Vorgehensweise aus der letzten Aufgabe. Wir
bestimmen zusätzlich f ( x) .

f ( x) = 12 x 2 − 10 .

Unser Programm lautet also
x=0.0
df=1
while abs(df)>.00001:

df=4*x**3-10*x+5
d2f=12*x*x-10
xneu=x-df/d2f
print x,df,d2f,xneu
x=xneu

280

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen
k
xk
f ( xk)

f ( xk)

xk+1

0

0 . 0

5 . 0

− 10 . 0

0 . 5

1

0 . 5

0 . 5

− 7 . 0 0 . 571428571429

2 0 . 571428571429

0 . 0320699708455 − 6 . 08163265306 0 . 576701821668

3 0 . 576701821668

0 . 00019126426067 − 6 . 00898010661 0 . 576733651406

4 0 . 576733651406 7 . 01143232362 e − 09 − 6 . 00853954403 0 . 576733652573

Tabelle 9.6 Die Werte zu Lösung 9.77

Ein stationärer Punkt liegt also ungefähr bei x = 0 . 576734 .

L ösung 9.78 (zu Aufgabe 7.25). Wir berechnen zunächst den Gradienten von f

∇ f ( x,y) = (2 x + y − 3 , 2 y + x) ,
dann die Hessematrix

∇2

2 1
f ( x, y) =

,

1 2
und bestimmen deren Inverse zu

1

2 − 1

(∇2 f ) − 1( x, y) =

.

3

− 1 2

Damit wird die Iterationsvorschrift des Newtonalgorithmus zu

xk+1
x

2 − 1

2 x

=
k

− 1
k + yk − 3

,
yk+1
yk

3

− 1 2

2 yk + xk
also
xk+1 = xk − xk + 2
yk+1 = yk − yk − 1 .

Ausgehend von (0 , 0) landen wir in einer Iteration im globalen Minimum (2 , − 1), was nicht weiter
verwunderlich ist, da es sich bei dem Newtonverfahren zur Bestimmung eines stationären Punktes
um ein Verfahren zweiter Ordnung handelt, bei dem man also die Funktion durch eine quadratische

Funktion approximiert.

L ösung 9.79 (zu Aufgabe 7.29). Zunächst einmal bestimmen wir Q und b passend und erhalten

⎛

⎞⎛

⎞

⎛

⎞

1 − 1 − 1 − 1
x
x

⎜

⎟⎜

⎟

⎜

⎟

1

⎜ − 1

2

0

0 ⎟⎜ y ⎟

⎜ y ⎟
f ( x, y, z, w) =

( x, y, z, w) ⎜

⎟⎜

⎟ − (0 ,− 2 , 2 , 4)⎜

⎟

2

⎝ − 1

0

3

1 ⎠ ⎝ z ⎠

⎝ z ⎠ .

− 1

0

1

4
w
w

Wir haben also x 0 = (0 , 0 , 0 , 0) , d 1 = −g 0 = (0 , − 2 , 2 , 4) . Setzen wir dies in die Updateformeln (7.8), (7.9) und (7.10) ein, so haben wir zunächst

9.7. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 7

281

⎛

⎞

− 4

⎜

⎜ − ⎟

4 ⎟
d

1 Qd 1 = (0 , − 2 , 2 , 4) ⎜

⎝

⎟

10 ⎠ = 8 + 20 + 72 = 100 ,

18

− 4 − 4 − 16
x 1 = (0 , 0 , 0 , 0) −

(0 , − 2 , 2 , 4) = (0 , − 0 . 48 , 0 . 48 , 0 . 96) .

100

Wir berechnen Qx 1 zu (0 . 96 , − 0 . 96 , 2 . 4 , 4 . 32) und somit
g 1 := ( − 0 . 96 , 1 . 04 , 0 . 4 , 0 . 32) .

Dann ist

⎛

⎞

− 4

⎜

⎜ − ⎟

4 ⎟

144
g

1 Qd 1 = ( − 0 . 96 , 1 . 04 , 0 . 4 , 0 . 32) ⎜

⎝

⎟

= 9 . 44

10 ⎠ = − 0 . 32 + 4 + 25

18
und somit

⎛

⎞

⎛

⎞ ⎛

⎞

0 . 96

0

0 . 96

⎜

⎜ −

⎟

⎜

⎟ ⎜

⎟

1 . 04 ⎟

⎜ − 2 ⎟ ⎜ − 1 . 2288 ⎟
d 2 = ⎜

⎝

⎟

⎜

⎟ ⎜

⎟

− 0 . 4 ⎠ + 0 . 0944 · ⎝ 2 ⎠ = ⎝ − 0 . 2112 ⎠ .

− 0 . 32

4

0 . 0576

Die gerundeten Werte der folgenden 3 Iterationen, die auch wir nicht von Hand ausgerechnet haben,
entnehmen Sie bitte der Tabelle 9.7. Also liegt das Minimum an der Stelle (6 , 2 , 2 , 2) und man
verifiziert, dass dieser Wert tatsächlich die Lösung von Qx = b ist.

Variable
x
y
z
w
x 1

0 . 0

− 0 . 48

0 . 48

0 . 96
g 1

− 0 . 96

1 . 04

0 . 4

0 . 32
d 2

0 . 96

− 1 . 2288 − 0 . 2112

− 0 . 0576
x 2

0 . 32373 − 0 . 894376 0 . 408779 0 . 979423868
g 2

− 0 . 1701 − 0 . 11248 − 0 . 11797

0 . 00274
d 3

0 . 96

− 1 . 2288 − 0 . 2112

− 0 . 0576
x 3 1 . 0984456 − 0 . 564767

0 . 8601

0 . 9740932
g 3 − 0 . 17098 − 0 . 227979

0 . 45596

− 0 . 341969
d 4

1 . 58729

0 . 830559 0 . 369137

0 . 33222
x 4

6

2

2

2

Tabelle 9.7 Die Werte zu Aufgabe 7.29

L ösung 9.80 (zu Aufgabe 7.31).

a) Wir haben in Kapitel 5 den Aufwand der Lösung eines linearen Gleichungssystems mittels

LU -Zerlegung analysiert. Für die LU -Zerlegung benötigt man 1 ( n 3 − n) Multiplikationen und

3

1 (2 n 3 − 3 n 2 + n) Additionen. Für die Lösung der zwei Gleichungen mit den Dreiecksmatrizen

6
benötigt man jeweils 1 ( n 2 − n) Additionen und 1 ( n 2 + n) Multiplikationen. Also benötigen wir

2

2
insgesamt

282

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

• 1( n 3 + 3 n 2 + 2 n) Multiplikationen und

3

• 1(2 n 3 + 3 n 2 − 2 n) Additionen.

6
b) Bei der Cholesky-Faktorisierung wird der Teil analog zur LU -Zerlegung billiger. Dort hatten
wir, wenn wir die Divisionen wieder zu den Multiplikationen schlagen, 1 ( n 3 + 3 n 2 − 4 n) Mul-

6
tiplikationen, 1 ( n 3 − n) Additionen und n Quadratwurzeln. Der Aufwand für die Lösungen der

3

Gleichungssysteme mit Dreiecksmatrizen ist wieder der gleiche. Also haben wir insgesamt

• 1( n 3 + 9 n 2 + 2 n) Multiplikationen

6

• 1( n 3 + 3 n 2 − 7 n) Additionen und

6

• n Quadratwurzeln.

c) Für die Berechnung eines Skalarproduktes benötigen wir n Multiplikationen und n − 1 Additio-
nen. Für die Berechnung eines Matrix-Vektor-Produkts benötigen wir n 2 Multiplikationen und
n 2 − n Additionen. Also benötigen wir in jeder Iteration zur Berechnung von
xk :

ein Matrix-Vektor-Produkt, zwei skalare Multiplikationen, eine Division, eine Multiplika-
tion eines Vektors mit einem Skalar und eine Vektoraddition, macht insgesamt
n 2 + 3 n + 1 Multiplikationen und n 2 + 2 n − 2 Additionen.

gk :

Ein Matrix-Vektor-Produkt und eine Vektoraddition macht
n 2 Multiplikationen und n 2 Additionen.

dk+1 :

Wir gehen davon aus, dass wir Qdk schon für xk berechnet haben. Also kommen hier
noch hinzu zwei Skalarprodukte, eine Division, eine Multiplikation eines Vektors mit einem

Skalar und eine Vektoraddition macht

3 n + 1 Multiplikationen und 3 n − 2 Additionen.

Im schlechtesten Fall müssen wir n Iterationen durchführen. In der letzten können wir uns die

Berechnung von g und d sparen. Das macht als Gesamtaufwand
n 3 + 3 n 2 + n + ( n − 1) n 2 + ( n − 1)(3 n + 1) = 2 n 3 + 5 n 2 − n − 1 Multiplikationen und
n 3 + 2 n 2 − 2 n + ( n − 1) n 2 + ( n − 1)(3 n − 1) = 2 n 3 + n 2 − 6 n + 1 Additionen .

Der Rechenaufwand ist also in der Tat beim konjugierte Gradientenverfahren zur Lösung unrestrin-
gierter quadratischer Problem deutlich höher als die direkte Lösung der Gleichung Qx = b .

9.8. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 8

283

9.8 Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 8

L ösung 9.81 (zu Aufgabe 8.3). Wir bezeichnen mit x, y bzw. z die Anzahl Einheiten der Teile X ,Y
bzw. Z , die wir herstellen. Eine Stunde hat 3600 Sekunden. Also erhalten wir aus der Maschinen-
laufzeit als Restriktionen für die beiden Maschinen

36 x + 72 y + 180 z ≤ 80 · 3600
bzw.

180 x + 72 y + 144 z ≤ 80 · 3600 .

Wir dividieren die Ungleichungen durch 36 und erhalten als Modell
max 5 x + 4 y + 3 z
unter den Bedingungen
x + 2 y + 5 z ≤ 8000

5 x + 2 y + 4 z ≤ 8000
x, y, z ≥ 0 .

Man vermutet hier schon, dass die Optimallösung x = 0 = z und y = 4000 mit Zielfunktionswert

16000 ist. Wir werden dies in Lösung 9.89 verifizieren.

L ösung 9.82 (zu Aufgabe 8.4). a) Hier müssen wir nur Schlupfvariablen einführen. Das Problem
wird dann zu
max cx
unter Ax + y = b
x, y ≥ 0 .

Mit der Matrix ˜

A = ( A, Im) und dem Vektor ˜ c = ( c, 0) hat das Problem dann die Standardform

max ˜
c xy

unter ˜

A x = b
y

x

≥ 0 .

y
b) Hier haben wir keine Vorzeichenrestriktionen bei den Variablen und spalten diese deswegen in
einen positiven und einen negativen Anteil auf
x = x+ − x−.

Unser lineares Programm wird dann zu
max cx+ − cx−
unter Ax+ − Ax− = b
x+ , x− ≥ 0 .

Also erhalten wir die Standardform mit ˜

A = ( A, −A) , ˜ c = ( c, −c) und ˜ b = b.

c) Hier müssen wir wieder die Variablen aufspalten und ein Minimierungsprobblem in ein Maximie-
rungsproblem überführen.

284

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

− max ( −b) u+ − ( −b) u−
unter Au+ − Au− = c
u+ , u− ≥ 0 .

Also haben wir Standardform mit ˜

A = ( A, −A) , ˜ b = c und ˜ c = ( −b, b).

d) Hier ist eigentlich nichts zu tun. Das Problem hat bereits Standardform. Genauer setzen wir

˜

A = A, ˜ b = c und ˜
c = b .

L ösung 9.83 (zu Aufgabe 8.6). a) Sei xi die Menge Rohöl (in Tonnen), die auf Anlage i pro Tag
verarbeitet wird, also 0 ≤ x 1 ≤ 2 und 0 ≤ x 2 ≤ 3. Aus den Laufzeitrestriktionen erhalten wir dazu

10 x 1 ≤ 20 und 5 x 2 ≤ 20. Diese Bedingungen werden offensichtlich durch 0 ≤ x 1 ≤ 2 und 0 ≤ x 2 ≤ 3
impliziert, sind also redundant.

Die Gesamtmengenbeschränkung liefert x 1 + x 2 ≤ 4. Der Gesamterlös aus der Produktion beträgt

3

1

1

3

1710( x 1 + x 2) + 630( x 1 + x 2) = 1440 x 1 + 900 x 2

4

4

4

4
und die Kosten liegen bei

360 x 1 + 180 x 2 .

Die Zielfunktion ist also 1080 x 1 + 720 x 2 . Wir erhalten also als mathematisches Modell
max 1080 x 1 + 720 x 2 = 360(3 x 1 + 2 x 2)

x 2

1080 x 1 + 720 x 2 = 3600
unter den Bedingungen
x 2 ≤ 3
x 1 + x 2 ≤ 4
x 1 ≤ 2
x 1 ≤ 2
x 2 ≤ 3

1
x 1 + x 2 ≤ 4
x 1 , x 2 ≥ 0 .

x 1

1
b) In der nebenstehenden Abbildung lesen wir

1080 x 1 + 720 x 2 = 2160
als Optimallösung x 1 = x 2 = 2 ab mit einem

Gewinn von 3600 e.

L ösung 9.84 (zu Aufgabe 8.7). Der zulässige Bereich eines linearen Programms in Standardform hat
die Gestalt

P = {x ∈ R n | Ax = b, x ≥ 0 }.

Wir spalten Ax = b in die zwei Ungleichungen Ax ≤ b und −Ax ≤ −b auf und schreiben x ≥ 0 als

−Inx ≤ 0. Also ist

⎧

⎛

⎞

⎛

⎞⎫

⎪

⎨

A
b

⎪

⎜

⎟

⎜

⎟⎬

P = ⎪ x ∈ R n | ⎝ −A⎠ x ≤ ⎝ −b⎠

⎩

⎪

−

⎭

In

0
ein Polyeder.

L ösung 9.85 (zu Aufgabe 8.10). Nach den Sätzen der linearen Algebra ist Ax = b genau dann lösbar,
wenn der Rang der Koeffizientenmatrix A gleich dem Rang der erweiterten Matrix ( A, b) ist. Hat

( A, b) nicht vollen Zeilenrang, so gibt es eine Zeile, die wir streichen können, so dass sich der Rang

9.8. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 8

285
nicht ändert. Wir iterieren dies, bis die Matrix vollen Zeilenrang hat. Dann haben wir ein Menge von

Zeilenindizes I gefunden mit

{x ∈ R n | Ax = b} = {x ∈ R n | AI.x = bI}.

Also ist unser primales Programm äquivalent zu dem Problem

( P)

max cx
unter AI.x = bI
x ≥ 0 .

Das Programm ( P) erfüllt nun die Voraussetzungen des Dualitätssatzes 8.8, dass die Matrix vollen

Zeilenrang hat. Das duale Programm zu ( P) lautet

( D)

min yb

I

I
unter yA

I

I. ≥ c.

Ist nun ( P) zulässig und beschränkt, so gilt dies auch für ( P) . Nach Satz 8.8 ist also auch ( D)

zulässig und beschränkt und es gibt Optimallösungen x∗ des primalen und u∗ des dualen Problems

I

( D) mit
cx∗ = u∗

I
bI.

Das duale Programm unseres Ausgangsproblems lautet aber

( D)

min yb
unter yA ≥ c.

Setzen wir also ui = ( u∗)

I i f ür i ∈ I und ui = 0 sonst, so ist u zulässig für ( D) und
ub = u∗

I
bI = cx∗.

Auf Grund des Lemmas von der schwachen Dualität 8.1 muss u Optimallösung von ( D) sein.

L ösung 9.86 (zu Aufgabe 8.12). Das duale Programm lautet

( D)

min yb
unter yA ≥ c.

Um es in Standardform zu bringen, machen wir aus dem Minimierungsproblem ein Maximierungs-
problem, transponieren die Matrixprodukte, spalten die Variablen auf und führen Schlupfvariablen
ein. Dann lautet das Problem

⎛

⎞
y+

⎜

⎟

( D)

− max ( −b,b, 0)⎝ y− ⎠
z⎛ ⎞

y+

⎜

⎟
unter A, −A, −In ⎝ y− ⎠ = c
z
y+ , y−, z ≥ 0 .

286

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen

Das duale Programm zu diesem Problem lautet dann

( DD)

− min sc

unter s A, −A, −In ≥ −b, b, 0 .

Setzen wir x = −s und transponieren wir die Matrixprodukte wieder, so wird hieraus zunächst

( DD)

− min ( −c) x

⎛

⎞

⎛

⎞

−A

−b

⎜

⎟

⎜

⎟
unter ⎝ A ⎠ x ≥ ⎝ b ⎠

In

0
was offensichtlich äquivalent zu

( P)

max cx
unter Ax = b
x ≥ 0
ist.

L ösung 9.87 (zu Aufgabe 8.14). Es genügt zu zeigen, dass die beiden Programme äquivalent zu
einem dualen Paar linearer Programme sind. Dazu bringen wir ( P) in Standardform, indem wir

Schlupfvariablen einführen:

( P)

max ( c, 0) xy

unter ( A, I
x
m)

= b
y
x, y ≥ 0 .

Das duale Programm hierzu lautet

( D)

min ub
unter u( A, Im) ≥ ( c, 0) .

Die Bedingung uIm ≥ 0 bedeutet einfach u ≥ 0. Also ist ( D) äquivalent zu ( D), woraus die

Behauptung folgt.

L ösung 9.88 (zu Aufgabe 8.15). Sei für x ∈ P die Menge ˜

B definiert als

˜

B = { 1 ≤ i ≤ m | Ai.x = bi},
also als die Menge der Indizes, an denen die Ungleichung des Systems mit Gleichheit angenommen
wird. Wir haben zu zeigen:

x ist Ecke von P ⇐⇒ A ˜ B. hat vollen Rang ,
denn falls dabei | ˜

B| > n ist, so können wir aus ˜

B stets ein Element so weglassen, dass der volle

Rang erhalten bleibt.

Habe zunächst A ˜ B. vollen Rang. Sei B ⊆ ˜

B mit |B| = n, so dass AB. immer noch vollen Rang
hat. Seien y, z ∈ P mit x ∈ ] y, z[, also
x = ty + (1 − t) z
mit
t ∈ ]0 , 1[ .

Also haben wir

9.8. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 8

287
tAB.y + (1 − t) AB.z = bB .

(9.8)

Da y, z ∈ P liegen, gilt darüber hinaus
tAB.y ≤ tbB bzw. (1 − t) AB.z ≤ (1 − t) bB .

(9.9)

Ziehen wir (9.9) von (9.8) ab, so erhalten wir
tAB.y ≥ tbB
bzw.

(1 − t) AB.z ≥ (1 − t) bB .

Da y, z ∈ P sind, gelten die letzten beiden Ungleichungen auch in der anderen Richtung und wir
schließen, dass

AB.y = AB.z = bB
ist. Somit gilt also y = A− 1 b = z = x und somit ist x eine Ecke.

B.

Für die andere Richtung halten wir zunächst fest, dass für beliebige Indexmengen B , da A nur n

Spalten hat, stets der Rang nach oben durch n beschränkt ist. Es bleibt also der Fall zu untersuchen,
dass der Rang von A ˜ B. echt kleiner als n ist. Dann gibt es aber ein y ∈ R n \ { 0 } mit A ˜ B.y = 0.

Nach Definition von ˜

B gibt es ferner ein ε > 0 mit A( x + ε y) ≤ b und A( x − ε y) ≤ b. Also sind x + ε y, x − ε y ∈ P und x = 1 ( x + ε y) + 1 ( x − ε y) ist keine Ecke.

2

2

L ösung 9.89 (zu Aufgabe 8.16). Wir betrachten das Problem
max 5 x + 4 y + 3 z
unter den Bedingungen
x + 2 y + 5 z ≤ 8000

5 x + 2 y + 4 z ≤ 8000
x, y, z ≥ 0 .

In Standardform haben wir
max 5 x + 4 y + 3 z
unter den Bedingungen
x + 2 y + 5 z + s 1 = 8000

5 x + 2 y + 4 z + s 2 = 8000
x, y, z ≥ 0 .

Die Behauptung lautet, dass y und jede beliebige andere Variable eine Basis bilden, denn die
eindeutige Lösung des Gleichungssystems, das aus y und einer anderen Variable gebildet wird, muss
letztere auf Null setzen, da die Koeffizienten von y und die rechten Seiten in beiden Gleichungen

übereinstimmen. Wählen wir s

2 1

0 12

1 in die Basis, so haben wir A.B =

, und A− 1 =
und

2 0

.B

1 − 1

0

1

1 2 5 1 0
c

2

B A− 1 A = (4 , 0)

= (10 , 4 , 8 , 0 , 2) .

.B

1 − 1

5 2 4 0 1

Damit haben wir als reduzierte Kosten

288

Kapitel 9. Lösungsvorschläge zu den ¨

Ubungen
c − c

B A− 1 A = ( − 5 , 0 , − 5 , 0 , − 2) ≤ 0 .

.B

Also folgt die Behauptung aus Proposition 8.1.

L ösung 9.90 (zu Aufgabe 8.21). Nach Einfügen von Schlupfvariablen, erhalten wir folgendes Start-
tableau:

3

− 150

1

− 6 0 0 0 0

4

50

1

− 60 − 1

9 1 0 0 0

4

25

1

− 90 − 1

3 0 1 0 0

2

50

0

0

1

0 0 0 1 1 .

Da 3 > 1 ist, wählen wir die erste Spalte als Pivotspalte. Die erste Zeile kommt als Pivotzeile

4

50
in Frage, wird also gewählt. Im weiteren Verlauf, wählen wir stets als Pivotspalte diejenige mit
maximalen reduzierten Kosten und als Pivotzeile die erste mögliche. Damit erhalten wir folgende

Tableaus:

0

30

7

− 33 − 3 0 0 0

0 0

2

− 18 − 1 − 1 0 0

50

25

1 − 240 − 4

36

4 0 0 0

1 0

8

− 84 − 12

8 0 0

25

25

0

30

3

− 15 − 2 1 0 0

1

50

0 1

1

− 1 − 1

0 0

500

2

15

30

0

0

1

0

0 0 1 1

0 0

1

0

0

0 1 1

− 1 0 0

3

2

− 3 0 0

1

4

− 120 0 0

1

− 1 0 0

2

25

0 1 − 525 − 75

25 0 0

8

2

2

− 125

10500 1 0

50

− 150 0 0

2

− 1 1 0

1

1

− 1 0 0

− 1

40 0 1

1

− 2 0 0

160

40

120

60

4

3

3

− 25

125

0 0

525

75

− 25 1 1

− 10500 0 0 − 50

150 1 1

8

2

2

2

7

− 330 − 1 0 0

2 0 0

3

− 150

1

− 6 0 0 0 0

4

50

4

50

− 5

210

1

0 1 − 3 0 0

1

4

50

− 60 − 1

9 1 0 0 0

4

25

1

− 30 − 1 1 0 1 0 0

1

6

150

3

− 90 − 1

3 0 1 0 0

2

50

0

0

1 0 0

0 1 1

0

0

1

0 0 0 1 1

Wir sind also wieder bei unserem Ausgangstableau angekommen.

L ösung 9.91 (zu Aufgabe 8.26). Da wir keine zulässige Startbasis haben, optimieren wir in Phase

1 das Hilfsproblem. Da wir in keiner Spalte schon einen Einheitsvektor haben, fügen wir für
jede Gleichung eine künstliche Schlupfvariable hinzu. Die künstlichen Schlupfvariablen bilden die
zulässige Startbasis. Wir minimieren die Summe der künstlichen Variablen. Mit der Zielfunktion
haben wir also folgendes Starttableau:

0 0 0 0

0

0

0 − 1 − 1 − 1 − 1 0

1 0 0 0

0

0

0

0

0

0

0 0

3 5 3 2

1

2

1

1

0

0

0 3

4 6 5 3

5

5

6

0

1

0

0 11

2 4 1 1 − 3 − 1 − 4

0

0

1

0 1

1 1 2 1

4

3

5

0

0

0

1 5 .

Über der Basis stehen in der künstlichen Zielfunktionszeile noch keine Nullen, da wir noch die
reduzierten Kosten berechnen müssen. Dafür addieren wir alle Zeilen der Restriktionsmatrix zur

9.8. Lösungsvorschläge zu den ¨

Ubungen aus Kapitel 8

289
künstlichen Zielfunktion und erhalten:

10 16 11 7

7

9

8 0 0 0 0 20

1 0

0 0

0

0

0 0 0 0 0 0

3 5

3 2

1

2

1 1 0 0 0 3

4 6

5 3

5

5

6 0 1 0 0 11

2 4 1 1 − 3 − 1 − 4 0 0 1 0 1

1 1

2 1

4

3

5 0 0 0 1 5 .

Damit wir zunächst Brüche vermeiden, pivotieren wir aus Bequemlichkeit in der dritten Spalte und

Zeile

− 12 − 28 0 − 4 40 20 52 0 0 − 11 0 9

1

0 0

0

0

0

0 0 0

0 0 0

− 3 − 7 0 − 1 10

5 13 1 0 − 3 0 0

− 6 − 14 0 − 2 20 10 26 0 1 − 5 0 6

2

4 1

1 − 3 − 1 − 4 0 0

1 0 1

− 3 − 7 0 − 1 10 5 13 0 0 − 2 1 3
und als nächstes suchen wir uns die fünfte Spalte als Pivotspalte aus. Da wir Entartung vorliegen
haben, müssen wir die erste Zeile als Pivotzeile wählen.

0

0

0

0

0 0

0

− 4 0 1 0 9

1

0

0

0

0 0

0

0 0

0

0 0

− 3 − 7 0 − 1 1 1 13 1 0 − 3 0 0

10

10

10

2

10

10

10

0

0

0

0

0 0

0

− 2 1 1 0 6

11

19

1

7

0 1 − 1

3

0

1

0 1

10

10

10

2

10

10

10

0

0

0

0

0 0

0

− 1 0 1 1 3 .

Wir haben nur noch eine Spalte mit positiven reduzierten Kosten, nämlich die zehnte. Der Minimum-

Ratio-Test liefert die letzte Zeile als Pivotzeile.

0

0

0

0

0 0

0

− 3 0 0 − 1 6

1

0

0

0

0 0

0

0 0 0

0

0

− 3 − 7 0 − 1 1 1 13 − 1 0 0 3 9

10

10

10

2

10

5

10

10

0

0

0

0

0 0

0

− 1 1 0 − 1 3

11

19

1

7

0 1 − 1

2

0 0 − 1

7

10

10

10

2

10

5

10

10

0

0

0

0

0 0

0

− 1 0 1 1

3 .

Die reduzierten Kosten der künstlichen Zielfunktion sind kleiner gleich Null, also ist das Tableau
für das Hilfsproblem optimal. Da der Wert der Zielfunktion noch positiv, nämlich 6 ist, wenn wir
das Problem als Minimierungsproblem sehen, ist das eigentliche Problem unzulässig, hat also keine
zulässige Basislösung.

Mittels Hinsehen findet man, dass der Vektor (2 , − 1 , − 1 , 1) mit allen Spalten von A ein positives

Skalarprodukt hat, aber mit b ein Negatives. Also kann b keine nicht-negative Linearkombination
der Spalten von A sein.

Symbolverzeichnis

( P, ≤), 44

Rdt ( x), 113

( T, r) , 79

Sn− 1 , 143

( T, r, ρ), 80

Uε ( P), 106

( V, E) , 45

V ( X ) , 39

2 X , 3

Z( G) , 83

AG , 51

[ a, b] , ] a, b[ , ] a, b] , [ a, b[ , 105

A.I , 211

[ x, y] , ] x, y[ , 172

AI., A.J , 106

[ x] , 42

AJ. , 211

[ x] l, [ y] r , 41

BG , 51

Δ , 95

C( T, e) , 79

R m×n , 106

Ck( U ) , 151

Σ , Ω , 33

C

X
n, Kn, Km,n, Pn , 46

, 16
k

D( T, e) , 89
n

, 19
k 1 ,...,km

D( n) , 30
n , 15
k

E( G) ,V ( G) , 46
χ Y , 12

E( X ) , 38
cond( A) , 137

Fi , 176
deg+( v) , deg −( v) , deg+( v) , deg −( v) , 69

G

G

G \ e, G + e, G% e, G/e, G \ v, 72
deg G( v) , deg( v), 60

Gd , 121
diag , 128

Gi, j, η , 128
dist G( u, v), 51

Hn , 21
epi( f ) , 173

In , 106

∀∃, 3

∂

Jh( x) , 147
f

∂ , 146
d

∂

M + N, M − N, α N, M⊥ , 106
f

∂ , 146
xi

N( H) , 99
κ( G) , κ ( G), 72

N( xk), 189

!·! , 133

NG( H) , N( H), 99

!·! 1 , !·! 2 , !·! ∞ , 106, 135

Pn , 120

!·!

i j

X →Y , 134

RE , 105
w, 55

W. Hochstättler, Algorithmische Mathematik, Springer-Lehrbuch

291

DOI 10.1007/978-3-642-05422-8, c

Springer-Verlag Berlin Heidelberg 2010

292

Symbolverzeichnis
x,x, 2
aRb , 42
lin( S) , 193
a <· b, 44

N , Z , Q , R, 2
ex , 24

Z ≥n , 7
e

0
i , 106

N n, Z n, Q n, R n , 105
exG( v), 82

∇2 f , 148
f = O( g) , 21

∇ f , 146
f ◦ g, 4

∂ G( S), 89
f − 1 , 4

≺u,≺v , 102
p( A | B), 36
ϕ( n), 31
tM( n), 55
ζ , 176

Index

Abbildung, 4
asymptotisches Verhalten, 55
bijektive, 4
aufspannender

Einschränkung einer, 5

Baum, 84
injektive, 4

Teilgraph, 84
surjektive, 4

Wald, 84
abgeschlossene Menge, 143

Aufsplitten von Variablen, 204

Ableitung

Auslöschung, 256
partielle, 146

Außengrad, 69

Richtungs-, 146

Abstand, 51

B -adische Darstellung, 111

Abstandsfunktion, 51

Basis, 212

Abstiegsrichtung, 151

-lösung, 212
zulässige, 151

-verlassendes Element, 214

Abzählbarkeit, 2

-wechsel, 216
adjazent, 46
benachbarte Basen, 213

Adjazenzmatrix, 51

Nicht-, 212
affin lineare Funktion, 142

Start-, 216

Aitken double sweep method, 182
zulässige, 212
aktive Ungleichungsbedingung, 161

Basiswechsel, 216
algebraische Zahlen, 2

Baum, 77

Algorithmus
aufspannender, 84
effizienter-, 55

Blatt eines, 77

Polynomialzeit-, 55

Code eines, 79

Allquantor, 3
gepflanzter, 80

Äquivalenzklasse, 42
knotengelabelter, 93

Äquivalenzrelation, 42
minimaler aufspannender, 87

Arboreszenz, 79

Wurzel-, 79
argmin, 182

Bedeckungsrelation, 44
arithmetisches Mittel, 23
bedingte Wahrscheinlichkeit, 36
asymptotisch, 21
benachbarte Basen, 213

Beweis, 5

293

294

Index
durch Kontraposition, 5
entarteter Pivot, 218
durch vollständige Induktion, 7

Epigraph, 173
durch Widerspruch, 7

Ereignis, 33

BFS-tree, 57

-menge, 33

Big-Oh-Notation, 21
unabhängige Ereignisse, 35

Bigamieverbot, 95

Erwartungswert, 38
bijektiv, 4
euklidische Norm, 133
binäre Relation, 41

Eulerfunktion, 31

Binärzahl, 111

Eulerpfad, 244

Binomialkoeffizient, 15
eulersch, 70
bipartit, 94
eulersche ϕ -Funktion, 31

Bland’s rule, 218
eulersche Zahl, 24

Blatt, 77
eulerscher Graph, 65

Bogen, 69

Eulertour, 64

Breitensuchbaum, 57
gerichtete, 70

Existenzquantor, 3
charakteristische Funktion, 12

Exponent, 113

Choleskyfaktorisierung, 131
extremal, 211

Code, 79

Exzentrizität, 82

Darstellung

Fakultät, 13

B -adische, 111

Farbklassen, 94

Datenfehler, 114

Fehler
deBruijn Graph, 70

-Fortpflanzung, 114

Definition, 5
absoluter, 113

Differenzmenge, 3

Daten-, 114

Digraph, 69
relativer, 113
eulerscher, 70

Verfahrens-, 114

Multi-, 69

Fibonaccisuche, 176
zusammenhängender, 70

Fibonaccizahlen, 176
doppelt stochastische Matrix, 101

Fletcher-Reeves, 196

Dreieck eines Geradenarrangements, 6

Frobeniusmatrix, 121

Dreiecksmatrix, 119

Funktion

Dreiecksungleichung, 133
affin lineare, 142
duales Programm, 208
charakteristische, 12
k -fach stetig differenzierbare, 144

Ecke, 211

Komponenten-, 144
entartete, 218
konvexe, 172

Eigenvektor, 128
lineare, 142

Eigenwert, 128
stetige, 143
einfacher Graph, 45
strikt konvexe, 172

Einheitsmatrix, 106

Einschränkung einer Abbildung, 5
ganze Zahlen, 2

Elternteil, 80

Gauß-Jordan-Elimination, 127
entartete Ecke, 218

Index

295

Gauß-Southwell-Verfahren, 182

Hessematrix, 148

Gaußelimination, 117

Hexadezimalzahl, 111

Gaußeliminationsschritt, 117

Hintereinanderausführung, 4

Genauigkeit, 2

Homogenität, 133
geometrische Reihe, 254
geometrisches Mittel, 23

Induktion
gepflanzter Baum, 80
vollständige, 7

Gerüst, 84

Induktionsvoraussetzung, 18

Geradenarrangement, 6
induzierter
gerichteter Graph, 69

Schnitt, 89

Gleichverteilung, 35
induzierter Teilgraph, 49

Gleitkommazahlen, 113
injektiv, 4
globale Variable, 59
inkompatible Ereignisse, 34

Goldener Schnitt, 179

Innengrad, 69

-Suche, 180

Intervall
größter Fortschritt, 218
abgeschlossenes, 105

Gradient, 146
halboffenes, 105

Gradsequenz, 61
offenes, 105

Graph, 45
inverse Ackermannfunktion, 85
bipartiter, 94

Inzidenzmatrix, 51

Farbklassen, 94
irrationale Zahlen, 2
deBruijn-, 70
isomorph, 47
einfacher, 45

Isomorphismus, 47
eulerscher, 65
von Bäumen, 79

Gerüst eines, 84

Isoquanten, 153
gerichteter, 69

IV, 18

Komponente eines, 50

Jacobische, 147

Minor, 73

Orientierung, 70
künstliche Schlupfvariable, 222

Petersen-, 60

Kante eines Polyeders, 213
ungerichteter, 45

Kanten, 46

Unterteilung eines, 73
kantenüberdeckende Knotenmenge, 98
vollständiger, 46

Kantenmenge, 46
graphische Methode, 205

Kardinalität, 3

Graphisomorphie, 47
kartesisches Produkt, 3

Keller, 60

Höhenlinien, 153
k -fach kantenzusammenhängend, 72

Handshake-Lemma, 61
k -fach knotenzusammenhängend, 72
harmonische Reihe, 21
k -fach stetig differenzierbar, 144
harmonische Zahlen, 21

Kind, 80

Hasse-Diagramm, 44

Knoten, 45

Hauptachsentransformation, 128

- Überdeckung, 98

Hauptuntermatrizen, 130
gematchter, 95
head, 69
ungematchter, 95

296

Index

Knotenüberdeckung, 98

Mächtigkeit, 3, 4
knotengelabelter Baum, 93

M -alternierender Weg, 96

Knotengrad, 60

Mannigfaltigkeit, 155

Kodierungslänge, 55

Mantisse, 113

Kolmogorow-Axiome, 34

Maschinengenauigkeit, 113

Kombination ohne Wiederholung, 16

Maschinenzahlen, 113

Komplement, 3

Matching, 95

Komplexität, 55
perfektes, 95

Worst-Case-, 55

Matrix

Komponente, 50
doppelt stochastische, 101

Komponentenfunktion, 144

Dreiecks-

Komposition, 4
obere, 119

Kondition, 137
untere, 119
konjugiert, 190

Einheits-, 106

Kontraposition, 5

Frobenius-, 121

Konvergenzfaktor, 185

Hauptunter-, 130

Konvergenzrate, 185

Hesse-, 148
lineare, 185

Kondition einer, 137
konvex, 24, 171, 172
orthogonale, 128
strikt, 171, 172

Permutations-, 120

Konvexkombination, 101
symmetrische, 106

Koordinatenabstiegsmethode, 182

Transpositions-, 120

Kreis, 46

M -augmentierender Weg, 96

Kurve, 143

Menge
k -zusammenhängend, 72
abgeschlossene, 143

Differenz, 3

Länge eines Weges, 50
konvexe, 172

Lagrange’sche Multiplikatoren, 157

Mächtigkeit einer, 4

Laplace-Experiment, 35
offene, 143
lexikografische Ordnung, 45

Permutation einer, 13
line search, 181

Potenz-, 3
lineare

Schnitt, 3

Funktion, 142

Vereinigung, 3

Ordnung, 44

Mengenpartition, 3

Hülle, 193

Methode des doppelten Abzählens, 93

Konvergenzrate, 185

Metrik, 51

Lineares Optimierungsproblem, 202
minimaler aufspannender Baum, 87

Standardform eines, 202

Minimum

Lineares Programm, 202
globales, 142
beschränktes, 202
lokales, 142
duales, 208
relatives, 142
primales, 208
striktes globales, 142
zulässiges, 202
striktes lokales, 142

LU -Zerlegung, 116

Minimum-Ratio-Test, 214

Index

297

Minor, 73

Partialordnung, 43

Multidigraph, 69
partielle Ableitung, 146

Multigraph, 48, 49

Partition, 3

Multinomialkoeffizient, 19

Pascalsches Dreieck, 17
perfektes Matching, 95

Nachbar, 46

Permutation, 4

Nachbarschaft, 99

Permutation einer Menge, 13

Nachfahre

Permutationsmatrix, 101, 120
direkter, 80

Petersengraph, 60
natürliche Norm, 134

Pfad, 50
natürliche Zahlen, 2

Phase I, 223
natürlicher Logarithmus, 21

Pivot

Newtonverfahren, 187

-element, 117, 216

Nichtbasis, 212

-regel, 218

Norm, 133

-regeln, 218
euklidische, 106, 133

-suche, 126

L 1 -, 106
entarteter, 218

L 2 -, 106

Polyeder, 206, 207

L∞ -, 106
positiv semidefinit, 154

Maximums-, 106

Potenzmenge, 3
natürliche, 134
primales Programm, 208

Spaltensummen-, 135

Priority Queue, 90

Spektral-, 135

Produkt, 2

Zeilensummen-, 135
von Permutationen, 13
normierter Vektorraum, 133

Punkt

NP, 56
extremaler, 211

NP-Vollständigkeit, 56
regulärer, 161
stationärer, 183, 189
obere Dreiecksmatrix, 119

Python, 14
offene Menge, 143

Ohrenzerlegung, 74

Q -konjugiert, 190
offene, 75

Q -orthogonal, 190

Oktalzahl, 111
quadratisches Problem, 171

Ordnung, 44
lexikographische, 45
rationale Zahlen, 2
lineare, 44
reduzierte Kosten, 213

Total-, 44
reelle Zahlen, 2

Orientierung, 70
regulärer Punkt, 161
orthogonal, 128

Reihe, 108
orthogonales Komplement, 156
geometrische, 254

Orthonormalbasis, 128

Rekursionsgleichung, 176
rekursiv, 58

P, 56

Relation, 41
parallele Kanten, 48, 49

Äquivalenz-, 42
partial pivoting, 222

298

Index

Bedeckungs-, 44
superlineare Konvergenz, 185
binäre, 41
surjektiv, 4
relativer Fehler, 26
symmetrische Differenz, 95
revidierter Simplexalgorithmus, 222

Richtungsableitung, 146
tail, 69

Rosenbrock

Tangentialvektor, 144

Methode von, 184

Teilbaum, 76
runden, 113

Teilgraph, 49

Rundungsfehler, 2

Totalordnung, 44

Transposition, 15

Satz, 5

Transpositionsmatrix, 120

Satz von Menger, 73
transzendente Zahlen, 2

Schleife, 48, 49
tree, 77

Schlupfvariable, 203

Tupel, 3
künstliche, 222

Schnitt, 89

Umkehrabbildung, 4
induzierter, 89
unär, 16

Schnitt von Mengen, 3
unabhängige Ereignisse, 35, 36

Schnittknoten, 76
ungerichteter Graph, 45

Schrittweite

Ungleichung vom arithmetischen und geome-

-nsteuerung, 169
trischen Mittel, 23
signierte Teilmenge, 15
uniformer Wahrscheinlichkeitsraum, 35

Simplexalgorithmus, 142, 216
unimodal
revidierter, 222
strikt, 169

Simplextableau, 216

Universum, 3

Spacer step, 196
untere Dreiecksmatrix, 119

Spaltensummennorm, 135

Unterteilung, 73

Spaziergang, 50

Urbildmenge, 4

Spektralnorm, 135

Urnenexperiment, 11
stabile Hochzeit, 102

Valenz, 60
frauenoptimale, 103

Valenzsequenz, 61
männeroptimale, 103

Varianz, 39

Stack, 60

Variation

Standardform, 202
mit Wiederholung, 11

Stapel, 60
ohne Wiederholung, 12

Startbasis, 216

Venn-Diagramm, 28
stationärer Punkt, 183, 189

Verbindungsstrecke
steilster Anstieg, 218
abgeschlossene, 172
stetig differenzierbar, 148
offene, 172
stetige Funktion, 143

Vereinigung von Mengen, 3

Stirlingsche Formel, 26

Verfahrensfehler, 114
strikt konvex, 171, 172
vertex cover, 98
strikt unimodal, 169
vollständige Induktion, 7

Summation, 2
vollständiger Graph, 46

Index

299

Vorzeichen, 113
rationale, 2
reelle, 2

Wahrscheinlichkeit, 20
transzendente, 2
bedingte, 36

Zeilensummennorm, 135

Wahrscheinlichkeitsmaß, 34

Zellen, 6

Wahrscheinlichkeitsraum, 34

Zentrum, 83

Wald, 57, 84

Zielfunktion, 141
aufspannender, 84

Zufallsexperiment, 33

Weg, 47, 50, 143

Zufallsvariable, 38

M -alternierender, 96
zulässig

M -augmentierender, 96

-es Lineares Programm, 202

Wertemenge, 4
zulässige

Widerspruchsbeweis, 7

Richtung, 151
wohlgeklammert, 81

Basis, 212

Wurzelbaum, 79

Basislösung, 212

Wurzelknoten, 79
zulässiger Bereich, 202
zusammenhängend, 50, 70

Zahl

Zusammenhang

Binär-, 111

Kanten-, 72

Gleitkomma-, 113

Knoten-, 72

Hexadezimal, 111

Zusammenhangskomponente, 50

Maschinen-, 113

2-zusammenhängend, 73

Oktal-, 111

Zykel, 13

Zahlen
zykeln, 219
algebraische, 2

Zyklenzerlegung, 13
ganze, 2
zyklisches Abstiegsverfahren, 182
irrationale, 2

Zyklus, 13
natürliche, 2

Literaturhinweise

1. Martin Aigner. Diskrete Mathematik. Vieweg, sechste edition, 2006.

Sehr gutes, aber knapp gefasstes Buch über Diskrete Mathematik. Es wendet sich eher an Mathematikstu-
denten, enthält aber zahlreiche Übungsaufgaben teilweise mit Lösungen. Es enthält auch ein Übersichts-
kapitel zur Linearen Optimierung.

Relevante Kapitel: 1, 5, 6–8, 15

Zu Kapitel: 1–4, 8.

2. Walter Alt. Nichtlineare Optimierung – Eine Einführung in Theorie, Verfahren und Anwendungen. Vieweg,

Braunschweig/Wiesbaden, 2002.

Nicht zu umfangreiche, reich bebilderte Einführung in nichtrestringierte und restringierte Optimierungs-
probleme mit vielen Beispielen.

Relevante Kapitel: 1, 3, 4

Zu Kapitel: 6, 7.

3. Mokhtar S. Bazaraa, Hanif D. Sherali, and C. M. Shetty. Nonlinear programming. Wiley-Interscience [John

Wiley & Sons], Hoboken, NJ, third edition, 2006. Theory and algorithms.

Sehr umfangreiches, anspruchsvolles Buch über nichtlineare Optimierung mit einem kleinen Abschnitt
über lineare Optimierung. Enthält viele Übungsaufgaben (ohne Lösungen).

Relevante Kapitel: 2, 4, 5, 8

Zu Kapitel: 6, 7, 8.

4. Ulrik Brandes. Eager st -ordering. In Algorithms—ESA 2002, volume 2461 of Lecture Notes in Computer Science,
pages 247–256. Springer, Berlin, 2002.

Hier kann man mehr über Ohrendekompositionen lesen.

5. Andreas Brandstädt. Graphen und Algorithmen. Teubner, 1994.

Sehr gutes Buch über Graphalgorithmen.

Relevante Kapitel: 1–3, 6

Zu Kapitel: 3, 4.

6. Manfred Brill. Mathematik für Informatiker. Hanser, München, Wien, 2001.

Gutes Buch zum diskreten Teil unseres Buches. Probleme werden meist an Beispielen verdeutlicht und
mit Übungsaufgaben (ohne Lösungen) untermauert.

Relevante Kapitel: 2, 5–6, 8

Zu Kapitel: 1–5.

301

302

Literaturhinweise

7. Vašek Chvátal. Linear Programming. W. H. Freeman and Company, New York, San Francisco, 1983.

Ein absoluter Klassiker unter der Literatur zur linearen Optimierung. Es ist trotz seines Alters sehr
schön geschrieben und bietet auch viele Beispiele zur Modellierung in der Linearen Optimierung. Zu den
zahlreichen Übungsaufgaben gibt es in einem gesonderten Buch sämtliche Lösungen (die aber teilweise
knapp gehalten sind).

Relevante Kapitel: 1–10

Zu Kapitel: 8.

8. Vašek Chvátal. Solutions Manual for Linear Programming. W. H. Freeman and Company, New York, 1984.

Enthält die Lösungen zu den Aufgaben im Buch “Linear Programming” von Vašek Chvátal.

9. Thomas H. Cormen, Charles E. Leiserson, Ronald Rivest, and Clifford Stein. Algorithmen – Eine Einführung.

Oldenbourg Wissenschaftsverlag, 2004.

Dient eher als Ergänzung zu den Inhalten des Buches und ist für alle zu empfehlen, die mehr über

Algorithmen und Datenstrukturen lernen möchten.

10. K. Denecke. Algebra und Diskrete Mathematik für Informatiker. Teubner, 2003.

Dieses Buch ist gut geeignet zur Festigung der Grundlagen in der Kombinatorik (Permutationen, Kombi-
nationen, Variationen), Linearen Algebra (Lösung linearer Gleichungssysteme) und Graphentheorie.

Relevante Kapitel: 1–2, 4–5

Zu Kapitel: 1–3.

11. R. Diestel. Graphentheorie. Springer, second edition, 2000.

Sehr gutes deutsches Buch über Graphentheorie, das aber schnell über die Themen unseres Buches
hinausgeht. Geeignet für alle, die sich weiter mit dem Themengebiet befassen wollen. Das Niveau der

Übungsaufgaben ist extra gekennzeichnet und reicht von leicht bis schwer.

Relevante Kapitel: 0, 1

Zu Kapitel: 3–4.

12. Willibald Dörfler and Werner Peschek. Einführung in die Mathematik für Informatiker. Carl Hanser Verlag,

München, Wien, 1988.

Gut lesbares, wenn auch etwas älteres Buch über die Grundlagen der diskreten Mathematik, linearen Alge-
bra, Analysis und Stochastik. Allein der völlige Verzicht auf etablierte Anglismen ist etwas gewöhnungs-
bedürftig.

Relevante Kapitel: 3, 7–10

Zu Kapitel: 1–5.

13. Ronald L. Graham, Donald E. Knuth, and Oren Patashnik. Concrete Mathematics: a foundation for computer
science. Addison-Wesley, second edition, 1994.

Ein sehr schöner und gut verständlicher Klassiker, der die mathematischen Grundlagen der Informatik
vermittelt und den wir Ihnen, wenn auch nur sehr eingeschränkt zu den Thematiken dieses Buches passend,
als ergänzende Lektüre empfehlen möchten. Das Buch enthält auch Übungsaufgaben mit Musterlösungen.

Relevante Kapitel: 8, 9

Zu Kapitel: 1, 2.

14. Ralph P. Grimaldi. Discrete and Combinatorial Mathematics. Addison-Wesley, 1994.

Sehr ausführliches und einfach geschriebenes Buch über Diskrete Mathematik. Es ist gespickt mit Bei-
spielen und Übungsaufgaben, von denen jede zweite mit einer Lösung versehen ist.

Relevante Kapitel: 1, 3–5, 7–8, 11–13

Zu Kapitel: 1–4.

Literaturhinweise

303

15. Dirk Hachenberger. Mathematik für Informatiker. Pearson Studium, München, 2005.

Ein Buch, das sich gut als mathematische Grundlage fur dieses Buch eignet. Mit vielen Übungsaufgaben.

Relevante Kapitel: 1–4, 8

Zu Kapitel: 1, 5.

16. Frank Harary. Graph theory. Addison-Wesley Publishing Co., Reading, Mass.-Menlo Park, Calif.-London, 1969.

Klassische Lektüre über Graphentheory. Geht weit über den hier behandelten Stoff hinaus (wenn auch

Matchings nicht enthalten sind), eignet sich aber gut für Interessenten an dem Themengebiet.

Relevante Kapitel: 1–5

Zu Kapitel: 3, 4.

17. Florian Jarre and Josef Stoer. Optimierung. Springer, Berlin, Heidelberg, 2004.

Ein gutes und umfassendes deutsches Buch zur linearen und nichtlinearen Optimierung mit vielen und
umfangreichen Übungsaufgaben. Gut als ergänzende und weiterführende Lektüre geeignet.

Relevante Kapitel: 1–3, 6, 9

Zu Kapitel: 6–8.

18. Michael Knorrenschild. Numerische Mathematik – Eine beispielorientierte Einführung. Hanser, München, Wien,

2005.

Dieses Buch deckt die wichtigsten Themengebiete der Numerik ab. Es richtet sich vor allem an Ingenieure
und ist leicht verständlich.

Relevante Kapitel: 1–3

Zu Kapitel: 5.

19. Donald E. Knuth. The art of computer programming, volume 3: Sorting and Searching. Addison-Wesley, second
edition, 1998.

Ein Klassiker an dem kein Informatiker vorbeikommt. Den dritten Band haben wir hier als Referenz zum

Sortieren angegeben.

20. Doina Logofˇatu. Algorithmen und Problemlösungen mit C++. Vieweg, Wiesbaden, 2006.

Gutes, leicht verständliches, problemorientiertes Buch, das zwar nur zu kleinen Teilen zu unseren Themen
passt, sich aber an die Leser richtet, die Spaß an der Algorithmischen Mathematik gefunden haben. Es
werden sehr viele Probleme kurz besprochen und mit einem Programmcode zu dessen Lösung versehen.

Eignet sich auch hervorragend zur Vorbereitung interessanter Mathematik/Informatik-Unterrichtsstunden.

Relevante Kapitel: 4, 7, 11

Zu Kapitel: 1, 2, 3.

21. L. Lovász. Combinatorial problems and exercises. North-Holland, second edition, 1993.

Sehr umfangreiche Sammlung von Übungsaufgaben zur Kombinatorik inklusive Hinweisen und
vollständigen Lösungen zu allen Aufgaben. Das Niveau der Aufgaben ist aber zu großen Teilen relativ
hoch angesiedelt.

Relevante Kapitel: 1–4, 7

Zu Kapitel: 1–4.

22. D. G. Luenberger. Linear and Nonlinear Programming. Addison-Wesley, Reading, MA, second edition, 2003.

Sehr gut lesbares, sehr umfangreiches Buch über lineare und nichtlineare Optimierung. Es ist auch für

Nicht-Mathematiker verständlich und enthält zahlreiche Übungsaufgaben (ohne Lösungen). Dieses Buch
gilt als Klassiker unter den Büchern über Optimierung.

Relevante Kapitel: 1–4, 6–8

Zu Kapitel: 6, 7, 8.

304

Literaturhinweise

23. Jiř´ı Matoušek and Jaroslav Nešetril. Diskrete Mathematik - Eine Entdeckungsreise. Springer, 2002.

Sehr gelungenes und gut verständliches Buch über Diskrete Mathematik. Teile unserer ersten vier Kapitel
orientieren sich an diesem Buch, das auch zahlreiche Übungen teilweise mit Lösungshinweisen enthält.

Relevante Kapitel: 1–4, 9

Zu Kapitel: 1–4.

24. Jiř´ı Matoušek and Jaroslav Nešetřil. Invitation to Discrete Mathematics. Oxford University Press, 1998.

Dies ist die englische Fassung des Buches “Diskrete Mathematik - Eine Entdeckungsreise”.

25. Sartaj Sahni. Computationally related problems. SIAM J. Comput. , 3(4):262–279, 1974.

Unsere Referenz zur Komplexität der quadratischen Optimierung.

26. Robert Schaback and Holger Wendland. Numerische Mathematik. Springer, Berlin, Heidelberg, fünfte edition,

2005.

Sehr gelungenes Buch über die wichtigsten Themen der Numerischen Mathematik. Es deckt neben dem
fünften Kapitel auch Teile aller folgenden Kapitel ab. Es richtet sich zwar eher an Mathematiker, sollte
aber auch für Nichtmathematiker lesbar sein.

Relevante Kapitel: 1–3, 5, 7, 16

Zu Kapitel: 5–8.

27. Jochen Schwarze. Mathematik für Wirtschaftswissenschaftler 3. Lineare Algebra, Lineare Optimierung und

Graphentheorie. Verlag Neue Wirtschaftsbriefe, Herne, Berlin, 12. edition, 2005.

Dieses Buch richtet sich an Wirtschaftswissenschaftler und erntet zahlreiche überschwängliche Rezen-
sionen im Internet. Es behandelt u. A. Grundlagen der Matrizenrechnung, Lineare Gleichungssysteme,

Grundzüge der linearen Optimierung und Graphentheorie und enthält Lösungen der Übungsaufgaben.

Relevante Kapitel: 2, 4, 6

Zu Kapitel: 3–4, 8.

28. Werner Struckmann and Dietmar Wätjen. Mathematik für Informatiker. Spektrum, 2006.

Sehr gelungenes Buch, das die nötigen Grundlagen der Mathematik für Informatiker behandelt aber
eher die algebraischen als die numerischen Aspekte abdeckt. Die einzelnen Kapitel können unabhängig
voneinander gelesen werden. Zahlreiche Beispiele veranschaulichen die behandelten Fragestellungen. Wir
empfehlen es ausdrücklich als ergänzende Literatur.

Relevante Kapitel: 2–5, 10–11

Zu Kapitel: 1–4.

29. J.K. Truss. Discrete Mathematics for Computer Scientists. Addison-Wesley, second edition, 1991.

Sehr dickes Buch über Diskrete Mathematik, das viele weitere Einblicke in das Themengebiet bietet.

Relevante Kapitel: 5, 8

Zu Kapitel: 1–4.

30. C. Meinel und M. Mundhenk. Mathematische Grundlagen der Informatik. Teubner, zweite edition, 2002.

Sehr ausführliches und leicht verständliches Buch zur Einführung in die Diskrete Mathematik, das unter

Anderem eine gute Übersicht über Beweisformalismen enthält.

Relevante Kapitel: 1–9, 11

Zu Kapiteln: 1, 2, 3, (4).

Literaturhinweise

305

31. J.H. van Lint and R.M. Wilson. A Course in Combinatorics. Cambridge University Press, second edition, 2001.

Dieses Buch ist eine Sammlung von unabhängigen Übersichtskapiteln zu interessanten Themen der Dis-
kreten Mathematik bzw. Kombinatorik. Es eigenet sich daher eher als ergänzende Lektüre als als Nach-
schlagewerk zu Kursthemen und wendet sich eher an Mathematikstudenten. Es enthält aber viele Übungs-
aufgaben und diskutiert zahlreiche Beispiele.

Relevante Kapitel: 1, 2, 5, 8, 10

Zu Kapitel: 3–4.

32. Gordon R. Walsh. Methods of Optimization. John Wiley & Sons, London, New York, Sydney, Toronto, 1975.

Dieses gute, wenn auch alte, Buch über nichtlineare Optimierung deckt die Themen des 6. und 7. Kapitels
komplett ab, auch wenn man mitunter ein wenig suchen muss. Übungsaufgaben sind meist mit (sehr
kurzen) Lösungen versehen. Das Niveau des Textes und der Aufgaben lässt sich als mittelschwer bis
schwer einstufen.

Relevante Abschnitte: 1, 2.1–2.3, 3.6–3.7, 4.1–4.3, 4.7

Zu Kapitel: 6–7.

Document Outline

3642054218
Springer-Lehrbuch
Algorithmische Mathematik
Vorwort
Danksagung
Inhaltsverzeichnis

Kapitel 1 Notation und Grundstrukturen

- 1.1 Gliederung und Motivation
- 1.2 Notation
- 1.3 Abbildungen

- 1.4 Beweismethoden und das Prinzip der vollständigen Induktion

- 1.4.1 Beweis durch Kontraposition

- 1.4.3 Das Prinzip der vollständigen Induktion

- 1.4.2 Widerspruchsbeweis oder reductio ad absurdum

Kapitel 2 Elementare Abzählprobleme und diskreteWahrscheinlichkeiten

- 2.1 Abbildungen und Mengen

- 2.2 Injektive Abbildungen, Permutationen und Fakultät

- 2.3 Binomialkoeffizienten

- 2.4 Abschätzungen

- 2.5 Abschätzungen f ür Fakultäten und Binomialkoeffizienten

- 2.6 Das Prinzip von Inklusion und Exklusion

- 2.7 DiskreteWahrscheinlichkeitsrechnung

- 2.7.1 Wahrscheinlichkeitsraum
- 2.7.2 Bedingte Wahrscheinlichkeiten
- 2.7.3 Paradoxa
- 2.7.4 Zufallsvariablen

Kapitel 3 Graphen

- 3.1 Relationen

- 3.1.1 A¨quivalenzrelationen

- 3.1.2 Partialordnungen

- 3.2 Definition eines Graphen, Isomorphismus
- 3.3 Teilgraphen
- 3.4 Zusammenhang
- 3.5 Kodierung von Graphen
- 3.6 Effiziente Algorithmen
- 3.7 Breitensuche
- 3.8 Tiefensuche
- 3.9 Valenzsequenzen
- 3.10 Eulertouren
- 3.11 Gerichtete Graphen und Eulertouren
- 3.12 2-Zusammenhang

Kapitel 4 Bäume und Matchings

- 4.1 Definition und Charakterisierungen
- 4.2 Isomorphismen von Bäumen
- 4.3 Aufspannende Bäume
- 4.4 Minimale aufspannende Bäume

- 4.5 Die Algorithmen von Prim-Jarnik und Borůvka

- 4.6 Die Anzahl aufspannender Bäume
- 4.7 Bipartites Matching
- 4.8 Stabile Hochzeiten

Kapitel 5 Numerik und lineare Algebra

- 5.1 Etwas mehr Notation
- 5.2 Kodierung von Zahlen
- 5.3 Fehlerquellen und Beispiele

- 5.4 Gaußelimination und LU -Zerlegung, Pivotstrategien

- 5.5 LU -Zerlegung
- 5.6 Gauß-Jordan-Algorithmus
- 5.7 Elementares über Eigenwerte
- 5.8 Choleskyfaktorisierung
- 5.9 Matrixnormen
- 5.10 Kondition

Kapitel 6 Nichtlineare Optimierung

- 6.1 Steilkurs mehrdimensionale Differentialrechnung

- 6.1.1 Kurven

- 6.1.2 Partielle Ableitungen

- 6.2 Notwendige und hinreichende Bedingungen f ür Extremwerte

- 6.3 Exkurs Mannigfaltigkeiten und Tangentialräume

- 6.4 Bedingungen f ür Extrema auf gleichungsdefinierten Mengen

- 6.5 Bedingungen f ür Extrema auf ungleichungsdefinierten Mengen

Kapitel 7 Numerische Verfahren zur Nichtlinearen Optimierung

- 7.1 Das allgemeine Suchverfahren

- 7.2 Spezielle Suchverfahren

- 7.3 Koordinatensuche und Methode des steilsten Abstiegs

- 7.4 Newtonverfahren

- 7.5 Verfahren der konjugierten Richtungen

Kapitel 8 Lineare Optimierung

- 8.1 Modellbildung

- 8.2 Der Dualitätssatz der Linearen Optimierung

- 8.3 Das Simplexverfahren
- 8.4 Tableauform des Simplexalgorithmus
- 8.5 Pivotwahl, Entartung, Endlichkeit
- 8.6 Bemerkungen zur Numerik
- 8.7 Die Zweiphasenmethode
- 8.8 Sensitivitätsanalyse

Kapitel 9 Lösungsvorschläge zu den U¨ bungen

- 9.1 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 1

- 9.2 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 2

- 9.3 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 3

- 9.4 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 4

- 9.5 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 5

- 9.6 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 6

- 9.7 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 7

- 9.8 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 8

Symbolverzeichnis
Index
Literaturhinweise

Table of Contents

3642054218
Springer-Lehrbuch
Algorithmische Mathematik
Vorwort
Danksagung
Inhaltsverzeichnis

Kapitel 1 Notation und Grundstrukturen

- 1.1 Gliederung und Motivation
- 1.2 Notation
- 1.3 Abbildungen

- 1.4 Beweismethoden und das Prinzip der vollst¨andigen Induktion

- 1.4.1 Beweis durch Kontraposition

- 1.4.3 Das Prinzip der vollst¨andigen Induktion

- 1.4.2 Widerspruchsbeweis oder reductio ad absurdum

- 1.4.1 Beweis durch Kontraposition

- 1.4.3 Das Prinzip der vollst¨andigen Induktion

- 1.4.2 Widerspruchsbeweis oder reductio ad absurdum

1.1 Gliederung und Motivation
1.2 Notation
1.3 Abbildungen

1.4 Beweismethoden und das Prinzip der vollst¨andigen Induktion

- 1.4.1 Beweis durch Kontraposition

- 1.4.3 Das Prinzip der vollst¨andigen Induktion

- 1.4.2 Widerspruchsbeweis oder reductio ad absurdum

1.4.1 Beweis durch Kontraposition

1.4.3 Das Prinzip der vollst¨andigen Induktion

1.4.2 Widerspruchsbeweis oder reductio ad absurdum

Kapitel 2 Elementare Abz¨ahlprobleme und diskreteWahrscheinlichkeiten

- 2.1 Abbildungen und Mengen

- 2.2 Injektive Abbildungen, Permutationen und Fakult¨at

- 2.3 Binomialkoeffizienten

- 2.4 Absch¨atzungen

- 2.5 Absch¨atzungen f ¨ur Fakult¨aten und Binomialkoeffizienten

- 2.6 Das Prinzip von Inklusion und Exklusion

- 2.7 DiskreteWahrscheinlichkeitsrechnung

- 2.7.1 Wahrscheinlichkeitsraum
- 2.7.2 Bedingte Wahrscheinlichkeiten
- 2.7.3 Paradoxa
- 2.7.4 Zufallsvariablen

- 2.7.1 Wahrscheinlichkeitsraum
- 2.7.2 Bedingte Wahrscheinlichkeiten
- 2.7.3 Paradoxa
- 2.7.4 Zufallsvariablen

2.1 Abbildungen und Mengen

2.2 Injektive Abbildungen, Permutationen und Fakult¨at

2.3 Binomialkoeffizienten

2.4 Absch¨atzungen

2.5 Absch¨atzungen f ¨ur Fakult¨aten und Binomialkoeffizienten

2.6 Das Prinzip von Inklusion und Exklusion

2.7 DiskreteWahrscheinlichkeitsrechnung

- 2.7.1 Wahrscheinlichkeitsraum
- 2.7.2 Bedingte Wahrscheinlichkeiten
- 2.7.3 Paradoxa
- 2.7.4 Zufallsvariablen

2.7.1 Wahrscheinlichkeitsraum
2.7.2 Bedingte Wahrscheinlichkeiten
2.7.3 Paradoxa
2.7.4 Zufallsvariablen

Kapitel 3 Graphen

- 3.1 Relationen

- 3.1.1 A¨quivalenzrelationen

- 3.1.2 Partialordnungen

- 3.1.1 A¨quivalenzrelationen
- 3.1.2 Partialordnungen
- 3.2 Definition eines Graphen, Isomorphismus
- 3.3 Teilgraphen
- 3.4 Zusammenhang
- 3.5 Kodierung von Graphen
- 3.6 Effiziente Algorithmen
- 3.7 Breitensuche
- 3.8 Tiefensuche
- 3.9 Valenzsequenzen
- 3.10 Eulertouren
- 3.11 Gerichtete Graphen und Eulertouren
- 3.12 2-Zusammenhang

3.1 Relationen

- 3.1.1 A¨quivalenzrelationen

- 3.1.2 Partialordnungen

3.1.1 A¨quivalenzrelationen
3.1.2 Partialordnungen
3.2 Definition eines Graphen, Isomorphismus
3.3 Teilgraphen
3.4 Zusammenhang
3.5 Kodierung von Graphen
3.6 Effiziente Algorithmen
3.7 Breitensuche
3.8 Tiefensuche
3.9 Valenzsequenzen
3.10 Eulertouren
3.11 Gerichtete Graphen und Eulertouren
3.12 2-Zusammenhang

Kapitel 4 B¨aume und Matchings

- 4.1 Definition und Charakterisierungen
- 4.2 Isomorphismen von B¨aumen
- 4.3 Aufspannende B¨aume
- 4.4 Minimale aufspannende B¨aume

- 4.5 Die Algorithmen von Prim-Jarnik und Bor°uvka

- 4.6 Die Anzahl aufspannender B¨aume
- 4.7 Bipartites Matching
- 4.8 Stabile Hochzeiten

4.1 Definition und Charakterisierungen
4.2 Isomorphismen von B¨aumen
4.3 Aufspannende B¨aume
4.4 Minimale aufspannende B¨aume

4.5 Die Algorithmen von Prim-Jarnik und Bor°uvka

4.6 Die Anzahl aufspannender B¨aume
4.7 Bipartites Matching
4.8 Stabile Hochzeiten

Kapitel 5 Numerik und lineare Algebra

- 5.1 Etwas mehr Notation
- 5.2 Kodierung von Zahlen
- 5.3 Fehlerquellen und Beispiele

- 5.4 Gaußelimination und LU -Zerlegung, Pivotstrategien

- 5.5 LU -Zerlegung
- 5.6 Gauß-Jordan-Algorithmus
- 5.7 Elementares ¨uber Eigenwerte
- 5.8 Choleskyfaktorisierung
- 5.9 Matrixnormen
- 5.10 Kondition

5.1 Etwas mehr Notation
5.2 Kodierung von Zahlen
5.3 Fehlerquellen und Beispiele

5.4 Gaußelimination und LU -Zerlegung, Pivotstrategien

5.5 LU -Zerlegung
5.6 Gauß-Jordan-Algorithmus
5.7 Elementares ¨uber Eigenwerte
5.8 Choleskyfaktorisierung
5.9 Matrixnormen
5.10 Kondition

Kapitel 6 Nichtlineare Optimierung

- 6.1 Steilkurs mehrdimensionale Differentialrechnung

- 6.1.1 Kurven

- 6.1.2 Partielle Ableitungen

- 6.1.1 Kurven

- 6.1.2 Partielle Ableitungen

- 6.2 Notwendige und hinreichende Bedingungen f ¨ur Extremwerte

- 6.3 Exkurs Mannigfaltigkeiten und Tangentialr¨aume

- 6.4 Bedingungen f ¨ur Extrema auf gleichungsdefinierten Mengen

- 6.5 Bedingungen f ¨ur Extrema auf ungleichungsdefinierten Mengen

6.1 Steilkurs mehrdimensionale Differentialrechnung

- 6.1.1 Kurven

- 6.1.2 Partielle Ableitungen

6.1.1 Kurven

6.1.2 Partielle Ableitungen

6.2 Notwendige und hinreichende Bedingungen f ¨ur Extremwerte

6.3 Exkurs Mannigfaltigkeiten und Tangentialr¨aume

6.4 Bedingungen f ¨ur Extrema auf gleichungsdefinierten Mengen

6.5 Bedingungen f ¨ur Extrema auf ungleichungsdefinierten Mengen

Kapitel 7 Numerische Verfahren zur Nichtlinearen Optimierung

- 7.1 Das allgemeine Suchverfahren

- 7.2 Spezielle Suchverfahren

- 7.3 Koordinatensuche und Methode des steilsten Abstiegs

- 7.4 Newtonverfahren

- 7.5 Verfahren der konjugierten Richtungen

7.1 Das allgemeine Suchverfahren

7.2 Spezielle Suchverfahren

7.3 Koordinatensuche und Methode des steilsten Abstiegs

7.4 Newtonverfahren

7.5 Verfahren der konjugierten Richtungen

Kapitel 8 Lineare Optimierung

- 8.1 Modellbildung

- 8.2 Der Dualit¨atssatz der Linearen Optimierung

- 8.3 Das Simplexverfahren
- 8.4 Tableauform des Simplexalgorithmus
- 8.5 Pivotwahl, Entartung, Endlichkeit
- 8.6 Bemerkungen zur Numerik
- 8.7 Die Zweiphasenmethode
- 8.8 Sensitivit¨atsanalyse

8.1 Modellbildung

8.2 Der Dualit¨atssatz der Linearen Optimierung

8.3 Das Simplexverfahren
8.4 Tableauform des Simplexalgorithmus
8.5 Pivotwahl, Entartung, Endlichkeit
8.6 Bemerkungen zur Numerik
8.7 Die Zweiphasenmethode
8.8 Sensitivit¨atsanalyse

Kapitel 9 L¨osungsvorschl¨age zu den U¨ bungen

- 9.1 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 1

- 9.2 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 2

- 9.3 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 3

- 9.4 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 4

- 9.5 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 5

- 9.6 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 6

- 9.7 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 7

- 9.8 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 8

9.1 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 1

9.2 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 2

9.3 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 3

9.4 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 4

9.5 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 5

9.6 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 6

9.7 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 7

9.8 Lo¨sungsvorschla¨ge zu den U¨ bungen aus Kapitel 8

Symbolverzeichnis
Index
Literaturhinweise