Optimierung interaktiv


102 downloads 3K Views 2MB Size

Recommend Stories

Empty story

Idea Transcript


Daniel Scholz

Optimierung interaktiv Grundlagen verstehen, Modelle erforschen und Verfahren anwenden

Daniel Scholz Braunschweig, Deutschland [email protected] Webseiten zum Buch www.taramath.de www.taramath.com ISBN 978-3-662-57952-7 ISBN 978-3-662-57953-4  (eBook) https://doi.org/10.1007/978-3-662-57953-4 Springer Spektrum © Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2018

Vorwort

In dem im Jahre 2016 erschienenen Springer-Lehrbuch Numerik interaktiv: Grundlagen verstehen, Modelle erforschen und Verfahren anwenden mit taramath haben wir bereits eine ganze Reihe von Problemen kennengelernt, welche sich als mathematisches Modell formulieren lassen, um die Probleme anschließend mit Verfahren der numerischen Mathematik zu l¨osen. Als Erweiterung pr¨ asentieren wir im vorliegenden Werk Fragestellungen, welche sich als Optimierungsaufgabe modellieren lassen: Wir beschreiben und analysieren rechnerbasierte L¨ osungsverfahren aus unterschiedlichen Gebieten der angewandten Optimierung, welche zur L¨osung geeigneter Fragestellungen bzw. Modelle herangezogen werden k¨ onnen. Ein besonderer Fokus des Buches besteht darin, die unterschiedlichen Gebiete der Optimierung so einfach wie m¨ oglich und mit vielen erkl¨ arenden Abbildungen vorzustellen. Zahlreiche anwendungsorientierte Beispiele sollen nicht nur die Freude und das Interesse am L¨osen von Optimierungsaufgaben wecken, sondern auch zeigen, dass alle Algorithmen ¨außerst relevant sind und in vielen Bereichen tagt¨aglich zum Einsatz kommen. Neben grundlegenden Kenntnissen aus den u ¨blichen Mathematikvorlesungen zur Differenzial- und Integralrechnung sowie der linearen Algebra k¨onnen an einigen Stellen Themen hilfreich sein, welche auch im Lehrbuch Numerik interaktiv behandelt werden: Beispielsweise werden Kenntnisse u ¨ber L¨osungsverfahren linearer und nichtlinearer Gleichungssysteme das Verst¨ andnis einiger Algorithmen ebenso unterst¨ utzen wie die Berechnung einer QR-Zerlegung. Zwingend vorausgesetzt werden derartige Kenntnisse jedoch nicht bzw. nur in erg¨anzenden Herleitungen. Dar¨ uber hinaus ist die didaktische Konzeption des vorliegenden Werkes identisch zum Lehrbuch Numerik interaktiv: Wir konzentrieren uns h¨aufig nicht auf den allgemeinsten Fall, sondern zeigen, wie auch mit einfachen Spezialf¨allen bereits interessante Ergebnisse erzielt werden k¨onnen. Genaue Herleitungen der Verfahren sind zwar sehr wichtig, werden in diesem Buch jedoch bewusst nur dann vorgestellt, wenn sie zum Gesamtverst¨ andnis der L¨osungsalgorithmen beitragen.

Kapitel

1

Kapitel

Simplex-Verfahren

Kapitel

2

Innere-Punkte-Verfahren

Kapitel

4

Kapitel

7

Mulkriterielle Opmierung

3

8

Kapitel

5

Globale Opmierung

Kapitel

Ganzzahlige Programmierung

Kapitel

Kapitel

Netzwerkopmierung

Nichtlineare Opmierung

6

Ausgleichsrechnung

9

Heurisken

Abb. 1 Vorschlag einer Reihenfolge zur Durcharbeitung der einzelnen Kapitel dieses Buches. Dabei ist die Reihenfolge an einigen Stellen zum Verst¨ andnis zwingend erforderlich (beispielsweise bauen Innere-Punkte-Verfahren auf dem Simplex-Verfahren auf); an anderen Stellen dient die Reihenfolge lediglich als Vorschlag. Kapitel 8 kann weitestgehend unabh¨ angig von allen anderen studiert werden

Herleitung Beweise und Herleitungen, die einerseits f¨ ur das Verst¨ andnis der Zusammenh¨ ange wichtig oder hilfreich, andererseits aber zur reinen Anwendung der Verfahren nicht zwingend erforderlich sind, werden wie an dieser Stelle am Textrand mit einem Icon markiert. Es ist somit dem Leser u ¨berlassen, diese Abschnitte ggf. in einem ersten Lesedurchgang zu u ¨berspringen, sofern nur die Verfahren ohne weiteres Hintergrundwissen angewandt werden sollen. Die einzelnen Kapitel und Abschnitte m¨ ogen sicherlich unterschiedlich schwer erscheinen. Abb. 1 zeigt daher als Orientierung eine Reihenfolge zur Durcharbeitung der Themen. Als weitere Hilfestellung werden Aufgaben gestellt, welche zum Festigen und Hinterfragen der Inhalte sowie zum weiteren Nachdenken anregen sollen. Dar¨ uber hinaus besteht ein besonderer Fokus darin, dass alle Inhalte nicht nur theoretisch erlernt und nachgeschlagen werden k¨ onnen, sondern es wird auch eine M¨oglichkeit geboten, praktische Erfahrungen zu sammeln. Genauer k¨onnen viele der Algorithmen und Verfahren online unter www.taramath.de erprobt werden. Dort steht auch eine JavaScript-Bibliothek zum Download bereit, welche diverse numerische Verfahren beinhaltet und damit den Einstieg zur L¨osung angewandter Optimierungsprobleme erleichtert. Weiterhin werden viele der Beispiele aus diesem Buch samt Quellcode zur Verf¨ ugung gestellt, sodass weitreichende M¨oglichkeiten zum experimentellen Lernen gegeben werden. Online verf¨ ugbare Beispiele werden wie in diesem Abschnitt mit einem QR-Code versehen, welcher in der E-Book-Version gleichzeitig als Link fungiert.

Icon

Einsatzbereich des Containers

Besonderheit

Definitionen und Notationen

grauer Hintergrund

S¨atze und Lemmata

grauer Hintergrund

Aufgaben

grauer Hintergrund

Zusammenfassungen

grauer Hintergrund

Herleitungen, Beweise und Ausblicke

kursive Schrift

Beispiele

kursive Schrift

¨ Tab. 1 Ubersicht der Icons, welche zur schnelleren Orientierung sowie zur Klassifizierung von Containern am Textrand verwendet werden

Zur u ¨bersichtlicheren Darstellung werden einige Abs¨atze als Container oder Block zusammengefasst und durch einen grauen Hintergrund hervorgehoben. Insgesamt klassifizieren wir damit in sechs Arten von Containern und markieren ¨ diese durch ein Icon am Textrand. Eine Ubersicht dieser Klassifizierung kann Tab. 1 entnommen werden.

Zusammenfassend hebt sich die vorliegende Ausarbeitung durch folgende Punkte von den u ¨blichen Lehrb¨ uchern der Optimierung entscheidend ab: ( 1 ) Alle Verfahren und Algorithmen werden nicht nur theoretisch hergeleitet,

sondern anschauliche Beispiele sollen insbesondere den praktischen Nutzen der angewandten Optimierung verdeutlichen. Dar¨ uber hinaus k¨ onnen alle Verfahren zum schnelleren Verst¨ andnis sowie zum experimentellen Lernen eigenst¨ andig online erprobt und getestet werden. ( 2 ) Ganz bewusst werden keine schwierigen oder langwierigen Beweise vorge-

stellt. Weiterhin werden Aussagen und S¨ atze teilweise nicht in ihrer allgemeinsten Form pr¨ asentiert, sondern jeweils auf eine u ¨bersichtliche Art und Weise, in welcher sie m¨ oglichst leicht verst¨andlich sind. Damit soll der Blick f¨ ur die wesentlichen Ergebnisse und Verfahren gesch¨arft werden. ( 3 ) In anderen Lehrb¨ uchern fehlen bei der Beschreibung der Algorithmen h¨aufig

einige Teilschritte oder diese werden als bekannt vorausgesetzt. Wir leiten alle Verfahren Schritt f¨ ur Schritt und so einfach wie m¨oglich her. Dadurch kommt es an einigen Stellen teilweise gewollt zu Wiederholungen, ein unn¨ otiges Bl¨ attern zwischen unterschiedlichen Kapiteln wird somit aber vermieden.

Viele der Inhalte dieses Buches wurden maßgeblich gepr¨ agt durch meine Ausbildung und T¨atigkeiten bei Anita Sch¨obel, aber auch durch Emilio Carrizosa, Silvia Schwarze und einige andere – hierf¨ ur gilt mein ausdr¨ ucklicher Dank. Weiterhin bedanke ich mich bei allen Freunden und Bekannten, die durch gemeinsame Diskussionen oder das Korrekturlesen zur Verbesserung der Inhalte diesen Buches sowie der zugeh¨origen Homepage beigetragen haben. Zudem danke ich Annika Denkert vom Springer-Verlag f¨ ur die freundliche und unkomplizierte Zusammenarbeit. Schließlich freue ich mich u ¨ber Anregungen und Feedback der Leserschaft, beispielsweise per Mail an [email protected]. Vielen Dank.

Daniel Scholz

Juni 2018

Inhalt

Vorwort . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

v

Symbole und Notationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii

1

Simplex-Verfahren

1.1

Grundlagen der linearen Optimierung . . . . . . . . . . . . . . . . . . . . . .

1

1.2

Reduktion auf Standardform . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6

1.3

Basisl¨ osungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

1.4

Primales Simplex-Verfahren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

18

1.5

Dualit¨at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

36

1.6

Duales Simplex-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

39

2

Innere-Punkte-Verfahren

2.1

Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

49

2.2

Kurz-Schritt-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

52

2.3

Pr¨ adiktor-Korrektor-Verfahren. . . . . . . . . . . . . . . . . . . . . . . . . . . .

57

2.4

Charakteristisches lineares Gleichungssystem . . . . . . . . . . . . . . . . .

62

2.5

Anwendungsbeispiel Nullsummenspiele. . . . . . . . . . . . . . . . . . . . . .

63

3 3.1

Ganzzahlige Programmierung Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

71

3.2

Totale Unimodularit¨at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

76

3.3

Branch-and-Bound-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . .

80

3.4

Schnittebenenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

86

3.5

Problemspezifische Verfahren. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

94

4

Nichtlineare Optimierung

4.1

Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4.2

Gradientenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

4.3

Konvexe Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

4.4

Konkave Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

4.5

Fritz-John-Bedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

4.6

Nelder-Mead-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120

5

99

Globale Optimierung

5.1

Geometrisches Branch-and-Bound-Verfahren . . . . . . . . . . . . . . . . . 127

5.2

Lipschitz-Schrankenvorschrift. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

5.3

Intervall-Schrankenvorschrift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

5.4

DC-Schrankenvorschrift. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

5.5

Numerische Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

5.6

Anwendungsbeispiel Standortplanung. . . . . . . . . . . . . . . . . . . . . . . 145

6

Ausgleichsrechnung

6.1

Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149

6.2

Lineare Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

6.3

Polynomiale Regression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154

6.4

Levenberg-Marquardt-Algorithmus. . . . . . . . . . . . . . . . . . . . . . . . . 156

6.5

Ausreißer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

6.6

Geometrische Ausgleichsrechnung . . . . . . . . . . . . . . . . . . . . . . . . . 163

6.7

Zusammenfassung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

7

Multikriterielle Optimierung

7.1

Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

7.2

Effiziente L¨osungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

7.3

Gewichtete-Summen-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

7.4

Constraint-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

7.5

Benson-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

7.6

Kompromiss-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182

7.7

Effiziente L¨ osungen im Entscheidungsraum. . . . . . . . . . . . . . . . . . . 184

8

Netzwerkoptimierung

8.1

Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189

8.2

Spannende B¨aume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193

8.3

K¨ urzeste Wege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195

8.4

Maximale Fl¨ usse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199

8.5

Knotenf¨arbungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204

9

Heuristiken

9.1

Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217

9.2

Genetische Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219

9.3

Anwendungsbeispiel Handlungsreisender . . . . . . . . . . . . . . . . . . . . 226

Literatur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 231 Sachverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235

Notation

Spezielle Exponenten

x

transponierter Vektor oder transponierte Matrix

−1

Inverse einer regul¨ aren Matrix A ∈ Rn×n

A

Vektoren und Matrizen

ek

k-ter Einheitsvektor im Rn

In

Einheitsmatrix im Rn×n

Klammerausdr¨ ucke

(a, b)

offenes Intervall

[a, b]

geschlossenes Intervall

a

kleinste ganze Zahl gr¨ oßer oder gleich a ∈ R

a

gr¨oßte ganze Zahl kleiner oder gleich a ∈ R

a, b

Skalarprodukt von a und b

Mengen

A⊂B

die Menge A ist enthalten oder gleich der Menge B

A∪B

Vereinigung zweier Mengen A und B

A∩B

Durchschnitt zweier Mengen A und B

A C([a, b])

abgeschlossene H¨ ulle einer Menge A Raum der stetigen Funktionen auf dem Intervall [a, b]

Ableitungen

f  (x) 

f

erste Ableitung einer Funktion f : R → R

f (x)

zweite Ableitung einer Funktion f : R → R

(k)

k-te Ableitung einer Funktion f : R → R

(x)

∇f (x)

Gradient einer Funktion f : Rn → R

Δf (x)

Laplace-Operator einer Funktion f : Rn → R

Df (x)

Jacobi-Matrix einer Funktion f : Rn → Rm

∂ ∂xi f (x)

partielle Ableitung einer Funktion f : Rn → R nach xi

Vektor- und Matrixnormen

x1

Summennorm von x ∈ Rn

x2

euklidische Norm von x ∈ Rn

x∞

Maximumsnorm von x ∈ Rn

A1

Spaltensummennorm von A ∈ Rm×n

A2

Spektralnorm von A ∈ Rm×n

A∞

Zeilensummennorm von A ∈ Rm×n

Konvexit¨ at

conv(A) ∂f (a)

konvexe H¨ ulle einer Menge A ⊂ Rn Subdifferenzial einer konvexen Funktion f : Rn → R

1 Simplex-Verfahren

Die lineare Programmierung ist ein klassisches Teilgebiet der Optimierung und verfolgt die Aufgabe, lineare Zielfunktionen unter Ber¨ ucksichtigung linearer Nebenbedingungen zu minimieren. Unter der Annahme, dass alle Variablen reell sind, liefert das Simplex-Verfahren einen g¨angigen Algorithmus zur L¨ osung derartiger Probleme. In Abschn. 1.1 definieren wir lineare Programme in Standardform sowie in allgemeiner Form und pr¨asentieren Anwendungsbeispiele, welche wir in den folgenden Abschnitten aufgreifen. Anschließend zeigen wir in Abschn. 1.2, dass lineare Programme in allgemeiner Form in Standardform u ¨berf¨ uhrt werden k¨ onnen, sodass wir die folgenden L¨osungsverfahren nur f¨ ur lineare Programme in Standardform herleiten werden. In Abschn. 1.3 schaffen wir dank der Definition von Basisl¨ osungen die wesentliche Grundlage aller Simplex-Varianten und geben damit auch ein Optimalit¨ atskriterium an. Mit diesen Vorbereitungen sind wir in Abschn. 1.4 schließlich in der Lage, das primale Simplex-Verfahren im Detail herzuleiten und zu beschreiben. Dabei gehen wir auch ausf¨ uhrlich auf das Finden einer zul¨assigen Startl¨ osung ein und greifen einige Anwendungsbeispiele aus der Einleitung wieder auf. In den folgenden beiden Abschnitten pr¨asentieren wir mit dem dualen Simplex-Verfahren eine weitere Simplex-Variante, welche je nach Eingabedaten im Vergleich zum primalen Simplex-Verfahren deutlich effizienter sein kann. Hierzu fassen wir in Abschn. 1.5 wichtige Ergebnisse der Dualit¨ atstheorie zusammen, welche wir anschließend in der Herleitung des dualen Simplex-Verfahrens in Abschn. 1.6 ben¨ otigen. Wir beenden auch diesen Abschnitt mit der L¨osung eines Anwendungsproblems aus der Einleitung.

1.1 Grundlagen der linearen Optimierung Eine Optimierungsaufgabe oder ein Optimierungsproblem wird spezifiziert durch min f (x),

sodass

x ∈ P.

2

1 Simplex-Verfahren

Dabei wird die Funktion f : Rn → R als Zielfunktion und P ⊂ Rn als zul¨ assiger Bereich bezeichnet, wobei der zul¨ assige Bereich h¨aufig durch Nebenbedingungen definiert wird. Weiterhin sei bemerkt, dass eine Optimierungsaufgabe auch als Maximierungsproblem formuliert werden kann. Besonders wichtig ist eine Unterscheidung zwischen dem Begriff einer L¨osung sowie dem Begriff einer Optimall¨ osung eines Optimierungsproblems. Wir beginnen daher mit folgender Definition:

Definition 1.1 Gegeben sei ein Optimierungsproblem min f (x),

sodass

x ∈ P.

osung des Optimierungsproblems Wir sagen, dass ein Vektor x ∈ Rn eine L¨ ist, falls x zul¨ assig ist, falls also x ∈ P gilt. Eine Optimall¨ osung hingegen ist eine zul¨ assige L¨ osung, welche einen optimalen Zielfunktionswert liefert, d.h. ein x∗ ∈ P mit f (x∗ ) ≤ f (x) f¨ ur alle x ∈ P .

Nach den allgemeinen begrifflichen Definitionen gehen wir nun zum Spezialfall von linearen Programmen u ¨ber, d.h. zu Optimierungsaufgaben mit linearer Zielfunktion und linearen Nebenbedingungen:

Definition 1.2 Ein lineares Programm in Standardform wird gegeben durch min c · x,

sodass

A·x = b

und

x ≥ 0.

(1.1)

Dabei sind c ∈ Rn und b ∈ Rm gegebene Vektoren sowie A ∈ Rm×n eine gegebene Matrix.

Der zul¨ assige Bereich eines linearen Programms in Standardform wird somit gegeben durch das Polyeder P = {x ∈ Rn : A · x = b, x ≥ 0}, und der Vektor c wird als Kostenvektor bezeichnet. Wir werden im Folgenden h¨ aufig die Annahme treffen, dass der Rang der Matrix A gleich m ist und dass n ≥ m gilt. Diese Annahmen sind plausibel, denn anderenfalls

3

1.1 Grundlagen der linearen Optimierung

k¨onnen wir das Gleichungssystem A · x = b mittels Anwendung elementarer Zeilenoperationen stets in ein ¨aquivalentes System u ¨berf¨ uhren, welchen den Annahmen gen¨ ugt. Weiterhin werden in der (linearen) Optimierung einige Notationen genutzt, die auf den ersten Blick zun¨ achst ungewohnt erscheinen m¨ ogen. Beispielsweise ist x ≥ 0 f¨ ur einen Vektor x = (x1 , . . . , xn ) ∈ Rn komponentenweise zu verstehen, d.h., x ≥ 0 ist gleichbedeutend mit xk ≥ 0

f¨ ur alle k = 1, . . . , n.

Zudem ist x ≶ 0 eine u ¨bliche Schreibweise f¨ ur x ∈ Rn . Diese Notation wird insbesondere dann verwendet, wenn hervorgehoben werden soll, dass es sich um im Vorzeichen unbeschr¨ankte Variablen handelt. Damit k¨onnen wir auf die allgemeine Definition eines linearen Programms eingehen:

Definition 1.3 Ein lineares Programm in allgemeiner Form wird gegeben durch min c · x,

sodass

a i ·x a i ·x

=

bi

f¨ ur alle i ∈ I1 ,



bi

f¨ ur alle i ∈ I2 ,

a i ·x



bi

f¨ ur alle i ∈ I3 ,

xj



0

f¨ ur alle j ∈ J1 ,

xj



0

f¨ ur alle j ∈ J2 ,

xj



0

f¨ ur alle j ∈ J3 .

Dabei sind c ∈ Rn und b = (b1 , . . . , bm ) ∈ Rm gegebene Vektoren sowie A = (a1 , . . . , am ) ∈ Rm×n eine gegebene Matrix mit den Zeilen ai ∈ Rn f¨ ur i = 1, . . . , m. Weiter seien mit I1 ∪ I2 ∪ I3 = {1, . . . , m}

und

J1 ∪ J2 ∪ J3 = {1, . . . , n}

disjunkte Zerlegungen der Indexmengen {1, . . . , m} und {1, . . . , n} gegeben.

Es sei bemerkt, dass wir aufgrund der L¨ osbarkeit eines linearen Programms stets auf Nebenbedingungen mit (echt) kleiner bzw. (echt) gr¨ oßer verzichten sollten:

4

1 Simplex-Verfahren

autere, warum die Nebenbedingungen eines linearen Programms nieAufgabe 1.1 Erl¨ mals durch > und < statt ≤ und ≥ definiert werden sollten. Welche Aussagen hinsichtlich der L¨ osbarkeit der Programme w¨ urden sich anderenfalls formulieren lassen?

Bei einem linearen Programm in Standardform handelt es sich also um den Fall I1 = {1, . . . , m}

und

J2 = {1, . . . , n}.

Abschließend diskutieren wir einige Beispiele, welche im weiteren Verlauf des Kapitels aufgreifen: Beispiel 1.1 (Produktionsproblem) Ein klassischer Anwendungsfall der linearen Optimierung ist das Produktionsproblem. Dazu nehmen wir an, dass eine Firma n unterschiedliche Produkte herstellen m¨ ochte, wobei c = (c1 , . . . , cn ) ∈ Rn den Gewinn pro Einheit definiert, d.h., eine Einheit von Produkt j bringt einen Gewinn von cj . Zur Herstellung der Produkte sind insgesamt m Maschinen notwendig, wobei durch ai,j definiert wird, dass zur Produktion einer Einheit von Produkt j die Maschine otigt wird. Insgesamt erhalten i f¨ ur ai,j Zeiteinheiten (beispielsweise Stunden) ben¨ wir damit eine Matrix A = (ai,j ) ∈ Rm×n . Weiterhin stehen die Maschinen aufgrund von Wartungen etc. nicht unbeschr¨ ankt zur Verf¨ ugung, wobei die Verf¨ ugbarkeiten durch b = (b1 , . . . , bm ) ∈ Rm definiert werden. Genauer steht Maschine i pro Jahr f¨ ur maximal bi Zeiteinheiten zur Verf¨ ugung. Die Aufgabe der Firma besteht nun darin zu kl¨ aren, wie viele Einheiten xj von Produkt j f¨ ur j = 1, . . . , n hergestellt werden sollten, um den Gewinn zu maximieren und ohne die Verf¨ ugbarkeiten der Maschinen zu verletzen. Dabei wird davon ausgegangen, dass alle hergestellten Produkte auch stets verkauft werden. Dieses Problem kann als lineares Optimierungsproblem modelliert werden: max c · x,

sodass

A·x ≤ b

und

x ≥ 0.

Wir erhalten somit ein lineares Programm in allgemeiner Form, dessen Optimall¨ osung die jeweils zu produzierenden Einheiten hinsichtlich einer Gewinnmaximierung liefert. Weiterhin ist zu beachten, dass wir das Problem anders als in obigen Definition als Maximierungsproblem formuliert haben.

Aufgabe 1.2 Erl¨ autere, warum das lineare Programm zur Produktionsplanung aus Beispiel 1.1 stets eine Optimall¨ osung besitzt. Zeige dazu, dass das Problem stets eine zul¨ assige L¨ osung besitzt und zudem beschr¨ ankt ist.

5

1.1 Grundlagen der linearen Optimierung

Beispiel 1.2 (Transportproblem) Das Transportproblem hat das Ziel, Transportkosten zwischen Angebots- und Nachfrageorten zu minimieren. Gegeben seien daher r Angebotsorte g1 , . . . , gr ∈ R2 sowie s Nachfrageorte h1 , . . . , hs ∈ R2 . In allen Angebotsorten wird ein identisches Produkt hergestellt, wobei f¨ ur i = 1, . . . , r der Angebotsort gi die Menge ui ≥ 0 produziert. In den Nachfrageorten hj beur j = 1, . . . , s. Dabei nehmen wir der steht jeweils eine Nachfrage von wj ≥ 0 f¨ Einfachheit halber an, dass r s   ui = wj i=1

j=1

gilt, sodass Angebot und Nachfrage jeweils genau ausgeglichen sind. Weiterhin deur eine Mengeneinheit des Produkts vom Anfiniert ci,j ≥ 0 die Transportkosten f¨ gebotsort gi zum Nachfrageort hj . Die Aufgabe besteht nun darin, alle Nachfrageorte gem¨ aß der gegebenen Nachfrage durch die Angebotsorte zu beliefern und dabei die Transportkosten zu minimieren. Genau diese Aufgabe l¨ asst sich durch folgendes lineares Programm beschreiben: min

r  s  i=1 j=1

ci,j · xi,j ,

sodass

r  i=1 s 

xi,j

=

wj

f¨ ur j = 1, . . . , s,

xi,j

=

ui

f¨ ur i = 1, . . . , r,

xi,j



0.

j=1

Dabei beschreibt xi,j die Menge, die vom Angebotsort i zum Nachfrageort j transportiert wird. Wir erhalten also ein lineares Programm in Standardform mit n = r · s Variablen und m = r+s Nebenbedingungen. Die ersten s Nebenbedingungen beschreiben dabei, dass die Nachfrage in jedem Nachfrageort vollst¨ andig erf¨ ullt wird. Die anderen r Nebenbedingungen beschreiben, dass das Angebot in jedem Angebotsorte vollst¨ andig abgerufen wird.

Aufgabe 1.3 Formuliere das Transportproblem als lineares Programm, wobei die Summe u ¨ber dem Angebot aller Angebotsorte gr¨ oßer gleich der Summe u ¨ ber der Nachfrage aller Nachfrageorte sei.

Beispiel 1.3 (Ausgleichsprobleme) Gegeben seien eine Matrix A ∈ Rm×n mit Zeilenvektoren a1 , . . . , am ∈ Rn sowie ein Vektor b = (b1 , . . . , bm ) ∈ Rm . Dabei gelte m > n und der Rang von A sei gleich n. Unter diesen Annahmen besitzt das lineare Gleichungssystem A·x = b

6

1 Simplex-Verfahren

keine L¨ osung. Mit der Maximumsnorm  · ∞ ist man daher h¨ aufig daran interessiert, eine L¨ osung der Optimierungsaufgabe min A · x − b∞ = min max{a i · x − bi : i = 1, . . . , m} zu bestimmen. Eine derartige Optimierungsaufgabe wird als lineares Ausgleichsproblem bezeichnet. Schließlich l¨ asst sich ein lineares Ausgleichsproblem unter Verwendung der Maximumsnorm in das folgende ¨ aquivalente lineare Programm u ¨berf¨ uhren: min t,

sodass

a i ·x−t

a i



bi

f¨ ur alle i ∈ {1, . . . , m},

·x+t



bi

f¨ ur alle i ∈ {1, . . . , m},

xj

≶ ≥

0 0.

f¨ ur alle j ∈ {1, . . . , n},

t

Dieses lineare Programm besitzt n + 1 Variablen sowie 2 · m Nebenbedingungen. Aufgabe 1.4 Gegeben seien eine Matrix A ∈ Rm×n sowie ein Vektor b ∈ Rm . ¨ Uberf¨ uhre das lineare Ausgleichsproblem min A · x − b1 unter Verwendung der Summennorm  · 1 in ein a ¨quivalentes lineares Programm.

Alle Verfahren und Herleitungen aus diesem Kapitel k¨onnen in u ¨blichen Lehrb¨ uchern zur Optimierung bzw. zum Operations Research vertieft werden, etwa in Domschke et al. (2015), Jarre und Stoer (2004), Hamacher und Klamroth (2006) oder Chv´ atal (1983). Insbesondere k¨ onnen dort auch alle Beweise nachgeschlagen werden, welche wir in diesem Kapitel bewusst aussparen und stattdessen durch zahlreiche Beispiele ersetzen.

1.2 Reduktion auf Standardform In diesem Abschnitt wollen wir zeigen, dass jedes lineare Programm in allgemeiner Form in ein lineares Programm in Standardform u ¨berf¨ uhrt werden kann. Als Folge davon werden wir in den folgenden Abschnitten nur L¨osungsverfahren f¨ ur lineare Programme in Standardform herleiten. Wir beginnen zun¨ achst mit einer einfachen Begr¨ undung, warum wir lineare Programme stets als Minimierungsproblem auffassen werden:

7

1.2 Reduktion auf Standardform

Lemma 1.1 Jedes lineare Maximierungsproblem l¨ asst sich in ein a ¨quivalentes lineares Minimierungsproblem u ¨berf¨ uhren.

Beweis Jedes Maximierungsproblem max f (x) ist (unabh¨ angig vom zul¨ assigen Bereich) ¨ aquivalent zum Minimierungsproblem min −f (x). Die Behauptung folgt somit, indem der Kostenvektor c negiert wird. Insbesondere ist jede Optimall¨osung des Minimierungsproblems auch eine Optimall¨ osung des Maximierungsproblems und umgekehrt. Wir wollen nun zeigen, wie ein allgemeines lineares Programm min c · x,

sodass

a i ·x = a i ·x ≥ a i ·x ≤

bi

f¨ ur alle i ∈ I1 ,

bi

f¨ ur alle i ∈ I2 ,

bi

f¨ ur alle i ∈ I3 ,

xj



0

f¨ ur alle j ∈ J1 ,

xj



0

f¨ ur alle j ∈ J2 ,

xj



0

f¨ ur alle j ∈ J3

in Standardform min c · x,

sodass

A·x = b

und

x ≥ 0,

u ¨berf¨ uhrt werden kann. Hierzu untersuchen wir die einzelnen Nebenbedingungen der Reihe nach: ( 1 ) F¨ ur alle Nebenbedingungen i aus der Indexmenge I1 ist nichts weiter zu tun. ( 2 ) F¨ ur alle Nebenbedingungen i aus der Indexmenge I2 f¨ uhren wir eine Schlupf-

variable si ∈ R mit si ≥ 0 ein. Damit ist a i · x ≥ bi

¨aquivalent zu

a i · x − s i = bi .

Es muss jedoch beachtet werden, dass wir das gesamte lineare Programm f¨ ur alle i ∈ I2 um eine Variable erweitern. Somit m¨ ussen wir auch den Kostenvektor c f¨ ur alle i ∈ I2 um ein Element erweitern: Alle neuen Elemente sind gleich null, denn die Schlupfvariablen haben keinen Einfluss auf die Zielfunktion (Beispiel 1.4). ( 3 ) F¨ ur alle Nebenbedingungen i aus der Indexmenge I3 f¨ uhren wir analog zum

obigen Fall eine Schlupfvariable si ∈ R mit si ≥ 0 ein, sodass a i · x ≤ bi

¨aquivalent zu

a i · x + s i = bi

ist. Wieder muss beachtet werden, dass wir das gesamte lineare Programm f¨ ur ussen auch den Kostenvektor alle i ∈ I3 um eine Variable erg¨anzen, d.h., wir m¨ c jeweils um ein Element mit dem Wert null erweitern (Beispiel 1.5).

8

1 Simplex-Verfahren

( 4 ) F¨ ur alle Variablen j aus der Indexmenge J1 f¨ uhren wir eine Substitution von

xj unter Verwendung von x j = y j − zj

mit

yj , zj ≥ 0

durch. Damit wird die Anzahl der Variablen des linearen Programms f¨ ur alle j ∈ J1 um eins erh¨ oht, wobei auch der Kostenvektor c entsprechend angepasst werden muss (Beispiel 1.6). ( 5 ) F¨ ur alle Variablen j aus der Indexmenge J2 ist nichts weiter zu tun. ( 6 ) F¨ ur alle Variablen j aus der Indexmenge J3 f¨ uhren wir eine Substitution von

xj unter Verwendung von xj = −zj

mit

zj ≥ 0

durch. Die Anzahl der Variablen bleibt damit unver¨ andert; es m¨ ussen nur die entsprechenden Vorzeichen im Kostenvektor c sowie in der Matrix A ge¨ andert werden (Beispiel 1.7). Die folgenden Beispiele verdeutlichen die Reduktion auf Standardform: Beispiel 1.4 Gegeben sei das lineare Programm     x1 x1   , sodass (3, 4) · ≥ 3, min (1, 2) · x2 x2 ¨berf¨ uhrt erhalten wir und x1 , x2 ≥ 0. In Standardform u ⎞ ⎞ ⎛ ⎛ x1 x1 sodass (3, 4, −1) · ⎝ x2 ⎠ = 3, min (1, 2, 0) · ⎝ x2 ⎠ , s1 s1 und x1 , x2 , s1 ≥ 0. Beispiel 1.5 Gegeben sei das lineare Programm min (1, 2) ·



x1 x2

 ,

sodass

(3, 4) ·



x1 x2

 ≤ 3,

¨berf¨ uhrt erhalten wir und x1 , x2 ≥ 0. In Standardform u ⎞ ⎞ ⎛ ⎛ x1 x1 min (1, 2, 0) · ⎝ x2 ⎠ , sodass (3, 4, 1) · ⎝ x2 ⎠ = 3, s1 s1 und x1 , x2 , s1 ≥ 0.

9

1.2 Reduktion auf Standardform

Beispiel 1.6 Gegeben sei das lineare Programm     x1 x1 min (5, 2) · , sodass (3, 4) · = 3, x2 x2 ¨berf¨ uhrt erhalten wir mit x1 ≶ 0 und x2 ≥ 0. In Standardform u ⎞ ⎞ ⎛ ⎛ y1 y1 sodass (3, −3, 4) · ⎝ z1 ⎠ = 3, min (5, −5, 2) · ⎝ z1 ⎠ , x2 x2 und y1 , z1 , x2 ≥ 0. Beispiel 1.7 Gegeben sei das lineare Programm     x1 x1   min (5, 2) · , sodass (3, −4) · = 3, x2 x2 ¨berf¨ uhrt erhalten wir mit x1 ≥ 0 und x2 ≤ 0. In Standardform u     x1 x1 , sodass (3, 4) · = 3, min (5, −2) · z2 z2 und x1 , z2 ≥ 0.

Aufgabe 1.5 Gegeben sei das lineare Programm     x1 x1 min (−1, 7) · , sodass (−3, 1) · ≥ −3, x2 x2 und x1 ≤ 0 sowie x2 ≶ 0. Formuliere das Problem als lineares Programm in Standardform.

Im folgenden Beispiel werden viele Ergebnisse diesen Abschnitts aufgegriffen, wobei wir Zielfunktion sowie Nebenbedingungen bewusst ausschreiben: Beispiel 1.8 Gegeben sei das lineare Programm max 2 · x1 − 3 · x2 + 4 · x3 ,

sodass

x1 + x 2 −3 · x1 − x2 + x3



7,



1,

x1



0,

x2



0,

x3



0.

10

1 Simplex-Verfahren

In Standardform u ¨berf¨ uhrt erhalten wir folgendes lineare Programm: min 2 · z1 + 3 · x2 − 4 · y3 + 4 · z3 ,

− z1 + x2 + s1

=

7,

3 · z 1 − x 2 + y 3 − z3 − s 2

= ≥

1, 0.

sodass

z1 , x2 , y3 , z3 , s1 , s2

osung des linearen Programms in StanFalls (z1∗ , x∗2 , y3∗ , z3∗ , s∗1 , s∗2 ) eine Optimall¨ dardform ist, dann ist (x∗1 , x∗2 , x∗3 ) = (−z1∗ , x∗2 , y3∗ − z3∗ ) eine Optimall¨ osung des urspr¨ unglichen linearen Programms in allgemeiner Form. Wir beenden diesen Abschnitt mit folgender Transferaufgabe:

Aufgabe 1.6 Zeige, dass sich jedes lineare Programm in allgemeiner Form in ein ¨quivalentes lineares Programm der Form a min c · x,

sodass

A·x ≤ b

und

x ≶ 0,

u ¨berf¨ uhren l¨ asst.

Es sei nochmals ausdr¨ ucklich darauf hingewiesen, dass wir aufgrund der Ergebnisse diesen Abschnitts s¨ amtliche Verfahren zur L¨osung von linearen Programmen nur f¨ ur lineare Programme in Standardform pr¨ asentieren m¨ ussen.

1.3 Basisl¨ osungen In diesem Abschnitt treffen wir wichtige Vorbereitungen, um im weiteren Verlauf des Kapitels L¨osungsverfahren f¨ ur lineare Programme in Standardform herzuleiten. Gegeben sei daher ein lineares Programm min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn und b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte wie oben bereits erl¨ autert stets n ≥ m und der Rang der Matrix A sei gleich m, sodass stets m linear unabh¨angige Spalten von A existieren. Als Notation verwenden wir A = (a1 a2 · · · an ) ∈ Rm×n mit aj ∈ Rm f¨ ur j = 1, . . . , n, sodass wir mit aj im Folgenden den j-ten Spaltenvektor der Matrix A beschreiben. Wir k¨onnen damit folgende Definition formulieren:

11

1.3 Basisl¨ osungen

Definition 1.4 Gegeben sei eine Matrix A = (a1 · · · an ) ∈ Rm×n mit aj ∈ Rm f¨ ur j = 1, . . . , n. Weiterhin gelte n ≥ m und der Rang von A sei gleich m. Ein Vektor B = (j1 , . . . , jm ) ∈ Rm

mit

jk ∈ {1, . . . , n}

f¨ ur alle k = 1, . . . , m heißt Basis von A, falls die Matrix AB = (aj1 · · · ajm ) ∈ Rm×m regul¨ ar ist, falls also die entsprechenden Spalten von AB linear unabh¨ angig sind.

Die Matrix AB besteht somit aus den entsprechenden Spaltenvektoren der Basis B, wobei die Reihenfolge der Spaltenvektoren zu ber¨ ucksichtigen ist. Zudem sei bemerkt, dass jede regul¨are Matrix invertierbar ist, sodass A−1 B stets existiert. autere, warum jede Matrix A ∈ Rm×n , welche die Anforderungen aus Aufgabe 1.7 Erl¨ Definition 1.4 erf¨ ullt, eine Basis B besitzt.

Wir verdeutlichen die Definition an einem Beispiel, welches wir im weiteren Verlauf erweitern werden: Beispiel 1.9 Gegeben sei die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 . A = ⎝ 0 −2 5 −3 1 −1 Dann ist B = (2, 1, 5) eine Basis von A mit ⎛ ⎞ −2 5 1 0 0 ⎠ ∈ R3×3 . AB = ⎝ 1 5 −2 −1 Der Vektor B = (3, 5, 1) ist hingegen keine Basis, denn die zugeh¨ orige Matrix ⎛ ⎞ 3 1 5 0 0 ⎠ ∈ R3×3 AB = ⎝ 0 −3 −1 −2 ist nicht regul¨ ar.

12

1 Simplex-Verfahren

Weiterhin ist zu beobachten, dass die Elemente jeder Basis B = (j1 , . . . , jm ) paarweise verschieden sind, d.h., es gilt jr = js

f¨ ur alle r, s ∈ {1, . . . , m} mit r = s.

W¨are dies nicht der Fall, so w¨ urde die zugeh¨ orige Matrix AB zwei identische Spalten haben und w¨are somit nicht regul¨ ar. Diese Beobachtung rechtfertigt die folgende Notation:

Notation 1.5 Gegeben sei eine Matrix A = (a1 · · · an ) ∈ Rm×n mit aj ∈ Rm f¨ ur j = 1, . . . , n. Weiterhin gelte n ≥ m, der Rang von A sei gleich m und B = (j1 , . . . , jm ) ∈ Rm

jk ∈ {1, . . . , n}

mit

f¨ ur alle k = 1, . . . , m sei eine Basis von A. Dann bezeichnen wir den Vektor N = (s1 , . . . , sn−m ) ∈ Rn−m

mit

sk ∈ {1, . . . , n} \ {j1 , . . . , jm }

f¨ ur alle k = 1, . . . , n − m sowie mit si < sj f¨ ur 1 ≤ i < j ≤ n − m als Nichtbasis von A bez¨ uglich der Basis B.

Der Vektor N ist der Gr¨oße nach sortiert, und die Elemente sk sind alle Indizes aus der Menge {1, . . . , n}, welche nicht in der zugeh¨ origen Basis B enthalten sind. Mit anderen Worten: Ist B = (j1 , . . . , jm ) ∈ Rm eine Basis von A und entsprechend N = (s1 , . . . , sn−m ) ∈ Rn−m die zugeh¨orige Nichtbasis, dann gilt {j1 , . . . , jm , s1 , . . . , sn−m } = {1, . . . , n}. Wir erweitern damit das bereits bekannte Beispiel: Beispiel 1.10 Gegeben sei die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 . A = ⎝ 0 −2 5 −3 1 −1 Dann ist B = (2, 1, 5) eine Basis von A mit zugeh¨ origer Nichtbasis N = (3, 4). Zusammengefasst erhalten wir dank der Definition von Basis und Nichtbasis eine geeignete Aufteilung der Menge der Spalten von A, welche eine wesentliche Grundlage f¨ ur die folgenden Ergebnisse darstellt. Genauer wenden wir den Begriff der Basis nun auf lineare Programme an:

13

1.3 Basisl¨ osungen

Definition 1.6 Gegeben sei ein lineares Programm min c · x,

A·x = b

sodass

und

x ≥ 0,

mit Kostenvektor c = (c1 , . . . , cn ) ∈ Rn , mit rechter Seite b ∈ Rm sowie mit A = (a1 · · · an ) ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich origer m. Weiterhin sei B = (j1 , . . . , jm ) ∈ Rm eine Basis von A mit zugeh¨ Nichtbasis N = (s1 , . . . , sn−m ) ∈ Rn−m . Dann bezeichnen wir f¨ ur alle x = (x1 , . . . , xn ) ∈ Rn die Vektoren xB = (xj1 , . . . , xjm ) ∈ Rm

xN = (xs1 , . . . , xsn−m ) ∈ Rn−m

und

als Basisvariablen und Nichtbasisvariablen sowie die Vektoren cB = (cj1 , . . . , cjm ) ∈ Rm

cN = (cs1 , . . . , csn−m ) ∈ Rn−m

und

als Basiskosten und Nichtbasiskosten. Dar¨ uber hinaus sei AN = (as1 · · · asn−m ) ∈ Rm×(n−m) der Nichtbasisanteil von A.

Beispiel 1.11 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 . A = ⎝ 0 −2 5 −3 1 −1 Dann ist B = (2, 1, 5) eine Basis von A mit Nichtbasis N = (3, 4). Es gilt cB = (−5, 3, 1) ∈ R3

und

cN = (0, 2) ∈ R2 ,

und f¨ ur x = (0, 3, 8, 6, 0) ∈ R5 erhalten wir xB = (3, 0, 0) ∈ R3

und

xN = (8, 6) ∈ R2 .

Zusammenfassend handelt es sich bei den neuen Notationen lediglich um eine Umsortierung der Vektoreintr¨ age. Die eingef¨ uhrten Bezeichnungen dienen insbesondere folgender Herleitung: Herleitung Unter den gewohnten Annahmen k¨ onnen wir das Gleichungssystem A · x = b unter Verwendung einer Basis B folgendermaßen aufschreiben: b = A · x = AB · xB + AN · xN

(1.2)

14

1 Simplex-Verfahren

Per Definition einer Basis ist AB regul¨ ar, sodass wir diese Gleichung nach xB aufl¨ osen k¨ onnen: −1 (1.3) xB = A−1 B · b − AB · AN · xN Genauer bedeutet dies, dass die Nichtbasisvariablen xN zu jeder Basis B zun¨ achst beliebig gew¨ ahlt werden k¨ onnen. Wenn wir anschließend die Basisvariablen xB unter Verwendung von Gl. (1.3) berechnen, so erhalten wir stets eine L¨ osung des Gleichungssystems A · x = b.

Lemma 1.2 Gegeben seien b ∈ Rm sowie eine Matrix A = (a1 · · · an ) ∈ Rm×n mit aj ∈ Rm f¨ ur j = 1, . . . , n. Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin sei B eine Basis von A mit zugeh¨ origer Nichtbasis N . Dann ist x ∈ Rn mit zugeh¨ origen Basisvariablen xB ∈ Rm und Nichtbasisvaosung von A · x = b, falls riablen xN ∈ Rn−m genau dann eine L¨ −1 xB = A−1 B · b − AB · AN · xN

(1.4)

gilt. Wir nennen x eine Basisl¨ osung, falls xN = 0 gew¨ ahlt wird und somit xB = A−1 B ·b folgt. Eine Basisl¨ osung heißt zul¨ assig, falls xB ≥ 0 gilt. Mit anderen Worten besagt diese Aussage, dass wir zu jeder Basis B eine eindeutige ur welche A·x = b gilt. Es ist Basisl¨osung x mit xB = A−1 B ·b und xN = 0 erhalten, f¨ jedoch nicht ohne Weiteres gekl¨ art, ob es eine Basis B gibt, welche eine zul¨assige Basisl¨ osung liefert. Diese Frage greifen wir nach dem folgenden Beispiel wieder auf. Beispiel 1.12 Gegeben seien der Vektor b = (−6, 9, −3) ∈ R3 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 . A = ⎝ 0 −2 5 −3 1 −1 Dann ist B = (2, 1, 5) eine Basis von A, und mit xN = 0 ∈ R2 sowie mit ⎛ ⎞−1 ⎛ ⎞ −2 5 1 −6 ⎝ 1 0 0 ⎠ ·⎝ 9 ⎠ xB = A−1 B ·b = 5 −2 −1 −3 ⎛ ⎞ ⎛ ⎞ 0 3 0 −6 1 ⎝ 1 −3 1 ⎠ · ⎝ 9 ⎠ = (9, −12, 72) ∈ R3 = · 3 −2 21 −5 −3 erhalten wir die zugeh¨ orige Basisl¨ osung x = (−12, 9, 0, 0, 72) ∈ R5 . Diese Basisl¨ osung ist jedoch aufgrund der −12 nicht zul¨ assig.

15

1.3 Basisl¨ osungen

Aufgabe 1.8 Betrachte die Matrix A sowie den Vektor b aus Beispiel 1.12 und zeige, dass die Basisl¨ osung zur Basis B = (2, 3, 4) zul¨ assig ist.

Wir wollen nun eine Antwort auf die Frage geben, unter welchen Umst¨ anden ein lineares Programm in Standardform eine zul¨ assige Basisl¨osung besitzt. Hierzu machen wir uns zun¨achst Gedanken dar¨ uber, welche F¨ alle auftreten k¨ onnen. Sei dazu min c · x,

sodass

A·x = b

und

x ≥ 0,

ein lineares Programm in Standardform wie bisher mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Dann k¨onnen folgende F¨ alle auftreten: ( 1 ) Das lineare Programm ist unzul¨ assig , d.h., es gibt keine zul¨assige L¨osung,

also kein x ∈ Rn mit A · x = b und x ≥ 0.

( 2 ) Das lineare Programm ist unbeschr¨ ankt, d.h., f¨ ur alle M ∈ R gibt es eine

zul¨ assige L¨osung x ∈ Rn mit cT · x < M .

( 3 ) Das lineare Programm ist zul¨ assig und beschr¨ankt, d.h., es existiert eine (be-

schr¨ankte) Optimall¨osung. Das folgende L¨osungsverfahren wird so konzipiert sein, dass wir entweder eine beschr¨ ankte Optimall¨osung erhalten oder aber herausfinden werden, dass das lineare Programm unzul¨assig bzw. unbeschr¨ankt ist.

Aufgabe 1.9 Formuliere ein lineares Programm, welches unzul¨ assig ist. Formuliere ein zweites lineares Programm, welches unbeschr¨ ankt ist.

Der folgende Satz besagt, dass jedes zul¨ assige und beschr¨ ankte lineare Programm auch eine zul¨ assige Basisl¨osung besitzt. Die Beweise dieser sowie der folgenden Aussage k¨onnen mit u ¨blichen Mitteln der linearen Algebra gef¨ uhrt werden. F¨ ur Details sei auf Jarre und Stoer (2004) oder Hamacher und Klamroth (2006) verwiesen.

Satz 1.3 Gegeben sei ein lineares Programm min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Zudem sei bekannt, dass das lineare Programm zul¨ assig ist, d.h., es gebe ein x ∈ Rn mit A · x = b und x ≥ 0. Dann besitzt das lineare Programm eine zul¨ assige Basisl¨ osung.

16

1 Simplex-Verfahren

Dar¨ uber hinaus l¨ asst sich sogar zeigen, dass jedes zul¨assige und beschr¨ankte lineare Programm eine Optimall¨osung besitzt, welches eine zul¨ assige Basisl¨osung ist. Diese Aussage wird h¨aufig als Hauptsatz der linearen Optimierung bezeichnet:

Satz 1.4 (Hauptsatz der linearen Optimierung) Gegeben sei ein lineares Programm min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin sei bekannt, dass das lineare Programm zul¨ assig und beschr¨ ankt ist. Dann besitzt das lineare Programm eine Optimall¨ osung, welche eine zul¨ assige Basisl¨ osung ist. Der Hauptsatz der linearen Optimierung liefert damit eine der wesentlichen Grundlagen zum Simplex-Verfahren aus dem folgenden Abschnitt: Im Algorithmus werden so lange zul¨assige Basisl¨osungen untersucht, bis eine Optimall¨ osung gefunden ist. Dabei l¨asst sich sogar zu jeder zul¨assigen Basisl¨osung u ¨berpr¨ ufen, ob bereits eine Optimall¨osung vorliegt. Ein derartiges Kriterium wollen wir nun herleiten: Herleitung Gegeben sei ein lineares Programm min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von origer Nichtbasis A sei gleich m. Weiterhin sei B ∈ Rm eine Basis von A mit zugeh¨ N ∈ Rn−m . F¨ ur alle x ∈ Rn gilt unter Verwendung von Gl. (1.4) c · x

= = = =

 c B · xB + c N · xN

−1 −1  c · A · b − A · A · x N N + c N · xN B B B −1 −1   c B · AB · b − cB · AB · AN · xN + cN · xN

−1 −1   c B · AB · b + cN − cB · AB · AN · xN .

(1.5)

Diese Darstellung zeigt, dass zu jeder Basis B der Zielfunktionswert c · x einzig und allein durch die Nichtbasisvariablen xN ∈ Rn−m bestimmt wird. Da ein x ∈ Rn aber nur dann zul¨ assig ist, falls x ≥ 0 und damit insbesondere auch xN ≥ 0 gilt, kann der Zielfunktionswert nicht verbessert werden, falls der Ausdruck −1  c N − cB · AB · AN

komponentenweise gr¨ oßer gleich null ist.

17

1.3 Basisl¨ osungen

Als Ergebnis dieser Herleitung kann das Optimalit¨atskriterium formuliert werden:

Satz 1.5 (Optimalit¨ atskriterium) Gegeben sei ein lineares Programm min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang assiger von A sei gleich m. Weiterhin sei B ∈ Rm eine Basis von A mit zul¨ · b ≥ 0. Basisl¨ osung, d.h., es gelte xB = A−1 B Dann ist die Basisl¨ osung zur Basis B eine Optimall¨ osung des linearen Programms, falls −1 c  − c (1.6) B · AB · A ≥ 0 gilt.

Beweis Dank der Herleitung ist die Behauptung im Wesentlichen schon gezeigt. Es bleibt jedoch zu bemerken, dass die beiden Bedingungen −1  c N − cB · AB · AN ≥ 0

und

−1 c  − c B · AB · A ≥ 0

aquivalent sind. ¨

Aufgabe 1.10 Vervollst¨ andige den Beweis, d.h., begr¨ unde im Detail, warum die beiden Aussagen  −1 c N − cB · AB · AN ≥ 0

und

−1 c  − c B · AB · A ≥ 0

ur ¨quivalent sind. Zeige dazu insbesondere, dass zu jeder Basis B = (j1 , . . . , jm ) f¨ a den Vektor −1 n hB = (h1 , . . . , hn ) = c − c B · AB · A ∈ R gerade hjk = 0 f¨ ur k = 1, . . . , m gilt.

Wir verdeutlichen das Optimalit¨ atskriterium am bekannten Beispiel: Beispiel 1.13 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 A = ⎝ 0 −2 5 −3 1 −1 und der Vektor b = (−6, 9, −3) ∈ R3 . Dann ist B = (4, 3, 2) eine Basis von A,

18

1 Simplex-Verfahren

und es gilt ⎛ xB = A−1 B ·b

=

=

⎞−1 ⎛ ⎞ −4 3 −2 −6 ⎝ 1 0 1 ⎠ ·⎝ 9 ⎠ 1 −3 5 −3 ⎛ ⎞ ⎛ ⎞ −3 9 −3 −6 1 ⎝ 4 18 −2 ⎠ · ⎝ 9 ⎠ = (6, 8, 3) ∈ R3 . · 18 3 9 3 −3

Die Basisl¨ osung x = (0, 3, 8, 6, 0) zur Basis B ist also zul¨ assig. Weiterhin folgt unter Verwendung von cB = (2, 0, −5) ∈ R3

−1 13 c − c · A · A = , 0, 0, 0, 1 ∈ R5 . B B 2 Damit ist das Optimalit¨ atskriterium erf¨ ullt, und zusammengefasst ist die Basisl¨ osung x zur Basis B eine Optimall¨ osung des linearen Programms min c · x,

A·x = b

sodass

und

x ≥ 0,

mit einem Zielfunktionswert von −3. In Worten zusammengefasst haben wir in diesem Abschnitt Folgendes erreicht: Wir haben den Begriff der Basis eingef¨ uhrt und gezeigt, dass es zu jeder Basis eine eindeutige Basisl¨ osung gibt. Weiterhin besagt der Hauptsatz der Optimierung, dass jedes zul¨ assige und beschr¨ankte lineare Programm eine Optimall¨ osung besitzt, welche eine zul¨ assige Basisl¨osung ist. Weiterhin kann das Optimalit¨ atskriterium herangezogen werden, um zu pr¨ ufen, ob die Basisl¨osung einer Basis eine Optimall¨osung ist oder nicht. Insbesondere gilt es also, eine Basis zu finden, welche das Optimalit¨ atskriterium erf¨ ullt. Im folgenden Abschnitt werden wir diese Grundlagen algorithmisch nutzen, um schließlich lineare Programme in Standardform l¨ osen zu k¨ onnen.

1.4 Primales Simplex-Verfahren Zun¨ achst wollen wir zeigen, wie wir von einer zul¨assige Basisl¨osung zu einer weiteren zul¨ assige Basisl¨osung wechseln k¨ onnen, wobei der Zielfunktionswert in der Regel verbessert wird: Herleitung Gegeben sei wie im vorhergehenden Abschnitt ein lineares Programm min c · x,

A·x = b

sodass n

m

und

x ≥ 0,

mit c = (c1 , . . . , cn ) ∈ R , mit b ∈ R sowie mit A = (a1 · · · an ) ∈ Rm×n . Dabei ur j = 1, . . . , n seien die gelte n ≥ m, der Rang von A sei gleich m und aj ∈ Rn f¨

19

1.4 Primales Simplex-Verfahren

Spalten von A. Weiterhin sei B ∈ Rm eine Basis von A mit Nichtbasis N ∈ Rn−m sowie mit zul¨ assiger Basisl¨ osung x ∈ Rn . Wir wissen bereits, dass dann −1 xB = A−1 B · b − AB · AN · xN ≥ 0

(1.7)

gilt (Gl. 1.4), sowie dass

−1 −1   · A · b + c − c · A · A c · x = c N · xN B N B B B

(1.8)

gilt (Gl. 1.5). Insbesondere k¨ onnen xB sowie der Zielfunktionswert damit in Abh¨ angigkeit der Nichtbasisvariablen xN bestimmt werden, wobei in der gegebenen Basisl¨ osung zun¨ achst xN = 0 gilt. Angenommen, das Optimalit¨ atskriterium ist nicht erf¨ ullt. Dann gibt es einen Spaltenindex s ∈ {1, . . . , n}, welcher derzeit in der Nichtbasis enthalten ist und f¨ ur welchen −1 c s − c B · AB · a s < 0 gilt. Den Zielfunktionswert k¨ onnen wir nun verbessern, indem wir die Nichtbasisvariable zum Index s von 0 auf ein α ≥ 0 vergr¨ oßern (Gl. 1.8). Dabei muss jedoch ber¨ ucksichtigt werden, dass die L¨ osung weiterhin zul¨ assig bleiben soll, dass also weiterhin −1 xB = A−1 B · b − AB · a s · α ≥ 0 gilt (Gl. 1.7). Unter Verwendung der Notationen dB = (d1 , . . . , dm ) = A−1 B ·b

und

m×n EB = (ei,j ) = A−1 B ·A ∈ R

kann die obige Gleichung komponentenweise geschrieben werden als di − ei,s · α ≥ 0

f¨ ur alle i = 1, . . . , m.

(1.9)

Angenommen, ei,s ≤ 0, so kann α ≥ 0 beliebig gew¨ ahlt werden, ohne dass die ungBedingung (1.9) verletzt wird, denn es gilt dB = xB ≥ 0 aufgrund der urspr¨ lichen Annahme einer zul¨ assigen L¨ osung. Zusammengefasst bleibt die L¨ osung also weiterhin zul¨ assig, falls α ≤

di ei,s

f¨ ur alle i = 1, . . . , m mit ei,s > 0

gilt. Da α so groß wie m¨ oglich gew¨ ahlt werden soll, setzen wir schließlich di : i = 1, . . . , m mit ei,s > 0 α = min ei,s und erhalten damit eine neue zul¨ assige L¨ osung, welche den Zielfunktionswert nicht verschlechtert.

20

1 Simplex-Verfahren

Diese Herleitung liefert uns nicht nur eine zul¨assige L¨osung mit in der Regel besserem Zielfunktionswert, wir erhalten sogar wieder eine zul¨assige Basisl¨osung:

Satz 1.6 (Basiswechsel) Gegeben sei ein lineares Programm min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c = (c1 , . . . , cn ) ∈ Rn , mit b ∈ Rm sowie mit A = (a1 · · · an ) ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin sei B eine Basis von A mit zul¨ assiger Basisl¨ osung und N sei die Nichtbasis von B. Dar¨ uber hinaus definieren wir dB

=

m (d1 , . . . , dm ) = A−1 B ·b ∈ R ,

hB

=

−1 n (h1 , . . . , hn ) = c − c B · AB · A ∈ R ,

EB

=

m×n (ei,j ) = A−1 . B ·A ∈ R

Dabei gilt nach Voraussetzung stets dB ≥ 0. W¨ ahle nun ein s ∈ {1, . . . , n} mit −1 hs = c s − c B · AB · as < 0

sowie ein r ∈ {1, . . . , m} mit dr di = α = min : i = 1, . . . , m mit ei,s > 0 . er,s ei,s

(1.10)

(1.11)

Dann ist s in der Nichtbasis N enthalten. Wenn wir s mit dem r-ten Element der Basis austauschen, dann erhalten wir eine neue Basis mit zul¨ assiger Basisl¨ osung, welchen den Zielfunktionswert um den Wert −hs · α ≥ 0

(1.12)

verkleinert (wobei durchaus α = 0 m¨ oglich ist).

Das Vorgehen in diesem Satz wird als Basiswechsel bezeichnet, da wir je einen Index zwischen Basis und Nichtbasis austauschen und damit eine Basis mit weiterhin zul¨ assiger Basisl¨ osung erhalten. Zudem sei bemerkt, dass dem Vektor hB direkt entnommen werden kann, ob das Optimalit¨atskriterium erf¨ ullt ist oder nicht. Beispiel 1.14 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 A = ⎝ 0 −2 5 −3 1 −1

1.4 Primales Simplex-Verfahren

21

und der Vektor b = (−6, 9, −3) ∈ R3 . Dann ist B = (4, 3, 1) eine Basis von A, und es gilt ⎛ ⎞ ⎛ ⎞ 0 9 0 −6 1 ⎝ −2 −3 −5 ⎠ · ⎝ 9 ⎠ = (9, 0, 6) ∈ R3 . · dB = xB = A−1 B ·b = 9 3 9 3 −3 Die Basisl¨ osung x = (6, 0, 0, 9, 0) zur Basis B ist also zul¨ assig und besitzt den Zielfunktionswert 36. Weiterhin folgt ⎛ ⎞ 0 1 0 1 0 ⎜ ⎟ 8 1 0 13 ⎠ ∈ R3×5 EB = A−1 B · A = ⎝ 0 −3 1 2 0 0 0 sowie −1   5 hB = c  − c  B · AB · A = c − cB · E = (0, −13, 0, 0, 1) ∈ R ,

sodass das Optimalit¨ atskriterium nicht erf¨ ullt ist. Wir w¨ ahlen s = 2, da der zweite Eintrag von hB der einzige negative Eintrag ist. Damit folgt 9 6 d1 d3 , = 3 , = min α = min e1,2 e3,2 1 2 und somit r = 3, denn d3 6 dr = 3 = α. = = er,s e3,2 2 Der Basiswechsel ist daher anwendbar, und als neue Basis erhalten wir (4, 3, 2), da wir den r-ten Eintrag von B durch s = 2 ersetzen. Diese Basis verbessert den Zielfunktionswert von 36 um 13 · 3 auf −3. In Beispiel 1.13 haben wir bereits gesehen, dass die neue Basis B = (4, 3, 2) zu einer Optimall¨ osung f¨ uhrt. Auch die Ergebnisse zum Zielfunktionswert von −3 stimmen u ¨berein. Falls kein s ∈ {1, . . . , n} existiert, welches Gl. (1.10) erf¨ ullt, so ist das Optimalit¨atskriterium erf¨ ullt und die zul¨ assige Basisl¨osung ist eine Optimall¨ osung des linearen Programms. Was aber passiert, wenn ein s ∈ {1, . . . , n} existiert, welches Gl. (1.10) erf¨ ullt, dann aber ei,s ≤ 0 f¨ ur alle i = 1, . . . , m gilt, sodass kein r ∈ {1, . . . , m} existiert, welches Gl. (1.11) erf¨ ullt? In diesem Fall kann wie in obiger Herleitung erl¨autert die Nichtbasisvariable zum Index s beliebig vergr¨oßert werden, und die L¨osung bleibt weiterhin zul¨assig. Damit kann der Zielfunktionswert aber beliebig klein werden, sodass offenbar ein unbeschr¨ anktes lineares Optimierungsproblem vorliegt:

22

1 Simplex-Verfahren

Satz 1.7 Es seien die gleichen Voraussetzungen und Notationen wie in Satz 1.6 zum Basiswechsel gegeben. Angenommen, es gibt ein s ∈ {1, . . . , n} mit −1 hs = c s − c B · AB · as < 0

und es gilt ei,s ≤ 0 f¨ ur alle i = 1, . . . , m. Dann ist das zugeh¨ orige lineare Programm unbeschr¨ ankt.

Mit den bislang erzielten Ergebnissen k¨ onnen wir nun bereits die grundlegende Idee des Simplex-Verfahrens zur L¨osung von linearen Programmen in Standardform skizzieren: Angenommen, es ist eine Basis bekannt, welche eine zugeh¨orige zul¨assige Basisl¨osung besitzt. Dann f¨ uhren wir so lange einen Basiswechsel durch, bis wir eine Optimall¨osung erhalten oder herausfinden, dass das Problem unbeschr¨ ankt ist. Offen ist die Frage, was f¨ ur ein s ∈ {1, . . . , n} bzw. was f¨ ur ein r ∈ {1, . . . , m} gew¨ahlt werden soll, falls es mehrere Indizes gibt, welche die Bedingung (1.10) bzw. (1.11) erf¨ ullen. Hierzu sind verschiedene Strategien m¨oglich, welche als Pivotregeln bezeichnet werden. Je nach Eingabedaten haben unterschiedliche Pivotregeln verschiedene Vor- und Nachteile: ( 1 ) Falls die Indizes s und r derart gew¨ ahlt werden, dass wir pro Basiswechsel ei-

ne m¨ oglichst große Verbesserung des Zielfunktionswertes erhalten (Gl. 1.12), so konvergiert das Verfahren in der Regel vergleichsweise schnell. Andererseits kann diese Wahl dazu f¨ uhren, dass das Simplex-Verfahren (zumindest theoretisch) nicht terminiert, s. Beale (1955). ( 2 ) In Bland (1977) wird gezeigt, dass das Simplex-Verfahren stets endlich ist,

falls die Indizes s und r gem¨aß Blands Pivotregel gew¨ahlt werden (Satz 1.8). Der Beweis kann beispielsweise in Hamacher und Klamroth (2006) nachgeschlagen werden. Der Nachteil dabei ist allerdings, dass das Verfahren h¨aufig mehr Iterationen im Vergleich zu anderen Regeln ben¨ otigt. ( 3 ) Kombiniert werden die Vor- bzw. Nachteile, indem zuf¨ allige Indizes s und r

gew¨ahlt werden, welche die Bedingungen (1.10) und (1.11) erf¨ ullen. Damit handelt es sich aber nicht mehr um ein deterministisches Verfahren, denn bei gleichen Eingabedaten kann es vorkommen, dass das Simplex-Verfahren unterschiedliche L¨ osungen (mit aber jeweils identischen Zielfunktionswerten) berechnet. Bei der Wahl einer geeigneten Pivotregel ist neben der theoretischen Endlichkeit des Verfahrens sowie der Anzahl der Iterationen zum Finden einer Optimall¨osung auch die numerische Stabilit¨ at zu ber¨ ucksichtigen. Beispielsweise k¨ onnen Pivotregeln, welche jeweils den ersten m¨oglichen Index verwenden, im Vergleich zu anderen Regeln zu gr¨ oßeren Rechenungenauigkeiten f¨ uhren.

23

1.4 Primales Simplex-Verfahren

Trotz der oben beschriebenen Nachteile in der Laufzeit sowie der numerischen Stabilit¨ at kann die Endlichkeit des Simplex-Verfahrens nur mit wenigen Pivotregeln sichergestellt werden. Eine davon ist die folgende:

Satz 1.8 (Blands Pivotregel) Es seien die gleichen Voraussetzungen und Notationen wie in Satz 1.6 zum Basiswechsel gegeben, wobei B = (j1 , . . . , jm ) die aktuelle Basis sei. W¨ ahle die Indizes s und r nach den folgenden Regeln: ( 1 ) Sei S ⊂ {1, . . . , n} die Menge aller Indizes, welche die Bedingung (1.10)

erf¨ ullen. Dann setze s als den kleinsten Wert aus S, d.h., w¨ ahle s ∈ S mit s = min{k : k ∈ S}.

( 2 ) Sei R ⊂ {1, . . . , m} die Menge aller Indizes, welche die Bedingung (1.11)

mit dem zuvor gew¨ ahlten s erf¨ ullen. Dann setze r als den Wert aus R mit kleinster Basisvariablen, d.h., w¨ ahle r ∈ R mit jr = min{jk : k ∈ R}. Unter Ber¨ ucksichtigung dieser Regeln ist das Simplex-Verfahren endlich. H¨aufig besteht die Menge R aus nur einem Element. Aber gerade falls dies nicht der Fall ist, d.h., falls das Minimum gem¨aß der Bedingung (1.11) f¨ ur mehr als einen Index angenommen wird, dann ist Blands Pivotregel f¨ ur die Endlichkeit des Verfahrens a¨ußerst entscheidend. Wir haben damit nun eine Aussage zur Endlichkeit formuliert, eine Aussage zur Komplexit¨ at des Simplex-Verfahrens l¨ asst sich aber nicht so einfach treffen. Als Ausblick hierzu geben wir die folgenden Hinweise: Ausblick Gegeben sei ein lineares Programm min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Wir nennen eine Basisl¨ osung einer Basis B degeneriert oder entartet, falls mindestens eine Basisvariable (d.h. mindestens ein Eintrag von xB ) den Wert 0 annimmt. Angenommen, das lineare Programm besitzt ausschließlich nichtentartete Basisl¨ osungen, dann wird sich der Zielfunktionswert bei jedem Basiswechsel echt verbessern (unabh¨ angig von der gew¨ ahlten Pivotregel). Dies wiederum hat zur Folge, dass das Simplex-Verfahren maximal jede Basis einmal untersucht, sodass das Verfahren nach sp¨ atestens   n m

24

1 Simplex-Verfahren

Schritten terminiert. In Klee und Minty (1972) wird ein Beispiel pr¨ asentiert, f¨ ur welches das Simplex-Verfahren tats¨ achlich diese maximale Anzahl an Schritten ben¨ otigt. Diese Aussagen lassen darauf schließen, dass das Simplex-Verfahren im Allgemeinen eine in Abh¨ angigkeit von n exponentielle Laufzeit besitzt. Andererseits wurde in Borgwardt (1982) gezeigt, dass unter der Annahme von zuf¨ alligen Eingabedaten das Simplex-Verfahren im Mittel nach einer in n polynomiellen Laufzeit terminiert. Wir fassen nun das Simplex-Verfahren dank der bisherigen Ergebnisse in einer ersten Version zusammen. Anschließend werden wir beschreiben, wie das Verfahren algorithmisch sinnvoll angewandt werden kann.

Zusammenfassung 1.1 (Primales Simplex-Verfahren) Gegeben sei ein lineares Programm in Standardform, d.h. min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin sei B eine Basis von A mit zul¨assiger Basisl¨osung. ( 1 ) Pr¨ ufe, ob das Optimalit¨atskriterium zur aktuellen Basis B erf¨ ullt ist

(Satz 1.5). Falls ja, so terminiert das Verfahren, und die Basisl¨ osung der aktuellen Basis ist eine Optimall¨ osung des linearen Programms. ( 2 ) Pr¨ ufe unter Verwendung von Satz 1.7, ob das lineare Programm unbe-

schr¨ankt ist. Falls ja, so terminiert das Verfahren mit der Aussage, dass das lineare Programm unbeschr¨ankt ist. ( 3 ) F¨ uhre einen Basiswechsel unter Verwendung einer geeigneten Pivotregel

durch (Satz 1.6). Genauer tauschen wir einen Index zwischen Basis und Nichtbasis aus und erhalten eine neue Basis B mit weiterhin zul¨ assiger Basisl¨osung. ( 4 ) Gehe zur¨ uck zu Schritt ( 1 ).

Falls in Schritt ( 3 ) Blands Pivotregel verwendet wird (Satz 1.8), so ist theoretisch sichergestellt, dass das Verfahren terminiert. Unter Verwendung anderer Pivotregeln kann die Anzahl der Iterationen in praktischen F¨ allen jedoch meist deutlich reduziert werden. Dabei stellt sich weiterhin die Frage, wie u ¨berhaupt eine erste Basis B mit zul¨assiger Basisl¨osung gefunden werden kann (bzw. wie entschieden werden kann, ob das lineare Programm u ¨berhaupt zul¨ assig ist). Diese Frage werden wir weiter unten beantworten.

25

1.4 Primales Simplex-Verfahren

Zun¨ achst aber wollen wir zeigen, wie das Simplex-Verfahren algorithmisch sinnvoll genutzt werden kann. Insbesondere wollen wir vermeiden, nach jedem Basiswechsel ussen. Dazu seien die Vorausdie inverse Matrix von AB explizit bestimmen zu m¨ setzungen wie oben gegeben, und wir definieren die Matrix T durch ⎛ ⎞ 1 c1 ... cn 0   ⎜ 0 a1,1 . . . a1,n b1 ⎟ 1 c 0 ⎜ ⎟ (m+1)×(n+2) = ⎜ . T = . .. .. .. ⎟ ∈ R 0 A b ⎝ .. ⎠ . ... . . 0 am,1 . . . am,n bm Diese Matrix wird auch als Ausgangstableau bezeichnet, sodass jedes lineare Programm in Standardform durch sein Ausgangstableau eindeutig beschrieben werden kann. Zu einer Basis B definieren wir die Matrix   1 c B ∈ R(m+1)×(m+1) , TB = 0 AB ufen, dass dabei und da AB regul¨ar ist, ist auch TB regul¨ar. Es l¨asst sich leicht pr¨  TB−1

1

−1 −c B · AB

0

A−1 B

=

 ∈ R(m+1)×(m+1)

gilt. Als Simplex-Tableau zu einer Basis B definieren wir schließlich die Matrix SB ∈ R(m+1)×(n+2) durch SB

= =

TB−1 · T  −1 1 c − c B · AB · A 0

A−1 B ·A

−1 −c B · AB · b



A−1 B ·b



1

hB

−c B · xB

0

EB

dB

=

 ,

wobei wie zuvor die Notationen dB = xB = A−1 B · b,

EB = A−1 B ·A

und

−1 hB = c − c  B · AB · A

verwendet wurden. Das Besondere am Simplex-Tableau sind nun folgende Beobachtungen: −1 ( 1 ) Anhand des Ausdrucks hB = c − c B · AB · A in der ersten Zeile kann

unter Verwendung des Optimalit¨atskriteriums direkt gepr¨ uft werden, ob die Basisl¨ osung zur Basis B eine Optimall¨osung ist (Gl. 1.6).

( 2 ) Angenommen, das Optimalit¨ atskriterium ist nicht erf¨ ullt, so ist ein Basis-

wechsel durchzuf¨ uhren. Die Bedingungen (1.10) und (1.11) zur Wahl der entsprechenden Indizes k¨ onnen dabei einfach bestimmt werden, da das SimplexTableau die Matrix EB sowie den Vektor dB enth¨alt.

26

1 Simplex-Verfahren

( 3 ) Dar¨ uber hinaus kann in der oberen rechten Ecke des Simplex-Tableaus direkt

das Negative des Zielfunktionswertes zur Basisl¨osung der aktuellen Basis B abgelesen werden. Weiterhin sei bemerkt, dass jedes Simplex-Tableau SB unter Verwendung des Ausgangstableaus T auch ohne explizite Bestimmung und Multiplikation von TB−1 bestimmt werden kann. Dazu m¨ ussen wir die zur Basis B geh¨ orenden Spalten jeweils (samt der ersten Zeile) durch Anwendung elementarer Zeilenoperationen in die entsprechenden Einheitsvektoren u ¨berf¨ uhren. Um zudem ausgehend von einem Simplex-Tableau SB mit zul¨assiger Basisl¨osung einen Basiswechsel zu den Indizes s und r durchzuf¨ uhren, muss das SimplexTableau zur neuen Basis B nicht mehr vollst¨andig neu aufgestellt werden. Vielmehr ergibt sich das neue Tableau aus dem aktuellen Tableau, indem durch Anwendung elementarer Zeilenoperationen die Spalte zum Index s in den entsprechenden r-ten Einheitsvektor u ¨berf¨ uhrt wird. Dies ist aufgrund der Bedingungen des Basiswechsels auch immer m¨ oglich. Das folgende Beispiel demonstriert das zuvor beschriebene Verfahren: Beispiel 1.15 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 A = ⎝ 0 −2 5 −3 1 −1 und der Vektor b = (−6, 9, −3) ∈ R3 . Wir erhalten das Ausgangstableau ⎛ ⎞ 1 3 −5 0 2 1 0 ⎜ ⎟ 5 −2 3 −4 1 −6 ⎟ ⎜ 0 T = ⎜ ⎟. ⎝ 0 0 1 0 1 0 9 ⎠ 5 −3 1 −1 −3 0 −2 Weiterhin wissen wir bereits, dass B = (4, 3, 1) eine Basis von A mit zul¨ assiger Basisl¨ osung ist. Wir erhalten das zugeh¨ orige Simplex-Tableau S(4,3,1) , indem wir im Ausgangstableau die zur Basis B = (4, 3, 1) geh¨ orenden Spalten (samt der ersten Zeile) durch Anwendung elementarer Zeilenoperationen in die entsprechenden Einheitsvektoren u ¨berf¨ uhren. Es ergibt sich ⎛ ⎞ 1 0 −13 0 0 1 −36 ⎜ ⎟ ⎜ 0 0 1 0 1 0 9 ⎟ ⎟. S(4,3,1) = ⎜ ⎜ 0 0 −8 1 0 1 0 ⎟ ⎝ ⎠ 3 3 2 0 0 0 6 0 1 Aufgrund des negativen Eintrags mit −13 in der ersten Zeile ist das Optimalit¨ atskriterium nicht erf¨ ullt. Die Bedingungen zum Basiswechsel sind mit s = 2 und

27

1.4 Primales Simplex-Verfahren

r = 3 eindeutig bestimmt, und der zugeh¨ orige Eintrag im Simplex-Tableau ist die 2 in der untersten Zeile (s. auch Beispiel 1.14). Um das Simplex-Tableau S(4,3,2) zur neuen Basis B = (4, 3, 2) zu erhalten, m¨ ussen wir die entsprechende Spalte von S(4,3,1) durch Anwendung elementarer Zeilenoperationen in den entsprechenden Einheitsvektor u ¨berf¨ uhren. Wir erhalten ⎞ ⎛ 13 1 0 0 0 1 3 2 ⎟ ⎜ ⎜ 0 − 12 0 0 1 0 6 ⎟ ⎟. S(4,3,2) = ⎜ ⎟ ⎜ 0 4 1 0 1 0 8 ⎠ ⎝ 3 3 1 1 0 0 0 3 0 2 Nun ist das Optimalit¨ atskriterium offenbar erf¨ ullt, und aus dem Simplex-Tableau l¨ asst sich die Basisl¨ osung x = (0, 3, 8, 6, 0) mit Zielfunktionswert −3 ablesen.

unde, warum die erste Spalte in jedem Simplex-Tableau SB idenAufgabe 1.11 Begr¨ tisch ist (und somit auch ignoriert werden kann).

Das oben beschriebene Simplex-Verfahren l¨asst sich also algorithmisch durch Anwendung elementarer Zeilenoperationen durchf¨ uhren und auch die Endlichkeit des Verfahrens ist unter Verwendung geeigneter Pivotregeln wie oben bereits erl¨autert sichergestellt. Die einzige noch offene Frage lautet weiterhin, wie u ¨berhaupt eine erste Basis B mit zul¨assiger Basisl¨ osung gefunden werden kann. Als Spezialfall erhalten wir folgendes Ergebnis f¨ ur stets zul¨ assige lineare Programme mit Ungleichungen als Nebenbedingungen:

Lemma 1.9 Gegeben sei ein Ausgangsproblem min c · x,

sodass

A·x ≤ b

und

x ≥ 0,

(1.13)

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Weiterhin setzen wir voraus, dass b ≥ 0 gilt. Als zugeh¨ origes lineares Programm in Standardform definieren wir das Hilfsproblem min c · x,

sodass

A · x + Im · z = b

und

x, z ≥ 0.

(1.14)

Dabei sei Im die (m × m)-Einheitsmatrix. Dann ist B = (n + 1, n + 2, . . . , n + m) eine zugeh¨ orige Basis mit zul¨ assiger Basisl¨ osung. Somit kann das Hilfsproblem (1.14) und damit auch das Ausgangsproblem mit dem Simplex-Verfahren aus Zusammenfassung 1.1 gel¨ ost werden.

28

1 Simplex-Verfahren

In Worten beschrieben hat Lemma 1.9 folgende Aussage: Wenn ein Ausgangsproblem der Form (1.13) in Standardform u ¨berf¨ uhrt wird, dann erhalten wir aufgrund der Einf¨ uhrung der m Schlupfvariablen direkt eine Basis, welche aufgrund der Annahme, dass b ≥ 0 gilt, sogar zul¨ assig ist. Beispiel 1.16 Das lineare Optimierungsproblem max c · x,

sodass

A·x ≤ b

und

x ≥ 0,

zur Produktionsplanung aus Beispiel 1.1 erf¨ ullt die Bedingungen von Lemma 1.9, da nur positive Verf¨ ugbarkeiten der Maschinen sinnvoll sind und somit b ≥ 0 angenommen werden kann. Daher kann jedes Produktionsproblem aufgrund von Lemma 1.9 direkt mit dem Simplex-Verfahren aus Zusammenfassung 1.1 gel¨ ost werden, wobei zu ber¨ ucksichtigen ist, dass das Maximierungsproblem zun¨ achst in ein Minimierungsproblem zu u ¨berf¨ uhren ist. Zur numerischen Analyse der Laufzeit des Simplex-Verfahrens wurden diverse Produktionsprobleme gel¨ ost, wobei die Eingabedaten folgendermaßen generiert wurden: Es wurde stets m = n gesetzt, sodass die Anzahl der Maschinen gleich der Anzahl der Produkte ist. Weiterhin wurden cj ∈ [0, 10] f¨ ur j = 1, . . . , n sowie bi ∈ [100, 300] f¨ ur i = 1, . . . , m zuf¨ allig gew¨ ahlt. Die Eintr¨ age der Matrix A wurden derart erzeugt, ur alle anderen Eintr¨ age wurde dass f¨ ur etwa 80 % der Eintr¨ age ai,j = 0 galt. F¨ allig gew¨ ahlt. ai,j ∈ [0, 10] zuf¨ Unter Verwendung dieser Strategie zur Erzeugung von zuf¨ alligen Eingabedaten wurden insgesamt 200 Produktionsprobleme mit m ≤ 100 jeweils unter Anwendung folgender Pivotregeln gel¨ ost: ( 1 ) Pivotregel der steilsten Kante: Die Indizes s und r wurden derart gew¨ ahlt,

dass sich je Basiswechsel eine m¨ oglichst große Verbesserung des Zielfunktionswertes ergibt. ( 2 ) Blands Pivotregel: Die Indizes s und r wurden gem¨ aß Blands Pivotregel

gew¨ ahlt (Satz 1.8). ( 3 ) Zuf¨ allige Pivotstrategie: Die Indizes s und r wurden unter allen m¨ oglichen

Indizes, welche zu einem zul¨ assigen Basiswechsel f¨ uhren, rein zuf¨ allig gew¨ ahlt. Abb. 1.1 zeigt die Anzahl der Iterationen des Simplex-Verfahrens in Abh¨ angigkeit der Anzahl m der Maschinen jeweils unter Anwendung der unterschiedlichen Pivotregeln. Erwartungsgem¨ aß steigt die Anzahl der Iterationen f¨ ur alle drei Pivotregeln mit der Anzahl m der Maschinen an. Zudem zeigt die Analyse, dass Blands Pivotregel zu deutlich mehr Iterationen im Vergleich zu den anderen beiden Pivotregeln f¨ uhrt, insbesondere im Vergleich zur Pivotregel der steilsten Kante. Insgesamt l¨ asst sich daher folgern, dass die Wahl einer geeigneten Pivotregel insbesondere f¨ ur große Probleme einen großen Einfluss auf die Laufzeit des Simplex-Verfahrens haben kann.

29

1.4 Primales Simplex-Verfahren

Anzahl der Iterationen

1200 1000 800 600 400 200 0 10

20

30

40

50

60

70

80

90

100

Anzahl der Maschinen

Abb. 1.1 Numerische Analyse zur Laufzeit des Simplex-Verfahrens. Aufgetragen ist die Anzahl der ben¨ otigten Iterationen zur L¨ osung des Produktionsproblem gegen die Anzahl m der Maschinen, wobei alle Probleme jeweils mehrfach unter Verwendung folgender Pivotregeln gel¨ ost wurden: Pivotregel der steilsten Kante (blau), Blands Pivotregel (rot) sowie zuf¨ allige Pivotstrategie (gr¨ un)

Aber auch falls die Bedingungen aus Lemma 1.9 nicht erf¨ ullt sind, l¨asst sich eine Ausgangsbasis zur Anwendung des Simplex-Verfahrens konstruieren. Das Vorgehen dazu leiten wir nun her: Herleitung Gegeben sei ein lineares Programm min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin setzen wir voraus, dass b ≥ 0 gilt. Auch diese Annahme kann ohne Einschr¨ ankungen getroffen werden, da negative Elemente von b sowie entsprechende Zeilen von A mit −1 multipliziert werden k¨ onnen, ohne den L¨ osungsraum des Gleichungssystems A · x = b zu ver¨ andern. Zum gegebenen linearen Programm definieren wir das Hilfsproblem min e · z,

sodass

A · x + Im · z = b

und

x, z ≥ 0.

Dabei gelte e = (1, . . . , 1) ∈ Rm und Im sei die (m × m)-Einheitsmatrix. Wir erhalten somit ein lineares Programm in Standardform mit insgesamt n + m Variablen, atzliche Variablen definiert haben (vgl. Lemma 1.9). Aus der da wir mit z ∈ Rm zus¨ Definition des Hilfsproblems ergeben sich direkt folgende Eigenschaften: ( 1 ) Das Hilfsproblem ist zul¨ assig, denn mit x = 0 und z = b erhalten wir aufgrund

der Annahme, dass b ≥ 0 gilt, eine zul¨ assige L¨ osung. Weiterhin handelt es

30

1 Simplex-Verfahren

sich dabei sogar um eine zul¨ assige Basisl¨ osung zur Basis B = (n + 1, n + 2, . . . , n + m), denn die zugeh¨ origen Spalten bilden genau die (m × m)-Einheitsmatrix. ( 2 ) Das Hilfsproblem ist beschr¨ ankt, denn mit z ≥ 0 ist 0 der bestm¨ ogliche Ziel-

funktionswert. Insbesondere k¨ onnen wir dank der bekannten Basis mit zul¨ assiger Basisl¨ osung das Simplex-Verfahren aus Zusammenfassung 1.1 anwenden, um das Hilfsproblem zu l¨ osen. Der folgende Satz liefert schließlich den gew¨ unschten Zusammenhang zwischen linearem Programm und zugeh¨origem Hilfsproblem:

Satz 1.10 Gegeben sei ein Ausgangsproblem min c · x,

sodass

A·x = b

und

x ≥ 0,

(1.15)

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin setzen wir voraus, dass b ≥ 0 gilt. Als zugeh¨ origes Hilfsproblem definieren wir min e · z,

sodass

A · x + Im · z = b

und

x, z ≥ 0. (1.16)

Dabei gelte e = (1, . . . , 1) ∈ Rm und Im sei die (m × m)-Einheitsmatrix. Dann ist B = (n + 1, n + 2, . . . , n + m) eine Basis mit zul¨ assiger Basisl¨ osung, sodass das Hilfsproblem (1.16) mit dem Simplex-Verfahren aus Zusammenfassung 1.1 gel¨ ost werden kann. Weiterhin ist das Hilfsproblem beschr¨ ankt, und es kann keinen besseren Zielfunktionswert als 0 besitzen. Dar¨ uber hinaus ist das lineare Programm (1.15) genau dann zul¨ assig, falls das zugeh¨ orige Hilfsproblem eine Optimall¨ osung mit Zielfunktionswert 0 besitzt.

Beispiel 1.17 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 A = ⎝ 0 −2 5 −3 1 −1 und der Vektor b = (−6, 9, −3) ∈ R3 . Das Ausgangstableau des zugeh¨ origen Hilfs-

31

1.4 Primales Simplex-Verfahren

problems lautet ⎛

1

0

⎜ ⎜ 0 T = ⎜ ⎝ 0 0

0

−5 2 0 1 2 −5

0

0

0

1

1

1

−3 4 0 1 3 −1

−1 0 1

1 0 0

0 1 0

0 0 1

0



⎟ 6 ⎟ ⎟, 9 ⎠ 3

und B = (6, 7, 8) ist eine Basis des Hilfsproblems mit zul¨ assiger Basisl¨ osung. Dabei ist zu beachten, dass wir die erste und dritte Zeile von A sowie die entsprechenden Elemente von b bereits mit −1 multipliziert haben, damit b ≥ 0 gilt und wir somit eine zul¨ assige Basisl¨ osung erhalten. Damit wir das Simplex-Verfahren anwenden k¨ onnen, starten wir also mit dem Simplex-Tableau ⎞ ⎛ 3 2 0 −4 0 0 0 0 −18 1 ⎟ ⎜ 2 −3 4 −1 1 0 0 6 ⎟ ⎜ 0 −5 S(6,7,8) = ⎜ ⎟, ⎝ 0 0 1 0 1 0 0 1 0 9 ⎠ 0

2

−5

3

−1

1

0

0

1

3

wobei im Vergleich zum Ausgangstableau lediglich die erste Zeile durch Anwendung elementarer Zeilenoperationen ver¨ andert wurde. Es bleibt noch zu kl¨aren, wie wir aus der L¨osung des Hilfsproblems eine zul¨assige Basisl¨ osung des Ausgangsproblems konstruieren k¨onnen. Dazu nehmen wir an, dass das Hilfsproblem eine Optimall¨osung mit Zielfunktionswert 0 besitzt (anderenfalls ist das Ausgangsproblem auch gar nicht zul¨assig). Das Simplex-Verfahren angewandt auf das Hilfsproblem terminiert also mit einer Basis B = (j1 , . . . , jm ) ∈ Rm , deren Basisl¨ osung eine Optimall¨ osung des Hilfsproblems ist. Wir unterscheiden nun zwei F¨alle: ( 1 ) Angenommen, es gilt jk ≤ n f¨ ur k = 1, . . . , m. Dann ist die zugeh¨orige Basis

B auch eine Basis von A mit zul¨assiger Basisl¨ osung, sodass wir das SimplexVerfahren auf das Ausgangsproblem anwenden k¨onnen (Beispiel 1.18). ( 2 ) Angenommen, es gilt js > n f¨ ur ein s ∈ {1, . . . , m}. Dann k¨onnen wir auf-

grund der Annahme, dass der Rang von A gleich m ist, einen Basiswechsel dahingehend durchf¨ uhren, dass wir statt js einen neuen Index jr mit jr ≤ n in die Basis aufnehmen. Dabei sind die Basisl¨ osungen von alter und neuer Basis stets identisch, und auch der Zielfunktionswert von 0 ¨andert sich nicht (Beispiel 1.19). H¨aufig wird das L¨ osen des Hilfsproblems (und damit das Finden einer Basis mit zul¨ assiger Basisl¨osung f¨ ur das Ausgangsproblem) als Phase 1 und das eigentliche

32

1 Simplex-Verfahren

L¨osen des Ausgangsproblems unter Verwendung der zuvor gefundenen Basis als Phase 2 bezeichnet, da das Simplex-Verfahren aus Zusammenfassung 1.1 insgesamt zweimal durchlaufen wird. Beispiel 1.18 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 A = ⎝ 0 −2 5 −3 1 −1 und der Vektor b = (−6, 9, −3) ∈ R3 . Das Ausgangstableau problems lautet ⎛ 1 0 0 0 0 0 1 1 ⎜ 2 −3 4 −1 1 0 ⎜ 0 −5 T = ⎜ ⎝ 0 0 1 0 1 0 0 1 0 2 −5 3 −1 1 0 0

des zugeh¨ origen Hilfs1 0 0 1

0



⎟ 6 ⎟ ⎟ 9 ⎠ 3

(s. auch Beispiel 1.17). Unter Verwendung der Ausgangsbasis B = (6, 7, 8) terminiert das Verfahren je nach Pivotregel beispielsweise mit dem folgenden Tableau zur Basis B = (4, 1, 5): ⎞ ⎛ 1 0 0 0 0 0 1 1 1 0 ⎟ ⎜ ⎜ 0 0 1 0 1 0 0 1 0 9 ⎟ ⎟ ⎜ S(4,1,5) = ⎜ 2 0 0 0 − 13 1 − 13 6 ⎟ ⎠ ⎝ 0 1 2 5 −1 0 0 0 −8 3 0 1 3 3 Wie sich am rechten oberen Element ablesen l¨ asst, ist der Zielfunktionswert der zugeh¨ origen Optimall¨ osung gleich 0, sodass das Ausgangsproblem zul¨ assig ist. Weiterhin sind alle Elemente der Basis B = (4, 1, 5) kleiner gleich n = 5, sodass B = (4, 1, 5) auch eine Basis von A mit zul¨ assiger Basisl¨ osung ist. Genauer kann Phase 2 des Simplex-Verfahrens mit dem Ausgangstableau ⎛ ⎞ 1 3 −5 0 2 1 0 ⎜ ⎟ 1 0 1 0 9 ⎟ ⎜ 0 0 T = ⎜ ⎟ ⎝ 0 1 2 0 0 0 6 ⎠ 0

0

−8

3

0 1

0

sowie der Basis B = (4, 1, 5) begonnen werden. Einen Spezialfall bei der L¨ osung des Hilfsproblems beschreibt folgende Aufgabe:

33

1.4 Primales Simplex-Verfahren

Aufgabe 1.12 Angenommen, das Hilfsproblem besitzt eine Optimall¨ osung mit Zielfunktionswert 0. Weiter sei B = (j1 , . . . , jm ) ∈ Rm eine Basis, deren Basisl¨ osung eine Optimall¨ osung des Hilfsproblems ist. Weiterhin gelte xB > 0, d.h., in der letzten Spalte des zugeh¨ origen Simplex-Tableaus SB stehen (mit Ausnahme der ersten Kostenzeile) nur echt positive Eintr¨ age. Zeige, dass dann jk ≤ n f¨ ur k = 1, . . . , m gilt, sodass B eine Basis von A ist.

Beispiel 1.19 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 A = ⎝ 0 −2 5 −3 1 −1 und der Vektor b = (0, 0, 0) ∈ R3 . Damit sind die Daten bis auf den Vektor b identisch mit denen in Beispiel 1.18. Das Ausgangstableau des zugeh¨ origen Hilfsproblems lautet ⎛ ⎞ 1 0 0 0 0 0 1 1 1 0 ⎜ ⎟ 5 −2 3 −4 1 1 0 0 0 ⎟ ⎜ 0 T = ⎜ ⎟. ⎝ 0 0 1 0 1 0 0 1 0 0 ⎠ 5 −3 1 −1 0 0 1 0 0 −2 Unter Verwendung der Ausgangsbasis B = (6, 7, 8) terminiert das Verfahren je nach Pivotregel beispielsweise mit dem folgenden Tableau zur Basis B = (2, 4, 8): ⎞ ⎛ 1 12 0 9 0 3 3 10 0 0 ⎟ ⎜ 5 3 1 1 ⎜ 0 1 0 2 0 0 ⎟ 2 2 2 2 ⎟ ⎜ S(2,4,8) = ⎜ ⎟ 5 3 1 1 ⎝ 0 − 2 0 − 2 1 − 2 − 2 −1 0 0 ⎠ 0

−12

0

−9

0

−3

−2

−9

1

0

F¨ ur den dritten Index der Basis gilt 8 > n = 5, sodass die Basis B = (2, 4, 8) nicht als Basis von A verwendet werden kann. Allerdings k¨ onnen wir einen Basiswechsel derart durchf¨ uhren, dass der Zielfunktionswert nicht ver¨ andert wird und auch das Optimalit¨ atskriterium weiterhin erf¨ ullt bleibt. Wir entscheiden uns daf¨ ur, den Index 8 durch den Index 5 zu ersetzen. Der entsprechende Basiswechsel f¨ uhrt zu folgendem Tableau: ⎛ ⎞ 0 0 0 0 0 1 1 1 0 1 ⎜ ⎟ 1 1 1 1 ⎜ 0 1 0 0 0 0 ⎟ 2 6 2 6 ⎟ S(2,4,5) = ⎜ ⎜ 0 −1 0 0 1 0 −1 1 −1 0 ⎟ ⎝ ⎠ 2 6 2 6 2 1 4 0 3 0 1 3 − 0 0 3 3

34

1 Simplex-Verfahren

Da die Basis B = (2, 4, 5) nun auch eine Basis Simplex-Verfahrens mit dem Ausgangstableau ⎛ 1 3 −5 0 2 ⎜ 1 ⎜ 0 1 0 0 2 T = ⎜ ⎜ 0 −1 0 0 1 ⎝ 2 4 0 3 0 0

von A ist, kann Phase 2 des 1

0



⎟ 0 ⎟ ⎟ 0 ⎟ ⎠ 0

0 0 1

sowie der Basis B = (2, 4, 5) begonnen werden. Zusammenfassend kann durch das L¨osen des Hilfsproblems entschieden werden, ob das Ausgangsproblem zul¨assig ist oder nicht. Falls es zul¨assig ist, k¨ onnen wir aus der L¨osung des Hilfsproblems eine Basis des Ausgangsproblems mit zul¨ assiger Basisl¨ osung konstruieren, sodass anschließend auch das Ausgangsproblem mit dem Simplex-Verfahren aus Zusammenfassung 1.1 gel¨ost werden kann.

Zusammenfassung 1.2 (Finden einer zul¨ assigen Basisl¨ osung) Gegeben sei ein Ausgangsproblem min c · x, n

sodass m

A·x = b

und

x ≥ 0,

m×n

mit c ∈ R , mit b ∈ R sowie mit A ∈ R . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin setzen wir voraus, dass b ≥ 0 gilt. Als zugeh¨origes Hilfsproblem definieren wir min e · z,

A · x + Im · z = b

sodass

Dabei gelte e = (1, . . . , 1) ∈ R

m

und

x, z ≥ 0.

und Im sei die (m × m)-Einheitsmatrix.

Dann l¨ asst sich das Hilfsproblem mit dem Simplex-Verfahren aus Zusammenfassung 1.1 unter Verwendung der Ausgangsbasis B = (n + 1, n + 2, . . . , n + m) l¨osen, d.h., wir erhalten stets eine zul¨assige Basisl¨osung, welche eine Optimall¨ osung des Hilfsproblems ist. Dabei gilt: ( 1 ) Falls die Optimall¨ osung des Hilfsproblems einen Zielfunktionswert echt

gr¨oßer 0 besitzt, so ist das Ausgangsproblem unzul¨assig. ( 2 ) Falls die Optimall¨ osung des Hilfsproblems einen Zielfunktionswert gleich

0 besitzt, so ist das Ausgangsproblem zul¨assig. Weiterhin kann die Basis, mit der das Simplex-Verfahren zur L¨osung des Hilfsproblems terminiert, als Ausgangsbasis zur L¨osung des Ausgangsproblems verwendet werden (oder eine derartige Basis kann wie oben beschrieben konstruiert werden).

35

1.4 Primales Simplex-Verfahren

Wir sind damit schließlich in der Lage, jedes lineare Programm (in Standardform) durch zweimalige Anwendung des Simplex-Verfahrens aus Zusammenfassung 1.1 zu l¨osen (bzw. herauszufinden, dass das Programm unzul¨ assig oder unbeschr¨ankt ist). Beispiel 1.20 Abschließend greifen wir das Transportproblem aus Beispiel 1.2 auf und l¨ osen dieses unter Verwendung des primalen Simplex-Verfahrens. Dazu definieren wir r Angebotsorte mit zuf¨ alligen Koordinaten g1 , . . . , gr ∈ [0, 10]2 sowie s Nachfrageorte ebenfalls mit zuf¨ alligen Koordinaten h1 , . . . , hs ∈ [0, 10]2 . Auch f¨ ur die zu transportierenden Mengen w¨ ahlen wir zuf¨ allige Werte, n¨ amlich u1 , . . . , ur ∈ [0, 100] sowie w1 , . . . , ws ∈ [0, 100], wobei jeweils sichergestellt werden muss, dass r s   ui = wj i=1

j=1

gilt. Weiterhin definieren wir die Transportkosten ci,j zwischen gi und hj durch die euklidische Norm, genauer durch ci,j = gi − hj 2 . Unter Verwendung dieser Eingabedaten wurde das Transportproblem min

r  s  i=1 j=1

ci,j · xi,j ,

sodass

r  i=1 s 

xi,j

=

wj

f¨ ur j = 1, . . . , s,

xi,j

=

ui

f¨ ur i = 1, . . . , r,

xi,j



0,

j=1

gel¨ ost. Abb. 1.2 veranschaulicht exemplarisch die L¨ osung des Transportproblems mit derart generierten Eingabedaten. Zur weiteren Analyse der Laufzeit des Simplex-Verfahrens wurden diverse Transportprobleme mit zuf¨ alligen Eingabedaten generiert, wobei stets r = 4 Angebotsorte, aber eine unterschiedliche Anzahl von Nachfrageorten s definiert wurden. Abb. 1.3 zeigt die Anzahl der Iterationen des Simplex-Verfahrens in Abh¨ angigkeit der Nachfrageorte. Demnach scheint die Anzahl der ben¨ otigten Iterationen linear mit der Anzahl der Nachfrageorte und somit linear mit der Anzahl der Variablen des linearen Programms zu wachsen. Diese Beobachtung ist insbesondere von der theoretischen Sichtweise alles andere als trivial. In praktischen Beispielen wie dem Transportproblem sind erfreulicherweise jedoch h¨ aufig lineare Zusammenh¨ ange zwischen der Anzahl der Variablen und der notwendigen Iterationen zur L¨ osung des Problems zu beobachten (vgl. jedoch auch Abb. 1.1, denn hier scheint insbesondere bei Blands Pivotregel kein linearer Zusammenhang zwischen der Anzahl der Variablen sowie der Anzahl der Iterationen zu bestehen).

36

1 Simplex-Verfahren

a Eingabedaten zum Transportproblem

b L¨osung des Transportproblems

Abb. 1.2 Exemplarisches Beispiel zum Transportproblem mit r = 3 Angebotsorten (rot) sowie s = 24 Nachfrageorten (blau). a zeigt die zuf¨ allig gew¨ ahlten Koordinaten der Standorte, und b zeigt die L¨ osung des Problems. Dabei bedeutet eine Linie zwischen Angebots- und Nachfrageort, dass ein G¨ utertransport zwischen diesen Orten stattfindet

1.5 Dualit¨ at In diesem Abschnitt fassen wir einige theoretische Grundlagen zusammen, welche uns im folgenden Abschnitt eine weitere Simplex-Variante erm¨ oglichen wird. Die grundlegende Definition dazu soll zun¨achst anhand folgender Herleitung motiviert werden:

assiges und beschr¨ anktes lineares Programm Herleitung Gegeben sei ein zul¨ min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin sei B ∈ Rm eine Basis von A, deren zugeh¨ orige Basisl¨ osung das Optimalit¨ atskriterium −1 c − c  B · AB · A ≥ 0 erf¨ ullt (Satz 1.5). Unter Verwendung von −1 ∈ Rm y  = c B · AB

erhalten wir folgende a ¨quivalente Darstellung: y  · A ≤ c

37

1.5 Dualit¨ at

Abb. 1.3 Numerische Analyse zur Laufzeit des Simplex-Verfahrens. Aufgetragen ist die Anzahl der ben¨ otigten Iterationen (Summe aus Phase 1 und Phase 2) zur L¨ osung des Transportproblems gegen die Anzahl s der Nachfrageorte (wobei stets r = 4 Angebotsorte definiert wurden)

Sei nun andererseits y ∈ Rm ein beliebiger Vektor, welcher die Gleichung zuvor erf¨ ullt, sowie x ≥ 0 ein beliebiger Vektor mit A · x = b. Dann folgt b · y = y  · b = y  · (A · x) = (y  · A) · x ≤ c · x. ullen, folgt Dies bedeutet zusammengefasst: F¨ ur alle y ∈ Rm , welche y  · A ≤ c erf¨ unter den zuvor genannten Voraussetzungen b · y ≤ c · x. Unter Verwendung der in der linearen Optimierung u ¨ blichen Schreibweise y ≶ 0 anstelle von y ∈ Rm f¨ uhrt uns die Herleitung zu folgender Definition:

Definition 1.7 Gegeben sei ein primales lineares Programm min c · x,

sodass

A·x = b

und

x ≥ 0,

(1.17)

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Dann definieren wir das zugeh¨ orige duale lineare Programm durch max b · y,

sodass

y  · A ≤ c

und

y ≶ 0.

(1.18)

Die beiden Programme werden kurz als Primales und Duales bezeichnet.

Damit haben wir das Duale f¨ ur ein (primales) lineares Programm in Standardform formuliert. Auf ¨ahnliche Weise l¨ asst sich auch das Duale eines linearen Programms in allgemeiner Form definieren; darauf wollen wir aber nicht weiter eingehen.

38

1 Simplex-Verfahren

¨ Aufgabe 1.13 Zeige, dass das Duale eines Dualen stets das Primale liefert. Uberf¨ uhre dazu das duale lineare Programm (1.18) in Standardform und stelle anschließend das zugeh¨ orige Duale auf. Zeige danach, dass das somit erhaltene Duale des Dualen identisch zum urspr¨ unglichen Primalen (1.17) ist.

In der obigen Herleitung haben wir bereits folgenden Zusammenhang zwischen primalen und dualen linearen Programmen gezeigt:

Lemma 1.11 (Schwache Dualit¨ at) Gegeben seien ein primales lineares Programm (1.17) sowie das zugeh¨ orige duale lineare Programm (1.18). Weiter sei x zul¨ assig f¨ ur das Primale und y zul¨ assig f¨ ur das Duale. Dann gilt b · y ≤ c · x. Jede zul¨ assige L¨ osung des Dualen liefert somit eine untere Schranke an den optimalen Zielfunktionswert des Primalen.

Das wesentliche Ergebnis der Dualit¨ at ist die folgende Aussage, welche eine Folgerung des Hauptsatzes der linearen Optimierung ist:

Satz 1.12 (Starke Dualit¨ at) Gegeben seien ein primales lineares Programm (1.17) sowie das zugeh¨ orige duale lineare Programm (1.18). Dann gilt: ( 1 ) Hat das Primale eine beschr¨ ankte Optimall¨ osung, dann hat auch das Dua-

le eine beschr¨ ankte Optimall¨ osung, und die zugeh¨ origen Zielfunktionswerte sind identisch. ( 2 ) Hat das Duale eine beschr¨ ankte Optimall¨ osung, dann hat auch das Pri-

male eine beschr¨ ankte Optimall¨ osung, und die zugeh¨ origen Zielfunktionswerte sind identisch. ( 3 ) Ist das Primale unbeschr¨ ankt, so ist das Duale unzul¨ assig. ( 4 ) Ist das Duale unbeschr¨ ankt, so ist das Primale unzul¨ assig.

Weiterhin k¨ onnen Primales und Duales gleichzeitig unzul¨ assig sein.

Als Folgerung aus der starken Dualit¨ at schließen wir ein weiteres Kriterium an, welches dazu verwendet werden kann, um aus einer Optimall¨ osung des Primalen eine Optimall¨ osung des Dualen zu konstruieren und umgekehrt:

39

1.6 Duales Simplex-Verfahren

Satz 1.13 (Komplement¨ arer Schlupf) Gegeben seien ein primales lineares Programm (1.17) sowie das zugeh¨ orige duale lineare Programm (1.18). Weiter sei x zul¨ assig f¨ ur das Primale und y zul¨ assig f¨ ur das Duale. Dann gilt x · (A · y − c) = 0 genau dann, wenn x eine Optimall¨ osung des Primalen und y eine Optimall¨ osung des Dualen ist.

Die gesamte Theorie aus diesem Abschnitt k¨ onnen wir nutzen, um eine weitere Simplex-Variante vorzustellen.

1.6 Duales Simplex-Verfahren In Abschn. 1.4 haben wir das primale Simplex-Verfahren im Detail hergeleitet: Das Verfahren startet mit einer Basis, deren zugeh¨orige Basisl¨ osung zul¨ assig ist. Das Optimalit¨ atskriterium (1.6) ist damit im Allgemeinen aber nicht erf¨ ullt. Anschließend wird von Schritt zu Schritt ein Basiswechsel derart durchgef¨ uhrt, dass der Zielfunktionswert kleiner wird, wir jedoch weiterhin eine zul¨assige Basisl¨osung beibehalten. Das Verfahren terminiert, sobald das Optimalit¨atskriterium erf¨ ullt ist. Im Vergleich dazu ist die grundlegende Idee des dualen Simplex-Verfahrens nun folgende: Das Verfahren startet mit einer Basis, welche das Optimalit¨atskriterium (1.6) erf¨ ullt. Die zugeh¨orige Basisl¨ osung ist damit im Allgemeinen aber nicht zul¨ assig. Anschließend wird von Schritt zu Schritt ein Basiswechsel derart durchgef¨ uhrt, dass der Zielfunktionswert gr¨oßer wird, wir jedoch weiterhin das Optimalit¨ atskriterium erf¨ ullen. Das Verfahren terminiert, sobald die Basisl¨osung zul¨assig ist. Die Korrektheit des Verfahrens wird dabei aufgrund der starken Dualit¨ at sichergestellt. Eine ¨ahnliche Herleitung wie beim primalen Simplex-Verfahren f¨ uhrt zu folgendem dualen Basiswechsel. Zum besseren Verst¨ andnis wiederholen wir, dass das SimplexTableau zu einer Basis B gegeben ist durch SB

= =

TB−1 · T  −1 1 c − c B · AB · A 0

A−1 B ·A

−1 −c B · AB · b



A−1 B ·b



1

hB

−c B · xB

0

EB

dB

=

 ,

wobei wie oben die Notationen dB = xB = A−1 B · b,

EB = A−1 B ·A

und

−1 hB = c − c  B · AB · A

verwendet wurden. W¨ ahrend beim primalen Simplex-Verfahren stets dB ≥ 0 gilt, fordern wir beim dualen Simplex-Verfahren stets hB ≥ 0.

40

1 Simplex-Verfahren

Satz 1.14 (Dualer Basiswechsel) Gegeben sei ein lineares Programm min c · x,

A·x = b

sodass

und

x ≥ 0,

mit c = (c1 , . . . , cn ) ∈ Rn , mit b ∈ Rm sowie mit A = (a1 · · · an ) ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin sei B eine Basis von A, deren Basisl¨ osung das Optimalit¨ atskriterium (1.6) erf¨ ullt. Dar¨ uber hinaus definieren wir dB

=

m (d1 , . . . , dm ) = A−1 B ·b ∈ R ,

hB

=

−1 n (h1 , . . . , hn ) = c − c B · AB · A ∈ R ,

EB

=

m×n (ei,j ) = A−1 . B ·A ∈ R

Dabei gilt nach Voraussetzung stets hB ≥ 0. W¨ ahle nun ein r ∈ {1, . . . , m} mit dr < 0 sowie ein s ∈ {1, . . . , n} mit hs hj − = min − : j = 1, . . . , n mit er,j < 0 . er,s er,j

(1.19)

(1.20)

Dann ist s in der Nichtbasis N enthalten. Wenn wir s mit dem r-ten Element der Basis austauschen, dann erhalten wir eine neue Basis, deren Basisl¨ osung das Optimalit¨ atskriterium (1.6) erf¨ ullt und den Zielfunktionswert um hs ·

dr ≥ 0 er,s

vergr¨ oßert.

Das folgende Beispiel demonstriert den dualen Basiswechsel am gleichen linearen Programm wie in den Beispielen zum primalen Simplex-Verfahren: Beispiel 1.21 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 A = ⎝ 0 −2 5 −3 1 −1 und der Vektor b = (−6, 9, −3) ∈ R3 . Unter Verwendung der Basis B = (1, 3, 2)

41

1.6 Duales Simplex-Verfahren

erhalten wir das Simplex-Tableau ⎛ 1 ⎜ ⎜ 0 S(1,3,2) = ⎜ ⎜ 0 ⎝ 0

0

0

0

13

1

1

0

0

−2

0

0

0

1

8 3

1 3

0

1

0

1

0

81



⎟ −12 ⎟ ⎟. 24 ⎟ ⎠ 9

Die Basisl¨ osung zur Basis B = (1, 3, 2) erf¨ ullt somit das Optimalit¨ atskriterium, da in der ersten Zeile hB ≥ 0 gilt. Die Basisl¨ osung ist aber nicht zul¨ assig, sodass wir den dualen Basiswechsel anwenden k¨ onnen. Aufgrund der −12 sowie der −2 sind die Bedingungen des dualen Basiswechsels mit r = 1 und s = 4 eindeutig erf¨ ullt, sodass wir B = (4, 3, 2) als neue Basis erhalten. Dies bedeutet, dass wir die entsprechende Spalte von S(1,3,2) durch Anwendung elementarer Zeilenoperationen in den entsprechenden Einheitsvektor u ¨berf¨ uhren m¨ ussen. Wir erhalten ⎞ ⎛ 13 1 0 0 0 1 3 2 ⎟ ⎜ ⎜ 0 − 12 0 0 1 0 6 ⎟ ⎟. S(4,3,2) = ⎜ ⎜ 0 4 0 1 0 13 8 ⎟ ⎠ ⎝ 3 1 1 0 0 0 3 0 2 Nun ist nicht nur das Optimalit¨ atskriterium erf¨ ullt, die Basisl¨ osung x = (0, 3, 8, 6, 0) zur Basis B = (4, 3, 2) ist auch zul¨ assig, sodass wir eine Optimall¨ osung mit dem Zielfunktionswert −3 gefunden haben. Die Ergebnisse decken sich mit den Beispielen zuvor.

achlich wie im Aufgabe 1.14 Zeige, dass der duale Basiswechsel aus Beispiel 1.21 tats¨ Satz behauptet eine Vergr¨ oßerung des Zielfunktionswertes um hs ·

dr ≥ 0 er,s

mit sich f¨ uhrt.

Falls im dualen Basiswechsel kein r ∈ {1, . . . , m} existiert, welches Gl. (1.19) erf¨ ullt, so ist nicht nur das Optimalit¨ atskriterium erf¨ ullt, die zugeh¨ orige Basisl¨ osung ist auch zul¨ assig und damit ist eine Optimall¨osung des linearen Programms gefunden. Was aber passiert, wenn ein r ∈ {1, . . . , m} existiert, welches Gl. (1.19) erf¨ ullt, dann aber er,j ≥ 0 f¨ ur alle j = 1, . . . , n gilt, sodass kein s ∈ {1, . . . , n} existiert, welches Gl. (1.20) erf¨ ullt? In diesem Falle ist das vorliegende lineare Optimierungsproblem

42

1 Simplex-Verfahren

unzul¨ assig, da die Gleichung n 

er,j · xj = dr < 0

j=1

f¨ ur kein x ≥ 0 erf¨ ullt ist. Dieses Ergebnis fassen wir zusammen:

Satz 1.15 Es seien die gleichen Voraussetzungen und Notationen wie in Satz 1.14 zum dualen Basiswechsel gegeben. Angenommen, es gibt ein r ∈ {1, . . . , m} mit dr < 0 und es gilt er,j ≥ 0 f¨ ur alle j = 1, . . . , n. Dann ist das zugeh¨ orige (primale) lineare Programm unzul¨ assig.

Mit den bislang erzielten Ergebnissen k¨onnen wir die grundlegende Idee des dualen Simplex-Verfahrens zur L¨osung von linearen Programmen in Standardform verdeutlichen: Angenommen, es ist eine Basis bekannt, deren Basisl¨ osung das Optimalit¨ atskriterium erf¨ ullt (aber nicht notwendigerweise zul¨ assig ist). Dann f¨ uhren wir so lange einen dualen Basiswechsel durch, bis wir eine zul¨assige Basisl¨osung und damit eine Optimall¨ osung erhalten oder herausfinden, dass das Problem unzul¨assig ist. Offen ist die Frage, was f¨ ur ein r ∈ {1, . . . , m} bzw. was f¨ ur ein s ∈ {1, . . . , n} gew¨ahlt werden soll, falls es mehrere Indizes gibt, welche die Bedingung (1.20) bzw. (1.19) erf¨ ullen. Hierzu sind unterschiedliche Pivotregeln mit unterschiedlichen Vor- und Nachteilen analog zum primalen Simplex-Verfahren m¨ oglich, sodass wir darauf nicht mehr im Detail eingehen wollen. Weiterhin bemerken wir, dass das primale Simplex-Verfahren aus Zusammenfassung 1.1 mit einer zul¨ assigen Basisl¨ osung startet, sodass das lineare Programm zul¨ assig sein muss. Erst w¨ahrend des Verfahrens wird herausgefunden, ob das lineare Programm beschr¨ankt ist oder nicht. Im Vergleich dazu startet das duale Simplex-Verfahren mit einer Basis, deren Basisl¨osung das Optimalit¨atskriterium erf¨ ullt, sodass das lineare Programm beschr¨ ankt sein muss. Erst w¨ ahrend des Verfahrens wird herausgefunden, ob das lineare Programm zul¨ assig ist oder nicht.

Zusammenfassung 1.3 (Duales Simplex-Verfahren) Gegeben sei ein lineares Programm in Standardform, d.h. min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin sei B eine Basis von A, deren Basisl¨osung das Optimalit¨ atskriterium (1.6) erf¨ ullt.

43

1.6 Duales Simplex-Verfahren

( 1 ) Pr¨ ufe, ob die Basisl¨osung der aktuellen Basis B zul¨ assig ist. Falls ja, so

terminiert das Verfahren, und die Basisl¨ osung der aktuellen Basis ist eine Optimall¨osung des linearen Programms. ( 2 ) Pr¨ ufe unter Verwendung von Satz 1.15, ob das lineare Programm un-

zul¨ assig ist. Falls ja, so terminiert das Verfahren mit der Aussage, dass das lineare Programm unzul¨ assig ist. ( 3 ) F¨ uhre einen dualen Basiswechsel unter Verwendung einer geeigneten Pi-

votregel durch (Satz 1.14). Genauer tauschen wir einen Index zwischen Basis und Nichtbasis aus und erhalten eine neue Basis B, deren Basisl¨ osung weiterhin das Optimalit¨ atskriterium (1.6) erf¨ ullt. ( 4 ) Gehe zur¨ uck zu Schritt ( 1 ).

Dabei sind unterschiedliche Pivotregel analog zum primalen Simplex-Verfahren m¨ oglich. Wieder stellt sich die Frage, wie eine geeignete Ausgangsbasis B gefunden werden kann. Als Spezialfall erhalten wir folgendes Ergebnis f¨ ur stets beschr¨ ankte lineare Programme mit Ungleichungen als Nebenbedingungen:

Lemma 1.16 Gegeben sei ein Ausgangsproblem min c · x,

sodass

A·x ≤ b

und

x ≥ 0,

(1.21)

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Weiterhin setzen wir voraus, dass c ≥ 0 gilt. Als zugeh¨ origes lineares Programm in Standardform definieren wir das Hilfsproblem min c · x,

sodass

A · x + Im · z = b

und

x, z ≥ 0.

(1.22)

Dabei sei Im die (m × m)-Einheitsmatrix. Dann ist B = (n + 1, n + 2, . . . , n + m) eine zugeh¨ orige Basis, deren Basisl¨ osung das Optimalit¨ atskriterium (1.6) erf¨ ullt. Somit kann das Hilfsproblem (1.22) und damit auch das Ausgangsproblem mit dem dualen Simplex-Verfahren aus Zusammenfassung 1.3 gel¨ ost werden. Aber wie kann im Allgemeinen eine geeignete Ausgangsbasis B gefunden werden (bzw. wie kann entschieden werden, ob das lineare Programm u ¨berhaupt beschr¨ankt ist)? Auch diese Frage kann unter Verwendung eines Hilfsproblems beantwortet

44

1 Simplex-Verfahren

werden, was wir im folgenden Ausblick skizzieren wollen, s. auch Koberstein und Suhl (2007): Ausblick Gegeben sei ein lineares Programm in Standardform, d.h. min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Gesucht ist eine Basis B, sodass −1 hB = c  − c  B · AB · A ≥ 0 −1 gilt. Unter Verwendung der Notation y  = c B · AB wie im vorhergehenden Abm schnitt suchen wir zun¨ achst einen Vektor y ∈ R mit

c − y  · A ≥ 0.

(1.23)

Diese Ungleichung k¨ onnen wir auch schreiben als y  · A + z  · In = c  , ufen, wobei In die (n × n)-Einheitsmatrix sei und z ∈ Rn mit z ≥ 0 gelte. Um zu pr¨ ob diese Gleichung eine L¨ osung hat, formulieren wir das Hilfsproblem max e · u,

sodass

y  · A + z  · In + u · In = c  ,

mit y ≶ 0, z ≥ 0, u ≤ 0, wobei e = (1, . . . , 1) ∈ Rn gelte. Dieses lineare Optimierungsproblem ist aufgrund von u ≤ 0 beschr¨ ankt, und es ist auch zul¨ assig, denn mit z + u = c k¨ onnen wir stets eine zul¨ assige L¨ osung w¨ ahlen. Weiterhin stellen wir fest, dass (1.23) genau dann eine L¨ osung y ∈ Rm besitzt, falls der Zielfunktionswert einer Optimall¨ osung des Hilfsproblems gleich 0 ist. Das Duale des oben definierten Hilfsproblems lautet min c · x,

sodass

A · x = 0, In · x ≥ 0, In · x ≤ e,

mit x ≶ 0. Dieses Problem k¨ onnen wir auch formulieren als min c · x,

sodass

A·x = 0

und

0 ≤ x ≤ e,

(1.24)

wobei das Problem offensichtlich beschr¨ ankt und zul¨ assig ist, sodass eine Basisl¨ osung existiert, welche eine Optimall¨ osung des Problems ist. Aufgrund der starken Dualit¨ at sowie der Herleitung zuvor wissen wir zudem, dass (1.23) genau dann osung des eine L¨ osung y ∈ Rm besitzt, wenn der Zielfunktionswert einer Optimall¨ Hilfsproblems (1.24) gleich 0 ist. Ist der Zielfunktionswert einer Optimall¨ osung von (1.24) hingegen kleiner als 0, dann besitzt (1.23) keine L¨ osung, und folglich ist das urspr¨ ungliche lineare Programm unbeschr¨ ankt, da das Optimalit¨ atskriterium f¨ ur keine Basis erf¨ ullt sein kann.

45

1.6 Duales Simplex-Verfahren

Weiterhin sei bemerkt, dass spezielle Simplex-Varianten insbesondere lineare Programme mit beschr¨ ankten Variablen effizient l¨ osen k¨ onnen, sodass sich auch das Hilfsproblem (1.24) ohne Einf¨ uhrung unn¨ otig vieler Schlupfvariablen l¨ osen l¨ asst. Weiterhin kann die Basis B, welche zu einer Optimall¨ osung von (1.24) f¨ uhrt, auch als Ausgangsbasis zur Anwendung des dualen Simplex-Verfahrens aus Zusammenfassung 1.3 verwendet werden, denn die zugeh¨ orige Basisl¨ osung von B erf¨ ullt das Optimalit¨ atskriterium (1.6). Wir beenden dieses Kapitel mit einem Beispiel, welches unter Anwendung von Lemma 1.16 direkt mit dem dualen Simplex-Verfahren aus Zusammenfassung 1.3 gel¨ ost werden kann: Beispiel 1.22 Als explizites Anwendungsbeispiel von linearen Ausgleichsproblemen (Beispiel 1.3) untersuchen wir die lineare Regression. Gegeben seien m Messpunkte (ui , zi ) ∈ R2 f¨ ur i = 1, . . . , m. Dabei sei bekannt, dass die Messpunkte (theoretisch) alle auf einer Geraden f (x) = w · x + e liegen. Aufgrund von Messfehlern ist dies allerdings nur theoretisch der Fall, praktisch sind alle Messpunkte fehlerbehaftet. Man m¨ ochte daher die Steigung w und den Achsenabschnitt e derart bestimmen, dass           max f (ui ) − zi  : i = 1, . . . , m = max w · ui + e − zi  : i = 1, . . . , m minimiert wird. Unter Verwendung des Matrix ⎛ u1 ⎜ .. A = ⎝ . um

Vektors b = (z1 , . . . , zm ) ∈ Rm sowie der ⎞ 1 .. ⎟ ∈ Rm×2 . ⎠ 1

erhalten wir schließlich das lineare Ausgleichsproblem min A · x − b∞ ,

x = (w, e) ∈ R2 ,

sodass

welches wir wie in Beispiel 1.3 beschrieben als lineares Programm formulieren k¨ onnen: min t,

sodass

ui · w + e − t



zi

f¨ ur alle i ∈ {1, . . . , m},

ui · w + e + t

≥ zi ≶ 0, ≥ 0.

f¨ ur alle i ∈ {1, . . . , m},

w, e t

Dieses lineare Programm kann auf die u ¨bliche Art und Weise derart formuliert werden (Abschn. 1.2), dass es in der aus Lemma 1.16 geforderten Form vorliegt und

46

1 Simplex-Verfahren

Abb. 1.4 Beispiel zur linearen Regression mit m = 100 Messpunkten (blau), wobei zuf¨ allige Messfehler generiert wurden. Die L¨ osung (rot) wurde unter Verwendung des zugeh¨ origen linearen Ausgleichsproblems berechnet

daher mit dem dualen Simplex-Verfahren aus Zusammenfassung 1.3 gel¨ ost werden kann. Abb. 1.4 zeigt ein Beispiel mit m = 100 Messpunkten, wobei zuf¨ allige Messfehler generiert wurden. Die L¨ osung des zugeh¨ origen Ausgleichsproblems liefert schließlich die gesuchte L¨ osung der linearen Regression. Weitere Analysen zeigen, dass sich lineare Programme zur L¨ osung von Ausgleichsproblemen im Vergleich zum primalen Simplex-Verfahren deutlich effizienter mit dem dualen Simplex-Verfahren l¨ osen lassen. Um dies zu veranschaulichen, wurden zuf¨ allige Eingabedaten wie im Beispiel zuvor generiert, wobei die Anzahl m der Messpunkte variiert wurde. Die entsprechenden linearen Programme wurden einmal mit dem dualen und einmal mit dem primalen Simplex-Verfahren gel¨ ost. Abb. 1.5 zeigt die Ergebnisse dieser Analyse: Das duale Simplex-Verfahren ben¨ otigt unabh¨ angig von m jeweils nur etwa zehn Iterationen, w¨ ahrend die Anzahl der Iterationen unter Verwendung des primalen Simplex-Verfahrens linear mit der Anzahl m der Messpunkte und somit linear mit der Anzahl der Variablen des linearen Programms zu wachsen scheint.

¨ Aufgabe 1.15 Ubertrage die lineare Regression aus Beispiel 1.22 auf die Regression einer quadratischen Funktion f (x) = z · x2 + w · x + e. Formuliere auch diesen Fall als lineares Programm.

1.6 Duales Simplex-Verfahren

47

Abb. 1.5 Numerische Analyse zur Laufzeit des Simplex-Verfahrens. Aufgetragen ist die Anzahl der ben¨ otigten Iterationen des dualen Simplex-Verfahrens (blau) sowie des primalen Simplex-Verfahrens (rot, Summe aus Phase 1 und Phase 2) zur L¨ osung der linearen Ausgleichsprobleme, jeweils gegen die Anzahl m der zuf¨ allig generierten Messpunkte

2 Innere-Punkte-Verfahren

Neben den Varianten des Simplex-Verfahrens gibt es eine weitere Klasse von Methoden zur L¨osung von linearen Programmen, n¨amlich Innere-Punkte-Verfahren. Wir beginnen in Abschn. 2.1 mit der Wiederholung wichtiger Grundlagen linearer Programme sowie mit Bemerkungen zum Vergleich zwischen Simplex-Verfahren sowie Innere-Punkte-Verfahren. Anschließend stellen wir in Abschn. 2.2 das Kurz-SchrittVerfahren vor, welches bereits alle grundlegenden Ideen weiterf¨ uhrender InnerePunkte-Verfahren verwendet. In der Praxis kommt das Kurz-Schritt-Verfahren aufgrund ung¨ unstiger Konvergenzeigenschaften jedoch selten zum Einsatz. Daher erweitern wir das Verfahren in Abschn. 2.3 zum (heuristischen) Pr¨ adiktor-KorrektorVerfahren, welches theoretisch gesehen schlechte Eigenschaften besitzt, in vielen praktischen Anwendungen jedoch a¨ußerst effizient eingesetzt werden kann. Eine signifikante Reduktion der Laufzeit beider Verfahren kann erzielt werden, indem auftretende lineare Gleichungssysteme aufgrund ihrer speziellen Struktur geeignet gel¨ost werden. Ergebnisse hierzu fassen wir in Abschn. 2.4 zusammen. Abschließend pr¨asentieren wir in Abschn. 2.5 als Anwendungsbeispiel Zwei-PersonenNullsummenspiele der Spieltheorie, welche mit dem Pr¨ adiktor-Korrektor-Verfahren effizient gel¨ost werden k¨onnen.

2.1 Grundlagen In diesem Kapitel leiten wir Innere-Punkte-Verfahren zur L¨osung von linearen Programmen in Standardform her. Dazu werden Grundlagen der linearen Optimierung vorausgesetzt; dennoch wiederholen wir zentrale Definitionen und Ergebnisse, damit auch dieses Kapitel in sich schl¨ ussig ist. Im Vergleich zwischen Simplex-Verfahren und Innere-Punkte-Verfahren sind grunds¨ atzlich folgende Hinweise zu beachten: Das Simplex-Verfahren ist unter Anwendung geeigneter Pivot-Regeln stets endlich und terminiert mit einer Optimall¨ osung bzw. der Aussage, dass das Problem unzul¨assig oder unbeschr¨ ankt ist. Allerdings

50

2 Innere-Punkte-Verfahren

gibt es spezielle Beispiele, welche eine in der Anzahl der Variablen exponentielle Laufzeit vorhersagen. Im Vergleich dazu l¨asst sich zeigen, dass Innere-PunkteVerfahren in aller Regel eine polynomielle Laufzeit haben. Andererseits existieren Beispiele, in denen die Verfahren nicht oder nur sehr langsam konvergieren. Somit kann keine klare Antwort gegeben werden, ob Simplex-Varianten oder InnerePunkte-Verfahren in der Praxis effizienter sind. Genauer h¨ angt es stark von der Struktur der Eingabedaten ab, ob das eine oder das andere Verfahren bevorzugt werden sollte. Alle wesentlichen Ideen und Herleitung aus diesem Kapitel k¨ onnen in u ¨blichen Lehrb¨ uchern zur Optimierung bzw. zum Operations Research vertieft werden, etwa in Jarre und Stoer (2004) oder Domschke et al. (2015). In Hamacher und Klamroth (2006) wird hingegen ein anderer Ansatz zur Herleitung von Innere-PunkteVerfahren verfolgt, n¨amlich ein Ansatz unter Verwendung der projektiven Geometrie, wie es in Karmarkar (1984) als eines der ersten Innere-Punkte-Verfahren vorgeschlagen wurde.

Definition 2.1 Ein lineares Programm in Standardform wird gegeben durch min c · x,

sodass

A·x = b

und

x ≥ 0.

(2.1)

Dabei sind c ∈ Rn und b ∈ Rm Vektoren sowie A ∈ Rm×n eine Matrix. Wir werden im Folgenden stets die Annahme treffen, dass der Rang der Matrix A gleich m ist und dass n ≥ m gilt. Diese Annahmen sind plausibel, denn anderenfalls k¨ onnen wir das Gleichungssystem A · x = b mittels Anwendung elementarer Zeilenoperationen in ein a¨quivalentes System u ¨berf¨ uhren, welches den Annahmen gen¨ ugt. Es gibt unterschiedliche M¨oglichkeiten zur Motivation und Herleitung von InnerePunkte-Verfahren. Wir w¨ ahlen in diesem Kapitel den Weg u ¨ ber die Dualit¨at und wiederholen daher folgende Definition, wobei y ≶ 0 eine in der Optimierung u ¨bliche Schreibweise f¨ ur im Vorzeichen unbeschr¨ ankte Variablen y ∈ Rm ist:

Definition 2.2 Gegeben sei ein lineares Programm in Standardform, d.h. min c · x, n

sodass m

A·x = b

und

x ≥ 0,

(2.2)

m×n

mit c ∈ R , mit b ∈ R sowie mit A ∈ R . Dabei gelte n ≥ m und der Rang von A sei gleich m. Das zugeh¨ orige duale lineare Programm lautet max b · y,

sodass

A · y + s = c

und

s ≥ 0, y ≶ 0. (2.3)

Die beiden linearen Programme werden als Primales und Duales bezeichnet.

51

2.1 Grundlagen

Dabei wurde eine leicht andere, aber dennoch identische Darstellung des Dualen im Vergleich zur Definition aus dem Kapitel u ¨ber Simplex-Verfahren verwendet. Weiterhin wiederholen wir folgende Aussage zur starken Dualit¨at bzw. zum komplement¨ aren Schlupf:

Satz 2.1 Gegeben seien ein lineares Programm in Standardform sowie das zugeh¨ orige duale lineare Programm. Weiter sei x zul¨ assig f¨ ur das Primale und y zul¨ assig f¨ ur das Duale. Dann gilt x · (c − A · y) = x · s = 0 genau dann, wenn x eine Optimall¨ osung des Primalen und y eine Optimall¨ osung des Dualen ist.

Wir haben damit bereits die wesentlichen Grundlagen zur Herleitung der InnerePunkte-Verfahren wiederholt und f¨ uhren noch folgende Notation ein, bevor wir die Ergebnisse zusammenfassen:

Notation 2.3 Zu einem Vektor x ∈ Rn und einem Vektor s ∈ Rn definieren wir die Diagonalmatrizen X = diag(x) ∈ Rn×n

und

S = diag(s) ∈ Rn×n .

Die Matrizen X und S sind regul¨ ar, falls x > 0 und s > 0 gilt. Dank dieser Notation k¨ onnen wir x · s auch schreiben als X · s. Die obigen Ergebnisse und Bezeichnungen liefern zusammengefasst folgende Aussage:

Satz 2.2 Gegeben sei ein lineares Programm in Standardform, d.h. min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin nehmen wir an, dass eine beschr¨ ankte Optimall¨ osung existiert. Falls (x, y, s) ∈ R2n+m das nichtlineare Gleichungssystem ⎞ ⎛ ⎞ ⎛ A·x−b 0 g(x, y, s) = ⎝ A · y + s − c ⎠ = ⎝ 0 ⎠ 0 X ·s

(2.4)

52

2 Innere-Punkte-Verfahren

l¨ ost und zus¨ atzlich x ≥ 0 sowie s ≥ 0 gilt, dann ist x eine Optimall¨ osung f¨ ur das Primale und y eine Optimall¨ osung f¨ ur das Duale. Dabei ist X die Diagonalmatrix zum Vektor x.

Damit sind alle Grundlagen wiederholt, sodass wir in den folgenden Abschnitten Innere-Punkte-Verfahren herleiten k¨ onnen.

2.2 Kurz-Schritt-Verfahren Die zentrale Idee aller Innere-Punkte-Verfahren ist folgende: Es wird eine Nullstelle der Funktion g(x, y, s) aus Gl. (2.4) unter Anwendung des Newton-Verfahrens zur L¨osung von nichtlinearen Gleichungssystemen bestimmt, sodass damit gleichzeitig eine L¨ osung x des Primalen sowie eine L¨osung y des Dualen berechnet wird. Allerdings ergeben sich dabei beachtliche Probleme: ( 1 ) Zun¨ achst muss x ≥ 0 sowie s ≥ 0 gelten, damit es sich bei der L¨osung des

Gleichungssystem tats¨ achlich auch um L¨ osungen der linearen Programme handelt. Diese Bedingungen ber¨ ucksichtigt das Newton-Verfahren im Allgemeinen nicht. ( 2 ) Dar¨ uber hinaus ist die zur Anwendung des Newton-Verfahrens ben¨otigte

Jacobi-Matrix Dg(x, y, s) im Allgemeinen nur dann regul¨ ar, falls x > 0 sowie s > 0 gilt. Details zu dieser Aussage werden wir sp¨ater genauer formulieren. Insbesondere die Bedingungen x > 0 und s > 0 widersprechen der Gleichung X · s = 0. Um dieses Problem zu umgehen, f¨ uhren wir einen Parameter μ > 0 ein und betrachten anstelle von (2.4) das nichtlineare Gleichungssystem ⎞ ⎛ ⎞ ⎛ A·x−b 0 (2.5) f (x, y, s) = ⎝ A · y + s − c ⎠ = ⎝ 0 ⎠ 0 X ·s−μ·e mit e = (1, . . . , 1) ∈ Rn . Somit konvergiert die Funktion f (x, y, s) gegen g(x, y, s), je kleiner μ gew¨ahlt wird. Jede Nullstelle von f (x, y, s) erf¨ ullt damit zun¨ achst einmal die Bedingung, dass keine Eintr¨ age der Vektoren x ∈ Rn und s ∈ Rn gleich null sind. Daher stammt schließlich auch der Name der Innere-Punkte-Verfahren: Wir werden iterative Verfahren herleiten, bei denen wir in jedem Schritt aufgrund von μ > 0 L¨osungen im Inneren der Mengen {x ≥ 0 : A · x = b}

und

{s ≥ 0 : A · y + s = c}

(2.6)

53

2.2 Kurz-Schritt-Verfahren

erhalten. Um diesem Ziel n¨aher zu kommen, untersuchen wir die Jacobi-Matrix von f (x, y, s): Mit der (n × n)-Einheitsmatrix In erhalten wir als Block-Matrix ⎞ ⎛ A 0 0 (2.7) Df (x, y, s) = ⎝ 0 A In ⎠ ∈ R(2n+m)×(2n+m) . S 0 X Dabei ist zu beachten, dass y keinen Einfluss auf Df (x, y, s) nimmt; aufgrund der Definition der Matrizen X und S (Notation 2.3) h¨angt Df (x, y, s) jedoch von x und s ab. Zur Anwendung des Newton-Verfahrens wird eine regul¨ are Jacobi-Matrix ben¨otigt. Hierzu gilt das bereits erw¨ahnte Ergebnis:

Satz 2.3 Gegeben sei eine Matrix A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiter seien x ∈ Rn und s ∈ Rn zwei Vektoren mit x > 0 und s > 0. Unter diesen Voraussetzungen ist die Jacobi-Matrix ⎞ ⎛ A 0 0 Df (x, y, s) = ⎝ 0 A In ⎠ ∈ R(2n+m)×(2n+m) S 0 X regul¨ ar.

Herleitung Wir haben damit eine Aussage, unter welchen Voraussetzungen ein n¨ achster Iterationsschritt des Newton-Verfahrens u ¨berhaupt durchgef¨ uhrt werden kann. Genauer sei   x(0) , y(0) , s(0) ∈ R(2n+m) eine erste Approximation einer Nullstelle von f (x, y, s) mit x(0) > 0 und s(0) > 0. Dann erhalten wir im n¨ achsten Schritt des Newton-Verfahrens

    N N ∈ R(2n+m) , x(1) , y(1) , s(1) = x(0) , y(0) , s(0) + xN (0) , y(0) , s(0) N N osung des linearen Gleichungssystems wobei (xN (0) , y(0) , s(0) ) die L¨

⎛ ⎜ ⎝

A

0

0

0

A

In

S(0)

0

X(0)

⎞ ⎛

xN (0)





b − A · x(0)

⎟ ⎜ yN ⎟ ⎜ ⎠ · ⎝ (0) ⎠ = ⎝ c − A · y(0) − s(0) sN μ · e − X(0) · s(0) (0)





⎞ x(0) ⎟ ⎠ = −f ⎝ y(0) ⎠ s(0)

ist. Dabei ist X(0) die Diagonalmatrix zum Vektor x(0) und analog S(0) die Diagonalmatrix zum Vektor s(0) . Dank der Voraussetzungen x(0) > 0 und s(0) > 0 ist dieses Gleichungssystem nach Satz 2.3 eindeutig l¨ osbar. Allerdings k¨ onnen die f¨ ur den folgenden Schritt des Newton-Verfahrens notwendigen Bedingungen x(1) > 0 und s(1) > 0 im Allgemeinen nicht sichergestellt werden. Um diese Voraussetzungen dennoch zu gew¨ ahrleisten, werden wir sp¨ ater einige

54

2 Innere-Punkte-Verfahren

Annahmen an die Startl¨ osung (x(0) , y(0) , s(0) ) stellen. Zudem wird kein fester Parameter μ gew¨ ahlt, sondern μ wird von Schritt zu Schritt verkleinert, sodass wir schließlich gegen eine Nullstelle der Funktion g(x, y, s) aus Gl. (2.4) konvergieren, f¨ ur welche x ≥ 0 und s ≥ 0 gilt. Wir erhalten damit ein iteratives Verfahren, welches unter gewissen Voraussetzungen (die wir in der folgenden Zusammenfassung im Detail formulieren werden) gegen eine Optimall¨ osung des linearen Programms konvergiert. Dabei bilden die L¨ osungen   x(k) , y(k) , s(k) ∈ R(2n+m) der einzelnen Iterationen den sogenannten zentralen Pfad, welcher sich dank assigen Mengen (2.6) befindet. μ(k) > 0 stets im Inneren der zul¨

Aufgabe 2.1 Angenommen, (x(1) , y(1) , s(1) ) ist die Approximation nach dem ersten Schritt des Newton-Verfahrens. Zeige, dass dann A · x(1) = b

sowie

A · y(1) + s(1) = c

gilt. Welche Aussage dazu kann u ¨ber die folgenden Schritte getroffen werden?

Als wichtiges Ergebnis fassen wir bereits eine grundlegende Version von InnerePunkte-Verfahren zusammen. Dabei geben wir ohne weitere Herleitung Voraussetzungen an die Startl¨osung sowie eine Vorschrift zur Verwendung von μ(k) an, sodass das Verfahren terminiert und konvergiert. Weitere Details und Herleitungen dazu k¨onnen beispielsweise in Jarre und Stoer (2004) nachgeschlagen werden. Zudem werden wir erst in Abschn. 2.4 im Detail darauf eingehen, wie das (große) lineare Gleichungssystem aus Schritt ( 1 ) des Verfahrens effizient gel¨ost werden kann.

Zusammenfassung 2.1 (Kurz-Schritt-Verfahren) Gegeben sei ein lineares Programm in Standardform, d.h. min c · x, n

sodass m

A·x = b

und

x ≥ 0,

m×n

. Dabei gelte n ≥ m und der mit c ∈ R , mit b ∈ R sowie mit A ∈ R Rang von A sei gleich m. Weiterhin nehmen wir an, dass eine beschr¨ankte Optimall¨osung existiert. Dar¨ uber hinaus seien x(0) > 0,

y(0) ≶ 0,

s(0) > 0

und

μ(0) > 0

derart gew¨ahlt, dass A · x(0) = b

und

A · y(0) + s(0) = c

gilt und weiter die Bedingung     X(0) · s(0) − μ(0) · e

2



μ(0) 2

(2.8)

55

2.2 Kurz-Schritt-Verfahren

erf¨ ullt wird. Nun setze k = 0, definiere eine Abbruchgenauigkeit ε > 0 und f¨ uhre folgende Schritte durch: N N ( 1 ) Bestimme (xN osung des linearen Gleichungssystems (k) , y(k) , s(k) ) als L¨

⎛ ⎜ ⎝

A

0

0

0

A

In

S(k)

0

X(k)

⎞ ⎛

xN (k)





b − A · x(k)



⎟ ⎜ yN ⎟ ⎜ ⎟ ⎠ · ⎝ (k) ⎠ = ⎝ c − A · y(k) − s(k) ⎠ sN μ(k) · e − X(k) · s(k) (k)

und setze

    N N x(k+1) , y(k+1) , s(k+1) = x(k) , y(k) , s(k) + xN (k) , y(k) , s(k) . ( 2 ) Falls μ(k) ≤ ε, beende das Verfahren. Anderenfalls setze

 μ(k+1) = μ(k) · 1 −



1 √

 n

,

(2.9)

erh¨ohe k um 1 und gehe wieder zu Schritt ( 1 ). Das Verfahren terminiert mit (x(k+1) , y(k+1) , s(k+1) ), wobei x(k+1) eine Approximation einer Optimall¨ osung des linearen Programms ist.

Das Verfahren in dieser Zusammenfassung wird Kurz-Schritt-Verfahren geur gr¨ oßere n nur mit einer kleinen nannt, da sich (x(k) , y(k) , s(k) ) insbesondere f¨ Schrittweite entlang des zentralen Pfades bewegt. Weiterhin kann die rechte Seite des Gleichungssystems auch vereinfacht werden, da f¨ ur alle k b − A · x(k) = 0

und

c − A · y(k) − s(k) = 0

gilt (s. auch Aufgabe 2.1). Das Kurz-Schritt-Verfahren wird daher auch als zul¨assiges Innere-Punkte-Verfahren bezeichnet, da wir in jedem Schritt stets zul¨ assige L¨osungen erhalten. Dar¨ uber hinaus sei bemerkt, dass sowohl die Voraussetzung (2.8) als auch die Berechnung von μ(k) gem¨aß der Vorschrift (2.9) nicht ohne Weiteres nachvollzogen werden k¨onnen. Diese Bedingungen werden jedoch ben¨ otigt, um die Konvergenz des Verfahren zu gew¨ahrleisten, s. Jarre und Stoer (2004). Bevor wir uns ein erstes Beispiel ansehen, schließen wir noch folgende Aussage zur Komplexit¨ at bzw. Konvergenzgeschwindigkeit des Verfahrens an:

56

2 Innere-Punkte-Verfahren

Satz 2.4 Unter den Voraussetzungen aus Zusammenfassung 2.1 terminiert das Kurz-Schritt-Verfahren nach sp¨ atestens μ √ (0) · n (2.10) 6 · log ε Iterationsschritten. Das Besondere an dieser Aussage ist, dass das Kurz-Schritt-Verfahren damit eine in n polynomielle Komplexit¨at besitzt, da jeder einzelne Iterationsschritt eine polynomielle Komplexit¨ at hat und die Anzahl der Schritte von der Gr¨oßenordnung √ O( n) ist. Wir erinnern uns: Es gibt Beispiele, bei denen das Simplex-Verfahren eine in n exponentielle Komplexit¨at besitzt.

Aufgabe 2.2 Bestimme die Komplexit¨ at eines einzelnen Iterationsschrittes des KurzSchritt-Verfahrens in Abh¨ angigkeit von n und m.

Schließlich untersuchen wir ein Beispiel zum Kurz-Schritt-Verfahren: Beispiel 2.1 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 A = ⎝ 0 −2 5 −3 1 −1 und der Vektor b = (−6, 9, −3) ∈ R3 . Zur Anwendung des Kurz-Schritt-Verfahrens w¨ ahlen wir die Startwerte ⎛ ⎞ ⎛ ⎞ 1, 12 17, 41 ⎛ ⎞ ⎜ 2, 44 ⎟ ⎜ 9, 65 ⎟ −3, 49 ⎜ ⎟ ⎜ ⎟ ⎜ ⎟ ⎟ ⎝ ⎠ −14, 03 x(0) = ⎜ 4, 62 ⎟ , y(0) = , s(0) = ⎜ ⎜ 5, 91 ⎟ ⎝ 6, 56 ⎠ ⎝ −1, 52 3, 59 ⎠ 5, 66 2, 97 amtliche Voraussetzungen zur Anwendung des Kurzsowie μ(0) = 20, welche s¨ Schritt-Verfahrens erf¨ ullen. Unter Verwendung von ε = 10−6 terminiert das Verfahren nach 218 Iterationen mit einer Approximation einer Optimall¨ osung, dessen Zielfunktionswert mit −2, 999 997 99 nur wenig vom Zielfunktionswert −3 einer exakten Optimall¨ osung abweicht. Weiterhin sei erw¨ ahnt, dass die maximale Anzahl von Iterationen gem¨ aß Gl. (2.10) durch 225 beschr¨ ankt ist. Dies ist nur unwesentlich mehr als die in diesem Beispiel ben¨ otigten 218 Schritte.

57

2.3 Pr¨ adiktor-Korrektor-Verfahren

ufe, dass die Startwerte in Beispiel 2.1 tats¨ achlich alle VoraussetzunAufgabe 2.3 Pr¨ gen zur Anwendung des Kurz-Schritt-Verfahrens aus Zusammenfassung 2.1 erf¨ ullen, d.h., pr¨ ufe insbesondere Voraussetzung (2.8).

Wie in Beispiel 2.1 ist es im Allgemeinen leider alles andere als einfach, Startwerte zu finden, welche die Voraussetzungen zur Anwendung des Kurz-Schritt-Verfahrens erf¨ ullen. Dar¨ uber hinaus ist die Konvergenzgeschwindigkeit des Verfahrens h¨ aufig vergleichsweise schlecht, da a¨hnlich dem Beispiel meist nahezu die maximale Anzahl von Iterationen gem¨aß Gl. (2.10) ben¨ otigt wird, bis das Verfahren terminiert.

2.3 Pr¨ adiktor-Korrektor-Verfahren Um eines der Hauptprobleme des Kurz-Schritt-Verfahrens zu umgehen, n¨ amlich das Finden von zul¨assigen Startwerten, werden wir den Algorithmus in diesem Abschnitt erweitern. Dazu sei bereits vorweggenommen, dass das folgende Verfahren zumindest theoretisch nicht immer konvergiert. Es handelt sich also um ein sogenanntes heuristisches Verfahren, welches in der Praxis h¨aufig sehr gute Konvergenzeigenschaften besitzt, aber aus theoretischer Sicht keine sehr guten Eigenschaften hat, sodass beispielsweise die Konvergenz nicht f¨ ur alle Eingabedaten sichergestellt werden kann. In der folgenden Herleitung orientieren wir uns an Mehrotra (1992), wo das Verfahren erstmals vorgestellt wurde. Es kann jedoch in ¨ahnlicher Art und Weise auch in Jarre und Stoer (2004) nachgeschlagen werden. ¨ zum Kurz-Schritt-Verfahren ist es das Ziel, eine Nullstelle von Herleitung Ahnlich ⎞ A·x−b f (x, y, s) = ⎝ A · y + s − c ⎠ X ·s−μ·e ⎛

mit x > 0 und s > 0 f¨ ur m¨ oglichst kleine Werte von μ unter Verwendung des Newton-Verfahrens zu approximieren. Dazu starten wir mit   x(0) , y(0) , s(0) ∈ R(2n+m) , wobei x(0) > 0 und s(0) > 0 gelte. Anders als beim Kurz-Schritt-Verfahren m¨ ussen die Startwerte nicht zul¨ assig sein, d.h., die Bedingungen A · x(0) = b

und

A · y(0) + s(0) = c

m¨ ussen nicht erf¨ ullt sein. Das Verfahren gliedert sich nun in zwei Schritte, n¨ amlich in den Pr¨ adiktor-Schritt und den Korrektor-Schritt.

58

2 Innere-Punkte-Verfahren

Unter Verwendung von μ = 0 l¨ osen wir im Pr¨ adiktor-Schritt analog zum KurzSchritt-Verfahren zun¨ achst das lineare Gleichungssystem ⎛ ⎞ ⎛ N ⎞ ⎛ ⎞ x(0) A 0 0 0 ⎜ ⎟ ⎜ N ⎟ ⎜ ⎟ 0 In ⎠ · ⎝ y(0) A ⎝ 0 ⎠ = ⎝ ⎠, N s(0) −X(0) · s(0) S(0) 0 X(0) N N dessen L¨ osung (xN (0) , y(0) , s(0) ) der Newton-Richtung entspricht. Allerdings wollen wir die Bedingungen x ≥ 0 und s ≥ 0 weiterhin bewahren und setzen daher



  x P P s N s N xP · xN = x(0) , y(0) , s(0) + α(0) (0) , y(0) , s(0) (0) , α(0) · y(0) , α(0) · s(0)

unter Verwendung von  x α(0)

=

s α(0)

=



 x(0),j N min 1, min − N : j = 1, . . . , n mit x(0),j < 0 ∈ R, x(0),j    s(0),j N min 1, min − N : j = 1, . . . , n mit s(0),j < 0 ∈ R. s(0),j

Dabei sei x(0),j der j-te Eintrag des Vektors x(0) ∈ Rn und analog f¨ ur s(0) ∈ Rn . Da y im Vorzeichen unbeschr¨ ankt ist, wird hier keine eigene Schrittweite berechnet, sondern die Schrittweite von s verwendet, denn y und s werden zusammen in einer x s sowie α(0) gilt schließlich Gleichung behandelt. Dank dieser Wahl von α(0) xP (0) ≥ 0

und

sP (0) ≥ 0.

P P atzer f¨ ur den n¨ achsten Mit (xP (0) , y(0) , s(0) ) haben wir nun allerdings nur einen Sch¨ Schritt gefunden, welcher die Zul¨ assigkeitsbedingungen keineswegs erf¨ ullen muss.

Daher schließt sich nun der Korrektor-Schritt an: Zun¨ achst setzen wir

2  P (xP (0) ) · s(0) 1 · > 0. μ(0) =

3 n  x(0) · s(0) asst sich im Kern nicht herleiten. Es Diese Gleichung zur Berechnung von μ(0) l¨ handelt sich hierbei um reine Erfahrungswerte, d.h., die Konvergenz des Verfahrens ist durch diese Wahl von μ(0) in praktischen Anwendungen vergleichsweise gut. Nun l¨ osen wir das lineare Gleichungssystem ⎞ ⎛ C ⎞ ⎛ ⎞ ⎛ b − A · x(0) x(0) A 0 0 ⎟ ⎜ C ⎟ ⎜ ⎟ ⎜ c − A · y(0) − s(0) In ⎠ · ⎝ y(0) A ⎠ = ⎝ ⎠ ⎝ 0 C N N s μ · e − X · s − X · s S(0) 0 X(0) (0) (0) (0) (0) (0) (0) N zum Vektor xN atzlichen Term mit der Diagonalmatrix X(0) (0) . Durch den zus¨ N · sN −X(0) (0)

59

2.3 Pr¨ adiktor-Korrektor-Verfahren

wird dabei versucht, den Fehler des Newton-Schrittes aus dem Pr¨ adiktor-Schritt zu kompensieren. Schließlich setzen wir

    x s C s C x(1) , y(1) , s(1) = x(0) , y(0) , s(0) + β(0) · xC , β · y , β · s (0) (0) (0) (0) (0) unter Verwendung von  x β(0)

=

s β(0)

=



 x(0),j C min 1, γ · min − C : j = 1, . . . , n mit x(0),j < 0 ∈ R, x(0),j    s(0),j C min 1, γ · min − C : j = 1, . . . , n mit s(0),j < 0 ∈ R. s(0),j

Dabei ist γ ∈ (0, 1) ein zuvor gew¨ ahlter Sicherheitsfaktor, etwa γ = 0, 95. Durch x s die Wahl von β(0) sowie β(0) werden schließlich wieder die Bedingungen x(1) > 0

und

s(1) > 0

bewahrt. Alle Schritte zuvor k¨ onnen nun iterativ wiederholt werden, bis geeignete Abbruchbedingungen erf¨ ullt sind. Wir fassen das Verfahren nun ausf¨ uhrlich zusammen. Dazu sei nochmals ausdr¨ ucklich darauf hingewiesen, dass das Verfahren in vielen praktischen Anwendungsf¨ allen sehr gute Konvergenzeigenschaften besitzt. Allerdings gibt es auch Beispiele, in den das Verfahren nur sehr langsam gegen eine Optimall¨osung konvergiert oder auch gar nicht terminiert.

Zusammenfassung 2.2 (Pr¨ adiktor-Korrektor-Verfahren) Gegeben sei ein lineares Programm in Standardform, d.h. min c · x,

sodass

A·x = b

und

x ≥ 0,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiterhin nehmen wir an, dass eine beschr¨ankte Optimall¨osung existiert. Dar¨ uber hinaus seien beliebige Startwerte y(0) ≶ 0

x(0) > 0,

und

s(0) > 0

gegeben. Nun setze k = 0, definiere eine Abbruchgenauigkeit ε > 0 sowie einen Sicherheitsfaktor γ ∈ (0, 1) und f¨ uhre folgende Schritte durch: N N ( 1 ) Bestimme (xN osung des linearen Gleichungssystems (k) , y(k) , s(k) ) als L¨

⎛ ⎜ ⎝

A

0

0

0

A

In

S(k)

0

X(k)

⎞ ⎛

xN (k)





0



⎟ ⎜ yN ⎟ ⎜ ⎟ 0 ⎠ · ⎝ (k) ⎠ = ⎝ ⎠. N s(k) −X(k) · s(k)

60

2 Innere-Punkte-Verfahren

( 2 ) Berechne die Werte



x α(k)

=

s α(k)

=



 x(k),j min 1, min − N : j = 1, . . . , n mit xN , (k),j < 0 x(k),j    s(k),j N min 1, min − N : j = 1, . . . , n mit s(k),j < 0 s(k),j

und setze



  x P P N s N s N xP , y , s , y , s · x , α · y , α · s = x + α (k) (k) (k) (k) (k) (k) (k) (k) (k) (k) (k) (k) . ( 3 ) Setze

μ(k)

2  P (xP (k) ) · s(k) 1 · =

3 . n · s x (k) (k)

(2.11)

C C ( 4 ) Bestimme (xC osung des linearen Gleichungssystems (k) , y(k) , s(k) ) als L¨

⎛ ⎜ ⎝

A

0

0

0

A

In

S(k)

0

X(k)

⎞ ⎛

xC (k)





b − A · x(k)



⎟ ⎜ yC ⎟ ⎜ ⎟  ⎠ · ⎝ (k) ⎠ = ⎝ c − A · y(k) − s(k) ⎠ x sC r(k) (k)

x N mit r(k) = μ(k) · e − X(k) · s(k) − X(k) · sN (k) .

( 5 ) Berechne die Werte



x β(k)

=

s β(k)

=

 x(k),j C min 1, γ · min − C : j = 1, . . . , n mit x(k),j < 0 , x(k),j    s(k),j C min 1, γ · min − C : j = 1, . . . , n mit s(k),j < 0 s(k),j

und setze   x(k+1) , y(k+1) , s(k+1) =





 x(k) , y(k) , s(k)

x s C s C · xC + β(k) (k) , β(k) · y(k) , β(k) · s(k) .

( 6 ) Falls X(k+1) · s(k+1) ∞ < ε sowie

A · x(k+1) − b∞ < ε

und

A · y(k+1) + s(k+1) − c∞ < ε,

beende das Verfahren. Anderenfalls erh¨ohe k um 1 und gehe wieder zu Schritt ( 1 ). Falls das Verfahren mit (x(k+1) , y(k+1) , s(k+1) ) terminiert, so ist x(k+1) eine Approximation einer Optimall¨ osung des linearen Programms.

61

2.3 Pr¨ adiktor-Korrektor-Verfahren

Geeignete Startwerte sind beispielsweise x(0) = e,

y(0) = 0

und

s(0) = e.

Sind jedoch weitere Informationen u ¨ber das lineare Programm vorhanden, k¨ onnen die Startwerte unter Umst¨ anden auch problemspezifisch sinnvoller gew¨ahlt werden. Weiterhin werden wir als Sicherheitsfaktor in allen Beispielen stets γ = 0, 95 verwenden. Falls das Verfahren nach einer vergleichsweise großen Anzahl an Iterationsschritten nicht terminiert oder falls x(k) ∞ bzw. s(k) ∞ u ¨berm¨aßig groß werden, so ist nicht mehr davon auszugehen, dass das Verfahren terminiert, und es kann abgebrochen werden. Ist dies der Fall, dann kann das folgende Gr¨ unde haben: ( 1 ) Das lineare Programm ist unzul¨ assig. ( 2 ) Das lineare Programm ist unbeschr¨ ankt. ( 3 ) Das Abbruchkriterium ε wurde ungeeignet (in der Regel zu klein) gew¨ ahlt.

Es kann jedoch keine Aussage dar¨ uber getroffen werden, welcher dieser Gr¨ unde eingetreten ist. Schließlich greifen wir Beispiel 2.1 aus dem Abschnitt zuvor wieder auf: Beispiel 2.2 Gegeben seien der Kostenvektor c = (3, −5, 0, 2, 1) ∈ R5 sowie die Matrix ⎛ ⎞ 5 −2 3 −4 1 1 0 1 0 ⎠ ∈ R3×5 A = ⎝ 0 −2 5 −3 1 −1 und der Vektor b = (−6, 9, −3) ∈ R3 . Zur Anwendung des Pr¨ adiktor-KorrektorVerfahrens w¨ ahlen wir die Startwerte x(0) = s(0) = e und y(0) = 0, d.h. x(0) = (1, 1, 1, 1, 1),

y(0) = (0, 0, 0),

s(0) = (1, 1, 1, 1, 1).

Unter Verwendung von ε = 10−6 terminiert das Verfahren nach nur acht Iterationen mit einer Approximation einer Optimall¨ osung, dessen Zielfunktionswert mit −2, 999 999 79 nur wenig vom Zielfunktionswert −3 einer exakten Optimall¨ osung abweicht. Im Vergleich dazu: Das Kurz-Schritt-Verfahren ben¨ otigt in Beispiel 2.1 bei vergleichbarer Genauigkeit 218 Iterationen.

62

2 Innere-Punkte-Verfahren

2.4 Charakteristisches lineares Gleichungssystem Die wesentliche Aufgabe der Innere-Punkte-Verfahren aus den beiden vorhergehenden Abschnitten besteht darin, in jedem Iterationsschritt ein lineares Gleichungssystem der Form ⎞ ⎛ N ⎞ ⎛ b ⎞ ⎛ A 0 0 x r ⎟ ⎜ N ⎟ ⎜ c ⎟ ⎜  In ⎠ · ⎝ y ⎠ = ⎝ r ⎠ ⎝ 0 A S

0

X

sN

rx

zu l¨osen. Mit A ∈ Rm×n handelt es sich dabei um ein (2 · n + m) × (2 · n + m) Gleichungssystem, sodass die Verfahren insbesondere f¨ ur große n schnell ineffizient werden. Aufgrund der speziellen Struktur der Matrix kann das L¨ osen des Systems beispielsweise im Vergleich zum Gauß-Verfahren allerdings signifikant verbessert werden. Dies wollen wir in diesem Abschnitt vorstellen, s. auch Wright (1997):

Satz 2.5 Gegeben sei eine Matrix A ∈ Rm×n . Dabei gelte n ≥ m und der Rang von A sei gleich m. Weiter seien x ∈ Rn und s ∈ Rn zwei Vektoren mit x > 0 und s > 0 sowie mit den zugeh¨ origen Diagonalmatrizen X und S. Zudem definieren wir D = A · S −1 · X · A ∈ Rn×n . Dann kann die L¨ osung des linearen Gleichungssystems ⎞ ⎛ N ⎞ ⎛ b ⎞ ⎛ A 0 0 x r ⎟ ⎜ ⎟ ⎜ ⎟ ⎜ ⎝ 0 A I n ⎠ · ⎝ y N ⎠ = ⎝ r c ⎠ S

0

X

sN

rx

f¨ ur alle rechte Seiten rb ∈ Rm sowie rc ∈ Rn und rx ∈ Rn bestimmt werden durch D · yN s

N

xN

=

rb + A · (S −1 · X · rc − S −1 · rx ),

(2.12)

= =

r c − A · y N , S −1 · X · sN − S −1 · rx .

(2.13) (2.14)

Im Wesentlichen ist somit ein (n×n)-Gleichungssystem zu l¨ osen, wobei es sich bei D um eine stets symmetrische und positiv definite Matrix handelt.

Bemerkenswert dabei ist, dass aufgrund der Aussagen zuvor stets eine CholeskyZerlegung von D existiert, welche eine besonders effiziente M¨ oglichkeit zur L¨ osung

2.5 Anwendungsbeispiel Nullsummenspiele

63

des linearen Gleichungssystems (2.12) bietet. Dar¨ uber hinaus sind in jedem Schritt des Pr¨ adiktor-Korrektor-Verfahrens zwei Gleichungssysteme mit identischer Matrix zu l¨osen, sodass die Cholesky-Zerlegung wiederverwendet werden kann. Erst dank dieser Ergebnisse k¨onnen Innere-Punkte-Verfahren effizient implementiert werden und bieten damit in der Praxis eine echte Alternative zum Simplex-Verfahren. Zudem sei bemerkt, dass alle Multiplikationen mit X bzw. mit S −1 sehr einfach und mit einer Komplexit¨at von nur O(n) durchgef¨ uhrt werden k¨ onnen, da es sich dabei um einfache Diagonalmatrizen handelt. Leider treten in der Praxis h¨ aufig numerische Rundungsfehler auf, welche die Innere-Punkte-Verfahren durchaus instabil machen k¨onnen: Viele Eintr¨ age der Vektoren x und s sind zwangsl¨ aufig sehr klein, sodass im Laufe der Verfahren sehr kleine oder sehr große Zahlen miteinander multipliziert und subtrahiert werden. Dies f¨ uhrt bei der Umsetzung der Verfahren oftmals zu Rundungsfehlern, sodass die Abbruchgenauigkeit ε nicht zu klein gew¨ahlt werden darf.

2.5 Anwendungsbeispiel Nullsummenspiele In der Spieltheorie werden mathematische Modelle aufgestellt und analysiert, welche der Entscheidungsfindung dienen k¨ onnen. In diesem Abschnitt pr¨asentieren wir als Spezialfall Zwei-Personen-Nullsummenspiele. Derartige Modelle k¨onnen als lineares Programm formuliert werden, und zur L¨ osung bieten sich insbesondere Innere-Punkte-Verfahren an. Die Inhalte aus diesem Abschnitt sowie weiterf¨ uhrende Themen der Spieltheorie k¨onnen beispielsweise in Owen (1982) oder Winter (2015) nachgelesen und vertieft werden. Gegeben sei ein Spiel zwischen Spieler 1 und Spieler 2. Beide Spieler haben eine (m¨ oglicherweise unterschiedliche) Menge an Strategien, aus denen gleichzeitig jeweils eine Strategie gew¨ ahlt wird. Dabei ist der Ausgang des Spiels festgelegt, sobald beide Spieler ihre Strategie gew¨ ahlt haben. Weiterhin gilt bei Nullsummenspielen, dass der Gewinn von Spieler 1 genau dem Verlust von Spieler 2 entspricht und umgekehrt. Den Gewinn bzw. Verlust bezeichnen wir entsprechend als positive bzw. negative Auszahlung, jeweils aus Sicht von Spieler 1 gesehen: Beispiel 2.3 Das bekannte Spiel Stein-Schere-Papier ist ein sehr einfaches Zwei-Personen-Nullsummenspiel. Beide Spieler w¨ ahlen aus der gleichen Strategiemenge {Stein, Schere, Papier}, und als Auszahlung bedeutet eine 1, dass Spieler 1 gewinnt. Das Spiel kann damit vollst¨ andig beschrieben werden durch die Spielmatrix ⎛ ⎞ 0 1 −1 0 1 ⎠. A = ⎝ −1 1 −1 0

64

2 Innere-Punkte-Verfahren

Dabei entspricht die Strategie von Spieler 1 einer Zeile der Matrix und die Strategie von Spieler 2 einer Spalte der Matrix. Der Ausgang des Spiels entspricht den Auszahlungen gem¨ aß der Spielmatrix: W¨ ahlt Spieler 1 das Papier (3. Zeile) und Spieler 2 die Schere (2. Spalte), so erhalten wir eine Auszahlung von −1, d.h., Spieler 1 verliert, und Spieler 2 gewinnt.

Aufgabe 2.4 Erweitere die Spielmatrix des Spiels Stein-Schere-Papier, falls beide Spieler zus¨ atzlich noch den Brunnen als weitere Strategie erhalten. Dabei gelte: Stein und Schere fallen in den Brunnen (und verlieren), Papier deckt den Brunnen ab (und gewinnt).

Dass beide Spieler durchaus unterschiedliche Strategiemengen haben k¨onnen, zeigt das folgende Beispiel: Beispiel 2.4 Ein sehr stark vereinfachtes Roulette k¨ onnte folgendermaßen aussehen: Spieler 2 w¨ ahlt eine Zahl aus der Menge {1, 2, 3, 4, 5, 6}, und Spieler 1 w¨ ahlt aus der Strategiemenge {gerade, ungerade, kleiner 3, gr¨oßer 4}. Pro Spiel zahlt Spieler 1 einen Einsatz von 3. Falls die Zahl gem¨ aß der Strategie von Spieler 2 die Eigenschaft gem¨ aß der Strategie von Spieler 1 besitzt, so erh¨ alt Spieler 1 einen Gewinn von 7. Die Auszahlung setzt sich zusammen aus Gewinn abz¨ uglich Einsatz, sodass wir ⎛ ⎞ −3 4 −3 4 −3 4 ⎜ 4 −3 4 −3 4 −3 ⎟ ⎟ A = ⎜ ⎝ 4 4 −3 −3 −3 −3 ⎠ −3 −3 −3 −3 4 4 als Spielmatrix erhalten. Angenommen, A = (ai,j ) ∈ Rm×n ist eine Spielmatrix, welche die Auszahlung eines Spiels definiert (aus Sicht von Spieler 1), und x = e r ∈ Rm

sowie

y = es ∈ Rn

seien zwei Einheitsvektoren. Dann ist x · A · y = e  r · A · es = ar,s die Auszahlung, falls Spieler 1 die Strategie r und Spieler 2 die Strategie s w¨ ahlt.

65

2.5 Anwendungsbeispiel Nullsummenspiele

Zur Wahl der Strategie stellen wir folgende Grundannahme: Beide Spieler versuchen, jeweils ihren schlimmsten Fall so gut wie m¨oglich zu gestalten, d.h., Spieler 1 versucht, die Funktion v(x) = min{x · A · y : y ∈ Rn } zu maximieren, wobei f¨ ur x ∈ Rm und y ∈ Rn zun¨achst nur Einheitsvektoren zul¨ assig sind. Da die Spielmatrix jeweils die Auszahlung aus Sicht von Spieler 1 definiert, versucht Spieler 2 seine Strategie derart zu w¨ ahlen, dass die Auszahlung an Spieler 1 minimiert wird. Dies bedeutet, dass Spieler 2 gewillt ist, die Funktion w(y) = max{x · A · y : x ∈ Rm } zu minimieren. Angenommen, Spieler 1 und Spieler 2 k¨onnen ihre Strategien derart w¨ ahlen, dass (2.15) max{v(x) : x ∈ Rm } = min{w(y) : y ∈ Rn } gilt (wobei f¨ ur x und y weiterhin nur Einheitsvektoren zul¨assig sind), dann werden sich Spieler 1 und Spieler 2 stets f¨ ur eine feste Strategie entscheiden und sich niemals von dieser abwenden. Wir erhalten einen stabilen Zustand des Spiels. ur x und y bislang nur Einheitsvektoren zul¨ assig sind, bietet sich Ausblick Da f¨ auch folgende Formulierung an: Wir definieren v∗ =

max

min

i=1,...,m j=1,...,n

ai,j

und

w∗ =

min

max

j=1,...,n i=1,...,m

ai,j .

¨quivalent zu Damit gilt stets v ∗ ≤ w∗ und die Bedingung (2.15) ist a v∗ = w∗ . Diese Schreibweisen werden sp¨ ater hilfreich sein.

Aufgabe 2.5 Untersuche die Bedingung (2.15) anhand der Spielmatrix ⎞ ⎛ −4 2 −3 −1 2 −2 ⎠ A = ⎝ 5 −1 1 2 3 0 sowie anhand der Spielmatrix des Stein-Schere-Papier-Spiels.

Um auch dann einen stabilen Zustand zu erreichen, falls die Bedingung (2.15) nicht erf¨ ullt ist, werden in der Spieltheorie gemischte Strategien zugelassen. Genauer sei   X = x = (x1 , . . . , xm ) ∈ Rm : x ≥ 0 und x1 + . . . + xm = 1

66

2 Innere-Punkte-Verfahren

die Menge aller gemischten Strategien von Spieler 1 mit folgender Bedeutung: Die gemischte Strategie x = (x1 , . . . , xm ) bedeutet, dass sich Spieler 1 mit einer Wahrscheinlichkeit von xi f¨ ur die Strategie i entscheiden wird. Die Menge der gemischten Strategien von Spieler 2 sei analog   Y = y = (y1 , . . . , yn ) ∈ Rn : y ≥ 0 und y1 + . . . + yn = 1 mit entsprechender Bedeutung. Zusammenfassend ist Spieler 1 auf der Suche nach einer gemischten Strategie x ∈ X, welche die Funktion v(x) = min{x · A · y : y ∈ Y }

(2.16)

maximiert. Entsprechend ist Spieler 2 auf der Suche nach einer gemischten Strategie y ∈ Y , welche die Funktion w(y) = max{x · A · y : x ∈ X}

(2.17)

minimiert. Die Besonderheit dabei ist, dass die Optimierungsprobleme (2.16) und (2.17) auch als lineare Programme formuliert werden k¨ onnen. Ohne genaue Herleitungen geben wir hier nur das Ergebnis an: Gem¨aß der Grundannahme hat Spieler 1 eine gemischte Strategie x zu w¨ahlen, welche sich aus einer Optimall¨ osung des folgenden linearen Programms ergibt: max t,

sodass

A · x − t · e x1 + . . . + xm xi t



0,

=

1,

≥ ≶

0 0.

f¨ ur alle i ∈ {1, . . . , m},

ur Spieler 2 das Dabei gelte t ∈ R sowie e = (1, . . . , 1) ∈ Rn . Analog erhalten wir f¨ lineare Programm min t,

sodass

A·y−t·e y1 + . . . + yn yj

≤ =

0, 1,



0

t



0.

f¨ ur alle j ∈ {1, . . . , n},

Durch Substitution mit negativen Variablen kann eingesehen werden, dass die beiden linearen Programme dual zueinander sind. Wir erhalten daher aufgrund der starken Dualit¨at das folgende Ergebnis:

Satz 2.6 (Min-Max-Satz) In jedem Zwei-Personen-Nullsummenspiel existieren gemischte Strategien, sodass der Gewinn von Spieler 1 gleich dem Verlust von Spieler 2 ist.

67

2.5 Anwendungsbeispiel Nullsummenspiele

Unter Verwendung von gemischten Strategien besitzt also jedes Zwei-PersonenNullsummenspiel einen stabilen Zustand, welchen wir als Gleichgewicht bezeichnen. Da wir sowohl an einer Optimall¨osung des Primalen als auch an einer des Dualen interessiert sind, bieten sich insbesondere Innere-Punkte-Verfahren an. Beispiel 2.5 Dank der Formulierung als lineares Programm sind wir nun in der Lage, ein Gleichgewicht unter Verwendung von gemischten Strategien im SteinSchere-Papier-Spiel aus Beispiel 2.3 zu berechnen. Die Optimall¨ osungen der linearen Programme liefern die gemischten Strategien x = ( 13 , 13 , 13 )

und

y = ( 13 , 13 , 13 ),

welche zu einem Gleichgewicht mit Auszahlung bzw. Zielfunktionswert x · A · y = 0 f¨ uhren. Erwartungsgem¨ aß erhalten wir f¨ ur beide Spiele identische gemischte Strategien. Dies ist stets dann der Fall, wenn die Spielmatrix schiefsymmetrisch ist, d.h., falls m = n und A = −A gilt.

ose auch das Zwei-Personen-Nullsummenspiel zur Spielmatrix aus BeiAufgabe 2.6 L¨ spiel 2.4. Angenommen, das Spiel wird sehr oft durchgef¨ uhrt, welcher Spieler wird dann auf lange Sicht seinen Gewinn steigern?

Zur weiteren numerischen Analyse wurden diverse quadratische Spielmatrizen mit zuf¨alligen Eintr¨agen aus dem Intervall [−10, 10] generiert. Anschließend wurden die beiden linearen Programme zur Bestimmung eines Gleichgewichts gel¨ost. Angewandt wurde dabei das Pr¨adiktor-Korrektor-Verfahren wie im vorhergehenden Abschnitt beschrieben, wobei als Abbruchgenauigkeit ε = 10−6 verwendet wurde. Abb. 2.1 zeigt die Laufzeiten sowie die Anzahl der ben¨otigten Iterationen zur L¨ osung der Probleme, jeweils aufgetragen gegen die Anzahl der Strategien. Offenbar scheint die Anzahl der Iterationen mit weniger als 15 weitestgehend konstant und somit unabh¨ angig von der Gr¨oße des Problems zu sein. Die numerisch ermittelte Laufzeit ist daher von der Gr¨oßenordnung O(n3 ), falls n die Anzahl der Strategien von Spieler 1 und Spieler 2 ist. Schließlich vergleichen wir noch das Pr¨adiktor-Korrektor-Verfahren am Beispiel von Zwei-Personen-Nullsummenspielen zum Simplex-Verfahren. Dabei muss zun¨achst

68

2 Innere-Punkte-Verfahren

180 160

Laufzeit (in ms)

140 120 100 80 60 40 20 0 0

10

20

30

40

50

60

70

80

90

100

70

80

90

100

Anzahl der Strategien

a Laufzeit in Abh¨angigkeit von der Anzahl der Strategien

Anzahl der Iterationen

20.0

15.0

10.0

5.0

0.0 0

10

20

30

40

50

60

Anzahl der Strategien

b Anzahl der Iterationen in Abh¨angigkeit von der Anzahl der Strategien Abb. 2.1 Numerische Analyse zum Pr¨ adiktor-Korrektor-Verfahren am Beispiel von ZweiPersonen-Nullsummenspielen mit zuf¨ allig generierten Spielmatrizen. Aufgetragen sind die Laufzeiten sowie die Anzahl der ben¨ otigten Iterationen zur L¨ osung der Probleme, jeweils gegen die Anzahl der Strategien

69

2.5 Anwendungsbeispiel Nullsummenspiele

1000 900

Laufzeit (in ms)

800 700 600 500 400 300 200 100 0 0.0

5.0

10.0

15.0

20.0

25.0

30.0

35.0

40.0

45.0

50.0

35.0

40.0

45.0

50.0

Anzahl der Strategien

a Laufzeit in Abh¨angigkeit von der Anzahl der Strategien

1800 Anzahl der Iterationen

1600 1400 1200 1000 800 600 400 200 0 0.0

5.0

10.0

15.0

20.0

25.0

30.0

Anzahl der Strategien

b Anzahl der Iterationen in Abh¨angigkeit von der Anzahl der Strategien Abb. 2.2 Numerische Analyse zum Vergleich zwischen Pr¨ adiktor-Korrektor-Verfahren (blau) und Simplex-Verfahren (rot) am Beispiel von Zwei-Personen-Nullsummenspielen mit zuf¨ allig generierten Spielmatrizen. Aufgetragen sind die Laufzeiten sowie die Anzahl der ben¨ otigten Iterationen zur L¨ osung der Probleme, jeweils gegen die Anzahl der Strategien

erw¨ ahnt werden, dass das Simplex-Verfahren insbesondere in Phase 1 je nach Pivotregel h¨aufig nicht terminiert bzw. kreist. Daher wurde in der folgenden Analyse stets Blands Pivotregel verwendet, um die Endlichkeit des Simplex-Verfahrens zu gew¨ahrleisten. Alle sonstigen Eingabedaten wurden wie zuvor zuf¨allig generiert. Abb. 2.2 zeigt die numerischen Ergebnisse. Offenbar steigt die Anzahl der Iterationen unter Verwendung des Simplex-Verfahrens in Abh¨angigkeit der Gr¨oße des Problems sehr stark an, was sich entsprechend auch auf die Laufzeit zur L¨osung des Problems auswirkt. Zusammenfassend zeigt die Analyse, dass zur L¨osung von Zwei-Personen-Nullsummenspielen das Pr¨ adiktor-Korrektor-Verfahren dem Simplex-Verfahren ganz klar vorzuziehen ist. Trotzdem sei nochmals wiederholt, dass daraus keine generelle Schlussfolgerung gezogen werden darf: Es h¨angt stets vom jeweiligen Problem ab, welche L¨ osungsverfahren zu bevorzugen sind.

3 Ganzzahlige Programmierung

In der linearen Programmierung besteht die Aufgabe darin, lineare Zielfunktionen unter Ber¨ ucksichtigung linearer Nebenbedingungen zu optimieren. Dabei wird die Annahme getroffen, dass alle Variablen reell sind. In vielen Anwendungen ist jedoch genau diese Annahme nicht zul¨ assig, sodass einige oder alle Variablen nur ganzzahlige Werte annehmen d¨ urfen. Lineare Programme mit ganzzahligen Variablen werden daher als (gemischt) ganzzahlige Programme bezeichnet, dessen Grundlagen wir in Abschn. 3.1 zusammenstellen. Anschließend definieren wir in Abschn. 3.2 die totale Unimodularit¨at einer Matrix und erhalten damit Bedingungen, unter denen das Simplex-Verfahren stets eine ganzzahlige L¨ osung liefert. In den folgenden beiden Abschnitten pr¨asentieren wir mit dem Branch-and-Bound-Verfahren (Abschn. 3.3) sowie dem Schnittebenenverfahren nach Gomory (Abschn. 3.4) zwei allgemeing¨ ultige Techniken zur L¨osung von ganzzahligen Programmen. Dennoch kommen in der ganzzahligen Programmierung h¨aufig problemspezifische Verfahren zum Einsatz. Als Beispiel dazu untersuchen wir in Abschn. 3.5 das Problem des Handlungsreisenden.

3.1 Grundlagen Mit den Simplex-Varianten sowie den Innere-Punkte-Verfahren haben wir bereits weitreichende Methoden zur L¨osung von linearen Programmen kennengelernt. Dabei wurde angenommen, dass es sich bei allen Variablen um reelle Zahlen handelt. In vielen Anwendungsf¨allen haben wir es jedoch mit ganzzahligen oder sogar Boolschen Variablen zu tun. Wir werden daher in diesem Kapitel unterschiedliche Verfahren zur L¨osung von linearen Programmen vorstellen, bei denen die Variablen ganzzahlig sind:

72

3 Ganzzahlige Programmierung

Definition 3.1 Ein ganzzahliges Programm in Standardform wird gegeben durch min c · x,

sodass

A·x = b

und

x ≥ 0, x ∈ Zn . (3.1)

Dabei sind c ∈ Rn und b ∈ Rm gegebene Vektoren sowie A ∈ Rm×n eine gegebene Matrix. Bis auf die zus¨ atzliche Beschr¨ ankung x ∈ Zn zur Erzwingung der Ganzzahligkeit ist die Definition damit identisch zu u ¨blichen linearen Programmen in Standardform. In den sp¨ateren L¨osungsverfahren werden wir teilweise auch fordern, dass der Vektor b und die Matrix A ganzzahlig sind, dies werden wir jedoch stets genau angeben. Weiterhin sei bemerkt, dass es auch viele Anwendungsf¨alle gibt, bei denen nur einige Variablen ganzzahlig sind, die anderen jedoch reell. Ist dies der Fall, so sprechen wir von gemischt ganzzahliger Programmierung . Obwohl einige der folgenden Verfahren auch f¨ ur gemischt ganzzahlige Programme geeignet sind, besch¨aftigen wir uns zur u ¨bersichtlicheren Darstellung bewusst nur mit (vollst¨ andig) ganzzahligen Programmen. Alle L¨ osungsverfahren der folgenden Abschnitte beruhen auf der Idee, dass lineare Programme ohne Ber¨ ucksichtigung der Ganzzahligkeit gel¨ost werden. Den Grund daf¨ ur liefert die folgende Definition gemeinsam mit dem anschließenden Lemma:

Definition 3.2 Gegeben sei ein ganzzahliges Programm min c · x,

sodass

A·x = b

und

x ≥ 0, x ∈ Zn ,

mit c ∈ Rn , mit b ∈ Rm sowie mit A ∈ Rm×n . Dann bezeichnen wir das lineare Programm ohne Ganzzahligkeitsbedingung, d.h. min c · x,

sodass

A·x = b

und

x ≥ 0, x ∈ Rn ,

als zugeh¨ orige LP-Relaxation. Im besten Falle liefert die LP-Relaxation sogar eine L¨osung des ganzzahligen Programms:

Lemma 3.1 Gegeben sei ein ganzzahliges Programm min c · x,

sodass

A·x = b

und

x ≥ 0, x ∈ Zn .

73

3.1 Grundlagen

Abb. 3.1 Beispiel eines ganzzahligen Programms mit zwei Variablen x1 und x2 . Dabei veranschaulicht xR eine Optimall¨ osung der LP-Relaxation und x∗ eine Optimall¨ osung des ganzzahligen Programms

Weiter sei xR eine Optimall¨ osung der zugeh¨ origen LP-Relaxation und es gelte osung des ganzzahligen Programms. xR ∈ Zn . Dann ist xR auch eine Optimall¨

Wir werden in Abschn. 3.2 spezielle Bedingungen formulieren, unter denen alle Voraussetzungen der Aussage zuvor erf¨ ullt sind. In diesen F¨allen kann das ganzzahlige Programm mittels LP-Relaxation unter Verwendung des Simplex-Verfahrens gel¨ost werden. Allgemein ist dies jedoch nicht der Fall: Abb. 3.1 veranschaulicht ein ganzzahliges Programm mit zwei Variablen x1 und x2 sowie mit Nebenbedingungen, welche in einer ≤-Form vorliegen. Die schwarzen Punkte bilden die zul¨ assige Menge des ganzzahligen Programms. Der zul¨assige Bereich der zugeh¨origen LP-Relaxation ist in Hellgrau dargestellt. In diesem Beispiel ist die Optimall¨ osung xR der LPRelaxation nicht ganzzahlig.

Aufgabe 3.1 Konstruiere ein explizites Beispiel eines ganzzahligen Programms (mit zwei Variablen analog zu Abb. 3.1) mit xR − x∗  > 10. osung des ganzzahligen Programms und xR eine OptiDabei ist x∗ eine Optimall¨ mall¨ osung der zugeh¨ origen LP-Relaxation.

Zusammenfassend gilt stets folgende Aussage:

74

3 Ganzzahlige Programmierung

Lemma 3.2 Gegeben sei ein ganzzahliges Programm min c · x,

sodass

A·x = b

und

x ≥ 0, x ∈ Zn .

Weiter sei x∗ eine (beschr¨ ankte) Optimall¨ osung des ganzzahligen Programms ankte) Optimall¨ osung der zugeh¨ origen LP-Relaxation. und xR eine (beschr¨ Dann gilt c  · xR ≤ c  · x∗ , d.h., jede Optimall¨ osung der LP-Relaxation (einer Minimierungsaufgabe) f¨ uhrt zu einer unteren Schranke.

Dabei sei bemerkt, dass die Optimall¨ osung der LP-Relaxation einer Maximierungsaufgabe entsprechend zu einer oberen Schranke f¨ uhrt. Damit haben wir bereits einfache, aber dennoch wichtige Grundlagen zur L¨osung von ganzzahligen Programmen geschaffen. Weitere Grundlagen sind beispielsweise in Kallrath (2012) und Domschke et al. (2015) zu finden. Als spezielle Fachliteratur zur ganzzahligen Programmierung verweisen wir auf Nemhauser und Wolsey (1999) sowie Schrijver (1986). Bevor wir in den folgenden Abschnitten unterschiedliche L¨ osungsverfahren pr¨ asentieren, stellen wir einige Beispiele zusammen, welche in a¨hnlicher Form teilweise schon im Kapitel u ¨ber das Simplex-Verfahren beschrieben wurden. Beispiel 3.1 (Produktionsproblem) Angenommen, eine Firma stellt n unterschiedliche Produkte her, wobei c = (c1 , . . . , cn ) den Gewinn pro Einheit definiert. Zur Herstellung der Produkte sind insgesamt m Maschinen notwendig, wobei durch ai,j definiert wird, dass zur Produktion einer Einheit von Produkt j die Maschine i f¨ ur ai,j Zeiteinheiten (beispielsweise Stunden) ben¨ otigt wird. Insgesamt erhalten wir damit eine (m × n)-Matrix A = (ai,j ). Weiterhin stehen die Maschinen aufgrund von Wartungen etc. nicht unbeschr¨ ankt zur Verf¨ ugung, wobei die Verf¨ ugbarkeiten durch b = (b1 , . . . , bm ) definiert werden. ugung. Genauer steht Maschine i pro Jahr f¨ ur maximal bi Zeiteinheiten zur Verf¨ Die Aufgabe der Firma besteht nun darin zu kl¨ aren, wie viele Einheiten xj von Produkt j f¨ ur j = 1, . . . , n hergestellt werden sollten, um den Gewinn zu maximieren und ohne die Verf¨ ugbarkeiten der Maschinen zu verletzen. Dabei wird davon ausgegangen, dass alle hergestellten Produkte auch stets verkauft werden. Wenn es sich bei jeder Einheit um nicht teilbare Produkte wie beispielsweise M¨ obelst¨ ucke oder Motoren handelt, so ist das Produktionsproblem als ganzzahliges Programm zu formulieren: max c · x,

sodass

A·x ≤ b

und

x ≥ 0, x ∈ Zn .

75

3.1 Grundlagen

Dabei ist zu beachten, dass das Problem mit den u ¨blichen Mitteln in Standardform u ¨berf¨ uhrt werden kann. Ein weiteres bereits bekanntes Beispiel ist das Transportproblem: Beispiel 3.2 (Transportproblem) Gegeben seien r Angebotsorte g1 , . . . , gr ∈ R2 sowie s Nachfrageorte h1 , . . . , hs ∈ R2 . In allen Angebotsorten wird ein identisches Produkt hergestellt, wobei f¨ ur i = 1, . . . , r der Angebotsort gi die Menge ui ≥ 0 ur produziert. In den Nachfrageorten hj besteht jeweils eine Nachfrage von wj ≥ 0 f¨ j = 1, . . . , s. Dabei nehmen wir der Einfachheit halber an, dass r  i=1

ui =

s 

wj

j=1

gilt, sodass Angebot und Nachfrage jeweils genau ausgeglichen sind. Weiterhin deur eine Mengeneinheit des Produkts vom Anfiniert ci,j ≥ 0 die Transportkosten f¨ gebotsort gi zum Nachfrageort hj . Das Transportproblem besteht nun darin, alle Nachfrageorte gem¨ aß der gegebenen Nachfrage durch die Angebotsorte zu beliefern und dabei die Transportkosten zu minimieren. Wenn auch in diesem Beispiel die Produkte jeweils nicht teilbar sind, so k¨ onnen wir die Aufgabe als ganzzahliges Programm beschreiben: min

r  s  i=1 j=1

ci,j · xi,j ,

sodass

r  i=1 s 

xi,j

=

wj

f¨ ur j = 1, . . . , s,

xi,j

=

ui

f¨ ur i = 1, . . . , r,

xi,j



0,

xi,j



Z.

j=1

Dabei bezeichnet xi,j die (ganzzahlige) Anzahl von Produkten, die vom Angebotsort i zum Nachfrageort j transportiert werden.

Aufgabe 3.2 Formuliere die Nebenbedingungen des Transportproblems in der Form A · x = b. Stelle dazu die Matrix A sowie den Vektor b f¨ ur r = 2 und s = 3 explizit auf.

Als Spezialfall der ganzzahligen Programmierung sind Aufgaben zu betrachten, bei denen die Variablen nur Werte aus der Menge {0, 1} annehmen d¨ urfen. Derartige Probleme werden als Boolsche Programme bezeichnet:

76

3 Ganzzahlige Programmierung

ande, jeweils mit einem Beispiel 3.3 (Rucksackproblem) Gegeben seien n Gegenst¨ ur j = 1, . . . , n. Nun nehmen wir Nutzen cj ≥ 0 sowie mit einem Gewicht aj ≥ 0 f¨ an, dass in einen Rucksack zwar alle Gegenst¨ ande von ihrer Gr¨ oßer her hineinpassen, allerdings kann nur ein Gesamtgewicht von b ≥ 0 getragen werden. Das Rucksackproblem besteht in der Entscheidung, welche Gegenst¨ ande mitgenommen werden sollten, um den Nutzen zu maximieren und trotzdem das Gesamtgewicht nicht zu u ¨berschreiten. Dieses Problem kann als Boolsches Programm formuliert werden: max

n 

c j · xj ,

n 

sodass

j=1

aj · xj ≤ b

und

x ∈ {0, 1}n .

j=1

Dabei bedeutet xj = 1, dass Gegenstand j eingepackt wird.

Aufgabe 3.3 Wie lautet die L¨ osung des Rucksackproblems, falls a1 + . . . + an ≤ b gilt? Was bedeutet diese Bedingung anschaulich?

3.2 Totale Unimodularit¨ at In diesem Abschnitt werden wir zeigen, dass unter gewissen Bedingungen ganzzahlige Programme stets mittels LP-Relaxation gel¨ ost werden k¨onnen. Dazu stellen wir insbesondere Anforderungen an die Matrix A:

Definition 3.3 Eine Matrix A ∈ Rm×n heißt total unimodular, falls f¨ ur die Determinante jeder quadratischen Teilmatrix B von A det(B) ∈ {−1, 0, 1} gilt. Eine Teilmatrix B entsteht durch das Streichen von Zeilen und Spalten der Matrix A.

Insbesondere kann eine Matrix A nur dann total unimodular sein, falls alle Matrixeintr¨ age aus der Menge {−1, 0, 1} sind. Beispiel 3.4 Die Matrix  A =

1 0

0 −1 −1 1



77

3.2 Totale Unimodularit¨ at

ist total unimodular, denn alle Matrixeintr¨ age sind aus {−1, 0, 1}, und es gilt       0 −1 1 −1 1 0 det = −1, det = 1, det = −1. −1 1 0 1 0 −1 Weitere quadratische Teilmatrizen gibt es nicht.

Aufgabe 3.4 Zeige, dass die Matrix ⎛

1 A = ⎝ −1 0

−1 0 1

⎞ 1 −1 ⎠ 1

nicht total unimodular ist.

Dabei ist es (im Allgemeinen) leider alles andere als trivial zu entscheiden, ob eine Matrix total unimodular ist oder nicht. Eine kleine Hilfe dazu liefern die folgenden Aussagen:

Lemma 3.3 Sei A ∈ Rm×n total unimodular. Dann gilt: ( 1 ) Sei B = A . Dann ist auch B total unimodular. ( 2 ) Sei B eine Matrix, die durch Umsortieren der Zeilen von A entsteht.

Dann ist auch B total unimodular. ( 3 ) Sei B eine Matrix, die durch Umsortieren der Spalten von A entsteht.

Dann ist auch B total unimodular. ( 4 ) Sei B eine Matrix, die durch Hinzuf¨ ugen einer Zeile mit nur einem von

null verschiedenen Eintrag aus {−1, 1} entsteht. Dann ist auch B total unimodular. ( 5 ) Sei B eine Matrix, die durch Hinzuf¨ ugen einer Spalte mit nur einem von

null verschiedenen Eintrag aus {−1, 1} entsteht. Dann ist auch B total unimodular.

Beispiel 3.5 Die Matrix



1 B = ⎝ 0 0

⎞ 0 −1 −1 0 ⎠ −1 1

ist total unimodular, denn die zweite Zeile enth¨ alt nur einen von null verschiedenen

78

3 Ganzzahlige Programmierung

Eintrag aus {−1, 1}, und ein Streichen der zweiten Zeile f¨ uhrt zur Matrix A aus Beispiel 3.4, welche total unimodular ist.

Alle obigen Aussagen sind eine direkte Folgerung aus den u ¨blichen Rechenregeln f¨ ur Determinanten. Ein weitaus interessanteres Ergebnis liefert der folgende Satz, welcher sich mit einfachen Mitteln der linearen Algebra zeigen l¨ asst:

Satz 3.4 Gegeben sei eine Matrix A = (ai,j ) ∈ Rm×n mit den folgenden Eigenschaften: ( 1 ) Es gelte ai,j ∈ {−1, 0, 1} f¨ ur i = 1, . . . , m und j = 1, . . . , n. ( 2 ) Jede Spalte von A besitzt genau zwei von null verschiedene Elemente. ( 3 ) Es gibt eine disjunkte Zerlegung der Indexmenge {1, . . . , m}, d.h.

M ∪ N = {1, . . . , m} sodass

 i∈M

ai,j =

M ∩ N = ∅,

mit 

ai,j

i∈N

f¨ ur alle j = 1, . . . , n gilt. Dann ist A total unimodular.

Die dritte Bedingung bedeutet, dass die Summe aller Zeilenvektoren der Indexmenge M gleich der Summe aller Zeilenvektoren der Menge N ist. Dieser Satz l¨ asst sich insgesamt am besten anhand eines Beispiels verstehen: Beispiel 3.6 Gegeben sei die Matrix ⎛ 1 ⎜ 0 ⎜ A = ⎝ 0 −1

⎞ 0 −1 0 −1 0 0 1 0 ⎟ ⎟. 1 0 −1 −1 ⎠ 1 1 0 0

Die ersten beiden Bedingungen von Satz 3.4 sind offenbar erf¨ ullt. Unter Verwendung von M = {1, 4} und N = {2, 3} kann aber auch leicht die dritte Bedingung u ¨berpr¨ uft werden. Folglich ist A total unimodular.

79

3.2 Totale Unimodularit¨ at

Aufgabe 3.5 Zeige unter Verwendung der obigen Aussagen, dass die Matrix ⎛ ⎜ ⎜ A = ⎜ ⎜ ⎝

1 0 0 1 0

0 0 −1 −1 0

0 0 0 0 1

1 0 −1 0 0

0 1 0 −1 1

−1 0 0 0 0

⎞ ⎟ ⎟ ⎟ ⎟ ⎠

total unimodular ist.

Schließlich kommen wir zur wichtigsten Aussage in diesem Kapitel:

Satz 3.5 Gegeben sei ein ganzzahliges Programm min c · x,

sodass

A·x = b

und

x ≥ 0, x ∈ Zn .

Dabei sei A ∈ Rm×n total unimodular und es gelte insbesondere b ∈ Zm . Dann ist jede Basisl¨ osung ganzzahlig.

Diese Aussage bedeutet, dass ein ganzzahliges Programm in Standardform mit total unimodularer Matrix A und ganzzahliger rechter Seite b durch die zugeh¨orige LP-Relaxation gel¨ ost werden kann, sofern beispielsweise das Simplex-Verfahren verwendet wird: Denn das Simplex-Verfahren terminiert mit einer Optimall¨ osung, welche eine zul¨ assige Basisl¨osung ist.

Aufgabe 3.6 Gegeben sei ein ganzzahliges Programm mit ≤-Nebenbedingungen: min c · x,

sodass

A·x ≤ b

und

x ≥ 0, x ∈ Zn .

unde unter VerDabei sei A ∈ Rm×n total unimodular und es gelte b ∈ Zm . Begr¨ wendung von Satz 3.5 sowie der Aussagen zuvor, dass auch in diesem Falle die LPRelaxation zu einer ganzzahligen L¨ osung f¨ uhrt.

Satz 3.5 l¨asst sich auf einige relevante Anwendungen der ganzzahligen Programmierung u ¨bertragen, so beispielsweise auf Netzwerkflussprobleme oder auf das bekannte Transportproblem: Beispiel 3.7 In Beispiel 3.2 haben wir bereits das Transportproblem mit r Angebotsorten und s Nachfrageorten als ganzzahliges Programm formuliert. Dabei l¨ asst sich leicht einsehen, dass die Matrix A ∈ Rm×n mit m = s + r sowie n = r · s total unimodular ist: Offensichtlich besitzt die Matrix nur Eintr¨ age aus {0, 1}, wobei in

80

3 Ganzzahlige Programmierung

jeder Spalte genau zwei Eintr¨ age gleich eins sind. Unter Verwendung der beiden Indexmengen M = {1, . . . , s}

N = {s + 1, . . . , s + r}

und

sind damit schließlich alle Voraussetzungen von Satz 3.4 erf¨ ullt. Wenn nun auch die Angebotsmengen ui sowie die Nachfragemengen wj ganzzahlig sind, so ist die rechte Seite b ∈ Rm ganzzahlig. Folglich besagt Satz 3.5, dass wir mit dem Simplex-Verfahren stets eine gesuchte ganzzahlige Optimall¨ osung erhalten.

¨ Aufgabe 3.7 Uberpr¨ ufe anhand der explizit aufgestellten Matrix aus Aufgabe 3.2 f¨ ur r = 2 und s = 3, dass die Matrix des Transportproblems tats¨ achlich total unimodular ist.

Zusammenfassend haben wir in diesem Abschnitt ein Kriterium kennengelernt, unter dessen Anwendung ganzzahlige Programme stets durch ihre LP-Relaxation gel¨ ost werden k¨onnen. Leider werden die Voraussetzungen nur in einigen F¨allen erf¨ ullt, sodass allgemeinere L¨osungsverfahren notwendig werden.

3.3 Branch-and-Bound-Verfahren In diesem Abschnitt diskutieren wir mit dem Branch-and-Bound-Verfahren eine allgemeing¨ ultige Methode zur L¨osung von ganzzahligen Programmen, wobei Gleichungen und Ungleichungen als Nebenbedingungen erlaubt sind: min c · x

sodass

A1 · x = A2 · x ≤ A3 · x ≥ x x

≥ ∈

b1 , b2 , b3 , 0, Zn .

(3.2)

Das Prinzip des Verfahrens l¨ asst sich folgendermaßen erkl¨aren: Zun¨ achst wird die LP-Relaxation (beispielsweise mit dem Simplex-Verfahren) gel¨ost. Falls die damit gefundene Optimall¨ osung (1)

x(1) = (x1 , . . . , x(1) n ) ganzzahlig ist, so ist direkt auch eine Optimall¨ osung des ganzzahligen Programms (1) (1) gefunden (Lemma 3.1). Anderenfalls wird ein xk mit xk ∈ Z gew¨ahlt, und es werden zwei neue lineare Programme der Form (3.2) aufgestellt: Die beiden neuen Programme seien identisch zum urspr¨ unglichen Problem, wobei das erste lineare

81

3.3 Branch-and-Bound-Verfahren

a Urspr¨ ungliches ganzzahliges Programm

b Aufteilung in zwei neue Programme

Abb. 3.2 Schematisches Beispiel zum Branch-and-Bound-Verfahren. Die (nicht ganzzahlige) Optimall¨ osung der LP-Relaxation eines ganzzahligen Programms mit zwei Variablen wird dazu verwendet, zwei neue lineare Programme zu erstellen, wobei der zul¨ assige Bereich jeweils durch eine zus¨ atzliche Nebenbedingung eingeschr¨ ankt wird

Programm um die Nebenbedingung (1)

xk ≤ xk 

(3.3)

und das zweite lineare Programm um die Nebenbedingung (1)

xk ≥ xk  (1)

(3.4) (1)

erweitert wird. Dabei ist xk  die gr¨oßte ganze Zahl kleiner als xk und entspre(1) (1) chend xk  die kleinste ganze Zahl gr¨oßer als xk . Diese Vorgehensweise wird auch in Abb. 3.2 anhand eines ganzzahligen Programms mit zwei Variablen veranschaulicht. Nachdem die beiden neuen Programme aufgestellt sind, wird jeweils wieder die LPRelaxation gel¨ost, und die anschließende Vorgehensweise ist wie zuvor. Auf diese Art und Weise entsteht ein Branch-and-Bound Baum, wobei jeder Knoten einem ganzzahligen Programm der Form (3.2) entspricht und der zul¨ assige Bereich von Knoten zu Knoten stets verkleinert wird. Falls die LP-Relaxation eines Programms nicht zul¨assig ist, muss keine weitere Unterteilung bzw. Verzweigung mehr vorgenommen werden (Abb. 3.3). Weiterhin sei bemerkt, dass der Zielfunktionswert einer Optimall¨ osung der LPRelaxation zu einer unteren Schranke f¨ uhrt (Lemma 3.2). Dies bedeutet: Ist w¨ ahrend des Verfahrens eine zul¨assige ganzzahlige L¨osung gefunden, so ist dies eine obere Schranke des Zielfunktionswertes einer Optimall¨osung des Ausgangsprogramms. Wenn nun der Zielfunktionswert einer Optimall¨osung der LP-Relaxation eines anderen Programms gr¨oßer als die obere Schranke ist, so kann dieses Programm zu keiner Optimall¨osung des Ausgangsprogramms f¨ uhren und muss daher nicht weiter betrachtet werden.

82

3 Ganzzahlige Programmierung

ganzzahliges Ausgangsprogramm X1 LP-Relaxaon: nicht ganzzahlige Lösung, Zielfunkonswert nicht relevant Folge: Unterteilung in zwei Programme

ganzzahliges Programm X3

ganzzahliges Programm X2 LP-Relaxaon: unzulässig Folge: keine weitere Unterteilung

LP-Relaxaon: nicht ganzzahlige Lösung, Zielfunkonswert nicht relevant Folge: Unterteilung in zwei Programme

ganzzahliges Programm X4

ganzzahliges Programm X5

LP-Relaxaon: ganzzahlige Lösung, Zielfunkonswert liefert obere Schranke Folge: keine weitere Unterteilung

LP-Relaxaon: nicht ganzzahlige Lösung, Zielfunkonswert kleiner obere Schranke Folge: Unterteilung in zwei Programme

ganzzahliges Programm X6

ganzzahliges Programm X7

LP-Relaxaon: nicht ganzzahlige Lösung, Zielfunkonswert größer obere Schranke Folge: keine weitere Unterteilung

LP-Relaxaon: ganzzahlige Lösung, Zielfunkonswert größer obere Schranke Folge: keine weitere Unterteilung

Abb. 3.3 Schematische Darstellung eines Branch-and-Bound Baumes. Der zul¨ assige Bereich atzlich eingeschr¨ ankt. Es wird jeweils des Ausgangsprogramms X1 wird in jedem Knoten zus¨ die LP-Relaxation gel¨ ost, und deren Ergebnis entscheidet dar¨ uber, ob weiter verzweigt wird oder nicht. Im gegebenen Beispiel liefert die (ganzzahlige) L¨ osung der LP-Relaxation von X4 eine Optimall¨ osung des Ausgangsprogramms X1

Mit dieser Vorgehensweise ist das Branch-and-Bound-Verfahren zur L¨osung von ganzzahligen Programme der Form (3.2) stets endlich, wobei durchaus eine (sehr) große Anzahl linearer Programme zu l¨osen ist. Dennoch handelt es sich um ein bedeutendes und allgemeing¨ ultiges Verfahren, f¨ ur dessen genaue Beschreibung wir zun¨ achst folgende Notation einf¨ uhren:

Notation 3.4 Gegeben sei ein ganzzahliges Programm der Form (3.2) mit Kostenvektor c ∈ Rn , welches wir mit X bezeichnen. Weiter sei y eine (beschr¨ ankte) Optimall¨ osung der LP-Relaxation von X. Dann verwenden wir die Notationen sowie cR (X) = c · y, xR (X) = y d.h., xR (X) ∈ Rn ist eine Optimall¨ osung der LP-Relaxation von X mit Zielfunktionswert cR (X) ∈ R.

Unter Ber¨ ucksichtigung dieser Schreibweisen erhalten wir zusammenfassend folgendes Verfahren:

3.3 Branch-and-Bound-Verfahren

83

Zusammenfassung 3.1 (Branch-and-Bound-Verfahren) Gegeben sei ein ganzzahliges Ausgangsprogramm der Form (3.2), welches wir mit X bezeichnen. Weiter sei bekannt, dass eine beschr¨ankte (ganzzahlige) Optimall¨osung von X existiert. F¨ uhre nun folgende Schritte aus: ( 1 ) Setze UB auf einen Wert M ∈ R, der sicher gr¨ oßer als der Zielfunktions-

wert einer Optimall¨ osung von X ist. Initialisiere x∗ = 0 ∈ Zn .

( 2 ) Sei X eine Liste von linearen Programmen und setze X = {X}, d.h., die

Liste X enth¨ alt zun¨achst nur das Ausgangsprogramm X.

( 3 ) L¨ ose die LP-Relaxation von X. Falls xR (X) ∈ Zn , setze UB = cR (X)

sowie x∗ = xR (X) und entferne X aus der Liste X .

( 4 ) Falls die Liste X leer ist, d.h. X = ∅, so terminiert das Verfahren. ( 5 ) W¨ ahle ein lineares Programm Y ∈ X und stelle wie zuvor beschrieben

assigen Bezwei neue lineare Programme Y1 und Y2 auf, welche den zul¨ reich (durch die Wahl einer nicht ganzzahligen Variablen xR k (Y ) ∈ Z) weiter einschr¨anken (Gl. 3.3 und Gl. 3.4). ( 6 ) Setze X = (X \ Y ) ∪ {Y2 , Y2 }, d.h., entferne Y aus der Liste X und f¨ uge

Y1 und Y2 hinzu. ( 7 ) F¨ ur s = 1, 2: L¨ ose die LP-Relaxation von Ys . Falls xR (Ys ) ∈ Zn gilt,

f¨ uhre zus¨ atzlich folgende Schritte durch: ( a ) Setze UB = min{UB, cR (Ys )}. ( b ) Falls UB = cR (Ys ), setze x∗ = xR (Ys ). ( 8 ) Entferne alle linearen Programme Z ∈ X mit cR (Z) ≥ UB. ( 9 ) Gehe zur¨ uck zu Schritt ( 4 ).

Mit den genannten Voraussetzungen ist das Verfahren stets endlich, und nach der Durchf¨ uhrung ist x∗ eine Optimall¨ osung des Ausgangsprogramms X.

Bei der Durchf¨ uhrung des Verfahrens in der zuvor angegebenen Form sind allerdings einige Punkte noch nicht eindeutig spezifiziert: Welches lineare Programm Y ∈ X sollte in Schritt ( 5 ) gew¨ahlt werden? Hierzu sei zun¨ achst bemerkt, dass alle linearen Programme, die in Schritt ( 5 ) in der Liste X enthalten sind, nicht ganzzahlige L¨osungen der LP-Relaxation besitzen, sodass prinzipiell alle linearen Programme zur weiteren Verzweigung gew¨ahlt werden k¨onnen. Grunds¨atzlich sind nun mehrere Strategien denkbar:

84

3 Ganzzahlige Programmierung

( 1 ) Kleinste untere Schranke: Es wird jeweils das lineare Programm Y mit

kleinster unterer Schranke cR (Y ) gew¨ahlt. Unter Verwendung dieser Strategie erhofft man sich, vergleichsweise schnell gute obere Schranken UB zu finden.

( 2 ) Last in first out: Es wird jeweils das letzte (d.h. das j¨ ungste) Element Y

der Liste gew¨ ahlt. Dadurch entstehen sehr schnell lineare Programme mit kleinen zul¨ assigen Bereichen. ( 3 ) First in first out: Es wird jeweils das erste (d.h. das a ¨lteste) Element Y der

Liste gew¨ ahlt. Dadurch wird erreicht, dass der zul¨assige Bereich der linearen Programme jeweils ungef¨ahr gleich groß ist. ( 4 ) Zuf¨ allige Wahl: Es wird ein rein zuf¨ alliges Element Y der Liste gew¨ahlt.

Damit werden die Vor- bzw. Nachteile der anderen Regeln kombiniert, wobei es sich nicht mehr um ein deterministisches Verfahren handelt: Bei gleichen Eingabedaten kann die Anzahl der ben¨ otigten Iterationen zur Berechnung einer Optimall¨ osung unterschiedlich sein. Angenommen, man hat sich f¨ ur ein lineares Programm Y zur weiteren Verzweigung entschieden. Dann stellt sich die n¨ achste Frage: Welches k mit xR k (X) ∈ Z sollte gew¨ahlt werden, falls hier mehrere Variablen nicht ganzzahlig sind? Auch hierzu sind unterschiedliche Strategien denkbar, wobei die Nummerierung der Variablen beliebig gew¨ ahlt werden kann. Daher schlagen wir vor, jeweils die erste nicht ganzzahlige Variable zu w¨ ahlen, d.h. das kleinste k ∈ {1, . . . , n} mit xR k (X) ∈ Z. Aufgabe 3.8 Begr¨ unde, warum alle lineare Programme, die in Schritt ( 5 ) in der Liste X enthalten sind, nicht ganzzahlige L¨ osungen der LP-Relaxation besitzen. Betrachte dazu insbesondere die Schritte ( 7 ) und ( 8 ).

Als Beispiel zum Branch-and-Bound-Verfahren analysieren wir die unterschiedlichen Strategien zur Wahl der linearen Programme anhand des Produktionsproblems aus Beispiel 3.1: asst sich gem¨ aß Beispiel 3.1 formulieren Beispiel 3.8 Das Produktionsproblem l¨ durch max c · x,

sodass

A·x ≤ b

und

x ≥ 0, x ∈ Zn ,

mit c ∈ Rn und entsprechend A ∈ Rm×n und b ∈ Rm . Zur numerischen Analyse das Branch-and-Bound-Verfahrens wurden f¨ ur unterschiedliche n sowie m = n/4 zuf¨ allige Eingabedaten gem¨ aß cj ∈ {1, . . . , 8},

ai,j ∈ {1, . . . , 8}

f¨ ur j = 1, . . . , n und i = 1, . . . , m generiert.

und

bi ∈ {4 · n, . . . , 8 · n}

85

3.3 Branch-and-Bound-Verfahren

Anzahl der Iterationen

250 200 150 100 50 0 4.0

6.0

8.0

10.0

12.0

14.0

16.0

18.0

20.0

22.0

24.0

Anzahl der Produkte

Durchschnittliche Anzahl der Iterationen

a Anzahl (blau) sowie durchschnittliche Anzahl (rot) der Iterationen in Abh¨ angigkeit von n

100 80 60 40 20 0 4.0

6.0

8.0

10.0

12.0

14.0

16.0

18.0

20.0

22.0

24.0

Anzahl der Produkte

b Durchschnittliche Anzahl der Iterationen in Abh¨angigkeit von n f¨ ur unterschiedliche Auswahlregeln Abb. 3.4 Numerische Analyse zum Branch-and-Bound-Verfahren anhand des Produktionsproblems. F¨ ur insgesamt 420 Instanzen wurden jeweils zuf¨ allige Eingabedaten generiert. a zeigt f¨ ur alle Instanzen die Anzahl der Iterationen zur L¨ osung des Problems in Abh¨ angigkeit von der Anzahl n der Produkte (blaue Punkte) sowie die zugeh¨ orige durchschnittliche Anzahl der Iterationen (rote Linie). Dar¨ uber hinaus zeigt b die durchschnittliche Anzahl der Iterationen in Abh¨ angigkeit von n f¨ ur unterschiedliche Regeln zur Auswahl der linearen Programme w¨ ahrend des Branch-and-Bound-Verfahrens: zuf¨ allige Wahl (blau), kleinste untere Schranke (rot), first in first out (gr¨ un)

86

3 Ganzzahlige Programmierung

Abb. 3.4a zeigt f¨ ur insgesamt 420 Instanzen die Anzahl der Iterationen zur L¨ osung des Problems in Abh¨ angigkeit von n. Die Darstellung verdeutlicht, dass sich keine klare Aussage u ¨ber die Konvergenzgeschwindigkeit in Abh¨ angigkeit der Eingabegr¨ oße n treffen l¨ asst. Zwar nimmt die durchschnittliche Anzahl der Iterationen mit n zu, allerdings ist die Streuung sehr groß. Auch f¨ ur vergleichsweise große n werden einige Instanzen mit einer sehr kleinen Anzahl an Iterationen gel¨ ost, bei anderen Instanzen ist dies jedoch nicht der Fall. Diese Beobachtung ist in der ganzzahligen Optimierung leider kein Einzelfall (vgl. auch Beispiel 3.10). In einer weiteren Analyse wurden unterschiedliche Regeln zur Wahl der linearen Programme w¨ ahrend des Branch-and-Bound-Verfahrens verglichen (Abb. 3.4b). Alle 420 Instanzen wurden jeweils unter Verwendung folgender Regeln gel¨ ost: ( 1 ) Zuf¨ allige Wahl: Es wurde jeweils ein zuf¨ alliges lineares Programm Y zur

weiteren Verzweigung gew¨ ahlt. ( 2 ) Kleinste untere Schranke: Es wurde jeweils das lineare Programm Y mit

kleinster unterer Schranke cR (Y ) gew¨ ahlt. Diese Regel kam auch in den Analysen aus Abb. 3.4a zum Einsatz.

( 3 ) First in first out: Es wurde jeweils das erste (d.h. das ¨ alteste) Element Y

der Liste gew¨ ahlt. Die Ergebnisse zeigen, dass die Regel unter Ber¨ ucksichtigung der kleinsten unteren Schranke mit der durchschnittlich kleinsten Anzahl an Iterationen zur L¨ osung des Produktionsproblems auskommt. Abschließend sei bemerkt, dass zur Anwendung des Branch-and-Bound-Verfahrens ein ganzzahliges Programm der Form (3.2) gefordert wird. Allerdings l¨asst sich das Verfahren auf direkte Weise auch dahingehend verallgemeinern, dass nicht alle Variablen ganzzahlig sein m¨ ussen. Entsprechend d¨ urfen nur Variablen k zur Verzweigung gew¨ ahlt werden, f¨ ur die eine Ganzzahligkeitsbedingung definiert wurde.

3.4 Schnittebenenverfahren Neben dem Branch-and-Bound-Verfahren dienen auch Schnittebenenverfahren zur L¨osung von ganzzahligen Programmen. Die grundlegende Idee dabei ist folgende: Zun¨ achst wird (wie u ¨blich) die LP-Relaxation gel¨ ost. Falls die damit gewonnene Optimall¨ osung xR nicht ganzzahlig ist, wird dem linearen Programm eine neue Nebenbedingung, eine Schnittebene, hinzugef¨ ugt (Abb. 3.5). Dabei wird die Schnittebene derart konstruiert, dass die (nicht ganzzahlige) Optimall¨osung xR der LP-Relaxation vom zul¨assigen Bereich abgeschnitten wird, ohne dabei eine ganzzahlige L¨ osung abzutrennen. Diese Vorgehensweise wird so lange wiederholt, bis die LP-Relaxation eine ganzzahlige L¨osung liefert.

87

3.4 Schnittebenenverfahren

a Urspr¨ ungliches ganzzahliges Programm

b Hinzuf¨ ugen einer Schnittebene

Abb. 3.5 Schematisches Beispiel zum Schnittebenenverfahren. Die (nicht ganzzahlige) Optimall¨ osung xR der LP-Relaxation eines ganzzahligen Programms wird dazu verwendet, um eine geeignete weitere Nebenbedingung derart hinzuzuf¨ ugen, dass kein zul¨ assiger Punkt des ganzzahligen Programms, wohl aber xR vom zul¨ assigen Bereich abgeschnitten wird

Dabei stellt sich nat¨ urlich die Frage, wie eine geeignete Schnittebene bestimmt werden kann. Dies wollen wir nun herleiten, wobei Kenntnisse und Bezeichnungen zum Simplex-Verfahren vorausgesetzt werden: ur ein allgemeing¨ ultiges Verfahren sei ein ganzzahliges Programm in Herleitung F¨ Standardform gegeben: min c · x,

A·x = b

sodass

und

x ≥ 0, x ∈ Zn .

Nun wird die LP-Relaxation mit dem Simplex-Verfahren gel¨ ost, und B sei die Basis, welche zur Optimall¨ osung der LP-Relaxation f¨ uhrt. Dann definieren wir m×n EB = (ei,j ) = A−1 B ·A ∈ R

und

m dB = (d1 , . . . , dm ) = A−1 B ·b ∈ R ,

und es sei bemerkt, dass die Matrix EB sowie der Vektor dB im Simplex-Tableau onnen. SB abgelesen werden k¨ Wir entscheiden uns nun f¨ ur ein r ∈ {1, . . . , m} mit dr ∈ Z. Ein derartiges r existiert, denn anderenfalls w¨ are die Optimall¨ osung der LP-Relaxation ganzzahlig. Mit diesen Bezeichnungen f¨ uhrt das Simplex-Tableau SB zur Gleichung n 

er,j · xj = dr ,

(3.5)

j=1

welche von allen zul¨ assigen L¨ osungen der LP-Relaxation erf¨ ullt wird. Unter Verwendung der Rechenvorschrift u = u + u − u

f¨ ur alle u ∈ R

88

3 Ganzzahlige Programmierung

schreiben wir Gl. (3.5) in folgender a ¨quivalenter Form: n 

er,j  · xj − dr  =



n



er,j − er,j  · xj dr − dr  −

j=1

(3.6)

j=1

Nun gilt (dr − dr ) < 1 sowie n

 er,j − er,j  · xj ≥ 0 j=1

f¨ ur alle x ≥ 0. Somit folgt zusammen

n



dr − dr  − er,j − er,j  · xj < 1 j=1

f¨ ur alle x ≥ 0. Da f¨ ur alle x ∈ Zn die linke Seite von Gl. (3.6) offensichtlich ganzzahlig ist, folgt schließlich, dass sogar n



er,j − er,j  · xj ≤ 0 dr − dr  − j=1

f¨ ur alle zul¨ assigen L¨ osungen des ganzzahligen Programms gelten muss, also f¨ ur alle x ∈ Zn mit x ≥ 0. Wir erhalten damit die Schnittebene n



 er,j − er,j  · xj ≥ dr − dr  ,

(3.7)

j=1

welche wir als Gomory-Schnittebene bezeichnen, s. Gomory (1958).Weiterhin l¨ asst sich aufgrund des Simplex-Verfahrens nachweisen, dass n

 er,j − er,j  · xj = 0

(3.8)

j=1

gilt, falls f¨ ur x = (x1 , . . . , xn ) die Optimall¨ osung der LP-Relaxation eingesetzt wird. Dies bedeutet aber, dass die Optimall¨ osung der LP-Relaxation die GomorySchnittebene (wie gew¨ unscht) nicht erf¨ ullt.

Zur L¨ osung folgender Aufgabe werden Details des Simplex-Verfahrens ben¨otigt:

ultigkeit von Gl. (3.8) im Detail nach. Unterscheide dazu Aufgabe 3.9 Weise die G¨ zwischen Indizes j, die in der Basis B enthalten sind, sowie Indizes j, die in der Nichtbasis N enthalten sind.

89

3.4 Schnittebenenverfahren

Wir fassen die Ergebnisse der Herleitung nochmals zusammen:

Satz 3.6 Gegeben sei ein ganzzahliges Programm min c · x,

sodass

A·x = b

und

x ≥ 0, x ∈ Zn ,

und xR sei eine (beschr¨ ankte) Optimall¨ osung der LP-Relaxation, welche eine Basisl¨ osung zur Basis B sei. Weiter definieren wir m×n m EB = (ei,j ) = A−1 und dB = (d1 , . . . , dm ) = A−1 B ·A ∈ R B ·b ∈ R ,

und es sei bemerkt, dass diese Daten im Simplex-Tableau SB abgelesen werden k¨ onnen. F¨ ur alle r ∈ {1, . . . , m} mit dr ∈ Z ist n



 er,j − er,j  · xj ≥ dr − dr 

(3.9)

j=1

eine Gomory-Schnittebene mit den folgenden Eigenschaften: ( 1 ) Alle ganzzahligen L¨ osungen sind weiterhin zul¨ assig, d.h., der zul¨ assige

Bereich des ganzzahligen Programms bleibt auch unter Ber¨ ucksichtigung der Schnittebene unver¨ andert. ( 2 ) Die Optimall¨ osung xR der LP-Relaxation wird vom zul¨ assigen Bereich

der LP-Relaxation abgeschnitten.

Zum besseren Verst¨ andnis demonstrieren wir das Verfahren nochmals anhand eines kleinen Beispiels: Beispiel 3.9 Gegeben sei das ganzzahlige Programm min −5 · x1 − 8 · x2 ,

sodass

x 1 + x2 + x3 5 · x1 + 9 · x 2 + x4 x 1 , x2 , x3 , x4 x 1 , x2 , x3 , x4

= =

6, 45,

≥ ∈

0, Z.

Das Ausgangstableau zur Anwendung des Simplex-Verfahrens lautet demnach ⎛ ⎞ −5 −8 0 0 0 ⎜ ⎟ T = ⎝ 1 1 1 0 6 ⎠, 5 9 0 1 45

90

3 Ganzzahlige Programmierung

und das Simplex-Verfahren terminiert mit ⎛ 0 ⎜ SB = S(1,2) = ⎝ 1 0

der Basis B = (1, 2) sowie dem Tableau ⎞ 5 165 3 0 4 4 4 ⎟ 9 9 ⎠. 0 − 14 4 4 1 − 54

1 4

15 4

Die unteren beiden Zeilen bilden per Definition die Matrix   9 1 0 − 14 4 EB = ∈ R2×4 1 0 1 − 54 4 sowie den Vektor dB = ( 94 ,

15 4 )

∈ R2 .

Die zugeh¨ orige Optimall¨ osung xR = ( 94 , 15 4 , 0, 0) der LP-Relaxation ist offenbar nicht ganzzahlig. Mit r = 2 erhalten wir gem¨ aß Satz 3.6 die Schnittebene 3 4

· x3 +

1 4

· x4 ≥

3 4.

(3.10)

Wenn wir nun die LP-Relaxation unter Ber¨ ucksichtigung der Schnittebene (3.10) l¨ osen, so ergibt sich die Optimall¨ osung x∗ = (0, 5, 1, 0), welche ganzzahlig und daher auch eine Optimall¨ osung des ganzzahligen Programms ist (Lemma 3.1). Das Beispiel kann anhand der folgenden Aufgaben vertieft werden:

Aufgabe 3.10 Betrachte Beispiel 3.9 und stelle die Schnittebene unter Verwendung von r = 1 auf. Vergleiche das Ergebnis zur Schnittebene (3.10).

Noch deutlicher wird das Beispiel anhand einer Darstellung des zul¨assigen Bereichs:

Aufgabe 3.11 Falls die Variablen x3 und x4 aus Beispiel 3.9 als Schlupfvariablen aufgefasst werden, so ist das ganzzahlige Programm ¨ aquivalent zu min −5 · x1 − 8 · x2 ,

sodass

x 1 + x2



6,

5 · x 1 + 9 · x2



45,

x1 , x 2



0,

x1 , x 2



Z.

Veranschauliche das Problem grafisch. Skizziere auch die Schnittebene (3.10), indem die Schnittebene unter Verwendung der Nebenbedingungen aus Beispiel 3.9 in einer aquivalenten Form nur durch x1 und x2 beschrieben wird. ¨

91

3.4 Schnittebenenverfahren

Ein wiederholtes Anwenden von Satz 3.6 f¨ uhrt schließlich zum Schnittebenenverfahren nach Gomory, welches urspr¨ unglich in Gomory (1958) ver¨offentlicht wurde. Es folgten zahlreiche Anwendungen sowie Weiterentwicklungen, siehe etwa Gomory (2002) sowie die zahlreichen darin enthaltenen Verweise. In der folgenden Zusammenfassung des Verfahrens nutzen wir wie zuvor die Notation xR (X) zur Beschreibung einer Optimall¨osung der LP-Relaxation eines ganzzahligen Programms X.

Zusammenfassung 3.2 (Schnittebenenverfahren) Gegeben sei ein ganzzahliges Ausgangsprogramm min c · x,

sodass

A·x = b

und

x ≥ 0, x ∈ Zn ,

welches wir mit X bezeichnen. Weiter sei bekannt, dass eine beschr¨ankte (ganzzahlige) Optimall¨osung von X existiert. F¨ uhre nun folgende Schritte durch: ( 1 ) L¨ ose die LP-Relaxation von X und erhalte damit xR (X). Falls die ersten

ur k = 1, . . . , n, n Eintr¨age von xR (X) ganzzahlig sind, d.h. xR k (X) ∈ Z f¨ so terminiert das Verfahren.

( 2 ) Berechne eine Schnittebene gem¨ aß Satz 3.6 und erg¨anze das ganzzahlige

Programm X um die neue Schnittebene. ¨ ( 3 ) Uberf¨ uhre X in Standardform und gehe zur¨ uck zu Schritt ( 1 ). Mit den genannten Voraussetzungen ist das Verfahren stets endlich, und nach der Durchf¨ uhrung bilden die ersten n Eintr¨age von xR (X) eine Optimall¨osung des Ausgangsprogramms.

Zun¨ achst sei bemerkt, dass in Schritt ( 2 ) alle Voraussetzungen zur Anwendung von Satz 3.6 erf¨ ullt sind. Offen ist jedoch die Frage, welches r ∈ {1, . . . , m} mit oglichkeiten bestehen. dr ∈ Z gew¨ahlt werden sollte (Gl. 3.9), falls mehrere M¨ Hierzu stellt es sich als sinnvoll heraus, auf der linken Seite von Gl. (3.9) m¨oglichst wenig bzw. auf der rechten Seite m¨oglichst viel abzurunden. Unter Verwendung der Notation n

 δi = ei,j − ei,j  j=1

f¨ ur i = 1, . . . , m schlagen wir daher folgende Strategie vor, welche sich auch numerisch als geeignet erweist: Zur Berechnung der Schnittebene gem¨aß Satz 3.6 in Schritt ( 2 ) des Verfahrens w¨ahle ein r ∈ {1, . . . , m} mit dr ∈ Z sowie mit δr = min{δi : i = 1, . . . , m mit di ∈ Z}. Diese Vorgehensweise bedeutet, dass auf der linken Seite von Gl. (3.9) m¨ oglichst wenig abgerundet wird.

92

3 Ganzzahlige Programmierung

Schließlich sei bemerkt, dass das Programm X in jedem Schritt um eine Un¨ gleichung erweitert wird, sodass zur Uberf¨ uhrung in Standardform eine weitere Schlupfvariable erg¨anzt werden muss. Von Schritt zu Schritt w¨achst damit nicht nur die Anzahl der Nebenbedingungen, sondern auch die Anzahl der Variablen. Diese Beobachtung wirkt sich entsprechend auch auf die Laufzeit zur L¨osung der LP-Relaxationen aus. Anhand der folgenden Aufgabe kann das Schnittebenenverfahren aus Zusammenfassung 3.2 nochmals im Detail nachvollzogen werden:

Aufgabe 3.12 Untersuche das Schnittebenenverfahren anhand des ganzzahligen Programms min −x1 − x2 ,

sodass

2 · x 1 + x2 + x3

=

x1 + 2 · x 2 + x4

=

4,

x1 , x2 , x3 , x4



0,

x1 , x2 , x3 , x4



Z.

4,

Wie viele Schnittebenen werden ben¨ otigt, bis die L¨ osung der LP-Relaxation ganzzahlig ist?

Die zentrale Aussage zur Endlichkeit des Verfahrens (welche wir in der Zusammenfassung bereits vorweggenommen haben) kann beispielsweise Gomory (1958) entnommen werden:

Satz 3.7 Das Schnittebenenverfahren aus Zusammenfassung 3.2 ist endlich.

Obwohl die Konvergenz des Verfahrens damit theoretisch sichergestellt ist, ergeben sich in der Praxis h¨ aufig einige Schwierigkeiten: Das Schnittebenenverfahren ist recht anf¨allig f¨ ur numerische Rundungsfehler, welche sich zwangsl¨ aufig in jedem numerischen L¨ osungsverfahren ergeben. Dies f¨ uhrt dazu, dass das Verfahren teilweise nur sehr langsam oder (bei ung¨ unstigen Eingabedaten sowie ungeeigneten Abbruchbedingungen) gar nicht konvergiert. Dennoch kann das Schnittebenenverfahren sehr gut mit dem Branch-and-BoundVerfahren kombiniert werden: Beispielsweise kann zu jeder LP-Relaxation Y , die w¨ ahrend des Branch-and-Bound-Verfahrens gel¨ ost wird, ein Schritt des Schnittebenenverfahrens durchgef¨ uhrt werden. Dies f¨ uhrt dazu, dass die untere Schranke cR (Y ) verbessert wird oder dass anschließend sogar xR (Y ) ∈ Zn gilt. Im Detail wollen wir darauf aber nicht weiter eingehen. Abschließend untersuchen wir das Schnittebenenverfahren anhand des Rucksackproblems und vergleichen es zum Branch-and-Bound-Verfahren aus Abschn. 3.3:

93

3.4 Schnittebenenverfahren

Anzahl der Iterationen

30.0 25.0 20.0 15.0 10.0 5.0 0.0 4.0

6.0

8.0

10.0

12.0

14.0

16.0

18.0

20.0

22.0

24.0

Anzahl der Gegenstaende

Durchschnittliche Anzahl der Iterationen

a Anzahl (blau) sowie durchschnittliche Anzahl (rot) der Iterationen in Abh¨ angigkeit von n

16.0 14.0 12.0 10.0 8.0 6.0 4.0 2.0 4.0

6.0

8.0

10.0

12.0

14.0

16.0

18.0

20.0

22.0

24.0

Anzahl der Gegenstaende

b Durchschnittliche Anzahl der Iterationen in Abh¨angigkeit von n im Vergleich Abb. 3.6 Numerische Analyse zum Schnittebenenverfahren anhand des Rucksackproblems. F¨ ur insgesamt 420 Instanzen wurden jeweils zuf¨ allige Eingabedaten generiert. a zeigt f¨ ur alle Instanzen die Anzahl der Iterationen des Schnittebenenverfahrens zur L¨ osung des Problems in Abh¨ angigkeit von der Anzahl n der Gegenst¨ ande (blaue Punkte) sowie die zugeh¨ orige durchschnittliche Anzahl der Iterationen (rote Linie). Dar¨ uber hinaus zeigt b die durchschnittliche Anzahl der Iterationen in Abh¨ angigkeit von n im Vergleich zwischen Branchand-Bound-Verfahren (blau) und Schnittebenenverfahren (rot)

94

3 Ganzzahlige Programmierung

aß Beispiel 3.3 l¨ asst sich das Rucksackproblem formulieren Beispiel 3.10 Gem¨ durch max

n 

c j · xj ,

j=1

sodass

n 

aj · xj ≤ b

und

x ∈ {0, 1}n .

j=1

Zur numerischen Analyse wurden f¨ ur unterschiedliche n zuf¨ allige Eingabedaten gem¨ aß cj ∈ {1, . . . , 8},

aj ∈ {1, . . . , 10}

und

b = 4·n

f¨ ur j = 1, . . . , n generiert, sodass stets eine beschr¨ ankte Optimall¨ osung existiert. Abb. 3.6a zeigt f¨ ur insgesamt 420 Instanzen die Anzahl der Iterationen zur L¨ osung des Problems (unter Verwendung des Schnittebenenverfahrens) in Abh¨ angigkeit von n. Offensichtlich konnten alle Instanzen bis n = 24 mit maximal 30 Schnittebenen gel¨ ost werden. Zudem steigt die durchschnittliche Anzahl der Iterationen nur vergleichsweise leicht mit n an, wobei a ¨hnlich zum Produktionsproblem aus Beispiel 3.8 wieder eine sehr große Streuung zu beobachten ist. In einer weiteren Analyse wurde das Schnittebenenverfahren zum Branch-andBound-Verfahren verglichen (Abb. 3.6b): Die durchschnittliche Anzahl der Iterationen zur L¨ osung des Rucksackproblems ist beim Schnittebenenverfahren signifikant geringer im Vergleich zum Branch-and-Bound-Verfahren. Zudem sei bemerkt, dass in jeder Iteration des Branch-and-Bound-Verfahrens zwei LP-Relaxationen gel¨ ost werden m¨ ussen. Im Vergleich dazu wird beim Schnittebenenverfahren pro Iteration nur eine LP-Relaxation gel¨ ost, wobei hierbei die Anzahl der Nebenbedingungen und Variablen pro Iteration jeweils um eins erh¨ oht wird.

3.5 Problemspezifische Verfahren Die Verfahren aus den vorhergehenden Abschnitten sind allgemeing¨ ultig, d.h., es k¨onnen beliebige ganzzahlige Programme, welche die jeweiligen Anforderungen der Verfahren erf¨ ullen, gel¨ ost werden. Unter Umst¨anden muss dazu aber jeweils eine sehr große Anzahl an LP-Relaxationen mit einer m¨oglicherweise steigenden Anzahl an Schlupfvariablen gel¨ost werden. In der ganzzahligen Optimierung werden daher h¨aufig problemspezifische Verfahren eingesetzt, d.h., in das L¨ osungsverfahren werden spezielle Kenntnisse u ¨ber das zu l¨osende Problem einbezogen, um im Vergleich zu den allgemeinen Verfahren bessere Konvergenzeigenschaften zu erzielen. Als exemplarisches Beispiel eines problemspezifischen Verfahrens diskutieren wir in diesem Abschnitt das Problem des Handlungsreisenden: Gegeben seien mit p1 , . . . , pm ∈ R2 genau m Orte in der Ebene und bekannt sei der Abstand zwischen

95

3.5 Problemspezifische Verfahren

je zwei Orten, beispielsweise ci,j = pi − pj 2 unter Verwendung der euklidischen Norm. Die Aufgabe des Handlungsreisenden besteht darin, alle Orte genau einmal zu besuchen und anschließend wieder zum Ausgangspunkt zur¨ uckzukehren, wobei die gesamte Reisetour m¨oglichst kurz sein soll. Anschaulich besteht das Problem also darin, m Punkte in der Ebene in einer Tour miteinander zu verbinden, wobei die Summe der Wege so kurz wie m¨oglich sein soll. Abb. 3.7a zeigt die Eingabedaten f¨ ur ein Problem mit m = 15 Orten. Die zugeh¨ orige Optimall¨osung (d.h. die k¨ urzeste Rundreise, die alle Punkte miteinander verbindet) kann Abb. 3.7d entnommen werden. Um dieses Problem als ganzzahliges Programm zu formulieren, definieren wir die bin¨ aren Variablen xi,j ∈ {0, 1} f¨ ur i = 1, . . . , m − 1 und j = i + 1, . . . , m mit folgender Bedeutung: 1 der Weg zwischen pi und pj ist in der Tour enthalten xi,j = 0 der Weg zwischen pi und pj ist nicht in der Tour enthalten Weiterhin f¨ uhren wir f¨ ur i = 1, . . . , m die Nebenbedingungen i−1 

xk,i +

k=1

m 

xi,k = 2

k=i+1

ein, sodass jeder Ort genau einen eingehenden und einen ausgehenden Weg besitzt. Zusammenfassend erhalten wir damit das ganzzahlige Programm min

m−1 

m 

i=1 j=i+1

ci,j · xi,j , sodass

i−1  k=1

xk,i +

m 

xi,k

=

2

f¨ ur i = 1, . . . , m,

xi,j



{0, 1},

k=i+1

bestehend aus

1 · m · (m − 1) 2 bin¨ aren Variablen und m Nebenbedingungen. n =

Leider f¨ uhrt eine Optimall¨osung des ganzzahligen Programms in dieser Form im Allgemeinen noch nicht zur gesuchten k¨ urzesten Reisetour. Am Beispiel der Eingabedaten aus Tab. 3.1 (s. auch Abb. 3.7a) wird die Optimall¨osung des ganzzahligen Programms in Abb. 3.7b veranschaulicht. Offenbar sind alle Nebenbedingungen erf¨ ullt, d.h., alle Orte haben genau einen eingehenden und einen ausgehenden Weg. Es ergibt sich jedoch keine geschlossene Tour, sondern eine L¨osung bestehend aus insgesamt drei Subtouren. Daher m¨ ussen dem ganzzahligen Programm Subtour-Eliminationsbedingungen hinzugef¨ ugt werden. Nun gibt es diverse M¨oglichkeiten, diese zu formulieren, wobei die Anzahl der Nebenbedingungen jeweils stark w¨ achst, s. Miller et al. (1960):

96

3 Ganzzahlige Programmierung

a Lage der m = 15 Orte aus Tab. 3.1

b Ohne Subtour-Eliminationsbedingungen

c Mit einer Subtour-Eliminationsbedingung

d Mit zwei Subtour-Eliminationsbedingungen

Abb. 3.7 Beispiel zum Problem des Handlungsreisenden mit m = 15 Orten. a zeigt die Eingabedaten, genauer die Lage der Orte. Die L¨ osung des zugeh¨ origen ganzzahligen Programms kann b entnommen werden. Offenbar besteht die L¨ osung aus insgesamt drei Subtouren, sodass Subtour-Eliminationsbedingungen hinzugef¨ ugt werden m¨ ussen. Nach dem Hinzuf¨ ugen einer Eliminationsbedingung erhalten wir die L¨ osung aus c. Weiterhin besteht die L¨ osung aus drei Subtouren, wobei nur eine der drei Subtouren im Vergleich zu b ver¨ andert wurde. Nach dem Hinzuf¨ ugen einer zweiten Eliminationsbedingung erhalten wir die L¨ osung aus d. Nun handelt es sich um eine geschlossene Tour, sodass damit auch eine optimale Reisetour berechnet wurde

97

3.5 Problemspezifische Verfahren

p1 = (88, 74) p6 = (56, 16) p11 = (55, 50)

p2 = (78, 33) p7 = (36, 48) p12 = (12, 27)

p3 = (18, 40) p8 = (65, 31) p13 = (83, 44)

p4 = (27, 85) p9 = (64, 59) p14 = (26, 60)

p5 = (47, 79) p10 = (30, 52) p15 = (60, 39)

Tab. 3.1 Eingabedaten zum Problem des Handlungsreisenden mit m = 15 Orten unter Verwendung der euklidischen Norm

Selbst unter Verwendung von weiteren m Hilfsvariablen w¨achst die Anzahl der Nebenbedingungen mindestens quadratisch in m, was sich entsprechend auf die Laufzeit zur L¨osung des Problems auswirkt. Sinnvoller erscheint daher folgende Vorgehensweise: ( 1 ) Zun¨ achst wird das oben beschriebene ganzzahlige Programm ohne Subtour-

Eliminationsbedingungen gel¨ ost. ( 2 ) Falls die Optimall¨ osung keine zusammenh¨ angende Tour liefert, wird eine

Subtour-Eliminationsbedingung hinzugef¨ ugt, welche die aktuelle Subtour beginnend bei p1 verhindert. ( 3 ) Nun wird das ganzzahlige Programm mit Subtour-Eliminationsbedingung

gel¨ ost, und es wird wieder u ¨berpr¨ uft, ob eine zusammenh¨angende Tour gefunden wurde. Diese Schritte werden nun iterativ wiederholt, d.h., es werden iterativ SubtourEliminationsbedingung hinzugef¨ ugt, bis schließlich eine zusammenh¨ angende Reisetour gefunden wird. H¨aufig sind auf diese Art und Weise vergleichsweise wenige Iterationen notwendig, bis eine L¨ osung zum Problem des Handlungsreisenden gefunden wird. Am Beispiel aus Abb. 3.7 sind nur zwei Subtour-Eliminationsbedingungen notwendig, um die optimale Reisetour p1



p9 p7

→ →

p5 p11

→ →

p4 p15

→ →

p14 p6

→ p10 → p8

→ →

p3 p2

→ p12 → p13

→ → p1

zu finden.

Aufgabe 3.13 Angenommen, die L¨ osung des ganzzahlige Programm (ohne SubtourEliminationsbedingungen) mit m = 6 Orten liefert die beiden Subtouren p 1 → p4 → p5 → p1

und

p2 → p3 → p6 → p2 .

Formuliere f¨ ur beide Subtouren jeweils eine Subtour-Eliminationsbedingung, welche die Subtour verhindert.

4 Nichtlineare Optimierung

Bislang haben wir uns intensiv mit der Optimierung von linearen Zielfunktionen mit linearen Nebenbedingungen besch¨ aftigt und unterschiedliche L¨ osungsverfahren dazu kennengelernt. Die nichtlineare Optimierung behandelt allgemeine Zielfunktionen mit einem zul¨ assigen Bereich, welcher nicht (nur) durch lineare Nebenbedingungen definiert wird. Je nach Struktur und Eigenschaften gibt es sehr unterschiedliche Methoden zur Optimierung nichtlinearer Zielfunktionen, sodass wir in diesem Kapitel nur eine kleine Auswahl dieser Verfahren vorstellen k¨ onnen. Wir beginnen in Abschn. 4.1 mit allgemeinen Definitionen und Grundlagen sowie den notwendigen Optimalit¨atskriterien erster und zweiter Ordnung f¨ ur differenzierbare Zielfunktionen. Anschließend pr¨ asentieren wir in Abschn. 4.2 das Gradientenverfahren, welches (m¨oglicherweise) gegen ein lokales Minimum konvergiert. Als weitere Spezialf¨ alle fassen wir in Abschn. 4.3 und Abschn. 4.4 Ergebnisse f¨ ur nichtlineare Optimierungsprobleme mit konvexen bzw. konkaven Zielfunktionen zusammen. Schließlich pr¨ asentieren wir in Abschn. 4.5 mit den Fritz-John-Bedingungen notwendige Optimalit¨atsbedingungen f¨ ur stetig differenzierbare Zielfunktionen mit stetig differenzierbaren Nebenbedingungen. Abschließend stellen wir in Abschn. 4.6 das Nelder-Mead-Verfahren vor, welches keinerlei Anforderungen an die Zielfunktion stellt. Aus theoretischer Sicht lassen sich hier keine zuverl¨ assigen Konvergenzeigenschaften angeben, in vielen praktischen Anwendungsf¨ allen liefert das Verfahren jedoch sehr gute Ergebnisse.

4.1 Grundlagen Bislang haben wir uns ausf¨ uhrlich mit der linearen Programmierung besch¨ aftigt, d.h. mit linearen Zielfunktionen, welche unter Ber¨ ucksichtigung linearer Nebenbedingungen zu minimieren (bzw. zu maximieren) sind. Ein allgemeines Optimierungsproblem hingegen kann folgendermaßen definiert werden:

100

4 Nichtlineare Optimierung

Definition 4.1 Gegeben seien ein beliebiger zul¨ assiger Bereich P ⊂ Rn sowie eine beliebige Zielfunktion f : P → R. Dann ist min f (x),

sodass

x ∈ P,

das zugeh¨ orige (nichtlineare) Optimierungsproblem.

Optimierungsaufgaben in dieser allgemeinen Form werden wir als nichtlineare Optimierungsprobleme bezeichnen, da insbesondere die Zielfunktion im Allgemeinen nicht linear sein kann. Zu einem gegebenen Optimierungsproblem ist man daran interessiert, das globale Minimum zu finden:

Definition 4.2 Gegeben sei ein Optimierungsproblem min f (x),

sodass

x ∈ P.

Das globale Minimum ist eine zul¨ assige L¨ osung x∗ ∈ P , sodass f (x∗ ) ≤ f (x) f¨ ur alle x ∈ P gilt. Jedes globale Minimum bezeichnen wir auch als Optimall¨ osung des Optimierungsproblems.

Dar¨ uber hinaus sprechen wir von einem lokalen Minimum bei x∗ ∈ P , falls ∗ f (x ) ≤ f (x) f¨ ur alle x in einer Umgebung von x∗ gilt. Jedes globale Minimum ist somit auch ein lokales Minimum.

Aufgabe 4.1 Skizziere eine eindimensionale Funktion, welche mehrere lokale sowie ein (eindeutiges) globales Minimum besitzt.

Dabei ist im Allgemeinen keineswegs sichergestellt, ob u ¨berhaupt ein globales Minimum eines Optimierungsproblems existiert. Beispielsweise besitzt das eindimensionale Problem min x,

sodass

x ∈ (0, 1),

auf dem offenen Intervall P = (0, 1) zwar ein Infimum, jedoch kein (globales) Minimum. Eine m¨ogliche Voraussetzung, welche die Existenz eines globalen Minimums sicherstellt, liefert die folgende Aussage:

101

4.1 Grundlagen

Satz 4.1 (Weierstraß) Gegeben seien ein abgeschlossener und beschr¨ ankter zul¨ assiger Bereich P ⊂ Rn sowie eine stetige Zielfunktion f : P → R. Dann besitzt das Optimierungsproblem min f (x),

sodass

x ∈ P,

(mindestens) ein globales Minimum.

Weiterhin wird ein nichtlineares Optimierungsproblem stark von den Eigenschaften der Zielfunktion sowie den Eigenschaften des zul¨assigen Bereichs gepr¨agt, sodass sich nichtlineare Optimierungsprobleme entsprechend klassifizieren lassen. Wir stellen in den folgenden Abschnitten daher nur eine kleine Auswahl von speziellen nichtlinearen Optimierungsproblemen vor und diskutieren deren Eigenschaften sowie m¨ ogliche L¨ osungsverfahren. Auf einige dieser Grundlagen werden wir auch in den folgenden Kapiteln zur¨ uckgreifen. Weitere Hintergr¨ unde zur nichtlinearen Optimierung k¨ onnen in der u ¨blichen Literatur wie beispielsweise Jarre und Stoer (2004) nachgeschlagen werden. Zun¨ achst aber stellen wir einige Grundlagen f¨ ur differenzierbare Zielfunktionen ohne Nebenbedingungen zusammen. Aus der Schulmathematik sollte bereits folgender Satz f¨ ur eindimensionale Zielfunktionen bekannt sein:

Satz 4.2 Gegeben seien eine zweimal stetig differenzierbare Funktion f : R → R sowie das Optimierungsproblem min f (x),

sodass

x ∈ R.

Falls x∗ ∈ R ein lokales Minimum ist, so gilt f  (x∗ ) = 0

und

f  (x∗ ) ≥ 0.

Diese beiden Bedingungen werden als notwendiges Optimalit¨ atskriterium erster und zweiter Ordnung bezeichnet.

Diese Aussage l¨asst sich auch auf h¨oherdimensionale Funktionen verallgemeinern: Sei dazu f : Rn → R zweimal stetig differenzierbar. Dann bezeichnen wir mit  ∇f (x) =

∂ ∂ f (x), . . . , f (x) ∂x1 ∂xn



∈ Rn

102

4 Nichtlineare Optimierung

den Gradienten von f (x) an x = (x1 , . . . , xn ) ∈ Rn und mit ⎛ ⎜ ⎜ ⎜ Hf (x) = ⎜ ⎜ ⎝

∂2 f (x) ∂x1 ∂x1 .. .

...

∂2 f (x) ∂xn ∂x1

...

∂2 f (x) ∂x1 ∂xn .. . ∂2 f (x) ∂xn ∂xn

⎞ ⎟ ⎟ ⎟ ⎟ ∈ Rn×n ⎟ ⎠

die Hesse-Matrix von f (x) an x = (x1 , . . . , xn ) ∈ Rn . Mit diesen Notationen erhalten wir das folgende Optimalit¨atskriterium:

Satz 4.3 Gegeben seien eine stetig differenzierbare Funktion f : Rn → R sowie das Optimierungsproblem min f (x),

sodass

x ∈ Rn .

Falls x∗ ∈ Rn ein lokales Minimum ist, so gilt ∇f (x∗ ) = (0, . . . , 0) ∈ Rn .

(4.1)

Diese Bedingung ist ein notwendiges Optimalit¨ atskriterium erster Ordnung.

Auch das Kriterium zweiter Ordnung l¨ asst sich auf h¨oherdimensionale Funktionen verallgemeinern:

Satz 4.4 Gegeben seien eine beliebige zweimal stetig differenzierbare Funktion f : Rn → R sowie das Optimierungsproblem min f (x),

sodass

x ∈ Rn .

Falls x∗ ∈ Rn ein lokales Minimum ist, so ist Hf (x∗ ) positiv semidefinit. Diese Bedingung ist ein notwendiges Optimalit¨ atskriterium zweiter Ordnung.

Positiv semidefinit bedeutet dabei, dass y  · Hf (x∗ ) · y ≥ 0 f¨ ur alle y ∈ Rn gilt. Die beiden notwendigen Kriterien aus den obigen S¨atzen gelten somit insbesondere auch f¨ ur globale Minima. Eine M¨ oglichkeit zur L¨osung

103

4.2 Gradientenverfahren

eines Optimierungsproblems mit differenzierbarer Zielfunktion und ohne Nebenbedingungen (d.h. P = Rn ) ist es daher, s¨amtliche Nullstellen des Gradienten zu bestimmen und die zugeh¨origen Zielfunktionswerte zu vergleichen. Diese Vorgehensweise ist h¨aufig jedoch sehr aufwendig und kommt daher nur in Spezialf¨allen zum Einsatz.

4.2 Gradientenverfahren In diesem Abschnitt untersuchen wir nichtlineare Optimierungsprobleme mit stetig differenzierbarer Zielfunktion f : Rn → R und ohne Nebenbedingen, d.h. min f (x),

x ∈ Rn .

sodass

Die Idee des Gradientenverfahrens ist folgende: Ausgehend von einem Startwert x(0) ∈ Rn wird die Richtung des steilsten Abstiegs bestimmt, also d(0) = −∇f (x(0) ). Unter Verwendung einer geeigneten Schrittweite t(0) > 0 setzen wir nun x(1) = x(0) + t(0) · d(0) als neue Approximation eines (lokalen) Minimums von f (x). Dabei ist die Schrittweite t(0) > 0 so zu w¨ ahlen, dass f (x(1) ) < f (x(0) )

(4.2)

gilt. Dies ist stets dann m¨ oglich, sofern unter Verwendung einer beliebigen Norm d(0)  > 0 gilt. Das Verfahren wird nun iterativ so lange wiederholt, bis der Gradient klein genug ist und somit das notwendige Kriterium erster Ordnung aus Satz 4.3 mit einer hinreichenden Genauigkeit erf¨ ullt wird. Offen bleibt jedoch die zentrale Frage, wie die Schrittweite t(0) gew¨ahlt werden osung des eindimensionalen Optimiekann. Im besten Falle ist t(0) eine Optimall¨ rungsproblems

min f x(0) + t · d(0) ,

sodass

t ∈ R.

(4.3)

Doch auch dieses Problem l¨asst sich unter Umst¨ anden nur schwer l¨ osen. Eine sehr viel einfachere M¨ oglichkeit ist es, t(0) iterativ zu verringern, bis schließlich Gl. (4.2) erf¨ ullt wird. Zusammenfassend kann das Gradientenverfahren daher folgendermaßen durchgef¨ uhrt werden:

104

4 Nichtlineare Optimierung

Zusammenfassung 4.1 (Gradientenverfahren) Gegeben seien ein nichtlineares Optimierungsproblem min f (x),

sodass

x ∈ Rn ,

mit stetig differenzierbarer Zielfunktion f : Rn → R sowie ein x(0) ∈ Rn . Weiter seien ein Abbruchkriterium ε > 0 sowie zwei Parameter 0 < α < 1 und β > 1 zur Schrittweitensteuerung gegeben. Setze k = 0 sowie t(0) = 1 und f¨ uhre folgende Schritte aus: ( 1 ) Berechne d(k) = −∇f (x(k) ). ( 2 ) Falls d(k) ∞ < ε, beende das Verfahren. ( 3 ) Berechne x(k+1) = x(k) + t(k) · d(k) . ( 4 ) Falls f (x(k+1) ) < f (x(k) ), setze t(k+1) = β · t(k) und gehe zu Schritt ( 7 ). ( 5 ) Multipliziere t(k) mit α und aktualisiere x(k+1) = x(k) + t(k) · d(k) . ( 6 ) Falls f (x(k+1) ) < f (x(k) ), setze t(k+1) = t(k) und gehe zu Schritt ( 7 ). Anderenfalls gehe zu Schritt ( 5 ). ( 7 ) Erh¨ ohe k um 1 und gehe zu Schritt ( 1 ).

Falls das Verfahren terminiert, so ist x(k) eine L¨osung des Optimierungsproblems, welche das notwendige Kriterium erster Ordnung aus Satz 4.3 mit einer Genauigkeit von ε erf¨ ullt. Um die Konvergenz des Verfahrens zu gew¨ahrleisten, m¨ ussen jedoch weitere Bedingungen an die Zielfunktion gestellt werden. Falls diese Bedingungen nicht bekannt sind, sollte das Verfahren (ohne Ergebnis) abgebrochen werden, falls x(k)  oder t eine zuvor definierte (große) Schwelle u ¨berschreitet.

Aufgabe 4.2 Diskutiere den Ablauf des Gradientenverfahrens, falls dieses auf ein Optimierungsproblem mit linearer Zielfunktion angewandt wird. Was passiert, falls die Zielfunktion konstant ist?

Weiterhin sei nochmals darauf hingewiesen, dass jede L¨ osung des Verfahrens nur das notwendige Kriterium erster Ordnung aus Satz 4.3 erf¨ ullt. Es handelt sich dabei also keineswegs um ein globales Minimum, sogar nicht einmal zwingend um ein lokales Minimum. Um diese Probleme zu umgehen, ist folgende Strategie m¨ oglich: Das Gradientenverfahren wird mehrfach wiederholt, wobei jeweils ein zuf¨alliger Startwert x(0) generiert wird. Anschließend wird das Minimum aus den Zielfunk-

105

4.2 Gradientenverfahren

1.0

3.0

0.8

2.5

0.6 2.0 0.4 0.2 x2-Achse

x2-Achse

1.5

1.0

0.0 -0.2

0.5

-0.4 0.0 -0.6 -0.5

-0.8 -1.0

-1.0 -2.0

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

-2.0

-1.5

-1.0

-0.5

x1-Achse

0.0

0.5

1.0

1.5

2.0

x1-Achse

a Rosenbrock-Funktion

b Six-Hump-Camel-Funktion

Abb. 4.1 Veranschaulichung zweier Testfunktionen der nichtlinearen Optimierung. Dargeahrend des Gradientenverfahrens f¨ ur jeweils einen stellt sind zudem die L¨ osungen x(k) w¨ explizit gew¨ ahlten Startwert: a Rosenbrock-Funktion und Verlauf des Verfahrens zum Startwert x(0) = (− 12 , 2) sowie b Six-Hump-Camel-Funktion und Verlauf des Verfahrens zum Startwert x(0) = (− 45 , 0)

tionswerten aller Durchl¨aufe gebildet, um ein m¨oglichst gutes Gesamtergebnis zu erzielen. Dennoch kann damit keine Aussage dar¨ uber getroffen werden, ob ein globales Minimum berechnet wurde oder nicht. Schließlich sei bemerkt, dass im Allgemeinen von einer sehr langsamen Konvergenz ausgegangen werden muss, wie auch das folgende Beispiel zeigt: Beispiel 4.1 (Rosenbrock-Funktion) Wir untersuchen die Rosenbrock-Funktion f (x1 , x2 ) = 100 · (x2 − x21 )2 + (x1 − 1)2 mit x = (x1 , x2 ) ∈ R2 . Diese Funktion hat ein eindeutiges globales Minimum bei x∗ = (1, 1) und keine weiteren lokalen Minima. Unter Verwendung der Parameter α =

1 2,

β = 2

und

ε = 10−6

sowie des Startwerts x(0) = (− 12 , 2) ∈ R2 ben¨ otigt das Gradientenverfahren (je nach Implementierung sowie Berechnung des Gradienten) etwa 13 907 Iterationen, bis das Verfahren mit einer Approximation des globalen Minimums terminiert (Abb. 4.1a).

106

4 Nichtlineare Optimierung

Minimale Anzahl an Iterationen Maximale Anzahl an Iterationen Durchschnittliche Anzahl an Iterationen

9 892, 0 101 881, 0 14 870, 6

Tab. 4.1 Numerische Untersuchung zur Konvergenz des Gradientenverfahrens anhand der Rosenbrock-Funktion in Abh¨ angigkeit von zuf¨ alligen Startwerten x(0) ∈ [−4, 4]2

Zur weiteren numerischen Analyse der Konvergenzgeschwindigkeit wurden 1000 zuf¨ allige Startwerte x(0) ∈ [−4, 4] × [−4, 4] generiert und die Anzahl der Iterationen des Gradientenverfahrens untersucht (Tab. 4.1): Durchschnittlich waren fast 15 000 Iterationen notwendig, bis das Verfahren mit einer (guten) Approximation des globalen Minimums als L¨ osung terminierte. In einigen wenigen Durchl¨ aufen waren sogar u ¨ber 100 000 Schritte durchzuf¨ uhren, und nur in sehr wenigen F¨ allen endete das Verfahren mit knapp unter 10 000 Iterationen. Die Rosenbrock-Funktion ist somit ein Beispiel f¨ ur die schlechten Konvergenzeigenschaften des Gradientenverfahrens. Doch nicht in allen F¨allen verh¨alt sich das Verfahren derart ung¨ unstig: Beispiel 4.2 (Six-Hump-Camel-Funktion) Wir untersuchen die Six-Hump-CamelFunktion f (x1 , x2 ) = 4 · x21 −

21 10

· x41 +

1 3

· x61 + x1 · x2 − 4 · x22 + 4 · x42

mit x = (x1 , x2 ) ∈ R2 . Diese Funktion hat zwei globale sowie vier lokale Minima. Unter Verwendung der Parameter α =

1 2,

β = 2

und

ε = 10−6

sowie des Startwerts x(0) = (− 45 , 0) ∈ R2 ben¨ otigt das Gradientenverfahren (je nach Implementierung sowie Berechnung des Gradienten) etwa 18 Iterationen, bis das Verfahren mit einer Approximation eines globalen Minimums terminiert (Abb. 4.1b). Zur weiteren numerischen Analyse der Konvergenzgeschwindigkeit wurden auch hier 1000 zuf¨ allige Startwerte x(0) ∈ [−4, 4] × [−4, 4] generiert und die Anzahl der Iterationen (Tab. 4.2): Durchschnittlich waren nur etwa fahren terminierte, wobei in etwa 56 % der wurde (in allen anderen F¨ allen wurde eines

des Gradientenverfahrens untersucht 20 Iterationen notwendig, bis das VerF¨ alle ein globales Minimum gefunden der vier lokalen Minima bestimmt).

107

4.3 Konvexe Optimierung

Minimale Anzahl an Iterationen Maximale Anzahl an Iterationen Durchschnittliche Anzahl an Iterationen Ergebnis ist globales Minimum (Anteil in %)

11, 0 31, 0 20, 2 56, 3

Tab. 4.2 Numerische Untersuchung zur Konvergenz des Gradientenverfahrens anhand der Six-Hump-Camel-Funktion in Abh¨ angigkeit von zuf¨ alligen Startwerten x(0) ∈ [−4, 4]2

Obwohl das Gradientenverfahren im Allgemeinen keine guten Konvergenzeigenschaften besitzt, skizzieren wir im abschließenden Ausblick, dass das Verfahren in einigen Spezialf¨ allen durchaus ¨außerst effizient sein kann: Ausblick Lineare Gleichungssysteme A · x = b mit symmetrischer und positiv osen, indem das (stets eindeutige) Minimum definiter Matrix A ∈ Rn×n lassen sich l¨ der Zielfunktion 1  f (x) = · x · A · x − x · b 2 bestimmt wird. Unter Verwendung dieser Zielfunktion kann das eindimensionale Optimierungsproblem

min f x(k) + t · d(k) , sodass t ∈ R, analytisch sehr einfach gel¨ ost werden, sodass in jedem Schritt eine optimale Schrittweite t(k) gew¨ ahlt werden kann (Gl. 4.3). Dar¨ uber hinaus lassen sich auch die ahlen, dass Suchrichtungen d(k) unter Verwendung einer geeigneten Norm derart w¨ das Gradientenverfahren nach sp¨ atestens n Iterationen mit einer exakten L¨ osung terminiert. Genau diese Ideen f¨ uhren zum CG-Verfahren, welches h¨ aufig zum L¨ osen von (großen) linearen Gleichungssystemen mit symmetrischer und positiv definiter Matrix A angewandt wird.

4.3 Konvexe Optimierung Die zentrale Voraussetzung des Gradientenverfahrens ist eine stetig differenzierbare Zielfunktion. Im Vergleich dazu diskutieren wir nun den Fall von konvexen Zielfunktionen, welche nicht zwingend u ¨berall differenzierbar sein m¨ ussen. Dazu wiederholen wir zun¨achst die grundlegenden Definitionen der Konvexit¨at:

108

4 Nichtlineare Optimierung

Definition 4.3 Eine Menge P ⊂ Rn heißt konvex, falls t · x + (1 − t) · y ∈ P f¨ ur alle x, y ∈ P und alle t ∈ [0, 1] gilt.

Anschaulich bedeutet die Definition, dass die Verbindungslinie zwischen je zwei Punkten aus P vollst¨andig in P enthalten ist.

Aufgabe 4.3 Skizziere ein Beispiel einer konvexen sowie ein Beispiel einer nicht konvexen Menge P ⊂ R2 .

Weiterhin gilt folgende Aussage, welche h¨aufig n¨ utzlich ist:

Lemma 4.5 Es seien P, Q ⊂ Rn zwei konvexe Mengen. Dann ist auch der Durchschnitt P ∩ Q dieser Mengen konvex. Neben konvexen Mengen wird der Begriff der Konvexit¨at auch f¨ ur Funktionen verwendet:

Definition 4.4 Sei P ⊂ Rn eine konvexe Menge. Eine Funktion f : P → R heißt konvex, falls f (t · x + (1 − t) · y) ≤ t · f (x) + (1 − t) · f (y) f¨ ur alle x, y ∈ P und alle t ∈ [0, 1] gilt. Eine Funktion f : P → R heißt konkav, falls die Funktion −f (x) konvex ist, d.h., falls f (t · x + (1 − t) · y) ≥ t · f (x) + (1 − t) · f (y) f¨ ur alle x, y ∈ P und alle t ∈ [0, 1] gilt.

Auch die Definition von konvexen bzw. konkaven Funktionen kann als Wiederholung veranschaulicht werden:

Aufgabe 4.4 Skizziere ein Beispiel einer konvexen sowie ein Beispiel einer konkaven Funktion f : R → R.

109

4.3 Konvexe Optimierung

Um zu pr¨ ufen, ob eine Funktion konvex ist, k¨onnen folgende Aussagen n¨ utzlich sein:

Lemma 4.6 Es gelten die folgenden Aussagen: ( 1 ) Seien g, h : Rn → R konvex und a, b ≥ 0. Dann ist auch

f (x) = a · g(x) + b · h(x) konvex. ( 2 ) Seien g, h : Rn → R konvex. Dann ist auch

f (x) = max{g(x), h(x)} konvex. ( 3 ) Sei h : Rn → R konvex und g : R → R konvex sowie monoton wachsend.

Dann ist auch f (x) = g(h(x)) konvex. ( 4 ) Sei h : Rn → R konkav und g : R → R konvex sowie monoton fallend.

Dann ist f (x) = g(h(x)) konvex. ( 5 ) Sei h : Rn → R linear und g : R → R konvex. Dann ist auch

f (x) = g(h(x)) konvex.

Die Beweise dieser Aussagen lassen sich vergleichsweise einfach unter Verwendung der Definition konvexer Funktionen f¨ uhren. Aufgabe 4.5 Sei h : Rn → R konkav mit h(x) > 0 f¨ ur alle x ∈ Rn . Zeige, dass dann f (x) = eine konvexe Funktion ist.

1 h(x)

110

4 Nichtlineare Optimierung

Mit diesen einleitenden Grundlagen k¨ onnen wir nun einige Folgerungen ziehen, welche anschließend bei der Minimierung konvexer Zielfunktionen von Interesse sind. Obwohl die folgenden Ergebnisse im Wesentlichen auch f¨ ur konvexe zul¨ assige Mengen P ⊂ Rn gelten, untersuchen wir nur den Fall P = Rn . Anderenfalls w¨aren un¨ ubersichtliche Fallunterscheidungen notwendig, ob ein Punkt x im Inneren von P oder auf dem Rand von P liegt.

Satz 4.7 Sei f : Rn → R eine konvexe Funktion. Dann ist f (x) stetig.

Das folgende Ergebnis kann beispielsweise in Rockafellar (1970) nachgeschlagen werden:

Satz 4.8 Sei f : Rn → R eine zweimal stetig differenzierbare Funktion. Dann ist f (x) genau dann konvex, wenn die Hesse-Matrix Hf (x) f¨ ur alle x ∈ Rn positiv semidefinit ist.

Weiterhin l¨ asst sich leicht einsehen, dass jedes lokale Minimum einer konvexen Funktion auch ein globales Minimum ist. Zusammenfassend haben wir damit bereits folgendes Ergebnis (s. auch Satz 4.3 und Satz 4.4): Sei f : Rn → R konvex und zweimal stetig differenzierbar. Dann ist ein x∗ ∈ Rn genau dann eine Optimall¨osung von min f (x), sodass x ∈ Rn , falls

∇f (x∗ ) = 0

gilt. Diese Aussage werden wir im Folgenden auch auf nicht stetig differenzierbare Zielfunktionen verallgemeinern. Zun¨ achst erg¨ anzen wir aber noch folgendes Ergebnis:

Lemma 4.9 Gegeben sei eine konvexe Zielfunktion f : Rn → R. Dann ist die Menge der Optimall¨ osungen des nichtlineare Optimierungsproblems min f (x),

sodass

x ∈ Rn ,

konvex.

Schließlich gilt folgende Aussage, welche zun¨ achst als Motivation zur anschließenden Definition gedacht ist:

111

4.3 Konvexe Optimierung

a Konvexe, differenzierbare Funktion

b Konvexe, nicht differenzierbare Funktion

Abb. 4.2 Veranschaulichung zur Definition von Subgradienten. In a handelt es sich um eine konvexe sowie stetig differenzierbare Funktion, bei b hingegen um eine konvexe, jedoch nicht u ¨berall stetig differenzierbare Funktion. In beiden F¨ allen liefert der Gradient bzw. der Subgradient eine lineare Approximation der Funktion f (x) an a, wobei die lineare Approximation jeweils kleiner gleich der Funktion f (x) ist

Satz 4.10 Sei f : Rn → R eine konvexe sowie stetig differenzierbare Funktion und sei a ∈ Rn . Dann gilt f (x) ≥ f (a) + ∇f (a) · (x − a)

(4.4)

f¨ ur alle x ∈ Rn .

Die rechte Seite von Gl. (4.4) entspricht einer linearen Funktion, genauer der TaylorEntwicklung erster Ordnung um a (Abb. 4.2a). F¨ ur konvexe, jedoch nicht zwingend stetig differenzierbare Funktionen l¨asst sich der Begriff des Gradienten folgendermaßen verallgemeinern:

Definition 4.5 Sei f : Rn → R eine konvexe Funktion und sei a ∈ Rn . Dann heißt ein ξ(a) ∈ Rn Subgradient von f (x) an a, falls f (x) ≥ f (a) + ξ(a) · (x − a)

(4.5)

f¨ ur alle x ∈ Rn gilt. Die Menge aller Subgradienten von f (x) an a wird Subdifferential von f (x) an a genannt.

Die zentrale Aussage zur Definition ist nun folgende:

112

4 Nichtlineare Optimierung

Satz 4.11 Sei f : Rn → R eine konvexe Funktion. Dann existiert f¨ ur alle a ∈ Rn ein Subgradient ξ(a) ∈ Rn von f (x) an a. Ist f (x) stetig differenzierbar bei a, so ist der Gradient ∇f (a) der einzige Subgradient von f (x) an a (Abb. 4.2a). Ist f (x) jedoch nicht stetig differenzierbar bei a (Abb. 4.2b), so existieren mehrere Subgradienten von f (x) an a. Ausblick Alle obigen Aussagen gelten auch dann, falls die Funktion f (x) statt auf dem Rn auf einer konvexen und offenen Menge P ⊂ Rn definiert ist. Probleme hingegen treten auf, falls die Menge P nicht offen ist: Die eindimensionale Funktion 1 f¨ ur x = 0 f (x) = ur x = 0 x2 f¨ ist auf der (konvexen) Menge P = [0, 1] konvex. Die Funktion f (x) ist aber weder stetig auf P , noch besitzt f (x) einen Subgradienten an a = 0. Die Aussagen zuvor gelten jedoch f¨ ur alle Punkte aus dem Inneren von P . Dank der Einf¨ uhrung von Subgradienten k¨onnen wir nun (globale) Minima nichtlinearer Optimierungsprobleme mit konvexer Zielfunktion klassifizieren:

Satz 4.12 Gegeben seien eine konvexe Zielfunktion f : Rn → R sowie das Optimierungsproblem min f (x),

sodass

x ∈ Rn .

Dann ist ein x∗ ∈ Rn genau dann eine Optimall¨ osung, falls 0 ∈ Rn ein Sub∗ gradient von f (x) an x ist.

Der Satz beinhaltet jedoch keine Aussage dar¨ uber, ob eine Optimall¨osung existiert oder nicht (Satz 4.1). Beispielsweise ist die Funktion f (x) = exp(x) konvex, es existiert jedoch kein (lokales oder globales) Minimum. F¨ ur beschr¨ankte zul¨ assige Bereiche erhalten wir folgende Verallgemeinerung:

ankter und abgeschlossener Satz 4.13 Gegeben seien ein konvexer, beschr¨ zul¨ assiger Bereich P ⊂ Rn , eine konvexe Zielfunktion f : P → R sowie das Optimierungsproblem min f (x),

sodass

x ∈ P.

Dann gilt (mindestens) eine der folgenden beiden Aussagen:

113

4.3 Konvexe Optimierung

( 1 ) Es existiert eine Optimall¨ osung x∗ im Inneren von P , und 0 ∈ Rn ist ein

Subgradient von f (x) an x∗ .

( 2 ) Es existiert eine Optimall¨ osung x∗ auf dem Rand von P .

Ohne auf Details einzugehen, k¨onnen wir schließlich die Idee des Subgradientenverfahrens zur L¨osung von nichtlinearen Optimierungsproblemen mit konvexer Zielfunktion skizzieren:

Ausblick Gegeben sei ein nichtlineares Optimierungsproblem min f (x),

x ∈ Rn ,

sodass

mit konvexer Zielfunktion f : Rn → R. Die Idee des Subgradientenverfahrens ist analog zum Gradientenverfahren aus Abschn. 4.2: Ausgehend von einer Startl¨ osung x(0) wird eine Suchrichtung d(0) = −

ξ(x(0) ) ξ(x(0) )

bestimmt, wobei ξ(x(0) ) ein (beliebiger) Subgradient von f (x) an x(0) ist. Mit einer geeigneten Schrittweite t(0) wird nun x(1) = x(0) + t(0) · d(0) gesetzt. Das Verfahren wird iterativ wiederholt, bis ξ(x(k) ) ≈ 0 gilt und somit dank der obigen Ergebnisse eine Approximation einer Optimall¨ osung gefunden wurde. Dar¨ uber hinaus ist das Subgradientenverfahren stets konvergent, sofern f¨ ur die Schrittweiten t(k+1) ≤ t(k) ,

lim t(k) = 0

k→0

und

∞ 

t(k) = ∞

k=0

gilt. Diese Aussage ist insbesondere unabh¨ angig davon, welcher Subgradient jeweils gew¨ ahlt wird. Offen bleibt jedoch die Frage, wie Subgradienten einer konvexen, aber nicht differenzierbaren Funktion berechnet werden k¨onnen. Eine allgemeine Antwort auf diese Frage k¨onnen wir nicht geben. In vielen praktischen Anwendungsf¨allen l¨asst sich ein Subgradient jedoch h¨aufig einfach ermitteln:

114

4 Nichtlineare Optimierung

ur Beispiel 4.3 Gegeben seien reelle Zahlen a1 < a2 < . . . < am sowie wi ≥ 0 f¨ i = 1, . . . , m. Wir untersuchen die eindimensionale Zielfunktion f (x) =

m 

wi · |x − ai |,

i=1

welche als Summe konvexer Funktionen konvex ist, jedoch nicht u ¨berall differenzierbar. Dennoch l¨ asst sich f¨ ur alle a ∈ R recht einfach ein Subgradient bestimmen. Insbesondere ist j−1 m   ξ(aj ) = wi − wi (4.6) i=1

i=j+1

ein Subgradient von f (x) an aj f¨ ur alle j = 1, . . . , m.

Aufgabe 4.6 Vervollst¨ andige Beispiel 4.3: Fertige eine Skizze der Zielfunktion an und zeige insbesondere, dass es sich bei Gl. (4.6) tats¨ achlich um Subgradienten handelt.

Ein weiteres Beispiel liefert folgende Aufgabe: Aufgabe 4.7 Gegeben seien ein z ∈ R2 sowie ein r > 0. Weise nach, dass f : R2 → R mit f (x) = max{x − z1 − r, 0} konvex ist und bestimme einen Subgradienten f¨ ur alle a ∈ R2 .

4.4 Konkave Optimierung Im vorhergehenden Abschnitt haben wir uns mit konvexen Zielfunktionen befasst, nun werden wir konkave Zielfunktionen untersuchen. Unbeschr¨ankte zul¨ assige Bereiche machen dabei wenig Sinn, denn ansonsten w¨ are auch das zugeh¨orige Optimierungsproblem unbeschr¨ankt. F¨ ur beschr¨ ankte zul¨assige Bereiche gilt jedoch folgende Aussage:

Satz 4.14 Gegeben seien ein konvexer, beschr¨ ankter und abgeschlossener zul¨ assiger Bereich P ⊂ Rn , eine konkave Zielfunktion f : P → R sowie das Optimierungsproblem min f (x),

sodass ∗

x ∈ P.

Dann existiert eine Optimall¨ osung x auf dem Rand von P .

115

4.4 Konkave Optimierung

Abb. 4.3 Veranschaulichung der konvexen H¨ ulle von m = 16 gegebenen Punkten im R2

Die Aussage kann noch weiter versch¨arft werden, sofern weitere Bedingungen an den zul¨ assigen Bereich gestellt werden. Daher definieren wir zun¨achst die konvexe H¨ ulle:

Definition 4.6 Gegeben seien a1 , . . . , am ∈ Rn . Dann bezeichnen wir  conv(a1 , . . . , am ) =

m 

 tk · ak : t1 , . . . , tm ≥ 0, t1 + . . . + tm = 1

⊂ Rn

k=1

als konvexe H¨ ulle von a1 , . . . , am .

Die konvexe H¨ ulle einer endlichen Menge von Punkten ist stets konvex, beschr¨ankt und abgeschlossen (Abb. 4.3). Falls der zul¨ assige Bereich eines Optimierungsproblems mit konkaver Zielfunktion eine konvexe H¨ ulle ist, so m¨ ussen zum Finden einer Optimall¨ osung nur endlich viele L¨ osungen untersucht werden:

assiger Bereich P = conv(a1 , . . . , am ) ⊂ Rn , Satz 4.15 Gegeben seien ein zul¨ eine konkave Zielfunktion f : P → R sowie das Optimierungsproblem min f (x),

sodass

x ∈ P.

Dann existiert eine Optimall¨ osung x∗ ∈ {a1 , . . . , am }.

Um insbesondere lediglich eine Optimall¨osung zu finden, reicht es aus, nur die Punkte ak zu untersuchen, welche auf dem Rand der konvexen H¨ ulle liegen und dort eine Ecke bilden. Als Folgerungen geben wir einen weiteren Spezialfall an:

116

4 Nichtlineare Optimierung

Satz 4.16 Gegeben seien ein zul¨ assiger Bereich R L R n P = [xL 1 , x1 ] × . . . × [xn , xn ] ⊂ R ,

eine konkave Zielfunktion f : P → R sowie das Optimierungsproblem min f (x),

sodass

x ∈ P.

Dann existiert eine Optimall¨ osung x∗ ∈ V , wobei V die Menge der insgesamt n 2 Ecken von P ist.

Obwohl die Aussagen dieses Abschnitts einfach oder trivial erscheinen m¨ogen, werden diese im Kapitel u ¨ber globale Optimierung noch von zentraler Bedeutung sein.

4.5 Fritz-John-Bedingungen Nach der konvexen sowie konkaven Optimierung befassen wir uns in diesem Abschnitt mit allgemeinen, jedoch stetig differenzierbaren Zielfunktionen: Angenommen, die Zielfunktion f : Rn → R eines Optimierungsproblems min f (x),

sodass

x ∈ Rn ,

ist stetig differenzierbar. Dann wissen wir bereits, dass ∇f (x∗ ) = (0, . . . , 0) ∈ Rn f¨ ur alle lokalen (und damit auch globalen) Minima gilt (Satz 4.3). Genau dieses notwendige Optimalit¨atskriterium erster Ordnung wollen wir in diesem Abschnitt auch auf Optimierungsprobleme mit Nebenbedingungen u ¨bertragen. Dazu nehmen wir weiterhin an, dass der zul¨ assige Bereich gegeben wird durch P = {x ∈ Rn : g1 (x) ≤ 0, . . . , gs (x) ≤ 0} ur i = 1, . . . , s. mit ebenfalls stetig differenzierbaren Funktionen gi : Rn → R f¨ Herleitung Zur Veranschaulichung der folgenden Bedingungen betrachten wir zun¨ achst ein Optimierungsproblem min f (x),

sodass

g(x) ≤ 0,

mit stetig differenzierbaren Funktionen f : R2 → R und g : R2 → R. F¨ ur jedes ¨blich ∇f (x∗ ) = 0. Aber auch f¨ ur lokale Minimum x∗ ∈ R2 mit g(x∗ ) < 0 gilt wie u lokale Minima x∗ ∈ R2 mit g(x∗ ) = 0 m¨ ussen einige Bedingungen gelten:

117

4.5 Fritz-John-Bedingungen

( 1 ) Angenommen, es gilt g(x∗ ) = 0 und ∇f (x∗ ) sowie ∇g(x∗ ) sind linear un-

abh¨ angig (Abb. 4.4a). Dann kann x∗ kein lokales Minimum sein, denn es gibt stets zul¨ assige L¨ osungen mit einem besseren Zielfunktionswert (n¨ amlich Punkte im dunkelgrauen Bereich von Abb. 4.4a).

( 2 ) Gilt andererseits g(x∗ ) = 0 und ∇f (x∗ ) sowie ∇g(x∗ ) sind linear abh¨ angig

und entgegengerichtet (Abb. 4.4b), so k¨ onnte es sich bei x∗ um ein lokales Minimum handeln.

Genau diese Beobachtungen entsprechen den folgenden Fritz-John-Bedingungen. Auch in h¨ oheren Dimensionen sowie mit weiteren Nebenbedingungen lassen sich analoge Kriterien formulieren, s. John (2014):

Satz 4.17 (Fritz-John-Bedingungen) Gegeben sei ein Optimierungsproblem min f (x),

sodass

ur i = 1, . . . , s, gi (x) ≤ 0 f¨

mit stetig differenzierbaren Funktionen f : Rn → R und gi : Rn → R f¨ ur i = 1, . . . , s. Angenommen, x∗ ist ein lokales Minimum, dann existieren λ ≥ 0 ur i = 1, . . . , s, sodass folgende Bedingungen erf¨ ullt sind: sowie μi ≥ 0 f¨ λ · ∇f (x∗ ) + μ1 · ∇g1 (x∗ ) + . . . + μs · ∇gs (x∗ ) ∗

μ1 · g1 (x )

=

0,

=

0,

.. . μs · gs (x∗ )

=

0,

(λ, μ1 , . . . , μs )

=

(0, 0, . . . , 0).

Eine zul¨ assige L¨ osung x∗ heißt Fritz-John-Punkt, falls es λ ≥ 0 sowie μi ≥ 0 f¨ ur i = 1, . . . , s gibt, welche die obigen Bedingungen erf¨ ullen.

Die Fritz-John-Bedingungen sind somit ein notwendiges Optimalit¨atskriterium erster Ordnung. Weiterhin gilt, dass jedes lokale Minimum auch ein Fritz-John-Punkt ist. Die Umkehrung gilt im Allgemeinen jedoch nicht: Es gibt Fritz-John-Punkte, die kein lokales Minimum sind.

Aufgabe 4.8 Finde alle Fritz-John-Punkte des zweidimensionalen Optimierungsproblems min −x1 , sodass x1 + x2 − 1 ≤ 0, −x2 ≤ 0. Kann auch die Optimall¨ osung anhand der Fritz-John-Punkte bestimmt werden?

118

4 Nichtlineare Optimierung

a Fritz-John-Bedingungen sind nicht erf¨ ullt

b Fritz-John-Bedingungen sind erf¨ ullt

Abb. 4.4 Veranschaulichung der Fritz-John-Bedingungen im R2 . In a kann es sich mit x∗ nicht um ein lokales Minimum handeln, da es im dunkelgrauen Bereich zul¨ assige L¨ osungen mit einem kleineren Zielfunktionswert gibt. In b hingegen handelt es sich um ein lokales Minimum, und auch die Fritz-John-Bedingungen sind erf¨ ullt, denn die Vektoren ∇f (x∗ ) angig sowie entgegengerichtet und ∇g(x∗ ) sind linear abh¨

Anders als in der Aufgabe zuvor ist es aber leider nicht immer m¨oglich, s¨amtliche Fritz-John-Punkte eines Optimierungsproblems zu bestimmen. Aufgabe 4.9 Zeige, dass es sich bei allen zul¨ assigen L¨ osungen x∗ mit ∇f (x∗ ) = 0 um einen Fritz-John-Punkt handelt.

In einem weiteren Beispiel zeigen wir, dass es Fritz-John-Punkte gibt, die von der Zielfunktion unabh¨angig sind: Beispiel 4.4 Gegeben seien eine stetig differenzierbare Zielfunktion f : R2 → R sowie das zweidimensionale Optimierungsproblem min f (x),

sodass

x1 + x 2 − 1



0,

1 − x2

≤ ≤

0, 0,



0.

−x1 −x2 Ein zugeh¨ origer Fritz-John-Punkt ist x∗ = (0, 1), denn mit (λ, μ1 , μ2 , μ3 , μ4 ) = (0, 1, 1, 1, 0)

sind alle Fritz-John-Bedingungen erf¨ ullt, und dank λ = 0 ist dies auch unabh¨ angig von der Wahl von f (x) der Fall. Ob es sich bei x∗ tats¨ achlich um ein (lokales) Minimum handelt oder nicht, h¨ angt offensichtlich jedoch stark von der Zielfunktion ab.

119

4.5 Fritz-John-Bedingungen

Um die Schwierigkeiten aus dem Beispiel zu umgehen, k¨ onnen die Fritz-JohnBedingungen weiter versch¨ arft werden. Wir erhalten dann notwendige Bedingungen, welche stets von der Zielfunktion abh¨angen. Details dazu wollen wir jedoch nur im folgenden Ausblick skizzieren: angigkeit zwischen Fritz-John-Punkten und Zielfunktion zu Ausblick Um eine Abh¨ erzwingen, setzen wir stets λ = 1. F¨ ur ein notwendiges Optimalit¨ atskriterium erster Ordnung muss nun jedoch eine weitere Voraussetzung erf¨ ullt sein. Eine M¨ oglichkeit hierzu wurde in Kuhn und Tucker (1951) eingef¨ uhrt, sodass wir folgende KarushKuhn-Tucker-Bedingungen erhalten: Gegeben sei ein Optimierungsproblem min f (x),

sodass

ur i = 1, . . . , s, gi (x) ≤ 0 f¨

ur alle mit stetig differenzierbaren Funktionen f : Rn → R und gi : Rn → R f¨ i = 1, . . . , s. Angenommen, x∗ ist ein lokales Minimum, und die Vektoren   ∇gi (x∗ ) : gi (x∗ ) = 0, i = 1, . . . , s (4.7) sind linear unabh¨ angig, dann existieren μi ≥ 0 f¨ ur i = 1, . . . , s, sodass folgende Bedingungen erf¨ ullt sind: ∇f (x∗ ) + μ1 · ∇g1 (x∗ ) + . . . + μs · ∇gs (x∗ )

=

0,

μ1 · g1 (x∗ )

=

0,

.. . μs · gs (x∗ )

=

0.

ur Eine zul¨ assige L¨ osung x∗ heißt Karush-Kuhn-Tucker-Punkt, falls es μi ≥ 0 f¨ i = 1, . . . , s gibt, welche die obigen Bedingungen erf¨ ullen. Genau die zus¨ atzliche Voraussetzung (4.7) ist in Beispiel 4.4 nicht erf¨ ullt, denn dort gilt gi (x∗ ) = 0 f¨ ur i = 1, 2, 3, die Vektoren   ∇g1 (x∗ ) = (1, 1), ∇g2 (x∗ ) = (0, −1), ∇g3 (x∗ ) = (−1, 0) sind jedoch linear abh¨ angig. Es gibt also Fritz-John-Punkte, die keine KarushKuhn-Tucker-Punkte sind. Umgekehrt ist jeder Karush-Kuhn-Tucker-Punkt aber auch ein Fritz-John-Punkt. Abschließend sei bemerkt, dass die Karush-Kuhn-Tucker-Bedingungen f¨ ur lineare Zielfunktionen und lineare Nebenbedingungen genau dem komplement¨ arer Schlupf f¨ ur lineare Programme mit im Vorzeichen unbeschr¨ ankten Variablen sowie ausschließlich Ungleichungen als Nebenbedingungen entsprechen. Dank der starken Dualit¨ at sind die Karush-Kuhn-Tucker-Bedingungen f¨ ur lineare Funktionen daher nicht nur ein notwendiges Optimalit¨ atskriterium, sondern sogar ein hinreichendes.

120

4 Nichtlineare Optimierung

Sowohl Fritz-John-Punkte als auch Karush-Kuhn-Tucker-Punkte sind in der nichtlinearen Optimierung von differenzierbaren Zielfunktionen mit differenzierbaren Nebenbedingungen von zentraler Bedeutung, da sich in Anwendungsf¨ allen damit teilweise interessante Ergebnisse ergeben. Andererseits l¨ asst sich ein allgemeing¨ ultiges numerisches L¨ osungsverfahren daraus leider nicht besonders geeignet ableiten.

4.6 Nelder-Mead-Verfahren In diesem Abschnitt beschreiben wir mit dem Nelder-Mead-Verfahren eine Methode zur L¨osung von nichtlinearen Optimierungsproblemen min f (x),

sodass

x ∈ Rn ,

wobei keinerlei Anforderungen an die Zielfunktion f : Rn → R gestellt werden. Allerdings beschr¨anken wir uns auf Probleme ohne Nebenbedingungen. Um diese Einschr¨ ankung zu umgehen, k¨onnten die Zielfunktionswerte f¨ ur unzul¨ assige Punkte auf einen sehr großen Wert gesetzt werden. Urspr¨ unglich vorgestellt wurde das Verfahren in Nelder und Mead (1965), wobei wir uns in der folgenden Beschreibung an Lagarias et al. (1998) orientieren. Die grundlegende Vorgehensweise des Verfahrens ist folgende: Falls eine Zielfunktion mit n Variablen minimiert werden soll, werden zun¨ achst n + 1 Punkte gew¨ahlt, welche einen Simplex aufspannen. Dies bedeutet, dass die n + 1 Punkte im Rn nicht alle in einer Hyperebene der Dimension n − 1 liegen d¨ urfen. F¨ ur den Fall n = 2 bedeutet dies, dass die drei Punkte ein (echtes) Dreieck aufspannen m¨ ussen, d.h., sie d¨ urfen nicht alle auf einer Geraden liegen. Ausgehend von einem Simplex werden nun weitere charakteristische Punkte sowie die zugeh¨origen Zielfunktionswerte bestimmt. Je nach Situation wird nun der Punkt des aktuellen Simplex mit gr¨oßtem Zielfunktionswert durch einen der neuen charakteristischen Punkte ersetzt, sodass sich im n¨ achsten Schritt ein neues Simplex ergibt. Das Verfahren wird nun so lange wiederholt, bis ein geeignetes Abbruchkriterium erf¨ ullt ist. Im Detail wird das Verfahren gem¨aß folgender Zusammenfassung beschrieben:

Zusammenfassung 4.2 (Nelder-Mead-Verfahren) Gegeben sei ein nichtlineares Optimierungsproblem min f (x),

sodass

x ∈ Rn ,

mit Zielfunktion f : Rn → R. Weiter sei ein Ausgangssimplex gegeben durch die Punkte v0 , . . . , vn ∈ Rn und es sei eine Abbruchgenauigkeit ε > 0 definiert. ( 1 ) Falls vi − vj 2 < ε f¨ ur alle 0 ≤ i, j ≤ n, beende das Verfahren.

121

4.6 Nelder-Mead-Verfahren

( 2 ) Es seien v0 , . . . , vn ∈ Rn die Punkte des aktuellen Simplex. Sortiere die

Indizes derart, dass f (v0 ) ≤ . . . ≤ f (vn ) gilt. ( 3 ) Ausgehend von den sortierten Punkten des aktuellen Simplex, berechne

die Punkte m =

n−1 1  · vi n i=0

und

r = 2 · m − vn

sowie (falls in der aktuellen Iteration u ¨berhaupt erforderlich) s = 3 · m − 2 · vn ,

c =

1 1 ·m+ ·r 2 2

und

d =

1 1 · m + · vn . 2 2

( 4 ) Falls f (s) < f (r) < f (v0 ), ersetze vn durch s und gehe zu Schritt ( 1 ). ( 5 ) Falls f (r) < f (vn−1 ), ersetze vn durch r und gehe zu Schritt ( 1 ). ( 6 ) Falls f (r) < f (vn ) und f (c) < f (vn ), ersetze vn durch c und gehe zu Schritt ( 1 ). ( 7 ) Falls f (r) ≥ f (vn ) und f (d) < f (vn ), ersetze vn durch d und gehe zu Schritt ( 1 ). ( 8 ) F¨ ur i = 1, . . . , n, ersetze vi durch

1 1 · v0 + · vi 2 2 (um den aktuellen Simplex zu verkleinern) und gehe zu Schritt ( 1 ). Falls das Verfahren terminiert, so ist x∗ = v0 eine Approximation eines lokalen Minimums.

Das Verfahren wird auch als Downhill-Simplex-Verfahren bezeichnet, da der Zielfunktionswert in jeder Iteration verbessert wird (oder aber der Simplex wird verkleinert). Abb. 4.5a veranschaulicht die Definition der charakteristischen Punkte anhand eines Beispiels mit n = 2. Zudem zeigt Abb. 4.5b das Simplex der folgenden Iteration, falls f (s) < f (r) < f (v0 ) gilt. Weiterhin ist zu beachten, dass pro Iteration je nach Fallunterscheidung nicht alle f¨ unf charakteristischen Punkte in Schritt ( 3 ) berechnet werden m¨ ussen, sondern nur diejenigen, welche jeweils ben¨ otigt werden (durch geschicktes Abfragen muss selbst der Punkt s nicht in jeder Iteration bestimmt werden). Somit sind pro

122

4 Nichtlineare Optimierung

a Iteration k

b Iteration k + 1

Abb. 4.5 Veranschaulichung der Definition der charakteristischen Punkte des Nelder-MeadVerfahrens. a zeigt ein Beispiel eines Ausgangssimplex im R2 sowie die zugeh¨ origen charakteristischen Punkte. b stellt zudem das Simplex der folgenden Iteration dar, falls f (s) < f (r) < f (v0 ) gilt. Dazu sei bemerkt, dass die Bezeichnungen der Eckpunkte des Simplex bereits wie gefordert gem¨ aß der Zielfunktionswerte sortiert wurden

Iteration, in welcher nur ein Punkt des Simplex ver¨ andert wird, nur ein bis drei Auswertungen der Zielfunktion notwendig. Offen ist jedoch noch die Frage, wie ein Ausgangssimplex (m¨ oglichst einfach) definiert werden kann. Hierzu ist folgende Vorgehensweise m¨oglich: Ausgehend von einer (einzelnen) Startl¨osung x0 ∈ Rn wird das Ausgangssimplex erzeugt, indem zu jeder Komponente von x0 ein gewisser Anteil addiert wird. Genauer seien v0 = x0 sowie  f¨ ur e  x0 + ei · max{β · e i · x0 , γ} i · x0 ≥ 0 vi =  x0 + ei · min{β · ei · x0 , −γ} f¨ ur e i · x0 < 0 f¨ ur i = 1, . . . , n mit β, γ > 0 und dem i-ten Einheitsvektor ei . Sinnvolle Werte der Parameter sind beispielsweise β = 0, 05 und γ = 0, 00025. Diese Vorgehensweise zur Bestimmung eines Ausgangssimplex werden wir auch in den folgenden Beispielen verfolgen.

Aufgabe 4.10 Bestimme das Ausgangssimplex auf die oben beschriebene Art und Weise ausgehend von x0 = (−20, 60). Fertige dazu auch eine Skizze an.

Schließlich sei bemerkt, dass eine allgemeine Aussage zur Konvergenz des NelderMead-Verfahrens nur sehr schwer getroffen werden kann. Daher sollte das Verfahren auch dann abgebrochen werden, falls eine zuvor definierte maximale Anzahl an Iterationen erreicht ist. Abschließend untersuchen wir die gleichen Testfunktionen wie schon in Abschn. 4.2 zum Gradientenverfahren:

123

4.6 Nelder-Mead-Verfahren

1.0

3.0

0.8

2.5

0.6 2.0 0.4 0.2 x2-Achse

x2-Achse

1.5

1.0

0.0 -0.2

0.5

-0.4 0.0 -0.6 -0.5

-0.8 -1.0

-1.0 -2.0

-1.5

-1.0

-0.5

0.0

0.5

1.0

1.5

2.0

-2.0

-1.5

-1.0

-0.5

a Rosenbrock-Funktion

0.0

0.5

1.0

1.5

2.0

x1-Achse

x1-Achse

b Six-Hump-Camel-Funktion

Abb. 4.6 Veranschaulichung zweier Testfunktionen der nichtlinearen Optimierung. Dargeahrend des Nelder-Mead-Verfahrens f¨ ur jeweils einen stellt sind zudem die L¨ osungen xk w¨ explizit gew¨ ahlten Startwert: a Rosenbrock-Funktion und Verlauf des Verfahrens zum Startwert x0 = (− 12 , 2) sowie b Six-Hump-Camel-Funktion und Verlauf des Verfahrens zum Startwert x0 = (− 45 , 0)

Beispiel 4.5 (Rosenbrock-Funktion) Wir untersuchen die Rosenbrock-Funktion f (x1 , x2 ) = 100 · (x2 − x21 )2 + (x1 − 1)2 mit x = (x1 , x2 ) ∈ R2 . Diese Funktion hat ein eindeutiges globales Minimum bei x∗ = (1, 1) und keine weiteren lokalen Minima (vgl. Beispiel 4.1). Unter Verwendung der Abbruchgenauigkeit ε = 10−6 sowie des Startwerts x0 = (− 12 , 2) ∈ R2 ben¨ otigt das Nelder-Mead-Verfahren etwa 128 Iterationen, bis das Verfahren mit einer Approximation des globalen Minimums terminiert (Abb. 4.6a). Zur weiteren numerischen Analyse der Konvergenzgeschwindigkeit wurden 1000 zuf¨ allige Startwerte x0 ∈ [−4, 4] × [−4, 4] generiert und die Anzahl der Iterationen des Nelder-Mead-Verfahrens untersucht (Tab. 4.3): Durchschnittlich waren nur etwa 100 Iterationen notwendig, bis das Verfahren mit einer (guten) Approximation des globalen Minimums als L¨ osung terminierte. Im Vergleich dazu ben¨ otigte das Gradientenverfahren im Durchschnitt rund 15 000 Iterationen (Beispiel 4.1).

124

4 Nichtlineare Optimierung

Minimale Anzahl an Iterationen Maximale Anzahl an Iterationen Durchschnittliche Anzahl an Iterationen

53, 0 175, 0 96, 7

Tab. 4.3 Numerische Untersuchung zur Konvergenz des Nelder-Mead-Verfahrens anhand der Rosenbrock-Funktion in Abh¨ angigkeit von zuf¨ alligen Startwerten x0 ∈ [−4, 4]2

Minimale Anzahl an Iterationen Maximale Anzahl an Iterationen Durchschnittliche Anzahl an Iterationen Ergebnis ist globales Minimum (Anteil in %)

35, 0 110, 0 56, 9 49, 2

Tab. 4.4 Numerische Untersuchung zur Konvergenz des Nelder-Mead-Verfahrens anhand der Six-Hump-Camel-Funktion in von Abh¨ angigkeit zuf¨ alligen Startwerten x0 ∈ [−4, 4]2

Analog zu Beispiel 4.2 betrachten wir auch die Six-Hump-Camel-Funktion: Beispiel 4.6 (Six-Hump-Camel-Funktion) Wir untersuchen die Six-Hump-CamelFunktion f (x1 , x2 ) = 4 · x21 −

21 10

· x41 +

1 3

· x61 + x1 · x2 − 4 · x22 + 4 · x42

mit x = (x1 , x2 ) ∈ R2 . Diese Funktion hat zwei globale sowie vier lokale Minima (vgl. Beispiel 4.2). Unter Verwendung der Abbruchgenauigkeit ε = 10−6 sowie des Startwerts x0 = (− 45 , 0) ∈ R2 ben¨ otigt das Nelder-Mead-Verfahren etwa 100 Iterationen, bis das Verfahren mit einer Approximation eines globalen Minimums terminiert (Abb. 4.6b). Zur weiteren numerischen Analyse der Konvergenzgeschwindigkeit wurden ebenfalls 1000 zuf¨ allige Startwerte x0 ∈ [−4, 4] × [−4, 4] generiert und die Anzahl der Iterationen des Nelder-Mead-Verfahrens untersucht (Tab. 4.4): Durchschnittlich waren nur etwa 57 Iterationen notwendig, bis das Verfahren terminierte, wobei in etwa 49 % der F¨ alle ein globales Minimum gefunden wurde (in allen anderen F¨ allen wurde eines der vier lokalen Minima bestimmt). Zusammenfassend kann den beiden obigen Beispielen entnommen werden, dass das Nelder-Mead-Verfahren im Vergleich zum Gradientenverfahren durchaus gute

4.6 Nelder-Mead-Verfahren

125

Konvergenzeigenschaften besitzt. Welches der beiden Verfahren jedoch effizienter ist, h¨angt stark von der jeweiligen Zielfunktion ab. Dennoch setzt das Nelder-MeadVerfahren keine besonderen Bedingungen an die Zielfunktion voraus (wie etwa die Differenzierbarkeit beim Gradientenverfahren), sodass es sich damit um ein h¨aufig eingesetztes numerisches Verfahren in der nichtlinearen Optimierung handelt.

5 Globale Optimierung

In den Verfahren der nichtlinearen Optimierung werden h¨ aufig nur lokale Minima bestimmt, und es kann keine Aussage dar¨ uber getroffen werden, wie weit die gefundenen L¨osungen tats¨achlich von einem globalen Minimum entfernt sind. Im Gegensatz dazu besch¨aftigt sich die globale Optimierung stets mit dem Finden eines globalen Minimums (unter Ber¨ ucksichtigung einer zuvor definierten und meist sehr kleinen absoluten Genauigkeitsschranke). Ein h¨aufig eingesetztes Verfahren der globalen Optimierung ist ein geometrisches Branch-and-Bound-Verfahren, welches wir in Abschn. 5.1 vorstellen. Zur Anwendung des Verfahrens werden jedoch Methoden zur Bestimmung von unteren Schranken ben¨otigt. Einige dieser Methoden stellen wir in den folgenden drei Abschnitten vor: Ein Verfahren f¨ ur Lipschitz-stetige Funktionen in Abschn. 5.2, eine Methode der Intervallarithmetik in Abschn. 5.3 und Techniken f¨ ur DC-Funktionen in Abschn. 5.4. Anschließend untersuchen wir die zuvor gewonnenen theoretischen Ergebnisse anhand numerischer Analysen in Abschn. 5.5. Schließlich pr¨ asentieren wir in Abschn. 5.6 als Anwendungsfall des geometrischen Branch-and-Bound-Verfahrens ein Beispiel der Standortplanung.

5.1 Geometrisches Branch-and-Bound-Verfahren Bevor wir das geometrische Branch-and-Bound-Verfahren im Detail vorstellen, f¨ uhren wir einige Notationen und Definitionen ein, welche wir im Folgenden stets verwenden werden:

Notation 5.1 Eine (kompakte) und achsenparallele Box im Rn bezeichnen wir mit R L R n X = [xL 1 , x1 ] × . . . × [xn , xn ] ⊂ R .

128

5 Globale Optimierung

Der Durchmesser einer Box X ⊂ Rn sei   L 2 + . . . + (xR − xL )2 , xR δ(X) = n n 1 − x1 

und mit c(X) =

1 L 1 L (x + xR (x + xR 1 ), . . . , n) 2 1 2 n



beschreiben wir den Mittelpunkt einer Box X ⊂ Rn . In diesem Kapitel besch¨aftigen wir uns mit Optimierungsproblemen der Form min f (x),

sodass

x ∈ X,

achst keine wobei X ⊂ Rn eine (achsenparallele) Box sei. Weiterhin stellen wir zun¨ ateren Berechnungen von Anforderungen an die Zielfunktion f : Rn → R, die sp¨ unteren Schranken werden jedoch stark von der Zielfunktion abh¨ angen. Formal definieren wir zun¨ achst Schrankenvorschriften folgendermaßen:

Definition 5.2 Sei X ⊂ Rn eine Box und sei f : X → R eine gegebene Zielfunktion. Eine Schrankenvorschrift ist ein Verfahren, welches f¨ ur alle Subboxen Y ⊂ X eine unteren Schranke LB(Y ) ∈ R mit LB(Y ) ≤ f (x)

f¨ ur alle x ∈ Y

(5.1)

berechnet sowie einen Punkt r(Y ) ∈ Y bestimmt. Eine Subbox Y von X ist dabei als beliebige Box Y ⊂ Rn mit Y ⊂ X zu verstehen. Bereits an dieser Stelle sei bemerkt, dass die Festlegung des Punktes r(Y ) insbesondere f¨ ur theoretische Ergebnisse von zentraler Bedeutung ist. In der praktischen Durchf¨ uhrung des folgenden Verfahrens spielt die Spezifikation von r(Y ) kaum eine Rolle, sodass hier stets r(Y ) = c(Y ) gew¨ahlt werden k¨ onnte. Die grundlegende Idee aller geometrischen Branch-and-Bound-Verfahren ist folgende: Subboxen von X werden unter Anwendung einer zuvor spezifizierten Schrankenvorschrift nach unten beschr¨ankt. Falls die Schranken nicht scharf genug sind, werden die Boxen in kleinere Subboxen unterteilt. Das Vorgehen wird wiederholt, bis das Verfahren eine Optimall¨osung x∗ ∈ X mit einer absoluten Genauigkeit von ε > 0 gefunden hat. Weitere Grundlagen zur globalen Optimierung k¨ onnen Horst und Tuy (1996) sowie speziell zum geometrischen Branch-and-Bound-Verfahren Scholz (2012a) entnommen werden. Spezielle Anwendungen zur Standortplanung sind in Plastria (1992), Drezner und Suzuki (2004), Blanquero und Carrizosa (2009) sowie Sch¨obel und Scholz (2010a) zu finden.

129

5.1 Geometrisches Branch-and-Bound-Verfahren

Zusammenfassung 5.1 Gegeben sei ein globales Optimierungsproblem min f (x),

sodass

x ∈ X.

Dabei sei X ⊂ Rn eine Box und zur Zielfunktion f : Rn → R sei eine Schrankenvorschrift bekannt. Weiter sei ε > 0 eine absolute Genauigkeit. F¨ uhre nun folgende Schritte aus: ( 1 ) Sei X eine Liste von Boxen und setze X = {X}, d.h., die Liste X enth¨ alt

zun¨achst nur die Box X. ( 2 ) Wende die Schrankenvorschrift auf X an und setze UB = f (r(X)) sowie

x∗ = c(Y ).

( 3 ) Falls die Liste X leer ist, d.h. X = ∅, so terminiert das Verfahren.

Anderenfalls setze δmax := max{δ(Y ) : Y ∈ X }. ( 4 ) W¨ ahle eine Box Y ∈ X mit δ(Y ) = δmax und zerteile Y in s kongruente

kleinere Subboxen Y1 bis Ys . ( 5 ) Setze X = (X \ Y ) ∪ {Y1 , . . . , Ys }, d.h., entferne Y aus der Liste X und

f¨ uge Y1 bis Ys hinzu. ( 6 ) Wende die Schrankenvorschrift auf Y1 bis Ys an und setze

UB = min{UB, f (r(Y1 )), . . . , f (r(Ys ))}. Falls UB = f (r(Yk )) f¨ ur ein k ∈ {1, . . . , s}, setze x∗ = r(Yk ). ( 7 ) Entferne alle Boxen Z ∈ X mit LB(Z) + ε ≥ UB. Falls UB in Schritt ( 6 )

nicht ver¨andert wurde, reicht es, die neuen Subboxen Y1 bis Ys zu pr¨ ufen. ( 8 ) Gehe zur¨ uck zu Schritt ( 3 ).

Je nach Schrankenvorschrift (Satz 5.1) ist das Verfahren stets endlich, und nach der Durchf¨ uhrung ist x∗ ein globales Minimum (mit einer absoluten Genauigkeit von ε > 0).

Die zentrale Frage ist und bleibt, wie geeignete Schrankenvorschriften gefunden werden k¨onnen. Darauf werden wir in den folgenden Abschnitten genauer eingehen. Weiterhin schlagen wir in Schritt ( 4 ) folgende Vorgehensweise zur Zerteilung der Boxen vor: Die Subboxen Y werden jeweils senkrecht zur l¨ angsten Kante in s = 2 Subboxen halbiert. Auch denkbar w¨are eine Zerlegung in jeweils s = 2n kongruente

130

5 Globale Optimierung

Subboxen. Dies f¨ uhrt in vielen F¨ allen jedoch zu einer l¨angeren Rechenzeit, und auch die numerische Stabilit¨ at kann damit teilweise negativ beeintr¨achtigt werden. Zudem sei bemerkt, dass der Algorithmus nur dann sinnvoll angewandt werden kann, wenn n klein genug ist. Bereits f¨ ur n ≥ 6 ben¨otigt das Verfahren h¨aufig so viele Iterationen, dass auf u ¨bliche Verfahren der nichtlinearen Optimierung zur¨ uckgegriffen werden sollte. Um schließlich eine Konvergenzaussage treffen zu k¨onnen, f¨ uhren wir folgende Definition ein:

Definition 5.3 Sei X ⊂ Rn eine Box und sei f : X → R eine gegebene Zielfunktion. Eine zugeh¨ orige Schrankenvorschrift besitzt eine Konvergenzrate von p ∈ N, falls es eine Konstante C > 0 gibt, sodass f (r(Y )) − LB(Y ) ≤ C · δ(Y )p

(5.2)

f¨ ur alle Subboxen Y ⊂ X gilt.

Dank dieser Definition erhalten wir folgende Konvergenzaussage, s. Scholz (2012a):

Satz 5.1 Angenommen, das geometrische Branch-and-Bound-Verfahren aus Zusammenfassung 5.1 wird mit einer Schrankenvorschrift mit einer Konvergenzrate von p ≥ 1 angewandt. Dann terminiert das Verfahren f¨ ur alle ε > 0 nach einer endlichen Anzahl an Iterationen.

Damit haben wir bereits alle Grundlagen zum Verfahren vorgestellt und k¨onnen uns in den folgenden Abschnitten mit der zentralen Frage zur Bestimmung von Schrankenvorschriften befassen.

5.2 Lipschitz-Schrankenvorschrift In diesem Abschnitt f¨ uhren wir die Lipschitz-Schrankenvorschrift ein. Diese ist in vielen Anwendungsf¨allen jedoch nicht sehr sinnvoll, da einige Voraussetzungen nur schwer erf¨ ullt werden k¨ onnen oder eine sehr langsame Konvergenz zu beobachten ist. Dennoch l¨ asst sich anhand der Lipschitz-Schrankenvorschrift das Konzept der Konvergenzrate genauer verstehen.

131

5.2 Lipschitz-Schrankenvorschrift

Definition 5.4 Eine Funktion f : X → R mit X ⊂ Rn heißt Lipschitz-stetig auf X, falls es eine Lipschitz-Konstante L > 0 gibt, sodass die Absch¨ atzung |f (x) − f (y)| ≤ L · x − y2

f¨ ur alle x, y ∈ X

gilt. Dabei ist  · 2 die euklidische Norm auf dem Rn .

Mit dieser Definition folgt, dass jede Lipschitz-stetige Funktion auch stetig ist. Weiterhin ist eine differenzierbare Funktion f (x) Lipschitz-stetig, falls der Gradient beschr¨ankt ist, d.h., falls es ein festes M > 0 gibt, sodass ∇f (x)2 ≤ M

f¨ ur alle x ∈ X

gilt. Die folgende Aufgabe zeigt jedoch die Grenzen der Definition auf:

Aufgabe 5.1 Zeige, dass die Funktion f : X → R mit √ f (x) = x auf X = [0, 10] nicht Lipschitz-stetig ist.

Nun k¨onnen wir bereits die Lipschitz-Schrankenvorschrift herleiten: Angenommen, die Zielfunktion f : X → R ist Lipschitz-stetig auf X mit Lipschitz-Konstante L > 0 und es ist ein A ≥ L bekannt. Dann gilt f¨ ur alle Subboxen Y ⊂ X f (c(Y ))

≤ ≤

f (x) + |f (c(Y )) − f (x)| ≤ f (x) + L · c(Y ) − x2 1 f (x) + A · c(Y ) − x2 ≤ f (x) + · A · δ(Y ) 2

f¨ ur alle x ∈ Y dank der Definition von δ(Y ). Mit dieser Absch¨ atzung erhalten wir bereits folgende Aussage:

Satz 5.2 (Lipschitz-Schrankenvorschrift) Gegeben sei eine auf X ⊂ Rn Lipschitz-stetige Zielfunktion f : X → R mit Lipschitz-Konstante L > 0. Weiter sei ein A ≥ L bekannt. Dann ist LB(Y ) = f (c(Y )) −

1 · A · δ(Y ) 2

mit

eine Schrankenvorschrift im Sinne von Definition 5.2.

Wir schließen direkt eine Aussage zur Konvergenzrate an:

r(Y ) = c(Y )

132

5 Globale Optimierung

Satz 5.3 Gegeben sei eine auf X ⊂ Rn Lipschitz-stetige Zielfunktion f : X → R mit Lipschitz-Konstante L > 0. Weiter sei ein A ≥ L bekannt. Dann besitzt die Lipschitz-Schrankenvorschrift, angewandt auf die Funktion f (x), eine Konvergenzrate von p = 1.

uhren hier den einfachen Beweis vor, um das Konzept der KonverBeweis Wir f¨ genzrate genauer zu verstehen: F¨ ur alle Subboxen Y ⊂ X gilt per Definition f (r(Y )) − LB(Y ) =

1 · A · δ(Y ) ≤ C · δ(Y ) 2

f¨ ur alle C ≥ A/2. Somit besitzt die Lipschitz-Schrankenvorschrift eine Konvergenzrate von p = 1 im Sinne von Definition 5.3.

Aufgabe 5.2 Zeige anhand der Funktion f (x) = x2 sowie der Box X = [−2, 2], dass die Lipschitz-Schrankenvorschrift im Allgemeinen keine Konvergenzrate gr¨ oßer als p = 1 haben kann. Betrachte dazu die Subboxen Yμ = [−μ, μ] ⊂ X mit μ > 0.

5.3 Intervall-Schrankenvorschrift Um eine weitere Schrankenvorschrift einzuf¨ uhren, ben¨ otigen wir einige Grundlagen der Intervallanalysis, welche beispielsweise Ratschek und Rokne (1988) oder Hansen (1992) entnommen werden k¨onnen. Zun¨ achst definieren wir Intervallarithmetiken wie folgt:

R L R Definition 5.5 Seien X1 = [xL 1 , x1 ] und X2 = [x2 , x2 ] zwei Intervalle. Dann wird die Intervallarithmetik zwischen X1 und X2 definiert durch

X1 X2 = {x1 x2 : x1 ∈ X1 , x2 ∈ X2 }, wobei die Addition, die Multiplikation, die Subtraktion, die Division, das Minimum oder das Maximum repr¨ asentiert.

Nach dem Zwischenwertsatz ist auch X1 X2 wieder ein Intervall, welches x1 x2 f¨ ur alle x1 ∈ X1 und alle x2 ∈ X2 enth¨ alt. Wir erhalten direkt folgende Aussagen:

133

5.3 Intervall-Schrankenvorschrift

R L R Lemma 5.4 Seien X1 = [xL 1 , x1 ] und X2 = [x2 , x2 ] zwei Intervalle und weiter L L R R L R R H = {xL 1 · x2 , x1 · x2 , x1 · x2 , x1 · x2 }.

Dann gilt:  X 1 + X2

=

X 1 − X2

=

X1 · X 2

=

X1 /X2

=

min{X1 , X2 }

=

max{X1 , X2 }

=



L R R xL 1 + x2 , x 1 + x2 R R L xL 1 − x2 , x 1 − x2

 



 min{z : z ∈ H}, max{z : z ∈ H}     R R L · 1/x falls xL xL , x , 1/x 1 1 2 2 , 2 > 0   L R R min{xL 1 , x2 }, min{x1 , x2 }   L R R max{xL , x }, max{x , x } 1 2 1 2

Alle Intervallarithmetiken lassen sich demnach einfach bestimmen. Die Einschr¨ankung bei der Division kann reduziert werden auf 0 ∈ X2 : R L R R Aufgabe 5.3 Seien X1 = [xL 1 , x1 ] und X2 = [x2 , x2 ] zwei Intervalle mit x2 < 0. Bestimme X1 /X2 .

Dar¨ uber hinaus definieren wir auch Intervalloperationen:

Definition 5.6 Sei X = [xL , xR ] ein Intervall und g : X → R eine stetige Funktion. Dann wird die Intervalloperation definiert durch   g(X) = {g(x) : x ∈ X} = min{g(x) : x ∈ X}, max{g(x) : x ∈ X} , wobei g(X) nach dem Zwischenwertsatz wieder ein Intervall ist.

Ist g : X → R beispielsweise eine stetige und monoton fallende Funktion auf X = [xL , xR ], so gilt   g(X) = g(xR ), g(xL ) . Weitere Beispiele werden in der folgenden Aufgabe behandelt:

134

5 Globale Optimierung

Aufgabe 5.4 Sei X = [xL , xR ] ein Intervall. Bestimme |X|,



X,

exp(X)

sowie

Xn

f¨ ur alle n ∈ N.

Es sei ausdr¨ ucklich darauf hingewiesen, dass Intervalloperationen f¨ ur alle stetigen Funktionen g : X → R definiert werden k¨onnen. Dennoch ist es f¨ ur die folgenden Ergebnisse unabdingbar, dass g(X) stets einfach bestimmt werden kann. Weiterhin sei bereits an dieser Stelle bemerkt, dass eine Box X = X1 × . . . × Xn im Sinne von Notation 5.1 nichts anderes ist als das kartesische Produkt von n Intervallen. Daher k¨onnen wir nun Intervallfunktionen definieren, welche als Argument eine Box erwarten.

Definition 5.7 Eine Intervallfunktion F (X) = F (X1 , . . . , Xn ) ist eine Funktion, welche eine Box X = X1 × . . . × Xn ⊂ Rn als Argument erwartet und ein Intervall zur¨ uckgibt. Dabei wird F (X) durch eine Kombination der zuvor definierten Intervallarithmetiken und Intervalloperationen spezifiziert.

Beispiel 5.1 Eine Intervallfunktion F (X) mit X = X1 × X2 ist     X1 + X 2 X1 + X2 = exp . F (X) = F (X1 , X2 ) = exp X22 + [1, 1] X22 + 1 F¨ ur die Box Y = [0, 2] × [−1, 1] ⊂ R2 gilt beispielsweise     [−1, 3] = exp([−1, 3]) = exp(−1), exp(3) , F (Y ) = exp [0, 1] + [1, 1] d.h., F (Y ) kann einfach bestimmt werden. Die zentrale Definition zur sp¨ ateren Schrankenvorschrift ist folgende:

135

5.3 Intervall-Schrankenvorschrift

Definition 5.8 Sei f (x) = f (x1 , . . . , xn ) eine feste Repr¨ asentation (s. Beispiel 5.4) einer reellwertigen Funktion, welche nur Arithmetiken und Operationen verwendet, sodass auch die zugeh¨ origen Intervallarithmetiken und Intervalloperationen definiert sind. Dann wird die nat¨ urliche Intervallerweiterung von f (x) gegeben durch die Intervallfunktion F (X) = F (X1 , . . . , Xn ), wobei alle reellen Arithmetiken und Operationen durch die entsprechenden Intervallarithmetiken und Intervalloperationen ersetzt werden.

Beispiel 5.2 Die nat¨ urliche Intervallerweiterung von f (x) = f (x1 , x2 ) = 4 · x21 +

sin(x2 ) x21 + 1

wird gegeben durch F (X) = F (X1 , X2 ) = [4, 4] · X12 +

sin(X2 ) sin(X2 ) = 4 · X12 + 2 , X12 + [1, 1] X1 + 1

wobei X = X1 × X2 eine Box ist. Dank der folgenden Aussage f¨ uhrt jede nat¨ urliche Intervallerweiterung anschließend zu einer Schrankenvorschrift, s. Hansen (1992):

Satz 5.5 (Hauptsatz der Intervallanalysis) Sei F (X) = F (X1 , . . . , Xn ) die nat¨ urliche Intervallerweiterung von f (x) = f (x1 , . . . , xn ). Dann gilt f (Y ) = {f (x) : x ∈ Y } ⊂ F (Y )

(5.3)

f¨ ur alle Boxen Y ⊂ Rn . Dabei sei bemerkt, dass sich das Intervall F (Y ) per Definition von Intervallarithmetiken und Intervalloperationen stets (einfach) berechnen l¨asst. Auch f (Y ) ist f¨ ur stetige Funktionen stets ein Intervall; dieses l¨ asst sich hingegen im Allgemeinen jedoch nicht exakt bestimmen, sodass meist f (Y ) = F (Y ) gilt: Beispiel 5.3 Die nat¨ urliche Intervallerweiterung von f (x) = x2 − 2 · x ist F (X) = X 2 − 2 · X. Nun ist f (x) monoton steigend auf Y = [1, 2], sodass wir f (Y ) = [f (1), f (2)] = [−1, 0]

136

5 Globale Optimierung

erhalten. F¨ ur die nat¨ urliche Intervallerweiterung gilt jedoch F (Y ) = F ([1, 2]) = [1, 4] − [2, 4] = [−3, 2] und somit f (Y ) ⊂ F (Y ), aber f (Y ) = F (Y ). Zudem sollte bei der Anwendung des Hauptsatzes der Intervallanalysis stets folgendes Beispiel bedacht werden: ur die beiden Funktion Beispiel 5.4 F¨ f1 (x) = 4 · (x2 − x)

f2 (x) = (2 · x − 1)2 − 1

und

gilt offensichtlich f1 (x) = f2 (x) f¨ ur alle x ∈ R. Diese Beobachtung gilt jedoch nicht f¨ ur die nat¨ urlichen Intervallerweiterungen: Mit F1 (X) = 4 · (X 2 − X)

F2 (X) = (2 · X − 1)2 − 1

und

erhalten wir f¨ ur Y = [0, 2] beispielsweise F1 (Y ) = [−8, 16]

und

F2 (Y ) = [−1, 8].

Daher ist es a ¨ußerst wichtig, eine feste Repr¨ asentation der reellwertigen Funktion zu w¨ ahlen, sofern man von der nat¨ urlichen Intervallerweiterung spricht. Mit den Grundlagen der Intervallanalysis k¨ onnen wir nun eine weitere Schrankenvorschrift angeben. Dazu erinnern wir uns, dass wir globale Optimierungsprobleme der Form min f (x), sodass x ∈ X, mit einer Box X ⊂ Rn als zul¨ assigen Bereich l¨ osen wollen. Dank des Hauptsatzes der Intervallanalysis erhalten wir direkt folgende Schrankenvorschrift:

Satz 5.6 (Intervall-Schrankenvorschrift) Gegeben sei eine stetige Zielfunktion f : Rn → R, sodass die zugeh¨ orige nat¨ urliche Intervallerweiterung F (X) existiert. Dann ist LB(Y ) = F (Y )L

mit

r(Y ) = c(Y )

eine Schrankenvorschrift im Sinne von Definition 5.2, wobei wir mit F (Y )L die linke Intervallgrenze des Intervalls F (Y ) bezeichnen.

Damit haben wir bereits eine zweite Schrankenvorschrift definiert, wobei wir zur theoretischen Aussage einer Konvergenzrate weitere Grundlagen ben¨ otigen:

137

5.3 Intervall-Schrankenvorschrift

Definition 5.9 Eine feste Repr¨ asentation einer reellwertigen Funktion f (x) = f (x1 , . . . , xn ) heißt eine Einmaldarstellung, falls in der Repr¨ asentation jede der Variablen x1 bis xn h¨ ochstens einmal vorkommt.

Beispiel 5.5 Betrachten wir die beiden Funktionen



und f2 (x) = exp (2 · x − 1)2 − 1 . f1 (x) = exp 4 · (x2 − x) Dann ist f2 (x) eine Einmaldarstellung, f1 (x) hingegen nicht, obwohl f1 (x) = f2 (x) f¨ ur alle x ∈ R gilt.

Aufgabe 5.5 Finde eine Einmaldarstellung von f (x1 , x2 ) = x21 + 2 · x1 · x2 + 3 + x22 . L¨ asst sich jede Funktion als Einmaldarstellung formulieren?

Angenommen, es ist eine Einmaldarstellung von f (x) = f (x1 , . . . , xn ) bekannt und die zugeh¨ orige nat¨ urliche Intervallerweiterung F (X) = F (X1 , . . . , Xn ) existiert. Dann gilt f (Y ) = F (Y ) f¨ ur alle Boxen Y ⊂ Rn , sodass F (Y )L eine scharfe untere Schranke liefert. Wir erhalten nun folgende Konvergenzrate, s. Scholz (2012b):

Satz 5.7 Gegeben sei eine Box X ⊂ Rn . Weiter seien m1 , . . . , ms : X → R Lipschitz-stetige Funktionen auf X sowie in Einmaldarstellung mit existierenden nat¨ urlichen Intervallerweiterungen. Zudem sei h : Rs → R Lipschitz-stetig sowie in Einmaldarstellung mit existierender nat¨ urlicher Intervallerweiterung. Schließlich sei

f (x) = h m1 (x), . . . , ms (h) . Dann besitzt die Intervall-Schrankenvorschrift, angewandt auf die Funktion f (x) eine, Konvergenzrate von p = 1.

Wie wir in Abschn. 5.6 nochmals genauer sehen werden, lassen sich insbesondere Zielfunktionen der Standortplanung in der zuvor ben¨otigten Form angeben:

138

5 Globale Optimierung

Beispiel 5.6 (Weber-Problem) Ein grundlegendes Problem der Standortplanung kann folgendermaßen formuliert werden: Gegeben seien mit ak = (ak,1 , ak,2 ) ∈ R2 f¨ ur k = 1, . . . , s existierende Standorte in der Ebene mit zugeh¨ origen Gewichten w1 , . . . , ws ∈ R. Das Weber-Problem besteht darin, den Ort x = (x1 , x2 ) ∈ R2 einer neuen Einrichtung so zu w¨ ahlen, dass x in der N¨ ahe der existierenden Standorte mit positiven Gewichten und m¨ oglichst weit entfernt von den existierenden Standorten mit negativen Gewichten liegt. Dementsprechend ist die Zielfunktion f (x) =

s 

wk · ak − x2

(5.4)

k=1

mit der euklidischen Norm  · 2 zu minimieren. Wenn wir nun  mk (x) = mk (x1 , x2 ) = wk · ak − x2 = wk · (ak,1 − x1 )2 + (ak,2 − x2 )2 definieren, so ist mk (x) f¨ ur alle k = 1, . . . , s eine Lipschitz-stetige Funktion in Einmaldarstellung mit existierender nat¨ urlicher Intervallerweiterung. Zudem ist offensichtlich auch h(y1 , . . . , ys ) = y1 + . . . + ys eine Lipschitz-stetige Funktion in Einmaldarstellung mit existierender nat¨ urlicher Intervallerweiterung. Dank dieser Wahl der Funktionen mk (x) und h(y) gilt

f (x) = h m1 (x), . . . , ms (h) , und somit sind s¨ amtliche Voraussetzungen der Konvergenzaussage aus Satz 5.7 erf¨ ullt. Abschließend sei bemerkt, dass sich unter Verwendung der Intervallanalysis zusammen mit der Taylor-Entwicklung auch Schrankenvorschriften mit einer Konvergenzrate von p = 2 konstruieren lassen. F¨ ur Details hierzu sei auf Scholz (2012a) verwiesen.

5.4 DC-Schrankenvorschrift In den beiden vorhergehenden Abschnitten haben wir mit der Lipschitz- sowie der Intervall-Schrankenvorschrift zwei M¨oglichkeiten zur Berechnung von unteren Schranken kennengelernt, welche aus theoretischer Sicht jeweils eine Konvergenzrate von p = 1 besitzen. Nun lernen wir eine Schrankenvorschrift kennen, welche eine Konvergenzrate von p = 2 hat. Dazu setzen wir Grundkenntnisse u ¨ber konvexe bzw. konkave Funktionen voraus und definieren damit DC-Funktionen, s. Horst und Thoai (1999) oder Tuy et al. (1995):

5.4 DC-Schrankenvorschrift

139

Definition 5.10 Sei X ⊂ Rn eine konvexe Menge. Eine Funktion f : X → R heißt DC-Funktion auf X, falls es zwei konvexe Funktionen g, h : X → R gibt, sodass f (x) = g(x) − h(x) f¨ ur alle x ∈ X (5.5) gilt. Eine derartige Darstellung heißt DC-Zerlegung von f (x).

Offensichtlich ist die DC-Zerlegung einer DC-Funktion f (x) nicht eindeutig, denn falls f (x) = g(x) − h(x) eine DC-Zerlegung von f (x) ist, dann auch



f (x) = g(x) + a(x) − h(x) + a(x) f¨ ur jede konvexe Funktion a(x), da die Summe konvexer Funktion konvex ist.

autere, warum die Zielfunktion des Weber-Problems aus Beispiel 5.6 Aufgabe 5.6 Erl¨ eine DC-Funktion ist, und gib die Funktionen g(x) und h(x) einer DC-Zerlegung explizit an.

Aus theoretischer Sicht gilt zun¨achst folgende Existenzaussage:

Satz 5.8 Sei X ⊂ Rn eine konvexe Menge und sei f : X → R zweimal stetig differenzierbar. Dann ist f (x) eine DC-Funktion auf X.

Obwohl auch der Beweis dieser Aussage konstruktiv gef¨ uhrt werden kann, l¨ asst sich damit in den meisten praktischen Anwendungsf¨ allen leider keine DC-Zerlegung auf einfache Art und Weise berechnen. H¨aufig l¨ asst sich jedoch durch geschickte Umformungen der Zielfunktion eine DC-Zerlegung bestimmen.

Aufgabe 5.7 Bestimme eine DC-Zerlegung der Funktion f (x) = cos(x) auf dem Intervall X = [0, π].

Zudem gelten die Aussagen der folgenden Aufgabe: Aufgabe 5.8 Sei X ⊂ Rn eine konvexe Menge und weiter seien f1 , . . . , fs : X → R DC-Funktionen auf X mit bekannten DC-Zerlegungen fk (x) = gk (x) − hk (x) f¨ ur k = 1, . . . , s. Zudem seien λ1 , . . . , λs beliebige reelle Zahlen.

140

5 Globale Optimierung

Zeige, dass dann auch die Funktionen g1 , g2 , g3 : X → R mit g1 (x)

=

s 

λk · fk (x),

k=1

g2 (x)

=

min{f1 (x), . . . , fs (x)},

g3 (x)

=

max{f1 (x), . . . , fs (x)}

DC-Funktionen auf X sind, und gib jeweils eine DC-Zerlegung explizit an.

Eine weitere Regel zur Bestimmung einer DC-Zerlegung lautet folgendermaßen:

Lemma 5.9 Sei X ⊂ Rn eine konvexe Menge und sei r : X → R eine konvexe Funktion. Dann ist f : X → R mit f (x) = |r(x)| eine DC-Funktion und f (x) = g(x) − h(x) = 2 · max{0, r(x)} − r(x) ist eine DC-Zerlegung von f (x). Angenommen, X ⊂ Rn ist eine Box, und die Zielfunktion f : X → R eines globalen Optimierungsproblems ist eine DC-Funktion mit DC-Zerlegung f (x) = g(x) − h(x)

f¨ ur alle x ∈ X.

Dann l¨ asst sich eine allgemeine Schrankenvorschrift folgendermaßen herleiten: F¨ ur jede Subbox Y ⊂ X sei c = c(Y ) ∈ Rn der Mittelpunkt von Y und ξ(c) ∈ Rn sei ein Subgradient von g(x) an c. Dann gilt per Definition von Subgradienten g(x) ≥ g(c) + ξ(c) · (x − c)

f¨ ur alle x ∈ Y.

Zusammen erhalten wir f (x) = g(x) − h(x) ≥ g(c) + ξ(c) · (x − c) − h(x) = m(x) f¨ ur alle x ∈ Y . Nun sei bemerkt, dass die Funktion m(x) = g(c) + ξ(c) · (x − c) − h(x) konkav ist, denn die Summe aus einer linearen und einer konkaven Funktion ist wieder konkav. Wenn wir nun mit V die Menge der insgesamt 2n Ecken von Y bezeichnen, dann gilt zusammen min{m(v) : v ∈ V } = min{m(x) : x ∈ Y } ≤ min{f (x) : x ∈ Y }. Diese Beobachtungen f¨ uhren uns zu folgender Schrankenvorschrift:

141

5.5 Numerische Ergebnisse

Satz 5.10 (DC-Schrankenvorschrift) Gegeben sei eine Zielfunktion f : X → R mit DC-Zerlegung f (x) = g(x) − h(x)

f¨ ur alle x ∈ X ⊂ Rn .

F¨ ur jede Subbox Y ⊂ X sei c = c(Y ) der Mittelpunkt von Y , ξ(c) sei ein Subgradient von g(x) an c und V sei die Menge der 2n Ecken von Y . Unter Verwendung von m(x) = g(c) + ξ(c) · (x − c) − h(x)

(5.6)

ist dann LB(Y ) = min{m(v) : v ∈ V }

mit

r(Y ) ∈ {v ∈ V : m(v) = LB(Y )}

eine Schrankenvorschrift im Sinne von Definition 5.2.

Zur Anwendung der DC-Schrankenvorschrift sind also pro Subbox Y insgesamt 2n Auswertungen der Funktion m(x) notwendig, und r(Y ) ist eine der Ecken von Y , an denen m(x) sein Minimum auf Y annimmt. Zudem sei bemerkt, dass die Wahl von r(Y ) insbesondere f¨ ur die folgende theoretische Aussage zur Konvergenzrate von entscheidender Bedeutung ist:

Satz 5.11 Gegeben sei eine Zielfunktion f : X → R mit DC-Zerlegung f (x) = g(x) − h(x)

f¨ ur alle x ∈ X,

wobei g : X → R zweimal stetig differenzierbar sei. Dann besitzt die DCSchrankenvorschrift, angewandt auf die Funktion f (x), eine Konvergenzrate von p = 2.

Der Beweis dieser Aussage ist im Wesentlichen auf die Taylor-Entwicklung zweiter Ordnung zur¨ uckzuf¨ uhren, s. Sch¨obel und Scholz (2010b). Abgesehen von der Aussage zur Konvergenzrate kann in vielen praktischen Anwendungsf¨allen einfachheitshalber jedoch auch r(Y ) = c(Y ) gew¨ahlt werden, ohne dass sich die Anzahl der Iterationen des Branch-and-Bound-Verfahrens signifikant a¨ndert.

5.5 Numerische Ergebnisse Nachdem wir in den Abschnitten zuvor drei allgemeine Schrankenvorschriften samt theoretischer Konvergenzrate kennengelernt haben, wollen wir diese nun anhand

142

5 Globale Optimierung

eines Beispiels empirisch bestimmen, s. auch Sch¨obel und Scholz (2010b). Dazu andern wir die Ungleichung in Gl. (5.2) in eine Gleichung und wenden den nat¨ ¨ urlichen Logarithmus. Es folgt log(f (r(Y )) − LB(Y )) = log(C) + p · log(δ(Y )).

(5.7)

Mit einer Testfunktion f (x) sowie einer bekannten Schrankenvorschrift k¨onnen nun stets die linke Seite dieser Gleichung sowie log(δ(Y )) f¨ ur zuf¨ allig gew¨ ahlt Subboxen Y ⊂ X bestimmt werden. Genauer kann log(f (r(Y )) − LB(Y )) gegen log(δ(Y )) f¨ ur eine endliche Anzahl von Subboxen Y aufgetragen werden. Anschließend kann die empirische Konvergenzrate p sowie log(C) und damit C mittels linearer Regression der Testdaten bestimmt werden. Diese Vorgehensweise zur Bestimmung der empirischen Konvergenzrate der drei Schrankenvorschriften aus den vorhergehenden Abschnitten wollen wir nun demonstrieren. Als Testfunktion verwenden wir das Weber-Problem aus Beispiel 5.6, dessen Zielfunktion wir kurz wiederholen: Gegeben seien mit ak ∈ R2 f¨ ur k = 1, . . . , s existierende Standorte in der Ebene sowie zugeh¨ orige Gewichte w1 , . . . , ws ∈ R. Das Weber-Problem besteht darin, die Zielfunktion f (x) =

s 

wk · ak − x2

k=1

unter Verwendung der euklidischen Norm  · 2 zu minimieren. Weiterhin m¨ ussen wir uns u ¨ber die Anwendbarkeit der Schrankenvorschriften Gedanken machen: ( 1 ) Lipschitz-Schrankenvorschrift: Die Zielfunktion ist Lipschitz-stetig, und

jeder einzelne Summand besitzt eine Lipschitz-Konstante kleiner gleich eins. Daher ist A = s eine obere Schranke an die Lipschitz-Konstante L der gesamten Zielfunktion f (x), sodass die Lipschitz-Schrankenvorschrift anwendbar ist. ( 2 ) Intervall-Schrankenvorschrift: Die Zielfunktion besitzt nur Arithmetiken

und Operationen, welche auf Intervalle u ¨bertragen werden k¨ onnen. Daher existiert die nat¨ urliche Intervallerweiterung, sodass die Intervall-Schrankenvorschrift anwendbar ist (s. auch Beispiel 5.6). ( 3 ) DC-Schrankenvorschrift: Da die euklidische Norm eine konvexe Funktion

ist, kann direkt eine DC-Zerlegung angegeben werden: Es gilt f (x) = g(x) − h(x) =

s  k=1 wk >0

wk · ak − x2 −

s  k=1 wk 0, etwa ε = 10−6 . Schließlich sei nochmals darauf hingewiesen, dass das Verfahren im Allgemeinen kein globales Minimum bestimmt. Vielmehr h¨angt es stark vom Startwert a(0) ab, wie gut die bestimmte L¨osung tats¨achlich ist. Immerhin l¨ asst sich (unabh¨ angig von der Regularisierung) eine einfache Konvergenzaussage treffen: Da der LevenbergMarquardt-Algorithmus unter Verwendung von p(0) = 0 identisch zum NewtonVerfahren ist, konvergiert der Algorithmus in der N¨ ahe eines lokalen Minimums quadratisch.

161

6.5 Ausreißer

12.0 10.0

y-Achse

8.0 6.0 4.0 2.0 0.0 -2.0 -5.0

0.0

5.0

10.0

15.0

20.0

25.0

x-Achse

Abb. 6.3 Beispiel zur Ausgleichsrechnung unter Verwendung einer logistischen Modellfunktion. Dargestellt sind eine Reihe von Messdaten (blaue Punkte) sowie die L¨ osung der Ausgleichsrechnung (roter Funktionsgraph der Modellfunktion). Bestimmt wurde die L¨ osung unter Verwendung des Levenberg-Marquardt-Algorithmus, wobei der Startwert bereits geeignet abgesch¨ atzt wurde

Beispiel 6.4 Als Beispiel zur Anwendung des Levenberg-Marquardt-Algorithmus verwenden wir die Modellfunktion g(x, a1 , a2 , a3 ) = a1 ·



1

1 + exp − a2 · (x − a3 )

,

welche eine logistische Funktion in Abh¨ angigkeit der Parameter a1 bis a3 beschreibt. Logistische Funktionen spielen in diversen physikalischen Gesetzen insbesondere zur Beschreibung von Wachstumsprozessen eine wichtige Rolle. Abb. 6.3 zeigt das Ergebnis des Levenberg-Marquardt-Algorithmus, wobei der Startwert a(0) ∈ R3 bereits geeignet gew¨ ahlt wurde. Dabei h¨ angt es stark von der Startl¨ osung ab, ob das Verfahren tats¨ achlich (wie in diesem Beispiel) im globalen Minimum terminiert. Unter Verwendung beispielsweise von a(0) = (0, 0, 0) tritt (je nach Regularisierung p(0) ) entweder ein Fehler aufgrund der Exponentialfunktion sowie numerischer Ungenauigkeiten auf, oder aber das Verfahren terminiert in einem lokalen Minimum, dessen Zielfunktionswert weit von dem des globalen Minimums entfernt ist.

6.5 Ausreißer Ein h¨aufiger Anwendungsfall der Ausgleichsrechnung ist, dass die Punkte (xk , yk ) das Ergebnis einer Messreihe sind, welche durch eine Modellfunktion approxi-

162

6 Ausgleichsrechnung

miert werden sollen. Dabei kann es vorkommen, dass ein Teil der Daten durch Messunsicherheiten oder gar Messfehlern ungenau oder schlichtweg fehlerhaft sind. anden fehlerhaft sind und somit Messdaten bzw. Punkte (xk , yk ), welche unter Umst¨ ein großes Residuum aufweisen, werden h¨ aufig als Ausreißer bezeichnet. In diesem Abschnitt wollen wir diskutieren, wie eine Ausgleichsrechnung unter Ber¨ ucksichtigung von Ausreißern durchgef¨ uhrt werden kann. Eine einfache und naheliegende M¨ oglichkeit w¨ are eine Gewichtung der einzelnen Daten: Genauer sei w = (w1 , . . . , wn ) ∈ Rn eine Gewichtung der Daten mit wk ≥ 0 f¨ ur k = 1, . . . , n, sodass es schließlich die Zielfunktion n 

2

2    wk · g(xk , a1 , . . . , am )−yk = w · G(a1 , . . . , am )−y  f (a1 , . . . , am ) = 2

k=1

zu minimieren gilt. Dabei ist g(x, a1 , . . . , am ) die Modellfunktion mit den Parametern a1 , . . . , am , und G(a1 , . . . , am ) ∈ Rn sowie y = (y1 , . . . , yn ) ∈ Rn seien wie in Abschn. 6.1 definiert. Zur Minimierung dieser Funktion k¨onnen u ¨bliche Methoden der nichtlinearen Optimierung oder aber eine erweiterte Version des LevenbergMarquardt-Algorithmus angewandt werden. Der große Nachteil der Gewichtung besteht jedoch darin, dass zum Zeitpunkt der Ausgleichsrechnung bekannt sein muss, welche Messergebnisse im Vergleich zu den anderen welche G¨ ute haben, um entsprechend eine geeignete Gewichtung definieren zu k¨onnen. Im Extremfall m¨ ussten Ausreißer sogar im Vorfeld identifiziert werden, was h¨aufig allerdings weder m¨oglich noch w¨ unschenswert ist. Wir w¨ahlen daher einen Ansatz, welcher beispielsweise auch in Drezner und Nickel (2009b) verfolgt wird: Es sei z ∈ N ein ganzzahliger Wert mit m ≤ z ≤ n. Zudem definieren wir v = (1, . . . , 1, 0, . . . , 0) ∈ Rn als Vektor, dessen ersten z Eintr¨age gleich eins und alle anderen Eintr¨ age gleich null sind. Weiter sei sort : Rn → Rn eine Funktion, welche die n Argumente aufsteigend sortiert zur¨ uckgibt. Insbesondere sei   

     sort g(x1 , a) − y1 , . . . , g(xn , a) − yn  ∈ Rn ein Vektor, welcher die Residuen, bezogen auf die Parameter a = (a1 , . . . , am ), aufsteigend sortiert beinhaltet. Unter Verwendung dieser Notationen betrachten wir nun die Zielfunktion    2         f (a1 , . . . , am ) = v  · sort g(x1 , a) − y1 , . . . , g(xn , a) − yn   . (6.12) 2

achst In Worten bedeutet dies: Bezogen auf die Parameter a1 , . . . , am werden zun¨ alle n Residuen bestimmt. Die Zielfunktion ber¨ ucksichtigt nun nicht die Summe

163

6.6 Geometrische Ausgleichsrechnung

aller n Residuen, sondern nur die Summe der z kleinsten Residuen, sodass die n − z Punkte mit den gr¨ oßten Residuen als Ausreißer angesehen werden. Auch die Zielfunktion (6.12) l¨asst sich mit u ¨blichen Methoden der nichtlinearen Optimierung minimieren, beispielsweise mit dem Nelder-Mead-Verfahren oder auch dem geometrischen Branch-and-Bound-Verfahren, s. Drezner und Nickel (2009a). Wir veranschaulichen das Verfahren wie u ¨blich mit einem Beispiel: Beispiel 6.5 Gegeben sei eine Reihe von Messdaten, welche einem linearen Gesetz folgen. Abb. 6.4a zeigt die L¨ osung der linearen Regression gem¨ aß Abschn. 6.2 (ohne ein m¨ ogliches Vorhandensein von Ausreißern zu beachten). Das Ergebnis erscheint ziemlich willk¨ urlich, offenbar verf¨ alschen drei Messfehler bzw. Ausreißer die eigentlich gew¨ unschte L¨ osung sehr stark. Daher zeigt Abb. 6.4b die L¨ osung der linearen Regression mit drei Ausreißern. Genauer wurde die Zielfunktion (6.12) zur Modellfunktion g(x, a1 , a2 ) = a2 · x + a1 mit z = n − 3 unter Verwendung des Nelder-Mead-Verfahrens gel¨ ost. Das derart bestimmte Ergebnis zeigt schließlich sehr sch¨ on den linearen Zusammenhang der Messdaten.

6.6 Geometrische Ausgleichsrechnung Bislang haben wir stets das Ziel verfolgt, zu n gegebenen Punkten in der Ebene eine Funktion derart zu finden, dass die Summe der quadratischen Abst¨ ande zwischen den Punkten sowie dem Graphen der Modellfunktion minimiert werden. Mit anderen Worten haben wir dabei stets die Annahme getroffen, dass die x-Werte der gegebenen n Punkte als exakt angenommen werden k¨onnen. Dies ist jedoch nicht immer der Fall, sodass bei der geometrischen Ausgleichsrechnung die Summe der kleinsten quadratischen (euklidischen) Abst¨ ande zwischen den gegebenen Punkten sowie einer Modellfunktion bzw. geometrischen Kurve minimiert wird (Abb. 6.5b). Genauer haben wir bislang das Problem betrachtet, zu n gegebenen Punkten (xk , yk ) sowie zu einer Modellfunktion g(x, a1 , . . . , am ) die Zielfunktion f (a1 , . . . , am ) =

n 

g(xk , a1 , . . . , am ) − yk

2

k=1

zu minimieren. In der geometrischen Ausgleichsrechnung definieren wir nun die

164

6 Ausgleichsrechnung

9.0 8.5 8.0

yxAchse

7.5 7.0 6.5 6.0 5.5 5.0 4.5

0.0

1.0

2.0

3.0

4.0

5.0

6.0

7.0

8.0

9.0

10.0

9.0

10.0

x-Achse

a L¨osung der linearen Regression (ohne m¨ogliche Ausreißer zu beachten)

9.0 8.5 8.0

yxAchse

7.5 7.0 6.5 6.0 5.5 5.0 4.5

0.0

1.0

2.0

3.0

4.0

5.0

6.0

7.0

8.0

x-Achse

b L¨osung der linearen Regression (mit Vernachl¨assigung von drei Ausreißern)

Abb. 6.4 Beispiel zur linearen Regression mit und ohne Ausreißer. Dargestellt sind eine Reihe von Messdaten (blaue Punkte) sowie die L¨ osung der linearen Regression (rote Gerade) ohne Beachtung m¨ oglicher Ausreißer in a sowie mit Vernachl¨ assigung von drei Ausreißern in b

165

6.6 Geometrische Ausgleichsrechnung

Zielfunktion f (a1 , . . . , am )

=

=

n 



    min  xk , yk − x, g(x, a1 , . . . , am )  k=1

2

k=1

2

: x∈R

 2

n  



2     min  xk , yk − x, g(x, a1 , . . . , am )  : x ∈ R .

Das heißt, im Allgemeinen ist somit f¨ ur alle n Punkte in Abh¨ angigkeit der Parameter a1 , . . . , am zun¨achst ein nichtlineares Optimierungsproblem mit einer Variablen x zu l¨osen, um die Zielfunktion auswerten zu k¨onnen. Dies kann unter Umst¨anden nat¨ urlich sehr aufwendig werden, in einigen Anwendungsf¨ allen l¨asst sich das Problem jedoch einfacher beschreiben. Exemplarisch diskutieren wir daher wieder die lineare Modellfunktion g(x, a1 , a2 ) = a2 · x + a1 . In diesem Falle l¨ asst sich das (eindimensionale) Optimierungsproblem



2     min  xk , yk − x, a2 · x + a1  : x ∈ R 2

analytisch l¨ osen: Wir erhalten die Optimall¨ osung x∗ (xk , yk , a1 , a2 ) =

x k + a 2 · yk − a 1 · a 2 , 1 + a22

(6.13)

sodass die geometrische Ausgleichsrechnung einer linearen Funktion definiert werden kann durch die Zielfunktion n

2

2  f (a1 , a2 ) = xk − x∗ (xk , yk , a1 , a2 ) + yk − a2 · x∗ (xk , yk , a1 , a2 ) + a1 k=1

=

2 n   a 2 · yk − a 1 · a 2 − a 2 · x k 2

k=1

1 + a22

 +

a 2 · x k + a 1 − yk 1 + a22

2 ,

welche wieder mit u ¨blichen Methoden der nichtlinearen Optimierung minimiert werden kann.

osung (6.13) im Detail her. Betrachte dazu Aufgabe 6.3 Leite die Optimall¨    2    xk , yk − x, a2 · x + a1    2

als (eindimensionale) Funktion in x und bestimme eine Nullstelle der Ableitung.

Wie untersuchen auch hierzu ein kleines Beispiel:

166

6 Ausgleichsrechnung

2.0 1.5 1.0

y-Achse

0.5 -0.0 -0.5 -1.0 -1.5 -2.0 -2.5

0.0

1.0

2.0

3.0

4.0

5.0

6.0

7.0

8.0

9.0

10.0

6.0

7.0

8.0

9.0

10.0

x-Achse

a L¨osung der linearen Regression gem¨aß Abschn. 6.2

2.0 1.5 1.0

y-Achse

0.5 -0.0 -0.5 -1.0 -1.5 -2.0 -2.5

0.0

1.0

2.0

3.0

4.0

5.0 x-Achse

b L¨osung der geometrischen Ausgleichsrechnung einer linearen Funktion

Abb. 6.5 Vergleich zwischen linearer Regression und geometrischer Ausgleichsrechnung einer linearen Funktion. Dargestellt sind eine Reihe von Messdaten (blaue Punkte) sowie die L¨ osungen der linearen Regression bzw. der geometrischen Ausgleichsrechnung einer linearen Funktion (rote Geraden) in a bzw. b. Veranschaulicht sind zudem die jeweiligen Residuen, welche die Unterschiede verdeutlichen

167

6.7 Zusammenfassung

Beispiel 6.6 Gegeben sei eine Reihe von Messdaten (xk , yk ), welche einem linearen Gesetz folgen, aber in x und y Messungenauigkeiten aufweisen. Daher ist es hier sinnvoll, eine geometrische Ausgleichsrechnung anstelle einer linearen Regression durchzuf¨ uhren. Abb. 6.5 zeigt einen Vergleich zwischen linearer Regression und geometrischer Ausgleichsrechnung: Bei der linearen Regression werden die vertikalen Abst¨ ande zwischen den Messdaten sowie dem Funktionsgraphen betrachtet, bei der geometrischen Ausgleichsrechnung hingegen die kleinsten (euklidischen) Abst¨ ande. Abschließend stellen wir noch die geometrische Ausgleichsrechnung eines Kreises vor: Ausblick Im gesamten Kapitel haben wir bislang die Ausgleichsrechnung bezogen auf eine Modellfunktion g(x, a1 , . . . , am ) untersucht. Allerdings ist es neben Modellfunktionen auch m¨ oglich, andere geometrische Formen zu betrachten. Als Beispiel diskutieren wir nun die Ausgleichsrechnung eines Kreises. Genauer soll die Summe der quadratischen Abst¨ ande zwischen dem Kreisbogen sowie gegebenen Datenpunkten (xk , yk ) minimiert werden. Hierzu beschreiben wir einen Kreis durch die drei Parameter a1 , a2 und a3 , wobei (a1 , a2 ) ∈ R2 der Mittelpunkt des Kreises sei und a3 ≥ 0 der Radius. Die geometrische Ausgleichsrechnung, bezogen auf den Kreis, l¨ asst sich demnach formulieren durch f (a1 , a2 , a3 ) =

n  

2    (a1 , a2 ) − (xk , yk ) − a3 . k=0

2

Derartige Funktionen lassen sich unter Verwendung von geeigneten Schranken in der Regel sehr effizient mit dem geometrischen Branch-and-Bound-Verfahren l¨ osen, s. Scholz (2012a).

6.7 Zusammenfassung Wir haben in diesem Kapitel bereits mehrfach vermerkt, dass s¨ amtliche Ergebnisse der Ausgleichsrechnung (wie bei ¨ahnlichen statistischen Verfahren) kritisch hinterfragt werden m¨ ussen. Um dies nochmals zu verdeutlichen, dient die folgende ¨ stichpunktartige Ubersicht. Genauer sollte man sich sowohl in der Modellierung als auch im Umgang mit den Ergebnissen einer Ausgleichsrechnung stets folgende Fragestellungen vor Augen f¨ uhren: ( 1 ) Welche Norm zur Messung der G¨ ute bzw. zur Bewertung der Residuen wird

verwendet? Wir haben in diesem Kapitel ausschließlich die quadratische euklidische Norm untersucht (Abschn. 6.1).

168

6 Ausgleichsrechnung

( 2 ) Liefert das angewandte L¨ osungsverfahren eine exakte L¨ osung? Beispielsweise

liefern iterative Methoden wie der Levenberg-Marquardt-Algorithmus (Abschn. 6.4) h¨aufig nur ein lokales Minimum bzw. das Ergebnis h¨angt stark vom gew¨ahlten Startwert ab. Die lineare Regression (Abschn. 6.2) sowie die polynomiale Regression (Abschn. 6.3) hingegen liefern exakte L¨ osungen. ( 3 ) Wie wird mit Ausreißern umgegangen? Falls Ausreißer nicht ausgeschlossen

werden k¨onnen, ist u ¨ber eine Gewichtung bzw. u ¨ber eine Sortierung der Datenpunkte nachzudenken (Abschn. 6.5). ( 4 ) K¨ onnen s¨amtliche x-Werte als exakt angenommen werden? Falls nein, so ist

zu bewerten, ob eine geometrische Ausgleichsrechnung durchgef¨ uhrt werden sollte (Abschn. 6.6). Zusammengefasst lassen sich Ausgleichsprobleme mathematisch in der Regel einfach beschreiben. Allerdings sollte man bei der Anwendung genau wissen, was man tut, und gewonnene Ergebnisse stets kritisch reflektieren.

7 Multikriterielle Optimierung

In der u ¨blichen (einkriteriellen) Optimierung werden stets Probleme betrachtet, welche durch eine einzige Zielfunktion modelliert werden k¨ onnen. Es gibt jedoch auch viele Anwendungsf¨ alle, in denen mehrere Zielfunktionen gleichzeitig zu optimieren sind: Ein zentrales Anschauungsbeispiel ist die Maximierung der Wirkung eines Medikaments bei gleichzeitiger Minimierung der Nebenwirkungen. Weitere Beispiele sowie grundlegende Definitionen von multikriteriellen Optimierungsproblemen k¨ onnen Abschn. 7.1 entnommen werden. Um den Begriff von (¨ ublichen) Optimall¨osungen auf multikriterielle Probleme zu u ¨bertragen, definieren wir anschließend in Abschn. 7.2, was wir unter effizienten L¨osungen verstehen. In den folgenden Abschnitten pr¨asentieren wir Skalierungsverfahren, welche ein multikriterielles Problem in Abh¨ angigkeiten geeigneter Parameter auf einkriterielle Probleme zur¨ uckf¨ uhren und zur Bestimmung von effiziente L¨osungen genutzt werden k¨onnen. Genauer untersuchen wir die Gewichtete-Summen-Methode (Abschn. 7.3), die Constraint-Methode (Abschn. 7.4), die Benson-Methode (Abschn. 7.5) sowie die Kompromiss-Methode (Abschn. 7.6). Als Spezialfall diskutieren wir abschließend bikriterielle Probleme mit zwei Variablen in Abschn. 7.7: Unter gewissen Voraussetzungen k¨onnen hier effiziente L¨ osungen im Entscheidungsraum numerisch vergleichsweise einfach bestimmt werden. Als Anwendungsbeispiel pr¨asentieren wir das bikriterielle Weber-Problem aus der Standortplanung.

7.1 Einleitung Das Ziel der multikriteriellen Optimierung besteht darin, Optimierungsaufgaben unter Ber¨ ucksichtigung mehrere Zielfunktionen zu l¨osen, wobei sich die Zielfunktionen (zumindest teilweise) widersprechen. Dass dies ein durchaus wichtiger Anwendungsfall in der mathematischen Optimierung ist, zeigen die folgenden Beispiele: ( 1 ) Bei der Verwendung eines Medikaments soll die Dosierung derart eingestellt

werden, dass die Wirkung maximiert und die Nebenwirkungen minimiert wer-

170

7 Multikriterielle Optimierung

den. Offensichtlich k¨onnen sich dabei die Zielfunktionen Wirkung und Nebenwirkungen widersprechen. ( 2 ) Bei Finanzanlagen soll ein maximaler Ertrag bei minimalem Risiko erzielt

werden. Dabei stehen die Zielfunktionen Ertrag und Risiko durchaus gegens¨ atzlich zueinander. ( 3 ) Auch in den u ¨blichen Anwendungsf¨ allen der linearen Optimierung (z.B. Pro-

duktionsplanung) treten multikriterielle Probleme auf, falls der Erl¨ os maximiert und die Kosten minimiert werden sollen. Die Beispiele zeigen auch, dass multikriterielle Probleme in allen Disziplinen der mathematischen Optimierung auftreten k¨onnen, d.h. in der linearen und ganzzahligen Optimierung ebenso wie in der nichtlinearen und globalen Optimierung sowie der Netzwerkoptimierung. Allgemein verwenden wir folgende Notationen:

Notation 7.1 Ein multikriterielles Optimierungsproblem wird spezifiziert durch

vec min f (x) = f1 (x), . . . , fp (x) , sodass x ∈ X. (7.1) Dabei gelte f : Rn → Rp mit fk : Rn → R f¨ ur k = 1, . . . , p und X ⊂ Rn p sei der zul¨ assige Bereich. Den Raum R werden wir h¨ aufig auch als Zielraum bezeichnen. Im folgenden Abschnitt werden wir zun¨achst den Begriff einer Optimall¨ osung hinsichtlich multikriterieller Optimierungsprobleme verallgemeinern, was durchaus bereits nicht trivial ist. Zudem l¨ asst sich an dieser Stelle bereits bemerken, dass die anschließenden L¨osungsverfahren h¨aufig darauf basieren, ein multikriterielles Problem auf ein (¨ ubliches) Optimierungsproblem mit einer Zielfunktion zur¨ uckzuf¨ uhren (beispielsweise indem einige Zielfunktionen in geeignete Nebenbedingungen u ¨berf¨ uhrt werden). Allgemeine Grundlagen der multikriteriellen Optimierung sowie Vertiefungen zu den Inhalten diesen Kapitels sind beispielsweise in Ehrgott (2005) sowie Nehse und G¨opfert (1990) zu finden. Obwohl wir nur allgemeine Grundlagen und Begrifflichkeiten einf¨ uhren werden, sei speziell f¨ ur die nichtlineare multikriterielle Optimierung auf Miettinen (1998) sowie f¨ ur die globale multikriterielle Optimierung auf Scholz (2012a) verwiesen. Auch auf den Spezialfall der linearen multikriteriellen Optimierung werden wir nicht weiter eingehen, s. hierzu z.B. Ehrgott (2005). Abschließend sei vermerkt, dass neben dem Begriff der multikriteriellen Optimierung je nach Anwendungsgebiet teilweise auch von Pareto-Optimierung oder Vektoroptimierung gesprochen wird. Auch die Begrifflichkeiten der folgenden Definitionen k¨onnen sich in der Literatur teilweise leicht unterscheiden, wir halten uns jedoch insbesondere an die Bezeichnungen gem¨ aß Ehrgott (2005).

171

7.2 Effiziente L¨ osungen

7.2 Effiziente L¨ osungen Das Problem bei der Definition einer Optimall¨osung eines multikriteriellen Optimierungsproblems besteht darin, dass es im Rp im Gegensatz zum R keine totale Ordnung gibt: F¨ ur x, y ∈ R gilt entweder x ≤ y oder y ≤ x. Eine vergleichbare Definition f¨ ur x, y ∈ Rp gibt es nicht; wir definieren daher zun¨achst folgende Halbordnungen auf dem Rp :

Notation 7.2 Gegeben seien mit x = (x1 , . . . , xp ) und y = (y1 , . . . , yp ) zwei Vektoren im Rp . Dann verwenden wir folgende Notationen: ( 1 ) Wir schreiben x  y genau dann, wenn xk ≤ yk f¨ ur k = 1, . . . , p. ( 2 ) Wir schreiben x ≤ y genau dann, wenn xk ≤ yk f¨ ur k = 1, . . . , p und

x = y.

( 3 ) Wir schreiben x < y genau dann, wenn xk < yk f¨ ur k = 1, . . . , p.

Analog werden auch die Notationen , ≥ und > definiert.

Bei den Schreibweisen ≤ und ≥ ist es dem Kontext zu entnehmen, ob es sich dabei um die totale Ordnung auf dem R handelt oder aber ob die Halbordnungen auf dem Rp zum Vergleich zweier Vektoren gemeint sind. Obwohl die Notationen insgesamt durchaus einfach sind, sollte man sich diese dennoch kurz anhand einer kleinen Skizze verdeutlichen: Aufgabe 7.1 Gegeben sei x = (2, 5) ∈ R2 . Fertige eine Skizze eines Koordinatensystems an und verdeutliche darin alle y ∈ R2 , f¨ ur die x  y gilt. Veranschauliche in einer zweiten Skizze alle y ∈ R2 mit x > y. Welche Relation gilt insbesondere zwischen x = (2, 5) und y = (−2, 1)?

Zudem werden wir im Folgenden die Notation Rp = {x ∈ Rp : x  0}

(7.2)

verwenden, welche auch zur sp¨ ateren Veranschaulichung der folgenden Definition dient, welche nun den Begriff einer Optimall¨ osung verallgemeinert:

172

7 Multikriterielle Optimierung

Definition 7.3 Gegeben sei ein multikriterielles Optimierungsproblem

vec min f (x) = f1 (x), . . . , fp (x) , sodass x ∈ X. Eine L¨ osung x∗ ∈ X heißt effizient, falls es kein x ∈ X mit f (x) ≤ f (x∗ )

(7.3)

gibt. Dabei sei ≤ die Halbordnung aus Notation 7.2. Zu einer effizienten L¨ osung x∗ bezeichnen wir f (x∗ ) ∈ Rp als nichtdominiert. Nach dieser Definition zeichnet sich eine effiziente L¨osung eines multikriteriellen Optimierungsproblems dadurch aus, dass keine Zielfunktion einen besseren (kleineren) Zielfunktionswert annehmen kann, ohne dass sich der Zielfunktionswert mindestens einer anderen Zielfunktion verschlechtert (vergr¨ oßert).

Aufgabe 7.2 Erl¨ autere, dass die Definition einer effizienten L¨ osung eines multikriteriellen Optimierungsproblems f¨ ur den Fall p = 1 identisch ist zur Definition einer Optimall¨ osung eines u ¨blichen (einkriteriellen) Optimierungsproblems.

Die Menge aller effizienten L¨osungen sei XE ⊂ X. Zudem werden wir die Notationen Y = f (X) = {f (x) : x ∈ X} ⊂ Rp verwenden und bezeichnen YN = f (XE ) = {f (x) : x ∈ XE } ⊂ Y als die nichtdominierende Menge. Bevor wir eine Skizze dieser Mengen angeben, f¨ uhren wir eine alternative Definition von effizienten L¨osungen ein:

Lemma 7.1 Gegeben sei ein multikriterielles Optimierungsproblem

vec min f (x) = f1 (x), . . . , fp (x) , sodass x ∈ X. Eine L¨ osung x∗ ∈ X ist effizient, falls

Y ∩ f (x∗ ) − Rp = {f (x∗ )}

(7.4)

173

7.2 Effiziente L¨ osungen

mit Y = f (X) gilt. Dabei gelte

  f (x∗ ) − Rp = f (x∗ ) − y : y ∈ Rp ⊂ Rp (s. dazu auch Gl. 7.2).

Damit haben wir bereits die wesentlichen Grundlagen der multikriteriellen Optimierung definiert. Als Zusammenfassung veranschaulicht Abb. 7.1 nochmals s¨amtliche Definitionen und Notationen f¨ ur den Fall p = 2, welcher h¨aufig auch als bikriterielle Optimierung bezeichnet wird.

Aufgabe 7.3 Betrachte das bikriterielle Optimierungsproblem   vec min f (x) = x2 , (x − 1)2 , sodass x ∈ X = [0, 2]. Veranschauliche das Problem im Zielraum und bestimme die nichtdominierende Menge YN sowie die Menge aller effizienten L¨ osungen XE .

Die folgende Aussage ergibt sich schließlich direkt aus der Definition von effizienten L¨osungen:

Lemma 7.2 Gegeben sei ein multikriterielles Optimierungsproblem

sodass x ∈ X. vec min f (x) = f1 (x), . . . , fp (x) , Dann ist YN eine Teilmenge des Randes von Y , d.h., alle nichtdominierten Punkte liegen auf dem Rand von Y . Aussagen zur Effizienz lassen sich h¨aufig u ¨ber einfache Widerspruchsbeweise zeigen. Wir demonstrieren diese Beweisstrategie daher anhand eines einfachen Beispiels: Beispiel 7.1 Gegeben sei das multikriterielle Optimierungsproblem

sodass x = (x1 , x2 ) ∈ X = [0, 1]2 . vec min f (x1 , x2 ) = x1 , x2 , Wir wollen zeigen, dass x∗ = (0, 0) effizient ist. Dazu nehmen wir an, dass x∗ nicht effizient ist. Dann existiert ein z ∈ X = [0, 1]2 , welches x∗ dominiert. Das heißt, es gibt ein z = (z1 , z2 ) ∈ X = [0, 1]2 mit fk (z) = zk ≤ 0 = fk (x∗ )

f¨ ur alle k = 1, 2

(7.5)

174

7 Multikriterielle Optimierung

a Nichtdominierter Punkt f (x∗ ) im Zielraum

b Nichtdominierter Punkt f (x∗ ) im Zielraum

c Dominierter Punkt f (x∗ ) im Zielraum

d Dominierter Punkt f (x∗ ) im Zielraum

e Nichtdominierende Menge im Zielraum

f Nichtdominierende Menge im Zielraum

Abb. 7.1 Veranschaulichung der Definitionen aus Abschn. 7.2 f¨ ur ein bikriterielles Problem (p = 2). Zur Verdeutlichung der alternativen Definition von effizienten L¨ osungen gem¨ aß Lemma 7.1 sind einige Beispiele in a bis d zu sehen: a veranschaulicht einen nichtdominierten Punkt eines kontinuierlichen Problems und b den eines diskreten Problems. Die beiden Punkte x∗ der Skizzen aus c und d sind nicht effizient, da die Schnittmengen jeweils aus mehr achen). Schließlich veranschaulichen die Skizzen e als dem Punkt f (x∗ ) bestehen (blaue Fl¨ und f die nichtdominierende Menge YN , welche wie im Beispiel f nicht zusammenh¨ angend sein muss

175

7.3 Gewichtete-Summen-Methode

sowie mit

fr (z) = zr < 0 = fr (x∗ )

f¨ ur ein r ∈ {1, 2}.

(7.6)

ur alle r ∈ {1, 2}, Im gegebenen Beispiel gilt mit z ∈ X = [0, 1] jedoch zr ≥ 0 f¨ also kann es kein z ∈ X = [0, 1]2 geben, welches die Bedingung (7.6) erf¨ ullt. Dies ist ein Widerspruch zur Annahme, dass x∗ nicht effizient ist, und demnach muss osung sein. x∗ = (0, 0) eine effiziente L¨ 2

Abschließend geben wir einen kurzen Ausblick u ¨ber einige weiterf¨ uhrende Begrifflichkeiten der Effizienz:

Ausblick Gegeben sei ein multikriterielles Optimierungsproblem

vec min f (x) = f1 (x), . . . , fp (x) , sodass x ∈ X. Eine L¨ osung x∗ ∈ X heißt schwach effizient, falls es kein x ∈ X mit f (x) < f (x∗ ) gibt. Die Menge aller schwach effizienten L¨ osungen sei XwE , und YwN = f (XwE ) bezeichnen wir als die schwach nichtdominierende Menge. Auch zur schwachen Effizienz l¨ asst sich eine alternative Definition angeben: Eine L¨ osung x∗ ∈ X ist schwach effizient, falls

Y ∩ f (x∗ ) − Rp> = {f (x∗ )} mit Y = f (X) gilt.

Aufgabe 7.4 Zeige, dass die Menge aller effizienten L¨ osungen stets eine Teilmenge der Menge aller schwach effizienten L¨ osungen ist, d.h., zeige, dass stets XE ⊂ XwE gilt. Veranschauliche zudem YwN im Zielraum von Abb. 7.1f und vergleiche diese Menge zu YN .

7.3 Gewichtete-Summen-Methode Nachdem wir die Definition von multikriteriellen Optimierungsproblemen kennengelernt haben, wollen wir uns nun mit allgemeinen Verfahren zur Bestimmung von effizienten L¨osungen besch¨aftigen. Hierzu wird das multikriterielle Problem meist

176

7 Multikriterielle Optimierung

(in Abh¨angigkeit von geeigneten Parametern) auf ein u ¨ bliches eindimensionales Optimierungsproblem zur¨ uckgef¨ uhrt. In diesem Abschnitt beginnen wir mit der Gewichtete-Summen-Methode:

Notation 7.4 Gegeben sei ein multikriterielles Optimierungsproblem

vec min f (x) = f1 (x), . . . , fp (x) , sodass x ∈ X ⊂ Rn . Weiter sei λ = (λ1 , . . . , λp ) ∈ Rp> . Dann definieren wir das Ersatzproblem min g(x) =

p 

λk · fk (x),

sodass

x ∈ X,

(7.7)

k=1

mit g : Rn → R. Das Ersatzproblem ist somit ein eindimensionales Optimierungsproblem, welches ja nach Eigenschaften der Funktionen fk (x) mit geeigneten Methoden z.B. der nichtlinearen Optimierung gel¨ ost werden kann. Hierzu sein nochmals bemerkt, dass λk > 0 f¨ ur k = 1, . . . , p gilt, sodass beispielsweise auch g(x) konvex ist, falls fk (x) f¨ ur k = 1, . . . , p konvex ist. Die zentrale Aussage zur Gewichtete-Summen-Methode liefert schließlich folgender Satz:

osungen x∗ des Ersatzproblems (7.7) sind effiziente Satz 7.3 Alle Optimall¨ L¨ osungen des zugeh¨ origen multikriteriellen Optimierungsproblems. Diese Aussage l¨asst sich mit der u ¨blichen Beweisstrategie der multikriteriellen Optimierung recht einfach zeigen: Beweis Angenommen, eine Optimall¨ osung x∗ des Ersatzproblems (7.7) ist nicht effizient. Dann existiert ein z ∈ X mit fk (z) ≤ fk (x∗ ) sowie mit

fr (z) < fr (x∗ )

f¨ ur alle k = 1, . . . , p

(7.8)

f¨ ur ein r ∈ {1, . . . , p}.

(7.9)

Unter Ber¨ ucksichtigung von λk > 0 f¨ ur k = 1, . . . , p folgt nun g(z) =

p  k=1

λk · fk (z) <

p  k=1

λk · fk (x∗ ) = g(x∗ ).

177

7.3 Gewichtete-Summen-Methode

Dies ist ein Widerspruch zur Annahme, dass x∗ eine Optimall¨ osung des Ersatzosung sein. problems (7.7) ist. Folglich muss x∗ eine effiziente L¨ Abb. 7.2a veranschaulicht die Gewichtete-Summen-Methode f¨ ur ein bikriterielles Optimierungsproblem: Je nach Wahl von λ (bzw. je nach Verh¨altnis von λ1 zu λ2 ) wird eine effiziente L¨osung bzw. ein nichtdominierter Punkt im Zielraum gefunden.

ur ein k ∈ {1, . . . , p} zugelassen. Ist Aufgabe 7.5 Angenommen, es wird λk = 0 f¨ Satz 7.3 dann weiterhin stets g¨ ultig? Veranschauliche das Szenario zun¨ achst f¨ ur p = 2 im Zielraum.

Schließlich stellt sich die Frage, welche bzw. ob alle effizienten L¨ osungen unter Verwendung des Ersatzproblems (7.7) gefunden werden k¨onnen. Die wichtigste Aussage dazu ist exemplarisch in Abb. 7.2b veranschaulicht: Im Allgemeinen k¨onnen keineswegs alle effizienten L¨ osungen bestimmt werden.

Aufgabe 7.6 Skizziere die Menge Y eines bikriteriellen Optimierungsproblems im Zielraum mit einer unendlichen Anzahl an nichtdominierten Punkten, wobei nur zwei nichtdominierte Punkte unter Verwendung der Gewichtete-Summen-Methode bestimmt werden k¨ onnen.

Weitere Aussagen erhalten wir, falls die Menge Y gewisse Eigenschaften besitzt, daher folgende Definition (Abb. 7.2c und d): Definition 7.5 Eine Menge Y ⊂ Rp heißt Rp -konvex, falls die Menge Y + Rp =



y + z : y ∈ Y und z ∈ Rp



konvex ist. Insbesondere folgt direkt, dass konvexe Mengen Y auch Rp -konvex sind. Schließlich erhalten wir folgende Aussage, wobei wir dazu die Definition des relativ Inneren einer Menge ben¨ otigen, worauf wir nachfolgend kurz eingehen werden:

Satz 7.4 Gegeben sei ein multikriterielles Optimierungsproblem

vec min f (x) = f1 (x), . . . , fp (x) , sodass x ∈ X ⊂ Rn .

178

7 Multikriterielle Optimierung

a Nichtdominierte Punkte im Zielraum

b Nichtdominierende Menge

c Menge Y ist R2 -konvex

d Menge Y ist nicht R2 -konvex

Abb. 7.2 Skizzen zur Veranschaulichung der Gewichtete-Summen-Methode f¨ ur bikriterielle Optimierungsprobleme (p = 2) im Zielraum. Zun¨ achst zeigt a nichtdominierte Punkte f¨ ur unterschiedliche Kombinationen von λ1 und λ2 . b veranschaulicht zudem, dass im Allgemeinen keineswegs alle effizienten Punkte mit der Methode gefunden werden k¨ onnen: Die in Hellblau dargestellten nichtdominierten Punkte k¨ onnen mit der Gewichtete-Summen-Methode nicht bestimmt werden. Weitere Aussagen gelten jedoch, falls die Menge Y bestimmte Konvexit¨ atseigenschaften besitzt (c und d)

179

7.4 Constraint-Methode

a Nichtdominierte Punkte im Zielraum

b Skizze zur Eindeutigkeit

Abb. 7.3 Skizzen zur Veranschaulichung der Constraint-Methode f¨ ur bikriterielle Optimierungsprobleme (p = 2) im Zielraum. Zun¨ achst veranschaulicht a die Constraint-Methode unter Verwendung von s = 2 sowie f¨ ur drei unterschiedliche Parametrierungen von t1 . Das Ergebnis der Constraint-Methode liefert dazu jeweils einen nichtdomierten Punkt. Zudem ist in b skizziert, warum eine eindeutige Optimall¨ osung des Ersatzproblems ben¨ otigt wird: Im Beispiel existieren unendlich viele Optimall¨ osungen des Ersatzproblems, wobei nur eine dieser L¨ osungen auch tats¨ achlich eine effiziente L¨ osung des zugeh¨ origen multikriteriellen Optimierungsproblems ist

Weiter sei Y = f (X) eine Rp -konvexe Menge. Dann lassen sich unter Verwendung der Gewichtete-Summen-Methode (7.7) ur die f (x∗ ) im relativ Inneren alle effizienten L¨ osungen x∗ bestimmen, f¨ von YN liegt. Das relativ Innere einer Menge Y ⊂ Rp wird dabei gegeben durch die Menge der inneren Punkte von Y im kleinsten affinen Unterraum von Y . Dies bedeutet beispielsweise, dass das relativ Innere einer (zusammenh¨ angenden) Kurve in der Ebene aus allen Punkten außer den beiden Endpunkten der Kurve besteht. Handelt es sich bei Y hingegen um eine Fl¨ ache im Raum, so besteht das relativ Innere von Y aus allen Punkten aus Y , die sich nicht auf dem Rand der Fl¨ache befinden. Das relativ Innere einer diskreten Punktmenge ist hingegen stets die leere Menge. Allerdings sei zudem bemerkt, dass es im Allgemeinen keineswegs m¨ oglich ist zu bestimmen, ob eine Menge Y die Eigenschaft der Rp -Konvexit¨at besitzt oder nicht.

7.4 Constraint-Methode Die Idee der Constraint-Methode besteht darin, dass nur eine der insgesamt p Zielfunktionen minimiert wird. Die u ¨brigen p−1 Zielfunktionen werden in geeignete Nebenbedingungen (Constraints) u ¨berf¨ uhrt:

180

7 Multikriterielle Optimierung

Notation 7.6 Gegeben sei ein multikriterielles Optimierungsproblem

vec min f (x) = f1 (x), . . . , fp (x) , sodass x ∈ X ⊂ Rn . Weiter sei s ∈ {1, . . . , p} und tk ∈ R seien geeignete Schranken f¨ ur k = 1, . . . , p mit k = s. Dann definieren wir das Ersatzproblem min fs (x),

sodass

x ∈ X

und

fk (x) ≤ tk ,

(7.10)

f¨ ur alle k = 1, . . . , p mit k = s.

Abb. 7.3a veranschaulicht die Constraint-Methode f¨ ur ein bikriterielles Optimierungsproblem im Zielraum unter Verwendung von s = 2. Die zentrale Aussage zur Constraint-Methode liefert schließlich folgender Satz:

osung des Ersatzproblems (7.10). Satz 7.5 Sei x∗ eine eindeutige Optimall¨ osungen des zugeh¨ origen multikriteriellen Dann ist x∗ auch eine effiziente L¨ Optimierungsproblems.

In Abb. 7.3b wurde zudem skizziert, warum die Eindeutigkeit der Optimall¨osung des Ersatzproblems ben¨ otigt wird. Ausblick Falls die Eindeutigkeit der Optimall¨ osung des Ersatzproblems (7.10) nicht sichergestellt werden kann, so gilt jedoch folgende Aussage: Sei x∗ eine (beliebige) Optimall¨ osung x∗ des Ersatzproblems (7.10). Dann ist x∗ eine schwach effiziente L¨ osungen des zugeh¨ origen multikriteriellen Optimierungsproblems. Schließlich sei erw¨ahnt, dass je nach Wahl der Parameter s sowie tk durchaus alle effizienten L¨osungen eines multikriteriellen Optimierungsproblems bestimmt werden k¨onnen. Allerdings kann die Wahl der Parameter an sich eine große Herausforderung sein, sodass die Aussage eher von theoretischer Bedeutung ist.

7.5 Benson-Methode Im Gegensatz zu den beiden obigen Verfahren liefert die Benson-Methode effiziente L¨osungen in Abh¨angigkeit eines Startpunktes z ∈ X. Falls z nicht effizient ist, dann wird eine L¨osung x∗ bestimmt, welche z dominiert und stets effizient ist:

181

7.5 Benson-Methode

Abb. 7.4 Skizze zur Veranschaulichung der Benson-Methode f¨ ur bikriterielle Optimierungsprobleme (p = 2) im Zielraum. Ausgehend von z bzw. f (z) wird der zul¨ assige Bereich derart eingeschr¨ ankt, dass im dunkelgrauen Bereich nach einem nichtdominierten Punkt gesucht wird. Genauer wird in diesem Beispiel 1 + 2 maximiert

Notation 7.7 Gegeben sei ein multikriterielles Optimierungsproblem

vec min f (x) = f1 (x), . . . , fp (x) , sodass x ∈ X ⊂ Rn . Weiter sei z ∈ X eine beliebige Startl¨ osung. Dann definieren wir das Ersatzproblem max

p 

k ,

sodass

x ∈ X und fk (x) + k = fk (z),

(7.11)

k=1

sowie mit k ≥ 0 f¨ ur alle k = 1, . . . , p. Die Benson-Methode besitzt neben x ∈ X somit auch die Variablen k ≥ 0 f¨ ur ur Optimall¨ osungen k = 1, . . . , p. Wir verwenden daher auch (x∗ , ∗ ) als Notation f¨ des Ersatzproblems (7.11) mit = ( 1 , . . . , p ) ∈ Rp . Abb. 7.4 veranschaulicht das Verfahren f¨ ur ein bikriterielles Optimierungsproblem im Zielraum: Auch wenn die Definition etwas schwierig erscheinen mag, anhand der Skizze l¨asst sich die Idee des Ersatzproblems durchaus anschaulich nachvollziehen. Die zentrale Aussage zur Benson-Methode liefert schließlich folgender Satz:

Satz 7.6 Sei (x∗ , ∗ ) eine (beliebige) Optimall¨ osung des Ersatzproblems (7.11). osungen des zugeh¨ origen multikriteriellen Dann ist x∗ auch eine effiziente L¨ Optimierungsproblems.

¨ Ahnlich zur Constraint-Methode lassen sich offensichtlich auch mit der Benson-

182

7 Multikriterielle Optimierung

Methode (theoretisch) alle effizienten L¨ osungen finden, n¨ amlich insbesondere dann, uhrende Aufgabe l¨asst sich Satz 7.6 mit den falls z ∈ XE gew¨ahlt wird. Als weiterf¨ bekannten Mitteln beweisen:

¨blichen Beweisstrategie (s. auch Aufgabe 7.7 Beweise Satz 7.6 unter Verwendung der u Beweis zu Satz 7.3).

7.6 Kompromiss-Methode Als weiteres Verfahren lernen wir in diesem Abschnitt die Kompromiss-Methode kennen, wobei wir zun¨achst folgende Notation einf¨ uhren:

Notation 7.8 Gegeben sei ein multikriterielles Optimierungsproblem

sodass x ∈ X ⊂ Rn . vec min f (x) = f1 (x), . . . , fp (x) , Dann definieren wir u = (u1 , . . . , up ) ∈ Rp

mit

uk = min{fk (x) : x ∈ X}

als Idealpunkt des multikriteriellen Optimierungsproblems. Es sei bemerkt, dass im Allgemeinen u ∈ Y = f (X) gilt (Abb. 7.5). Unter Verwendung des Idealpunktes l¨ asst sich nun die Kompromiss-Methode definieren:

Notation 7.9 Gegeben sei ein multikriterielles Optimierungsproblem

sodass x ∈ X ⊂ Rn . vec min f (x) = f1 (x), . . . , fp (x) , Weiter sei λ = (λ1 , . . . , λp ) ∈ Rp> . Dann definieren wir das Ersatzproblem 

   min λ · f (x) − u  , sodass x ∈ X. (7.12) ∞

orige Idealpunkt. Dabei sei u = (u1 , . . . , up ) der zugeh¨ Das Ersatzproblem (7.12) k¨ onnen wir demnach auch schreiben als 

 min max λk · fk (x) − uk : k = 1, . . . , p , sodass x ∈ X.

183

7.6 Kompromiss-Methode

Abb. 7.5 Skizze zur Veranschaulichung der Kompromiss-Methode f¨ ur bikriterielle Optimierungsprobleme (p = 2) im Zielraum. Ausgehend vom Idealpunkt u wird unter Verwendung der Maximumsnorm mit unterschiedlicher Gewichtung der p Zielfunktionen jeweils ein nichtdominierter Punkt bestimmt

Veranschaulichen l¨ asst sich die Kompromiss-Methode, indem man sich den gewichteten Einheitskreis der Maximumsnorm um den Idealpunkt vorstellt und diesen in der Gr¨oße skaliert (Abb. 7.5). Wir erhalten schließlich folgende Aussage:

osung des Ersatzproblems (7.12). Satz 7.7 Sei x∗ eine eindeutige Optimall¨ Dann ist x∗ auch eine effiziente L¨ osungen des zugeh¨ origen multikriteriellen Optimierungsproblems.

Wie bereits bei der Constraint-Methode m¨ ussen wir die Eindeutigkeit der Optimall¨ osung des Ersatzproblems fordern, um tats¨achlich eine effiziente L¨ osung zu erhalten. osung des Ersatzproblems (7.12) nicht Ausblick Falls die Eindeutigkeit der Optimall¨ sichergestellt werden kann, so gilt jedoch folgende Aussage: Sei x∗ eine (beliebige) Optimall¨ osung x∗ des Ersatzproblems (7.12). Dann ist x∗ eine schwach effiziente L¨ osungen des zugeh¨ origen multikriteriellen Optimierungsproblems. Zudem geben wir im folgenden Ausblick eine Aussage dazu, ob bzw. wie alle effizienten L¨osungen unter Verwendung der Kompromiss-Methode gefunden werden k¨onnen: Ausblick Falls im Ersatzproblem (7.12) statt dem Idealpunkt u der Utopiapunkt v = u−ε

184

7 Multikriterielle Optimierung

f¨ ur ein geeignetes (hinreichend kleines) ε ∈ Rp> verwendet wird, so lassen sich unter Verwendung der Kompromiss-Methode alle schwach effizienten L¨ osungen x∗ bestimmen.

7.7 Effiziente L¨ osungen im Entscheidungsraum Im Gegensatz zu den allgemeing¨ ultigen Verfahren der vorhergehenden Abschnitte pr¨ asentieren wir nun einige Ergebnisse zur Bestimmung von effizienten L¨osungen multikriterieller Optimierungsprobleme im Entscheidungsraum. Allerdings werden wir dazu eine Reihe von Annahmen treffen und betrachten zudem insbesondere nur bikriterielle Probleme (p = 2), s. auch Miettinen (1998). Wir beginnen zun¨ achst mit einer Aussage f¨ ur konvexe Zielfunktionen:

Satz 7.8 Gegeben sei ein bikriterielles Optimierungsproblem

sodass x ∈ Rn , vec min f (x) = f1 (x), f2 (x) , mit konvexen Zielfunktionen f1 (x) und f2 (x). Dann ist die Menge der effizienangende Menge. ten L¨ osungen XE eine zusammenh¨

Als zentrale Aussage f¨ ur unbeschr¨ankte bikriterielle Optimierungsprobleme mit differenzierbaren Zielfunktionen erhalten wir folgendes Ergebnis (Abb. 7.6):

Satz 7.9 Gegeben sei ein bikriterielles Optimierungsproblem

sodass x ∈ Rn , vec min f (x) = f1 (x), f2 (x) , mit stetig differenzierbaren Zielfunktionen f1 (x) und f2 (x). Weiter sei x∗ eine zugeh¨ orige effiziente L¨ osung. Dann sind die Gradienten   ∇f1 (x∗ ), ∇f2 (x∗ ) (7.13) linear abh¨ angig.

Damit haben wir eine notwendige Bedingung an effiziente L¨osungen eines unbeschr¨ankten bikriteriellen Optimierungsproblems mit stetig differenzierbaren Zielfunktionen formuliert, aus welcher sich entsprechende Folgerungen ziehen lassen. Speziell f¨ ur den Fall n = 2 erhalten wir folgende Aussage:

185

7.7 Effiziente L¨ osungen im Entscheidungsraum

b Der Punkt x∗ ist m¨oglicherweise effizient

a Der Punkt x∗ ist nicht effizient

Abb. 7.6 Skizzen zur Veranschaulichung der notwendigen Bedingung f¨ ur effiziente L¨ osungen bikriterieller Optimierungsprobleme (p = 2) im Entscheidungsraum (f¨ ur den Fall n = 2). Falls die Gradienten der Zielfunktionen im Punkt x∗ nicht linear abh¨ angig sind, so kann osung handeln: f (x) dominiert f (x∗ ) f¨ ur alle es sich bei x∗ auch nicht um eine effiziente L¨ x aus dem dunkelgrauen Bereich in a. Falls die Gradienten der Zielfunktion im Punkt x∗ linear abh¨ angig sind (wie in b), so ist eine notwendige Bedingung daf¨ ur erf¨ ullt, dass x∗ eine effiziente L¨ osung ist

Lemma 7.10 Gegeben sei ein bikriterielles Optimierungsproblem

sodass x ∈ R2 , vec min f (x) = f1 (x), f2 (x) , mit zweimal stetig differenzierbaren Zielfunktionen f1 : R2 → R

und

f2 : R2 → R.

Weiter sei x∗ eine zugeh¨ orige effiziente L¨ osung. Dann gilt g(x∗ ) =

∂ ∂ ∂ ∂ f1 (x∗ ) · f2 (x∗ ) − f1 (x∗ ) · f2 (x∗ ) = 0 ∂x1 ∂x2 ∂x2 ∂x1

mit g : R2 → R. Die Aussagen zuvor sind eine direkte Folgerung aus Satz 7.9, denn es gilt g(x) = 0 angig sind. Die genau dann, wenn die Gradienten ∇f1 (x) und ∇f2 (x) linear abh¨ Ergebnisse k¨onnen wir schließlich folgendermaßen anwenden: Herleitung Wie zuvor sei ein bikriterielles Optimierungsproblem

vec min f (x) = f1 (x), f2 (x) , sodass x ∈ R2 ,

186

7 Multikriterielle Optimierung

k

1

2

3

4

5

6

7

ak wk vk

(7, 2) 3 12

(3, 5) 1 13

(12, 6) 15 9

(9, 15) 5 1

(22, 16) 23 3

(17, 18) 14 2

(5, 20) 11 1

Tab. 7.1 Explizite Eingabedaten eines bikriteriellen Weber-Problems mit s = 7 existierenden Standorten sowie zugeh¨ origen Gewichten

mit zweimal stetig differenzierbaren Zielfunktionen gegeben. Weiterhin sei g(x) =

∂ ∂ ∂ ∂ f1 (x) · f2 (x) − f1 (x) · f2 (x), ∂x1 ∂x2 ∂x2 ∂x1

und wir nehmen an, dass ∇g(x) = 0 f¨ ur alle x ∈ R2 mit g(x) = 0 gilt. Falls die Funktionen f1 (x) und f2 (x) zudem noch konvex sind, so besteht XE aus einer (zusammenh¨ angenden) Kurve im R2 (Satz 7.8). Diese Kurve kann bestimmt werden, indem das Anfangswertproblem y  (t) = F (y(t)) sowie mit F (x) =

y(0) = x∗

mit

1 · ∇g(x)2



∂ ∂ g(x), − g(x) ∂x2 ∂x1

(7.14)



osung sei. gel¨ ost wird, wobei der Anfangswert x∗ eine beliebige effiziente L¨ Es sei bemerkt, dass das Anfangswertproblem derart konstruiert wurde, dass g(y(t)) = 0 f¨ ur alle t ∈ R gilt. Daher folgt auch XE ⊂ {y(t) : t ∈ R}, wobei nat¨ urlich s¨ amtliche Voraussetzungen zuvor erf¨ ullt sein m¨ ussen. Als kleines Anwendungsbeispiel f¨ ur diese Vorgehensweise diskutieren wir das bikriterielle Weber-Problem, s. Hamacher und Nickel (1996): ur k = 1, . . . , s existierende Standorte Beispiel 7.2 Gegeben seien mit ak ∈ R2 f¨ in der Ebene mit zugeh¨ origen Gewichten wk ≥ 0 sowie vk ≥ 0. Das bikriterielle Weber-Problem besteht nun darin, die Menge der effizienten L¨ osungen bez¨ uglich der beiden Zielfunktionen f1 (x) =

s  k=1

wk · x − ak 2

und

f2 (x) =

s  k=1

vk · x − ak 2

7.7 Effiziente L¨ osungen im Entscheidungsraum

187

Abb. 7.7 Veranschaulichung der L¨ osung des bikriteriellen Weber-Problems unter Verwendung der Eingabedaten gem¨ aß Tab. 7.1. Dargestellt sind die s = 7 existierenden Standorte (graue Punkte) sowie die Menge aller effizienten L¨ osungen XE (blaue Kurve)

zu bestimmen. Beide Zielfunktionen sind konvex sowie auf der Menge R2 \ {a1 , . . . , as } (zweimal) stetig differenzierbar. Unter der Annahme, dass ak ∈ XE f¨ ur k = 1, . . . , s gilt, sind alle Voraussetzungen aus dem Lemma sowie der Herleitung oben erf¨ ullt. aß Satz 7.8 eine zusammenh¨ angende Kurve, welche approximiert Zudem ist XE gem¨ werden kann, indem das Anfangswertproblem (7.14) aus der Herleitung numerisch gel¨ ost wird. Diese Vorgehensweise haben wir anhand der Eingabedaten aus Tab. 7.1 durchgef¨ uhrt. Genauer wurde das Euler-Verfahren auf das Anfangswertproblem (7.14) angewandt, wobei als Anfangswert x∗ das globale Minimum der Zielfunktion f1 (x) verwendet wurde. Beendet wurde das Euler-Verfahren, als die dadurch approximierte Kurve hinreichend nahe am globalen Minimum der Zielfunktion f2 (x) angekommen war. Das Ergebnis der Berechnung kann Abb. 7.7 entnommen werden. Darin dargestellt sind die s = 7 existierenden Standorte sowie die Menge der effizienten L¨ osungen XE .

8 Netzwerkoptimierung

In der Netzwerkoptimierung werden graphentheoretische Probleme behandelt, welche h¨aufig einfach zu beschreiben sind, jedoch ¨außerst schwierig zu l¨ osen. Teilweise kommen hier bekannte Methoden etwa der ganzzahligen Optimierung zum Einsatz, oder aber es werden spezielle Verfahren angewandt. Zudem besteht aus didaktischer Sicht eine Herausforderung in der großen Anzahl an Definitionen und Bezeichnungen: Die Ideen und Verfahren sind zum Teil vergleichsweise simpel, allerdings aufgrund der ganzen Bezeichnungen und Schreibweisen schwer zu verstehen. Wir untersuchen in diesem Kapitel daher nur eine kleine Auswahl an graphentheoretischen Problemen, um die Anzahl der Definitionen und Notationen auf ein Minimum zu reduzieren, aber dennoch einen guten Einblick in die Grundlagen der Netzwerkoptimierung geben zu k¨onnen. Wir beginnen in Abschn. 8.1 mit den wichtigsten Definitionen im Zusammenhang mit gerichteten sowie ungerichteten Graphen. Darauf aufbauend werden in den folgenden Abschnitten vier ausgew¨ ahlte Probleme behandelt: Wir untersuchen spannende B¨ aume und lernen ein Verfahren kennen, wie diese effizient bestimmt werden k¨onnen (Abschn. 8.2). Anschließend definieren wir Wege in gerichteten Graphen und stellen ein Verfahren vor, um k¨ urzeste Wege zu bestimmen (Abschn. 8.3). Darauf aufbauend f¨ uhren wir Fl¨ usse ein, wobei das Problem darin besteht, maximale Fl¨ usse unter Ber¨ ucksichtigung von Kapazit¨atsschranken zu finden (Abschn. 8.4). Schließlich formulieren wir das Knotenf¨ arbungsproblem, welches im Allgemeinen a¨ußerst schwer zu l¨osen ist (Abschn. 8.5). F¨ ur spezielle Klassen von Graphen gibt es jedoch sehr effiziente Algorithmen. Genauer definieren wir chordale Graphen und zeigen, wie das Knotenf¨ arbungsproblem dank eines perfekten Eliminationsschemas chordaler Graphen effizient gel¨ost werden kann.

8.1 Grundlagen Bevor wir in den folgenden Abschnitten zentrale Probleme der Netzwerkoptimierung formulieren, fassen wir zun¨ achst eine ganze Reihe grundlegender Begriffe und Konzepte der Graphentheorie zusammen. Wir orientieren uns dabei teilweise an

190

8 Netzwerkoptimierung

a Ungerichteter Graph

b Ungerichteter Graph

c Gerichteter Graph

d Gerichteter Graph

e Ungerichteter Graph

f Ungerichteter Graph

Abb. 8.1 Beispiele zur Visualisierung einiger Graphen mit unterschiedlichen Eigenschaften

den Notationen aus Krumke und Noltemeier (2005) sowie Domschke et al. (2015). Darin k¨onnen auch die Anwendungen der folgenden Abschnitte nachgeschlagen und vertieft werden.

Definition 8.1 Ein Graph G = (V, E) besteht aus einer (endlichen) Menge V an Knoten sowie einer (endlichen) Menge E an Kanten. Wir unterscheiden zwischen gerichteten sowie ungerichteten Graphen. In gerichteten Graphen gelte e = (u, v) f¨ ur alle e ∈ E mit u, v ∈ V und in ungerichteten Graphen gelte e = {u, v} f¨ ur alle e ∈ E mit u, v ∈ V . Im Folgenden werden wir gerichtete Graphen auch als Digraphen bezeichnen.

Neben der formalen Definition eines Graphen lassen sich diese auch durch Skizzen beschreiben. Einige Beispiele dazu k¨onnen Abb. 8.1 entnommen werden, wobei die Kanten in gerichteten Graphen in der Regel als Pfeile dargestellt werden. Es muss jedoch stets bedacht werden, dass es sehr unterschiedliche Darstellungen von ein und demselben Graphen geben kann. So sind beispielsweise die Graphen aus

8.1 Grundlagen

191

Abb. 8.1b und e identisch. Die Visualisierung von Graphen ist ein große Herausforderung an sich, auf die wir hier aber nicht weiter eingehen wollen.

Aufgabe 8.1 Finde eine Nummerierung der Knoten des Graphen aus Abb. 8.1b, sodass deutlich wird, dass die beiden Graphen aus Abb. 8.1b und e identisch sind.

In der Regel werden wir mit n die Anzahl der Knoten und mit m die Anzahl der Kanten beschreiben, d.h. n = |V | und m = |E|. Zudem werden wir die Knoten eines Graphen G = (V, E) h¨ aufig mit v1 , . . . , vn bezeichnen, sodass ein Graph einzig und allein durch die Menge E der Kanten definiert wird (wobei weiterhin spezifiziert werden muss, ob es sich um einen gerichteten oder einen ungerichteten Graphen handelt).

Notation 8.2 Sei G = (V, E) ein gerichteter Graph. Eine Kante e = (u, v) ∈ E heißt Schlinge, falls u = v gilt. Zwei Kanten e1 = (u1 , v1 ) und e2 = (u2 , v2 ) heißen parallel, falls u1 = u2 und v1 = v2 gilt. Sei G = (V, E) ein ungerichteter Graph. Eine Kante e = {u, v} ∈ E heißt Schlinge, falls u = v gilt. Zwei Kanten e1 = {u1 , v1 } und e2 = {u2 , v2 } heißen parallel, falls e1 = e2 gilt (wobei e1 und e2 als Mengen aufgefasst werden).

Am geeignetsten l¨ asst sich die Notation anhand von Beispielen verstehen:

Aufgabe 8.2 Welche der Graphen aus Abb. 8.1 besitzen Schlingen? Und welche besitzen parallele Kanten?

In vielen Anwendungsf¨allen treten weder Schlingen noch parallele Kanten auf, sodass wir folgende Definition einf¨ uhren:

Definition 8.3 Ein Graph G = (V, E) heißt einfach, falls G weder Schlingen noch parallele Kanten besitzt.

Um eine weitere Eigenschaft von Graphen zu definieren, ben¨ otigen wir zun¨achst den Begriff von benachbarten Knoten:

192

8 Netzwerkoptimierung

Definition 8.4 Sei G = (V, E) ein Graph. Zwei Knoten u, v ∈ V heißen benachbart, falls es eine Kante e ∈ E zwischen u und v gibt. Weiter sei c(v) = {u ∈ V : u und v sind benachbart} ⊂ V

(8.1)

die Menge aller Knoten u ∈ V , welche zu v benachbart sind.

Falls G ein gerichteter Graph ist, spielt die Richtung der Kante keine Rollte, d.h., u und v sind benachbart, falls es ein e ∈ E mit e = (u, v) oder mit e = (v, u) gibt. Damit erhalten wir folgende Definition, welche anschaulich direkt verst¨ andlich sein sollte:

Definition 8.5 Ein Graph G = (V, E) heißt zusammenh¨ angend, falls zwischen zwei beliebigen Knoten u, v ∈ V eine Folge benachbarter Knoten von u nach v existiert.

Auch hier l¨ asst sich die Definition anhand einfacher Beispiele verdeutlichen:

ur alle v ∈ V , Aufgabe 8.3 Finde ein Beispiel eines Graphen G = (V, E) mit c(v) = ∅ f¨ der nicht zusammenh¨ angend ist.

Neben einem Graphen bestehend aus Knoten und Kanten werden wir im Folgenden auch h¨ aufig eine Gewichtung der Kanten ben¨otigen:

Definition 8.6 Sei G = (V, E) ein Graph. Eine zugeh¨ orige Gewichtung wird gegeben durch eine Funktion w : E → R, welche jeder Kante ein Gewicht zuordnet. F¨ ur einen gewichteten Graphen verwenden wir die Notation G = (V, E, w).

Damit haben wir bereits die wesentlichen Grundbegriffe zur Definition von Graphen zusammengefasst. Wir werden in den folgenden Abschnitten jedoch eine ganze Reihe von weiteren Begriffen einf¨ uhren, wobei alle folgenden Definitionen teilweise nur im jeweiligen Abschnitt ben¨otigt werden. Mit anderen Worten k¨onnen einige der folgenden Abschnitte je nach Interesse auch in einer beliebigen Reihenfolge studiert werden.

193

8.2 Spannende B¨ aume

8.2 Spannende B¨ aume In diesem sowie in den folgenden Abschnitten stellen wir unterschiedliche Probleme der Netzwerkoptimierung vor, welche jeweils einen Graphen zugrunde legen. Zun¨ achst besch¨aftigen wir uns mit einer speziellen Klassen von Graphen:

angender Graph Definition 8.7 Ein ungerichteter, einfacher und zusammenh¨ G = (V, E) heißt Baum, falls G genau m = n−1 Kanten besitzt. Dabei ist n die Anzahl der Knoten von G. Ohne es formal im Detail zu definieren, ist ein Baum G stets kreisfrei , d.h., es gibt keine Folge benachbarter Knoten, die einen Kreis bilden.

Aufgabe 8.4 Sei G = (V, E) ein ungerichteter, einfacher und zusammenh¨ angender Graph. Wie viele Kanten besitzt G unter diesen Voraussetzungen mindestens?

Das Ziel, welches wir in diesem Abschnitt verfolgen, ist, einen (minimal) spannenden Baum eines gewichteten Graphen zu finden:

Definition 8.8 Sei G = (V, E, w) ein ungerichteter, einfacher, zusammenh¨ angender und gewichteter Graph. Ein spannender Baum von G ist ein Baum T = (V, F, w) mit F ⊂ E. Genauer besteht die Aufgabe im Folgenden darin, einen spannenden Baum T derart zu w¨ahlen, dass die Summe der Gewichte des spannenden Baumes, d.h.  w(e), (8.2) e∈F

minimiert wird (Abb. 8.2). ussen n Orte u ¨ber ein Versorgungsnetz miteinanBeispiel 8.1 Angenommen, es m¨ der verbunden werden. Dabei steht eine endliche Anzahl an Verbindungsstrecken zum Bau des Versorgungsnetzes zur Verf¨ ugung, und es sind die Baukosten der einzelnen Abschnitte zwischen zwei Orten des Netzes bekannt. Um die Gesamtbaukosten zu minimieren, kann dieses Problem als Graph modelliert werden, sodass anschließend ein minimal spannender Baum zu bestimmen ist.

194

a Gegebener Graph

8 Netzwerkoptimierung

b Spannender Baum

c Minimal spannender Baum

Abb. 8.2 Zum gegebenen Graphen aus a veranschaulicht b einen (beliebigen) spannenden Baum. Hingegen zeigt c einen minimal spannenden Baum, wobei die Kantengewichte proportional zur L¨ ange der Kanten in der Darstellung aus a gew¨ ahlt wurden

Neben praktischen Anwendungen wie im Beispiel werden spannende B¨ aume h¨aufig im Rahmen von Heuristiken verwendet, da sich spannende B¨aume sehr einfach und effizient finden lassen. Wir fassen ein m¨ ogliches Verfahren direkt zusammen, s. Kruskal (1956), wobei dank der Voraussetzungen stets eine Optimall¨osung existiert:

Zusammenfassung 8.1 (Kruskal) Gegeben sei ein ungerichteter, einfacher, zusammenh¨angender und gewichteter Graph G = (V, E, w). Setze F = ∅ und f¨ uhre f¨ ur k = 1, . . . , n − 1 folgende Schritte aus: W¨ ahle eine Kante e aus E \ F mit kleinstem Gewicht, sodass e zusammen mit den bereits gew¨ahlten Kanten F keinen Kreis bildet. F¨ uge e zur Kantenmenge F hinzu. Das Verfahren terminiert mit einem minimal spannenden Baum T = (V, F, w).

Obwohl sich der Algorithmus denkbar einfach beschreiben l¨ asst, kann eine effiziente Implementierung durchaus zur kleinen Herausforderung werden. Denn nur dank geeigneter Datenstrukturen l¨asst sich effizient pr¨ ufen, ob die Teilgraphen zur Kantenmenge F w¨ ahrend des Algorithmus kreisfrei sind oder nicht. Dennoch besitzt der Algorithmus von Kruskal bei geeigneter Implementierung eine Komplexit¨at von

O m · log(m) , (8.3) d.h., die Komplexit¨ at wird durch das Sortieren der Kantengewichte bestimmt. Zudem lassen sich anhand des Findens eines minimal spannenden Baumes viele weiterf¨ uhrende Konzepte der Graphentheorie erl¨ autern. Wir geben daher einen Ausblick, wie das Problem auch als ganzzahliges (lineares) Programm formuliert werden kann:

195

8.3 K¨ urzeste Wege

Ausblick Gegeben sei ein ungerichteter, einfacher, zusammenh¨ angender und gewichteter Graph G = (V, E, w) mit Knoten v1 , . . . , vn und Kanten e1 , . . . , em . Um das Finden eines minimal spannenden Baumes als ganzzahliges Programm zu formulieren, definieren wir x = (x1 , . . . , xm ) ∈ Rm folgendermaßen: 1 falls die Kante ej gew¨ahlt wird . xj = 0 falls die Kante ej nicht gew¨ahlt wird Zudem definieren wir eine Matrix A = (ai,j ) ∈ Rn×m mit 1 falls die Kante ej den Knoten vi enth¨ alt ai,j = 0 sonst sowie den Vektor b = (1, . . . , 1) ∈ Rn . Es sei bemerkt, dass jede Spalte der Matrix A einer Kante des Graphen entspricht und daher genau zwei 1-Eintr¨ age besitzt. Damit erhalten wir das folgende Programm: min

m 

w(ej ) · xj

j=1

unter den Nebenbedingungen m 

xj = n − 1

und

A·x ≥ b

j=1

sowie mit x ∈ {0, 1}m . Dabei ist das ≥ bezogen auf Vektoren komponentenweise zu verstehen. Schließlich sei bemerkt, dass die im Ausblick definierte (n × m)-Matrix A der Inzidenzmatrix des Graphen G entspricht.

8.3 K¨ urzeste Wege In diesem Abschnitt untersuchen wir zwecks einer leichter verst¨ andlichen Darstellung ausschließlich gerichtete Graphen, obwohl fast alle Erkenntnisse recht einfach auch auf ungerichtete Graphen u ¨bertragen werden k¨ onnen. Zudem werden wir auch an anderen Stellen nicht den allgemeinsten Fall betrachten, um un¨ ubersichtliche Fallunterscheidungen zu vermeiden.

196

8 Netzwerkoptimierung

Abb. 8.3 Beispiel eines Graphen zur Berechnung aller Wege von s = 3 nach t = 5. Dargestellt sind auch die zugeh¨ origen Kantengewichte

Definition 8.9 Sei G = (V, E, w) ein gerichteter und gewichteter Graph. Weiter seien s ∈ V und t ∈ V . Ein Weg (p1 , . . . , pr ) von s nach t in G ist eine Folge von Knoten p1 , . . . , pr ∈ V mit p1 = s sowie mit pr = t. Dabei gelte zudem (pk , pk+1 ) ∈ E f¨ ur k = 1, . . . , r − 1.

Dabei nehmen wir stets an, dass kein Knoten doppelt besucht wird, d.h., es gelte ur alle i, j ∈ {1, . . . , r} mit i = j. pi = pj f¨ Genauer untersuchen wir in diesem Abschnitt folgendes Problem: Gegeben sei ein gerichteter und gewichteter Graph G = (V, E, w). Zudem seien zwei Knoten s ∈ V sowie t ∈ V gegeben. Die Aufgabe besteht darin, einen Weg (p1 , . . . , pr ) von p1 = s nach pr = t in G derart zu w¨ahlen, dass die Summe der Gewichte des Weges, d.h. r−1

 w (pk , pk+1 ) , k=1

minimiert wird. Dabei ist keineswegs gesagt, dass u ¨berhaupt ein Weg von s nach t existiert. Beispielsweise haben wir nicht gefordert, dass G zusammenh¨angend ist und selbst wenn, kann es sein, dass es keinen (gerichteten) Weg von s nach t gibt.

197

8.3 K¨ urzeste Wege

Aufgabe 8.5 Betrachte den Graphen aus Abb. 8.3. Finde alle Wege von Knoten s = 3 nach Knoten t = 5. Welcher dieser Wege ist der k¨ urzeste?

Zur weiteren Vereinfachung nehmen wir im Folgenden an, dass w(e) ≥ 0 f¨ ur alle e ∈ E gilt. Das K¨ urzeste-Wege-Problem l¨asst sich auch f¨ ur Graphen mit negativen Kanten definieren, wobei dann einige Fallunterscheidungen zu ber¨ ucksichtigen sind. Um schließlich ein Verfahren zum Finden eines k¨ urzesten Weges angeben zu k¨ onnen, verallgemeinern wir Definition 8.4 f¨ ur gerichtete Graphen:

Definition 8.10 Sei G = (V, E) ein gerichteter Graph und sei v ∈ V . Dann definieren wir a(v) = {u ∈ V : (v, u) ∈ E} ⊂ V (8.4) als die Menge aller Nachfolger von v und b(v) = {u ∈ V : (u, v) ∈ E} ⊂ V

(8.5)

als die Menge aller Vorg¨ anger von v.

Die Definition l¨asst sich am besten anhand eines Beispiels verstehen:

Aufgabe 8.6 Betrachte den Graphen aus Abb. 8.3. Finde alle Nachfolger und alle Vorg¨ anger von Knoten 4.

Unter Verwendung der Notation c(v) f¨ ur benachbarte Knoten (Definition 8.4) erhalten wir zudem folgende Aussage:

Aufgabe 8.7 Sei G = (V, E) ein gerichteter Graph. Weise nach, dass a(v) ∪ b(v) = c(v) f¨ ur alle v ∈ V gilt (s. auch Gl. 8.1). Unter welchen Bedingungen gilt a(v) ∩ b(v) = ∅ f¨ ur mindestens einen Knoten v ∈ V ?

Es gibt mehrere Verfahren, welche einen k¨ urzesten Weg innerhalb eines Netzwerks finden. Wir stellen den Algorithmus von Dijkstra vor, s. Dijkstra (1959), welchen wir unter Verwendung der obigen Notationen direkt zusammenfassen k¨onnen:

198

8 Netzwerkoptimierung

Zusammenfassung 8.2 (Dijkstra) Gegeben sei ein gerichteter und gewichteter Graph G = (V, E, w) mit w(e) ≥ 0 f¨ ur alle e ∈ E. Gesucht wird ein k¨ urzester Weg von s ∈ V nach t ∈ V . ( 1 ) Weise allen Knoten v ∈ V die folgenden drei Eigenschaften zu:

Vorg¨anger(v) = unbekannt,

besucht(v) = nein,

Distanz(v) = ∞.

( 2 ) Weise dem Startknoten s ∈ V eine Distanz von 0 zu, d.h., setze

Distanz(s) = 0. ( 3 ) W¨ ahle unter allen Knoten v ∈ V mit den Eigenschaften

besucht(v) = nein

und

Distanz(v) < ∞

einen Knoten z ∈ V mit kleinster Distanz aus. Falls es keinen Knoten mit diesen Eigenschaften gibt, beende das Verfahren. ( 4 ) Markiere z als besucht, d.h., setze besucht(z) = ja. ( 5 ) F¨ ur alle u ∈ a(z): Berechne



q(u) = Distanz(z) + w (z, u) , und falls q(u) < Distanz(u) gilt, setze Distanz(u) = q(u)

und

Vorg¨anger(u) = z.

( 6 ) Gehe zur¨ uck zu Schritt ( 3 ).

Falls Vorg¨anger(t) = unbekannt, so existiert kein Weg von s nach t in G. Anderenfalls liefert die Kette der Vorg¨anger von t nach s (r¨ uckw¨ arts) einen k¨ urzesten Weg von s nach t in G.

Der Algorithmus in der oben angegebenen Form findet nicht nur den k¨ urzesten Weg von s nach t, sondern die k¨ urzesten Wege von s zu allen anderen Knoten. Ist dies gar nicht notwendig, so kann das Verfahren beendet werden, sobald der Knoten t besucht wurde, d.h., falls besucht(t) = ja.

Aufgabe 8.8 F¨ uhre den Algorithmus von Dijkstra anhand des Graphen aus Abb. 8.4 unter Verwendung von s = 0 und t = 4 durch. Fertige zu jeder Iteration eine Skizze

8.4 Maximale Fl¨ usse

199

Abb. 8.4 Beispiel eines Graphen zur Berechnung eines k¨ urzesten Weges von s = 0 nach t = 4

des Graphen in Schritt ( 3 ) an, welche jeweils die drei Eigenschaften aller Knoten beinhaltet.

Offensichtlich wird im ersten Durchlauf von Schritt ( 3 ) f¨ ur z jeweils der Startknoten s gew¨ahlt. Zudem ist auch die Endlichkeit des Verfahrens stets gegeben:

unde, warum der Algorithmus von Dijkstra stets endlich ist. Aufgabe 8.9 Begr¨

Anwendungen des K¨ urzesten-Wege-Problems aus diesem Abschnitt sind ziemlich naheliegend: Als anschauliches Beispiel l¨asst sich die Routenplanung im Straßennetz erw¨ahnen. Dabei wird das Straßennetz als gerichteter Graph modelliert, und die Gewichte definieren beispielsweise die erwartete Reisezeit entlang einer Kante bzw. entlang des entsprechenden Straßenabschnitts.

8.4 Maximale Fl¨ usse In diesem Abschnitt bauen wir teilweise auf k¨ urzesten Wegen auf und besch¨aftigen uns mit (maximalen) Fl¨ ussen. Dazu f¨ uhren wir zun¨ achst folgende Definition ein (vgl. auch Definition 8.10 bez¨ uglich Knoten statt Kanten):

200

8 Netzwerkoptimierung

Definition 8.11 Sei G = (V, E) ein gerichteter Graph und sei v ∈ V . Dann definieren wir A(v) = {(v, u) : u ∈ V und (v, u) ∈ E} ⊂ E

(8.6)

als die Menge aller Ausgangskanten von v und B(v) = {(u, v) : u ∈ V und (u, v) ∈ E} ⊂ E

(8.7)

als die Menge aller Eingangskanten von v. Aufbauend auf diesen Notationen k¨onnen wir zun¨achst den Begriff eines Flusses definieren:

Definition 8.12 Sei G = (V, E, w) ein gerichteter und gewichteter Graph. Weiter seien s ∈ V und t ∈ V . Ein Fluss von s nach t in G wird gegeben durch eine Abbildung f : E → R, welche die Flusserhaltungsbedingungen   f (e) = f (e) f¨ ur alle v ∈ V \ {s, t} e∈A(v)

e∈B(v)

erf¨ ullt und f¨ ur welche f (e) = 0 f¨ ur alle e ∈ B(s) und alle e ∈ A(t) gilt. Ein Fluss heißt zul¨ assig, falls zus¨ atzlich f (e) ≤ w(e)

f¨ ur alle e ∈ E

gilt. Nach dieser Definition ist ein Fluss f eine Gewichtung der Kanten, sodass mit Ausnahme der Quelle s sowie der Senke t in allen Knoten der eingehende Fluss gleich dem ausgehenden Fluss ist. Abb. 8.5a zeigt ein Netzwerk samt zul¨assigem Fluss. Weiterhin ist die Definition auch nur dann sinnvoll, falls w(e) ≥ 0 und f (e) ≥ 0 f¨ ur alle e ∈ E gilt. Eine weitere direkte Folgerung aus der Definition wird als Aufgabe gestellt:

Aufgabe 8.10 Sei G = (V, E, w) ein gerichteter und gewichteter Graph und weiter sei f : E → R ein zul¨ assiger Fluss von s nach t in G. Weise nach, dass   f (e) = f (e) e∈A(s)

e∈B(t)

gilt. Gilt die Aussage auch f¨ ur unzul¨ assige Fl¨ usse?

201

8.4 Maximale Fl¨ usse

b Zugeh¨origer Residualgraph

a Beispiel eines Graphen samt Fluss

Abb. 8.5 Beispiel eines Graphen zur Veranschaulichung der Definition eines Flusses. a zeigt einen Graphen mit sechs Knoten samt Kantengewichtung sowie einen Fluss zur Quelle s = 0 und Senke t = 4. Der Fluss ist dabei durch die Zahlen in den blauen Rechtecken gekennzeichnet. Der zugeh¨ orige Residualgraph kann b entnommen werden

Mit den Notationen und Definitionen zuvor k¨onnen wir das Problem, welches wir in diesem Abschnitt genauer analysieren werden, folgendermaßen beschreiben: Gegeben seien ein gerichteter und gewichteter Graph G = (V, E, w) sowie eine Quelle s ∈ V und eine Senke t ∈ V . Die Aufgabe besteht darin, einen zul¨assigen Fluss f : E → R derart zu w¨ahlen, dass der Fluss maximiert wird. Dies bedeutet, dass der Wert   f (e) = f (e) M = e∈A(s)

e∈B(t)

zu maximieren ist; eine Optimall¨ osung wird als maximaler Fluss bezeichnet.

Aufgabe 8.11 Handelt es sich bei dem Fluss aus Abb. 8.5a um einen maximalen Fluss? Begr¨ unde deine Antwort.

Um ein Verfahren zur Berechnung eines maximalen Flusses pr¨asentieren zu k¨onnen, ben¨otigen wir noch eine weitere Notation und eine weitere Definition:

Notation 8.13 Sei G = (V, E) ein gerichteter Graph. Dann bezeichnen wir f¨ ur alle e = (u, v) ∈ E die zugeh¨ orige R¨ uckkante mit eb = (v, u). Die Menge aller R¨ uckkanten von E bezeichnen wir mit Eb .

202

8 Netzwerkoptimierung

Dank dieser Notation k¨ onnen wir nun folgende zentrale Definition einf¨ uhren:

Definition 8.14 Sei G = (V, E, w) ein gerichteter und gewichteter Graph mit w(e) ≥ 0 f¨ ur alle e ∈ E. Weiter seien s, t ∈ V und f : E → R sei ein zul¨ assiger Fluss von s nach t in G. Der Residualgraph von G und f ist ein gerichteter und gewichteter Graph Gf (V, F, z) mit folgenden Eigenschaften: ( 1 ) Die Kantenmenge F besteht aus allen Kanten e ∈ E, f¨ ur welche w(e) > 0

und f (e) < w(e) gilt. F¨ ur das zugeh¨ orige Gewicht gelte z(e) = w(e)−f (e). ( 2 ) Zus¨ atzlich beinhaltet F f¨ ur alle e = (u, v) ∈ E mit f (e) > 0 die R¨ uckkante

ur das zugeh¨ orige Gewicht gelte dabei z(eb ) = f (e). eb = (v, u). F¨ Die Menge der Knoten von G und Gf ist jeweils identisch.

Die Definition des Residualgraphen ist zwar nicht schwer, l¨asst sich aber kaum verst¨ andlich formulieren. Ein anschauliches Beispiel kann daher Abb. 8.5b entnommen werden. Schließlich soll die folgende Zusammenfassung die Definition nochmals greifbarer machen:

Zusammenfassung 8.3 (Residualgraph) Sei G = (V, E, w) ein gerichteter und gewichteter Graph mit w(e) ≥ 0 f¨ ur alle e ∈ E. Weiter seien s, t ∈ V und f : E → R sei ein zul¨assiger Fluss von s nach t in G. ( 1 ) Definiere den gerichteten und gewichteten Graphen Gf = (V, F, z), wobei

F = E ∪ Eb gelte. F beinhaltet damit alle Kanten aus e ∈ E sowie alle R¨ uckkanten eb ∈ Eb . F¨ ur die zugeh¨origen Gewichte gelte z(e) = w(e) − f (e) f¨ ur alle e ∈ E und ur alle eb ∈ Eb . z(eb ) = f (e) f¨

( 2 ) Entferne alle Kanten e ∈ F aus dem Graphen Gf , f¨ ur die z(e) ≤ 0 gilt.

Nach dieser Vorgehensweise ist Gf der Residualgraph von G und f .

Dank der Definition des Residualgraphen l¨ asst sich schließlich ein Verfahren zur Berechnung eines maximalen Flusses folgendermaßen formulieren, s. Ford und Fulkerson (1956):

203

8.4 Maximale Fl¨ usse

Abb. 8.6 Beispiel eines Graphen zur Berechnung eines maximalen Flusses von s = 3 nach t=5

Zusammenfassung 8.4 (Ford und Fulkerson) Gegeben sei ein gerichteter und gewichteter Graph G = (V, E, w) mit w(e) ≥ 0 f¨ ur alle e ∈ E. Gesucht wird ein maximaler Fluss von s ∈ V nach t ∈ V . ( 1 ) Sei f : E → R der (zul¨ assige) Fluss von s nach t in G = (V, E, w) mit

f (e) = 0 f¨ ur alle e ∈ E.

( 2 ) Bestimme den Residualgraphen Gf = (V, F, z) von G und f . ( 3 ) Finden einen k¨ urzesten Weg von s nach t in Gf = (V, F, z) und definiere

urzesten Weges. Falls kein Weg von Ep als die Menge aller Kanten des k¨ s nach t existiert, beende das Verfahren. ( 4 ) Bestimme das minimale Kantengewicht q aller Kanten des zuvor be-

stimmten Weges Ep , d.h. q = min{z(e) : e ∈ Ep }. ( 5 ) F¨ ur alle e ∈ Ep ∩ E addiere q zu f (e). ( 6 ) F¨ ur alle e ∈ Ep ∩ Eb subtrahiere q von f (e). Dabei ist Eb die Menge aller

R¨ uckkanten von E (Notation 8.13). ( 7 ) Gehe zur¨ uck zu Schritt ( 2 ).

Das Verfahren terminiert mit einem maximalen Fluss f von s nach t in G.

204

8 Netzwerkoptimierung

In der Regel wird aufgrund numerischer Rundungsfehler bei der Implementierung des Verfahrens an einigen Stellen nicht auf kleiner oder gleich 0 verglichen, sondern gegen einen sehr kleinen Wert, etwa ε = 10−6 . Anderenfalls kann es (theoretisch) auch vorkommen, dass das Verfahren nicht endlich ist, s. Ford und Fulkerson (1962). ¨ Ahnlich zum Algorithmus von Dijkstra ist auch das Verfahren von Ford und Fulkerson am verst¨andlichsten, wenn dieses anhand eines kleinen Beispiels eigenst¨ andig angewandt wird:

Aufgabe 8.12 F¨ uhre den Algorithmus von Ford und Fulkerson anhand des Graphen aus Abb. 8.6 unter Verwendung von s = 3 und t = 5 durch. Fertige zu jeder Iteration eine Skizze des Residualgraphen samt Kantengewichtung an.

8.5 Knotenf¨ arbungen In den vorhergehenden Abschnitten haben wir Probleme der Netzwerkoptimierung kennengelernt, welche sich alle vergleichsweise effizient l¨ osen lassen. Dies wird (zumindest f¨ ur den allgemeinen Fall) in diesem Abschnitt nicht mehr der Fall sein. Zun¨ achst beginnen wir jedoch wieder mit einer grundlegenden Definition:

Definition 8.15 Sei G = (V, E) ein ungerichteter und einfacher Graph. Eine Knotenf¨ arbung in G mit r ∈ N Farben wird gegeben durch eine Funktion c : V → {1, . . . , r},

(8.8)

welche jedem Knoten v ∈ V die Farbe c(v) zuordnet. Dabei m¨ ussen benachbarte Knoten stets eine unterschiedliche Farbe haben, d.h., es gelte c(v) = c(u) f¨ ur alle e = (u, v) ∈ E.

Offensichtlich l¨ asst sich f¨ ur einen Graphen G = (V, E) mit n Knoten sehr einfach eine Knotenf¨ arbung finden, falls r ≥ n gew¨ahlt wird. Das Knotenf¨ arbungsproblem, welches wir in diesem Abschnitt anhand von Spezialf¨ allen genauer analysieren werden, besteht daher darin, eine Knotenf¨arbung mit einer minimalen Anzahl von Farben zu finden:

Notation 8.16 Sei G = (V, E) ein ungerichteter und einfacher Graph. Die chromatische Zahl χ(G) ist die minimale Anzahl r an Farben, die f¨ ur eine Knotenf¨ arbung in G ben¨ otigt wird.

8.5 Knotenf¨ arbungen

205

Genauer interessieren wir uns im Folgenden daf¨ ur, wie eine Knotenf¨ arbung gefunden werden kann, welche mit r = χ(G) eine minimale Anzahl an Farben verwendet. Alle folgenden Ergebnisse dazu k¨ onnen in Krumke und Noltemeier (2005) nachgelesen werden. Zun¨ achst sei bemerkt, dass bereits die Bestimmung der chromatische Zahl χ(G) im Allgemeinen a¨ußerst schwer ist und schon in vergleichsweise kleinen Graphen nur n¨aherungsweise bestimmt werden kann. Daher kommen zur L¨osung von (allgemeinen) F¨arbungsproblemen h¨ aufig Heuristiken zum Einsatz. Wir konzentrieren uns hingegen auf spezielle Klassen von Graphen, in denen F¨ arbungsprobleme exakt und effizient gel¨ost werden k¨onnen: Beispiel 8.2 Ein Logistikunternehmen hat n Lieferauftr¨ age zu bearbeiten, die alle in einem Zentrallager beginnen und enden. Die Zeiten der Lieferauftr¨ age seien ur i = 1, . . . , n. Dies soll bedeuten, bekannt und gegeben durch Zeitintervalle [ai , bi ] f¨ dass zum Zeitpunkt ai ein Fahrzeug beladen wird, bevor die Ware zum Kunden ausgeliefert wird und das Fahrzeug anschließend zum Zeitpunkt bi wieder im Lager f¨ ur einen neuen Auftrag zur Verf¨ ugung steht. Dabei kann ein Fahrzeug aufgrund der Gr¨ oße der Waren niemals mit dem Umfang zweier Auftr¨ age beladen werden. Offensichtlich k¨ onnen unter diesen Annahmen zwei Lieferauftr¨ age i und j nur dann von einem Fahrzeug ausgef¨ uhrt werden, wenn sich die zugeh¨ origen Zeitintervalle ¨berschneiden. Zu kl¨ aren ist nun die Frage nach der Anzahl [ai , bi ] und [aj , bj ] nicht u r von mindestens ben¨ otigten Fahrzeugen, um alle Lieferauftr¨ age termingerecht zu erledigen. Dieses Problem kann als F¨ arbungsproblem modelliert werden: Wir konstruieren einen Graphen G = (V, E), dessen Knoten den jeweiligen Lieferauftr¨ agen entsprechen. Weiterhin verbinden wir zwei Knoten durch eine Kante genau dann, wenn sich die zugeh¨ origen Zeitintervalle der Lieferauftr¨ age u ¨berschneiden. Angenommen, wir haben eine Knotenf¨ arbung in G mit r Farben, so entspricht jede Farbe einem ben¨ otigten Fahrzeug. Dabei soll r nat¨ urlich m¨ oglichst klein gehalten werden.

Weitere Anwendungen von F¨arbungsproblemen wie beispielsweise Ressourcenplanung, Registerzuweisung in Prozessoren oder Frequenzverteilung von Mobilfunkanbietern sind auch in Marx (2004) zu finden. Zun¨ achst beginnen wir mit einer einfachen Absch¨ atzung der chromatischen Zahl und ben¨ otigen daf¨ ur folgende Definition:

Definition 8.17 Sei G = (V, E) ein ungerichteter und einfacher Graph. Der Knotengrad δ(v) eines Knoten v ∈ V ist gleich der Anzahl der benachbarten

206

8 Netzwerkoptimierung

Knoten von v. Zudem ist Δ(G) = max{δ(v) : v ∈ V } der Maximalgrad von G.

Der Maximalgrad liefert uns folgende Aussage:

Satz 8.1 Sei G = (V, E) ein ungerichteter und einfacher Graph. Dann gilt χ(G) ≤ Δ(G) + 1, d.h., die chromatische Zahl wird nach oben beschr¨ ankt durch Δ(G) + 1.

Weiterhin k¨ onnen wir ein Verfahren angeben, welches stets eine Knotenf¨arbung in G = (V, E) mit maximal Δ(G) + 1 Farben bestimmt:

Zusammenfassung 8.5 (Einfache Knotenf¨ arbung) Gegeben sei ein ungerichteter und einfacher Graph G = (V, E) mit n Knoten. ( 1 ) W¨ ahle eine beliebige Nummerierung der Knoten von v1 bis vn . ( 2 ) Setze c(v) = 0 f¨ ur alle v ∈ V , d.h., alle Konten seien zun¨ achst noch nicht

eingef¨ arbt. ( 3 ) F¨ ur i = 1, . . . , n: Setze c(vi ) auf die kleinstm¨ogliche Zahl bzw. Farbe

(unter Ber¨ ucksichtigung aller bereits eingef¨arbten Knoten). Das Verfahren liefert eine Knotenf¨ arbung mit r ≤ Δ(G) + 1 Farben.

Es sei nochmals darauf hingewiesen, dass dieses Verfahren im Allgemeinen keine F¨arbung mit der kleinstm¨oglichen Anzahl an Farben findet und somit das Knotenf¨arbungsproblem im Allgemeinen auch nicht l¨ ost. Vielmehr h¨angt die bestimmte Knotenf¨ arbung stark von der gew¨ahlten Nummerierung in Schritt ( 1 ) ab: arbung aus ZusammenfasBeispiel 8.3 In Abb. 8.7 wurde die einfache Knotenf¨ sung 8.5 auf zwei unterschiedliche Nummerierungen der Knoten angewandt. Wir erkennen, dass die erste Nummerierung eine F¨ arbung mit vier Farben liefert, obwohl Δ(G) + 1 = 5 gilt. Die zweite Nummerierung ergibt eine F¨ arbung mit nur

8.5 Knotenf¨ arbungen

207

Abb. 8.7 Beispiel zur Knotenf¨ arbung unter Verwendung der einfachen Knotenf¨ arbung aus Zusammenfassung 8.5. Dargestellt ist die Knotenf¨ arbung f¨ ur zwei unterschiedliche Nummerierungen der Knoten

drei Farben. Es sei bemerkt, dass χ(G) = 3 gilt; somit ist die zweite F¨ arbung eine L¨ osung des Knotenf¨ arbungsproblems. Zusammengefasst liefert die einfache Knotenf¨arbung eine simple Heuristik zur Bestimmung einer Knotenf¨ arbung (welche jedoch keineswegs mit einer minimalen Anzahl an Farben auskommt). Damit wenden wir uns bereits vom allgemeinen Fall ab und untersuchen spezielle Klassen von Graphen:

Ausblick Ein ungerichteter und einfacher Graph G = (V, E) heißt planar, falls der Graph derart in der Ebene gezeichnet werden kann, dass sich keine Kanten u ¨berschneiden. Beispielsweise ist der Graph aus Abb. 8.7 planar (sofern zwei Kanten anders eingezeichnet werden). Planare Graphen sind hinsichtlich des Knotenf¨ arbungsproblems von großer Bedeutung, da sie den Vier-Farben-Satz erf¨ ullen: F¨ ur planare Graphen G = (V, E) gilt χ(G) ≤ 4. Dies bedeutet, dass planare Graphen mit (maximal) vier Farben gef¨ arbt werden k¨ onnen. Dieser Satz wurde bereits vor mehreren Hundert Jahren vermutet, jedoch erst vor wenigen Jahrzehnten bewiesen. Das Interessante dabei ist, dass der Satz auch besagt, dass sich jede Landkarte mit vier Farben f¨ arben l¨ asst: Genauer kann jede Landkarte derart eingef¨ arbt werden, dass keine L¨ ander mit gemeinsamer Grenze die gleiche Farbe haben (unter der Annahme, dass alle L¨ ander zusammenh¨ angend sind). Um aus einer Landkarte einen planaren Graphen zu erhalten, gehen wir folgendermaßen vor: Die Knoten entsprechen den einzelnen L¨ andern. Nun f¨ ugen wir jeweils Kanten hinzu, falls die L¨ ander eine gemeinsame Grenze haben. Ein Beispiel samt F¨ arbung kann Abb. 8.8 entnommen werden. Obwohl wir wissen, dass sich planare Graphen mit maximal vier Farben f¨ arben lassen, kann es allerdings sehr schwierig sein, eine derartige F¨ arbung zu finden.

208

8 Netzwerkoptimierung

a Eingef¨arbte Landkarte

b Zugeh¨origer Graph

Abb. 8.8 Beispiel einer eingef¨ arbten Landkarte als Anwendung des Knotenf¨ arbungsproblems f¨ ur planare Graphen. Keine zwei benachbarten L¨ ander haben dieselbe Farbe

Im Fokus der folgenden Betrachtungen liegt nun eine Klasse von Graphen, welche beispielsweise auch in Beispiel 8.2 zum Einsatz kommt. Dazu ben¨ otigen wir zun¨achst folgenden Begriff:

Definition 8.18 Ein ungerichteter und einfacher Graph G = (V, E) heißt vollst¨ andig, falls alle Knoten miteinander verbunden sind.

Ein vollst¨ andiger Graph mit n Knoten besitzt demnach m =

n · (n − 1) 2

Kanten (Abb. 8.9). Offensichtlich l¨ asst sich das Knotenf¨arbungsproblem f¨ ur vollst¨ andige Graphen einfach l¨osen:

arbung eines vollst¨ andigen Graphen mit Aufgabe 8.13 Wie viele Farben werden zur F¨ n Knoten (mindestens) ben¨ otigt?

Schließlich betrachten wir folgende Klasse von Graphen, f¨ ur welche wir einen effizienten F¨arbungsalgorithmus formulieren werden, s. auch Krumke und Noltemeier (2005):

209

8.5 Knotenf¨ arbungen

a Vollst¨andiger Graph (n = 4)

b Vollst¨andiger Graph (n = 5)

c Vollst¨andiger Graph (n = 6)

Abb. 8.9 Veranschaulichung der vollst¨ andigen Graphen f¨ ur n = 4 bis n = 6

a Chordaler Graph

b Chordaler Graph

c Nicht chordaler Graph

Abb. 8.10 Beispiele zweier chordaler Graphen in a und b. Der Graph aus c ist nicht chordal, da dieser einen Kreis bestehend aus f¨ unf Kanten und ohne Sehne enth¨ alt

Definition 8.19 Ein ungerichteter und einfacher Graph G = (V, E) heißt chordal, falls jeder Kreis mit mindestens vier Kanten eine Sehne besitzt. Eine Sehne ist dabei eine Kante, die zwei nicht aufeinanderfolgende Knoten des Kreises miteinander verbindet. Zur Veranschaulichung der Definition zeigt Abb. 8.10 einige Beispiele.

Aufgabe 8.14 Betrachte den Graphen aus Abb. 8.10c und finde darin einen Kreis bestehend aus f¨ unf Kanten und ohne Sehne.

Wir werden sp¨ ater verstehen, wie algorithmisch gepr¨ uft werden kann, ob ein gegebener Graph chordal ist oder nicht. Zun¨achst f¨ uhren wir jedoch noch eine Unterklasse von chordalen Graphen ein (s. auch Beispiel 8.2):

210

8 Netzwerkoptimierung

a Gegebene Intervalle

b Zugeh¨origer Intervallgraph

Abb. 8.11 Beispiel zur Definition von Intervallgraphen: a veranschaulicht n = 7 gegebene Intervalle. Der zugeh¨ orige Intervallgraph ist in b dargestellt

Definition 8.20 Gegeben seien n Intervalle [a1 , b1 ] ⊂ R bis [an , bn ] ⊂ R. Der zugeh¨ orige Intervallgraph G = (V, E) besteht aus n Knoten v1 bis vn , wobei zwei Knoten vi und vj genau dann durch eine Kante verbunden werden, falls [ai , bi ] ∩ [aj , bj ] = ∅ gilt, d.h., falls sich die Intervalle (zeitlich) u ¨berschneiden.

Ein explizites Beispiel eines Intervallgraphen kann Abb. 8.11 entnommen werden. Die zentrale Aussage dazu ist folgende:

Satz 8.2 Jeder Intervallgraph ist chordal.

Wie bereits erw¨ ahnt, ist auch der Graph aus Beispiel 8.2 ein Intervallgraph und ¨ somit insbesondere chordal. Als Ubersicht der einzelnen Klassen bzw. Mengen von Graphen dient Abb. 8.12, welche durch die folgende Aufgabe vervollst¨andigt wird:

Aufgabe 8.15 Zeige, dass jeder vollst¨ andige Graph ein Intervallgraph ist.

Schließlich werden wir im weiteren Verlauf dieses Abschnitts der Fragestellung nachgehen, wie das Knotenf¨arbungsproblem in chordalen Graphen effizient gel¨ ost werden kann. Dazu ben¨otigen wir folgende Definition:

211

8.5 Knotenf¨ arbungen

einfache und ungerichtete Graphen chordale Graphen Intervallgraphen vollständige Graphen

¨ Abb. 8.12 Ubersicht einiger Klassen von Graphen. Insbesondere ist die Menge der Intervallgraphen eine Teilmenge der Menge der chordalen Graphen

a Chordaler Graph

b Simplizialer Knoten

c Nicht simplizialer Knoten

Abb. 8.13 Beispiel eines (chordalen) Graphen. Explizit dargestellt ist ein simplizialer Knoten samt Nachbarschaftsmenge in b sowie ein nicht simplizialer Knoten samt Nachbarschaftsmenge in c

Definition 8.21 Sei G = (V, E) ein chordaler Graph. Ein Knoten v ∈ V heißt simplizial, falls die Nachbarschaftsmenge des Knotens v einen vollst¨ andigen Graphen bildet. Die Nachbarschaftsmenge eines Knotens v ∈ V ist dabei ein Teilgraph von G, bestehend aus den zu v benachbarten Knoten (samt v selbst) sowie allen zugeh¨ origen Kanten, die auch in E enthalten sind.

In Abb. 8.13 ist ein (chordaler) Graph samt eines simplizialen sowie eines nicht simplizialen Knotens veranschaulicht. Weiterhin ist der folgende Satz von zentraler Bedeutung f¨ ur das anschließende Eliminationsschema:

212

8 Netzwerkoptimierung

Satz 8.3 Jeder chordale Graph besitzt (mindestens) einen simplizialen Knoten.

Da auch jeder Teilgraph eines chordalen Graphen chordal ist, ergibt sich die G¨ ultigkeit des folgenden Verfahrens, welches eine Nummerierung der Knoten eines chordalen Graphen liefert und als perfektes Eliminationsschema bezeichnet wird:

Zusammenfassung 8.6 (Perfektes Eliminationsschema) Gegeben sei ein chordaler Graph G = (V, E). ( 1 ) W¨ ahle einen simplizialen Knoten v ∈ V . ( 2 ) Entferne den Knoten v aus V sowie alle zugeh¨ origen Kanten aus E. ( 3 ) Falls V = ∅, beende das Verfahren. Anderenfalls gehe zu Schritt ( 1 ).

Die Reihenfolge der gew¨ahlten Knoten liefert schließlich ein perfektes Eliminationsschema des Graphen G.

Es sei bemerkt, dass es mit geeigneten Datenstrukturen effizient m¨oglich ist, einen simplizialen Knoten zu finden. Somit kann auch das perfekte Eliminationsschema effizient implementiert werden. Abb. 8.14 veranschaulicht ein kleines Beispiel mit n = 8 Knoten. Dar¨ uber hinaus gilt sogar folgender Zusammenhang zwischen dem perfekten Eliminationsschema sowie chordalen Graphen:

Satz 8.4 Ein ungerichteter und einfacher Graph G = (V, E) ist genau dann chordal, falls ein (zugeh¨ origes) perfektes Eliminationsschema existiert.

Mit anderen Worten kann das perfekte Eliminationsschema auch dazu genutzt werden, um zu pr¨ ufen, ob ein Graph chordal ist oder nicht. Ist der Graph nicht chordal, so kann im Laufe des perfekten Eliminationsschemas in Schritt ( 1 ) kein simplizialer Knoten gefunden werden.

uhre das perfekte Eliminationsschema anhand des Graphen aus Aufgabe 8.16 F¨ Abb. 8.10c durch.

Neben anderen Anwendungen kann ein perfektes Eliminationsschema auch dazu genutzt werden, um das Knotenf¨ arbungsproblem in chordalen Graphen effizient zu l¨osen. Die Grundlage dazu liefert der folgende Satz:

213

8.5 Knotenf¨ arbungen

a Chordaler Graph

b Simplizialer Knoten: 1

c Simplizialer Knoten: 2

d Simplizialer Knoten: 3

e Simplizialer Knoten: 5

f Simplizialer Knoten: 4

g Simplizialer Knoten: 6

h Simplizialer Knoten: 0

i Simplizialer Knoten: 7

Abb. 8.14 Beispiel zur Durchf¨ uhrung des perfekten Eliminationsschemas. Dargestellt sind die acht Iterationen des Verfahrens, wobei jeweils der gew¨ ahlte simpliziale Knoten samt Nachbarschaftsmenge hervorgehoben wurde. Das perfekte Eliminationsschema liefert demnach die Nummerierung (1, 2, 3, 5, 4, 6, 0, 7)

214

8 Netzwerkoptimierung

Abb. 8.15 Beispiel zur Knotenf¨ arbung unter Verwendung der einfachen Knotenf¨ arbung aus Zusammenfassung 8.5. Als Nummerierung der Knoten wurde das Ergebnis des perfekten Eliminationsschemas in umgekehrter Reihenfolge verwendet, sodass wir gem¨ aß Satz 8.5 eine L¨ osung des Knotenf¨ arbungsproblems erhalten

Satz 8.5 Sei G = (V, E) ein chordaler Graph. Falls in Schritt ( 1 ) des Verfahrens aus Zusammenfassung 8.5 (einfache Knotenf¨ arbung) das Ergebnis des perfekten Eliminationsschemas in umgekehrter Reihenfolge als Nummerierung verwendet wird, so ergibt sich eine (exakte) L¨ osung des Knotenf¨ arbungsproblems, also eine Knotenf¨ arbung mit χ(G) Farben.

Abschließend nutzen wir das Ergebnis aus Abb. 8.14 im folgenden Beispiel: Beispiel 8.4 Das perfekte Eliminationsschema angewandt auf den Graphen aus Abb. 8.14a lieferte die Nummerierung (1, 2, 3, 5, 4, 6, 0, 7). Somit haben wir die einfache Knotenf¨ arbung aus Zusammenfassung 8.5 zur Nummerierung (7, 0, 6, 4, 5, 3, 2, 1) anzuwenden, um eine (exakte) L¨ osung des Knotenf¨ arbungsproblem zu erhalten (Abb. 8.15). Offensichtlich werden in diesem Beispiel vier Farben ben¨ otigt. Zusammenfassend haben wir damit gezeigt, wie das Knotenf¨arbungsproblem in chordalen Graphen (und damit insbesondere auch in Intervallgraphen) effizient gel¨ ost werden kann. Als kleinen Ausblick skizzieren wir ein weiteres graphentheoretisches Problem, welches in chordalen Graphen dank des perfekten Eliminationsschemas effizient gel¨ost werden kann:

8.5 Knotenf¨ arbungen

215

Ausblick Gegeben sei ein ungerichteter und einfacher Graph G = (V, E). Eine Clique in G ist eine Teilmenge der Knoten von V , welche zusammen mit den zugeh¨ origen Kanten aus E einen vollst¨ andigen Graphen bilden. Dies bedeutet beispielsweise auch, dass die Nachbarschaftsmenge eines simplizialen Knotens eine Clique bildet (Abb. 8.13). Das Cliquenproblem besteht darin, eine Clique in G mit der gr¨ oßtm¨ oglichen Anzahl an Knoten zu finden. Auch dieses Problem ist ¨ ahnlich zum Knotenf¨ arbungsproblem in allgemeinen Graphen ¨ außerst schwer zu l¨ osen. In chordalen Graphen sieht dies jedoch anders aus: Die Nachbarschaftsmenge eines simplizialen Knotens, der w¨ ahrend der Durchf¨ uhrung des perfekten Eliminationsschemas gew¨ ahlt wird, ist auch eine L¨ osung des Cliquenproblems.

9 Heuristiken

Wir kennen bereits eine ganze Reihe von Algorithmen zur Bestimmung einer (exakten) Optimall¨osung eines gegebenen Minimierungsproblems. Dennoch k¨onnen in praktischen Anwendungsf¨allen keineswegs alle Optimierungsprobleme exakt gel¨ost werden, da entweder kein geeignetes Verfahren bekannt ist oder aber die Laufzeit exponentiell mit der Anzahl der Eingabedaten w¨achst. Man ist daher darauf angewiesen, im Sinne der Optimierungsaufgabe m¨oglichst gute L¨osungen in einer vertretbaren Rechenzeit zu bestimmen. Derartige Verfahren werden als Heuristiken bezeichnet, welche wir in Abschn. 9.1 zun¨ achst begrifflich einf¨ uhren. Speziell untersuchen wir in diesem Kapitel eine Heuristik, welche sich insbesondere auf kombinatorische bzw. ganzzahlige Optimierungsprobleme anwenden l¨ asst, n¨amlich genetische Algorithmen, welche wir in Abschn. 9.2 im Detail beschreiben. Schließlich evaluieren wir einen genetischen Algorithmus zur L¨osung des bekannten Problems des Handlungsreisenden in Abschn. 9.3 und pr¨ asentieren numerische Ergebnisse.

9.1 Einleitung Wir haben in diesem Buch bereits L¨ osungsverfahren kennengelernt, mit denen sich eine (exakte) Optimall¨osung eines speziellen Optimierungsproblems bestimmen l¨asst: Das Simplex-Verfahren liefert eine (exakte) Optimall¨ osung eines linearen Programms und die polynomiale Regression kann mittels QR-Zerlegung (exakt) gel¨ ost werden, um nur einige Beispiele zu nennen. Doch nicht zu allen Optimierungsproblemen lassen sich Verfahren zur Berechnung einer (exakten) Optimall¨osung formulieren, oder aber der Rechenaufwand steigt exponentiell mit der Gr¨oße der Eingabedaten. Man ist daher unter Umst¨anden auf Techniken angewiesen, welche eine L¨osung identifizieren, die im Sinne des Optimierungsproblems gut ist (m¨ oglicherweise sogar eine Optimall¨ osung, ohne dies zu wissen). Derartige Techniken werden als Heuristiken bezeichnet. Mit dem Gradientenverfahren, dem Nelder-Mead-Verfahren sowie dem Levenberg-Marquardt-

218

9 Heuristiken

Algorithmus haben wir bereits Methoden kennengelernt, welche durchaus als Heuristiken aufgefasst werden k¨onnen. Allgemeiner spricht man von einer Metaheuristik , falls sich die Technik auf eine ganze Klasse von Optimierungsproblemen anwenden l¨asst. Heuristiken liefern h¨aufig (aber bei Weitem nicht immer) sehr gute L¨osungen. Andererseits kann im Allgemeinen keine Aussage dar¨ uber getroffen werden, wie gut die identifizierte L¨ osung tats¨ achlich ist. Dies bedeutet, dass im besten Falle sogar eine Optimall¨ osung bestimmt wird, ohne dies tats¨achlich nachweisen zu k¨ onnen. Zudem spielen h¨aufig Zufallszahlen eine wesentliche Rolle, sodass Heuristiken im Allgemeinen nicht deterministisch sind. Zur Anwendung einer jeden Heuristik ben¨otigen wir zun¨ achst ein Optimierungsproblem in der bekannten Notation:

assiger Bereich P sowie eine Zielfunktion Notation 9.1 Gegeben seien ein zul¨ f : P → R. Dann ist min f (x),

sodass

x ∈ P,

das zugeh¨ orige Optimierungsproblem.

An den zul¨assigen Bereich haben wir noch keine Anforderungen gestellt. In diesem Kapitel besch¨aftigen wir uns jedoch insbesondere mit P ⊂ Zn . Eine standardisierte Vorgehensweise einer jeden Heuristik, welche mit einer (einzelnen) L¨osung im zul¨ assigen Bereich arbeitet, bietet die folgende Zusammenfassung:

Zusammenfassung 9.1 (Heuristiken) Gegeben seien ein zul¨ assiger Bereich P sowie eine Zielfunktion f : P → R. ( 1 ) Finde eine zul¨ assige Startl¨ osung x ∈ P und bestimme f (x). ( 2 ) Ver¨ andere die L¨ osung x und erzeuge daraus eine neue (zul¨assige) L¨ osung

y. Bestimme f (y). ( 3 ) Entscheide anhand von f (x) und f (y), ob x durch y ersetzt wird oder

nicht. ( 4 ) Falls ein Abbruchkriterium erf¨ ullt ist, beende das Verfahren. Anderenfalls gehe zu Schritt ( 2 ).

Das Verfahren terminiert mit einer zul¨ assigen L¨osung x, welche als gute L¨osung im Sinne des Optimierungsproblems angenommen wird.

9.2 Genetische Algorithmen

219

Nat¨ urlich bleiben zur Anwendung einer Heuristik nach diesem Grundaufbau noch jede Menge Fragen offen: ( 1 ) Wie finden wir eine zul¨ assige Startl¨osung x ∈ P in Schritt ( 1 )? ( 2 ) Wie wird die L¨ osung x in Schritt ( 2 ) ver¨ andert, um eine neue (zul¨ assige)

L¨ osung y zu erhalten? ( 3 ) Unter welchen Bedingungen sollte in Schritt ( 3 ) die L¨ osung x durch y ersetzt

werden? ( 4 ) Was ist ein sinnvolles Abbruchkriterium in Schritt ( 4 )?

Die Beantwortung dieser Fragen h¨angt sowohl vom Optimierungsproblem als auch von der Heuristik ab. Beispielsweise kann das bereits bekannte Gradientenverfahren als Heuristik zur L¨ osung nichtlinearer Optimierungsprobleme aufgefasst werden: Hier wird in der Regel zun¨ achst eine Startl¨osung x ∈ P zuf¨allig gew¨ ahlt. Anschließend wird y aus x sowie dem Gradienten ∇f (x) bestimmt.

Aufgabe 9.1 Erl¨ autere, warum der Levenberg-Marquardt-Algorithmus als Heuristik zur L¨ osung von Ausgleichsproblemen aufgefasst werden kann. Handelt es sich auch beim Nelder-Mead-Verfahren um eine Heuristik? Und was ist mit dem geometrischen Branch-and-Bound-Verfahren der globalen Optimierung?

Noch nicht diskutiert haben wir jedoch Heuristiken f¨ ur kombinatorische Optimierungsprobleme, was wir in diesem Kapitel schließlich angehen werden: Als eine zentrale Heuristik (bzw. Metaheuristik) insbesondere f¨ ur kombinatorische Probleme geben wir im Folgenden einen Einblick in genetische Algorithmen. Hierzu lassen sich diverse Literaturquellen und Lehrb¨ ucher finden; als zwei recht grundlegende Einf¨ uhrungen seien Nissen (1997) sowie Gerdes et al. (2004) erw¨ahnt. In gewohnter Art und Weise werden wir das Verfahren anhand eines praktischen Anwendungsbeispiels begleiten.

9.2 Genetische Algorithmen Die zugrunde liegende Idee vieler Heuristiken ist inspiriert durch Vorg¨ange in der Natur, so auch in diesem Abschnitt: Genetische Algorithmen nehmen sich die Evolutionstheorie zum Vorbild. Der Aufbau eines genetischen Verfahrens ist im Wesentlichen ¨ahnlich zum Vorgehen aus Zusammenfassung 9.1, wobei der haupts¨achliche Unterschied darin besteht, dass wir stets nicht nur eine L¨osung betrachten, sondern eine ganze Generation

220

9 Heuristiken

bzw. Population von zul¨ assigen L¨osungen, welche wir einzeln als Individuen bezeichnen. Ausgehend von einer Startgeneration bzw. Startpopulation k¨onnen Elternpaare Kinder erzeugen, welche anschließend eine neue Generation bilden. Zudem spielt die zuf¨ allige Mutation eine entscheidende Rolle. Wieder nehmen wir dabei an, dass ein zul¨assiger Bereich P sowie eine Zielfunktion f : P → R gegeben sind. F¨ ur alle x ∈ P gibt f (x) die Qualit¨ at der L¨osung x an, sodass die Funktion f (x) teilweise auch als Fitnessfunktion bezeichnet wird. Da jede L¨osung x h¨aufig ein Vektor ist und somit mehrere Eintr¨ age hat, wird eine L¨ osung x = (x1 , . . . , xm ) ∈ P bei genetischen Algorithmen auch als Chromosom bezeichnet. Als Beispiel diskutieren wir das bekannte Problem des Handlungsreisenden: Beispiel 9.1 (Problem des Handlungsreisenden) Gegeben seien m Punkte bzw. Orte in der Ebene durch p1 , . . . , pm ∈ R2 und bekannt sei der Abstand zwischen je zwei Orten, beispielsweise pi − pj  unter Verwendung der euklidischen Norm. Die Aufgabe des Handlungsreisenden besteht darin, alle Orte genau einmal zu besuchen und anschließend wieder zum Ausgangspunkt zur¨ uckzukehren, wobei die gesamte Reisetour m¨ oglichst kurz sein soll. Eine zul¨ assige L¨ osung x = (x1 , . . . , xm ) kann dabei als Permutation der L¨ ange m beschrieben werden, sodass die Zielfunktion bzw. Fitnessfunktion gegeben wird durch f (x) = px1 − px2  + px2 − px3  + . . . + pxm−1 − pxm  + pxm − px1 . Eine Permutation der L¨ ange m ist dabei ein Vektor der L¨ ange m, welcher aus den nat¨ urlichen Zahlen 1, . . . , m in beliebiger Reihenfolge besteht. Der zul¨ assige Bereich P ⊂ Zm ist somit die Menge aller Permutationen der L¨ ange m. Zum Verst¨ andnis der folgenden Ausf¨ uhrungen sollte das obige Beispiel im Detail verstanden sein. Als Erg¨anzung sei daher folgende Aufgabe gestellt:

Aufgabe 9.2 Fertige eine Skizze mit m = 7 Punkten in der Ebene an und bezeichne diese mit p1 bis p7 . Gib eine beliebige Permutation der L¨ ange m = 7 (und somit ein zul¨ assiges Chromosom) an und zeichne die zugeh¨ orige Tour in die Skizze ein.

Schließlich dient die folgende Aufgabe zum Verst¨andnis, warum das Problem des Handlungsreisenden meist nicht exakt gel¨ost werden kann und man daher auf Heuristiken wie genetische Algorithmen angewiesen ist:

9.2 Genetische Algorithmen

221

Aufgabe 9.3 Angenommen, die zul¨ assige Menge P besteht aus der Menge aller Permutationen der L¨ ange m, wie es beim Problem des Handlungsreisenden aus Beispiel 9.1 der Fall ist. Bestimme die Anzahl der Individuen von P in Abh¨ angigkeit von m. Berechne diese Zahl explizit f¨ ur m = 10 und m = 20.

Aufbauend auf diesen Grundgedanken k¨onnen wir genetische Algorithmen nun folgendermaßen beschreiben:

Zusammenfassung 9.2 (Genetische Algorithmen) Gegeben seien ein zul¨ assiger Bereich P sowie eine Zielfunktion f : P → R. Weiter sei s ∈ N die Populationsgr¨oße und c ∈ N die Anzahl der Kinderpaare der nachfolgenden Generationen. ( 1 ) Bestimme eine Startpopulation X = {x(1) , . . . , x(s) }, bestehend aus s

ur k = 1, . . . , s. Individuen x(1) , . . . , x(s) ∈ P , und berechne f (x(k) ) f¨

( 2 ) W¨ ahle c Elternpaare aus X, genauer

y (1) , z (1) , y (2) , z (2) , . . . , y (c) , z (c) ∈ X. ( 3 ) Erzeuge zu jedem Elternpaar y (i) und z (i) zwei Kinder a(i) , b(i) ∈ P f¨ ur

i = 1, . . . , c. ( 4 ) Mutiere ausgew¨ ahlte Kinder. ( 5 ) Bestimme f (a(i) ) sowie f (b(i) ) f¨ ur i = 1, . . . , c. ( 6 ) Erzeuge eine neue Generation X, bestehend aus s Individuen, indem (alle

oder einige) L¨osungen aus X durch Kinder ersetzt werden. ( 7 ) Falls ein Abbruchkriterium erf¨ ullt ist, beende das Verfahren. Anderenfalls gehe zu Schritt ( 2 ).

Das Verfahren terminiert mit einer Generation X, dessen beste L¨osung x ∈ X als gute L¨osung im Sinne des Optimierungsproblems angenommen wird.

Nat¨ urlich sind an dieser Stelle noch eine ganze Reihe von Frage zu kl¨aren: ( 1 ) Wie wird die Startpopulation X gew¨ ahlt? ( 2 ) Wie werden die Elternpaare ausgew¨ ahlt? ( 3 ) Wie werden Kinder aus den Eltern erzeugt?

222

9 Heuristiken

( 4 ) Was ist unter der Mutation zu verstehen? ( 5 ) Wie wird die neue Generation gew¨ ahlt? ( 6 ) Was ist ein geeignetes Abbruchkriterium?

Zu all diesen Fragen sind in der Literatur unz¨ahlige Vorschl¨age und Alternativen zu finden. H¨aufig h¨ angt die genaue Vorgehensweise stark mit der zu l¨ osenden Klasse von Optimierungsproblemen bzw. mit einer sehr spezifischen Aufgabenstellung zusammen. Aus diesen Gr¨ unden werden wir gar nicht erst versuchen, allgemeing¨ ultige Antworten zu geben. Stattdessen schlagen wir Antworten unter der Annahme vor, dass der zul¨assige Bereich P gleich der Menge aller Permutationen der L¨ange m ist. Gedanklich sind wir dabei stets beim Problem des Handlungsreisenden aus Beispiel 9.1. 9.2.1 Wahl der Startpopulation Im einfachsten Falle besteht die Bestimmung der Startpopulation aus einer rein zuf¨alligen Wahl von c Individuen der zul¨ assigen Menge P . Je nach Fragestellung k¨onnen hier jedoch auch andere Strategien geeignet sein. Beim Problem des Handlungsreisenden k¨ onnen geeignete Individuen der Startpopulation beispielsweise auch folgendermaßen bestimmt werden: Ausgehen von einem beliebigen Punkt pi wird die Permutation derart erzeugt, dass der n¨achste Punkt der Tour jeweils derjenige ist, der zum aktuellen Punkt den kleinsten Abstand hat (und zuvor noch nicht gew¨ahlt wurde). Durch diese Vorgehensweise erhalten wir Permutationen, die meist zu einem deutlich besseren Zielfunktionswert im Vergleich zu einer rein zuf¨ alligen Permutation f¨ uhren (insbesondere dann, falls m vergleichsweise groß ist). 9.2.2 Wahl der Elternpaare Auch die Elternpaare k¨onnten im einfachsten Falle rein zuf¨ allig gew¨ ahlt werden. Aber inspiriert durch die Evolutionstheorie sollten Individuen mit einer besseren Qualit¨at (d.h. mit einem kleineren Zielfunktionswert) bevorzugt werden, denn auf lange Sicht gesehen u ¨berleben vorwiegend Individuen mit m¨oglichst guten Eigenschaften. Wie diese Idee auch auf genetische Algorithmen u ¨bertragen werden kann, skizzieren wir als Ausblick: allig gew¨ ahlt, Ausblick Im einfachsten Falle wird ein Elternpaar y und z rein zuf¨ ahlen wir d.h., zur Population X = {x(1) , . . . , x(s) } w¨     mit u = s · ru und v = s · rv . y = x(u) und z = x(v)

223

9.2 Genetische Algorithmen

Dabei sind ru und rv zwei Zufallszahlen aus dem Intervall (0, 1], und a ∈ Z steht f¨ ur die kleinste ganze Zahl gr¨ oßer oder gleich a ∈ R. Um bei der Wahl der Elternpaare Individuen mit einem kleinen Zielfunktionswert zu bevorzugen, machen wir die Annahme, dass die Menge X bezogen auf die Zielfunktionswerte aufsteigend sortiert ist, sodass f (x(i) ) ≤ f (x(j) ) f¨ ur i ≤ j gilt. Nun w¨ ahlen wir beispielsweise     y = x(u) und z = x(v) mit u = s · ru2 und v = s · rv2 . Durch das Quadrieren der Zufallszahlen ru und rv werden Individuen x(i) mit einer besseren Qualit¨ at statistisch bevorzugt. Im Exponenten kann dabei statt der t = 2 auch jede andere Zahl t ≥ 1 gew¨ ahlt werden. Schließlich sei bemerkt, dass es neben dem im Ausblick pr¨ asentierten Verfahren nat¨ urlich diverse andere M¨ oglichkeiten gibt, Individuen mit besseren Qualit¨ aten zu bevorzugen. Algorithmisch l¨asst sich der obige Vorschlag jedoch sehr einfach implementieren.

9.2.3 Erzeugung der Kinder Der wichtigste Teil eines jeden genetischen Algorithmus ist die Erzeugung der Kinder a ∈ P und b ∈ P aus einem Elternpaar y ∈ P und z ∈ P . Auch hierbei dient die Natur als Vorbild: Die grundlegende Idee besteht darin, dass ein Segment des Mutterchromosoms y und ein Segment gleicher L¨ange des Vaterchromosoms z vertauscht werden. Am Beispiel von Permutationen kann dies jedoch zu unzul¨assigen L¨ osungen f¨ uhren: Beispiel 9.2 Angenommen, es handelt sich bei den Elternchromosomen um die folgenden Permutationen der L¨ ange m = 5: y = (3, 2, 5, 1, 4)

und

z = (2, 4, 1, 5, 3)

Nun wird das Vatersegment (3, 2, 5) und das Muttersegment (1, 5, 3) vertauscht. Dadurch erhalten wir die Kinder a = (1, 5, 3, 1, 4)

und

b = (2, 4, 3, 2, 5).

Bei beiden Kindern handelt es sich nicht um eine Permutation und damit um keine zul¨ assige L¨ osung. Wie wir an diesem Beispiel sehen, wird ein Reparaturmechanismus ben¨otigt, falls die Kinder keine zul¨ assigen L¨osungen bzw. Permutationen ergeben. Eine dieser M¨oglichkeiten ist das folgende dreistufige Verfahren:

224

9 Heuristiken

( 1 ) Die zu vertauschenden (zuf¨ allig gew¨ ahlten) Elternsegmente werden u ¨bertra-

gen. ( 2 ) Alle u ¨brigen Positionen, f¨ ur die es keine Konflikte gibt, werden aufgef¨ ullt. ( 3 ) Die verbleibenden Elemente werden so gew¨ ahlt, dass sie gegen die in ihren

Eltern an dieser Position stehenden getauscht werden. Viel einfacher l¨ asst sich das Verfahren anhand eines Beispiels nachvollziehen: Beispiel 9.3 Das Vorgehen zur Erzeugung zweier Kinder a und b aus einem Elternpaar y und z kann Abb. 9.1 entnommen werden. Nach den drei Teilschritten erhalten wir mit den Kindern a und b wie gew¨ unscht zwei zul¨ assige L¨ osungen bzw. Permutationen. Wir beenden die Beschreibung zur Erzeugung von Kindern mit einer kleinen Aufgabe:

uhre das oben beschriebene Verfahren zur Erzeugung von Kindern Aufgabe 9.4 F¨ anhand der Eltern y und z aus Abb. 9.2 durch.

9.2.4 Vorgehen zur Mutation In der Natur kann es vorkommen, dass im Erbgut der Kinder zuf¨ allige und dauerhafte Ver¨anderungen auftreten. Dieser Vorgang wird als Mutation bezeichnet und soll auch bei der Anwendung genetischer Algorithmen ber¨ ucksichtigt werden. Hierzu schlagen wir folgende Vorgehensweise vor: Handelt es sich bei den Kindern um Chromosomen in Form einer Permutation, so k¨onnen mit einer gewissen Wahrscheinlichkeit zwei zuf¨allig gew¨ ahlte Eintr¨ age miteinander vertauscht werden. Offensichtlich handelt es sich anschließend weiterhin um eine Permutation und damit um ein zul¨ assiges Individuum. 9.2.5 Wahl der nachfolgenden Generation Grunds¨atzlich gibt es zwei Strategien zur Wahl einer nachfolgenden Generation: ( 1 ) Es werden nur einige der s Individuen der bestehenden Population durch

aktuell erzeugte Kinder ersetzt. ( 2 ) Es werden alle s Individuen der bestehenden Population durch aktuell er-

zeugte Kinder ersetzt.

225

9.2 Genetische Algorithmen

y z

4 9

9 8

1 2

6 4

10 6

3 11

7 3

12 12

2 10

11 7

5 1

8 5

a Chromosomen (Permutationen) des Elternpaares y und z mit hervorgehobenen (zuf¨ allig gew¨ ahlten) Segmenten gleicher L¨ ange

a b

3

7

2 2

12

4 11

6

11

3

b Kinder a und b nach dem ersten Teilschritt: Es wurden die Segmente der Elternchromosomen vertauscht

a b

9

9 8

1 3

7

10 12

2 2

4 11

6

11 10

3

5 1

8 5

c Kinder a und b nach dem zweiten Teilschritt: Es wurden alle Positionen der Elten-Chromosomen u ¨bertragen, die zu keinem Konflikt f¨ uhren, sodass weiterhin eine zul¨ assige L¨ osung (Permutation) m¨ oglich ist

a b

7 9

9 8

1 3

12 7

10 12

2 2

4 11

6 6

11 10

3 4

5 1

8 5

d Kinder a und b nach dem dritten Teilschritt: Noch nicht besetzt Positionen werden durch die Zahl ersetzt, welche im Elternchromosom an der Stelle der nun zum Konflikt f¨ uhrenden Zahl steht

Abb. 9.1 Beispiel zur Erzeugung zweier Kinder a und b aus einem Elternpaar y und z

y z

1 2

6 3

3 7

4 4

7 1

5 5

2 6

Abb. 9.2 Weiteres Beispiel zur Erzeugung zweier Kinder aus einem Elternpaar y und z. Die zu vertauschenden Segmente sind bereits hervorgehoben

226

9 Heuristiken

Welche dieser beiden Strategien sinnvoller ist, h¨angt insbesondere auch von der Populationsgr¨oße s sowie der Anzahl der Kinderpaare c ab: Die zweite Strategie ist beispielsweise nur dann sinnvoll, falls c (deutlich) gr¨oßer als s ist. Grunds¨atzlich schlagen wir vor, die Vereinigung der Menge der s Individuen der bestehenden Population sowie der Menge der insgesamt 2 · c erzeugten Kinder zu bilden:   x(1) , x(2) , . . . , x(s) , a(1) , b(1) , a(2) , b(2) , . . . , a(c) , b(c) F¨ ur die nachfolgende Generation w¨ahle nun aus dieser Menge die Teilmenge der s Individuen mit den besten Zielfunktionswerten. Diese Strategie wird auch als Survival of the Fittest bezeichnet. 9.2.6 Geeignetes Abbruchkriterium Auch bei der Wahl eines Abbruchkriteriums sind unterschiedliche Strategien denkbar: Im einfachsten Falle terminiert das Verfahren nach einer zuvor definierten Anzahl an Iterationen bzw. Generationen. Eine weitere M¨ oglichkeit w¨are, dass das Verfahren nach einer gewissen Laufzeit abgebrochen wird. Eine anspruchsvollere Alternative w¨ are ein Kriterium, welches die Qualit¨aten der Individuen der Generationen untereinander vergleicht.

Damit haben wir alle sechs Fragen zur Durchf¨ uhrung des genetischen Algorithmus aus Zusammenfassung 9.2, bezogen auf Permutationen, gekl¨art. Als Transferaufgabe sind die Kernfragen f¨ ur einen anderen zul¨ assigen Bereich zu beantworten:

assige Bereich P besteht nicht aus der Menge aller Aufgabe 9.5 Angenommen, der zul¨ Permutationen der L¨ ange m wie zuvor, sondern es gelte P = {0, 1}m , sodass jedes Chromosom ein Vektor der L¨ ange m mit den Eintr¨ agen 0 und 1 ist (Bin¨ ardarstellung). Wie k¨ onnen hierzu die Fragen nach der Auswahl der Elternpaare, dem Erzeugen von Kindern, der Mutation sowie der Auswahl der neuen Generation beispielhaft beantwortet werden?

9.3 Anwendungsbeispiel Handlungsreisender Schließlich wollen wir in diesem Abschnitt den genetischen Algorithmus aus dem vorhergehenden Abschnitt anhand des Problems des Handlungsreisenden (Beispiel 9.1) numerisch evaluieren.

227

9.3 Anwendungsbeispiel Handlungsreisender

Populationsgr¨oße s Anzahl der Kinderpaare c Mutationsrate r Anzahl der Iterationen u

50 400 0, 02 100

Tab. 9.1 Parameter zur Durchf¨ uhrung des genetischen Algorithmus zur L¨ osung des Problems des Handlungsreisenden. Als Eingabedaten wurden m = 48 Orten gew¨ ahlt (Abb. 9.3a)

Zur genauen Anwendung des Verfahrens halten wir uns an s¨amtliche Vorschl¨ age aus Abschn. 9.2, wobei wir einige Punkte noch genauer spezifizieren m¨ ussen: ( 1 ) Die Startpopulation X wird in allen folgenden Berechnungen rein zuf¨ allig

gew¨ahlt, sodass X anf¨ anglich aus s zuf¨allig generierten Permutationen besteht. ( 2 ) Bei der Mutation haben wir uns f¨ ur folgende Vorgehensweise entschieden:

In Abh¨angigkeit einer Mutationsrate r ∈ [0, 1] werden bei allen Kindern jeweils mit einer Wahrscheinlichkeit von r zwei (zuf¨ allig gew¨ ahlte) Positionen vertauscht. ( 3 ) Schließlich wird als Abbruchkriterium eine feste Anzahl u an Iterationen de-

finiert. Zusammenfassend sind somit vor der Durchf¨ uhrung des genetischen Algorithmus zur L¨osung des Problems des Handlungsreisenden vier Parameter anzugeben: die Populationsgr¨oße s, die Anzahl der Kinderpaare c, die Mutationsrate r sowie die Anzahl an Iterationen u. Als explizites Anwendungsbeispiel haben wir eine Instanz des Problems des Handlungsreisenden mit m = 48 Orten erzeugt (Abb. 9.3a). Um die folgenden numerischen Ergebnisse besser einordnen zu k¨onnen, zeigt Abb. 9.3b zun¨achst eine Tour einer rein zuf¨ allig gew¨ ahlten Permutation mit einem Zielfunktionswert von u ¨ber 1225. Abb. 9.3c hingegen veranschaulicht die (eindeutige) Optimall¨osung mit einem Zielfunktionswert von etwa 335, 13. Nun haben wir den genetischen Algorithmus unter Verwendung der in Tab. 9.1 angegebenen Parameter durchgef¨ uhrt. Als Ergebnis liefert uns der Algorithmus eine Tour mit einem zugeh¨ origen Zielfunktionswert von ungef¨ahr 346, 53 (Abb. 9.3d). Wir erhalten damit ein Ergebnis, dessen Zielfunktionswert erstaunlicherweise um nur ca. 3 % vom Zielfunktionswert der Optimall¨osung abweicht (relativ). Zum Vergleich: Die zuf¨ allig gew¨ ahlte Tour aus Abb. 9.3b weicht (relativ) um u ¨ber 260 % vom Zielfunktionswert der Optimall¨ osung ab.

228

9 Heuristiken

a Eingabedaten: m = 48 Orte

b Tour mit Zielfunktionswert 1225, 166871

c Tour mit Zielfunktionswert 335, 134388

d Tour mit Zielfunktionswert 346, 531067

Abb. 9.3 Explizites Beispiel zum Problem des Handlungsreisenden. a veranschaulicht die Eingabedaten der m = 48 Orte. Eine rein zuf¨ allig gew¨ ahlte Tour mit einem Zielfunktionswert von u ¨ ber 1225 kann b entnommen werden. Die Optimall¨ osung mit einem Zielfunktionswert von etwa 335, 13 ist in c dargestellt. Schließlich zeigt d das Ergebnis eines Durchlaufs des genetischen Algorithmus unter Verwendung der Parameter aus Tab. 9.1

Aufgabe 9.6 Vergleiche Abb. 9.3c mit Abb. 9.3d. Auf welchen Teilabschnitten sind die beiden Touren identisch, und auf welchen Teilabschnitten sind die beiden Touren unterschiedlich?

Anhand derselben Eingabedaten wie zuvor (Abb. 9.3a) wurde anschließend der Einfluss der vier Parameter systematisch untersucht. Hierzu wurde jeweils einer der vier Parameter variiert, w¨ ahrend die u ¨brigen drei Parameter konstant blieben (jeweils mit den Werten aus Tab. 9.1). Zun¨ achst zeigt Abb. 9.4 f¨ ur jeden Durchlauf den Zielfunktionswert des Ergebnisses des genetischen Algorithmus in Abh¨ angigkeit der Populationsgr¨oße (Abb. 9.4a) sowie in Abh¨angigkeit der Anzahl an Kinderpaaren (Abb. 9.4b). Die Populati-

229

9.3 Anwendungsbeispiel Handlungsreisender

900

Zielfunktionswert

800 700 600 500 400 300

0

30

20

10

40

50

60

80

70

90

100

Populationsgroesse

a Bester Zielfunktionswert in Abh¨angigkeit von der Populationsgr¨oße

900

Zielfunktionswert

800 700 600 500 400 300

0

50

100

150

200

250

300

350

400

Anzahl der Kinderpaare

b Bester Zielfunktionswert in Abh¨angigkeit von der Anzahl an Kinderpaaren Abb. 9.4 Dargestellt ist der Zielfunktionswert des Ergebnisses eines Durchlaufs des genetischen Algorithmus jeweils in Abh¨ angigkeit der vier Parameter aus Tab. 9.1. Dabei wurde in a sowie in b jeweils einer der vier Parameter variiert, die u ¨ brigen drei Parameter wurden auf die Werte gem¨ aß Tab. 9.1 gesetzt

onsgr¨oße hat dabei einen u ¨berraschend geringen Einfluss auf den jeweils besten Zielfunktionswert. Die Anzahl der Kinderpaare hingegen ist f¨ ur das Ergebnis sehr entscheidend: Je mehr Kinder pro Generation bzw. Iteration erzeugt werden, desto besser wird der Zielfunktionswert (im Mittel). Schließlich wurde auch die Mutationsrate (Abb. 9.5a) sowie die Anzahl der Generationen bzw. Iterationen (Abb. 9.5b) variiert. Erwartungsgem¨ aß liefert eine gr¨oßere Anzahl an Iterationen auch ein (im Mittel) besseres Ergebnis, wobei in unserem Fall mehr als 80 Iterationen zu keiner signifikanten Verbesserung des Ergebnisses f¨ uhren. Eine zu große Mutationsrate hingegen wirkt sich eher negativ auf das Ergebnis aus.

230

9 Heuristiken

900

Zielfunktionswert

800 700 600 500 400 300

0.0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

1.0

70

80

90

100

Mutationsrate

a Bester Zielfunktionswert in Abh¨angigkeit von der Mutationsrate

900

Zielfunktionswert

800 700 600 500 400 300

0

10

20

30

40

50

60

Anzahl der Iterationen

b Bester Zielfunktionswert in Abh¨angigkeit von der Anzahl an Iterationen Abb. 9.5 Dargestellt ist der Zielfunktionswert des Ergebnisses eines Durchlaufs des genetischen Algorithmus jeweils in Abh¨ angigkeit der vier Parameter aus Tab. 9.1. Dabei wurde in a sowie in b jeweils einer der vier Parameter variiert, die u ¨ brigen drei Parameter wurden auf die Werte gem¨ aß Tab. 9.1 gesetzt

Literatur

E.M.L. Beale. 1955. Cycling in the dual simplex algorithm. Naval Research Logistics Quarterly, 2: 269–275. R.G. Bland. 1977. New finite pivoting rules for the simplex method. Mathematics of Operations Research, 2: 103–107. R. Blanquero, E. Carrizosa. 2009. Continuous location problems and big triangle small triangle: Constructing better bounds. Journal of Global Optimization, 45: 389–402. K.-H. Borgwardt. 1982. The average number of pivot steps required by the simplexmethod is polynomial. Zeitschrift f¨ ur Operations Research, 26: 157–177. J. Brimberg, H. Juel, A. Sch¨obel. 2009. Locating a minisum circle in the plane. Discrete Applied Mathematics, 157: 901–912. V. Chv´atal. 1983. Linear Programming. W.H. Freeman and Company, New York. E.W. Dijkstra. 1959. A note on two problems in connexion with graphs. Numerische Mathematik, 1: 269–271. W. Domschke, A. Drexl, R. Klein, A. Scholl. 2015. Einf¨ uhrung in Operations Research. Springer, Berlin, 9. Auflage. Z. Drezner, H.W. Hamacher. 2001. Location Theory – Applications and Theory. Springer, New York. Z. Drezner, S. Nickel. 2009a. Constructing a DC decomposition for ordered median problems. Journal of Global Optimization, 45: 187–201. Z. Drezner, S. Nickel. 2009b. Solving the ordered one-median problem in the plane. European Journal of Operational Research, 195: 46–61. Z. Drezner, A. Suzuki. 2004. The big triangle small triangle method for the solution of nonconvex facility location problems. Operations Research, 52: 128–135. M. Ehrgott. 2005. Multicriteria Optimization. Springer, Berlin, 2. Auflage. L.R. Ford, D.R. Fulkerson. 1956. Maximal flow through a network. Canadian Journal of Mathematics, 8: 399–404.

232

Literatur

L.R. Ford, D.R. Fulkerson. 1962. Flows in Networks. Princeton University Press, New Jersey. I. Gerdes, F. Klawonn, R. Kruse. 2004. Evolution¨ are Algorithmen: Genetische Algorithmen, Strategien und Optimierungsverfahren, Beispielanwendungen. Vieweg, Wiesbaden. R.E. Gomory. 1958. Outline of an algorithm for integer solutions to linear programs. Bulletin of the American Mathematical Society, 64: 275–278. R.E. Gomory. 2002. Early integer programming. Operations Research, 50: 78–81. H.W. Hamacher. 1995. Mathematische Verfahren der Planaren Standortplanung. Vieweg Verlag, Braunschweig. H.W. Hamacher, K. Klamroth. 2006. Lineare Optimierung und Netzwerkoptimierung. Vieweg, Wiesbaden, 2. Auflage. H.W. Hamacher, S. Nickel. 1996. Multicriteria planar location problems. European Journal of Operational Research, 94: 66–86. E. Hansen. 1992. Global Optimization Using Interval Analysis. Marcel Dekker, New York. R. Horst, N.V. Thoai. 1999. DC programming: Overview. Journal of Optimization Theory and Applications, 103: 1–43. R. Horst, H. Tuy. 1996. Global Optimization: Deterministic Approaches. Springer, Berlin, 3. Auflage. F. Jarre, J. Stoer. 2004. Optimierung. Springer, Berlin. F. John. 2014. Traces and emergence of nonlinear programming. In: G. Giorgi, T.H. KjeldsenSpringer (Hrsg.). Extremum Problems with Inequalities as Subsidiary Conditions. Springer, Basel, 197–215. J. Kallrath. 2012. Gemischt-ganzzahlige Optimierung: Modellierung in der Praxis. Springer Spektrum, Wiesbaden, 2. Auflage. N. Karmarkar. 1984. A new polynomial-time algorithm for linear programming. Combinatorica, 4: 373–395. V. Klee, G.J. Minty. 1972. How good is the simplex algorithm? Inequalities, 3: 159–175. A. Koberstein, U.H. Suhl. 2007. Progress in the dual simplex algorithm for solving large scale LP problems: practical dual phase 1 algorithms. Computational Optimization and Applications, 37: 49–65. S.O. Krumke, H. Noltemeier. 2005. Graphentheoretische Konzepte und Algorithmen. Vieweg + Teubner, Wiesbaden.

Literatur

233

J. Kruskal. 1956. On the shortest spanning subtree and the traveling salesman problem. Proceedings of the American Mathematical Society, 7: 48–50. H.W. Kuhn, A.W. Tucker. 1951. Nonlinear programming. Proceedings of the 2nd Berkeley Symposium, University of California Press, 481–492. J.C. Lagarias, J.A. Reeds, M.H. Wright, P.E. Wright. 1998. Convergence properties of the Nelder-Mead simplex method in low dimensions. SIAM Journal of Optimization, 9: 112–147. K. Levenberg. 1944. A method for the solution of certain problems in least squares. Quarterly of Applied Mathematics, 2: 164–168. D. Marquardt. 1963. An algorithm for least-squares estimation of nonlinear parameters. SIAM Journal on Applied Mathematics, 11: 431–441. D. Marx. 2004. Graph colouring problems and their applications in scheduling. Periodica Polytechnica Electrical Engineering, 48: 11–16. S. Mehrotra. 1992. On the implementation of a primal-dual interior point method. SIAM Journal on Optimization, 2: 575–601. K. Miettinen. 1998. Nonlinear Multiobjective Optimization. Kluwer Academic, Boston. C.E. Miller, A.W. Tucker, R.A. Zemlin. 1960. Integer programming formulations and traveling salesman problems. Journal of the Association for Computing Machinery, 7: 326–329. R. Nehse, A. G¨opfert. 1990. Vektoroptimierung: Theorie, Verfahren und Anwendungen. Teubner, Leipzig. J.A. Nelder, R. Mead. 1965. A simplex method for function minimization. Computer Journal, 7: 308–313. G. Nemhauser, L. Wolsey. 1999. Integer and Combinatorial Optimization. Wiley Interscience, New York. W. Niemeier. 2008. Ausgleichungsrechnung – Statistische Auswertemethoden. De Gruyter, Berlin, 2. Auflage. V. Nissen. 1997. Einf¨ uhrung in evolution¨ are Algorithmen: Optimierung nach dem Vorbild der Evolution. Vieweg + Teubner, Wiesbaden. G. Owen. 1982. Game Theory. Academic Press Inc, San Diego, 2. Auflage. F. Plastria. 1992. GBSSS: The generalized big square small square method for planar single-facility location. European Journal of Operational Research, 62: 163–174.

234

Literatur

H. Ratschek, J. Rokne. 1988. New Computer Methods for Global Optimization. Ellis Horwood, Chichester. R.T. Rockafellar. 1970. Convex Analysis. Princeton University Press, New Jersey. A. Sch¨obel, D. Scholz. 2010a. The big cube small cube solution method for multidimensional facility location problems. Computers & Operations Research, 37: 115–122. A. Sch¨obel, D. Scholz. 2010b. The theoretical and empirical rate of convergence for geometric branch-and-bound methods. Journal of Global Optimization, 48: 473–495. D. Scholz. 2012a. Deterministic Global Optimization: Geometric Branch-and-bound Methods and Their Applications. Springer, New York. D. Scholz. 2012b. Theoretical rate of convergence for interval inclusion functions. Journal of Global Optimization, 53: 749–767. A. Schrijver. 1986. Theory of Linear and Integer Programming. John Wiley and Sons, Chichester. H. Tuy, F. Al-Khayyal, F. Zhou. 1995. A D.C. optimization method for single facility location problems. Journal of Global Optimization, 7: 209–227. S. Winter. 2015. Grundz¨ uge der Spieltheorie: Ein Lehr- und Arbeitsbuch f¨ ur das (Selbst-)Studium. Springer Gabler, Heidelberg. S.J. Wright. 1997. Primal-Dual Interior-Point Methods. Society for Industrial and Applied Mathematics (SIAM), Philadelphia.

Index A

D

Ausgangskanten . . . . . . . . . . . . . . . 200 Ausgangsproblem . . . . . . . . . . . . . . . 30 Ausgangsprogramm . . . . . . . . . 83, 91 Ausgangstableau . . . . . . . . . . . . . . . . 25 Ausgleichsproblem . . . . . . . . . . . . . . . 5 Ausgleichsrechnung . . . . . . . . . . . . 150 Ausreißer . . . . . . . . . . . . . . . . . . . . . . 162

DC-Funktion . . . . . . . . . . . . . . . . . . 139 DC-Zerlegung . . . . . . . . . . . . . . . . . 139 degeneriert . . . . . . . . . . . . . . . . . . . . . 23 Digraph . . . . . . . . . . . . . . . . . . . . . . . 190 Dijkstra . . . . . . . . . . . . . . . . . . . . . . . 198 Downhill-Simplex-Verfahren . . . 121 Duales . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Dualit¨ at schwache . . . . . . . . . . . . . . . . . . . 38 starke . . . . . . . . . . . . . . . . . . . . . . 38 Durchmesser . . . . . . . . . . . . . . . . . . . 128

B Basis . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Basiskosten . . . . . . . . . . . . . . . . . . . . . 13 Basisl¨ osung . . . . . . . . . . . . . . . . . . . . . 14 degenerierte . . . . . . . . . . . . . . . . 23 entartete . . . . . . . . . . . . . . . . . . . 23 zul¨ assige . . . . . . . . . . . . . . . . . . . 14 Basisvariablen . . . . . . . . . . . . . . . . . . 13 Basiswechsel . . . . . . . . . . . . . . . . . . . . 20 dualer . . . . . . . . . . . . . . . . . . . . . . 40 Baum . . . . . . . . . . . . . . . . . . . . . . . . . 193 spannender . . . . . . . . . . . . . . . . 193 Benson-Methode . . . . . . . . . . . . . . . 180 bikriterielle Optimierung . . . . . . . 173 Blands Pivotregel . . . . . . . . . . . . . . . 23 Boolsches Programm . . . . . . . . . . . . 75 Box . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 Branch-and-Bound-Verfahren . . . 80 C CG-Verfahren . . . . . . . . . . . . . . . . . chordaler Graph . . . . . . . . . . . . . . . chromatische Zahl . . . . . . . . . . . . . Clique . . . . . . . . . . . . . . . . . . . . . . . . . Constraint-Methode . . . . . . . . . . .

107 209 204 215 179

E effizient . . . . . . . . . . . . . . . . . . . . . . . . 172 schwach . . . . . . . . . . . . . . . . . . . 175 Eingangskanten . . . . . . . . . . . . . . . . 200 Einmaldarstellung . . . . . . . . . . . . . 137 Eliminationsbedingungen Subtour . . . . . . . . . . . . . . . . . . . . 95 Eliminationsschema perfektes . . . . . . . . . . . . . . . . . . 212 entartet . . . . . . . . . . . . . . . . . . . . . . . . . 23 F F¨arbung . . . . . . . . . . . . . . . . . . . . . . . 204 first in first out . . . . . . . . . . . . . 84, 86 Fitnessfunktion . . . . . . . . . . . . . . . . 220 Fluss . . . . . . . . . . . . . . . . . . . . . . . . . . 200 maximaler . . . . . . . . . . . . . . . . 201 zul¨ assiger . . . . . . . . . . . . . . . . . 200 Flusserhaltung . . . . . . . . . . . . . . . . . 200 Ford und Fulkerson . . . . . . . . . . . . 203 Fritz-John-Bedingungen . . . . . . . 117 Fritz-John-Punkt . . . . . . . . . . . . . . 117

236

Sachverzeichnis

G ganzzahliges Programm . . . . . . . . . 72 gemischt . . . . . . . . . . . . . . . . . . . 72 gemischte Strategien . . . . . . . . . . . . 65 Generation . . . . . . . . . . . . . . . . 219, 220 genetische Algorithmen . . . . . . . . 219 Gewichtete-Summen-Methode . . 176 Gewichtung . . . . . . . . . . . . . . . . . . . . 192 globales Minimum . . . . . . . . . . . . . 100 Gomory-Schnittebene . . . . . . . . . . . 88 Gradient . . . . . . . . . . . . . . . . . . . . . . . 102 Gradientenverfahren . . . . . . . . . . . 103 Graph . . . . . . . . . . . . . . . . . . . . . . . . . 190 chordaler . . . . . . . . . . . . . . . . . . 209 einfacher . . . . . . . . . . . . . . . . . . 191 gerichteter . . . . . . . . . . . . . . . . 190 planarer . . . . . . . . . . . . . . . . . . . 207 ungerichteter . . . . . . . . . . . . . . 190 vollst¨andiger . . . . . . . . . . . . . . 208 zusammenh¨angender . . . . . . 192 H Halbordnung . . . . . . . . . . . . . . . . . . 171 Handlungsreisender Problem . . . . . . . . . . . . . . . 94, 220 Hauptsatz der linearen Optimierung . . . 16 Hesse-Matrix . . . . . . . . . . . . . . . . . . 102 Heuristik . . . . . . . . . . . . . . . . . . . . . . 217 Hilfsproblem . . . . . . . . . . . . . . . . . . . . 30 I Idealpunkt . . . . . . . . . . . . . . . . . . . . . 182 Individuen . . . . . . . . . . . . . . . . . . . . . 220 Innere-Punkte-Verfahren . . . . . . . . 49 Intervallarithmetik . . . . . . . . . . . . . 132 Intervallfunktion . . . . . . . . . . . . . . . 134 Intervallgraph . . . . . . . . . . . . . . . . . 210 Intervalloperation . . . . . . . . . . . . . . 133 Inzidenzmatrix . . . . . . . . . . . . . . . . 195 K Kanten . . . . . . . . . . . . . . . . . . . . . . . . 190

parallele . . . . . . . . . . . . . . . . . . 191 Karush-Kuhn-Tucker Bedingungen . . . . . . . . . . . . . . 119 Punkt . . . . . . . . . . . . . . . . . . . . . 119 kleinste Quadrate . . . . . . . . . . . . . . 150 Knoten . . . . . . . . . . . . . . . . . . . . . . . . 190 benachbarte . . . . . . . . . . . . . . . 192 Nachfolger . . . . . . . . . . . . . . . . 197 Vorg¨ anger . . . . . . . . . . . . . . . . . 197 Knotenf¨ arbung . . . . . . . . . . . . . . . . 204 Knotengrad . . . . . . . . . . . . . . . . . . . . 205 komplement¨arer Schlupf . . . . . . . . 39 Kompromiss-Methode . . . . . . . . . 182 konkave Funktion . . . . . . . . . . . . . . 108 Konvergenzrate . . . . . . . . . . . . . . . . 130 empirische . . . . . . . . . . . . . . . . 142 konvexe Funktion . . . . . . . . . . . . . . 108 konvexe H¨ ulle . . . . . . . . . . . . . . . . . . 115 konvexe Menge . . . . . . . . . . . . . . . . 108 Korrektor-Schritt . . . . . . . . . . . . . . . 57 Kostenvektor . . . . . . . . . . . . . . . . . . . . 2 kreisfrei . . . . . . . . . . . . . . . . . . . . . . . 193 Kruskal . . . . . . . . . . . . . . . . . . . . . . . . 194 Kurz-Schritt-Verfahren . . . . . . . . . . 54 L L¨osung . . . . . . . . . . . . . . . . . . . . . . . . . . 2 last in first out . . . . . . . . . . . . . . . . . . 84 Levenberg-Marquardt . . . . . . . . . . 158 lineare Regression . . . . . . . . . . 45, 151 lineares Ausgleichsproblem . . . . . . . 6 lineares Programm . . . . . . . . . . . . . . . 2 duales . . . . . . . . . . . . . . . . . . . . . . 37 in allgemeiner Form . . . . . . . . . 3 in Standardform . . . . . . . . . . . . . 2 primales . . . . . . . . . . . . . . . . . . . . 37 unbeschr¨anktes . . . . . . . . . . . . . 15 unzul¨ assiges . . . . . . . . . . . . . . . . 15 Lipschitz-Konstante . . . . . . . . . . . 131 Lipschitz-Schrankenvorschrift . . 131 Lipschitz-stetig . . . . . . . . . . . . . . . . 131 logistische Funktion . . . . . . . . . . . . 161 lokales Minimum . . . . . . . . . . . . . . 100 LP-Relaxation . . . . . . . . . . . . . . . . . . 72

237

Sachverzeichnis

M Maximalgrad . . . . . . . . . . . . . . . . . . 206 Median-Kreis-Problem . . . . . . . . . 145 Metaheuristik . . . . . . . . . . . . . . . . . . 218 Min-Max-Satz . . . . . . . . . . . . . . . . . . 66 Minimum globales . . . . . . . . . . . . . . . . . . . 100 lokales . . . . . . . . . . . . . . . . . . . . 100 Mittelpunkt . . . . . . . . . . . . . . . . . . . 128 Modellfunktion . . . . . . . . . . . . . . . . 149 multikriterielle Optimierung . . . 170 Mutation . . . . . . . . . . . . . . . . . 220, 224 Mutationsrate . . . . . . . . . . . . . . . . . 227

Phase 1 . . . . . . . . . . . . . . . . . . . . . . . . . 31 Phase 2 . . . . . . . . . . . . . . . . . . . . . . . . . 32 Pivotregeln . . . . . . . . . . . . . . . . . . . . . 22 planar . . . . . . . . . . . . . . . . . . . . . . . . . 207 Polyeder . . . . . . . . . . . . . . . . . . . . . . . . . 2 Population . . . . . . . . . . . . . . . . . . . . . 220 Pr¨ adiktor-Korrektor-Verfahren . . 59 Pr¨ adiktor-Schritt . . . . . . . . . . . . . . . 57 Primales . . . . . . . . . . . . . . . . . . . . . . . . 37 Produktionsproblem . . . . . . . . . . 4, 74 Q Quelle . . . . . . . . . . . . . . . . . . . . . . . . . 200

N

R

Nachbarschaftsmenge . . . . . . . . . . 211 Nachfolger . . . . . . . . . . . . . . . . . . . . . 197 nat¨ urliche Intervallerweiterung . 135 Nebenbedingungen . . . . . . . . . . . . . . . 2 Nelder-Mead-Verfahren . . . . . . . . 120 Nichtbasis . . . . . . . . . . . . . . . . . . . . . . 12 Nichtbasisanteil . . . . . . . . . . . . . . . . . 13 Nichtbasiskosten . . . . . . . . . . . . . . . . 13 Nichtbasisvariablen . . . . . . . . . . . . . 13 nichtdominiert . . . . . . . . . . . . . . . . . 172 notwendige Kriterien . . . . . . . . . . 102 Nullsummenspiel . . . . . . . . . . . . . . . . 63

R¨ uckkante . . . . . . . . . . . . . . . . . . . . . 201 relativ Inneres . . . . . . . . . . . . . . . . . 179 Residualgraphen . . . . . . . . . . . . . . . 202 Residuen . . . . . . . . . . . . . . . . . . . . . . 151 Rucksackproblem . . . . . . . . . . . . . . . 76

O obere Schranke . . . . . . . . . . . . . . . . . 81 Optimalit¨ atskriterium . . . . . . . . . . . 17 erster Ordnung . . . . . . . . . . . . 102 zweiter Ordnung . . . . . . . . . . 102 Optimall¨osung . . . . . . . . . . . . . . 2, 100 Optimierungsaufgaben . . . . . . . . . . . 1 Optimierungsproblem . . . . . . . 1, 100 nichtlineares . . . . . . . . . . . . . . 100 P Pareto-Optimierung . . . . . . . . . . . perfektes Eliminationsschema . . Permutation . . . . . . . . . . . . . . . . . . . Pfeile . . . . . . . . . . . . . . . . . . . . . . . . . .

170 212 220 190

S Satz von Weierstraß . . . . . . . . . . . 101 Schlinge . . . . . . . . . . . . . . . . . . . . . . . 191 Schlupfvariable . . . . . . . . . . . . . . . . . . . 7 Schnittebene Gomory . . . . . . . . . . . . . . . . . . . . 88 Schnittebenenverfahren . . . . . . . . . 86 Schranke obere . . . . . . . . . . . . . . . . . . . . . . . 81 untere . . . . . . . . . . . . . . . . . . . . . . 81 Schrankenvorschrift . . . . . . . . . . . . 128 Lipschitz . . . . . . . . . . . . . . . . . . 131 schwache Dualit¨ at . . . . . . . . . . . . . . 38 Sehne . . . . . . . . . . . . . . . . . . . . . . . . . . 209 Senke . . . . . . . . . . . . . . . . . . . . . . . . . . 200 Simplex . . . . . . . . . . . . . . . . . . . . . . . 120 Simplex-Tableau . . . . . . . . . . . . . . . . 25 Simplex-Verfahren . . . . . . . . . . 22, 24 duales . . . . . . . . . . . . . . . . . . . . . . 42 primales . . . . . . . . . . . . . . . . . . . . 24 simplizialer Knoten . . . . . . . . . . . . 211 Spielmatrix . . . . . . . . . . . . . . . . . . . . . 63 Standardform . . . . . . . . . . . . . . . . . . . . 2

238

Sachverzeichnis

starke Dualit¨at . . . . . . . . . . . . . . . . . 38 Stein-Schere-Papier . . . . . . . . . . . . . 63 Subbox . . . . . . . . . . . . . . . . . . . . . . . . 128 Subdifferential . . . . . . . . . . . . . . . . . 111 Subgradient . . . . . . . . . . . . . . . . . . . 111 Subgradientenverfahren . . . . . . . . 113 Subtour . . . . . . . . . . . . . . . . . . . . . . . . . 95 T total unimodular . . . . . . . . . . . . . . . . 76 Transportproblem . . . . . . . . . . . . 5, 75 U unbeschr¨ ankt . . . . . . . . . . . . . . . . . . . 15 untere Schranke . . . . . . . . . . . . 81, 128 unzul¨assig . . . . . . . . . . . . . . . . . . . . . . 15 Utopiapunkt . . . . . . . . . . . . . . . . . . . 183 V Vektoroptimierung . . . . . . . . . . . . . 170

Vier-Farben-Satz . . . . . . . . . . . . . . 207 vollst¨andig . . . . . . . . . . . . . . . . . . . . . 208 Vorg¨ anger . . . . . . . . . . . . . . . . . . . . . 197 W Weber-Problem . . . . . . . . . . . . . . . . bikriterielles . . . . . . . . . . . . . . . Weg . . . . . . . . . . . . . . . . . . . . . . . . . . . Weierstraß Satz . . . . . . . . . . . . . . . . . . . . . .

138 186 196 101

Z zentraler Pfad . . . . . . . . . . . . . . . . . . 54 Zielfunktion . . . . . . . . . . . . . . . . . 2, 100 Zielraum . . . . . . . . . . . . . . . . . . . . . . 170 zul¨ assige Basisl¨osung . . . . . . . . . . . . 14 zul¨ assige L¨osung . . . . . . . . . . . . . . . . . 2 zul¨ assiger Bereich . . . . . . . . . . . 2, 100 zul¨ assiger Fluss . . . . . . . . . . . . . . . . 200 Zwei-Personen-Nullsummenspiel . 63

Smile Life

When life gives you a hundred reasons to cry, show life that you have a thousand reasons to smile

Get in touch

© Copyright 2015 - 2024 AZPDF.TIPS - All rights reserved.