Lineare und Ganzzahlige Optimierung



Ähnliche Dokumente
3. Grundlagen der Linearen Programmierung

Lineare Gleichungssysteme

1. Man schreibe die folgenden Aussagen jeweils in einen normalen Satz um. Zum Beispiel kann man die Aussage:

Bestimmung einer ersten

9.2. DER SATZ ÜBER IMPLIZITE FUNKTIONEN 83

Optimierung. Optimierung. Vorlesung 7 Lineare Programmierung II Thomas Brox, Fabian Kuhn

OPERATIONS-RESEARCH (OR)

3.3 Eigenwerte und Eigenräume, Diagonalisierung

Basis und Dimension. Als nächstes wollen wir die wichtigen Begriffe Erzeugendensystem und Basis eines Vektorraums definieren.

Entscheidungsbäume. Definition Entscheidungsbaum. Frage: Gibt es einen Sortieralgorithmus mit o(n log n) Vergleichen?

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Primzahlen und RSA-Verschlüsselung

Schranken für zulässige Lösungen

Einführung in die Algebra

Algorithmen II Vorlesung am

Lineare Gleichungssysteme

x 2 2x + = 3 + Es gibt genau ein x R mit ax + b = 0, denn es gilt

Kapitel 15. Lösung linearer Gleichungssysteme

Fachschaft Mathematik und Informatik (FIM) LA I VORKURS. Herbstsemester gehalten von Harald Baum

4 Vorlesung: Matrix und Determinante

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

7 Die Determinante einer Matrix

Nichtlineare Optimierung ohne Nebenbedingungen

Einführung in die Vektor- und Matrizenrechnung. Matrizen

Übungen zum Ferienkurs Lineare Algebra WS 14/15

50. Mathematik-Olympiade 2. Stufe (Regionalrunde) Klasse Lösung 10 Punkte

Lineare Gleichungssysteme I (Matrixgleichungen)

Lineare Gleichungssysteme

7 Rechnen mit Polynomen

Mathematik für Informatiker II. Beispiellösungen zur Probeklausur. Aufgabe 1. Aufgabe 2 (5+5 Punkte) Christoph Eisinger Sommersemester 2011

a n auf Konvergenz. Berechnen der ersten paar Folgenglieder liefert:

Lineare Gleichungssysteme

Die Verbindung von Linearer Programmierung und Graphentheorie

Lineare Programmierung. Beispiel: Wahlkampf. Beispiel: Wahlkampf. Mathematische Schreibweise. Lineares Programm. Datenstrukturen & Algorithmen

Grundbegriffe der Informatik

Division Für diesen Abschnitt setzen wir voraus, dass der Koeffizientenring ein Körper ist. Betrachte das Schema

Matrizennorm. Definition 1. Sei A M r,s (R). Dann heißt A := sup die Matrixnorm. Wir wissen zunächst nicht, ob A eine reelle Zahl ist.

0, v 6 = , v 4 = span(v 1, v 5, v 6 ) = span(v 1, v 2, v 3, v 4, v 5, v 6 ) 4. span(v 1, v 2, v 4 ) = span(v 2, v 3, v 5, v 6 )

Rekursionen. Georg Anegg 25. November Methoden und Techniken an Beispielen erklärt

Zeichen bei Zahlen entschlüsseln

Optimalitätskriterien

Eigenwerte und Eigenvektoren von Matrizen

Lernmaterial für die Fernuni Hagen effizient und prüfungsnah

2 Die Darstellung linearer Abbildungen durch Matrizen

Mathematische Grundlagen der Kryptographie. 1. Ganze Zahlen 2. Kongruenzen und Restklassenringe. Stefan Brandstädter Jennifer Karstens

Lineare Algebra und Lösung linearer zeitinvarianter Differentialgleichungssysteme

8. Quadratische Reste. Reziprozitätsgesetz

Optimierung und Simulation ökonomischer Problemlagen privater Haushalte 3. Vorlesung

Lösungen zum 3. Aufgabenblatt

Einführung. Vorlesungen zur Komplexitätstheorie: Reduktion und Vollständigkeit (3) Vorlesungen zur Komplexitätstheorie. K-Vollständigkeit (1/5)

Kevin Caldwell. 18.April 2012

Lineare Programmierung

LINGO: Eine kleine Einführung

Grundlagen der höheren Mathematik Einige Hinweise zum Lösen von Gleichungen

1 Mathematische Grundlagen

Praktische Mathematik: Lineare und Netzwerk-Optimierung (SS 2015) Praktikumsaufgaben

4. Jeder Knoten hat höchstens zwei Kinder, ein linkes und ein rechtes.

Die reellen Lösungen der kubischen Gleichung

3.1. Die komplexen Zahlen

Scheduling und Lineare ProgrammierungNach J. K. Lenstra, D. B. Shmoys und É.

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Das Briefträgerproblem

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Musterlösungen zur Linearen Algebra II Blatt 5

5 Eigenwerte und die Jordansche Normalform

Frohe Weihnachten und ein gutes neues Jahr!

Absolute Stetigkeit von Maßen

6.2 Scan-Konvertierung (Scan Conversion)

LU-Zerlegung. Zusätze zum Gelben Rechenbuch. Peter Furlan. Verlag Martina Furlan. Inhaltsverzeichnis. 1 Definitionen.

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

Behörde für Bildung und Sport Abitur 2008 Lehrermaterialien zum Leistungskurs Mathematik

Charakteristikenmethode im Beispiel

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

ERGÄNZUNGEN ZUR ANALYSIS II MITTELWERTSATZ UND ANWENDUNGEN

Simplex-Umformung für Dummies

Erinnerung/Zusammenfassung zu Abbildungsmatrizen

Kapiteltests zum Leitprogramm Binäre Suchbäume

Effiziente Algorithmen Lineares Programmieren 216. Schwache Dualität

3. Zusammenhang. 22 Andreas Gathmann

Die Gleichung A x = a hat für A 0 die eindeutig bestimmte Lösung. Für A=0 und a 0 existiert keine Lösung.

Tangentengleichung. Wie lautet die Geradengleichung für die Tangente, y T =? Antwort:

4. Dynamische Optimierung

Programmiersprachen und Übersetzer

Motivation. Formale Grundlagen der Informatik 1 Kapitel 5 Kontextfreie Sprachen. Informales Beispiel. Informales Beispiel.

Professionelle Seminare im Bereich MS-Office

Periodische Fahrpläne und Kreise in Graphen

Effiziente Algorithmen und Datenstrukturen I. Kapitel 10: Lineare Algebra

BONUS MALUS SYSTEME UND MARKOV KETTEN

Analysis I für Studierende der Ingenieurwissenschaften

Kapitel 6. Komplexität von Algorithmen. Xiaoyi Jiang Informatik I Grundlagen der Programmierung

Informationsblatt Induktionsbeweis

Minimale Darstellungen, Kommutator- und Fixräume, projektive Geometrie

Abituraufgabe zur Stochastik, Hessen 2009, Grundkurs (TR)

Technische Informatik - Eine Einführung

3. LINEARE GLEICHUNGSSYSTEME

Lösungsvorschlag für die Probeklausuren und Klausuren zu Algebra für Informations- und Kommunikationstechniker bei Prof. Dr.

Der Zwei-Quadrate-Satz von Fermat

Grundlagen der Theoretischen Informatik, SoSe 2008

Vorkurs Mathematik Übungen zu Polynomgleichungen

Transkript:

Lineare und Ganzzahlige Optimierung Tim Nieberg Research Institute for Discrete Mathematics University of Bonn Lennéstr. 2 D-53113 Bonn nieberg@or.uni-bonn.de

This device is provided without warranty of any kind as to reliability, accuracy, existence or otherwise or fitness for any particular purpose and the producer specifically does not warrant, guarantee, imply or make any representations as to its merchantability for any particular purpose and furthermore shall have no liability for or responsibility to you or any other person, entity or deity with respect to any loss or damage whatsoever caused by the device or object or by any attempts to destroy it by hammering it against a wall or dropping it into a deep well or any other means whatsoever and moreover asserts that you indicate your acceptance of this agreement or any other agreement that may be substituted at any time by coming within five miles of the product or observing it through large telescopes or by any other means because you are such an easily cowed moron who will happily accept arrogant and unilateral conditions on a piece of highly priced garbage that you would not dream of accepting on a bag of dog biscuits and is used solely at your own risk. The imp took a deep breath. May I introduce to you the rest of my wide range of interesting and amusing sounds, INSERT NAME HERE? [T. Pratchett: The Truth, Transworld Publishers] Copyright c 2009 T. Nieberg, Bonn, Germany. All rights reserved. No part of this manuscript may be reproduced or transmitted, in any form or by any means, electronic or mechanical, including photocopying, micro-filming, and recording, or by any information storage or retrieval system, without the prior written permission of the author. 2

