Einführung in die Optimierung

Transcription

Einführung in die Optimierung
Skriptum Optimierung
Prof. Dr. Rene Grothmann
2016
2
Inhaltsverzeichnis
1 Lineare Optimierung .......................................................................
7
1.1 Beispiele..................................................................................
7
1.2 Konvexe Mengen....................................................................... 16
1.3 Polytope ................................................................................. 19
1.4 Die Standardform...................................................................... 23
1.5 Der Simplex-Algorithmus ............................................................ 27
1.6 Unbeschrankte Variablen ............................................................. 36
1.7 Die Gau-Jordan-Form ............................................................... 37
1.8 Aunden einer Ausgangsecke ...................................................... 41
1.9 Der Revidierte Simplex-Algorithmus............................................... 46
1.10 Dualitat .................................................................................. 48
1.11 Interpretation der Dualitat........................................................... 56
1.12 Trennungssatze......................................................................... 61
1.13 Semi-innite Optimierung............................................................ 64
1.14 Komplexitat des Simplex-Algorithmus ............................................ 75
1.15 Innere Methoden ....................................................................... 77
2 Ganzzahlige Optimierung................................................................. 87
2.1 Beispiele.................................................................................. 87
2.2 Der Primal-Duale Algorithmus...................................................... 92
2.3 Kurzeste Wege ......................................................................... 100
2.4 Schnittebenenverfahren............................................................... 103
3
4
INHALTSVERZEICHNIS
3 Nichtlineare Optimierung................................................................. 111
3.1 Konvexe Funktionen................................................................... 111
3.2 Abstiegsverfahren ...................................................................... 115
3.3 Lagrange-Gleichung ................................................................... 122
3.4 Newton-Barrier-Verfahren ........................................................... 127
Vorwort
Dieses Skript ist eine Zusammenfassung der in der Vorlesung Optimierung vom Sommersemester 2012 behandelten Gebiete der Optimierung. Es dient damit hauptsachlich
den Lernenden zur Wiederholung und Vertiefung.
Man ndet in diesem Skript viele Beispiele, die mit dem quell-oenen Programm \Euler
Math Toolbox" des Autors gerechnet wurden, und die die behandelten Methoden in
der Praxis veranschaulichen.
Viel Erfolg
R. Grothmann
Eichstatt, 19. Januar 2016
5
6
INHALTSVERZEICHNIS
Kapitel 1
Lineare Optimierung
1.1 Beispiele
1.1. Denition: Optimierung bedeutet, eine Funktion
f :Z!R
auf einer Menge Z Rn zu minimieren oder zu maximieren. Die Punkte in Z heien
zulassige Punkte, und f heit die Zielfunktion. Wir beschaftigen uns zunachst mit
linearer Optimierung. Dabei ist Zielfunktion f linear,
f (x ) = c T x
und Z ist durch endlich viele lineare Gleichungen oder Ungleichungen der Form
aiT x bi ; aiT x = bi ; aiT x bi
fur i = 1; : : : ; m gegeben, die man Nebenbedingungen nennt.
Im Folgenden verwenden wir Euler und seine Funktion simplex, um einige Beispiele
durchzurechnen. Wir werden das Simplex-Verfahren spater ausfuhrlich herleiten und
begrunden. Vorlaug verwenden wir es ohne zu wissen, wie es funktioniert.
Fur Euler schreiben wir die Optimierungsprobleme mit Hilfe der Matrizen und Vektoren
A 2 Rmn ; b 2 Rm ; c 2 Rn :
Die Zeilenvektoren aiT aus den obigen Nebenbedingungen sind die Zeilen von A. Wir
mussen zusatzlich angeben, welcher Art die Restriktionen sind. Dies geschieht in einem
Vektor eq
eqi 2 f 1; 0; 1g;
7
8
KAPITEL 1. LINEARE OPTIMIERUNG
wobei 1 fur , 0 fur = und 1 fur steht. Wird der Vektor weggelassen, so wird fur alle Nebenbedingungen angenommen. Weiterhin konnen wir einen Vektor restrict
mit
restrictj 2 f0; 1g
angeben, wobei 0 fur xj 2 R und 1 fur xj 0 steht. Wird der Vektor weggelassen so
wird fur alle j die Restriktion xk 0 angenommen.
Wir verwenden auerdem die Funktion feasibleArea, die zu Nebenbedingungen
Ax b
fur A 2 Rm2 einen Polygonzug berechnet, der die Menge der zulassigen Punkte
beschreibt. Dieser Polygonzug lasst sich mit plot2d und >filled zeichnen.
1.2. Beispiel: Maximierung unter Kapazitatsbeschrankungen. Ein Landwirt hat fur
zwei Feldfruchte einen beschrankten Platz auf dem Feld, etwa insgesamt 1000ha, und
beschrankte Arbeitszeit, etwa 4500h, wobei die Produkte 4h/ha und 5h/ha benotigen.
Dies ergibt die folgenden Bedingungen.
x + y 1000
4x + 5y 4500
Zu maximieren ist der Gewinn (in Geldeinheiten/ha)
5x + 6y
! Max.
Implizit ist hier die Nebenbedingung
x; y 0
zusatzlich gegeben.
Man kann dieses Problem graphisch darstellen und losen. In der Abbildung 1 ist die
zulassige Menge und das Optimum, sowie die Niveauline der Gewinnfunktion durch
das Optimum dargestellt. Der optimale Punkt ist x = y = 500 mit einem Gewinn von
5500.
Angenommen der Gewinn fur die Erste Feldfrucht erhoht sich auf 7 GE/ha.
Wo liegt dann das Maximum? Angenommen der Landwirt hat zusatzlich die Lieferverpichtung
von 100ha der zweiten Feldfrucht. Wie andert sich dann der zulassige Bereich, und wo liegt
das Maximum?
1.3 Aufgabe:
1.4. Beispiel: Diatproblem. In diesem Fall sind Kosten zu minimieren, wobei gewisse
Minimalanforderungen zu beachten sind. Ein Beispiel ist das Einhalten einer Diat mit
Nebenbedingungen
aiT x bi
9
1.1. BEISPIELE
>A=[1,1;4,5]
>b=[1000,4500]'
1
4
1
5
1000
4500
>x=feasibleArea(A,b);
>plot2d(x[1],x[2],filled=true,style="/");
>v=simplex(A,b,[5,6],>max,>check)
500
500
>plot2d("5*x+6*y",niveau=5500,>add);
>plot2d(v[1],v[2],points=true,style="ow",>add,>insimg);
Abbildung 1.1: Graphische Losung
10
KAPITEL 1. LINEARE OPTIMIERUNG
>A=[1,0;0,1;2,1;1,1;1,2]
1
0
0
1
2
1
1
1
1
2
>b=[5,5,4,3,4]'
5
5
4
3
4
>eq=[-1,-1,1,1,1]'
-1
-1
1
1
1
>x=feasibleArea(A,b,eq);
>plot2d(x[1],x[2],a=0,b=5,c=0,d=5,>filled,style="/");
>xp=simplex(A,b,[3,2],eq,>min)
1
2
>plot2d("3*x+2*y",niveau=7,>add);
>plot2d(xp[1],xp[2],>add,>points):
Abbildung 1.2: Diatenproblem
11
1.1. BEISPIELE
fur Nahrungsbestandteile xj , j = 1; : : : ; n. Zu minimieren sind die Kosten
c T x ! Min.
Die Abbildung 4 zeigt einen typischen zulassigen Bereich und das Optimum, sowie die
Niveaulinie der Zielfunktion durch das Optimum. Die Nebenbedingungen waren
2x + y
x +y
x + 2y
Zu minimieren war
4
3
4
! Min.
3x + 2y
Um die zulassige Menge zu beschranken, haben wir die Nebenbedingungen x; y 5
dazu genommen. Auerdem haben wir einen Vektor verwendet, der die Art der Ungleichungen angibt.
1.5. Beispiel: Transportproblem. Bei diesem Typ von Problemen sind Transportkos-
ten pro Einheit ci;j zwischen Produktionsstatten i und Abnehmern j vorgesehen. Zu
minimieren ist
X
ci;j xi;j ! Min.
i;j
Restriktionen sind die Kapazitaten der Produktionsstatten
X
j
xi;j di
fur alle i
und die benotigten Mengen der Abnehmer
X
i
1.6 Aufgabe:
durch
xi;j ej
Bei zwei Produktionsstatten
fur alle j .
P1;2
A1
P1
P2
2
4
und zwei Abnehmern
A2
3
2
Die Kapazitat der Produktionsstatten sei
und die benotigten Menge seien
P1
P2
1000
800
A1
A2
1200
600
A1;2
seien die Kosten
12
KAPITEL 1. LINEARE OPTIMIERUNG
Abbildung 1.3: Transportproblem (mit Losung)
Stellen Sie die Nebenbedingungen auf, und losen Sie mit Euler. In Abbildung 1.3 nden Sie eine
Skizze des Problems.
1.7. Beispiel: Zweipersonenspiel. Als Beispiel nehmen wir das Spiel Stein-Schere-
Papier, bei dem beide Spieler eine Auswahl geheim wahlen, und diese simultan vorzeigen. Die Auszahlungsmatrix aus der Sicht des Spielers, der die Spalte wahlt, ist die
folgende.
Stein Schere Papier
Stein
Schere
Papier
0
1
1
1
0
1
1
1
0
Wir entwerfen eine Worst-Case-Strategie. Dabei wahlen wir unsere Auswahl mit Wahrscheinlichkeiten p1 ; p2 ; p3 , so dass der minimale erwartete Gewinn G moglichst gro
wird.
Dies lasst sich als lineares Optimierungsproblem schreiben. Wir haben zunachst die
Nebenbedingung
p1 + p2 + p3 = 1
und die implizite Nebenbedingung
p1 ; p2 ; p3 0:
13
1.1. BEISPIELE
Zusatzlich haben wir
0p1 1p2 + 1p3 G
1p1 + 0p2 1p3 G
1p1 + 1p2 + 0p3 G
und zu maximieren ist
G ! Max.
Das Problem kann mit dem Euler-Code aus Abbildung 1.4 gelost werden. Die Variablen
sind dabei
p1 ; p2 ; p3 ; G:
Wir geben in der Variablen eq an, dass die ersten drei Zeilen bedeuten und in
der vierten = gelten soll. Man beachte auch, dass nur die ersten drei Variablen 0 beschrankt sind. Fur G durfen wir das eigentlich zunachst nicht annehmen. Die
Beschrankungen werden im Zeilenvektor restrict ubergeben.
>A=[0,-1,1;1,0,-1;-1,1]_1|-1; A[4,4]=0
0
-1
1
-1
1
0
-1
-1
-1
1
0
-1
1
1
1
0
>b=[0,0,0,1]'
0
0
0
1
>c=[0,0,0,1]
[0, 0, 0, 1]
>eq=[1,1,1,0]'
1
1
1
0
>restrict=[1,1,1,0]
[1, 1, 1, 0]
>simplex(A,b,c,eq,restrict,>max,>check)
0.333333
0.333333
0.333333
0
Abbildung 1.4: Optimale Strategie eines Spieles
Das Optimum ist in
1
p1 = p2 = p3 = 3 :
14
KAPITEL 1. LINEARE OPTIMIERUNG
In diesem Beispiel ist das Spiel symmetrisch, so dass wir sogar G = 0 annehmen
konnten. Wenn wir das tun, ist eigentlich gar nichts zu optimieren, sondern lediglich
ein zulassiger Punkt zu nden.
Erweitern Sie das Spiel um eine zusatzliche Taktik \Brunnen", die gegen \Schere" und \Stein" gewinnt. Rechnen Sie das Spiel mit Euler durch.
1.8 Aufgabe:
1.9. Beispiel: Approximation. Zu Punkten
x1 < : : : < xn
und Werten
y1 ; : : : ; yn 2 R
ist eine Funktion p 2 V aus einem linearen Unterraum V
max jyi
i
C [a; b] zu nden, so dass
p(xi )j
minimal wird. Dies kann man als lineares Optimierungsproblem schreiben, indem man
p(xi ) h yi p(xi ) + h
fordert. Zu minimieren ist
fur alle i
h ! Min.
Fur Polynome
p(x ) = a + bx
erhalten wir beispielsweise die linearen Nebenbedingungen
axi + b h yi ;
axi + b + h yi :
In dem folgenden Beispiel erzeugen wir die Werte, indem wir das Polynom
1
p(x ) = 2 + 2 x
normalverteilt storen. Die Matrizen und Vektoren fur unser Problem mussen sorgfaltig
aufgebaut werden. Mit Hilfe des Euler-Codes aus 9 kann man das nachvollziehen. Die
Ausgabe wurde weggelassen.
Schreiben Sie die Nebenbedingungen fur den einfachen Fall auf, dass eine
konstante Funktion p gesucht ist. Wie lautet in diesem Fall das Minimum? Zeichnen Sie fur
einen konkreten Fall den zulassigen Bereich und losen Sie Aufgabe graphisch.
1.10 Aufgabe:
Lineare Regression ist im Gegensatz dazu das Problem
X
i
jyi p(xi )j2 ! Min.
1.1. BEISPIELE
>x=1:10; y=2+0.5*x+normal(size(x));
>A1=x'|1|-1
>A2=x'|1|1
>A=A1_A2
>b=y'_y'
>eq=(-ones(10,1))_ones(10,1)
>restrict=[0,0,1]
>sol=simplex(A,b,[0,0,1],eq,restrict,>min,check);
>p=sol[[2,1]]'
[ 1.96 0.408 ]
>plot2d("polyval(p,x)",color=red,a=0,b=11,c=0,d=11);
>plot2d(x,y,>points,>add);
Abbildung 1.5: Approximation durch lineare Optimierung
15
16
KAPITEL 1. LINEARE OPTIMIERUNG
Dabei wird also eine andere Norm fur den Abstand verwendet. Dieses Problem kann
mit einem linearen Gleichungssystem gelost werden.
Eine weitere Alternative ist die L1 -Norm
X
i
jyi p(xi )j ! Min.
die sich weder als lineares System, noch eektiv als lineares Optimierungsproblem
schreiben lasst. Die einzige Moglichkeit besteht darin, 2n Ungleichungen zu verwenden. Jede dieser Ungleichungen lautet
X
i
i (yi p(xi )) h
wobei die Vorzeichen 1 ; : : : ; n alle moglichen Kombinationen von Vorzeichen durchlaufen. Der Wert von h ist dann zu minimieren.
1.11 Aufgabe:
Wodurch ist das c 2 R charakterisiert, das
n
X
jc
ai
j
i =1
fur gegebene Werte a1 ; : : : ; a minimiert?
n
1.2 Konvexe Mengen
Der zulassige Bereich bei unseren linearen Optimierungsaufgaben ist immer konvex und
abgeschlossen. Wir beschaftigen uns deswegen zunachst mit konvexen Mengen.
1.12. Denition: Eine Teilmenge M Rn heit konvex, wenn sie zu je zwei Punkten
x; y 2 M alle Konvexkombinationen
x + y; + = 1; ; 0
enthalt.
Anschaulich bedeutet das, dass die Strecke
S (x; y ) = fx + y : + = 1 und ; 0g
von x nach y in M liegt.
1.13 Aufgabe:
Beweisen Sie, dass die konvexen Teilmengen von R gerade die Intervalle sind.
Eine Konvexkombination der Elemente x1 ; : : : ; xm 2 M ist eine Linearkombination
x=
m
X
i =1
i xi
17
1.2. KONVEXE MENGEN
mit
1 + : : : + m = 1; 1 ; : : : ; m 0:
Lasst man die Bedingung 1 ; : : : ; m 0 weg, so nennt man die Linearkombination
eine Ankombination.
Zeigen Sie, dass eine Menge M genau dann konvex ist, wenn sie alle Konvexkombinationen von ihren Elementen enthalt. Beachten Sie, dass eine konvexe Menge per
Denition nur die Konvexkombinationen von je zwei Elementen enthalt.
1.14 Aufgabe:
1.15 Satz: Die kleinste konvexe Menge, die eine gegebene Menge M Rn umfasst
ist die Menge aller Konvexkombinationen von Elemente aus M . Man nennt sie die
konvexe Hulle von M .
Die konvexe Hulle zweier Punkte x; y ist die Strecke S (x; y ), und die konvexe Hulle
dreier Punkte ist das Dreieck mit diesen Punkten als Eckpunkten.
Beweis: Man zeigt mit wenig Muhe, dass conv M selbst konvex ist. Aus der Aufgabe
folgt andererseits, dass jede konvexe Menge, die M umfasst, alle Konvexkombinationen
von Elementen aus M enthalten muss. Sie muss daher eine Obermenge von conv M
sein.
q.e.d.
Die Gerade durch x und y ist
S (x; y ) = fx + y : + = 1g
Allgemeiner ist die Menge aller Ankombinationen die ane Hulle von M . Das ist der
kleinste ane Unterraum, der M umfasst.
1.16. Denition: x1 ; : : : ; xm
2 Rn heien an unabhangig, wenn keiner der Punkte
Ankombination der anderen ist.
A quivalent dazu ist, dass die ane Hulle einer Teilmenge dieser Punkte immer kleiner
als die ane Hulle aller Punkte ist. Man rechnet nach, dass das dann der Fall ist, wenn
x2 x1 ; : : : ; xm x1
linear unabhangig sind. Die ane Hulle ist immer der Raum
x1 + span fx2 x1 ; : : : ; xm x1 g;
womit sich auch die Dimension im Falle aner Unabhangigkeit als m
1 ergibt.
Es folgt, dass nicht mehr als n + 1 Punkte im Rn an unabhangig sein konnen. Es
folgt auerdem, dass die Ankombination bzw. Konvexkombination im Falle aner
Unabhangigkeit eindeutig ist, und wie sie zu berechnen ist.
Klar ist uberdies, dass ein Punkt x 2 Rn , der Ankombination von x1 ; : : : ; xm ist als
Ankombination von maximal n + 1 dieser Punkte geschrieben werden kann. Dies
18
KAPITEL 1. LINEARE OPTIMIERUNG
gilt auch im Falle von Konvexkombinationen, wie der folgende Satz von Caratheodory
zeigt.
1.17 Satz: Falls
x 2 conv fx1 ; : : : ; xm g Rn ;
so ist x als Konvexkombination von maximal n + 1 dieser Punkte darstellbar.
Beweis: Angenommen
x=
X
i
m
X
i =1
i xi
i = 1; 1 ; : : : ; m > 0
mit x1 ; : : : ; xm 2 M und m > n + 1. Da die m
1 Elemente
x2 x1 ; : : : ; xm x1
dann linear abhangig sein mussen, gibt es eine Linearkombination
m
X
i =2
i (xi x1 ) = 0:
Daraus erhalt man eine Linearkombination
X
i
i xi = 0;
X
i
Fur geeignet gewahltes 2 R gilt daher
i = 0:
i + i 0
fur alle i und
i + i = 0
0
fur ein i0 . Auerdem
x=
0
(i + i )xi :
X
i
Wir haben damit die Konvexkombination um ein Element verringert. Dies ist moglich,
solange m > n + 1 ist.
q.e.d.
Als Folgerung erhalten wir, dass fur M Rn
conv M = f
n+1
X
i =1
i xi : i 0, xi 2 M ,
n+1
X
i =1
i = 1g
ist.
1.18 Aufgabe:
Folgern Sie, dass die konvexe Hulle einer kompakten Menge kompakt ist.
19
1.3. POLYTOPE
1.3 Polytope
1.19. Denition: Die zulassigen Bereiche bei der linearen Optimierung sind Schnitte
von Halbraumen
Hai ;bi = fx 2 Rn : aiT x bi g
fur ai 2 Rn , ai =
6 0, bi 2 R, i = 1; : : : ; m. Den endlichen Schnitt solcher Halbraume
nennt man ein Polytop. Wir konnen das Polytop in der Form
Z = fx : Ax bg
mit A 2 Rmn schreiben.
Z heit regulares Polytop, wenn
Rang A = n
ist. Es gilt
Rang A < n
Wenn dann x 2 Z ist, so ist auch
,
dim Kern A > 0:
x + Kern A Z
A quivalent zur Regularitat ist also, dass Z keinen anen Unterraum enthalt, oder
einfacher, dass Z keine Gerade enthalt.
Ein Polytop ist abgeschlossen und konvex als Schnitt von abgeschlossenen und konvexen Mengen. Allerdings braucht es nicht kompakt zu sein.
1.20. Denition: Ein Punkt x in einer konvexen Menge M heit Ecke von M , wenn
er nicht Konvexkombination von zwei anderen Punkten in M ist.
Beachten Sie, dass bei allgemeinen konvexen Mengen auch Randpunkte von runden
Randstucken Ecken sein konnen. So sind etwa alle Punkte auf einem Kreis Ecken der
Kreisache. Bei Polytopen stimmt aber unsere Vorstellung einer Ecke mit der Denition
uberein.
1.21. Denition: Um Ecken von Polytopen zu charakterisieren, denieren wir fur
I f1; : : : ; mg
die Mengen
Mit dem Unterraum
gilt also ZI = Z \ EI .
ZI = Z \ fx : aiT x = bi fur i 2 I g:
EI = fx : aiT x = bi fur i 2 I g
20
KAPITEL 1. LINEARE OPTIMIERUNG
Wenn eine Nebenbedingung in x mit = erfullt ist, sagt man auch, dass die Nebenbedingung in x aktive Nebenbedingung ist. Wir denieren fur x 2 Z
Ix = fi : aiT x = bi g
als Indexmenge der in x aktiven Nebenbedingungen.
1.22 Aufgabe:
I
Schreiben Sie ein Quadrat als Polytop, und bestimmen Sie die Mengen Z fur
bestehen aus einer Ecke?
f1; 2; 3; 4g. Welche Z
I
I
Der folgende Satz charakterisiert die Ecken eines Polytop, und eignet sich im Prinzip
dazu, alle Ecken zu berechnen.
1.23 Satz: x
2 Z ist genau dann Ecke von Z , wenn
fx g = EIx
gilt. Dies ist wiederum aquivalent dazu dass
fx g = ZIx
gilt.
Beweis: Sei x eine Ecke. Wenn EIx einen weiteren Punkt enthalten wurde, so muss EIx
eine Gerade durch x enthalten. Auf dieser Gerade kann man sich nach beiden Seiten
ein wenig bewegen, und dabei in Z bleiben, da die anderen Ungleichungen mit < erfullt
sind. Das ist ein Widerspruch dazu, dass x eine Ecke ist.
Sei umgekehrt EIx = fx g. Falls x keine Ecke ware, so ware es Linearkombination zweier
Punkte y1 6= x und y2 6= x von Z . Da beide Punkte nicht in EIx liegen, verletzt einer
von beiden zumindest eine Nebenbedingung aus Ix . Das ist ein Widerspruch dazu, dass
die Punkte in Z liegen.
Wenn EIx nicht nur aus x besteht, so muss auch ZIx weitere Punkte in der Umgebung
von x enthalten, da die anderen Ungleichungen mit < erfullt sind. Die Umkehrung ist
trivial.
q.e.d.
Der Punkt x ist also genau dann Ecke, wenn
Rang AIx ; = n
ist. Dabei ist AI; die Matrix der Zeilen von A deren Index in I ist.
Ein Polytop braucht keine Ecke zu enthalten. Ein Beispiel ist jeder ane Unterraum.
Denn ein aner Unterraum ist immer ein Polytop. Ein weiteres Beispiel ist ein rechteckiger Zylinder unendlicher Hohe.
1.24 Satz: Genau dann hat ein Polytop Z eine Ecke, wenn es regular ist.
21
1.3. POLYTOPE
Beweis: Wenn das Polytop nicht regular ist enthalt es eine Gerade y + G , wobei G
ein eindimensionaler Unterraum ist. Dann ist G parallel zu allen Hyperebenen, deren
Halbraume das Polytop beschreiben, also ai ? G fur alle i . Also ist x + G fur alle x 2 Z
Teilmenge von Z . Kein x 2 Z kann deswegen eine Ecke sein.
Alternativ kann man zum Beweis dieser Richtung verwenden, dass fur alle x
Rang AIx
gilt, und nach der obigen Aufgabe kein x
2Z
Rang A
2 Z Ecke sein kann, wenn A nicht regular ist.
Z enthalte umgekehrt keine Gerade. Dann lasst sich jede Indexmenge I , fur die ZI
nicht ein-elementig ist, um einen Punkt zu I~ erweitern, so dass
dim ZI > dim ZI~;
indem man fur x 2 ZI auf einer Seite von x + G eine weitere Nebenbedingung aktiviert,
wobei G die Gerade von x zu einem weiteren Punkt in ZI sei. Daher muss es eine
Indexmenge mit einpunktigem ZI geben.
q.e.d.
Fur Polytope und lineare Zielfunktionen der Form
f (x ) = c T x
muss das Maximum nicht in einer Ecke angenommen werden, selbst wenn es ein Maximum gibt. Wie der folgende Satz zeigt, gibt es aber nur drei Moglichkeiten
Die zulassige Menge ist leer.
Die Zielfunktion ist nach oben unbeschrankt.
Die Zielfunktion nimmt ihr Maximum an. In diesem Fall nimmt sie das Maximum
in einer der Mengen ZI an, die man so wahlen kann, dass sie ein aner Unterraum
ist. In einem regularen Polytop nimmt sie ihr Maximum in einer Ecke an.
1.25 Satz: Sei Z Rn ein nicht-leeres Polytop. Dann nimmt jede nach oben auf Z
beschrankte lineare Zielfunktion ihr Maximum auf Z an. Analoges gilt fur die Minima
nach unten beschrankter linearer Zielfunktionen.
Genauer gibt es eine Indexmenge I mit ZI 6= ;, so dass f auf ZI konstant ist und dort
das Maximum auf Z annimmt, und so dass ZI gleich dem anen Unterraum EI ist.
Es folgt sofort, dass nach oben beschrankte, lineare Zielfunktionen das Maximum auf
nicht-leeren Polytopen in einer Ecke annehmen. Denn regulare Polytope enthalten keine
anderen anen Unterraume als Punkte.
Beweis: Sei f auf Z nach oben beschrankt.
Wir betrachten die Menge I aller Indexmengen I , so dass f auf ZI konstant ist, und
ZI 6= ; ein aner Unterraum ist.
22
KAPITEL 1. LINEARE OPTIMIERUNG
Nun behaupten wir, dass es zu jedem x
2 Z ein I 2 I gibt, mit
f (x ) f (ZI )
Da I endlich ist, folgt daraus die erste Behauptung des Satzes.
Zum Beweis nehmen wir ein beliebiges x
I 2= I .
2 Z und die Indexmenge I = Ix . Angenommen
Wir konstruieren im Folgenden eine Indexmenge I~, die I um einen Index erweitert, so
dass
dim ZI~ < dim ZI
und f auf ZI~ mindestens den Wert f (x ) annimmt. Diese Einschrankung von ZI ist
hochstens endlich mal moglich. Es folgt die Hilfsbehauptung.
Im ersten Fall ist dann f auf ZI nicht konstant. f ist dann auf EI nicht konstant, also
nach oben nicht beschrankt. Insbesondere existiert ein y 2 EI mit
f (y ) > f (x )
Langs dem Strahl von x aus durch y wachst also f beliebig. Da f aber auf Z nach
oben beschrankt ist, folgt, dass man I um eine Nebenbedingung zu einer Indexmenge
I~ erweitern kann, so dass die Menge ZI~ eine echte Teilmenge von ZI ist und f auf ZI~
mindestens den Wert f (x ) annimmt.
Im zweiten Fall ist f auf ZI konstant, aber ZI kein aner Unterraum. Es folgt wieder,
dass man I zu I~ erweitern kann, so dass ZI~ eine echte Teilmenge von ZI ist, auf der f
ebenfalls konstant ist.
q.e.d.
Dieser Satz motiviert den Simplex-Algorithmus, der von Ecke zu Ecke mit zunehmender
Zielfunktion wandert. Da es nur endlich viele Ecken gibt, muss der Algorithmus im
Optimum enden. Allerdings verwendet der Simplex-Algorithmus Polytope in spezieller
Darstellung, der Standardform.
Man beachte, dass dieser Satz fur allgemeine konvexe und abgeschlossene Mengen
selbst bei linearen Zielfunktionen nicht richtig ist. Fur
Z = f(x; y ) : y x1 g
ist f (x ) = x nach unten beschrankt, nimmt aber kein Minimum an.
23
1.4. DIE STANDARDFORM
1.4 Die Standardform
1.26. Denition: Ein lineares Problem in Standardform hat die Gestalt
Ax = b; x 0
c T x ! Min.
mit A 2 Rmn , b 2 Rm . Zusatzlich sei
Rang A = m
vorausgesetzt.
1.27 Satz: Das Problem, eine lineare Funktion auf einem Polytop zu minimieren oder
zu maximieren, lasst sich aquivalent in Standardform umschreiben.
Beweis: Fur die Ungleichungen fuhren wir Schlupfvariablen ein. Denn
aiT x bi
, aiT x + si = bi ; si 0:
Nicht beschrankte Variablen teilen wir in zwei Variablen
xj = xj+ xj ; xj+ ; xj 0
auf. Dadurch erhoht sich die Zahl der Matrixspalten. Und naturlich gilt
c T x ! Max. ,
c T x ! Min.
Wir konnen annehmen, dass A vollen Zeilenrang hat, indem wir den Gau-Algorithmus
auf Ajb anwenden, und nicht relevante Zeilen weglassen. Unter der Voraussetzung,
dass Ax = b uberhaupt losbar ist, entsteht ein aquivalentes System.
q.e.d.
Man kann unbeschrankte Variablen auch anders behandeln. Wenn im Problem in Standardform etwa die Bedingung xj 0 weggelassen wird, so kann man eine der Gleichungen nach xj auosen, und damit xj aus den anderen Gleichungen eliminieren. Lasst man
noch die aufgeloste Gleichung weg, so entsteht ein aquivalentes Problem. Diese Vorgehensweise behandeln wir am Ende des nachsten Abschnittes erneut (siehe Beispiel 37
und die Bemerkungen davor).
Bei der U bersetzung des Optimierungsproblems von einem Polytop
Z = fx : Ax bg
24
KAPITEL 1. LINEARE OPTIMIERUNG
in die Standardform entsteht aufgrund der Schlupfvariablen naturlich stets der volle
Zeilenrang.
1.28 Aufgabe: Zeigen Sie, dass das Polytop, das durch die Standardform beschrieben wird,
immer regular ist. Wie erklaren Sie, dass ein nicht-regulares lineares Optimierungsproblem bei
der U bersetzung in die Standardform regular wird? Gehen dabei etwa Losungen verloren?
1.29. Beispiel: Wir ubersetzen das Spielproblem aus Beispiel 7 in Standardform. Aufzuteilen ist die Variable G . Es sind 3 Schlupfvariable zu erzeugen.. Also
p2 p3 G
Auerdem
,
,
p2 + p3 + G 0
p2 + p3 + G + G + s1 = 0:
G = G + + G ! Min.
Insgesamt entsteht das folgende Schema (Tableau) von Nebenbedingungen.
p1 p2 p3 G + G
s1 s2 s3 = z
0
1
1
1
0
1
0
0
0
0
1
0
1
1
0
1
1
0
1
0
1
1
1
0
1
1
1
1
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
Wir interpretieren etwa die vierte Zeile als
p1 + p2 + p3 = 1:
In der letzten Zeile steht die Zielfunktion
G+ + G = 0 + z
mit einer zusatzlichen Variablen z , die den Wert der Zielfunktion enthalt.
Die Spalte dieser Variable ist in den Nebenbedingungen vollstandig mit 0 gefullt ist. Sie
wird gewohnlich im Schema einfach weggelassen, da Sie sich im Laufe des SimplexAlgorithmus nicht andert.
Das Schema sieht in Euler folgendermaen aus.
25
1.4. DIE STANDARDFORM
>goodformat(6,2);
>A=[0,-1,1;1,0,-1;-1,1,0];
>M=(A|1|-1|id(3)|0)_[1,1,1,0,0,0,0,0,1]_[0,0,0,-1,1,0,0,0,0]
0
-1
1
1
-1
1
0
0
0
1
0
-1
1
-1
0
1
0
0
-1
1
0
1
-1
0
0
1
0
1
1
1
0
0
0
0
0
1
0
0
0
-1
1
0
0
0
0
Siehe auch Beispiel 37 im nachsten Abschnitt fur eine einfachere Vorgehensweise fur
die U bersetzung von unbeschrankten Variablen in Standardform.
1.30 Satz: Eine Ecke x 6= 0 des Polytop, der durch die Standardform entsteht, ist
dadurch charakterisiert, dass die Spalten in der Indexmenge
J = fj : xj > 0g
der Matrix A linear unabhangig sind.
Falls das Problem einen zulassigen Punkt hat und beschrankt ist, so existiert eine
Indexmenge
J = fj1 ; : : : ; jm g
der Lange m, so dass die Spalten in J linear unabhangig sind, und das Minimum im
eindeutig bestimmten Punkt x 2 Rn mit
AJ xJ = b
xj = 0 fur j 2= J
angenommen wird. Dabei ist AJ die Matrix, die aus den Spalten von A in J besteht
und
 
