Lineare Programmierung

Ähnliche Dokumente
Lineare Programmierung

Lineare Programmierung

Primzahlen und RSA-Verschlüsselung

Lineare Gleichungssysteme

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

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

3. Grundlagen der Linearen Programmierung

Informationsblatt Induktionsbeweis

1 Mathematische Grundlagen

4. Dynamische Optimierung

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.

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

Optimierung für Nichtmathematiker

Gleichungen Lösen. Ein graphischer Blick auf Gleichungen

Die Verbindung von Linearer Programmierung und Graphentheorie

Grundlagen der Theoretischen Informatik, SoSe 2008

Zeichen bei Zahlen entschlüsseln

Lineare Funktionen. 1 Proportionale Funktionen Definition Eigenschaften Steigungsdreieck 3

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

1 topologisches Sortieren

4. BEZIEHUNGEN ZWISCHEN TABELLEN

Vorlesung Diskrete Strukturen Graphen: Wieviele Bäume?

Mathematischer Vorbereitungskurs für Ökonomen

Bestimmung einer ersten

OPERATIONS-RESEARCH (OR)

Musterlösungen zur Linearen Algebra II Blatt 5

Würfelt man dabei je genau 10 - mal eine 1, 2, 3, 4, 5 und 6, so beträgt die Anzahl. der verschiedenen Reihenfolgen, in denen man dies tun kann, 60!.

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

Lernerfolge sichern - Ein wichtiger Beitrag zu mehr Motivation

Grundbegriffe der Informatik

Konzepte der Informatik

Beweisbar sichere Verschlüsselung

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

6.2 Scan-Konvertierung (Scan Conversion)

Zahlen auf einen Blick

7 Rechnen mit Polynomen

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

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,

ONLINE-AKADEMIE. "Diplomierter NLP Anwender für Schule und Unterricht" Ziele

Güte von Tests. die Wahrscheinlichkeit für den Fehler 2. Art bei der Testentscheidung, nämlich. falsch ist. Darauf haben wir bereits im Kapitel über

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

Info zum Zusammenhang von Auflösung und Genauigkeit

Lineare Gleichungssysteme I (Matrixgleichungen)

Lineare Gleichungssysteme

Kevin Caldwell. 18.April 2012

Schranken für zulässige Lösungen

Kapitel 15. Lösung linearer Gleichungssysteme

Zwischenablage (Bilder, Texte,...)

5 Eigenwerte und die Jordansche Normalform

Einführung in. Logische Schaltungen

Lineare Optimierung Ergänzungskurs

OECD Programme for International Student Assessment PISA Lösungen der Beispielaufgaben aus dem Mathematiktest. Deutschland

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

Optimierung und Simulation ökonomischer Problemlagen privater Haushalte 3. Vorlesung

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

Chemie Zusammenfassung KA 2

SEK II. Auf den Punkt gebracht!

SUDOKU - Strategien zur Lösung

Tipp III: Leiten Sie eine immer direkt anwendbare Formel her zur Berechnung der sogenannten "bedingten Wahrscheinlichkeit".

Erstellen von x-y-diagrammen in OpenOffice.calc

DAS PARETO PRINZIP DER SCHLÜSSEL ZUM ERFOLG

13. Lineare DGL höherer Ordnung. Eine DGL heißt von n-ter Ordnung, wenn Ableitungen y, y, y,... bis zur n-ten Ableitung y (n) darin vorkommen.

Skript und Aufgabensammlung Terme und Gleichungen Mathefritz Verlag Jörg Christmann Nur zum Privaten Gebrauch! Alle Rechte vorbehalten!

Die reellen Lösungen der kubischen Gleichung

Professionelle Seminare im Bereich MS-Office

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

Das Dilemma des Einbrechers Wer die Wahl hat, hat die Qual!

Nichtlineare Optimierung ohne Nebenbedingungen

Das Briefträgerproblem

Welche Lagen können zwei Geraden (im Raum) zueinander haben? Welche Lagen kann eine Gerade bezüglich einer Ebene im Raum einnehmen?

Austausch- bzw. Übergangsprozesse und Gleichgewichtsverteilungen

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

Qualität und Verlässlichkeit Das verstehen die Deutschen unter Geschäftsmoral!

8. Quadratische Reste. Reziprozitätsgesetz

Aufgabe 1. Zunächst wird die allgemeine Tangentengleichung in Abhängigkeit von a aufgestellt:

Nicht kopieren. Der neue Report von: Stefan Ploberger. 1. Ausgabe 2003

Paper Computer Science Experiment. Computation (NP-Vollständigkeit) Steinerbäume

Das große ElterngeldPlus 1x1. Alles über das ElterngeldPlus. Wer kann ElterngeldPlus beantragen? ElterngeldPlus verstehen ein paar einleitende Fakten

Prozentrechnung. Wir können nun eine Formel für die Berechnung des Prozentwertes aufstellen:

!(0) + o 1("). Es ist damit möglich, dass mehrere Familien geschlossener Orbits gleichzeitig abzweigen.

Zahlenwinkel: Forscherkarte 1. alleine. Zahlenwinkel: Forschertipp 1

1. Motivation / Grundlagen 2. Sortierverfahren 3. Elementare Datenstrukturen / Anwendungen 4. Bäume / Graphen 5. Hashing 6. Algorithmische Geometrie

Betragsgleichungen und die Methode der Fallunterscheidungen

PROSEMINAR ONLINE ALGORITHMEN

Statistische Untersuchungen zu endlichen Funktionsgraphen

Diskrete Optimierung

Microsoft Excel 2010 Mehrfachoperation

Tilgungsrechnung. (K n + R n = ln. / ln(q) (nachschüssig) + R. / ln(q) (vorschüssig)

Erstellen einer GoTalk-Auflage

Eigenwerte und Eigenvektoren von Matrizen

Einführung in die Algebra

In diesem Thema lernen wir die Grundlagen der Datenbanken kennen und werden diese lernen einzusetzen. Access. Die Grundlagen der Datenbanken.

Unterrichtsmaterialien in digitaler und in gedruckter Form. Auszug aus: Übungsbuch für den Grundkurs mit Tipps und Lösungen: Analysis

2.1 Präsentieren wozu eigentlich?

EM-Wellen. david vajda 3. Februar Zu den Physikalischen Größen innerhalb der Elektrodynamik gehören:

Arbeiten mit UMLed und Delphi

Algorithmen II Vorlesung am

Mathematik I für Wirtschaftswissenschaftler

Algorithmen und Datenstrukturen. Große Übung vom Nils Schweer

Sudoku-Informatik oder wie man als Informatiker Logikrätsel löst

Transkript:

Seminar: Intelligente Algorithmen Stefan Kopp, Alfred Kranstedt, Nadine Leßmann Lineare Programmierung Frank Schönmann WS 2003/04

Inhaltsverzeichnis 1 Motivation 3 2 Lineare Programmierung (LP) 4 2.1 Einführendes Beispiel................................ 4 2.2 Weitere Anwendungsbeispiele............................ 5 2.3 Formale Formulierung................................ 5 2.4 Normalformen..................................... 6 2.5 Geometrische Interpretation............................. 7 2.6 Spezialfall: diskrete lineare Programmierung.................... 8 3 Methoden zur Lösung von LP-Problemen 9 3.1 Simplex-Algorithmus................................. 10 4 Lösung des TSP mithilfe von LP 10 4.1 Lösungsansatz.................................... 10 4.2 Initiales LP-Problem................................. 11 4.3 Schnittebenen..................................... 11 5 Zusammenfassung 13 Abbildungsverzeichnis 1 Lösung des traveling salesman problems für 15.112 Städte in Deutschland... 3 2 Geometrische Interpretation eines linearen Programms.............. 8 3 Lösungsraum eines diskreten linearen Optimierungsproblems.......... 9 4 Alle Verbindungen zwischen vier Städten und eine der gültigen Touren..... 10 5 Aufteilung einer Menge von Städten in zwei Teilmengen............. 12 2

1 Motivation Bereits 1954 stellten Dantzig, Fulkerson & Johnson eine Methode zur Lösung des TSP vor, die auf linearer Programmierung beruht die sogenannten cutting planes. Mit dieser Methode lösten sie eine 49-Städte-Instanz, eine beeindruckende Leistung zur damaligen Zeit. Auch der aktuelle Weltrekord, eine optimale Tour durch 15.112 Städte in Deutschland, wurde von Applegate, Bisby, Chvátal & Cook mit einer Weiterentwicklung der cutting planes- Methode gelöst. Abb. 1: Lösung des traveling salesman problems für 15.112 Städte in Deutschland [aus http://www.math. princeton.edu/tsp/d15sol/ ] Einführung und Beispiele der vorliegenden Ausarbeitung orientieren sich vor allem an [CLRS01], die Lösungsansätze zur Behandlung des traveling salesman problems mithilfe der linearen Programmierung an [ABCC98] und [ABCC01]. Diese Arbeit gibt erst eine kurze Einführung in die lineare Programmierung; diese wird sowohl formal als auch anschaulich erläutert. Anschließend wird vorgestellt, wie das TSP mithilfe der cutting planes-methode 3

gelöst werden kann, die auf der linearen Programmierung basiert. 2 Lineare Programmierung (LP) Grundidee der linearen Programmierung ist die Optimierung einer linearen Funktion mit n Freiheitsgraden, die durch lineare Gleichungen und Ungleichungen eingeschränkt ist. Diese Einschränkungen können z. B. widersprüchliche Bedingungen oder beschränkte Ressourcen darstellen. Die lineare Programmierung ist eines der Hauptverfahren des Operations Research 1, um lineare Optimierungsprobleme zu lösen. Dabei stellt sie eine sehr allgemeine Methode zur Optimierung von Problemlösungen dar, für die keine speziell entwickelten Algorithmen bekannt sind. 2.1 Einführendes Beispiel Angenommen ein Politiker möchte seine Wahlkampfgelder möglichst effizient einsetzen, d. h. einerseits so wenig wie möglich ausgeben, aber andererseits in der Stadt mit 100.000 Einwohnern, der Vorstadt mit 200.000 Einwohnern und auf dem Land mit 50.000 Einwohnern jeweils eine absolute Mehrheit erringen. Abhängig davon, in welches Wahlkampfthema er investiert, steigt oder sinkt seine Beliebtheit in den drei Bevölkerungsgruppen, was sich direkt auf seinen Wahlerfolg auswirkt (siehe Tabelle 1). Wahlkampfthema Variable Stadt Vorstadt Land Straßenbau x 1 2 5 3 Waffenkontrolle x 2 8 2 5 Subventionen x 3 0 0 10 Mineralölsteuer x 4 10 0 2 Tab. 1: Erwartete Gewinne bzw. Verluste (in Tausend) an Wählerstimmen pro $1000 Die Tabelle ist folgendermaßen zu interpretieren: werden $1000 in den Wahlkampf für Straßenbau investiert, sinken die erwarteten Wählerstimmen in der Stadt um 2000, nehmen in Vorstadt aber um 5000 und auf dem Land um 3000 zu. Analog für die restlichen drei Zeilen. Die erwarteten Gewinne bzw. Verluste in der Stadt lassen sich, wenn die vier Variablen x 1,..., x 4 belegt sind, zusammenfassen als 1 = 2x 1 + 8x 2 + 0x 3 + 10x 4. Um die Bedingung der absoluten Mehrheit zu erfüllen, unterliegt dieser Wert der (linearen) Einschränkung 1 50. Ähnliches gilt wieder für die beiden anderen Bevölkerungsgruppen, so dass sich das gesamte Problem formal zusammenfassen lässt: minimiere x 1 + x 2 + x 3 + x 4 unter Einhaltung der Nebenbedingungen für eine Mindestanzahl an Wählerstimmen: 2x 1 + 8x 2 + 0x 3 + 10x 4 50 5x 1 + 2x 2 + 0x 3 + 0x 4 100 3x 1 5x 2 + 10x 3 2x 4 25 1 Operations Research ist ein Teilgebiet der angewandten Mathematik, das sich mit dem Optimieren bestimmter Prozesse oder Verfahren beschäftigt. Die beiden Hauptgebiete sind lineare und nicht-lineare Optimierung. 4

x 1, x 2, x 3, x 4 0 Das Problem der linearen Programmierung ist es nun, diese Aufgabe zu lösen. Zwar ist es bei einfacheren Problemen wie diesem nicht weiter schwierig, durch Ausprobieren eine gültige Lösung zu finden. Aber bereits bei der Suche nach der optimalen Lösung kommt man damit nicht mehr weiter. Dafür gibt es effiziente Verfahren, die in Kapitel 3 vorgestellt werden. 2.2 Weitere Anwendungsbeispiele Viele Probleme, die sich mit linearer Programmierung lösen lassen, sind im wirtschaftlichen Bereich zu finden. Ein Beispiel dafür ist die effiziente Verteilung von Crews einer Airline auf alle möglichen Flüge unter Einhaltung gesetzlicher Bestimmungen, z. B. der maximalen Arbeitszeit oder der Verteilung auf Flugzeugtypen. Weitere Anwendungsbeispiele finden sich in vielen Operation Research-Büchern. Aber nicht nur wirtschaftliche Optimierungsaufgaben lassen sich mit linearer Programmierung lösen, sondern auch abstraktere Probleme, beispielsweise in der Graphentheorie: das Finden kürzester Pfade, des maximalen Flusses oder eines minimalen Kostenflusses lässt sich unter geeigneter Formulierung ebenfalls lösen. Näheres hierzu findet sich auch in [CLRS01]. 2.3 Formale Formulierung Ziel der linearen Programmierung ist es, eine lineare Funktion in Abhängigkeit von einer Menge linearer Ungleichungen zu optimieren. Sei c 1,..., c n R und x 1,..., x n eine Menge von Variablen. Dann nennt man f mit n f(x 1,..., x n ) = c 1 x 1 + c 2 x 2 + + c n x n = c i x i eine lineare Funktion. Sei b R und f eine lineare Funktion. Dann ist eine lineare Gleichung und f(x 1,..., x n ) b f(x 1,..., x n ) = b f(x 1,..., x n ) b sind lineare Ungleichungen. In der linearen Programmierung sind strikte Ungleichungen nicht zugelassen. Formal ist ein LP-Problem das Problem, eine lineare Funktion in Abhängigkeit von einer endlichen Anzahl linearer Ungleichungen zu optimieren. Man bezeichnet das Problem als lineares Minimierungsproblem oder lineares Maximierungsproblem. Wie wir in Abschnitt 2.4 zeigen, sind alle linearen Programme äquivalent zu einem LP- Problem in Standardform. Dies ist dann folgendermaßen definiert: n maximiere f(x 1,..., x n ) = c i x i unter Einhaltung der linearen Bedingungen n a ij x j b i j=1 x j 0 i=1 i=1 für i = 1, 2,..., m für j = 1, 2,..., n 5

Dasselbe Problem lässt sich in Matrix-Schreibweise definieren als unter den Nebenbedingungen 2 maximiere f(x) = c T x Ax b x 0 Da dieses Problem bereits in einer standardisierten Form vorliegt, kann man es kompakt als (A, b, c) zusammenfassen. Für die vorkommenden Matrizen und Vektoren gelten die Dimensionen A R m n, b R m und c, x R n. 2.4 Normalformen Unter einer Normalform eines mathematischen Objekts versteht man in der Mathematik eine Darstellung, die bestimmte vorgegebene Eigenschaften hat und für alle Objekte dieses Typs eindeutig bestimmt werden kann. Im Bereich der linearen Programmierung gibt es zwei Normalformen, die von Interesse sind: In der Standardform sind alle Bedingungen durch Ungleichungen definiert, in der Slackform durch Gleichungen. Jedes LP-Problem lässt sich durch geeignete Umformungen in beide Normalformen bringen. Mögliche Abweichungen von der Standardform sind 1. Minimierungsproblem statt Maximierungsproblem, 2. Variablen ohne Nichtnegativitätsbedingung, 3. Gleichheitsbedingungen statt Ungleichheitsbedingungen und 4. Größer-als-Bedingungen statt Kleiner-als-Bedingungen. Formulierungen von linearen Optimierungsproblemen, in denen diese Fälle auftreten, lassen sich umformen durch einige einfachen Operationen: 1. Negierung des Koeffizienten c in der Zielfunktion, 2. Ersetzung von x j durch x j x j mit x j, x j 0, 3. Ersetzung von f(x) = b durch f(x) b, f(x) b und 4. Negierung der Koeffizienten a ij, b i in der betreffenden Bedingung i. Beispiel Gegeben sei das folgende lineare Optimierungsproblem: unter Einhaltung der Nebenbedingungen: minimiere 2x 1 + 3x 2 x 1 + x 2 = 7 x 1 2x 2 4 x 1 0 2 Zu diesem Zweck ist es nötig, die Relationen und geeignet auf Vektoren zu definieren: Seien x, y R n. Dann gilt x y gdw. x 1 y 1 x 2 y 2 x n y n. analog. 6

Durch schrittweise Anwendung der obigen Regeln lässt sich dieses lineare Programm in Standardform überführen. Man erhält dann das äquivalente Optimierungsproblem: unter folgenden Nebenbedingungen: maximiere 2x 1 3x 2 + 3x 3 x 1 + x 2 x 3 7 x 1 x 2 + x 3 7 x 1 2x 2 + 2x 3 4 x 1, x 2, x 3 0 Um ein LP-Problem in Standardform in die Slackform zu überführen, verwendet man die Äquivalenz der folgenden beiden Ausdrücke: n a ij x j b i 0 s i = b i j=1 n a ij x j Die s i nennt man Slack-Variablen. Außer den Nichtnegativitätsbedingungen erhält man nur noch Gleichungen als Nebenbedingungen. Die Slackform eines LP-Problems ist besonders für die praktische Anwendung des Simplex-Algorithmus von Bedeutung, die hier nicht näher erläutert wird. 2.5 Geometrische Interpretation Es gibt eine sehr intuitive geometrische Interpretation von linearen Optimierungsproblemen, die das allgemeine Verständnis verbessern kann. Diese bezieht sich in der folgenden Erläuterung auf lineare Programme in Standardform; aber für äquivalente Darstellungen lässt sich eine analoge Interpretation finden. Geht man von einer linearen Gleichung über die Variablen x 1,..., x n aus, so beschreibt diese eine Hyperebene im n-dimensionalen Raum, d. h. alle Punkte (x 1,..., x n ) T, die die entsprechende Gleichung erfüllen, liegen in dieser Hyperebene 3. Die zugehörige lineare Ungleichung beschreibt dann einen Halbraum, nämlich alle Punkte, die auf der einen Seite der Hyperebene liegen (inkl. der Hyperebene selbst). Dieser Halbraum stellt die Menge aller gültigen Lösungen für die gegebene Ungleichung dar. Hierbei erklärt sich auch, warum keine strikten Ungleichungen zugelassen sind: Lösungen eines linearen Optimierungsproblems sind Punkte auf den durch die Ungleichungen definierten Trenngeraden. Bei strikten Ungleichungen könnte man die Punkte, die dann neben der Trenngeraden liegen, nicht bestimmen. Kombiniert man mehrere lineare Ungleichungen zu einem Ungleichungssystem, so erhält man als Lösungsmenge gerade die Punkte, die alle Ungleichungen erfüllen, also den Schnitt der Halbräume. Dieser Schnitt erzeugt immer ein konvexes Polytop 4 (bzw. einen Simplex, nach dem der Simplex-Algorithmus in Abschnitt 3.1 benannt ist) 5. 3 Eine Hyperebene im n-dimensionalen Raum ist eine n 1-dimensionale, lineare Manigfaltigkeit, die den Raum in zwei Hälften spaltet. Im 2-dimensionalen ist das z. B. eine Gerade, im 3-dimensionalen eine Ebene. 4 Ein konvexes Polytop lässt sich definieren als die konvexe Hülle über eine endliche Menge von Punkten. Ein Polytop kann man sich außerdem vorstellen als die Verallgemeinerung von Polygon und Polyeder auf höhere Dimensionen. 5 Ein geometrischer Körper K ist konvex, wenn für alle Punktepaare (a, b) mit a, b K die Verbindungsstrecke zwischen a und b komplett in K liegt. j=1 7

Die zu maximierende Zielfunktion stellt ebenfalls eine Hyperebene dar, allerdings mit noch unbekanntem Abstand vom Ursprung und damit unbekanntem Zielwert. Lässt man eine Ebene mit der entsprechenden Steigung vom unendlichen auf den Ursprung zuwandern, so ist die Lösung erreicht, sobald die Ebene zum ersten Mal den Simplex berührt. Beispiel Gegeben sei das folgende lineare Optimierungsproblem: maximiere x 1 + x 2 unter Einhaltung folgender Nebenbedingungen: 4x 1 x 2 8 2x 1 + x 2 10 5x 1 2x 2 2 x 1, x 2 0 In Abbildung 2 ist die geometrische Veranschaulichung dieses Beispiels zu sehen. Die Lösung des Problems ist die obere Ecke des Polygons, die von der Geraden geschnitten wird. (a) (b) Abb. 2: Geometrische Interpretation eines linearen Programms. Abb. (a) zeigt den konvexen Schnitt dreier Halbräume, die durch entsprechende lineare Ungleichungen definiert sind. Abb. (b) zeigt mögliche Schnitte mit einer Zielfunktion x 1 + x 2 (nach [CLRS01]). 2.6 Spezialfall: diskrete lineare Programmierung Ein Spezialfall der linearen Programmierung ist die sogenannte diskrete lineare Programmierung (engl. integer linear programming). Bei diesen Optimierungsproblemen muss zusätzlich zu den Einschränkungsungleichungen noch gelten x Z n, d. h. für die Variablen x i werden nur ganzzahlige Werte zugelassen. 8

Durch diese zusätzliche Bedingung wird der Raum der Lösungen natürlich weiter eingeschränkt. In Abb. 3 ist das beispielhaft in zwei Dimensionen zu sehen. Dennoch sind die Extremwerte des Polytops noch immer reellwertig. Daher liefern die bekannten Algorithmen für lineare Programme in diesem Fall keine gültige Lösung. Man versucht z. B., dieses Problem zu umgehen, indem man schrittweise das Ungleichungssystem erweitert, bis die durch ein Standard-Verfahren ermittelte, reellwertige Lösung eine ganze Zahl ist. Dieses Verfahren wird in Abschnitt 4.3 beschrieben. Abb. 3: Lösungsraum eines diskreten linearen Optimierungsproblems sind in diesem Beispiel nur die markierten Punkte. Ein effizientes Finden eines solchen Punktes ist nicht möglich. Eine weitere Spezialisierung dieser Art von Problemen ist die binäre diskrete lineare Programmierung (engl. 0-1 integer linear programming), bei der gelten muss x {0, 1} n, also die x i nur die beiden Werte 0 oder 1 annehmen. Auch das traveling salesman problem lässt sich als (binäres) diskretes lineares Programm darstellen, wie wir in Abschnitt 4 sehen werden. Leider ist diese Art von Problemen nicht effizient lösbar, da sie in die Klasse der N P-harten Probleme fällt. Dies scheint anschaulich nicht klar, lässt sich aber leicht durch polynomielle Reduktion auf ein N P-vollständiges Problem beweisen, beispielsweise 3SAT oder KNAPSACK. 3 Methoden zur Lösung von LP-Problemen Es existieren bereits einige fertige Standardverfahren zur Lösung von linearen Optimierungsproblemen, die in einer Normalform vorliegen. Daher müssen solche Probleme nicht mit einer speziellen Lösung angegangen werden, sondern es genügt, ein entsprechendes lineares Programm zu formulieren und einen passenden Algorithmus darauf auszuführen. Lange Zeit dachte man, dass die lineare Programmierung nicht der Problemklasse P angehört, bis der russische Mathematiker L. G. Khachian 1979 einen effizienten Algorithmus zur Lösung solcher Probleme vorstellte das sogenannte Ellipsoidverfahren. Dies liegt allerdings in der Effizienzklasse O(n 6 ) und ist daher für den praktischen Einsatz nicht geeignet. 9

Einen völlig neuen Ansatz stellte N. K. Karmarkar vor: die interior point-methode mit einer Effizienz von O(n 3.5 ), die es von der Geschwindigkeit her mit dem im folgenden beschriebenen Simplex-Algorithmus aufnehmen kann. 3.1 Simplex-Algorithmus Der Simplex-Algorithmus ist die in der Praxis am häufigsten eingesetzte Methode zur Lösung von linearen Optimierungsproblemen. Zwar lassen sich Anwendungsfälle konstruieren, in denen dieses Verfahren keine polynomielle Laufzeit mehr aufweist, doch in der Praxis löst es die Mehrzahl aller Aufgaben effizient. Der ursprüngliche Algorithmus wurde 1947 von Dantzig vorgestellt und im Laufe der Zeit deutlich verbessert. Wie aus dem Namen abzulesen ist, nutzt der Simplex-Algorithmus die Simplex-Form des Lösungsraums aus, um seine Aufgabe zu bearbeiten. Der Algorithmus erhält als Eingabe ein lineares Programm in Slackform und berechnet dann eine optimale Lösung. Anschaulich beginnt das Verfahren an einer Ecke des Polytops und führt eine Kette von Iterationen durch, bei denen der Algorithmus jeweils zu einer benachbarten Ecke springt, sofern deren Wert nicht kleiner als der aktuelle ist. Der Wert berechnet sich natürlich durch Einsetzen der Ecke als Lösung in die Zielfunktion. Der Algorithmus terminiert, sobald er ein lokales Maximum findet, d. h. keine benachbarte Ecke einen höheren Zielwert aufweist. Dieses Maximum ist global wegen der Konvexität des Polytops und der Linearität der Zielfunktion. Der ausführliche Beweis findet sich in [CLRS01]. 4 Lösung des TSP mithilfe von LP 4.1 Lösungsansatz Um das symmetrische traveling salesman problem mit den hier vorgestellten Methoden zu lösen, beschreiben wir es auf formale Weise in einer Art, die bereits an die lineare Programmierung erinnert: Gegeben sei ein TSP mit n Städten, spezifiziert durch einen Kostenvektor c R n(n 1)/2, also einem Vektor mit einer Komponente für jede mögliche Verbindung zweier Städte. Jede mögliche Tour sei durch einen Inzidenzvektor x S {0, 1} n(n 1)/2 dargestellt, wobei S die Menge der Touren darstellt (alle Hamilton-Zyklen). Der Inzidenzvektor gibt dabei an, ob die zu einer Komponente x e gehörige Kante in der Tour enthalten ist (x e = 1) oder nicht (x e = 0). 1 2 3 4 5 6 Abb. 4: Alle Verbindungen zwischen vier Städten und eine der gültigen Touren. Der Inzidenzvektor lautet in diesem Fall x T = (1 0 1 1 1 0) und beschreibt, welche Kanten in der Lösung enthalten sein sollen. 10

Da c T x genau die Kosten einer Tour x ergibt, lautet das traveling salesman problem dann: minimiere c T x mit x S (1) Allerdings hat man nun ein Problem, das so nicht ohne weiteres lösbar ist. Daher formuliert man eine relaxation, d. h. ein erweitertes Problem, das allerdings einfacher zu behandeln ist: minimiere c T x mit Ax b, (2) wobei Ax b ein lineares Ungleichungssystem ist, das von allen x S erfüllt wird. Das bedeutet, jede gültige Lösung von (1) ist auch eine Lösung für (2), aber nicht umgekehrt. Man erhält ein lineares Problem (A, b, c), das mit den Standardmethoden wie dem Simplex- Algorithmus gelöst werden kann. Natürlich ist die Lösung von (2) nicht direkt geeignet für das ursprüngliche Problem: Einerseits hat der Lösungsraum evtl. eine größere Ausdehnung, da gefordert ist, dass er mindestens alle gültigen Touren mit einschließt. Andererseits wurde die Bedingung der diskreten Variablenbelegungen fallengelassen, um ein effizientes Verfahren anwenden zu können. Diese Bedingung muss natürlich im Laufe der Berechnung wieder aufgenommen werden, z. B. indem man nach der Ausgabe einer Lösung prüft, ob sie wirklich aus diskreten Werten besteht. Auf zwei Arten kann man die Lösung aber dennoch ausnutzen: man findet zumindest eine untere Schranke für das gegebene traveling salesman problem. Eine untere Schranke kann man beispielsweise dazu nutzen, den ermittelten Wert eines Näherungsverfahrens qualitativ einzuschätzen liegt er nahe an der Schranke, genügt er vielleicht schon und man muss nicht weitersuchen. Außerdem kann man mit einer Lösung von (2) in der Nähe davon nach einer Lösung für (1) suchen. 4.2 Initiales LP-Problem Zuerst ist es nötig, ein initales LP-Problem aufzustellen, das die Bedingungen der relaxation erfüllt. Da der Inzidenzvektor x nur die Werte 0 und 1 annehmen kann, soll gelten: 0 x e 1 Zu beachten ist, dass so auch nicht-diskrete Werte zugelassen werden, d. h. eine bestimmte Kante ist zu einem Bruchteil zwischen 0 und 1 in einer Tour enthalten, was anschaulich natürlich keinen Sinn macht. Als weitere einschränkende Bedingung berücksichtigt man, dass jede Stadt v auf einer Rundreise nur von genau zwei Kanten besucht wird: {xe v e} = 2 Diese Bedingungen werden von allen x S erfüllt und können daher als initiales LP-Problem verwendet werden. Um jetzt zu einer Lösung für das eigentliche Problem (1) zu kommen, muss man den Lösungsraum Schritt für Schritt einschränken. Dies geschieht mit Hilfe von cutting planes, die im nächsten Abschnitt beschrieben werden. 4.3 Schnittebenen Hat das erweiterte Problem (2) eine Lösung und das Polytop {x Ax b} einen Extrempunkt, dann findet ein LP-Algorithmus (z. B. der Simplex-Algorithmus) diesen Randpunkt als 11

optimale Lösung x. Jetzt gilt es zwei Fälle zu betrachten: ist x S, so hat man die optimale Lösung für das zugehörige TSP gefunden. Andernfalls existiert wegen der Konvexität des Lösungsraums eine lineare Ungleichung, die von allen Punkten in S erfüllt wird, aber von x nicht. Man nennt diese Ungleichung Schnittebene (engl. cutting plane oder cut) und fügt sie zum Ungleichungssystem Ax b hinzu. Dieser Schritt wird wiederholt bis zur Entdeckung einer gültigen Lösung. Die größte Schwierigkeit hierbei ist das automatische Finden der Schnittebenen bis zur optimalen Lösung für das TSP. Hierfür existieren verschiedene Methoden. 1958 stellte Gomory die nach ihm benannten Gomory cuts vor, die aber aus Effizienzgründen heute nicht mehr verwendet werden. Stattdessen werden vor allen Dingen Hypergraph-Schnitte 6 verwendet. Beispiele dafür sind subtour inequalities, blossom inequalities und comb inequalities, die in [ABCC98] und [ABCC01] detaillierter vorgestellt werden. Subtour inequalities Dies sind die intuitivsten Ungleichungen, die automatisch zu bestimmen sind. Ihnen zugrunde liegt die Tatsache, dass eine gültige Tour jede Aufteilung der Städte V in zwei echte Teilmengen S und T die beiden Teilmengen durch mindestens zwei Kanten verbinden muss. Dies lässt sich leicht einsehen, da der Handlungsreisende beim Wechsel von einer Stadt aus S in eine Stadt aus T wieder in eine der Städte aus S zurückkehren muss, um seine Tour zu vollenden. Veranschaulicht ist dies in Abbildung 5. S 1 T 1 S 3 S 2 T 2 T 3 S 4 T 4 Abb. 5: Die Menge der Städte wurde hier aufgeteilt in zwei echte Teilmengen S und T. Fett markiert sind die beiden Verbindungskanten zwischen diesen Teilmengen. Jede gültige Tour enthält mindestens zwei solcher Verbindungskanten. Die Zahl der Verbindungskanten zwischen den Knotenmengen S und T ist definiert als x(s, T ) = {x e e S e T }, denn gezählt wird jede vorhandene Kante, die sowohl Knoten aus S als auch Knoten aus T enthält. Die subtour-bedingung lässt sich dann formal angeben als x(s, V S) 2. Man erhält also eine Ungleichung, mit der das Polytop von einigen nicht-gültigen Lösungen bereinigt wird. In einem iterativen Verfahren wird das anfängliche Ungleichungssystem jeweils um eine deratige Ungleichung erweitert, falls eine subtour in der gefundenen Lösung des erweiterten Problems auftritt. Es gibt effiziente Methoden, in der erneuten Berechnung einer Lösung mit einem erweiterten Ungleichungssystem die Ergebnisse vorheriger Berechnung einzubeziehen. 6 Ein Hypergraph ist die Verallgemeinerung eines Graphen mit Kanten über beliebig viele Knoten. 12

5 Zusammenfassung Lineare Programmierung ist eines der Standardverfahren zur exakten Lösung größerer Instanzen des traveling salesman problem. Man kann diese Aufgabe als Problem der binären diskreten linearen Programmierung auffassen. Diese Gruppe von Problemen ist N P-hart und daher nicht effizient lösbar. Zur Lösung kommt man, indem man effiziente Verfahren der einfachen linearen Programmierung iterativ anwendet, während man ein hochdimensionales Polytop, das den Lösungsraum darstellt, mit geeigneten cut-bedingungen immer weiter beschneidet. Aufgrund der schwierigen Lösbarkeit dieser Aufgabe, bietet sich das hier beschriebene Verfahren vor allem dann an, wenn unbedingt die exakte Lösung berechnet werden muss. Für Fälle, in denen eine Näherungslösung ausreicht, existieren verschiedene heuristische Verfahren, die bedeutend schneller zum Erfolg führen. Literatur [ABCC98] David Applegate, Robert Bixby, Vašek Chvátal, and William Cook. On the solution of traveling salesman problems. Documenta Mathematica, Extra Volume Proceedings ICM III (1998):645 656, 1998. [ABCC01] David Applegate, Robert Bixby, Vašek Chvátal, and William Cook. TSP cuts which do not conform to the template paradigm. Lecture Notes in Computer Science, 2241:261 305, 2001. [CLRS01] [GP99] Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to algorithms, chapter Linear Programming, pages 770 821. The MIT Press, Cambridge, Massachusetts, second edition, 2001. Martin Grötschel and Manfred W. Padberg. Die optimierte Odyssee. Spektrum der Wissenschaft, Digest, 2:32 41, 1999. 13