Inhaltsverzeichnis 1 Einleitung 5 1.1 Optimierungsprobleme und Lineare Programmierung.............. 5 1.2 Mathematische Modellbildung.......................... 8 1.2.1 Fallbeispiel: Begrenzung der Luftverschmutzung............ 9 2 Lineare Programmierung 11 2.1 Fundamentalsatz über lineare Ungleichungen.................. 11 2.2 Lineare Programme und Dualität......................... 13 2.3 Polyeder, Polytope, Kegel............................. 16 2.4 Polytope und konvexe Hüllen........................... 20 3 Lösungsverfahren (LP) 23 3.1 Komplexität und lineare Algebra......................... 23 3.1.1 Größe und Charakterisierungen..................... 24 3.1.2 Gauß-Eliminierung............................ 26 3.2 Die Simplex-Methode............................... 28 3.2.1... mit gegebenem Startpunkt....................... 28 3.2.2... ohne gegebenem Startpunkt...................... 30 3.3 Implementierung der Simplex-Methode..................... 31 3.3.1 Simplex-Tableaus............................. 33 3.3.2 Beispiele................................. 33 3.3.3 Unzulässige Startbasis.......................... 35 3.3.4 Beispiel.................................. 36 3.4 Laufzeit der Simplex-Methode.......................... 37 3.5 Ellipsoid-Methode................................ 39 4 Netzwerksimplex 49 4.1 Transportprobleme................................ 50 4.1.1 Formulierung als LP........................... 50 4.2 Baumlösungen.................................. 51 4.2.1 Duales Problem: Knotenpotentiale.................... 51 3

4.2.2 Relative Kosten einer Kante....................... 52 4.3 Netzwerksimplex................................. 53 4.3.1 Startlösung................................ 54 4.4 Integralität einer Baumlösung........................... 56 5 Ganzzahlige Programmierung I Ganzzahlige Polyeder 57 5.1 Integrale Hüllen von IPs............................. 59 5.2 Unimodularität und TDI............................. 59 5.2.1 Unimodulare Matrizen und Transformationen.............. 59 5.2.2 Vollständige Duale Ganzzahligkeit (TDI)................ 62 5.2.3 Vollständig Unimodulare Matrizen.................... 64 6 Ganzzahlige Programmierung II Lösungsmethoden 71 6.1 Cutting Planes................................... 71 6.1.1 Zusätzliche starke Ungleichungen.................... 76 6.2 Branch-and-Bound Methode........................... 79 6.3 Lagrange-Relaxation............................... 83 6.4 Verzögerte Spaltengenerierung (Column Generation).............. 85 6.4.1 Dekompositionsprinzip Linearer Programmierung........... 85 6.4.2 Das Pricing-Problem........................... 86 6.4.3 Konvergenz der Column Generation................... 87 4

Kapitel 1 Einleitung In diesem Kapitel werden einige Grundlagen beschrieben und diskutiert, die für die spätere Betrachtung der Linearen Programmierung hilfreich sind, und die deren Anwendungen darstellen sollen: Beschreibung von (mathematischen) Problemen Lineare Programmierung und Lineare Programme (LPs) Ganzzahlige Lineare Programme (IPs) Mathematische Modellierung 1.1 Optimierungsprobleme und Lineare Programmierung Bevor wir das allgemeine Optimierungsproblem eines Linearen Programms betrachten, soll zunächst geklärt werden, was überhaupt unter einem Optimierungsproblem zu verstehen ist. Definition 1.1. Eine Problembeschreibung Π ist ein Paar (I, S), für das gilt: I beschreibt die Instanzen von Π, und für jedes x I gibt S(x) die Menge aller zulässigen Lösungen an. Ein wichtiges Beispiel für ein Problem ist das Lösen eines linearen Gleichungssystems, hier eine entsprechende Problembeschreibung: LINEARES GLEICHUNGSSYSTEM (LGS) Instanz: Eine Matix A m n und ein Vektor b m. zul. Lösungen: Alle x n, so dass Ax = b gilt. Das Problem, wenn man so will, ist in diesem Fall das Finden zulässiger Lösungen. Dies geschieht häufig durch die sog. Gauß-Eliminierung, mit der wir uns in 3.1.2 noch befassen werden. 5

Im weiteren werden wir uns jedoch hauptsächlich mit Optimierungsproblemen befassen, das sind Problembeschreibungen, in denen jede zulässige Lösung zusätzlich durch eine sog. Zielfunktion bewertet wird. Mit anderen Worten, für jede Instanz x I, zusammen mit einer zulässigen Lösung y S(x), gibt es einen Zielfunktionswert f(x, y). Definition 1.2. Sei Π = (I, S) eine Problembeschreibung und für jedes Paar x I und y S(x) gebe f(x, y) einen Zielfunktionswert. Dann heißt das Problem Π max : Gegeben eine Instanz x I, finde eine Lösung y S(x) so dass f(x, y ) f(x, y) für jedes y S(x) gilt, oder zeige, dass S(x) leer oder unbegrenzt ist. Maximierungsproblem, und y bezeichnet eine optimale Lösung für Π max. Eine Instanz x I eines Maximierungsproblems kann auch unbegrenzt sein, d.h. für jedes α läßt sich eine entsprechende zulässige Lösung y α S(x) finden, für die f(x, y α ) > α gilt. Ein Minimierungsproblem ist analog definiert. Lineare Programmierung (in allgemeiner Form) ist ein Maximierungsproblem, und läßt sich wie folgt beschreiben: LINEARE PROGRAMMIERUNG Instanz: Eine Matrix A m n und Vektoren b m, c n. zul. Lösungen: {x n Ax b} Ziel: Maximiere c T x Der Einfachheit halber schreiben wir im Folgenden meist cx für das Skalarprodukt c T x. Die Ungleichung x y für Vektoren x, y n bedeutet, dass komponentenweise x i y i für alle i = 1,..., n gilt. Eine Instanz für Lineare Programmierungsprobleme nennt man Lineares Programm (LP) 1. In Kurzform schreiben wir für ein LP auch max{cx Ax b}, die Menge der zulässigen Lösungen einer Instanz wird im Folgenden auch mit P := {x n Ax b} bezeichnet. Es ist hierbei zu beachten, dass ein LP auch unbegrenzt sein kann, oder dass P = gelten kann. Falls P = gilt, so nennen wir das LP auch unzulässig. Um die Schreibweise max{cx Ax b} (statt sup{cx Ax b}) zu rechtfertigen betrachten wir nun folgende Aussage. Satz 1.3. Sei P = {x n Ax b} und c n mit δ := sup{cx x P } beschränkt. Dann existiert ein z P, so dass cz = δ. Proof. Sei U eine Matrix, deren Spalten eine ( Orthonormalbasis ) des Kerns ( ) von A bilden, also: A b U T U = I, AU = 0, rg(a ) = n, mit A := U T. Sei ferner b :=. 0 Wir zeigen, dass es für jedes y P ein Untersystem A x b von A x b (durch Wahl der entsprechenden Ungleichungen/Zeilen) gibt, so dass 1 Es wird nun deutlich, dass das Wort Programm hier nichts mit einem Computerprogramm gemeinsam hat. Die Wortwahl ist historisch bedingt und stammt aus einer Zeit, als es noch keine PCs gab. Man bezeichnet(e) mit Programm die strukturierte Darstellung einer Instanz eines Problems. 6

A nichtsingulär ist, y := (A ) 1 b P, und cy cy gilt. Da es nur endlich viele solcher Untersysteme gibt, muss eins der möglichen y das Maximum annehmen, also cy = δ erfüllen. Sei hierzu y P, und bezeichne k(y) den Rang der Matrix A des maximalen Untersystems A x b von A x b mit A y = b. Annahme: k(y) < n Wir zeigen, dass ein y P existiert, welches sowohl cy cy, als auch k(y ) > k(y) erfüllt. Nach höchstens n solcher Konstruktionen gilt k(y ) = n. Gilt U T y 0, dann sei y := y UU T y. Für alle λ gilt y + λuu T c P, und damit sup{c T (y + λuu T c) λ } δ. Ferner folgt c T U = 0 und cy = cy. Außerdem ist Ay = Ay AUU T y = Ay und U T y = U T y U T UU T y = 0. Gilt nun U T y = 0, dann betrachte ν 0 mit A ν = 0. Bezeichne a i x β i die i-te Zeile von Ax b. Sei µ := min{ β i a i y a i ν > 0} a i ν und κ := max{ β i a i y a i ν < 0}, a i ν wobei wir min = und max = setzen. Es gilt κ 0 µ, und es gibt mindestens ein endliches κ oder µ. Für ρ mit κ ρ µ gilt A (y + ρν) = A y + ρa ν = A y = b und A(y + ρν) = Ay + ρaν b, d.h. y + ρν P. Da sup{cx x P } <, gilt µ <, falls cν > 0 und κ >, falls cν < 0. Wenn nun cν 0 und µ < gilt, dann gibt es einen Index i, so dass a i (y + µν) = β i. Analog gilt: wenn cν 0 und κ >, dann gibt es einen Index i, so dass a i (y + κν) = β i. Insbesondere haben wir in jedem Fall ein neues y P erzeugt, für das cy cy und k(y ) > k(y) gilt. Schränkt man in einer LP-Formulierung die zulässigen Werte der Lösungsvektoren durch Forderung der Ganzzahligkeit ein, so erhält man ein Ganzzahliges Programm (IP). Hier das zugehörige Problem: GANZZAHLIGE PROGRAMMIERUNG Instanz: Eine Matrix A m n und Vektoren b m, c m. zul. Lösungen: {x n Ax b} Ziel: Maximiere c T x Ganzzahlige Programme finden in der Praxis häufig Anwendung, da hiermit z.b. auch ja/nein- Entscheidungen (x i := {0, 1}) gefällt werden können. 7