xj
:: 
: :
xjm
xJ = 

1
Das Minimum wird also in einer Ecke angenommen.
Wir nennen ein J der Lange, so dass AJ eine invertierbare Matrix ist, eine Spaltenbasis
von A.
Aus dem obigen Satz folgt, dass es fur jede Ecke eine Spaltenbasis J gibt, aus der sich
Ecke eindeutig mit AJ xJ = b und xj = 0 fur j 2= J berechnen lasst. Denn wir konnen
die Spalten in J zu einer Basis erganzen, wenn x eine Ecke ist. Im Fall
jJ j < m
nennt man die Ecke degenerierte Ecke, und die erweiterte Basis degenerierte Basis.
26
KAPITEL 1. LINEARE OPTIMIERUNG
Man beachte, dass x = 0 genau dann zulassig ist, wenn b = 0 gilt. Der Punkt x = 0 ist
dann auch eine Ecke. Wir wahlen in diesem Fall beliebige m linear unabhangige Spalten
von A als Spaltenbasis, die x = 0 bestimmt. Die zulassige Menge kann dann auch
weitere Punkte enthalten, aber wegen b = 0 keine weiteren Ecken. Die Zielfunktion ist
dann entweder unbeschrankt, oder x = 0 ist das Minimum.
Beweis: Wir konnten diesen Sachverhalt auf die schon bewiesenen allgemeinen Satze
uber Polytope und deren Ecken zuruckfuhren. Aus Grunden des besseren Verstandnisses
beweisen wir aber den Satz direkt.
Die Spalten von AJ seien linear unabhangig. Wir zeigen, dass x dann eine Ecke ist.
Ansonsten existiert ein v 6= 0, so dass die Punkte x v zulassig sind. Wegen xj = 0
muss auch vj = 0 fur j 2= V gelten. Auerdem muss wegen
AJ (xJ + vJ ) = b
AJ vJ = 0 sein, woraus v = 0 folgt, und damit ein Widerspruch.
Seien nun die Spalten von AJ linear abhangig. Dann existiert ein v 2 Rn mit AJ vJ = 0,
vJ 6= 0 sowie vj = 0 fur j 2= J . Man sieht leicht, dass fur jj klein genug x + v zulassig
ist. x kann also keine Ecke sein.
Sei nun x ein beliebiger zulassiger Punkt mit zugehoriger Indexmenge
J = fj : xj > 0g;
der keine Ecke ist, fur den also die Spalten AJ nicht linear unabhangig sind. Wir wahlen
v 2 Rn wie oben. Sei zunachst c T v < 0, also
c T (x + v ) < c T x
fur > 0. Wenn das Problem beschrankt ist, so existiert ein maximales , so dass
x + v fur > nicht mehr zulassig ist. Dann gilt fur
x~ = x + v
x~j = 0 fur ein j 2 J . Die zu x~ gehorige Indexmenge hat also einen Punkt weniger.
Dasselbe Argument funktioniert auch im Fall c T v > 0 mit < 0. Im Fall c T v = 0
konnen wir ebenfalls in jedem Fall ein nden, so dass x + v zulassig ist, und seine
Indexmenge J kleiner.
Fahrt man auf diese Weise fort, so gelangt man in einen Punkt x mit Indexmenge J ,
so dass die Spalten von AJ linear unabhangig sind und der Wert von c T x nicht groer
ist. Es kann im Fall x = 0 dabei auch passieren, dass J = ; wird. Wir erganzen nun die
Spalten zu einer Basis J der Lange m des Spaltenraums von A. x ist dann eindeutig
durch AJ xJ = b und xj = 0 fur j 2= J bestimmt.
27
1.5. DER SIMPLEX-ALGORITHMUS
Da es nur endlich viele Spaltenbasen J von A gibt, muss das Minimum daher durch
einer dieser Spaltenbasen charakterisiert sein. es wird also in einer Ecke angenommen.
q.e.d.
Man kann eine Ecke x berechnen, wenn man ihre Basisvariablen J kennt. Dazu lost
AJ xJ = b
und xj = 0 fur j 2= J . Umgekehrt muss allerdings bei gegebenem J die Losung xJ nicht
unbedingt xJ 0 erfullen, also nicht unbedingt zulassig sein. Es gibt also zulassige
Spaltenbasen und nicht zulassige Spaltenbasen.
Da das Polytop in Standardform regular ist, wissen wir ubrigens aufgrund unserer
U berlegungen fur Polytope im vorigen Abschnitt schon, dass das Minimum eines Problems in Standardform in einer Ecke angenommen wird, wenn die Zielfunktion nach
unten beschrankt ist. Der obige Satz wiederholt das Ergebnis nur.
Ein Minimum ist also durch eine Basis des Spaltenraums charakterisiert, wenn es existiert. Damit reduziert sich die Suche nach den Minima auf einen Vergleich von maximal
n
Nn;m = m
Werten. Fur praktisch relevante n und m ist diese Zahl allerdings viel zu gro. Auerdem
erkennt man auf diese Weise noch nicht, ob das Problem unbeschrankt ist.
1.31 Aufgabe:
Bestimmen Sie alle Ecken des Polytop, der durch
1 2 1
2 4 1
und x
x1
 
