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