1.2 Mathematische Modellbildung Lineare und insbesondere ganzzahlige Programmierung erfreut sich großer Beliebtheit in vielen Anwendungen. Wir wollen nun ein bißchen auf die (mathematische) Modellbildung eingehen, d.h. ein allgemeines Vorgehen um von einem gegebenen (Allerwelts-) Problem auf ein mathematisch beschreibbares Modell zu kommen. Im Laufe der Vorlesung werden wir dann Lösungsverfahren hierfür diskutieren, und auch lernen, wie eine Lösung zu interpretieren ist. Es lassen sich folgende Phasen einer Studie eines Problems identifizieren: Problemformulierung Bildung eines adequaten Modells (z.b. IP) Bestimmung einer Lösung Überprüfung der Lösung und des Modells Umsetzung der Lösung in Bezug auf das ursprüngliche Problem In dieser Vorlesung werden wir uns auf LP- und IP-Modelle konzentrieren, die jedoch sehr mächtig sind, da sich viele Probleme hierdurch programmieren also beschreiben lassen. Zunächst betrachten wir die Standard-LP-Formulierung {max cx Ax b}. Natürlich entspricht nicht jedes Problem dieser Formulierung, es sind jedoch weitere Varianten äquivalent hierzu: Minimierung der Zielfunktion {min cx Ax b} {max cx Ax b} Nebenbedingungen mit {max cx Ax b} {max cx Ax b} Nebenbedingungen mit = {max cx Ax = b} {max cx Ax b Ax b} Es ist direkt klar, dass auch beliebige Kombinationen hiervon zulässig sind. Bei ganzzahligen Programmen ist es auch möglich, nur von einigen Variablen Ganzzahligkeit zu fordern und andere jeden Wert annehmen zu lassen. Man spricht dann von einem gemischt ganzzahligem Programm (MIP). Um die Modellbildung zu verdeutlichen betrachten wir nun ausführlich das folgende, leicht aufbereitete Beispiel: 8

1.2.1 Fallbeispiel: Begrenzung der Luftverschmutzung Die Nori & Steel Ltd. 2 ist einer der größten Stahlhersteller des Landes mit Sitz in Steeltown. Steeltown wurde zusammen mit dem Unternehmen groß und reich, Nori & Steel ist der größte Arbeitgeber der Region. Die bisherige Einstellung der Bürger war immer Was gut für Nori & Steel ist, ist auch gut für die Stadt. Dies hat sich jedoch in den letzten Jahren geändert, seit die Luftverschmutzung durch die Hochöfen das Erscheinungsbild der Stadt zerstört und die Gesundheit der Bürger gefährdet. Empörte Aktionäre erreichten die Wahl eines neuen, aufgeschlosseneren Aufsichtsrat, der sich einer sozial verantwortlichen Politik verpflichtete. Man diskutierte mit Vertretern der Stadt und Umweltorganisationen über Möglichkeiten und Wege der Luftverbesserung. Gemeinsam wurden verbindliche Grenzwerte für Emissionen im Raum Steeltown erlassen. Drei Schadstoffe sind die Hauptverantwortlichen für die Luftverschmutzung der Gegend: Staubund Rußteile, Schwefeloxide und Kohlenwasserstoffe. Die neuen Grenzwerte erfordern eine Verringerung der jährlichen Emissionen um die folgenden Mengen: Schadstoff Reduktion (in kt) Staubteile 60 Schwefeloxide 150 Kohlenwasserstoffe 125 Bei der Stahlproduktion gibt es hauptsächlich zwei Emissionsquellen, die Hochöfen für die Herstellung von Roheisen (Typ 1) und die Hochöfen zur Umwandlung von Eisen in Stahl (Typ 2). In beiden Fällen bietet sich als effektive Wege der Schadstoffminderung an: 1. Erhöhung der Schornsteine 3, 2. Einbau von Filtern, 3. Verwendung von sauberen Brennstoffen mit höherem Brennwert. Der Verwendung dieser Maßnahmen sind jedoch technologische Grenzen bzgl. ihres Potentials zur Schadstoffminderung (in kt pro Jahr) gesetzt: Maßnahme: 1. 2. 3. Hochofen: Typ 1 Typ 2 Typ 1 Typ 2 Typ 1 Typ 2 Schadstoff Staubteile 12 9 25 20 17 13 Schwefeloxide 35 42 18 31 56 49 Kohlenwasserstoffe 37 53 28 24 29 20 Bei nährerem Betrachten wird klar, dass eine Maßnahme alleine die gewünschte Reduktion nicht erzielen kann. Alle drei Maßnahmen bei maximaler Leistung einzusetzen wäre übertrieben (und zu teuer). Die mit dem Problem betrauten Fachleute empfahlen eine Kombination, welche auf relativen Kosten basiert. Wegen der unterschiedlichen Hochofentypen schien es besser, jeweils unterschiedliche Kombinationen zu realisieren. Eine weitere Untersuchung sollte die jährlichen Kosten abschätzen, die für jede Maßnahme anfallen. Neben den höhreren Unterhalts- und Betriebskosten wurden auch Installationskosten 2 [Hillier, Lieberman: Operations Research] 3 Das Beispiel stammt aus dem Jahre 1967! 9

(auf Jahresbasis umgerechnet) und die Verluste durch Effizienzverringerung des Produktionsprozesses ermittelt. Es ergaben sich folgende Schätzungen (in Mio. Dollar) bei maximalem Einsatz: Maßnahme HO Typ 1 HO Typ 2 1. 8 10 2. 7 6 3. 11 9 Es zeigte sich weiter, dass die Kosten einer Maßnahme proportional zu ihrem Grad der Inanspruchnahme ist. Es soll nun ein Gesamtplan zur Schadstoffminderung konzipiert werden. Der Plan soll die eingesetzten Maßnahmen festlegen und bestimmen, in welchem Umfang jede Maßnahme in jedem der zwei Hochöfen herangezogen werden soll. Wir werden nun dieses dargestellte Problem als lineares Optimierungsproblem darstellen, und eine entsprechende Instanz erstellen. Das hier dargestellte Vorgehen: 1.) Bestimmung der Variablen 2.) Bestimmung der Zielfunktion 3.) Bestimmung der Nebenbedingungen ist allgemein üblich. Manchmal ist es jedoch nötig, z.b. im dritten Schritt weitere (Hilfs-) Variablen zu definieren, oder mit einer kompett andere Darstellung und Interpretation der Variablen erneut zu beginnen. Die zu treffenden Entscheidungen lassen sich hier durch 6 Variablen x i (i = 1,..., 6) abbilden, wobei jede Variable für den Grad der Anwendung einer Maßnahme für einen Hochofen steht, also: Maßnahme HO Typ 1 HO Typ 2 1. x 1 x 2 2. x 3 x 4 3. x 5 x 6 Die Zielfunktion lautet min 8x 1 + 10x 2 + 7x 3 + 6x 4 + 11x 5 + 9x 6. Folgende Nebenbedingungen ergeben sich aus der allgemeinen Beschreibung des Problems: Emissionsreduktion, bzw. deren technische Grenzen: 12x 1 + 9x 2 + 25x 3 + 20x 4 + 17x 5 + 13x 6 60 35x 1 +42x 2 + 18x 3 + 31x 4 + 56x 5 + 49x 6 150 37x 1 +53x 2 + 28x 3 + 24x 4 + 29x 5 + 20x 6 125 Jede Maßnahme kann maximal zu 100% eingesetzt werden: x i 1 für i = 1,..., 6 Nichtnegativität: x i 0 für i = 1,..., 6 Es sei angemerkt, dass es auch andere, äquivalente Formulierungen gibt. 10