x  =
1
2
2
x3
0 gegeben ist. Vergleichen Sie die Ecken, um
x + x + x ! Min.
1
2
3
zu losen.
1.5 Der Simplex-Algorithmus
Gegeben sei ein Optimierungsproblem in Standardform. Mit einer Matrix A
mit vollem Zeilenrang m, b 2 Rm , c 2 Rn sei das Problem in der Form
Ax = b; x 0;
c T x ! Min.
2 Rmn
28
KAPITEL 1. LINEARE OPTIMIERUNG
gegeben. Im ersten Schritt schreiben wir das Problem in ein Schema
x1
a1;1
::
:
am;1
c1
: : : xn
: : : a1;n
::
:
: : : am;n
: : : cn
1
b1
::
:
bm
0
z
0
::
:
0
1
mit der Zielfunktionsvariablen z , die in den Nebenbedingungen nicht vorkommt. Die
erste Zeile ist dabei beispielsweise als Gleichung
a1;1 x1 + : : : + a1;n xn = b1 1 + 0 z
zu lesen.
Diese Gleichungen formen wir aquivalent mit dem Gau-Algorithmus um. Dabei durfen
wir
Nebenbedingungen vertauschen,
Das -fache einer Nebenbedingung zu einer anderen addieren.
Das -fache einer Nebenbedingung zur Zielfunktion addieren.
Eine Nebenbedingung mit 6= 0 multiplizieren.
Dadurch entstehen aquivalente Probleme. Die letzte Spalte andert sich dann nicht, so
dass wir sie einfach weglassen konnen.
Sei J die Indexmenge einer Spaltenbasis, also einer Auswahl der Spalten von A, die ein
Basis des Rm bilden. Dann konnen wir das Problem aquivalent in die folgende Form
uberfuhren. Zur vereinfachten Darstellung nehmen wir an, dass J = f1; : : : ; mg ist.
Das kann man durch Vertauschen der Spalten ohnehin erreichen.
x1 : : : xm xm+1
1
0 a1;1
::
:::
:
0
1 am;1
0 : : : 0 cm+1
: : : xn 1
: : : a1;n b1
::
::
:
:
: : : am;n bm
: : : cn
z
Der negativ genommene Zielwert steht in der rechten, unteren Ecke.
Nun setzen wir
x1 = b1 ; : : : ; xm = bm
xm+1 = : : : = xn = 0:
29
1.5. DER SIMPLEX-ALGORITHMUS
Der entsprechende Punkt x ist zulassig, wenn
b1 ; : : : ; bm 0
sind. Aufgrund von Satzes 23 charakterisiert J dann eine Ecke des zulassigen Bereichs
Z.
Durch einen einfachen Gau-Algorithmus werden wir eine Spalte in J durch eine andere
Spalte, die noch nicht in J ist ersetzen. Dies nennt man einen Basistausch.
1.32. Beispiel: Im folgenden EMT-Code nehmen wir ein Schema mit J = f1; 2g an,
und tauschen zu J~ = f1; 3g. Die z -Spalte wurde hier weggelassen. Die vierte Spalte
entspricht der rechten Seite des Schemas.
>fracformat(8); M=[1,0,2,3;0,1,3,4;0,0,2,0]
1
0
2
3
0
1
3
4
0
0
2
0
>M[2] := M[2]/3
1
0
2
3
0
1/3
1
4/3
0
0
2
0
>M[1] := M[1]-2*M[2]
1
-2/3
0
1/3
0
1/3
1
4/3
0
0
2
0
>M[3] := M[3]-2*M[2]
1
-2/3
0
1/3
0
1/3
1
4/3
0
-2/3
0
-8/3
EMT hat die Funktion pivotize(M,i,j), die diese Schritte automatisch macht.
>M=[1,0,2,3;0,1,3,4;0,0,2,0]
1
0
2
3
0
1
3
4
0
0
2
0
>pivotize(M,2,3)
1
-2/3
0
1/3
0
1/3
1
4/3
0
-2/3
0
-8/3
Im Gau-Algorithmus wird also jeweils in einer Spalte j0 der Einheitsvektor ei erzeugt.
Dazu muss das Pivotelement
ai ;j 6= 0
sein. Die Formeln fur diesen U bergang sind also
0
0 0
a~i;j = 0; i 6= i0
0
30
KAPITEL 1. LINEARE OPTIMIERUNG
und a~i ;j = 1. Auerdem
0 0
a
a~i ;j = a i;j ; j 6= j0 :
0
Ansonsten
i0 ;j0
ai;j 0 ai ;j
ai 0;j 0 ; i 6= i0 ; j 6= j0 :
Fur die Zielfunktion c~ und die rechte Seite b~ gelten entsprechende Formeln. Die z a~i;j = ai;j
0
Spalte andert sich nicht.
Der Simplex-Algorithmus zur Losung eines Problems in Standardform besteht aus drei
Phasen.
1. Wir suchen n linear unabhangige Spalten, also eine Basis der Spalten.
2. Wir tauschen Basen aus, bis wir einen zulassigen Punkt erhalten.
3. Wir tauschen Basen aus, bis wir ein Optimum erhalten. Dabei bleiben wir immer
im zulassigen Bereich.
Wir konzentrieren uns zunachst auf die Phase 3. Also nehmen wir an, dass wir eine zulassige Ecke gefunden haben, die wir mit Einheitsvektoren darstellen. In vielen
Problemen ist das automatisch der Fall.
1.33. Beispiel: In dem einfachen Problem aus Beispiel 2 hat schon das Ausgangstableau
nach der U bersetzung in die Standardform die korrekte Form, und wir benden uns in
einer zulassigen Ecke.
x
y
s1 s2
1 1 1 0 1000
4 5 0 1 4500
5 6 0 0
0
Man beachte, dass in der Standardform minimiert, nicht maximiert, wird. Unsere Ausgangsbasis enthalt hier die Spalten fur die Schlupfvariablen fs1 ; s2 g. Unser Ausgangspunkt ist daher
s1 = 1000; s2 = 4500
x = y = 0:
Dies entspricht in der x -y -Ebene dem Koordinatenursprung. Aktiv sind lediglich die
Nebenbedingungen x 0 und y 0. Der momentane Zielwert ist 0.
Wahrend des Simplex-Algorithmus konnen nun die folgenden Falle auftreten. Wir gehen
von einer zulassigen Spaltenbasis J aus und nehmen an dass
cj = 0
fur alle j
2J
gilt. Dies ist der Zustand, wie man ihn mit Hilfe des Gau-Algorithmus herstellt, sobald
eine Spaltenbasis J gewahlt wurde.
31
1.5. DER SIMPLEX-ALGORITHMUS
Fall 1. Fur die Variablen der Zielfunktion gilt
cj 0
fur alle j 2= J
In diesem Fall haben wir oenbar ein Minimum gefunden. Denn die Variablen xj , j 2
J , wirken sich nicht auf die Zielfunktion aus, und die anderen Variablen machen die
Zielfunktion hochstens groer, wenn sie ungleich 0 gesetzt wurden.
Fall 2. Fur ein j0 2= J gilt
cj < 0:
0
In diesem Fall gibt es zwei Moglichkeiten.
Fall 2.a. Falls die Eintrage in der j0 -ten Spalte
a1;j ; : : : ; am;j 0
0
0
erfullen, so ist das Problem nicht nach unten beschrankt. Die Zielfunktion kann durch
Erhohen der Variablen xj beliebig klein gemacht werden. Damit die Nebenbedingungen
weiter erfullt sind, mussen die Variablen der Basisspalten verandert werden. Sie werden
aber in diesem Fall hochstens groer.
0
Fall 2.b. Falls es einen Eintrag in der j0 -ten Spalte mit
ai ;j > 0
0 0
gibt, so fuhren wir einen Basistausch durch. Dazu wird der Gau-Algorithmus mit
diesem Pivot-Element durchgefuhrt. Damit wir eine zulassige Ecke erhalten, muss fur
die neuen Elemente auf der rechten Seite der Nebenbedingung
ai;j bi
ai ;j 0
b~i = bi
0
fur alle i = 1; : : : ; m
0
0 0
gelten. In den Zeilen mit ai;j
so wahlen, dass
0
0 ist dies ohnehin der Fall. Wenn wir die Pivot-Zeile i0
b
bi
= min f i : ai;j > 0g
ai ;j
ai;j
ist, so ist es in der Tat fur alle i = 1; : : : ; m der Fall. Denn fur ai;j > 0 gilt dann
0
0
0 0
0
0
bi
bi
ai;j ai ;j ;
0
0
0 0
woraus die obige Ungleichung folgt. Der neue Wert in der rechten unteren Ecke des
Tableaus ist
c b
z~i = zi j i zi :
0
ai ;j
0
0 0
Abhangig von bi wird er groer oder bleibt gleich.
0
32
KAPITEL 1. LINEARE OPTIMIERUNG
Fall 2.b.i. Der Wert der Zielfunktion zi wird groer, wenn
bi > 0
0
ist.
Fall 2.b.ii. Falls in jeder Spalte j0 mit
cj < 0
0
ein ai ;j > 0 existiert mit bi = 0, so muss man in jeder Spalte ein i0 wahlen mit
bi = 0, um im zulassigen Bereich zu bleiben. Dann bleibt der Zielwert gleich, egal
welches j0 wir zum Basistausch wahlen. Wir wahlen in diesem Fall die Spalte
0 0
0
0
j0 = min fj : cj < 0g
In dieser Spalte wahlen wir i0 mit ai ;j > 0 und bi = 0, so dass die aus der Basis
ausgetauschte Spalte einen minimalen Index hat. Dies ist die Regel die Regel von
Bland.
0 0
0
Ohne die Regel von Bland kann es theoretisch zu Zyklen kommen. Die Regel lost
altere, zyklenvermeidende Algorithmen ab. In der Praxis wird das Problem von Zyklen
jedoch auch bei einfacheren Austauschregeln nicht beobachtet. Fur einen moglichst
schnellen Abstieg konnte man etwa das kleinste cj < 0 wahlen. Es existieren daneben
noch weitere Heuristiken, die den Algorithmus beschleunigen sollen.
1.34. Beispiel: Wir rechnen das Beispiel 2 mit Euler durch. Das Ausgangstableau ist
das folgende.
>format(10,0);
>A=[1,1;4,5]; b=[1000,4500]'; c=[5,6];
>M=(A|id(2)|b)_-c
1
1
1
0
4
5
0
1
-5
-6
0
0
1000
4500
0
Wit benden uns im Fall 2. Wir wahlen j0 = 1, also die minimal mogliche Spalte
mit cj < 0. In dieser Spalte sind alle Elemente groer als 0. Wir mussen daher die
Quotienten
1000 4500
; 4
1
vergleichen. Das Minimum ist der erste Quotient, so dass wir i0 = 1 wahlen.
33
1.5. DER SIMPLEX-ALGORITHMUS
>pivotize(M,1,1)
1
1
0
1
0
-1
1
-4
5
0
1
0
1000
500
5000
In der Tat erhalten wir einen neuen zulassigen Punkt mit
x = 1000; y = 0; s1 = 0; s2 = 1
und der Zielfunktion mit Wert 5000, also einem besseren Wert. In der x -y -Ebene
benden wir uns nun in der Ecke x = 1000 und y = 0 des Polytop.
Im nachsten Schritt ist c2 < 0. Also wahlen wir j0 = 2. Wieder ist die Spalte durchgehend positiv, und wir vergleichen
1000 500
; 1
1
Diesmal ist das Minimum in i0 = 2.
>pivotize(M,2,2)
1
0
0
0
1
0
5
-4
1
-1
1
1
500
500
5500
Wir erhalten den zulassigen Punkt
x = 500; y = 500; s1 = 0; s2 = 0
und wir erkennen, dass der Fall 1 vorliegt. Wir haben unser Minimum gefunden. Es
traten in diesem Fall keine degenerierten Ecken auf und die Zielfunktion verbesserte
sich in jedem Schritt.
Um den Beweis des folgenden Satzes zu verstehen, muss man sich klarmachen, dass
alle Zeilen des Simplex-Tableaus Gleichungen sind, und dass das Tableau A quivalenzUmformungen von P1 nach P2 vornimmt. Wenn also ein Vektor v die Nebenbedingungen in P1 erfullt, so erfullt er automatisch auch die Nebenbedingungen in P2. Auerdem
muss sich derselbe Wert von z aus der Zeile fur die Zielfunktion ergeben. Das gilt auch,
wenn v 0 nicht erfullt ist.
1.35 Satz: Wir bewegen uns mit dem oben beschriebenen Algorithmus ausgehend
von einer zulassigen Ecke immer zu einer anderen zulassigen Ecke.
Falls eine Ecke nicht degeneriert ist, so wird die Zielfunktion kleiner. In einer degenerierten Ecken bleibt die Zielfunktion gleich.
Unter Beachtung der Regel von Bland in degenerierten Ecken erreichen wir nach endlich vielen Schritten ein Ergebnis, also ein Optimum oder eine Schema, bei dem wir
erkennen, dass das Problem nicht beschrankt ist.
34
KAPITEL 1. LINEARE OPTIMIERUNG
Beweis: Da es nur endlich viele Basen, also nur endlich viele mogliche Ecken gibt,
mussen wir nachweisen, dass wir uns in keinem Zyklus von Ecken bewegen. Wenn das
nicht der Fall ist, nimmt die Zielfunktion im Laufe des Algorithmus garantiert zu, und
wir erreichen das Optimum.
Angenommen, wir haben einen Zyklus von Spaltenbasen
J1 ! J2 ! : : : ! Jk = J1 :
Die Zielfunktion kann dabei nicht zunehmen. Wir bewegen uns also von einer degenierierter Ecke zur anderen. Die Zielfunktion bleibt unverandert. Wenn ai;j als Pivot
verwendet wird, so ist immer bi = 0.
Zur Vereinfachung der Darstellung schreiben wir den Simplex-Algorithmus nun ohne
Zeilenvertauschungen. Die Einheitsvektoren erscheinen dann in den Basisspalten permutiert. Wir reduzieren das Problem auf die Zeilen und Spalten der Pivot-Elemente
ai;j , die im Zyklus zum Austausch verwendet werden. Im reduzierten Schema ist die
rechte Seite gleich 0.
Die Rechnung im Originalschema entspricht einem Simplex-Algorithmus im reduzierten
Schema unter Beachtung der Regel von Bland. Wir mussen zeigen, dass die Regel von
Bland entweder ein Optimum dieses neuen Schemas ndet oder erkennt, dass das
reduzierte Problem nicht beschrankt ist. Denn nur in diesem Fallen wird der Zyklus
beendet.
Wir konnen also von vorn herein annehmen, dass unser Problem die rechte Seite 0 hat
und dass alle Zeilen im Austausch beteiligt sind. Wir mussen zeigen, dass die Regel
von Bland dann zum Ziel fuhrt.
Sei P1 das Schema zu dem Zeitpunkt, in dem die letzte Spalte (die n-te Spalte) zum
ersten Mal eingetauscht wird. Die reduzierte Zielfunktion hat dann also die Eigenschaft
c1 0; : : : ; cn 1 0; cn < 0;
(P1)
weil wir die Spalte mit cj < 0 immer mit minimalem j nehmen. Ein typisches Schema
dieser Form ist
1 0 0 1 2 0
1 0 1 0 2 0
4 1 0 0 1 0
5 0 0 0 3 0
Hier ware die Spalte n = 5 gegen k = 2 einzutauschen. Nach dem Austausch stehe
o.B.d.A. der Einheitsvektor em in der n-ten Spalte.
Bis zum Austausch der letzten Spalte wird nun ein Simplex-Algorithmus gema der
Regel von Bland durchgefuhrt, wobei nur die ersten n 1 Spalten beteiligt sind. Wir
bezeichnen das Schema vor dem Austausch der n-ten Spalte als P2 . In der letzten
35
1.5. DER SIMPLEX-ALGORITHMUS
Spalte von P2 steht dann immer noch em . Die Spalte k wird gegen n eingetauscht,
wenn c1 ; : : : ; ck 1 0 sind und
ck < 0; am;k > 0:
(P2.1)
Auerdem muss gelten
ai;k 0
fur alle i = 1; : : : ; m
1:
(P2.2)
Denn sonst wurde man nach der Regel von Bland eine andere Spalte zum Austausch
wahlen. Ein typisches Schema dieser Form ist
1
1
4
5
1
0
5
6
0
1
0
0
1
0
0
0
0
0
1
0
0
0
0
0
Hier ware k = 2 zu wahlen, und die Spalte n = 5 musste ausgetauscht werden.
Nun konnen wir einen Vektor konstruieren, der die Gleichungen in P2 lost (wobei die
rechte Seite ja immer gleich 0 ist). Die Basisspalten in P2 seien
J = fj1 ; : : : ; jm g:
Es gilt dann also jm = n. Wir setzen vk = 1,
vjl = ai;l
fur l = 1; : : : ; m
und vj = 0 sonst. Im obigen Beispielschema P2 wahlen wir
v = (0; 1; 0; 1; 5)T :
Wenn ein solcher Zyklus auftreten konnte, so lost aufgrund der A quivalenzumformungen
v auch alle Gleichungen in P1 (siehe die obige Bemerkung vor dem Satz). Betrachten
wir die Gleichung der Zielfunktion, so ergeben sich aber unterschiedliche Werte. Wir
haben namlich
v1 ; : : : ; vn 1 0; vn < 0:
Deswegen ergibt sich in P1 der negative Wert ck und in P2 wegen der Ungleichungen
(P2), die in diesem Schema gelten, ein positiver Wert.
Dieser Widerspruch bedeutet, dass der Fall eines Austausches der Spalte n nicht vorkommen kann, sobald diese Spalte einmal eingetauscht ist. Es kann also kein Zyklus
auftreten.
q.e.d.
36
KAPITEL 1. LINEARE OPTIMIERUNG
Entscheiden Sie bei dem folgenden Problem in Standardform, ob das Problem
beschrankt ist, oder ob x = 0 das Minimum darstellt.
1.36 Aufgabe:
x1
x2
x3
x4
x5
x6
1
0
0
0 100 10
1 1
1
0
1
1
1
1
1
1 0
10 0
0 :9 0
Verwenden Sie die Regel von Bland. Machen Sie dasselbe fur das Problem
x1
x2
x3
x4
x5
x6
1
0
0
0 100 10
1 1
1
0
1
1
1
1
1
1 0
10 0
1 0
Beachten Sie, dass alle besuchten Ecken degeneriert sind. Die Zielfunktion hat immer denselben
Wert 0.
1.6 Unbeschrankte Variablen
Man kann den Simplex-Algorithmus auch fur nicht beschrankte Variablen xj modizieren, so dass man diese Variablen nicht in zwei Anteile aufspalten muss. Dazu nimmt man
die Spalte j dauerhaft in die Basis auf. Sie wird beim Austausch niemals berucksichtigt,
und es ist auch gleichgultig, ob bj 0 gilt.
Das bewirkt, dass eine Zeile und eine Spalte faktisch gestrichen wird. Man kann nach
dem Optimieren des restlichen Schemas xj aus der eliminierten Zeile ermitteln.
1.37. Beispiel: Die Auszahlungsmatrix eines Spiels fuhre auf das Optimierungsproblem
2p1 3p2 G
6p1 + 5p2 G
p1 + p2 = 1
G ! Max.
Wir uberfuhren dies in Standardform wie folgt.
G 2p1 + 3p2 + s1 = 0
G + 6p1 5p2 + s2 = 0
p1 + p2 = 1
G ! Min.
Wir wahlen nun die ersten drei Spalten als Basis-Spalten.
37
1.7. DIE GAUSS-JORDAN-FORM
>fracformat(8);
>M=[1,-2,3,1,0,0;1,6,-5,0,1,0;0,1,1,0,0,1;-1]
1
-2
3
1
0
0
1
6
-5
0
1
0
0
1
1
0
0
1
-1
0
0
0
0
0
>pivotize(M,1,1); pivotize(M,2,2); pivotize(M,3,3)
1
0
0 11/16
5/16
-1/2
0
1
0 -1/16
1/16
1/2
0
0
1
1/16 -1/16
1/2
0
0
0 11/16
5/16
-1/2
Die erste Spalte enthalt die Basis-Variable G und wir beachten die erste Spalte und
Zeile zunachst nicht. Dann haben wir eine zulassige Ecke p1 = p2 = 1= gefunden, die
optimal ist. Aus der ersten Zeile ergibt sich G = 1=2.
1.38 Aufgabe:
Wir untersuchen das Optimierungsproblem
2x + y
3;
x
+ 4 y 5;
2x 3y
x +y ! Max.:
3; 2 x + y
2
Die Variablen x ; y seien nicht beschrankt. Fuhren Sie dann im Standard-Schema den GauAlgorithmus fur die ersten beiden Spalten durch, so dass x und y aus der dritten bis vierten
Zeile und der Zielfunktion verschwinden. Losen Sie dann das verbleibende Problem und nden
Sie so die optimalen x ; y .
1.7 Die Gau-Jordan-Form
Das Schema kann auch in Gau-Jordan-Form geschrieben werden. Dabei werden die
Basisspalten, die ja ohnehin nur die Einheitsvektoren enthalten nicht aufgeschrieben.
Statt dessen werden die Variablen dieser Spalten notiert.
Der Austausch mit Pivot in (i0 ; j0 ) erfolgt nun nach folgenden Regeln
M~ i;j = Mi;j
Mi;j Mi ;j
Mi ;j
0
0
0 0
fur i =
6 i0 und j =6 j0, sowie
M
M~ i ;j = M i;j
0
fur j =
6 j0,
0
i0 ;j0
M
M~ i;j = M i;j
i ;j
0
0
fur i =
6 i0, sowie
0 0
1
M~ i ;j = M :
i ;j
0 0
0 0
38
KAPITEL 1. LINEARE OPTIMIERUNG
Naturlich kann man das mit Euler rechnen. Dazu gibt es eine Variante der Funktion
pivotize namens gjstep, die die Indizes mitfuhrt, und die Funktion gjprint, die das
Schema mit Variablen ausgibt.
>shortformat;
>A=[1,1;4,5]; b=[1000,4500]'; c=[5,6];
>M=(A|b)_-c
1
1
1000
4
5
4500
-5
-6
0
>v=["s1","s2","","x","y"]; n=1:5;
>load gaussjordan;
>gjstep(M,1,1,n,v)
s1
y
x
1.000
1.000 1000.000
s2
-4.000
1.000 500.000
5.000
-1.000 5000.000
>gjstep(M,2,2,n,v);
s1
s2
x
5.000
-1.000 500.000
y
-4.000
1.000 500.000
1.000
1.000 5500.000
Abbildung 1.6: Gau-Jordan Schreibweise
1.39. Beispiel: In der Ausgangsform dieses Beispiels schreiben wir das Schema als
x
s1 1
s2 4
5
y
1 1000
5 4500
6 0
Die erste Zeile dieses Schemas ist als
s1 + x + y = 1000
zu lesen. Die Zielfunktion als
5x
6y = 0 + z:
Wir beginnen mit demselben Schema M allerdings ohne die Einheitsvektoren (siehe
Abbildung 1.6).
Wie oben tauschen wir nun x gegen s1 , und dann y gegen s2 . Man kann das Ergebnis
nun leicht ablesen, wenn man die Spaltenvariablen einfach gleich 0 setzt.
39
1.7. DIE GAUSS-JORDAN-FORM
Abbildung 1.7: Kegelformiges Z
1.40. Beispiel: Im diesem Beispiel tritt der Fall 2.b.ii auf, ohne dass das Minimum
schon erreicht wird. Das Polytop
x 1
y +x 1
y 1+x
x +z 1
z 1+x
Stellt eine quadratische Pyramide (siehe Abbildung 1.7) auf der Flache x = 1 dar mit
Spitze in
x = 0; y = z = 1:
Wir maximieren
z ! Max.
Die Spitze der Pyramide ist durch vier Nebenbedingungen festgelegt. Nur wenn man
zwei richtige Nebenbedingungen behalt, kann man gegen x = 1 austauschen und die
Funktion z vergroern.
40
KAPITEL 1. LINEARE OPTIMIERUNG
>A=[1,0,0;-1,-1,0;-1,1,0;-1,0,-1;-1,0,1];
>b=[1,-1,1,-1,1]';
>M=A|b_[0,0,-1];
>v=["s1","s2","s3","s4","s5","","x","y","z"]; n=1:cols(v);
>load gaussjordan;
>gjprint(M,n,v,digits=0,length=5)
x
y
z
s1
1
0
0
1
s2 -1 -1
0 -1
s3 -1
1
0
1
s4 -1
0 -1 -1
s5 -1
0
1
1
0
0 -1
0
>pivotize(M,2,2,n);
>pivotize(M,4,3,n);
>gjprint(M,n,v,digits=0,length=5)
x s2 s4
s1
1
0
0
1
y
1 -1
0
1
s3 -2
1
0
0
z
1 -0 -1
1
s5 -2
0
1
0
1
0 -1
1
>pivotize(M,5,3,n);
>gjprint(M,n,v,digits=0,length=5)
x s2 s5
s1
1
0
0
1
y
1 -1
0
1
s3 -2
1
0
0
z -1
0
1
1
s4 -2
0
1
0
-1
0
1
1
>pivotize(M,1,1,n);
>gjprint(M,n,v,digits=0,length=5)
s1 s2 s5
x
1
0
0
1
y -1 -1
0
0
s3
2
1
0
2
z
1
0
1
2
s4
2
0
1
2
1
0
1
2
Abbildung 1.8: Degeneriertes Problem
41
1.8. AUFFINDEN EINER AUSGANGSECKE
Schreibt man dieses Problem in der Standardform, so hat man zunachst keine oensichtliche Ecke. Wir verwenden fur die Rechnung in Abbildung 1.8 die Gau-JordanForm. Der Punkt x = y = z = 0 ist nicht zulassig. Nach dem Austausch von y = 0
und z = 0 erhalt man aber eine zulassige Ecke.
Es tritt nun aber der Fall 2.b.ii auf, da nur die s5 und s4 fur einen Austausch in Frage
kommt, aber die rechte Seite gleich 0 ist. Dies ist ein Tableau nach Fall 2.b.i. Wir
erhalten das Minimum
x = 1; y = 0; z = 2
in einem Schritt.
Entfernen Sie im vorigen Beispiel die Nebenbedingung
Problem nicht beschrankt. Wann sieht man das?
1.41 Aufgabe:
x
1. Dann ist das
1.8 Aunden einer Ausgangsecke
Wir konnen annehmen, dass das Problem in der Form
Ax = b; x 0; b 0
c T x ! Min.
gegeben ist. Falls A alle Einheitsvektoren enthalt, so haben wir wegen b
eine zulassige Ecke gefunden.
0 schon
U berlegen Sie sich dass dies der Fall ist, wenn wir ein Problem in der Form
b mit b 0 in Standardform schreiben.
1.42 Aufgabe:
Ax
Falls nicht, so erweitern wir A mit zusatzlichen Variablen
t1 ; : : : ; tm
in der Form
und losen das Hilfsproblem
Ax + t = b; t 0
m
X
j =1
tj ! Min.
Das Hilfsproblem ist oenbar nach unten beschrankt, und
x = 0; t = b
ist eine zulassige Ausgangsecke, deren Basis aus den Spalten der Variablen tj besteht.
Genau dann hat das Ausgangssystem eine zulassige Ecke, wenn dieses Problem den
Minimalwert 0 annimmt.
42
KAPITEL 1. LINEARE OPTIMIERUNG
Nach der Losung des Problems haben wir Basisspalten.
Fall 1. Falls diese Spalten keine Spalten umfassen, die zu einer Hilfsvariablen tj gehoren,
so konnen wir sie als Basis unseres Ausgangsproblems hernehmen.
Fall 2. Ansonsten ist das entsprechende bj = 0, und wir konnen die Spalte tj durch
eine andere Spalte austauschen, ohne den zulassigen Bereich zu verlassen.
In jedem Fall nden wir eine Ausgangsecke, und haben gleich eine Basis berechnet.
1.43. Beispiel: Wir suchen eine Ausgangsecke fur das Optimierungsproblem
1 2 3
4 5 6
x =
1
1 ; x
0:
Die Zielfunktion spielt dazu zunachst keine Rolle. Wir geben die Matrix fur das Hilfsproblem Ax + t = b, x; t 0 in Euler ein.
>M=[1,2,3,1,0,1;4,5,6,0,1,1;0,0,0,1,1,0]
1
2
3
1
4
5
6
0
0
0
0
1
0
1
1
1
1
0
Dies ist keine Eckenform. Dazu stellen wir die Variablen der Zielfunktion zunachst auf
0.
>pivotize(M,1,4);
>pivotize(M,2,5)
1
2
4
5
-5
-7
3
6
-9
1
0
0
0
1
0
1
1
-2
In der Zielfunktion stehen nun die negativen Summen der Nebenbedingungen. Wir
tauschen die Spalte mit 9 ein.
>pivotize(M,2,3)
-1
-0.5
0.667
0.833
1
0.5
0
1
0
1
0
0
-0.5
0.167
1.5
0.5
0.167
-0.5
Nach diesem einen Schritt erkennen wir, dass das Hilfsproblem das Minimum 0:5 hat.
Also gibt es keinen zulassigen Punkt.
1.44. Beispiel: Wir wandeln das Ausgangsproblem ein klein wenig ab.
>M=[1,2,3,1,0,1;4,5,6,0,1,2;0,0,0,1,1,0]
1
2
3
1
4
5
6
0
0
0
0
1
und fuhren dieselben Schritte durch.
0
1
1
1
2
0
43
1.8. AUFFINDEN EINER AUSGANGSECKE
>pivotize(M,1,4);
>pivotize(M,2,5)
1
2
4
5
-5
-7
>pivotize(M,2,3)
-1
-0.5
0.667
0.833
1
0.5
3
6
-9
1
0
0
0
1
0
1
2
-3
0
1
0
1
0
0
-0.5
0.167
1.5
0
0.333
0
Das Hilfsproblem hat nun das Minimum 0. Es wird in
1
x1 = x2 = 0; x3 = 3 ; t1 = t2 = 0
angenommen. Dies ist eine degenerierte Ecke. Da wir die Basisspalten in den Spalten
von x benotigen, tauschen wir x1 gegen t1 .
>pivotize(M,1,1)
1
0.5
0
0.5
0
0
0
1
0
-1
0.667
1
0.5
-0.167
1
0
0.333
0
Mit diesem Ausangstableau konnen wir nun den Simplex-Algorithmus starten. Um zum
Beispiel
y
x + 2 + z ! Min.
zu optimieren, wahlen wir das Schema
>M=M[1:2,[1,2,3,6]]_[1,0.5,1,0]
1
0.5
0
0
0.5
1
1
0.5
1
0
0.333
0
Dieses Schema mussen wir auf Basisform bringen.
>pivotize(M,1,1); pivotize(M,2,3)
1
0.5
0
0
0
0.5
1
0.333
0
-0.5
0
-0.333
Wir tauschen x2 in dieser degenerierten Ecke gegen x1 .
44
KAPITEL 1. LINEARE OPTIMIERUNG
>pivotize(M,1,2)
2
-1
1
1
0
0
0
1
0
0
0.333
-0.333
Damit das Minimum gefunden.
Es gibt eine alternative Vorgehensweise. Angenommen wir haben eine Basisform hergestellt. Dann ist es moglich, dass b 0 nicht der Fall ist. Dann tauschen wir (i0 ; j0 )
aus, so dass
bi < 0; ai ;j < 0
0
0 0
ist und zunachst i0 , dann j0 minimal.
Falls zu bi < 0 kein solches ai ;j < 0 existiert, so gibt es oensichtlich keinen zulassigen
Punkt.
0
0 0
1.45. Beispiel: Wir behandeln dasselbe Problem wie eben.
>M=[1,2,3,1;4,5,6,2;1,0.5,1]
1
2
3
1
4
5
6
2
1
0.5
1
0
>pivotize(M,1,1); pivotize(M,2,2)
1
0
-1
-0.333
0
1
2
0.667
0
0
1
0
Nun ist x1 = 1=3 nicht zulassig. Also tauschen wir aus.
>pivotize(M,1,3)
-1
2
1
0
1
0
1
0
0
0.333
0
-0.333
Wir gelangen hier zufallig sofort in eine zulassige Ecke, die auch minimal ist.
1.46. Beispiel: Wir rechnen das Diatenproblem aus Beispiel 4 mit diesem Mitteln nach,
wobei wir die Darstellung in Gau-Jordan-Form wahlen.
1.8. AUFFINDEN EINER AUSGANGSECKE
45
>load gaussjordan;
>A=[-2,-1;-1,-1;-1,-2];
>b=[-4,-3,-4]';
>c=[3,2];
>M=(A|b)_c;
>v=["s1","s2","s3","","x","y"]; n=1:6;
>gjprint(M,n,v)
x
y
s1
-2.000
-1.000
-4.000
s2
-1.000
-1.000
-3.000
s3
-1.000
-2.000
-4.000
3.000
2.000
0.000
Dies ist keine zulassige Ecke. Wir tauschen s1 gegen x .
>gjstep(M,1,1,n,v);
x
s2
s3
s1
-0.500
-0.500
-0.500
1.500
y
0.500
-0.500
-1.500
0.500
2.000
-1.000
-2.000
-6.000
Das ist immer noch keine zulassige Ecke. Zwei weitere Tauschaktionen gema der
Regel fur die minimalen Indizes ergeben eine zulassige Ecke im Punkt
x = 4; y = 0:
Dies ist der kleinste Punkt auf der x -Achse, der im zulassigen Bereich liegt.
>gjstep(M,2,1,n);
>gjstep(M,3,1,n,v);
x
s1
s2
s3
-1.000
-2.000
-1.000
3.000
y
2.000
3.000
1.000
-4.000
4.000
4.000
1.000
-12.000
Nun benotigen wir zwei Schritte, um das Minimum in
x = 1; y = 2
zu nden.
46
KAPITEL 1. LINEARE OPTIMIERUNG
>gjstep(M,3,2,n,v)
s3
1.000
1.000
-1.000
-1.000
>gjstep(M,2,1,n,v)
s1
x
-1.000
s3
1.000
y
1.000
1.000
x
s1
y
s2
-2.000
-3.000
1.000
4.000
2.000
1.000
1.000
-8.000
s2
1.000
-3.000
-2.000
1.000
1.000
1.000
2.000
-7.000
1.9 Der Revidierte Simplex-Algorithmus
Die Anwendung des Gau-Algorithmus auf die Zeilen einer Matrix entspricht der Multiplikation mit Elementarmatrizen von links. In unsrem Fall wird A mit AJ 1 von links
multipliziert, wobei AJ aus den Spalten J der Matrix A besteht. Dadurch entsteht in
den Spalten J die Einheitsmatrix Im .
Wir transformieren also
A b ! A~ b~
cT 0
c~T z~
mit
A~ = AJ 1 A; b~ = AJ 1 b:
Es gilt dann A~J = Im . Wegen c~JT = 0 werden die die Linearkombinationen mit Koezienten in cJ der Zeilen von A~ von c T abgezogen. Es gilt also
cJT A~ = c T
c~T = c T
cJT AJ 1 A:
Die Zielfunktion hat in der Ecke den Wert z~. Es gilt aufgrund der Berechnung
z~ = cJT b~ = cJ AJ 1 b:
Die zum Schema gehorige Ecke ist dann deniert durch
xJ = b~ = AJ 1 b
was dem Gleichungssystem AJ xJ = b entspricht. Es gilt
xj = 0
fur alle j 2= J .
Wir rechnen den Wert der Zielfunktion nach. Es kommt tatsachlich
c T x = c~T x + cJT AJ 1 Ax = 0 + cJT AJ 1 b = z~
47
1.9. DER REVIDIERTE SIMPLEX-ALGORITHMUS
heraus.
Der revidierte Simplex-Algorithmus speichert nicht das geanderte Schema, sondern nur
die Matrizen und Vektoren
AJ 1 ; AJ 1 b; cJT AJ 1 :
Zur Ermittlung der auszutauschenden Spalte benotigen wir
c~j = cj (cJT AJ 1 )aj :
fur j 2= J . Das lasst sich leicht berechnen. Danach benotigen wir
vj = AJ 1 aj ;
wobei vj die j -te Spalte des Simplex-Tableaus bezeichne. Auch das lasst sich einfach
berechnen. Wir konnen damit den Pivot (i; j ) fur den Austausch wie gewohnt ermitteln.
Angenommen, die Spalte j wird gegen die Spalte i 2 J eingetauscht, so dass im
nachsten Schritt
J 0 = (J n fi g) [ fj g:
entsteht. Dann ist es nicht notig, mit der Berechnung der Inversen AJ von vorne zu
beginnen. Wie die folgende U bung zeigt, genugt es mit zulassigen Zeilenoperationen
0
(AJ 1 jvj ) ! (AJ 1 jei )
0
umzuformen.
1.47. Beispiel: In Abbildung 1.9 fuhren wir vor, wie die Matrix AJ 1 berechnet werden.
0
In diesem Beispiel tauschen wir die erste Spalte von
1 2
A= 3 4
gegen den Vektor
a = 56
aus.
Sei B = A 1 , A 2 R mit Spalten
fur elementaren Zeilenumformungen, so dass
n
1.48 Aufgabe:
n
LBv
gilt. Zeigen Sie
(v1 ; : : : ; v
i
v1 ; : : : ; vn .
Sei
L
eine Elementarmatrix
=e
i
1 ; v ; vi +1 ; : : : ; vn
)
1
= LB:
Verwenden Sie
=e
fur alle j =
6 i . Begrunden Sie damit die Vorgehensweise bei der Berechnung von A
Lej
j
Die Vorteile des revidierten Simplex-Algorithmus sind:
1
J0
aus A 1 .
J
48
KAPITEL 1. LINEARE OPTIMIERUNG
>A=[1,2;3,4]
>B=inv(A)
>a=[5;6]
>M=B|B.a
1
3
2
4
-2
1.5
1
-0.5
5
6
-2
1.5
>M=pivotize(M,1,3)
0.5
-0.75
>tB=M[:,[1:2]]
0.5
-0.75
>tB.(a|A[:,2])
1
0
1
-0.5
-4
4.5
-0.25
0.625
1
0
-0.25
0.625
0
1
Abbildung 1.9: Update von B = AJ 1
Der Speicherverbrauch wird reduziert.
Die Rundungsfehler, die sich im Schema aufschaukeln konnten, treten nicht auf.
Zur Unterstutzung kann man die Berechnung von AJ 1 nach einer festgelegten
Anzahl von Schritten neu beginnen.
Bei schwach besetzten Matrizen werden in jedem Schritt nur sehr wenige Operationen benotigt.
Man beachte allerdings, dass der Algorithmus nicht lohnt, wenn m gro und n m klein
ist. Denn es muss die m m-Matrix AJ 1 gespeichert werden. Fur schwach besetzte
Matrizen kann man sich moglicherweise die Speicherung von AJ 1 sparen, und statt
dessen zur Berechnung der benotigten Groen einen Algorithmus fur schwach besetzte
Matrizen verwenden.
1.10 Dualitat
1.49. Denition: Wir denieren zum primalen Problem (P)
Ax = b; x 0
c T x ! Min.
1.10. DUALITAT
49
das duale Problem (D)
AT y c
bT y ! Max.
Man beachte, dass im dualen Problem y
0 nicht gefordert wird.
Die Denition wird spater fur Problem erweitert, die nicht in Standardform gegeben
sind. Zunachst gilt folgende einfache Beobachtung.
1.50 Satz: Wenn x zulassig fur das primale Problem (P) ist, und y zulassig fur das
duale Problem (D), dann gilt
bT y c T x:
Beweis: Der Beweis ist sehr einfach.
bT y = (Ax )T y = x T AT y x T c
wegen x
0.
q.e.d.
Es folgt, dass keines der Probleme unbeschrankt sein kann, wenn das andere einen
zulassigen Punkt hat. Wenn ein Problem unbeschrankt ist, kann das andere nicht losbar
sein.
Weiter folgt, dass beide Probleme ein Optimum besitzen, wenn sie beide zulassige
Punkte haben. Denn ein beschranktes Problem mit zulassigem Punkt nimmt ein Optimum in einer Ecke an. (Satz 25). Der folgende Satz stellt sicher, dass die beiden
Optimalwerte in diesem Fall gleich sind.
In der Tat sind die Mengen der fur (D) oder fur (P) moglichen Zielwerte abgeschlossene
Intervalle ID und IP . Der obige Satz besagt also
ID IP
ID kann nach unten, und IP nach oben unbeschrankt sein. Wenn aber ID nach oben
unbeschrankt ist, so ist IP leer. Wenn IP nach unten unbeschrankt ist, so ist ID leer.
Es ist auch moglich, dass beide leer sind. Wenn beide nicht leer sind, so folgt aber aus
dem folgenden Satz, dass
max ID = min IP
gilt.
1.51 Satz: Wenn (P) ein Optimum x hat, so hat auch (D) ein Optimum y und es
gilt
bT y = c T x:
50
KAPITEL 1. LINEARE OPTIMIERUNG
Wir werden diesen Satz spater zu einem allgemeinen Dualitatssatz verallgemeinern.
Beweis: Wir haben bewiesen, dass der Simplex-Algorithmus fur das Problem (P) in
Standardform endet. Man kann nun aus dem Simplex-Tableau am Ende des Algorithmus das Optimum y des dualen Problems (D) ablesen.
Sei J die Spaltenbasis am Ende des Simplex-Algorithmus. Wir behaupten
y = (ATJ ) 1 cJ :
y ist also Losung des Gleichungssystems
ATJ y = cJ :
Um zu zeigen, dass y fur (P) zulassig ist, berechnen wir
cT
y T A = c~T + cJT AJ 1 A y T A
= c~T + ((ATJ ) 1 cJ )T A y T A
= c~T :
Nun endet der Simplex-Algorithmus mit c~ 0. Es folgt
AT y c:
Um zu zeigen, dass y optimal fur (P) ist, bestimmen wir das Optimum x wie oben
durch
xJ = b~ = AJ 1 b
und xj = 0 fur j 2= J . Damit gilt
bT y = bT (ATJ ) 1 cJ = (AJ 1 b)T cJ = xJT cJ = x T c = c T x:
Aufgrund des vorigen Satzes folgt, dass y optimal fur (P) ist.
q.e.d.
Der Beweis sieht trickreich aus. Wir haben aber zum Aunden eines zulassigen y
lediglich eine geeignete Linearkombination der Zeilen von A von c zu subtrahieren, so
dass das Ergebnis nicht-negativ ist. Genau das macht der Simplex-Algorithmus.
Dass die Zielfunktion gleich ist, sieht man, wenn man das Problem auf die Spalten in J
reduziert. Die letzte Zeile des Beweises zeigt dann, dass die Zielfunktion gleich sein
muss.
1.52. Beispiel: Es sei
A = 12 21
2 1
3
;
b
=
1 3
2
1.10. DUALITAT
und
51
c= 4 5 1 2 :
Die folgende Rechnung in EMT ergibt die Losung
x= 0 0 1 1 T:
>fracformat(8);
>A=[1,2,2,1;2,1,-1,3]
1
2
2
1
2
1
-1
3
>b=[3;2]
3
2
>c=[4,5,1,2]
4
5
1
2
>M=A|b_c
1
2
2
1
2
1
-1
3
4
5
1
2
>pivotize(M,1,1); pivotize(M,2,2)
1
0
-4/3
5/3
0
1
5/3
-1/3
0
0
-2
-3
>pivotize(M,2,3)
1
4/5
0
7/5
0
3/5
1
-1/5
0
6/5
0 -17/5
>pivotize(M,1,4)
5/7
4/7
0
1
1/7
5/7
1
0
17/7
22/7
0
0
3
2
0
1/3
4/3
-8
7/5
4/5
-32/5
1
1
-3
Der Wert der Zielfunktion ist 3. Die Losung der dualen Aufgabe ndet man, indem
man die Spalten 3 und 4 verwendet, also
Wir losen ATJ y = cJ , also
Die duale Losung ist daher
2 1
1 3
Af3;4g =
2
1
y =
1
3
1
2 :
y = 35==77 :
Sie hat ebenfalls den dualen Zielwert 21=7 = 3. Die Spalten konnen in EMT mit ihren
Indizes extrahiert werden. Man beachte aber, dass im Programm c ein Zeilenvektor ist.
52
KAPITEL 1. LINEARE OPTIMIERUNG
>A[,[3,4]]'\c[[3,4]]'
5/7
3/7
Wir konnen die Dualitat verallgemeinern, indem wir andere Probleme zunachst in die
Form P bringen, und dann ein zu D aquivalentes Problem als duales Problem bezeichnen.
1.53. Denition: Dazu sei das Problem P allgemein durch eine Matrix A mit Zeilen
aiT , i = 1; : : : ; m. Die Restriktionen seien
aiT x bi , aiT x bi oder aiT x = bi
und
xj 2 R, xj 0 oder xi 0
Die U bersetzung eines primalen Problems P in ein duales Problem D wird nach folgenden Regeln vorgenommen.
c T x ! Min.
aiT x bi
aiT x = bi
aiT x bi
xj 0
xj 2 R
xj 0
!
!
!
!
!
!
!
bT y ! Max.
yi 0;
yi 2 R;
yi 0;
ATj y cj ;
ATj y = cj ;
ATj y cj :
Dabei seien aiT die Zeilen und Aj die Spalten von A.
Oenbar ist nach diesen U bersetzungsregeln tatsachlich das zu P im Dualitatssatz
duale Problem das dort denierte Problem D. Umgekehrt ist P nach diesen Regeln zu
D dual.
In Verallgemeinerung des obigen Satzes fur primale Probleme in Standardform konnen
wir nun den allgemeinen Dualitatssatz formulieren und beweisen.
1.54 Satz: Seien P und D gema der Denition 53 duale Probleme. Wenn x zulassig
fur das Maximierungs-Problem P und y zulassig fur das duale Minierungs-Problem D
ist, so gilt
c T x bT y
Insbesondere ist P beschrankt, wenn D zulassige Punkte hat und umgekehrt. Wenn
eines der Probleme ein Optimum hat, so hat auch das andere ein Optimum und die
Optimalwerte sind gleich.
1.10. DUALITAT
53
Beweis: Wir zeigen zunachst, dass der Dualitatssatz fur Probleme in der Form (D)
mit dualem (P) gilt. Dazu verwenden wir ein zu (D)
AT y c
bT y ! Max.
(D)
aquivalentes Problem (D1) in Standardform.
AT y+ AT y + s c; y+ ; y ; s 0
bT y+ + bT y ! Min.
Als Tableau geschrieben lautet dieses Problem
AT
bT
A T In
c
bT 0 ! Min.
Das dazu duale Problem (P1) gema der schon bewiesenen Form des Dualitatssatzes
lautet
Ax~ b; Ax~ b; x~ 0
c T x~ ! Max.
Wir setzen nun noch x = x~ und erhalten das aquivalente Problem (P)
Ax = b; x 0
c T x ! Min.
(P)
Aus dem schon bewiesenen Dualitatssatz folgt also der allgemeine Dualitatssatz, wenn
das primale Problem von der Form (D) ist.
Um den Satz vollstandig zu beweisen, schreibt man das allgemeine Maximierungsproblem auf der rechten Seite der U bersetzungstabelle in ein aquivalentes Problem der
Form (D) um.
aiT x bi
aiT x = bi
aiT x bi
xj 0
xj 2 R
xj 0
!
aiT bi ;
T
! ai bi ; aiT bi
!
aiT bi ;
!
xj 0;
!
entfallt;
!
xj 0:
Das dazu duale primale Problem ist wiederum aquivalent zu dem angegebenen Minimierungsproblem. Die Details kann man gema dem folgenden Beispiel herleiten.
q.e.d.
54
KAPITEL 1. LINEARE OPTIMIERUNG
1.55. Beispiel: Unser Originalproblem laute
5 y1 + y2 + y3 10; y1 y2 = 6; y1 0; y2 0
y1 + 2y2 + 3y3 ! Max.
Wir schreiben das Problem schematisch als
y1 0 y2 0 y3 2 R
1
1
1
1
1
1
1
1
0
=
1
2
3
Wir schreiben das Problem in die Form (D).
y1 y2 y3
1
1
1
1
1
0
1
1
1
1
1
0
1
2
5
10
6
! Max.
1
5
10
1
6
0
0
6
0
0
0
0
3 Max.
Das dazu duale Problem in Standardform ist
x~1 x~2 x~3+ x~3
1 1 1
1
1 1
1 1
1 1 0
0
5 10 6
6
s1 s2
1
0
0
0
0
1
0
0
=
1
2
3
! Min.
wobei alle Variablen nicht-negativ vorausgesetzt sind.
Das gema der U bersetzungsregeln entstehende Problem ware
x1 0 x2 0 x3 2 R
1
1
1
5
1
1
1
10
1
1
0
6
1
2
=
3
! Min.
Dies ist aquivalent zum gerade hergeleiteten dualen Problem (*), wenn man
x1 = x~1 ; x2 = x~2 x2 = x~3+ x~3
setzt.
Wir berechnen noch die primale und die duale Losung dieses Problems mit EMT.
(*)
1.10. DUALITAT
55
>fracformat(8)
>A=[1,1,1;1,1,1;1,-1,0]
1
1
1
1
1
1
1
-1
0
>b=[5,10,6]'
5
10
6
>c=[1,2,3]
1
2
3
>eq=[1,-1,0]'
1
-1
0
>r=[1,-1,0]
1
-1
0
>y=simplex(A,b,c,eq,r,>max)
0
-6
16
>c.y
36
>x=simplex(A',c',b',r',-eq',>min)
0
3
1
>b'.x
36
Man beachte, dass sich die Ungleichungen mit umdrehen zu Variablenbedingungen
der Form xi 0. Andererseits fuhren Variablenbedingungen yi 0 zu Ungleichungen
mit .
1.56 Aufgabe:
Schreiben Sie das Problem, zu Zahlen
a1 < : : : < an
ein c 2 R zu nden mit
max jc
i
ai
j ! Min.
als Optimierungsproblem (siehe Aufgabe 11). Wie lautet die oensichtliche Losung? Schreiben
Sie das duale Problem auf, und vergleichen Sie die Losungen.
1.57 Aufgabe:
besagt, dass
Folgern sie aus dem Dualitatssatz 54 das Lemma von Farkas. Dieses Lemma
Ax
= b;
x
bT y
0
genau dann eine Losung besitzt, wenn
0
56
KAPITEL 1. LINEARE OPTIMIERUNG
fur alle y mit A
T
y
0 gilt. Betrachten Sie dazu das Problem
Ax = b; x 0
0 x ! Max.
T
und sein duales Problem.
Es gibt einen allgemeinen Satz aus der Linearen Algebra, der uber allen Korpern
gilt. Er besagt, dass
Ax = b
1.58 Aufgabe:
fur eine Matrix A 2 K genau dann losbar ist, wenn
m
n
=0)b
AT y
fur alle y
2K
m
T
=0
y
gilt. Beweisen Sie diesen Satz. Fur die nicht-triviale Richtung zeigen Sie
Rang Ajb = Rang
indem Sie den Kern von
litatssatz?
AT
AT
bT
= Rang A = Rang A
T
untersuchen. Folgt dieser Satz im Fall
K
= R aus dem Dua-
1.11 Interpretation der Dualitat
Es gibt zunachst eine geometrische Interpretation der Dualitat in einem Problem (D)
der Form
Ax b
cT
! Max.
Wir benotigen dazu den Begri eines Kegels.
1.59. Denition: Ein Kegel ist eine konvexe Teilmenge K Rn mit der Eigenschaft
v 2 K; 0 ) v 2 K
Zeigen Sie, dass der von einer Teilmenge M R erzeugte Kegel (der kleinste
Kegel, der die Menge umfasst) aus allen positive Linearkombinationen der Form
n
1.60 Aufgabe:
k
X
i ai
i =1
mit a
i
2M
1 ; : : : ; k >
0
1.11. INTERPRETATION DER DUALITAT
57
und dem Punkt 0 besteht. Zeigen Sie, dass man mit k n auskommen kann. Folgen Sie dabei
der Idee des Satzes 17 von Caratheodory.
Geben Sie ein Beispiel dafur an, dass der von einer abgeschlossenen Menge
erzeugte Kegel nicht unbedingt abgeschlossen sein muss.
1.61 Aufgabe:
1.62 Satz: Sei Z Rn ein Polytop der Form
Z = fx : aiT x bi , i = 1; : : : ; mg:
mit ai =
6 0 fur alle i . Dann ist x
2 Z genau dann Maximum des linearen Funktionals
f (x ) = c T x;
c 6= 0, wenn es
1 ; : : : ; k > 0
mit k n gibt, so dass
c=
k
X
j =1
fur in x aktive Nebenbedingungen i1 ; : : : ; ik
j aij
2 Ix gilt.
Man beachte, dass vorausgesetzt ist, dass x zulassig ist, und die beteiligten ai;j in x
aktiv sind.
Beweis: Sei x ein Maximum. Dann ist es auch ein Maximum, wenn man die Be-
dingungen auf die in x aktiven Nebenbedingungen reduziert. Denn sonst konnte man
ohne Verletzung der inaktiven Bedingungen einen groeren Wert nden. Das duale
Problem ist dann ein Problem in Standardform, dessen Losung genau die gesuchten
Koezienten i enthalt.
Sei umgekehrt ein solches gegeben. Dann gilt fur alle x~ 2 Z
c T x~ =
k
X
j =1
j aiTj x~ k
X
j =1
j bij =
k
X
j =1
i aiTj x = c T x:
Also liegt in x ein Maximum vor.
q.e.d.
1.63. Beispiel: Wir kommen auf Beispiel 2 zuruck, wo das Polytop durch
x + y 1000; 4x + 5y 4500;
x 0;
y 0
gegeben ist. Im Optimum x = y = 500 sind nur die ersten beiden Bedingungen aktiv.
In der Tat gilt dort
5
1
4
=
+
6
1
5 ;
58
KAPITEL 1. LINEARE OPTIMIERUNG
Abbildung 1.10: Dualitat
so dass die duale Optimalitatsbedingung mit
1 = 2 = 1
erfullt ist.
Die Situation ist in Abbildung 1.10 sichtbar. Dort ist der zulassige Bereich in blau, der
von den aktiven Nebenbedingungen aufgespannte Kegel x + Kx , angesetzt im Optimum
x , in grun und die 50-fach verlangerte Zielfunktion c als Vektor eingezeichnet.
Die beiden Rander des grunen Kegels stehen senkrecht auf den beiden in x aktiven
Nebenbedingungen.
Das duale Problem hat haug eine zum primalen Problem aquivalente Anwendung aus
Sicht einer anderen Person.
1.64. Beispiel: Wir schreiben das zum Spiel in Beispiel 7 duale Problem auf. Das
Optimierungsproblem ist
Mp + G 0;
n
X
i =0
pi = 1; p 0; G 2 R
G ! Max.
1.11. INTERPRETATION DER DUALITAT
59
mit der Auszahlungsmatrix M . Die Matrix dieses Problems, die rechte Seite und die
Zielfunktion sind also
 