Kapitel 2 Lineare Programmierung In diesem Kapitel befassen wir uns mit einigen wichtigen Grundlagen und Zusammenhängen linearer Programme, und zwar mit folgenden Themen: Lineare Programme und Dualität Polyeder, Polytope und Kegel Konvexe Hüllen Sofern nicht anders angegeben sei im weiteren immer stillschweigend A m, c n angenommen 1. m n und b 2.1 Fundamentalsatz über lineare Ungleichungen Der folgende Satz (Farkas [1894], Minkowski[1896], verschärft von Caratheodory [1911] und Weyl [1935]) wird es uns erlauben, Aussagen über die Lösbarkeit linearer Ungleichungssysteme zu machen. Theorem 2.1. Seien a 1,..., a m, b Entweder n und bezeichne t := rg(a 1,..., a m, b). Dann gilt: oder (i) b ist nichtnegative Linearkombination linear unabhängiger Vektoren aus a 1,..., a m ; (ii) es existiert eine Hyperebene {x n cx = 0}, die t 1 linear unabhängige Vektoren aus a 1,..., a m enthält und die cb < 0 und ca 1,..., ca m 0 erfüllt. Proof. Wir können annehmen, dass a 1,..., a m den n aufspannen. Die Fälle (i) und (ii) schließen einander aus. Gilt b = λ 1 a 1 + + λ m a m mit λ i 0, i = 1..., m, dann erhalten wir den Widerspruch 0 > cb = λ 1 ca 1 + + λ m ca m 0. 1 Sämtliche Aussagen lassen sich direkt in die rationalen Zahlen übertragen. 11

Seien a i1,..., a in linear unabhängig, und D := {a i1,..., a in }. Wir betrachten nun den folgenden, iterativen Algorithmus: 1. Bestimme λ ik so dass b = λ i1 a i1 + + λ in a in erfüllt ist. Gilt λ ik 0 k = 1,..., n so folgt Fall (i). 2. Bestimme den kleinsten Index h {i 1,..., i n }, für den λ h < 0 gilt. Sei {x cx = 0} die durch D \ {a h } aufgespannte Hyperebene. Normalisiere c, so dass ca h = 1. ( cb = λ h < 0) 3. Gilt ca 1,..., ca m 0, so folgt Fall (ii). 4. Bestimme den kleinsten Index s, für den ca s < 0 gilt. Wiederhole das Vorgehen mit D := (D \ {a h }) {a s }. Es verbleibt zu zeigen, dass der Algorithmus nach einer endlichen Anzahl an Schritten terminiert. Bezeichne D k hierzu die Menge D der k-ten Iteration, und wir nehmen an, der Algorithmus terminiert nicht. Da D endlich ist, gibt es dann zwei Iterationsindices k < l mit D k = D l. Sei r {1,..., m} der größte Index für einen Vektor aus a 1,..., a m, der in den Iterationen k, k + 1,..., l 1 aus den entsprechenden Mengen entfernt wird. Sei dies in Iteration p der Fall. Da D k = D l muß der Vektor a r in einer Iteration q, mit k q < l, auch wieder hinzugefügt werden. Sei D p = {a i1,..., a in }, b = λ i1 a i1 + + λ in a in, und bezeichne c den Vektor c aus Schritt (2.) der q-ten Iteration. Dann folgt 0 > cb = c(λ i1 a i1 + + λ in a in ) = λ i1 ca i1 + + λ in ca in. Wir betrachten nun die einzelnen Summanden in der rechten Summe: Fall 1: i j < r Da r der kleinste Index mit λ r < 0 ist (Schritt (2.) der p-ten Iteration), gilt λ ij 0. Analog folgt aus Schritt (4.) der q-ten Iteration, dass ca ij 0 gilt. Fall 2: i j = r Mit analoger Argumentation wie im Fall 1 folgt λ ij < 0 und ca ij < 0. Fall 3: i j > r Durch Wahl von r ist insbesondere D p {a r+1,..., a m } = D q {a r+1,..., a m }, und es ist a ij in der Hyperebene aus Schritt (2.) der p-ten enthalten, also damit auch in {x cx = 0} der q-ten Iteration. Es folgt ca ij = 0. Für die Summe folgt also λ i1 ca i1 + + λ in ca in > 0, ein Widerspruch. Der Fundamentalsatz läßt sich auch geometrisch deuten. Das iterative Vorgehen im Beweis hierzu werden wir später in anderer, strukturierter Form wiedertreffen, es ist eine spezielle Form des Simplex-Verfahrens. 12

Eine wichtige Folgerung aus dem Fundamentalsatz ist besser bekannt als Farkas Lemma (Farkas [1894], Minkowski [1896]): Korollar 2.2. Sei A m n und b m. Dann existiert ein x n mit x 0 und Ax = b dann und nur dann wenn yb 0 für jeden Zeilenvektor y m mit ya 0. Proof. Trivial: seien x und y so, dass x 0, Ax = b und ya 0. Dann ist yb = y(ax) = (ya)x 0. Wir nehmen an, es gäbe kein x 0 mit Ax = b. Nach dem Fundamentalsatz läßt sich b dann nicht als positive Linearkombination aus Spalten von A darstellen, es gibt also ein y mit yb < 0 und ya 0. Farkas Lemma gibt es in mehreren Varianten, es läßt sich auch auf Ungleichungssyteme anwenden. Korollar 2.3. Sei A m n und b m. Dann existiert ein x n mit x 0 und Ax b dann und nur dann wenn yb 0 für jeden Zeilenvektor y m, y 0, mit ya 0. Proof. Sei A := (I A). Es existiert eine nichtnegative Lösung für das System Ax b dann und nur dann wenn A x = b eine nichtnegative Lösung hat. Korollar 2.2 liefert die Aussage. Insbesondere erlaubt uns letztere Variante zu zeigen, dass ein LP unzulässig ist. 2.2 Lineare Programme und Dualität Wir betrachten nun das LP max{cx Ax b}. Im vorherigen Kapitel haben wir gesehen, dass es mehrere äquivalente Formulierungen hierzu gibt. Zur Vereinfachung der Notation nennen wir max{cx Ax b} die Standardform eines LPs. Definition 2.4. Sei max{cx Ax b} ein LP. Das zugehörige LP heißt duales LP hierzu. min{yb ya = c y 0} Analog zu obiger Definition wird das ursprüngliche LP auch als primales LP bezeichnet. Satz 2.5. Das Duale eines dualen LPs ist äquivalent zum ursprünglichen (also primalen) LP. Proof. Sei max{cx Ax b} das ursprüngliche LP. Das duale LP ist dann min{yb ya = c y 0}, oder in Standardschreibweise 2 max{ by A T A T I y c c 0 }. 2 Hierbei wird u.a. jede Gleichung in zwei gegenläufige Ungleichungen aufgeteilt. 13

P D max min x j 0 Nebenbedingung j x j 0 Nebenbedingung j x j frei Nebenbedingung j = Nebenbedingung i y i 0 Nebenbedingung i y i 0 Nebenbedingung i = y i frei Abbildung 2.1: LP-Dualität: direkte Transformation Das duale LP hierzu ist dann min{zc z c (A A I) Substitution (x := z z) liefert z z ω = b z, z, ω 0}, min{ cx Ax ω = b ω 0}. Eliminierung von ω als Schlupfvariable liefert das primale LP. Es folgt der Satz über schwache Dualität für lineare Programme. Satz 2.6. Sei x eine zulässige Lösungen für ein LP max{cx Ax b}, und y eine zulässige Lösung für das zugehörige duale LP min{yb ya = c y 0}. Dann gilt cx yb. Proof. cx = (ya)x = y(ax) yb. Wenn es eine schwache Dualität gibt, so sicherlich auch eine starke. Der wohl wichtigste Satz in der Theorie über LPs ist das Dualitätstheorem der linearen Programmierung (von Neumann [1947], Gale, Kuhn, Tucker [1951]): Theorem 2.7. Seien A m n, b m, c n, sowie {x n Ax b} und {y m ya = c y 0}. Dann gilt max{cx Ax b} = min{yb ya = c y 0}. Proof. Aus dem schwachen Dualitätssatz wissen wir, dass max{cx Ax b} min{yb ya = c y 0} gilt. Insbesondere sind beide linearen Programme beschränkt. Es genügt also zu zeigen, dass es x und y gibt, die Ax b, y 0, ya = c und cx yb 14

erfüllen, mit anderen Worten, die das Ungleichungssystem Ax b cx + b T y 0 A T y c T A T y c T Iy 0 lösen. Nach Farkas Lemma (Korollar 2.3) existiert eine solche Lösung dann und nur dann wenn folgende Aussage erfüllt ist: Sind u, v, w 0, β, z 0 mit ua βc = 0 βb T +va T wa T Iz = 0, dann gilt ub+ vc T wc T 0. Sei zunächst z 0, dann ist dies äquivalent zur Aussage: Sind u, v, w 0, β 0 mit ua βc = 0 βb T + va T wa T 0, dann gilt ub + vc T wc T 0. Seien nun also u, β, v, w wie angegeben. Fall 1: β > 0 Es ist ub = β 1 βb T u T β 1 (w v)a T u T = β 1 β(w v)c T = (w v)c T. Fall 2: β = 0 Seien x 0 und y 0 so, dass Ax 0 b, y 0 0, y 0 A = c gilt (x 0, y 0 existieren, da {x b} und {y m ya = c y 0} gilt). Es ist ub uax 0 = 0 (w v)a T y0 T = (w v)c T. n Ax Dies gibt uns eine gute Charakterisierung optimaler Lösungen eines LPs. Korollar 2.8. Seien max{cx Ax b} und min{yb ya = c y 0} ein primal/duales LP-Paar, und x und y zulässige Lösungen hierfür. Dann sind folgende Aussagen äquivalent: (i) x und y sind optimale Lösungen. (ii) cx = yb. (iii) y(b Ax) = 0. Proof. (i) (ii) folgt direkt aus dem Dualitätssatz. (ii) (iii) folgt aus y(b Ax) = yb yax = yb cx = 0. Im Dualitätssatz ist zu beachten, dass die Menge der zulässigen Lösungen beider LPs nicht leer sein darf. Wir haben bereits gesehen, wie man zeigt, dass ein LP unzulässig ist. Wir wollen nun weitere Fälle betrachten, und zeigen wie man für ein gegebenes LP Unbeschränkheit zeigen kann. Ist z.b. das primale LP unbegrenzt, so überlege man sich etwa, was dies für das duale LP bedeutet. 15

Satz 2.9. Ist ein LP unbeschränkt, so ist sein duales LP unzulässig. Proof. Wir nehmen das Gegenteil an. Aus dem schwachen Dualitätssatz folgt sofort ein Widerspruch. Es gibt also bezüglich der Lösungen eines primal/dualen LP-Paares drei Möglichkeiten: Beide sind zulässig, dann haben sie den gleichen, endlichen, optimalen Zielfunktionswert. Ein LP ist unbegrenzt und das andere ist unzulässig. Beide sind unzulässig. Die dritte Möglichkeit kann eintreten: betrachte A = (0), b = c = 1. 2.3 Polyeder, Polytope, Kegel Im folgenden betrachten wir die Menge der zulässigen Lösungen eines linearen Programms max{cx Ax b}, also P = {x n Ax b}. Geometrisch gesprochen kann P als Durchschnitt endlich vieler Halbäume dargestellt werden, ist also eine Teilmenge des n. Definition 2.10. Sei X n, X. Dann bezeichnet die Dimension von X. dim(x) := n max{rg(a) A n n mit Ax = Ay x, y X} Definition 2.11. Eine Menge P n heißt Polyeder wenn es eine Matrix A m n und einen Vektor b m gibt, so dass P = {x n Ax b} erfüllt ist. Sind A und b rational, so heißt P auch rationales Polyeder. Ein begrenztes Polyeder heißt Polytop. Ein Polyeder ist voll-dimensional wenn dim(p ) = n gilt. Äquivalent zur Definition ist ein Polyeder auch voll-dimensional dann und nur dann wenn es einen Punkt im Innern des Polyeders gibt. Definition 2.12. Sei P := {x n Ax b} und c n 0 so dass δ := max{cx x P } < gilt. Man nennt {x cx = δ} dann stützende Hyperebene von P. Eine Seitenfläche von P ist P selbst oder die Schnittmenge von P mit einer stützenden Hyperebene von P. Ein Punkt x, für den {x} eine Seitenfläche ist, nennt man Ecke von P, und auch Basislösung von Ax b. Satz 2.13. Sei P := {x Aussagen äquivalent: n Ax b} ein Polyeder und F P. Dann sind die folgenden (i) F ist eine Seitenfläche von P. 16

(ii) Es existiert ein Vektor c, so dass δ := max{cx x P } < und F = {x P cx = δ}. (iii) Es existiert ein Untersystem A x b von Ax b, so dass F = {x P A x = b } gilt. Proof. (i) (ii) folgt aus der Definition. (iii) (ii): Ist F = {x P A x = b }, dann sei c die Summe aller Zeilen von A, und δ die Summe der Einträge in b. Dann gilt cx δ für alle x P und F = {x P cx = δ}. (ii) (iii): Sei c wie in (ii), also so dass δ := max{cx x P } < und F = {x P cx = δ} gilt. Sei ferner A x b ein maximales Untersystem von Ax b, so dass A x = b für alle x F, und A x b bezeichne die restlichen Ungleichungen von Ax b. Wir betrachten zunächst die Ungleichungen a i x β i von A x b, (i = 1,..., k), für die es nach Konstruktion einen Punkt x i F gibt, der a i x i < β i erfüllt. Sei x := 1 k k i=1 x i der Schwerpunkt der x i wie oben. Falls k = 0 wählen wir x F willkührlich. Es ist dann x F und a i x < β i für alle i = 1,..., k. Zu zeigen ist nun: A y b für alle y P \ F. Sei also y P \ F, dann ist cy < δ. Sei ferner 0 < ε < min {i a i x >a β i y} a i a i x i (x y) und wir betrachten z := x + ε(x y). Es ist cz > δ z P. Insbesondere existiert eine Ungleichung ax β in Ax b mit az > β, und damit ax > ay. Diese Ungleichung ax β ist nicht in A x b enthalten, durch die Wahl von ε wäre sonst az = ax + εa(x y) < ax + β ax a(x y) a(x y) = β erfüllt. Die Ungleichung ax β ist also Zeile von A x b. Es gilt ay = a(x + 1 ε (x z)) < β. Betrachten wir nun ein LP max{cx Ax b}, d.h. insbesondere einen gegebenen Zielfunktionsvektor, so ergibt sich folgendes Korrolar: Korollar 2.14. Sei max{cx Ax b} beschränkt für ein c n und P = {x n Ax b}. Dann ist die Menge aller Punkte, in denen das Maximum erreicht wird, eine Seitenfläche von P. Seitenflächen sind transitiv: 17

Korollar 2.15. Sei P ein Polyeder und F eine Seitenfläche von P. Dann ist F ein Polyeder. Betrachte F F, dann gilt: F ist Seitenfläche von P F ist Seitenfläche von F. Definition 2.16. Sei P ein Polyeder. Eine maximale Seitenfläche ungleich P heißt Facette. Eine Ungleichung cx δ heißt facettenbestimmend (für P ), wenn (i) cx δ x P, und (ii) {x P cx = δ} ist Facette von P gilt. Satz 2.17. Sei P {x n Ax = b}, P, ein Polyeder der Dimension n rg(a). Sei ferner A x b ein minimales Ungleichungssystem mit P = {x Ax = b A x b }. Dann bestimmt jede Ungleichung in A x b eine Facette von P, und jede Facette von P ist durch eine Ungleichung von A x b bestimmt. Proof. Ist P = {x n Ax = b}, so gibt es keine Facetten. Sei A x b wie gefordert, und bezeichne a x β eine Ungleichung von A x b und A x b die restlichen Ungleichungen. Sei y n mit Ay = b, A y b und a y > β. Aufgrund der Minimalität von A x b ist a x > β nicht redundant und es existiert solch ein y. Sei ferner x n mit x P und a x < β. Da dim(p ) = n rg(a) existiert solch ein x. Betrachte z := x + β a x (y x). a y a x Es gilt a z = β. Da 0 < β a x < 1 gilt ebenfalls z P. a y a x F := {x P a x = β } und F P F ist Facette von P. Aus Satz 2.13 folgt, dass jede Ungleichung von A x b eine Facette bestimmt. Neben Facetten betrachten wir auch folgende minimale Seitenflächen. Definition 2.18. Sei P ein Polyeder. Eine Seitenfläche F P heißt minimal, wenn sie keine andere Seitenfläche enthält. Hierzu gibt es eine ähnliche Aussage wie für Facetten. Satz 2.19. Sei P = {x n Ax b} ein Polyeder und F P. F ist eine minimale Seitenfläche dann und nur dann wenn es ein Untersystem A x b von Ax b gibt, mit F = {x A x = b }. Proof. Ist F eine minimale Seitenfläche von P, dann folgt aus Satz 2.13, dass es ein Untersystem A x b von Ax b gibt mit F = {x P A x = b }. 18