0
 :: 

A = 1M 01 ; b = 
 :  ; cT = 0 : : : 0 1 :
0
1
Nach den obigen Regeln ist das duale Problem
M T p~ + G~ 0;
n
X
j =0
p~j = 1; p~ 0; G~ 2 R
G~ ! Min.
Ersetzt man nun M^ = M T und G^ = G~, so erhalten wir dasselbe Problem aus der
Sicht des anderen Spielers. Man beachte, dass M^ die Auszahlungsmatrix aus der Sicht
des anderen Spielers ist.
1.65. Beispiel: Es gibt oft eine betriebswirtschaftliche Interpretation des dualen Pro-
blems. Dazu betrachten wir das Transportproblem aus Beispiel 6. Dazu wird der Transportvorgang an ein Kartell vergeben. Das Kartell kann sich den Vorgang dann durch
freie Preisgestaltung moglichst gunstig organisieren.
Wir stellen uns vor, dass das Kartell die Verkaufspreise p1 ; p2 fur die Produktionsstatten
festsetzt, und Einkaufspreise a1 ; a2 fur die Abnehmer, die naturlich hoher sind, damit
etwas verdient wird. Wir mochten den Gewinn maximieren.
1000p1 + 800p2
1200a1
600a2 ! Max.
Als Nebenbedingungen mussen wir beachten, dass die Preisdierenz zwischen Produzent pi und Abnehmer aj nicht groer als die Transportkosten sein durfen. Sonst wird
das Kartell den Auftrag nicht erhalten. Dies fuhrt auf die Nebenbedingungen
a1 p1 2; a1 p2 3; a2 p1 4; a2 p2 2:
In der Tat ist dieses Problem genau das duale Problem zum Transportproblem. Wie
der Euler-Code in Abbildung 1.11 zeigt, erhalt man die Festsetzungen
p1 = 2; p2 = 0; a1 = 4; a2 = 2:
Das Optimum liegt bei beiden Problem bei 4000.
1.66. Beispiel: Ganz ahnlich kann das duale Problem zu einem Optimierungsproblem
mit Kapazitatsbeschrankungen betriebswirtschaftlich interpretiert werden. Bei der Behandlung unseres Beispiel 2 sind wir zu dem dualen Problem
1 + 42 5; 1 + 52 6;
1 ; 2 0
10001 + 45002 ! Min.
60
KAPITEL 1. LINEARE OPTIMIERUNG
>shortformat;
>A=[1,1,0,0;0,0,1,1;-1,0,-1,0;0,-1,0,-1]
1
1
0
0
0
1
-1
0
-1
0
-1
0
>b=[1000,800,-1200,-600]'
1000
800
-1200
-600
>c=[2,3,4,2]
[ 2 3 4 2 ]
>x=simplex(A,b,c,>min,>check)
1000
0
200
600
>c.x
[ 4000 ]
>Adual=A';
>bdual=-c';
>cdual=-b';
>xdual=simplex(Adual,bdual,cdual,eq=1,>max,>check)
2
0
4
2
>cdual.xdual
[ 4000 ]
0
1
0
-1
Abbildung 1.11: Transportproblem und duales Problem
gelangt.
Dabei ist 1 der Preis fur Boden, und 2 der Preis fur die Arbeit. Der Landwirt verkauft seine gesamten Kapazitaten zu einem Gesamtpreis an einen Abnehmer fur seine
Produkte. Wir optimieren die Preisndung aus Sicht des Abnehmers.
Der Abnehmer ist daran interessiert, die gesamten Kapazitaten (1000 Einheiten Boden
und 4500 Stunden Arbeit) zu einem moglichst niedrigen Gesamtpreis einzukaufen. Dies
ergibt die obige Zielfunktion.
Die Preise fur Boden und Arbeit mussen aber hoch genug sein, damit der Landwirt
durch seinen Grund und seine Arbeit pro Feldfrucht nicht weniger verdient, als er selber
durch den Verkauf dieses Produkts erzielen konnte. Sonst wurde der Landwirt alles in
Eigenregie durchfuhren. Aus Sicht des Abnehmers ergeben dies untere Grenzen fur die
Preise.
1.12. TRENNUNGSSATZE
61
In der Praxis kann der Anbieter einen hoheren Preis fur die Feldfruchte erzielen als der
Landwirt. Dadurch entsteht sein Gewinn.
1.12 Trennungssatze
Der folgende Satz sagt aus, dass man zwei konvexe Mengen durch eine Hyperebene
der Form
E = fv 2 Rn : c T v = g
trennen kann. Er ist ein Beispiel fur einen Trennungssatz.
1.67 Satz: Sei M Rn abgeschlossen und konvex, sowie
x 2= interior M:
Dann existiert eine lineare Funktion f (v ) = c T v mit c 6= 0, und
f (v ) f (x )
Falls
fur alle v
2M
x 2= M
ist, so kann man sogar erreichen, dass
f (v ) > > f (x )
fur alle v
Beweis:
Dann ist
2 M mit einer Konstanten 2 R gilt.
Wir zeigen zunachst den Fall x 2= M . Sei w 2 M beliebig und r = kx w k.
M~ = Dr (x ) \ M
kompakt, nicht leer, und es existiert deswegen ein Minimum von
h(v ) = kv x k
auf M~ , das dann auch ein Minimum auf M ist. Das Minimum werde in y 2 M angenommen. Wir setzen
c = y x; f (v ) = c T x:
Wir behaupten
f (v ) f (y ) > f (x )
fur alle v 2 M
woraus die Behauptung folgt. Angenommen nicht. Dann existiert ein v 2 M mit f (v ) <
f (y ). Fur 0 < < 1 gilt
ky + (v y ) x k2 = ky x k2 + (2hy x; v y i + kv y k2):
62
Nun gilt
KAPITEL 1. LINEARE OPTIMIERUNG
hy x; v y i = c T v c T y = f (v ) f (y ) < 0:
Also gilt fur > 0 klein genug
ky + (v y ) x k < ky x k:
Das ist ein Widerspruch dazu, dass fur 2 [0; 1]
y + (v y ) 2 M
gilt, und y 2 M der Punkt minimalen Abstands zu x war.
Nun nehmen wir x 2 boundary M an. Dann existiert eine Folge (xm )m2N in Rn n M , die
gegen x konvergiert. Wir wahlen nach dem ersten Teil dieses Beweises cm 2 Rn mit
kcm k = 1, so dass
cmT v cmT xm
fur alle v 2 M
gilt. Dann hat die Folge der cm einen Haufungspunkt c . Es folgt fur jedes feste v 2 M
c T v c T x:
Das ist die Behauptung.
q.e.d.
Aus dem Trennungssatz folgen eine Reihe von allgemeinen Satzen uber konvexe Mengen.
1.68 Satz: Eine kompakte konvexe Teilmenge M Rn ist konvexe Hulle ihrer Ecken.
Beweis: Wir beweisen den Satz durch Induktion nach der anen Dimension m von
M , also nach der Dimension der anen Hulle von M .
Fur m = 0 ist der Satz klar, weil M dann nur aus einem Punkt besteht. Ansonsten ist
x 2 M Ecke von M , oder es gibt eine Richtung v 2 Rn , v 6= 0 mit
x1 = x + 1 v 2 boundary M; x2 = x 2 v 2 boundary M;
mit 1 ; 2 > 0. x ist also Konvexkombination von x1 und x2 . Es genugt nun zu zeigen,
dass Randpunkte Konvexkombinationen von Ecken sind. Sei also nun
x 2 boundary M:
Wir trennen x von M durch f , und setzen
E = fy 2 Rn : f (y ) = f (x )g:
Wir identizieren E mit dem Rn 1 durch eine lineare Isometrie. Dann gilt der Satz fur
E \ M nach Induktionsvoraussetzung. Die Ecken von E \ M sind aber auch Ecken von
M.
q.e.d.
1.12. TRENNUNGSSATZE
63
1.69 Satz: Sei Z Rn konvex und kompakt. Dann nimmt eine lineare Zielfunktion
f (x ) = c T x ihr Maximum und ihr Minimum in einer Ecke von Z an.
Beweis: Die Menge der maximalen Punkte ist eine konvexe und kompakte Menge. Sie
enthalt nach dem vorigen Satz Ecken. Diese Ecken sind auch Ecken von M . q.e.d.
Zeigen Sie, dass der Abschluss einer konvexen Menge konvex ist. Zeigen Sie,
dass das oene Innere einer konvexen Menge konvex ist.
1.70 Aufgabe:
1.71 Aufgabe:
(a) Seien A und B konvexe Teilmengen des R . Zeigen Sie, dass dann auch
n
A
B
= fa
b
: a 2 A, b 2 B g
konvex ist.
(b) Sei
A
\ B = ;:
Zeigen Sie, dass es ein lineares Funktional f (x ) = c
f (A)
T
x, c
6= 0 gibt mit
f (B ):
(c) Geben Sie ein Beispiel an, in dem A und B zusatzlich abgeschlossen sind, A
B
aber nicht.
(e) Zeigen Sie, dass A
B
kompakt ist, wenn A und B kompakt sind.
(f) Zeigen Sie, dass A
B
abgeschlossen ist, wenn A kompakt und B abgeschlossen ist.
(g) Zeigen Sie dass sich A und B strikt trennen lassen, wenn A kompakt und B abgeschlossen
sind. Also
f (A) < d < f (B )
fur ein Funktional f (x ) = c
T
x, c
6= 0.
(h) Geben Sie ein Beispiel fur zwei abgeschlossene, konvexe Mengen an, die sich nicht strikt
trennen lassen.
Folgern Sie aus dem Trennungssatz, dass jede konvexe abgeschlossene Menge
M R , M 6= R , der Durchschnitt von (eventuell unendlich vielen) Halbr
aumen ist.
1.72 Aufgabe:
n
n
Man kann nun den Dualitatssatz auch mit Hilfe des Trennungssatzes beweisen. Dazu
beweisen wir zunachst den Satz 62.
Falls die dort geforderten i nicht existieren, so ist
c 2= Kx ;
wobei Kx der von den aktiven Nebenbedingungen
ai ; i 2 Ix ;
64
KAPITEL 1. LINEARE OPTIMIERUNG
erzeugte Kegel ist. Wir konnen daher c von Kx nach dem Trennungssatz trennen. Es
gibt wegen 0 2 Kx ein v 6= 0 mit
v T c > 0 v T Kx :
Nun gilt
c T (x + v ) = c T x + v T c > c T x
fur alle > 0. Fur i 2 Ix gilt auerdem wegen ai 2 Kx
aiT (x + v ) = bi + v T ai bi :
Wir wahlen > 0 klein genug, so dass
aiT (x + v ) < bi
fur alle i 2= Ix
gilt. Es folgt, dass x kein Maximum ist.
Aus dem Satz 62 folgt der Dualitatssatz mit (D) als primalem Problem. Man kann
daraus, wie im Beweis des Dualitatssatzes gezeigt, den Dualitatssatz in allen Fallen
herleiten.
1.13 Semi-innite Optimierung
Als semi-innite lineare Optimierung bezeichnet man das Problem, ein lineares Funktional
f (x ) = c T x
zu maximieren oder zu minimieren, unter unendlich vielen Nebenbedingungen
aiT x bi ;
i 2 I:
Normalerweise sind die Nebenbedingungen in Form von stetigen Funktionen
a(t )T x b(t );
t 2 T;
mit einer, gewohnlich kompakten Menge T gegeben. Diese Form der Optimierung
schliet endliche Mengen ein, und damit die lineare Optimierung auf Polytope.
Wieder ist die Menge der zulassigen Punkte Z abgeschlossen und konvex, jedoch nicht
unbedingt beschrankt, selbst wenn T kompakt ist. Sie kann auch leer sein.
Da umgekehrt eine nicht leere, konvexe und abgeschlossene Menge Schnitt von Halbraumen
ist, umfasst die semi-innte Optimierung die Optimierung auf konvexen und abgeschlossenen Mengen. Allerdings ist nicht klar, ob sich die Halbraume immer in stetiger
Abhangigkeit von t 2 RT schreiben lassen.
1.73 Aufgabe:
Zeichnen Sie die zulassige Menge Z fur die Nebenbedingungen
a
(sin(t ); cos(t )) x
y
1
65
1.13. SEMI-INFINITE OPTIMIERUNG
mit T = [0; a] fur a 2 [0; 2]. Fur welche a ist Z beschrankt?
a
a
1.74. Beispiel: Sei V ein endlich dimensionaler Unterraum von C (X ) fur kompaktes
X . Wir denieren die Norm
kg kX = max
jg (x )j
x 2X
fur g 2 C (X ), und die Approximationsaufgabe
min kf g kX :
v 2V
Diese Aufgabe lasst sich sowohl fur reellwertige, als auch fur komplexwertige Funktionen als semi-innites Optimierungsproblem schreiben.
Im reellen Fall maximieren wir h mit
f (x ) h v (x ) =
n
X
j =1
aj vj (x ) f (x ) + h
wobei vj eine Basis von V ist. Dies fuhrt auf zwei Gruppen von Nebenbedingungen.
Erstens
n
X
aj vj (x ) h f (x );
j =1
und zweitens
n
X
j =1
ai vj (x ) h f (x ):
Einzeln sind diese Nebenbedingungen von der verlangten stetigen Form stetig. Schreibt
man T als Vereinigung zweier Kopien von X , so ergibt sich ein stetiges, kompaktes,
semi-innites Optimierungsproblem. Diskretisiert man X mit m Punkten aus X , so
erhalt man ein lineares Optimierungsproblem mit 2m Nebenbedingungen.
1.75. Beispiel: Als Rechenbeispiel nehmen wir fur V den Raum der linearen Funktionen
v (x ) = a + bx
und diskretisieren das Intervall X = [0; 1] mit 11 Punkten
1
x0 = 0 < x1 = 10 < : : : < x10 = 1:
Wir approximieren die Funktion f (x ) = e x . Wir erhalten die Nebenbedingungen
a + bxj h f (xj ) a + bxj + h:
Zu minimieren ist h. Das Beispiel wurde in Abbildung 74 mit Euler durchgerechnet.
1.76. Beispiel: Im komplexen Fall ist
jf (x ) v (x )j h
66
KAPITEL 1. LINEARE OPTIMIERUNG
>x=(0:10)/10; y=exp(x);
>plot2d("exp(x)",a=0,b=1,c=0.8,d=2.8,style=".");
>plot2d(x,y,>points,>add);
>A=(1|x'|-1)_(1|x'|1);
>b=y'_y';
>eq=-ones(11,1)_ones(11,1);
>max(abs(a+b*x-y))
0.105209821765
>v=simplex(A,b,[0,0,1],eq,>min,>check)
0.894790178235
1.71828182846
0.105209821765
>a=v[1]; b=v[2]; plot2d("a+b*x",color=red,>add);
Abbildung 1.12: Lineare Approximation von e x
67
1.13. SEMI-INFINITE OPTIMIERUNG
aquivalent zu
e i (f (x ) v (x )) h
fur alle 0 2:
Dadurch erhalten wir stetige Nebenbedingungen mit
T = [0; 2] X:
Durch die Vielfalt der Winkel wird eine Diskretisierung deutlich schwieriger. Durch
Beschrankung auf nur 4 Winkel erhalt man die Approximation in der Norm
kf v kX = max
max fRe(f (x ) v (x )); Im(f (x ) v (x ))g ;
x 2X
p
die hochstens um den Faktor 2 schlechter ist. In jedem Fall mussen die Koezienten
von
n
X
v (x ) = aj vj (x )
j =1
in Real- und Imaginarteil zerlegt werden.
Fur den folgenden Satz benotigen wir, dass der von einer kompakten Menge M
erzeugt Kegel K abgeschlossen ist. Zeigen Sie diesen Sachverhalt. Eine Idee ist zum Beispiel,
dass fur x 2= K die abgeschlossene Menge der x einen positiven Abstand von M haben muss.
1.77 Aufgabe:
Der Satz 62 lasst sich zu dem folgenden Dualitatssatz fur semi-innite Optimierung
erweitern.
1.78 Satz: Sei T kompakt,
a : T ! Rn ; b : T ! R
stetige Abbildungen, c 2 Rn , c 6= 0, und
Z = fx 2 Rn : a(t )T x b(t ) fur alle t 2 T g:
sowie
a(t ) 6= 0
fur alle t 2 T :
Dann ist x 2 Z Maximum von f (x ) = c T x auf Z , wenn sich die Zielfunktion in der
Form
c=
k
X
i =1
i a(ti )
darstellen lasst mit in x aktiven Nebenbedingungen t1 ; : : : ; tk
a(ti )x = b(ti )
fur alle i = 1; : : : ; k
und 1 ; : : : ; k > 0, sowie k n. Falls Z innere Punkte enthalt, so ist diese Bedingung
auch notwendig.
68
KAPITEL 1. LINEARE OPTIMIERUNG
Beweis: Falls c im Kegel der aktiven Nebenbedingungen liegt, so folgt genau wie im
Beweis von Satz 62, dass x ein Maximum ist.
Falls nicht, so verwenden wir, dass die konvexe Hulle M der aktiven Nebenbedingungen
Tx = fa(t ) : t 2 Ix g
kompakt ist. Wir haben hier wie ublich
Ix = ft 2 T : a(t )T x = b(t )g
gesetzt. Wenn Z einen inneren Punkt z enthalt, so folgt
aiT z < aiT x
fur alle i 2 Ix . Dies ist unmoglich, wenn 0 in der konvexen Hulle von M liegt. Es folgt,
dass der Schnitt zwischen
K = fc : 0g
und M leer ist. Wir konnen die Mengen also stark trennen. Also existiert ein v~ 6= 0 mit
v~T c 0 > > v~T Tx :
Wir setzen v = v~ + c mit > 0 klein genug, so dass gilt
v T c > 0 > > v T Tx :
Dies ist moglich, da Tx kompakt ist. Wir haben daher zunachst wieder fur alle > 0
c T (x + v ) = c T x + v T c > c T x:
Die Zielfunktion nimmt also in Richtung v zu. Wir mussen > 0 so wahlen, dass
x + v zulassig ist. Man erhalt nun
a(t )T (x + v ) = b(t ) + v T a(t ) < b(t ):
fur t 2 Ix . Diese Menge ist kompakt. Also gilt die Ungleichung
a(t )T (x + v ) < b(t ):
fur t 2 U , wobei U eine oene Umgebung von Ix ist und fur alle 0
Menge K = T n U ist dann kompakt. Wir wahlen
= min
t 2K
b(t ) a(t )T x
a(t )T v ;
und zusatzlich 0 . Es gilt > 0 und
a(t )T (x + v ) < b(t )
fur alle t 2 K
0. Die
69
1.13. SEMI-INFINITE OPTIMIERUNG
Fur solche ist x + v zulassig, und x ist daher kein Maximum.
q.e.d.
Konstruieren Sie ein semi-innites Problem, bei dem die zulassige Menge nur
aus einem Punkt besteht, wo die Zielfunktion nicht in dem von den aktiven Nebenbedingungen
erzeugten Kegel liegt. Dies liefert ein Beispiel dafur, dass die Bedingung nicht ohne Zusatzvoraussetzung notwendig ist.
1.79 Aufgabe:
Aus diesem Satz folgt insbesondere, dass x genau dann Optimum ist, wenn es Optimum
fur das Problem ist, das nur durch die in x aktiven Nebenbedingungen bestimmt wird.
1.80. Beispiel: Im Beispiel der Approximationsaufgaben bedeutet das, dass v auf X
beste Approximation an f ist, wenn es auf der Extremalpunktmenge
E (f
v ) = fx 2 X : jf (x ) v (x )j = kf
v kX g
beste Approximation ist. Dies gilt sowohl im Reellen, wie im Komplexen.
1.81 Aufgabe:
gleich n, f
(a) Sei V = P , der Raum der algebraischen Polynome vom Grad kleiner oder
2 C [a; b] und
Punkte in E (f
p)
n
a < x1 < : : : < xn+2 < b
fur ein p 2 P mit
n
f (xk )
p (xk )
= ( 1)
k
kf
p
k
X
fur ein = 1, k = 1; : : : ; n +2. Zeigen Sie, dass dann p beste Approximation an f auf C [a; b]
ist. Man nennt solche Punkte eine Alternante.
(b) Zeigen Sie umgekehrt, dass jede beste Approximation eine Alternante hat, indem Sie ein
q 2 P konstruieren, so dass p + q eine bessere Approximation auf E (f
p ) ist, wenn es keine
Alternante gibt.
n
1.82. Denition: Zur Berechnung des Optimums im semi-inniten Fall nehmen wir
an, dass T kompakt, und a und b wie im obigen Satz stetig sind, und dass f (x ) = c T x ,
c 6= 0, zu maximieren ist.
Im ersten Schritt nehmen wir an, dass wir Nebenbedingungen
t1 ; : : : ; tk 2 T
gefunden haben, so dass f (x ) unter den Nebenbedingungen
a(ti )T x b(ti );
fur i = 1; : : : ; k
beschrankt ist. Das Optimum liege in x (k ) . Falls nun
a(t )T x (k ) b(t )
70
KAPITEL 1. LINEARE OPTIMIERUNG
fur alle t 2 T , so sind wir fertig. Denn durch die anderen Nebenbedingung kann das
Optimum hochstens kleiner werden. Wir nehmen dann eine Nebenbedingung tk +1 2 T
hinzu, so dass
a(t )T x (k ) b(t ) :
a(tk +1 )T x (k ) b(tk +1 ) = max
t 2T
h
i
Danach nden wir das Optimum x (k +1) mit dieser zusatzlichen Nebenbedingung. Es
gilt
f (x (k +1) ) f (x (k ) ):
Fortfahrend erhalten wir eine Folge von x (k ) . Fur jeden Punkt y , der fur unser semiinnites Optimierungsproblem optimal ist, gilt auerdem
f (x (k ) ) f (y );
weil y die bei der Bestimmung von x (k ) verwendeten Nebenbedingungen erfullt.
Wenn es also zulassige Punkte gibt, so ist die konstruierte Folge von f (x (k ) ) also
konvergent. Das heit allerdings noch nicht, dass sie gegen das Optimum des semiinniten Problems konvergiert.
Da hierbei die zu maximierende Zielfunktion immer kleiner wird, ist dieser Algorithmus
eine absteigende Maximierung, oder bei zu minimierender Zielfunktion eine aufsteigende
Minimierung.
1.83 Satz: Jeder Haufungspunkt der x (k ) ist Optimum des semi-inniten Optimierungsproblems.
Beweis: Sei N eine Teilfolge mit
lim
m!1; m2
x (m) = x:
Nach Konstruktion gilt
a(tm )T x (k ) b(tm )
Es folgt
fur alle m k , k 2 .
a(tm )T x b(tm )
fur alle m.
Also
a(tm )x b(tm ) 0
fur alle m.
Fur jeden Haufungspunkt t der Folge tm gilt daher
a(t )T x b(t ) 0:
Andererseits gilt aufgrund der Wahl von tk +1
a(t )T x (k ) b(t ) a(tk +1 )T x (k ) b(tk +1 )
fur alle t 2 T .
71
1.13. SEMI-INFINITE OPTIMIERUNG
Wegen der Kompaktheit von T konnen wir annehmen, dass die Folge tk +1 , k
einen Haufungspunkt t hat. Es folgt insgesamt
a (t )T x b (t ) 0
2 ,
fur alle t 2 T .
Der Haufungspunkt x ist also ein zulassiger Punkt. Falls y ein beliebiger anderer
zulassiger Punkt ist, so erfullt y die Nebenbedingungen t1 ; : : : ; tk fur alle k 2 N.
Aufgrund der optimalen Wahl von x (k ) folgt
f (y ) f (x (k )
Also
wegen der Stetigkeit von f .
f (y ) f (x )
q.e.d.
Die Frage bleibt, ob der Algorithmus immer einen Haufungspunkt hat. Fur viele praktische Zwecke ist dies aber garantiert. Wir haben fur alle m > k aufgrund der Konstruktion
x (m) 2 Zk = fx : a(tl )T x b(tl ) fur l k g
Zk ist im Allgemeinen nicht kompakt. Wenn jedoch y fur das Gesamtproblem zulassig
ist, so gilt
f (x (m) ) f (y )
fur alle m 2 N. Wenn also
Zk \ fx : f (x ) f (y )g
fur ein k kompakt ist, so erhalten wir einen Haufungspunkt von x (m) .
1.84. Beispiel: Wir behandeln die beidseitige Approximation an eine Funktion f
C [a; b] durch Polynome p 2 Pn . Die Nebenbedingungen sind
f (x ) h p(x ) f (x ) + h
fur alle x
2
2 [a; b].
Zu Minimieren ist h. Da p = 0 und h = kf k[a;b] zulassig ist, konnen wir
h kf k
als zusatzlich Nebenbedingung annehmen. Wir starten die aufsteigenden Minimierung
mit k n + 1 Punkten in [a; b], so dass wir Nebenbedingungen
f (xi ) h p(xi ) f (xi ) + h
fur alle i = 1; : : : ; k .
erhalten. Wie die folgende Aufgabe zeigt, denieren diese Nebenbedingungen zusammen mit h kf k eine kompakte Menge.
1.85 Aufgabe:
Zeigen Sie, dass die Interpolationsaufgabe in n + 1 Punkten
y1 ; : : : ; yn+1
!p
72
KAPITEL 1. LINEARE OPTIMIERUNG
mit
p (xi )
eine stetige Abbildung vom R
p
2P
n
i
n +1
j f (x )
i
=y
nach
p (xi )
P
fur alle i = 1; : : : ; n + 1
n
jh
deniert. Folgern Sie, dass Menge der Polynome
fur alle i = 1; : : : ; k .
mit k n + 1 verschiedenen Punkten kompakt ist.
>function a(t) := [cos(t),sin(t)]
>function b(t) := 1
>function abmax (x) := mod(arg(x[1]+I*x[2]),2*pi)
>function optimize (fa,fb,fabmax,c,t) ...
$ A=fa(t[1]); b=fb(t[1]);
$ loop 2 to length(t); A=A_fa(t[#]); b=b_fb(t[#]); end;
$ x=simplex(A,b,c,restrict=0,>max,>check);
$ count=1;
$ repeat
$
count=count+1;
$
tnew=fabmax(x);
$
A=A_fa(tnew); b=b_fb(tnew);
$
xnew=simplex(A,b,c,eq=-1,restrict=0,>max);
$
until c.xnew >= c.x
$
x=xnew;
$ end;
$ "Count : "+count,
$ return x;
$endfunction
>v=optimize("a","b","abmax",[2,1],[0,pi/2]); v'
Count : 21
[ 0.894427377867 0.447213221767 ]
Abbildung 1.13: Semi-Innite Optimierung
1.86. Beispiel: Eine sehr einfache Implementation ist in der Funktion in Abbildung 1.13
gezeigt, und zwar an dem sehr einfachen Beispiel aus Aufgabe 73. Wir maximieren
f (x; y ) = h(2; 1); (x; y )i
fur (x; y ) auf dem Einheitskreis. Fur die Optimierungsfunktion mussen die Funktionen
a und b ubergeben werden. Auerdem benotigen wir eine weitere Funktion, die die
maximal nicht erfullte Nebenbedingung berechnet. Das ist hier sehr einfach, da
cos(t )x + sin(t )y
maximal wird fur
1
x = cos(t ); y = sin(t )
wobei t der Winkel des Punktes (x; y ) zur x -Achse ist.
73
1.13. SEMI-INFINITE OPTIMIERUNG
In optimize wird der Simplex-Alorithmus jedes mal mit einer Nebenbedingung mehr
neu gestartet. Als Abbruchkriterium wahlen wir, dass sich das Optimum nicht verbessert. Man beachte, dass das der Fall sein kann, ohne dass wir ein Optimum erreicht
haben.
Das Ergebnis ist nicht besonders genau, da das Optimum einer linearen Funktion auf
den Einheitskreis ein schlecht gestelltes Problem ist. Man kann an dem optimalen
Punkte recht weit wackeln, ohne dass sich der Optimalwert viel verandert.
Es liegt nahe, diesen Algorithmus dual auszufuhren. Dazu schreiben wir das duale
Problem auf. Es ist ein Problem in Standardform. Die Nebenbedingungen sind
(a(t1 )T ; : : : ; a(tk )T ) = c; 0;
(b(t1 ); : : : ; b(tk )) ! Min.
Nachdem man dieses duale Problem mit dem Minimum in (k ) gelost hat, wird die
Losung durch n aktive Spalten Jk T charakterisiert. Die Losung des zugehorigen
primalen Problems ergibt sich nun durch
A(t )x (k ) = b(t );
fur t 2 Jk :
Denn das dazu duale Problem wird gerade durch (k ) gelost.
Man bestimmt nun tk +1 wie im obigen Algorithmus, und erweitert das duale Problem
um eine Spalte mit Hilfe von tk +1 . Dann wendet man dieselben Transformationen wie
bei der Losung des dualen Problems auf diese zusatzlich Spalte an. Gewohnlich erhalt
man das duale Minimum des erweiterten Problems durch einen einzigen Austausch.
1.87. Beispiel: Wir rechnen in Abbildung 86 einen Schritt des vorigen einfachen Bei-
spiels durch.
Es ist naheliegend, die nicht aktiven Nebenbedingungen in jedem Schritte zu streichen,
oder sogar nur die im dualen Problem in der optimalen Basis auftretenden Nebenbedingungen. Man kann Umstande angeben, in denen ein solcher Algorithmus funktioniert.
1.88. Beispiel: Ein Unterraum V
C [a; b] der Dimension n erfullt die Haarsche Be-
dingung, wenn die Interpolationsaufgabe in n Punkten eindeutig losbar ist. In einem
solchen Unterraum kann man den Remez-Algorithmus verwenden, der eine Erweiterung unseres semi-inniten Algorithmus ist.
Dazu berechnen wir die beste Approximation p auf n + 1 Punkten, und nehmen einen
Punkt hinzu, in dem jf pj das Maximum annimmt. Auf den neuen Punkten berechnen
wir wiederum die beste Approximation und nehmen im nachsten Schritte die n + 1
Punkte, auf denen die beste Approximation charakterisiert ist. Dass solche Punkte
existieren, folgt aus dem Satz 78. Wir gehen auf die Details dieses Algorithmus und
auf die Verbesserung durch Simultanaustausch hier nicht weiter ein.
74
KAPITEL 1. LINEARE OPTIMIERUNG
>shortestformat;
>A=a(0)'|a(pi/4)'|a(pi/2)'
1
0.707
0
0
0.707
1
>b=[2,1]';
>xprimal=simplex(A',[1,1,1]',b',>max,>check);
>b'.xprimal
[ 2.41 ]
>M=(A_1)|b
1
0.707
0
2
0
0.707
1
1
1
1
1
0
>pivotize(M,1,1);
>pivotize(M,2,2)
1
0
-1
1
0
1
1.41
1.41
0
0
0.586
-2.41
>x=A[1:2,[1,2]]'\[1;1]
1
0.414
>t=abmax(x)
0.393
>A=A|a(t)';
>M=(A_1)|b
1
0.707
0
0.924
2
0
0.707
1
0.383
1
1
1
1
1
0
>pivotize(M,1,1); pivotize(M,2,2)
1
0
-1
0.541
1
0
1
1.41
0.541
1.41
0
0
0.586 -0.0824
-2.41
>pivotize(M,1,4)
1.85
0
-1.85
1
1.85
-1
1
2.41
0
0.414
0.152
0
0.434
0
-2.26
>x=A[1:2,[2,4]]'\[1;1]
0.848
0.566
>[2,1].x
[ 2.26 ]
Abbildung 1.14: Ein Schritt des dualen Algorithmus
1.14. KOMPLEXITAT DES SIMPLEX-ALGORITHMUS
75
1.14 Komplexitat des Simplex-Algorithmus
Die Rechnungen in einem Schritt des Simplex-Algorithmus sind nicht besonders aufwandig. Jedoch ist von vornherein nicht klar, wieviele Schritte man nehmen muss, um
das Ziel zu erreichen. Es wurde gezeigt, dass es Probleme gibt, bei denen der SimplexAlgorithmus alle Ecken durchlauft. Da es bei A 2 Rmn fur das Problem Ax = b,
x 0
n (n m)m
m m!
Ecken gibt, bedeutet das, dass der Simplex-Algorithmus nicht immer in polynomialer
Zeit T (n; m) fertig wird. Denn der Ausdruck auf der rechten Seite wachst bei festem
m wie nm .
Es ist nicht bekannt, ob es eine Austauschregel gibt, die in polynomialer Zeit zum Ziel
kommt. Allerdings wird in der Praxis beobachtet, dass fur den Simplex-Algorithmus
3
(n m)
2
Schritte ausreichen.
Es wird vermutet (Hirsch 1957), dass man in jedem Polytop die optimale Ecke in m
Schritten erreichen kann. Jedoch ist bekannt, dass dies zumindest dann nicht moglich
ist, wenn die Zielfunktion dabei zunehmen muss.
Im folgenden Beispiel von Klee und Minty wird die Regel verwendet, immer das maximal
negative cj zu verwenden. Es stellt sich heraus, dass dann 2n 1 Schritte erforderlich
sind. Das Beispiel wurde fur andere Regeln verallgemeinert.
1.89. Beispiel: Wir rechnen das Beispiel von Klee und Minty
2
n
X
j =1
10i 1 xj + xi
n
X
j =1
100i
1
fur i = 1; : : : ; n;
x 0;
10n j xj
! Max.
fur n = 7 nach. Die Behauptung ist, dass dabei 2n 1 = 7 Schritte benotigt werden.
Die Rechnung mit Euler ist in Abbildung 89 wiedergegeben, wobei aus Platzgrunden
einige Schritte nicht wiedergegeben sind.
Es stellt sich aber heraus, dass hierbei die Regel von Bland nicht beachtet wurde. Im
zweiten Schritt wurde s1 gegen x1 ausgetauscht. Schreibt man das Schema aber nicht
in Gau-Jordan-Form, so hatte x3 gegen s3 ausgetauscht werden mussen.
1.90 Aufgabe:
Zeigen Sie, dass man dann zwei Schritte schneller zum Ziel kommt.
76
KAPITEL 1. LINEARE OPTIMIERUNG
>shortformat;
>n=3; i=(1:n)'; j=i'; A=2*band(10^(i-j),-5,-1)+id(n);
>b=10^(2*i-2);
>c=10^(n-j);
>M=A|b_(-c);
>v,n=gjvars(M,>simplex);
>load gaussjordan;
>gjprint(M,n,v,length=12)
x1
x2
x3
s1
1.000
0.000
0.000
1.000
s2
20.000
1.000
0.000
100.000
s3
200.000
20.000
1.000 10000.000
-100.000
-10.000
-1.000
0.000
>gjstep(M,1,1,n,v)
s1
x2
x3
x1
1.000
0.000
0.000
1.000
s2 -20.000
1.000
0.000
80.000
s3 -200.000
20.000
1.000 9800.000
100.000 -10.000
-1.000 100.000
>gjstep(M,2,2,n,v)
s1
s2
x3
x1
1.000
0.000
0.000
1.000
x2 -20.000
1.000
0.000
80.000
s3 200.000 -20.000
1.000 8200.000
-100.000
10.000
-1.000 900.000
>gjstep(M,1,1,n,v)
x1
s2
x3
s1
1.000
0.000
0.000
1.000
x2
20.000
1.000
0.000 100.000
s3 -200.000 -20.000
1.000 8000.000
100.000
10.000
-1.000 1000.000
>gjstep(M,3,3,n,v)
>gjstep(M,1,1,n,v)
>gjstep(M,2,2,n,v)
>gjstep(M,1,1,n,v)
x1
x2
s3
s1
1.000
0.000
0.000
1.000
s2
20.000
1.000
0.000 100.000
x3 200.000
20.000
1.000 10000.000
100.000
10.000
1.000 10000.000
Abbildung 1.15: Beispiel von Klee und Minty
77
1.15. INNERE METHODEN
Es wurden deshalb Anstrengungen unternommen, den Simplex-Algorithmus durch einen
anderen Algorithmus zu ersetzen. Der erste Algorithmus, fur den die polynomiale Laufzeit gezeigt wurde, war der Ellipsoid-Algorithmus von Khachyan aus dem Jahre 1979.
Er erweist sich allerdings in der Praxis als untauglich.
Eine bessere Methode wurde 1984 von Karmakar vorgestellt. Sie hat ebenfalls eine
polynomiale Laufzeit, wie sich spater herausstellte. Das Patent auf diese Methode lief
2004 aus.
1.15 Innere Methoden
Wir nehmen ein Problem in Standardform
Ax = b; x 0
c T x ! Min.
an, wobei A vollen Zeilenrang m habe, m n.
Dann ist ein innerer zulassiger Punkt ein Punkt x mit Ax = b und x > 0. Einen solchen
inneren Punkt kann man durch eine Erweiterung des Problems in jedem Fall erhalten.
Dazu fuhren wir eine zusatzliche Variable ein, und setzen
A~ = Aju
mit
u = b A 1n
wobei 1n 2 Rn der Vektor mit lauter 1 ist. Dann ist 1n+1 ein innerer zulassiger Punkt
des neuen Problems. Wir konnen den Koezienten der Zielfunktion so gro wahlen,
dass gewahrleistet ist, dass die Variable im Minimum gleich 0 wird.
Schreitet man nun von einem solchen inneren zulassigen Punkt zu einem anderen, so
nennt man die Methode eine innere Methode. Es liegt nahe dabei in die Richtung zu
gehen, in die Zielfunktion einerseits am starksten abnimmt, aber in der man andererseits im zulassigen Bereich bleibt. Dazu muss man den Gradienten c der Zielfunktion
auf den Kern von A projizieren. Solche Methoden nennt man daher projektive Tangentenmethoden.
1.91 Aufgabe:
Zeigen Sie fur eine Matrix A 2 R , dass
m
n
Kern A = (Bild A )?
T
gilt. Folgern Sie
R = Kern A Bild A
n
T
;
78
KAPITEL 1. LINEARE OPTIMIERUNG
wobei die beiden Raume senkrecht aufeinander stehen.
1.92 Aufgabe:
Sei V
R
n
ein Unterraum c 2 R , und
n
w
= (c )
V
die orthogonale Projektion von c auf V , also
c
Zeigen Sie, dass fur alle r
>
w
? V:
0
cT x;
x
2 U; kx k = r
maximal wird, wenn x ein positives Vielfaches von
Vielfaches von w ist.
w
ist, und minimal, wenn
x
ein negatives
Fur projektive Tangentenmethoden nehmen wir an, dass wir einen inneren zulassigen
Punkt x haben. Dann mochten wir eine Richtung w 2 Rn wahlen, so dass x w fur
> 0 zulassig ist. Das bedeutet
A(x w ) = b
fur > 0, also
w 2 Kern A:
Auerdem soll die Zielfunktion c T x in die Richtung w maximal zunehmen. Dazu muss
nach obiger Aufgabe
w = Kern A (c )
sein. Um w zu berechnen, minimieren wir
kAT y c k; y 2 Rm :
mit Hilfe von linearer Regression, etwa mit Hilfe der Normalgleichung
AAT y = Ac
oder mit orthogonalen Transformationen. Es gilt dann
AT y = Bild AT (c ):
Das Minimum werde in y angenommen. Dann gilt
c AT y 2 (Bild AT )? = Kern A:
Wir setzen nun
Also
w = c AT y 2 Kern A:
c w = AT y 2 Bild AT = (Kern A)? :
79
1.15. INNERE METHODEN
Wir haben damit unsere gewunschte Richtung w gefunden.
Nun mussen wir > 0 so wahlen, dass
x w > 0
ist, so dass wir im Bereich der inneren zulassigen Punkte bleiben. Also
0<<
Wir wahlen
xj
wj
fur alle wj > 0.
x
= minf wj : wj > 0g
j
mit einem vorgewahlten 0 < < 1.
Die Zielfunktion nimmt dann um
c T x c T (x w ) = c T w = (c T w + (w c )T w ) = kw k2
ab. Falls w = 0 ist, so haben wir damit schon ein inneres Optimum in x . Falls w 0,
aber w 6= 0 ist, so konnen wir > 0 beliebig gro wahlen. Das Problem ist dann
unbeschrankt.
>A=[1,1,1]; b=[3]; c=[3,2,1]; x=[1;1;1];
>c.x
[ 6 ]
>y=fit(A',c')
2
>(A.c')/(A.A')
2
>w=c'-A'.y
1
0
-1
>xnew=x-w/2
0.5
1
1.5
>c.xnew
[ 5 ]
Abbildung 1.16: Ein innerer Schritt
1.93. Beispiel: Wir betrachten die Nebenbedingung
x +y +z =3
und die Zielfunktion
3x + 2y + z
! Min:
80
KAPITEL 1. LINEARE OPTIMIERUNG
Der Punkt
1
 
x (0)
= 1
1
ist ein zulassiger innerer Punkt. In Abbildung 1.16 rechnen wir einen Schritt des Algorithmus mit Euler nach. Wir verwenden
1
= 2:
Zur Berechnung des Vektors y , der in in diesem Fall eine reelle Zahl ist, verwenden
wir die Funktion fit von Euler. Diese Funktion arbeitet mit orthogonalen Transformationen. Alternativ verwenden wir die Normalgleichung, die in diesem Fall einfach das
Schmidtsche Orthonormalisierungsverfahren ist.
Die Zielfunktion nimmt letztlich um 1 ab.
1.94 Aufgabe:
Zeigen Sie fur A 2 R , m n
m
n
Rang AA = Rang A;
T
indem Sie zeigen, dass
=0,A
AAT y
T
y
=0
ist und die Dimensionsformel verwenden. Folgern Sie, dass AA invertierbar ist, wenn A vollen
Rang hat. Folgern Sie
Kern (c ) = I
A (AA ) 1 A c
T
T
A
T
n
fur c 2 R .
n
Die Idee der inneren Methoden ist nun, das Problem zu transformieren, im transformierten Problem einen besseren Zielwert zu erreichen, und diesen zuruck zu transformieren.
Der Algorithmus von Karmakar verwendet projektive Transformationen, die aber nicht
leicht zu erklaren sind.
Wir zeigen hier eine andere Idee, die ane Skalierung heit und auf Vanderbei und
andere Autoren (1985-86) zuruckgeht. Ausgehend von einem inneren zulassigen Punkt
x (0) transformieren wir das Problem mit Hilfe der Diagonalmatrix
x1(0)

D=


und der neuen Variablen
Es gilt dann

:::
xn(0)
x~ = D 1 x:
x~ 0 , x 0:



81
1.15. INNERE METHODEN
Das Problem ist also aquivalent zu
ADx~ = b; x~ 0
(Dc )T x~ ! Min.
Mit
A~ = AD; c~ = Dc
ist dies dasselbe Problem wie das Ausgangsproblem. Auerdem wird unser Ausgangspunkt zu
x~(0) = D 1 x (0) = 1n :
Von diesem Punkt aus kann man immer einen langen Weg in Richtung c~ nehmen.
Setzt man diese Transformation in die Formel aus der vorigen Aufgabe ein, so erhalten
wir fur die projizierte Abstiegsrichtung
w~ = Kern A~T (~c ) = (In DAT (AD2 AT ) 1 AD)c:
Also
mit
x (1) = D(~x (0) w~ )
1
= minf v~ : v~j > 0g
j
In Abbildung 93 zeigen wir, wie die Methode in Euler implementiert werden kann. Im
Beispiel verwenden wir = 0:9. In Abbildung 1.17 ist der Weg der Punkte fur = 0:5
erkennbar.
1.95 Aufgabe:
Verwenden Sie das Programm aus 93, um das Beispiel 2 zu losen.
Die Modikation fur Probleme mit unbeschrankten Variablen xj ist einfach. Dazu sei
J+ die Menge der Spalten, deren Variablen xj durch xj 0 beschrankt sind. Wir setzen
dann in der Skalierungsmatrix D
fur j 2= J+ :
dj;j = 1
Die Variablen xj mit j 2= J+ werden also nicht skaliert. Wir verwenden dann naturlich
1
= minf w~ : w~j > 0, j 2 J+ g:
j
Ein spezielles Beispiel ist ein Problem
Ax b;
cT x
! Max.
82
KAPITEL 1. LINEARE OPTIMIERUNG
Abbildung 1.17: Ane Skalierung mit = 0:5
das wir mit Schlupfvariablen zu
Ax + s = b; s 0;
c T x ! Min.
in Standardform erweitern. Allerdings sind lediglich die Schlupfvariablen beschrankt.
Wir starten mit einem inneren Punkt
Ax (0) < b; s (0) = b Ax (0) > 0:
Die Skalierung erfolgt dann lediglich mit s (0) . Sie wirkt sich weder auf A noch auf die
Zielfunktion c aus. Sie wirkt sich allerdings bei der Projektion von c aus. Wir haben
nun
w = Kern (AjDs ) (c ):
mit


s (0)
 1
Ds = 

:::
sn(0)

:

1.15. INNERE METHODEN
>A=[1,1,1]; b=[3]; c=[3,2,1]; x=[1;1;1];
>function innerdemo (a,b,c,x,gamma=0.5) ...
$ z=c.x;
$ repeat
$
d=x';
$
ta=a*d; tc=c*d;
$
y=fit(ta',tc');
$
w=tc'-ta'.y;
$
while !all(w~=0)
$
if all(w<=0) then
$
error("Problem unbounded";
$
endif;
$
i=nonzeros(w>0);
$
m=gamma/max(w[i]');
$
tx=1-m*w;
$
x=d'*tx;
$
znew=c.x;
$
x',
$
while znew<z;
$
z=znew;
$ end
$ return x
$endfunction
>xopt=innerdemo(A,b,c,x,0.9);
[ 0.1 1 1.9 ]
[ 0.07945 0.1 2.82055 ]
[ 0.007945 0.0434410917855 2.94861390821 ]
[ 0.00532916793226 0.00434410917855 2.99032672289 ]
[ 0.000532916793226 0.00275060673575 2.99671647647 ]
[ 0.000347066602369 0.000275060673575 2.99937787272 ]
[ 3.47066602369e-005 0.000176963456687 2.99978832988 ]
[ 2.24544465805e-005 1.76963456687e-005 2.99995984921 ]
[ 2.24544465805e-006 1.14204264651e-005 2.99998633413 ]
[ 1.45075987898e-006 1.14204264651e-006 2.99999740726 ]
[ 1.45075987898e-007 7.37483876028e-007 2.99999911727 ]
[ 9.37058124843e-008 7.37483876028e-008 2.99999983102 ]
[ 9.37058124843e-009 4.76297185638e-008 2.99999993339 ]
[ 6.05219029324e-009 4.76297185638e-009 2.99999995856 ]
[ 6.05219029324e-010 3.07620146212e-009 2.99999995856 ]
[ 3.90889070659e-010 3.07620146212e-010 2.99999995856 ]
[ 3.90889070659e-011 1.98679854307e-010 2.99999995856 ]
[ 2.52460502263e-011 1.98679854307e-011 2.99999995856 ]
[ 2.52460502263e-012 1.28319707396e-011 2.99999995856 ]
[ 1.63054633365e-012 1.28319707396e-012 2.99999995856 ]
[ 0 0 2.99999995856 ]
Abbildung 1.18: Ane Skalierung
83
84
KAPITEL 1. LINEARE OPTIMIERUNG
Man rechnet nach, dass sich die Normalgleichung in diesem Fall zu
(AAT + Ds2 )y = Ac
verandert. Leider fuhrt aber gerade der interessante Fall mit vielen Nebenbedingungen auf groe Gleichungssysteme, so dass es interessanter ist, das duale Problem mit
inneren Methoden zu losen.
Abbildung 1.19: Innere Methoden mit = 1=2
1.96. Beispiel: Das Problem
cos(ti )x + 2 sin(ti )y
x + y ! Max.
mit Winkeln
1;
0 t1 < : : : < tn 2
hat eine approximierte Viertel-Ellipse mit Halbachsen 1 und 1=2 als zulassige Menge.
Das eben erwahnte Verfahren fuhrt auf Gleichungssysteme der Groe n n. Dagegen
85
1.15. INNERE METHODEN
fuhrt der duale Algorithmus zur Losung von
n
X
i =1
cos(ti )i = 2
n
X
i =1
n
X
i =1
sin(ti )i = 1; 0
i ! Min.
lediglich auf ein 22-Gleichungssystem. In Abbildung 1.19 sind die Wege eingezeichnet,
die der Algorithmus mit = 1=2 mit und ohne die Einschrankung x; y 0 nimmt.
Man beachte, dass man im zweiten Fall mit x = y = 0 starten kann. Zum Start des
dualen Algorithmus wahlt man den Trick vom Beginn des Abschnitts.
Es bleibt zu bemerken, dass man mit Hilfe von konjugierten Gradientenverfahren die
Projektion auch fur groe, schwach besetzte Matrizen eektiv berechnen kann. Damit
eignet sich dieses innere Verfahren sehr gut fur solche Matrizen.
86
KAPITEL 1. LINEARE OPTIMIERUNG
Kapitel 2
Ganzzahlige Optimierung
2.1 Beispiele
2.1. Denition: Ganzzahlige Optimierung reduziert die Auswahl in einem linearen
Optimierungsproblem fur alle oder nur fur gewisse Variablen xi auf die ganzen Zahlen.
2.2. Beispiel: Ein Schullandheim schat fur 3000 Euro Fahrrader an. Es sollen min-
destens 3 Kinderrader fur je 100 Euro und mindestens 6 Jugendrader fur je 250 Euro
angeschat werden. Wegen der Altersverteilung der Gaste soll die Zahl der Jugendrader
groer als die Anzahl der Kinderrader sein. Wir bestimmen die maximale Anzahl der
Rader, die angeschat werden konnen.
Wir erhalten als Optimierungsproblem
100xk + 250xj
300; xk 3; xj 6; xj xk
xj + xk ! Max.
Auerdem ist es naturlich sinnvoll xj ; xk
2 N0 zu fordern.
In Abbildung 2 wird das Problem in Euler einmal mit, und einmal ohne ganzzahlige
Bedingung durchgerechnet. Das Optimum ist durchaus verschieden. Es ist auerdem
nicht sofort klar, welcher ganzzahlige Punkt optimal ist, selbst wenn man das nicht
eingeschrankte Optimum kennt. In diesem Beispiel konnte man allerdings alle ganzzahligen Punkte ausprobieren.
Die Funktion intsimplex von Euler verwendet den Branch-and-Bound-Algorithmus,
den wir spater behandeln werden.
2.3 Aufgabe:
Wir haben vier verschiedene Investitionsmoglichkeiten, in die wir uber 3 Jahre
87
88
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
>A=[100,250;-1,0;0,-1;1,-1]
100
250
-1
0
0
-1
1
-1
>b=[3000,-3,-6,0]'
3000
-3
-6
0
>c=[1,1]
[ 1 1 ]
>xmax=simplex(A,b,c,>max,>check)
8.57142857143
8.57142857143
>x=feasibleArea(A,b);
>plot2d(x[1],x[2],a=2,b=10,c=5,d=13);
>plot2d(xmax[1],xmax[2],>points,>add);
>ximax=intsimplex(A,b,c,>max,>check)
7
9
>plot2d(ximax[1],ximax[2],>points,>add);
Abbildung 2.1: Ganzzahlige Fahrrader
89
2.1. BEISPIELE
Geld einzahlen mussen, um am Ende festgelegte Gewinne zu erzielen.
Projekt 1. Jahr 2. Jahr 3. Jahr Gewinn
1
0:5
0 :3
0: 2
0:2
2
1:0
0 :8
0: 2
0:3
3
1:5
1 :5
0: 3
0:5
4
0:1
0 :4
0: 1
0:1
Verfugbar 3:1
2 :5
0: 4
Maximieren Sie den Gewinn mit Euler und intsimplex, wobei Sie in eine Investition entweder
investieren oder nicht investieren. Vergleichen Sie mit der nicht ganzzahlig eingeschrankten
Losung.
2.4. Beispiel: Viele Beispiele enstehen durch das Problem, Kanten auf einem Graphen
auszuwahlen. Gegeben sei ein Graph mit Ecken
E = f1; : : : ; ng
und Kanten
K E E;
sowie zwei ausgewahlten Ecken
s; t 2 f1; : : : ; ng:
Den Kanten seien Kosten ci;j zugeordnet, etwa proportional der Weglange. Ein Weg
von es nach et ist eine Folge von Kanten
k0 = (s; i1 ); (i1 ; i2 ); : : : ; kn = (in ; et )
in K . Die Kosten des Wegs w sind die summierten Kosten
C (w ) =
m
X
j =0
cij ;ij
+1
mit i0 = s , im+1 = t . Als kurzester Weg wird der Weg mit den minimalen Kosten
bezeichnet. Wir nehmen an, dass es mindestens einen Weg von s nach t gibt.
In dieser Formulierung sind die Wege gerichtet und konnen nicht ruckwarts durchlaufen
werden. Fur ungerichtete Graphen kann man jeweils den Ruckweg dazu nehmen.
Um dieses Problem als aquivalentes, ganzzahliges Optimierungsproblem zu schreiben,
Denieren wir die Variablen fi;j = 1, falls der Weg durch die Kante (i; j ) geht, 0 sonst.
Um die Tatsache zu modellieren, dass der Weg tatsachlich ein Weg ist, mussen wir die
Nebenbedingungen
X
X
fj;i =
fi;j
j 2V (i )
j 2N (i )
90
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
fur alle Knoten i 6= s; t erfullen, wobei V (i ) die Menge der Vorganger von i ist, also
der Knoten, von denen Wege nach i fuhren. Entsprechend ist N (i ) die Menge der
Nachfolger. Damit tatsachlich ein Weg von s nach t entsteht, muss
X
j 2N (s )
fs;i =
X
j 2V (t )
fj;t = 1
gelten. Falls s Vorganger oder t Nachfolger hat, nimmt man noch die Bedingung
X
j 2V (s )
fi;s =
X
j 2N (t )
ft;j = 0
dazu. Man uberlegt sich, dass jeder zulassige Weg einen Weg von s nach t enthalten
muss, und eventuelle zusatzliche Rundwege, die aber im Optimum nicht vorkommen
konnen, wenn alle Kosten positiv sind. Zu minimieren ist
X
(i;j )2K
Die Zusatzbedingung fi;j
fi;j ci;j ! Min.
2 f0; 1g schreiben wir als
0 fi;j 1; fi;j 2 Z:
Es handelt sich also um ein Problem der ganzzahligen Optimierung.
Es wird sich herausstellen, dass dieses Problem relativ leicht als allgemeines Optimierungsproblem gelost werden kann. Es gibt ubrigens manchmal neben der ganzzahligen
Losung auch nicht ganzzahlige Minima, die fur uns keinen Sinn machen. Fur zwei
kurzeste Wege ist es etwa optimal beide mit dem Gewicht 1=2 zu nehmen. Wir werden
spater das duale Problem behandeln und den Algorithmus von Dijkstra herleiten.
Wir betrachten das konkrete Beispiel aus Abbildung 4. In diesem Fall hat der kurzeste
Weg die Lange 4, und besteht aus Kanten der Lange 1; 1; 2. Es entstehen die inneren
Nebenbedingungen
fs;a = fa;t + fa;b ; fs;b + fa;b = fb;t
und die Randbedingungen
fs;a + fs;b = fa;t + fb;t :
Der Simplex-Algorithmus liefert die eindeutige Losung, die dann ganzzahlig sein muss,
selbst wenn man keinen expliziten ganzzahligen Algorithmus einsetzt.
2.5. Beispiel: Das Problem einen kurzesten Weg zu nden, der alle Punkte eines
Graphen genau einmal durchlauft, ist wesentlich schwieriger. Es wird als Travelling
Salesman Problem (Rundreiseproblem) bezeichnet.
Ein Rundweg in einem gerichteten Graph erfullt einfach die Bedingung
X
j 2V (i )
fj;i =
X
j 2N (i )
fi;j
91
2.1. BEISPIELE
>shortestformat;
>A=[1,0,-1,-1,0;0,1,1,0,-1;1,1,0,0,0;0,0,0,1,1]
1
0
-1
-1
0
0
1
1
0
-1
1
1
0
0
0
0
0
0
1
1
>b=[0,0,1,1]'
0
0
1
1
>c=[1,3,1,4,2]
[ 1 3 1 4 2 ]
>fopt=simplex(A_id(5),b_ones(5,1),c, ...
> eq=zeros(4,1)_-ones(5,1),>min,>check)
1
0
1
0
1
Abbildung 2.2: Kurzester Weg
92
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
fur alle Knoten i . Dass alle Kanten besucht werden, kann man mit
X
j 2N ( i )
fi;j = 1
modellieren. Das Problem, das dabei auftritt ist, dass optimale Rundwege nun aus zwei
oder mehr Rundwegen bestehen konnen. Um das zu verhindern, muss man sehr viele
Bedingungen hinzunehmen.
Man kann versuchen, dies dynamisch zu tun. Wenn namlich K1 und K2 eine Aufteilung von K ist, so muss einer der Wege von K1 nach K2 durchlaufen werden. Diese
Bedingung kann man dazunehmen, nachdem man das Problem in der einfachen Form
gelost hat, und etwa zwei Rundreisen in K1 und K2 als optimal erkannt hat.
U blicherweise wird das Rundreiseproblem nicht mit den Methoden dieses Paragraphen
behandelt.
2.6. Beispiel: Das Problem des Perfect Matching ist in einem ungerichteten Graphen
mit 2n Knoten n Paare von Knoten auszusuchen, so dass die Paare mit Kanten verbunden sind, und die Summe der Kosten aller dieser Kanten minimal wird.
Dieses Problem ist sehr einfach zu modellieren. Als Nebenbedingung nehmen wir einfach
fur alle Knoten i
X
fi;j = 1
(i;j )2K
auf. Und naturlich fi;j 2 f0; 1g. Dann wird von jeder Kante aus genau ein Partner
gewahlt.
2.2 Der Primal-Duale Algorithmus
Wir gehen von einem primalen Problem in Standardform
Ax = b; x 0
c T x ! Min.
und dem dualen Problem
AT y c;
bT y ! Max.
aus, mit A 2 Rmn , b 2 Rn , c 2 Rm .
2.7 Satz: Sei x 2 Rn primal zulassig, und y
genau dann optimal, wenn
(c T
2 Rm dual zulassig. Dann sind x und y
y T A)x = 0
93
2.2. DER PRIMAL-DUALE ALGORITHMUS
gilt.
Beweis: Der Beweis folgt wegen
(c T
y T A)x = c T x y T b
sofort aus dem Dualitatssatz 54.
q.e.d.
Beweisen Sie die folgende Verallgemeinerung des Satzes: Im primalen Problem
sei fur einzelne Nebenbedingungen zugelassen, also etwa
2.8 Aufgabe:
viT x
b
i
wobei v die i -te Zeile von A sei. Die entsprechende Variable y sei dann gema den Regeln
fur duale Problem beschrankt. Auerdem seien Variablen x unbeschrankt, und fur die entsprechenden Nebenbedingungen des dualen Systems gelte dann
i
i
j
ajT y
=c;
j
wobei a die j -te Spalte von A sei. Dann sind zulassige x und y genau optimal, wenn
j
y T (Ax
(c
T
y
b)
T
=0
A)x = 0
gelten.
Aus dem Satz und der Aufgabe folgt, dass der zulassige Punkt dort Komponenten
gleich 0 haben muss, wo die duale Aufgabe Schlupfvariablen ungleich 0 hat. Man nennt
das die komlementare Schlupfbedingung (complementary slackness).
2.9. Denition: Der folgende Algorithmus heit primal-dualer Algorithmus. Sei y
zulassig im dualen Problem
AT y c;
bT y ! Max.
wobei wir zusatzlich
b0
annehmen. Das y keine beschrankten Variablen enthalt, ist diese Annahme keine Einschrankung. Wir denieren die Menge der dual aktiven Nebenbedingungen
J = fj : y T vj = cj g;
wobei die vj wieder die Spalten von A bezeichnen. Wir losen nun das sogenannte duale
eingeschrankte Problem
ATJ w 0; w 1m
bT w ! Max.
94
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
Dieses Problem hat den zulassigen Punkt 0, und ist wegen b 0 und w 1m beschrankt. Sei w das Optimum dieses Problems. Wir setzen dann im nachsten Schritt
y 0 = y + w;
mit > 0 so dass y 0 dual zulassig bleibt, und die duale Zielfunktion zunimmt.
2.10 Satz: Falls bT w 6= 0 ist, so nimmt die Zielfunktion in Richtung w zu, und es
existiert ein > 0, so dass y 0 zulassig ist. Falls dann AT w 0 ist, ist das Problem
unbeschrankt.
Falls bT w = 0 ist, so ist y optimal.
Beweis: Wir schlieen aus dem Satz 7, dass ein primal zulassiges x genau dann optimal
fur das primale Problem ist, wenn
xj = 0
fur alle j 2= J
gilt. Um ein solches x zu nden, betrachten wir daher das sogenannte eingeschrankte
Problem
AJ u + a = b; u; a 0
1Tm a ! Min.
Dual zu diesem eingeschrankten Problem ist gerade das duale eingeschrankte Problem,
mit dem wir im Algorithmus w bestimmen.
Fall 1: Sei bT w = 0. Dann ist der Optimalwert des eingeschrankten Problems auch 0,
und es folgt im Optimum a = 0. Wir erhalten ein u mit
AJ u = b; u 0;
Indem wir xJ = u setzen und xj = 0 fur j 2= J , erhalten wir einen zulassigen Punkt des
primalen Problems. Wegen der Denition von J gilt
ATJ y = cJ :
Wir erhalten daher
bT y = (AJ xJ )T y = xJT ATJ y = xJT cJ = x T c:
Da x und y zulassig sind, sind also beide optimal.
Fall 2: Sei bT w > 0. Dann ist im Optimum a 6= 0. Dann setzen wir
= 1Tm a = bT w > 0:
Es gilt daher
y 0T b = y T b + w T b = y T b + :
95
2.2. DER PRIMAL-DUALE ALGORITHMUS
Fur > 0 nimmt also die Zielfunktion zu. Damit y 0 zulassig ist, muss
AT y 0 = AT y + AT w c
gelten.
Fall 2.a: Falls AT w
0, so kann > 0 beliebig gro genommen werden, und das
duale Problem ist unbeschrankt. Also ist das primale Problem nicht losbar.
Fall 2.b: Wegen ATJ w
0 gilt
vjT w 0
fur alle j
2 J.
Es gebe also ein j 2= J mit vjT w > 0. Wahle
= minf
Wir haben
cj vjT y T
: vj w > 0g:
vjT w
vjT y < cj
Also > 0. Auerdem ist
fur alle j 2= J
vjT (y + w ) = vjT y + vjT w cj
fur alle j .
q.e.d.
Dieser Algorithmus ist eigentlich ein dualer Algorithmus, der dort eine Aufstiegsrichtung
w mit dem dualen eingeschrankten Problem
ATJ w 0; w 1m
w T b ! Max.
ndet, wobei J die dual aktiven Nebenbedingungen sind. Man beachte aber, dass man
die Bedingung b 0 herstellen muss.
2.11. Beispiel: Wir nehmen
A = 10 11 01 ; b = 31 ; c T = 2 3 2 :
Das dazu duale Problem ist
y1 ; y2 2; y1 + y2 3;
3y1 + y2 ! Max.
Dieses Problem hat die Losung (2; 1) mit Maximum 7. Startet man mit
y (0)
0
= 0 ;
96
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
so ist J = ;, und das duale eingeschrankte Problem lautet einfach
w 12
3w1 + w2 ! Max.
mit der oensichtlichen Losung
w = 11 :
Gehen wir maximal in diese Richtung, so erreichen wir
y (1)
3=2
= 3=2 :
Nun ist J = f2g, und das duale eingeschrankte Problem lautet
w1 + w2 0; w 12 ;
3w1 + w2 ! Max.
mit der Losung
w=
1
1
Nun erreichen wir das duale Optimum
y (2)
= y (1) +
1
2
w
= 1 :
2
Der Algorithmus nimmt also einen Weg durch das Innere des dual zulassigen Bereiches,
wobei immer mehr Nebenbedingungen aktiv werden, bis er eine Ecke erreicht, die schon
optimal ist.
Es gibt einen wesentlichen Unterschied zum Simplex-Verfahren fur das duale Problem.
Angenommen wir nehmen die dualen Nebenbedingungen
y1 ; y2 0
hinzu. So sind diese Nebenbedingungen im Startpunkt y (0) = 0 aktiv. Das duale eingeschrankte Problem lautet nun
w1 ; w2 0; w 12
3w1 + w2 ! Max.
und hat dieselbe Losung wie oben. Der Algorithmus geht also nicht von dualer Ecke
zu dualer Ecke, sondern nimmt einen direkteren Weg.
97
2.2. DER PRIMAL-DUALE ALGORITHMUS
Aufgrund des zusatzlichen Aufwands bei der Berechnung der des dualen eingeschrankten Problems lohnt sich der Algorithmus dennoch nur, wenn dieses Problem eine einfache Losung hat.
2.12. Beispiel: Ein maximaler Fluss auf einem gerichteten Graphen legt fur jede Kante
(i; j ) 2 E einen Fluss
0 xi;j
ci;j
fest mit Kapazitatsbeschrankungen ci;j . Dabei gibt es zusatzlich die Bedingung, dass
in den inneren Knoten der Zuuss und der Abuss gleich sein muss. Es gibt auerdem
Endknoten, bei keine Flussbedingung festgelegt wird, und einen Startknoten, fur den
wir die Summe der Abusse maximieren wollen.
Wir erhalten wie beim Problem des kurzesten Weges die Bedingungen
X
j 2V (i )
xj;i =
X
j 2N (i )
xi;j
fur die inneren Knoten i , nun aber ohne ganzzahlige Einschrankung. Zu maximieren ist
X
j 2N (s )
xs;j ! Max.
Um einen gunstigen Fall des primal-dualen Algorithmus zu erreichen, fuhren wir statt
dessen
X
xs;j = v
j 2N ( s )
ein und maximieren v .
Die Gleichungen dieses Problems bleiben dann fur das eingeschrankte Problem erhalten,
also
X
X
wj;i =
wi;j
j 2V (i )
j 2N (i )
und
X
ws;j = vw ;
j 2N (s )
wobei vw zu maximieren ist. Fur jede ausgeschopfte Kapazitat und jede gar nicht
durchlaufene Kante kommt eine Bedingung hinzu.
xi;j = ci;j ! wi;j 0;
xi;j = 0 ! wi;j 0:
Zudem erhalten wir die Beschrankungen
wi;j 1
98
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
fur alle Kanten (i; j ), sowie die Beschrankung vw
1.
Wir schaen nun einen Hilfsgraphen, der jede noch nicht durchlaufene Kante enthalt,
sowie jede voll ausgelastete Kante ruckwarts und jede nur teil-ausgelastete Kante
ruckwarts und vorwarts.
Wenn in diesem Graphen ein Weg vom Startknoten zu einem Endknoten existiert, dann
setzt man wi;j = 1, je nach der Durchlaufrichtung durch die Kante. So erhalt man
eine Losung des eingeschrankten Problems und kann den Gesamtuss erhohen. Wenn
kein solcher Weg existiert, so ist die bisher gefunden Losung optimal.
Das ist der Algorithmus von Ford-Fulkerson (1956).
2.13 Aufgabe:
Gegeben sei der Flussplan mit vier Knoten s; a; b; t und
cs ;a
=c
s ;b
=c
a;t
=c
b;t
=c
a;b
= 1:
Alle anderen Kapazitaten seien 0, oder aquivalent seien die Kanten nicht vorhanden. Wir starten
mit dem zulassigen Fluss x der Groe 1 durch
s
! a ! b ! t:
Schreiben Sie das duale eingeschrankte Problem dazu auf, und bestimmen Sie einen ussherhohenden Weg w .
Beim diesem Algorithmus konnen aktive Nebenbedingungen wieder inaktiv werden,
wenn wj < 0 fur ein j ist (im Unterschied zum primal-dualen Algorithmus fur den
kurzesten Weg, den wir im nachsten Abschnitt besprechen). Das bedeutet, dass die
Konvergenz des primal-dualen Algorithmus hier nicht gewahrleistet ist. In der Tat gibt
es einfache Beispiele, in denen der Algorithmus von Ford-Fulkerson versagt.
Falls aber alle Kapazitaten ganzzahlig sind, so konvergiert der Algorithmus. Denn der
Fluss nimmt dann in jedem Schritt um eine ganze Zahl zu, und der maximale Fluss ist
oenbar nach oben beschrankt durch die Kapazitaten der Auslasse in s . Indem man
mit dem Hauptnenner multipliziert, gilt dies auch fur rationale Kapazitaten.
2.14 Aufgabe:
Wir betrachten den Graphen aus Abbildung 2.3 mit
p
5 1
; '2 = 1 ':
2
Die nicht eingezeichneten Kanten haben eine groe Kapazitat M . Das Optimum ist dann
oenbar 2M + 1. Wir starten mit dem Startuss sCBt der Groe 1. Mit
'
=
an
='
n
sind dann die freien Kapazitaten der mittleren Kante von oben nach unten a1 , 0, a0 . Verwenden
Sie die erhohenden Flusse
w1
= sABCDt;
w2
= sCBAt;
w3
= sDCBt
99
2.2. DER PRIMAL-DUALE ALGORITHMUS
Abbildung 2.3: Beispiel von Ford und Fulkerson
und
= a a +1
um die freien Kapazitaten in der folgenden Reihenfolge zu erreichen










a +1
0
a +1
a +3
a +3
 0  ! a +1  !  0  ! a +2  !  0 
a
a +2
a +2
0
a +2
Folgern Sie, dass fur genugend groes M der Flu nicht gegen das Optimum konvergiert.
Welche Auswahl von w wurde das Optimum sofort ergeben?
an+2
n
n
n
n
n
n
n
n
n
n
n
n
Bei ungerichteten Graphen kann der Fluss in beide Richtungen durch eine Kante erfolgen. Wir konnen die Kante einfach durch zwei gerichtete Kanten mit derselben
Beschrankung ersetzen.
Betrachten Sie den Graphen in Aufgabe 19 als Flusssystem mit Startknoten F
und Endknoten M. Finden Sie den maximalen Fluss nach dem beschriebenen Algorithmus.
2.15 Aufgabe:
2.16 Aufgabe:
Gegeben sei eine einfache Flussaufgabe mit drei Knoten
A
! B ! C;
Startknoten A und Endknoten C, und Flussbeschrankungen
cA;B
= 10;
cB;C
= 20:
Schreiben Sie die Aufgabe und die duale Aufgabe als Optimierungsproblem.
100
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
2.3 Kurzeste Wege
Wir haben in Beispiel 4 das Problem der kurzesten Wege betrachtet. Wir betrachten
hier das duale Problem und losen es mit dem primal-dualen Algorithmus.
Wir suchen eine Bewertung yi fur jede Ecke ei mit der Eigenschaft
yi yj ci;j
fur (ei ; ej ) 2 K .
Auer diesen Nebenbedingungen geben wir
yt = 0
vor. Wir maximieren
ys ! Max.
Wie die folgende Aufgabe zeigt, ist dies das duale Problem zu Beispiel 4, wenn man
die ganzzahlige Restriktion weg lasst. Wir werden aber sehen, dass aus der Losung des
dualen Problems ein kurzester Pfad herausgelesen werden kann. Zudem ist die Losung
mit den primal-dualen Algorithmus leicht zu ermitteln. Dieser Eekt tritt bei einigen
wichtigen Problemen der ganzzahligen Optimierung auf.
2.17 Aufgabe:
Zeigen Sie, dass dieses Problem dual zum Problem aus Beispiel 4 ist.
Hier konnen wir den Algorithmus mit y = 0 starten. Das duale eingeschrankte Problem
hat dann die Nebenbedingungen
wi wj 0
sowie yt = 0 und wi
fur yi
yj = ci;j ,
1 fur alle i . Maximiert wird
ws ! Max.
Es wird oenbar durch eine folgende Belegung w gelost. Sei J die Menge der aktiven
Kanten, also der Kanten, wo yi yj = ci;j ist.
Falls es von et aus in J erreichbar ist, so ist w = 0 optimal. In diesem Fall ist y nach
der Theorie des Algorithmus optimal. Falls nicht, so setzen wir


1;
i ist von s aus in J erreichbar,
wi = 0; i ist von t aus in J erreichbar,

1; sonst.
Dann ist w zulassig fur das dual eingeschrankte Problem, wie man sich leicht uberlegt,
und es ist wegen w 1n und ws = 1 optimal. Durch die Wahl von
y 0 = y + w

2.3. KURZESTE
WEGE
101
Abbildung 2.4: Kurzeste Verbindung
werden nun weitere Nebenbedingungen aktiv, und die Menge der von es aus durch die
aktiven Kanten erreichbaren Punkte vergroert sich. Der Algorithmus ist folglich nach
hochstens n Schritten fertig.
Im Beispiel aus Abbildung 2.4 ist s = A und t = F . Wir starten mit y = 0 und wahlen
folglich lediglich wA = 1. Das ergibt
yA = 1
und alle anderen Eintrage in y sind 0. Aktiv ist die Kante AC . Nun wird
wA = wC = 1
und daher
yA = 2; yC = 1:
Zusatzlich aktiv werden die Kante CE und die Kante AB . In w sind nun vier Eintrage
gleich 1. Wir erhalten
yA = 4; yC = 3; yE = 2; yB = 2:
Als nachstes erhalten wir
yA = 6; yC = 5; yE = 4; yB = 4; yD = 2:
Dies ist die Losung unseres Problems. U ber die aktiven Nebenbedingungen erreichen
wir F auf dem Weg
A!C!E!D!F
oder dem Weg
A ! B ! D ! F:
102
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
Abbildung 2.5: Autobahnplan Suddeutschland
 berlegen Sie sich, dass das Optimum y die Aufgabe lost, den kurzesten Weg
2.18 Aufgabe: U
von e nach e zu nden. Verwenden Sie dazu, dass jeder Weg von e nach e eine Lange von
mindestens y y haben muss, wenn y zulassig ist.
s
t
i
2.19 Aufgabe:
dung 2.5.
i
j
j
Finden Sie den kurzesten Weg von Frankfurt nach Munchen in der Abbil-
Der Algorithmus von Dijkstra zur Berechnung von kurzesten Wegen ist zum primaldualen Algorithmus aquivalent, wenn alle ci;j > 0 sind, jeder Punkt von es aus erreichbar
ist, und von jedem Punkt aus et erreichbar ist. Wenn diese Bedingungen nicht erfullt
sind, so ist er aquivalent zum Algorithmus fur einen eingeschrankten Graphen, in dem
die Bedingungen erfullt sind.
Dazu wird ein Baum von aktiven Kanten aufgebaut, fur dessen Knoten die minimalen
Distanzen bekannt sind. Dieser Baum wird um benachbarte Knoten einzeln erweitert,
und zwar um den Knoten mit der minimalen Distanz.
103
2.4. SCHNITTEBENENVERFAHREN
2.4 Schnittebenenverfahren
Fur das ganzzahlige Optimierungsproblem (P)
Ax b; x 2 Zn
c T x ! Min.
bezeichnen wir das Problem
Ax b;
cT x
! Min.
als relaxiertes Problem. Oenbar liefert jedes Optimum des relaxierten Problems eine untere Abschatzung, die optimal ist, wenn sie ganzzahlig ist. Wenn das relaxierte
Problem keine Losung hat, so hat auch das Orginalproblem (P) keine Losung.
Ein einfaches Verfahren zur Bestimmung der Optima ist der Branch-and-Bound Algorithmus. Dazu berechnen wir eine Losung x von relaxierten Problems und denieren
das Problem (P1) durch das Problem (P) mit der zusatzlichen Bedingung
xi bxi c = maxfz 2 Z : z x g;
und (P2) durch das Problem (P) mit der zusatzlichen Bedingung
xi dxi e = minfz 2 Z : z x g:
Oenbar ist jede optimale Losung von (P) entweder in (P1) oder in (P2). Wir konnen
daher leicht das Gesamtproblem (P) losen, wenn wir die beiden Probleme (P1) und
(P2) gelost haben.
Wir durchlaufen dabei einen Baum von Problemen
P 1a
.
P1
.
&
P
&
P2
P 1b
Falls hier etwa das Optimum von (P1a) ganzzahlig ist, so bricht der Baum hier ab, und
es ist keine weitere Aufspaltung notig.
Falls das Optimum in (P2) zwar nicht ganzzahlig ist, aber schlechter als das ganzzahlige
Optimum in (P1a), so braucht man (P2) ebenfalls nicht weiter zu verfolgen. Denn
durch Einschrankungen wird das Optimum nur noch schlechter. Es ist also wichtig, das
bisher beste ganzzahlige Optimum bereit zu halten, und moglichst zuerst den Zweig
zu berechnen, der das bessere Optimum verspricht.
104
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
>shortformat;
>A1 = [ ...
>0.5,1.0,1.5,0.1; ...
>0.3,0.8,1.5,0.4; ...
>0.2,0.2,0.3,0.1];
>b1=[3.1,2.5,0.4]';
>c=[0.2,0.3,0.5,0.1];
>x0=simplex(A1_id(4),b1_ones(4,1),c,>max,>check), c.x0
0
0.5
1
0
[ 0.65 ]
>A1a=A1_[0,1,0,0]; b1a=b1_0; // x[2] <= 0
>x1a=simplex(A1a_id(4),b1a_ones(4,1),c,>max,>check), c.x1a
0.5
0
1
0
[ 0.6 ]
>A1aa=A1a_[1,0,0,0]; b1aa=b1a_0; // x[1] <= 0
>x1aa=simplex(A1aa_id(4),b1aa_ones(4,1),c,>max,>check), c.x1aa
0
0
1
1
[ 0.6 ]
>A1b=A1_[0,-1,0,0]; b1b=b1_-1; // x[2] >= 1
>x1b=simplex(A1b_id(4),b1b_ones(4,1),c,>max,>check), c.x1b
0
1
0.666667
0
[ 0.633333 ]
>A1ba=A1b_[0,0,1,0]; b1ba=b1b_0; // x[3] <= 0
>x1ba=simplex(A1ba_id(4),b1ba_ones(4,1),c,>max,>check), c.x1ba
1
1
0
0
[ 0.5 ]
>A1bb=A1b_[0,0,-1,0]; b1bb=b1b_(-1); // x[3] >= 1
>x1bb=simplex(A1bb_id(4),b1bb_ones(4,1),c,>max,>check), c.x1bb
Error : No feasible point!
Error generated by error() command
Error in function simplex
Abbildung 2.6: Beispiel fur Branch-and-Bound
105
2.4. SCHNITTEBENENVERFAHREN
Auerdem braucht der Zweig zu (P1b) oenbar nicht verfolgt zu werden, wenn das
Optimum in (P1a) ganzzahlig ist, und denselben Wert wie das relaxierte Optimum
in (P1) hat.
2.20. Beispiel: Wir losen Aufgabe 3 mit Hilfe von Euler und dem Branch-and-Bound
Algorithmus. Die Rechnungen nden sich in Abbildung 2.4
Wir erhalten die relaxierte Losung des Ausgangsproblems (Problem 1) mit
x (1) = 0 1=2 1 0 T ; c T x = 0:65
Nun ist x2(1) nicht ganzzahlig. Wir nehmen zunachst die Bedingung x2 0 dazu (Problem 1a) und erhalten
x (1a) = 1=2 0 1 0 T ; c T x = 0:6
Da nun x1(1a) nicht ganzzahlig ist, nehmen wir x1 0 dazu (Problem 1aa) und erhalten
x (1aa) = 0 0 1 1 T ; c T x = 0:6
Dies stimmt mit dem relaxierten Optimum in x (1a) uberein und ist ganzzahlig. Also ist
es optimal fur das Problem 1a. Wir nehmen nun zum Problem 1 alternativ x2 1 dazu
(Problem 1b), und erhalten
x (1b) = 0 1 2=3 0 T ; c T x = 2=3
Dies ist groer als das schon gewonnene Optimum x (1aa) . Wir mussen also diesen
Zweig weiter verfolgen. Wir nehmen x3 0 dazu und erhalten
x (1ba) = 1 1 0 0 T ; c T x = 1=2
Das ist schlechter als x (1aa) . Wir nehmen x3 1 dazu, und erhalten keinen zulassigen
Punkt des relaxierten Problems mehr.
Der Baum der betrachteten Problem sieht damit folgendermaen aus.
0:650
#
0:600
.
0:600
&
0:633
#
0:5
&
n.l.
Dabei steht fur ein Problem, das wir nicht betrachten mussten, und n.l. fur ein
Problem, das nicht losbar ist. Die ganzzahligen Losungen sind eingerahmt. Insgesamt
haben wir gezeigt, dass x (1aa) die optimale Losung ist.
106
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
Abbildung 2.7: Perfect Matching
2.21. Beispiel: Als weiteres Beispiel losen wir ein Problem des Perfect Matching. In
Abbildung 2.7 sind 7 Kanten mit Ihren Bewertungen gezeichnet.
Es ergibt sich das primale Optimierungsproblem
Ax = b; x 2 f0; 1g7 ; c T x ! Min.
mit
1 1 0
0 1 1

1 0 1


A=


sowie der Zielfunktion
0
1
0
0 

0 
 ; b = 17 :
1 1 0 1

0 1 1 0
1 0 1 0

c= 1 1 1 1 1 1 0 :
Lost man das relaxierte Problem, so erhalt man fur die 6 Kanten der beiden Dreiecke
den Wert 1=2, und fur die horizontale Kante den Wert 0.
Wir nehmen daher als zusatzliche Bedingung x3 0 dazu (dies ist die vertikale linke
Kante) und erhalten ein Problem, das keinen zulassigen Punkt hat.
Dann nehmen wir x3 1 dazu und erhalten eine ganzzahlige Losung, die den fett
gezeichneten Kanten in Abbildung 2.7 den Wert 1 zuweist, und allen anderen Kanten
den Wert 0. Damit ist das Optimum gefunden.
Das Knapsack-Problem ist das Problem einen Rucksack mit beschranktem
Gewicht zu packen, und den Wert der eingepackten Waren zu maximieren (siehe Abbildung 2.8).
2.22 Aufgabe:
Modellieren Sie das Problem im Zusammenhang mit ganzzahliger Optimierung.
107
2.4. SCHNITTEBENENVERFAHREN
Abbildung 2.8: Knapsack-Problem (Bild aus Wikipedia)
Losen Sie das Problem mit Euler erstens unter der Bedingung, dass von jedem Paket nur ein
Exemplar zur Verfugung steht, und zweitens unter der Bedingung, dass beliebig viele Pakete
zur Verfugung stehen.
Zeigen Sie, dass die Losung des relaxierten Problems sehr leicht zu nden ist, indem man die
Pakete mit dem hochsten Wert pro Gewicht zuerst nimmt.
Was macht in diesem Fall der primal-duale Algorithmus?
Es gibt auch andere Moglichkeiten, das Problem zu beschneiden, ohne ganzzahlige
Losungen zu verlieren. Dazu sei das Problem (P) wieder in der Form
Ax = b; x 0; x 2 Zn
c T x ! Min.
gegeben. Wir losen das relaxierte Problem
Ax = b; x 0;
c T x ! Min.
mit dem Simplex-Algorithmus. Dann sei
xj +
0
X
j 2= J
ai ;j xj = bi
0
0
eine Zeile des End-Tableaus, also xj(0) = bj in der Losung des relaxierten Problems.
Es folgt wegen x 0
X
xj + bai ;j cxj bi :
j 2= J
0
0
0
0
0
108
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
Fur ganzzahlige x , die im nicht relaxierten Problem (P) zulassig sind, gilt daher
xj +
0
bai ;j cxj bbi c:
X
j 2= J
0
0
Wir erhalten fur solche x
X
j 2= B
frac(ai ;j ) xj
0
frac(bi ):
0
Wobei frac(x ) = x bx c der gebrochene Anteil von x sei. Man erhalt daher eine neue
Schlupfvariable s und die Nebenbedingung
X
j 2= B
frac(ai ;j ) xj + s = frac(bi ):
0
0
Diese neue Nebenbedingung schliet keine zulassigen Punkte von (P) aus. Man nennt
sie einen Gomory-Cut. Es entsteht das neue Problem (Pc).
Man hat dann eine Basisdarstellung, bendet sich aber in der fur (Pc) nicht zulassigen
Ecke
x = x (0) ; s = frac(bi ):
Diese Ecke ist allerdings fur die duale Losung von (P) zulassig. Deswegen wird der
Algorithmus oft dual gerechnet, wobei er in jedem Schritt primal nicht zulassige Punkte
liefert, die durch Schnitte eingeschrankt werden sollen. Dies fuhrt zu dem Fractional
dual Algorithm, auf den wir hier nicht weiter eingehen.
0
2.23. Beispiel: Man kann auch lediglich primal rechnen, allerdings in der fur dieses
Problem geeigneten Gau-Jordan Form. Wir nehmen die Nebenbedingungen
3x + 2 y
3x + 2 y
und x; y
2 N0 an und maximieren
6
0
y ! Max.
Nach zwei Austauschvorgangen in der Gau-Jordan-Form fur das Problem in Standardform erhalten wir das Tableau
s1
s2
x 1=6 1=6 1
y 1=4 1=4 3=2
1=4 1=4 3=2
Der Punkt x = 1 und y = 3=2 ist nicht zulassig, da y nicht ganzzahlig ist. Gema der
Theorie fugen wir den Gomory-Cut
1=4s1 + 1=4s2 1=2
2.4. SCHNITTEBENENVERFAHREN
>load gaussjordan; shortestformat;
>A=[3,2;-3,2]
3
2
-3
2
>b=[6,0]'; c=[0,-1];
>M=A|b_c;
>v=["s1","s2","","x","y"]; n=1:5; gjprint(M,n,v)
x
y
s1
3.000
2.000
6.000
s2
-3.000
2.000
0.000
0.000
-1.000
0.000
>gjstep(M,1,1,n)
>gjstep(M,2,2,n,v)
s1
s2
x
0.167
-0.167
1.000
y
0.250
0.250
1.500
0.250
0.250
1.500
>M,n,v=gjaddcondition(M,n,v,-mod(M[2],1),"s3"); gjprint(M,n,v)
s1
s2
x
0.167
-0.167
1.000
y
0.250
0.250
1.500
s3
-0.250
-0.250
-0.500
0.250
0.250
1.500
>gjstep(M,3,1,n,v)
s3
s2
x
0.667
-0.333
0.667
y
1.000
0.000
1.000
s1
-4.000
1.000
2.000
1.000
0.000
1.000
>M,n,v=gjaddcondition(M,n,v,-mod(M[1],1),"s4");
>gjstep(M,4,2,n,v)
s3
s4
x
1.000
-0.500
1.000
y
1.000
0.000
1.000
s1
-5.000
1.500
1.000
s2
1.000
-1.500
1.000
1.000
0.000
1.000
Abbildung 2.9: Gomory Cuts
109
110
KAPITEL 2. GANZZAHLIGE OPTIMIERUNG
hinzu. Dies entspricht ubrigens der Ungleichung
1=2 1=4 (6 3x
2y ) + 1=4 (0 + 3x
Man erhalt das Tableau
x
y
s3
2y ) = 3=2 y
, y 1:
s1
s2
1=6
1=6 1
1=4 1=4 3=2
1=4 1=4 1=2
1=4 1=4 3=2
Wie in Abbildung 21 ersichtlich, fuhrt dies nach einem Austauschschritt auf das Tableau
s3
x 2=3
y 1
s1 4
1
s2
1=3 2=3
0
1
0
1
2
1
Nun ist x nicht ganzzahlig. Wir fugen daher den Gomory-Cut
2=3s3 + 2=3s2 2=3
hinzu, was zu x
y aquivalent ist. Man erhalt nun eine ganzzahlige Losung in
x = y = 1:
Kapitel 3
Nichtlineare Optimierung
3.1 Konvexe Funktionen
3.1. Denition: Eine Funktion f : M
deniert ist, heit konvex, wenn
! R, die auf einer konvexen Menge M Rn
f (x + y ) f (x ) + f (y )
fur alle x; y
2 M und alle
; 0; + = 1
gilt.
Abbildung 3.1: Konvexe Funktion
111
112
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
Die Konvexkombinationen der Bilder sind also groer als die Bilder der Konvexkombinationen. Im Graphen liegt die Strecke zwischen zwei Punkten oberhalb vom Graphen.
Es machte keinen Sinn, konvexe Funktionen auf nicht konvexen Mengen zu betrachten.
A quivalent zur Konvexitat ist, dass der Supergraph
f(x; t ) 2 Rn : x 2 M , t f (x )g
konvex ist. In den Schulen wird Konvexitat ubrigens oft dadurch charakterisiert, dass
der Subgraph
f(x; t ) 2 Rn : x 2 M , t f (x )g
konvex ist. In den Universitaten ist seit langem die obige Denition gebrauchlich.
Per Induktion erhalt man als Konsequenz
f
m
X
i =1
i
x (i )
!
m
X
i =1
i f (x (i ) )
fur Konvexkombinationen, also fur
1 ; : : : ; m 0;
m
X
i =1
i = 1:
und x (1) ; : : : ; x (m) 2 M .
3.2 Satz: Sei f : U ! R konvex und zweimal stetig dierenzierbar, U Rn oen und
konvex. Dann ist f genau dann konvex, wenn die Hesse-Matrix Hf (x ) fur alle x 2 U
positiv semi-denit ist.
Beweis: Dieser Satz besagt fur n = 1, dass f 00 (x ) 0 sein muss. Zum Beweis
verwenden wir das Restglied der Interpolationsformel
f 00 ()
f (t ) p(t ) = 2 (t a)(t b)
mit 2 ]a; b[, wobei das lineare Polynom p die Funktion f in a und b interpoliere. Falls
f 00 0 auf ]a; b[ ist, so ist f also wegen
f (a + b) p(a + b) = p(a) + p(b) = f (a) + f (b)
fur ; 0, + = 1, konvex. Man beachte, dass fur linear ane Funktionen p die
zweite Gleichheit gilt. Falls f 00 (x ) < 0 fur ein x ist, so konnen wir a und b wahlen, so
dass f 00 < 0 auf ]a; b[ gilt. f ist dort dann nicht konvex.
Der Satz kann im mehrdimensionalen Fall auf den eindimensionalen Fall zuruckgefuhrt
werden. Denn fur
g (t ) = f (x + tv )
113
3.1. KONVEXE FUNKTIONEN
mit x
2 U , x + tv 2 U gilt
g 0 (t ) = grad f (x + tv ) v; g 00 (t ) = v T Hf (x + tv ) v:
2 U , v 2 Rn konvex sind. Also folgt
Genau dann ist f konvex, wenn alle g fur alle x
der Satz auch fur n > 1.
q.e.d.
Wie man im Beweis des Satzes sieht, ist f strikt konvex, falls Hf (x ) positiv denit ist.
Das bedeutet
!
m
m
f
X
i =1
i x ( i ) <
X
i =1
i f (x (i ) )
fur Konvexkombinationen mit paarweise verschiedenen x (i ) und i > 0.
3.3. Beispiel: f : ]0; 1[ deniert durch f (x ) =
ln
m
1X
!
ln(x ) ist strikt konvex. Daher gilt
m
1X
m i =1 ai < m i =1 ln(ai )
sofern nicht alle ai > 0 gleich sind. Es folgt
(a1 : : : am
)1=m
m
1X
<m
i =1
ai :
Dies ist die Ungleichung uber das geometrische und das arithmetische Mittel.
3.4 Satz: Sei f : M ! R konvex, M Rn konvex, und x 2 M ein lokales Minimum
von f . Dann ist x ein globales Minimum auf M . Wenn das lokale Minimum strikt ist,
so ist auch das globale Minimum strikt.
Beweis: Sei y
2 M mit
f (y ) < f (x ):
Wir betrachten
g (t ) = f (x + t (y x ))
fur t 2 [0; 1]. Es ist leicht nachzurechnen, dass g ebenfalls konvex ist. Da x lokales
Minimum ist, gibt es ein t 2 ]0; 1[ mit
g (t ) g (0) = f (x ):
Dies ist ein Widerspruch zu
g (t ) = g (t 1 + (1 t ) 0)
tg (1) + (1 t )g (0)
= g (0) t (g (0) g (1))
< g (0):
114
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
Es folgt die erste Behauptung. Bei einem strikten lokalen Minimum ist die erste Ungleichung dieser Kette mit < erfullt.
q.e.d.
Es reicht fur den Satz zu fordern, dass M sternformig bezuglich des lokalen Minimums
x ist. Das bedeutet, dass alle Strecken von x nach Punkten y 2 M ganz in M enthalten sind. Da aber konvexe Funktionen sinnvollerweise auf konvexen Mengen deniert
werden, formulieren wir den Satz weniger allgemein.
Mit Hilfe des folgenden Satzes aus der Analysis erhalten wir daher strikte globale Minima von konvexen Funktionen mit Hilfe von lokalen Bedingungen fur die Ableitungen.
3.5 Satz: Sei f : U ! R zweimal stetig dierenzierbar, U Rn oen. Wenn dann
grad f (x ) = 0
gilt, und Hf (x ) positiv denit ist, so liegt in x ein striktes lokales Minimum von f .
Beweis: Im eindimensionalen Fall folgt der Satz sofort aus der Taylor-Entwicklung mit
Restglied
f 00 ()
f (x + h) = f (x ) + 2 h2 ;
da f 00 () > 0 dann in einer Umgebung von x gilt. Den mehrdimensionalen Fall konnen
wir auf den eindimensionalen zuruck fuhren. Denn die Funktionen
gh (t ) = f (x + th)
sind fur alle h in t zweimal stetig dierenzierbar. Fur khk < sind die zweiten Ableitungen
gh00 (t ) = hT Hf (x + th)h > 0
fur t 2 ] 1; 1[. Also ist gh auf ] 1; 1[ strikt konvex und besitzt in 0 ein lokales
Minimum wegen
gh0 (0) = grad f (x ) h = 0:
Also ist 0 striktes globales Minimum von gh auf ] 1; 1[ fur alle h. Es folgt die Behauptung.
q.e.d.
Zeigen Sie, dass eine konvexe, zweimal partiell dierenzierbare Funktion f ,
deniert auf einer konvexen, oenen Menge U , ein globales Minimum in x 2 U hat, wenn der
Gradient in x verschwindet und die Hesse-Matrix in x positiv-semidenit ist. Fuhren Sie diese
Aussage auf den eindimensionalen Fall zuruck.
3.6 Aufgabe:
3.7 Satz: Sei f : U
oen. Wenn dann in x
! Rn
2U
konvex und stetig dierenzierbar, U
grad f (x ) = 0
gilt, so ist x ein globales Minimum von f auf U .
Rn
konvex und
115
3.2. ABSTIEGSVERFAHREN
Beweis: Da dann alle Richtungsableitungen von f in x gleich 0 sind und da U konvex
ist, lasst sich der Satz auf den eindimensionalen Fall zuruck fuhren, wo er sich leicht
beweisen lasst.
q.e.d.
Diese Behauptung stimmt ohne die Voraussetzung, dass f konvex ist, naturlich nicht
mehr, wie die Funktion f (x ) = x 3 zeigt. Andererseits lasst sich der Satz auf f (x ) = x 4
anwenden, wo die Methode der zweiten Ableitung versagt.
Auch hier reicht wieder zu fordern, dass U sternformig bezuglich x ist.
Sei f : U ! R konvex, U Rn konvex und oen. Dann ist f stetig. Diesen Satz aus der
konvexen Analysis benotigen wir fur unsere Zwecke nicht. Der Beweis ist umstandlich,
aber elementar.
3.8 Aufgabe:
falsch?
Zeigen Sie diesen Satz fur
n
= 1. Warum ist er fur nicht-oene Intervalle
U
3.2 Abstiegsverfahren
Fur konvexe, dierenzierbare Funktionen f : U ! R mit konvexem, oenen U
liegt es nahe, in jedem Schritt eine Abstiegsrichtung v (m) 2 Rn zu wahlen, und
Rn
x (m+1) = x (m) + (m) v (m)
durch (m) > 0 zu bestimmen, so dass x (m+1) minimal wird. Dies ist lediglich eine
eindimensionale Minimierung. Fur diese Verfahren benotigen wir einen guten Minimierer
fur eindimensionale konvexe Funktionen.
3.9 Aufgabe:
Sei g : I ! R stetig und konvex, I R ein Intervall. Es gebe dann Punkte
x1 < x2 < x3
mit
f (x1 )
f (x );
2
f (x3 )
f (x ):
2
Zeigen Sie, dass dann das Intervall [x1 ; x3 ] ein globales Minimum von f auf I enthalt.
Angenommen, wir wissen aufgrund der obigen Aufgabe, dass das kompakte Intervall
I (m) = [a; b] ein globales Minimum enthalt. Wenn wir dann Punkte
a < x1 < x2 < b
haben, so denieren wir
I (m+1)
=
[a; x2 ]; f (x2 ) f (x1 );
[x1 ; b]; f (x1 ) > f (x2 ):
(
116
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
>type fmin
function fmin (f: string, a: number, b: number)
if (isvar("eps")); localepsilon(eps); endif;
x0=a; x3=b;
y0=f(x0,args()); y3=f(x3,args());
l=(3-sqrt(5))/2;
x1=x0+l*(x3-x0); x2=x3-l*(x3-x0);
y1=f(x1,args()); y2=f(x2,args());
repeat
if y1>y2;
x0=x1; x1=x2; x2=x3-l*(x3-x0);
y0=y1; y1=y2;
y2=f(x2,args());
else
x3=x2; x2=x1; x1=x0+l*(x3-x0);
y3=y2; y2=y1;
y1=f(x1,args());
endif;
if x0~=x3; return x0; endif;
end;
endfunction
>fmin("-sin(x)",0,pi), pi/2
1.57079631626
1.57079632679
>function f([x,y]) &= x^2+y^4
4
2
y + x
>function df([x,y]) &= grad(f(x,y))
3
[2 x, 4 y ]
>x=[1,1]; v=-df(x); function map g(t) := f(x+t*v)
>xnew=x+fmin("g",0,2)*v
[ 0.291219413625 -0.417561172749 ]
>f(x), f(xnew)
2
0.115209226439
Abbildung 3.2: Minimierung mit goldenem Schnitt
117
3.2. ABSTIEGSVERFAHREN
3.10 Aufgabe:
Zeigen Sie, dass dann I (
m +1)
ein globales Minimum enthalten muss.
Dieser Teilungsalgorithmus fuhrt bei Drittelung des Intervalls zu einer geometrischen
Konvergenzrate von 2=3, wobei allerdings in jedem Schritt zwei neue Funktionswerte
zu berechnen sind. Gemessen an den Funktionsauswertungen erhalt man eine Konvergenzrate von
p
2=3 0:8165
Es ist daher gunstiger, die Punkte so zu wahlen, dass bei der Wahl von x2 als Randpunkt
x1 als Zwischenpunkt dienen kann. Dazu setzen wir
x1 = a + (1 )b; x2 = (1 )a + b:
Falls nun x2 neuer Randpunkt wird, so soll gelten
x = x1 = (1 )a + x2 :
2
Dies ist der Fall, wenn
2 = 1 ist, also
=
Wegen
p
5 1
2
0:618
x2 a = (b a)
ist dies gerade die geometrische Konvergenzrate des Algorithmus. Es ist im nachsten
Schritt nur der Funktionswert in
x = a + (1 )x2
1
neu zu berechnen, und man kann mit
a < x1 < x2 < b
fortfahren. Dieses Verfahren heit Golden Section Search, da es mit dem Goldenen
Schnitt arbeitet.
3.11. Beispiel: In Abbildung 3.2 ist der Euler-Code fur den Algorithmus wiedergegeben.
Der Algorithmus wird auerdem fur eine Richtungssuche in Richtung des Gradienten
von
f (x; y ) = x 2 + y 4
angewendet.
Die Wahl der Abstiegsrichtung ist entscheidend.
3.12. Beispiel: In Abbildung 3.3 wird der Gradient
grad f (x; y ) = (2x; 4y )
118
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
Abbildung 3.3: Abstieg in Richtung des Gradienten
der Funktion
f (x; y ) = x 2 + 2y 2
als Abstiegsrichtung
v = grad f (x; y )T
verwendet. Das fuhrt zu einem Zickzackweg, dessen Anfang man in der Abbildung
sieht. Man rechnet nach, dass man nach zwei Schritten ein einem Punkt (a; a) landet,
so dass aufgrund der A hnlichkeit immerhin eine geometrische Konvergenz entsteht.
Bei Funktionen vom Typ
f (x; y ) = x 2 + y 4
stehen aber die Gradienten immer mehr parallel zur y -Achse. Daher verschlimmert sich
der Zickzackweg. Die Konvergent wird sehr schlecht, und die geometrische Konvergenzrate konvergiert gegen 1.
Es liegt nahe, dieselbe Abstiegsrichtung zu wahlen, die das Newton-Verfahren zur
Losung von
grad f (x ) = 0
nehmen wurde. Das Newton-Verfahren lautet hier
x (m+1) = x (m) Hf (x (m) ) 1 grad f (x (m) )T :
Man kann dieses Newton-Verfahren direkt verwenden, oder die Funktion f langs der
Abstiegsrichtung
v (m) = Hf (x (m) ) 1 grad f (x (m) )T
minimieren.
3.13. Beispiel: Fur die Funktion
f (x; y ) = x 2 + y 4
119
3.2. ABSTIEGSVERFAHREN
Abbildung 3.4: Abstieg in Newton-Richtung
lautet die Hesse-Matrix
Hf (x; y ) = 20 120y 2 :
Sie geht fur (x; y ) ! (0; 0) gegen eine nicht-regulare Matrix. Der Abstieg in NewtonRichtung funktioniert jedoch noch, wenngleich auch nicht quadratisch, wie es fur das
Newton-Verfahren bei regularer Matrix Hf (x ) der Fall ist. Abbildung 3.4 zeigt, dass
hier nicht in Richtung des Gradienten gegangen wird. Die geometrische Konvergenzrate
konvergiert langsam gegen 0.
Die Richtungsableitung von f in Richtung v ist ja durch
Dv f (x ) = grad f (x ) v
gegeben. Wegen
D
grad f (x ) f (x ) =
k grad f (x )k2
liefert fur stetig dierenzierbare f der Gradient tatsachlich eine Abstiegsrichtung. Wenn
fur die Funktion f die Hesse-Matrix Hf (x ) in x positiv denit ist, so gilt
grad f (x )( Hf (x ) 1 grad f (x )T ) = grad f (x )Hf (x ) 1 grad f (x )T < 0;
da dann auch Hf (x ) 1 positiv denit ist. Also ist die Richtung des Newton-Verfahrens
ebenfalls eine Abstiegsrichtung.
Sei f : U ! R konvex, M R konvex. f habe im Innern von U ein striktes
Minimum. Zeigen Sie, dass dann die Subniveaumengen
n
3.14 Aufgabe:
Sc
= fy
2 U : f (y ) c g
120
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
von f beschrankt sind. Betrachten Sie dazu eine Folge mit
f (x (m) )
c;
x (m )
! 1;
x (m)
2 M:
Verwenden Sie dann, dass fur > 0
f
x
+
kx
(m)
x
k (x
x)
(m)
! f (x )
gelten wurde.
3.15 Satz: Sei f : U ! R konvex, U Rn oenen und konvex. Die Subniveaumenge
K = Sf (x
sei kompakt und es gelte K
Richtung v (x ). Es gelte
(0)
)
U . Weiter wahle man zu jedem x 2 K
stetig eine
v (x ) = 0 , x Minimum von f :
Ansonsten sei v (x ) eine eine echte Abstiegsrichtung. Es existiere also ein > 0 mit
f (x + v (x )) < f (x ); x + v (x ) 2 U:
Die Folge x (m) sei durch vollstandige Minimumsuche langs der Abstiegsrichtung v (x (m) )
deniert. Dann ist jeder Haufungspunkt der Folge ein absolutes Minimum von f auf U ,
und es existiert mindestens ein Haufungspunkt.
Beweis: Die Folge f (x (m) ) ist per Denition streng monoton fallend, wenn sie nicht in
einem Minimum stehen bleibt, und bleibt daher in K . Sie hat also einen Haufungspunkt
x 2 K . Es folgt
f (x (m) ) ! f (x ):
Wir denieren die Abbildung durch
(x ) = f (x ) minff (x + v (x )) : x + v (x ) 2 U g:
(x ) ist der Fortschritt, den die globale Minimumsuche in Richtung v (x ) von x aus
macht. Diese Abbildung ist stetig, wie die folgende Aufgabe zeigt. Angenommen x ist
kein Minimum. Dann haben wir
f (x (m) ) f (x (m+1) ) = (x (m) ) ! (x ) > 0:
Andererseits konvergiert aber
f (x (m) ) f (x (m+1) ) ! 0
Dies ist ein Widerspruch.
q.e.d.
121
3.2. ABSTIEGSVERFAHREN
3.16 Aufgabe:
setzungen
Sei x (
m)
Wir denieren mit den im Satz verwendeten Bezeichnungen und VorausM (x )
= minff (x + v (x )) : x + v (x ) 2 K g:
eine Folge in K , die gegen x konvergiert. Zeigen Sie
lim sup M (x ( ) ) M (x ):
m
!1
m
Das Minimum werde fur jedes x ( ) in ( ) angenommen. Zeigen Sie dass diese Folge beschrankt
ist und nutzen Sie ein Argument mit Haufungspunkte um
m
m
lim!1
inf M (x ( ) ) M (x )
m
m
zu zeigen.
Es ist aufwandig, die vollstandige Minimumsuche durchzufuhren. Daher existieren verschiedene Kriterien fur eine eektive Wahl von (m) , auf die wir hier nicht weiter
eingehen.
Es gibt weitere Abstiegsverfahren, die von einem Punkt x aus sukzessive in Richtungen
w1 ; : : : ; wn
suchen, die eine Basis des Rn bilden.
3.17. Beispiel: Fur die Funktion
f (x ) = x 2 + 2 y 2
fuhrt eine Suche in Richtung der Einheitsvektoren e1 und e2 aufgrund der Richtung der
Hauptachsen der quadratischen Funktion nach einem Schritt zum Minimum. Fur
f (x; y ) = x 2 + y 2 + xy
liefert jeder Startpunkt mit y = a den Punkt [ a=2; a=4], so dass man eine geometrische Konvergenz erhalt.
Um die Konvergenz zu verbessern, gibt es die Idee, eines der wi durch die Abstiegsrichtung
w (m) = x (m+1) x (m)
zu ersetzen. Das neue System sollte eine Basis ergeben. Dies ist naturlich dann der
Fall, wenn ein Abstieg in Richtung wi vorlag. Man nimmt daher die Richtung, in der
der starkste Abstieg vorlag. Das Verfahren heit dann Verfahren von Powell.
122
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
3.3 Lagrange-Gleichung
Wir nehmen an, dass wir endlich viele Nebenbedingungen in Form von Ungleichungen
gi (x ) 0; i = 1; : : : ; m
erfullen mochten, und endlich viele Nebenbedingungen in Form von Gleichungen
hj (x ) = 0; j = 1; : : : ; p:
Dabei seien die Funktion gi und hj auf einer Menge M Rn deniert. Die Menge der
zulassigen Punkte sei wieder mit Z bezeichnet, und die Indexmenge der in x aktiven
Nebenbedingungen mit
Ix = fi : gi (x ) = 0g:
Zu minimieren Sei eine Funktion
f :M!R
unter den genannten Nebenbedingungen. Es gilt zunachst der folgende einfache Satz.
3.18 Satz: Seien i
0 und j 2 R so beschaen, dass fur x 2 Z die Funktion
Lx (x ) = f (x ) +
X
i 2Ix
i g i ( x ) +
p
X
j =1
j hj (x )
ein Minimum auf Z in x habe. Dann ist x auch Minimum von f auf Z .
Beweis: Oensichtlich gilt dann fur y
2Z
f (y ) f (y ) +
X
f (x ) +
X
= f (x )
i 2Ix
i 2Ix
i g i ( y ) +
i g i ( x ) +
p
X
j =1
p
X
j =1
j hj (y )
j hj (x )
Es folgt die Behauptung.
q.e.d.
Man beachte, dass die Lagrange-Funktion Lx von x , den i 0 und den j 2 R
abhangt. Die allgemeine Idee ist nun, im dierenzierbaren Fall ein Minimum von Lx
dadurch zu nden, dass man
grad f (x ) +
X
i 2Ix
i grad gi (x ) +
p
X
j =1
j grad hj (x ) = 0
123
3.3. LAGRANGE-GLEICHUNG
setzt, und auf diese Weise i und j bestimmt. Wenn x dann Lx auf M minimiert
ist und alle i 0 sind, so minimiert es nach dem Satz f auf Z . Die Umkehrung ist
naturlich nicht immer richtig.
3.19 Aufgabe:
Wahlen Sie p = 0, m = 1 und die Funktionen
f (x ; y )
=
auf
M
xy;
h (x ; y )
=x +y
= f(x ; y ) : x ; y
1=0
0g:
Zeigen Sie auf elementare Weise, dass in x = y = 1=2 ein Minimum vorliegt. Wie muss man wahlen, so dass
L(x ; y ) = f (x ; y ) + h(x ; y )
dort einen kritischen Punkt hat? Hat L dort ein lokales Minimum bezuglich M ? Fuhren Sie nun
dasselbe fur die Funktion
1
f (x ; y ) =
xy
durch, die in diesem Punkt ebenfalls ein Minimum unter der Nebenbedingung hat.
3.20 Aufgabe:
g 1 (x )
= x2 + y2
Berechnen Sie das Minimum von x x 2 y 2 unter der Nebenbedingung
1 0, indem Sie den Fall I = ; und I = f1g unterscheiden.
x
x
3.21. Beispiel: Wir minimieren f (x ) unter der Nebenbedingung Ax = b mit A 2 Rmn ,
b 2 Rm . Die Lagrange-Funktione kann hier als
L(x ) = f (x ) + T (Ax b)
geschrieben werden. In einem Minimum von L muss
grad L(x ) = grad f (x ) + T A = 0
gelten. Dies bedeutet
grad f (x )T
2 Bild AT , grad f (x )T ? Kern A:
Weiter gilt
HL(x ) = Hf (x ):
Wenn Hf (x ) uberall positiv denit ist, ist also L strikt konvex. Damit sind alle globalen
Minima von L unter der Nebenbedingung Ax = b gefunden. Sie sind daher auch globale
Minima von f (x ) unter der Nebenbedingung Ax = b.
Fur m = 0 haben wir nur die Nebenbedingungen hj . Wenn die Funktionen auf einer
oenen Menge U dierenzierbar sind, sucht man ein Minimum der Hilfsfunktion
L=f +
p
X
j =1
j hj
124
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
durch
grad L(x ) = grad f (x ) +
p
X
j =1
j grad hj (x ) = 0:
Dies ist die Idee der Lagrange-Multiplikatoren.
Zeigen Sie, dass man die Lagrange-Gleichungen in diesem Fall dadurch ndet,
dass man die Ableitungen der Funktion
3.22 Aufgabe:
L(x ; )
= f (x ) +
p
X
j hj (x )
j =1
nach allen Komponenten von x und gleich 0 setzt.
Es gilt der folgende Satz aus der Analysis, der die Notwendigkeit der Gradientenbedingung in lokalen Minima sicher stellt. Wie das obige Beispiel zeigt, ist in diesem Fall
ist allerdings immer noch nicht gewahrleistet, dass die Lagrange-Funktion tatsachlich
lokal minimiert oder maximiert wird.
3.23 Satz: Sei f ; h1 ; : : : ; hp : U ! R stetig dierenzierbar, U Rn oen. In x0 2 U
habe f ein lokales Extremum unter den Nebenbedingungen
h1 (x ) = : : : = hp (x ) = 0:
Weiter seien die Vektoren
grad h1 (x0 ); : : : ; grad hp (x0 )
linear unabhangig. Dann existieren 1 ; : : : ; p 2 R mit
grad f (x0 ) =
n
X
j =0
j grad hj (x0 ):
Beweis: Angenommen nicht. Dann gibt es cpT+1 ; : : : ; cnT
grad f (x0 )
grad g (x )
1 0 



M


::


:



= grad gp (xp )




 cpT+1


::




:
cnT
2 Rn , so dass die Matrix
125
3.3. LAGRANGE-GLEICHUNG
invertierbar ist. Diese Matrix ist die Ableitungsmatrix der Funktion
f (x )
 g (x ) 
 1 
 : 
 :: 



( x ) = 
 gp (x ) 
 T 
cp+1 x 
 : 
 : 
 : 
cnT x


in x0 . Daher ist diese Funktion nach dem Umkehrsatz lokal invertierbar in x0 . Es gibt
also Punkte x in jeder Umgebung von x0 , die ebenfalls die Nebenbedingungen erfullen,
aber fur f (x ) Werte wahlweise groer oder kleiner f (x0 ) annehmen.
q.e.d.
3.24 Aufgabe:
Sei y Losung von
Zeigen Sie, dass x = A
3.25 Aufgabe:
T
y
AAT y
=b
die Norm kx k minimiert unter der Nebenbedingung Ax = b.
Zeigen Sie, dass die Subniveaumenge
Sc
= fx
2 M : g (x ) c g
einer konvexen Funktion g : M ! R konvex ist. Folgern Sie, dass im Fall p = 0 und konvexen
g die zul
assige Menge Z konvex ist.
i
3.26. Beispiel: Eine einfache Anwendung ist gegeben, wenn f und die Nebenbedin-
gungen gi konvex sind, sowie p = 0. In diesem Fall ist die Lagrange-Funktion
f (x ) +
fur i
X
i 2Ix
i gi (x )
0 konvex. Wenn also M = U oen ist, die Funktionen dierenzierbar sind, und
grad f (x ) =
X
i 2Ix
i grad gi (x )
mit i 0 in x 2 U ist, so hat die Lagrange-Funktion ein globales Minimum bezuglich
U in x . Also liegt in x 2 U ein globales Minimum von f auf Z vor.
3.27 Satz: Seien f und die Funktion gi konvex und dierenzierbar auf der konvexen,
oenen Menge U R und die zulassige Menge Z habe einen inneren Punkt. In x 2 Z
gelte
grad gi (x ) 6= 0
fur alle i 2 Ix
Dann ist x genau dann globales Minimum von f auf U , wenn
grad f (x ) =
X
i 2Ix
i grad gi (x )
126
mit i
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
0 gilt.
Beweis: Wir haben die Bedingung bereits als hinreichend erkannt.
Sei also die Bedingung nicht erfullt. Im Wesentlichen folgen wir nun dem Beweis von
Satz 78 aus dem ersten Kapitel.
Die Richtung von x zum inneren Punkt ist dann fur alle in x aktiven gi eine Abstiegsrichtung. Dies ist nicht moglich, wenn 0 in der konvexen Hulle der aktiven Gradienten
grad gi (x ) liegt.
Genau wie im semi-innten Fall erhalten wir daher eine Abstiegsrichtung v von f mit
grad gi (x )T v < 0
fur alle i
2 Ix . Es folgt analog fur > 0 klein genug, dass
gi (x + v ) < 0
fur alle i gilt, und
f (x + v ) < f (x ):
Dies ist ein Widerspruch dazu, dass x ein globales Minimum ist.
q.e.d.
3.28. Beispiel: Wir minimieren
f (x; y ) = x 2 + y 2
unter den Nebenbedingungen
g (x; y ) = xy 1; x; y > 0:
Die Funktion g ist nicht konvex. Wir ersetzen die Nebenbedingung daher durch
1
g~(x; y ) = xy 1:
Diese Funktion ist konvex. Man rechnet nach dass der Gradient der Hilfsfunktion
f (x; y ) + g~(x; y )
fur Punkte, in denen g~(x; y ) = 1 aktiv ist, nur in
x = y = 1; = 2
verschwindet. Es folgt, dass dort ein globales Minimum der Aufgabe liegt. Fur Punkte,
in denen die Nebenbedingung nicht aktiv ist, reduziert sich die Hilfsfunktion auf f (x; y ).
Der Gradient verschwindet dann nie innerhalb des zulassigen Bereiches.
127
3.4. NEWTON-BARRIER-VERFAHREN
Im Beispiel wurden dieselben Gleichungen wie beim Satz von Lagrange verwendet, bei
dem
grad f (x ) = grad g (x )
gesetzt wird. In einem lokalen Extremum von f unter der Nebenbedingung g = c ist
diese Gleichung unter der zusatzlichen Voraussetzung
grad f (x ) 6= 0
losbar. Allerdings liefert dieser Satz keine Aussagen daruber, welcher Art das lokale
Extremum ist, oder ob es sogar global ist.
3.29 Aufgabe:
Berechnen Sie fur a1 ; : : : ; a
n
f (x )
0 das Maximum von
= a1 x1 + : : : + a
n
xn
unter den Nebenbedingungen
g (x )
= x12 + : : : + x 2 = 1;
x1 ; : : : ; xn
n
0:
und leiten Sie so die Schwarzsche Ungleichung her.
3.4 Newton-Barrier-Verfahren
Wir wollen eine Funktion
f : U ! Rn
auf einer oenen Menge U Rn unter Nebenbedingungen
gi (x ) 0
mit Funktionen
gi : U ! Rn ; i = 1; : : : ; m
minimieren. Dabei gehen wir davon aus, dass f und alle gi konvexe Funktionen auf der
konvexen Menge U sind, und die zulassige Menge
K = fx 2 U : gi (x ) 0, i = 1; : : : ; mg
eine kompakte, konvexe Menge ist, die in U enthalten ist. Auerdem sei
K = interior K 6= ;:
3.30. Denition: Das Newton-Barrier-Verfahren minimiert
hc (x ) = f (x ) c
m
X
i =1
log( gi (x ))
128
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
fur c > 0 im Inneren von K und lasst dann c ! 0 gehen.
Oenbar geht die Funktion hc am Rand von K gegen 1. Da K kompakt ist, existiert
ein Minimum von hc in K . Auerdem konvergiert hc auf jeder kompakten Teilmenge
von K gleichmaig gegen 0.
3.31 Aufgabe:
Sei das Minimum von h gleich M . Zeigen Sie
c
Mc
c
! min
f (x )
2
x
K
fur c ! 0.
Es ist im Newton-Barrier-Verfahren nicht notig, das Minimum von hc exakt zu bestimmen. Fur die praktische Durchfuhrung reicht es, das Minimum langs einer Abstiegsrichtung zu nden. Fur den nachsten Schritt wird c dann erniedrigt, etwa um einen
festen Faktor 0 < < 1.
Eine einfache Moglichkeit ist die Suche in Richtung des Gradienten
grad hc (x ) = grad f (x )
m
X
c
g
(
x ) grad gi (x ):
i =0 i
Man benotigt aber fur ein gutes Verfahren bessere Suchrichtungen. Wir ziehen uns
dazu auf den Fall von linearen Nebenbedingungen
gi (x ) = aiT x bi 0; i = 1; : : : ; m
zuruck. Wir haben in diesem Fall
grad hc (x ) = grad f (x )
sowie
Hhc (x ) = Hf (x ) +
m
X
caiT
;
a T x bi
i =0 i
m
X
cai aiT
:
(aT x bi )2
i =1 i
Sei A 2 Rmn die Matrix mit den Zeilen aiT . Dann haben wir also
Hhc (x ) = Hf (x ) + cAT Dx2 A
mit der Diagonalmatrix

 aT x
 1
Dx = 



1

bi
:::
1
amT x
bi






129
3.4. NEWTON-BARRIER-VERFAHREN
>function f([x,y]) &= (x-0.1)^2+y^4
4
2
y + (x - 0.1)
>function df([x,y]) &= gradient(f(x,y),[x,y])
3
[2 (x - 0.1), 4 y ]
>function Hf([x,y]) &= hessian(f(x,y),[x,y])
[ 2
0
[
[
2
[ 0 12 y
]
]
]
]
>A=-id(2); b=zeros(2,1);
>X=newtonbarrier("f","df","Hf",A,b,[1,1],>history,eps=0.0001); P=X';
>plot2d("f",a=0.001,b=1,c=0.001,d=1,>contour);
>plot2d(P[1],P[2],color=red,>add); insimg;
>length(X)
16
>X[-1], f(X[-1])
[0.1, 0.000179112]
0
Abbildung 3.5: Newton-Barrier-Methode
130
KAPITEL 3. NICHTLINEARE OPTIMIERUNG
Wenn f strikt konvex ist und A vollen Rang n hat, so ist also hc strikt konvex.
Zeigen Sie, dass f (g (x )) konvex ist, wenn f und g konvex sind, und f monoton
wachsend. Geben Sie ein Beispiel fur eine konvexe Funktion g , fur die log(g (x )) nicht konvex
ist.
3.32 Aufgabe:
3.33. Beispiel: In der Abbildung 30 wird das Optimum der Funktion
f (x; y ) = (x 0:1)2 + y 4
unter der Nebenbedingung x; y > 0 berechnet. Der Startwert ist (1; 1). Man sieht, wie
der Weg durch das Innere des zulassigen Bereiches zum Rand genommen wird.
Die Implementation der Richtungssuche muss fur das Newton-Barrier-Verfahren geandert werden. Denn eine Verdoppelung der Schrittweite bei der Suche nach dem
Ausgangsintervall kann aus dem zulassigen Bereich herausfuhren. In Euler liefert hc
dann NAN (not a number) zuruck.
In diesem Fall hat man
f (x + 1 v ) < 1 = f (x + 2 v ):
Man sucht dann per Intervallteilung drei Werte
f (x + 1 v ) < f (x + 2 v ) < 1 = f (x + 2 v )
und startet die Minimumsuche im Intervall [0; 2 ].
Index
absteigende Maximierung, 70
ane Hulle, 17
ane Skalierung, 80
Ankombination, 17
aktive Nebenbedingung, 20
Algorithmus von Dijkstra, 90, 102
Algorithmus von Ford-Fulkerson, 98
Alternante, 69
Approximation, 14
aufsteigende Minimierung, 70
komlementare Schlupfbedingung, 93
konvex, 16
konvexe Hulle, 17
Konvexkombination, 16
Konvexkombinationen, 16
Basistausch, 29
Branch-and-Bound Algorithmus, 103
maximaler Fluss, 97
Min., 79
degenerierte Ecke, 25
Diatproblem, 8
Dualitatssatz, 52, 67
Nebenbedingungen, 7
Newton-Barrier-Verfahren, 127
Ecke, 19
Fractional dual Algorithm, 108
Ganzzahlige Optimierung, 87
Gau-Jordan-Form, 37
Gerade, 17
Golden Section Search, 117
Gomory-Cut, 108
Haarsche Bedingung, 73
Halbraume, 19
innere Methode, 77
innerer zulassiger Punkt, 77
kurzester Weg, 89
Kapazitatsbeschrankungen, 8
Kegel, 56
Knapsack-Problem, 106
Lagrange-Funktion, 122
Lagrange-Multiplikatoren, 124
Lemma von Farkas, 55
Lineare Regression, 14
Perfect Matching, 92
Polytop, 19
Powell, 121
primal-dualer Algorithmus, 93
projektive Tangentenmethoden, 77
Regel von Bland, 32
regulares Polytop, 19
relaxiertes Problem, 103
Remez-Algorithmus, 73
revidierte Simplex-Algorithmus, 47
Satz von Caratheodory, 18
Satz von Lagrange, 127
semi-innite lineare Optimierung, 64
Simplex-Algorithmus, 30
Spaltenbasis, 25
Standardform, 23
sternformig, 114
Strecke, 16
131
132
strikt konvex, 113
Transportproblem, 11
Travelling Salesman Problem, 90
Trennungssatz, 61
Worst-Case-Strategie, 12
Zielfunktion, 7
zulassige Punkte, 7
Zweipersonenspiel, 12
INDEX