Wähle A x b maximal. Sei A x b ein minimales Untersystem von Ax b mit F = {x A x = b A x b }. Behauptung: A x b enthält keine Ungleichungen! Nehmen wir das Gegenteil an, sei also a x β eine Ungleichung aus A x b. Diese Ungleichung ist für F nicht redundant; es folgt mit Satz 2.17, dass F := {x A x = b A x b a x = β } eine Facette von F ist. Aus der Transitivität für Seitenflächen (Korollar 2.15) folgt, dass F auch eine Seitenfläche von P sein muss. Dies ist ein Widerspruch zur Annahme, dass F minimale Seitenfläche ist. Sei nun F = {x A x = b } P für ein geeignetes Untersystem A x b von Ax b. Offensichtlich enthält F keine Seitenflächen außer sich selbst. Nach Satz 2.13 ist F eine Seitenfläche von P, und aus der Transitivität folgt, dass F minimal ist. Betrachten wir Korollar 2.14 genauer, so ergibt sich mit obigem Satz ein Algorithmus, um eine optimale Lösung für ein LP max{cx Ax b} zu berechnen: Für jedes Untersystem A x b von Ax b löse man das LGS A x = b und merke sich die Lösung x, die cx maximiert. Sicherlich ist dies nicht die schnellste oder gar eleganteste Vorgehensweise, sie zeigt aber, dass ein LP in endlicher Zeit gelöst werden kann 3 Aus Satz 2.19 ergibt sich auch folgendes Korollar. Korollar 2.20. Sei P = {x n Ax b} ein Polyeder. Dann haben alle minimalen Seitenflächen von P die Dimension n rg(a). Die minimalen Seitenflächen eines Polytops sind Ecken. Polyeder {x n Ax b} mit rg(a) = n nennt man auch spitz, da ihre minimalen Seitenflächen nur Punkte sind. Definition 2.21. Eine Menge C n heißt (konvexer) Kegel, wenn sie folgende Eigenschaft erfüllt: x, y C κ, λ 0 κx + λy C. Ein Kegel C wird durch x 1,..., x m erzeugt, wenn x 1,..., x m C und für jedes x C Koeffizienten λ 1,..., λ m 0 existieren, so dass x = m i=1 λ ix i gilt. Ein Kegel ist endlich erzeugt wenn er duch eine endliche Anzahl Vektoren erzeugt werden kann. Ein Polyeder vom Typ {x n Ax 0} heißt polyedrischer Kegel. Es ist sofort klar, dass ein polyedrischer Kegel auch ein konvexer Kegel ist. Es besteht ferner folgender Zusammenhang (Satz von Farkas-Minkowski-Weyl, Farkas[1898], Minkowski [1896], Weyl [1935]). Satz 2.22. Ein konvexer Kegel ist polyedrisch dann und nur dann wenn er endlich erzeugt ist. 3 Ebenfalls zeigt sie, dass eine optimale Lösung für ein LP polynomiell beschränkte Größe hat, vgl. 3.1. 19

Proof. Seien x 1,..., x m n. Wir können annehmen, dass x 1,..., x m den n aufspannen. Betrachte nun die Menge H = aller durch n 1 linear unabhängiger Vektoren aus x 1,..., x m aufgespannter Hyperebenen der Form H = = {x cx = 0} mit x i H = i = 1,..., n 1, und hierzu die Menge H mit entsprechenden, bijektiven Elementen der Form H = {x cx 0}. Es ist sofort klar, dass H endlich ist. Aus dem Fundamentalsatz für lineare Ungleichungen folgt, dass der durch x 1,..., x m n erzeugte Kegel genau die Schnittmenge aller Halbräume in H ist. Aus der Endlichkeit von H folgt, dass dieser Kegel polyedrisch ist. Sei C := {x Ax 0} ein polyedrischer Kegel. Im ersten Fall haben wir gezeigt, dass jeder endlich erzeugte Kegel polyedrisch ist: Sei also C A der durch Spalten von A erzeugte Kegel. Mit anderen Worten: es gibt Vektoren b 1,..., b t, so dass C A = {x b 1 x 0 b t x 0} gilt. Sei C B der durch b 1,..., b t erzeugte Kegel. Wir zeigen nun, dass C = C B erfüllt ist. Jeder Spaltenvektor a j von A ist in C A enthalten, und damit gilt b i a j 0 i = 1,..., t, j = 1,..., m. Hieraus folgt, dass b i C gilt, es ist also C B C. Wir nehmen jetzt C \ C B an, sei also y so, dass y C und y C B Durch den ersten Fall wissen wir, dass C B polyedrisch ist, es gibt also ein w 0 i = 1,..., t und wy > 0. Also ist w C A, und somit wx 0 für jedes x C. Dies ist ein Widerspruch zu y C und wy > 0. n mit wb i In einem LP wird ja neben einem Polyeder auch ein Zielfunktionsvektor c gegeben. Ein Vergleich von c mit dem durch A gegebenen Kegel erlaubt eine weitere Beschränktheitsaussage. Satz 2.23. Sei max{cx Ax b} ein zulässiges LP. Dieses ist dann und nur dann beschränkt, wenn c im Kegel liegt, der durch Zeilen von A erzeugt wird. Proof. Das LP ist beschränkt dann und nur dann wenn sein duales LP zulässig ist, das heißt es ein y 0 mit ya = c gibt. 2.4 Polytope und konvexe Hüllen In diesem Teil befassen wir uns noch etwas mehr mit Polytopen, und deren Zusammenhang mit der konvexen Hülle einer endlichen Anzahl Punkte. Definition 2.24. Sei X n. Wir nennen X konvex wenn λx+(1 λ)y X für alle x, y X und λ [0, 1] gilt. Seien x 1,..., x k n, λ 1,..., λ k, λ i 0(i = 1,..., k) mit k i=1 λ i = 1. Dann heißt x := k i=1 λ ix i konvexe Kombination von x 1,..., x k. 20

Die konvexe Hülle conv(x) einer Menge X ist die Vereinigung aller konvexen Kombinationen von Punkten in X. Ein Extrempunkt einer Menge X ist ein x X mit x conv(x \ {x}). Ein paar Worte über konvexe Mengen: Eine Menge ist also genau dann konvex, wenn alle konvexen Kombinationen von Punkten aus dieser Menge in ihr enthalten sind. Die konvexe Hülle einer Menge ist die kleinste konvexe Menge, die sie enthält. Die Schnittmenge konvexer Mengen ist konvex. Insbesondere sind Polyeder damit konvex. Wir kommen nun zum Satz über endliche Basen eines Polytops (Minkowski [1896], Steinitz [1916], Weyl [1935]). Satz 2.25. Eine Menge P ist ein Polytop dann und nur dann wenn es die konvexe Hülle einer endlichen Anzahl Punkte ist. Proof. Sei P = {x n Ax b} ein Polytop. Wir können P auch anders beschreiben, und zwar wie folgt: ( ) x P = {x C} 1 mit ( x C = { λ ) n+1 λ 0 Ax λb 0}. C( ist ein ) polyedrischer ( ) Kegel, also endlich erzeugt (Satz von Farkas-Minkowski-Weyl). Seien x1 xk,..., die Vektoren, die P erzeugen. λ 1 λ k Da P beschränkt ist, sind die λ i nichtnegativ, o.b.d.a. sei λ i = 1 i = 1,..., k. Somit ist ( ) ( ) ( x x1 xk x P µ 1,..., µ k 0 : = µ 1 1 + + µ 1 k 1 Mit anderen Worten, P ist die konvexe Hülle von x 1,..., x k. Sei P die konvexe Hülle von x 1,..., x k. Ferner sei C der durch Kegel. Dann ist C ist polyedrisch, also x P ( x C = { λ Insbesondere ist damit P = {x Ax + b 0}. ( x 1 ) C. ) Ax + bλ 0}. 21 ( x1 1 ) ( xk,..., 1 ). ) erzeugte

Korollar 2.26. Ein Polytop ist die konvexe Hülle seiner Ecken. Proof. Sei P ein Polytop. Nach Satz 2.25 ist die konvexe Hülle Q seiner Ecken ein Polytop. Offensichtlich gilt Q P. Wir nehmen an, dass P \ Q. Sei also z P \ Q. Dann gibt es ein c n, so dass cz > max{cx x Q}. Betrachte die stützende Hyperebene {x cx = max{yc y P }} für P. Diese definiert eine Seitenfläche von P, enthält aber keine Elemente (insb. keine Ecken) aus P. Nach Korollar 2.20 ist dies nicht möglich. Abschließend sei noch folgende Charakterisierung eines Polyeders genannt, die man sich aus den Sätzen dieses Kapitels leicht selbst herleiten kann. Theorem 2.27. Jedes Polyeder besitzt eine Darstellung als Summe Q + C = {q + c q Q, c C} aus einem Polytop Q und einem polyedrischen Kegel C. Proof. Übungsaufgabe. 22

Kapitel 3 Lösungsverfahren (LP) In diesem Kapitel beschreiben und diskutieren wir Algorithmen zur Lösung linearer Programme, und zwar das Simplex-Verfahren als wohl wichtigstes derzeitiges Vorgehen, und die Ellipsoid-Methode als polynomielles Verfahren. Es sei angemerkt, dass es als drittes Vorgehen auch sog. Interior-Point-Methoden gibt, diese werden aber nicht weiter betrachtet. Im folgenden gehen wir davon aus, dass ein LP max{cx Ax b} gelöst werden soll, und dass es in Standardform vorliegt. Bevor wir damit beginnen, ein paar Vorüberlegungen zum Thema Algorithmen, und zur Gauß- Eliminierung. 3.1 Komplexität und lineare Algebra Ganz allgemein kann man das Lösen eines Problems sicherlich nicht fassen. Hat man jedoch eine vernünftige Problembeschreibung, so kann man sich überlegen, ob es nicht ein allgemeingültiges Verfahren gibt, welches für jede Instanz z.b. die Menge aller zulässigen Lösungen berechnet. Das Verfahren der Gauß-Eliminierung ist eine solch allgemeingültige Beschreibung um alle zulässigen Lösungen für ein gegebenes LGS zu erhalten. Ein solches strukturiertes Vorgehen nennt man Algorithmus. Geht man nun davon aus, dass ein Verfahren korrekt ist, d.h. auch wirklich das gegebene Problem löst, so stellt sich anschließend die Frage, wie lange es dauert, bis man die Lösung erhält. Dies wird durch die Komplexität des Verfahrens angegeben. Im folgenden wird eine elementare Kenntnis der Begriffe Komplexität (Laufzeit und Speicherverbrauch) eines Algorithmus vorausgesetzt. Es wird dann auch polynomiell beschränkt immer bezogen auf die Input-Größe gelesen. Es sei erwähnt, dass dieses Thema sehr stark vom zugrundeliegenden Berechnungsmodell abhängt. Deshalb werden wir uns zunächst auf rationale Zahlen einschränken. Dies erlaubt uns insbesondere eventuelle Rundungsfehler ausser Acht zu lassen, und wir können annehmen, das alle elementaren Rechenoperationen (Addition, Multiplikation,...) exakt ausgeführt werden. 23

3.1.1 Größe und Charakterisierungen Um die Größe einer Zahl, eines Vektors und einer Matrix zu bestimmen, lehnen wir uns an das binäre Zählsystem an. Jede rationale Zahl a kann als Bruch p zweier ganzer Zahlen q geschrieben werden, wobei p und q relativ prim zueinander sind. Sind also a = p q, c = (a 1,..., a n ) n und A = (a ij ) j=1,...,n i=1,...,n n m. Dann definieren size(a) := 1 + log 2 ( p + 1) + log 2 ( q + 1), size(c) := n + n i=1 size(a i) und size(a) := mn + ij size(a ij) die Größe dieser Gebilde. Außerdem gibt folgender Satz an, dass diese (willkührliche) Wahl sinnvoll ist, da elementare Rechenoperationen die Größe der Zahlen nicht zu stark verändern. Satz 3.1. Seien r 1,..., r n \ {0}. Dann gilt size(π n i=1 r i) n i=1 size(r i); size( n i=1 r i) 2 n i=1 size(r i). Proof. Für ganze Zahlen s 1,..., s n gilt size( n i=1 s i) n i=1 size(s i) und size(π n i=1s i ) n i=1 size(s i), wie man leicht einsieht. Seien nun r i = p i q i, i = 1,..., n. Dann ist size(π n i=1r i ) n i=1 size(p i) + n i=1 size(q i) n i=1 size(r i). Bei der zweiten Aussage ist der Nenner des Bruches durch q 1... q n gegeben, und der Zähler läßt sich durch n n (q 1... q i 1 p i q i+1... q n ) ( p i ) Π n i=1q i i=1 abschätzen, und die Aussage folgt. Analog zu Satz 3.1 überlegt man sich folgende Aussage. Satz 3.2. Seien x, y n, dann gilt Proof. Übungsaufgabe. i=1 size(x + y) 2(size(x) + size(y)); size(x T y) 2(size(x) + size(y)). Die Annahme, dass p und q relativ prim zueinander sein sollen sorgt dafür, dass jede rationale Zahl durch zwei kleine ganze Zahlen repräsentiert wird. Im Allgemeinen ist dies aber keine große Einschränkung, da durch den Algorithmus von Euklid (Abb. 3.1) der größte gemeinsame Teiler zweier Zahlen sehr schnell gefunden werden kann. Dies ist insbesondere nach durchgeführten Rechenoperationen sinnvoll. 24

Eingabe: p, q Ausgabe: γ = ggt(p, q), also p und q γ γ 1. WHILE p > 0 und q > 0 DO: IF p < q THEN q := q q p p ELSE p := p p q q 2. RETURN γ := max{p, q} relativ prim Abbildung 3.1: Algorithmus von Euklid Satz 3.3. Der Algorithmus von Euklid ist korrekt und benötigt maximal size(p)+size(q) Schritte. Proof. Korrektheit: Die Menge der gemeinsamen Teiler von p und q bleibt unverändert, bis eine der beiden Zahlen 0 wird. Laufzeit: Entweder p oder q wird in jedem Schritt auf mindestens die Hälfte reduziert, dies liefert maximal log p + log q + 1 Schritte. Wir werden nun die Größen einiger weitere wichtiger Zahlen aus der linearen Algebra betrachten. Satz 3.4. Sei A n n eine Matrix mit size(a) = σ. Dann ist size(det(a)) 2σ. Proof. Sei A = ( p ij q ij ) n i,j=1 mit p ij, q ij relativ prim und q ij > 0. Ferner sei det(a) = p (p, q relativ prim). q Es gilt q Π n i,j=1 q ij < 2 σ 1. Aus der Definition einer Determinante folgt Und damit gilt Zusammengefasst ist dann det(a) Π n i,j=1 ( p ij + 1). p = det(a) q Π n i,j=1 ( p ij + 1) q ij < 2 σ 1. size(det(a)) = 1 + log 2 ( p + 1) + log 2 ( q + 1) 2σ. Hieraus folgen mehrere, ähnliche Aussagen. Korollar 3.5. Für die Inverse einer nichtsingulären Matrix A n n gilt size(a 1 ) = poly(size(a)). Proof. Alle Einträge in A 1 sind Quotienten von (Sub-) Determinanten von A. Korollar 3.6. Hat das rationale, lineare Gleichungssystem Ax = b eine Lösung, so läßt sich eine davon in polynomieller Größe zu A und b beschreiben. 25

Proof. Wir können annehmen, dass A linear unabhängige Zeilen enthält, und ferner dass A = (A 1, A 2 ) mit A 1 nichtsingulär gilt. Dann ist x 0 = ( A 1 1 b 0 eine Lösung, welche die Aussage erfüllt. Korollar 3.5 liefert die Aussage. Es lassen sich noch weitere solcher elementarer Aussagen treffen, die hier aber nicht weiter betrachtet werden, nicht zuletzt, da sie auch aus der nun folgenden Betrachtung der Gauß- Eliminierung folgen werden. ) 3.1.2 Gauß-Eliminierung In diesem Teil wird die Gauß-Eliminierung im Kontext der mathematischen Programmierung beschrieben, und einige Eigenschaften bzgl. der Komplexität hergeleitet. Das Verfahren kann rekursiv beschrieben werden. Nehmen wir einmal an, dass wir das folgende System m linearer Gleichungen mit den Variablen x 1,..., x n lösen wollen (n, m ). (LGS) α 1,1 x 1 + α 1,2 x 2 + + α 1,n x n = β 1 α 2,1 x 1 + α 2,2 x 2 + + α 2,n x n = β 2.... α m,1 x 1 + α m,2 x 2 + + α m,n x n = β m Wir können α 1,1 0 annehmen, und entspechende Vielfache der ersten Zeile von den darunter liegenden Zeilen abziehen, so dass wir folgendes System erhalten. (LGS ) α 1,1 x 1 + α 1,2 x 2 + + α 1,n x n = β 1 α 2,2 x 2 + + α 2,n x n = β 2... α m,2 x 2 + + α m,n x n = β m Rekursiv wird dann das Untersystem der unteren m 1 Gleichungen gelöst. Rücksubstitution liefert den entsprechenden Wert für x 1. Mit anderen Worten findet bei der Gauß-Eliminierung eine Überführung der Matrix A mit den Einträgen α ij und β i, i, j entsprechend, in die Form ( B C 0 0 statt, wobei B eine nichtsinguläre, obere Dreiecksmatrix ist. In Matrix-Schreibweise ist das rekursive Verfahren durch die Matrix-Folge A = A 0, A 1, A 2,... beschrieben, wobei in jedem Schritt k die Matrix ( B C 0 D 26 ) )

dadurch charakterisiert ist, dass B eine nichtsinguläre, obere Dreiecksmatrix mit k Zeilen ist. Nach einem Rekursionsschritt besteht B dann aus k + 1 Zeilen, so dass wir nach maximal m Schritten die Rücksubstitution beginnen können. Allgemein finden hierbei zwei Operationen Anwendung: Addition eines Vielfachen einer Zeile zu einer anderen Zeile. Permutation von Zeilen oder Spalten. Die Korrektheit des Verfahrens ist aus der linearen Algebra hinreichend bekannt. Wir haben weiterhin folgenden wichtigen Satz: Satz 3.7. Für rationale Zahlen terminiert die Gauß-Elimination in polynomieller Anzahl Rechenschritte, und das Ergebnis hat polynomiell beschränkte Größe. Proof. Wir können annehmen, dass wir während des Verfahrens keine Zeilen oder Spalten permutieren müssen. Ferner ist es leicht einzusehen, dass die Anzahl elementarer Rechenoperationen (Addition, Mutliplikation,...) des Verfahrens polynomiell beschränkt ist. Es bleibt zu zeigen, dass die Größe der Zahlen, wie sie im Verfahren auftreten, auch polynomiell in size(a) beschränkt ist. Um dies einzusehen betrachten wir die Matrix D mit Einträgen d ij. Bezeichne mit G i 1,...,i t j 1,...,j t die quadratische Untermatrix von G, die durch die Zeilen i 1,..., i t und Spalten j 1,..., j t induziert wird. Dann gilt d ij = det((a k) 1,...,k,k+i 1,...,k,k+j ) det((a k ) 1,...,k 1,...,k ). Da A k aus A dadurch entsteht, dass Vielfaches der ersten k Zeilen zu anderen Zeilen addiert werden, gilt auch 1,...,k,k+j ) d ij = det(a1,...,k,k+i det(a 1,...,k 1,...,k ). Aus Satz 3.4 folgt, dass d ij maximal 4 size(a) groß ist. Da jeder Eintrag in B und C während des Verfahrens einmal ein Eintrag von D war, folgt die Beschränkung 4 size(a) auf die entsprechende Größe auch sofort. Die polynomielle Schranke folgt bei Beachtung der Darstellung der Zahlen 1. Aus dem Resultat der Gauß-Eliminierung lassen sich auch andere Eigenschaften der ursprünglichen Matrix A direkt ablesen, bzw. durch kleinen zusätzlichen Aufwand berechnen. So lassen sich folgende Probleme in polynomieller Zeit lösen: bestimme die Determinante einer rationalen Matrix; 1 Die Existenz der entsprechend kleinen Einträge reicht natürlich noch nicht aus, um eine polynomielle Darstellung zu erreichen. Es muss noch gewährleistet werden, dass die auftretenden Zahlen entsprechend effizient repräsentiert werden (d.h. a = p q mit p relativ prim zu q!), dies kann jedoch durch den Euklidischen Algorithmus in polynomieller Zeit erreicht werden. 27

bestimme den Rang einer rationalen Matrix; teste rationale Vektoren auf lineare Unabhängigkeit; löse ein rationales LGS; bestimme das Inverse einer nichtsingulären Matrix 2. 3.2 Die Simplex-Methode Die allgemeine Vorgehensweise der Simplex-Methode zur L soung eines (rationalen) LPs läßt sich wie folgt zusammenfassen: Gehe von Ecke zu Ecke des LP-Polyeders, entlang der Kanten der Seitenflächen, bis eine optimale Ecke erreicht ist. Im vorherigen Kapitel haben wir gesehen, dass es für minimale Seitenflächen eines Polyeders immer ein maximales Untersystem von Ax b gibt, welches mit Gleichheit erfüllt ist (Basisungleichungen). Die hierzu korrespondierenden Variablen nennen wir Basisvariablen. Ist P, so sind alle minimalen Seitenflächen Ecken von P und diese werden durch die Basisungleichungen beschrieben. Definition 3.8. Eine Ecke heißt nicht entartet, falls alle zugehörigen Basisvariablen echt positiv sind. Durch strukturiertes Austauschen einer solchen Basisungleichung mit einer weiteren Nichtbasisungleichung (d.h. echten Ungleichung) erhällt man das oben genannte Vorgehen in algorithmischer Form. 3.2.1... mit gegebenem Startpunkt Annahme: x 0 P := {x Ax b} bekannt. Ferner können wir annehmen, dass P spitz ist, d.h. u.a. rg(a) = n. Die Nebenbedingungen Ax b seien durch a 1 x β 1,..., a m x β m gegeben. Hier nun das Verfahren in allgemeiner Form: Wähle ein Untersystem A 0 x b 0 von Ax b, so dass A 0 x 0 = b 0 gilt und A 0 nichtsingulär ist. Bestimme u ca 1 Fall (1) u 0 0 und füge Nullen hinzu). m, so dass c = ua und u gleich 0 ausserhalb A 0. (Genauer: berechne 2 Hierfür sind weitere Operationen wie beim Gauß-Verfahren nötig um B in Diagonalform zu bringen. Dies geschieht jedoch auch polynomiell beschränkt. Der Beweis ist analog zu 3.7 und verbleibt als Übungsaufgabe 28

Dann ist x 0 eine optimale Lösung, denn es gilt cx 0 = uax 0 = ub min{yb ya = c y 0} = max{cx Ax b}. Es sei angemerkt, dass u gleichzeitig eine optimale Lösung für das duale Problem ist. Fall (2) u 0 Bestimme den kleinsten 3 Index i für den u eine negative Komponente hat, und y mit ay = 0 für jede Zeile von A 0 mit a a i, und a i y = 1. Mit anderen Worten, y ist die entsprechende Spalte von A 1 0. Es gilt cy = uay = u i > 0 ( ), wobei u i den i -ten Eintrag von u bezeichnet. Betrachten wir nun folgende Fälle: n Fall (2.i) ay 0 für jede Zeile von A Dann ist x 0 + λy P λ > 0, das LP also unbegrenzt (cy > 0 ( )!). Fall (2.ii) eine Zeile a von A, so dass ay > 0 gilt Sei λ 0 := min{ β j a j x 0 a j y j = 1,..., m a j y > 0}, also das größte λ, so dass x 0 +λy P, und sei j der kleinste 4 Index, der diese Gleichung erfüllt. Sei dann A 1 die Matrix, die durch Austausch der Zeile a i mit a j in A 0 entsteht, und sei x 1 := x 0 + λ 0 y. Also gilt A 1 x 1 = b 1, wobei b 1 die passenden Einträge enthält. Wiederhole mit A 1 und x 1. Für dieses Vorgehen gilt nun folgender Satz. Satz 3.9. Das oben beschriebene Vorgehen liefert einen endlichen Algorithmus. Proof. Annahme: Vorgehen ist nicht endlich. Wir bleiben in Fall (2.ii), und insbesondere ist dann Ferner gilt cx 0 cx 1 cx 2.... cx k = cx k+1 x k+1 = x k. Dies sieht man leicht ein, denn anders (x k+1 x k ) wäre λ 0 > 0 und damit x k x k+1. Da es nur endlich viele Auswahlmöglichkeiten für A k gibt, betrachte nun Iterationen k, l mit k < l und A k = A l. 3 Bland s Regel: Insbesondere kann es bei entarteten Ecken im Simplex-Verfahren passieren, dass man in einem Basistausch an der gleichen Stelle bleibt. Um so entstehenden Zyklus zu verhindern wendet man eine Indexstrategie an, die garantiert, dass man diese Ecke auch wieder verlässt. 4 Bland s Regel. 29

x k = x l x k = x k+1 =... = x l. Sei r der größte Index einer Zeile a r, die in einer Iteration p {k,..., l 1} aus A p entfernt wurde. Da A k = A l gilt, folgt, dass es eine Iteration q gibt, in der diese Zeile a r wieder hinzugefügt wird. für j > r gilt: a j ist in A p dann, und nur dann enthalten, wenn a j in A q enthalten ist ( ). Betrachte ( ): es ist u p Ay q = cy q > 0. Bezeichne u p = (û 1,..., û m ). Insbesondere gibt es eine Zeile a j mit û j (a j y q ) > 0. Dann ist aber: a j nicht in A p û j = 0, a j in A p und j < r û j 0 a j y q 0, a j in A p und j = r û j < 0 a j y q > 0, und a j in A p und j > r a j y q = 0. Die mittleren beiden Punkte folgen aus der Wahl von r als kleinstem Index j mit û j < 0, a j x q = β j und ajy q > 0. Der letzte Punkt folgt aus der Äquivalenz ( ). Insbesondere folgt ein Widerspruch, und damit terminiert das Vorgehen. Der Beweis erinnert sehr stark an den Beweis des Fundamentalsatzes über lineare Ungleichungen. Dies ist kein Zufall, betrachte das LP max{cx Ax 0}! 3.2.2... ohne gegebenem Startpunkt Falls wir keinen Startpunkt haben, so können wir uns diesen dennoch mit obigem Verfahren holen: wir betrachten also das LP max{cx Ax b} in Standardform, und substituieren x := y z mit y, z 0. Wir erhalten max{(c c) O.B.d.A. hat diese LP das Format ( y z mit b 0 und b < 0. Betrachten wir nun das folgende LP: 5 ) ( y (A A) z ) b y, z 0}. (LP 1) max{cx A x b A x b x 0} (LP 2) min{ A x + y A x b A x + y b x, y 0}. Es ist (x y) = 0 eine zulässige Lösung hierfür, wir können es also mit bekannter Methode lösen. 5 Bezeichne den Eins-Vektor, d.h. := (1,..., 1). 30