Operations Research: Eine (möglichst) natürlichsprachige und detaillierte Einführung in Modelle und Verfahren [1. Aufl. 2020] 978-3-662-60782-4, 978-3-662-60783-1

​Operations Research ist bei der immer noch zunehmenden Durchdringung betrieblicher und anderer Prozesse durch IT omnipr

567 131 3MB

German Pages XXXV, 468 [491] Year 2020

Report DMCA / Copyright

DOWNLOAD FILE

Polecaj historie

Operations Research: Eine (möglichst) natürlichsprachige und detaillierte Einführung in Modelle und Verfahren [1. Aufl. 2020]
 978-3-662-60782-4, 978-3-662-60783-1

Table of contents :
Front Matter ....Pages i-xxxv
Einleitung (Dirk Briskorn)....Pages 1-13
Modellierung (Dirk Briskorn)....Pages 15-84
Lineare Optimierung (Dirk Briskorn)....Pages 85-173
Kombinatorische und (Gemischt-)Ganzzahlige Optimierung (Dirk Briskorn)....Pages 175-290
Graphentheorie (Dirk Briskorn)....Pages 291-401
Back Matter ....Pages 403-468

Citation preview

Dirk Briskorn

Operations Research Eine (möglichst) natürlichsprachige und detaillierte Einführung in Modelle und Verfahren

Operations Research

Dirk Briskorn

Operations Research Eine (möglichst) natürlichsprachige und detaillierte Einführung in Modelle und Verfahren

Dirk Briskorn Schumpeter School of Business and Economics Bergische Universität Wuppertal Wuppertal, Deutschland

ISBN 978-3-662-60782-4 ISBN 978-3-662-60783-1  (eBook) https://doi.org/10.1007/978-3-662-60783-1 Die Deutsche Nationalbibliothek verzeichnet diese Publikation in der Deutschen Nationalbibliografie; detaillierte bibliografische Daten sind im Internet über http://dnb.d-nb.de abrufbar. © Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Jede Verwertung, die nicht ausdrücklich vom Urheberrechtsgesetz zugelassen ist, bedarf der vorherigen Zustimmung des Verlags. Das gilt insbesondere für Vervielfältigungen, Bearbeitungen, Übersetzungen, Mikroverfilmungen und die Einspeicherung und Verarbeitung in elektronischen Systemen. Die Wiedergabe von allgemein beschreibenden Bezeichnungen, Marken, Unternehmensnamen etc. in diesem Werk bedeutet nicht, dass diese frei durch jedermann benutzt werden dürfen. Die Berechtigung zur Benutzung unterliegt, auch ohne gesonderten Hinweis hierzu, den Regeln des Markenrechts. Die Rechte des jeweiligen Zeicheninhabers sind zu beachten. Der Verlag, die Autoren und die Herausgeber gehen davon aus, dass die Angaben und Informationen in diesem Werk zum Zeitpunkt der Veröffentlichung vollständig und korrekt sind. Weder der Verlag, noch die Autoren oder die Herausgeber übernehmen, ausdrücklich oder implizit, Gewähr für den Inhalt des Werkes, etwaige Fehler oder Äußerungen. Der Verlag bleibt im Hinblick auf geografische Zuordnungen und Gebietsbezeichnungen in veröffentlichten Karten und Institutionsadressen neutral. Springer Gabler ist ein Imprint der eingetragenen Gesellschaft Springer-Verlag GmbH, DE und ist ein Teil von Springer Nature. Die Anschrift der Gesellschaft ist: Heidelberger Platz 3, 14197 Berlin, Germany

F¨ur Eva und Marit – ich hoffe, Ihr habt genauso viel Spaß beim Lesen wie ich beim Schreiben

Vorwort

Das vorliegende Buch basiert zu Teilen auf Inhalten von Vorlesungen, die ich im Bereich Operations Research und quantitativer Planung in Produktion und Logistik gehalten habe. Im Detailgrad geht es allerdings (zum Teil weit) u¨ ber diese Vorlesungen hinaus. In meinem eigenen Studium fehlte mir ein Buch, wie das vorliegende eins sein soll. Ohne eine fundierte mathematische Ausbildung war es mir kaum m¨oglich, die mathematische Literatur, die die von mir gew¨unschte Pr¨azision zu den jeweiligen Themen mitbrachte, zu durchdringen. Umgekehrt fehlte der nat¨urlichsprachig abgefassten Literatur h¨aufig genau dieser Grad an Pr¨azision, wom¨oglich aus rein didaktischen Gr¨unden oder weil die nat¨urliche Sprache oft einfach eine gewisse Unsch¨arfe mit sich bringt. Dieses Buch unternimmt nun also den Versuch, Konzepte und Prozeduren pr¨azise und rigide zu erl¨autern und zu analysieren. Hierbei soll es in Transparenz und Pr¨azision der mathematischen Literatur zu denselben Themen zumindest nahe kommen, gleichzeitig aber m¨oglichst nat¨urlichsprachig gehalten und mit intuitiven Erl¨auterungen und Abbildungen angereichert sein. Mir ist bewusst, dass die Texte trotz (oder gerade wegen) Verwendung der nat¨urlichen Sprache streckenweise sperrig und komplex sind. Dies ist aber bei der Komplexit¨at der behandelten Materie und der gew¨unschten Pr¨azision nicht zu verhindern (zumindest ist es mir nicht gelungen). Das Buch unternimmt insbesondere nicht den Versuch, die bestehende mathematische Literatur oder die intuitiv gehaltene, nat¨urlichsprachig abgefasste Literatur in ihren jeweiligen Dom¨anen zu u¨ bertreffen. Ebenso wenig erhebt es den Anspruch, komplizierte Sachverhalte so zu erl¨autern, dass es dem Leser bzw. der Leserin ohne M¨uhe oder Aufwand m¨oglich ist, zu folgen. Es wird nur wenigen Lesern gelingen, das ganze Buch oder zumindest Abschnitte ein einziges Mal fl¨ussig durchzulesen und die Inhalte dabei in voller Tiefe zu erfassen. Das Durchdringen der Inhalte erfordert eine intensive Besch¨aftigung mit der Materie. Dies kann das Buch dem Leser leider nicht abnehmen. Es soll aber hilfreiche Erl¨auterungen und hinreichend veranschaulichende Beispiele und Abbildungen liefern, um den Leser bestm¨oglich dabei zu unterst¨utzen.

viii

Vorwort

Es w¨urde mich sehr wundern, wenn sich nicht trotz intensiver Bem¨uhungen vereinzelte Fehler eingeschlichen haben. Diese sind zwar hoffentlich eher kosmetischer Natur, aber ich w¨are f¨ur jeden Hinweis (am besten per Email) dankbar. F¨ur den Fall, dass es mir trotz aller guten Absichten nicht gelungen sein sollte, die formalen Konzepte anschaulich darzustellen, habe ich mir Unterst¨utzung von meiner Tochter (6 Jahre) geholt. Sie hat es sich nicht nehmen lassen, ihr Verst¨andnis wesentlicher graphentheoretischer Konzepte (siehe Kapitel 5) auf der folgenden Seite zu illustrieren. Vielleicht helfen diese Darstellungen, wo meine eigenen Erl¨auterungen scheitern. Wuppertal, November 2019

Dirk Briskorn

Matching

Blume

Stiel

Bl¨ute

Weg (und Pfad)

Fluss

Baum

Danksagung

Wief¨urvieleB¨uchergiltauchf¨urdieses,dassderAutorzwarderUrheberist,er aber Unterst¨utzung von etlichen anderen Personen erhalten hat. Ohne diese Unterst¨utzung w¨are das Buch vermutlich niemals fertiggestellt worden. Die GedankenundIdeen,dieindieErl¨auterungenimBuchflossen,wurdendurchunz¨ahlige Diskussionengesch¨arft,sodasseinanderes,mitSicherheitschlechteres,Buchentstandenw¨are,wenndieUnterst¨utzungeinerderimfolgendengenanntenPersonen gefehlth¨atte. Ichm¨ochtedahereinerReihevonPersonen,insbesonderedenimFolgendenaufgef¨uhrten,danken.FrauDr.JennyNossackhatschonganzzuBeginngeholfen,die Ideef¨urdasBuchzugestalten,undhatzudemTeiledesBuchsKorrekturgelesen. HerrProf.Dr.StefanBockhatoftundlangef¨urDiskussionenzurVerf¨ugung gestanden.Diesgiltauchf¨urHerrnSaschaD¨uerkop,derdasBuchzudemKorrektur gelesen hat. Herr Klaus Keller, Frau Sabine Sch¨afer und Frau Jana Sch¨utz haben dieUmsetzungderAbbildungenu¨ bernommen.LetzterebeidenundFrauLenaRotfußsowiedieHerrenDr.MichaelDienstknecht,MarcelSchmickerath,Dr.Stefan Schwerdfeger,Dr.BartVangervenundDr.LennartZeyhabendasBuch(zumTeil mehrfach)Korrekturgelesen.

Inhaltsverzeichnis

Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvii Tabellenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii Problemverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxv Modellverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxvii Algorithmenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxi ¨ Abkurzungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiii Symbolverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv 1

Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Operations Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Probleme und L¨osungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Verfahren und Algorithmen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.1 Definition und Klassifikation . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3.2 Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

1 1 4 10 10 11 12

2

Modellierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.1 Definitionen und Darstellungsformen . . . . . . . . . . . . . . . . . . . 2.2.2 Spezielle Strukturen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3 Mathematische Optimierungsmodelle . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1.1 Parameter und Variablen . . . . . . . . . . . . . . . . . . . . . . 2.3.1.2 Nebenbedingungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.1.3 Zielfunktion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

15 15 17 17 23 27 28 28 30 34

xiv

Inhaltsverzeichnis

2.3.1.4 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Lineare Modelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2.1 Bedingte Werte von Variablen . . . . . . . . . . . . . . . . . . 2.3.2.2 Abschnittsweise lineare Zielfunktionen . . . . . . . . . . 2.3.2.3 Logische Verkn¨upfungen von Nebenbedingungen . 2.3.2.4 Modellierung von Ganzzahligkeit mit kontinuierlichen Variablen . . . . . . . . . . . . . . . . . . . . 2.3.2.5 Eliminierung verzichtbarer L¨osungen . . . . . . . . . . . Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3.2

35 44 45 52 56 65 73 83

3

Lineare Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 3.1 Standardform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 3.2 LPs mit zwei Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3.2.1 Grafische Darstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 3.2.2 Grafische L¨osung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 3.2.3 Rechnerische L¨osung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 3.3 Simplex-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 3.3.1 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 3.3.2 Standard Simplex Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 3.3.2.1 Iteratives L¨osen linearer Gleichungssysteme . . . . . 109 3.3.2.2 Simplextableau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 3.3.2.3 Basiswechsel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 3.3.2.4 Ablauf des Verfahrens und Analyse . . . . . . . . . . . . . 123 3.3.3 M-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 3.4 Dualit¨at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 3.5 Sensitivit¨atsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 3.5.1 Ver¨anderung der RHS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 3.5.2 Ver¨anderung der Zielfunktionskoeffizienten . . . . . . . . . . . . . . 155 3.5.3 Ver¨anderung der Matrix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157 3.5.3.1 Entfallen einer Variablen . . . . . . . . . . . . . . . . . . . . . . 157 ¨ 3.5.3.2 Andern einer Spalte . . . . . . . . . . . . . . . . . . . . . . . . . . 160 3.5.3.3 Erg¨anzen einer Variablen . . . . . . . . . . . . . . . . . . . . . . 161 3.6 Spaltengenerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

4

Kombinatorische und (Gemischt-)Ganzzahlige Optimierung . . . . . . . . 175 4.1 Kombinatorische Optimierungsprobleme, IPs und MIPs . . . . . . . . . . 176 4.2 Branch & Bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 4.2.1 Generelle Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 4.2.2 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 4.2.2.1 Relaxationsvorschrift . . . . . . . . . . . . . . . . . . . . . . . . . 187 4.2.2.2 Aufteilung des Teilraums . . . . . . . . . . . . . . . . . . . . . 196 4.2.2.3 Knotenreihenfolge . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 4.2.2.4 Heuristik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 4.2.3 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208

Inhaltsverzeichnis

xv

4.2.3.1 Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208 4.2.3.2 Tourenplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212 4.3 Schnittebenenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 4.3.1 Generelle Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 217 4.3.2 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220 4.3.2.1 Relaxationsvorschrift . . . . . . . . . . . . . . . . . . . . . . . . . 221 4.3.2.2 Schnittebenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222 4.3.2.3 Auswahl der Schnittebene . . . . . . . . . . . . . . . . . . . . . 227 4.3.3 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 4.3.3.1 Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 4.3.3.2 Tourenplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 235 4.4 Dynamische Programmierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 238 4.4.1 Generelle Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 4.4.2 Komponenten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243 4.4.2.1 Darstellung des Problems als Sequenz von Entscheidungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244 4.4.2.2 Zust¨ande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 246 ¨ 4.4.2.3 Uberg¨ ange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 249 4.4.2.4 Bewertungsfunktionen und Bellmann-Gleichung . . 255 4.4.2.5 Bewertungen und Bestimmung einer optimalen L¨osung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 260 4.4.3 Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 4.4.3.1 K¨urzester Weg in einem gerichteten kreisfreien Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263 4.4.3.2 Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 4.4.3.3 Tourenplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267 4.5 Kombinationen von L¨osungsprinzipien . . . . . . . . . . . . . . . . . . . . . . . . 270 4.5.1 Branch & Cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270 4.5.1.1 Generelle Vorgehensweise . . . . . . . . . . . . . . . . . . . . . 270 4.5.1.2 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 4.5.2 Branch & Price . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 278 4.5.2.1 Generelle Vorgehensweise . . . . . . . . . . . . . . . . . . . . . 278 4.5.2.2 Beispiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289 5

Graphentheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291 5.1 K¨urzeste Wege (und Pfade) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292 5.1.1 Nicht-negative Kantenl¨angen . . . . . . . . . . . . . . . . . . . . . . . . . . 293 5.1.2 Allgemeine Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299 5.2 Minimale Spannb¨aume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 5.3 Matchings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312 5.3.1 Bipartite Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 318 5.3.1.1 Matchings maximaler Kardinalit¨at . . . . . . . . . . . . . . 318 5.3.1.2 Matchings maximalen Gewichts . . . . . . . . . . . . . . . . 324 5.3.2 Allgemeine Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 336

xvi

Inhaltsverzeichnis

5.3.2.1 Matchings maximaler Kardinalit¨at . . . . . . . . . . . . . . 336 5.3.2.2 Matchings maximalen Gewichts . . . . . . . . . . . . . . . . 352 5.4 Fl¨usse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 372 5.4.1 Maximale Fl¨usse und Minimale Schnitte . . . . . . . . . . . . . . . . . 379 5.4.2 Fl¨usse minimaler Kosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 5.4.2.1 Eliminierung negativer Kreise . . . . . . . . . . . . . . . . . 390 5.4.2.2 Versenden entlang kostenminimaler Wege . . . . . . . 395 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400 A

Lineare Optimierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 A.1 Beweis zu Theorem 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 403 A.2 Beweis zu Theorem 3.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 405 A.3 Hinreichende Bedingung f¨ur Optimalit¨at . . . . . . . . . . . . . . . . . . . . . . . 407 A.4 Duales LP zum dualen LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 A.5 Starker Dualit¨atssatz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 A.6 Komplement¨arer Schlupf . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 411

B

Kombinatorische und (Gemischt-)Ganzzahlige Optimierung . . . . . . . . 413 B.1 Ein Verfahren f¨ur 1-B¨aume mit minimaler gesamter Kantenl¨ange . . 413 B.2 Beweis zu Eigenschaft 4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414 B.3 Branch & Bound-Verfahren f¨ur Tourenplanung . . . . . . . . . . . . . . . . . . 415 B.4 Schnittebenenverfahren f¨ur IPs mit Optimalit¨atsgarantie . . . . . . . . . . 420 B.5 Schnittebenen f¨ur MIPs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 429 B.6 Paare von Zeilen des MIP zur Aufteilung des Teilraums in B&P-Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 431

C

Graphentheorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 C.1 Korrektheit von Algorithmus 5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 C.2 Korrektheit von Algorithmus 5.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433 C.3 Beweis zu Theorem 5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435 C.4 Korrektheit von Algorithmus 5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 437 C.5 Beweis zu Theorem 5.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 C.6 Korrektheit von Algorithmus 5.5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 440 C.7 Beweis zu Theorem 5.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 442 C.8 Korrektheit von Algorithmus 5.8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 444 C.9 Beweis zu Theorem 5.12 per LP-Dualit¨at . . . . . . . . . . . . . . . . . . . . . . . 446 C.10 Korrektheit von Algorithmus 5.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 C.11 Beweis zu Theorem 5.14 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 452 C.12 Korrektheit von Algorithmus 5.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 461 C.13 Beweis zu Theorem 5.16 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 462 C.14 Korrektheit von Algorithmus 5.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465

Sachverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467

Abbildungsverzeichnis

1.1

Vorgehen bei der Entscheidungsunterst¨utzung . . . . . . . . . . . . . . . . . .

2

2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20

Darstellung eines (ungerichteten) Graphen Gu . . . . . . . . . . . . . . . . . Darstellung eines gerichteten Graphen Gg . . . . . . . . . . . . . . . . . . . . . Gewichteter (ungerichteter) Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . Gewichteter (ungerichteter) Graph mit Knotengewichten . . . . . . . . Weg und Pfad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kreis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Baum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ein bipartiter Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Derselbe bipartite Graph wie in Abb. 2.8 . . . . . . . . . . . . . . . . . . . . . . Subtouren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Strafkosten Just-in-Time-Prozess . . . . . . . . . . . . . . . . . . . . . . . . . . . . Emission eines Frachtschiffs pro Kilometer . . . . . . . . . . . . . . . . . . . . Stetige, konkave und abschnittsweise lineare Zielfunktion . . . . . . . Beliebige stetige und abschnittsweise lineare Zielfunktion . . . . . . . Mengen zul¨assiger und optimaler L¨osungen verschiedener MOs . . Instanz des Transportproblems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instanz des kostenminimalen Netzwerkflusses . . . . . . . . . . . . . . . . . Instanz des maximalen Flusses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mengen zul¨assiger und optimaler L¨osungen verschiedener MOs . . Reduktion von Symmetrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19 19 22 23 24 25 25 26 27 34 52 53 53 55 66 68 69 71 72 78

3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8

Grafische Repr¨asentation von Modell 3.9 . . . . . . . . . . . . . . . . . . . . . 93 Grafische Repr¨asentation eines unzul¨assigen LPs . . . . . . . . . . . . . . . 97 Grafische L¨osung bei genau einer optimalen L¨osung . . . . . . . . . . . . 98 Grafische L¨osung bei mehreren optimalen L¨osungen . . . . . . . . . . . . 99 Grafische L¨osung bei unbeschr¨anktem LP . . . . . . . . . . . . . . . . . . . . . 100 Grafische Repr¨asentation von Modell 3.9 . . . . . . . . . . . . . . . . . . . . . 101 Beschr¨anktes LP, dominante Teilmenge von zul¨assigen L¨osungen . 103 Zul¨assige L¨osungen, optimale L¨osungen und Eckpunkte . . . . . . . . . 103

xviii

3.9 3.10 3.11 3.12 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 4.14 4.15 4.16 4.17 4.18 4.19 4.20 4.21 4.22 4.23 4.24 4.25 4.26 4.27 4.28 4.29 4.30 5.1 5.2

Abbildungsverzeichnis

Linear abh¨angige Vektoren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 Eckpunkte und Basen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 Grafische Repr¨asentation von Modell 3.9 bei Reduktion der zweiten Kapazit¨at . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 Grafische Repr¨asentation von Modell 3.9 bei Entfallen einzelner Variablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 Teile und Herrsche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180 Ablauf im Baumdiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Mengen zul¨assiger und optimaler L¨osungen von I und I  . . . . . . . . . 184 LP-Relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190 Unbeschr¨ankte LP-Relaxationen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191 Tour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 1-Baum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 195 Ablauf im Baumdiagramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202 Branch & Bound f¨ur Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 Branch & Bound f¨ur Knapsack mit g¨ultigen Ungleichungen . . . . . . 211 Instanz des Problems 1.2 (Tourenplanung) . . . . . . . . . . . . . . . . . . . . 213 Branch & Bound f¨ur Tourenplanung . . . . . . . . . . . . . . . . . . . . . . . . . . 214 Prinzip des Schnittebenenverfahrens . . . . . . . . . . . . . . . . . . . . . . . . . . 218 Bewertung von Schnittebenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228 Optimale L¨osung der ersten Relaxation im Schnittebenenverfahren 236 Optimale L¨osung der zweiten Relaxation im Schnittebenenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 237 Optimale L¨osung der dritten Relaxation im Schnittebenenverfahren237 Gerichteter kreisfreier Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 239 Prinzip der Dynamischen Programmierung . . . . . . . . . . . . . . . . . . . . 242 Netzwerkdarstellung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 250 Netzwerkdarstellung zu der Instanz in Abb. 4.18 . . . . . . . . . . . . . . . 251 Netzwerkdarstellung zu der Instanz in Beispiel 4.1 (Seite 209) . . . . 252 Netzwerkdarstellung zu der Instanz des Problems 1.2 (Tourenplanung) in Abb. 4.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 Prinzip der DP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 261 Netzwerkdarstellung und Bewertungen zu der Instanz in Abb. 4.18 264 Netzwerkdarstellung und Bewertungen zu der Instanz in Beispiel 4.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266 Netzwerkdarstellung und Bewertungen zu der Instanz in Beispiel 4.11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269 Teile und Herrsche mit B&C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271 Branch & Cut f¨ur Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276 Branch & Price f¨ur bin¨ares 1-dimensionales Zuschnittproblem . . . . 285 Beispiel zu Wegen, Pfaden und deren L¨angen . . . . . . . . . . . . . . . . . . 293 Instanz von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen) mit nicht-negativen Kantengewichten . . . . . . . . . . . . . . . . 296

Abbildungsverzeichnis

5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11 5.12 5.13 5.14 5.15 5.16 5.17 5.18 5.19 5.20 5.21 5.22 5.23 5.24 5.25 5.26 5.27 5.28 5.29 5.30 5.31 5.32 5.33 5.34 5.35 5.36 5.37 5.38 5.39 5.40

xix

K¨urzeste bisher gefundene Wege nach Iteration 1 . . . . . . . . . . . . . . . 297 K¨urzeste bisher gefundene Wege nach Iteration 2 . . . . . . . . . . . . . . . 297 K¨urzeste bisher gefundene Wege nach Iteration 3 . . . . . . . . . . . . . . . 298 K¨urzeste bisher gefundene Wege nach Iteration 4 . . . . . . . . . . . . . . . 298 K¨urzeste bisher gefundene Wege nach Iteration 5 . . . . . . . . . . . . . . . 298 K¨urzeste bisher gefundene Wege nach Iteration 6 . . . . . . . . . . . . . . . 299 Instanz von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 300 Instanz von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303 Instanz von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307 Graph und Spannbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 Instanz von Problem 5.2 (Minimaler Spannbaum) . . . . . . . . . . . . . . 310 Kanten in E  und noch verf¨ugbare Kanten nach Iteration 1 . . . . . . . 311 Kanten in E  und noch verf¨ugbare Kanten nach Iteration 5 . . . . . . . 311 Kanten in E  und noch verf¨ugbare Kanten nach Iteration 9 . . . . . . . 312 Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Perfektes Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313 Perfektes Matching mit Gewichten . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Instanz von Problem 5.3 (Matching maximaler Kardinalit¨at) und Matching M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 316 Zweites Matching M  zur Instanz in Abb. 5.20 . . . . . . . . . . . . . . . . . 316 Vergr¨oßernder Pfad f¨ur G und M  . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317 Drittes Matching M  zur Instanz in Abb. 5.20 . . . . . . . . . . . . . . . . . . 317 Graph G und Matching M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 320 Markierungen der Knoten nach Schritt 1. . . . . . . . . . . . . . . . . . . . . . . 320 Pfade und Markierungen zu Matching M in Abb. 5.24 nach der ersten Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321 Pfade und Markierungen zu Matching M in Abb. 5.24 nach der zweiten Iteration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Pfade zu Matching M in Abb. 5.24 . . . . . . . . . . . . . . . . . . . . . . . . . . . 322 Zweites Matching M  zur Instanz in Abb. 5.20 . . . . . . . . . . . . . . . . . 323 Pfade zu Matching M  in Abb. 5.29 . . . . . . . . . . . . . . . . . . . . . . . . . . 323 Drittes Matching M  zur Instanz in Abb. 5.20 . . . . . . . . . . . . . . . . . . 324 Instanz von Problem 5.4 (Matching maximalen Gewichts) in bipartiten Graphen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 329 Pfade in Iteration 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Matching nach Iteration 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 330 Pfade in Iteration 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Pfade in Iteration 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 331 Matching nach Iteration 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 Pfade in Iteration 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 332 Pfade in Iteration 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333 Matching nach Iteration 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 333

xx

Abbildungsverzeichnis

5.41 5.42 5.43 5.44 5.45 5.46 5.47 5.48 5.49 5.50 5.51 5.52 5.53 5.54 5.55 5.56 5.57 5.58 5.59 5.60 5.61 5.62 5.63 5.64 5.65 5.66 5.67 5.68 5.69 5.70 5.71 5.72 5.73 5.74 5.75 5.76 5.77 5.78 5.79 5.80 5.81 5.82 5.83 5.84 5.85

Pfade in Iteration 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 Pfade in Iteration 7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334 Pfad von s(v) zu u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 Vergr¨oßernder Pfad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 338 Blume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339 Noch eine Blume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 340 Geschrumpfte Bl¨ute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 342 Graph G und Matching M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346 Erste Blume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 347 Geschrumpfter Graph G und Matching M  . . . . . . . . . . . . . . . . . . . . 347 ¨ Ubernommene Markierungen und Pfade f¨ur G . . . . . . . . . . . . . . . . . 348 Zweite Blume . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 348 Geschrumpfter Graph G und Matching M  . . . . . . . . . . . . . . . . . . . 349 ¨ Ubernommene Markierungen und Pfade f¨ur G . . . . . . . . . . . . . . . . 349 Vergr¨oßernder Pfad f¨ur G und M  . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 Vergr¨oßernder Pfad f¨ur G und M . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 350 Matching M  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Gefundene Pfade und Markierungen f¨ur G und M  . . . . . . . . . . . . . 351 Matching M ∗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 351 Gefundene Pfade und Markierungen f¨ur G und M ∗ . . . . . . . . . . . . . 352 Instanz von Problem 5.4 (Matching maximalen Gewichts) . . . . . . . 359 Vergr¨oßernder Pfad nach erster Ausf¨uhrung von Schritt 4. . . . . . . . 361 Matching nach erster Ausf¨uhrung von Schritt 4. (erste Phase) . . . . 362 Bl¨ute nach zweiter Ausf¨uhrung von Schritt 4. . . . . . . . . . . . . . . . . . . 362 Geschrumpfter Graph und geschrumpftes Matching . . . . . . . . . . . . . 363 Pfade nach dritter Ausf¨uhrung von Schritt 4. . . . . . . . . . . . . . . . . . . . 363 Vergr¨oßernder Pfad nach vierter Ausf¨uhrung von Schritt 4. . . . . . . . 364 Matching nach vierter Ausf¨uhrung von Schritt 4. (zweite Phase) . . 364 Pfade nach f¨unfter Ausf¨uhrung von Schritt 4. . . . . . . . . . . . . . . . . . . 365 Graph mit interpretierter Bl¨ute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 365 Vergr¨oßernder Pfad nach siebter Ausf¨uhrung von Schritt 4. . . . . . . 366 Matching nach siebter Ausf¨uhrung von Schritt 4. (dritte Phase) . . . 366 Vergr¨oßernder Pfad nach achter Ausf¨uhrung von Schritt 4. . . . . . . . 367 Matching nach achter Ausf¨uhrung von Schritt 4. (vierte Phase) . . . 367 Pfade nach neunter Ausf¨uhrung von Schritt 4. . . . . . . . . . . . . . . . . . . 368 Vergr¨oßernder Pfad nach zehnter Ausf¨uhrung von Schritt 4. . . . . . . 368 Matching nach zehnter Ausf¨uhrung von Schritt 4. (f¨unfte Phase) . . 369 Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 373 Fluss in Flussnetzwerk F in Abb. 5.78 . . . . . . . . . . . . . . . . . . . . . . . . 374 Residualgraph Gr (F, f ) f¨ur F und f in Abb. 5.79 . . . . . . . . . . . . . . . 377 Fluss f  in Flussnetzwerk F in Abb. 5.78 . . . . . . . . . . . . . . . . . . . . . . 379 Flussnetzwerk F einer Instanz von Problem 5.5 (Maximaler Fluss) 383 Residualgraph Gr (F, f 0 ) mit wertsteigerndem Pfad P1 . . . . . . . . . . 383 Fluss f 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 Residualgraph Gr (F, f 1 ) mit wertsteigerndem Pfad P2 . . . . . . . . . . 384

Abbildungsverzeichnis

xxi

5.86 5.87 5.88 5.89 5.90 5.91 5.92 5.93 5.94 5.95 5.96 5.97 5.98 5.99 5.100 5.101 5.102 5.103 5.104 5.105 5.106 5.107 5.108 5.109 5.110 5.111

Fluss f 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 384 Residualgraph Gr (F, f 2 ) mit wertsteigerndem Pfad P3 . . . . . . . . . . 385 Fluss f 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 385 Residualgraph Gr (F, f 3 ) mit wertsteigerndem Pfad P4 . . . . . . . . . . 386 Fluss f 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 386 Residualgraph Gr (F, f 4 ) mit wertsteigerndem Pfad P5 . . . . . . . . . . 386 Fluss f 5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 Residualgraph Gr (F, f 5 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 387 Super-Quelle und Super-Senke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 388 Fluss f 0 in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 391 Residualgraph Gr (F, f 0 ) und Kreis negativer Kosten . . . . . . . . . . . . 391 Fluss f 1 in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 392 Residualgraph Gr (F, f 1 ) und Kreis negativer Kosten . . . . . . . . . . . . 392 Fluss f 2 in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 Residualgraph Gr (F, f 2 ) und Kreis negativer Kosten . . . . . . . . . . . . 393 Fluss f 3 in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 393 Residualgraph Gr (F, f 3 ) und Kreis negativer Kosten . . . . . . . . . . . . 394 Fluss f 4 in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 Residualgraph Gr (F, f 4 ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 394 Fluss f 0 in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397 Residualgraph Gr (F, f 0 ) und kostenminimaler Weg P1 . . . . . . . . . . 398 Fluss f 1 in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 398 Residualgraph Gr (F, f 1 ) und kostenminimaler Weg P2 . . . . . . . . . . 399 Fluss f 2 in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 399 Residualgraph Gr (F, f 2 ) und kostenminimaler Weg P3 . . . . . . . . . . 399 Fluss f 3 in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 400

A.1 A.2

Zul¨assige L¨osungen, optimale L¨osungen und zul¨assige Eckpunkte 405 Illustration zum Beweis von Theorem 3.2 . . . . . . . . . . . . . . . . . . . . . 407

B.1 B.2 B.3 B.4 B.5 B.6 B.7 B.8 B.9 B.10 B.11 B.12 B.13 B.14 B.15

Knoten 1 bis 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Knoten 4 bis 6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Knoten 7 bis 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Knoten 10 bis 12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 416 Knoten 13 bis 15 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Knoten 16 bis 18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Knoten 19 bis 21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Knoten 22 bis 24 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417 Knoten 25 bis 27 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 Knoten 28 bis 30 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 Knoten 31 bis 33 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 Knoten 34 bis 36 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 418 Knoten 37 bis 39 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 Knoten 40 bis 42 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 Knoten 43 bis 45 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419

xxii

Abbildungsverzeichnis

B.16 B.17

Knoten 46 bis 48 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 419 L¨osungsbaum und Schnittebenen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 427

C.1 C.2 C.3 C.4 C.5 C.6 C.7 C.8 C.9 C.10 C.11 C.12 C.13

Nicht-einfacher Kreis C negativer L¨ange . . . . . . . . . . . . . . . . . . . . . . 437 Durch Algorithmus 5.3 ermittelter Spannbaum E  . . . . . . . . . . . . . . 438 Minimaler Spannbaum E ∗ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 Graph (V, E  ∪ {e∗ }) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 439 Zwei Matchings und ein vergr¨oßernder Pfad . . . . . . . . . . . . . . . . . . . 440 Instanz und Matching . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 Pfade zu Matching in Abb. C.6 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 441 Vergr¨oßernde Pfade mit u und u nicht im Stiel . . . . . . . . . . . . . . . . . 444 Vergr¨oßernde Pfade nach Schrumpfen der Bl¨ute in Abb. C.8 . . . . . 444 Vergr¨oßernde Pfade mit u oder u im Stiel . . . . . . . . . . . . . . . . . . . . . 445 Vergr¨oßernde Pfade nach Schrumpfen der Bl¨ute in Abb. C.10 . . . . 445 Ausgangssituation f¨ur Modifikation im Beweis zu Theorem 5.12 . . 449 Absch¨atzung, in der βi, j um δ verringert wird, im Beweis zu Theorem 5.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 Absch¨atzung, in der βi, j um δ vergr¨oßert wird, im Beweis zu Theorem 5.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 450 Neue optimale L¨osung nach Modifikation im Beweis zu Theorem 5.12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 451 Fluss f in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 Fluss f  in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 454 Zirkulation f − f  in F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 455 Zirkulation f − f  als Fluss in Gr (F, f  ) . . . . . . . . . . . . . . . . . . . . . . . 455 Zirkulation z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 457 Zirkulation z . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 458 Fluss f in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 Fluss f ∗ in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459 Zirkulation f ∗ − f . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 460 Residualgraph Gr (F, f ) f¨ur F und f in Abb. C.22 . . . . . . . . . . . . . . . 460 Residualgraph Gr (F, f ∗ ) f¨ur F und f ∗ in Abb. C.23 . . . . . . . . . . . . . 461 Fluss f in Flussnetzwerk F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 463 Fluss f¯ in Flussnetzwerk F¯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 464

C.14 C.15 C.16 C.17 C.18 C.19 C.20 C.21 C.22 C.23 C.24 C.25 C.26 C.27 C.28

Tabellenverzeichnis

2.1 2.2 2.3 2.4

Adjazenzmatrix von Gu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Adjazenzmatrix von Gg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inzidenzmatrix von Gu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Inzidenzmatrix von Gg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.1

Regelwerk zum Ableiten des dualen LPs . . . . . . . . . . . . . . . . . . . . . . 147

4.1 4.2

Ablauf bei Tiefensuche mit linkem Kinderknoten zuerst untersucht 203 Ablauf bei Tiefensuche mit rechtem Kinderknoten zuerst untersucht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204 Ablauf bei Breitensuche von links nach rechts . . . . . . . . . . . . . . . . . 205 Ablauf bei Bestensuche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207 Branch & Bound f¨ur Tourenplanung (Teil 1) . . . . . . . . . . . . . . . . . . . 215 Branch & Bound f¨ur Tourenplanung (Teil 2) . . . . . . . . . . . . . . . . . . . 216

4.3 4.4 4.5 4.6 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 5.11

20 20 21 21

Ablauf von Algorithmus 5.1 f¨ur die Instanz in Abb. 5.2 . . . . . . . . . . 297 Initialisierung durch Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 . 303 Werte nach erster und zweiter Iteration von Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Werte nach dritter Iteration von Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Werte nach vierter Iteration von Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304 Werte nach f¨unfter Iteration von Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 K¨urzeste durch Algorithmus 5.2 gefundene Wege f¨ur die Instanz in Abb. 5.10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305 Ergebnis von Algorithmus 5.2 f¨ur die Instanz in Abb. 5.11 . . . . . . . 307 Ablauf von Algorithmus 5.3 f¨ur die Instanz in Abb. 5.13 . . . . . . . . . 310 Ablauf von Algorithmus 5.6 f¨ur die Instanz in Abb. 5.32 . . . . . . . . . 329 Ablauf von Algorithmus 5.9 f¨ur die Instanz in Abb. 5.61 . . . . . . . . . 360

Problemverzeichnis

Problem 1.1 Produktionsplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Problem 1.2 Tourenplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Problem 1.3 Tourenplanung (Entscheidungsproblem) . . . . . . . . . . . . . . . . . . . . . Problem 2.1 Problem 2.2 Problem 2.3 Problem 2.4 Problem 2.5 Problem 2.6 Problem 2.7 Problem 2.8 Problem 2.9

Produktionsplanung 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Standortplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fließbandplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Projektplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Quadratisches Zuordnungsproblem . . . . . . . . . . . . . . . . . . . . . . . . . Transportproblem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Kostenminimaler Netzwerkfluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . Maximaler Fluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Bearbeitung auf parallelen Maschinen . . . . . . . . . . . . . . . . . . . . . . .

6 7 7 32 38 39 41 43 67 69 70 76

Problem 3.1 Kleinste obere Schranke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 Problem 3.2 1-dimensionales Zuschnittproblem . . . . . . . . . . . . . . . . . . . . . . . . . . 164 Problem 3.3 Pricing Problem zu Modell 3.26 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Problem 4.1 Knapsack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Problem 1.2 Tourenplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 Problem 4.2 K¨urzester Weg in einem gerichteten kreisfreien Graphen . . . . . . . 238 Problem 5.1 Problem 5.2 Problem 5.3 Problem 5.4 Problem 5.5 Problem 5.6 Problem 5.7

K¨urzester Weg in einem gerichteten Graphen . . . . . . . . . . . . . . . . . 293 Minimaler Spannbaum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308 Matching maximaler Kardinalit¨at . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Matching maximalen Gewichts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 314 Maximaler Fluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 380 Minimaler Schnitt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 381 Fluss minimaler Kosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 389

Problem B.1 Minimaler 1-Baum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 413

Modellverzeichnis

Modell 2.1 Modell 2.2 Modell 2.3 Modell 2.4 Modell 2.5 Modell 2.6 Modell 2.7 Modell 2.8 Modell 2.9 Modell 2.10 Modell 2.11 Modell 2.12 Modell 2.13 Modell 2.14 Modell 2.15 Modell 2.16 Modell 2.17 Modell 2.18 Modell 2.19 Modell 2.20 Modell 2.21 Modell 2.22 Modell 2.23

Produktionsplanung (Problem 1.1) . . . . . . . . . . . . . . . . . . . . . . . . Produktionsplanung 2 (Problem 2.1) . . . . . . . . . . . . . . . . . . . . . . . Tourenplanung (Problem 1.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Tourenplanung 2 (Problem 1.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . Standortplanung (Problem 2.2) . . . . . . . . . . . . . . . . . . . . . . . . . . . . Fließbandplanung (Problem 2.3) . . . . . . . . . . . . . . . . . . . . . . . . . . Projektplanung (Problem 2.4) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Quadratisches Zuordnungsproblem (Problem 2.5) . . . . . . . . . . . . Standortplanung linear (Problem 2.2) . . . . . . . . . . . . . . . . . . . . . . Fließbandplanung linear (Problem 2.3) . . . . . . . . . . . . . . . . . . . . . Projektplanung linear (Problem 2.4) . . . . . . . . . . . . . . . . . . . . . . . Quadratisches Zuordnungsproblem linear (Problem 2.5) . . . . . . Abschnittsweise lineare, konkave Zielfunktion bei Maximierung Beliebige abschnittsweise lineare Zielfunktion bei Maximierung Oder“-Verkn¨upfung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ” Projektplanung erweitert . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Transportproblem (Problem 2.6) . . . . . . . . . . . . . . . . . . . . . . . . . . Kostenminimaler Netzwerkfluss (Problem 2.7) . . . . . . . . . . . . . . Maximaler Fluss (Problem 2.8) . . . . . . . . . . . . . . . . . . . . . . . . . . . Bearbeitung auf parallelen Maschinen (Problem 2.9) . . . . . . . . . Bearbeitung auf parallelen Maschinen 2 (Problem 2.9) . . . . . . . . Fließbandplanung linear 2 (Problem 2.3) . . . . . . . . . . . . . . . . . . . Bearbeitung auf parallelen Maschinen 3 (Problem 2.9) . . . . . . . .

35 36 36 37 38 39 41 43 49 50 50 51 54 56 57 58 68 70 71 76 81 82 83

Modell 3.1 Modell 3.2 Modell 3.3 Modell 3.4 Modell 3.5 Modell 3.6 Modell 3.7

LP nicht in Standardform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LP ohne Gleichungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . LP mit auschließlich kleiner-gleich“-NB . . . . . . . . . . . . . . . . . . . ” LP ohne Dom¨anebeschr¨ankungen nach oben . . . . . . . . . . . . . . . . LP ohne unbeschr¨ankte Variablen . . . . . . . . . . . . . . . . . . . . . . . . . LP mit ausschließlich nicht-negativen Variablen . . . . . . . . . . . . . LP in Standardform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

88 88 89 89 90 90 91

xxviii

Modell 3.8 Modell 3.9 Modell 3.10 Modell 3.11

Modellverzeichnis

Modell 3.19 Modell 3.20 Modell 3.21 Modell 3.22 Modell 3.23 Modell 3.24 Modell 3.25 Modell 3.26 Modell 3.27 Modell 3.28 Modell 3.29 Modell 3.30 Modell 3.31 Modell 3.32

Generisches LP in Standardform . . . . . . . . . . . . . . . . . . . . . . . . . . 91 Modell zu Beispiel 3.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 Unzul¨assiges LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 Generisches LP in Standardform nach Einf¨ugen von Schlupfvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 Beispiel zu Kreisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 Beispiel zu M-Methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 Beispiel zu M-Methode in Standardform . . . . . . . . . . . . . . . . . . . 133 Beispiel zu M-Methode mit Schlupfvariablen . . . . . . . . . . . . . . . 133 Beispiel zu M-Methode mit Schlupf- und Hilfsvariablen . . . . . . 134 Beispiel zu M-Methode mit negierten Schlupfvariablen . . . . . . . 137 Beispiel zu M-Methode mit Hilfsvariablen und negierten Schlupfvariablen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 Kleinste obere Schranke . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 Unzul¨assiges primales LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Unzul¨assiges duales LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143 Duales Modell zu Modell 3.9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 Beispiel f¨ur primales LP (nicht in Standardform) . . . . . . . . . . . . . 147 Duales LP zu Modell 3.23 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 Substitution von x1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 1-dimensionales Zuschnittproblem (Problem 3.2) . . . . . . . . . . . . 165 Modell zu Pricing Problem 3.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166 Erste Instanz des Pricing Problems 3.3 . . . . . . . . . . . . . . . . . . . . . 167 Zweite Instanz des Pricing Problems 3.3 . . . . . . . . . . . . . . . . . . . . 168 Dritte Instanz des Pricing Problems 3.3 . . . . . . . . . . . . . . . . . . . . . 170 Vierte Instanz des Pricing Problems 3.3 . . . . . . . . . . . . . . . . . . . . 171 F¨unfte Instanz des Pricing Problems 3.3 . . . . . . . . . . . . . . . . . . . . 172

Modell 4.1 Modell 4.2 Modell 4.3 Modell 4.4 Modell 4.5 Modell 4.6 Modell 4.7 Modell 4.8 Modell 4.9 Modell 4.10 Modell 4.11 Modell 4.12

Knapsack (Problem 4.1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177 Modell zu Beispiel 4.2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 230 Bin¨ares 1-dimensionales Zuschnittproblem . . . . . . . . . . . . . . . . . 282 Modell zu (speziellem) Pricing Problem . . . . . . . . . . . . . . . . . . . . 282 Erste Instanz des speziellen Pricing Problems (Modell 4.4) . . . . 283 Zweite Instanz des speziellen Pricing Problems (Modell 4.4) . . . 284 Dritte Instanz des speziellen Pricing Problems (Modell 4.4) . . . 284 Vierte Instanz des speziellen Pricing Problems (Modell 4.4) . . . 285 F¨unfte Instanz des speziellen Pricing Problems (Modell 4.4) . . . 287 Sechste Instanz des speziellen Pricing Problems (Modell 4.4) . . 288 Siebte Instanz des speziellen Pricing Problems (Modell 4.4) . . . 288 Achte Instanz des speziellen Pricing Problems (Modell 4.4) . . . 289

Modell 5.1

Matching maximalen Gewichts in bipartiten Graphen (Problem 5.4 f¨ur bipartite Graphen) . . . . . . . . . . . . . . . . . . . . . . . . 325 Duales Modell zu Modell 5.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325 Matching maximalen Gewichts (Problem 5.4) . . . . . . . . . . . . . . . 353

Modell 3.12 Modell 3.13 Modell 3.14 Modell 3.15 Modell 3.16 Modell 3.17 Modell 3.18

Modell 5.2 Modell 5.3

Modellverzeichnis

xxix

Modell 5.4

Duales Modell zu Modell 5.3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354

Modell A.1 Modell A.2 Modell A.3

Duales LP in Standardform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 409 Duales LP des dualen LP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 410 Duales LP des dualen LP in Standardform . . . . . . . . . . . . . . . . . . 410

Modell C.1 Modell C.2

Maximaler Fluss (Problem 5.5) . . . . . . . . . . . . . . . . . . . . . . . . . . . 446 Duales Modell zu Modell C.1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 447

Algorithmenverzeichnis

Algorithmus 1.1 Algorithmus 1.2

Produktionsplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Tourenplanung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Algorithmus 3.1 Algorithmus 3.2 Algorithmus 3.3 Algorithmus 3.4 Algorithmus 3.5 Algorithmus 3.6

Standardform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 Grafische L¨osung von LPs mit zwei Variablen . . . . . . . . . . . 97 Rechnerische L¨osung von LPs mit zwei Variablen . . . . . . . 104 Simplex-Algorithmus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 Simplex-Algorithmus mit Bland’s Regel . . . . . . . . . . . . . . . 128 Spaltengenerierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

Algorithmus 4.1 Algorithmus 4.2 Algorithmus 4.3 Algorithmus 4.4 Algorithmus 4.5

Teile und Herrsche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 Branch & Bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 Schnittebenenverfahren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 219 Dynamische Programmierung . . . . . . . . . . . . . . . . . . . . . . . . 262 Branch & Cut . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274

Algorithmus 5.1 Algorithmus 5.2 Algorithmus 5.3 Algorithmus 5.4 Algorithmus 5.5 Algorithmus 5.6 Algorithmus 5.7 Algorithmus 5.8 Algorithmus 5.9 Algorithmus 5.10 Algorithmus 5.11 Algorithmus 5.12

Dijkstra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 296 Floyd-Warshall . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 302 Kruskal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309 Matching maximaler Kardinalit¨at . . . . . . . . . . . . . . . . . . . . . 315 Vergr¨oßernde Pfade in bipartiten Graphen . . . . . . . . . . . . . . 319 Matching maximalen Gewichts in bipartiten Graphen . . . . 328 Vergr¨oßernder Pfad f¨ur G und M . . . . . . . . . . . . . . . . . . . . . . 344 Vergr¨oßernde Pfade in Graphen . . . . . . . . . . . . . . . . . . . . . . . 345 Matching maximalen Gewichts . . . . . . . . . . . . . . . . . . . . . . . 358 Ford & Fulkerson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 382 Eliminierung negativer Kreise . . . . . . . . . . . . . . . . . . . . . . . . 390 Kostenminimale Wege . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 397

Algorithmus B.1 Algorithmus B.2 Algorithmus B.3

1-Baum mit minimaler gesamter Kantenl¨ange . . . . . . . . . . . 414 lexikografisch optimale L¨osung eines LP . . . . . . . . . . . . . . . 421 Schnittebenenverfahren mit Optimalit¨atsgarantie . . . . . . . . 422

¨ Abkurzungsverzeichnis

ZB ZS LR B&B B&C B&P BV DP IP LGS LP MIP MO NB NBV OR RHS u.B.d.N.

Zul¨assigkeitsbedingung(en) Zielsetzung L¨osungsraum Branch & Bound Branch & Cut Branch & Price Basisvariablen Dynamische Programmierung Integer Program Lineares Gleichungssystem Linear Program Mixed-Integer Program Mathematisches Optimierungsmodell Nebenbedingung(en) Nichtbasisvariablen Operations Research right-hand-side unter Beachtung der Nebenbedingung(en)

Symbolverzeichnis

∀ n k

Allquantor Binomialkoeffizient

  n k

=

n! k!·(n−k)!





echte Teilmenge

!

Fakult¨atszeichen (n! = 1 · 2 · . . . · n)

x

Gaußklammer (gr¨oßte ganze Zahl mit einem Wert von h¨ochstens x)

x

Gaußklammer (kleinste ganze Zahl mit einem Wert von mindestens x)

×

Kreuzprodukt zweier Mengen

\

Mengendifferenz



Mengenvereinigung



nicht notwendigerweise echte Teilmenge

2X

Potenzmenge der Menge X (Menge aller Teilmengen von X)



Schnittmenge

⎧ ⎪ , wenn x > 0 ⎨1 sgn(x) Signumfunktion sgn(x) = 0 , wenn x = 0 ⎪ ⎩ −1 , wenn x < 0 Summenzeichen (∑ni=1 xi = x1 + . . . + xn ) ∑ ⊂, ⊆ Teilmenge ←

Wertzuweisung

Kapitel 1

Einleitung

Zusammenfassung In der Einleitung werden wir das Feld Operations Research und einige grundlegende Konzepte vorstellen. Hierbei wird die Auffassung von Problemen und L¨osungen, die sich durch das ganze Buch zieht, vorgestellt. Dies soll den Leser insbesondere daf¨ur sensibilisieren, warum und wie wir uns mit den im Buch behandelten Inhalten befassen. Daraus folgt dann auch, dass wir vor allem an Algorithmen zur systematischen Bestimmung von L¨osungen interessiert sind. Auf Algorithmen bzw. Verfahren und deren Darstellung gehen wir abschließend ein. Lernziele Kapitel 1 Sie wissen nach Lesen und Verinnerlichen dieses Kapitels, was Operations Research ist und was wir im weiteren Verlauf des Buches • • • •

unter einem Problem, unter der Antwort zu einem Problem, unter einer L¨osung zu einem Problem und unter einem Verfahren

verstehen. Sie k¨onnen nach Lesen und Verinnerlichen dieses Kapitels eine Problemdefinition lesen, verstehen und selber formulieren.

1.1 Operations Research Tagt¨aglich treffen wir zahlreiche Entscheidungen. Diese Entscheidungen unterscheiden sich in ihrer Bedeutung f¨ur uns und andere Betroffene. Dementsprechend treffen wir manche Entscheidungen eher spontan, w¨ahrend wir andere Entscheidungen sorgf¨altig vorbereiten und viel Wert auf eine systematische Entscheidungsfindung legen. Letzteres ist mitunter in der betrieblichen Praxis der Fall, wo Entscheidungen weitreichende o¨ konomische Folgen haben k¨onnen.

© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 D. Briskorn, Operations Research, https://doi.org/10.1007/978-3-662-60783-1_1

2

1 Einleitung

Abb. 1.1 Vorgehen bei der Entscheidungsunterst¨utzung

Interpretation

Abstraktion

Operations Research (OR) ist ein interdisziplin¨ares Feld, das der systematischen Unterst¨utzung von Entscheidungen dient. OR ist dabei oft gepr¨agt durch ein Zusammenspiel von Mathematik, Wirtschaftswissenschaften und Informatik.1 W¨ahrend der methodische Hintergrund fast immer in der Mathematik oder Informatik zu suchen ist, finden sich Anwendungsbereiche aber nicht ausschließlich in den Wirtschaftswissenschaften, sondern z. B. auch in den Ingenieurwissenschaften2 , wie wir u. a. in Jaluria (2019) und Martin u. a. (2012) erkennen k¨onnen.

Realit¨at Modellwelt

1

2

3

4

5

Optimierungs− ver f ahren

1

2

3

4

5

Das Vorgehen bei der Entscheidungsunterst¨utzung l¨asst sich schematisch wie in Abb. 1.1 dargestellt beschreiben. In der Realit¨at ist eine Entscheidung zu treffen, z. B. muss ein Disponent eine Tourenplanung so vornehmen, dass Lieferungen p¨unktlich zu den Empf¨angern gebracht werden. Die vorliegende Problemstellung mit zahlreichen zu beachtenden Details wird in ein Modell u¨ bertragen. Dieses Modell bildet die Entscheidungssituation allerdings nur vereinfachend ab. Der Fokus liegt dabei auf den Aspekten, die der Entscheider f¨ur wichtig h¨alt. In unserem Beispiel beschr¨ankt man sich dabei wom¨oglich darauf, die Fahrstrecken zwischen den einzelnen Kunden, die Gewichte der Lieferungen und die einzelnen LKWs mit ihren H¨ochstzuladungen zu betrachten. Ignoriert wird dabei z. B. der aktuelle Tankf¨ullstand jedes LKWs, weil bekannt ist, dass eine Tankstelle in der N¨ahe des Depots liegt und die Dauer des Tankvorgangs unerheblich ist. F¨ur diese abstrahierte Problemstellung wird mittels eines quantitativen Verfahrens eine gute oder sogar optimale L¨osung ermittelt. Diese L¨osung gen¨ugt nat¨urlich unmittelbar nur den Anforderungen der abstrahierten Problemstellung. D. h., wir legen wom¨oglich fest, wel1 2

Vgl. Gesellschaft f¨ur Operations Research e.V. (2019) Vgl. Domschke u. a. (2015)

1.1 Operations Research

3

cher LKW in welcher Reihenfolge welche Pakete liefert, aber nicht ob und wann er aufgetankt wird. Daher muss sie noch im Sinne der urspr¨unglichen Problemstellung interpretiert werden. Hier ist es wichtig zu betonen, dass nicht zwangsl¨aufig eine vollautomatisierte Entscheidung angestrebt wird. Vielmehr wird einem oder mehreren menschlichen Entscheidern die generierte L¨osung h¨aufig lediglich als Vorschlag vorgelegt, der gepr¨uft und ggf. modifiziert werden kann. Um solch eine Vorgehensweise zu realisieren sind zwei konstruktive Schritte von zentraler Bedeutung. ¨ • Die Ubersetzung der Problemstellung in der Realit¨at in ein Modell sowie die Interpretation der L¨osung der abstrahierten Problemstellung ist h¨aufig keine triviale Aufgabe. Der Abstraktionsschritt muss zwei Anforderungen erf¨ullen. Zun¨achst muss er die Problemstellung soweit vereinfachen, dass das Resultat mit quantitativen Methoden greif- und l¨osbar ist. Weiterhin darf die Fragestellung nicht soweit vereinfacht werden, dass wesentliche Zusammenh¨ange in der Realit¨at nicht mehr ber¨ucksichtigt werden k¨onnen und somit die Interpretation der L¨osung nutzlos wird. • Die Entwicklung von quantitativen Methoden zur Ableitung einer guten oder optimalen L¨osung aus der abstrahierten Problemstellung kann ebenfalls kompliziert sein. Insbesondere sind h¨aufig Anforderungen an den zeitlichen Aufwand zu beachten, d. h., die L¨osung soll nach einer vorgegebenen Zeitspanne vorliegen. Dies kann prozessbedingt sein oder auf Akzeptanz der Methode durch den Anwender abzielen. Es kann dann passieren, dass naheliegende einfache“ Methoden nicht ” schnell genug eine geeignete L¨osung ermitteln, sodass weniger naheliegende, aber effizientere Methoden entwickelt werden m¨ussen. Beide Schritte k¨onnen erheblichen Arbeitsaufwand verursachen, weshalb diese Vorgehensweise in der Regel nur Anwendung findet, wenn die vorliegenden Entscheidungen eine hinreichende Bedeutung haben und/oder sie wiederholt zu treffen sind. Dies hat u¨ ber die Jahrzehnte zu einem etablierten Repertoire an Modellierungstechniken und Verfahren gef¨uhrt. Mit beiden wird sich dieses Buch auseinandersetzen. Im weiteren Verlauf von Kapitel 1 wollen wir zun¨achst genauer fassen, was wir unter Problemen, L¨osungen, Verfahren und Algorithmen verstehen. In Kapitel 2 werden wir uns mit zwei Modelltypen auseinandersetzen und ab Kapitel 3 werden wir Verfahren zur L¨osung bestimmter Probleme behandeln. Wir werden versuchen, die mathematisch formale Notation so wenig wie m¨oglich zu benutzen. Dennoch werden wir nicht umhinkommen, sie insbesondere bei der Darstellung quantitativer Modelle und bei formalen Beweisen zu verwenden. Am Anfang des Buches findet sich daher ein Symbolverzeichnis, das die Bezeichnung der jeweiligen Symbole ausweist, sodass – sofern n¨otig – die Bedeutung der Symbole in weiterer Literatur, z. B. in Opitz u. a. (2017), nachgeschlagen werden kann. Um die Last f¨ur den Leser, die mit den zum Teil recht komplexen Formulierungen einhergeht, m¨oglichst gering zu halten, finden sich im ganzen Buch immer wieder knappe Zusammenfassung des zuvor gesagten und saloppe Formulierungen eines komplexen Sachverhaltes. Diese werden durch Textboxen hervorgehoben, die wir an dieser Stelle schon einmal zur Veranschaulichung verwenden wollen.

4

1 Einleitung

Zusammenfassung: Operations Research Operations Research ist eine Disziplin der angewandten Mathematik und Informatik zur systematischen L¨osung von betriebswirtschaftlichen oder ingenieurwissenschaftlichen Problemen. Salopp formuliert: Operations Research Im Operations Research werden Entscheidungen berechnet.

1.2 Probleme und L¨osungen In Abschnitt 1.1 haben wir erfahren, dass das zentrale Thema in diesem Buch die Entscheidungsunterst¨utzung unter Verwendung quantitativer Modelle und Verfahren ist. Das Treffen einer Entscheidung k¨onnen wir in der Regel auf das Beantworten einer Frage zur¨uckf¨uhren. Dieser Abschnitt befasst sich haupts¨achlich damit, welche Informationen wir ben¨otigen, um die Frage zu beantworten. Die Frage und die zus¨atzliche Information werden wir dann als Problem bezeichnen, das es zu l¨osen gilt. Der Begriff Problem“ ist in der Alltagssprache besetzt, jedoch gibt es unter” schiedliche Vorstellungen, was genau wir als ein Problem auffassen. Um in diesem Buch eine einheitliche Sichtweise zu verwenden, m¨ussen wir uns wom¨oglich von unserem intuitiven Verst¨andnis l¨osen und eine formalere Auffassung verwenden. Diese Akribie werden wir in diesem Buch immer wieder an den Tag legen, wenn es darum geht, die Ausgangssituation f¨ur eine Schlussfolgerung zu beschreiben. Nur so wird es uns m¨oglich sein, stringent (manche Leute m¨ogen es pedantisch nennen) zwischen korrekten und falschen Schl¨ussen, Aussagen, L¨osungen und – in letzter Konsequenz – Entscheidungen zu differenzieren. Wir werden dabei Begriffe gerade so eng fassen, dass das daraus resultierende Verst¨andnis f¨ur unsere Zwecke ausreicht. An vielen Stellen k¨onnten wir deutlich pr¨aziser werden, verzichten zu Gunsten der Einfachheit aber darauf. Den Kern eines Problems bildet also eine Frage. Dabei spielt es keine Rolle, ob die Frage schwer oder leicht zu beantworten ist. Die Frage zu beantworten bedeutet dann, das Problem zu l¨osen. F¨ur ein und dieselbe Formulierung einer Frage mag es verschiedene Situationen geben, in denen sie sinnvoll gestellt werden kann. Als anschauliches Beispiel k¨onnen wir hier die Frage nach einer Wegbeschreibung heranziehen. Was ist ein k¨urzester Weg von Ort a zu Ort b?

Diese Frage l¨asst sich sinnvoll f¨ur verschiedene konkrete Start- und Zielorte und f¨ur verschiedene zugrunde liegende Streckennetze stellen. Sie k¨onnen zum Beispiel sinnvoll fragen, was der k¨urzeste Weg von Hamburg nach Amsterdam per Schiff

1.2 Probleme und L¨osungen

5

ist. Genauso sinnvoll w¨are es, sich nach dem k¨urzesten Weg von K¨oln nach Wuppertal per Auto zu erkundigen. Sie haben also je nach Situation unterschiedliche vorliegende Daten, die die Antwort auf die Frage implizieren. Ein Problem beschreibt nicht eine einzelne, sondern die Gesamtheit der m¨oglichen Situationen, in denen die Frage gestellt werden kann. Dies macht insbesondere deshalb Sinn, weil wir – wie in Abschnitt 1.1 erl¨autert – Modelle und Verfahren f¨ur wiederkehrende Entscheidungen entwickeln wollen. F¨ur das Beispiel der Tourenplanung gilt, dass wir nicht jeden Tag dieselben Lieferungen erledigen m¨ussen. Allerdings ist die Struktur der Informationen bei jeder Planung dieselbe und genau diese Analogie wollen wir in einem Problem erfassen. Ein Problem kann also pr¨azise durch eine Aufz¨ahlung aller m¨oglichen vorliegenden Daten und die jeweils dazu korrespondierende Antwort definiert werden.3 F¨ur unsere Zwecke wollen wir ein intuitiv leichter zu fassendes Konzept verwenden. Hierbei wird ein Problem durch f¨unf Komponenten spezifiziert. Auch wenn die Frage im Zentrum eines Problems steht, werden wir zun¨achst auf die u¨ brigen Komponenten eingehen, da sie den Rahmen definieren, in dem die Frage gestellt wird. 1. Die Eingabe beschreibt die Struktur der vorliegenden Daten, also die Informationen, die uns vorliegen, wenn wir das Problem l¨osen wollen. Noch einmal soll hier betont werden, dass es nicht um die Beschreibung einer konkreten Situation geht, sondern um eine Beschreibung der Gesamtheit aller relevanten Situationen. Bei der Frage nach dem k¨urzesten Weg von a nach b k¨onnte die Eingabe eine Aufz¨ahlung aller relevanten Orte (inkl. a und b) sowie Distanzen zwischen diesen Orten umfassen. 2. Der L¨osungsraum (LR) beschreibt die Menge aller L¨osungen in Abh¨angigkeit von der Auspr¨agung der Eingabe. Er wird dabei durch die Struktur von L¨osungen, also die Informationen, die diese enthalten, spezifiziert. Was eine L¨osung eigentlich ist, l¨asst sich nur schwer allgemein definieren und ist hier auch nicht notwendig. In jedem Fall wird es sich aber um f¨ur das Finden der Antwort relevante Informationen handeln. Es ist zum Beispiel m¨oglich, dass nach einer L¨osung oder der Eigenschaft einer L¨osung gefragt wird. F¨ur die Frage nach dem k¨urzesten Weg von a nach b k¨onnten wir uns z. B. einen Weg als L¨osung und die Menge aller Wege als den L¨osungsraum vorstellen. 3. Die Zul¨assigkeitsbedingungen (ZB) sind eine Menge von Bedingungen, sodass f¨ur jede L¨osung im LR und jede Bedingung entschieden werden kann, ob die L¨osung die Bedingung erf¨ullt. Eine L¨osung, die alle Bedingungen erf¨ullt, wird als zul¨assig bezeichnet. Eine L¨osung, die nicht zul¨assig ist, wird als unzul¨assig bezeichnet. Die ZB k¨onnen von der Eingabe abh¨angen. F¨ur die Frage nach dem k¨urzesten Weg von a nach b w¨are es sinnvoll zu sagen, dass ein Weg (also eine L¨osung) zul¨assig ist, wenn er bei a beginnt und bei b endet. 4. Die Zielsetzung (ZS) ist eine Bewertung jeder L¨osung mit einem numerischen Wert und eine Orientierung, die aussagt, ob hohe oder niedrige Werte pr¨aferiert werden. Es ist grunds¨atzlich m¨oglich, dass es keine ZS gibt. Dies entspricht 3

Vgl. Wegener (2005)

6

1 Einleitung

einer Indifferenz zwischen allen L¨osungen. Auch die ZS kann von der Eingabe abh¨angen. Wir beschr¨anken uns auf den Fall, bei dem h¨ochstens eine ZS vorliegt, und bezeichnen die Bewertung einer L¨osung als deren Zielfunktionswert. Eine zul¨assige L¨osung, die unter allen zul¨assigen L¨osungen die beste Bewertung hat, bezeichnen wir als optimale L¨osung. Auch f¨ur die Frage nach dem Weg von a nach b gibt es eine ZS. Jeder Weg wird mit seiner L¨ange bewertet und wir pr¨aferieren kurze Wege gegen¨uber langen. 5. Die letzte Komponente ist die Frage, die sich auf LR, ZB und ZS bezieht. Die Frage gibt dabei die Struktur der Antwort vor, die wir als Ausgabe bezeichnen. In unserem obigen Beispiel haben wir die Frage schon gesehen: Was ist ein k¨urzester Weg von Ort a zu Ort b? In der nat¨urlichen Sprache dr¨ucken wir das Problem h¨aufig nur durch die Frage aus, die den Zusammenhang zwischen Eingabe und Ausgabe formuliert. Dabei gehen wir dann davon aus, dass der Kontext, in dem sie gestellt wird, die restlichen Komponenten hinreichend klarstellt. Um Missverst¨andnissen vorzubeugen, werden wir ein Problem immer durch Nennung aller f¨unf Komponenten beschreiben. Definition 1.1 (Problem). Ein Problem ist eine Kombination aus Eingabe, LR, ZB, ZS und Frage. Diese Definition wirkt unn¨otig sperrig, identifiziert aber wesentliche Konzepte, denen wir immer wieder begegnen werden. F¨ur eine formalere Betrachtung von Problemstellungen wird hier auf Garey und Johnson (1979), Jaehn und Pesch (2019) und Wegener (2005) verwiesen. Nachdem wir nun wissen, was wir unter Problemen verstehen, wollen wir Probleme noch nach Art der Ausgabe unterscheiden. Definition 1.2 (Optimierungsproblem). Ein Optimierungsproblem ist ein Problem, bei dem nach einer gem¨aß ZS optimalen L¨osung und/oder deren Zielfunktionswert gefragt wird. Definition 1.3 (Entscheidungsproblem). Ein Entscheidungsproblem ist ein Problem, bei dem die Frage nur mit ja oder nein beantwortet werden kann. Im Folgenden wollen wir einige Beispiele f¨ur Probleme im Anwendungskontext Produktionsplanung und Logistik diskutieren. Problem 1.1 (Produktionsplanung). Eingabe: Gewinn pro Einheit zweier Produkte, einheitliche Produktionsdauer pro Einheit f¨ur beide Produkte, gesamte Zeitspanne f¨ur Produktion LR: Ganzzahlige, nicht negative Produktionsmengen f¨ur beide Produkte ZB: Die gesamte Produktionsdauer darf die Zeitspanne, die f¨ur Produktion zur Verf¨ugung steht, nicht u¨ berschreiten. ZS: Der Gesamtgewinn ist zu maximieren. Frage: Was ist eine optimale L¨osung?

1.2 Probleme und L¨osungen

7

Problem 1.1 (Produktionsplanung) ist eine Problembeschreibung, die unserer Definition 1.1 f¨ur Probleme gen¨ugt, denn die f¨unf Komponenten sind spezifiziert. Wir wissen, welche Informationen wir erhalten (Eingabe), was gesucht ist (Frage) und welcher LR, welche ZB und welche ZS betrachtet werden. Wir sollen u¨ ber die Produktionsmengen zweier Produkte entscheiden (siehe LR) und wissen, dass uns hierf¨ur nur eine bestimmte Produktionsdauer zur Verf¨ugung steht (ZB) und dass der gesamte Gewinn maximiert werden soll (ZS). Problem 1.1 ist zudem ein Optimierungsproblem gem¨aß Definition 1.2, denn wir fragen nach einer optimalen L¨osung. Problem 1.2 (Tourenplanung). Eingabe: Menge von Orten (beginnend mit 1 durchnummeriert), Distanz zwischen jedem Paar von Orten LR: Sequenz von Orten ZB: Ort 1 ist erster und letzter Ort in der Sequenz, jeder andere Ort ist genau einmal enthalten ZS: Die gesamte Distanz zwischen in der Sequenz aufeinander folgenden Orten ist zu minimieren. Frage: Welche gesamte Distanz hat eine optimale L¨osung? Zun¨achst wollen wir an dieser Stelle kurz betonen, dass wir im Rahmen dieses Buches unter einem Paar immer ein geordnetes Paar“ verstehen. D. h., es gibt ” ein ausgewiesenes erstes Element in diesem Paar und ein ausgewiesenes zweites. Dies ist hier z. B. wichtig, wenn wir ber¨ucksichtigen wollen, dass Distanzen wom¨oglich asymmetrisch sind, d. h., die Distanz von Ort 1 zu Ort 2 unterscheidet sich wom¨oglich von der von Ort 2 zu Ort 1. Problem 1.2 (Tourenplanung) gen¨ugt ebenfalls Definition 1.1. Außerdem ist es ein Optimierungsproblem gem¨aß Definition 1.2. Wir wollen noch kurz die besondere Bedeutung von Ort 1, der zweimal in der Sequenz vorkommt, erl¨autern. Ort 1 entspricht dem Depot, von dem das Fahrzeug startet und zu dem es zur¨uckkehrt. Problem 1.3 (Tourenplanung (Entscheidungsproblem)). Eingabe: Menge von Orten (beginnend mit 1 durchnummeriert), Distanz zwischen jedem Paar von Orten, erlaubte gesamte Distanz LR: Sequenz von Orten ZB: Ort 1 ist erster und letzter Ort in der Sequenz, jeder andere Ort ist genau einmal enthalten ZS: Gesamte Distanz zwischen in der Sequenz aufeinander folgenden Orten ist zu minimieren. Frage: Gibt es eine zul¨assige L¨osung, die die erlaubte gesamte Distanz nicht u¨ berschreitet? Problem 1.3 ist ein Entscheidungsproblem gem¨aß Definition 1.3, das inhaltlich eng mit dem Optimierungsproblem 1.2 (Tourenplanung) verwandt ist. An dieser Stelle soll noch einmal kurz anhand der Beispiele erl¨autert werden, was eine Problembeschreibung beispielsweise nicht darstellt. Zum einen werden

8

1 Einleitung

viele Details, die in der Umgebung der realen Anwendung zu finden sind, ausgeblendet. Die Eingabe von Problem 1.1 (Produktionsplanung) gibt z. B. nicht an, wie viele Bediener f¨ur die Produktionsanlage zur Verf¨ugung stehen. Dies m¨ussen wir also auf Basis der Problembeschreibung als irrelevant annehmen. Zum anderen haben wir keine konkrete Planungssituation, in der wir eine Antwort geben k¨onnten. Daf¨ur m¨ussten wir z. B. zu Problem 1.1 (Produktionsplanung) erfahren, wie lang die Zeitspanne ist und wie hoch die jeweiligen Gewinne sind. In der Beschreibung von Problem 1.2 (Tourenplanung) ist noch nicht einmal angegeben, um wie viele Orte es sich handelt. Die Beschreibung einer konkreten Planungssituation f¨ur ein vorliegendes Problem nennen wir Probleminstanz. W¨ahrend die Eingabe eines Problems alle m¨oglichen vorliegenden Daten beschreibt, spezifiziert eine Probleminstanz einen konkreten Datensatz. Definition 1.4 (Probleminstanz). Eine Probleminstanz ist eine Belegung aller Daten der Eingabe mit Werten. Nur f¨ur eine Probleminstanz k¨onnen wir also eine konkrete Antwort auf die gestellte Frage geben. Wir sagen dann, dass wir die Probleminstanz l¨osen. Wir greifen die Probleme 1.1, 1.2 und 1.3 auf und beschreiben im Folgenden entsprechende Probleminstanzen. Beispiel 1.1 (Instanz zu Problem 1.1). Das erste Produkt erzielt einen Gewinn von 10 Euro pro Einheit und das zweite Produkt erzielt einen Gewinn von 20 Euro pro Einheit. Beide Produkte ben¨otigen eine Zeitspanne von 5 Minuten pro Einheit und es steht eine Zeitspanne von 30 Minuten zur Verf¨ugung. Wir wissen nun alles, was wir brauchen, um eine konkrete Antwort geben zu k¨onnen. In diesem Beispiel ist die Antwort leicht zu finden: Wir sollten von dem ersten Produkt keine und von dem zweiten Produkt sechs Einheiten herstellen und k¨onnen so einen Gewinn von 120 Euro erzielen. Diese L¨osung ist tats¨achlich optimal, denn es gibt keine zul¨assige L¨osung mit h¨oherem Zielfunktionswert. Wir werden uns nat¨urlich im Weiteren mit komplizierteren Problemen und deren Instanzen auseinandersetzen. Dann werden wir eine Antwort wom¨oglich nicht leicht erkennen k¨onnen und m¨ussen viel Aufwand betreiben, um diese zu ermitteln (und werden wom¨oglich sogar scheitern). Dies ist schon beim n¨achsten Beispiel der Fall. Beispiel 1.2 (Instanz zu Problem 1.2). Wir betrachten vier Orte 1, 2, 3 und 4. Die Distanz di, j zwischen jedem Paar von Orten i und j ist in der folgenden Tabelle gegeben. di, j 1 2 3 4 1 2 3 4

0 1 2 9

1 0 1 2

2 1 0 1

9 2 1 0

1.2 Probleme und L¨osungen

9

Wir wissen nun, wie viele Orte es in unserer konkreten Planungssituation gibt und welche Distanzen zwischen den einzelnen Orten liegen. F¨ur diese Instanz ist die Antwort schon deutlich schwieriger zu finden. Wir k¨onnen, da die Instanz eine u¨ berschaubare Gr¨oße hat, allerdings immer noch durch Ausprobieren ermitteln, dass wir eine Gesamtdistanz von 6 erreichen k¨onnen, wenn wir die Orte in der Reihenfolge 1, 2, 4, 3, 1 besuchen, und, dass dies der beste erreichbare Wert ist. Wir k¨onnen uns allerdings vorstellen, dass wir bei anderen Instanzen von Problem 1.2 (Tourenplanung) deutlich mehr Aufwand betreiben m¨ussen, um die Antwort zu finden (z. B. wenn 100 oder mehr Orte zu betrachten sind). Beispiel 1.3 (Instanz zu Problem 1.3). Die erlaubte gesamte Distanz ist 8, die restlichen Werte entsprechen denen in Beispiel 1.2. Offensichtlich gibt es zwischen dem Optimierungsproblem 1.2 und dem Entscheidungsproblem 1.3 eine generelle, enge Beziehung. Nachdem wir die Instanz des Optimierungsproblems gel¨ost haben, k¨onnen wir die Instanz des Entscheidungsproblems unmittelbar l¨osen. F¨ur die in Beispiel 1.2 gegebene Probleminstanz wissen wir, dass eine optimale L¨osung eine gesamte Distanz von 6 hat. Wenn die erlaubte gesamte Distanz also mindestens 6 betr¨agt (wie in Beispiel 1.3), ist die Antwort f¨ur die entsprechende Instanz des Entscheidungsproblems ja. Wenn die erlaubte gesamte Distanz niedriger als 6 ist, ist die Antwort nein. Umgekehrt k¨onnen wir durch systematisches und wiederholtes L¨osen von Instanzen des Entscheidungsproblems die Instanz eines Optimierungsproblems l¨osen. Wir l¨osen eine Instanz des Entscheidungsproblems mit einer erlaubten gesamten Distanz von 0, eine Instanz des Entscheidungsproblems mit einer erlaubten gesamten Distanz von 1, eine Instanz des Entscheidungsproblems mit einer erlaubten gesamten Distanz von 2 und so weiter. Wenn die Antwort zum ersten Mal ja ist, wissen wir, dass die erlaubte gesamte Distanz in der aktuellen Instanz die gesamte Distanz einer optimalen L¨osung der Instanz des Optimierungsproblems ist. Ganz so einfach k¨onnen wir es uns zwar nur machen, wenn alle Distanzen ganzzahlig und nicht negativ sind, aber a¨ hnliche Mechanismen werden uns auch h¨aufig in anderen F¨allen helfen. Zusammenfassung: Probleme und Instanzen Ein Problem wird durch eine Frage, die Struktur der verf¨ugbaren Daten (Eingabe) und die Regeln (LR, ZB, ZS), nach denen die Frage beantwortet werden soll, beschrieben. Eine Probleminstanz belegt die Eingabe mit konkreten Werten, wodurch sich auch LR, ZB und ZS konkretisieren. Salopp formuliert: Probleme und Instanzen Ein Problem ist eine in verschiedenen Situationen wiederkehrende Frage. Die Antwort soll dabei nach klar vorgegebenen Regeln gegeben werden. Eine Probleminstanz beschreibt eine konkrete Situation, in der die Frage gestellt wird.

10

1 Einleitung

1.3 Verfahren und Algorithmen Nachdem wir in Abschnitt 1.2 gekl¨art haben, was wir unter Problemen, Probleminstanzen und L¨osungen verstehen, wollen wir nun unsere Aufmerksamkeit den Verfahren zuwenden, mit deren Hilfe wir Probleminstanzen l¨osen wollen. Unter einem Verfahren verstehen wir dabei eine vorab festgelegte Vorgehensweise. Die in diesem Buch beschriebenen Verfahren sind in der Regel zum Finden von Antworten f¨ur Probleminstanzen gedacht, d. h., sie transformieren die Eingabe in eine Ausgabe, die entweder die Antwort auf die Frage darstellt oder aus der wir die Antwort leicht ableiten k¨onnen.

1.3.1 Definition und Klassifikation Hier ist noch einmal hervorzuheben, dass wir in der Regel kein Interesse an einem Verfahren haben, das sich nur f¨ur eine einzige oder sehr wenige Probleminstanzen eignet. Vielmehr n¨utzen uns vor allem Verfahren, die f¨ur alle Probleminstanzen zu einem Problem Antworten liefern. Wir sagen dann auch, dass das Verfahren das Problem l¨ost. Verfahren, die Optimierungsprobleme l¨osen, ermitteln L¨osungen, denn in einem Optimierungsproblem wird laut Definition 1.2 nach einer L¨osung oder deren Zielfunktionswert gefragt. Wir unterscheiden drei Typen von Verfahren f¨ur Optimierungsprobleme, die sich in Qualit¨at der ermittelten L¨osung und Aufwand, der zum Ermitteln der L¨osung betrieben wird, unterscheiden. • Optimale Verfahren oder exakte Verfahren finden garantiert eine optimale L¨osung zu jeder Probleminstanz. Diese Verfahren sind im Vergleich zu den folgenden beiden Arten von Verfahren in der Regel mit relativ viel Aufwand bei der Ausf¨uhrung verbunden. • Approximationsverfahren finden eine L¨osung zu jeder Instanz, die potentiell suboptimal ist, deren Wert aber in einem bestimmten Verh¨altnis zu dem Wert der optimalen L¨osung steht, welches in der Regel additiv oder multiplikativ ausgedr¨uckt wird und f¨ur alle Instanzen des jeweiligen Problems gilt. Ein Approximationsverfahren f¨ur Problem 1.2 k¨onnte z. B. eine L¨osung garantieren, deren gesamte Distanz h¨ochstens doppelt so hoch ist wie die gesamte Distanz einer optimalen L¨osung oder deren gesamte Distanz h¨ochstens um 20 h¨oher ist als die gesamte Distanz einer optimalen L¨osung. Das diskutierte Beispiel 1.2 k¨onnte dazu verleiten, eine solche G¨utegarantie als nicht herausfordernd zu erachten. Wenn man sich jedoch vor Augen f¨uhrt, dass ein Approximationsverfahren diese G¨ute f¨ur alle Instanzen garantiert, d. h. auch f¨ur sehr große Instanzen von Problem 1.2 mit Tausenden von Orten, dann wird klar, dass es in der Regel nicht leicht ist, ein solches Verfahren zu konzipieren. • Heuristiken finden eine L¨osung zu einer Instanz, deren Wert potentiell beliebig schlecht im Vergleich zu dem Wert der optimalen L¨osung sein kann. Diese Verfahren bedeuten in der Ausf¨uhrung den geringsten Aufwand. Nat¨urlich ist ihr

1.3 Verfahren und Algorithmen

11

Einsatz daher immer dann besonders sinnvoll, wenn der Aufwand zur Anwendung eines exakten Verfahrens oder eines Approximationsverfahrens zu hoch ist. Zudem bedeutet eine fehlende G¨utegarantie nicht, dass die Heuristik nicht im Regelfall sehr gute oder sogar optimale L¨osungen liefert. Es gibt durchaus Verfahren, die f¨ur alle in einem Anwendungsfall relevanten Instanzen zumindest sehr gute L¨osungen ermitteln. Lediglich f¨ur in der Praxis irrelvante Instanzen, die bewusst so konstruiert sind, dass das Verfahren scheitert, liefern sie sehr schlechte L¨osungen. Solche Verfahren haben offensichtlich einen hohen Nutzen, werden aber trotzdem als Heuristiken klassifiziert. In diesem Buch werden Verfahren zumeist so pr¨azise beschrieben, dass die Handlungsabfolge, die zur Ausf¨uhrung des Verfahrens n¨otig ist, eindeutig spezifiziert ist. Eine solche Beschreibung nennen wir dann Algorithmus.4 Definition 1.5 (Algorithmus). Ein Algorithmus ist eine pr¨azise und eindeutige Handlungsvorschrift, mittels derer eine Eingabe in eine Ausgabe transformiert wird. Wir werden im Folgenden immer von einem Algorithmus f¨ur ein bestimmtes Problem sprechen, sodass Eingabe und Ausgabe f¨ur Algorithmen und Probleme dieselben Konzepte darstellen. Zusammenfassung: Verfahren und Algorithmen Ein Verfahren f¨ur ein Problem ist eine Vorgehensweise, um Instanzen des Problems zu l¨osen. Ein Algorithmus ist eine pr¨azise Spezifikation eines Verfahrens.

1.3.2 Darstellung In diesem Buch werden Algorithmen h¨aufig als Pseudocode dargestellt. Pseudocode a¨ hnelt Programmcode, ist allerdings nicht zur Interpretation durch einen Computer gedacht, sondern wird lediglich zur Veranschaulichung verwendet. Pseudocode erlaubt dabei eine pr¨azise Beschreibung der Struktur und der wesentlichen Operationen eines Algorithmus. In der Literatur finden sich verschiedene Versionen von Pseudocode, die sich haupts¨achlich darin unterscheiden, wie detailliert die einzelnen Operationen dargestellt sind. Wir werden in diesem Buch eine m¨oglichst nat¨urlichsprachige Variante verwenden, die zwar auf die Darstellung einiger (zumeist technischer) Details verzichtet, daf¨ur aber eine recht hohe Lesbarkeit erreicht. Dies k¨onnen wir uns an einem Algorithmus f¨ur Problem 1.1 vergegenw¨artigen.

4

Vgl. Cormen u. a. (2009)

12

1 Einleitung

Algorithmus 1.1 (Produktionsplanung). Eingabe: Instanz von Problem 1.1 (Produktionsplanung) Ausgabe: Produktionsmengen f¨ur beide Produkte 1. Ermittle ein Produkt, das den h¨ochsten Gewinn pro Einheit erzielt. 2. Lege fest, dass von diesem Produkt so viele Einheiten wie m¨oglich produziert werden, von dem anderen keine. Das Verfahren ist ein exaktes Verfahren (dies gilt nur, wenn beide Produkte dieselbe Zeitspanne f¨ur die Produktion pro Einheit ben¨otigen, aber dies ist ja laut Problemdefinition der Fall). Obwohl es einleuchtend beschrieben ist, stellt sich hier die Frage, ob die Beschreibung einen Algorithmus im Sinne von Definition 1.5 darstellt. Streng genommen ist dies nicht der Fall, denn es gibt mehrere M¨oglichkeiten Schritt 1. auszuf¨uhren und bei Schritt 2. bleibt sogar offen, wie wir die konkrete Anzahl an Einheiten bestimmen. Umgekehrt w¨are es vermutlich sehr m¨uhsam – wenn nicht gar unm¨oglich – das Verfahren in jedem noch so kleinen Detail zu spezifizieren. Wir werden uns also auf eine Ebene zur¨uckziehen m¨ussen, bei der wir annehmen k¨onnen, dass der Leser die Beschreibung des Verfahrens nicht versehentlich falsch interpretieren kann. Insofern gen¨ugt das oben beschriebene Verfahren der Definition. Dies gilt auch f¨ur den folgenden Algorithmus 1.2, der eine Heuristik f¨ur Problem 1.2 darstellt. Algorithmus 1.2 (Tourenplanung). Eingabe: Instanz von Problem 1.2 (Tourenplanung) Ausgabe: Sequenz der zu besuchenden Orte 1. W¨ahle Ort 1 als ersten Ort der Sequenz. 2. W¨ahle unter den noch nicht besuchten Orten den, der die k¨urzeste Distanz zu dem zuletzt in die Tour eingef¨ugten hat, als n¨achsten Ort. 3. Wenn noch nicht alle Orte besucht wurden, gehe zu 2. 4. Erg¨anze Ort 1 als letzten Ort in der Sequenz. Die Vorgehensweise ist intuitiv einleuchtend, jedoch ist es m¨oglich, dass wir suboptimale L¨osungen erzeugen. F¨ur die Instanz, die in Beispiel 1.2 beschrieben ist, erhalten wir eine Tour, in der die Orte in der Sequenz 1, 2, 3, 4, 1 besucht werden. Die zur¨uckgelegte Gesamtdistanz ist 12 und somit deutlich h¨oher als der optimale Wert von 6.

Literaturverzeichnis Cormen T, Leiserson C, Rivest R, Stein C (2009) Introduction to Algorithms, 3. Aufl. MIT Press Domschke W, Drexl A, Klein R, Scholl A (2015) Einf¨uhrung in Operations Research, 9. Aufl. Springer, Berlin u. a. Garey MR, Johnson DS (1979) Computers and Intractability - A guide to the theory of NP-completeness. W. H. Freemand and Company

Literaturverzeichnis

13

Gesellschaft f¨ur Operations Research eV (2019) Homepage. URL http://www.gorev.de/ Jaehn F, Pesch E (2019) Ablaufplanung - Einf¨uhrung in Scheduling. Springer, Berlin Jaluria Y (2019) Design and Optimization of Thermal Systems, 3. Aufl. CRC Press Martin A, Klamroth K, Lang J, Leugering G, Morsi A, Oberlack M, Ostrowski M, Rosen R (eds) (2012) Mathematical Optimization of Water Networks. Birkh¨auser, Basel Opitz O, Etschberger S, Burkart W, Klein R (2017) Mathematik – Lehrbuch f¨ur das Studium der Wirtschaftswissenschaften. Oldenbourg Wegener I (2005) Complexity Theory: Exploring the Limits of Efficient Algorithms, 1. Aufl. Springer, Berlin u. a.

Kapitel 2

Modellierung

Zusammenfassung In diesem Kapitel werden verschiedene Modellierungskonzepte zur Abbildung von Problemen im Bereich Operations Research vorgestellt. Zun¨achst befassen wir uns kurz damit, was Modelle u¨ berhaupt sind. Danach werden Graphenmodelle und abschließend mathematische Optimierungsmodelle vorgestellt und an Beispielen erl¨autert. Lernziele Kapitel 2 Sie kennen nach Lesen und Verinnerlichen dieses Kapitels • Graphenmodelle und deren Komponenten und • mathematische Optimierungsmodelle und deren Komponenten. Sie k¨onnen nach Lesen und Verinnerlichen dieses Kapitels • Sachverhalte durch Graphenmodelle repr¨asentieren und • Problemstellungen durch mathematische Optimierungsmodelle repr¨asentieren.

2.1 Modelle Bevor wir uns eingehender mit Modellen befassen, stellt sich zun¨achst die eher philosophische Frage, was eigentlich ein Modell ausmacht. Daher wollen wir uns auch bei einem Philosophen f¨ur eine Eingrenzung des Begriffs bedienen. Stachowiak (1973) nennt drei wesentliche Merkmale von Modellen. • Modelle haben ein Abbildungsmerkmal, d. h., Modelle sind Abbildungen von Originalen. Diese Originale k¨onnen nat¨urlich oder k¨unstlich entstanden und ihrerseits wiederum Modelle sein.

© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 D. Briskorn, Operations Research, https://doi.org/10.1007/978-3-662-60783-1_2

16

2 Modellierung

• Modelle haben ein Verk¨urzungsmerkmal, d. h., nicht alle Eigenschaften des Originals werden durch das Modell abgebildet. • Modelle haben ein pragmatisches Merkmal, d. h., sie werden mit einem bestimmten Ziel erstellt. Vor dem Hintergrund dieses Ziels wird insbesondere die Auswahl der Eigenschaften des Originals, die durch das Modell abgebildet werden, getroffen. Wir k¨onnen also festhalten, dass Modelle etwas abbilden und dabei zielorientiert von Eigenschaften des Originals abstrahieren.1 Es gibt unterschiedliche Ziele, die bei der Erstellung eines Modells verfolgt werden. In der Regel wird man u. a. darauf abzielen, das Modell weniger komplex zu halten als das Original. Die Reduktion von Komplexit¨at wird dabei durch die einschr¨ankende Auswahl von Eigenschaften, die abgebildet werden, erreicht. Dabei ist hervorzuheben, dass die Auswahl dieser Eigenschaften nicht eindeutig ist, sondern davon abh¨angt, was mit dem Modell bezweckt wird und welche Eigenschaften des Originals daher relevant sind. Die Reduktion von Komplexit¨at ist kein Fundamentalziel, sondern in der Regel nur ein Mittel, um das Modell f¨ur weitere Arbeitsschritte handhabbar zu machen. Diese weiteren Arbeitsschritte k¨onnen darin bestehen, das Modell intellektuell zu durchdringen (und damit die wesentlichen Z¨uge des Originals), es zu kommunizieren oder Schl¨usse zu ziehen bzw. Empfehlungen auszusprechen. Weitere Ziele bei der Erstellung eines Modells k¨onnen darin bestehen, eine bestimmte Struktur des Modells zu erreichen oder es m¨oglichst knapp formulieren zu k¨onnen. Selbst wenn entschieden ist, welche Eigenschaften abgebildet werden sollen, ist ein Modell nicht eindeutig f¨ur das vorliegende Original. Bei der Gestaltung eines Modells gibt es viele Freiheiten und es ist u. a. wiederum von dem verfolgten Ziel abh¨angig, welche Ausgestaltung geeignet oder besser als andere ist. Dies ist aber wom¨oglich auch gar nicht objektiv zu entscheiden, sondern h¨angt von dem subjektiven Empfinden des Modellierers ab. In den Abschnitten 2.2 und 2.3 werden zwei quantitative Modelltypen vorgestellt. Ein Modelltyp ist ein Rahmen, der durch eine Sprache und eine Struktur vorgegeben ist. Ein Modelltyp schr¨ankt daher die Ausdrucksf¨ahigkeit der Modelle ein und somit auch die m¨oglichen Einsatzgebiete. Quantitative Modelltypen eignen sich naturgem¨aß insbesondere dann, wenn sich die relevanten Eigenschaften des Originals quantifizieren lassen. Dies ist z. B. in der Produktionsplanung oder der Logistik der Fall. Wir sehen dies beispielhaft an den Problemen 1.1 (Produktionsplanung) und 1.2 (Tourenplanung) auf S. 6 und 7. In der Eingabe von Problem 1.1 (Produktionsplanung) sind alle relevanten Faktoren, n¨amlich Zeitspannen und monet¨are Gr¨oßen, leicht quantifizierbar. Die Ausgabe, zwei Produktionsmengen, ist ebenfalls gut durch Zahlen abzubilden. In Problem 1.2 (Tourenplanung) besteht die Eingabe haupts¨achlich aus den Distanzen zwischen Orten und gesucht wird eine Sequenz dieser Orte. Distanzen sind offensichtlich quantitativ messbar. Wie wir Sequenzen von Orten quantitativ abbilden k¨onnen, ist weniger offensichtlich und werden wir uns daher noch u¨ berlegen m¨ussen. 1

Vgl. hierzu Suhl und Mellouli (2013); Williams (2013)

2.2 Graphen

17

Zusammenfassung: Modelle und Modelltypen Modelle bilden ein Original vereinfachend ab. Welche Eigenschaften des Originals von dem Modell abgebildet werden, h¨angt vom verfolgten Ziel ab. Ein Modelltyp gibt einen sprachlichen und strukturellen Rahmen f¨ur Modelle vor.

2.2 Graphen Graphenmodelle bilden haupts¨achlich Elemente einer Menge und Beziehungen zwischen Paaren dieser Elemente ab. Sowohl die Elemente selber als auch die Beziehungen k¨onnen dabei mit Eigenschaften versehen sein. Die Ausdrucksf¨ahigkeit ist durch die Beschr¨ankung auf die Menge und Beziehungen zwischen Paaren von Elementen relativ stark beschr¨ankt. Sollte sie allerdings ausreichen, dann bieten Graphenmodelle neben der u¨ blichen Reduktion auf das Wesentliche etliche etablierte Darstellungsformen. Es gibt eine Unmenge von standardisierten Problemstellungen und entsprechenden L¨osungsverfahren, auf die man h¨aufig als Toolbox zur¨uckgreifen kann. Einige dieser Verfahren werden wir in Kapitel 5 besprechen.

2.2.1 Definitionen und Darstellungsformen Ein Graph ist durch eine Menge von Knoten und eine Menge von Kanten defi¨ niert. Ublicherweise wird die Knotenmenge bzw. die Kantenmenge mit V bzw. E bezeichnet, sodass wir einen Graphen h¨aufig durch das Paar (V, E) dieser Mengen definieren. Die Knotenmenge V kann beliebige Elemente enthalten. H¨aufig werden Knoten jedoch einfach nur durchnummeriert, sodass die Zahlen 1, . . . , |V | die Namen der Knoten sind. Eine Kante beschreibt immer die Beziehung zwischen zwei Knoten. Hierbei unterscheiden wir zwischen ungerichteten und gerichteten Kanten. Ungerichtete Kanten bilden Beziehungen ab, bei denen beide Knoten gleichberechtigt sind und keine besondere Rolle in der Beziehung haben. Bei einer gerichteten Kante unterscheiden sich die Rollen der beiden Knoten. Wir werden dies auch formal unterscheiden, indem wir ungerichtete Kanten als zweielementige Teilmengen von V und gerichtete Kanten als Paar von Elementen aus V beschreiben. An dieser Stelle wollen wir festhalten, dass der Unterschied zwischen einer zweielementigen Teilmenge eu = {i, j} mit i ∈ V , j ∈ V und i = j und einem Paar eg = (i, j) mit i ∈ V , j ∈ V und i = j darin liegt, dass in der Teilmenge eu beide Elemente dieselbe Rolle haben (analog zu den Knoten einer ungerichteten Kante) und die Elemente des

18

2 Modellierung

Paares eg unterschiedliche Rollen haben (analog zu den Knoten einer gerichteten Kante).2 Definition 2.1 ((ungerichteter) Graph). Ein Graph ist ein Paar zweier Mengen (V, E), wobei E eine Menge von zweielementigen Teilmengen von V ist, d. h. E  2V und |e| = 2 f¨ur jede Kante e ∈ E. Die hier verwendete Notation 2V steht f¨ur die Potenzmenge der Menge V , d. h. die Menge aller Teilmengen von V . Salopp formuliert: Ungerichteter Graph Ein ungerichteter Graph bildet Dinge durch Knoten und Beziehungen zwischen diesen durch Kanten ab. Die beiden Knoten in einer Beziehung sind austauschbar. Definition 2.2 (gerichteter Graph). Ein gerichteter Graph ist ein Paar zweier Mengen (V, E), wobei E eine Menge von Paaren von Elementen von V ist, d. h. E ⊆ V ×V . Die hier verwendete Notation V × V steht f¨ur das Kreuzprodukt der Mengen V und V , d. h. die Menge aller Paare von Elementen von V . Salopp formuliert: Gerichteter Graph Ein gerichteter Graph bildet Dinge durch Knoten und Beziehungen zwischen diesen durch Kanten ab. Die beiden Knoten in einer Beziehung sind nicht austauschbar. Zwei Knoten, die durch eine Kante verbunden werden, werden adjazent genannt. Im Falle einer gerichteten Kante (i, j) ∈ E zwischen den Knoten i und j eines Graphen sprechen wir auch davon, dass die Kante von i nach j gerichtet ist oder dass es eine Kante von i nach j ist. Ein Knoten und eine Kante werden inzident genannt, wenn der Knoten durch die Kante mit einem anderen Knoten verbunden wird. Nat¨urlich lassen sich die beiden Mengen V und E als einfache Aufz¨ahlungen der jeweiligen Elemente beschreiben. Etabliert haben sich jedoch andere Darstellungsformen, die sich nicht in ihrem Informationsgehalt unterscheiden. • Grafische Darstellung Eine sehr beliebte, weil anschauliche Darstellungsform f¨ur Graphen ist die grafische Darstellung. In der Regel werden die Knoten dabei als Punkte oder Kreise abgebildet, die ggf. mit dem jeweiligen Namen beschriftet sind. Ungerichtete Kanten werden als Linie zwischen den beiden jeweiligen Knoten dargestellt. Gerichtete Kanten werden h¨aufig als Pfeil von dem ersten der beiden Knoten zu dem zweiten repr¨asentiert. Die Anordnung der Knoten in der Abbildung sowie die Form der Kanten hat dabei keine Bedeutung. Daher werden sie in der Regel so gew¨ahlt, dass die Darstellung m¨oglichst u¨ bersichtlich ist. 2

Vgl. hierzu Opitz u. a. (2017)

2.2 Graphen

19

Abb. 2.1 Darstellung eines (ungerichteten) Graphen Gu

1

2

3

4

5

6

Abb. 2.1 zeigt die grafische Darstellung von Graph Gu = (V, E u ) mit – V = {1, 2, 3, 4, 5, 6} und – E u = {{1, 2}, {1, 3}, {1, 4}, {1, 5}, {1, 6}, {2, 4}, {3, 5}, {4, 5}, {4, 6}, {5, 6}}.

Abb. 2.2 Darstellung eines gerichteten Graphen Gg

1

2

3

4

5

6

Abb. 2.2 zeigt die grafische Darstellung von Graph Gg = (V, E g ) mit E g = {(1, 2), (1, 3), (1, 4), (1, 5), (2, 4), (4, 2), (4, 5), (4, 6), (5, 3), (6, 1), (6, 5)}. Zu beachten ist, dass sowohl die gerichtete Kante (2, 4) als auch die gerichtete Kante (4, 2) dargestellt und aufgef¨uhrt ist, da diese voneinander unterschiedliche Kanten sind (aufgrund der unterschiedlichen Rollen der beiden Knoten). • Adjazenzmatrix H¨aufig werden Informationen in Tabellenform dargestellt, weil Tabellen u¨ bersichtlich und intuitiv lesbar sind. In einer Adjazenzmatrix A gibt es genau eine Zeile und

20

2 Modellierung

genau eine Spalte zu jedem Knoten. Der Eintrag ai, j der Zelle in Zeile i und Spalte j ist bin¨ar und hat den Wert 1, wenn es von Knoten i zu Knoten j eine Kante gibt, und sonst den Wert 0. Die Matrix gibt also unmittelbar f¨ur jedes Paar von Knoten an, ob diese adjazent sind oder nicht. Im ungerichteten Fall ist die Matrix symmetrisch, d. h., es gilt ai, j = a j,i f¨ur alle i ∈ V und j ∈ V . Dann k¨onnen wir uns in der Darstellung auf die obere (oder untere) Dreiecksmatrix beschr¨anken, d. h. auf die Zellen mit i ≤ j (i ≥ j). Tabellen 2.1 und 2.2 stellen die Adjazenzmatrizen von Gu und Gg dar. Tabelle 2.1 Adjazenzmatrix von Gu 123456 1 2 3 4 5 6

0 1 1 1 1 1

1 0 0 1 0 0

1 0 0 0 1 0

1 1 0 0 1 1

1 0 1 1 0 1

1 0 0 1 1 0

Tabelle 2.2 Adjazenzmatrix von Gg 123456 1 2 3 4 5 6

0 0 0 0 0 1

1 0 0 1 0 0

1 0 0 0 1 0

1 1 0 0 0 0

1 0 0 1 0 1

0 0 0 1 0 0

• Inzidenzmatrix In einer Inzidenzmatrix gibt es eine Zeile zu jedem Knoten und eine Spalte zu jeder Kante. Die Eintr¨age zur Darstellung eines ungerichteten Graphen sind bin¨ar. Ein Eintrag hat den Wert 1, wenn der Knoten, zu dem die Zeile geh¨ort, und die Kante, zu der die Spalte geh¨ort, inzident sind, und sonst den Wert 0. Wir finden also in jeder Spalte genau zwei Eintr¨age mit Wert 1, die die durch diese Kante verbundenen Knoten ausweisen. Bei der Darstellung eines gerichteten Graphen gibt es zus¨atzlich Zellen, die einen Eintrag mit dem Wert −1 haben. Ein Eintrag hat den Wert 1, wenn der Knoten, zu dem die Zeile geh¨ort, der erste Knoten der Kante, zu der die Spalte geh¨ort, ist. Ein Eintrag hat den Wert −1, wenn der Knoten, zu dem die Zeile geh¨ort, der zweite Knoten der Kante, zu der die Spalte geh¨ort, ist. Jeder andere Eintrag hat den Wert 0. Die Summe der Eintr¨age in jeder Spalte betr¨agt also 0, wobei in jeder Spalte nur in zwei Zeilen Eintr¨age ungleich 0 gefunden werden.

2.2 Graphen

21

W¨ahrend eine Adjazenzmatrix also das Verh¨altnis von Paaren von Knoten darstellt, stellt eine Inzidenzmatrix das Verh¨altnis von Knoten und Kanten dar. Die (indirekt) dargestellten Informationen k¨onnen nat¨urlich ineinander u¨ berf¨uhrt werden. Die Tabellen 2.3 und 2.4 stellen die Inzidenzmatrizen von Gu und Gg dar (und stellen somit dieselben Graphen dar wie die Tabellen 2.1 und 2.2). Tabelle 2.3 Inzidenzmatrix von Gu {1, 2} {1, 3} {1, 4} {1, 5} {1, 6} {2, 4} {3, 5} {4, 5} {4, 6} {5, 6} 1 2 3 4 5 6

1 1 0 0 0 0

1 0 1 0 0 0

1 0 0 1 0 0

1 0 0 0 1 0

1 0 0 0 0 1

0 1 0 1 0 0

0 0 1 0 1 0

0 0 0 1 1 0

0 0 0 1 0 1

0 0 0 0 1 1

Tabelle 2.4 Inzidenzmatrix von Gg (1, 2) (1, 3) (1, 4) (1, 5) (2, 4) (4, 2) (4, 5) (4, 6) (5, 3) (6, 1) (6, 5) 1 2 3 4 5 6

1 -1 0 0 0 0

1 0 -1 0 0 0

1 0 0 -1 0 0

1 0 0 0 -1 0

0 1 0 -1 0 0

0 -1 0 1 0 0

0 0 0 1 -1 0

0 0 0 1 0 -1

0 0 -1 0 1 0

-1 0 0 0 0 1

0 0 0 0 -1 1

Es gibt zahllose Anwendungsbeispiele f¨ur Graphen. Ein besonders naheliegendes ist die Abbildung von Streckennetzen. Es gibt Ortschaften, repr¨asentiert durch Knoten, zwischen denen es Verbindungen, repr¨asentiert durch Kanten, gibt. Kanten bilden dann zum Beispiel Wege ab, u¨ ber die man von einem der Orte zum anderen gehen kann, ohne dabei andere Orte zu durchqueren. Gerichtete Kanten k¨onnen dann abbilden, dass es nicht zwangsl¨aufig m¨oglich ist, eine Verbindung in beiden Richtungen unter denselben Umst¨anden zu nutzen, oder dass eine Verbindung u¨ berhaupt nur in einer Richtung zur Verf¨ugung steht. Dies kann zum Beispiel bei der Darstellung von Einbahnstraßen oder bei der Darstellung von unterschiedlichen Reisezeiten genutzt werden. Eine Einbahnstraße l¨asst sich nur in einer Richtung (legal) nutzen. Dies bilden wir in einem Graph ab, indem es eine Kante von einem Knoten zu einem anderen, aber keine Kante in umgekehrter Richtung gibt. Das heißt nat¨urlich nicht, dass wir uns nicht indirekt von dem zweiten Knoten zum ersten bewegen k¨onnen, aber ohne andere Knoten zu durchlaufen, ist dies nicht m¨oglich. Wenn wir ausdr¨ucken wollen, dass die Fahrzeit aufgrund unterschiedlicher Verkehrslagen von der Richtung abh¨angt, in der wir uns zwischen zwei Knoten bewegen, dann verwenden wir zwei Kanten und versehen diese mit unterschiedlichen Eigenschaften. Was es mit diesen Eigenschaften auf sich hat, wollen wir uns im Folgenden anschauen.

22

2 Modellierung

Sowohl Knoten als auch Kanten k¨onnen mit numerischen Eigenschaften versehen sein. Die meisten Modelle beschr¨anken sich dabei auf h¨ochstens eine Eigenschaft pro Kante oder Knoten. Wir werden dabei von Kanten- oder Knotengewichten sprechen. Definition 2.3 (gewichteter Graph). Ein gewichteter Graph ist ein Tripel (V, E, w) wobei (V, E) ein (gerichteter) Graph und w eine Funktion ist, die jeder Kante in E einen numerischen Wert zuordnet.

2

1

7

4

3

7

5

4

8

9

Abb. 2.3 Gewichteter (ungerichteter) Graph

2

1

2 5

4

6

Abb. 2.3 stellt einen gewichteten Graphen dar. Die Kantengewichte finden wir an den Kanten notiert. Kantengewichte k¨onnen z. B. L¨angen der Verbindungen in unserem Streckennetz darstellen. In einem gerichteten Graphen m¨ussen Gewichte zweier entgegengesetzt orientierter Kanten zwischen einem Paar von Knoten nicht zwangsl¨aufig identisch sein. Wenn wir die Kantengewichte als Fahrzeit oder Benzinverbrauch interpretieren, dann k¨onnen diese z. B. bei unterschiedlichem Verkehrsaufkommen oder Gef¨alle bzw. Steigung von der Orientierung der Kante abh¨angen. Auch negative Gewichte sind denkbar, wenn wir z. B. an Elektrofahrzeuge denken und die Kantengewichte als Verbrauch der Batteriekapazit¨at bei Durchqueren der Kante interpretieren. Starkes Gef¨alle mag hier zu einem negativen Verbrauch, also einer Zunahme der Kapazit¨at, f¨uhren. Salopp formuliert: Gewichteter Graph In einem gewichteten Graphen haben die Kanten Eigenschaften, die sich durch eine Zahl ausdr¨ucken lassen. Definition 2.4 (Graph mit Knotengewichten). Ein Graph mit Knotengewichten ist ein Tripel (V, E, b) wobei (V, E) ein (gerichteter) Graph und b eine Funktion ist, die jedem Knoten in V einen numerischen Wert zuordnet.

2.2 Graphen

23 4

6

2

1

2 7

4

5

9 3

7

7 4

8

9 Abb. 2.4 Gewichteter (ungerichteter) Graph mit Knotengewichten

1

2

5 5 3

4

6

Knotengewichte k¨onnen z. B. Einwohnerzahlen der Ortschaften abbilden. Nat¨urlich sind auch gewichtete Graphen mit Knotengewichten denkbar. Abb. 2.4 stellt einen gewichteten Graphen mit Knotengewichten dar. Die Knotengewichte finden wir außen an den Knoten notiert. Salopp formuliert: Graph mit Knotengewichten In einem Graphen mit Knotengewichten haben die Knoten Eigenschaften, die sich durch eine Zahl ausdr¨ucken lassen.

2.2.2 Spezielle Strukturen Graphen oder Teile von Graphen k¨onnen spezielle Strukturen aufweisen, die im Rahmen von Modellen oder Verfahren besondere Bedeutung haben. Definition 2.5 (Weg). Ein Weg von einem Knoten u ∈ V zu einem Knoten v ∈ V in einem gerichteten Graphen G = (V, E) ist eine Sequenz von n, n ≥ 1, Kanten ((u1 , v1 ), . . . , (un , vn )), sodass • u1 = u und vn = v, d. h., die erste Kante beginnt bei Knoten u und die letzte endet bei Knoten v, • (uk , vk ) ∈ E f¨ur jedes k = 1, . . . , n, d. h., die Kanten im Weg sind im Graphen vorhanden, und • uk = vk−1 f¨ur jedes k = 2, . . . , n, d. h., jede Kante beginnt bei dem Knoten, bei dem die vorherige endet. In Abb. 2.5 sehen wir zum Beispiel den Weg ((2, 4), (4, 6), (6, 1)) von Knoten 2 zu Knoten 1. Die Kanten im Weg sind schwarz hervorgehoben. Wir werden Wege auch durch die Reihenfolge der besuchten Knoten spezifizieren; f¨ur den oben

24

2 Modellierung

betrachteten Weg w¨are diese Spezifikation (2, 4, 6, 1). Wir definieren einen Weg in einem ungerichteten Graphen analog, wobei wir ber¨ucksichtigen, dass eine Kante hier in beliebiger Richtung durchlaufen werden kann. Wir haben also eine Abfolge von (ungerichteten) Kanten und geben diesen jeweils eine Orientierung, sodass die Abfolge von orientierten Kanten ein Weg nach Definition 2.5 ist. Nun wollen wir noch zwei spezielle Formen von Wegen definieren.

Abb. 2.5 Weg und Pfad

1

2

3

4

5

6

Definition 2.6 (Pfad). Ein Pfad von einem Knoten u ∈ V zu einem Knoten v ∈ V in einem gerichteten Graphen G = (V, E) ist ein Weg ((u1 , v1 ), . . . , (un , vn )), sodass • uk = uk f¨ur jedes 1 ≤ k < k ≤ n,  vk f¨ur jedes 1 ≤ k < k ≤ n und • vk =  vn , • u1 = d. h., jeder Knoten in V wird h¨ochstens einmal erreicht. Definition 2.7 (Kreis). Ein Kreis ist ein Weg von Knoten u zu Knoten u. Ein Kreis ist also ein geschlossener Weg, der dort endet, wo er anf¨angt. In Abb. 2.6 sehen wir zum Beispiel den Kreis ((2, 4), (4, 6), (6, 1), (1, 2)). Einen Graphen, der keinen Kreis enth¨alt, nennen wir kreisfrei. Ein Weg, der keinen Knoten mehrfach besucht, enth¨alt keine Kreise. Ein Pfad ist demzufolge ein Weg, der keine Kreise enth¨alt; der Weg in Abb. 2.5 ist also auch ein Pfad. Zusammenfassung: Weg, Kreis und Pfad Ein Weg von u nach v ist eine Abfolge von Kanten, die in der gegebenen Reihenfolge abgelaufen werden k¨onnen, um von Knoten u nach Knoten v zu gelangen. Ein Kreis ist ein Weg von einem Knoten zu demselben Knoten. Ein Pfad ist ein Weg, der keinen Kreis enth¨alt, und daher jeden Knoten h¨ochstens einmal besucht.

2.2 Graphen

25

Abb. 2.6 Kreis

1

2

3

4

5

6

Definition 2.8 (zusammenh¨angender Graph). Ein ungerichteter Graph heißt zusammenh¨angend, wenn es von jedem Knoten zu jedem anderen Knoten einen Pfad gibt. Definition 2.9 (Zusammenhangskomponente). Eine Zusammenhangskomponente eines Graphen (V, E) ist eine Teilmenge V  ⊆ V von Knoten, sodass der Graph (V  , E  ) zusammenh¨angend ist, wobei E  die Teilmenge von Kanten in E zwischen Knoten in V  darstellt, und es keinen Knoten v ∈ V \V  gibt, der adjazent zu einem Knoten in V  ist. Der Graph in Abb. 2.4 auf S. 23 ist zusammenh¨angend und bleibt dies auch, wenn wir Kante {1, 2} entfernen. Wenn wir zudem allerdings noch Kante {2, 4} entfernen, dann ist der resultierende Graph nicht zusammenh¨angend, denn es gibt keinen Pfad von Knoten 2 zu Knoten 1. Dieser Graph hat dann zwei Zusammenhangskomponenten {1, 3, 4, 5, 6} und {2}. Definition 2.10 (Baum). Ein Baum ist ein ungerichteter Graph, der kreisfrei und zusammenh¨angend ist. Der Graph in Abb. 2.7 ist ein Baum. Wir erkennen, dass wir bei Einf¨ugen einer weiteren Kante einen Kreis schließen und bei Entfernen einer Kante der resultierende Graph nicht zusammenh¨angend ist. 1

3

Abb. 2.7 Baum

2

5

4

6

7

26

2 Modellierung

Tats¨achlich haben B¨aume etliche Eigenschaften, die mehrere a¨ quivalente Definitionen f¨ur B¨aume zulassen. • Ein Graph ist genau dann ein Baum, wenn er maximal kreisfrei ist. Das bedeutet, dass der Graph bei Erg¨anzen einer beliebigen weiteren Kante die Eigenschaft der Kreisfreiheit verliert. • Ein Graph ist genau dann ein Baum, wenn er minimal zusammenh¨angend ist. Das bedeutet, dass bei Entfernen einer beliebigen Kante der resultierende Graph nicht mehr zusammenh¨angend ist. • Ein Graph ist genau dann ein Baum, wenn er zusammenh¨angend ist und genau eine Kante weniger als Knoten hat. • Ein Graph ist genau dann ein Baum, wenn er kreisfrei ist und genau eine Kante weniger als Knoten hat. Definition 2.11 (bipartiter Graph). Ein Graph G = (V, E) ist genau dann bipartit, wenn es eine nicht-leere Menge V   V gibt, sodass jede Kante einen Knoten in V  mit einem Knoten, der nicht in V  ist, verbindet. F¨ur einen bipartiten Graphen kann man die Menge von Knoten also in zwei nicht leere Teilmengen aufteilen, sodass alle Kanten zwischen Knoten verlaufen, die nicht in derselben Teilmenge sind. Wir werden einen bipartiten Graphen daher auch mit G = (V,U, E) spezifizieren, wobei V und U die beiden u¨ berschneidungsfreien Teilmengen von Knoten sind und E, wie gehabt, die Menge von Kanten darstellt. Der Graph in Abb. 2.8 ist bipartit, denn keine Kante verbindet zwei Knoten in V = {1, 3, 5, 7} und keine Kante verbindet zwei Knoten in U = {2, 4, 6, 8, 9}. Das bedeutet, dass jede Kante Knoten aus verschiedenen Mengen verbindet. Dies ist in Abb. 2.8 nicht leicht zu erkennen und daher werden wir bipartite Graphen in der Regel so darstellen, dass die Knoten der beiden Teilmengen in jeweils einer Spalte u¨ bereinander liegen, wie in Abb. 2.9 dargestellt.

Abb. 2.8 Ein bipartiter Graph

1

2

3

4

5

6

7

8

9

2.3 Mathematische Optimierungsmodelle

27 2 1 4 3 6 5 8 7

Abb. 2.9 Derselbe bipartite Graph wie in Abb. 2.8

9

2.3 Mathematische Optimierungsmodelle Mathematische Optimierungsmodelle (MO) bilden Probleme, insb. Optimierungsoder Entscheidungsprobleme, ab. Eines der oben beschriebenen Ziele bei der Erstellung von Modellen ist, das Abgebildete zu kommunizieren. Dies trifft nat¨urlich auch auf MO zu. Insbesondere ist hier die M¨oglichkeit zu erw¨ahnen, die abgebildeten Probleme sowie Probleminstanzen an Standardsoftware, sogenannte Solver, zu kommunizieren, die die Probleminstanz optimal oder heuristisch l¨ost. Es gibt zahlreiche solche Solver, z. B. Cplex (IBM (2019)), Gurobi (Gurobi Optimization (2019)) und SCIP (Achterberg (2009); Zuse Institute Berlin (2019)). Ihre Leistungsf¨ahigkeit wurde in den vergangenen Jahren und Jahrzehnten enorm gesteigert, sodass f¨ur viele Probleme Instanzen moderater Gr¨oße (oder gr¨oßer) mit ihnen gel¨ost werden k¨onnen. MO bieten hier also eine M¨oglichkeit, sich bei der L¨osung von Problemen auf etablierte Software zur¨uckzuziehen, ohne sich mit deren Implementierungsdetails besch¨aftigen zu m¨ussen. Die Schnittstellen solcher Solver sind MOs nachempfunden. An dieser Stelle soll noch einmal der konzeptionelle Unterschied zwischen Problem und MO betont werden, der nach Meinung des Autors in der Literatur zu wenig gew¨urdigt wird, weswegen die Begriffe h¨aufig synonym verwendet werden. Wie wir sehen werden, ist es sehr wohl m¨oglich, dass ein Problem durch verschiedene MO repr¨asentiert wird. Allein dies macht es notwendig zwischen den beiden Konzepten zu unterscheiden. Wir halten daher an der bisher eingef¨uhrten Terminologie fest. Allerdings ist es so, dass Programmschnittstellen oder sogar Verfahren mitunter stark modellorientiert sind. Wir werden daher im Folgenden auch davon sprechen, dass ein Verfahren ein MO l¨ost, wenn alle durch die jeweilige Modellform repr¨asentierten Probleme gel¨ost werden k¨onnen. Wir werden in Abschnitt 2.3.1 die einzelnen Bestandteile eines MO erl¨autern. Anschließend werden wir in Abschnitt 2.3.2 eine bestimmte Klasse von MOs erl¨autern, die insbesondere im Zusammenhang mit den Inhalten der Kapitel 3 und 4 und Solvern eine hohe Bedeutung hat.

28

2 Modellierung

2.3.1 Komponenten Wir wollen uns noch einmal kurz vergegenw¨artigen, dass Probleme durch Eingabe, LR, ZB, ZS und Frage beschrieben werden (siehe S. 6). Ein MO, das ein Problem abbildet, muss also diese Komponenten abbilden. Dies geschieht durch Verkn¨upfung numerischer Werte, d. h., ein MO eignet sich f¨ur solche Probleme, bei denen sich Eingabe, L¨osungen und Ausgabe durch numerische Werte und ZB sowie ZS durch deren Verkn¨upfung darstellen lassen.

2.3.1.1 Parameter und Variablen Die Eingabe eines Problems wird durch Symbole repr¨asentiert, die wir als Parameter bezeichnen. Parameter sind also im Sinne des MO vorgegeben und unver¨anderbar. Um Problem 1.1 (Produktionsplanung) abzubilden, ist es naheliegend, Zeitspannen und monet¨are Gr¨oßen durch jeweils einen Parameter zu repr¨asentieren. Wir w¨urden also vermutlich vier Parameter verwenden. ¨ Problem 1.1 (Produktionsplanung)). GeBeispiel 2.1 (Parameter eines MO fur winn pro Einheit von Produkt 1, Gewinn pro Einheit von Produkt 2, einheitliche Produktionsdauer pro Einheit und gesamte Zeitspanne f¨ur Produktion werden repr¨asentiert durch g1 , g2 , t und T . Ein Model f¨ur Problem 1.2 (Tourenplanung) m¨usste die Distanzen als Parameter abbilden. Hier ist es also nicht m¨oglich, eine fixe Anzahl Parameter zu benennen, denn die Anzahl h¨angt von der Anzahl von Orten ab. Die Anzahl selber ist ebenfalls ein Parameter. ¨ Problem 1.2 (Tourenplanung)). Die AnBeispiel 2.2 (Parameter eines MO fur zahl der Orte wird durch n und die Distanz von Ort i zu Ort j wird durch di, j f¨ur jedes Paar von Orten i und j repr¨asentiert. Parameter k¨onnen explizit oder implizit durch die Eingabe gegeben sein. So sind die Distanzen zwischen allen Paaren von Orten explizit gegeben, wir k¨onnen aber nat¨urlich die L¨angen aller m¨oglichen L¨osungen daraus ableiten. Somit ist auch die L¨ange einer bestimmten L¨osung ein Parameter. Es ist wichtig zu verstehen, dass ein Parameter eines MO nicht einen konkreten numerischen Wert hat. Die Belegung der Eingabe mit Werten ist in einem Problem ja ebenfalls nicht gegeben, sondern wird erst durch eine bestimmte Probleminstanz spezifiziert. Variablen hingegen haben auch f¨ur eine bestimmte Probleminstanz keinen konkreten vorgegebenen Wert. Sie repr¨asentieren u. a. L¨osungen des Problems. Der LR ist zwar durch das Problem vorgegeben, er enth¨alt aber in der Regel mehr als eine L¨osung. Da vorab nicht bekannt ist, welche L¨osung f¨ur die Ausgabe relevant ist, m¨ussen Variablen zun¨achst einmal jede (sinnvolle) L¨osung repr¨asentieren k¨onnen. Dar¨uber hinaus gibt es m¨oglicherweise weitere Variablen, die nicht zwingend zur Darstellung von L¨osungen ben¨otigt werden, aber notwendig sind, um das MO in

2.3 Mathematische Optimierungsmodelle

29

eine bestimmte Form zu bringen. Die Belegung der Variablen mit Werten ist erst durch eine Probleminstanz und eine L¨osung in dem entsprechenden LR spezifiziert. Zusammenfassung: Parameter und Variablen Parameter und Variablen sind Symbole, die den Input und L¨osungen repr¨asentieren. Ein Parameter ist im Rahmen des vorliegenden Problems unver¨anderlich und wird daher durch eine Probleminstanz mit einem konkreten Wert belegt. Variablen repr¨asentieren L¨osungen und haben daher keinen festen Wert. Naheliegende Variablen f¨ur Problem 1.1 (Produktionsplanung) lassen sich direkt aus der Spezifikation des LR ableiten. ¨ Problem 1.1 (Produktionsplanung)). ProBeispiel 2.3 (Variablen eines MO fur duktionsmenge von Produkt 1 und Produktionsmenge von Produkt 2 werden repr¨asentiert durch q1 und q2 . Die Wahl der Variablen f¨ur Problem 1.2 (Tourenplanung) ist weniger naheliegend. Der LR besteht aus Sequenzen von Orten, also nicht aus Mengen numerischer Werte, wie es bei Problem 1.1 (Produktionsplanung) der Fall ist. Wir behelfen uns daher mit einer indirekten Abbildung dieser Sequenzen. ¨ Problem 1.2 (Tourenplanung)). Sequenzen Beispiel 2.4 (Variablen eines MO fur werden repr¨asentiert durch die H¨aufigkeit xi, j f¨ur jedes Paar von Orten i und j, mit der Ort j in der Sequenz direkt auf Ort i folgt. ¨ Ahnlich wie bei den Werten von Parametern wird hier also nicht durch das Problem festgelegt, wie viele Variablen es gibt, sondern nur durch eine konkrete Probleminstanz. Es u¨ berrascht auch zun¨achst, dass wir durch die Variablen xi, j den LR u¨ berhaupt abbilden k¨onnen. Um dies zu verstehen, wollen wir uns noch einmal vor Augen f¨uhren, dass wir nur an solchen Sequenzen interessiert sind, in denen jeder Ort außer Ort 1 genau einmal enthalten ist. Ort 1 selber ist als erster und als letzter Ort der Sequenz enthalten. Daher hat jeder Ort in der Sequenz genau einen Nachfolger und genau einen Vorg¨anger. Eine solche Sequenz k¨onnen wir also abbilden, indem wir f¨ur jedes Paar von Orten i und j angeben, ob j der direkte Nachfolger von i ist oder nicht. Wir k¨onnen diese Information darstellen, indem wir xi, j = 1 setzen, wenn j der direkte Nachfolger von i ist, und xi, j = 0 setzen, wenn j nicht der direkte Nachfolger von i ist. Wir erkennen, dass hier also schon einiges an problemspezifischem Wissen in die Auswahl der Variablen geflossen ist. Damit alle sinnvollen L¨osungen abgebildet werden k¨onnen, ist es in der Regel nicht n¨otig, dass die Variablen alle numerischen Werte abbilden k¨onnen. Wir beschr¨anken uns generell auf die Menge R der reellen Zahlen als Dom¨ane (oder Wertebereich) von Variablen, werden diese aber h¨aufig weiter einschr¨anken. F¨ur die Variablen q1 und q2 im MO zu Problem 1.1 (Produktionsplanung) sind weder negative Werte noch Werte, die nicht-ganzzahlig sind, sinnvoll. Dies ergibt sich aus der Problemdefinition. Somit k¨onnen wir f¨ur beide Variablen die Dom¨ane

30

2 Modellierung

der nat¨urlichen Zahlen inklusive 0, also N0 , w¨ahlen. Weiterhin ist erkennbar, dass von keinem Produkt mehr als T /t Einheiten hergestellt werden k¨onnen, da die gesamte Zeitspanne f¨ur Produktion dies nicht erlaubt. Die Dom¨anen beider Variablen lassen sich also weiter auf die nat¨urlichen Zahlen in {0, . . . , T /t} reduzieren. In einem anderen, aber a¨ hnlichen Problem w¨aren wom¨oglich reelle Werte zugelassen, da das Produkt eine beliebige Teilung der Einheiten zul¨asst (beispielsweise bei der Produktion von Fl¨ussigkeiten). Dann w¨are eine Beschr¨ankung der Dom¨ane auf die Menge der reellen nicht-negativen Zahlen R≥0 sinnvoll. Wir sprechen von einer kontinuierlichen Variablen, wenn die Variable jeden Wert in einem Intervall annehmen kann, d. h. die Dom¨ane der Variablen ist durch das Intervall spezifiziert und enth¨alt in der Regel auch nicht-ganzzahlige Werte. Wenn es zwischen jedem Paar von Werten, die eine Variable annehmen kann, einen Wert gibt, den die Variable nicht annehmen kann, sprechen wir von einer diskreten Variablen. Wir haben bei den Erl¨auterungen der Variablen xi, j im MO zu Problem 1.2 (Tourenplanung) schon gesehen, dass diese nur sehr spezielle Werte annehmen k¨onnen m¨ussen, um alle sinnvollen L¨osungen zu repr¨asentieren. Es reicht, wenn jede dieser Variablen die Werte 0 und 1 annehmen kann, d. h., wir k¨onnen die Dom¨ane dieser Variablen auf {0, 1} beschr¨anken. Bei solchen Variablen sprechen wir von Bin¨arvariablen. Im Kontext von MO werden wir im Folgenden von Belegungen aller Variablen mit Werten aus ihren Dom¨anen als einer L¨osung sprechen. Falls n¨otig, werden die Elemente des LRs zur begrifflichen Abgrenzung als L¨osungen eines Problems bezeichnet. L¨osungen des MO repr¨asentieren also L¨osungen des abgebildeten Problems. Zusammenfassung: Dom¨anen von Variablen Dom¨anen von Variablen geben vor, welche Werte diese Variablen annehmen k¨onnen. Dabei werden keine Abh¨angigkeiten zwischen mehreren Variablen ber¨ucksichtigt. Wir unterscheiden zwischen kontinuierlichen bzw. diskreten Variablen, die alle Werte in einem Intervall bzw. Werte aus einer Menge von isolierten Werten annehmen k¨onnen.

2.3.1.2 Nebenbedingungen Die Variablen eines MO sollten so gew¨ahlt sein, dass sie ausdrucksstark genug sind, um alle sinnvollen L¨osungen des Problems zu repr¨asentieren. Dabei wird es nur in Ausnahmef¨allen gelingen, die Dom¨anen von Variablen so zu beschr¨anken, dass jede L¨osung des MO zu einer zul¨assigen L¨osung des Problems korrespondiert. Wenn wir Beispiel 2.3 auf S. 29 betrachten, dann stellen wir fest, dass wir bei unabh¨angiger Betrachtung der Variablen alle Werte in {0, . . . , T /t} zulassen m¨ussen. Nichtsdestotrotz entsprechen ohne weitere Einschr¨ankung nicht alle L¨osungen des MO einer zul¨assigen L¨osung des Problems. Die L¨osung q1 = q2 = T /t ist z. B. nicht zul¨assig, obwohl beide Variablen einen Wert aus der jeweiligen Dom¨ane haben. Ne-

2.3 Mathematische Optimierungsmodelle

31

benbedingungen (NB) formulieren Bedingungen, bei deren Erf¨ullung eine L¨osung des MO einer zul¨assigen L¨osung des Problems entspricht. NB repr¨asentieren also die ZB des abgebildeten Problems und wir bezeichnen eine L¨osung eines MO als zul¨assig, falls sie alle NB erf¨ullt. Salopp formuliert: Nebenbedingungen Eine L¨osung eines Modells ist zul¨assig, wenn sie alle NB erf¨ullt. NB werden so formuliert, dass eine zul¨assige L¨osung eines Modells einer zul¨assigen L¨osung des abgebildeten Problems entspricht. Die Struktur von NB ist grunds¨atzlich frei w¨ahlbar, wir beschr¨anken uns aber generell auf arithmetische Verkn¨upfung von Variablen und Parametern und die Verwendung der Vergleichsoperatoren gleich“, kleiner-gleich“ und gr¨oßer-gleich“.3 ” ” ” Mit diesem Instrumentarium k¨onnen wir leicht eine NB gestalten, die die zul¨assigen L¨osungen des MO zu Problem 1.1 (Produktionsplanung) identifiziert. ¨ Problem 1.1 (Produktionsplanung)). Eine L¨osung Beispiel 2.5 (NB eines MO fur des MO entspricht einer zul¨assigen L¨osung des Problems, wenn die Variablen so mit Werten der Dom¨anen belegt sind, dass t · q1 + t · q2 ≤ T gilt. Wir sehen, dass der Term auf der linken Seite der Ungleichung die gesamte Produktionsdauer in Abh¨angigkeit von der L¨osung, also den Produktionsmengen q1 und q2 , abbildet. Die NB formuliert die Anforderung, dass diese Produktionsdauer die Zeitspanne, die insgesamt f¨ur die Produktion zur Verf¨ugung steht, nicht u¨ berschreitet, was unmittelbar der ZB von Problem 1.1 (Produktionsplanung) entspricht. Die Formulierung der NB des MO ist in diesem Fall aus mehreren Gr¨unden recht offensichtlich. Wir m¨ussen nur zwei Variablen ber¨ucksichtigen, es gibt nur einen einzigen beschr¨ankenden Faktor und der Zusammenhang zwischen Nut” zung“ und Verf¨ugbarkeit dieses Faktors ist relativ offensichtlich. In der Regel haben MO weder eine fixe Anzahl von Variablen noch eine fixe Anzahl von NB. Die Zusammenh¨ange zwischen den unterschiedlichen NB k¨onnen zudem recht komplex sein. Wir wollen die Komplexit¨at langsam steigern und betrachten hierf¨ur ein weiteres Problem, das eine Verallgemeinerung von Problem 1.1 (Produktionsplanung) darstellt.

3

Wir werden auf den Grund f¨ur diese Einschr¨ankung kurz zu Beginn von Abschnitt 2.3.2 eingehen.

32

2 Modellierung

Problem 2.1 (Produktionsplanung 2). Eingabe: Anzahl Produkte, Anzahl Ressourcen, Gewinn pro Einheit jedes Produkts, Kapazit¨at jeder Ressource, Kapazit¨atsverbrauch f¨ur jede Ressource bei Produktion einer Einheit jedes Produkts LR: Ganzzahlige, nicht-negative Produktionsmengen f¨ur jedes Produkt ZB: Der gesamte Kapazit¨atsverbrauch jeder Ressource darf die Kapazit¨at nicht u¨ berschreiten. ZS: Gesamtgewinn ist zu maximieren. Frage: Was ist eine optimale L¨osung? In einem MO f¨ur Problem 2.1 (Produktionsplanung 2) verwenden wir die Symbole n und m f¨ur die Anzahl der Produkte und die Anzahl der Ressourcen. Die Produkte und Ressourcen selber nummerieren wir von 1 bis n bzw. von 1 bis m. Analog ¨ zu den obigen Uberlegungen verwenden wir dann eine Variable qi mit Dom¨ane N0 f¨ur jedes Produkt i = 1, . . . , n, die die Produktionsmenge von Produkt i repr¨asentiert. Als Parameter verwenden wir gi , i = 1, . . . , n, f¨ur die Gewinne pro Einheit der Produkte, K j , j = 1, . . . , m, f¨ur die Kapazit¨aten der Ressourcen und a j,i , i = 1, . . . , n und j = 1, . . . , m, f¨ur den Kapazit¨atsverbrauch der Ressource j bei Herstellung einer Einheit von Produkt i. Die naheliegenden NB haben eine ganz a¨ hnliche Struktur wie die NB in Beispiel 2.5. Diese stellen den Kapazit¨atsverbrauch jeder Ressource der verf¨ugbaren Kapazit¨at gegen¨uber und fordern, dass der Verbrauch die Verf¨ugbarkeit nicht u¨ berschreitet. Wir ben¨otigen allerdings eine NB pro Ressource, denn die Kapazit¨at soll ja f¨ur jede Ressource eingehalten werden. Da wir f¨ur die Anzahl der Ressourcen m keinen konkreten Wert kennen, m¨ussen wir uns einer Symbolik bedienen, die ausdr¨uckt, dass eine NB dieses Typs f¨ur jede Ressource j, j = 1, . . . , m, formuliert wird. Zudem kennen wir nicht den konkreten Wert n f¨ur die Anzahl der Produkte. Wir ben¨otigen also weiterhin eine Symbolik, die ausdr¨uckt, dass es einen Summanden f¨ur jedes Produkt i, i = 1, . . . , n, gibt, der den Verbrauch der jeweiligen Kapazit¨at repr¨asentiert. ¨ Problem 2.1 (Produktionsplanung 2)). Eine L¨oBeispiel 2.6 (NB eines MO fur sung des MO entspricht einer zul¨assigen L¨osung des Problems, wenn die Variablen so mit Werten der Dom¨anen belegt sind, dass n

∑ a j,i qi ≤ K j

∀ j = 1, . . . , m

i=1

gilt. Die NB sind so dargestellt, dass wir unter Verwendung eines Summenzeichens auf der linken Seite einen Summanden f¨ur jedes Produkt darstellen. Die Formulierung der NB f¨ur jede Ressource j wird durch den Allquantor ∀ erreicht. Dieser kann nat¨urlichsprachlich als f¨ur alle“ gelesen werden. So stellt die Formulierung in Bei” spiel 2.6 jeweils eine NB in der dargestellten Struktur f¨ur alle Ressourcen von 1 bis

2.3 Mathematische Optimierungsmodelle

33

m dar. In jeder dieser NB wird auf der linken Seite der gesamte Kapazit¨atsverbrauch der entsprechenden Ressource durch die n Produkte abgebildet. Nun kennen wir alle Instrumente, die wir ben¨otigen werden, um NB zu formulieren. W¨ahrend die bisher betrachteten NB jeweils eine einheitliche, eher naheliegende Struktur haben, ben¨otigen wir zur Formulierung eines MO f¨ur Problem 1.2 (Tourenplanung) mehrere NB mit unterschiedlichen Strukturen, die zumindest f¨ur das unge¨ubte Auge weniger offensichtlich erscheinen. ¨ Problem 1.2 (Tourenplanung)). Eine L¨osung des Beispiel 2.7 (NB eines MO fur MO entspricht einer zul¨assigen L¨osung des Problems, wenn die Variablen so mit Werten der Dom¨anen belegt sind, dass n

∑ xi, j = 1

∀ i = 1, . . . , n

(2.1)

∑ x j,i = 1

∀ i = 1, . . . , n

(2.2)

∀ S  {1, . . . , n}, S = 0/

(2.3)

j=1 n j=1

∑ ∑ xi, j ≥ 1

i∈S j∈S

gilt. Wir wollen uns der Formulierung in Beispiel 2.7 schrittweise n¨ahern. Die NB (2.1) besagt, dass f¨ur jeden Ort i = 1, . . . , n genau eine der Variablen xi,1 , . . . , xi,n in einer zul¨assigen L¨osung den Wert 1 annimmt. Dies entspricht der Forderung, dass i genau einen Nachfolger in der Sequenz haben muss. Analog dazu besagt NB (2.2), dass f¨ur jeden Ort i = 1, . . . , n genau eine der Variablen x1,i , . . . , xn,i in einer zul¨assigen L¨osung den Wert 1 annimmt. Dies entspricht der Forderung, dass i genau einen Vorg¨anger in der Sequenz haben muss. Beide Forderungen m¨ussen offensichtlich erf¨ullt sein, damit eine L¨osung des Problems, die durch eine L¨osung des MO repr¨asentiert wird, zul¨assig ist. Leider reicht dies noch nicht, denn es ist m¨oglich, dass sich sogenannte Subtouren bilden, d. h., wir erhalten mehrere in sich abgeschlossene Touren, die jeweils nicht alle Orte besuchen. Wenn wir Probleminstanz 1.2 auf S. 8 betrachten, k¨onnen wir erkennen, dass eine L¨osung des MO, in der x1,2 , x2,1 , x3,4 und x4,3 den Wert 1 und alle anderen Variablen den Wert 0 zugeordnet bekommen, die NB (2.1) und (2.2) erf¨ullt. Eine solche L¨osung ist in Abb. 2.10 mithilfe eines Graphen dargestellt, wobei die schwarzen Kanten die in der L¨osung benutzten Verbindungen darstellen. Wir h¨atten eine Subtour, bei der nach Ort 1 Ort 2 und nach Ort 2 wieder Ort 1 besucht wird, und eine weitere Subtour mit den Orten 3 und 4. Allerdings l¨asst sich diese L¨osung des MO nicht als zul¨assige L¨osung des Problems interpretieren. Solche L¨osungen des MO werden durch NB (2.3) als unzul¨assig deklariert. NB (2.3) besagt, dass jede echte Teilmenge S von Orten mindestens einmal verlassen werden muss: Mindestens einmal muss ein Ort j, der nicht in S liegt, direkt nach einem Ort i in S besucht werden. In dem obigen Beispiel ist NB (2.3) sowohl f¨ur S = {1, 2} als auch f¨ur S = {3, 4} verletzt.

34

2 Modellierung

1

2

3

4

Abb. 2.10 Subtouren

2.3.1.3 Zielfunktion Die Zielfunktion eines MO repr¨asentiert die ZS des abgebildeten Problems. Hierbei kann die Zielfunktion eine beliebige Funktion, definiert auf den Variablen und Parametern des MO, sein. Wir beschr¨anken uns auf Funktionen, die die Menge der zul¨assigen L¨osungen des MO auf die Menge der reellen Zahlen R abbilden. Das bedeutet, dass die Zielfunktion jeder zul¨assigen L¨osung einen Zahlenwert zuordnet. Diesen Wert werden wir als Zielfunktionswert der L¨osung bezeichnen. Intuitiv k¨onnen wir den Zielfunktionswert einer L¨osung als ein G¨utemaß ansehen, wobei noch offen ist, wie zwei L¨osungen anhand ihrer Zielfunktionswerte verglichen werden. Dies wird durch die Zielorientierung festgelegt. Diese gibt an, ob von zwei L¨osungen mit unterschiedlichen Zielfunktionswerten die mit dem h¨oheren oder die mit dem niedrigeren als die bessere angesehen wird. Im ersten Fall wird der Zielfunktion in dem MO max“ und im zweiten Fall min“ vorangestellt, denn ” ” wir suchen eine L¨osung, die den Zielfunktionswert im ersten Fall maximiert und im zweiten Fall minimiert. Wir sagen dann im Folgenden, dass eine L¨osung eines MO optimal ist, wenn sie zul¨assig ist und es keine bessere zul¨assige L¨osung gibt. Salopp formuliert: Zielfunktion Die Zielfunktion ordnet jeder L¨osung einen Wert zu. Die Orientierung der Zielfunktion gibt an, ob kleinere oder gr¨oßere Werte besser sind. M¨ogliche Zielfunktionen von MO f¨ur Probleme 1.1 (Produktionsplanung) und ¨ 2.1 (Produktionsplanung 2) ergeben sich dann leicht durch analoge Uberlegungen wie zu den NB. ¨ Problem 1.1 (Produktionsplanung)). Beispiel 2.8 (Zielfunktion eines MO fur Eine L¨osung des MO wird mit g1 · q1 + g2 · q2 bewertet und wir streben eine m¨oglichst hohe Bewertung an ( max“). ”

2.3 Mathematische Optimierungsmodelle

35

¨ Problem 2.1 (Produktionsplanung 2)). Beispiel 2.9 (Zielfunktion eines MO fur Eine L¨osung des MO wird mit n

∑ gi · qi

i=1

bewertet und wir streben eine m¨oglichst hohe Bewertung an ( max“). ” Eine m¨ogliche Zielfunktion eines MO f¨ur Problem 1.2 (Tourenplanung) l¨asst sich wie folgt angeben. ¨ Problem 1.2 (Tourenplanung)). Eine Beispiel 2.10 (Zielfunktion eines MO fur L¨osung des MO wird mit n

n

∑ ∑ di, j · xi, j

i=1 j=1

bewertet und wir streben eine m¨oglichst niedrige Bewertung an ( min“). ” Die Zielfunktion stellt eine Summe u¨ ber s¨amtliche m¨ogliche Vorg¨anger-NachfolgerBeziehungen dar. Der Summand hat einen Wert von di, j , wenn j der direkte Nachfolger von i ist, und von 0, wenn das nicht der Fall ist.

2.3.1.4 Beispiele Wir tragen in diesem Abschnitt noch einmal die oben besprochenen Komponenten von MO, die Problem 1.1 (Produktionsplanung), Problem 2.1 (Produktionsplanung 2) und Problem 1.2 (Tourenplanung) abbilden, zusammen und besprechen dar¨uber hinaus weitere Modelle. Wir beginnen mit MOs, deren Komponenten wir in den Abschnitten 2.3.1.1 bis 2.3.1.3 schon kennengelernt haben. Lediglich die Darstellung der vollst¨andigen Modelle ist noch zu erl¨autern. Wie schon in Abschnitt 2.3.1.3 erl¨autert stellen wir dabei min“ oder max“ der Zielfunktion voran, um die Zielorientierung darzustellen. ” ” Die NB werden mit unter Beachtung der Nebenbedingung(en)“ (u.B.d.N.) einge” leitet. In englischsprachiger Literatur findet man stattdessen subject to“ (s.t.). Die ” Dom¨anen der Variablen werden in der Regel abschließend in derselben Form wie die NB angegeben. Modell 2.1 (Produktionsplanung (Problem 1.1)). max g1 · q1 + g2 · q2 u.B.d.N.

t · q1 + t · q2 ≤ T q 1 , q2 ∈ N 0

(2.4) (2.5) (2.6)

Wenn wir, wie angesprochen, reellwertige nicht-negative Produktionsmengen erlauben wollen, m¨usste (2.6) durch (2.7) ersetzt werden.

36

2 Modellierung

q1 , q2 ≥ 0

(2.7)

Wir notieren u¨ blicherweise wie in (2.7) nur die Intervallgrenzen der Dom¨ane kontinuierlicher Variablen und nicht explizit, dass die Dom¨ane eine Teilmenge der reellen Zahlen ist. Variante (2.8) ist bedeutungsgleich zu (2.7), aber eher un¨ublich. q1 , q2 ∈ R≥0

(2.8)

Analog ergeben sich die vollst¨andigen MO f¨ur Problem 2.1 (Produktionsplanung 2) und 1.2 (Tourenplanung). Modell 2.2 (Produktionsplanung 2 (Problem 2.1)). n

max ∑ gi · qi

(2.9)

i=1

n

u.B.d.N.

∑ a j,i · qi ≤ K j

∀ j = 1, . . . , m

(2.10)

qi ∈ N0

∀ i = 1, . . . , n

(2.11)

i=1

Modell 2.3 (Tourenplanung (Problem 1.2)). n

n

min ∑ ∑ di, j · xi, j

(2.12)

i=1 j=1

n

u.B.d.N.

∑ xi, j = 1

∀ i = 1, . . . , n

(2.13)

∑ x j,i = 1

∀ i = 1, . . . , n

(2.14)

∑ ∑ xi, j ≥ 1

∀ S  {1, . . . , n}, S = 0/

(2.15)

∀ i, j = 1, . . . , n

(2.16)

j=1 n j=1 i∈S j∈S

xi, j ∈ {0, 1}

Es wurde schon zuvor betont, dass ein Modell zwar eindeutig interpretierbar sein sollte, sich aber in aller Regel ein Original durch verschiedene Modelle darstellen l¨asst. Dies soll am Beispiel der Tourenplanung veranschaulicht werden. In Modell 2.3 wird eine Sequenz repr¨asentiert, indem explizit dargestellt wird, welcher Ort direkter Vorg¨anger (oder Nachfolger) von welchem anderen Ort in der Sequenz ist. Wir k¨onnen stattdessen auch durch Variablen darstellen, ob ein Ort eine bestimmte Position innerhalb der Sequenz einnimmt. Diese Idee wird in Modell 2.4 genutzt.

2.3 Mathematische Optimierungsmodelle

37

Modell 2.4 (Tourenplanung 2 (Problem 1.2)). n

n

n

min ∑ ∑ ∑ di, j · yi,s · y j,s+1

(2.17)

s=1 i=1 j=1

n

u.B.d.N.

∑ yi,s = 1

∀ i = 2, . . . , n

(2.18)

∑ yi,s = 1

∀ s = 2, . . . , n

(2.19)

s=2 n i=2

y1,1 = y1,n+1 = 1 yi,s ∈ {0, 1}

(2.20) ∀ i = 1, . . . , n; s = 1, . . . , n + 1

(2.21)

In Modell 2.4 werden ebenfalls Bin¨arvariablen verwendet. Wir betrachten die n+ 1 Positionen in der gesuchten Sequenz von Orten (Ort 1 ist zweimal enthalten) und verwenden eine Bin¨arvariable yi,s f¨ur jede Position s und jeden Ort i, die den Wert 1 annimmt, wenn i an Position s der Sequenz ist. NB (2.18) bis (2.20) stellen dann sicher, dass eine Sequenz von Orten repr¨asentiert wird, in der jeder Ort (außer Ort 1) genau eine Position innehat, in der auf jeder Position genau ein Ort ist und in der Ort 1 erster und letzter Ort ist. In der Zielfunktion wird die Distanz di, j ber¨ucksichtigt, wenn es eine Position s gibt, sodass sich Ort i an s und Ort j an s + 1 befindet. Um einen umfassenderen Eindruck zu vermitteln, welche Art von Problemen sich durch MO repr¨asentieren lassen und wie dies geschehen kann, wollen wir im Weiteren noch vier weitere MO betrachten. Zun¨achst werden wir hierf¨ur jeweils ein Problem kurz erl¨autern und dann formal definieren. Anschließend wird dann ein entsprechendes MO formuliert und erl¨autert. Das erste Problem befasst sich mit der Standortplanung, d. h. mit Entscheidungen dar¨uber, ob und wo Standorte er¨offnet werden sollen und wie die Kundenbedarfe erf¨ullt werden sollen. Wir betrachten eine Menge von potentiellen Standorten, die wir jeweils er¨offnen oder geschlossen lassen k¨onnen. Wenn ein potentieller Standort er¨offnet wird, werden standortabh¨angige Fixkosten f¨allig. Jeder Standort hat eine bestimmte Kapazit¨at, d. h. eine H¨ochstmenge (des einzigen betrachteten Produkts), die er ausliefern kann. Weiterhin haben wir Kunden mit individuellen Bedarfen, die durch Belieferung gedeckt werden m¨ussen. F¨ur die Lieferung einer Einheit des Produktes von einem Standort an einen Kunden werden ebenfalls individuelle Kosten f¨allig. Es soll eine Auswahl von zu er¨offnenden Standorten getroffen werden sowie Liefermengen zwischen er¨offneten Standorten und Kunden so bestimmt werden, dass Kapazit¨aten eingehalten und Bedarfe gedeckt werden. Das Ziel ist dabei, die entstehenden Gesamtkosten zu minimieren.

38

2 Modellierung

Problem 2.2 (Standortplanung). Eingabe: Anzahl n potentieller Standorte, Anzahl m von Kunden, Fixkosten fi und Kapazit¨at Ci f¨ur jeden potentiellen Standort i = 1, . . . , n, Bedarf d j f¨ur jeden Kunden j = 1, . . . , m, Transportkosten ci, j pro Einheit f¨ur jeden potentiellen Standort i = 1, . . . , n und jeden Kunden j = 1, . . . , m LR: Reellwertige, nicht-negative Transportmengen f¨ur jeden potentiellen Standort i = 1, . . . , n und jeden Kunden j = 1, . . . , m ZB: Kein potentieller Standort liefert mehr als seine Kapazit¨at und jeder Kunde erh¨alt mindestens seinen Bedarf. ZS: Gesamtkosten, bestehend aus Fixkosten der ausliefernden Standorte und Transportkosten, sind zu minimieren. Frage: Was ist eine optimale L¨osung? Wir verwenden Variablen, die die Transportmengen zwischen potentiellen Standorten und Kunden abbilden. Die nicht-negative, kontinuierliche Variable xi, j stellt die von dem potentiellen Standort i = 1, . . . , n zu Kunde j = 1, . . . , m transportierte Menge dar. Modell 2.5 (Standortplanung (Problem 2.2)).

n

min ∑ fi · sgn i=1

n

u.B.d.N.

m

∑ xi, j

j=1

n

m

+ ∑ ∑ ci, j · xi, j

(2.22)

i=1 j=1

∑ xi, j ≥ d j

∀ j = 1, . . . , m

(2.23)

∑ xi, j ≤ Ci

∀ i = 1, . . . , n

(2.24)

xi, j ≥ 0

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

(2.25)

i=1 m

j=1

NB (2.23) und (2.24) sowie die Dom¨anendeklaration (2.25) stellen die Deckung der Bedarfe und die Einhaltung der Kapazit¨aten und der Nichtnegativit¨atsbedingungen sicher. Der zweite Teil der Zielfunktion spiegelt die Transportkosten wider. Zu jeder Transportrelation korrespondiert ein Summand, der die jeweiligen Kosten als Produkt aus Transportmenge und Kosten pro Einheit darstellt. Der erste Teil der Zielfunktion stellt die Fixkosten dar. Die Funktion sgn nimmt f¨ur negative Werte den Wert −1, f¨ur positive Werte den Wert 1 und f¨ur 0 den Wert 0 an. Dementsprechend hat der Summand, der zum potentiellen Standort i geh¨ort, den Wert 0, wenn nichts von Standort i ausgeliefert wird, d. h. wenn ∑mj=1 xi, j = 0 gilt, und den Wert fi , wenn i etwas ausliefert, d. h. wenn ∑mj=1 xi, j > 0 gilt. Das zweite Problem befasst sich mit der Zuordnung von Arbeitsschritten, die an einem Werkst¨uck ausgef¨uhrt werden m¨ussen, zu Stationen, die von den Werkst¨ucken nacheinander auf einem Fließband durchlaufen werden. Wir gehen davon aus, dass die Arbeitsschritte, die einer Station zugeordnet werden, nacheinander durchgef¨uhrt

2.3 Mathematische Optimierungsmodelle

39

werden. Jeder Arbeitsschritt hat eine Durchf¨uhrungsdauer und jede Station ist somit u¨ ber eine Zeitspanne, die der Summe der Durchf¨uhrungsdauern der ihr zugeordneten Arbeitsschritte entspricht, besch¨aftigt. Diese Zeitspanne soll eine vorgegebene Taktzeit nicht u¨ berschreiten. Zwischen zwei Arbeitsschritten kann es Reihenfolgebeziehungen geben. Eine Reihenfolgebeziehung erkl¨art einen der Arbeitschritte zum Vorg¨anger und den anderen zum Nachfolger. Der Nachfolger kann erst durchgef¨uhrt werden, nachdem der Vorg¨anger durchgef¨uhrt wurde. Die Einhaltung einer Reihenfolgebeziehungen bedeutet, dass der Nachfolger nicht einer Station zugeordnet wird, die vor der Station des Vorg¨angers durchlaufen wird. Unter Einhaltung dieser Bedingungen ist das Ziel, so wenige Stationen wie m¨oglich zu verwenden. Problem 2.3 (Fließbandplanung). Eingabe: Anzahl n von Arbeitsschritten, Durchf¨uhrungsdauer ti und Menge von Nachfolgern Ni f¨ur jeden Arbeitsschritt i = 1, . . . , n, Taktzeit C LR: Zuordnung von Arbeitsschritten zu Stationen ZB: F¨ur keine Station u¨ berschreitet die Summe der Durchf¨uhrungsdauern der ihr zugeordneten Arbeitsschritte C und kein Vorg¨anger wird einer sp¨ateren Station zugeordnet als einer seiner Nachfolger. ZS: Die Anzahl der Stationen, denen mindestens ein Arbeitsschritt zugeordnet wird, ist zu minimieren. Frage: Was ist eine optimale L¨osung? Zun¨achst erkennen wir, dass nie mehr Stationen als Arbeitsschritte ben¨otigt werden. Daher k¨onnen wir die Stationen durch j = 1, . . . , n benennen und interpretieren die Nummerierung so, dass eine Station mit kleinerem Index fr¨uher durchlaufen wird. Dann k¨onnen wir Zuordnungen durch Bin¨arvariablen darstellen. Variable xi, j nimmt den Wert 1 an, wenn Arbeitsschritt i = 1, . . . , n Station j = 1, . . . , n zugeordnet wird. Modell 2.6 (Fließbandplanung (Problem 2.3)).



n

min ∑

n

sgn

j=1

n

∑ xi, j

(2.26)

i=1

∑ xi, j = 1

∀ i = 1, . . . , n

(2.27)

∑ ti · xi, j ≤ C

∀ j = 1, . . . , n

(2.28)

∀ i = 1, . . . , n; i ∈ Ni

(2.29)

∀ i, j = 1, . . . , n

(2.30)

u.B.d.N.

j=1 n

i=1 n

n

j=1

j=1

∑ j · xi, j ≤ ∑ j · xi , j xi, j ∈ {0, 1}

40

2 Modellierung

NB (2.27) bis (2.29) sowie Dom¨anendeklaration (2.30) stellen sicher, dass jeder Arbeitsschritt einer Station zugeordnet wird, dabei bei keiner Station die Taktzeit u¨ berschritten wird und keine Reihenfolgebeziehung verletzt wird. NB (2.27) und (2.28) stellen dabei strukturell nichts Neues dar. Die Zielfunktion a¨ hnelt strukturell dem ersten Teil der Zielfunktion (2.22). Nur NB (2.29), die f¨ur jedes Paar i und i von Arbeitsschritten, zwischen denen es eine Reihenfolgebeziehung mit Vorg¨anger i und Nachfolger i gibt, formuliert wird, wollen wir an dieser Stelle etwas n¨aher erl¨autern. Wir betrachten zun¨achst die linke Seite der Ungleichung und erkennen, dass es f¨ur jede Station einen Summanden gibt. Jeder Summand hat einen Wert von 0, wenn i nicht der jeweiligen Station j zugeordnet ist, und hat einen Wert von j, wenn i Station j zugeordnet ist. Wir wissen wegen (2.27), dass genau einer dieser Summanden einen Wert gr¨oßer 0 annimmt. Die linke Seite nimmt also einen Wert an, der der Nummer der Station, der i zugeordnet ist, entspricht. Analog dazu nimmt die rechte Seite einen Wert an, der der Nummer der Station, der i zugeordnet ist, entspricht. Dass der Wert der linken Seite den Wert der rechten Seite nicht u¨ berschreiten darf, entspricht also direkt der Einhaltung der Reihenfolgebeziehung zwischen i und i . Wir wollen dies noch an einem Beispiel verdeutlichen. Wir betrachten eine Probleminstanz mit vier Arbeitsschritten, also n = 4, und ein Paar von Arbeitsschritten i = 2 und i = 3, sodass i ∈ Ni . Da n mit einem konkreten Wert belegt ist, k¨onnen wir die linke und rechte Seite von NB (2.29) f¨ur i = 2 und i = 3 ausschreiben und erhalten 1 · x2,1 + 2 · x2,2 + 3 · x2,3 + 4 · x2,4 ≤ 1 · x3,1 + 2 · x3,2 + 3 · x3,3 + 4 · x3,4 .

(2.31)

Wenn i = 2 Station 1 und i = 3 Station 3 zugeordnet ist, erhalten wir auf der linken und der rechten Seite die Werte 1 und 3 und die NB ist erf¨ullt. Wenn aber i = 2 Station 4 und i = 3 Station 3 zugeordnet ist, erhalten wir auf der linken und der rechten Seite die Werte 4 und 3 und die NB ist verletzt. Das dritte Problem befasst sich mit der zeitlichen Planung von Projekten, die aus mehreren Arbeitsschritten bestehen. Betrachtet werden weiterhin ein diskretisierter Planungshorizont (eingeteilt in Perioden) und eine Menge von Ressourcen, die in jeder Periode mit einer bestimmten Kapazit¨at zur Verf¨ugung stehen. Jeder Arbeitsschritt hat eine ganzzahlige Durchf¨uhrungsdauer (gemessen in Perioden) und jeder Arbeitsschritt belegt w¨ahrend seiner Durchf¨uhrung eine bestimmte Anzahl von Kapazit¨atseinheiten jeder Ressource. Zu jedem Zeitpunkt darf die Inanspruchnahme der Kapazit¨at jeder Ressource deren verf¨ugbare Kapazit¨at nicht u¨ berschreiten. Zwischen zwei Arbeitsschritten kann es Reihenfolgebeziehungen geben. Die Durchf¨uhrung eines Arbeitsschrittes kann erst begonnen werden, nachdem die Durchf¨uhrung aller Vorg¨anger abgeschlossen wurde. Unter Einhaltung dieser Bedingungen ist das Ziel, ein Zeitfenster f¨ur die Durchf¨uhrung jedes Arbeitsschrittes festzulegen, sodass der letzte Arbeitsschritt (und somit das gesamte Projekt) so fr¨uh wie m¨oglich abgeschlossen wird.

2.3 Mathematische Optimierungsmodelle

41

Problem 2.4 (Projektplanung). Eingabe: Anzahl n von Arbeitsschritten, Anzahl R von Ressourcen, ganzzahlige Durchf¨uhrungsdauer p j und Menge von Vorg¨angern V j f¨ur jeden Arbeitsschritt j = 1, . . . , n, Kapazit¨at Cr f¨ur jede Ressource r = 1, . . . , R, Belegung a j,r von Kapazit¨at jeder Ressource r = 1, . . . , R w¨ahrend der Durchf¨uhrung jedes Arbeitsschritts j = 1, . . . , n LR: Durchf¨uhrungszeitfenster f¨ur jeden Arbeitsschritt ZB: F¨ur keine Ressource u¨ berschreitet die Inanspruchnahme in einer Periode die Kapazit¨at und kein Nachfolger wird gestartet, bevor einer seiner Vorg¨anger abgeschlossen wurde. ZS: Die Periode, in der der letzte Arbeitsschritt abgeschlossen wird, ist zu minimieren. Frage: Was ist eine optimale L¨osung? Wir bestimmen zun¨achst eine Anzahl T von Perioden, in denen wir das Projekt sicher durchf¨uhren k¨onnen. Diese Anzahl l¨asst sich z. B. als Summe der Durchf¨uhrungsdauern aller Arbeitsschritte bestimmen. Wir verwenden dann wiederum Bin¨arvariablen, um L¨osungen des Problems darzustellen. Variable x j,t nimmt den Wert 1 an, wenn t die letzte Periode ist, in der Arbeitsschritt j = 1, . . . , n durchgef¨uhrt wird. Dies spezifiziert das Zeitfenster, in dem j ausgef¨uhrt wird, da seine Durchf¨uhrungsdauer ja bekannt ist. Modell 2.7 (Projektplanung (Problem 2.4)). T

∑ t · x j,t

min max

j=1,...,n

(2.32)

t=p j

T

∑ x j,t = 1

u.B.d.N.

∀ j = 1, . . . , n

(2.33)

t=p j T



t=p j

t · x j ,t −



n

∑ ⎝a j,r ·

j=1

T

∑ (t − p j ) · x j,t ≤ 0

t=p j

min{T,t+p j −1}



t  =max{t,p

∀ j = 1, . . . , n; j ∈ V j (2.34)

⎞ x j,t  ⎠ ≤ Cr

∀t = 1, . . . , T ; r = 1, . . . , R

j}

(2.35) x j,t ∈ {0, 1}

∀ j = 1, . . . , n;t = p j , . . . , T (2.36)

NB (2.33) stellt sicher, dass jeder Arbeitsschritt durchgef¨uhrt wird. Zu beachten ist hier, dass f¨ur Arbeitsschritt j eine der Perioden p j , . . . , T die letzte sein muss, in der j durchgef¨uhrt wird. Hierdurch ist sichergestellt, dass j fr¨uhestens in Periode 1 startet. Durch NB (2.34) wird die Einhaltung der Reihenfolgebeziehungen sicherge-

42

2 Modellierung

¨ stellt. Wir interpretieren zun¨achst den ersten Teil der linken Seite. Ahnlich wie f¨ur  (2.29) n¨aher erl¨autert, ergibt sich hier die letzte Periode in der j durchgef¨uhrt wird. Analog ergibt sich f¨ur den zweiten Teil die letzte Periode vor der Durchf¨uhrung von j. Zur Einhaltung der NB muss also die letzte Periode vor Durchf¨uhrung von j mindestens so groß sein wie die letzte Periode, in der der Vorg¨anger j durchgef¨uhrt wird. Dies entspricht unmittelbar der Einhaltung der Reihenfolgebeziehung zwischen Vorg¨anger j und Nachfolger j. Auch NB (2.35), die f¨ur jede Ressource r und Periode t die Einhaltung der Kapazit¨at sicherstellt, soll hier n¨aher erl¨autert werden. Wir wollen zun¨achst die innere Summe f¨ur einen Arbeitsschritt j und eine Periode t mit p j ≤ t ≤ T − p j + 1 analysieren. Die innere Summe evaluiert zu 1, falls eine Periode in t, . . . ,t + p j − 1 die letzte ist, in der Arbeitsschritt j durchgef¨uhrt wird, und ansonsten zu 0. D. h., die innere Summe hat genau dann einen Wert von 1, wenn j in t durchgef¨uhrt wird. Wenn wir nun eine beliebige Periode t, f¨ur die nicht zwangsl¨aufig p j ≤ t ≤ T − p j + 1 gilt, betrachten, dann muss sichergestellt werden, dass der Index t  der inneren Summe nur solche Perioden adressiert, f¨ur die es die Variable x j,t  u¨ berhaupt gibt. Daher wird keine Periode t  < p j und keine Periode t  > T ber¨ucksichtigt und wir adressieren lediglich jede Periode t  = max{t, p j }, . . . , min{T,t + p j − 1}. Ein Summand der a¨ ußeren Summe auf der linken Seite entspricht also der Belastung von Ressource r in Periode t durch Arbeitsschritt j. Der gesamte Wert der linken Seite gibt daher die gesamte Belastung von Ressource r in Periode t an. Abschließend soll die Zielfunktion (2.32) analysiert werden. Die Summe im Maximierungsterm repr¨asentiert die letzte Periode, in der ein Arbeitsschritt j durchgef¨uhrt wird. Eine L¨osung wird durch die gr¨oßte unter diesen Perioden, also die letzte Periode, in der irgendein Arbeitsschritt durchgef¨uhrt wird, bewertet. Das vierte (und letzte) neue Problem in diesem Abschnitt befasst sich mit der r¨aumlichen Anordnung von Objekten zwischen denen es Materialfl¨usse gibt. Wir betrachten eine gegebene Menge von Objekten und ebenso viele Positionen, auf die sie gestellt werden k¨onnen. Zwischen jedem Paar von Positionen gibt es eine Distanz und zwischen jedem Paar von Objekten gibt es eine Transportmenge. Ziel ist es nun, den Positionen jeweils ein Objekt so zuzuordnen, dass der gesamte Transportaufwand minimiert wird. Als Aufwand f¨ur den Transport von einem Objekt zu einem anderen wird dabei das Produkt der entsprechenden Transportmenge und der Distanz zwischen den Positionen, denen die Objekte zugeordnet wurden, angesehen.

2.3 Mathematische Optimierungsmodelle

43

Problem 2.5 (Quadratisches Zuordnungsproblem). Eingabe: Anzahl n von Objekten und Positionen, Transportmenge mi,i f¨ur jedes versendende Objekt i = 1, . . . , n und jedes empfangende Objekt i = 1, . . . , n, Distanz dk,k von jeder Position k = 1, . . . , n zu jeder Position k = 1, . . . , n LR: Zuordnung von Objekten zu Positionen ZB: Jede Position erh¨alt genau ein Objekt, jedes Objekt erh¨alt genau eine Position. ZS: Der gesamte Transportaufwand ist zu minimieren. Der Transportaufwand von Objekt i zu Objekt i entspricht dabei dem Produkt aus Transportmenge und Transportdistanz. Frage: Was ist eine optimale L¨osung? Wir verwenden erneut Bin¨arvariablen. Variable ui,k nimmt den Wert 1 an, wenn Objekt i Position k zugeordnet wird. Modell 2.8 (Quadratisches Zuordnungsproblem (Problem 2.5)). n

min ∑

n

n

n

mi,i · dk,k · ui,k · ui ,k ∑ ∑∑  

(2.37)

i=1 i =1 k=1 k =1 i =i k =k

n

u.B.d.N.

∑ ui,k = 1

∀ i = 1, . . . , n

(2.38)

∑ ui,k = 1

∀ k = 1, . . . , n

(2.39)

∀ i, k = 1, . . . , n

(2.40)

k=1 n

i=1

ui,k ∈ {0, 1}

NB (2.38) bis (2.39) sowie Dom¨anendeklaration (2.40) stellen sicher, dass jedes Objekt genau eine Position und jede Position genau ein Objekt erh¨alt. Zielfunktion (2.37) wirkt zun¨achst etwas un¨ubersichtlich. Sie l¨asst sich leichter interpretieren, wenn man sich vor Augen f¨uhrt, dass die meisten der n2 (n − 1)2 Summanden den Wert 0 annehmen. Wir wissen ja durch NB (2.38), dass jedes Objekt genau einer Position zugeordnet wird. Dementsprechend gibt es genau einen Summanden der inneren beiden Summen f¨ur jedes Paar von Objekten i und i , bei dem ui,k · ui ,k = 1 gilt. Dieser Summand gibt dann den Transportaufwand mi,i · dk,k · ui,k · ui ,k = mi,i · dk,k f¨ur den Transport von i zu i an, der nat¨urlich von den zugeordneten Positionen abh¨angt. Alle u¨ brigen Summanden der inneren beiden Summen f¨ur i und i haben den Wert Null, sodass die inneren beiden Summen zu dem Aufwand f¨ur den Transport von i zu i evaluieren.

44

2 Modellierung

2.3.2 Lineare Modelle Ein bedeutender Spezialfall von MO, wie wir sie in Abschnitt 2.3.1 besprochen haben, sind lineare MO. Diesen Spezialfall macht aus, dass sowohl die Zielfunktion als auch die NB durch lineare Funktionen dargestellt werden. Anschaulich bedeutet dies u. a., dass weder Zielfunktion noch NB Produkte zweier (oder mehr) Variablen enthalten und Variablen sich nicht in Exponenten finden oder logarithmiert werden. Die Zielfunktion stellt sich als Summe dar, wobei jeder Summand entweder ein Produkt aus einer Variable und einem konstanten Koeffizienten (als Parameter gegeben) oder eine Konstante (als Parameter gegeben) ist. Dasselbe gilt f¨ur beide Seiten jeder NB. Unter den Beispielen in Abschnitt 2.3.1.4 sind die Modelle 2.1 bis 2.3 lineare MO, die u¨ brigen MO sind keine. Modelle 2.4 und 2.8 haben einen quadratischen Term in der Zielfunktion, d. h., zwei Variablen werden multipliziert. Bei Modellen 2.5 und 2.6 wird die Signum-Funktion in der Zielfunktion verwendet und die Zielfunktion von Modell 2.7 enth¨alt einen Maximierungsterm. Salopp formuliert: Lineares MO Ein MO ist linear, wenn Variablen nicht miteinander multipliziert werden und sich keine Variablen in Exponenten finden. Wenn es gelingt, ein MO in dieser speziellen (linearen) Form abzufassen, hat das enorme Vorteile, da fundamentale effiziente Verfahren f¨ur lineare MO entwickelt wurden. Zum einen kann man auf diese zur¨uckgreifen und sie ggf. adaptieren und implementieren, um das vorliegende MO zu l¨osen. Zum anderen sind viele dieser Verfahren in modernen Solvern implementiert, die es dann erlauben, die MO zu l¨osen, ohne selbst ein Verfahren implementieren zu m¨ussen.4 Moderne Solver k¨onnen h¨aufig noch weitere oder allgemeinere Modellformen l¨osen. Dies ist allerdings in der Regel mit deutlich h¨oherem Aufwand verbunden. Wir werden uns daher auf lineare MO beschr¨anken und unterscheiden dabei zwischen MO, in denen ausschließlich kontinuierliche Variablen, ausschließlich ganzzahlige Variablen und beide Variablentypen verwendet werden, und bezeichnen diese entsprechend der etablierten, englischsprachigen Terminologie als linear programs (LPs), integer programs (IPs) bzw. mixed-integer programs (MIPs). Modelle 2.1 bis 2.3 in Abschnitt 2.3.1.4 sind jeweils IPs. Modell 2.1 mit kontinuierlichen statt ganzzahligen Variablen w¨urde, wie besprochen, erlauben, beliebige Bruchteile einer Produkteinheit zu produzieren, und w¨are ein LP. Nat¨urlich bringt die spezielle Form von (linearen) LPs, IPs und MIPs auch Nachteile (gegen¨uber nicht weiter eingeschr¨ankten MOs) mit sich. So k¨onnen bestimmte Sachverhalte gar nicht abgebildet werden oder es werden deutlich mehr Variablen und/oder NB ben¨otigt als bei nicht-linearen MOs. Um die Vorteile linearer MOs m¨oglichst trotz dieser Einschr¨ankungen nutzen zu k¨onnen, wollen wir uns daher im Folgenden eingehender mit Besonderheiten von linearen MOs und geeigneten Modellierungstechniken besch¨aftigen. In den Abschnitten 2.3.2.1 bis 2.3.2.3 werden 4

Vgl. Bixby und Rothberg (2007)

2.3 Mathematische Optimierungsmodelle

45

g¨angige Techniken vorgestellt, um bestimmte Sachverhalte in linearen MOs abzubilden. Weiterhin werden auch Grenzen dessen aufgezeigt, was durch lineare MO darstellbar ist. Abschnitt 2.3.2.4 konzentriert sich auf kontinuierliche Variablen, die nur ganzzahlige Werte annehmen. In Abschnitt 2.3.2.5 wird u. a. modellinh¨arente Symmetrie diskutiert und M¨oglichkeiten aufgezeigt, diese zu eliminieren. Wir wollen uns an dieser Stelle noch kurz mit der Frage besch¨aftigen, warum die Vergleichsoperatoren kleiner“ und gr¨oßer“ nicht Teil unseres Instrumentari” ” ums sind. Dies wirkt zun¨achst wie eine wenig naheliegende Einschr¨ankung, denn wir werden sehen, dass wir, sofern u¨ berhaupt m¨oglich, einigen Aufwand betreiben m¨ussen, um Sachverhalte abzubilden, die unter Verwendung der Vergleichsoperatoren kleiner“ und gr¨oßer“ sehr leicht darzustellen w¨aren. Wir argumentieren nur ” ” intuitiv, aber dies soll uns an dieser Stelle gen¨ugen. F¨ur eine optimale L¨osung eines MOs mit Vergleichsoperatoren kleiner-gleich“ und gr¨oßer-gleich“ wird es in ” ” der Regel zwei Gruppen von NB geben, n¨amlich solche, die mit Gleichheit erf¨ullt sind, und solche, f¨ur die das nicht gilt. Die NB, die mit Gleichheit erf¨ullt sind, verhindern, dass es eine bessere L¨osung gibt“, denn die optimale L¨osung sch¨opft ” den Freiheitsgrad, den diese NB vorgeben, aus. Dies w¨are bei einer NB, die mit den Vergleichsoperatoren kleiner“ oder gr¨oßer“ formuliert ist, nicht ohne Weiteres ” ” der Fall. Betrachten wir das sehr einfache Optimierungsproblem, die gr¨oßte Zahl x ∈ R, die kleiner als 2 ist, zu finden. Wir verzichten darauf, das entsprechende MO zu formulieren, aber es sollte auch so klar sein, dass es keine optimale L¨osung gibt, denn f¨ur jede zul¨assige L¨osung x < 2 gibt es eine L¨osung, die besser ist, z. B. (x + 2)/2. Wir k¨amen also oft in die Situation, dass eine NB entweder die Menge von zul¨assigen L¨osungen des MO nicht relevant einschr¨ankt oder verhindert, dass es eine optimale L¨osung gibt, die man finden k¨onnte. Zusammenfassung: Lineare MOs In linearen MOs sind Zielfunktion und beide Seiten jeder NB durch lineare Funktionen der Variablen definiert. Weiterhin werden nur die Vergleichsoperatoren gleich“, kleiner-gleich“ und gr¨oßer-gleich“ in NB verwendet. ” ” ” W¨ahrend diese Einschr¨ankungen die Abbildung bestimmter Probleme erschweren oder verhindern, k¨onnen wir etablierte Verfahren und Werkzeuge nutzen und davon profitieren, wenn uns die Abbildung eines Problems durch ein lineares MO gelingt.

2.3.2.1 Bedingte Werte von Variablen An dieser Stelle soll noch einmal der Unterschied zwischen zul¨assigen und optimalen L¨osungen eines MO hervorgehoben werden. Jede optimale L¨osung ist zul¨assig, umgekehrt gilt dies aber nicht (zwangsl¨aufig). Im Folgenden m¨ussen wir zum Teil unterscheiden, ob wir von Eigenschaften optimaler L¨osungen oder zul¨assiger L¨osungen sprechen.

46

2 Modellierung

Von besonderem Interesse ist die bedingte Einschr¨ankung der m¨oglichen Werte von Bin¨arvariablen. Auf diese werden wir uns hier konzentrieren, da diese besonders h¨aufig in linearen MO verwendet werden und Einschr¨ankungen f¨ur ganzzahlige (nicht-bin¨are) Variablen mit a¨ hnlichen Mechanismen erreicht werden k¨onnen. • Zur Darstellung zahlreicher Zusammenh¨ange ist es sinnvoll, einer Bin¨arvariablen b den Wert 1 zuzuweisen, falls eine lineare Funktion einen Wert K u¨ berschreitet. Die Struktur einer NB, die diesen Zusammenhang darstellt, ist n

∑ di · xi − K ≤ M · b.

(2.41)

i=1

Wir sehen auf der linken Seite die lineare Funktion abz¨uglich des Wertes K. Auf der rechten Seite steht das Produkt einer hinreichend großen Zahl M und der Bin¨arvariablen b. Der Begriff der hinreichend großen Zahl wird uns noch mehrfach begegnen, ist an sich aber schwer zu fassen. Wir verstehen darunter einen endlichen und positiven Wert, der gr¨oßer ist als alle Betr¨age, die in NB des aktuell betrachteten linearen MO auftreten k¨onnen. Salopp formuliert: Hinreichend große Zahl M Die hinreichend große Zahl M hat den Wert unendlich, wenn sie einen von Null verschiedenen Koeffizienten hat, und den Wert Null, wenn ihr Koeffizient den Wert Null hat. Somit gilt M · b = ∞, wenn b > 0, M · b = −∞, wenn b < 0, und M · b = 0, wenn b = 0. Nun k¨onnen wir erkennen, dass NB (2.41) Folgendes bewirkt. Wenn der Wert auf der linken Seite positiv ist, der Wert der linearen Funktion also K u¨ berschreitet, ¨ muss b = 1 gelten. Aquivalent dazu k¨onnen wir auch formulieren, dass die linke Seite nicht positiv ist, wenn b = 0 gilt. Da M hinreichend groß ist, kann die lineare Funktion jedoch beliebig große Werte annehmen, wenn b = 1 gilt. Zu beachten ist, dass b = 1 sehr wohl auch dann gelten kann, wenn der Wert der linearen Funktion nicht gr¨oßer als K ist. Analog k¨onnen wir sicherstellen, dass b den Wert 1 zugewiesen bekommt, falls die lineare Funktion den Wert K unterschreitet: n

− ∑ di · xi + K ≤ M · b. i=1

¨ Neben dem Formulieren erfordert auch das Lesen solcher NB einige Ubung. Wir k¨onnen uns dem abgebildeten Sachverhalt aber n¨ahern, indem wir verschiedene F¨alle, die sich im Wert der bin¨aren Variable unterscheiden, betrachten. Es gibt dann nur zwei F¨alle zu betrachten, denn b nimmt entweder den Wert 0 oder den Wert 1 an. Wenn b = 1 gilt, dann kann die lineare Funktion beliebige Werte annehmen, denn durch den hinreichend großen Wert auf der rechten Seite ist die linke Seite nicht eingeschr¨ankt. Wenn allerdings b = 0 gilt, dann darf der Wert der linearen Funktion nicht gr¨oßer (in der zweiten Variante kleiner) als K sein.

2.3 Mathematische Optimierungsmodelle

47

• Einen sehr a¨ hnlichen Zusammenhang, n¨amlich einer Bin¨arvariablen b den Wert 1 zuzuweisen, falls eine lineare Funktion einen Wert K hat oder u¨ berschreitet, k¨onnen wir nicht ohne Weiteres darstellen. Die beiden Zusammenh¨ange unterscheiden sich nur darin, dass b = 1 auch dann gelten soll, wenn die lineare Funktion einen Wert von genau K hat. Zu beachten ist hier, dass wir ihn darstellen k¨onnten, wenn wir statt des kleiner-gleich“-Zeichens ein kleiner“-Zeichen in ” ” NB (2.41) verwenden w¨urden. Dieses Zeichen steht uns aber im Rahmen der linearen MO nicht zur Verf¨ugung. Nichtsdestotrotz k¨onnen wir diesen Zusammenhang darstellen, wenn wir wissen, dass die lineare Funktion nur ganzzahlige Werte annehmen kann. Dies ist z. B. der Fall, wenn alle Variablen und deren Koeffizienten in der Funktion ganzzahlig sind. In diesem Fall k¨onnen wir uns auch auf ganzzahlige Werte f¨ur K beschr¨anken und K auf die n¨achste ganze Zahl aufrunden. Nun gilt, dass die lineare Funktion den Wert K hat oder u¨ berschreitet, wenn sie den Wert K − 1 u¨ berschreitet und daher k¨onnen wir f¨ur K − 1 den schon aus NB (2.41) bekannten Mechanismus verwenden: n

∑ di · xi − (K − 1) ≤ M · b.

i=1

Wir wollen hier noch einmal betonen, dass dieses Konstrukt ohne Weiteres nur funktioniert, wenn die Funktion keinen Wert zwischen K − 1 und K annehmen kann. Bei einem Wert von z. B. K − 0, 5 w¨urde n¨amlich ebenfalls b = 1 erzwungen, was nicht in unserem Sinne ist. • Einer Bin¨arvariablen b den Wert 1 zuzuweisen, falls eine lineare Funktion nicht genau einen Wert K annimmt, k¨onnen wir durch zwei NB der bekannten Struktur erreichen: n

∑ di · xi − K ≤ M · b

(2.42)

− ∑ di · xi + K ≤ M · b.

(2.43)

i=1 n i=1

Nach bekanntem Muster erzwingt NB (2.42) b = 1, wenn die lineare Funktion den Wert K u¨ berschreitet, und NB (2.43) b = 1, wenn die lineare Funktion den Wert K unterschreitet. Daher kann b = 0 nur gelten, wenn weder das eine noch das andere der Fall ist. • Einer Bin¨arvariablen b den Wert 1 zuzuweisen, falls eine lineare Funktion einen Wert K annimmt, ist wiederum nicht unbedingt darstellbar. Es sei an dieser Stelle angemerkt, dass wir ebenso erzwingen k¨onnen, dass b unter bestimmten Bedingungen den Wert 0 annimmt. Hierf¨ur ersetzen wir b in den dargestellten NB einfach durch 1 − b. Dies ist ausreichend, da b = 0, genau dann, wenn 1 − b = 1 gilt.

48

2 Modellierung

Zusammenfassung: Bedingte Werte von Bin¨arvariablen Wir k¨onnen einen bestimmten Wert f¨ur Bin¨arvariable b erzwingen, wenn eine lineare Funktion einen Grenzwert K u¨ berschreitet, einen Grenzwert K unterschreitet oder einen Wert K nicht annimmt. Unter der Annahme, dass die lineare Funktion nur ganzzahlige Werte annimmt, k¨onnen wir auch Werte f¨ur b erzwingen, wenn die Funktion einen Grenzwert K nicht u¨ berschreitet oder einen Grenzwert K nicht unterschreitet. Die obige Betrachtung isoliert einen einzelnen Zusammenhang, der durch NB dargestellt wird. Solche Zusammenh¨ange k¨onnen nat¨urlich auch kombiniert werden, wodurch MO beliebig kompliziert werden k¨onnen. Weitere Wechselwirkungen sind zwischen NB und Zielfunktion zu beachten. Wenn wir annehmen, dass f¨ur Variable b in NB (2.41) ein Wert von 0 gem¨aß Zielfunktion besser als ein Wert von 1 ist (und es keine weiteren NB gibt), dann wird b nur dann den Wert 1 annehmen, wenn es f¨ur die Zul¨assigkeit der L¨osung n¨otig ist. Wie oben besprochen, stellen wir f¨ur zul¨assige L¨osungen allein durch die NB (2.41) den Zusammenhang her, dass b = 1, wenn die lineare Funktion den Wert K u¨ berschreitet. In Kombination mit der Zielfunktion ergibt sich allerdings f¨ur optimale L¨osungen der st¨arkere Zusammenhang, dass b = 1 genau dann, wenn die lineare Funktion den Wert K u¨ berschreitet. Salopp formuliert: Bedingte Werte von Bin¨arvariablen Wenn ein Wert einer Bin¨arvariablen in der Zielfunktion bestraft wird, wird dieser Wert in einer optimalen L¨osung nur dann angenommen, wenn eine NB ihn erzwingt. Das Instrumentarium, das wir oben eingef¨uhrt haben, versetzt uns in die Lage, zu den nicht linearen MO in Abschnitt 2.3.1.4 jeweils ein entsprechendes lineares MO erstellen zu k¨onnen. Im Folgenden werden diese linearen MO erl¨autert, wobei wir uns dabei auf die Details beschr¨anken, in denen sich die linearen MOs von den in Abschnitt 2.3.1.4 vorgestellten MOs unterscheiden. Insbesondere wird analysiert, ob die Entsprechung in den zul¨assigen oder in den optimalen L¨osungen liegt. Wir beginnen mit den Modellen 2.5 und 2.6 sowie den linearen Entsprechungen in Form von Modellen 2.9 und 2.10. In beiden F¨allen wollen wir das Eintreten eines bestimmten Ereignisses in linearer Form abbilden. Hierf¨ur sind Bin¨arvariablen pr¨adestiniert. In Modell 2.9 (das Modell 2.5 auf S. 38 entspricht) benutzen wir neben den kontinuierlichen Variablen xi, j , die Transportmengen abbilden, auch eine Bin¨arvariable yi f¨ur jeden potentiellen Standort, die den Wert 1 annimmt, wenn der potentielle Standort i er¨offnet wird. W¨ahrend wir durch diese zus¨atzlichen Variablen in die Lage versetzt werden, ein MIP formulieren zu k¨onnen, m¨ussen wir bei der Modellierung zus¨atzlichen Aufwand betreiben, um die Werte der bisherigen Variablen und der neuen Variablen durch zus¨atzliche NB zu koppeln. Dies ist notwendig, da die bisherigen Variablen und die neuen Variablen nicht unabh¨angig voneinander sind,

2.3 Mathematische Optimierungsmodelle

49

denn die Bin¨arvariable yi soll ja durch ihren Wert widerspiegeln, was die Variablen xi,1 , . . . , xi,m implizieren. Modell 2.9 (Standortplanung linear (Problem 2.2)). n

n

m

min ∑ fi · yi + ∑ ∑ ci, j · xi, j i=1

n

u.B.d.N.

∑ xi, j ≥ d j

i=1 m

∑ xi, j ≤ Ci · yi

(2.44)

i=1 j=1

∀ j = 1, . . . , m

(2.45)

∀ i = 1, . . . , n

(2.46)

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

(2.47)

∀ i = 1, . . . , n

(2.48)

j=1

xi, j ≥ 0 yi ∈ {0, 1}

NB (2.46) stellt sicher, dass yi = 1 gilt, wenn die von i aus gelieferte Menge positiv ist. Die Struktur dieser NB entspricht der von (2.41), wobei wir als hinreichend große Zahl den Wert Ci gesetzt haben. Dies ist insofern sinnvoll, als dass in keinem Fall von i aus mehr als Ci geliefert werden darf und wir somit neben der Kopplung der bisherigen und der neuen Variablen die Einhaltung der Kapazit¨at eines er¨offneten Standorts erreichen. Durch die Herstellung dieses Zusammenhangs werden in der Zielfunktion die Fixkosten vom potentiellen Standort i ber¨ucksichtigt, wenn von i aus etwas ausgeliefert wird. Die restlichen Komponenten des MO entsprechen denen in Modell 2.5. Es ist leicht zu erkennen, dass Modell 2.9 ein lineares MO ist. Abschließend wollen wir noch festhalten, dass eine zul¨assige L¨osung vorsehen kann, einen potentiellen Standort i zu er¨offnen, d. h. yi = 1, obwohl von ihm nicht ausgeliefert wird. In einer optimalen L¨osung wird dies allerdings nicht der Fall sein (sofern alle Fixkosten strikt positiv sind), denn einen er¨offneten, aber nicht genutzten Standort k¨onnen wir schließen und erhalten eine zul¨assige L¨osung mit geringeren Kosten. In einer optimalen L¨osung haben wir also den Zusammenhang, dass yi = 1 genau dann, wenn von Standort i etwas ausgeliefert wird. Der in Modell 2.10 (das Modell 2.6 auf S. 39 entspricht) verwendete Mechanismus ist a¨ hnlich demjenigen, der in Modell 2.9 angewendet wurde. Wir f¨uhren eine weitere Bin¨arvariable y j f¨ur jede Station j ein, die den Wert 1 annimmt, wenn die Station benutzt wird.

50

2 Modellierung

Modell 2.10 (Fließbandplanung linear (Problem 2.3)). n

min ∑ y j

(2.49)

j=1

n

∑ xi, j = 1

∀ i = 1, . . . , n

(2.50)

∑ ti · xi, j ≤ C · y j

∀ j = 1, . . . , n

(2.51)

∀ i = 1, . . . , n; i ∈ Ni

(2.52)

xi, j ∈ {0, 1}

∀ i, j = 1, . . . , n

(2.53)

y j ∈ {0, 1}

∀ j = 1, . . . , n

(2.54)

u.B.d.N.

j=1 n

i=1 n

n

j=1

j=1

∑ j · xi, j ≤ ∑ j · xi , j

NB (2.51) stellt sicher, dass y j = 1, wenn Station j mindestens ein Arbeitsschritt zugeordnet wird. In diesem Fall ist die Gesamtbearbeitungszeit der zugeordneten Arbeitsschritte auf der linken Seite von NB (2.51) positiv. Die Zielfunktion stellt dann die Anzahl der Bin¨arvariablen mit Wert 1 und damit die Anzahl benutzter Stationen dar. In einer optimalen L¨osung gilt y j = 1 genau dann, wenn Station j mindestens ein Arbeitsschritt zugeordnet wird. In der Zielfunktion von Modell 2.7 auf Seite 41 wollen wir nicht das Eintreten eines bestimmten Ereignisses abbilden, sondern den maximalen unter einer Menge von Werten erfassen. Diese Werte sind die letzten Perioden, in denen ein Arbeitsschritt ausgef¨uhrt wird. In Modell 2.11 verwenden wir hierf¨ur eine einzelne ganzzahlige Variable, die durch diese Perioden nach unten beschr¨ankt wird. Modell 2.11 (Projektplanung linear (Problem 2.4)). min P T

∑ x j,t = 1

u.B.d.N.

(2.55)

∀ j = 1, . . . , n

(2.56)

t=p j T

T

∑ t · x j ,t − ∑ (t − p j ) · x j,t ≤ 0

t= j j



t= j j

n

min{T,t+p j −1}

j=1

t  =max{t,p j }

∑ ⎝a j,r



∀ j = 1, . . . , n; j ∈ V j (2.57)

⎞ x j,t  ⎠ ≤ Cr

∀t = 1, . . . , T ; r = 1, . . . , R (2.58)

T

∑ t · x j,t ≤ P

t=p j

∀ j = 1, . . . , n

(2.59)

2.3 Mathematische Optimierungsmodelle

51

x j,t ∈ {0, 1}

∀ j = 1, . . . , n;t = t j , . . . , T (2.60)

P ∈ N0

(2.61)

Gem¨aß NB (2.59) beschr¨ankt jeder Arbeitsschritt den Wert von P durch die letzte Periode, in der er ausgef¨uhrt wird, nach unten. D. h., P kann keinen Wert annehmen, der einer Periode vor Projektende entspricht. Gem¨aß Zielfunktion (2.55) nimmt P den kleinsten Wert, der einer Periode ab Projektende entspricht, an. In einer zul¨assigen L¨osung kann P also auch gr¨oßer sein als die letzte Periode, in der ein Arbeitsschritt ausgef¨uhrt wird. In einer optimalen L¨osung wird P allerdings minimal unter den gegebenen Einschr¨ankungen gew¨ahlt und repr¨asentiert daher das Projektende. Abschließend betrachten wir Modell 2.8 auf Seite 43, bei dem wir einen quadratischen Ausdruck in Zielfunktion (2.37) substituieren wollen. In Modell 2.12 wird wiederum eine neue Bin¨arvariable eingef¨uhrt. Bin¨arvariable vi,k,i ,k f¨ur jedes i, k, i , k = 1, . . . , n, i = i, k = k nimmt den Wert von ui,k · ui ,k an. Modell 2.12 (Quadratisches Zuordnungsproblem linear (Problem 2.5)). n

min ∑

n

n

n

∑ ∑ ∑ mi,i · dk,k · vi,k,i ,k

(2.62)

i=1 i =1 k=1 k =1 i =i k =k

n

u.B.d.N.

∑ ui,k = 1

∀ i = 1, . . . , n

(2.63)

∑ ui,k = 1

∀ k = 1, . . . , n

(2.64)

∀ i, k, i , k = 1, . . . , n, i = i, k = k

(2.65)

∀ i, k = 1, . . . , n

(2.66)

k=1 n i=1

ui,k + ui ,k − 1 ≤ vi,k,i ,k ui,k ∈ {0, 1} vi,k,i ,k ∈ {0, 1}









∀ i, k, i , k = 1, . . . , n, i = i, k = k

(2.67)

Eine naheliegende NB, mit der wir Bin¨arvariable vi,k,i ,k an die Bin¨arvariablen ui,k und ui ,k koppeln k¨onnten, w¨are ui,k · ui ,k = vi,k,i ,k

∀ i, k, i , k = 1, . . . , n, i = i, k = k.

(2.68)

Allerdings enth¨alt NB (2.68) einen quadratischen Term und wir h¨atten nach wie vor kein lineares MO. Deshalb verwenden wir NB (2.65). Diese stellt sicher, dass vi,k,i ,k den Wert 1 annimmt, wenn ui,k + ui ,k = 2 (und somit ui,k · ui ,k = 1) gilt. Auch hier gilt wieder zu beachten, dass vi,k,i ,k den Wert 1 auch annehmen kann, wenn ui,k · ui ,k = 1. Wenn wir aber davon ausgehen, dass sowohl Transportmengen als auch Distanzen positiv sind, dann wird Variable vi,k,i ,k in einer optimalen L¨osung nur dann den Wert 1 annehmen, wenn es f¨ur die Zul¨assigkeit der L¨osung notwendig ist, also wenn ui,k · ui ,k = 1 gilt (wenn vi,k,i ,k = 1 und ui,k · ui ,k = 0,

52

2 Modellierung

dann k¨onnen wir vi,k,i ,k = 0 setzen und erhalten eine zul¨assige L¨osung mit niedrigerem Zielfunktionswert).

2.3.2.2 Abschnittsweise lineare Zielfunktionen Viele Prozesse, die wir in der Realit¨at beobachten k¨onnen, lassen sich durch lineare Funktionen nur sehr grob oder unzureichend beschreiben. Dies wollen wir uns an zwei Beispielen vergegenw¨artigen. Betrachten wir zun¨achst Strafkosten f¨ur die Abweichung von einem zugesagten Liefertermin LT in Just-in-Time-Prozessen. Wenn wir annehmen, dass wir einen Strafkostensatz f pro Zeiteinheit, die die Lieferung fr¨uher als LT ankommt, und einen Strafkostensatz s pro Zeiteinheit, die die Lieferung sp¨ater als LT ankommt, zahlen m¨ussen, dann ergibt sich eine Kostenfunktion K(t) in Abh¨angigkeit vom tats¨achlichen Liefertermin t, wie in Abb. 2.11 skizziert. Die Steigung der Funktion ist − f im Bereich von Lieferterminen kleiner LT und +s im Bereich von Lieferterminen gr¨oßer LT . K(t)

+s

−f Abb. 2.11 Strafkosten Justin-Time-Prozess

LT

t

Als zweites Beispiel wollen wir eine Funktion betrachten, die die Emission E(g) eines Frachtschiffs pro Kilometer in Abh¨angigkeit von der Geschwindigkeit g angibt. Wir erkennen in Abb. 2.12, die E(g) als durchgezogene Kurve darstellt, dass die Steigerung der Emission durch Beschleunigung bei h¨oherer Geschwindigkeit deutlich zunimmt. In beiden F¨allen wird eine lineare Funktion der Charakteristik der vorliegenden Funktionen nicht gerecht. Wir sehen allerdings, dass die Kostenfunktion K(t) zumindest abschnittsweise linear ist. Dies gilt f¨ur die streng konvexe Funktion E(g) zwar nicht, jedoch kann sie durch eine abschnittsweise lineare Funktion E  (g) approximiert werden, wie in Abb. 2.12 durch die gestrichelte Kurve dargestellt. Dabei m¨ussen wir uns nat¨urlich der Tatsache bewusst sein, dass diese Approximation keine originalgetreue Repr¨asentation ist. Wie wir im Folgenden sehen werden, k¨onnen wir abschnittsweise lineare Funktionen in linearen MO abbilden. Wenn tats¨achlich eine abschnittsweise lineare Funktion vorliegt, k¨onnen wir diese also unmittelbar in einem linearen MO repr¨asentieren. Wenn dies nicht der Fall ist, haben wir die Option, die tats¨achliche Funktion durch eine abschnittsweise lineare Funktion zu approximieren und diese dann zu repr¨asentieren.

2.3 Mathematische Optimierungsmodelle

53 E(g),E’(g)

Abb. 2.12 Emission eines Frachtschiffs pro Kilometer

g

Wir betrachten im Folgenden zun¨achst zu maximierende, stetige und abschnittsweise lineare Zielfunktionen. Dabei gehen wir zuerst auf den Fall einer konkaven Funktion ein. Danach werden wir den allgemeinen Fall betrachten und abschließend auf die Entsprechungen im Falle einer zu minimierenden Zielfunktion eingehen. Wir betrachten zun¨achst eine stetige, konkave und abschnittsweise lineare Zielfunktion Z, wie in Abb. 2.13 dargestellt. Wir nehmen an, dass die Funktion n Abschnitte hat. Der Abschnitt i, i = 1, . . . , n, ist auf dem Intervall [ai , ai+1 ] definiert und hat eine Steigung von bi mit bi > bi+1 f¨ur alle i = 1, . . . , n − 1. In Abb. 2.13 gibt es n = 6 solche Abschnitte. Z(x)

x a1

a2

a3

x

a4

a5

a6 a7

Abb. 2.13 Stetige, konkave und abschnittsweise lineare Zielfunktion

54

2 Modellierung

Wir verwenden eine kontinuierliche Variable x, die das Argument der Zielfunktion darstellt, und eine weitere kontinuierliche Variable xi f¨ur jeden Abschnitt i, i = 1, . . . , n, der Zielfunktion. Variable xi repr¨asentiert den Anteil von x, der in Intervall [ai , ai+1 ] f¨allt, d. h., ⎧ ⎪ ⎨ai+1 − ai wenn x ≥ ai+1 (2.69) xi = x − ai wenn ai ≤ x < ai+1 . ⎪ ⎩ 0 wenn x < ai F¨ur den in Abb. 2.13 dargestellten Wert von Variable x erhalten wir also x1 = a2 −a1 , x2 = a3 − a2 , x3 = x − a3 und x4 = x5 = x6 = 0. Salopp formuliert: Variablen x und x1 , . . . , xn Variable x adressiert eine bestimmte Position auf der x-Achse und Variable xi gibt an, welche Breite des Intervalls [ai , ai+1 ] links dieser Position liegt. Den Zusammenhang in Gleichung (2.69) werden wir in jeder der im Folgenden betrachteten Varianten abbilden. Wir werden dabei sehen, dass wir abh¨angig von der Struktur der Zielfunktion unterschiedlichen Aufwand bei der Modellierung betreiben m¨ussen. Modell 2.13 (Abschnittsweise lineare, konkave Zielfunktion bei Maximierung). n

max ∑ bi xi

(2.70)

i=1

n

u.B.d.N.

∑ xi = x

(2.71)

i=1

0 ≤ xi ≤ ai+1 − ai a1 ≤ x ≤ an+1

∀ i = 1, . . . , n

(2.72) (2.73)

Modell 2.13 ist u¨ berraschend einfach strukturiert. Das hat zwei Gr¨unde. Zun¨achst einmal stellt das MO kein interessantes Optimierungsproblem dar. Wir nehmen an, dass Z konkav und stetig ist. Wenn es genau k Abschnitte gibt, in denen Z steigend ist, dann sind dies die ersten k Abschnitte. Ohne weitere Einschr¨ankung ist dann x = ak+1 der Wert von x in der optimalen L¨osung. Hier soll es aber auch nicht vorwiegend um ein vollst¨andiges MO gehen. Vielmehr wollen wir veranschaulichen, wie wir durch NB und Zielfunktion den abschnittsweise linearen Zusammenhang darstellen k¨onnen. Aber auch dies ist in dem vorliegenden Fall verh¨altnism¨aßig einfach und wird durch eine einzige NB (2.71) (in Kombination mit der Zielfunktion) erreicht. NB (2.71) stellt zwar explizit einen Zusammenhang zwischen x und xi , i = 1, . . . , n her, indem verlangt wird, dass x der Summe der Teile, die in verschiedene Intervalle fallen, entspricht. Allerdings ist dieser Zusammenhang allein nicht aus-

2.3 Mathematische Optimierungsmodelle

55

reichend, um den st¨arkeren Zusammenhang in (2.69) zu erreichen. Beispielsweise kann der in Abb. 2.13 dargestellte Wert von Variable x durch x1 = 0, x2 = a3 − a2 , x3 = x−a3 , x4 = a2 −a1 und x5 = x6 = 0 zu einer zul¨assigen L¨osung f¨ur Modell 2.13 erg¨anzt werden. Dies w¨are nicht in unserem Sinne, da f¨ur eine korrekte Bewertung der L¨osung mit Z(x) nur dann ein Anteil von x auf Intervall [ai , ai+1 ] entfallen darf, wenn der auf Intervall [ai−1 , ai ] entfallende Anteil der Intervallbreite ai − ai−1 entspricht. Wir erkennen allerdings an der Struktur der Zielfunktion, insbesondere an bi > bi+1 , dass genau das in einer optimalen L¨osung der Fall ist. Nehmen wir an, dass auf Intervall i ein Anteil f¨allt, d. h., wir haben xi > 0, und Intervall i − 1 nicht voll ausgef¨ullt ist, d. h. xi−1 < ai − ai−1 . Dann k¨onnten wir einen kleinen Teil des Anteils von Intervall i in Intervall i − 1 verschieben und dadurch die L¨osung verbessern. Die neue L¨osung ist besser, denn wir wissen, dass bi−1 > bi . Also kann die Ausgangsl¨osung nicht optimal gewesen sein. Salopp formuliert: Nutzung der Intervalle bei konkaver Zielfunktion Intervall [ai−1 , ai ] wird in einer optimalen L¨osung vor Intervall [ai , ai+1 ] genutzt, da es im Sinne der Zielfunktion attraktiver ist. Die Modellierung wird komplizierter, wenn wir stattdessen eine beliebige stetige, abschnittsweise lineare Zielfunktion Z, wie in Abb. 2.14 dargestellt, betrachten. Z(x)

x a1

a2

a3

a4

a5

a6 a7

Abb. 2.14 Beliebige stetige und abschnittsweise lineare Zielfunktion

Die oben intuitiv formulierte Eigenschaft ist hier nicht gegeben. Die Annahmen unterscheiden sich von den bisherigen nur darin, dass bi und bi+1 nun unabh¨angig voneinander sind. Wir verwenden wiederum die Variablen x und xi , i = 1, . . . , n. Zus¨atzlich f¨uhren wir noch die Bin¨arvariable yi , i = 1, . . . , n − 1, ein, die den Wert 1 annimmt, wenn Intervall [ai , ai+1 ] voll ausgef¨ullt wird.

56

2 Modellierung

Modell 2.14 (Beliebige abschnittsweise lineare Zielfunktion bei Maximierung). n

max ∑ bi · xi

(2.74)

i=1

n

u.B.d.N.

∑ xi = x

(2.75)

i=1

xi ≤ yi−1 · (ai+1 − ai ) xi ≥ yi · (ai+1 − ai )

∀ i = 2, . . . , n

(2.76)

∀ i = 1, . . . , n − 1

(2.77)

yi ∈ {0, 1}

∀ i = 1, . . . , n − 1

(2.78)

∀ i = 1, . . . , n

(2.79)

0 ≤ xi ≤ ai+1 − ai a1 ≤ x ≤ an+1

(2.80)

Zielfunktion (2.74) und NB (2.75) sind analog zu Modell 2.13. NB (2.76) sorgt explizit daf¨ur, dass nur dann ein Anteil auf Intervall i fallen kann, wenn Intervall i − 1 laut Bin¨arvariable voll ausgef¨ullt wird. Dass diese Bin¨arvariable tats¨achlich nur den Wert 1 annimmt, wenn das entsprechende Intervall voll ausgef¨ullt ist, stellt NB (2.77) sicher. So wird durch die NB (2.76) und (2.77) der Zusammenhang in (2.69) explizit abgebildet. Sollte die Zielfunktion zu minimieren sein, k¨onnen wir stetige, konvexe und abschnittsweise lineare Zielfunktionen leichter analog zu Modell 2.13 modellieren, denn in diesem Fall gilt wieder, dass wegen der Struktur der Zielfunktion in einer optimalen L¨osung immer Intervall [ai−1 , ai ] vor Intervall [ai , ai+1 ] genutzt wird, da dieses im Sinne der Zielfunktion attraktiver ist. F¨ur die Modellierung beliebiger stetiger, abschnittsweise linearer Zielfunktionen m¨usste man auf die Konzepte in Modell 2.14 zur¨uckgreifen.

¨ 2.3.2.3 Logische Verknupfungen von Nebenbedingungen Grunds¨atzlich sind alle NB eines linearen MO durch ein logisches Und“ verkn¨upft, ” denn eine L¨osung muss alle NB erf¨ullen, um als zul¨assig zu gelten. Von dieser Form wollen wir nicht abweichen. Dennoch stellt sich die Frage, ob wir auch unter Einhaltung dieser Form andere logische Verkn¨upfungen von NB darstellen k¨onnen (an dieser Stelle sei noch einmal daran erinnert, dass wir nur die Vergleichsoperatoren gleich“, kleiner-gleich“ und gr¨oßer-gleich“ verwenden wollen). Das Erstellen ei” ” ” nes MO wird uns h¨aufig leichter fallen, wenn wir Bedingungen beliebig verkn¨upfen k¨onnen. Die Vorgehensweise besteht dann darin, zun¨achst ein konzeptionelles Modell zu erstellen, in dem wir Bedingungen beliebig logisch verkn¨upfen statt uns auf die Verkn¨upfung Und“ zu beschr¨anken. In einem zweiten Schritt wird dieses Mo” dell dann in eins transformiert, in dem wir ausschließlich mit der Verkn¨upfung Und“ arbeiten. ”

2.3 Mathematische Optimierungsmodelle

57

Wir wollen ein Beispiel heranziehen, um diese Vorgehensweise zu verdeutlichen. Nehmen wir an, wir wollten in Problem 2.4 (Projektplanung) bzw. in Modell 2.11 folgenden zus¨atzlichen Aspekt ber¨ucksichtigen. Es gibt zwei Arbeitsschritte j1 und j2 , wobei j1 Vorg¨anger von j2 ist, die von einem speziell ausgebildeten Techniker beaufsichtigt werden sollen. Da der Prozess auch zwischen der Bearbeitung von j1 und j2 kritisch ist, sollte der Techniker ab Beginn von j1 bis Ende von j2 anwesend sein. Er ist allerdings in Periode t ∗ nicht anwesend und daher soll j1 erst nach t ∗ begonnen oder j2 schon vor t ∗ beendet werden. Wir k¨onnen jede der beiden Bedingungen relativ leicht formulieren, k¨onnen sie allerdings nicht ohne Weiteres in einem MO kombinieren, da nicht beide, sondern nur eine der beiden erf¨ullt werden muss. Im Folgenden werden wir u. a. sehen, wie wir zwei solche durch ein logisches Oder“ verkn¨upfte NB durch NB, die mit einem logischen Und“ verkn¨upft ” ” sind, repr¨asentieren. Neben der Verkn¨upfung Oder“ werden wir die Verkn¨upfungen k-aus-l“ und ” ” Entweder-Oder“ sowie die Negation“ einer NB betrachten.5 Dabei nehmen wir an, ” ” dass wir keine Gleichungen in NB haben. Dies ist keine Einschr¨ankung, denn wir k¨onnen eine Gleichung immer durch zwei Ungleichungen darstellen (wie wir auch im Folgenden an Beispielen erkennen werden). • Die logische Verkn¨upfung Oder“ zweier NB bedeutet, dass eine L¨osung als ” zul¨assig gilt, wenn sie mindestens eine der beiden NB erf¨ullt. Wir erreichen eine solche Verkn¨upfung, indem wir in beiden NB einen Term erg¨anzen, der sicherstellt, dass eine der beiden NB auf jeden Fall, d. h. unabh¨angig von der L¨osung, erf¨ullt ist. Nehmen wir an, dass wir eine L¨osung als zul¨assig erachten wollen, wenn sie NB (2.81) oder (2.82) oder beide erf¨ullt. n

∑ ai · xi ≤ A

(2.81)

∑ bi · xi ≥ B

(2.82)

i=1 n i=1

Wir erg¨anzen jeweils einen Term, der sicherstellt, dass mindestens eine der NB unabh¨angig von den Werten der Variablen x1 , . . . , xn erf¨ullt ist. Hierf¨ur verwenden wir eine weitere Bin¨arvariable y, die ausschließlich in diesen beiden NB verwendet wird. ¨ Modell 2.15 ( Oder“-Verknupfung). ” n

∑ ai · xi ≤ A + M · y

(2.83)

∑ bi · xi ≥ B − M · (1 − y)

(2.84)

i=1 n i=1 5

Vgl. hierzu Opitz u. a. (2017)

58

2 Modellierung

Wir erkennen, dass NB (2.83) erf¨ullt ist, wenn y = 1 gilt, und dass NB (2.84) erf¨ullt ist, wenn y = 0 gilt. Intuitiv gesprochen muss die urspr¨ungliche L¨osung“, ” also die Werte der Variablen x1 , . . . , xn , nur sicherstellen, dass NB (2.81) oder NB (2.82) erf¨ullt ist. Da Bin¨arvariable y nur in diesen beiden NB verwendet wird, kann sie frei so gew¨ahlt werden, dass die nicht durch x1 , . . . , xn erf¨ullte NB in Modell 2.15 durch y erf¨ullt wird. Wenn x1 , . . . , xn sowohl NB (2.81) als auch NB (2.82) erf¨ullt, kann y einen beliebigen Wert annehmen. Wenn x1 , . . . , xn allerdings weder NB (2.81) noch NB (2.82) erf¨ullt, kann y nicht so gew¨ahlt werden, dass beide NB in Modell 2.15 erf¨ullt sind. Dies wollen wir noch an unserem Beispiel f¨ur Modell 2.11 auf S. 50 und die oben beschriebene Erweiterung nachvollziehen. Modell 2.16 (Projektplanung erweitert). min P T

∑ x j,t = 1

u.B.d.N.

(2.85)

∀ j = 1, . . . , n

(2.86)

t=p j T



t=p j

t · x j ,t −



T

∑ (t − p j ) · x j,t ≤ 0

t=p j

n

min{T,t+p j −1}

j=1

t  =max{t,p j }

∑ ⎝a j,r ·

∀ j = 1, . . . , n; j ∈ V j



(2.87)

⎞ x j,t  ⎠ ≤ Cr

∀t = 1, . . . , T ; r = 1, . . . , R (2.88)

T

∑ t · x j,t ≤ P

∀ j = 1, . . . , n

(2.89)

t=p j T



t · x j2 ,t ≤ t ∗ − 1 + T · y

(2.90)

t · x j1 ,t ≥ y · (t ∗ + p j1 )

(2.91)

t=p j2 T



t=p j1

x j,t ∈ {0, 1}

∀ j = 1, . . . , n;t = t j , . . . , T (2.92)

P ∈ N0 y ∈ {0, 1}

(2.93) (2.94)

Die Terme (2.85) bis (2.89), (2.92) und (2.93) sind aus Modell 2.11 bekannt. NB (2.90) sichert, dass j2 vor t ∗ endet, falls y = 0. NB (2.90) zwingt j1 erst nach t ∗ zu starten, falls y = 1.

2.3 Mathematische Optimierungsmodelle

59

Salopp formuliert: Oder“-Verkn¨upfung von NB ” Wenn durch die u¨ brigen Variablen eine der beiden durch ein logisches Oder“ verkn¨upften NB erf¨ullt wird, dann k¨onnen wir den Wert der Hilfs” variablen so w¨ahlen, dass die andere NB erf¨ullt wird. • Die logische Verkn¨upfung Oder“ kann auch f¨ur jeweils mehrere NB implemen” tiert werden. Weiterhin ist es leicht m¨oglich, abzubilden, dass mindestens k unter l, l > k, NB erf¨ullt sein m¨ussen. Wir wollen dies an NB (2.95) bis (2.99) verdeutlichen, unter denen wir auch Gleichungen finden. n

∑ ai · xi = A

(2.95)

∑ bi · xi ≥ B

(2.96)

∑ ci · xi = C

(2.97)

∑ di · xi ≤ D

(2.98)

∑ ei · xi ≥ E

(2.99)

i=1 n i=1 n

i=1 n i=1 n

i=1

Wir m¨ochten darstellen, dass mindestens drei dieser f¨unf NB erf¨ullt sein m¨ussen, damit eine L¨osung als zul¨assig gilt. Zun¨achst transformieren wir daf¨ur die Gleichungen in Ungleichungen. n

∑ ai · xi ≤ A

(2.100)

∑ ai · xi ≥ A

(2.101)

∑ bi · xi ≥ B

(2.102)

∑ ci · xi ≤ C

(2.103)

∑ ci · xi ≥ C

(2.104)

∑ di · xi ≤ D

(2.105)

∑ ei · xi ≥ E

(2.106)

i=1 n i=1 n i=1 n

i=1 n i=1 n i=1 n

i=1

60

2 Modellierung

NB (2.100) bis (2.106) enthalten keine Gleichungen mehr. Allerdings sind z. B. NB (2.100) und (2.101) nicht unabh¨angig voneinander zu betrachten, denn damit die entsprechende Gleichung (2.95) als erf¨ullt gilt, m¨ussen sowohl (2.100) als auch (2.101) erf¨ullt sein. Wir erreichen die Forderung, dass mindestens drei der f¨unf urspr¨unglichen NB erf¨ullt werden, durch Verwendung von f¨unf zus¨atzlichen Bin¨arvariablen und einer zus¨atzlichen NB. n

∑ a i · xi ≤ A + M · y 1

(2.107)

∑ a i · xi ≥ A − M · y 1

(2.108)

∑ bi · xi ≥ B − M · y2

(2.109)

∑ ci · xi ≤ C + M · y3

(2.110)

∑ ci · xi ≥ C − M · y3

(2.111)

∑ di · xi ≤ D + M · y4

(2.112)

∑ ei · xi ≥ E − M · y5

(2.113)

i=1 n i=1 n i=1 n

i=1 n i=1 n i=1 n

i=1

y1 + y2 + y3 + y4 + y5 ≤ 2

(2.114)

Die Funktion der Bin¨arvariablen entspricht im Wesentlichen der schon bekannten: Wenn yk = 1, k = 1, . . . , 5, dann muss die urspr¨ungliche kte NB nicht durch die Variablen x1 , . . . , xn erf¨ullt werden. Dies erreichen wir wiederum durch Verwendung der hinreichend großen Zahl M. Diese Option kann aber f¨ur h¨ochstens zwei der urspr¨unglichen NB gezogen werden, was durch NB (2.114) sichergestellt wird. Salopp formuliert: k-aus-l“-Verkn¨upfung von NB ” Wenn durch die u¨ brigen Variablen eine der durch ein logisches k-aus” l“ verkn¨upften NB nicht erf¨ullt wird, dann wird sie durch eine Hilfsvariable erf¨ullt. Eine zus¨atzliche NB stellt sicher, dass h¨ochstens l − k Hilfsvariablen f¨ur die Erf¨ullung von NB sorgen. • Eine Negation“ einer NB bedeutet, dass eine L¨osung als zul¨assig gilt, wenn sie ” die NB nicht erf¨ullt. Dies k¨onnen wir nicht ohne Weiteres darstellen. Es geht aber dann, wenn wir wissen, dass die lineare Funktion nur ganzzahlige Werte annehmen kann. In diesem Fall k¨onnen wir den kleinsten oder gr¨oßten Wert der Funktion bestimmen, bei dem die urspr¨ungliche NB nicht erf¨ullt ist. Dies erlaubt

2.3 Mathematische Optimierungsmodelle

61

uns, die NB zu negieren. Nehmen wir an, dass wir eine L¨osung als zul¨assig erachten wollen, wenn sie NB (2.115) bis (2.117) jeweils nicht erf¨ullt. n

∑ a i · xi = A

(2.115)

∑ b i · xi ≥ B

(2.116)

∑ c i · xi ≤ C

(2.117)

i=1 n i=1 n

i=1

Auch hier m¨ussen wir Gleichungen besonders behandeln. Wir transformieren sie zun¨achst in Ungleichungen. Zudem runden wir die konstanten Werte auf ganzzahlige Werte. Wir k¨onnen uns auf den Fall beschr¨anken, in dem A ganzzahlig ist. Unter der Annahme, dass die lineare Funktion in (2.115) nur ganzzahlige Werte annimmt. Sollte A nicht ganzzahlig sein, dann ist die Negation von (2.115) immer erf¨ullt und wir k¨onnen die NB aus dem MO streichen, ohne die Menge zul¨assiger L¨osungen zu ver¨andern. Wir erhalten somit NB (2.118) bis (2.121). n

∑ ai · xi ≤ A = A

(2.118)

∑ ai · xi ≥ A = A

(2.119)

∑ bi · xi ≥ B

(2.120)

∑ ci · xi ≤ C

(2.121)

i=1 n i=1 n i=1 n

i=1

Das System mit NB (2.118) bis (2.121) ist unter der Annahme ganzzahliger Werte der linken Seiten a¨ quivalent zu dem System mit NB (2.115) bis (2.117). Wiederum k¨onnen NB (2.118) und (2.119) nicht unabh¨angig voneinander negiert werden. Die Negation von NB (2.115) entspricht n¨amlich der Negation des Systems, in dem NB (2.118) und (2.119) mit einem logischen Und“ verkn¨upft sind. Ein solches System k¨onnen wir negieren, indem wir for” dern, dass NB (2.118) oder (2.119) nicht erf¨ullt wird. Das Instrumentarium f¨ur eine Oder“-Verkn¨upfung kennen wir bereits. Wir erhalten dementsprechend das ” System mit NB (2.122) und (2.125).

62

2 Modellierung

n

∑ ai · xi ≥ A + 1 − M · y

(2.122)

∑ ai · xi ≤ A − 1 + M · (1 − y)

(2.123)

∑ bi · xi ≤ B − 1

(2.124)

∑ ci · xi ≥ C + 1

(2.125)

i=1 n i=1 n i=1 n

i=1

NB (2.124) und (2.125) ergeben sich als Negation der NB (2.120) und (2.121). Wir leiten jeweils isoliert die Negation der NB (2.118) und (2.119) analog ab, m¨ussen allerdings, um das Teilsystem bestehend aus NB (2.118) und (2.119) als Ganzes zu negieren, die beiden erhaltenen NB mit einem logischen Oder“ ver” kn¨upfen, was wir durch die zus¨atzliche Bin¨arvariable y erreichen. Salopp formuliert: Negation“ von NB ” Die Negation einer NB erreichen wir durch Formulierung einer oder mehrerer NB, die erf¨ullt ist bzw. sind, wenn die urspr¨ungliche NB nicht erf¨ullt ist. • Die logische Verkn¨upfung Entweder-Oder“ zweier NB bedeutet, dass eine L¨o” sung als zul¨assig gilt, wenn sie genau eine der beiden NB erf¨ullt. Dies kann sich durch die Struktur des MO bedingt schon durch eine Oder“-Verkn¨upfung reali” sieren lassen. Wir sehen z. B. in Modell 2.16 auf S. 58, dass nicht beide der durch Oder“ verkn¨upften Anforderungen erf¨ullt werden k¨onnen. Insofern realisiert die ” Oder“-Verkn¨upfung in Modell 2.16 eine Entweder-Oder“-Verkn¨upfung. ” ” Ansonsten k¨onnen wir die logische Verkn¨upfung Entweder-Oder“ darstellen, ” wenn wir wissen, dass die linearen Funktionen nur ganzzahlige Werte annehmen k¨onnen. Wir u¨ berlegen uns zun¨achst, dass eine L¨osung, die entweder die erste oder die zweite NB erf¨ullt, zum einen die erste oder die zweite NB erf¨ullt und zum anderen die erste oder die zweite NB nicht erf¨ullt. Dies k¨onnen wir mit den bisher diskutierten Techniken beschreiben, sofern die lineare Funktion nur ganzzahlige Werte annehmen kann. Wir verdeutlichen das an einem Beispiel. n

∑ ai · xi = A

(2.126)

∑ bi · xi ≥ B

(2.127)

i=1 n i=1

2.3 Mathematische Optimierungsmodelle

63

Zun¨achst wird die schon bekannte Transformation der Gleichungen und der konstanten Werte vorgenommen. n

∑ ai · xi ≤ A

(2.128)

∑ ai · xi ≥ A

(2.129)

∑ bi · xi ≥ B

(2.130)

i=1 n i=1 n i=1

Wir konstruieren nun drei NB (2.131) bis (2.133), die sicherstellen, dass NB (2.126) oder (2.127) erf¨ullt ist. Zus¨atzlich bilden NB (2.134) bis (2.136) ab, dass eine der NB (2.126) oder (2.127) nicht erf¨ullt sein darf. Hierf¨ur ben¨otigen wir drei Bin¨arvariablen y1 , y2 und y3 . n

∑ ai · xi ≤ A + M · y1

(2.131)

∑ ai · xi ≥ A − M · y1

(2.132)

∑ bi · xi ≥ B − M · (1 − y1 )

(2.133)

∑ ai · xi ≥ A + 1 − M · y2 − M · y3

(2.134)

∑ ai · xi ≤ A − 1 + M · (1 − y2 ) + M · y3

(2.135)

∑ bi · xi ≤ B − 1 + M · (1 − y3 )

(2.136)

i=1 n i=1 n i=1 n i=1 n i=1 n i=1

Wir wollen zun¨achst unser Hauptaugenmerk auf die NB (2.134) bis (2.136) richten. Bin¨arvariable y3 bildet ab, welche der urspr¨unglichen NB (2.126) oder (2.127) nicht erf¨ullt ist: Wenn y3 = 1, dann wird NB (2.127) nicht durch die Variablen x1 , . . . , xn erf¨ullt, und wenn y3 = 0, dann wird NB (2.126) nicht durch die Variablen x1 , . . . , xn erf¨ullt. Dabei bildet Bin¨arvariable y2 ab, ob die Verletzung von NB (2.126) durch die Variablen x1 , . . . , xn dadurch geschieht, dass der Wert A u¨ ber- (y2 = 0) oder unterschritten (y2 = 1) wird. Bin¨arvariable y1 bildet ab, ob NB (2.126) oder NB (2.127) durch die Variablen x1 , . . . , xn erf¨ullt wird. NB (2.131) bis (2.136) erf¨ullen also ihren Zweck, aber wir k¨onnen dasselbe mit weniger Variablen erreichen. Um das zu erkennen, wollen wir uns einen Zusammenhang zwischen den Werten von y1 und y3 vor Augen f¨uhren. Wenn y1 = 1, dann ist NB (2.127) durch Variablen x1 , . . . , xn erf¨ullt. Dies bedeutet dann, dass

64

2 Modellierung

y3 = 0 gelten muss, denn sonst w¨are NB (2.127) durch Variablen x1 , . . . , xn nicht erf¨ullt. Wenn umgekehrt y1 = 0 gilt, dann wird NB (2.126) durch Variablen x1 , . . . , xn erf¨ullt. Dies bedeutet dann, dass y3 = 1 gelten muss, denn sonst w¨are NB (2.126) durch Variablen x1 , . . . , xn nicht erf¨ullt. Zusammenfassend wissen wir also, dass y1 und y3 unterschiedliche Werte annehmen m¨ussen, da wir ansonsten keine zul¨assige L¨osung erhalten k¨onnen. Wir k¨onnten daher y3 = 1 − y1 setzen und kommen mit nur zwei Bin¨arvariablen y1 und y2 aus. Wir erhalten das folgende System. n

∑ ai · xi ≤ A + M · y1

(2.137)

∑ ai · xi ≥ A − M · y1

(2.138)

∑ bi · xi ≥ B − M(1 − y1 )

(2.139)

∑ ai · xi ≥ A + 1 − M · y2 − M · (1 − y1 )

(2.140)

∑ ai · xi ≤ A − 1 + M · (1 − y2 ) + M · (1 − y1 )

(2.141)

∑ bi · xi ≤ B − 1 + M · y1

(2.142)

i=1 n i=1 n

i=1 n i=1 n i=1 n

i=1

Wir haben nur einige g¨angige Verkn¨upfungen kennengelernt, k¨onnen jedoch alleine mit den Operatoren Und“ und Negation“ nahezu beliebige boolesche Ope” ” ratoren, d. h. logische Operatoren zur Verkn¨upfung von Bedingungen, darstellen. Daher sind unsere M¨oglichkeiten an der Stelle nicht stark eingeschr¨ankt. Es ist allerdings zu beachten, dass uns die Negation“ nur dann unmittelbar wie oben auf” gezeigt zur Verf¨ugung steht, wenn die lineare Funktion nur ganzzahlige Werte annimmt. Diese Einschr¨ankung haben wir bisher der Anschaulichkeit halber formuliert. Wir k¨onnen sie lockern und feststellen, dass wir das oben Diskutierte f¨ur den Fall verallgemeinern k¨onnen, dass die lineare Funktion nur diskrete Werte annimmt. Sollte eine Funktion allerdings einen kontinuierlichen Wertebereich haben, dann ist uns die Negation nicht ohne Weiteres m¨oglich. Zusammenfassung: Logische Verkn¨upfungen von NB Wir k¨onnen ohne Weiteres die Verkn¨upfungen Oder“ und k-aus-l“ f¨ur NB ” ” in linearen MOs darstellen. Die Verkn¨upfung Entweder-Oder“ sowie die ” Negation“ einer NB k¨onnen wir in einem linearen MO darstellen, wenn ” wir wissen, dass die linearen Funktionen nur ganzzahlige Werte annehmen.

2.3 Mathematische Optimierungsmodelle

65

2.3.2.4 Modellierung von Ganzzahligkeit mit kontinuierlichen Variablen Tendenziell bereiten diskrete Variablen beim L¨osen von MOs mehr Schwierigkeiten als kontinuierliche Variablen. Dies werden wir ausf¨uhrlich in den Kapiteln 3 und 4 besprechen. Deshalb ist es ratsam, soweit m¨oglich auf die Verwendung diskreter, z. B. ganzzahliger, Variablen zu verzichten. Dies kann unter verschiedenen Vorzeichen geschehen. Zum einen ist es m¨oglich, die Ganzzahligkeitsanforderung von Variablen einfach zu ignorieren und dabei in Kauf zu nehmen, dass die Variablen nicht-ganzzahlige Werte annehmen und sie streng genommen nicht im Sinne des abgebildeten Problems interpretierbar sind. Als Beispiel soll uns hier Modell 2.2 zu Problem 2.1 (Produktionsplanung 2) auf S. 36 dienen. Wir erinnern uns, dass es darum geht, die ganzzahligen Produktionsmengen von n Produkten so zu bestimmen, dass die Kapazit¨aten von m Ressourcen eingehalten wird und dabei der gesamte Gewinn maximiert wird. Hierbei wird angenommen, dass es nur m¨oglich ist, ganzzahlige Mengen von jedem Produkt herzustellen (sonst k¨onnten wir offensichtlich die Menge der nicht negativen reellen Zahlen als Dom¨ane w¨ahlen). Um das L¨osen des MO zu vereinfachen, k¨onnen wir auf die Ganzzahligkeit der Variablen verzichten, m¨ussen aber nat¨urlich wissen, dass wir potentiell nicht-ganzzahlige Variablenwerte in einer L¨osung erhalten werden. Wir ben¨otigen dann einen Plan, wie wir damit umgehen, d. h. basierend auf der L¨osung des MO ohne Ganzzahligkeit eine zul¨assige L¨osung des MO mit Ganzzahligkeit ableiten. Im Fall von Modell 2.2 k¨onnten wir dies beispielsweise tun, indem wir die erhaltenen Variablenwerte abrunden. Wir erhalten dadurch eine zul¨assige L¨osung f¨ur Modell 2.2, die nicht stark“ von der gefundenen L¨osung abweicht und ” daher hoffentlich gut, wom¨oglich aber nicht optimal ist. Nicht immer ist es so leicht, eine zul¨assige L¨osung des MO mit Ganzzahligkeit zu erzeugen. Wenn wir beispielsweise Bedarfe an den Produkten befriedigen m¨ussten, k¨onnte das Abrunden dazu f¨uhren, dass diese Bedarfe nicht erf¨ullt werden. Umgekehrt w¨urde ein Aufrunden wom¨oglich dazu f¨uhren, dass wir nicht alle Kapazit¨aten einhalten. In solchen F¨allen kann man versuchen, mit Puffern zu arbeiten. Wir setzen die laut MO verf¨ugbare Kapazit¨at niedriger als die tats¨achliche an, erzielen eine nicht-ganzzahlige L¨osung, die diese niedrigeren Kapazit¨aten einh¨alt, und erh¨ohen so die Wahrscheinlichkeit, dass die aufgerundete ganzzahlige L¨osung die tats¨achlichen Kapazit¨aten einh¨alt. Wenn wir so eine zul¨assige L¨osung f¨ur das MO mit Ganzzahligkeit finden, wissen wir allerdings nicht, ob diese optimal oder auch nur gut ist. Dies gilt selbst dann, wenn die nicht-ganzzahlige L¨osung optimal war (f¨ur das MO ohne Ganzzahligkeit). Das Runden der L¨osung bietet sich also insbesondere dann an, wenn die Werte der Variablen absehbar sehr groß sind. Dann hat das Runden einen kleineren relativen Effekt und wir k¨onnen eher darauf hoffen, dass auch die ganzzahlige L¨osung gut (oder sogar optimal) ist.

66

2 Modellierung

Zusammenfassung: Verzicht auf Ganzzahligkeit von Variablen Wenn wir ganzzahlige Variablen durch kontinuierliche ersetzen, wird sich in der Regel der L¨osungsaufwand verringern. Wir k¨onnen hoffen, durch geeignetes Runden der nicht-ganzzahligen Werte von Variablen eine gute L¨osung f¨ur das MO mit ganzzahligen Variablen zu erhalten, sicher ist dies jedoch nicht. Zum anderen ist es m¨oglich, dass auf die Ganzzahligkeit nicht verzichtet werden muss, obwohl kontinuierliche Variablen verwendet werden. Um diesen Gedanken zu veranschaulichen, ziehen wir noch einmal Modell 2.2 zu Problem 2.1 (Produktionsplanung 2) als Beispiel heran. Nehmen wir nun an, wir l¨osen das MO ohne Ganzzahligkeit und erhalten eine ganzzahlige, optimale L¨osung. Diese ist dann auch eine optimale L¨osung von Modell 2.2. Wir wollen diesen Sachverhalt etwas allgemeiner betrachten. Abb. 2.15 illustriert das Verh¨altnis der zul¨assigen L¨osungsmengen eines MO mit Ganzzahligkeit (z. B. Modell 2.2) und des entsprechenden MO ohne Ganzzahligkeit sowie das Verh¨altnis zwischen der optimalen L¨osungsmenge des MO ohne Ganzzahligkeit und seiner zul¨assigen L¨osungsmenge. Die Darstellung suggeriert zudem, dass es zu dem MO ohne Ganzzahligkeit optimale ganzzahlige L¨osungen gibt. Dies muss aber nicht der Fall sein. Menge der zul¨assigen L¨osungen ohne Ganzzahligkeit

Menge der optimalen L¨osungen ohne Ganzzahligkeit

Menge der zul¨assigen L¨osungen mit Ganzzahligkeit Abb. 2.15 Mengen zul¨assiger und optimaler L¨osungen verschiedener MOs

Wir erkennen, dass jede zul¨assige L¨osung des MO mit Ganzzahligkeit auch eine zul¨assige L¨osung des MO ohne Ganzzahligkeit ist. Daher kann eine optimale L¨osung des MO mit Ganzzahligkeit nicht besser (gem¨aß Zielfunktion) als eine optimale L¨osung des MO ohne Ganzzahligkeit sein. Wenn wir also eine optimale L¨osung des MO ohne Ganzzahligkeit finden, die ganzzahlig ist, muss diese optimal f¨ur das MO mit Ganzzahligkeit sein.

2.3 Mathematische Optimierungsmodelle

67

Zusammenfassung: Verzicht auf Ganzzahligkeit von Variablen (2) Wenn wir ganzzahlige Variablen durch kontinuierliche ersetzen und trotzdem eine optimale ganzzahlige L¨osung erhalten, dann ist diese auch optimal f¨ur das MO mit Ganzzahligkeitsbedingungen. Besonders interessant ist der oben dargestellte Sachverhalt, wenn wir ein Verfahren kennen, das unter den optimalen L¨osungen garantiert eine ganzzahlige findet. Wir werden im Folgenden drei Probleme und entsprechende MO kennenlernen, bei denen das der Fall ist. Wir werden an dieser Stelle nicht auf Details der Verfahren eingehen (eins davon wird in Kapitel 3 ausf¨uhrlich besprochen), k¨onnen jedoch festhalten, dass die g¨angigen Solver sich dieser bedienen. Das erste Problem ist das sogenannte Transportproblem. Es fokussiert darauf, Transportstr¨ome kostenminimal zu bestimmen, sodass Kapazit¨aten von Quellen beachtet und Bedarfe von Senken befriedigt werden. Quellen und Senken k¨onnen beispielsweise Anbieter und Nachfrager eines Gutes darstellen. Es soll dann entschieden werden, welcher Anbieter wie viele Einheiten des Gutes an welchen Nachfrager liefert. Abh¨angig von der Distanz, u¨ ber die das Gut geliefert wird, und m¨oglicherweise weiteren Faktoren, f¨allt ein Kostensatz pro gelieferter Einheit an. Die gesamten Transportkosten sollen minimiert werden. Wir wollen das Transportproblem zun¨achst formalisieren. Problem 2.6 (Transportproblem). Eingabe: Anzahl n von Quellen, Anzahl m von Senken, ganzzahlige Kapazit¨at bi jeder Quelle i, ganzzahliger Bedarf d j jeder Senke j, Kosten ci, j pro Einheit f¨ur jedes Paar aus Quelle i und Senke j LR: Ganzzahlige, nicht-negative Transportmenge fi, j f¨ur jedes Paar aus Quelle i und Senke j ZB: Jede Quelle liefert genau ihre Kapazit¨at aus und jede Senke erh¨alt genau ihren Bedarf. ZS: Gesamtkosten ∑ni=1 ∑mj=1 ci, j · fi, j sind zu minimieren. Frage: Was ist eine optimale L¨osung? Es verwundert wom¨oglich, dass die Kapazit¨aten ausgesch¨opft werden sollen. Das impliziert, dass die gesamte Kapazit¨at dem gesamten Bedarf entspricht, was nach einer sehr speziellen Konstellation klingt. Dies ist aber tats¨achlich nicht der Fall. Die gesamte Kapazit¨at muss ohnehin mindestens so groß sein wie der gesamte Bedarf, denn ansonsten kann der Bedarf nicht gedeckt werden. Sollte sie gr¨oßer sein, k¨onnen ¨ wir eine k¨unstliche Senke einf¨uhren, die den Uberschuss zu Kosten von Null pro Einheit aufnimmt. Der Transport von einer Quelle zur k¨unstlichen Senke entspricht dann nicht ausgelieferten Einheiten. Abb. 2.16 stellt eine Instanz von Problem 2.6 (Transportproblem) in Form eines bipartiten Graphen dar. F¨ur jede Quelle gibt es einen Knoten mit der entsprechenden Kapazit¨at in der linken Teilmenge von Knoten, f¨ur jede Senke gibt es einen Knoten mit dem entsprechenden Bedarf in der rechten Teilmenge von Knoten. Die Kanten

68

2 Modellierung 5 +10

1

2

5

−25

6

−15

7

−15

7

2 1 6

+40

−15

7

9 +20

4

1

3

4 2

Abb. 2.16 Instanz des Transportproblems

8

9

verlaufen ausschließlich zwischen linker und rechter Teilmenge (daher ist der Graph bipartit, siehe Definition 2.11 auf S. 26) und repr¨asentieren Transportrelationen mit den entsprechenden Kosten. Außerdem l¨asst sich Problem 2.6 (Transportproblem) wie folgt als lineares MO darstellen. Modell 2.17 (Transportproblem (Problem 2.6)). n

m

min ∑ ∑ ci, j · fi, j

(2.143)

i=1 j=1

m

u.B.d.N.

∑ fi, j = bi

∀ i = 1, . . . , n

(2.144)

∑ fi, j = d j

∀ j = 1, . . . , m

(2.145)

∀ i = 1, . . . , n; j = 1, . . . , n

(2.146)

j=1 n i=1

fi, j ≥ 0

Die kontinuierliche Variable fi, j repr¨asentiert die Transportmenge von Quelle i zu Senke j. NB (2.144) und (2.145) stellen sicher, dass die Kapazit¨at jeder Quelle ausgesch¨opft und der Bedarf jeder Senke genau erf¨ullt wird. Die Zielfunktion repr¨asentiert das Ziel, die gesamten Transportkosten zu minimieren. Wichtig f¨ur die Ganzzahligkeit optimaler L¨osungen ist die Struktur des Modells, die wir noch einmal im Detail betrachten wollen. Wir erkennen, dass es genau eine Variable pro Transportrelation gibt, genau eine NB f¨ur jede Quelle und genau eine NB f¨ur jede Senke. Die Variablen, die in der NB zu einer Quelle bzw. Senke auftreten, geh¨oren zu den zur Quelle oder Senke inzidenten Kanten. Alle Variablen haben hierbei einen Koeffizienten von 1. Alle Werte auf den rechten Seiten von NB sind ganzzahlig. Die NB wurden als Gleichungen formuliert. F¨ur die Ganzzahligkeit von optimalen L¨osungen ist dies jedoch unerheblich, d. h., das Folgende w¨urde

2.3 Mathematische Optimierungsmodelle

69

auch gelten, wenn die NB (2.144) und (2.145) ausdr¨uckten, dass die Kapazit¨aten nicht u¨ berschritten werden d¨urfen (≤) oder der Bedarf mindestens erf¨ullt werden muss (≥). In der Zielfunktion werden die gesamten Transportkosten als Summe der auf jeder Transportrelation entstehenden Kosten dargestellt. Das zweite Problem ist das Problem, einen kostenminimalen Netzwerkfluss zu finden. Hierbei geht es darum, kostenminimal Mengen von Quellen ggf. u¨ ber weitere Knoten zu Senken zu transportieren, ohne dabei gegebene Kantenkapazit¨aten zu verletzen. Problem 2.7 (Kostenminimaler Netzwerkfluss). Eingabe: Gerichteter Graph G = (V, E), Kapazit¨at wu,v f¨ur jede Kante (u, v), ganzzahliger Nettobedarf du jedes Knotens u, Kosten cu,v pro Einheit f¨ur jede Kante (u, v) LR: Ganzzahlige, nicht-negative Transportmenge fu,v f¨ur jede Kante (u, v) ¨ ZB: Uber keine Kante (u, v) wird mehr als wu,v versendet; ein Knoten mit nicht-negativem Nettobedarf du erh¨alt du Einheiten mehr, als er versendet und ein Knoten mit negativem Nettobedarf du versendet −du Einheiten mehr, als er empf¨angt. ZS: Gesamtkosten sind zu minimieren. Frage: Was ist eine optimale L¨osung? −9

9/2 2

+8 4

4/1

7/7

−5 7/2

1

6

6/3

+2 3/1

1/6 3

5 ±0

4/6

+4

Abb. 2.17 Instanz des kostenminimalen Netzwerkflusses

Abb. 2.17 stellt eine Instanz von Problem 2.7 (Kostenminimaler Netzwerkfluss) in Form eines gerichteten Graphen dar. An den Knoten ist der jeweilige Nettobedarf abgetragen; an jeder Kante (u, v) ist wu,v /cu,v notiert. Ein lineares MO, das Problem 2.7 (Kostenminimaler Netzwerkfluss) abbildet, findet sich im Folgenden.

70

2 Modellierung

Modell 2.18 (Kostenminimaler Netzwerkfluss (Problem 2.7)). min



cu,v · fu,v

(2.147)

(u,v)∈E

u.B.d.N.



(v,u)∈E

fv,u −



fu,v = du

∀u ∈ V

(2.148)

∀ (u, v) ∈ E

(2.149)

(u,v)∈E

wu,v ≥ fu,v ≥ 0

Die kontinuierliche Variable fu,v repr¨asentiert die Transportmenge auf der Kante (u, v). NB (2.148) stellt sicher, dass der Nettobedarf jedes Knotens ausgeglichen wird. In NB (2.149) wird die Einhaltung der Kapazit¨aten sichergestellt, w¨ahrend die Zielfunktion das Ziel, die gesamten Transportkosten zu minimieren, repr¨asentiert. Wir wollen uns wiederum die Struktur des MO genauer anschauen. Es gibt genau eine Variable pro Kante im Graphen und genau eine NB f¨ur jeden Knoten. Die Variablen, die in der NB zu Knoten u auftreten, korrespondieren genau zu den zu u inzidenten Kanten. Alle Variablen, die zu eingehenden Kanten korrespondieren, haben hierbei einen Koeffizienten von 1; alle Variablen, die zu ausgehenden Kanten korrespondieren, haben hierbei einen Koeffizienten von −1. Wiederum sind alle Werte auf den rechten Seiten von NB ganzzahlig. In der Zielfunktion werden alle Variablen ber¨ucksichtigt. Die Koeffizienten der einzelnen Variablen sind hierbei beliebig. Das dritte Problem ist das Problem, einen maximalen Fluss zu finden. Hier gibt es nur eine Quelle und eine Senke und das Ziel ist, unter Einhaltung von Kantenkapazit¨aten eine maximale Menge von Quelle zu Senke zu transportieren. Problem 2.8 (Maximaler Fluss). Eingabe: Gerichteter Graph G = (V, E), Kapazit¨at wu,v f¨ur jede Kante (u, v), ausgewiesener Quellknoten s und Senkenknoten t LR: Ganzzahlige, nicht-negative Transportmenge fu,v f¨ur jede Kante (u, v) ¨ ZB: Uber keine Kante (u, v) wird mehr als wu,v versendet; jeder Knoten, der weder s noch t ist, erh¨alt so viele Einheiten wie er versendet. ZS: Von s versendete (und von t empfangene) Menge ist zu maximieren. Frage: Was ist eine optimale L¨osung? Abb. 2.18 stellt eine Instanz von Problem 2.8 (Maximaler Fluss) in Form eines gerichteten Graphen mit Quellknoten s und Senkenknoten t dar. An jeder Kante (u, v) ist die Kapazit¨at wu,v notiert. Ein lineares MO, das Problem 2.8 (Maximaler Fluss) abbildet, findet sich im Folgenden.

2.3 Mathematische Optimierungsmodelle

71 1

4

3

3

2

s

t

3

4

7 Abb. 2.18 Instanz des maximalen Flusses

2

1

4

Modell 2.19 (Maximaler Fluss (Problem 2.8)). max



(2.150)

fs,u

(s,u)∈E

u.B.d.N.



(v,u)∈E

fv,u −



fu,v = 0

∀ u ∈ V, u = s, u = t

(2.151)

wu,v ≥ fu,v ≥ 0

∀ (u, v) ∈ E

(2.152)

(u,v)∈E

Die kontinuierliche Variable fu,v repr¨asentiert wieder die Transportmenge auf der Kante (u, v). NB (2.151) stellt sicher, dass jeder Knoten, der weder s noch t ist, so viele Einheiten erh¨alt wie er versendet. Die Zielfunktion repr¨asentiert das Ziel, die von s aus versendete Transportmenge zu maximieren. Da die von s aus versendete Transportmenge der von t empfangenen Transportmenge entspricht, werden beide Mengen simultan maximiert. Die Struktur von Modell 2.19 entspricht in weiten Teilen der Struktur von Modell 2.18. Einzige Ausnahme ist, dass die NB nicht f¨ur Quellknoten und Senkenknoten formuliert werden und die Werte auf den rechten Seiten von NB und die Koeffizienten in der Zielfunktion eine spezielle Struktur haben. Wir k¨onnen uns die Zielfunktion aber ebenfalls (wie in Modell 2.18) als eine Summe u¨ ber alle Kanten vorstellen, in der alle Kanten außer denen, die von s ausgehen, einen Koeffizienten von 0 haben. Problem 2.8 (Maximaler Fluss) und Problem 2.7 (Kostenminimaler Netzwerkfluss) werden wir in den Abschnitten 5.4.1 und 5.4.2 noch n¨aher analysieren. Diese Analyse wird allerdings unabh¨angig von einer bestimmten Repr¨asentation durch ein MO erfolgen. F¨ur die genannten drei linearen Modelle 2.17, 2.18 und 2.19 k¨onnen wir also davon ausgehen, dass wir ganzzahlige L¨osungen erhalten, auch wenn wir die Variablen kontinuierlich definieren. Dies ist nicht nur f¨ur die drei abgebildeten Probleme 2.6 (Transportproblem), 2.7 (Kostenminimaler Netzwerkfluss) und 2.8 (Maximaler Fluss) selber interessant. Diese Probleme finden sich als Teilprobleme in zahlreichen weiteren Problemen. Als Beispiel wollen wir Problem 2.2 (Standortplanung) und das entsprechende lineare Modell 2.9 auf S. 49 betrachten. Wir k¨onnen

72

2 Modellierung

erkennen, dass wir (sofern alle Kapazit¨aten und Bedarfe ganzzahlig sind) f¨ur jede Belegung der Bin¨arvariablen y1 , . . . , yn mit Werten ein MO erhalten, das strukturell Modell 2.17 entspricht. Das bedeutet, dass wir f¨ur die Variablen, die in Modell 2.9 die Transportmengen abbilden, nicht explizit Ganzzahligkeit fordern m¨ussen und dennoch ganzzahlige Variablenwerte in einer optimalen L¨osung erhalten. Zusammenfassung: Verzicht auf Ganzzahligkeit von Variablen (3) Wenn sich f¨ur jede m¨ogliche Belegung einer Teilmenge von Variablen ein MO ergibt, das strukturell einem der Modelle 2.17, 2.18 und 2.19 entspricht, so gibt es optimale L¨osungen, in denen die verbleibenden Variablen ganzzahlige Werte annehmen, auch wenn diese Variablen kontinuierlich definiert sind. Die Modelle 2.17, 2.18 und 2.19 sind bekannte Vertreter einer gr¨oßeren Klasse von MO, f¨ur die die Ganzzahligkeit von kontinuierlichen Variablen gilt. Dies soll an dieser Stelle nicht vertieft werden; das Stichwort, unter dem der interessierte Leser weitere Informationen finden kann, ist total unimodulare Matrix“. ” In der in Abb. 2.15 auf S. 66 beschriebenen Situation sind wir darauf angewiesen, dass wir ein Verfahren kennen, das eine ganzzahlige unter den optimalen L¨osungen des MO ohne Ganzzahligkeit findet (oder wir haben einfach Gl¨uck und finden eine ganzzahlige L¨osung, obwohl das verwendete Verfahren dies nicht garantiert). Es gibt allerdings auch MO, bei denen ein st¨arkerer Zusammenhang zwischen optimalen L¨osungen und Ganzzahligkeit der Variablen gegeben ist; dieser Zusammenhang ist in Abb. 2.19 dargestellt. Menge der zul¨assigen L¨osungen ohne Ganzzahligkeit

Menge der optimalen L¨osungen ohne Ganzzahligkeit

Menge der zul¨assigen L¨osungen mit Ganzzahligkeit

Abb. 2.19 Mengen zul¨assiger und optimaler L¨osungen verschiedener MOs

Hier gilt f¨ur jede optimale L¨osung des MO ohne Ganzzahligkeit, dass die kontinuierlichen Variablen ganzzahlige Werte annehmen. D. h., wir werden unabh¨angig von dem konkreten L¨osungsverfahren immer ganzzahlige Variablenwerte erhalten, sofern wir eine optimale L¨osung ermitteln. Um dies zu veranschaulichen, betrachten

2.3 Mathematische Optimierungsmodelle

73

wir die Probleme 2.4 (Projektplanung) und 2.5 (Quadratisches Zuordnungsproblem) sowie die entsprechenden linearen Modelle 2.11 und 2.12 auf S. 50 und 51. • In Modell 2.11 ist die Variable P, die das Projektende repr¨asentiert, ganzzahlig definiert. Nehmen wir an, P ist stattdessen als kontinuierliche Variable definiert. Wie wir sehen, wird P nur durch die NB (2.59) beschr¨ankt. Offensichtlich ist der Wert der linken Seite von NB (2.59) ganzzahlig. Weiterhin wird P gem¨aß Zielfunktion (2.55) in einer optimalen L¨osung auf den niedrigsten zul¨assigen Wert gesetzt. Also nimmt P in einer optimalen L¨osung den gr¨oßten Wert auf der linken Seite von NB (2.59) an und ist somit ganzzahlig. Dies ist jedoch nicht in allen zul¨assigen L¨osungen der Fall. Wir k¨onnen leicht erkennen, dass wir ausgehend von einer optimalen L¨osung den Wert von P um 0,5 erh¨ohen k¨onnen und eine zul¨assige L¨osung mit nicht-ganzzahligem Wert von P erhalten. • In Modell 2.12 ist die Variable vi,k,i ,k bin¨ar definiert. Nehmen wir an, f¨ur vi,k,i ,k wird die Menge der nicht-negativen, reellen Zahlen als Dom¨ane gew¨ahlt. Wie wir sehen, wird vi,k,i ,k nur durch die NB (2.65) beschr¨ankt. Offensichtlich hat die linke Seite von NB (2.65) einen Wert in {−1, 0, 1}. In Kombination mit der modifizierten Dom¨ane impliziert NB (2.65) also vi,k,i ,k ≥ 0 oder vi,k,i ,k ≥ 1. Weiterhin wird vi,k,i ,k gem¨aß Zielfunktion (2.62) in einer optimalen L¨osung auf den niedrigsten zul¨assigen Wert gesetzt. Also nimmt vi,k,i ,k in einer optimalen L¨osung entweder den Wert 0 oder den Wert 1 an und ist somit ganzzahlig und sogar bin¨ar. Auch hier gilt diese Aussage nicht f¨ur alle zul¨assigen L¨osungen. Zusammenfassung: Verzicht auf Ganzzahligkeit von Variablen (4) Wenn sich selbst dann f¨ur jede optimale L¨osung ganzzahlige Werte f¨ur eine Teilmenge von Variablen ergeben, wenn die Ganzzahligkeitsbedingungen f¨ur diese Variablen ignoriert werden, dann kann auf die Ganzzahligkeitsbedingungen dieser Variablen verzichtet werden, sofern wir ein Verfahren anwenden, dass optimale L¨osungen garantiert.

2.3.2.5 Eliminierung verzichtbarer L¨osungen In Abschnitt 2.3.2.4 haben wir davon gesprochen, dass es vorteilhaft sein kann, die Menge der zul¨assigen L¨osungen zu erweitern (indem wir Variablen nicht auf ganzzahlige Werte beschr¨anken). Die Menge zul¨assiger L¨osungen eines MO werden wir im Folgenden als Zul¨assigkeitsraum bezeichnen. Der Vorteil lag darin, dass wir die Struktur des Problems vereinfachen (durch Verwendung kontinuierlicher statt diskreter Variablen) und daf¨ur den gr¨oßeren Zul¨assigkeitsraum in Kauf nehmen. Wenn sich kein solcher struktureller Vorteil ergibt, dann ist ein unn¨otig großer Zul¨assigkeitsraum in der Regel nicht von Vorteil. Abh¨angig von dem konkreten L¨osungsverfahren verursacht er zum Teil einen deutlich gr¨oßeren L¨osungsaufwand. Tendenziell sollte der Modellierer also den Zul¨assigkeitsraum eines MO so klein wie m¨oglich halten.

74

2 Modellierung

An dieser Stelle sollten wir zun¨achst festlegen, wann wir einen Zul¨assigkeitsraum als unn¨otig groß erachten wollen. Dies h¨angt mit Sicherheit von dem Ziel ab, das wir mit dem MO verfolgen. Wenn unser Ziel ist, ein Problem genau abzubilden und dabei auch genau auszudr¨ucken, welche L¨osungen des MO zul¨assigen L¨osungen des Problems entsprechen und welche nicht, dann haben wir in der Regel wenig Spielraum, was die Anzahl der zul¨assigen L¨osungen angeht. Diese Anzahl ist durch das Problem vorgegeben. Wenn wir aber auf das L¨osen eines Optimierungsproblems abzielen, dann kann es m¨oglich sein, den Zul¨assigkeitsraum des MO deutlich kleiner zu formulieren. Streng genommen ben¨otigen wir dann eigentlich nur die optimalen L¨osungen im Zul¨assigkeitsraum, denn an allen anderen sind wir ja ohnehin nicht interessiert. Wom¨oglich br¨auchten wir sogar nur eine einzige L¨osung im Zul¨assigkeitsraum, denn in der Regel interessiert uns ja nur eine (beliebige) optimale L¨osung. Dummerweise m¨ussten wir das Problem l¨osen, um den Zul¨assigkeitsraum so klein aufzuspannen. Dieses Ideal zu erreichen, ist also schwer (und in gewisser Weise sinnlos, denn warum w¨urden wir ein Problem modellieren wollen, dessen L¨osung wir kennen). Nichtsdestotrotz f¨uhrt eine (moderatere) Einschr¨ankung des Zul¨assigkeitsraums h¨aufig zu leichter l¨osbaren Modellen. Es ist z. B. auch sinnvoll, einen Teil der L¨osungen, die nicht optimal sein k¨onnen, auszuschließen. Dies kann durch Erg¨anzen weiterer NB geschehen. Wir wollen uns dies an Problem 2.2 (Standortplanung) und dem entsprechenden linearen Modell 2.9 auf S. 49 vor Augen f¨uhren. Wir wollen annehmen, dass es zwei potentielle Standorte i und i gibt, sodass i niedrigere Fixkosten, eine h¨ohere Kapazit¨at und niedrigere Transportkosten zu jedem Kunden als i hat. Dies ist zwar eine recht spezielle Konstellation, aber wenn sie auftritt, dann k¨onnen wir leicht sehen, dass eine L¨osung, in der i er¨offnet wird und i nicht er¨offnet wird, nicht optimal sein kann. Von einer solchen L¨osung ausgehend k¨onnten wir i schließen und stattdessen i er¨offnen und i alle Transporte, die von i ausgingen, zuordnen. Die neue L¨osung ist zul¨assig, denn i hat ja eine h¨ohere Kapazit¨at, und hat einen niedrigeren Zielfunktionswert, denn i verursacht niedrigere Fix- und Transportkosten. Wir k¨onnen angesichts dieser Erkenntnis folgende NB in Modell 2.9 erg¨anzen. yi  ≤ y i

∀ i, i = 1, . . . , n,Ci > Ci , fi < fi , ci, j < ci , j , j = 1, . . . , m

(2.153)

NB (2.153) stellt sicher, dass in der oben beschriebenen Situation i nur er¨offnet werden kann, wenn i auch er¨offnet wird. Nach Einf¨ugen von NB (2.153) ist eine L¨osung, in der i , aber nicht i er¨offnet ist, nicht zul¨assig, obwohl sie im Sinne von Problem 2.2 (Standortplanung) durchaus zul¨assig w¨are. Zusammenfassung: Eliminierung suboptimaler L¨osungen Wenn wir eine NB formulieren k¨onnen, die nur von suboptimalen L¨osungen verletzt wird, dann k¨onnen wir durch Erg¨anzung dieser NB den Zul¨assigkeitsraum verkleiner, ohne eine optimale L¨osung zu eliminieren.

2.3 Mathematische Optimierungsmodelle

75

Eine andere Option besteht darin, m¨oglicherweise sogar optimale L¨osungen zu eliminieren, dabei aber sicherzustellen, dass mindestens eine optimale L¨osung im Zul¨assigkeitsraum verbleibt. Im Folgenden bezeichnen wir eine L¨osung als verzichtbar, wenn wir sie aus dem Zul¨assigkeitsraum entfernen k¨onnen, ohne den Wert der optimalen (verbleibenden) L¨osung zu ver¨andern. Eine Menge von L¨osungen nennen wir dementsprechend verzichtbar, wenn wir sie zusammen aus dem Zul¨assigkeitsraum entfernen k¨onnen, ohne den Wert der optimalen (verbleibenden) L¨osung(en) zu ver¨andern. Zu betonen ist, dass die Menge mehrerer jeweils verzichtbarer L¨osungen nicht zwangsl¨aufig eine verzichtbare Menge von L¨osungen ergibt. Wenn es z. B. genau zwei optimale L¨osungen gibt, dann sind beide jeweils verzichtbar, da man jede der beiden entfernen kann, ohne dass die optimale verbleibende L¨osung schlechter wird. Wenn man allerdings beide entfernt, ist die optimale verbleibende L¨osung sehr wohl schlechter. Eine spezielle Eigenschaft von MO, die die Existenz verzichtbarer L¨osungen impliziert, ist Symmetrie. Formale Definitionen f¨ur Symmetrie in MO gibt es z. B. in Margot (2010) und Pfetsch und Rehn (2019). Wir wollen Symmetrie an dieser Stelle etwas weniger formal definieren. Definition 2.12 (Symmetrie). Symmetrie liegt in einem MO vor, wenn es eine Funktion f gibt, sodass f¨ur jede Probleminstanz und jede zul¨assige L¨osung x des MO f (x) eine zul¨assige L¨osung des MO mit gleichem Zielfunktionswert ist und x = f (x) f¨ur mindestens eine Probleminstanz und eine L¨osung x gilt. Die Definition besagt, dass wir bei vorliegender Symmetrie jeder L¨osung in einem MO eine nicht notwendigerweise andere L¨osung mit gleichem Zielfunktionswert zuordnen k¨onnen. Es muss Probleminstanzen geben und eine L¨osung x geben, der eine andere L¨osung f (x) zugeordnet wird. W¨urden wir Letzteres nicht fordern, dann w¨are die identische Abbildung, die jede L¨osung auf sich selbst abbildet, offensichtlich eine Funktion f , die Symmetrie impliziert. Dies wollen wir aber ausschließen, da diese Funktion nichts u¨ ber die Struktur unseres MOs aussagen w¨urde. Die Definition fordert lediglich die Existenz einer zuordnenden Funktion f . Das bedeutet nicht, dass diese eindeutig ist oder dass wir sie kennen. Kenntnis u¨ ber die Funktion zu erlangen, ist mitunter ein kompliziertes Unterfangen. Ans¨atze hierzu werden ebenfalls in Margot (2010) und Pfetsch und Rehn (2019) besprochen. H¨aufig kennt der Modellierer eine solche Funktion allerdings schon (sofern eine existiert), da sie sich relativ offensichtlich aus dem Wissen u¨ ber das abgebildete Problem ergibt. Wir k¨onnen dann leicht sehen, dass f (x) verzichtbar ist und aus dem Zul¨assigkeitsraum entfernt werden kann, solange wir x behalten. Eine Menge von L¨osungen l¨asst sich entfernen, falls sich jede dieser L¨osungen direkt oder indirekt mittels f aus mindestens einer L¨osung herleiten l¨asst, die im Zul¨assigkeitsraum verbleibt.

76

2 Modellierung

Salopp formuliert: Symmetrie in MOs Symmetrie in einem MO bedeutet, dass es unterschiedliche L¨osungen gibt, die identische Zielfunktionswerte haben. H¨aufig k¨onnen wir Symmetrie durch unser Anwendungswissen identifizieren und diese nutzen, um einige, aber nicht alle (!) dieser gleichwertigen L¨osungen zu eliminieren. Im Folgenden wollen wir zwei g¨angige Ans¨atze vorstellen, die es erlauben, verzichtbare L¨osungen zu eliminieren. Wir werden ein weiteres Problem 2.9 mit einer relativ einfachen Struktur einf¨uhren, anhand dessen die Ideen der Ans¨atze zun¨achst erl¨autert werden. Im Anschluss erfolgt dann jeweils die Umsetzung f¨ur Problem 2.3 (Fließbandplanung) und das entsprechende Modell 2.10 auf S. 50. Bei Problem 2.9 geht es um die Bearbeitung von Auftr¨agen auf einer Menge von identischen Maschinen. Die einer Maschine zugeordneten Auftr¨age werden nacheinander bearbeitet; somit ergibt sich die Gesamtbearbeitungszeit einer Maschine als Summe der Bearbeitungszeiten der ihr zugeordneten Auftr¨age. Problem 2.9 (Bearbeitung auf parallelen Maschinen). Eingabe: Anzahl m von Maschinen, Anzahl n von Auftr¨agen, Bearbeitungszeit p j jedes Auftrags j LR: Zuordnung von Auftr¨agen zu Maschinen ZB: Jeder Auftrag ist genau einer Maschine zugeordnet. ZS: Die maximale Gesamtbearbeitungszeit der Maschinen ist zu minimieren. Frage: Was ist eine optimale L¨osung? Wir verwenden eine Bin¨arvariable x j,i f¨ur jeden Auftrag j und jede Maschine i, die den Wert 1 annimmt, wenn j auf i bearbeitet wird. Die kontinuierliche Variable C beschreibt den letzten Fertigstellungszeitpunkt eines Auftrags. Modell 2.20 (Bearbeitung auf parallelen Maschinen (Problem 2.9)). min C n

u.B.d.N.

∑ p j · x j,i ≤ C

(2.154)

∀ i = 1, . . . , m

(2.155)

∀ j = 1, . . . , n

(2.156)

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

(2.157)

j=1

m

∑ x j,i = 1

i=1

x j,i ∈ {0, 1}

Zun¨achst analysieren wir die Symmetrie in den Modellen 2.20 und 2.10. Mit unserem Wissen u¨ ber die abgebildeten Probleme erkennen wir leicht, dass alle Maschinen (in Modell 2.20) und Stationen (in Modell 2.10) identisch und daher beliebig austauschbar sind. Konkrete Bezeichner f¨ur Maschinen und Stationen, in unserem Fall j = 1, . . . , m in Modell 2.20 und j = 1, . . . , n in Modell 2.10, sind nur f¨ur die

2.3 Mathematische Optimierungsmodelle

77

Formulierung eines linearen MO n¨otig. Die wesentliche Informationsstruktur einer L¨osung besteht in beiden F¨allen aus der Zerlegung der Menge von Auftr¨agen bzw. Arbeitsschritten in Teilmengen. In Modell 2.10 m¨ussen die Teilmengen zudem geordnet sein, damit sichergestellt werden kann, dass die Reihenfolgebeziehungen zwischen den Arbeitsschritten eingehalten werden. Die Symmetrie in Modell 2.20 macht aus, dass aus jeder L¨osung eine gleichwertige andere L¨osung erzeugt werden kann, indem die Zuordnung der Teilmengen zu Maschinen ge¨andert wird. Dies ist f¨ur m ≥ 2 immer m¨oglich, indem z. B. die Belegungen zweier Maschinen vertauscht werden. Die Symmetrie in Modell 2.10 ist a¨ hnlich, hier ist allerdings die Ordnung der Teilmengen zu beachten. Wenn eine Station nicht genutzt wird, k¨onnen z. B. alle Arbeitsschritte, die der vorherigen oder der n¨achsten benutzten Station zugeordnet worden sind, hierhin verschoben werden. Die Einteilung von Elementen in Teilmengen stellt h¨aufig eine Ursache f¨ur Symmetrie dar, weswegen wir diese MO nutzen wollen, um die Ans¨atze zu erl¨autern. Die beiden im Folgenden vorgestellten Ans¨atze werden sich h¨aufig nutzen lassen. Allerdings ist die Implementierung stark modellabh¨angig und kann daher nicht generell beschrieben werden. Es gibt nat¨urlich auch weitere Ans¨atze, die zum Teil modellspezifisch sind. Das grundlegende Schema bleibt allerdings gleich: Man entfernt L¨osungen aus dem Zul¨assigkeitsraum des MOs so, dass mindestens eine gleichwertige L¨osung f¨ur jede entfernte L¨osung im Zul¨assigkeitsraum verbleibt.

Eliminierung durch Erg¨anzung von NB Wenn wir Kenntnis von vorliegender Symmetrie haben, dann wissen wir, welche L¨osungen einander entsprechen, d. h., welche L¨osungen sich zwar unterscheiden, aber denselben Zielfunktionswert haben. Wir k¨onnen dann versuchen, dem MO NB hinzuzuf¨ugen, die einige der sich entsprechenden L¨osungen als unzul¨assig deklarieren, aber aus jeder Menge von sich entsprechenden L¨osungen mindestens eine L¨osung nicht als unzul¨assig deklarieren. Dies ist in Abb. 2.20 visualisiert. Abb. 2.20 stellt den vollst¨andigen Zul¨assigkeitsraum eines Modells als großen Kreis dar. Wir sehen einzelne L¨osungen, wobei identische Symbole f¨ur sich entsprechende L¨osungen stehen. Beispielsweise haben wir sechs L¨osungen, die durch ein Quadrat dargestellt sind. Diese L¨osungen sind verschieden, entsprechen einander aber in Bezug auf die im Modell enthaltene Symmetrie, d. h., diese sechs L¨osungen haben identische Zielfunktionswerte. In Modell 2.20 k¨onnten dies z. B. L¨osungen sein, die sich durch Vertauschen der Belegungen von Maschinen voneinander ableiten lassen. Wir sehen außerdem drei weitere Teilmengen von sich jeweils entsprechenden L¨osungen, dargestellt durch Dreiecke, Kreuze und (kleine) Kreise. Wir nehmen nun an, dass wir zwar nicht wissen, welche Teilmenge von L¨osungen den besten Zielfunktionswert hat, dass wir aber sehr wohl u¨ ber die vorliegende Symmetrie informiert sind. Wenn wir in dem bestehenden MO NB erg¨anzen, wird der Zul¨assigkeitsraum schrumpfen oder gleich bleiben. Wir k¨onnten z. B. eine NB einf¨ugen, die nur die in Menge A enthaltenen L¨osungen im Zul¨assigkeitsraum bel¨asst. Wir erkennen, dass von jeder Teilmenge von L¨osungen mindestens eine ent-

78

2 Modellierung C

B A Abb. 2.20 Reduktion von Symmetrie

halten ist. Daher ist die optimale L¨osung in dem MO, das den Zul¨assigkeitsraum auf A beschr¨ankt, auch optimal f¨ur das urspr¨ungliche MO. Noch effizienter gestaltet ist Menge B, bei der aus jeder Teilmenge von L¨osungen genau eine im Zul¨assigkeitsraum verbleibt. Allein mit Wissen u¨ ber die Symmetrie k¨onnen wir den Zul¨assigkeitsraum nicht st¨arker eingrenzen, ohne das Risiko einzugehen, keine urspr¨unglich optimale L¨osung im Zul¨assigkeitsraum zu behalten. Menge C z. B. enth¨alt keine L¨osung, die durch ein Quadrat dargestellt ist. Wenn ausgerechnet nur die L¨osungen, die durch Quadrate dargestellt werden, optimal f¨ur das Ausgangsmodell sind, dann erhalten wir bei Beschr¨ankung auf C als Zul¨assigkeitsraum eine suboptimale L¨osung f¨ur das Ausgangsmodell. Nun wollen wir diese Idee an den Modellen 2.20 und 2.10 umsetzen. Wie schon oben erl¨autert ist offensichtlich, dass die Maschinen in Modell 2.20 beliebig austauschbar sind. In einer konkreten L¨osung unterscheiden sich Maschinen zwar in einigen Eigenschaften, wie z. B. Anzahl der zugewiesenen Auftr¨age, diese sind jedoch f¨ur die Bewertung der L¨osung unerheblich. Daher werden wir immer mindestens eine der sich entsprechenden L¨osungen behalten, wenn wir verlangen, dass die Maschinen gem¨aß dieser Eigenschaft sortiert sind. Es gibt etliche naheliegende Eigenschaften, die hierf¨ur in Frage kommen. • Wir betrachten als Eigenschaft einer Maschine i, ob Auftrag j = 1 von i bearbeitet wird oder nicht. Dies kann in einer zul¨assigen L¨osung nur f¨ur eine Maschine der Fall sein und wir fordern, dass dies Maschine i = 1 ist. Wir k¨onnen diese Forderung implementieren, indem wir

2.3 Mathematische Optimierungsmodelle

79

x1,1 = 1

(2.158)

in Modell 2.20 erg¨anzen. Es ist leicht zu erkennen, dass es f¨ur jede L¨osung, die in Modell 2.20 zul¨assig ist, aber NB (2.158) nicht erf¨ullt, eine andere L¨osung gibt, die denselben Zielfunktionswert hat und NB (2.158) erf¨ullt. Betrachten wir hierf¨ur eine zul¨assige L¨osung von Modell 2.20, bei der Auftrag j = 1 auf Maschine i > 1 bearbeitet wird. Wir tauschen dann einfach alle Auftr¨age zwischen Maschinen i und 1 aus. Diese kleine Ver¨anderung reduziert die Anzahl zul¨assiger L¨osungen von Modell 2.20 um einen Faktor, der der Anzahl m der Maschinen entspricht. Im Ursprungsmodell gibt es f¨ur jede Zerlegung der Menge von Auftr¨agen in Teilmengen m! M¨oglichkeiten diese den Maschinen zuzuordnen. Nach Einf¨ugen von NB (2.158) gibt es nur noch (m − 1)! m¨ogliche Zuordnungen, denn die Teilmenge, in der Auftrag 1 enthalten ist, muss Maschine 1 zugeordnet werden. • Als Eigenschaft einer Maschine i k¨onnen wir die Gesamtbearbeitungszeit der ihr zugewiesenen Auftr¨age verwenden. Wir k¨onnen dann fordern, dass die Maschinen nach dieser Kennzahl nicht-absteigend sortiert sind, und implementieren dies, indem wir n

n

j=1

j=1

∑ p j x j,i−1 ≤ ∑ p j x j,i

∀ i = 2, . . . , m

(2.159)

in Modell 2.20 erg¨anzen. Wiederum ist leicht zu erkennen, dass wir nicht alle sich entsprechenden L¨osungen eliminieren. Die Erg¨anzung von NB (2.159) reduziert die Anzahl zul¨assiger L¨osungen von Modell 2.20 um einen Faktor, den wir nicht genau kennen. Wie oben erl¨autert, gibt es Mengen von m! sich entsprechenden L¨osungen (spezifiziert durch alle Permutationen von Maschinen). Wenn die Teilmengen von Auftr¨agen alle unterschiedliche Gesamtbearbeitungszeiten aufweisen, dann werden durch NB (2.159) alle der m! sich entsprechenden L¨osungen bis auf eine eliminiert. Wenn dies nicht der Fall ist, werden weniger eliminiert. Die Anzahl zul¨assiger L¨osungen reduziert sich also um einen Faktor, der h¨ochstens m! betr¨agt. An dieser Stelle soll betont werden, dass entweder NB (2.158) oder NB (2.159) dem Modell hinzugef¨ugt werden kann, ohne dass alle urspr¨unglich optimalen L¨osungen aus dem verbleibenden Zul¨assigkeitsraum eliminiert werden. Wenn wir aber beide NB erg¨anzen, dann ist dies nicht mehr sichergestellt. Eine L¨osung, in der die Maschine mit der geringsten Gesamtbearbeitungszeit nicht Auftrag 1 bearbeitet, w¨urde ausgeschlossen und solch eine L¨osung kann durchaus optimal sein. • Als Eigenschaft einer Maschine i k¨onnen wir den kleinsten Index eines ihr zugewiesenen Auftrags verwenden. Wir k¨onnen dann wiederum fordern, dass die Maschinen nach dieser Kennzahl nicht-absteigend sortiert sind, und implementieren dies, indem wir j−1

∑ x j ,i−1 ≥ x j,i

j =1

∀ i = 2, . . . , m; j = 2, . . . , n

(2.160)

80

2 Modellierung

in Modell 2.20 erg¨anzen. W¨ahrend die Sortierung an sich nicht schwer zu motivieren ist, wollen wir kurz erl¨autern, dass NB (2.160) dies auch gew¨ahrleistet. NB (2.160) besagt, dass wir einen Auftrag j > 1 nur dann einer Maschine i > 1 zuordnen d¨urfen, wenn mindestens ein Auftrag j = 1, . . . , j − 1 Maschine i − 1 zugeordnet wurde. Dies bedeutet, dass f¨ur jeden Auftrag j, den Maschine i zugeordnet bekommt, Maschine i − 1 einen Auftrag mit kleinerem Index haben muss. Dies gilt insbesondere f¨ur den Auftrag mit dem kleinsten Index, der Maschine i zugeordnet wurde. Die Erg¨anzung von NB (2.160) reduziert die Anzahl zul¨assiger L¨osungen von Modell 2.20 sicher um einen Faktor von m!. Hier ist zu beachten, dass die Maschinen sich in der benutzten Kennzahl auf jeden Fall unterscheiden (dies war bei der Gesamtbearbeitungszeit nicht der Fall). Auch hier wollen wir kurz schauen, ob eine Kombination von NB (2.160) mit NB (2.158) oder NB (2.159) zul¨assig oder sinnvoll w¨are. NB (2.160) implementiert NB (2.158), denn in jeder im Zul¨assigkeitsraum verbleibenden L¨osung wird Auftrag 1 von Maschine 1 bearbeitet. Daher w¨urde bei einer Kombination von NB (2.160) und NB (2.158) mindestens eine der urspr¨unglich optimalen L¨osungen im Zul¨assigkeitsraum verbleiben. Da wir aber denselben Zul¨assigkeitsraum erhalten, wenn wir nur NB (2.160) erg¨anzen, ist die Kombination nicht ¨ sinnvoll. Dar¨uber hinaus k¨onnen wir analog zu unseren Uberlegungen f¨ur NB (2.159) erkennen, dass eine Kombination von NB (2.159) und NB (2.160) unzul¨assig ist. An dem obigen Beispiel zeigt sich, dass es zwei gegenl¨aufige Effekte geben kann. Tendenziell bevorzugen wir NB, die die Gr¨oße des Zul¨assigkeitsraums stark reduzieren. Jedoch k¨onnen die ben¨otigten NB auch umso komplexer werden, je effektiver sie den Zul¨assigkeitsraum beschr¨anken. Dies bedeutet zum einen, dass es aufw¨andiger und komplizierter sein kann, sie zu formulieren. Zum anderen wird das L¨osen des MO in der Regel aber auch aufw¨andiger, wenn die NB komplexer werden. D. h., es ist nicht unbedingt so, dass die NB, die den Zul¨assigkeitsraum am st¨arksten beschr¨anken, zu den am schnellsten l¨osbaren MO f¨uhren. Wir wenden uns nun Modell 2.10 zu. Hier k¨onnen wir die verwendeten Stationen f¨ur eine Zerlegung der Menge von Arbeitsschritten nicht beliebig austauschen, denn die Reihenfolgebeziehungen zwischen den Arbeitsschritten sind einzuhalten. Dennoch gibt es in der Regel eine Vielzahl von sich entsprechenden L¨osungen, denn die Auswahl der benutzten Stationen ist nur dann eindeutig, wenn alle potentiellen Stationen benutzt werden. In der Regel ist das nicht der Fall, da wir vorab nicht wissen, wie viele potentielle Stationen benutzt werden. Wir k¨onnen also eine NB erg¨anzen, die daf¨ur sorgt, dass immer die ersten potentiellen Stationen benutzt werden: y j−1 ≥ y j

∀ j = 2, . . . , n

(2.161)

NB (2.161) stellt sicher, dass die potentielle Station j nur benutzt werden kann, wenn auch j − 1 benutzt wird. Daher werden in einer L¨osung, in der k Stationen benutzt werden, die Stationen 1, . . . , k benutzt. Diese NB reduziert   die Anzahl der zul¨assigen L¨osungen mit k benutzten Stationen um den Faktor nk .

2.3 Mathematische Optimierungsmodelle

81

Zusammenfassung: Eliminierung durch Erg¨anzung von NB Wenn wir eine NB formulieren k¨onnen, die nur von einer verzichtbaren Menge von L¨osungen verletzt wird, dann k¨onnen wir durch Erg¨anzung dieser NB den Zul¨assigkeitsraum verkleinern, ohne alle optimalen L¨osungen zu eliminieren. Wenn eine L¨osung austauschbare Teilmengen von Objekten impliziert, kann eine solche NB h¨aufig formuliert werden, indem man die Sortierung der Teilmengen anhand von Kennzahlen, die sich durch die L¨osung ergeben, erzwingt.

Eliminierung durch Reformulierung (Spalten, Repr¨asentanten) Wie schon oben erw¨ahnt, geht es sowohl in Modell 2.20 als auch in Modell 2.10 haupts¨achlich darum, Teilmengen von Elementen (Auftr¨agen oder Arbeitsschritten) zu bilden. Die Container“ (Maschinen oder Stationen), denen die Elemente dabei ” zugeordnet werden, haben vorab keine unterscheidbaren Merkmale (außer dem Index, aber dieser ist willk¨urlich). Alternativ zu einer Modellierung per Zuordnung zu Containern kann eine Modellierung explizit ausdr¨ucken, ob zwei Elemente in derselben Teilmenge sind oder nicht. Hierf¨ur gibt es zwei g¨angige Ans¨atze. • Jede m¨ogliche Teilmenge kann durch eine separate Variable repr¨asentiert werden. F¨ur Problem 2.9 (Bearbeitung auf parallelen Maschinen) auf S. 76 bedeutet dies, dass wir eine Bin¨arvariable yS f¨ur jede Teilmenge S von Auftr¨agen verwenden, die den Wert 1 annimmt, wenn die Teilmenge von Auftr¨agen auf einer Maschine bearbeitet wird. Hierbei soll betont werden, dass nicht entschieden wird, auf welcher Maschine die Teilmenge bearbeitet wird. Modell 2.21 (Bearbeitung auf parallelen Maschinen 2 (Problem 2.9)). min C u.B.d.N.

(2.162)

CS · yS ≤ C

∀ S ⊆ {1, . . . , n}

(2.163)

yS = 1

∀ j = 1, . . . , n

(2.164)



S⊆{1,...,n}, j∈S



yS ≤ m

(2.165)

S⊆{1,...,n}

yS ∈ {0, 1}

∀ S ⊆ {1, . . . , n}

(2.166)

NB (2.164) und (2.165) stellen sicher, dass jeder Auftrag in genau einer ausgew¨ahlten Teilmenge ist und nicht mehr als m Teilmengen gew¨ahlt werden. NB (2.163) beschr¨ankt Variable C nach unten, wobei CS = ∑ j∈S p j die gesamte Bearbeitungszeit der Auftr¨age in S ist.

82

2 Modellierung

Da wir Maschinen in diesem MO nun u¨ berhaupt nicht mehr repr¨asentieren, ist diese Ursache f¨ur Symmetrie eliminiert. Wir erreichen dies hier durch die Verwendung von einer sehr großen Anzahl von 2n Variablen, denn es gibt 2n Teilmengen. Die hohe Anzahl von Variablen kann sich negativ auf das L¨osen des MO auswirken. Wiederum m¨ussen wir also einen positiven Effekt (Vermeidung von Symmetrie) gegen einen negativen Effekt (h¨ohere Anzahl von Variablen) abw¨agen. Es ist vorab nicht klar, welcher Effekt st¨arker ist. Wir verfahren a¨ hnlich, um Modell 2.10 auf S. 50 zu reformulieren, und verwenden Bin¨arvariable zS , die den Wert 1 annimmt, wenn die (Teil-)Menge S von Arbeitsschritten an einer Station bearbeitet wird. Modell 2.22 (Fließbandplanung linear 2 (Problem 2.3)). min



zS

(2.167)

S⊆{1,...,n}

u.B.d.N.



zS = 1

∀ i = 1, . . . , n (2.168)

kS − kS + (2 − zS − zS ) · M ≥ 1

∀ S, S ⊆ {1, . . . , n}, i ∈ S, i ∈ S ∩ Ni (2.169)

S⊆{1,...,n},i∈S

zS ∈ {0, 1}

∀ S ⊆ {1, . . . , n} (2.170)

kS ≥ 0

∀ S ⊆ {1, . . . , n} (2.171)

NB (2.168) sorgt daf¨ur, dass jeder Auftrag in genau einer ausgew¨ahlten Teilmenge ist. Durch NB (2.169) werden die Reihenfolgebeziehungen eingehalten. Jeder ausgew¨ahlten Teilmenge S wird ein Zahlenwert kS zugewiesen. Wenn zwei Teilmengen S und S ausgew¨ahlt werden und S einen Nachfolger eines Arbeitsschrittes in S enth¨alt, dann muss kS − kS ≥ 1 gelten. Die ausgew¨ahlten Teilmengen k¨onnen dann in nicht-absteigender Reihenfolge der k-Werte zu Stationen zugeordnet werden. • Wir k¨onnen die Zusammengeh¨origkeit von Elementen zur selben Teilmenge dadurch abbilden, dass wir die Elemente einander zuordnen. Jede Teilmenge hat dann einen Repr¨asentanten, der sich selber zugeordnet wird, und jedes andere Element der Teilmenge wird dem Repr¨asentanten zugeordnet. Um Problem 2.9 (Bearbeitung auf parallelen Maschinen) abzubilden, benutzen wir daf¨ur Variable y j, j f¨ur jedes Paar von Auftr¨agen j und j mit j ≤ j , die den Wert 1 annimmt, wenn Auftrag j Auftrag j zugeordnet wird.

Literaturverzeichnis

83

Modell 2.23 (Bearbeitung auf parallelen Maschinen 3 (Problem 2.9)). min C n

u.B.d.N.

p j · y j, j ≤ C ∑ 

(2.172)

∀ j = 1, . . . , n

(2.173)

∀ j = 1, . . . , n

(2.174)

∀ j = 1, . . . , n

(2.175)

j =j

j

∑ y j, j = 1

j=1 n



j = j+1 n

y j, j ≤ n · y j, j

∑ y j, j ≤ m

(2.176)

j=1

y j, j ∈ {0, 1}

∀ j, j = 1, . . . , n, j ≤ j

(2.177)

NB (2.174), (2.175) und (2.176) stellen sicher, dass jeder Auftrag einem Repr¨asentanten zugeordnet wird und es nicht mehr als m Repr¨asentanten gibt. NB (2.173) beschr¨ankt C nach unten durch die Gesamtbearbeitungszeit der einem Repr¨asentanten zugeordneten Auftr¨age. Wir k¨onnen analog verfahren, um Modell 2.10 zu reformulieren. Wir benutzen dann die Idee aus Modell 2.22, um Reihenfolgebeziehungen abzubilden. Salopp formuliert: Eliminierung durch Reformulierung Wenn es uns gelingt, ein alternatives MO zu formulieren, das die Elemente, die im Ausgangsmodell austauschbar waren, nicht abbildet, dann vermeiden wir diese Symmetrie des Ausgangsmodells.

Literaturverzeichnis Achterberg T (2009) Scip: solving constraint integer programs. Mathematical Programming Computation 1:1–41 Bixby R, Rothberg E (2007) Progress in computational mixed integer programming – a look back from the other side of the tipping point. Annals of Operations Research 149:37–41 Gurobi Optimization (2019) Gurobi optimizer. URL http://www.gurobi.com/products/gurobi-optimizer IBM (2019) Cplex optimizer. URL https://www.ibm.com/analytics/cplex-optimizer

84

2 Modellierung

J¨unger M, Liebling T, Naddef D, Nemhauser G, Pulleyblank W, Reinelt G, Rinaldi G, Wolsey L (eds) (2010) 50 Years of Integer Programming 1958-2008. Springer, Heidelberg Margot F (2010) Symmetry in Integer Linear Programming, pp 647–686. In: J¨unger u. a. (2010) Opitz O, Etschberger S, Burkart W, Klein R (2017) Mathematik – Lehrbuch f¨ur das Studium der Wirtschaftswissenschaften. Oldenbourg Pfetsch ME, Rehn T (2019) A computational comparison of symmetry handling methods for mixed integer programs. Mathematical Programming Computation 11(1):37–93 Stachowiak H (1973) Allgemeine Modelltheorie. Springer, Wien/New York Suhl L, Mellouli T (2013) Optimierungssysteme – Modelle, Verfahren, Software, Anwendungen, 3. Aufl. Springer, Berlin u. a. Williams H (2013) Model Building in Mathematical Programming, 5. Aufl. John Wiley & Sons Zuse Institute Berlin (2019) Scip – solving constraint integer programs. URL http://scip.zib.de/

Kapitel 3

Lineare Optimierung

Zusammenfassung In diesem Kapitel werden fundamentale Konzepte und Verfahren der linearen Optimierung vorgestellt. Wir befassen uns zun¨achst mit einem Spezialfall, der uns erlaubt, die zentralen Ideen und Vorgehensweisen des SimplexAlgorithmus grafisch darzustellen. Anschließend verallgemeinern wir diese Vorgehensweisen zu dem Simplex-Algorithmus f¨ur allgemeine Probleme der linearen Optimierung. Im Weiteren besprechen wir Beziehungen zwischen vermeintlich unterschiedlichen Problemen bzw. Modellen und nutzen diese, um L¨osungen zu Problemen bzw. Modellen zu analysieren. Lernziele Kapitel 3 Sie kennen nach Lesen und Verinnerlichen dieses Kapitels, • den Simplex-Algorithmus und • wesentliche Konzepte der linearen Optimierung. Sie k¨onnen nach Lesen und Verinnerlichen dieses Kapitels • lineare Optimierungsmodelle l¨osen und • die Ergebnisse interpretieren. In diesem Kapitel wollen wir uns mit der L¨osung von einer bestimmten Klasse von Problemen besch¨aftigen. Als zentrales Verfahren werden wir dabei den Simplex-Algorithmus vorstellen. Den Ablauf dieses Verfahrens k¨onnen wir sehr gut an MOs, wie in Kapitel 2 eingef¨uhrt, darstellen. Der Simplex-Algorithmus erzielt optimale L¨osungen f¨ur alle LPs, also MOs mit ausschließlich kontinuierlichen Variablen, sofern es optimale L¨osungen gibt. Das bedeutet, dass er uns in die Lage versetzt, alle Probleme, die wir durch LPs repr¨asentieren k¨onnen, zu l¨osen. Damit stellt der Simplex-Algorithmus ein m¨achtiges Instrument zur Entscheidungsunterst¨utzung dar. Wir haben in Abschnitt 2.3.2.4 besprochen, dass wir LPs nat¨urlich auch dann einsetzen k¨onnen, wenn bei einer akkuraten Darstellung des Problems ganzzahlige Variablen ben¨otigt w¨urden. Das LP wird dann in der Regel das Problem nicht ge-

© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 D. Briskorn, Operations Research, https://doi.org/10.1007/978-3-662-60783-1_3

86

3 Lineare Optimierung

nau abbilden, wodurch der Simplex-Algorithmus in diesem Fall als Basis f¨ur eine Heuristik dienen kann. Neben einer L¨osung des LPs liefert das Verfahren weitere Informationen, die o¨ konomisch interpretiert werden k¨onnen. Wir werden diese diskutieren und auch ihre Verwendung in Varianten des Verfahrens erl¨autern.

3.1 Standardform Wir wollen zun¨achst eine spezielle Form von LPs einf¨uhren, die sogenannte Standardform. Ein LP ist in Standardform, wenn • der Zielfunktionswert zu maximieren ist, • alle Summanden der NB, in denen Variablen enthalten sind, auf der linken Seite und die u¨ brigen Summanden auf der rechten Seite stehen, • es ausschließlich kleiner-gleich“-NB gibt und ” • die Variablen auf nicht-negative Werte beschr¨ankt sind. Wir werden uns im Folgenden h¨aufig auf diese Form beziehen, wenn wir Verfahren oder Ergebnisse erl¨autern. Dies klingt nach einer starken Einschr¨ankung, aber wir werden zun¨achst sehen, dass wir jedes LP in diese Form bringen k¨onnen. Dies bedeutet, dass alle Konzepte und Verfahren in diesem Kapitel auf beliebige LPs anwendbar sind. Hierf¨ur bringen wir ein beliebiges LP zun¨achst in Standardform und wenden die Konzepte und Verfahren dann an. Wir werden zudem in einigen F¨allen naheliegende Entsprechungen f¨ur LPs in anderer Form diskutieren. Diese Entsprechungen ersparen uns dann den Umweg u¨ ber die Standardform. Es ist zun¨achst einmal festzuhalten (und wir werden dies intensiv in Abschnitt 3.3 besprechen), dass es keinen formalen Unterschied zwischen Dom¨anendefinitionen und NB, in denen nur eine Variable verwendet wird, gibt. Wir wollen im Folgenden im Kontext von LPs in Standardform Beschr¨ankungen von Variablenwerten nach oben als NB und Beschr¨ankungen von Variablenwerten nach unten als Dom¨anendefinitionen auffassen. Diese Unterscheidung ist aber willk¨urlich und dient nur der Anlehnung an eine etablierte Unterscheidung, die wir auch in anderen Lehrb¨uchern finden k¨onnen. Domschke u. a. (2015) sprechen z. B. von Nebenbedingungen und Nichtnegativit¨atsbedingungen, wenn die Dom¨ane den nicht-negativen Zahlen entspricht. Die Prozedur zur Transformation eines beliebigen LP in Standardform besteht aus mehreren Schritten, in denen nach und nach die gew¨unschten Eigenschaften erzeugt werden. Algorithmus 3.1 spezifiziert die Vorgehensweise.

3.1 Standardform

87

Algorithmus 3.1 (Standardform). Eingabe: LP l p Ausgabe: zu l p a¨ quivalentes LP in Standardform 1. Wenn l p eine zu minimierende Zielfunktion f hat, dann ersetze sie durch die zu maximierende Zielfunktion − f . 2. Bringe in allen NB die Summanden ohne Variablen nach rechts und die verbleibenden Terme nach links. 3. Ersetze jede NB mit einer gleich“-Relation durch zwei NB mit identischen lin” ken und rechten Seiten und einer kleiner-gleich“-Relation sowie einer gr¨oßer” ” gleich“-Relation. 4. Multipliziere jede NB mit einer gr¨oßer-gleich“-Relation in l p mit −1. ” 5. Setze f¨ur jede Beschr¨ankung von Variablenwerten nach oben eine entsprechende NB. 6. Substituiere jede unbeschr¨ankte Variable x ∈ R durch die Differenz x+ − x− zweier nicht negativer Variablen x+ ≥ 0 und x− ≥ 0. 7. Substituiere jede nach unten beschr¨ankte Variable x ≥ k durch x + k, wobei x eine nach unten beschr¨ankte Variable x ≥ 0 ist. In Schritt 1. wird – falls n¨otig – die Zielfunktion modifiziert. Wenn diese in l p schon zu maximieren ist, ist keine Ver¨anderung n¨otig. Wenn sie zu minimieren ist, hilft uns die Tatsache, dass das Minimieren einer Funktion a¨ quivalent zum Maximieren der negativen Funktion ist. Wir m¨ussen damit leben, dass der Zielfunktionswert in dem modifizierten LP dann nicht mehr dem in l p entspricht, sondern immer dem negativen Zielfunktionswert. Da wir dies aber wissen, k¨onnen wir den Zielfunktionswert entsprechend interpretieren. Wichtig ist, dass jede optimale L¨osung in l p auch optimal in dem modifizierten LP ist (und umgekehrt). In Schritt 2. sortieren wir lediglich die Terme der NB, die von Variablen abh¨angen, bzw. die, die das nicht tun, auf die linke bzw. die rechte Seite der NB. Nach Ausf¨uhrung von Schritt 2. steht auf der rechten Seite der NB also ein absoluter Betrag, w¨ahrend kein absoluter Betrag (ungleich Null) auf der linken Seite steht. In Schritt 3. werden Gleichungen durch Ungleichungen ersetzt. Wir ersetzen jede Gleichung durch zwei NB, in denen gefordert wird, dass die linke Seite kleiner-gleich und gr¨oßer-gleich der rechten Seite ist. Da beide neuen NB erf¨ullt werden m¨ussen, ist die urspr¨ungliche NB, die Gleichheit fordert, erf¨ullt. Abschließend transformieren wir in Schritt 4. gr¨oßer-gleich“-NB in kleiner-gleich“-NB, indem wir sie mit ” ” ” −1 multiplizieren“. Durch die drei Schritte verbleiben somit nur noch kleiner” gleich“-NB im Modell, in denen nur absolute Werte auf der rechten Seite stehen. In Schritt 5. setzen wir zun¨achst f¨ur jede Beschr¨ankung von Variablenwerten nach oben eine explizite NB, sodass wir die Beschr¨ankung in der Dom¨ane ignorieren k¨onnen. In Schritt 6. ersetzen wir unbeschr¨ankte Variablen jeweils durch die Differenz zweier nicht-negativer Variablen. Durch diese Differenz k¨onnen wir beliebige positive sowie negative Werte ausdr¨ucken. Abschließend werden Variablen mit einer unteren Schranke k = 0 durch die Summe einer nicht-negativen Variable und k ersetzt.

88

3 Lineare Optimierung

Zusammenfassung: Standardform eines LPs Ein LP in Standardform hat eine zu maximierende Zielfunktion und ausschließlich kleiner-gleich“-NB und nicht-negative Variablen. Jedes LP l¨asst ” sich in ein a¨ quivalentes LP in Standardform u¨ berf¨uhren. Die Konzentration auf LPs in Standardform erleichtert uns die Darstellung einiger Sachverhalte, ohne uns dabei einzuschr¨anken. Wir werden die vollst¨andige Umformung nun an folgendem Modell 3.1, das offensichtlich nicht in Standardform ist, beispielhaft durchf¨uhren. Modell 3.1 (LP nicht in Standardform). min 4 · x1 + 5 · x2 + 2 · x3 + 3 · x4 u.B.d.N.

(3.1)

5 · x1 + 1 · x2 + 1 · x3 + 1 · x4 ≤ 30 3 · x1 + 4 · x2 + 2 · x3 + 3 · x4 ≥ 180

(3.2)

2 · x1 + 6 · x2 + 1 · x3 + 3 · x4 = 80

(3.4)

(3.3)

x1 ≥ 0

(3.5)

x2 ≥ 3

(3.6)

x3 ∈ R

(3.7)

x4 ≤ −4

(3.8)

Gem¨aß Schritt 1. multiplizieren wir die Zielfunktion mit −1 und erhalten eine zu maximierende Zielfunktion max −4 · x1 − 5 · x2 − 2 · x3 − 3 · x4 .

(3.9)

Schritt 2. f¨uhrt zu keinen Ver¨anderungen, da die NB schon entsprechend sortiert sind. In Schritt 3. wird NB (3.4) durch zwei NB (3.13) und (3.14) ersetzt. Modell 3.2 (LP ohne Gleichungen). max −4 · x1 − 5 · x2 − 2 · x3 − 3 · x4 u.B.d.N.

(3.10)

5 · x1 + 1 · x2 + 1 · x3 + 1 · x4 ≤ 30 3 · x1 + 4 · x2 + 2 · x3 + 3 · x4 ≥ 180

(3.11)

2 · x1 + 6 · x2 + 1 · x3 + 3 · x4 ≤ 80

(3.13)

2 · x1 + 6 · x2 + 1 · x3 + 3 · x4 ≥ 80

(3.14)

(3.12)

x1 ≥ 0

(3.15)

x2 ≥ 3

(3.16)

x3 ∈ R

(3.17)

x4 ≤ −4

(3.18)

3.1 Standardform

89

In Schritt 4. transformieren wir gr¨oßer-gleich“-NB (3.12) und (3.14) in die ” kleiner-gleich“-NB (3.21) und (3.23). ” Modell 3.3 (LP mit auschließlich kleiner-gleich“-NB). ” max −4 · x1 − 5 · x2 − 2 · x3 − 3 · x4 u.B.d.N.

(3.19)

5 · x1 + 1 · x2 + 1 · x3 + 1 · x4 ≤ 30 −3 · x1 − 4 · x2 − 2 · x3 − 3 · x4 ≤ −180

(3.21)

2 · x1 + 6 · x2 + 1 · x3 + 3 · x4 ≤ 80

(3.22)

−2 · x1 − 6 · x2 − 1 · x3 − 3 · x4 ≤ −80

(3.20)

(3.23)

x1 ≥ 0

(3.24)

x2 ≥ 3

(3.25)

x3 ∈ R

(3.26)

x4 ≤ −4

(3.27)

In Schritt 5. erg¨anzen wir explizite NB f¨ur die Beschr¨ankungen von Variablenwerten nach oben. In unserem Beispiel betrifft dies nur Variable x4 . Da deren Wertebereich nicht nach unten eingeschr¨ankt ist, ist sie gem¨aß Dom¨anendefinition nun unbeschr¨ankt. Es ist leicht zu erkennen, dass die neue Dom¨anendefinition (3.37) zusammen mit der neuen NB (3.33) der alten Dom¨anendefinition (3.27) entspricht. Modell 3.4 (LP ohne Dom¨anebeschr¨ankungen nach oben). max −4 · x1 − 5 · x2 − 2 · x3 − 3 · x4 u.B.d.N.

(3.28)

5 · x1 + 1 · x2 + 1 · x3 + 1 · x4 ≤ 30 −3 · x1 − 4 · x2 − 2 · x3 − 3 · x4 ≤ −180

(3.29)

2 · x1 + 6 · x2 + 1 · x3 + 3 · x4 ≤ 80

(3.31)

−2 · x1 − 6 · x2 − 1 · x3 − 3 · x4 ≤ −80

(3.32)

(3.30)

x4 ≤ −4

(3.33)

x1 ≥ 0

(3.34)

x2 ≥ 3

(3.35)

x3 ∈ R

(3.36) (3.37)

x4 ∈ R

In Schritt 6. werden die unbeschr¨ankten Variablen x3 und x4 durch die Differenzen (x3+ − x3− ) und (x4+ − x4− ) ersetzt. Nach diesem Schritt sind alle Variablen gem¨aß Dom¨anendefinition nach unten, aber nicht nach oben beschr¨ankt.

90

3 Lineare Optimierung

Modell 3.5 (LP ohne unbeschr¨ankte Variablen).

u.B.d.N.

max −4 · x1 − 5 · x2 − 2 · (x3+ − x3− ) − 3 · (x4+ − x4− )

(3.38)

5 · x1 + 1 · x2 + 1 · (x3+ − x3− ) + 1 · (x4+ − x4− ) ≤ 30

(3.39)

−3 · x1 − 4 · x2 − 2 · (x3+ − x3− ) − 3 · (x4+ − x4− ) 2 · x1 + 6 · x2 + 1 · (x3+ − x3− ) + 3 · (x4+ − x4− ) −2 · x1 − 6 · x2 − 1 · (x3+ − x3− ) − 3 · (x4+ − x4− ) (x4+ − x4− )

≤ −180

(3.40)

≤ 80

(3.41)

≤ −80

(3.42)

≤ −4

(3.43)

x1 ≥ 0

(3.44)

≥3

(3.45)

≥0

(3.46)

≥0

(3.47)

x2 + − x 3 , x3 x4+ , x4−

In Schritt 7. wird Variable x2 durch (x2 + 3) ersetzt. Der Term x2 + 3 mit x2 ≥ 0 hat denselben Wertebereich wie x2 . Wir erhalten Modell 3.6 in Standardform. Modell 3.6 (LP mit ausschließlich nicht-negativen Variablen).

u.B.d.N.

max −4 · x1 − 5 · (x2 + 3) − 2 · (x3+ − x3− ) − 3 · (x4+ − x4− )

(3.48)

5 · x1 + 1 · (x2 + 3) + 1 · (x3+ − x3− ) + 1 · (x4+ − x4− ) ≤ 30

(3.49)

−3 · x1 − 4 · (x2 + 3) − 2 · (x3+ − x3− ) − 3 · (x4+ − x4− ) 2 · x1 + 6 · (x2 + 3) + 1 · (x3+ − x3− ) + 3 · (x4+ − x4− ) −2 · x1 − 6 · (x2 + 3) − 1 · (x3+ − x3− ) − 3 · (x4+ − x4− ) (x4+ − x4− )

≤ −180

(3.50)

≤ 80

(3.51)

≤ −80

(3.52)

≤ −4 x1 ≥ 0

(3.54)

x2 ≥ 0

(3.55)

x3+ , x3− x4+ , x4−

(3.53)

≥0

(3.56)

≥0

(3.57)

Abschließend sortieren wir noch einmal alle Summanden der NB, in denen Variablen enthalten sind, auf die linken Seiten und die u¨ brigen Summanden auf die rechten Seiten.

3.1 Standardform

91

Modell 3.7 (LP in Standardform).

u.B.d.N.

max −4 · x1 − 5 · x2 − 2 · x3+ + 2 · x3− − 3 · x4+ + 3 · x4− − 15

(3.58)

5 · x1 + 1 · x2 + 1 · x3+ − 1 · x3− + 1 · x4+ − 1 · x4− ≤ 27

(3.59)

−3 · x1 − 4 · x2 − 2 · x3+ + 2 · x3− − 3 · x4+ + 3 · x4− 2 · x1 + 6 · x2 + 1 · x3+ − 1 · x3− + 3 · x4+ − 3 · x4− −2 · x1 − 6 · x2 − 1 · x3+ + 1 · x3− − 3 · x4+ + 3 · x4− 1 · x4+ − 1 · x4− x1 , x2 , x3+ , x3− , x4+ , x4−

≤ −168

(3.60)

≤ 62

(3.61)

≤ −62

(3.62)

≤ −4

(3.63)

≥0

(3.64)

Die Zielfunktion (3.58) enth¨alt eine Konstante mit Wert −15. Diese Konstante k¨onnen wir entfallen lassen, da sie den Vergleich zweier L¨osungen anhand des Zielfunktionswertes nicht beeinflusst. Wir haben keinen formalen Beweis gef¨uhrt, dass wir jedes LP mittels Algorithmus 3.1 in ein a¨ quivalentes LP in Standardform u¨ berf¨uhren k¨onnen, es erscheint aber hinreichend offensichtlich. Nachdem wir also sichergestellt haben, dass wir uns nicht einschr¨anken, wenn wir uns auf die Standardform konzentrieren, werden wir im Weiteren genau das tun. Wenn nicht anders erw¨ahnt, gehen wir also von dem folgenden Modell 3.8 aus. Dies wird die Darstellung vieler Sachverhalte deutlich vereinfachen. Modell 3.8 (Generisches LP in Standardform). n

max ∑ c j · x j

(3.65)

j=1

n

u.B.d.N.

∑ ai, j · x j ≤ bi

∀i = 1, . . . , m

(3.66)

∀ j = 1, . . . , n

(3.67)

j=1

xj ≥ 0

Wir wollen uns kurz vor Augen f¨uhren, wie sich die Matrix a und die Vektoren b und c des Modells 3.8 f¨ur das konkrete Beispiel in Modell 3.7 ergeben. Wir haben n = 6 Variablen x1 , . . . , x6 in Modell 3.8, die den Variablen x1 , x2 , x3+ , x3− , x4+ und x4− in Modell 3.7 entsprechen. Den Vektor c = (−4, −5, −2, 2, −3, 3) k¨onnen wir direkt aus (3.58) ablesen. Hierbei k¨onnen wir konstante Terme vernachl¨assigen, da sie f¨ur die Optimierung keine Relevanz haben. Der Vektor b = (27, −168, 62, −62, −4) f¨ur die rechte Seite der m = 5 NB ergibt sich aus der rechten Seite der NB (3.59) bis (3.63) unter Ber¨ucksichtigung der konstanten Terme auf der linken Seite. Die Matrix

92

3 Lineare Optimierung





5 1 1 −1 1 −1 ⎜−3 −4 −2 2 −3 3 ⎟ ⎜ ⎟ ⎟ a=⎜ ⎜ 2 6 1 −1 3 −3⎟ ⎝−2 −6 −1 1 −3 3 ⎠ 0 0 0 0 1 −1 l¨asst sich aus der linken Seite der NB ablesen.

3.2 LPs mit zwei Variablen Zun¨achst werden wir uns ein LP mit lediglich zwei Variablen anschauen. Dies eignet sich besonders gut, da sich Instanzen grafisch darstellen lassen und der Ablauf des Verfahrens so besonders anschaulich erl¨autert werden kann. Dieser Abschnitt ist haupts¨achlich als Hinf¨uhrung zum folgenden zu verstehen, in dem wir uns dann mit LPs mit mehr Variablen auseinandersetzen. Viele der hier erl¨auterten Konzepte werden wir in Abschnitt 3.3 in verallgemeinerter Form wiederfinden.

3.2.1 Grafische Darstellung Wir betrachten eine Instanz von Modell 3.8 und stellen diese in Modell 3.9 dar. Beispiel 3.1 (Instanz zu Modell 3.8). • n = 2, m = 3 • c1 = 4, c2 = 5 • b1 =⎛30, b⎞ 2 = 180, b3 = 108 01 • a = ⎝3 5⎠ 32 Modell 3.9 (Modell zu Beispiel 3.1). max 4 · x1 + 5 · x2 u.B.d.N.

0 · x1 + 1 · x2 ≤ 30 3 · x1 + 5 · x2 ≤ 180 3 · x1 + 2 · x2 ≤ 108 x1 , x2 ≥ 0

(3.68) (3.69) (3.70) (3.71) (3.72)

Der LR, die NB, die Dom¨anendefinitionen sowie die Zielfunktion werden in Abb. 3.1 veranschaulicht. Wir erl¨autern zun¨achst die Darstellung der zul¨assigen L¨osungen und anschließend die der Zielfunktion.

3.2 LPs mit zwei Variablen

93

x2 60

50

  3 2 (3.71)

40

(3.69) 30

(3.70)

20

10

Z=0

  3 5   4 5 10

20 Z = 120

30

40 Z = 200

50

60

x1

Abb. 3.1 Grafische Repr¨asentation von Modell 3.9

Abb. 3.1 stellt ein zweidimensionales kartesisches Koordinatensystem dar. Wir k¨onnen jeden Punkt durch zwei Zahlen, seine Koordinaten, beschreiben. Wir interpretieren jeden Punkt (k, l) als Zuordnung von jeweils einem Wert aus R zu den Variablen x1 = k und x2 = l. Wir werden in diesem Zusammenhang die Begriffe Punkt und L¨osung synonym verwenden, denn jede L¨osung entspricht genau einem Punkt und umgekehrt. Nat¨urlich ist nicht jede L¨osung zul¨assig. Jede der NB (3.69) bis (3.71) sowie jede der Dom¨anendefinitionen (3.72) teilt die Ebene in einen Bereich von L¨osungen, die hinsichtlich der NB oder Dom¨ane zul¨assig sind, und einen Bereich von L¨osungen, die bzgl. der NB oder Dom¨ane unzul¨assig sind. Dargestellt sind die NB und Dom¨anendefinitionen in Abb. 3.1 durch Geraden. Die Geraden selber beschreiben die L¨osungen, bei denen die jeweilige NB oder Dom¨anendefinition mit ” Gleichheit erf¨ullt ist“. Das Erf¨ullen einer NB oder Dom¨anendefinition mit Gleichheit gibt die Darstellung einer Geraden in Normalenform vor.1 Die Koeffizienten der Variablen bilden dabei einen zur Geraden orthogonalen (senkrechten) Vektor. Die zu NB (3.70) korrespondierende Geradengleichung 3 · x1 + 5 · x2 = 180

1

Vgl. hierzu Opitz u. a. (2017)

94

3 Lineare Optimierung

definiert die entsprechende in Abb. 3.1 dargestellte Gerade. Der orthogonale Vektor ist ebenfalls dargestellt. Alle L¨osungen auf dieser Gerade erf¨ullen NB (3.70) mit Gleichheit. Die Achsen bilden in Abb. 3.1 die Dom¨anendefinitionen ab. Auch f¨ur diese k¨onnen wir eine Geradengleichung ableiten, die der jeweiligen Achse entspricht. Daf¨ur schreiben wir Dom¨anendefinition x1 ≥ 0 in die kleiner-gleich“-NB ” −x1 ≤ 0 um und erhalten die korrespondierende Geradengleichung −1 · x1 + 0 · x2 = 0. Diese Gerade beschreibt L¨osungen, die die Dom¨anendefinition x1 ≥ 0 mit Gleichheit erf¨ullen. Jede NB und Dom¨anendefinition in Form von Ungleichungen beschreibt einen der durch die Gerade getrennten Bereiche der Ebene als die Menge der L¨osungen, die die jeweilige NB und Dom¨anendefinition erf¨ullen. Es ist jeweils der Bereich, von dem der orthogonale Vektor wegorientiert ist. Bei NB (3.70) ist der orthogonale Vektor (3, 5) von dem Bereich unten links zu dem Bereich oben rechts orientiert. Entsprechend beschreibt der Bereich unterhalb bzw. links der Geraden zu NB (3.70) L¨osungen, die NB (3.70) erf¨ullen. F¨ur die Dom¨anendefinition x1 ≥ 0 (x2 ≥ 0) bzw. die entsprechende kleiner-gleich“-NB −x1 ≤ 0 (−x2 ≤ 0) liegt der Bereich der ” zul¨assigen L¨osungen rechts (oberhalb) der Ordinate (Abszisse). Der orthogonale Vektor (−1, 0) ((0, −1)) ist von diesem zul¨assigen Bereich zu dem unzul¨assigen Bereich links (unterhalb) der Ordinate (Abszisse) gerichtet. Eine Zuordnung von Werten zu den Variablen x1 und x2 ist eine zul¨assige L¨osung, falls sie alle NB und Dom¨anendefinitionen erf¨ullt. Dies bedeutet, dass ein Punkt eine zul¨assige L¨osung darstellt, falls er in der Schnittmenge der oben beschriebenen zul¨assigen Bereiche liegt. In Abb. 3.1 entspricht die Menge aller zul¨assigen L¨osungen der gepunkteten Fl¨ache. ¨ Neben diesen grunds¨atzlichen und eher theoretischen Uberlegungen wollen wir noch eine pragmatische Vorgehensweise zum Erstellen der grafischen Darstellung anbieten. F¨ur jede NB k¨onnen wir eine Gerade zeichnen. Die Gerade k¨onnen wir durch zwei Punkte bestimmen. H¨aufig nimmt man hierf¨ur die Punkte (0, x2 ) und (x1 , 0), also die Punkte, in denen die Gerade die Achsen schneidet. Dies funktioniert nat¨urlich nur, wenn die Gerade die Achsen u¨ berhaupt in zwei verschiedenen Punkten schneidet. Wenn dies nicht der Fall ist, ermittelt man zwei andere Punkte durch Einsetzen verschiedener Werte f¨ur eine der beiden Variable in die Geradengleichung. Die Gerade ist dann durch die beiden Punkte definiert und steht senkrecht (orthogonal) zu dem Vektor, den die Koeffizienten der NB bilden. Zur Darstellung von NB (3.70) k¨onnen wir die beiden Punkte (60, 0) und (0, 36) bestimmen und die Gerade durch diese beiden Punkte legen. Wenn man die Gerade gezeichnet hat, muss man noch ermitteln, auf welcher Seite der Geraden die L¨osungen liegen, die die NB erf¨ullen. Auch hier kann man einen beliebigen Punkt, der nicht auf der Geraden liegt, w¨ahlen und pr¨ufen, ob die entsprechende L¨osung die NB erf¨ullt. Oft bietet sich hier der Nullpunkt an, da die Berechnung besonders einfach ist. Erf¨ullt der gew¨ahlte Punkt die NB, liegt er im Bereich, der die NB erf¨ullt. Ansonsten erf¨ullt der Bereich, in dem der Punkt nicht liegt, die NB. Wir k¨onnen leicht erkennen,

3.2 LPs mit zwei Variablen

95

dass (0, 0) NB (3.70) erf¨ullt. Somit liegt der Bereich von L¨osungen, die NB (3.70) erf¨ullen, unterhalb bzw. links von der Geraden durch die Punkte (60, 0) und (0, 36). Auch die Zielfunktion k¨onnen wir mithilfe einer Geraden veranschaulichen. Im Gegensatz zu Geraden, die NB darstellen, hat diese Gerade aber keine fixe Position. Stattdessen bestimmen alle L¨osungen, die denselben Zielfunktionswert Z haben, eine Gerade mit fixer Position. In unserem Fall trifft dies auf alle L¨osungen zu, f¨ur die 4 · x1 + 5 · x2 = Z gilt. Wiederum stellt dies die Definition einer Geraden in Normalform dar. Der Vektor (4, 5) steht hierbei orthogonal auf der beschriebenen Geraden. Abb. 3.1 stellt drei solche Geraden (mit dem jeweils orthogonalen Vektor) als gestrichelte Geraden dar. Die entsprechenden Werte von Z sind Z = 0, Z = 120 und Z = 200 in aufsteigender Distanz zum Nullpunkt. Wir erinnern uns, dass bei der Darstellung der Geraden in Normalform der Wert Z ein Maß f¨ur die Position der beschriebenen Geraden in Relation zum Nullpunkt ist (sollten wir uns nicht erinnern, dann k¨onnen wir mit dem Stichwort Hessesche Normalform einer Ge” raden“ das Hintergrundwissen nachschlagen). Der Wert ist dabei positiv, wenn die Gerade in Orientierung des orthogonalen Vektors hinter dem Nullpunkt liegt und negativ, wenn sie vor dem Nullpunkt liegt. Wenn wir die Zielfunktion in einer beliebigen Lage zeichnen wollen, k¨onnen wir einen beliebigen Wert f¨ur Z setzen und die entsprechende Gerade durch Bestimmung zweier Punkte ermitteln. Durch Parallelverschieben erreichen wir dann auch jede gew¨unschte andere Lage der Zielfunktion. Zusammenfassung: Grafische Darstellung von LPs mit zwei Variablen Die Punkte in einem zweidimensionalen kartesischen Koordinatensystem repr¨asentieren die L¨osungen des LPs. Jeder Punkt repr¨asentiert dabei die L¨osung, in der den Variablen die Koordinaten des Punktes als Werte zugeordnet werden. NB und Dom¨anendefinitionen lassen sich als Geraden darstellen. Die L¨osungen auf einer solchen Geraden sind diejenigen, die die jeweilige NB und Dom¨anendefinition mit Gleichheit erf¨ullen. Die weiteren L¨osungen, die die jeweilige NB und Dom¨anendefinition erf¨ullen, liegen auf der Seite der Geraden, von der der orthogonale Vektor der Geraden wegorientiert ist. Die Zielfunktion wird h¨aufig ebenfalls durch eine Gerade symbolisiert. Diese beschreibt eine Menge von L¨osungen mit identischem Zielfunktionswert. Sie hat keine durch das Problem festgelegte Position. Nun wollen wir uns u¨ berlegen, was das f¨ur ein beliebiges LP mit zwei Variablen bedeutet. Es gibt zwei Dom¨anendefinitionen und eine beliebige Anzahl von NB. Wie oben beschrieben definiert jede von ihnen eine Halbebene der L¨osungen, die die jeweilige Dom¨anendefinition oder NB erf¨ullt. Im Folgenden wird wichtig sein, dass eine Halbebene eine konvexe Menge von Punkten in der Ebene beschreibt. Eine Menge von Punkten in der Ebene heißt konvex, wenn f¨ur jedes Paar von Punkten in der Menge gilt, dass auch die sie verbindende gerade Strecke vollst¨andig in der Menge liegt. Da die Schnittmenge von konvexen Mengen ebenfalls konvex ist, gilt zudem, dass die Menge der Punkte, die zul¨assige L¨osungen beschreiben, konvex ist. Ein Sonderfall liegt vor, wenn die Menge der zul¨assigen L¨osungen leer ist. Wir

96

3 Lineare Optimierung

sagen dann auch, dass das LP unzul¨assig ist. Die Zielfunktionsgerade hat einen orthogonalen Vektor, der die Richtung angibt, in der die L¨osungen liegen, die wir ” bevorzugen“. Salopp formuliert: Grafische Darstellung von LPs mit zwei Variablen Die L¨osungen, die in dem konvexen Bereich liegen, in dem alle NB und Dom¨anendefinitionen erf¨ullt werden, sind zul¨assig. Je weiter die Zielfunktionsgerade in Orientierung ihres orthogonalen Vektors liegt, umso besser sind die durch sie beschriebenen L¨osungen. Den oben erw¨ahnten Spezialfall eines unzul¨assigen LPs wollen wir auch kurz anhand eines Beispiels erl¨autern. Durch eine kleine Modifikation von (3.69) in Modell 3.9 erhalten wir Modell 3.10. Modell 3.10 (Unzul¨assiges LP). max 4 · x1 + 5 · x2 u.B.d.N.

(3.73)

0 · x1 − 1 · x2 ≤ −40 3 · x1 + 5 · x2 ≤ 180

(3.74)

3 · x1 + 2 · x2 ≤ 108

(3.76)

x1 , x2 ≥ 0

(3.75) (3.77)

In der grafischen Repr¨asentation von Modell 3.10 in Abb. 3.2 k¨onnen wir nun leicht erkennen, dass zul¨assige L¨osungen oberhalb von der Geraden zu NB (3.74) und links unterhalb der Geraden zu NB (3.75) und (3.76) liegen. F¨ur jede L¨osung (x1 , x2 ) ≥ 0, die NB (3.75) erf¨ullt, gilt x2 ≤ 36. Daher verletzt solch eine L¨osung NB (3.74) und die Menge zul¨assiger L¨osungen ist leer.

3.2.2 Grafische L¨osung ¨ Ubertragen auf die in Abschnitt 3.2.1 vorgestellte grafische Repr¨asentation bedeutet unser Optimierungproblem ( Finde die beste unter den zul¨assigen L¨osungen!“) die ” Suche nach einer Position der Zielfunktionsgeraden, die unter der Einschr¨ankung, dass mindestens eine der beschriebenen L¨osungen zul¨assig ist, maximalen Abstand zum Nullpunkt hat. F¨ur diese Gerade gilt dann, dass keine Gerade, die bessere L¨osungen beschreibt, eine zul¨assige L¨osung enth¨alt. Wir m¨ussen allerdings auch den Fall ber¨ucksichtigen, in dem es eine solche Gerade wom¨oglich nicht gibt. Dies ist dann der Fall, wenn das LP unzul¨assig ist, d. h. keine zul¨assige L¨osung hat, oder unbeschr¨ankt ist, d. h. beliebig gute L¨osungen hat. Beides k¨onnen wir an der grafischen Repr¨asentation erkennen. Das bisher Besprochene versetzt uns in die Lage,

3.2 LPs mit zwei Variablen

97

x2 60   3 2

50 40

(3.74) 

(3.76)



30

0 −1

20

(3.75)   3 5

10

10

20

30

40

50

60

x1

Abb. 3.2 Grafische Repr¨asentation eines unzul¨assigen LPs

optimale L¨osungen f¨ur LPs mit zwei Variablen zeichnerisch zu ermitteln. Algorithmus 3.2 spezifiziert die Vorgehensweise. Algorithmus 3.2 (Grafische L¨osung von LPs mit zwei Variablen). Eingabe: Instanz eines LP mit zwei Variablen Ausgabe: optimale L¨osung oder Information, dass keine existiert 1. Zeichne Dom¨anendefinitionen und NB. 2. Zeichne eine Zielfunktionsgerade, die durch die Menge der Punkte, die zul¨assige L¨osungen repr¨asentieren, verl¨auft. Sollte dies nicht m¨oglich sein, ist das LP unzul¨assig; STOP. 3. Verschiebe die Zielfunktionsgerade in Orientierung ihres orthogonalen Vektors so weit, dass a. weiteres Verschieben dazu f¨uhren w¨urde, dass die Gerade keine zul¨assige L¨osung mehr beschreibt (optimale L¨osung gefunden) oder b. kein Schnittpunkt zweier NB mehr vor der Zielfunktionsgeraden in Orientierung des orthogonalen Vektors liegt (LP ist unbeschr¨ankt). Algorithmus 3.2 sieht vor, die Zielfunktionsgerade zu verschieben, bis eine von zwei Bedingungen erf¨ullt ist. Dies geschieht ausgehend von einer initialen Position, die mindestens eine zul¨assige L¨osung beschreibt. Die erste Bedingung ist erf¨ullt, wenn das vorliegende LP eine optimale L¨osung hat und eine solche gefunden wurde. Die zweite ist erf¨ullt, wenn das LP unbeschr¨ankt ist.

98

3 Lineare Optimierung

Salopp formuliert: Grafische L¨osung von LPs mit zwei Variablen Wir verschieben die Zielfunktionsgerade, bis sie die Menge zul¨assiger L¨osungen verl¨asst. Dann sind die zul¨assigen L¨osungen auf der Zielfunktionsgeraden optimal. Die Korrektheit des Verfahrens bei Existenz einer optimalen L¨osung erschließt sich intuitiv anhand von Abb. 3.3 und 3.4. In Abb. 3.3 gibt es genau eine optimale L¨osung. Die Zielfunktionsgerade wird ausgehend von der initialen Position in Richtung des orthogonalen Vektors verschoben. Solange die finale Position noch nicht erreicht ist, z. B. wenn die Gerade auf der Zwischenposition liegt, ist weiteres Verschieben m¨oglich, sodass weiterhin zul¨assige L¨osungen durch die Zielfunktionsgerade beschrieben werden. Wenn die finale Position erreicht ist, ist dies nicht mehr m¨oglich. In Abb. 3.4 gibt es mehrere optimale L¨osungen. Die Zielfunktionsgerax2 finale Position Zwischenposition

optimale L¨osung

initiale Position

x1 Abb. 3.3 Grafische L¨osung bei genau einer optimalen L¨osung

de wird ausgehend von der initialen Position in Richtung des orthogonalen Vektors verschoben und erreicht (¨uber Zwischenpositionen) die finale Position, in der die Zielfunktionsgerade mehrere zul¨assige L¨osungen repr¨asentiert. Tats¨achlich sind alle L¨osungen zwischen den mit A und B markierten Punkten, und somit unendlich viele, optimal. Weiterhin wird offensichtlich ein unzul¨assiges LP erkannt, denn dann kann keine inititale Position f¨ur die Zielfunktionsgerade gefunden werden. Schließlich wollen wir den Fall betrachten, dass das LP unbeschr¨ankt ist. In diesem Fall gibt es

3.2 LPs mit zwei Variablen

99

x2 finale Position

B Optimale L¨osungen A

initiale Position

x1 Abb. 3.4 Grafische L¨osung bei mehreren optimalen L¨osungen

zul¨assige L¨osungen, die besser als der beste Schnittpunkt zweier NB sind. Dies folgt aus der Tatsache, dass es beliebig gute L¨osungen, aber nur endlich viele Schnittpunkte zweier NB gibt. Sobald wir eine solche zul¨assige L¨osung auf der aktuellen Position der Zielfunktionsgeraden erreichen, bricht das Verfahren ab. Die Situation wird bespielhaft in Abb. 3.5 dargestellt. Ausgehend von der initialen Position der Zielfunktionsgeraden erreicht sie durch Verschieben noch einen Schnittpunkt zweier NB, der eine zul¨assige L¨osung darstellt. Wir k¨onnen auch gut erkennen, dass der Bereich der zul¨assigen L¨osungen bei weiterem Verschieben immer breiter“ wird. ” Daher wird bei weiterem Verschieben kein weiterer Schnittpunkt mehr erreicht. Diese simple Vorgehensweise funktioniert nur, weil die Menge zul¨assiger L¨osungen konvex und somit zusammenh¨angend ist. Wenn dies nicht der Fall w¨are, k¨onnten wir nicht unweigerlich aufh¨oren zu verschieben, sobald die Zielfunktionsgerade keine zul¨assige L¨osung mehr enth¨alt. Es w¨are ja m¨oglich, dass wir, wenn wir die Zielgerade nur weit genug verschieben, wieder auf zul¨assige L¨osungen treffen. Bei einer zusammenh¨angenden Menge von Punkten, die zul¨assige L¨osungen beschreiben, kann dies nicht passieren. Wir k¨onnen also folgendes Ergebnis festhalten. Zusammenfassung: Grafische L¨osung von LPs mit zwei Variablen Mittels Algorithmus 3.2 k¨onnen wir ermitteln, ob ein LP unzul¨assig oder unbeschr¨ankt ist, und k¨onnen weiterhin, falls beides nicht zutrifft, alle optimalen L¨osungen bestimmen.

100

3 Lineare Optimierung

x2 Position, die Abbruch des Verfahrens ausl¨ost

Position bei Erreichen des Schnittpunktes

initiale Position x1 Abb. 3.5 Grafische L¨osung bei unbeschr¨anktem LP

3.2.3 Rechnerische L¨osung Im Folgenden werden wir erschließen, dass wir nicht alle zul¨assigen L¨osungen betrachten m¨ussen, um eine optimale L¨osung zu ermitteln. Wir werden dabei intuitiv argumentieren und auf einen formalen Beweis verzichten. In Abschnitt 3.3 werden wir das Argument f¨ur eine beliebige Anzahl von Variablen dann formaler darlegen. Wir sehen, dass die konvexe Menge von zul¨assigen L¨osungen abschnittsweise durch NB oder Dom¨anendefinitionen von den unzul¨assigen L¨osungen abgegrenzt wird. Einen Schnittpunkt mindestens zweier NB oder Dom¨anendefinitionen nennen wir im Folgenden Eckpunkt.2 Wenn ein Eckpunkt eine zul¨assige L¨osung repr¨asentiert, nennen wir ihn zul¨assig. Zwei zul¨assige Eckpunkte nennen wir benachbart, wenn sie auf einer Geraden derselben NB oder Dom¨anendefinition liegen. Die kleinste konvexe Menge von L¨osungen, die eine Menge von zul¨assigen Eckpunkten enth¨alt, nennen wir deren konvexe H¨ulle. Jede L¨osung in der konvexen H¨ulle der zul¨assigen Eckpunkte k¨onnen wir als Konvexkombination3 von zul¨assigen Eckpunkten darstellen. Eine Konvexkombination von L¨osungen X1 , . . . , Xk ist dabei ein gewichteter Durchschnitt k

∑ λl Xl

l=1

2 3

Die Definition gilt so nur f¨ur Abschnitt 3.2.3 und wird in Abschnitt 3.3 verallgemeinert. Vgl. hierzu Opitz u. a. (2017)

3.2 LPs mit zwei Variablen

101

mit Gewichten λ1 , . . . , λk , f¨ur die ∑kl=1 λl = 1 und λl ≥ 0, l = 1, . . . , k, gilt. Abb. 3.6 stellt die NB von Modell 3.9 (wie schon aus Abb. 3.1 auf S. 93 bekannt) dar und hebt die zul¨assigen Eckpunkte (0, 0), (36, 0), (20, 24), (10, 30) und (0, 30) hervor. Die zul¨assigen Eckpunkte (0, 0) und (0, 30) sind benachbart. Die gepunktete Fl¨ache entspricht der konvexen H¨ulle der zul¨assigen Eckpunkte. Wir sehen weiterhin den Punkt (20, 10), der eine zul¨assige L¨osung darstellt. x2 60 50 (3.71)

40

(3.69)

(00, 30) 30 20

(10, 30)

(3.70)

(20, 24)

10 (20, 10) (0, 0)

10

20

30

40 (36, 0)

50

60

x1

Abb. 3.6 Grafische Repr¨asentation von Modell 3.9

Tats¨achlich l¨asst sich die zul¨assige L¨osung (20, 10) als Konvexkombination             0 0 10 20 20 36 + λ2 · + λ3 · + λ4 · + λ5 · = λ1 · 0 30 30 24 0 10 der zul¨assigen Eckpunkte mit λ1 = 1/9, λ2 = 1/3, λ3 = λ4 = 0 und λ5 = 5/9 darstellen. Wir werden nun daf¨ur argumentieren, dass es in vielen relevanten F¨allen eine optimale L¨osung gibt, die einem zul¨assigen Eckpunkt entspricht. Lemma 3.1. In einem LP mit zwei Variablen, einem zul¨assigen Eckpunkt und einer optimalen L¨osung, gibt es einen zul¨assigen Eckpunkt, der eine optimale L¨osung des LPs repr¨asentiert. Beweis. Zun¨achst wollen wir uns u¨ berlegen, dass die konvexe H¨ulle aller zul¨assigen Eckpunkte eine optimale L¨osung enth¨alt. Daf¨ur nehmen wir an, dass dies nicht der

102

3 Lineare Optimierung

Fall ist, und leiten einen Widerspruch ab. Wenn eine optimale L¨osung existiert, aber keine optimale L¨osung in der konvexen H¨ulle der zul¨assigen Eckpunkte liegt, dann ist die konvexe H¨ulle der zul¨assigen Eckpunkte eine echte Teilmenge der zul¨assigen L¨osungen und der orthogonale Vektor der Zielfunktionsgeraden ist aus dem Bereich der konvexen H¨ulle in den Bereich der u¨ brigen zul¨assigen L¨osungen gerichtet. Da sich dort keine zul¨assigen Eckpunkte finden, k¨onnen wir die Zielfunktion beliebig weit verschieben, ohne den Bereich der zul¨assigen L¨osungen zu verlassen, d. h., das LP ist unbeschr¨ankt. Dies ist aber annahmegem¨aß nicht der Fall, denn wenn es eine optimale L¨osung gibt, ist das LP nicht unbeschr¨ankt. In einem zweiten Schritt wollen wir uns u¨ berlegen, dass unter den optimalen L¨osungen in der konvexen H¨ulle ein zul¨assiger Eckpunkt sein muss. Dabei nutzen wir, dass jede L¨osung in der konvexen H¨ulle als Konvexkombination der zul¨assigen Eckpunkte dargestellt werden kann. Da die Zielfunktion linear ist, entspricht der Zielfunktionswert der Konvexkombination dem gewichteten Durchschnitt (mit denselben Gewichten) der Zielfunktionswerte der zul¨assigen Eckpunkte. Da der gewichtete Durchschnitt nicht h¨oher als der h¨ochste eingehende Zielfunktionswert sein kann, ist die Bewertung des besten zul¨assigen Eckpunktes nicht schlechter als die Bewertung der Konvexkombination. Es gibt also f¨ur jede L¨osung in der konvexen H¨ulle einen zul¨assigen Eckpunkt, der mindestens genauso gut ist. Nun k¨onnen wir zusammenfassen. Da die konvexe H¨ulle eine optimale L¨osung enth¨alt und es f¨ur jede L¨osung in der konvexen H¨ulle einen mindestens so guten zul¨assigen Eckpunkt gibt, ist der beste unter den zul¨assigen Eckpunkten optimal.   ¨ An Abb. 3.7 k¨onnen wir die Uberlegungen im Beweis nachvollziehen. Wir sehen vier NB, drei zul¨assige Eckpunkte bei (10, 40), (10, 15) und (40, 15), ihre konvexe H¨ulle als karierte Fl¨ache und die Menge der u¨ brigen zul¨assigen L¨osungen als gepunktete Fl¨ache. Wir erkennen, dass die karierte Fl¨ache die optimale L¨osung enth¨alt. W¨are der orthogonale Vektor der Zielfunktion z. B. entgegengesetzt orientiert, w¨are ein Verschieben der Geraden aus dem karierten in den gepunkteten Bereich profitabel. Aber dann w¨are das LP auch unbeschr¨ankt, da wir beliebig weit verschieben k¨onnten. Wenn dies nicht der Fall ist, muss der orthogonale Vektor (wie hier dargestellt) also von der gepunkteten zur karierten Fl¨ache (oder parallel zu der Grenze) orientiert ¨ sein. Umgekehrt ist auch anschaulich mit den bisherigen Uberlegungen zu Abb. 3.3 und 3.4 nachvollziehbar, dass ein zul¨assiger Eckpunkt eine beste L¨osung innerhalb der konvexen Menge ist. Lemma 3.1 erlaubt uns, bei der Suche nach einer optimalen L¨osung alle L¨osungen, die nicht zul¨assigen Eckpunkten entsprechen, auszublenden. Das Prinzip, das hier Anwendung findet, haben wir schon fr¨uher gesehen (z. B. in Abschnitt 2.3.2.4). Abb. 3.8 illustriert das Verh¨altnis von zul¨assigen L¨osungen, optimalen L¨osungen und (zul¨assigen) Eckpunkten unter den in Lemma 3.1 genannten Bedingungen. Nicht alle Eckpunkte sind zul¨assig, aber zul¨assige Eckpunkte und optimale L¨osungen sind per Definition zul¨assige L¨osungen. Die zul¨assigen Eckpunkte ergeben sich als Schnittmenge der zul¨assigen L¨osungen und der Eckpunkte. Die entsprechende Menge ist in Abb. 3.8 grau hervorgehoben. Außerdem wissen wir,

3.2 LPs mit zwei Variablen

103

x2

70 60 50 (10, 40)

40 30 20 10

(40, 15)

(10, 15)

10

20

30

40

50

60

x1

60

Abb. 3.7 Beschr¨anktes LP, dominante Teilmenge von zul¨assigen L¨osungen

dass unter allen optimalen L¨osungen mindestens ein zul¨assiger Eckpunkt ist (sofern es eine optimale L¨osung gibt), d. h., die beiden Mengen haben eine nicht leere Schnittmenge. Der beste zul¨assige Eckpunkt ist also optimal unter allen zul¨assigen L¨osungen. Wir k¨onnen auf Basis dieser Erkenntnis einen zweiten Algorithmus konstruieren, der nicht auf zeichnerische Mittel zur¨uckgreift.

optimale L¨osungen

zul¨assige L¨osungen

Abb. 3.8 Zul¨assige L¨osungen, optimale L¨osungen und Eckpunkte

Eckpunkte

104

3 Lineare Optimierung

Salopp formuliert: Optimale zul¨assige Eckpunkte Es gibt immer eine optimale L¨osung unter den zul¨assigen Eckpunkten. Wir m¨ussen also nur den besten zul¨assigen Eckpunkt ermitteln und erhalten so eine optimale L¨osung. Ein naiver Ansatz w¨are, alle Schnittpunkte von Geraden der NB oder Dom¨anendefinitionen zu berechnen und den besten zul¨assigen Eckpunkt zu identifizieren. Wenn alle Eckpunkte unzul¨assig sind, ist das LP unzul¨assig. Wenn es einen zul¨assigen Eckpunkt gibt und auf den beiden NB, die sich in dem besten zul¨assigen Eckpunkt schneiden, keine besseren zul¨assigen L¨osungen liegen, dann ist der beste zul¨assige Eckpunkt optimal. Sollten sich auf einer NB bessere L¨osungen finden, dann ist das LP unbeschr¨ankt, denn auf dieser NB findet sich kein weiterer zul¨assiger Eckpunkt (sonst w¨are der zuvor gefundene nicht der beste) und somit finden sich auf dieser NB beliebig gute zul¨assige L¨osungen. Dieser Ansatz setzt voraus, dass es u¨ berhaupt Eckpunkte gibt. Das muss nicht der Fall sein, wobei wir solche F¨alle leicht erkennen (es gibt h¨ochstens eine NB oder alle Geraden von NB liegen parallel) und handhaben k¨onnen. Eine geschicktere Vorgehensweise, um die zul¨assigen Eckpunkte systematisch zu durchsuchen, ist, von einem zuf¨alligen ersten zul¨assigen Eckpunkt aus entweder im oder gegen den Uhrzeigersinn (gem¨aß der grafischen Repr¨asentation) zul¨assige Eckpunkte zu untersuchen, bis man den optimalen Eckpunkt gefunden hat. Wir pr¨ufen dabei f¨ur den aktuellen zul¨assigen Eckpunkt, ob es einen besseren benachbarten gibt, und gehen zu dem besseren der beiden u¨ ber, wenn dies der Fall ist. Algorithmus 3.3 (Rechnerische L¨osung von LPs mit zwei Variablen). Eingabe: Instanz eines LP mit zwei Variablen Ausgabe: optimale L¨osung oder Information, dass keine existiert 1. Bestimme einen ersten zul¨assigen Eckpunkt (z. B. durch Bestimmung von Schnittpunkten von NB oder Dom¨anendefinitionen, bis ein zul¨assiger Eckpunkt gefunden wurde). Sollte dies nicht m¨oglich sein, interpretiere das LP entsprechend. 2. Wenn es zu dem aktuellen Eckpunkt einen besseren benachbarten, zul¨assigen Eckpunkt gibt, dann a. u¨ bernimm den besten benachbarten, zul¨assigen Eckpunkt und b. wiederhole Schritt 2. 3. Pr¨ufe, ob es bessere zul¨assige L¨osungen auf den NB/Dom¨anendefinitionen, die sich im besten zul¨assigen Eckpunkt schneiden, gibt. Wenn dies der Fall ist, ist das LP unbeschr¨ankt. Wenn dies nicht der Fall ist, ist der beste gefundene, zul¨assige Eckpunkt eine optimale L¨osung des LP. Wenn Schritt 1. von Algorithmus 3.3 scheitert, kann dies bedeuten, dass das LP unzul¨assig ist, h¨ochstens eine NB oder Dom¨anendefinition hat oder alle NB und Dom¨anendefinitionen parallel liegen. Wie schon oben erl¨autert, k¨onnen wir das leicht am LP erkennen und auch die Interpretation ist offensichtlich. Sollte das LP

3.3 Simplex-Algorithmus

105

in Standardform sein, dann gibt es zwei Dom¨anendefinitionen, die nicht parallel liegen, und daher ist das LP unzul¨assig, wenn kein zul¨assiger Eckpunkt existiert. Salopp formuliert: Rechnerische L¨osung von LPs mit zwei Variablen Wir ermitteln im oder gegen den Uhrzeigersinn zul¨assige Eckpunkte bis der n¨achste zul¨assige Eckpunkt nicht besser als der vorherige ist. Der Vorherige ist dann eine optimale L¨osung. Wir wollen uns den Ablauf dieser Vorgehensweise an Modell 3.9 bzw. Abb. 3.6 auf S. 101 genauer anschauen. Wir starten mit dem zul¨assigen Eckpunkt (0, 0). Beide benachbarten zul¨assigen Eckpunkte, n¨amlich (36, 0) und (0, 30), sind besser und haben Zielfunktionswerte von 144 bzw. 150. Wir gehen entsprechend zum zul¨assigem Eckpunkt (0, 30) u¨ ber. Der n¨achste zu betrachtende zul¨assige Eckpunkt ist (10, 30) mit einem wiederum h¨oheren Zielfunktionwert von 190. Nun ist der n¨achste zu betrachtende zul¨assige Eckpunkt (20, 24) mit einem wiederum h¨oheren Zielfunktionwert von 200. Wir haben nun alle zul¨assigen Eckpunkte betrachtet, insofern muss der aktuelle Eckpunkt eine optimale L¨osung darstellen. In einem gr¨oßeren Beispiel w¨urden wir nicht alle zul¨assigen Eckpunkte betrachten. Wenn wir annehmen, dass wir (36, 0) noch nicht betrachtet haben (wie es in einem gr¨oßeren Beispiel passieren w¨urde), dann stellen wir fest, dass beide benachbarten zul¨assigen Eckpunkte von (20, 24) schlechter sind und (20, 24) daher eine optimale L¨osung ist.

3.3 Simplex-Algorithmus In diesem Abschnitt behandeln wir die Erweiterung der rechnerischen Vorgehensweise f¨ur LPs mit zwei Variablen aus Abschnitt 3.2.3 auf LPs mit beliebig vielen Variablen. Wir werden hierf¨ur zun¨achst in Abschnitt 3.3.1 die Grundlagen schaffen, bevor in Abschnitt 3.3.2 der Kern des Verfahrens erl¨autert und analysiert wird. In Abschnitt 3.3.3 wird abschließend erl¨autert, wie das Verfahren aus Abschnitt 3.3.2 eingesetzt werden kann, um eine zul¨assige Startl¨osung zu finden. Die formalen Argumentationen sind an diejenigen in Kapitel 2 in Bertsimas und Tsitsiklis (1997) angelehnt.

3.3.1 Grundlagen Wenn wir mehr als zwei Variablen betrachten, dann geht uns leider die sch¨one grafische Repr¨asentation aus Abschnitt 3.2 verloren. Bei drei Variablen k¨onnen wir uns noch einen 3-dimensionalen Raum vorstellen, bei noch mehr Variablen sind wir jedoch endg¨ultig u¨ berfordert und m¨ussen uns an Formalismen orientieren. Da zumindest der Autor selber sich immer gerne, solange es geht, an eine plastische

106

3 Lineare Optimierung

Repr¨asentation klammert, wollen wir im Folgenden hervorheben, wie die Entsprechungen der hier eingef¨uhrten Konzepte im Fall mit n = 3 Variablen aussehen. Wenn wir n Variablen betrachten, dann ist der Raum, dessen Punkte L¨osungen beschreiben, n-dimensional. Jede NB l¨asst sich durch einen (n − 1)-dimensionalen Unterraum repr¨asentieren, der den LR in eine Menge von L¨osungen, die diese NB erf¨ullen, und eine Menge von L¨osungen, die dies nicht tun, aufteilt. Der jeweilige Unterraum ist durch einen Normalenvektor und den Abstand zum Urspung identifiziert. Die L¨osungen in dem (n − 1)-dimensionalen Unterraum selbst sind diejenigen, die die NB mit Gleichheit erf¨ullen. Im Fall von n = 3 Variablen haben wir also einen 3-dimensionalen Raum, der durch Ebenen (mit n − 1 = 2 Dimensionen) durchschnitten wird. Die L¨osungen, die auf einer Ebene liegen, erf¨ullen die entsprechende NB mit Gleichheit. In dieser Beschreibung unterscheiden sich NB nicht von Dom¨anendefinitionen, weswegen wir im Folgenden nur von NB sprechen werden. Sollte eine konzeptionelle Unterscheidung zwischen NB und Dom¨anendefinitionen notwendig sein, werden wir diese explizit treffen. Da wir die geometrische Interpretation von NB verallgemeinert haben, muss auch das Konzept der (zul¨assigen) Eckpunkte im Fall von mehr als zwei Variablen entsprechend verallgemeinert werden. Definition 3.1 (Eckpunkte). Eckpunkte sind Schnittpunkte der (n − 1)-dimensionalen Unterr¨aume von n linear unabh¨angigen NB. Wir nennen einen Eckpunkt zul¨assig, wenn er eine zul¨assige L¨osung repr¨asentiert. Hierbei nennen wir NB linear unabh¨angig, wenn ihre orthogonalen (die zu ihnen senkrechten) Vektoren linear unabh¨angig sind. An dieser Stelle wollen wir in Erinnerung rufen, dass Vektoren als linear unabh¨angig bezeichnet werden, wenn in der einzigen Linearkombination dieser Vektoren, die den Nullvektor darstellt, alle Koeffizienten den Wert Null haben.4 Dies ist gleichbedeutend damit, dass keiner der Vektoren als Linearkombination der u¨ brigen dargestellt werden kann. Salopp formuliert: Eckpunkte Wenn n NB sich in genau einem Punkt schneiden, sind sie linear unabh¨angig. Diesen Schnittpunkt nennen wir dann Eckpunkt. Abb. 3.9 stellt vier Vektoren dar. Um eine bessere Darstellbarkeit zu erreichen, werden diese auf Punkt (10, 10, 10) gest¨utzt. Wir k¨onnen uns vorstellen, dass sich im Punkt (10, 10, 10) die 2-dimensionalen Unterr¨aume von vier NB schneiden und (15, 0, 0) (durchgezogener Pfeil), (0, 0, 30) (gepunkteter Pfeil), (30, 30, 30) (gestrichelter Pfeil) und (10, 10, 20) (Strichpunktpfeil) die orthogonalen Vektoren dieser NB sind. Diese vier Vektoren sind linear abh¨angig, da z. B. ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ 0 15 0 30 10 0 · ⎝ 0 ⎠ − 1 · ⎝ 0 ⎠ − 1 · ⎝30⎠ + 3 · ⎝10⎠ = ⎝0⎠ 20 0 0 30 30 4

Vgl. hierzu Opitz u. a. (2017)

3.3 Simplex-Algorithmus

107 z ⎛ 60 50 40

⎞ 40 ⎝40⎠ 40

⎛ y

⎞ 20 ⎝20⎠ 60 30

⎞ 10 ⎝10⎠ 40 ⎛

50 30 20 10

40 30 ⎛ ⎞ 20 10 ⎝10⎠ 10 10 10

Abb. 3.9 Linear abh¨angige Vektoren

20



⎞ 25 ⎝10⎠ 10 30

40

50

60

x

gilt. Es gibt also eine Linearkombination dieser Vektoren, die den Nullvektor darstellt, in der nicht alle Koeffizienten den Wert Null haben. Am Koeffizient mit Wert Null des ersten Vektors k¨onnen wir erkennen, dass schon die restlichen drei Vektoren linear abh¨angig sind. Die drei Vektoren (15, 0, 0), (0, 0, 30) und (30, 30, 30) jedoch sind linear unabh¨angig, denn ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ 15 0 30 0 0 · ⎝ 0 ⎠ + 0 · ⎝ 0 ⎠ + 0 · ⎝30⎠ = ⎝0⎠ 0 30 30 0 ist die einzige Linearkombination, die den Nullvektor darstellt. Diese Erkenntnisse k¨onnen wir auch geometrisch interpretieren. W¨ahrend vier linear unabh¨angige Vektoren einen 4-dimensionalen Raum aufspannen, tun diese Vektoren es nicht, da sie linear abh¨angig sind. Dies ist relativ offensichtlich, da sie ja in einen 3dimensionalen Raum eingebettet sind. Aber auch die linear abh¨angigen Vektoren (0, 0, 30), (30, 30, 30) und (10, 10, 20) spannen keinen 3-dimensionalen Raum auf, sondern liegen in einer Ebene. Die drei linear unabh¨angigen Vektoren (15, 0, 0), (0, 0, 30) und (30, 30, 30) jedoch liegen nicht in einer Ebene und spannen den 3dimensionalen Raum auf. Die Schnittmenge der Unterr¨aume von n linear unabh¨angigen NB enth¨alt genau eine L¨osung, n¨amlich den Eckpunkt. Im Gegensatz dazu enth¨alt die Schnittmenge der Unterr¨aume von n linear abh¨angigen NB entweder keine oder unendlich viele L¨osungen. Im Fall n = 3 werden Eckpunkte also von Schnittpunkten dreier linear unabh¨angiger Ebenen, die NB repr¨asentieren, gebildet.

108

3 Lineare Optimierung

Eine geometrische Interpretation der Zielfunktion ist ebenfalls anhand des Normalenvektors m¨oglich. Die Menge aller L¨osungen mit einem bestimmten Wert Z entspricht einem (n − 1)-dimensionalen Unterraum, dessen Abstand zum Nullpunkt ein Maß f¨ur die Bewertung der dargestellten L¨osungen ist. Konkret betr¨agt der Abstand des Unterraums zum Nullpunkt Z/||c||, wobei ||c|| die euklidische L¨ange oder die Norm des Vektors c der Zielfunktionskoeffizienten ist.5 Analog zu den ¨ Uberlegungen in Abschnitt 3.2.1 k¨onnen wir die Zielfunktion allerdings nicht mit einem geometrischen Objekt in einer bestimmten Position assoziieren. Vielmehr entspricht das Suchen einer optimalen L¨osung dem Verschieben des Zielfunktionsunterraums in Orientierung des Normalenvektors c. Wir hatten schon in Abschnitt 3.2 argumentiert, dass wir uns bei der Suche nach einer optimalen L¨osung auf (zul¨assige) Eckpunkte zur¨uckziehen k¨onnen. Dies gilt auch bei einer beliebigen Anzahl von Variablen. Theorem 3.1. Wenn es einen Eckpunkt und eine optimale L¨osung gibt, dann gibt es mindestens einen optimalen Eckpunkt. Der Beweis und weitere Erl¨auterungen finden sich in Anhang A.1. Theorem 3.1 erlaubt, dass wir uns bei der Suche nach einer optimalen L¨osung des LPs auf zul¨assige Eckpunkte zur¨uckziehen. Um die Beziehung zwischen (zul¨assigen) Eckpunkten, optimalen und zul¨assigen L¨osungen zu veranschaulichen, k¨onnen wir wiederum Abb. 3.8 auf S. 103 heranziehen. Diese Beschr¨ankung auf zul¨assige Eckpunkte stellt schon einen enormen Schritt auf dem Weg zu einem effizienten Verfahren dar. Denn w¨ahrend wir grunds¨atzlich in einem LP eine unendliche Anzahl von L¨osungen ber¨ucksichtigen m¨ussen, kennen wir nun eine endliche Teilmenge von L¨osungen, unter denen sich mindestens eine optimale L¨osung findet. F¨ur diese Teilmenge ist es uns m¨oglich, alle Elemente zu untersuchen und die beste zul¨assige L¨osung als optimale L¨osung zu identifizieren. W¨ahrend eine solche vollst¨andige Enumeration in der Regel nicht besonders effizient und in jedem Fall nicht interessant ist, ist sie bei einer unendlichen Anzahl von Kandidaten nicht einmal m¨oglich. Wir k¨onnen jeden Eckpunkt spezifizieren, indem wir die n linear unabh¨angigen NB benennen, die sich in dem Eckpunkt schneiden. D. h., f¨ur die Repr¨asentation von Eckpunkten ist eine Unterteilung der NB in die n linear unabh¨angigen NB, die mit Gleichheit erf¨ullt sind, und die restlichen NB n¨otig. Diese Unterscheidung ist eine wesentliche Grundlage des im folgenden Abschnitt vorgestellten Verfahrens zur L¨osung von LPs.

3.3.2 Standard Simplex Verfahren Wir werden im Folgenden ein Verfahren zum L¨osen von LPs vorstellen, das auf den Erkenntnissen aus Abschnitt 3.3.1 basiert. Dieses Verfahren ist deutlich effizienter als die in Abschnitt 3.3.1 angesprochene vollst¨andige Enumeration. Dabei 5

Vgl. hierzu Opitz u. a. (2017)

3.3 Simplex-Algorithmus

109

beschr¨anken wir uns zun¨achst auf einen noch spezielleren Fall als bisher. Der hier betrachtete Spezialfall ist der eines LPs in Standardform, bei dem kein Wert auf der rechten Seite einer NB negativ ist. In Abschnitt 3.3.3 werden wir dann einen vorgelagerten Schritt betrachten, der uns erlaubt, alle LPs in Standardform zu l¨osen. Wir vergegenw¨artigen uns noch einmal, dass wir hier die Idee der rechnerischen Vorgehensweise f¨ur LPs mit zwei Variablen aus Abschnitt 3.2.3 auf LPs mit mehr Variablen u¨ bertragen wollen. Wir wissen bereits aus Abschnitt 3.3.1, dass wir auch im allgemeinen Fall unter den Eckpunkten eine optimale L¨osung finden k¨onnen. In Abschnitt 3.3.2.1 erl¨autern wir nun, wie wir einen bestimmten Eckpunkt identifizieren und alle ben¨otigten Informationen zu ihm ermitteln. Anschließend f¨uhren wir in Abschnitt 3.3.2.2 eine kompakte Darstellungsform dieser Informationen ein. Hier werden wir uns von dem eher anschaulichen Konzept der Eckpunkte l¨osen und das Konzept der Basisl¨osungen einf¨uhren, das wir im Weiteren benutzen werden. Das Vorgehen, um durch Basisl¨osungen und deren Modifikation die Untersuchung der Eckpunkte, wie in Abschnitt 3.2.3 beschrieben, zu realisieren, wird dann in Abschnitt 3.3.2.3 beschrieben. Abschließend werden wir in Abschnitt 3.3.2.4 das vollst¨andige Verfahren spezifizieren und analysieren.

3.3.2.1 Iteratives L¨osen linearer Gleichungssysteme Die zentrale Operation in dem Verfahren ist das L¨osen linearer Gleichungssysteme (LGS). Um ein LP in Standardform in die Form eines LGS zu bringen, addieren wir zun¨achst auf der linken Seite jeder NB eine sogenannte nicht negative Schlupfvariable. Diese nimmt einen Wert in H¨ohe der Differenz von rechter und linker Seite an und gleicht daher beide Seiten aus. Wenn wir dies f¨ur Modell 3.8 auf S. 91 tun, erhalten wir Modell 3.11. ¨ Modell 3.11 (Generisches LP in Standardform nach Einfugen von Schlupfvariablen). n

max ∑ c j · x j

(3.78)

j=1

n

u.B.d.N.

∑ ai, j · x j + si = bi

∀i = 1, . . . , m

(3.79)

xj ≥ 0

∀ j = 1, . . . , n

(3.80)

si ≥ 0

∀i = 1, . . . , m

(3.81)

j=1

Wir haben nun ein System von NB, das ein LGS ist. Um zwischen den urspr¨unglichen und den neuen Variablen zu unterscheiden, werden wir erstere Strukturvariablen und zweitere Schlupfvariablen nennen. Variable si ist die Schlupfvariable der i-ten NB. Zu jeder L¨osung x1 , . . . , xn von Modell 3.8 gibt es genau eine L¨osung x1 , . . . , xn , s1 , . . . , sm von Modell 3.11 mit identischen Werten der Variablen x1 , . . . , xn .

110

3 Lineare Optimierung

Wir k¨onnen relativ leicht anhand der Werte der Variablen x1 , . . . , xn , s1 , . . . , sm des Modells 3.11 erkennen, ob die entsprechende L¨osung von Modell 3.8 durch einen (zul¨assigen) Eckpunkt repr¨asentiert wird. Dies ist gem¨aß Definition 3.1 der Fall, wenn es n linear unabh¨angige NB (oder Dom¨anendefinitionen) gibt, die mit Gleichheit erf¨ullt sind, d. h. wenn n Variablen, die zu linear unabh¨angigen NB (oder Dom¨anendefinitionen) geh¨oren, den Wert Null haben. Wenn Schlupfvariable si den Wert Null hat, dann ist die entsprechende NB in Modell 3.8 mit Gleichheit erf¨ullt. Wenn Strukturvariable x j den Wert Null hat, dann ist die entsprechende Dom¨anendefinition mit Gleichheit erf¨ullt. Wenn also n der Variablen mit Wert Null zu linear unabh¨angigen NB (oder Dom¨anendefinitionen) geh¨oren, beschreiben diese als Schnittpunkt der entsprechenden Unterr¨aume einen Punkt im LR und damit eine eindeutige L¨osung. Dementsprechend muss das verbleibende LGS (bei Fixierung dieser n Variablen auf Null) eine eindeutige L¨osung haben, in der die u¨ brigen Variablen Werte entsprechend der Koordinaten des beschriebenen Eckpunktes haben. Diese u¨ brigen Variablen bezeichnen wir im Folgenden auch als Basisvariablen (BV) und die fixierten Variablen als Nichtbasisvariablen (NBV). Eine solche L¨osung, in der NBV, die zu linear unabh¨angigen NB geh¨oren, auf Null fixiert sind, ¨ nennen wir Basisl¨osung und wissen anhand der obigen Uberlegungen, dass jede Basisl¨osung einem Eckpunkt und jeder Eckpunkt einer Basisl¨osung entspricht. Eine Basisl¨osung ist aber – genau wie ein Eckpunkt – nicht per se zul¨assig. Eine Basisl¨osung ist zul¨assig, wenn alle Variablen nicht-negative Werte haben. Da die NBV jeweils einen Wert von Null haben, ist eine Basisl¨osung zul¨assig, wenn die Werte der BV einer Basisl¨osung nicht-negativ sind. Wiederum gilt der enge Zusammenhang zwischen Basisl¨osung und Eckpunkten: Eine zul¨assige Basisl¨osung entspricht einem zul¨assigen Eckpunkt und ein zul¨assiger Eckpunkt entspricht einer zul¨assigen Basisl¨osung. Zusammenfassung: (Zul¨assige) Basisl¨osungen und (zul¨assige) Eckpunkte In einer Basisl¨osung haben n Variablen (die NBV), die zu linear unabh¨angigen NB (oder Dom¨anendefinitionen) geh¨oren, den Wert Null. Der Schnittpunkt der entsprechenden n Unterr¨aume enth¨alt genau einen Punkt. Die Werte der u¨ brigen m Variablen (die BV) ergeben sich daher eindeutig, denn sie beschreiben diesen Punkt. Jede (zul¨assige) Basisl¨osung entspricht einem (zul¨assigen) Eckpunkt und jeder (zul¨assige) Eckpunkt entspricht einer (zul¨assigen) Basisl¨osung. Nachdem wir nun also schon die Menge der zul¨assigen L¨osungen sowie die Menge der Eckpunkte durch ein LGS darstellen, wollen wir in dieses auch noch die Zielfunktion aufnehmen. Wir f¨uhren eine weitere Variable F ein, die dem Zielfunktionswert entspricht, und nehmen die Gleichung

F−

n

∑ c jx j

j=1

=0

(3.82)

3.3 Simplex-Algorithmus

111

in das LGS auf. Wir erkennen, dass die Variable F so f¨ur jede L¨osung des LGS deren Bewertung angibt. Außerdem sehen wir, dass diese Gleichung dieselbe Struktur wie die anderen Gleichungen hat, wobei wir F als Schlupfvariable der NB



n

∑ c jx j

≤0

(3.83)

j=1

interpretieren. Diese NB besagt, dass eine zul¨assige L¨osung eine Bewertung von mindestens 0 haben muss. Wenn wir diese NB durch Einf¨uhren von F zu einer ¨ Gleichung transformieren, dann gibt F die Ubererf¨ ullung (falls F > 0) oder die Untererf¨ullung (falls F < 0) der NB (3.83) an. Wir erinnern uns an das Verschieben der Zielfunktionsgeraden in Abschnitt 3.2.2: Unser Ziel war es, die Zielfunktionsgerade m¨oglichst weit in Orientierung c = (c1 , . . . , cn ) zu verschieben. Dies ¨ entspricht der Maximierung der Ubererf¨ ullung von NB (3.83) bzw. der Minimierung der Unterf¨ullung von NB (3.83) und damit der Maximierung von F. Variable F beschreibt also die Position der Zielfunktionsgeraden, die durch eine L¨osung (x1 , . . . , xn , s1 , . . . , sm ) l¨auft. Da die Wahl von NBV die L¨osung eindeutig bestimmt, bestimmt sie somit auch den Wert von F eindeutig. Formal haben wir nun also ein LGS mit n + m + 1 Variablen. Da F eindeutig durch die restlichen Variablen bestimmt ist, gibt es f¨ur jede L¨osung des urspr¨unglichen LGS mit n + m Variablen genau eine f¨ur das erweiterte mit F. Unser uspr¨ungliches Problem, Modell 3.8 optimal zu l¨osen, haben wir nun also u¨ berf¨uhrt in das Problem, eine L¨osung f¨ur das LGS mit den Gleichungen (3.79) und (3.82) zu finden, sodass bei nicht-negativen Werten der Variablen x1 , . . . , xn , s1 , . . . , sm der Wert der Variablen F maximal ist. Wir wissen, dass wir uns bei der Suche nach einer solchen L¨osung auf Basisl¨osungen und sogar auf zul¨assige Basisl¨osungen beschr¨anken k¨onnen. Wir k¨onnen eine Basisl¨osung ermitteln, indem wir das LGS nach den BV aufl¨osen (bspw. mit dem Gauß-Algorithmus6 ). Wenn wir dies tun, erhalten wir ein a¨ quivalentes LGS, in dem die Koeffizienten der BV Einheitsvektoren bilden und jeder Einheitsvektor einmal vorhanden ist. Wir bezeichnen dann die Sequenz der BV, in der die BV, deren Koeffizienten den k-ten Einheitsvektor bilden, an k-ter Stelle steht, als Basis. Wir bezeichnen die k-ten BV in dieser Sequenz dann auch als k-te BV. Salopp formuliert: Basisl¨osungen, Eckpunkte und L¨osungen von LGS Wir k¨onnen eine Basisl¨osung und somit einen Eckpunkt bestimmen, indem wir n NBV w¨ahlen, diese auf Null fixieren und die eindeutigen Werte der BV (und von F) durch Aufl¨osen des verbleibenden LGS bestimmen. Wir k¨onnen also ein LP l¨osen, indem wir alle Basisl¨osungen bestimmen und bewerten und die beste zul¨assige Basisl¨osung als Ergebnis ermitteln.

6

Vgl. hierzu Opitz u. a. (2017)

112

3 Lineare Optimierung

Die Vorgehensweise, die wir im Folgenden besprechen, wird nicht alle Basisl¨osungen evaluieren. Wir werden allerdings immer noch viele verschiedene Basisl¨osungen untersuchen und um dies zu tun, werden wir das entsprechende LGS dann iterativ immer wieder gem¨aß der jeweils gew¨ahlten BV l¨osen.

3.3.2.2 Simplextableau Wir u¨ bertragen die Informationen des LGS nun in eine etwas handlichere Form, mit der wir im Weiteren arbeiten wollen. Das sogenannte Simplextableau ist eine Tabelle mit einer Spalte pro Variable (inkl. F) und einer weiteren Spalte f¨ur die rechte Seite der NB sowie den Zielfunktionswert. Das Tableau hat (neben einer Zeile f¨ur die Spaltentitel) eine Zeile f¨ur jede Gleichung und eine weitere Zeile f¨ur die Zielfunktion. In einer Zelle einer Zeile, die zu einer NB geh¨ort, finden wir den Koeffizienten der entsprechenden Variablen in dieser NB oder den Wert auf der rechten Seite dieser NB. In der Zeile der Zielfunktion finden wir den Koeffizienten der Variablen in der Zielfunktion bzw. den Zielfunktionswert. Dies gilt im Folgenden f¨ur jede Umformung eines LGS, die sich durch Wahl der NBV und Aufl¨osen nach den BV ergibt. Dem LGS zu Modell 3.11 auf S. 109 mit NBV x1 , . . . , xn entspricht dann das folgende Tableau. F 0 0 ... 0 0 1

x1 a1,1 a2,1 ... am−1,1 am,1 −c1

... ... ... ... ... ... ...

xn ai,n a2,n ... am−1,n am,n −cn

s1 1 0 ... 0 0 0

s2 0 1 ... 0 0 0

... ... ... ... ... ... ...

sm−1 0 0 ... 1 0 0

sm 0 0 ... 0 1 0

RHS b1 b2 ... bm−1 bm 0

Die erste Zeile enth¨alt die Spaltentitel. RHS steht dabei f¨ur right-hand-side, also die rechte Seite der NB. Wir erkennen in der letzten Zeile die Koeffizienten der Variablen (inkl. F) in der Zielfunktionsgleichung (3.82). In der Spalte RHS dieser Zeile steht der Wert 0, was dem Wert auf der RHS von (3.82) entspricht. Die Eintr¨age der u¨ brigen Zeilen ergeben sich analog aus NB (3.79). Der oben dargestellte Fall ist nat¨urlich nur der spezielle Fall, in dem die Strukturvariablen die NBV und die Schlupfvariablen die BV sind. Wir werden im Rahmen des Verfahrens verschiedene Basisl¨osungen durchlaufen und in jedem Schritt Informationen zu der aktuellen Basisl¨osung in Tableauform darstellen. Dann erhalten wir in allgemeiner Form folgendes Tableau. F 0 0 ... 0 0 1

x1 a1,1 a2,1 ...

am−1,1 am,1 c¯1

... ... ... ... ... ... ...

xn ai,n a2,n ...

am−1,n am,n c¯n

xn+1 a1,n+1 a2,n+1 ... am−1,n+1 am,n+1 c¯n+1

... ... ... ... ... ... ...

xn+m RHS a1,n+m b1  a2,n+m b2 ... ... am−1,n+m bm−1 am,n+m bm c¯n+m z

3.3 Simplex-Algorithmus

113

Die Semantik entspricht der schon beschriebenen. Wir werden bei der Darstellung der Koeffizienten dieselben Symbole f¨ur Struktur- und Schlupfvariablen verwenden, da wir beim Aufl¨osen der LGS nicht zwischen diesen Variablentypen unterscheiden m¨ussen (sie k¨onnen beim Aufl¨osen gleich behandelt werden). Wir werden aber immer davon ausgehen, dass x1 , . . . , xn die Strukturvariablen sind (in den Spalten 2, . . . , n + 1 repr¨asentiert) und xn+1 , . . . , xn+m die Schlupfvariablen sind (in den Spalten n + 2, . . . , n + m + 1 repr¨asentiert). Die Spalte, die zu F geh¨ort, bleibt im Laufe des Verfahrens unver¨andert. Die Werte b1 , . . . , bm auf der RHS sind die Werte der BV in dem entsprechend aufgel¨osten LGS. Dabei ist bi der Wert der i-ten BV. Die Koeffizienten c¯1 , . . . , c¯n+m in der Zielfunktionszeile entsprechen in der Regel nicht den Werten −c1 , . . . , −cn , 0, . . . , 0. Wir bezeichnen c¯k , k = 1, . . . , n + m, als reduzierte Kosten der Variablen xk . Auf der RHS der Zielfunktionszeile finden wir den Zielfunktionswert z der aktuell vorliegenden Basisl¨osung. Wir wollen die Bildung des Tableaus nun an einem konkreten Beispiel nachvollziehen. Wir betrachten daf¨ur die schon bekannte Instanz 3.1 von Modell 3.8 auf S. 91. Modell 3.9 (Modell zu Beispiel 3.1). max 4 · x1 + 5 · x2

(3.84)

0 · x1 + 1 · x2 ≤ 30 3 · x1 + 5 · x2 ≤ 180

u.B.d.N.

(3.85) (3.86)

3 · x1 + 2 · x2 ≤ 108

(3.87)

x1 , x2 ≥ 0

(3.88)

Das entsprechende Tableau f¨ur die Wahl von x1 und x2 als NBV ist das folgende. Die Eintr¨age folgen offensichtlich mittels des oben besprochenen Schemas aus Modell 3.9. F 0 0 0 1

x1 0 3 3 -4

x2 1 5 2 -5

x3 1 0 0 0

x4 0 1 0 0

x5 0 0 1 0

RHS 30 180 108 0

Betrachten wir nun den Eckpunkt, der der Wahl von x1 und x3 als NBV entspricht. Wir leiten zun¨achst die L¨osung allgemein her, indem wir das LGS nach den BV x2 , x4 und x5 und der weiteren Variablen F aufl¨osen. Dies kann bspw. durch Verwendung des Gauß-Algorithmus geschehen (wir verzichten hier auf die Darstellung aller Zwischenschritte). Wir erhalten dann

114

3 Lineare Optimierung

x2 = 30 − x3 x4 = 30 − 3 · x1 + 5 · x3 x5 = 48 − 3 · x1 + 2 · x3 F = 150 + 4 · x1 − 5 · x3 . Da x1 und x3 NBV sind, gilt x1 = x3 = 0 und somit x2 = 30, x4 = 30 und x5 = 48 und der L¨osungswert ist F = 150. Hier liegt also eine zul¨assige Basisl¨osung vor, denn alle Variablen haben nicht-negative Werte. Das folgende Tableau stellt dieselben Informationen dar. F 0 0 0 1

x1 0 3 3 -4

x2 1 0 0 0

x3 1 -5 -2 5

x4 0 1 0 0

RHS 30 30 48 150

x5 0 0 1 0

Zusammenfassung: Simplextableau Im Simplextableau gibt es eine Spalte f¨ur jede Variable des LGS (inkl. F) und eine weitere Spalte f¨ur die RHS sowie eine Kopfzeile sowie eine Zeile f¨ur jede Gleichung des LGS (inkl. Zielfunktionszeile). Die Koeffizienten im Tableau beschreiben dann das vorliegende LGS vollst¨andig. In Matrixschreibweise k¨onnen wir den Inhalt eines Tableaus in Abh¨angigkeit von den gew¨ahlten BV allgemein darstellen. Das Ausgangstableau beschreiben wir wie folgt. F 0 1

xT A −c

RHS b 0

Hier stellt die Spalte xT alle Spaltentitel der Variablen dar. Da x, wie im Modell verwendet, ein Spaltenvektor ist, transponieren wir ihn f¨ur die Tableaudarstellung. Die mittlere Zeile stellt alle Zeilen der NB dar. Dementsprechend ist b ein Spaltenvektor aller Eintr¨age der RHS, c ist der Zeilenvektor aller Zielfunktionskoeffizienten und A ist die Koeffizientenmatrix mit m Zeilen und n + m Spalten. Sei nun B die Matrix, die als k-ten Spaltenvektor den Spaltenvektor in A hat, der zu der k-ten BV geh¨ort. Mit B−1 beschreiben wir die Inverse von B. Sei cB zudem der Zeilenvektor, der die Zielfunktionskoeffizienten der BV in der entsprechenden Reihenfolge enth¨alt. Das Tableau, das sich durch die Wahl der BV und Aufl¨osen nach diesen ergibt, l¨asst sich als F 0 1

xT B−1 A −c + cB B−1 A

RHS B−1 b cB B−1 b

3.3 Simplex-Algorithmus

115

darstellen. Zu Erl¨auterung wollen wir uns in Erinnerung rufen, dass das Aufl¨osen eines LGS nach einer gegebenen Menge von Variablen sich generell als die Multiplikation des Systems mit der entsprechenden Inversen der Spaltenvektoren dieser Variablen beschreiben l¨asst. Nachdem oben beschrieben wurde, dass wir das LGS nach den BV und F aufl¨osen, verwundert hier vielleicht zun¨achst, dass wir uns auf die BV konzentrieren und das Tableau allgemein in Abh¨angigkeit von B darstellen (und nicht in Abh¨angigkeit von B zusammen mit F). Wir k¨onnen dies tun, da, wie ebenfalls oben beschrieben, das System Ax = b f¨ur gew¨ahlte NBV eindeutige Werte f¨ur alle Variablen x1 , . . . , xn+m impliziert und diese wiederum einen eindeutigen Wert f¨ur F ergeben. Zudem kommt der Zielfunktionszeile im Rahmen des Verfahrens eine besondere Bedeutung zu und die obige Darstellung wird uns bei der Interpretation der Koeffizienten in der Zielfunktionszeile helfen. In unserem obigen Beispiel zu Modell 3.9 haben wir also ⎛ ⎞ ⎛ ⎞ 1 00 100 B = ⎝5 1 0⎠ und B−1 = ⎝−5 1 0⎠ . −2 0 1 201 Vorausgesetzt, dass wir mit einem Tableau zu einem LP in Standardform beginnen, k¨onnen wir aus einem gegebenen Tableau die Matrix B−1 aus den Spalten der Schlupfvariablen ablesen. Dort ergibt sich nach dem Aufl¨osen die Matrix B−1 E = B−1 , wobei E die Einheitsmatrix ist. Bevor wir die Eintr¨age des Tableaus interpretieren, wollen wir noch auf die Reihenfolge“ der BV eingehen. Wir haben bisher immer nur davon gesprochen, ” dass die BV gew¨ahlt werden, aber zum Bestimmen von B ben¨otigen wir auch eine Festlegung, welche BV den k-ten Einheitsvektor bekommt. Diese Festlegung ist willk¨urlich. Zwei Tableaus, die sich nicht in der Menge der BV, sondern nur in deren Reihenfolge unterscheiden, unterscheiden sich nicht in den enthaltenen Informationen. Der einzige Unterschied zwischen solchen Tableaus liegt darin, dass die Zeilen des Systems B−1 Ax = B−1 b permutiert sind. W¨urden wir dieselben BV wie in unserem Beispiel, aber die Basis (x4 , x2 , x5 ) w¨ahlen, dann erhielten wir ⎛ ⎞ ⎛ ⎞ −5 1 0 010 B¯ = ⎝1 5 0⎠ und B¯ −1 = ⎝ 1 0 0⎠ . −2 0 1 021 ¨ Wir sehen die Ahnlichkeit von B¯ −1 und B−1 und k¨onnen schon erahnen, dass die entsprechenden Tableaus ebenfalls a¨ hnlich sind. In der Tat erhalten wir F 0 0 0 1

x1 3 0 3 -4

x2 0 1 0 0

x3 -5 1 -2 5

x4 1 0 0 0

x5 0 0 1 0

RHS 30 30 48 150

116

3 Lineare Optimierung

und damit dieselben Informationen wie in dem Tableau zu B−1 . Nun wollen wir die Eintr¨age eines solchen Tableaus interpretieren und die Interpretation jeweils an unserem ersten Beispiel mit Basis (x2 , x4 , x5 ) und Tableau F 0 0 0 1

x1 0 3 3 -4

x2 1 0 0 0

x3 1 -5 -2 5

x4 0 1 0 0

x5 0 0 1 0

RHS 30 30 48 150

veranschaulichen. • Der Vektor auf der RHS, B−1 b, enth¨alt die Werte  der BV in der entsprechenden Reihenfolge. D. h., der Wert der iten BV ist B−1 b i . Dies ist leicht zu sehen, wenn wir uns vor Augen f¨uhren, dass in dieser Gleichung nur die i-te BV und NBV einen Koeffizienten ungleich Null haben. Da alle NBV einen Wert von Null haben und der Koeffizient der i-ten BV Eins ist, entspricht der Wert auf der RHS dem Wert dieser BV. In unserem Beispiel haben wir also die Werte 30, 30 und 48 f¨ur die erste, zweite und dritte BV, wenn wir das LGS entsprechend der Basis (x2 , x4 , x5 ) aufl¨osen. • Der Wert cB B−1 b entspricht dem Zielfunktionwert der vorliegenden Basisl¨osung. Wir erkennen dies leicht, da hier das Skalarprodukt des Zeilenvektors cB der Original“-Zielfunktionskoeffizienten und des Spaltenvektors B−1 b, der, wie ” oben beschrieben, die Werte der BV enth¨alt, gebildet wird. Zu beachten ist hier, dass die Zuordnung von Variablenwert und Zielfunktionskoeffizient korrekt ist, da die Koeffizienten in cB entsprechend der Reihenfolge der BV vorliegen. In unserem Beispiel haben wir einen Zielfunktionswert von cB B−1 b = 5 · 30 + 0 · 30 + 0 · 48 = 150. • Die Matrix B−1 A enth¨alt die Koeffizienten der Variablen, die sich durch das Aufl¨osen des LGS ergeben. Wir bezeichnen den Index der i-ten BV mit Bi . Der Koeffizient ai, j gibt Auskunft dar¨uber, wie sich der Wert der i-ten BV xBi marginal ver¨andert, wenn der Wert von NBV x j erh¨oht wird und alle anderen NBV unver¨andert bleiben. Um dies besser erkennen zu k¨onnen, schreiben wir Zeile i vereinfacht als   xBi + ai, j x j = B−1 b i . Diese Schreibweise ist gerechtfertigt, da alle anderen Variablen in Zeile i einen Wert oder einen Koeffizienten von Null haben. Wir sehen nun, dass sich der Wert von xBi um ai, j verringert, wenn der Wert von x j um Eins erh¨oht wird. In unserem Beispiel k¨onnen wir Zeile i = 2 vereinfacht als   xB2 + a2,1 x1 = x4 + 3 · x1 = 30 = B−1 b 2 und   xB2 + a2,3 x3 = x4 − 5 · x3 = 30 = B−1 b 2

3.3 Simplex-Algorithmus

117

darstellen. Wir k¨onnen nun erkennen, dass sich der Wert der zweiten BV x4 pro Einheit, um die x1 erh¨oht wird, um drei verringert und sich pro Einheit, um die x3 erh¨oht wird, um f¨unf erh¨oht. Diese Einsicht wird uns maßgeblich helfen, die Zielfunktionszeile im Tableau zu interpretieren. • Die Werte im Zeilenvektor −c + cB B−1 A werden als reduzierte Kosten der entsprechenden Variablen bezeichnet. Die entsprechenden Werte, die zu den Schlupfvariablen geh¨oren, werden auch als Werte von Dualvariablen bezeichnet, wobei der Koeffizient der i-ten Schlupfvariablen in der Zielfunktionszeile mit der i-ten NB assoziiert wird. Wir werden in Abschnitt 3.4 auf die besondere Bedeutung von Dualvariablen eingehen. Hier wollen wir die Eintr¨age des Vektors −c +cB B−1A jedoch einheitlich interpretieren. Betrachten wir den Eintrag −c j + cB B−1 A j , der zu Variable x j geh¨ort.   – Wenn x j eine BV ist, so gilt −c j + cB B−1 A j = 0. Dies hat keine anschauli  che Interpretation. Nehmen wir an, dass x j die i-te BV ist, dann ist B−1 A j der ite Einheitsvektor. Da der i-te Eintrag von cB dann c j ist, ergibt sich offensichtlich −c j + c j = 0. Dies resultiert aus dem Aufl¨osen des LGS nach den BV und damit u. a. nach x j .   – Wenn x j eine NBV ist, so entspricht c j −cB B−1 A j der marginalen Erh¨ohung des Zielfunktionswertes, wenn der Wert von x j erh¨oht wird. Wir k¨onnen den Ausdruck zu m

c j − ∑ (cB )i · aBi , j i=1

umschreiben, wobei (cB )i der i-te Eintrag von cB , also der Original“-Ziel” ¨ funktionskoeffizient der i-ten BV, ist. Mit unseren Uberlegungen von oben k¨onnen wir nun erkennen, dass die Summe der gesamten marginalen Verringerung des Zielfunktionsbeitrags aller BV entspricht, wenn der Wert von x j erh¨oht wird. Umgekehrt bildet c j offensichtlich die marginale Erh¨ohung des Zielfunktionsbeitrags von x j ab. Da alle u¨ brigen Variablen unver¨andert bleiben, entspricht die Differenz dann der marginalen Erh¨ohung des Zielfunktionswertes. In unserem Beispiel gilt, dass die Werte von x4 und x5 sich pro Einheit, um die x1 erh¨oht wird, um drei verringern. Der Wert von x2 ist nicht beeinflusst. Die gesamte marginale Verringerung des Zielfunktionsbeitrags der BV x2 , x4 und x5 ist also 5 · 0 + 0 · 3 + 0 · 3 = 0. Wir wissen, dass x1 pro Einheit c1 = 4 zum Zielfunktionswert beitr¨agt. Entsprechend betr¨agt bei Erh¨ohung des Wertes von x1 die marginale Erh¨ohung des Zielfunktionswertes 4, was einer Verbesserung entspricht. Analog sehen wir, dass x3 Null zum Zielfunktionswert beitr¨agt. Die gesamte marginale Verringerung des Zielfunktionsbeitrags der BV bei einer Vergr¨oßerung des Wertes von x3 betr¨agt 5 · 1 + 0 · (−5) + 0 · (−2) = 5. Somit betr¨agt bei Erh¨ohung des Wertes von x3 die marginale Erh¨ohung des Zielfunktionswertes 0 − 5 = −5, was einer Verschlechterung entspricht.

118

3 Lineare Optimierung

Diese Interpretation der Zielfunktionskoeffizienten entspricht also der Interpretation der Koeffizienten in der Matrix B−1 A (¨ubertragen auf die Zielfunktionszeile). In der Zielfunktionszeile ist Variable F in der Rolle der BV. Der Koeffizient  −c j + cB B−1 A j gibt also (analog zu einem Koeffizienten ai, j ) an, wie sich der Wert von F marginal ver¨andert, wenn der Wert von NBV x j erh¨oht wird und alle anderen NBV unver¨andert bleiben. Dies entspricht gerade unserer Interpretation der Zielfunktionskoeffizienten im zweiten Fall oben, denn F repr¨asentiert den Zielfunktionswert. Salopp formuliert: Informationen im Simplextableau Der Vektor auf der RHS gibt die Werte der BV (in der Reihenfolge, in der diese in der Basis sind) und den Zielfunktionswert an. Der Zielfunktionswert kann analog als Wert der letzten BV F aufgefasst werden. Die Koeffizienten in den Spalten von NBV geben an, wie sich der Wert von BV marginal ver¨andert, wenn der Wert der NBV erh¨oht wird und alle anderen NBV unver¨andert bleiben. Die Zielfunktionskoeffizienten k¨onnen analog als marginale Ver¨anderungen der letzten BV F und somit des Zielfunktionswertes aufgefasst werden.

3.3.2.3 Basiswechsel Analog zu dem Verfahren f¨ur LPs mit zwei Variablen in Abschnitt 3.2.3 sieht das Verfahren vor, verschiedene zul¨assige Eckpunkte zu betrachten und sofern m¨oglich zu einem besseren benachbarten zul¨assigen Eckpunkt zu wechseln. Wir haben schon in Abschnitt 3.3.2.1 gesehen, dass zul¨assige Basisl¨osungen zul¨assigen Eckpunkten entsprechen und umgekehrt. Wir werden daher die Idee, benachbarte zul¨assige Eckpunkte zu betrachten, auf die Betrachtung entsprechender Basen (und damit Mengen von NBV) u¨ bertragen. Zwei verschiedene zul¨assige Eckpunkte nennen wir benachbart, wenn es n−1 linear unabh¨angige NB gibt, die beide mit Gleichheit erf¨ullen. Diese n−1 NB schneiden sich in einer Geraden, auf der beide Eckpunkte liegen und deren zul¨assiger Bereich durch die beiden Eckpunkte begrenzt wird. In Abb. 3.10 werden verschiedene NB eines LPs mit n = 2 Strukturvariablen x1 und x2 , m = 6 NB (NB 1 bis NB 6) und 5 Eckpunkten (EP 1 bis EP 5) dargestellt. Die Eckpunkte 3 und 4 (EP 3 und EP 4) sind benachbart. Sie sind beide zul¨assig und erf¨ullen n − 1 = 1 NB, n¨amlich NB4, mit Gleichheit. Diese ein-elementige Menge von NB ist nat¨urlich linear unabh¨angig. EP 2 und EP 4 sind nicht benachbart, denn es gibt keine NB, die beide mit Gleichheit erf¨ullen. Weiterhin nennen wir zwei Basen benachbart, wenn sich die Menge der jeweiligen BV bzw. NBV um genau eine Variable unterscheiden, d. h., exakt m − 1 bzw. n − 1 Variablen sind in beiden F¨allen BV bzw. NBV.

3.3 Simplex-Algorithmus

119

x2 50

EP 3 NB 1 NB 2

40

EP 2 NB 3

30

NB 6 NB 4

20

EP 4

10 NB 5

EP 5

EP 1

10

20

30

40

50

60

x1

Abb. 3.10 Eckpunkte und Basen

Um das Verh¨altnis von benachbarten Eckpunkten zu benachbarten Basen genauer zu untersuchen, wollen wir zun¨achst das Verh¨altnis von einzelnen Eckpunkten zu Basen n¨aher erl¨autern. Wie in Abschnitt 3.3.2.1 diskutiert, repr¨asentiert eine Basis genau eine Basisl¨osung und damit genau einen Eckpunkt. Umgekehrt kann aber ein Eckpunkt von mehr als einer Basis repr¨asentiert werden. Dies ist nicht unbedingt offensichtlich, wir k¨onnen es aber im Folgenden schon an einem Beispiel erkennen. Lemma 3.2. F¨ur das Verh¨altnis von (benachbarten) Basen und (benachbarten) Eckpunkten gilt: • Zu zwei benachbarten Eckpunkten gibt es zwei benachbarte Basen. • Zu einem Eckpunkt kann es mehrere Basen geben. • Zwei benachbarte Basen, die zul¨assigen Eckpunkten entsprechen, entsprechen entweder demselben Eckpunkt oder zwei benachbarten Eckpunkten. Beweis. Wir argumentieren nacheinander f¨ur die einzelnen Punkte. • Zwei benachbarte Eckpunkte erf¨ullen dieselben n − 1 linear unabh¨angige NB mit Gleichheit. Insgesamt erf¨ullt jeder Eckpunkt n linear unabh¨angige NB mit Gleichheit. Die beiden Mengen von linear unabh¨angigen NB sind unterschiedlich, da zwei benachbarte Eckpunkte nicht identisch sind. Also gibt es zwei Mengen von jeweils n linear unabh¨angigen NB, die durch die Eckpunkte mit Gleich-

120

3 Lineare Optimierung

heit erf¨ullt werden und die sich um genau eine NB unterschieden, und daher gibt es zwei entsprechende Basen, die sich um genau eine NBV unterscheiden. • Wir k¨onnen dies schon am Beispiel in Abb. 3.10 erkennen. Eckpunkt 3 (EP 3) erf¨ullt (u. a.) NB 1, NB 2 und NB 3 mit Gleichheit. Da jede Teilmenge von zwei dieser NB linear unabh¨angig ist, bilden sowohl die Schlupfvariablen zu NB 1 und NB 2 als auch die Schlupfvariablen zu NB 1 und NB 3 jeweils eine Menge von NBV, die EP 3 entsprechen (die Schlupfvariablen zu NB 2 und NB 3 tun dies nat¨urlich auch). Da die beiden Mengen sich nur um eine NBV unterscheiden sind die entsprechenden Basen benachbart. • Die Mengen von NBV benachbarter Basen unterscheiden sich nur in einer Variablen. Daher gibt es zwei Mengen von jeweils n linear unabh¨angigen NB, die von den Eckpunkten mit Gleichheit erf¨ullt werden und sich nur in einer NB unterscheiden. Diese Eckpunkte k¨onnen identisch sein, wie wir schon im vorherigen Punkt gesehen haben. Wenn sie nicht identisch sind, dann sind sie benachbart, denn es gibt n − 1 linear unabh¨angige NB, die beide mit Gleichheit erf¨ullen, da sich die beiden Mengen von jeweils n NB nur in einer NB unterscheiden.   Wenn es einen zul¨assigen Eckpunkt gibt, in dem mehr als n NB mit Gleichheit erf¨ullt sind, dann sprechen wir davon, dass das LP (primal) degeneriert ist. Wir k¨onnten dann eine der linear abh¨angigen NB entfernen und w¨urden dadurch die Menge zul¨assiger Eckpunkte nicht a¨ ndern. In Abb. 3.10 werden verschiedene Konstellationen dargestellt. In Eckpunkt 3 (EP 3) schneiden sich vier NB, in EP 4 drei und in allen u¨ brigen (EP 1, EP 2 und EP 5) nur jeweils zwei. F¨ur EP 1, EP 2 bzw. EP 5 gilt dementsprechend auch, dass x1 und x2 , x1 und s1 bzw. x2 und s6 die jeweils eindeutigen NBV sind. Umgekehrt spezifiziert eine beliebige Wahl zweier der drei Variablen s4 , s5 und s6 als NBV EP 4. Der dritten Variablen wird dann als L¨osung des LGS ebenfalls der Wert Null zugeordnet. Um EP3 zu spezifizieren, k¨onnen wir sogar beliebig zwei der vier Variablen s1 , s2 , s3 und s4 als NBV w¨ahlen. Dementsprechend gibt es sechs Mengen von NBV, die EP3 bestimmen. Wir k¨onnen leicht im Tableau erkennen, ob wir eine Menge von NBV vorliegen haben, bei der der zugeh¨orige Eckpunkt auch von anderen Mengen von NBV repr¨asentiert wird. Sollte eine BV den Wert Null annehmen, dann ist die entsprechende NB ebenfalls mit Gleichheit erf¨ullt und dann liegt dementsprechend ein Eckpunkt vor, der mehr als n NB mit Gleichheit erf¨ullt. Zusammenfassung: Primale Degeneration eines LP Wenn in einer Basisl¨osung eine BV den Wert Null annimmt, dann sind mehr als n NB mit Gleichheit erf¨ullt und es gibt mehr als eine Basis, die diesem Eckpunkt entspricht. ¨ Ein Basiswechsel bezeichnet eine Anderung der Menge von NBV durch Entfer¨ nen einer bisherigen NBV und Erg¨anzen einer bisherigen BV, d. h. den Ubergang von einer Basis zu einer benachbarten. Analoges gilt nat¨urlich f¨ur die Menge von

3.3 Simplex-Algorithmus

121

BV: eine bisherige BV verl¨asst die Menge und eine bisherige NBV wird aufgenommen. Wir werden dann auch sagen, dass die bisherige NBV in die Basis aufgenommen wird und daf¨ur eine bisherige BV die Basis verl¨asst. Im Rahmen des Verfahrens werden wir in der Situation sein, dass die NBV x j , die in die Basis aufgenommen werden soll, bekannt ist. Es ist in der Situation jedoch nicht explizit bekannt, welche bisherige BV die Basis verl¨asst. Im Folgenden wollen wir veranschaulichen, wie wir diese ermitteln und den Basiswechsel durchf¨uhren. Wir k¨onnen anhand der Koeffizienten im Tableau entscheiden, welche BV die Basis verl¨asst. Wir wissen bereits, dass ai, j angibt, wie sich der Wert der i-ten BV xBi marginal ver¨andert, wenn der Wert  von NBV x j steigt. Wir kennen auch den derzeitigen Wert von xBi , n¨amlich bi = B−1 b i . Wenn ai, j > 0 gilt, k¨onnen wir x j also h¨ochstens den Wert bi /ai, j zuordnen, ohne dass die resultierende L¨osung unzul¨assig wird. Bei h¨oheren Werten erhielte xBi den Wert bi − ai, j x j < 0, was unzul¨assig w¨are. Wenn ai, j ≤ 0 gilt, dann verringert sich der Wert von xBi bei Erh¨ohung des Wertes von x j nicht und insofern stellt sie auch keine Einschr¨ankung f¨ur die Erh¨ohung dar. Potentiell gibt jedoch jede aktuelle BV eine Einschr¨ankung f¨ur die Erh¨ohung des Wertes von x j vor. Nat¨urlich m¨ussen wir die strengste dieser Einschr¨ankungen beachten, d. h., der Wert von x j darf nicht h¨oher als   x¯ j = min bi /ai, j | i = 1, . . . , m; ai, j > 0 (3.89) gesetzt werden, wenn es mindestens eine BV xBi mit ai, j > 0 gibt. Solange wir dies beachten, erhalten wir eine zul¨assige L¨osung, die aber nicht zwangsl¨aufig ein Eckpunkt ist. Die NB, zu der x j korrespondiert, war zuvor mit Gleichheit erf¨ullt und ist dies nun nicht mehr. Die u¨ brigen NBV ver¨andern ihren Wert nicht, d. h., alle anderen NB, die zu NBV geh¨orten, bleiben weiterhin mit Gleichheit erf¨ullt. Um nach Aufnahme von x j in die Basis wieder einen Eckpunkt zu erhalten, muss also eine andere NB mit Gleichheit erf¨ullt werden, die von den u¨ brigen linear unabh¨angig ¨ ist. Dies erreichen wir indem wir x j = x¯ j setzen. Aus unseren obigen Uberlegungen folgt, dass die entsprechende L¨osung einem Eckpunkt entspricht und zul¨assig ist; also haben wir einen zul¨assigen Eckpunkt erreicht. Wenn x¯ j > 0 gilt, dann weicht die neue L¨osung von der vorherigen L¨osung ab und die beiden zul¨assigen Eckpunkte sind benachbart. Sollte es keine BV xBi mit ai, j > 0 geben, dann k¨onnen wir den Wert von x j beliebig hoch setzen, ohne eine NB zu verletzen, wenn wir die Werte der BV entsprechend anpassen. Wir k¨onnen dann x j nicht in die Basis aufnehmen, da es keine geeignete BV gibt, die die Basis verl¨asst. Sollten wir durch Erh¨ohen des Wertes von x j die L¨osung verbessern, dann ist das LP in diesem Fall unbeschr¨ankt, da wir beliebig gute L¨osungen erreichen k¨onnen, indem wir den Wert von x j beliebig vergr¨oßern (und die Werte jeder bisherigen BV xBi entsprechend ai, j anpassen).

122

3 Lineare Optimierung

Salopp formuliert: Aufnahme einer NBV in die Basis Wir weisen der bisherigen NBV den h¨ochsten Wert zu (falls es ihn gibt), der einer zul¨assigen L¨osung entspricht, bei der keine andere NBV ge¨andert wird. Dies ist der h¨ochste Wert, bei der keine bisherige BV einen negativen Wert erh¨alt. Wenn wir diesen Wert zuweisen, erh¨alt mindestens eine bisherige BV den Wert Null und verl¨asst die Basis. Den Fall, in dem x¯ j > 0 gilt, k¨onnen wir uns wie folgt vorstellen. Die NB, die in beiden L¨osungen zu NBV geh¨oren, schneiden sich in einer Geraden, denn es sind n − 1 linear unabh¨angige (n − 1)-dimensionale Unterr¨aume. Wir verschieben die L¨osung entlang dieser Geraden im zul¨assigen Bereich soweit, bis wir eine weitere NB mit Gleichheit erf¨ullen. Diese NB entspricht der vormaligen BV, die die strengste Einschr¨ankung f¨ur die Erh¨ohung des Wertes von x j darstellte. Durch die Erh¨ohung des Wertes von x j nimmt diese vormalige BV jetzt den Wert Null an und wird daher zur NBV und verl¨asst die Basis. Diese NB muss von den u¨ brigen mit Gleichheit erf¨ullten NB linear unabh¨angig sein, denn sie schneidet die Gerade, die den Schnittpunkt der u¨ brigen NB bildet. Sollten mehrere vormalige BV bei der Bestimmung von x¯ j den Engpass darstellen, dann kann unter diesen eine als neue NBV gew¨ahlt werden. Der Fall mit x¯ j = 0 tritt ein, wenn es eine i-te BV xBi in der Ausgangsl¨osung gibt, f¨ur die ai, j > 0 und bi = 0 gilt. Diesen Fall k¨onnen wir uns analog zum obigen vorstellen, allerdings verschieben wir die L¨osung nur u¨ ber eine Strecke der L¨ange Null, bis wir eine weitere NB mit Gleichheit erf¨ullen. D. h., das Verschieben hat in diesem Fall keine Ver¨anderung der L¨osung zur Folge. Dies ergibt sich dadurch, dass schon in der Ausgangsl¨osung eine weitere NB mit Gleichheit erf¨ullt war (n¨amlich die, die zu xBi geh¨ort). Wir wollen das Tableau aus Abschnitt 3.3.2.2 aufgreifen und beispielhaft einen Basiswechsel durchf¨uhren. F 0 0 0 1

x1 0 3 3 -4

x2 1 0 0 0

x3 1 -5 -2 5

x4 0 1 0 0

x5 0 0 1 0

RHS 30 30 48 150

Wir sehen, dass x1 eine NBV ist und dass die marginale Erh¨ohung des Zielfunktionswertes bei Erh¨ohung des Wertes von x1 vier betr¨agt. Wenn wir also x1 in die Menge der BV aufnehmen und x1 dadurch einen positiven Wert erh¨alt, wird die neue Basisl¨osung besser sein. Die Koeffizienten von x1 in der zweiten und dritten NB besagen, dass die Werte der zweiten und dritten BV um drei sinken, wenn der Wert von x1 um eins steigt. Da die Werte der zweiten und dritten BV x4 = 30 und x5 = 48 betragen, kann x1 keinen Wert von mehr als min{30/3, 48/3} = 10 erhalten. Die erste NB schr¨ankt die m¨oglichen Werte von x1 nicht ein. Wir w¨ahlen somit x1 = 10, wodurch die zweite NB mit Gleichheit erf¨ullt wird und x4 (die Schlupfvariable der zweiten NB) zu einer NBV wird. Hier und im weiteren Verlauf von Abschnitt 3.3 heben wir das sogenannte Pivotelement hervor. Das Pivotelement stellt die strengs-

3.3 Simplex-Algorithmus

123

te Einschr¨ankung f¨ur das Erh¨ohen des Wertes der neuen BV dar, daher entsteht dort“ nach dem Basiswechsel der Eintrag 1 des Einheitsvektors. Wir k¨onnen das ” Tableau entsprechend umformen, indem wir in der Spalte, die zu x1 geh¨ort, den zweiten Einheitsvektor erzeugen. F 0 0 0 1

x1 0 1 0 0

x2 1 0 0 0

x3 x4 1 0 -5/3 1/3 3 -1 -5/3 4/3

x5 0 0 1 0

RHS 30 10 18 190

Wir legen noch ein Beispiel nach und entnehmen nun x3 aus der Menge der NBV, denn auch dies ist erfolgsversprechend (−5/3 < 0). Die zweite NB beschr¨ankt die m¨oglichen Werte von x3 nicht, denn durch Vergr¨oßerung des Wertes von x3 kann die zweite BV x1 nicht negativ werden (a2,3 = −5/3 < 0). Die erste und dritte NB jedoch implizieren, dass x3 keinen Wert von mehr als min{30/1, 18/3} = 6 erhalten darf, wenn wir eine zul¨assige L¨osung erhalten wollen. Wir f¨uhren die entsprechende Umformung durch und erhalten das folgende Tableau. F 0 0 0 1

x1 0 1 0 0

x2 1 0 0 0

x3 0 0 1 0

x4 1/3 -2/9 -1/3 7/9

x5 RHS -1/3 24 5/9 20 1/3 6 5/9 200

Wir erkennen nun, dass es keine NBV mehr gibt, bei der es sich lohnen w¨urde, sie aus der Menge der NBV zu entnehmen. Zusammenfassung: Basiswechsel ¨ Ein Basiswechsel entspricht dem Ubergang von einer Basis zu einer benachbarten. Hierf¨ur wird der Wert einer bisherigen NBV (potentiell) erh¨oht. Die Erh¨ohung erfolgt in genau dem Maß, dass bei unver¨anderten u¨ brigen NBV mindestens eine bisherige BV den Wert Null erh¨alt. Die NB, die zu dieser bisherigen BV geh¨ort, ist dann auch mit Gleichheit erf¨ullt, wodurch wieder n linear unabh¨angige NB mit Gleichheit erf¨ullt sind.

3.3.2.4 Ablauf des Verfahrens und Analyse In diesem Abschnitt werden wir den Ablauf des vollst¨andigen Verfahrens diskutieren. Die Idee ist dabei strikt analog zu der des Verfahrens f¨ur LPs mit zwei Variablen aus Abschnitt 3.2.3. Wir schreiten also in geeigneter Weise Eckpunkte ab, bis wir die optimale L¨osung gefunden haben. Wir arbeiten daf¨ur mit der Darstellung in Form des Tableaus und daher auch mit Basen, die wie in Abschnitt 3.3.2.2 besprochen Eckpunkten entsprechen. Wir f¨uhren von einer Startl¨osung ausgehend

124

3 Lineare Optimierung

Basiswechsel, bekannt aus Abschnitt 3.3.2.3, durch und erreichen so weitere, bessere Eckpunkte. Das folgende Theorem, das in Anhang A.2 bewiesen wird, ist zentral f¨ur die Funktionsweise des Verfahrens. Theorem 3.2. Wenn es einen Eckpunkt gibt, der eine optimale L¨osung darstellt, dann hat jeder Eckpunkt, der keine optimale L¨osung darstellt, einen benachbarten Eckpunkt, der besser ist. Wir wollen der Einfachheit halber zun¨achst davon ausgehen, dass das LP nicht degeneriert ist. Diese Annahme werden wir sp¨ater fallen lassen. Wenn das LP nicht degeneriert ist, dann gibt es wegen Lemma 3.2 zu jedem Eckpunkt genau eine entsprechende Basis und umgekehrt. Das bedeutet, dass wir bei jedem Basiswechsel einen anderen Eckpunkt erreichen. Aus Theorem 3.2 folgt zudem, dass es f¨ur eine Basis eine benachbarte Basis gibt, die einer besseren L¨osung entspricht, wenn es u¨ berhaupt eine optimale L¨osung gibt und wir diese noch nicht gefunden haben. Das Verfahren identifiziert dann in jeder Iteration eine solche Basis anhand der negativen reduzierten Kosten einer NBV und vollzieht den Basiswechsel. Wenn es keine optimale L¨osung gibt, ist das LP unzul¨assig oder unbeschr¨ankt. Wenn das LP unzul¨assig ist, werden wir schon bei der Suche nach einer zul¨assigen Basisl¨osung scheitern. Wenn es unbeschr¨ankt ist, werden wir fr¨uher oder sp¨ater eine NBV identifizieren k¨onnen, die negative reduzierte Kosten hat und deren Wert gem¨aß (3.89) beliebig erh¨oht werden kann. Das vollst¨andige Verfahren wird durch den folgenden Algorithmus spezifiziert. Algorithmus 3.4 (Simplex-Algorithmus). Eingabe: Instanz eines LP ohne Degeneration Ausgabe: optimale L¨osung oder Information, dass keine existiert 1. Bestimme eine zul¨assige Basisl¨osung. 2. Bestimme Variable x j mit minimalen reduzierten Kosten c¯ j 3. Wenn c¯ j = 0, liegt eine optimale L¨osung vor. STOP. 4. Wenn c¯ j < 0 und der Wert dieser Variablen beliebig erh¨oht werden kann, ohne Zul¨assigkeit zu verlieren (ai, j ≤ 0 f¨ur alle i = 1, . . . , m), dann ist das LP unbeschr¨ankt. STOP. 5. Wenn diese reduzierten Kosten negativ sind und der Wert dieser Variablen nicht beliebig erh¨oht werden kann, ohne Zul¨assigkeit zu verlieren, dann   a. bestimme die NB i∗ = arg min bi /ai, j | i = 1, . . . , m; ai, j > 0 , die die Erh¨ohung des Wertes von x j am st¨arksten beschr¨ankt und b. ersetze die bisherige i∗ -te BV durch x j durch einen entsprechenden Basiswechsel. 6. Gehe zu 2. Die Struktur unseres Spezialfalls im gesamten Abschnitt 3.3.2 (LP in Standardform, bei dem kein Wert auf der rechten Seite einer NB negativ ist) erlaubt uns, leicht eine zul¨assige Basisl¨osung zu benennen: Die Strukturvariablen sind die

3.3 Simplex-Algorithmus

125

NBV und haben daher einen Wert von Null und die Schlupfvariablen sind die BV. Jede Schlupfvariable xn+i , i = 1, . . . , m, hat dann einen Wert von bi . Da die n Dom¨anendefinitionen, die offensichtlich linear unabh¨angig sind, in dieser L¨osung mit Gleichheit erf¨ullt werden, entspricht diese L¨osung einem Eckpunkt. Zudem werden die NB erf¨ullt. W¨aren wir von einem allgemeinen LP in Standardform ausgegangen (bei dem es negative Werte auf der RHS geben kann), w¨are zwar die Umformung zu einem LGS m¨oglich, aber ein zul¨assiger Eckpunkt ließe sich so nicht unbedingt ermitteln. Erst recht wenn wir uns ganz von LPs in Standardform l¨osen, ist es nicht unweigerlich leicht, eine zul¨assige Basisl¨osung zu ermitteln. Wie wir in diesen beiden F¨allen eine zul¨assige Basisl¨osung ermitteln k¨onnen, werden wir in Abschnitt 3.3.3 besprechen. Nachdem wir eine zul¨assige Basisl¨osung ermittelt haben, werden wir in jedem Durchlauf der Schritte 2. bis 6. entweder feststellen, dass wir bereits eine optimale L¨osung ermittelt haben (Schritt 3.) oder das LP unbeschr¨ankt ist (Schritt 4.), oder eine bessere Basisl¨osung ermitteln (Schritt 5.). Wir k¨onnen festhalten, dass • es immer eine bessere benachbarte Basisl¨osung gibt, sofern es eine optimale L¨osung gibt, wir sie aber noch nicht ermittelt haben, • wir anhand der reduzierten Kosten der NBV eine benachbarte Basis ermitteln, die einem besseren Eckpunkt entspricht, wenn es eine gibt, und • das Verfahren in jedem Durchlauf entweder abbricht oder eine bessere L¨osung findet, da annahmegem¨aß keine Degeneration vorliegt und daher jeder Basiswechsel zu einem anderen Eckpunkt f¨uhrt. Wir wissen also, dass wir Eckpunkte in aufsteigender Reihenfolge ihrer Zielfunktionswerte betrachten und daher jeden Eckpunkt h¨ochstens einmal erreichen. Da es nur eine begrenzte Zahl von Eckpunkten gibt, wird der Algorithmus also nach einer endlichen Anzahl von Durchl¨aufen der Schritte 2. bis 6. enden. Unbeschr¨anktheit bzw. Unzul¨assigkeit wird offensichtlich korrekt erkannt. Optimalit¨at des aktuellen Eckpunktes wird ebenfalls korrekt erkannt, denn die minimalen reduzierten Kosten unter den Variablen sind genau dann nicht negativ, wenn es keine bessere benachbarte Basisl¨osung gibt und dann ist die vorliegende L¨osung gem¨aß Lemma 3.2 und ¨ Theoreme 3.1 und 3.2 optimal. Wir fassen diese Uberlegungen in dem folgenden Theorem zusammen. Theorem 3.3. Wenn das LP nicht degeneriert ist, ermittelt Algorithmus 3.4 eine optimale L¨osung oder bestimmt korrekt, dass das LP unzul¨assig oder unbeschr¨ankt ist.

126

3 Lineare Optimierung

Zusammenfassung: Simplex-Algorithmus ohne Degeneration des LP Algorithmus 3.4 startet an einem zul¨assigen Eckpunkt und ermittelt in jedem Schritt einen besseren benachbarten Eckpunkt des aktuellen. Dabei wird anhand der reduzierten Kosten der NBV erkannt, welcher Basiswechsel zu einem besseren Eckpunkt f¨uhrt. Das Verfahren endet, wenn kein besserer benachbarter Eckpunkt existiert (dann ist der aktuelle optimal), von dem aktuellen Eckpunkt aus beliebig gute L¨osungen erreicht werden k¨onnen (dann ist das LP unbeschr¨ankt) oder gar kein zul¨assiger Eckpunkt ermittelt werden kann (dann ist das LP unzul¨assig). Diese recht simple Argumentation f¨ur die Korrektheit des Verfahrens basiert auf der Annahme, dass wir in jedem Schritt eine Verbesserung erreichen, was nur dann zwangsl¨aufig gilt, wenn das LP nicht degeneriert ist. Wenn wir diese Annahme fallen lassen, dann k¨onnen wir nicht so einfach argumentieren. Es ist dann m¨oglich, dass wir einen Basiswechsel durchf¨uhren, ohne den repr¨asentierten Eckpunkt zu a¨ ndern. Bei Anwendung der oben beschriebenen Variante des Simplex-Algorithmus kann es sogar passieren, dass wir mehrere Basiswechsel durchf¨uhren und schließlich zur ursp¨unglichen Basisl¨osung zur¨uckkehren. D. h., wir k¨onnen nicht nur Eckpunkte, sondern auch Basen mehrfach betrachten. Wir nennen diesen Effekt aus naheliegenden Gr¨unden Kreisen“. Ein Beispiel hierf¨ur, entnommen aus Hall und ” McKinnon (2004), wollen wir im Folgenden betrachten. Modell 3.12 (Beispiel zu Kreisen).

u.B.d.N.

max 2, 3 · x1 + 2, 15 · x2 − 13, 55 · x3 − 0, 4 · x4

(3.90)

0, 4 · x1 + 0, 2 · x2 − 1, 4 · x3 − 0, 2 · x4 ≤ 0 −7, 8 · x1 − 1, 4 · x2 + 7, 8 · x3 + 0, 4 · x4 ≤ 0

(3.91)

x1 , x2 , x3 , x4 ≥ 0

(3.93)

(3.92)

Wir k¨onnen relativ leicht erkennen, dass das LP unbeschr¨ankt ist. Jede L¨osung mit x1 = x4 = 0 und x2 = 7x3 ≥ 0 ist zul¨assig und hat den Wert 1, 5x3 . Da wir x3 beliebig groß w¨ahlen k¨onnen, k¨onnen wir beliebig gute L¨osungen konstruieren. Das entsprechende Tableau f¨ur die Wahl von Schlupfvariablen x1 bis x4 als NBV ist das folgende. F

x1

0 0 1

0,4 -7,8 -2,3

x2

x3

0,2 -1,4 -1,4 7,8 -2,15 13,55

x4

x5

x6

RHS

-0,2 0,4 0,4

1 0 0

0 1 0

0 0 0

Bei Anwendung von Algorithmus 3.4 identifizieren wir x1 als die Variable, die in die Basis aufgenommen werden soll, und erzeugen in der entsprechenden Spalte den ersten Einheitsvektor.

3.3 Simplex-Algorithmus

F 0 0 1

x1 1 0 0

127

x2 0,5 2,5 -1

x3 -3,5 -19,5 5,5

x4 -0,5 -3,5 -0,75

x5 2,5 19,5 5,75

x6 0 1 0

RHS 0 0 0

Dann identifizieren wir x2 als die Variable, die in die Basis aufgenommen werden soll, und erzeugen in der entsprechenden Spalte den zweiten Einheitsvektor. F

x1

x2

x3

x4

x5

x6

RHS

0 0 1

1 0 0

0 1 0

0,4 -7,8 -2,3

0,2 -1,4 -2,15

-1,4 7,8 13,55

-0,2 0,4 0,4

0 0 0

Wir erkennen nun, dass die Spaltenvektoren des ersten Tableaus sich im dritten wiederfinden und sie lediglich um zwei nach rechts verschoben wurden. Auch die identischen Eintr¨age auf der rechten Seite sind dieselben geblieben. Nun ist leicht zu schließen, dass nach zwei (vier) weiteren Iterationen wiederum dieselben Spaltenvektoren entstehen, die aber wiederum um zwei (vier) Spalten nach rechts verschoben sind. Nach insgesamt sechs Iterationen erhalten wir also wieder das Ausgangstableau und der ganze Ablauf wiederholt sich. Nat¨urlich liegt hier eine sehr spezielle Konstellation vor. Wir haben zwei NB und vier Dom¨anendefinitionen in einem 4-dimensionalen Raum und f¨ur die L¨osung x1 = x2 = x3 = x4 = 0 sind alle mit Gleichheit erf¨ullt. Es bleibt aber festzuhalten, dass wir sechs Basiswechsel durchf¨uhren, dabei nicht einmal einen anderen Eckpunkt erreichen und schlussendlich wieder im Ausgangstableau m¨unden. D. h., Algorithmus 3.4 terminiert nicht zwangsl¨aufig, wenn das vorliegende LP degeneriert ist, und liefert somit auch nicht die korrekte Antwort. Auch wenn Kreisen“ eher selten vorkommt, so ist dies grunds¨atzlich ein Pro” blem, denn wir haben keine Garantie, dass der Simplex-Algorithmus wie oben vorgestellt funktioniert. Eine relativ simple Modifikation verhindert das Problem jedoch. Die sogenannte Regel von Bland, entwickelt von Bland (1977), legt fest, wie die neu in die Basis aufzunehmende NBV und die zu entfernende BV gew¨ahlt werden. Die neu in die Basis aufzunehmende Variable wird nat¨urlich unter den NBV mit negativen reduzierten Kosten gew¨ahlt, denn diese bieten Potential, bessere Eckpunkte zu erreichen. Weiterhin werden wir also davon ausgehen k¨onnen, dass in keinem Schritt die aktuelle L¨osung verschlechtert wird. Allerdings w¨ahlen wir immer die erste NBV, die diesen Anspruch erf¨ullt, d. h. unter den NBV mit negativen reduzierten Kosten die mit dem kleinsten Index. Die Variable, die die Menge der BV verl¨asst, wird weiterhin durch (3.89) bestimmt. Sollte es mehrere BV geben, die x¯ j am st¨arksten einschr¨anken, wird unter diesen die mit dem kleinsten Index gew¨ahlt.

128

3 Lineare Optimierung

Algorithmus 3.5 (Simplex-Algorithmus mit Bland’s Regel). Eingabe: Instanz eines LP Ausgabe: optimale L¨osung oder Information, dass keine existiert 1. F¨uhre den Simplex-Algorithmus 3.4 mit folgenden Modifikationen aus • W¨ahle in Schritt 2. immer die erste NBV x j mit negativen reduzierten Kosten; wenn es keine gibt, w¨ahle die erste BV x j • Ersetze in Schritt 5. immer die erste BV (gem¨aß der Indizierung aller Variablen, nicht gem¨aß der Sequenz der Variablen in der Basis), die die Erh¨ohung des Wertes von x j am st¨arksten einschr¨ankt Unter Verwendung des Simplex-Algorithmus mit Bland’s Regel kann Kreisen“ ” nicht auftreten. Theorem 3.4. Der Simplex-Algorithmus mit Bland’s Regel betrachtet keine Basis mehrfach. Der Beweis ist recht technisch und entzieht sich – zumindest f¨ur den Autor dieses Buchs – einer intuitiven Interpretation. Da es das erkl¨arte Ziel des vorliegenden Buchs ist, die behandelte Materie anschaulich zu erl¨autern, es f¨ur den Beweis aber nicht m¨oglich scheint, soll an dieser Stelle nur auf den eleganten und kurzen Beweis in Bland (1977) verwiesen werden (statt diesen hier einfach nur wiederzugeben). Wir wollen allerdings das schon bekannte Beispiel noch einmal f¨ur die Verwendung von Bland’s Regel aufgreifen. F

x1

0 0 1

0,4 -7,8 -2,3

x2

x3

0,2 -1,4 -1,4 7,8 -2,15 13,55

x4

x5

x6

RHS

-0,2 0,4 0,4

1 0 0

0 1 0

0 0 0

Wir identifizieren wiederum x1 als die Variable, die in die Menge der BV aufgenommen werden soll, da x1 die erste NBV mit negativen reduzierten Kosten ist. Wir erzeugen auch hier in der entsprechenden Spalte den ersten Einheitsvektor. Wir w¨ahlen die Variable, die die Basis verl¨asst, unter den Variablen x5 und x6 . Da Variable x5 unter diesen den kleineren Index hat, verl¨asst sie die Basis. F

x1

x2

x3

x4

x5

x6

RHS

0 0 1

1 0 0

0,5 2,5 -1

-3,5 -19,5 5,5

-0,5 -3,5 -0,75

2,5 19,5 5,75

0 1 0

0 0 0

Wir identifizieren wiederum x2 als die Variable, die in die Menge der BV aufgenommen werden soll, da x2 die erste NBV mit negativen reduzierten Kosten ist. Dieses Mal erzeugen wir allerdings in der entsprechenden Spalte den ersten Einheitsvektor. Wir w¨ahlen die Variable, die die Basis verl¨asst, unter den Variablen x1 und x6 . Da Variable x1 unter diesen den kleineren Index hat, verl¨asst sie die Basis.

3.3 Simplex-Algorithmus

F 0 0 1

x1 2 -5 2

129

x2 1 0 0

x3 -7 -2 -1,5

x4 x5 -1 5 -1 7 -1,75 10,75

x6 0 1 0

RHS 0 0 0

Nun k¨onnen wir erkennen, dass beide NBV mit negativen reduzierten Kosten beliebig vergr¨oßert werden k¨onnen, und schließen, dass das LP unbeschr¨ankt ist. Wir haben nun zwei alternative Regeln kennengelernt, wie wir die Variable, die in die Basis aufgenommen wird, w¨ahlen k¨onnen. Da Bland’s Regel offensichtliche Vorteile hat, stellt sich die Frage, warum wir die erste Regel, die wir im Folgenden Standardregel nennen werden, u¨ berhaupt betrachtet haben. Die Standardregel betrachtet, im Gegensatz zu Bland’s Regel, wie effizient die aktuellen NBV zur Verbesserung der L¨osung beitragen k¨onnen, und w¨ahlt diejenige, die die h¨ochste Effizienz aufweist. Dies f¨uhrt dazu, dass die Standardregel u¨ blicherweise schneller als Bland’s Regel eine optimale L¨osung findet, sofern sie u¨ berhaupt eine findet (siehe auch Avis und Chv´atal (1978)). Es gibt eine Vielzahl weiterer Regeln (siehe auch Terlaky und Zhang (1993)), auf die hier allerdings nicht weiter eingegangen werden soll. Wir wollen im Folgenden noch schließen, dass Simplex-Algorithmus 3.5 jedes LP (also auch degenerierte) l¨ost. Daf¨ur ben¨otigen wir eine weitere Erkenntnis, n¨amlich dass wir an den reduzierten Kosten einer Basisl¨osung erkennen k¨onnen, ob eine optimale L¨osung vorliegt. Dies war in dem zuvor betrachteten Spezialfall eines nicht-degenerierten LPs recht leicht zu erschließen, da die reduzierten Kosten Auskunft u¨ ber die Ver¨anderung des Zielfunktionswertes geben, wenn die L¨osung sich durch den Basiswechsel ver¨andert, und Letzteres in einem nicht-degenerierten LP immer der Fall ist. In einem degenerierten LP a¨ ndert sich die L¨osung durch den Basiswechsel aber nicht zwangsl¨aufig. Wir wissen zwar nach wie vor durch Theorem 3.2, dass es einen besseren benachbarten Eckpunkt gibt, sofern der vorliegende nicht optimal ist, wir k¨onnen ihn aber nicht zwangsl¨aufig durch einen einzigen Basiswechsel erreichen. Daher muss sichergestellt sein, dass der SimplexAlgorithmus 3.5 solange Basiswechsel durchf¨uhrt, bis der bessere benachbarte Eckpunkt durch einen Basiswechsel erreichbar wird. Das folgende Theorem ist der Schl¨ussel dazu. Theorem 3.5. Wenn die vorliegende Basisl¨osung nicht optimal ist, dann gibt es eine NBV mit negativen reduzierten Kosten. Der Beweis wird in Anhang A.3 gef¨uhrt. Aus den Theoremen 3.4 und 3.5 k¨onnen wir folgern, dass der Simplex-Algorithmus mit Bland’s Regel korrekt bestimmt, dass das LP unzul¨assig oder unbeschr¨ankt ist, oder eine optimale L¨osung ermittelt. Zun¨achst k¨onnen wir festhalten, dass der Algorithmus (sofern u¨ berhaupt ein zul¨assiger Eckpunkt existiert) erst endet, wenn die vorliegende L¨osung als optimal oder das LP als unbeschr¨ankt erkannt wird. Dies folgt direkt aus Theorem 3.5, denn sofern die vorliegende L¨osung nicht optimal ist, gibt es eine NBV mit negativen reduzierten Kosten und daher wird ein weiterer Basiswechsel angestoßen (oder Unbeschr¨anktheit erkannt). Da zudem gem¨aß Theorem 3.4 kein Kreisen“ stattfindet, ”

130

3 Lineare Optimierung

d. h. keine Basis zweimal besucht“ wird, und es nur eine endliche Anzahl von Ba” sen gibt, muss der Algorithmus nach endlicher Zeit eine Basisl¨osung ermitteln, bei der Unbeschr¨anktheit erkannt wird oder Optimalit¨at vorliegt. Insbesondere wird Algorithmus 3.5 bei Beschr¨anktheit des LPs eine Basisl¨osung erreichen, in der alle reduzierten Kosten nicht negativ sind, was dann gem¨aß Theorem 3.5 korrekt in Schritt 3. als Indiz f¨ur das Vorliegen einer optimalen L¨osung erkannt wird. Die entsprechende Basis nennen wir optimal. Salopp formuliert: Simplex-Algorithmus mit Degeneration des LP ¨ Analog zu unseren bisherigen Uberlegungen betrachten wir verschiedene Eckpunkte, bis wir einen optimalen gefunden haben oder Unbeschr¨anktheit des LPs feststellen. W¨ahrend sich die vorliegende Basis in jeder Iteration a¨ ndert, muss dies f¨ur den entsprechenden Eckpunkt nicht gelten. Da aber keine Basis zweimal erreicht wird und es zu einem Eckpunkt nur eine endliche Anzahl Basen gibt, wird sich fr¨uher oder sp¨ater auch der vorliegende Eckpunkt a¨ ndern. Degeneration kann auch in dem optimalen Eckpunkt vorliegen. Dann ist ab einer bestimmten Iteration der vorliegende Eckpunkt optimal, wird aber wom¨oglich noch nicht als optimale L¨osung erkannt. Der dann vorliegende, optimale Eckpunkt wird sich nicht mehr a¨ ndern, da wir nur zu einem besseren Eckpunkt wechseln w¨urden und genau dies kann ja nicht mehr passieren. Wiederum k¨onnen wir dann mit Theorem 3.4 und der endlichen Anzahl von Basen argumentieren, dass Algorithmus 3.5 fr¨uher oder sp¨ater das Abbruchkriterium in Schritt 3. erreichen muss und halten zusammenfassend das folgende Theorem fest. Theorem 3.6. Algorithmus 3.5 identifiziert die Unbeschr¨anktheit des LPs oder findet eine optimale Basis in einer endlichen Anzahl von Schritten, sofern das vorliegende LP eine zul¨assige L¨osung hat. Abschließend wollen wir uns noch ein vollst¨andiges Beispiel anschauen und greifen daf¨ur wiederum auf Modell 3.9 bzw. Abb. 3.1 auf S. 93 zur¨uck. Modell 3.9 (Modell zu Beispiel 3.1). max 4 · x1 + 5 · x2 u.B.d.N.

0 · x1 + 1 · x2 ≤ 30 3 · x1 + 5 · x2 ≤ 180 3 · x1 + 2 · x2 ≤ 108 x1 , x2 ≥ 0

Wir haben das Ausgangstableau schon in Abschnitt 3.3.2.2 aufgestellt.

(3.94) (3.95) (3.96) (3.97) (3.98)

3.3 Simplex-Algorithmus

F 0 0 0 1

131

x1 0 3 3 -4

x2 1 5 2 -5

x3 1 0 0 0

x4 0 1 0 0

x5 0 0 1 0

RHS 30 180 108 0

Zun¨achst wollen wir die Standardregel verwenden. Wir nehmen x2 in die Basis auf, w¨ahrend x3 die Basis verl¨asst. F 0 0 0 1

x1 0 3 3 -4

x2 1 0 0 0

x3 1 -5 -2 5

x4 0 1 0 0

x5 0 0 1 0

RHS 30 30 48 150

Beim zweiten Basiswechsel wird x1 in die Basis aufgenommen und x4 verl¨asst sie. F 0 0 0 1

x1 0 1 0 0

x2 1 0 0 0

x3 1 -5/3 3 -5/3

x4 0 1/3 -1 4/3

x5 0 0 1 0

RHS 30 10 18 190

Beim dritten Basiswechsel wird x3 in die Basis aufgenommen und x5 verl¨asst sie. F 0 0 0 1

x1 0 1 0 0

x2 1 0 0 0

x3 0 0 1 0

x4 1/3 -2/9 -1/3 7/9

x5 -1/3 5/9 1/3 5/9

RHS 24 20 6 200

Gem¨aß Theorem 3.5 k¨onnen wir hier erkennen, dass eine optimale L¨osung vorliegt, da alle reduzierten Kosten nicht-negativ sind. Nun wollen wir noch Bland’s Regel anwenden. Wir beginnen mit demselben Ausgangstableau F 0 0 0 1

x1 0 3 3 -4

x2 1 5 2 -5

x3 1 0 0 0

x4 0 1 0 0

x5 0 0 1 0

RHS 30 180 108 0

und nehmen x1 in die Basis auf, w¨ahrend x5 die Basis verl¨asst. F 0 0 0 1

x1 0 0 1 0

x2 1 3 2/3 -7/3

x3 1 0 0 0

x4 0 1 0 0

x5 0 -1 1/3 4/3

RHS 30 72 36 144

132

3 Lineare Optimierung

Beim zweiten Basiswechsel wird x2 in die Basis aufgenommen und x4 verl¨asst sie. F 0 0 0 1

x1 0 0 1 0

x2 0 1 0 0

x3 1 0 0 0

x4 -1/3 1/3 -2/9 7/9

x5 1/3 -1/3 5/9 5/9

RHS 6 24 20 200

Wir erreichen also nach bereits zwei Iterationen die optimale L¨osung und erkennen, dass die Standardregel zwar u¨ blicherweise weniger Iterationen braucht, dies allerdings nicht f¨ur jede Instanz gilt. Zusammenfassung: Simplex-Algorithmus mit Standardregel und Bland’s Regel Der Simplex-Algorithmus mit Bland’s Regel ermittelt korrekt, ob ein LP unzul¨assig oder unbeschr¨ankt ist, und bestimmt, falls beides nicht der Fall ist, eine optimale L¨osung. Der Simplex-Algorithmus mit Standardregel terminiert in der Regel schneller als der Simplex-Algorithmus mit Bland’s Regel, kann aber kreisen“ und daher nicht garantieren, dass eine optimale L¨osung ” bestimmt oder Unbeschr¨anktheit erkannt wird. Wenn das LP nicht degeneriert ist, kann auch der Simplex-Algorithmus mit Standardregel dies garantieren.

3.3.3 M-Methode In Abschnitt 3.3.2 waren wir von einem LP in Standardform ohne negativen Wert auf der rechten Seite ausgegangen. W¨ahrend die Annahme der Standardform selber keine Einschr¨ankung darstellt, wie in Abschnitt 3.1 erl¨autert, sollten wir eine Strategie haben, wie wir mit negativen Werten auf der rechten Seite umgehen, denn solche k¨onnen auftreten. Eine solche Strategie ist die M-Methode (sprich: Big-M” Methode“). Wir werden uns zun¨achst auf ein LP in Standardform konzentrieren, abschließend aber sehen, dass wir die Vorgehensweise auch auf andere LPs anwenden k¨onnen. Die Idee besteht darin, tempor¨ar Hilfsvariablen einzuf¨uhren, um eine formal zul¨assige Basisl¨osung zu erhalten. Diese Hilfsvariablen u¨ bernehmen zun¨achst die Funktion der BV, werden aber im Laufe des Verfahrens sukzessiv aus der Basis entfernt, um final eine Basisl¨osung f¨ur die urspr¨unglichen Variablen zu erhalten. Der Vorteil dieser Vorgehensweise besteht darin, dass wir – nachdem wir die Hilfsvariablen eingef¨uhrt haben – den Simplex-Algorithmus wie zuvor eingef¨uhrt verwenden k¨onnen. Wir stellen das Vorgehen an folgendem Beispiel dar, das wir zun¨achst in Standardform bringen.

3.3 Simplex-Algorithmus

133

Modell 3.13 (Beispiel zu M-Methode).

u.B.d.N.

max 4 · x1 + 5 · x2 + 0 · x3

(3.99)

1 · x2 + 1 · x3 = 1 3 · x1 + 5 · x2 ≤ 180

(3.100)

3 · x1 + 2 · x2 ≥ 108

(3.102)

x1 , x2 , x3 ≥ 0

(3.103)

(3.101)

Modell 3.14 (Beispiel zu M-Methode in Standardform).

u.B.d.N.

max 4 · x1 + 5 · x2 + 0 · x3

(3.104)

1 · x2 + 1 · x 3 ≤ 1 −1 · x2 − 1 · x3 ≤ −1

(3.105) (3.106)

3 · x1 + 5 · x2 ≤ 180 −3 · x1 − 2 · x2 ≤ −108

(3.108)

x 1 , x2 , x3 ≥ 0

(3.109)

(3.107)

Wir k¨onnen die Ungleichungen nun zwar durch Verwendung von Schlupfvariablen in Gleichungen transformieren, allerdings haben diese dann nicht ausschließlich positive Werte, wenn wir sie als BV interpretieren. Modell 3.15 (Beispiel zu M-Methode mit Schlupfvariablen).

u.B.d.N.

max 4 · x1 + 5 · x2 + 0 · x3

(3.110)

1 · x2 + 1 · x3 + 1 · s1 = 1 −1 · x2 − 1 · x3 + 1 · s2 = −1

(3.111)

3 · x1 + 5 · x2 + 1 · s3 = 180

(3.113)

−3 · x1 − 2 · x2 + 1 · s4 = −108

(3.112) (3.114)

x1 , x2 , x3 ≥ 0

(3.115)

s1 , s2 , s3 , s4 ≥ 0

(3.116)

Entsprechend erg¨anzen wir nun in jeder NB mit einem negativen Wert auf der rechten Seite jeweils eine Hilfsvariable mit Koeffizient −1. Die Spalten dieser Hilfsvariablen entsprechen negativen Einheitsvektoren. Wir ben¨otigen diese Hilfsvariablen lediglich, um eine formal zul¨assige Basisl¨osung zu konstruieren, und nicht, um den LR oder einzelne L¨osungen des Ausgangsmodells abzubilden. Daher zielen wir darauf ab, auf die Verwendung der Hilfsvariablen in der final gefundenen optimalen L¨osung zu verzichten. Aus diesem Grund setzen wir die Kosten der Hilfsvariablen auf einen hinreichend niedrigen Wert −M.

134

3 Lineare Optimierung

Modell 3.16 (Beispiel zu M-Methode mit Schlupf- und Hilfsvariablen). max 4 · x1 + 5 · x2 + 0 · x3 − M · y1 − M · y2

(3.117)

1 · x2 + 1 · x3 + 1 · s1 = 1 −1 · x2 − 1 · x3 + 1 · s2 − 1 · y1 = −1

(3.118)

3 · x1 + 5 · x2 + 1 · s3 = 180

(3.120)

u.B.d.N.

(3.119)

−3 · x1 − 2 · x2 + 1 · s4 − 1 · y2 = −108

(3.121)

x1 , x2 , x3 ≥ 0

(3.122)

s1 , s2 , s3 , s4 ≥ 0

(3.123)

y1 , y2 ≥ 0

(3.124)

Es stellt sich nat¨urlich die Frage, was hinreichend niedrig“ ist. Der gew¨unschte ” Effekt ist, dass jede Basisl¨osung, in der alle Hilfsvariablen den Wert 0 haben, besser ist als jede L¨osung, in der das nicht der Fall ist. Um dies zu erreichen, m¨ussen wir den Wert gar nicht konkretisieren. Wir m¨ussen M nur als Wert behandeln, der jeden Zielfunktionswert einer L¨osung ohne Hilfsvariablen deutlich u¨ bersteigt. Jeden Zielfunktionswert und jeden Koeffizienten von Variablen in der Zielfunktion k¨onnen wir im Folgenden als eine Summe aus einem absoluten Wert und M multipliziert mit einem Koeffizienten darstellen. Wenn wir zwei solche Werte (α1 + β1 · M) und (α2 + β2 · M) vergleichen, dann sagen wir, dass (α1 + β1 · M) genau dann gr¨oßer ist, wenn β1 > β2 oder β1 = β2 und α1 > α2 . Wenn β1 = β2 , dann ist die Differenz von α1 und α2 irrelevant f¨ur den Vergleich von (α1 + β1 · M) und (α2 + β2 · M). Nur wenn β1 = β2 , ist die Differenz von α1 und α2 relevant daf¨ur, welcher der beiden Werte (α1 + β1 · M) und (α2 + β2 · M) gr¨oßer ist. Wir u¨ bertragen die Koeffizienten in Modell 3.16 in ein Tableau. F 0 0 0 0 1

x1 0 0 3 -3 -4

x2 1 -1 5 -2 -5

x3 1 -1 0 0 0

x4 1 0 0 0 0

x5 0 1 0 0 0

x6 0 0 1 0 0

x7 0 0 0 1 0

y1 0 -1 0 0 M

y2 0 0 0 -1 M

RHS 1 -1 180 -108 0

Danach haben wir keine Probleme, in den Spalten zu den Hilfsvariablen Ein¨ heitsvektoren zu erzeugen. Der Ubersichtlichkeit halber trennen wir die Zielfunktionskoeffizienten in einen Teil, in dem M nicht vorkommt, und einen Teil, in dem M vorkommt. Diese beiden Teile repr¨asentieren wir in zwei Zeilen.

3.3 Simplex-Algorithmus

F 0 0 0 0 1

135

x1 x2 x3 0 1 1 0 1 1 3 5 0 3 2 0 −4 −5 0 −3M −3M −M

x4 1 0 0 0 0

x5 0 -1 0 0 0 +M

x6 0 0 1 0 0

x7 0 0 0 -1 0 +M

y1 0 1 0 0 0

y2 0 0 0 1 0

RHS 1 1 180 108 0 −109M

Die beiden Zeilen, die zur Zielfunktion geh¨oren, lesen wir so, dass sich der gesamte Koeffizient durch Addition der beiden Teile ergibt. Die Zielfunktionskoeffizienten von F, x1 und x5 sind beispielsweise 1, −4 − 3M und M. Wir k¨onnen erkennen, dass die vorliegende L¨osung mit einem Wert von −109M sehr schlecht ist. Zudem sehen wir, dass die Aufnahme der Strukturvariablen in die Basis sehr attraktiv wirkt. Dies liegt daran, dass sie, zumindest teilweise, die Hilfsvariablen verdr¨angen und damit die aktuell sehr schlechte Bewertung der L¨osung verbessern. Da hier nun eine (formal) zul¨assige Basisl¨osung vorliegt, k¨onnen wir den Simplex-Algorithmus anwenden, um die optimale L¨osung zu finden. Dies k¨onnten wir grunds¨atzlich ohne Abweichung von Algorithmus 3.4 bzw. 3.5 tun. Wir werden aber eine Variante besprechen, in der die Hilfsvariablen besonders behandelt werden, um den Aufwand ein wenig zu reduzieren. Wir wenden in unserem Beispiel die Standardregel an. Im ersten Basiswechsel ersetzt x2 entweder x4 oder y1 . Wir w¨ahlen y1 , da wir die Hilfsvariablen so schnell wie m¨oglich aus der Basis entfernen wollen. Es w¨urde aber genauso zum korrekten Ergebnis f¨uhren, wenn wir zun¨achst x4 aus der Basis entfernen. F 0 0 0 0 1

x1 0 0 3 3 −4 −3M

x2 0 1 0 0 0

x3 0 1 -5 -2 5 +2M

x4 1 0 0 0 0

x5 1 -1 5 2 −5 −2M

x6 0 0 1 0 0

x7 y1 0 -1 0 1 0 -5 -1 -2 0 5 +M +3M

y2 0 0 0 1 0

RHS 0 1 175 106 5 −106M

Hilfsvariable y1 ist nun nicht mehr in der Basis, hat daher den Wert 0 und wir k¨onnen uns u¨ berlegen, dass sie auch nie wieder in die Basis aufgenommen wird (wegen der sehr kleinen Zielfunktionskoeffizienten). Also streichen wir die Spalte vollst¨andig aus dem Tableau und verfahren weiter gem¨aß dem SimplexAlgorithmus. Wir ersetzen in der Basis y2 durch x1 . F 0 0 0 0 1

x1 0 0 0 1 0

x2 0 1 0 0 0

x3 0 1 -3 -2/3 7/3

x4 1 0 0 0 0

x5 1 -1 3 2/3 -7/3

x6 0 0 1 0 0

x7 0 0 1 -1/3 -4/3

y2 0 0 -1 1/3 4/3 +M

RHS 0 1 69 106/3 439/3

136

3 Lineare Optimierung

Hilfsvariable y2 bzw. die entsprechende Spalte wird nun ebenfalls entfernt. Damit sind alle Hilfsvariablen entfernt und wir haben eine zul¨assige Basisl¨osung des Ausgangsmodells gefunden. Dies ist in gewisser Weise schon das Ergebnis der MMethode, denn die Hilfsvariablen wurden ja nur eingef¨uhrt, da wir keine zul¨assige Basisl¨osung im Ausgangsmodell identifizieren konnten. D. h., das bisher Besprochene ist eine Ausgestaltung von Schritt 1. in Algorithmus 3.4 oder der Entsprechung in Algorithmus 3.5 aus Abschnitt 3.3.2.4. Nun haben wir eine zul¨assige Basisl¨osung im Ausgangsmodell gefunden und ab hier folgt das weitere Vorgehen streng dem Simplex-Algorithmus (oder genauer den Schritten 2. bis 6. in Algorithmus 3.4 oder den Entsprechungen in Algorithmus 3.5). In dem verbleibenden Simplextableau gibt es keine Koeffizienten, in denen M involviert ist. Daher werden wir im Folgenden wieder zu der Darstellung von Simplextableaus mit einer Zeile f¨ur die Zielfunktionskoeffizienten zur¨uckkehren. Wir ersetzen in der Basis x4 durch x5 . F 0 0 0 0 1

x1 0 0 0 1 0

x2 0 1 0 0 0

x3 0 1 -3 -2/3 7/3

x4 1 1 -3 -2/3 7/3

x5 1 0 0 0 0

x6 0 0 1 0 0

x7 0 0 1 -1/3 -4/3

RHS 0 1 69 106/3 439/3

x5 1 0 0 0 0

x6 0 0 1 1/3 4/3

x7 0 0 1 0 0

RHS 0 1 69 175/3 715/3

Dann ersetzen wir x6 in der Basis durch x7 . F 0 0 0 0 1

x1 0 0 0 1 0

x2 0 1 0 0 0

x3 0 1 -3 -5/3 -5/3

x4 1 1 -3 -5/3 -5/3

In der letzten Iteration ersetzen wir x2 in der Basis durch x3 und erhalten eine optimale L¨osung. F 0 0 0 0 1

x1 0 0 0 1 0

x2 0 1 3 5/3 5/3

x3 0 1 0 0 0

x4 1 1 0 0 0

x5 1 0 0 0 0

x6 0 0 1 1/3 4/3

x7 0 0 1 0 0

RHS 0 1 72 60 240

Es kann grunds¨atzlich auch passieren, dass die Hilfsvariablen nicht vollst¨andig aus der Basis entfernt werden und auch in der ermittelten optimalen L¨osung noch in der Basis sind. Um diesen Fall zu interpretieren, erinnern wir uns, dass wir M so gew¨ahlt haben, dass jede L¨osung ohne positive Hilfsvariablenwerte besser als jede L¨osung mit positiven Hilfsvariablenwerten ist. Dann kann eine Basisl¨osung mit positiven Hilfsvariablenwerten nur optimal sein, wenn es keine zul¨assige Basisl¨osung

3.3 Simplex-Algorithmus

137

ohne positive Hilfsvariablenwerte gibt. In diesem Fall ist also das Ausgangsmodell unzul¨assig. Zusammenfassung: M-Methode Die Methode hat zum Ziel eine zul¨assige Basisl¨osung zu bestimmen. Hierf¨ur werden Hilfsvariablen eingef¨uhrt, die zun¨achst die Rolle der BV annehmen. Positive Werte der Hilfsvariablen werden durch ihre Zielfunktionskoeffizienten stark bestraft, sodass die Optimierung per Simplex-Algorithmus dazu f¨uhrt, dass sie sukzessiv nicht mehr benutzt und aus der Basis entfernt werden. Sobald keine Hilfsvariable mehr in der Basis ist, liegt eine zul¨assige Basisl¨osung des Ausgangsmodells vor und wir k¨onnen mittels des SimplexAlgorithmus eine optimale L¨osung bestimmen oder Unbeschr¨anktheit ermitteln. Sollte es nicht gelingen, alle Hilfsvariablen aus der Basis zu entfernen, dann ist das Ausgangsmodell unzul¨assig. Die oben beschriebene Vorgehensweise geht davon aus, dass ein LP in Standardform vorliegt (und wir daher ein beliebiges LP ggf. zun¨achst in Standardform bringen). Es gibt eine alternative Beschreibung, die von einem LP mit zu maximierender Zielfunktion, nicht-negativen Variablen und nicht-negativen Werten auf der rechten Seite ausgeht, das nicht zwangsl¨aufig in Standardform ist. Auch dies ist keine Einschr¨ankung, denn wir haben in Abschnitt 3.1 gesehen, wie wir eine zu minimierende Zielfunktion und allgemeine Variablen durch eine zu maximierende Zielfunktion und nicht-negative Variablen darstellen k¨onnen. Dar¨uber hinaus k¨onnen wir jede NB, bei der ein negativer Wert auf der rechten Seite steht, durch Multiplikation mit −1 transformieren. Wenn ein solches LP vorliegt, f¨ugen wir, sofern n¨otig, zun¨achst Schlupfvariablen mit Koeffizienten 1 oder −1 ein, um alle NB in Gleichungen zu transformieren. In jeder NB, in der es keine Schlupfvariable mit positivem Koeffizienten gibt, erg¨anzen wir eine Hilfsvariable mit Koeffizient 1 und Zielfunktionskoeffizient −M. Wir erhalten dann ein Modell, aus dem wir wiederum leicht eine zul¨assige Basisl¨osung, in der die Hilfsvariablen und die Schlupfvariablen mit positivem Koeffizient BV sind, herleiten k¨onnen. Wir f¨uhren die beiden Schritte beispielhaft an Modell 3.13 auf S. 133 durch. Zun¨achst erg¨anzen wir die Schlupfvariablen. Modell 3.17 (Beispiel zu M-Methode mit negierten Schlupfvariablen).

u.B.d.N.

max 4 · x1 + 5 · x2 + 0 · x3

(3.125)

1 · x2 + 1 · x3 = 1 3 · x1 + 5 · x2 + s1 = 180 3 · x1 + 2 · x2 − s2 = 108

(3.126) (3.127) (3.128)

x 1 , x2 , x3 ≥ 0

(3.129)

s1 , s2 ≥ 0

(3.130)

138

3 Lineare Optimierung

Wir erg¨anzen nun noch Hilfsvariablen in NB (3.126) und (3.128), denn in diesen gibt es keine Schlupfvariable mit Koeffizient 1. Modell 3.18 (Beispiel zu M-Methode mit Hilfsvariablen und negierten Schlupfvariablen). (3.131) max 4 · x1 + 5 · x2 + 0 · x3 − M · y1 − M · y2 1 · x2 + 1 · x3 + y1 = 1 3 · x1 + 5 · x2 + s1 = 180

(3.132)

3 · x1 + 2 · x2 − s2 + y2 = 108

(3.134)

u.B.d.N.

(3.133)

x 1 , x2 , x3 ≥ 0

(3.135)

s 1 , s2 ≥ 0

(3.136)

y 1 , y2 ≥ 0

(3.137)

Wir erkennen, dass das erhaltene Modell 3.18 weniger Variablen und weniger NB als Modell 3.16 hat und somit auch absehbar weniger Aufwand bei der Anwendung des Simplex-Algorithmus entsteht.

3.4 Dualit¨at Unter Dualit¨at versteht man im Allgemeinen eine enge Beziehung zwischen zwei Objekten, sodass man durch Betrachtung eines der beiden Objekte Erkenntnisse u¨ ber das andere Objekt erlangen kann. Dualit¨at kann man nutzen, wenn wir Erkenntnisse u¨ ber eines der beiden Objekte erlangen wollen, sich die entsprechenden Erkenntnisse aber u¨ ber das andere Objekt leichter ableiten lassen. In diesem Abschnitt werden wir Dualit¨at von LPs behandeln. Wir werden nun zun¨achst aus unserem LP in Standardform, Modell 3.8, ein anderes LP motivieren und formal ableiten. Dieses ist das zum Ausgangsmodell duale LP. Zur Unterscheidung werden wir von Modell 3.8 als dem primalen LP sprechen. Danach werden wir dann die spezielle Beziehung zwischen den beiden LPs diskutieren. Modell 3.8 (Generisches LP in Standardform). n

max ∑ c j · x j

(3.138)

j=1

n

u.B.d.N.

∑ ai, j · x j ≤ bi

∀i = 1, . . . , m

(3.139)

∀ j = 1, . . . , n

(3.140)

j=1

xj ≥ 0

3.4 Dualit¨at

139

Eine obere Schranke f¨ur ein LP ist ein Wert, der nicht kleiner als der optimale Zielfunktionswert ist. Wenn wir einen solchen Wert kennen, kann uns das helfen, eine vorliegende (nicht zwangsl¨aufig optimale) L¨osung zu bewerten. Wir k¨onnen dann absch¨atzen, um wie viel besser eine wom¨oglich unbekannte optimale L¨osung sein kann, und ob es sich lohnt, weiteren Aufwand zu betreiben, um diese zu ermitteln. Wir k¨onnen f¨ur Modell 3.8 eine obere Schranke ableiten, indem wir f¨ur jede NB i = 1, . . . , m einen nicht-negativen Multiplikator ωi ≥ 0 w¨ahlen, sodass f¨ur jede Spalte j = 1, . . . , n m

∑ ai, j · ωi ≥ c j

(3.141)

i=1

gilt. Es gilt dann f¨ur jede zul¨assige L¨osung x = (x1 , . . . , xn ) des Modells 3.8



n

n

m

j=1

j=1

i=1

∑ c j · x j ≤ ∑ ∑ ai, j · ωi

m

· x j = ∑ ωi · i=1

n

∑ ai, j · x j

j=1

m

≤ ∑ ω i · bi ,

(3.142)

i=1

ur Modell 3.8 dar. Die erste Ungleid. h., ∑m i=1 ωi · bi stellt eine obere Schranke f¨ chung in (3.142) gilt wegen (3.141) und die zweite gilt, da wir von einer beliebigen zul¨assigen L¨osung x ausgehen, die (3.139) erf¨ullt. Wir wollen uns noch einmal vergegenw¨artigen, was genau die Aussage von (3.142) ist. Wenn wir ω = (ω1 , . . . , ωm ) wie gefordert gew¨ahlt haben, dann stellt ur eine Instanz von Modell 3.8 einen konkreten Zahlenwert dar. Die∑m i=1 ωi · bi f¨ ser Zahlenwert ist mindestens so hoch, wie der Zielfunktionswert einer beliebigen zul¨assigen L¨osung x. Dies gilt insbesondere f¨ur eine optimale L¨osung x∗ . Somit ist ∑m i=1 ωi · bi also ein Wert, der nicht kleiner als der optimale Zielfunktionswert ist. ¨ Ublicherweise gibt es mehr als eine M¨oglichkeit ω ≥ 0 so zu w¨ahlen, dass (3.141) erf¨ullt ist. Die erhaltene obere Schranke h¨angt nat¨urlich von der konkreten Wahl von ω ab. Da uns die obere Schranke ja in der Regel als Absch¨atzung des optimalen Zielfunktionswertes dient, sind wir daran interessiert, dass sie m¨oglichst niedrig ausf¨allt, denn dann ist der Fehler, den wir bei der Absch¨atzung machen, m¨oglichst gering. Das Finden der kleinsten oberen Schranke ∑m i=1 ωi · bi kann also wiederum als Optimierungsproblem 3.1 aufgefasst werden. Problem 3.1 (Kleinste obere Schranke). Eingabe: LP in Standardform LR: ω = (ω1 , . . . , ωm ) ≥ 0 ZB: (3.141) ZS: ∑m i=1 ωi · bi ist zu minimieren. Frage: Was ist eine optimale L¨osung? In einem entsprechenden MO verwenden wir die kontinuierlichen Variablen ω1 , . . . , ωm und formulieren die Anforderungen in den NB bzw. der Dom¨anendeklaration.

140

3 Lineare Optimierung

Modell 3.19 (Kleinste obere Schranke). m

min ∑ ωi · bi

(3.143)

i=1

m

u.B.d.N.

∑ ai, j · ωi ≥ c j

∀ j = 1, . . . , n

(3.144)

ωi ≥ 0

∀i = 1, . . . , m

(3.145)

i=1

Modell 3.19 ist das zu Modell 3.8 duale LP. Uns fallen starke Analogien auf. F¨ur jede Variable in Modell 3.8 gibt es eine NB in Modell 3.19. Umgekehrt gibt es f¨ur jede NB in Modell 3.8 eine Variable in Modell 3.19. Der Zeilenvektor der Zielfunktionskoeffizienten in Modell 3.8 entspricht dem Spaltenvektor der Werte auf der RHS in Modell 3.19. Analog entspricht der Spaltenvektor der Werte auf der RHS in Modell 3.8 dem Zeilenvektor der Zielfunktionskoeffizienten in Modell 3.19. Der Zeilenvektor der Koeffizienten in NB i in Modell 3.8 entspricht dem Spaltenvektor der Koeffizienten von Variable ωi in Modell 3.19. Salopp formuliert: Duales LP Um das duale LP zu einem LP in Standardform zu erhalten, spiegeln ” wir das Tableau (ohne Schlupfvariablen) an der Hauptdiagonalen“ d. h., wir transponieren die Matrix. Wir erhalten dann f¨ur jede Variable bzw. NB im Ausgangsmodell eine NB bzw. Variable im dualen LP. Die Zielfunktion ist dann zu minimieren und wir haben ausschließlich gr¨oßer-gleich“-NB. ” Ohne eine konkrete Anwendung im Hinterkopf zu haben, wollen wir einmal annehmen, dass es in dem primalen LP darum geht, unter optimalem Einsatz einer Menge von Ressourcen einen gr¨oßtm¨oglichen Ertrag durch einen bestimmten Produktmix zu erwirtschaften. Es gibt dann eine Variable pro Produkt, die die hergestellte Menge repr¨asentiert. Es gibt außerdem eine NB f¨ur jede Ressource, die daf¨ur sorgt, dass der Kapazit¨atsbedarf des Produktmix die vorhandene Kapazit¨at nicht u¨ berschreitet. Das duale LP hat dann eine sch¨one o¨ konomische Interpretation. Wollen wir dem Produzenten seine Kapazit¨aten abkaufen, dann wollen wir das zu einem m¨oglichst niedrigen Gesamtpreis tun. Allerdings muss der Preis so hoch sein, dass er einen Anreiz zum Verkaufen hat. Wir argumentieren hier rein o¨ konomisch, d. h., wir nehmen an, dass der Produzent verkauft, wenn er mehr durch den Verkauf der Kapazit¨aten einnimmt, als er durch die Produktion des optimalen Produktmix erwirtschaften kann. Wir setzen also einen linearen Preis ωi f¨ur jede Kapazit¨atseinheit der Ressource i = 1, . . . , m und zahlen insgesamt ∑m i=1 ωi ·bi , was dem Zielfunktionswert des dualen LPs entspricht. Wir wissen, dass der Produzent mit einem Einsatz von ai, j Kapazit¨atseinheiten der Ressource i, i = 1, . . . , m, eine Einheit des Produktes j herstellen und damit Einnahmen von c j generieren kann. Somit m¨ussen wir die urde Preise f¨ur die Kapazit¨aten so w¨ahlen, dass ∑m i=1 ai, j ωi ≥ c j gilt, denn sonst w¨ der Produzent lieber Produkt j herstellen, als seine Ressourcen zu verkaufen. Diese

3.4 Dualit¨at

141

Bedingung m¨ussen wir f¨ur jedes Produkt erf¨ullen, was der Erf¨ullung der NB in dem dualen LP entspricht. Das duale LP dr¨uckt also das Problem aus, Preise so zu setzen, dass der Produzent keinen Anreiz hat, seine Ressourcen zu behalten, und wir den unter dieser Einschr¨ankung geringsten Gesamtpreis zahlen. Zwischen den beiden Modellen 3.8 und 3.19 gibt es sehr enge Beziehungen. Die erste Beziehung haben wir oben schon abgeleitet, wir wollen sie hier aber noch einmal hervorheben. Theorem 3.7 (Schwacher Dualit¨atssatz). F¨ur zwei zul¨assige L¨osungen x und ω der Modelle 3.8 und 3.19 gilt n

m

j=1

i=1

∑ c j · x j ≤ ∑ ω i · bi .

¨ Ubertragen auf unsere o¨ konomische Interpretation von primalem und dualem LP bedeutet dies, dass wir dem Produzenten nur dann keinen Anreiz zum Behalten der Ressourcen bieten, wenn wir mindestens so viel zu zahlen bereit sind, wie er selbst durch Einsatz seiner Ressourcen erwirtschaften kann. Als n¨achstes werden wir feststellen, dass die Beziehung zwischen dem primalen und dem dualen LP eine wechselseitige ist. Der Beweis wird detailliert in Anhang A.4 betrachtet. Theorem 3.8 (Duales LP des dualen LP). Das duale LP des dualen LPs ist das primale LP. Abgesehen davon, dass Theorem 3.8 die enge Beziehung der beiden Modelle 3.8 und 3.19 noch einmal betont, wird es uns im Folgenden bei der weiteren Analyse helfen. W¨ahrend Theorem 3.7 eine Aussage f¨ur alle Paare von zul¨assigen L¨osungen trifft, stehen im folgenden Theorem 3.9 optimale L¨osungen der beiden Modelle im Fokus. Wir betrachten also einen Spezialfall der Situation, die Theorem 3.7 zugrunde liegt. Entsprechend f¨allt die Aussage in Theorem 3.9 auch st¨arker aus. Theorem 3.9 (Starker Dualit¨atssatz). Modell 3.8 hat genau dann eine optimale L¨osung x∗ , wenn Modell 3.19 eine optimale L¨osung ω ∗ hat. Falls beide L¨osungen existieren gilt n

m

j=1

i=1

∑ c j x∗j = ∑ ωi∗ bi .

Einen formalen Beweis f¨ur Theorem 3.9 f¨uhren wir in Anhang A.5. Dieser stellt auf eine besondere Beziehung zwischen zwei L¨osungen f¨ur das primale und das duale LP ab. F¨ur eine gew¨ahlte Basis B und eine  entsprechende primale L¨osung x bezeichnen wir die L¨osung ω mit ωi = cB B−1 i ≥ 0 f¨ur jedes i = 1, . . . , m als die zu x duale L¨osung. Diese L¨osung ω hat denselben Zielfunktionswert gem¨aß des dualen LPs wie L¨osung x gem¨aß des primalen. Dies bedeutet gem¨aß Theorem 3.7, dass die zu einer suboptimalen L¨osung x duale L¨osung unzul¨assig f¨ur das duale LP

142

3 Lineare Optimierung

ist. Wenn L¨osung x suboptimal ist, dann gibt es zul¨assige L¨osungen mit besserem Zielfunktionswert. Ein solcher besserer Zielfunktionswert stellt eine Schranke f¨ur Zielfunktionswerte zul¨assiger L¨osungen des dualen LPs dar (gem¨aß Theorem 3.7). F¨ur die duale L¨osung zu x bedeutet das, dass ihr Zielfunktionswert besser als der optimale des dualen LPs ist; daher muss diese duale L¨osung unzul¨assig sein. Wenn die zu einer zul¨assigen L¨osung x duale L¨osung zul¨assig ist, dann m¨ussen beide L¨osungen optimal sein. Zusammenfassung: Duale L¨osung Die zu einer primalen L¨osung x duale L¨osung ω = cB B−1 ≥ 0 hat den gleichen Zielfunktionswert wie x. Wenn beide zul¨assig sind, sind sie auch optimal. Wenn eine der beiden suboptimal ist, ist die andere unzul¨assig. Wir k¨onnen erkennen, dass wir die duale L¨osung in den Spalten der Schlupfvariablen im Simplextableau finden und haben diese auch schon in Abschnitt 3.3.2.2 als Dualvariablen bezeichnet. Das bedeutet f¨ur uns, dass wir bei Verwendung des Simplex-Algorithmus nicht nur das primale LP l¨osen, sondern auch das duale, denn wir k¨onnen die optimale L¨osung des dualen LPs direkt aus dem Simplextableau zur optimalen primalen L¨osung ablesen, sofern eine existiert. Weiterhin k¨onnen wir auch die Werte von Schlupfvariablen des dualen LPs aus dem primalen Simplextableau ablesen. Die Schlupfvariablen des dualen LPs sind nicht-negative Variablen, die in den NB auf der linken Seite abgezogen werden, um Gleichungen zu erzeu¨ gen. Sie bilden also wie im primalen LP die Ubererf¨ ullung der NB ab. Der Wert der Schlupfvariablen zur j-ten NB des dualen LPs findet sich im Simplextableau als reduzierte Kosten von x j . Wir erinnern uns, dass diese m      −c j + cB B−1 A j = −c j + cB B−1 A j = −c j + (ωA) j = −c j + ∑ ωi · ai, j i=1

¨ betragen. Dieser Wert entspricht einer Ubererf¨ ullung der j-ten NB des dualen LPs in der entsprechenden H¨ohe, wenn er positiv ist, und einer Verletzung, wenn er negativ ist. Zusammenfassung: Duale L¨osung im primalen Simplextableau Wir finden die Werte der Strukturvariablen bzw. die Werte der Schlupfvariablen einer zur vorliegenden primalen L¨osung dualen L¨osung als reduzierte Kosten der Schlupfvariablen bzw. als reduzierte Kosten der Strukturvariablen des primalen LPs. ¨ Ubertragen auf unsere o¨ konomische Interpretation von primalem und dualem LP bedeutet Theorem 3.9, dass wir dem Produzenten einen Gesamtpreis bieten k¨onnen, bei dem er zwischen Erl¨os durch Verkauf der Ressourcen und Erl¨os durch Produktion indifferent ist, sofern es einen optimalen Produktmix gibt. Auch die reduzierten Kosten der Strukturvariablen k¨onnen wir anschaulich o¨ konomisch interpretie-

3.4 Dualit¨at

143

ren. Die reduzierten Kosten von Strukturvariable x j stellen das Verh¨altnis von dem Gewinn, der mit einer Einheit des Produktes j erzielt werden kann, und dem bepreisten Ressourcenverbrauch f¨ur die Herstellung einer Einheit von j dar. Dabei sind ω1 , . . . , ωm die Preise der Ressourcen pro Einheit. Wenn die reduzierten Kosten negativ (positiv) sind, dann ist der Gewinn h¨oher (niedriger) als der bepreiste Verbrauch. Die reduzierten Kosten dr¨ucken somit aus, ob die Ressourcen durch Produktion von Produkt j o¨ konomisch effizienter verwendet werden k¨onnten als durch Verkauf der Ressourcen zu Preisen von ω1 , . . . , ωm pro Einheit. Theorem 3.7 bzw. 3.9 trifft explizit eine Aussage f¨ur LPs, die zul¨assig sind, bzw. LPs, die zul¨assig und beschr¨ankt sind. Wir haben aber schon vorher gesehen, dass es auch LPs gibt, die unzul¨assig oder unbeschr¨ankt sind. Was bei Unzul¨assigkeit oder Unbeschr¨anktheit eines LPs f¨ur das duale LP folgt, wollen wir uns im Folgenden u¨ berlegen. Aus Theorem 3.7 folgt, dass aus einem unbeschr¨ankten primalen LP folgt, dass das duale LP unzul¨assig ist. G¨abe es eine zul¨assige L¨osung des dualen LPs, dann h¨atte sie einen endlichen Zielfunktionswert. Dies w¨urde aber Theorem 3.7 verletzen, da es f¨ur das primale LP zul¨assige L¨osungen mit beliebig hohem Zielfunktionswert gibt. Wegen Theorem 3.8 gilt dies auch umgekehrt: Wenn das duale LP unbeschr¨ankt ist, dann ist das primale LP unzul¨assig. Es bleibt die Frage, ob es m¨oglich ist, dass beide, das primale LP und das duale LP, unzul¨assig sind. Diese Frage k¨onnen wir anhand des folgenden Beispiels bejahen. Modell 3.20 (Unzul¨assiges primales LP). max x1 + x2 −x1 ≤ −1 x2 ≤ −1

u.B.d.N.

x1 , x2 ≥ 0

(3.146) (3.147) (3.148) (3.149)

Modell 3.21 (Unzul¨assiges duales LP). min −ω1 − ω2 u.B.d.N.

(3.150)

−ω1 ≥ 1 ω2 ≥ 1

(3.151)

ω1 , ω2 ≥ 0

(3.153)

(3.152)

Mittels Theoremen 3.7 und 3.9 k¨onnen wir eine weitere Beziehung zwischen optimalen L¨osungen von primalem und dualem LP ableiten. Einen formalen Beweis f¨ur Theorem 3.10 f¨uhren wir in Anhang A.6.

144

3 Lineare Optimierung

Theorem 3.10 (Komplement¨arer Schlupf). Eine zul¨assige L¨osung x des primalen LPs 3.8 und eine zul¨assige L¨osung ω des dualen LPs 3.19 sind genau dann optimal, wenn

m

∑ ai, j · ωi − c j

xj ·

i=1



= 0 f¨ur jedes j = 1, . . . , n und

n

ωi · bi − ∑ ai, j · x j

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

j=1

Salopp formuliert: Komplement¨arer Schlupf F¨ur zwei optimale L¨osungen gilt, dass • eine Variable den Wert Null hat, wenn die entsprechende NB im dualen Modell u¨ bererf¨ullt ist und • eine NB mit Gleichheit erf¨ullt ist, wenn die entsprechende Variable im dualen Modell einen positiven Wert hat. Auch Theorem 3.10 k¨onnen wir o¨ konomisch interpretieren. Wenn es einen optimalen Produktmix gibt, dann wird in jedem kostenminimalen Angebot (bei dem der Produzent keinen Anreiz zum Behalten der Ressourcen hat) der Preis ωi der Ressource i Null betragen, wenn diese Ressource keine knappe Ressource ist, d. h. im optimalen Produktmix Kapazit¨at dieser Ressource ungenutzt bleibt. Dies folgt aus dem zweiten Term des Theorems, der n

∑ ai, j · x j < bi ⇒ ωi = 0

j=1

f¨ur jede Ressource i = 1, . . . , m impliziert. Umgekehrt m¨ussen die Preise ω1 , . . . , ωm so gew¨ahlt werden, dass der Gesamtpreis der f¨ur die Produktion einer Einheit von Produkt j gebundenen Kapazit¨at genau dem Verkaufserl¨os c j entspricht, wenn j hergestellt wird. W¨urden wir den Preis niedriger w¨ahlen, dann w¨urde der Produzent dieses Produkt herstellen und die daf¨ur notwendigen Ressourcen nicht verkaufen. W¨are er h¨oher, dann w¨urden wir mehr zahlen als n¨otig, um dem Produzenten keinen Anreiz zum Behalten der Ressourcen zu bieten. Dies folgt aus dem ersten Term des Theorems, aus dem m

x j > 0 ⇒ ∑ ai, j ωi = c j i=1

f¨ur jedes Produkt j = 1, . . . , n folgt. Nun wollen wir das oben Besprochene an einem Beispiel erl¨autern. Wir ziehen daf¨ur das schon aus Abschnitt 3.3.2.2 bekannte Ausgangstableau heran, f¨ur das wir mit dem Simplex-Algorithmus mit Bland’s Regel (Algorithmus 3.5) die optimale L¨osung ermitteln (wie schon in Abschnitt 3.3.2.4). Wir beginnen mit dem primalen LP (Modell 3.9) und dem entsprechenden dualen LP (Modell 3.22).

3.4 Dualit¨at

145

Modell 3.9 (Modell zu Beispiel 3.1).

u.B.d.N.

max 4 · x1 + 5 · x2

(3.154)

0 · x1 + 1 · x2 ≤ 30 3 · x1 + 5 · x2 ≤ 180

(3.155)

3 · x1 + 2 · x2 ≤ 108

(3.157)

(3.156)

x1 , x2 ≥ 0

(3.158)

Modell 3.22 (Duales Modell zu Modell 3.9). min 30 · ω1 + 180 · ω2 + 108 · ω3

(3.159)

0 · ω1 + 3 · ω2 + 3 · ω3 ≥ 4 1 · ω1 + 5 · ω2 + 2 · ω3 ≥ 5

(3.160)

ω1 , ω2 , ω3 ≥ 0

(3.162)

u.B.d.N.

(3.161)

Das Ausgangstableau zu Modell 3.9 stellt sich dann wie folgt dar. F 0 0 0 1

x1 0 3 3 -4

x2 1 5 2 -5

x3 1 0 0 0

x4 0 1 0 0

x5 0 0 1 0

RHS 30 180 108 0

Wir k¨onnen die primale L¨osung (0, 0, 30, 180, 108) (inkl. Schlupfvariablen) und die entsprechende duale L¨osung (0, 0, 0, −4, −5) (inkl. Schlupfvariablen) aus dem Simplextableau ablesen. In beiden L¨osungen haben alle Strukturvariablen den Wert Null. Dies stellt f¨ur das primale LP eine zul¨assige L¨osung dar, denn die NB sind erf¨ullt (x j ≥ 0 f¨ur jedes j = 3, . . . , 5). Beide L¨osungen haben den Wert Null, was wegen Theorem 3.9 bedeutet, dass entweder beide L¨osungen optimal sind oder die duale L¨osung unzul¨assig ist (da die primale zul¨assig ist). Denselben R¨uckschluss k¨onnen wir mittels Theorem 3.10 ziehen, denn die L¨osungen erf¨ullen die dort formulierte Bedingung. Wir erkennen tats¨achlich an den Schlupfvariablen des dualen LPs (bzw. den reduzierten Kosten der Strukturvariablen des primalen LPs), dass die duale L¨osung unzul¨assig ist, denn diese haben negative Werte. Weiterhin erkennen wir nun, dass unsere fortw¨ahrende Pr¨ufung auf Optimalit¨at im Rahmen des Simplex-Algorithmus (Sind die reduzierten Kosten aller Variablen nicht negativ?) einer Pr¨ufung der dualen L¨osung auf Zul¨assigkeit entspricht (Sind die entsprechenden Werte der Struktur- und der Schlupfvariablen des dualen LPs nicht-negativ?). Wir wenden Bland’s Regel an, nehmen x1 in die Basis auf und erhalten das folgende Simplextableau. Wir k¨onnen schon anhand der Information im vorherigen Simplextableau erkennen, wie sich die L¨osung ver¨andert. F¨ur jede Einheit, um die

146

3 Lineare Optimierung

der Wert von x1 steigt, sinken die Werte von x3 , x4 und x5 um 1, 5 und 2. Der Zielfunktionswert hingegen wird um 4 pro Einheit steigen. F 0 0 0 1

x1 0 0 1 0

x2 1 3 2/3 -7/3

x3 1 0 0 0

x4 0 1 0 0

x5 0 -1 1/3 4/3

RHS 30 72 36 144

Wiederum k¨onnen wir die primale L¨osung (36, 0, 30, 72, 0) (inkl. Schlupfvariablen) und die entsprechende duale L¨osung (0, 0, 4/3, 0, −7/3) (inkl. Schlupfvariablen) aus dem Simplextableau ablesen. Wir haben wiederum eine zul¨assige L¨osung des primalen LPs, aber keine f¨ur das duale LP vorliegen. Beide L¨osungen haben den Wert 144. Wiederum erkennen wir an den reduzierten Kosten bzw. den Schlupfvariablen des dualen LPs, dass die vorliegende primale L¨osung nicht optimal bzw. die entsprechende duale L¨osung nicht zul¨assig ist. Beim zweiten Basiswechsel wird x2 in die Basis aufgenommen und x4 verl¨asst diese. F 0 0 0 1

x1 0 0 1 0

x2 0 1 0 0

x3 1 0 0 0

x4 -1/3 1/3 -2/9 7/9

x5 1/3 -1/3 5/9 5/9

RHS 6 24 20 200

Wiederum k¨onnen wir die primale L¨osung (20, 24, 6, 0, 0) (inkl. Schlupfvariablen) und die entsprechende duale L¨osung (0, 7/9, 5/9, 0, 0) (inkl. Schlupfvariablen) aus dem Simplextableau ablesen. Beide L¨osungen sind zul¨assig und haben denselben Wert von 200 und sind somit gem¨aß Theorem 3.7 optimal. Zudem sehen wir, dass die in Theorem 3.10 formulierte Bedingung erf¨ullt ist. Wir haben schon in Abschnitt 3.3 mehrmals betont, dass es keinen formalen Unterschied zwischen NB und Dom¨anendefinitionen gibt. Die Implikationen f¨ur ¨ die obigen Uberlegungen wollen wir hier darlegen. Die reduzierten Kosten jeder ¨ Variablen des primalen LPs entsprechen der Uberoder Untererf¨ullung einer NB oder Dom¨anendefinition im dualen LP. Im Falle der Schlupfvariablen (Strukturvariablen) des primalen LPs sind dies die Dom¨anendefinitionen (NB) des dualen LP. Somit entsprechen die reduzierten Kosten der Schlupfvariablen des primalen LPs ¨ der Ubererf¨ ullung der Dom¨anendefinitionen des dualen. Die reduzierten Kosten c¯ j einer Schlupfvariablen x j , j = n + 1, . . . , n + m, des primalen LPs stellen also die ¨ Uberoder Untererf¨ullung der Dom¨anendefinition ω j−n ≥ 0 im dualen LP dar. Die¨ se Uberoder Untererf¨ullung hat den Wert ω j−n − 0 = ω j−n und entspricht damit dem Wert der Variablen ω j−n . Alles, was oben dargelegt wurde, bezog sich auf ein LP in Standardform. Wie ¨ oben erl¨autert, k¨onnen wir daher alle Uberlegungen auf beliebige LPs u¨ bertragen. Statt dies formal herzuleiten, wollen wir im Folgenden nur ein Regelwerk aufstellen, mit dem f¨ur ein beliebiges primales LP das duale LP erstellt werden kann. Dieses Regelwerk wird in Tabelle 3.1 zusammengefasst.

3.4 Dualit¨at

147

Tabelle 3.1 Regelwerk zum Ableiten des dualen LPs Primal/Dual Ziel max ≥ NB ≤ = ≥0 Variablen ≤ 0 ∈R

⇔ ⇔ ⇔ ⇔ ⇔ ⇔ ⇔

Dual/Primal min Ziel ≤0 ≥ 0 Variablen ∈R ≥ ≤ NB =

Ein primales Maxi- bzw. Minimierungsmodell wird in ein duales Mini- bzw. Maximierungsmodell u¨ berf¨uhrt. In jedem Fall formulieren wir f¨ur jede Variable im primalen LP eine NB im dualen und haben pro NB im primalen LP eine Variable im dualen LP. Der Zusammenhang zwischen Dom¨anen und Relationszeichen der entsprechenden NB h¨angt von der Zielfunktionsorientierung ab. Die Tabelle ist hier wie folgt zu lesen. Wenn das vorliegende primale LP ein Mini- bzw. Maximierungsmodell ist, dann finden wir in den zwei rechten Spalten bzw. in den zwei linken Spalten das jeweilige Element des primalen Modells und in den zwei linken Spalten bzw. in den zwei rechten Spalten das jeweilige Element des dualen Modells. Die Koeffizienten der jeweiligen Variablen des dualen LP werden in gewohnter Weise durch Transponieren der Matrix (Vertauschen von Zeilen und Spalten) des primalen LPs gebildet. Wenn wir beispielsweise das duale LP zu dem primalen LP in Modell 3.23 bilden wollen, orientieren wir uns an den zwei rechten Spalten, um die Elemente des primalen LPs zu finden. ¨ primales LP (nicht in Standardform)). Modell 3.23 (Beispiel fur min 1 · x1 + 2 · x2 + 3 · x3 u.B.d.N.

(3.163)

4 · x1 + 5 · x 2 + 6 · x 3 ≤ 7 8 · x1 + 9 · x2 + 10 · x3 = 11

(3.164)

12 · x1 + 13 · x2 + 14 · x3 ≥ 15

(3.166)

(3.165)

x1 ≥ 0

(3.167)

x2 ≤ 0

(3.168)

x3 ∈ R

(3.169)

Wir erstellen ein Maximierungsmodell als duales LP. Variablen x1 ≥ 0, x2 ≤ 0 und x3 ∈ R entsprechen einer NB mit kleiner-gleich“-, gr¨oßer-gleich“- und ” ” gleich“-Relation. Umgekehrt entsprechen die NB (3.164), (3.165) und (3.166) mit ” kleiner-gleich“-, gleich“- und gr¨oßer-gleich“-Relation einer nicht-positiven, ei” ” ” ner unbeschr¨ankten und einer nicht-negativen Variablen. Wir erhalten also Modell 3.24.

148

3 Lineare Optimierung

Modell 3.24 (Duales LP zu Modell 3.23).

u.B.d.N.

max 7 · ω1 + 11 · ω2 + 15 · ω3

(3.170)

4 · ω1 + 8 · ω2 + 12 · ω3 ≤ 1 5 · ω1 + 9 · ω2 + 13 · ω3 ≥ 2

(3.171)

6 · ω1 + 10 · ω2 + 14 · ω3 = 3

(3.173)

ω1 ≤ 0

(3.174)

ω2 ∈ R

(3.175)

ω3 ≥ 0

(3.176)

(3.172)

Nat¨urlich stellt sich die Frage nach dem Nutzen der obigen Erkenntnisse. Viele Verfahren nutzen die besondere Beziehung zwischen zueinander dualen LPs und L¨osungen aus. Ein einfaches Beispiel l¨asst sich an den schon bekannten zueinander dualen Modellen 3.9 und 3.22 festmachen. Modell 3.9 (Modell zu Beispiel 3.1).

u.B.d.N.

max 4 · x1 + 5 · x2

(3.177)

0 · x1 + 1 · x2 ≤ 30 3 · x1 + 5 · x2 ≤ 180

(3.178)

3 · x1 + 2 · x2 ≤ 108

(3.180)

x 1 , x2 ≥ 0

(3.179) (3.181)

Modell 3.22 (Duales Modell zu Modell 3.9).

u.B.d.N.

min 30 · ω1 + 180 · ω2 + 108 · ω3

(3.182)

0 · ω 1 + 3 · ω2 + 3 · ω3 ≥ 4 1 · ω1 + 5 · ω2 + 2 · ω3 ≥ 5

(3.183)

ω1 , ω2 , ω3 ≥ 0

(3.185)

(3.184)

Von Modell 3.9 wissen wir bereits, dass wir es mittels der zeichnerischen L¨osung von LPs mit zwei Variablen (Algorithmus 3.2) l¨osen k¨onnen. Nehmen wir an, wir l¨osen das LP grafisch (wie an demselben Modell in Abschnitt 3.2 dargestellt) und erhalten die Information, dass die optimale L¨osung (20, 24) eindeutig zu der Menge von BV {x1 , x2 , x3 } geh¨ort (wobei x3 die Schlupfvariable von NB (3.178) ist). Wir betrachten dementsprechend die Basis (x1 , x2 , x3 ) und die dazugeh¨origen Matrizen

3.5 Sensitivit¨atsanalyse

149









011 0 −2/9 5/9 B = ⎝3 5 0⎠ und B−1 = ⎝0 1/3 −1/3⎠ . 320 1 −1/3 1/3 Wir ermitteln ω = cB B−1 = (0, 7/9, 5/9) als L¨osung von Modell 3.22 und erkennen, dass diese zul¨assig ist und den Wert 200 hat. Da die primale und entsprechende duale L¨osung zul¨assig sind, ist (0, 7/9, 5/9) eine optimale L¨osung f¨ur Modell 3.22. Nat¨urlich h¨atten wir eine optimale L¨osung f¨ur Modell 3.22 auch mit dem SimplexAlgorithmus ermitteln k¨onnen. Unsere Kenntnis u¨ ber Dualit¨at bei LPs hat uns aber in die Lage versetzt, dieses LP mit drei Variablen allein mit dem zeichnerischen Ansatz (Algorithmus 3.2) zu l¨osen.

3.5 Sensitivit¨atsanalyse Als Sensitivit¨atsanalyse werden im Allgemeinen Untersuchungen bezeichnet, die die Ver¨anderung von Eigenschaften eines Systems bei Ver¨anderungen seiner Parameter ermitteln. Hier betrachten wir den Einfluss von Ver¨anderungen einzelner Parameter auf optimale L¨osungen und optimale Basen eines LPs. Wir werden uns mit der Frage besch¨aftigen, in welchem Maße sich bestimmte Parameter ver¨andern d¨urfen, ohne dass die optimale L¨osung oder die optimale Basis sich a¨ ndert. Diese Art von Fragestellung kann man leicht motivieren, indem wir uns noch einmal vor Augen f¨uhren, dass ein LP eine in der realen Welt vorliegende Fragestellung nur vereinfachend abbildet. Wenn wir beispielsweise das schon bekannte Modell 2.2 zur Produktionsplanung betrachten, dann sehen wir, dass unterstellt wird, dass die Gewinne, Kapazit¨aten und Kapazit¨atsbedarfe pro Einheit bekannt und keinen Unsicherheiten unterworfen sind. Modell 2.2 (Produktionsplanung 2 (Problem 2.1)). n

max ∑ gi · mi

(3.186)

i=1

n

u.B.d.N.

∑ a j,i · mi ≤ K j

∀ j = 1, . . . , m

(3.187)

mi ∈ N0

∀ i = 1, . . . , n

(3.188)

i=1

Nat¨urlich kann es außerhalb der Modellwelt w¨ahrend oder nach L¨osung des Modells zu Ver¨anderungen dieser Parameter kommen und damit ist die vorliegende optimale L¨osung potentiell suboptimal oder sogar unzul¨assig. In diesem Abschnitt wollen wir als L¨osung die Wertebelegung der Strukturvariablen bezeichnen und dabei die Werte der Schlupfvariablen vernachl¨assigen. Es ist ebenfalls m¨oglich, dass bei Ver¨anderung von Parametern die vorliegende L¨osung oder Basis zumindest zul¨assig und wom¨oglich sogar optimal bleibt. Hier ist es wichtig zwischen L¨osung

150

3 Lineare Optimierung

und Basis zu unterscheiden, denn dieselbe Menge von NBV (und somit eine Basis) kann in einem ver¨anderten LP zul¨assig sein, aber zu einer anderen L¨osung korrespondieren, w¨ahrend die L¨osung, die im urspr¨unglichen LP zu dieser Basis geh¨orte, unzul¨assig ist. Dies k¨onnen wir relativ leicht mithilfe des schon bekannten Modells 3.9 und der grafischen Repr¨asentation in Abb. 3.11 veranschaulichen. Modell 3.9 (Modell zu Beispiel 3.1).

u.B.d.N.

max 4 · x1 + 5 · x2

(3.189)

0 · x1 + 1 · x2 ≤ 30 3 · x1 + 5 · x2 ≤ 180

(3.190)

3 · x1 + 2 · x2 ≤ 108

(3.192)

(3.191)

x1 , x2 ≥ 0

(3.193)

x2 60 50 (3.192)

40

(3.190) 30 (3.191)

20 10

10

20

30

40

50

60

x1

Abb. 3.11 Grafische Repr¨asentation von Modell 3.9 bei Reduktion der zweiten Kapazit¨at

Wenn wir annehmen, dass sich nach L¨osung des LPs herausstellt, dass die Kapazit¨at der zweiten Ressource nur reduziert zur Verf¨ugung steht, z. B. weil dringend n¨otige Wartungsarbeiten verrichtet werden m¨ussen, dann ist die ermittelte optimale L¨osung (20, 24) unzul¨assig, denn diese sch¨opft die Kapazit¨at von 180 voll aus. Wenn tats¨achlich nur eine Kapazit¨at von 150 zur Verf¨ugung steht, wird die Gerade in Abb. 3.11, die NB (3.191) repr¨asentiert, durch die schwarze Gerade ersetzt.

3.5 Sensitivit¨atsanalyse

151

Wir k¨onnen dann durch genaues Hinschauen“ erkennen, dass die optimale L¨osung ” (80/3, 14) ist. Aber auch in dieser L¨osung sind die Variablen x4 und x5 , also die Schlupfvariablen zu NB (3.191) und (3.192), die NBV. D. h., die vormals optimale Basis ist auch jetzt optimal, entspricht aber einer anderen L¨osung. ¨ Zusammenfassung: Optimale L¨osungen und Basen bei Anderung der Parameter Die Ver¨anderung einzelner Parameter kann Einfluss auf die optimale L¨osung und/oder optimale Basis haben. Sowohl die L¨osung als auch die Basis kann suboptimal oder sogar unzul¨assig werden. In beiden F¨allen hat das ver¨anderte LP eine andere optimale L¨osung. Es ist allerdings auch m¨oglich, dass die Basis zul¨assig oder sogar optimal bleibt, w¨ahrend die L¨osung unzul¨assig oder suboptimal wird. Kenntnis u¨ ber Zul¨assigkeit oder sogar Optimalit¨at nach Ver¨anderungen der Parameter ist wichtig, damit entschieden werden kann, ob Maßnahmen ergriffen werden m¨ussen, um der Unzul¨assigkeit oder Suboptimalit¨at der vorliegenden L¨osung oder Basis Rechnung zu tragen. Diese Maßnahmen k¨onnen unterschiedlicher Natur sein. Wenn es f¨ur eine Neuplanung noch nicht zu sp¨at ist, kann das LP mit den aktuellen Parametern neu gel¨ost werden. Wenn es jedoch zu sp¨at daf¨ur ist, k¨onnen z. B. ¨ Uberstunden eingeplant werden. Wir betrachten im Folgenden h¨aufig die Ver¨anderung einzelner Parameter isoliert. Die gleichzeitige Ver¨anderung mehrerer Parameter ist in der Regel deutlich ¨ komplizierter zu analysieren. Ausgangspunkt f¨ur unsere Uberlegungen ist wieder einmal das Simplextableau, das entsprechend einer optimalen Basis und der entsprechenden optimalen L¨osung x∗ aufgel¨ost ist. F 0 1

xT B−1 A −c + cB B−1 A

RHS B−1 b cB B−1 b

Im Folgenden unterscheiden wir verschiedene Elemente des LPs, in denen Parameter ver¨andert werden k¨onnten.

3.5.1 Ver¨anderung der RHS Wenn sich Werte auf der RHS a¨ ndern, dann entspricht das einer Parallelverschiebung der NB (bzw. der (n − 1)-dimensionalen Unterr¨aume, die diese repr¨asentieren; siehe Abschnitt 3.3). Diese Verschiebung kann eine oder mehrere NB betreffen. Wir k¨onnen f¨ur die Ver¨anderung nur einer NB verschiedene F¨alle unterscheiden. • Wenn bi ver¨andert wird und NB i durch x∗ nicht mit Gleichheit erf¨ullt ist, dann ¨ wird bei einer hinreichend kleinen Anderung von bi , die vorliegende L¨osung zul¨assig und optimal bleiben. Durch das Parallelverschieben entfernt sich die NB

152

3 Lineare Optimierung

von der aktuellen L¨osung x∗ oder sie n¨ahert sich ihr an. Wenn sie sich entfernt, kann die Ver¨anderung beliebig groß sein, ohne dass sich an der Optimalit¨at von x∗ etwas a¨ ndert. Dies liegt daran, dass NB i kein Engpass war (sie war nicht mit ¨ Gleichheit erf¨ullt) und die Ubererf¨ ullung nun noch gr¨oßer wird. Sie kann also nicht verletzt werden und somit bleibt x∗ zul¨assig. Außerdem bleiben die NB, die mit Gleichheit erf¨ullt wurden, weiterhin mit Gleichheit erf¨ullt und somit ist ¨ durch die Anderung von bi auch keine Verbesserung m¨oglich. Wenn sich die NB durch die Ver¨anderung von bi der L¨osung ann¨ahert, dann kann der Unterraum genau soweit verschoben werden, dass x∗ auf ihm liegt, d. h. die NB mit Gleichheit erf¨ullt. Wenn die NB weniger weit verschoben wird, dann gilt mit der obigen Argumentation, dass die Werte der Strukturvariablen in x∗ optimal bleiben und nur Werte von Schlupfvariablen sich a¨ ndern k¨onnen. Wenn die NB weiter verschoben wird, dann wird x∗ unzul¨assig und es gilt zudem, dass die Basis unzul¨assig ist, denn die zu den NBV geh¨orenden NB wurden ja nicht ver¨andert (NB i war vor Verschieben nicht durch x∗ mit Gleichheit erf¨ullt) und somit auch die implizierte L¨osung nicht. • Wenn bi ver¨andert wird und NB i durch x∗ mit Gleichheit erf¨ullt ist, die dazugeh¨orige Variable aber keine NBV ist (und wir somit Degeneration vorliegen ¨ haben), k¨onnen wir die Uberlegungen aus dem ersten Fall u¨ bertragen. Der Unterschied liegt darin, dass der Unterraum sich nicht x∗ ann¨ahern kann. Bei Parallelverschieben in einer der beiden m¨oglichen Richtungen wird x∗ also zul¨assig und optimal bleiben. Bei Verschieben in die andere Richtung wird x∗ und die Basis unmittelbar unzul¨assig. • Wenn bi ver¨andert wird und die zu NB i geh¨orende Variable eine NBV ist, dann gilt analog zu dem vorherigen Punkt, dass ein Parallelverschieben der NB in eine Richtung L¨osung x∗ zul¨assig bel¨asst und in die andere Richtung unmittelbar zur Unzul¨assigkeit f¨uhrt. Allerdings bedeutet die Ver¨anderung hier auch, dass die bisher optimale Basis eine andere L¨osung impliziert. Die NB, die zu den NBV korrespondieren, bleiben auch nach Parallelverschiebung einer der NB linear unabh¨angig und somit ergibt sich eine eindeutig bestimmte L¨osung, die sich aber aufgrund der neuen Position der ver¨anderten NB von x∗ unterscheidet. Wenn diese L¨osung zul¨assig ist, dann ist sie auch optimal. Dies erkennen wir daran, dass der Wert von bi keinen Einfluss auf die reduzierten Kosten hat. Diese bleiben also bei gleicher Basis unver¨andert und somit nicht-negativ. Zusammenfassung: Ver¨anderung der RHS Die bestehende Basis bleibt optimal, sofern sie zul¨assig bleibt. Letzteres ist aber nicht garantiert. Wenn die Ver¨anderung eine NB betrifft, die zu einer BV geh¨ort, dann ver¨andert sich die der Basis entsprechende L¨osung nicht, d. h., die L¨osung bleibt ebenfalls optimal, falls sie zul¨assig bleibt. Wenn die Ver¨anderung jedoch eine NB betrifft, die zu einer NBV geh¨ort, wird sich die optimale L¨osung ver¨andern, selbst wenn die vormals optimale Basis optimal bleibt.

3.5 Sensitivit¨atsanalyse

153

Abschließend wollen wir noch formal ableiten, wie groß die Ver¨anderung von bi ausfallen darf, damit die vormals optimale Basis zul¨assig und damit optimal bleibt. Wir k¨onnen an der allgemeinen Darstellung des Tableaus erkennen, dass die RHS b lediglich die Werte der BV und den Zielfunktionswert beeinflussen. Die Bedingung f¨ur die Zul¨assigkeit der vorliegenden Basis ist einfach zu formulieren. F¨ur die ver¨anderte RHS b muss B−1 b ≥ 0 gelten. Wenn dies gegeben ist, k¨onnen wir die Optimalit¨at der vorliegenden Basis daran erkennen, dass sich die reduzierten Kosten −c + cB B−1 A bzw. cB B−1 nicht a¨ ndern, da sie nicht von b abh¨angen, und somit nicht-negativ bleiben. Wir k¨onnen durch diese Pr¨ufung f¨ur einen konkreten Vektor b sogar die simultane Ver¨anderung mehrerer Eintr¨age von b ber¨ucksichtigen. Wenn wir aber ermitteln wollen, um welchen Wert δ sich der Wert von bi ver¨andern kann, ohne dass die vorliegende Basis unzul¨assig wird, dann impliziert die Bedingung B−1 b ≥ 0 das System von Ungleichungen



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

−1 B−1 i ,i · bi + Bi ,i · (bi + δ ) ≥ 0

∀i = 1, . . . , m,

−1 in Zeile i und Spalte i ist. Jede dieser Unwobei B−1 i , j der Eintrag von B gleichungen kann eine Beschr¨ankung des Wertes von δ nach oben oder nach unten vorgeben. Die Ver¨anderung δ von bi hat keinen Einfluss auf die Zul¨assigkeit der Basis, wenn δ einen Wert im Interval zwischen st¨arkster Einschr¨ankung nach unten und st¨arkster Einschr¨ankung nach oben annimmt.

Zusammenfassung: Ver¨anderung der RHS (2) Wir betrachten die ver¨anderte RHS B−1 b im aufgel¨osten Tableau. Wenn alle BV nicht-negative Werte haben, ist die vorliegende Basis zul¨assig und somit auch optimal. Daraus ergeben sich Beschr¨ankungen des Wertes von δ nach oben oder nach unten. Wenn δ nicht gr¨oßer als der kleinste nach oben beschr¨ankende Wert und nicht kleiner als der gr¨oßte nach unten beschr¨ankende Wert gew¨ahlt wird, bleibt die vorliegende Basis zul¨assig und damit optimal. An dem schon bekannten Modell 3.9 und dem entsprechenden nach der optimalen Basis aufgel¨osten Simplextableau wollen wir dies veranschaulichen. Modell 3.9 (Modell zu Beispiel 3.1).

u.B.d.N.

max 4 · x1 + 5 · x2

(3.194)

0 · x1 + 1 · x2 ≤ 30 3 · x1 + 5 · x2 ≤ 180

(3.195)

3 · x1 + 2 · x2 ≤ 108

(3.197)

x1 , x2 ≥ 0

(3.196) (3.198)

154

3 Lineare Optimierung

F 0 0 0 1

x1 0 1 0 0

x2 1 0 0 0

x3 0 0 1 0

x4 1/3 -2/9 -1/3 7/9

x5 -1/3 5/9 1/3 5/9

RHS 24 20 6 200

Wenn wir ermitteln wollen, in welchem Rahmen sich b1 ver¨andern kann, ohne dass die vorliegende Basis unzul¨assig wird, dann betrachten wir ein System von Ungleichungen wie folgt. ⎞ ⎛ ⎞ ⎛ ⎞⎛ 1/3 · b2 − 1/3 · b3 0 1/3 −1/3 b1 + δ ⎠≥0 −2/9 · b2 + 5/9 · b3 B−1 b = ⎝0 −2/9 5/9 ⎠ ⎝ b2 ⎠ = ⎝ b3 1 · (b1 + δ ) − 1/3 · b2 + 1/3 · b3 1 −1/3 1/3 Hier stellt δ die Ver¨anderung von b1 dar. Wir k¨onnen ohne gr¨oßere M¨uhe sehen, dass die ersten beiden Eintr¨age von B−1 b nicht von b1 abh¨angen und der dritte nicht-negativ ist, wenn δ ≥ −b1 + 1/3 · b2 − 1/3 · b3 = −30 + 60 − 36 = −6 gilt. Der Wert von b1 muss also mindestens b1 − 6 betragen und kann beliebig hoch sein, ohne dass die vorliegende Basis unzul¨assig wird. Die Ver¨anderung von b1 entspricht dem ersten oben beschriebenen Fall, da die Schlupfvariable der ersten NB x3 eine BV mit positivem Wert ist, und die erste NB daher nicht mit Gleichheit erf¨ullt ist. Wir erkennen hier auch, dass sich, wie oben beschrieben, die Werte der Strukturvariablen x1 und x2 nicht a¨ ndern, sofern die Basis zul¨assig bleibt. Wenn wir stattdessen ermitteln wollen, in welchem Rahmen sich b2 ver¨andern kann, dann betrachten wir das System von Ungleichungen ⎞ ⎛ ⎞ ⎛ ⎞⎛ 1/3 · (b2 + δ ) − 1/3 · b3 0 1/3 −1/3 b1 B−1 b = ⎝0 −2/9 5/9 ⎠ ⎝b2 + δ ⎠ = ⎝ −2/9 · (b2 + δ ) + 5/9 · b3 ⎠ ≥ 0. 1 · b1 − 1/3 · (b2 + δ ) + 1/3 · b3 b3 1 −1/3 1/3 Dieses System ist etwas komplizierter auszuwerten, wir k¨onnen allerdings die drei Bedingungen δ ≥ −b2 + b3 = −72 δ ≤ −b2 + 5/2 · b3 = 90 δ ≤ 3 · b1 − b2 + b3 = 18 ableiten und daran erkennen, dass die Basis zul¨assig bleibt, wenn δ ∈ [−72; 18] gilt. Die Ver¨anderung von b2 entspricht dem dritten oben beschriebenen Fall, da die Schlupfvariable der zweiten NB x4 eine NBV ist und die zweite NB daher mit ¨ Gleichheit erf¨ullt ist. Hier sind durch Anderungen auch die Werte der Strukturvariablen betroffen.

3.5 Sensitivit¨atsanalyse

155

3.5.2 Ver¨anderung der Zielfunktionskoeffizienten ¨ Wir k¨onnen anhand der Uberlegungen in Abschnitt 3.3 erschließen, dass eine Basis nicht unzul¨assig werden kann, wenn sich nur Zielfunktionskoeffizienten ver¨andern. In diesem Fall bleiben alle NB unver¨andert und somit auch die Menge der zul¨assigen Basen und die Menge der zul¨assigen L¨osungen. Allerdings a¨ ndert sich die Bewertung der L¨osungen und somit kann eine vormals optimale L¨osung nach der Ver¨anderung suboptimal sein (und umgekehrt). Es stellt sich also die Frage, ob die bislang optimale Basis und die bislang optimale L¨osung f¨ur einen ver¨anderten Vektor von Zielfunktionskoeffizienten c weiterhin optimal sind. Dies ist genau dann der Fall, wenn die reduzierten Kosten aller Variablen nach wie vor nicht-negativ sind. Wir k¨onnen also allgemein −c + cB B−1 A ≥ 0 als Bedingung daf¨ur, dass die vorliegende Basis optimal bleibt, formulieren. Wir k¨onnen durch diese Pr¨ufung f¨ur einen konkreten Vektor c wiederum die simultane Ver¨anderung mehrerer Eintr¨age ber¨ucksichtigen. Wenn wir aber ermitteln wollen, um welchen Wert δ sich der Wert von c j ver¨andern kann, ohne dass die vorliegende Basis suboptimal wird, dann impliziert die Bedingung −c + cB B−1 A ≥ 0 das System von Ungleichungen −cj + cB B−1 A j ≥ 0

∀ j = 1, . . . , n,

wobei cj = c j f¨ur alle j = j und cj = c j + δ . Zusammenfassung: Ver¨anderung der Zielfunktionskoeffizienten Die Menge von zul¨assigen L¨osungen ver¨andert sich nicht und daher bleiben zul¨assige Basen und L¨osungen zul¨assig. Um zu pr¨ufen, ob die vorliegende Basis und vorliegende L¨osung optimal bleiben, betrachten wir die ver¨anderten reduzierten Kosten −c + cB B−1 A im aufgel¨osten Tableau. Wenn alle NBV nicht-negative Werte haben, ist die vorliegende Basis optimal. Daraus ergeben sich Beschr¨ankungen des Wertes von δ nach oben oder nach unten. Wenn δ nicht gr¨oßer als der kleinste nach oben beschr¨ankende Wert und nicht kleiner als der gr¨oßte nach unten beschr¨ankende Wert gew¨ahlt wird, bleibt die vorliegende Basis optimal. Wir k¨onnen allerdings erkennen, dass wir gar nicht alle reduzierten Kosten pr¨ufen m¨ussen. Der Zielfunktionskoeffizient c j einer NBV x j hat lediglich Einfluss auf die reduzierten Kosten von x j selber. Daher m¨ussen wir f¨ur den Fall, dass die betrachtete Variable x j eine NBV ist, nur die potentiell ver¨anderten reduzierten Kosten von x j heranziehen. Es ist weiterhin klar, dass eine Verschlechterung des Zielfunktionskoeffizienten (im Sinne der Zielfunktion) von x j nicht dazu f¨uhren kann, dass die vormals optimale Basis suboptimal wird, denn daf¨ur m¨usste eine bisherige NBV in Relation zu bisherigen BV attraktiver werden. Es wird sogar noch deutlich einfacher, denn wir k¨onnen erkennen, dass die reduzierten Kosten

156

3 Lineare Optimierung

−cj + cB B−1 A j = −(c j + δ ) + cB B−1 A j = −δ − c j + cB B−1 A j genau dann nicht negativ sind, wenn δ nicht gr¨oßer als die bisherigen reduzierten Kosten ist. Bei der Betrachtung einer BV ist es ein bisschen komplizierter. Der Zielfunktionskoeffizient c j einer BV x j beeinflusst potentiell die reduzierten Kosten mehrerer Variablen. Allerdings wissen wir, dass die reduzierten Kosten der BV den Wert Null behalten werden. Daher m¨ussen wir lediglich die reduzierten Kosten aller NBV pr¨ufen. Hier kann sowohl die Verringerung als auch die Erh¨ohung der Zielfunktionskoeffizienten zur Suboptimalit¨at der vormals optimalen Basis f¨uhren. Wenn x j sehr attraktiv (im Sinne der Zielfunktion) wird, werden wom¨oglich andere BV von NBV, die weniger stark mit x j um die Ressourcen konkurrieren, verdr¨angt. Wenn x j weniger attraktiv wird, wird wom¨oglich x j selber verdr¨angt. Zusammenfassung: Ver¨anderung der Zielfunktionskoeffizienten (2) Ver¨anderungen des Zielfunktionskoeffizienten k¨onnen eine NBV attraktiver machen und dadurch kann diese andere Variablen aus der Basis verdr¨angen. Wenn eine NBV unattraktiver wird, bleiben die vorliegende Basis und die vorliegende L¨osung optimal. Ver¨anderungen des Zielfunktionskoeffizienten einer BV k¨onnen ebenfalls dazu f¨uhren, dass die Basis suboptimal wird. Wiederum wollen wir anhand von Modell 3.9 und dem optimalen Simplextableau die Analyse veranschaulichen. Auch wenn es schwer zu motivieren ist, wollen wir uns fragen, bei welchen Ver¨anderungen von c4 die vorliegende Basis (x2 , x1 , x3 ) optimal bleibt. Nat¨urlich haben Schlupfvariablen definitionsgem¨aß Zielfunktionskoeffizienten mit einem Wert von Null, sodass hier keine Ver¨anderungen zu bef¨urchten sind. Wenn wir allerdings annehmen, dass wir verbleibende Kapazit¨at der zweiten Ressource, die in NB (3.196) abgebildet wird, verkaufen k¨onnen, dann m¨ussten wir x4 als Strukturvariable auffassen und die entsprechenden Einnahmen in der Zielfunktion ber¨ucksichtigen. Wir betrachten folgende Ungleichung. −(c4 + δ ) + cB B−1 A4 = −(c4 + δ ) + cB B−1 A4 = −δ − c4 + cB B−1 A4 ⎛ ⎞⎛ ⎞ 0 1/3 −1/3 0 = −δ − 0 + (5, 4, 0) ⎝0 −2/9 5/9 ⎠ ⎝1⎠ 1 −1/3 1/3 0 = −δ + 7/9 ≥ 0 Wir k¨onnen also ohne M¨uhe sehen, dass die vorliegende Basis optimal bleibt, sofern c4 nicht um mehr als 7/9 vergr¨oßert wird. Dies deckt sich mit unserer Intuition, denn je attraktiver eine ungenutzte Option (also eine NBV) wird, desto eher wird die anderweitige Nutzung der verf¨ugbaren Ressourcen reduziert. Wenn wir stattdessen ermitteln wollen, in welchem Rahmen sich c2 ver¨andern kann, ohne dass die vorliegende Basis suboptimal wird, dann m¨ussen wir ein System mehrerer Ungleichungen, die zu den NBV x4 und x5 korrespondieren, betrachten.

3.5 Sensitivit¨atsanalyse

157





1/3 −c4 + cB B−1 A4 = −0 + (5 + δ , 4, 0) ⎝−2/9⎠ ≥ 0 −1/3 ⎛ ⎞ −1/3 −c5 + cB B−1 A5 = −0 + (5 + δ , 4, 0) ⎝ 5/9 ⎠ ≥ 0 1/3 Wir m¨ussen keine entsprechenden Ungleichungen zu den BV x1 , x2 und x3 formulieren, da wir wissen, dass deren reduzierte Kosten gleich Null sind. Wenn wir die Ungleichungen nach δ aufl¨osen, erhalten wir das folgende System. δ ≥ −7/3 δ ≤ 5/3 Wir k¨onnen nun sehen, dass die vorliegende Basis optimal bleibt, sofern c2 nicht um mehr als 7/3 verringert oder um mehr als 5/3 vergr¨oßert wird.

3.5.3 Ver¨anderung der Matrix Wir k¨onnen an der Koeffizientenmatrix A verschiedene Ver¨anderungen ber¨ucksichtigen. Wir gehen im Folgenden auf die F¨alle ein, in denen eine Variable entf¨allt, eine Variable hinzukommt oder die Eintr¨age einer Spalte ver¨andert werden.

3.5.3.1 Entfallen einer Variablen Wenn Variable x j entf¨allt, dann entf¨allt nat¨urlich neben der Spalte A j in A auch der entsprechende Zielfunktionseintrag c j . Offensichtlich ist dies nicht bei Beibehaltung der vorliegenden Basis m¨oglich, wenn x j eine BV ist, denn dann h¨angen auch B und B−1 und somit potentiell auch alle u¨ brigen Eintr¨age des Simplextableaus von A j ab. Wenn x j allerdings eine NBV ist, dann k¨onnen wir sehen, dass von c j oder den Eintr¨agen von A j lediglich die entsprechenden Eintr¨age im aufgel¨osten Tableau abh¨angen. Wir rufen uns in Erinnerung, dass das Simplextableau ein LGS repr¨asentiert, und wissen dann, dass wir eine Variable mit Wert Null streichen k¨onnen, ohne dass das verbleibende LGS unzul¨assig w¨urde oder sich verbleibende Variablenwerte a¨ ndern. Genau dies machen wir uns bei der M-Methode zunutze (siehe Abschnitt 3.3.3), wenn wir sukzessiv Hilfsvariablen aus der Betrachtung streichen, sobald sie die Basis verlassen haben.

158

3 Lineare Optimierung

Zusammenfassung: Entfallen einer Variablen Wenn eine NBV entf¨allt, k¨onnen wir die entsprechende Spalte einfach aus dem Simplextableau streichen. Die vorliegende Basis bleibt zul¨assig und optimal. Formal gesehen stellt uns das Entfernen einer NBV also vor keine Probleme. Nun wollen wir aber noch eine Intuition daf¨ur entwickeln, was dann mit dem LR passiert. Eine Variable zu entfernen, entspricht dem Fixieren des Variablenwerts auf Null. Da jeder Variablenwert den Abstand der L¨osung zu einer NB (bzw. dem entsprechenden (n − 1)-dimensionalen Unterraum) darstellt, bedeutet die Fixierung des Wertes auf Null die Beschr¨ankung auf L¨osungen, die die NB mit Gleichheit erf¨ullen (bzw. die in dem Unterraum liegen). D. h., der LR hat nun eine Dimension weniger. Dann k¨onnen wir auch auf eine Strukturvariable verzichten, um den verbleibenden LR zu beschreiben. Dies ist offensichtlich, wenn die entfallene Variable eine Strukturvariable ist. Aber auch wenn es sich um eine Schlupfvariable handelt, k¨onnen wir auf eine Strukturvariable verzichten. Wir k¨onnen hierf¨ur die NB, zu der die entfallene Schlupfvariable geh¨ort, als Gleichung auffassen und nach einer der Strukturvariablen aufl¨osen. Die Strukturvariable kann dann im ganzen LP substituiert werden. Wir wollen dies wiederum an Modell 3.9 und der entsprechenden grafischen Repr¨asentation in Abb. 3.12 veranschaulichen. x2 60 50 (3.197)

40

(3.195) 30 (3.196)

20 10

10

20

30

40

50

60

x1

Abb. 3.12 Grafische Repr¨asentation von Modell 3.9 bei Entfallen einzelner Variablen

Wenn x1 entf¨allt (oder auf Null fixiert wird), betrachten wir ausschließlich L¨osungen auf der x2 -Achse. Wir ben¨otigen dann Variable x1 zum Beschreiben ei-

3.5 Sensitivit¨atsanalyse

159

ner relevanten L¨osung nicht mehr und die Dom¨anendefinition x1 ≥ 0 kann ebenfalls entfallen. Die NB (3.195), (3.196) und (3.197) repr¨asentieren dann lediglich Einschr¨ankungen der Variablen x2 auf einen Wert von nicht mehr als 30, nicht mehr als 36 und nicht mehr als 54. Der entsprechende zul¨assige LR ist in Abb. 3.12 als schwarzer Balken auf der x2 -Achse dargestellt. Wenn x4 (also die Schlupfvariable zu NB (3.196)) entf¨allt (oder auf Null fixiert wird), betrachten wir ausschließlich L¨osungen, die auf dieser NB liegen, d. h. die Gleichung 3 · x1 + 5 · x2 = 180 erf¨ullen. NB (3.195) und (3.197) schr¨anken diesen Bereich weiter ein, sodass der Bereich, der in Abb. 3.12 als schwarzer Balken auf NB (3.196) dargestellt ist, als zul¨assiger L¨osungsbereich verbleibt. Wir k¨onnen die obige Gleichung nach x1 aufl¨osen und erhalten x1 = 60 − 5/3 · x2 . Durch Substitution von x1 in Modell 3.9 erhalten wir Modell 3.25. Modell 3.25 (Substitution von x1 ).

u.B.d.N.

max 4 · (60 − 5/3 · x2 ) + 5 · x2 = 240 − 5/3 · x2

(3.199)

0 · (60 − 5/3 · x2 ) + 1 · x2 = 1 · x2 ≤ 30 3 · (60 − 5/3 · x2 ) + 5 · x2 = 180 ≤ 180

(3.200)

3 · (60 − 5/3 · x2 ) + 2 · x2 = 180 − 3 · x2 ≤ 108

(3.202)

(60 − 5/3 · x2 ), x2 ≥ 0

(3.201) (3.203)

Wir erkennen, dass die Dom¨anendefinition 0 ≤ x2 ≤ 36 impliziert, was genau den m¨oglichen Werten von x2 auf NB (3.196) im Bereich mit x1 ≥ 0 und x2 ≥ 0 entspricht. Wir sehen weiterhin, dass NB (3.201) entfallen kann und NB (3.200) und (3.202) die Werte von x2 weiter auf [24; 30] einschr¨anken. Wir erkennen in Abb. 3.12, dass dies genau der Wertebereich von x2 in L¨osungen, die zwischen den Schnittpunkten von NB (3.196) mit NB (3.195) und (3.197) liegen, ist. Das verbleibende Modell hat also als LR die Menge der L¨osungen, die die urspr¨ungliche NB (3.196) mit Gleichheit erf¨ullen, und als zul¨assige L¨osungen diejenigen, die zwischen den beiden Schnittpunkten von NB (3.196) mit NB (3.195) und (3.197) liegen. Dieser Abschnitt ist in Abb. 3.12 ebenfalls schwarz hervorgehoben. Die Zielfunktion (3.199) bewertet diese L¨osungen nur anhand des Wertes von x2 ; Variable x1 spielt auch hier keine Rolle mehr. Salopp formuliert: Entfallen einer Variablen Das Entfallen einer Variablen entspricht der Reduktion des LRs auf die Menge der L¨osungen, die die NB zu der Variablen mit Gleichheit erf¨ullen. Da alle NB unver¨andert bleiben, entspricht die Menge der zul¨assigen L¨osungen nach Entfallen der Variablen der Menge von uspr¨unglich zul¨assigen L¨osungen, die die NB mit Gleichheit erf¨ullten.

160

3 Lineare Optimierung

¨ 3.5.3.2 Andern einer Spalte Wenn Eintr¨age des Vektors A j einer BV x j ge¨andert werden, hat dies wie in Abschnitt 3.5.3.1 Auswirkungen auf das ganze Simplextableau, weswegen keine knappe Analyse der Optimalit¨at oder Zul¨assigkeit der vorliegenden Basis durchgef¨uhrt werden kann. Sollte es sich bei x j allerdings um eine NBV handeln, dann ist eine solche Analyse m¨oglich. Wir k¨onnen am Simplextableau erkennen, dass die Eintr¨age von A j lediglich Einfluss auf B−1 A j und −c j + cB B−1 A j haben. An die Eintr¨age von B−1 A j sind keinerlei Bedingungen f¨ur die Zul¨assigkeit oder Optimalit¨at einer Basis gekn¨upft, aber von −c j + cB B−1 A j h¨angt ab, ob die vorliegende Basis optimal ist. Eine Ver¨anderung von A j kann hingegen nicht zur Unzul¨assigkeit der vorliegenden Basis f¨uhren. Bei welcher Ver¨anderung eines einzelnen Eintrags Ai, j von A j um δ die reduzierten Kosten −c j + cB B−1 A j weiterhin nicht-negativ bleiben, l¨asst sich anhand der Ungleichung −c j + cB B−1 Aj ≥ 0 ermitteln, wobei Ai , j = Ai , j f¨ur alle i = i und Ai, j = Ai, j + δ . ¨ Salopp formuliert: Andern einer Spalte Wir betrachten die ver¨anderten reduzierten Kosten −c j + cB B−1 Aj im aufgel¨osten Tableau. Wenn die reduzierten Kosten nicht-negativ sind, ist die vorliegende Basis optimal. Daraus ergeben sich Beschr¨ankungen des Wertes von δ . Wiederum wollen wir an Modell 3.9 und dem optimalen Simplextableau die Analyse veranschaulichen. Wenn wir ermitteln wollen, in welchem Rahmen sich der zweite Eintrag A2,4 von A4 ver¨andern kann, k¨onnen wir analysieren, unter welchen Umst¨anden die folgende Bedingung ⎛ ⎞⎛ ⎞ 0 1/3 −1/3 0 −c4 + cB B−1 A4 = −0 + (5, 4, 0) ⎝0 −2/9 5/9 ⎠ ⎝1 + δ ⎠ 1 −1/3 1/3 0 ⎛ ⎞ 1/3 + δ /3 = (5, 4, 0) ⎝−2/9 − 2/9δ ⎠ −1/3 − δ /3 = 5/3 + 5δ /3 − 8/9 − 8δ /9 = 7/9 + 7δ /9 ≥ 0 erf¨ullt ist. Dies ist der Fall, wenn δ ≥ −1 gilt, was wir uns auch anschaulich erkl¨aren k¨onnen. Die Schlupfvariable x4 kann nichts zu dem Zielfunktionswert beitragen, da c4 = 0. Wir k¨onnten also nur dann auf die Existenz einer besseren Basis hoffen, wenn x4 etwas zu den Kapazit¨aten beitr¨agt. Dies ist genau dann der Fall, wenn der zweite Eintrag von A4 negativ wird, also wenn δ < −1.

3.6 Spaltengenerierung

161

3.5.3.3 Erg¨anzen einer Variablen Durch das Erg¨anzen einer Variablen x j kann die vorliegende Basis nicht unzul¨assig werden (was unmittelbar bedeutet, dass die neue Variable bei Beibehaltung der Basis eine NBV ist). Wiederum ist also nur zu pr¨ufen, ob die vorliegende Basis optimal bleibt. Dies kann auch hier anhand der Bedingung −c j + cB B−1 A j ≥ 0 an die reduzierten Kosten der neue Variablen x j erfolgen. Ist die Bedingung erf¨ullt, so bleibt die vorliegende Basis optimal. Salopp formuliert: Erg¨anzen einer Variablen Wir betrachten die reduzierten Kosten −c j + cB B−1 A j der neuen Variablen im aufgel¨osten Tableau. Wenn die reduzierten Kosten nicht-negativ sind, ist die vorliegende Basis auch nach Einf¨ugen der Variablen optimal. Auch hier wollen wir den Vorgang anhand von Modell 3.9 und der entsprechenden grafischen Repr¨asentation in Abb. 3.12 auf S. 158 veranschaulichen. Wenn eine Variable, aber keine NB hinzukommt, dann ist diese Variable eine Strukturvariable. Die Anzahl der Dimensionen erh¨oht sich also um Eins, d. h., die Anzahl der NBV, die eine L¨osung als den Schnittpunkt von NB eindeutig beschreiben, erh¨oht sich ebenfalls um Eins. Dementsprechend bleibt die Anzahl von BV unver¨andert. F¨ur Abb. 3.12 k¨onnen wir uns nun vorstellen, dass eine dritte Achse im rechten Winkel zu den ersten beiden verl¨auft und die Abbildung nur den 2-dimensionalen Ausschnitt des LRs beschreibt, f¨ur den der Wert der neuen Variablen Null ist. Wir werden in Abschnitt 3.6 noch vertiefend auf die Analyse von zu erg¨anzenden Variablen eingehen.

3.6 Spaltengenerierung Obwohl der Simplex-Algorithmus ein recht effizientes Verfahren zur L¨osung von LPs ist und es etliche weitere L¨osungsverfahren gibt, ist in der Regel davon auszugehen, dass mit steigender Gr¨oße des LPs, also mit zunehmender Anzahl der Variablen oder NB, der L¨osungsaufwand zunimmt. Das Prinzip der Spaltengenerierung begegnet dem Problem des steigenden Aufwands bei zunehmender Anzahl von Variablen. Die Idee ist hierbei, zun¨achst nur eine relativ kleine Menge von Variablen zu betrachten und die u¨ brigen zu ignorieren. Das Modell, in dem nur diese kleine Menge von Variablen betrachtet wird, wird in der Literatur als das Restricted Master Problem bezeichnet. F¨ur diese eingeschr¨ankte Menge von Variablen wird dann eine optimale L¨osung bestimmt. Jede der zun¨achst ignorierten Variablen wird wie eine neue Variable gehandhabt, was sie aus Perspektive des gel¨osten Restricted Master Problems ja auch ist. Wie in Ab-

162

3 Lineare Optimierung

schnitt 3.5.3.3 wird dann ermittelt, ob die vorliegende Basis bei Erg¨anzung einer dieser neuen Variablen optimal bleibt. • Sollte es keine Variable geben, bei deren Erg¨anzung im LP die vorliegende Basis suboptimal ist, dann ist die vorliegende Basis auch f¨ur das vollst¨andige LP (mit allen bislang ignorierten Variablen) optimal. Dies ist auch intuitiv klar, denn wir k¨onnen wie in Abschnitt 3.5.3.3 gezeigt f¨ur beliebige Variablen aufzeigen, welche Werte wir in der jeweiligen Spalte bei der vorliegenden Basis vorfinden w¨urden, wenn die Variable im Simplextableau enthalten w¨are. D. h., das oben beschriebene Abbruchkriterium entspricht genau dem des SimplexAlgorithmus 3.4 oder 3.5. • Wenn es mindestens eine bisher ignorierte Variable gibt, bei deren Einf¨uhrung die vorliegende Basis nicht optimal bleibt, dann wird in der Regel die Variable x j mit den kleinsten reduzierten Kosten in das LP aufgenommen. Die Aufnahme erfolgt h¨aufig bei Beibehaltung der vorliegenden Basis mit der ensprechenden Spalte B−1 A j und dem Zielfunktionskoeffizienten −c j +cB B−1 A j . Alternativ kann sie aber auch im Ausgangstableau mit der Spalte A j und dem Zielfunktionskoeffizienten −c j vorgenommen werden. Nach Aufnahme der ausgew¨ahlten Variablen ergibt sich ein Restricted Master Problem mit einer weiteren Variablen und wir wiederholen das gesamte Vorgehen bis keine profitable Variable mehr in dem jeweils optimalen Simplextableau erg¨anzt werden kann. Salopp formuliert: Spaltengenerierung Wir ignorieren die meisten Variablen und l¨osen das LP mit den verbleibenden. Dann pr¨ufen wir, ob es ignorierte Variablen gibt, die – wenn wir sie in das LP aufnehmen – zu einer besseren L¨osung f¨uhren k¨onnen. Wenn dies so ist, nehmen wir die Variablen auf. Wenn dies nicht der Fall ist, dann ist die vorliegende L¨osung optimal. Das oben beschriebene Prinzip ist von der genauen Vorgehensweise unabh¨angig, man kann aber festhalten, dass die naive Vorgehensweise, bei der man in jeder Iteration sukzessiv alle bislang ignorierten Variablen bewertet, nicht sinnvoll ist. Der Aufwand w¨are genauso groß, als w¨aren die Variablen im Simplextableau ber¨ucksichtigt, und Ziel der Spaltengenerierung ist ja gerade, den Aufwand zu reduzieren. Ob diese Aufwandsreduktion realisiert werden kann, h¨angt von der Modellstruktur ab. Wenn wir uns von dem naiven Ansatz l¨osen wollen, sollten wir uns fragen, was wir mit der Bewertung aller bislang ignorierten Variablen bezwecken. Wir wollen dadurch pr¨ufen, ob es eine profitable, bislang ignorierte, Variable gibt. Dies k¨onnen wir auch herausfinden, indem wir die Variable mit den geringsten reduzierten Kosten ermitteln. Wenn diese negative reduzierte Kosten hat, dann haben wir eine profitable Variable gefunden. Diese wurde bislang ignoriert, denn die im Simplextableau enthaltenen Variablen haben nicht-negative reduzierte Kosten, da wir ja in jedem Schritt die optimale L¨osung zum aktuellen Restricted Master Problem bestimmen.

3.6 Spaltengenerierung

163

Wenn die ermittelte Variable nicht-negative reduzierte Kosten hat, dann gibt es keine profitable Variable. Das Problem, eine Variable mit den geringsten reduzierten Kosten zu ermitteln, wird gew¨ohnlich als das Pricing Problem bezeichnet. Die Struktur des Pricing Problems h¨angt nat¨urlich von dem u¨ bergeordneten vollst¨andigen Modell (mit allen Variablen) ab, denn dieses vollst¨andige Modell gibt vor, welche Variablen es gibt. Die Menge dieser Variablen entspricht dem LR des Pricing Problems. Der oben angesprochene naive Ansatz betrachtet dabei jedes Element dieses LRs separat und bewertet es. Einen Vorteil durch Aufwandsreduktion kann das Prinzip der Spaltengenerierung hingegen nur erzielen, wenn es gelingt, die entsprechende Variable effizienter zu finden. Dies h¨angt maßgeblich von dem konkreten Pricing Problem und somit von der Formulierung des u¨ bergeordneten vollst¨andigen Modells ab. Generisch l¨asst sich ein Spaltengenerierungsansatz durch Algorithmus 3.6 beschreiben. Algorithmus 3.6 (Spaltengenerierung). Eingabe: Instanz eines zul¨assigen LPs Ausgabe: optimale L¨osung oder Information, dass keine existiert 1. Bestimme eine initiale Menge von Variablen im Restricted Master Problem, sodass das Restricted Master Problem eine zul¨assige L¨osung hat. 2. Falls dies nicht m¨oglich ist, ist das LP unzul¨assig. STOP. 3. L¨ose das Restricted Master Problem. 4. Wenn das Restricted Master Problem unbeschr¨ankt ist, ist das LP unbeschr¨ankt. STOP. 5. Ansonsten l¨ose das Pricing Problem. 6. Wenn die reduzierten Kosten der optimalen L¨osung des Pricing Problems nichtnegativ sind, dann ist die vorliegende L¨osung des Restricted Master Problems optimal. STOP. 7. Ansonsten erg¨anze die L¨osung des Pricing Problems im Restricted Master Problem. Gehe zu 2. Hier gehen wir davon aus, dass wir in der Lage sind, eine initiale Menge von Variablen f¨ur das Restricted Master Problem so zu bestimmen, dass das Restricted Master Problem eine zul¨assige L¨osung hat, sofern das urspr¨ungliche LP eine zul¨assige L¨osung hat. Dies k¨onnen wir tats¨achlich h¨aufig durch problemspezifisches Wissen erreichen. Wie wir es ansonsten mit einem formalen Trick sicherstellen k¨onnen, wollen wir uns sp¨ater u¨ berlegen. Algorithmus 3.6 zeigt die iterative Vorgehensweise auf. Wenn das initiale Restricted Master Problem zul¨assig ist, l¨osen wir abwechselnd das Restricted Master Problem und das Pricing Problem, bis eines der beiden Abbruchkriterien erf¨ullt ist. Wenn das vollst¨andige LP unbeschr¨ankt ist, dann wird auch das Restricted Master Problem fr¨uher oder sp¨ater unbeschr¨ankt sein. Dies wird sp¨atestens nach Erg¨anzen aller initial fehlenden Variablen der Fall sein, denn dann entspricht das Restricted Master Problem dem vollst¨andigen LP. Wenn das vollst¨andige LP nicht unbeschr¨ankt, aber zul¨assig ist, dann wird fr¨uher oder sp¨ater das andere Abbruchkriterium erf¨ullt. Wir f¨ugen in jeder Iteration eine Variable in das Restricted Master

164

3 Lineare Optimierung

Problem ein, solange die vorliegende Basis nicht optimal f¨ur das vollst¨andige LP ist. Da wir in jedem Schritt die f¨ur das Restricted Master Problem optimale Basis erhalten, wird sp¨atestens nach Einf¨ugen aller Variablen diese Basis auch f¨ur das vollst¨andige LP optimal sein. Zusammenfassung: Spaltengenerierung Ausgehend von einem Restricted Master Problem mit einer zul¨assigen L¨osung bestimmen wir in jeder Iteration die optimale L¨osung zu dem vorliegenden Restricted Master Problem. Mittels der optimalen Basis k¨onnen wir ermitteln, ob es Variablen gibt, die bisher nicht im Restricted Master Problem sind, aber negative reduzierten Kosten h¨atten, wenn sie enthalten w¨aren. Wenn es solche Variablen gibt, nehmen wir die Variable mit den kleinsten reduzierten Kosten in das Restricted Master Problem auf und starten die n¨achste Iteration. Wenn es keine solche Variable gibt, haben wir die optimale L¨osung des LPs gefunden. Sollte das Restricted Master Problem in einer Iteration unbeschr¨ankt sein, ist das LP unbeschr¨ankt. Wir wollen nun ein klassisches Anwendungsbeispiel f¨ur Spaltengenerierung betrachten, siehe auch Gilmore und Gomory (1961), und an einer Instanz anwenden. Das 1-dimensionale Zuschnittproblem befasst sich mit dem Zuschnitt von 1-dimensionalen Produkten aus einheitlichen 1-dimensionalen Rohlingen (z. B. St¨aben unterschiedlicher L¨ange, die durch Zers¨agen von l¨angeren St¨aben einheitli” cher L¨ange“ erhalten werden). Wir betrachten also eine Menge von Produkten, die sich lediglich in ihren L¨angen unterscheiden. F¨ur jedes Produkt ist die entsprechende L¨ange und der nachgefragte Bedarf gegeben. Es soll entschieden werden, wie die Rohlinge zers¨agt werden sollen, sodass unter Verwendung einer minimalen Anzahl von Rohlingen die Bedarfe gedeckt werden. Problem 3.2 (1-dimensionales Zuschnittproblem). Eingabe: Anzahl n unterschiedlicher Produkte, L¨ange li und Nachfrage di jedes Produktes i = 1, . . . , n, L¨ange L der Rohlinge LR: Anzahl zers¨agter Rohlinge, Anzahl erhaltener Produkteinheiten f¨ur jedes Produkt aus jedem Rohling ZB: F¨ur jedes Produkt wird die nachgefragte Anzahl hergestellt und die Gesamtl¨ange der erhaltenen Produkteinheiten u¨ bersteigt f¨ur keinen Rohling L. ZS: Anzahl zers¨agter Rohlinge ist zu minimieren. Frage: Was ist eine optimale L¨osung? Wir verwenden eine wom¨oglich nicht ganz naheliegende Modellierung, in der Variablen ganze Schnittmuster repr¨asentieren. Wir betrachten also die Menge P von zul¨assigen Schnittmustern. Ein Muster p ∈ P l¨asst sich durch die Anzahl a p,i der erhaltenen Produkteinheiten jedes Produktes i spezifizieren, die wir aus Muster p erhalten, da wir diese Produkteinheiten dann beliebig anordnen k¨onnen. Ein Muster ist zul¨assig, wenn die Gesamtl¨ange der erhaltenen Produkteinheiten L nicht u¨ bersteigt.

3.6 Spaltengenerierung

165

Wir verwenden eine ganzzahlige, nicht-negative Variable x p f¨ur jedes Muster p ∈ P, die angibt, wie h¨aufig das Muster p verwendet wird. Modell 3.26 (1-dimensionales Zuschnittproblem (Problem 3.2)). min ∑ x p ≡ max − ∑ x p p∈P

u.B.d.N.

(3.204)

p∈P

∑ a p,i x p ≥ di

∀ i = 1, . . . , n

(3.205)

x p ∈ N0

∀p∈P

(3.206)

p∈P

Es gibt einen naheliegenden alternativen Modellierungsansatz, in dem wir u¨ ber die Anzahl der Einheiten jedes Produktes, die wir aus jedem Rohling erhalten, entscheiden und Variablen diese Entscheidung explizit repr¨asentieren. Dieser alternative Modellierungsansatz ist wom¨oglich sogar der naheliegendere unter den beiden. Der oben gew¨ahlte vermeidet allerdings Symmetrie durch Reformulierung (siehe Abschnitt 2.3.2.5) und hat auch einen weiteren Vorteil in Form sch¨arferer Lower Bounds, die wir allerdings erst in Kapitel 4 zu sch¨atzen lernen werden. Ein weiterer Vorteil liegt darin, dass wir relativ leicht eine Heuristik f¨ur Problem 3.2 (1dimensionales Zuschnittproblem) entwerfen k¨onnen, f¨ur die wir nur wenig mehr als den Simplex-Algorithmus ben¨otigen. Diese Heuristik sieht vor, dass wir statt Modell 3.26 das entsprechende Modell mit kontinuierlichen Variablen x p ≥ 0 f¨ur jedes Schnittmuster p ∈ P l¨osen. Wir k¨onnen hierf¨ur den Simplex-Algorithmus verwenden, erhalten aber wom¨oglich einen nicht-ganzzahligen Wert x p f¨ur jedes Schnittmuster p. Nun k¨onnen wir aber eine zul¨assige L¨osung f¨ur Modell 3.26 erzielen, indem wir x p Rohlinge nach Muster p schneiden. Strukturell lehnt sich diese L¨osung eng an die L¨osung, die mit dem Simplex-Algorithmus erzielt wurde, an und daher haben wir Hoffnung, dass die L¨osung gut ist. Wir haben schon gesagt, dass wir die L¨osung von Modell 3.26 mit x p ≥ 0 mit dem Simplex-Algorithmus erzielen k¨onnen. Allerdings haben wir eine potentiell sehr große Menge P von zul¨assigen Mustern, was den Aufwand f¨ur die Ausf¨uhrung des Simplex-Algorithmus ebenfalls potentiell sehr groß macht. Daher scheint hier die Anwendung der Spaltengenerierung attraktiv, da wir uns initial auf eine sehr kleine Menge P von Schnittmustern zur¨uckziehen k¨onnen. Unser Problemwissen hilft uns dabei, P zu w¨ahlen. Eine M¨oglichkeit ist, f¨ur jedes Produkt i ein Schnittmuster pi zu bestimmen, in dem a pi ,i = L/li  und a pi ,i = 0 f¨ur jedes i = i gilt, d. h. mit dem nur Produkt i gefertigt wird. Mit der Menge P = {pi | i = 1, . . . , n} k¨onnen wir dann jede Nachfragemenge jedes Produktes produzieren und erhalten somit ein zul¨assiges Restricted Master Problem. Neben dem Restricted Master Problem m¨ussen wir uns aber nat¨urlich auch Gedanken u¨ ber das Pricing Problem machen. Das Pricing Problem ist, ein zul¨assiges Schnittmuster mit minimalen reduzierten Kosten zu finden. Daf¨ur wollen wir zun¨achst die reduzierten Kosten eines beliebigen Schnittmusters darstellen. Allgemein k¨onnen wir die reduzierten Kosten einer Variablen als

166

3 Lineare Optimierung

−c j + cB B−1 A j darstellen. Wenn wir Modell 3.26 in Standardform bringen, dann hat der Zielfunktionskoeffizient jeder Variablen x p den Wert c p = −1. Der Spaltenvektor A j eines Schnittmusters entspricht dann dem Vektor (−a p,1 , . . . , −a p,n ). Wir repr¨asentieren die Dualvariable, die zu der Bedarfserf¨ullung von Produkt i in NB (3.205) korrespondiert, durch ωi = (cB B−1 )i . Dann ergeben sich die reduzierten Kosten eines Schnittmusters p als n

c¯ p = 1 − ∑ ωi · a p,i .

(3.207)

i=1

In dem Pricing Problem ist das Schnittmuster gesucht und somit sind a p,1 , . . . , a p,n die Variablen, die es so zu w¨ahlen gilt, dass das Schnittmuster zul¨assig ist und die reduzierten Kosten unter dieser Einschr¨ankung minimal sind. Somit ergibt sich das folgende Pricing Problem. Problem 3.3 (Pricing Problem zu Modell 3.26). Eingabe: Anzahl n unterschiedlicher Produkte und L¨ange li jedes Produktes i = 1, . . . , n, L¨ange L der Rohlinge LR: Schnittmuster, also die ganzzahlige Anzahl erhaltener Produkteinheiten f¨ur jedes Produkt ZB: Die Gesamtl¨ange der erhaltenen Produkteinheiten u¨ bersteigt L nicht. ZS: Die reduzierten Kosten des Schnittmusters gem¨aß (3.207) sind zu minimieren. Frage: Was ist eine optimale L¨osung? Dieses Problem entspricht einer Variante des Knapsack Problems, mit dem wir uns in Kapitel 4 noch eingehend besch¨aftigen werden. Wir werden dort insbesondere verschiedene Verfahren besprechen, mit denen wir dieses Problem systematisch l¨osen k¨onnen. Wir formulieren zun¨achst ein IP, das Problem 3.3 (Pricing Problem zu Modell 3.26) repr¨asentiert. Modell 3.27 (Modell zu Pricing Problem 3.3). n

n

i=1

i=1

min 1 − ∑ ωi · ai ≡ max ∑ ωi · ai

(3.208)

n

u.B.d.N.

∑ li · ai ≤ L

(3.209)

i=1

ai ∈ N 0

(3.210)

Hier verwenden wir ai als Variable, die aussagt, wie oft Produkt i in dem Schnittmuster vorkommt. Die folgende Instanz von Problem 3.2 (1-dimensionales Zuschnittproblem), anhand derer wir das Prinzip der Spaltengenerierung erl¨autern wollen, ist so klein

3.6 Spaltengenerierung

167

gew¨ahlt, dass wir die anfallenden Instanzen des Pricing Problems durch scharfes ” Hinsehen“ l¨osen k¨onnen und nicht auf die oben angesprochenen Verfahren aus Kapitel 4 zur¨uckgreifen m¨ussen. Beispiel 3.2 (Instanz zu Problem 3.2). • • • •

L = 10 n=3 b1 = 25, b2 = 20, b3 = 18 l1 = 4, l2 = 5, l3 = 6

Wir w¨ahlen wie besprochen die initiale Menge von im Restricted Master Problem ber¨ucksichtigten Schnittmustern als P und erhalten das folgende Ausgangstableau (durch Verwendung der Schlupfvariablen s1 , . . . , s3 korrespondierend zu den NB f¨ur Bedarfserf¨ullung der Produkte 1, . . . , 3 und Verwendung der Hilfsvariablen y1 , . . . , y3 wie in Abschnitt 3.3.3 erl¨autert). Wir unterscheiden im Folgenden (anders als zuvor) die Benennung von Struktur- und Schlupfvariablen auch im Simplextableau, da sich die Anzahl der Struktuvariablen ja laufend a¨ ndert (und sich daher auch die Nummerierung der Schlupfvariablen laufend a¨ ndern w¨urde). F 0 0 0 1

x1 x2 x3 2 0 0 0 2 0 0 0 1 1 1 1 −2M −2M −M

s1 -1 0 0 0 +M

s2 0 -1 0 0 +M

s3 0 0 -1 0 +M

y1 1 0 0 0

y2 0 1 0 0

y3 0 0 1 0

RHS 25 20 18 0 −63M

Wenn wir die optimale L¨osung mittels des Simplex-Algorithmus 3.4 ermitteln, erhalten wir folgendes Tableau. F 0 0 0 1

x1 1 0 0 0

x2 0 1 0 0

x3 0 0 1 0

s1 -0,5 0 0 0,5

s2 0 -0,5 0 0,5

s3 0 0 -1 1

RHS 12,5 10 18 -40,5

Die optimale L¨osung des Restricted Master Problems sieht also vor, insgesamt 40,5 Rohlinge zu zerschneiden, und die optimale primale L¨osung mit x1 = 12, 5, x2 = 10 und x3 = 18 korrespondiert zu der dualen L¨osung mit ω1 = 0, 5, ω2 = 0, 5 und ω3 = 1. Es ergibt sich also die folgende Instanz des Pricing Problems. Modell 3.28 (Erste Instanz des Pricing Problems 3.3).

u.B.d.N.

max 0.5 · a1 + 0.5 · a2 + 1 · a3

(3.211)

4 · a1 + 5 · a2 + 6 · a3 ≤ 10

(3.212)

ai ∈ N

0

(3.213)

168

3 Lineare Optimierung

Durch scharfes Hinsehen erkennen wir, dass die L¨osung mit a1 = a3 = 1 und a2 = 0 optimal ist. Die reduzierten Kosten dieses Schnittmusters p sind c¯ p = 1 − 0.5 − 0 − 1 = −0.5 und somit bleibt die vorliegende Basis nach Hinzuf¨ugen dieses Schnittmuster nicht optimal. Wir k¨onnen die Matrix B−1 mit ein wenig Vorsicht aus dem Tableau ablesen, m¨ussen uns hier nur bewusst sein, dass die Spalten der Schlupfvariablen im Ausgangstableau entgegen der u¨ blichen Situation nicht E sondern −E bilden, da die Koeffizienten der Schlupfvariablen in den NB −1 statt 1 sind. Dementsprechend finden wir in diesen Spalten des aufgel¨osten Tableaus nicht B−1 , sondern −B−1 . Nichtsdestotrotz k¨onnen wir so leicht den Spaltenvektor des neuen Schnittmusters im nach der aktuellen Basis aufgel¨osten Tableau ermitteln: ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ 0, 5 0 0 1 0, 5 B−1 A p = ⎝ 0 0, 5 0⎠ · ⎝0⎠ = ⎝ 0 ⎠ . 0 0 1 1 1 Wir f¨ugen die entsprechende Spalte dem Simplextableau des Restricted Master Problems als x4 hinzu, m¨ussen nun nicht auf die Hilfsvariablen y1 , . . . , y3 zur¨uckgreifen, da wir ja eine zul¨assige Basis kennen, und erhalten das folgende Tableau. F 0 0 0 1

x1 1 0 0 0

x2 0 1 0 0

x3 0 0 1 0

x4 0,5 0 1 -0,5

s1 s2 -0,5 0 0 -0,5 0 0 0,5 0,5

s3 0 0 -1 1

RHS 12,5 10 18 -40,5

Nun bestimmen wir die optimale L¨osung des neuen Restricted Master Problems. F 0 0 0 1

x1 1 0 0 0

x2 0 1 0 0

x3 -0,5 0 1 0,5

x4 0 0 1 0

s1 s2 -0,5 0 0 -0,5 0 0 0,5 0,5

s3 RHS 0,5 3,5 0 10 -1 18 0,5 -31,5

Die optimale L¨osung des Restricted Master Problems sieht also vor, insgesamt 31,5 Rohlinge zu zerschneiden, und die optimale primale L¨osung mit x1 = 3, 5, x2 = 10, x3 = 0 und x4 = 18 korrespondiert zu der dualen L¨osung mit ω1 = ω2 = ω3 = 0, 5. Es ergibt sich also die folgende Instanz des Pricing Problems. Modell 3.29 (Zweite Instanz des Pricing Problems 3.3).

u.B.d.N.

max 0.5 · a1 + 0.5 · a2 + 0, 5 · a3

(3.214)

4 · a1 + 5 · a2 + 6 · a3 ≤ 10

(3.215)

ai ∈ N

0

(3.216)

Durch scharfes Hinsehen erkennen wir, dass es mehrere optimale L¨osungen mit Zielfunktionswert 1 gibt. Die reduzierten Kosten jedes der optimalen Schnittmuster

3.6 Spaltengenerierung

169

p sind also c¯ p = 1 − 1 = 0 und somit bleibt die vorliegende Basis nach Hinzuf¨ugen jedes Schnittmusters optimal. Wir haben also eine optimale L¨osung des Ausgangsmodells (in dem alle zul¨assigen Schnittmuster verf¨ugbar sind) gefunden. Im Kontext der oben vorgeschlagenen Heuristik zum L¨osen von Problem 3.2 (1dimensionales Zuschnittproblem) w¨urden wir hier durch Aufrunden die L¨osung mit x1 = 4, x2 = 10, x3 = 0 und x4 = 18 ermitteln. Wir k¨onnen uns u¨ berlegen, dass diese L¨osung sogar optimal ist. Unter Ignorieren der Ganzzahligkeitsbedingung erhalten wir eine optimale L¨osung, in der 31,5 Rohlinge zerschnitten werden. Das bedeutet, dass wir in einer optimalen L¨osung unter Einhaltung der Ganzzahligkeitsbedingung nicht weniger als 31,5 und eine ganzzahlige Anzahl von Rohlingen zerschneiden. Wir ben¨otigen also mindestens 32 Rohlinge wie in unserer heuristischen L¨osung. Wir haben in unserem Beispiel gesehen, dass es leicht sein kann, die initiale Menge von Variablen f¨ur das Restricted Master Problem so zu bestimmen, dass das Restricted Master Problem zul¨assig ist. Es kann aber deutlich schwerer sein, insbesondere dann, wenn gar nicht klar ist, ob das vollst¨andige LP zul¨assig ist. Dann k¨onnen wir uns h¨aufig mit k¨unstlichen Variablen“ behelfen, die keine sinnvolle Interpreta” tion im Sinne unserer Problemstellung erlauben. Wir k¨onnen zum Beispiel eine Variable und die entsprechende Spalte im Simplextableau so definieren, dass der Koeffizient in jeder Zeile dem Wert auf der RHS entspricht. In unserem obigen Beispiel entspr¨ache diese Variable einem Schnittmuster, das erlaubt, den gesamten Bedarf aller Produkte aus einem Rohling zu s¨agen. Dies wird in der Regel kein zul¨assiges Schnittmuster sein; die Variable erm¨oglicht uns aber, eine formal zul¨assige L¨osung f¨ur das Restricted Master Problem zu finden. Wir m¨ussen dann allerdings sicherstellen, dass diese k¨unstliche Variable im Laufe des Verfahrens aus der optimalen Basis eliminiert wird. Dies erreichen wir, indem wir diese Variable mit sehr hohen Kosten versehen, sodass keine L¨osung, in der diese Variable einen positiven Wert hat, besser sein kann als eine beliebige L¨osung, in der diese Variable einen Wert von Null hat. Wenn das u¨ bergeordnete vollst¨andige Modell zul¨assig ist, wird sp¨atestens in der optimalen L¨osung die k¨unstliche Variable einen Wert von Null haben. Dieses Vorgehen weist starke Analogien zu der M-Methode in Abschnitt 3.3.3 auf. Wir vollziehen die Vorgehensweise einmal anhand unseres obigen Beispiels nach, obwohl wir, wie besprochen, hier geschickter vorgehen k¨onnten. F 0 0 0 1

Y1 25 20 18 0 −62M

s1 -1 0 0 0 +M

s2 0 -1 0 0 +M

s3 0 0 -1 0 +M

y1 1 0 0 0

y2 0 1 0 0

y3 0 0 1 0

RHS 25 20 18 0 −63M

Der Koeffizient −62M = M −(25+20+18)M f¨ur Y1 ergibt sich durch die Kosten von M, die mit Y1 assoziiert sind, und dem Erzeugen der Einheitsvektoren f¨ur die Variablen y1 , y2 und y3 . Wir erhalten anschließend das folgende optimale Tableau.

170

3 Lineare Optimierung

F 0 0 0 1

Y1 1 0 0 0

s1 0 1 0 0

s2 0 0 1 0

s3 -1/18 -25/18 -20/18 0 +M/18

y1 0 -1 0 0 +M

y2 0 0 -1 0 +M

y3 1/18 25/18 20/18 0 +17M/18

RHS 1 0 0 0 −M

Die optimale L¨osung des Restricted Master Problems ist schwer zu interpretieren, f¨ur die entsprechende duale L¨osung gilt aber ω1 = ω2 = 0 und ω3 = M/18. Es ergibt sich also die folgende Instanz des Pricing Problems. Modell 3.30 (Dritte Instanz des Pricing Problems 3.3).

u.B.d.N.

max 0 · a1 + 0 · a2 + M/18 · a3

(3.217)

4 · a1 + 5 · a2 + 6 · a3 ≤ 10

(3.218)

ai ∈ N 0

(3.219)

Durch scharfes Hinsehen erkennen wir, dass die L¨osung mit a1 = a2 = 0 und a3 = 1 optimal ist. Die reduzierten Kosten dieses Schnittmusters p sind c¯ p = ugen 1 − 0 − 0 − M/18 = 18−M 18 und somit bleibt die vorliegende Basis nach Hinzuf¨ dieses Schnittmusters nicht optimal. Wir ermitteln den Spaltenvektor des neuen Schnittmusters im nach der aktuellen Basis aufgel¨osten Tableau: ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ 0 0 1/18 0 1/18 B−1 A p = ⎝−1 0 25/18⎠ · ⎝0⎠ = ⎝25/18⎠ . 0 −1 20/18 1 20/18 Wir f¨ugen die entsprechende Spalte dem Simplextableau des Restricted Master Problems als x3 hinzu (da sie der Variablen x3 des obigen Ansatzes mit geschickter bestimmten initialen Spalten entspricht) und k¨onnen nun die Hilfsvariablen y1 , . . . , y3 wegfallen lassen. F 0 0 0 1

Y1 1 0 0 0

x3 1/18 25/18 20/18 1 −M/18

s1 0 1 0 0

s2 0 0 1 0

s3 -1/18 -25/18 -20/18 0 +M/18

RHS 1 0 0 0 −M

s2 0 0 1 0

s3 0 -1 0 1

RHS 1 0 0 0 −M

Wir erhalten das folgende optimale Tableau. F 0 0 0 1

Y1 1 0 0 0

x3 0 1 0 0

s1 -1/25 18/25 -4/5 -18/25 +M/25

3.6 Spaltengenerierung

171

F¨ur die duale L¨osung gilt ω1 = M−18 25 , ω2 = 0 und ω3 = 1. Es ergibt sich also die folgende Instanz des Pricing Problems. Modell 3.31 (Vierte Instanz des Pricing Problems 3.3). max

M − 18 · a1 + 0 · a2 + 1 · a3 25

(3.220)

4 · a1 + 5 · a2 + 6 · a3 ≤ 10

u.B.d.N.

ai ∈ N

(3.221)

0

(3.222)

Durch scharfes Hinsehen erkennen wir, dass die L¨osung mit a1 = 2 und a2 = a3 = 0 optimal ist. Die reduzierten Kosten dieses Schnittmusters p sind c¯ p = 61−2·M und somit bleibt die vorliegende Basis nach Hin1 − 2 · M−18 25 − 0 − 0 = 25 zuf¨ugen dieses Schnittmusters nicht optimal. Wir ermitteln den Spaltenvektor des neuen Schnittmusters im nach der aktuellen Basis aufgel¨osten Tableau: ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ 1/25 0 0 2 2/25 B−1 A p = ⎝−18/25 0 1⎠ · ⎝0⎠ = ⎝−36/25⎠ . 4/5 −1 0 0 8/5 Wir f¨ugen die entsprechende Spalte dem Simplextableau des Restricted Master Problems als x1 hinzu (da sie der Variablen x1 des obigen Ansatzes mit geschickter bestimmten initialen Spalten entspricht). F 0 0 0 1

Y1 1 0 0 0

x3 0 1 0 0

x1 s1 2/25 -1/25 -36/25 18/25 8/5 -4/5 61/25 -18/25 −2M/25 +M/25

s2 0 0 1 0

s3 0 -1 0 1

RHS 1 0 0 0 −M

s2 -1/20 9/10 5/8 -61/40 +M/20

s3 0 -1 0 1

RHS 1 0 0 0 −M

Wir erhalten das folgende optimale Tableau. F 0 0 0 1

Y1 1 0 0 0

x3 0 1 0 0

x1 0 0 1 0

s1 0 0 -1/2 1/2

F¨ur die duale L¨osung gilt ω1 = 1/2, ω2 = die folgende Instanz des Pricing Problems.

2·M−61 40

und ω3 = 1. Es ergibt sich also

172

3 Lineare Optimierung

¨ Modell 3.32 (Funfte Instanz des Pricing Problems 3.3). max 1/2 · a1 +

2 · M − 61 · a2 + 1 · a 3 40

(3.223)

4 · a1 + 5 · a2 + 6 · a3 ≤ 10

u.B.d.N.

ai ∈ N

(3.224)

0

(3.225)

Durch scharfes Hinsehen erkennen wir, dass die L¨osung mit a1 = a3 = 0 und a2 = 2 optimal ist. Die reduzierten Kosten dieses Schnittmusters p sind c¯ p = − 0 = 81−2·M und somit bleibt die vorliegende Basis nach Hin1 − 0 − 2 · 2·M−61 40 20 zuf¨ugen dieses Schnittmusters nicht optimal. Wir ermitteln den Spaltenvektor des neuen Schnittmusters im nach der aktuellen Basis aufgel¨osten Tableau: ⎛ ⎞ ⎛ ⎞ ⎛ ⎞ 0 1/20 0 0 1/10 B−1 A p = ⎝ 0 −9/10 1⎠ · ⎝2⎠ = ⎝−9/5⎠ . 1/2 −5/8 0 0 −5/4 Wir f¨ugen die entsprechende Spalte dem Simplextableau des Restricted Master Problems als x2 hinzu (da sie der Variablen x2 des obigen Ansatzes mit geschickter bestimmten initialen Spalten entspricht). F 0 0 0 1

Y1 1 0 0 0

x3 0 1 0 0

x1 0 0 1 0

x2 1/10 -9/5 -5/4 81/20 −M/10

s1 0 0 -1/2 1/2

s2 -1/20 9/10 5/8 -61/40 +M/20

s3 0 -1 0 1

RHS 1 0 0 0 −M

s1 0 0 -1/2 1/2

s2 -1/2 0 0 1/2

s3 0 -1 0 1

RHS 10 18 25/2 −81/2

Wir erhalten das folgende optimale Tableau. F 0 0 0 1

Y1 10 18 25/2 -81/2 +M

x3 0 1 0 0

x1 0 0 1 0

x2 1 0 0 0

Nun k¨onnen wir die Variable Y1 ebenfalls wegfallen lassen und erhalten dasselbe Simplextableau wie nach Optimierung mittels der geschickter gew¨ahlten initialen Spalten. Dies ist in diesem Beispiel nicht verwunderlich, denn wir haben in drei Schritten systematisch die Spalten erzeugt, die wir weiter oben aus unserem Problemwissen abgeleitet haben. Wir k¨onnen an dieser Stelle nat¨urlich nur das generische Prinzip der Spaltengenerierung erl¨autern. Bei der Implementierung ist f¨ur eine m¨oglichst effiziente Ausgestaltung auf eine Vielzahl von Aspekten zu achten, die in der weiterf¨uhrenden

Literaturverzeichnis

173

Literatur, z. B. in Desaulniers u. a. (2005) und Desrosiers und L¨ubbecke (2005), diskutiert werden. Es gibt auch analoge Konzepte f¨ur das Generieren von NB. D. h., man beginnt mit einem eingeschr¨ankten Modell, in dem nur eine initiale Menge von NB ber¨ucksichtigt wird, und generiert nach und nach NB des u¨ bergeordneten vollst¨andigen Modells, die durch die vorliegende optimale L¨osung des eingeschr¨ankten Modells verletzt werden. Da wir inzwischen mit dem Konzept der Dualit¨at vertraut sind (siehe Abschnitt 3.4), f¨allt es uns nicht schwer, die Analogie zwischen beiden Vorgehensweisen zu erkennen. Statt verletzte NB im primalen Modell einzuf¨ugen, k¨onnten wir auch das duale Modell betrachten und dort Variablen mit negativen reduzierten Kosten erg¨anzen. Zu dem Pricing Problem des dualen LPs korrespondiert ein Problem zu dem primalen LP, das nach der am st¨arksten verletzten NB fragt. Weiterhin gibt es Konzepte, die das simultane Erg¨anzen von Variablen und NB vorsehen, siehe z. B. Muter u. a. (2013), die aber u¨ ber den Rahmen dieses Buches hinausgehen und deshalb hier nicht behandelt werden.

Literaturverzeichnis Avis D, Chv´atal V (1978) Notes on bland’s pivoting rule. In: Balinski ML, Hoffman AJ (eds) Polyhedral Combinatorics: Dedicated to the memory of D.R. Fulkerson, Springer, Berlin Heidelberg, pp 24–34 Bertsimas D, Tsitsiklis JN (1997) Introduction to Linear Optimization, 1. Aufl. Athena Scientific Bland RG (1977) New finite pivoting rules for the simplex method. Mathematics of Operations Research 2:103–107 Desaulniers G, Desrosiers J, Solomon MM (2005) Column generation. Springer US, Springer Desrosiers J, L¨ubbecke ME (2005) Selected topics in column generation. Operations Research 53:1007–1023 Domschke W, Drexl A, Klein R, Scholl A (2015) Einf¨uhrung in Operations Research, 9. Aufl. Springer, Berlin u. a. Gilmore PC, Gomory RE (1961) A linear programming approach to the cuttingstock problem. Operations Research 9:849–859 Hall JAJ, McKinnon KIM (2004) The simplest examples where the simplex method cycles and conditions where expand fails to prevent cycling. Mathematical Programming, Series B 100:133–150 Muter i, Birbil S¸i, B¨ulb¨ul K (2013) Simultaneous column-and-row generation for large-scale linear programs with column-dependent-rows. Mathematical Programming 142:47–82 Opitz O, Etschberger S, Burkart W, Klein R (2017) Mathematik – Lehrbuch f¨ur das Studium der Wirtschaftswissenschaften. Oldenbourg Terlaky T, Zhang S (1993) Pivot rules for linear programming: A survey on recent theoretical developments. Annals of Operations Research 46(1):203–233

Kapitel 4

Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Zusammenfassung In diesem Kapitel werden fundamentale Konzepte und Verfahren der kombinatorischen und (gemischt-)ganzzahligen Optimierung vorgestellt. Wir gehen auf drei generische Ans¨atze ein und betonen dabei die Verwendung von Konzepten der linearen Optimierung als eine wichtige konkrete Ausgestaltung. Abschließend gehen wir auf Kombinationen verschiedener Konzepte ein. Lernziele Kapitel 4 Sie kennen nach Lesen und Verinnerlichen dieses Kapitels, • wichtige generische Verfahren der kombinatorischen Optimierung und • g¨angige Ausgestaltungsm¨oglichkeiten der jeweiligen Komponenten dieser Verfahren. Sie k¨onnen nach Lesen und Verinnerlichen dieses Kapitels • die vorgestellten Verfahren individuell ausgestalten und • mit ihnen kombinatorische Optimierungsprobleme l¨osen. In diesem Kapitel wollen wir uns wiederum mit der L¨osung von bestimmten Klassen von Problemen besch¨aftigen. Welche Klassen dies genau sind, werden wir zun¨achst in Abschnitt 4.1 darlegen. Danach wird es in den Abschnitten 4.2 bis 4.4 eher um L¨osungprinzipien gehen als um konkrete Verfahren. Dies liegt daran, dass Probleme der betrachteten Klassen in der Regel schwerer zu l¨osen sind als die in Kapitel 3. Daher w¨aren Verfahren, die nicht problemspezifisch ausgestaltet sind, h¨aufig zu ineffizient. Außerdem ist die Struktur des LRs deutlich schwerer zu beschreiben und daher eine systematische Durchsuchung kaum durch ein allgemeing¨ultiges Verfahren zu erreichen. Nat¨urlich werden wir aber auch konkrete Ausgestaltungen f¨ur bestimmte Probleme besprechen. Neben den L¨osungsprinzipien selber gibt es zahlreiche g¨angige Hybride, d. h. Verfahren, bei denen mehrere dieser Prinzipien kombiniert eingesetzt werden. Von diesen werden zwei in Abschnitt 4.5 vorgestellt.

© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 D. Briskorn, Operations Research, https://doi.org/10.1007/978-3-662-60783-1_4

176

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Die Diskussion der Beispiele nimmt in den Abschnitten 4.2, 4.3 und 4.4 relativ viel Raum ein, da jeweils mehrere Beispiele nicht nur zur Erl¨auterung des vollst¨andigen L¨osungsprinzips, sondern auch zur Veranschaulichung der einzelnen Komponenten herangezogen werden. Leser, denen dies zu umfangreich ist, k¨onnen einfach ein oder mehrere Beispiele u¨ berspringen.

4.1 Kombinatorische Optimierungsprobleme, IPs und MIPs Ein kombinatorisches Optimierungsproblem ist ein Spezialfall eines Optimierungsproblems nach Definition 1.2 auf S. 6. Die Spezialisierung besteht in einer bestimmten Ausgestaltung der Eingabe und des LRs. Teil der Eingabe ist eine sogenannte Grundmenge von Elementen E aus denen sich eine L¨osung zusammensetzt. Folglich entspricht der LR der Potenzmenge von E, also der Menge aller Teilmengen von E. Definition 4.1 (Kombinatorisches Optimierungsproblem). Ein kombinatorisches Optimierungsproblem ist ein Optimierungsproblem, bei dem die Eingabe eine endliche Menge E von Elementen enth¨alt und der LR der Potenzmenge von E entspricht. Ein kombinatorisches Optimierungsproblem hat also auf jeden Fall einen endlichen LR, da die Potenzmenge einer endlichen Menge ebenfalls endlich ist. Sofern es mindestens eine zul¨assige L¨osung gibt, gibt es also auch eine optimale L¨osung, da ein kombinatorisches Optimierungsproblem nicht unbeschr¨ankt sein kann. Salopp formuliert: Kombinatorisches Optimierungsproblem Bei einem kombinatorischen Optimierungsproblem geht es darum, Elemente einer Grundmenge optimal zu einer L¨osung zu kombinieren. Ein Beispiel f¨ur ein kombinatorisches Optimierungsproblem, das wir auch bei der Erl¨auterung der Verfahren durchgehend betrachten werden, ist das KnapsackProblem, siehe auch Kellerer u. a. (2004). Hierbei betrachten wir eine Menge von Gegenst¨anden, die jeweils ein Gewicht und einen Wert haben. Weiterhin gibt es einen Container mit einer zul¨assigen Gesamtladung. Das Problem ist, Gegenst¨ande so auszuw¨ahlen, dass das Gesamtgewicht der ausgew¨ahlten Gegenst¨ande die zul¨assige Gesamtladung nicht u¨ berschreitet und ihr Gesamtwert unter dieser Einschr¨ankung maximal ist.

4.1 Kombinatorische Optimierungsprobleme, IPs und MIPs

177

Problem 4.1 (Knapsack). Eingabe: Anzahl n unterschiedlicher Gegenst¨ande, Gewicht wi und Wert vi jedes Gegenstandes i = 1, . . . , n, Kapazit¨at C eines Containers LR: Mengen von Gegenst¨anden ZB: Das Gesamtgewicht der Gegenst¨ande in der Menge u¨ bersteigt C nicht. ZS: Der Gesamtwert der Gegenst¨ande in der Menge ist zu maximieren. Frage: Was ist eine optimale L¨osung? Das Knapsack-Problem ist offensichtlich ein kombinatorisches Optimierungsproblem gem¨aß Definition 4.1. Die gegebene Menge von Gegenst¨anden entspricht der endlichen Menge E von Elementen. Der LR ist die Potenzmenge 2E . LPs sind nur in Ausnahmef¨allen geeignet, um kombinatorische Optimierungsprobleme abzubilden. Wie wir in Kapitel 3 gesehen haben, stellt ein LP einen leeren LR, einen einelementigen LR oder einen LR mit unendlich vielen Elementen dar. Unmittelbar kann ein LP daher nur dann ein kombinatorisches Optimierungsproblem repr¨asentieren, wenn dessen LR h¨ochstens ein Element enth¨alt. Mittelbar kann ein LP in speziellen F¨allen ein kombinatorisches Optimierungsproblem repr¨asentieren, da wir in Abschnitt 2.3.2.4 gesehen haben, dass zumindest optimale L¨osungen eines LPs ganzzahlige Variablenwerte haben k¨onnen und damit wom¨oglich nur eine endliche Menge von potentiell optimalen L¨osungen abgebildet wird. Allgemein werden wir jedoch auf IPs (siehe Erl¨auterung auf S. 44) zur¨uckgreifen m¨ussen, um kombinatorische Optimierungsprobleme zu repr¨asentieren. Das folgende Modell 4.1 repr¨asentiert Problem 4.1 (Knapsack) unter Verwendung der Bin¨arvariablen xi f¨ur jeden Gegenstand i, die den Wert 1 annimmt, wenn der Gegenstand in der gew¨ahlten Teilmenge enthalten ist, und ansonsten den Wert 0 annimmt. Modell 4.1 (Knapsack (Problem 4.1)). n

max ∑ vi · xi

(4.1)

i=1

n

u.B.d.N.

∑ wi · xi ≤ C

(4.2)

i=1

xi ∈ {0, 1}

∀ i = 1, . . . , n

(4.3)

Wir werden uns in diesem Kapitel auf Probleme fokussieren, die sich durch IPs darstellen lassen. Zu beachten ist, dass ein IP sehr wohl, im Gegensatz zu einem kombinatorischen Optimierungsproblem, unbeschr¨ankt sein kann. Einzelne Komponenten der in den Abschnitten 4.2 bis 4.5 vorgestellten Vorgehensweisen k¨onnen modellorientiert ausgestaltet werden, es gibt aber auch Ausgestaltungen, die sich an keinem IP orientieren. Wir werden beides anhand von Beispielen erl¨autern. Viele dieser Vorgehensweisen lassen sich auf den allgemeineren Fall von Problemen,

178

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

¨ die sich durch MIPs repr¨asentieren lassen, u¨ bertragen. Auch solche Ubertragungen werden wir ansprechen. Wir werden bei der Erl¨auterung der Verfahren in den Abschnitten 4.2 bis 4.5 durchgehend zwei kombinatorische Optimierungsprobleme betrachten. Das erste ist Problem 4.1 (Knapsack). Das zweite Problem ist das schon von S. 7 bekannte Problem 1.2 (Tourenplanung), dessen Definition wir hier noch einmal wiedergeben. Problem 1.2 (Tourenplanung). Eingabe: Menge von Orten (beginnend mit 1 durchnummeriert), Distanz zwischen jedem Paar von Orten LR: Sequenz von Orten ZB: Ort 1 ist erster und letzter Ort in der Sequenz, jeder andere Ort ist genau einmal enthalten ZS: Die gesamte Distanz zwischen in der Sequenz aufeinander folgenden Orten ist zu minimieren. Frage: Welche gesamte Distanz hat eine optimale L¨osung? Problem 1.2 (Tourenplanung) kann als kombinatorisches Optimierungsproblem gem¨aß Definition 4.1 aufgefasst werden, auch wenn dies aus der Formulierung seiner Definition nicht offensichtlich ist. Wir k¨onnen uns aber vorstellen, dass wir als endliche Menge E die Menge von Paaren von Orten, also die m¨oglichen Etappen einer Tour, betrachten. Als LR betrachten wir die Menge aller Mengen von Etappen. Eine L¨osung ist also eine Menge von Etappen und zul¨assig, wenn es von jedem Ort genau einen Weg zu jedem anderen Ort gibt, der nicht u¨ ber den ersten Ort f¨uhrt. Auch das schon von S. 36 bekannte IP, das Problem 1.2 (Tourenplanung) repr¨asentiert, wollen wir hier noch einmal auff¨uhren. Modell 2.3 (Tourenplanung (Problem 1.2)). n

n

min ∑ ∑ di, j · xi, j

(4.4)

i=1 j=1

n

u.B.d.N.

∑ xi, j = 1

∀ i = 1, . . . , n

(4.5)

∑ x j,i = 1

∀ i = 1, . . . , n

(4.6)

∑ ∑ xi, j ≥ 1

∀ S  {1, . . . , n}, S = 0/

(4.7)

∀ i, j = 1, . . . , n

(4.8)

j=1 n j=1 i∈S j∈S

xi, j ∈ {0, 1}

Weiterhin soll noch einmal betont werden, dass wir eine Instanz des Problems 1.2 (Tourenplanung) sehr anschaulich durch einen Graphen abbilden k¨onnen, in dem Knoten Orte und Kanten m¨ogliche Etappen abbilden.

4.2 Branch & Bound

179

Wir sehen schon an unseren Beispielen, dass wir Optimierungsprobleme mit zu maximierenden und zu minimierenden Zielfunktionen l¨osen wollen. Ob im Folgenden eine L¨osung mit h¨oherem oder niedrigerem Zielfunktionswert besser ist, h¨angt als vom Kontext des zu l¨osenden Problems ab.

4.2 Branch & Bound In diesem Abschnitt wird zun¨achst der prinzipielle Ablauf eines Branch & Bound (B&B) Verfahrens bzw. dessen Motivation in Abschnitt 4.2.1 vorgestellt. Dieses generische Prinzip muss durch Konkretisierung verschiedener Komponenten ausgestaltet werden. Diese Komponenten werden in Abschnitt 4.2.2 erl¨autert. Abschließend finden sich in Abschnitt 4.2.3 Beispiele f¨ur konkrete B&B-Verfahren.

4.2.1 Generelle Vorgehensweise Das B&B-Verfahren ist eine Vorgehensweise nach dem Prinzip Teile und Herr” sche“ (im Englischen Divide and Conquer“). Da die Ermittlung einer global op” timalen L¨osung im gesamten LR zu kompliziert sein mag, wird dieser in mehrere Teilr¨aume aufgeteilt ( Teile“ oder Branch“) und die jeweils lokal optimale L¨osung ” ” ermittelt ( Herrsche“). Solange die Teilr¨aume zusammen alle L¨osungen enthalten ” (sie d¨urfen sich u¨ berschneiden), ist die beste unter diesen lokal optimalen L¨osungen eine global optimale L¨osung. In der Regel wird zun¨achst f¨ur jeden der Teilr¨aume versucht, mit geringem Aufwand abzusch¨atzen, ob wir dort die global optimale L¨osung finden k¨onnen. Wenn wir erkennen k¨onnen, dass ein durch die beste bisher bekannte L¨osung gegebenes Anspruchsniveau ( Bound“) in einem Teilraum nicht ” erf¨ullt werden kann, dann k¨onnen wir uns den Aufwand f¨ur das Finden der lokal optimalen L¨osung des Teilraums sparen (denn sie kann nicht global optimal sein). Das Verfahren endet, wenn jeder Teilraum entweder ignoriert werden kann oder seine lokal optimale L¨osung bestimmt wurde. Die beste unter den gefundenen lokal optimalen L¨osungen von Teilr¨aumen ist eine global optimale L¨osung. Abb. 4.1 illustriert die Zerlegung des gesamten LRs, dargestellt durch den Kreis. Da die global optimale L¨osung nicht ohne Weiteres ermittelt werden kann, tei” len“ wir diesen LR in zwei Teilr¨aume (in Abb. 4.1 dargestellt durch die Gerade I). Wir haben Gl¨uck und k¨onnen unmittelbar die lokal optimale L¨osung in der linken H¨alfte erkennen. Da wir hier nur auf das grunds¨atzliche Prinzip von B&B-Verfahren eingehen wollen, m¨ussen und werden wir an dieser Stelle nicht erl¨autern wie genau wir dies erreichen. In der rechten H¨alfte f¨allt es uns allerdings nicht so leicht und daher zerteilen wir diese wiederum durch Gerade II in Teilr¨aume. Wir erkennen (auch hier ohne zu erl¨autern, wie genau), dass sich in dem unteren rechten Teilraum keine L¨osung befinden kann, die besser ist als die schon in der linken H¨alfte gefundene. Daher kann sich dort insbesondere nicht die einzige global optimale L¨osung befin-

180

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung IV VI

III

3. 6. 5. 1.

7.

4.

V

II 2.

Abb. 4.1 Teile und Herrsche

I

den und wir ermitteln die lokal optimale L¨osung dieses Teilraums (die es gibt, sofern es in dem Teilraum zul¨assige, aber nicht beliebig gute L¨osungen gibt) nicht. Dieser Teilraum ist daher in der Abbildung grau hervorgehoben. In dem oberen rechten Teilraum fahren wir nach diesem Prinzip fort und zerteilen den LR sukzessiv weiter durch die Geraden III, IV, V und VI. F¨ur einen der weiteren entstehenden Teilr¨aume ermitteln wir keine lokal optimale L¨osung, f¨ur die anderen tun wir dies. Wir erhalten insgesamt sieben Teilr¨aume, in Abb. 4.1 durchnummeriert von 1. bis 7., und f¨unf lokal optimale L¨osungen von Teilr¨aumen und haben w¨ahrend des gesamten Verfahrens nachgehalten, welche die bisher beste gefundene L¨osung ist. Die zum Ende des Verfahrens beste gefundene L¨osung ist eine global optimale L¨osung. Der Ablauf des Verfahrens l¨asst sich auch sehr gut in einem Baumdiagramm darstellen. Abb. 4.2 illustriert den Ablauf f¨ur das obige Beispiel. Das Verfahren beginnt mit dem obersten Knoten, dem sogenannten Wurzelknoten, der zur Betrachtung des gesamten LRs korrespondiert. Dieser gesamte LR wird durch Gerade I in zwei Teilr¨aume zerlegt; die Betrachtung der jeweiligen Teilr¨aume wird dann durch die Knoten auf der n¨achsten Ebene repr¨asentiert. Die Gerade, die in Abb. 4.1 die Aufteilung des L¨osungs- oder eines Teilraums darstellt, ist unterhalb des Knotens in Abb. 4.2, der zu dem jeweiligen L¨osungs- oder Teilraum geh¨ort, notiert. So wird der Teilraum, der in Abb. 4.1 aus den Teilr¨aumen mit den Nummern 3. bis 7. besteht, durch die Gerade II erzeugt und durch die Gerade III weiter aufgeteilt. Wir verwenden in diesem Baumdiagramm die Konvention, dass der linke Teilraum bzw. der obere Teilraum, der durch eine Aufteilung entsteht, dem linken Kinderknoten im Baum entspricht und der rechte bzw. der untere Teilraum dem rechten Kinderknoten. Ein Knoten ohne Kinderknoten repr¨asentiert einen Teilraum, der nicht weiter aufgeteilt wird. Wir bezeichnen einen solchen Knoten als Blatt. Neben der informellen Beschreibung der Vorgehensweise wollen wir sie hier auch noch einmal schematisch als Algorithmus 4.1 darstellen.

4.2 Branch & Bound

181 1.-7. I 1.

2.-7. II 3.-7.

2.

III 3.-5.

6.-7.

IV

V

3.

4.-5.

6.

7.

VI Abb. 4.2 Ablauf im Baumdiagramm

4.

5.

Algorithmus 4.1 (Teile und Herrsche). Eingabe: Instanz eines IP Ausgabe: optimale L¨osung oder Information, dass keine existiert1 1. Initialisiere besten gefundenen Zielfunktionswert v∗ mit schlechtestm¨oglichem Wert. 2. Initialisiere beste gefundene L¨osung s∗ . 3. Initialisiere Menge T zu betrachtender Teilr¨aume mit vollst¨andigem LR. 4. Falls T = 0, / w¨ahle ein Element t ∈ T und entnimm t aus T . Sonst STOP. 5. Sch¨atze ab, ob t eine zul¨assige L¨osung enthalten kann. Falls dies ausgeschlossen werden kann, gehe zu 4. 6. Sch¨atze ab, ob t eine L¨osung mit Wert besser v∗ haben kann. Falls dies ausgeschlossen werden kann, gehe zu 4. 7. Sch¨atze ab, ob t beliebig gute L¨osungen enth¨alt. Falls dies der Fall ist, ist die Instanz des IP unbeschr¨ankt. STOP. 8. Pr¨ufe, ob eine lokal optimale L¨osung in t ermittelt werden kann. a. Wenn dies der Fall ist, bestimme eine solche L¨osung und ersetze ggf. s∗ und v∗ . b. Wenn dies nicht der Fall ist, teile t in zwei oder mehr Teilr¨aume und f¨uge diese T hinzu. 9. Gehe zu 4.

1

Ob diese Ausgabe garantiert werden kann, h¨angt von der konkreten Ausgestaltung des Verfahrens, von dem zu l¨osenden IP und ggf. sogar von der zu l¨osenden Probleminstanz ab. In der Regel werden wir diese Ausgabe aber sicherstellen k¨onnen.

182

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Algorithmus 4.1 stellt die Vorgehensweise in der allgemeinsten (im Rahmen dieses Buches) sinnvollen Form dar. Die Initialisierungen in den Schritten 1. bis 2. erfolgen so, dass die erste gefundene L¨osung in Schritt 8.a. auf jeden Fall als beste bisher gefundene L¨osung identifiziert wird und bis eine solche gefunden ist kein Teilraum in Schritt 5. von der Betrachtung ausgeschlossen wird. Wir betrachten in jeder Iteration der Schritte 4. bis 9. einen der bisher konstruierten Teilr¨aume. Schritte 5. und 6. sch¨atzen ab, ob der aktuelle Teilraum t das Potential hat, eine bessere als die beste bisher gefundene L¨osung s∗ zu enthalten. Wenn dies nicht der Fall ist, wird t nicht weiter betrachtet. Wenn dies jedoch der Fall ist, wird in den Schritten 7. und 8. gepr¨uft, ob sich in t beliebig gute L¨osungen finden oder man die lokal optimale L¨osung in t bestimmen kann (bzw. der Aufwand vertretbar ist). Wenn dies so ist, dann entscheidet man, dass das IP unbeschr¨ankt ist, oder bestimmt die lokal optimale L¨osung und gleicht sie mit s∗ ab. Wenn beides nicht der Fall ist, dann teilen wir t weiter auf, um die entstehenden Teilr¨aume in sp¨ateren Iterationen zu betrachten. Es ist wichtig, an dieser Stelle zu betonen, dass es von der konkreten Ausgestaltung und wom¨oglich auch von dem vorliegenden IP oder sogar der vorliegenden Probleminstanz abh¨angt, ob ein Verfahren, das Algorithmus 4.1 konkretisiert, u¨ berhaupt endet. Das Verfahren endet, wenn alle Teilr¨aume betrachtet wurden (also T leer ist). Ob dieser Zustand aber u¨ berhaupt eintritt, h¨angt u. a. davon ab, wie genau die Aufteilung in Schritt 8.b. erfolgt. Die Gr¨oße der Teilr¨aume, d. h. die Anzahl der enthaltenen L¨osungen, sollte systematisch verringert werden. Weiterhin m¨ussen wir geeignete Mittel haben, um Unbeschr¨anktheit oder Unzul¨assigkeit (in Teilr¨aumen) zu erkennen oder die lokal optimale L¨osung zu ermitteln. H¨aufig k¨onnen wir jede dieser Anforderungen erf¨ullen, m¨ussen daf¨ur aber problemspezifisches Wissen nutzen. Zusammenfassung: Branch & Bound-Verfahren In B&B-Verfahren wird der LR sukzessiv in Teilr¨aume zerlegt. F¨ur jeden Teilraum wird entweder die lokal optimale L¨osung bestimmt oder entschieden, dass diese nicht global optimal sein kann. In der Regel wird zun¨achst f¨ur jeden Teilraum mit relativ geringem Aufwand versucht, abzusch¨atzen, ob er u¨ berhaupt die global optimale L¨osung enthalten kann. Sollte dies nicht auszuschließen sein, wird die lokal optimale L¨osung mit wom¨oglich deutlich h¨oherem Aufwand ermittelt. Wenn die lokal optimale L¨osung des Teilraums nicht unmittelbar bestimmt werden kann, wird der Teilraum weiter aufgeteilt und die entstehenden Teilr¨aume sp¨ater erneut betrachtet. Wir werden im Folgenden die Vorgehensweise weiter konkretisieren und erhalten dann ein Schema, dem nahezu alle B&B-Verfahren folgen. Hierf¨ur f¨uhren wir das Konzept einer Relaxationsvorschrift ein. Eine Relaxationsvorschrift dr¨uckt ein bestimmtes Verh¨altnis zwischen zwei Problemen aus, indem die Instanzen der beiden Probleme einander zugeordnet werden.

4.2 Branch & Bound

183

Definition 4.2 (Relaxationsvorschrift). F¨ur zwei Probleme P und P ordnet eine Relaxationsvorschrift jeder Instanz I  von Problem P genau eine Instanz I von Problem P so zu. Dies geschieht so, dass die Menge der zul¨assigen L¨osungen von I eine echte Obermenge der Menge der zul¨assigen L¨osungen von I  ist und eine L¨osung s von I  genau dann gem¨aß ZS von P besser als eine andere L¨osung s von I  bewertet wird, wenn dies auch gem¨aß ZS von P der Fall ist. Wir werden von den beiden durch eine Relaxationsvorschrift verbundenen Problemen als dem Ausgangsproblem P und dem relaxierten Problem P sprechen. Definition 4.3 (Relaxation). Die Instanz I, die der Instanz I  eines Optimierungsproblems durch eine Relaxationsvorschrift zugeordnet wird, ist die Relaxation von I. In der Literatur wird h¨aufig nicht konzeptionell zwischen Relaxationsvorschrift, relaxiertem Problem und Relaxation unterschieden. H¨aufig wird der Begriff Rela” xation“ synonym f¨ur alle drei Konzepte verwendet. Wir werden in diesem Buch zwischen diesen Konzepten unterscheiden. Gerade beim Abgleich mit Erl¨auterungen in anderen Werken sollte den Lesern dieser Unterschied in der Terminologie aber bewusst sein. Zusammenfassung: Relaxiertes Problem und Relaxation Bei dem relaxierten Problem P eines Optimierungsproblems P ist nach konformem Zielkriterium die optimale aus einer gr¨oßeren Menge von zul¨assigen L¨osungen zu ermitteln. Alle zul¨assigen L¨osungen von I  sind auch zul¨assige L¨osungen der Relaxation I. Die optimale L¨osung (gem¨aß beider ZS) zu I ist daher mindestens so gut wie die optimale L¨osung von I  . Daraus folgt wiederum, dass eine optimale L¨osung von I, die zul¨assig f¨ur I  ist, auch optimal f¨ur I  ist. Abb. 4.3 veranschaulicht die Beziehung der Mengen zul¨assiger L¨osungen von I und I  . Dargestellt ist die Situation, in der einige, aber nicht alle optimalen L¨osungen f¨ur Relaxation I auch zul¨assig f¨ur I  sind. Diejenigen, die zul¨assig f¨ur I  sind, sind auch optimal f¨ur I  . Denkbar w¨are auch, dass alle optimalen L¨osungen f¨ur I zul¨assig f¨ur I  sind. Der kleine Kreis w¨are dann vollst¨andig in dem mittleren enthalten. Weiterhin kann der Fall eintreten, dass keine optimale L¨osung f¨ur I zul¨assig f¨ur I  ist. Dann w¨aren der kleine Kreis und der mittlere Kreis u¨ berschneidungsfrei und die optimale L¨osung f¨ur I  w¨are gem¨aß ZS von I schlechter bewertet als die optimale L¨osung von I. Dieser Zusammenhang wird h¨aufig in B&B-Verfahren genutzt. Etliche Schritte von Algorithmus 4.1 lassen sich mittels einer Relaxationsvorschrift ausgestalten. Zu jeder jeweils betrachteten Probleminstanz, n¨amlich die lokal optimale L¨osung des IPs im aktuell betrachteten Teilraum t zu finden, gibt es dann eine Relaxation. • In Schritt 5. wird abgesch¨atzt, ob der vorliegende Teilraum eine zul¨assige L¨osung enth¨alt. Der Schritt kann ausgestaltet werden, indem ermittelt wird, ob die Rela-

184

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung Menge der zul¨assigen L¨osungen von I

Menge der optimalen L¨osungen von I

Menge der zul¨assigen L¨osungen von I  Abb. 4.3 Mengen zul¨assiger und optimaler L¨osungen von I und I 

xation eine zul¨assige L¨osung hat. Wenn dies nicht der Fall ist, dann enth¨alt der aktuelle Teilraum auch keine zul¨assige L¨osung. • In Schritt 6. wird abgesch¨atzt, ob der vorliegende Teilraum Potential hat, eine bessere L¨osung als die beste bisher gefundene L¨osung s∗ zu enthalten. Der Schritt kann ausgestaltet werden, indem die optimale L¨osung der Relaxation ermittelt wird. Sollte diese nicht besser sein als s∗ , dann enth¨alt der aktuelle Teilraum nicht die einzige global optimale L¨osung und falls die lokal optimale L¨osung tats¨achlich global optimal ist, haben wir eine gleichwertige L¨osung (n¨amlich s∗ ) schon gefunden. • In Schritt 7. wird abgesch¨atzt, ob der vorliegende Teilraum beliebig gute L¨osungen enth¨alt. Der Schritt kann ausgestaltet werden, indem gepr¨uft wird, ob die Relaxation unbeschr¨ankt ist. Wenn dies nicht der Fall ist, enth¨alt der aktuelle Teilraum auch keine beliebig guten L¨osungen. • In Schritt 8. bzw. 8a. wird gepr¨uft, ob eine lokal optimale L¨osung im aktuellen Teilraum (mit den vorhandenen Mitteln) gefunden werden kann. Ein Versuch kann unternommen werden, indem eine optimale L¨osung der Relaxation ermittelt wird. Diese ist genau dann eine lokal optimale L¨osung des aktuellen Teilraums, wenn die optimale L¨osung der Relaxation in dem Teilraum liegt (und somit f¨ur die Instanz des Ausgangsproblems zul¨assig ist). Etliche zentrale Schritte k¨onnen also durch L¨osen einer Relaxation ausgestaltet werden. Dabei sollte sich die Relaxation aus dem vorliegenden IP und dem aktuellen Teilraum ableiten lassen. Dies erm¨oglicht uns, die ben¨otigten Relaxationen zu erzeugen, wenn wir sie ben¨otigen. Gerade bei großen Instanzen k¨onnen wir vorab nicht wissen, wie viele Teilr¨aume wir betrachten m¨ussen und wie diese genau aussehen werden. Ob ein Teilraum weiter aufgeteilt wird, h¨angt ja u. a. davon ab, ob die Relaxation eine zul¨assige optimale L¨osung hat, und das k¨onnen wir f¨ur komplexe Probleme nicht f¨ur jeden Teilraum vorab erkennen. Daher ist es kaum m¨oglich, alle potentiell ben¨otigten Relaxationen statisch zu erzeugen, und wir sind darauf ange-

4.2 Branch & Bound

185

wiesen, sie im Verlauf des Verfahrens f¨ur jeden betrachteten Teilraum dynamisch zu erzeugen. Wir m¨ochten dabei m¨oglichst eine einheitliche Relaxationsvorschrift f¨ur alle betrachteten Teilr¨aume (also auch f¨ur den vollst¨andigen LR) verwenden. Um dies zu erm¨oglichen, m¨ussen die Instanz des zu l¨osenden IPs mit dem vollst¨andigen LR und die Instanzen des IPs zu den gebildeten Teilr¨aumen als Instanzen desselben Ausgangsroblems aufgefasst werden. Dieses vereinheitlichende Ausgangsproblem besteht darin, die beste L¨osung des IPs in einem vorgegeben (Teil-)LR zu bestimmen. Es gibt dann eine Instanz dieses Ausgangsproblems zu jedem Knoten im Baumdiagramm. Im Wurzelknoten des Baums ist der betrachtete Teilraum der gesamte LR. Durch die einheitliche Relaxationsvorschrift wird f¨ur die vorliegende Instanz I  des Ausgangsproblems dann auf die Relaxation I verwiesen. Salopp formuliert: Ausgangsproblem f¨ur die Relaxationsvorschrift in B&B Um eine einheitliche Relaxationsvorschrift verwenden zu k¨onnen, ben¨otigen wir eine einheitliche Auffassung der f¨ur die gebildeten Teilr¨aume zu l¨osenden Probleme. Diese vereinheitlichende Auffassung besteht darin, dass wir jeweils die beste L¨osung des IPs im aktuellen Teilraum ermitteln wollen. H¨aufig (aber nicht zwangsl¨aufig) ist es so, dass der LR der Relaxation f¨ur den vollst¨andigen LR analog zum LR des IPs in Teilr¨aume zerlegt wird. Dies kann z. B. durch Fixieren einer Variablen geschehen, die dann sowohl im entstehenden Teilraum als auch in der entsprechenden Relaxation einen festen Wert hat. Wir k¨onnen Hinweise auf eine sinnvolle Aufteilung ( Branching“) des aktuellen Teilraums in ” Schritt 8b. durch die optimale L¨osung s der aktuellen Relaxation erhalten (denn wir k¨onnen ja anhand unseres Wissens u¨ ber die Relaxationsvorschrift absch¨atzen, wie die entsprechenden Relaxationen zu den entstehenden Teilr¨aumen aussehen werden). Nun konkretisieren wir Algorithmus 4.1 unter Verwendung des Konzeptes der Relaxation zu Algorithmus 4.2.

186

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Algorithmus 4.2 (Branch & Bound). Eingabe: Instanz eines IP Ausgabe: optimale L¨osung oder Information, dass keine existiert2 1. Initialisiere v∗ , s∗ und T . 2. Falls T = 0, / w¨ahle ein Element t ∈ T und entnimm t aus T . Sonst STOP. 3. L¨ose die Relaxation zu t. 4. Wenn die Relaxation unzul¨assig ist, gehe zu 2. 5. Wenn die Relaxation unbeschr¨ankt ist, ist die Instanz des IP unbeschr¨ankt.3 STOP. 6. Wenn die optimale L¨osung s der Relaxation nicht besser ist als s∗ , gehe zu 2. 7. Wenn s im aktuellen Teilraum ist, ersetze s∗ und v∗ (wenn s besser als s∗ ist) und gehe zu 2. 8. Sonst, a. finde heuristisch eine gute L¨osung s im aktuellen Teilraum und ersetze ggf. s∗ und v∗ (wenn s besser als s∗ ist)4 und b. teile t in zwei oder mehrere Teilr¨aume auf, f¨ur deren Relaxationen s keine zul¨assige L¨osung ist, und f¨uge sie in T ein 9. Gehe zu 2. In Algorithmus 4.2 sind die Schritte 3. bis 8., die die Analyse eines Teilraums bzw. die daraus abgeleiteten Konsequenzen betreffen, eng an dem Konzept der Relaxation ausgerichtet. Zun¨achst wird die Relaxation gel¨ost und anschließend werden die Absch¨atzungen wie oben besprochen vorgenommen. Die Suche nach einer lokal optimalen L¨osung kann in dem aktuellen Teilraum eingestellt werden, wenn wir erkennen k¨onnen, dass der Teilraum keine zul¨assige L¨osung enth¨alt (Schritt 4.), die lokal optimale L¨osung in dem Teilraum nicht besser als die beste bisher gefundene L¨osung der zu l¨osenden Probleminstanz ist (und daher nicht die einzige global optimale L¨osung sein kann; Schritt 6.) oder die lokal optimale L¨osung im Teilraum gefunden wurde (Schritt 7.). Wenn wir erkennen k¨onnen, dass der Teilraum beliebig gute L¨osungen enth¨alt, k¨onnen wir das Verfahren in der Regel sogar vollst¨andig beenden, denn dann ist das IP unbeschr¨ankt (Schritt 5.). Wenn keiner der genannten F¨alle eintritt, k¨onnen wir nicht ausschließen, dass der Teilraum die einzige global optimale L¨osung enth¨alt, haben aber zumindest noch keine gefunden. In diesem Fall k¨onnen wir optional versuchen, heuristisch eine gute L¨osung im aktuellen Teilraum zu finden (Schritt 8a.). Hierf¨ur k¨onnten wir zum Beispiel versuchen, die unzul¨assige

2

Ob diese Ausgabe garantiert werden kann, h¨angt von der konkreten Ausgestaltung des Verfahrens, von dem zu l¨osenden IP und ggf. sogar von der zu l¨osenden Probleminstanz ab. In der Regel werden wir diese Ausgabe aber sicherstellen k¨onnen. 3 Dies gilt nicht allgemein; wir m¨ ussen durch problemspezifisches Wissen ausschließen, dass das IP unbeschr¨ankt ist, oder sicherstellen, dass aus Unbeschr¨anktheit der Relaxation Unbeschr¨anktheit der Instanz folgt. Wir werden allerdings sp¨ater sehen, dass das selbst bei (linearen) IPs nicht unbedingt trivial ist. 4 Dieser Schritt hat keine Entsprechung in Algorithmus 4.1.

4.2 Branch & Bound

187

L¨osung s der Relaxation zu reparieren“. Dann fahren wir nach dem Prinzip Teile ” ” und Herrsche“ fort und teilen den aktuellen Teilraum auf (Schritt 8b.). Zusammenfassung: Ausgangsproblem und Relaxationen in B&B Zu jedem betrachteten Teilraum gibt es eine Instanz des Ausgangsproblems ( Finde die beste L¨osung des IPs in dem aktuellen Teilraum!“). Die L¨osung ” einer solchen Instanz bedeutet in der Regel hohen Aufwand, den wir, sofern m¨oglich, vermeiden wollen. Relaxationen sind vereinfachende Varianten von Instanzen des Ausgangsproblems. Wir nutzen sie, um wichtige Informationen zu dem aktuellen Teilraum mit geringerem Aufwand zu gewinnen. Sie erlauben uns, abzusch¨atzen, ob der Teilraum u¨ berhaupt zul¨assige L¨osungen enthalten kann und wie gut die lokal optimale L¨osung des Teilraums sein kann. Wir verzichten dann darauf, die Instanz des Ausgangsproblems zu l¨osen, wenn der aktuelle Teilraum keine zul¨assigen L¨osungen enthalten kann oder die lokal optimale L¨osung nicht global optimal sein kann. Wenn wir aber anhand der Absch¨atzungen nicht ausschließen k¨onnen, dass die global optimale L¨osung in dem aktuellen Teilraum liegt, dann kommen wir nicht umhin, die Instanz des Ausgangsproblems zu l¨osen.

4.2.2 Komponenten In Algorithmus 4.2 sind einige Komponenten noch nicht spezifiziert (insofern d¨urfen wir eigentlich gar nicht von einem Algorithmus gem¨aß Definition 1.5 sprechen). Um ein Verfahren vollst¨andig zu definieren, m¨ussen wir drei Komponenten festlegen: die Relaxationsvorschrift, die Art der Aufteilung des jeweils aktuellen Teilraums und die Regel, nach der der als n¨achstes zu betrachtende Teilraum aus T gew¨ahlt wird. Als weitere Komponente wird h¨aufig eine Heuristik zum Bestimmen der L¨osung s im aktuellen Teilraum konzipiert; die Verwendung einer solchen Heuristik ist aber optional. Diese einzelnen Komponenten werden in den Abschnitten 4.2.2.1 bis 4.2.2.4 besprochen. Dabei kann es nur darum gehen, allgemein zu erl¨autern, was bei der Ausgestaltung ber¨ucksichtigt werden sollte, da die Ausgestaltung selber h¨aufig problemabh¨angig ist. Wir werden allerdings auch eine generische Gestaltung der Komponenten vorstellen, die auf beliebige (M)IPs anwendbar ist.

4.2.2.1 Relaxationsvorschrift Was eine Relaxationsvorschrift und eine Relaxation ist und wie wir sie in einem B&B-Verfahren einsetzen k¨onnen, haben wir schon in Abschnitt 4.2.1 besprochen. Es h¨angt allerdings maßgeblich von der konkret gew¨ahlten Relaxationsvorschrift

188

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

ab, ob die Ausgestaltung des Verfahrens sinnvoll ist. Wir k¨onnen hier zwei fundamentale Ziele unterscheiden. 1. Das relaxierte Problem sollte mit m¨oglichst geringem Aufwand zu l¨osen sein. Insbesondere sollte es (deutlich) leichter zu l¨osen sein als das Ausgangsproblem. Dies sollte nicht nur f¨ur den vollst¨andigen LR gelten, sondern auch f¨ur jeden potentiell zu betrachtenden Teilraum. W¨are dies nicht der Fall, k¨onnten wir ja einfach das jeweilige Ausgangsproblem l¨osen und k¨onnten uns die Schritte 3. bis 8. in Algorithmus 4.2 sparen, da wir genaue Ergebnisse statt Absch¨atzungen erzielen k¨onnten und dabei noch Aufwand sparen w¨urden. Da die Relaxationsvorschrift f¨ur jeden Teilraum geeignet sein soll, kann eine Relaxationsvorschrift bzgl. dieses Ziels nicht unabh¨angig von der Aufteilung des Teilraums beurteilt werden. Wegen dieser Abh¨angigkeit von Relaxationsvorschrift und Aufteilung des Teilraums werden wir diesen Punkt auch in Abschnitt 4.2.2.2 noch einmal aufgreifen. 2. Die Absch¨atzungsqualit¨at, die durch L¨osung der Relaxation erreicht wird, sollte m¨oglichst hoch sein. Da unterschiedliche Eigenschaften des aktuellen Teilraums mittels der Relaxation abgesch¨atzt werden, wollen wir kurz darlegen, wie wir die Absch¨atzungsqualit¨at bewerten k¨onnen. a. In Schritt 4. sollte die Wahrscheinlichkeit daf¨ur, dass der Teilraum keine zul¨assige L¨osung enth¨alt, obwohl die Relaxation eine hat, m¨oglichst gering sein. b. In Schritt 5. sollte die Wahrscheinlichkeit daf¨ur, dass der Teilraum beschr¨ankt ist, obwohl die Relaxation unbeschr¨ankt ist, m¨oglichst gering sein. c. In Schritt 6. sollte die Wahrscheinlichkeit daf¨ur, dass die optimale L¨osung im Teilraum nicht besser als s∗ ist, obwohl die optimale L¨osung der Relaxation besser als s∗ ist, m¨oglichst gering sein. Diese Wahrscheinlichkeit ist umso geringer, je schlechter die optimale L¨osung der Relaxation ist oder – anders formuliert – je geringer die Differenz der Zielfunktionwerte der optimalen L¨osung der Relaxation und der lokal optimalen L¨osung des Teilraums ist. d. In Schritt 7. sollte die Wahrscheinlichkeit daf¨ur, dass eine optimale L¨osung der Relaxation im aktuellen Teilraum liegt und somit die (lokal) optimale L¨osung im Teilraum ist, m¨oglichst groß sein. Man kann (vereinfachend) sagen, dass die Absch¨atzungsqualit¨at umso h¨oher ist, je weniger zul¨assige L¨osungen der Relaxation nicht in dem aktuellen Teilraum liegen. Was also die Absch¨atzungsqualit¨at angeht, sollten wir gar keine Relaxation, sondern das Ausgangsproblem, die optimale L¨osung im Teilraum zu finden, selber betrachten. Allerdings ist eine sinnvolle Relaxation ja auch deutlich leichter zu l¨osen. Es ist zwar nicht zwangsl¨aufig so, dass die Relaxation umso leichter zu l¨osen ist, je st¨arker wir die Menge von zul¨assigen L¨osungen vergr¨oßern, aber es ist durchaus m¨oglich, dass diese beiden Faktoren gegenl¨aufig sind. Wir k¨onnen dann vorab schwer sagen, ob eine leichter zu l¨osende Relaxation mit gr¨oßerer Menge zul¨assiger L¨osungen zu einem effizienteren B&B-Verfahren f¨uhrt. Nat¨urlich sinkt potentiell unser Aufwand f¨ur die L¨osung einer Relaxation, aber die Absch¨atzungs-

4.2 Branch & Bound

189

qualit¨at sinkt ebenfalls, sodass wir wom¨oglich mehr Relaxationen l¨osen m¨ussen. Das Ziel bei der Ausgestaltung eines B&B-Verfahrens sollte daher in der Regel ein guter Kompromiss aus beidem sein. Salopp formuliert: Aufwand und Absch¨atzungsqualit¨at von Relaxationen Tendenziell steigt die Absch¨atzungsqualit¨at mit dem Aufwand, den wir f¨ur die L¨osung einer Relaxation erbringen m¨ussen. Daher sind vor allem solche Relaxationsvorschriften besonders vielversprechend, die zu Relaxationen f¨uhren, bei denen mit einem relativ geringen Aufwand eine relativ hohe Absch¨atzungsqualit¨at erreicht wird. Nachdem wir nun wissen, was w¨unschenswerte Eigenschaften sind, wollen wir uns beispielhaft konkreten Relaxationsvorschriften f¨ur die Probleme 4.1 (Knapsack) und 1.2 (Tourenplanung) zuwenden. Wir werden zun¨achst einen sehr verbreiteten Typ von Relaxationsvorschrift, die LP-Relaxation, behandeln. Diese wenden wir beispielhaft auf beide Probleme an. Im Anschluss erl¨autern wir, vor allem um zu betonen, dass ein B&B-Verfahren keinesfalls eine LP-Relaxation verwenden muss, eine individuelle Relaxationsvorschrift f¨ur Problem 1.2 (Tourenplanung).

LP-Relaxation Eine Relaxationsvorschrift, die sich auf jedes IP anwenden l¨asst, sieht vor, jeder Instanz I  eines Ausgangsproblems eine Instanz I eines LPs zuzuordnen, die sich von I  nur darin unterscheidet, dass die diskreten Variablen des IPs durch kontinuierliche Variablen ersetzt werden. Relaxation I bezeichnen wir auch als LP-Relaxation von I  . Wir k¨onnen dann aus dem vorliegenden IP sehr einfach das LP als relaxiertes Problem durch Ver¨anderung der Dom¨anen der diskreten Variablen ableiten. Sollte es in dem IP untere oder obere Schranken f¨ur die Variablenwerte geben, werden diese Schranken auch in das LP u¨ bernommen. Alle weiteren NB und die Zielfunktion werden unver¨andert u¨ bernommen. Dadurch sind die beiden ZS des IPs und der LP-Relaxation nat¨urlich konform, da sie identisch sind. Weiterhin ist jede zul¨assige L¨osung von I  auch eine zul¨assige L¨osung von I. Von daher ist I eine Relaxation von I  gem¨aß Definition 4.3 auf S. 183. Salopp formuliert: LP-Relaxation In der LP-Relaxation werden die ganzzahligen Variablen des Ausgangsproblems durch kontinuierliche Variablen ersetzt. Die relaxierten Probleme zu den Modellen 4.1 und 2.3 ergeben sich, indem (4.3) bzw. (4.8) durch (4.9) bzw. (4.10) ersetzt werden. 0 ≤ xi ≤ 1 0 ≤ xi, j ≤ 1

∀ i = 1, . . . , n ∀ i, j = 1, . . . , n

(4.9) (4.10)

190

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Eine L¨osung der jeweiligen LP-Relaxation ist nicht mehr zwangsl¨aufig im Sinne des Ausgangsproblems zu interpretieren. Bei Problem 4.1 (Knapsack) bzw. Modell 4.1 f¨allt es noch recht leicht: Bei der LP-Relaxation ist es uns erlaubt, auch beliebige Bruchteile eines Gegenstandes in die Menge aufzunehmen. Er tr¨agt dann zwar nur den entsprechenden Bruchteil seines Werts zum Gesamtwert bei, beansprucht aber auch nur den entsprechenden Bruchteil an Kapazit¨at. Bei Problem 1.2 (Tourenplanung) bzw. Modell 2.3 ist es schon etwas komplizierter. Statt einer Tour, bei der auf jeden besuchten Ort ein eindeutiger anderer Ort folgt, k¨onnen wir eine L¨osung der LP-Relaxation (die nicht ausschließlich ganzzahlige Variablenwerte hat) nur so interpretieren, dass von einem Ort aus mehrere n¨achste Orte zu jeweils einem bestimmten Bruchteil angesteuert werden k¨onnen. Diese Bruchteile m¨ussen sich f¨ur jeden Ort zu Eins summieren. Analog kann jeder Ort auch von mehreren vorherigen Orten aus angesteuert werden. x2 6 5 4 3 2 1

1

2

3

4

5

6

x1

Abb. 4.4 LP-Relaxation

Wir k¨onnen das Prinzip der LP-Relaxation sehr sch¨on grafisch veranschaulichen. Abb. 4.4 stellt die NB eines IPs dar. Die Syntax ist dabei weitestgehend mit der in Kapitel 3 identisch. Da wir hier aber ein IP (statt eines LPs) betrachten, entsprechen nur die schwarzen Punkte (die ganzzahlige L¨osungen), die alle NB erf¨ullen, zul¨assigen L¨osungen. Die LP-Relaxation hat dieselben NB, allerdings wird die Forderung nach Ganzzahligkeit fallen gelassen. Insofern sind f¨ur die LP-Relaxation alle Punkte, die alle NB erf¨ullen, zul¨assige L¨osungen. Wir k¨onnen weiterhin erkennen, dass die optimale L¨osung der LP-Relaxation (in diesem Fall echt) besser ist als die beste L¨osung der Instanz des IP. Die Position der Zielfunktion ist so gew¨ahlt, dass

4.2 Branch & Bound

191

sie durch die beste ganzzahlige L¨osung (4, 4) verl¨auft. Offensichtlich ist aber die nicht-ganzzahlige L¨osung (4, 4.5) besser. Diese Relaxationsvorschrift (die zur LP-Relaxation f¨uhrt) bietet den Vorteil, dass die Relaxation jeder Instanz eines beliebigen IPs effizient zu l¨osen ist. Wir k¨onnen zum Beispiel den Simplex-Algorithmus aus Kapitel 3 verwenden. Außerdem sind wir sehr flexibel, was das Aufteilen des aktuellen Teilraums angeht, denn solange wir die Aufteilung durch lineare NB implementieren k¨onnen, werden wir zu jedem Teilraum eine LP-Relaxation erzeugen k¨onnen und k¨onnen daher sicher sein, dass wir die Relaxation f¨ur jeden zu betrachtenden Teilraum im Ablauf des B&BVerfahrens effizient l¨osen k¨onnen. Was die Absch¨atzungsqualit¨at angeht, k¨onnen wir uns leider nicht ganz so sicher sein. Insbesondere bei Problemen, bei denen eine Sequenz von Elementen gesucht ist (wie zum Beispiel bei Problem 1.2 (Tourenplanung)), ist die Absch¨atzungsqualit¨at h¨aufig schlecht. Und wenn wir wirklich Pech haben, dann erhalten wir sogar unbrauchbare Informationen bei der Absch¨atzung in Schritt 5. Um das zu erkennen, wollen wir uns folgendes Beispiel (angelehnt an Daniel und Jeffreys (1979)) vor Augen f¨uhren. Wir verzichten auf eine formale Definition der Probleminstanzen und beschr¨anken uns auf eine grafische Repr¨asentation. x2 6 5 4 3 2 1

1

2

3

4

5

6

x1

Abb. 4.5 Unbeschr¨ankte LP-Relaxationen

Abb. 4.5 stellt die NB zweier alternativer Instanzen eines IP dar. Wir haben jeweils einen Korridor von zul¨assigen L¨osungen der LP-Relaxation und wir erkennen an dem Normalenvektor der Zielfunktion, dass wir beliebig gute L¨osungen finden k¨onnen, wenn wir uns immer weiter nach oben rechts orientieren. Die beiden Korridore unterscheiden sich aber darin, dass der obere ganzzahlige L¨osungen enth¨alt und der untere nicht. Das bedeutet, dass die Instanz des IP mit dem oberen Korridor

192

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

unbeschr¨ankt ist und die Instanz des IP mit dem unteren Korridor unzul¨assig ist. Wenn wir die LP-Relaxationen betrachten, k¨onnen wir dies allerdings nicht ausmachen, denn beide sind unbeschr¨ankt. Das Beispiel in Abb. 4.5 zeigt, dass wir in Schritt 5. von Algorithmus 4.2 bei Verwendung einer LP-Relaxation auf zus¨atzliches Wissen angewiesen sind, um die Unbeschr¨anktheit einer LP-Relaxation fehlerfrei zu interpretieren. Daniel und Jeffreys (1979) befassen sich intensiv mit der Frage, unter welchen Umst¨anden und wie wir dies erreichen k¨onnen. Wir wollen hier einige der Erkenntnisse zusammenfassen. Wenn wir uns auf lineare NB bzw. Zielfunktionen beschr¨anken (was wir im Rahmen dieses Buches ja tun) und alle Koeffizienen bzw. der Wert der RHS rationale Zahlen sind, dann kann die LP-Relaxation nur unbeschr¨ankt sein, wenn die Instanz des IP unzul¨assig oder unbeschr¨ankt ist. D. h., genau die beiden in Abb. 4.5 dargestellten F¨alle k¨onnen eintreten, aber es kann nicht sein, dass das IP beschr¨ankt und zul¨assig ist. Sollten wir also eine der beiden verbleibenden M¨oglichkeiten ausschließen k¨onnen, wissen wir, dass die dann noch verbleibende vorliegt. Hierf¨ur gibt es mehrere M¨oglichkeiten. • Wenn wir eine zul¨assige L¨osung der Instanz des IPs kennen, die sich wom¨oglich offensichtlich aus dem Anwendungskontext ergibt, dann kann die Instanz des IPs nicht unzul¨assig sein und dann impliziert die Unbeschr¨ankheit der LPRelaxation, dass die Instanz des IPs selber auch unbeschr¨ankt ist. Es ist z. B. leicht zu erkennen, dass die leere Menge immer eine zul¨assige L¨osung f¨ur Problem 4.1 (Knapsack) ist. W¨are die LP-Relaxation unbeschr¨ankt (was bei Modell 4.1 nicht passieren kann), dann w¨ussten wir entsprechend, dass die Instanz des IPs auch unbeschr¨ankt ist. • Wenn wir dem Anwendungskontext entnehmen k¨onnen, dass die Instanz des IPs nicht unbeschr¨ankt ist, dann folgt aus der Unbeschr¨anktheit der LP-Relaxation, dass die Instanz des IPs unzul¨assig ist. Auch hier kann Problem 4.1 (Knapsack) ¨ als Beispiel herangezogen werden und wir k¨onnen die Uberlegung sogar auf alle IPs u¨ bertragen, in denen alle Variablenwerte nach unten und oben beschr¨ankt sind. Wenn die Werte der Variablen nach unten und oben beschr¨ankt sind, dann kann jede Variable nur endlich viele ganzzahlige Werte annehmen und alle Variablen zusammen k¨onnen nur endlich viele L¨osungen dargestellen. Mindestens eine unter diesen endlich vielen L¨osungen ist die optimale.

4.2 Branch & Bound

193

Zusammenfassung: Eignung von LP-Relaxationen Die Relaxationsvorschrift, die zur LP-Relaxation f¨uhrt, hat enorme Vorteile, die neben der effizienten L¨osbarkeit vor allem in der sehr breiten Anwendbarkeit liegen. Wir m¨ussen nicht weiter u¨ ber die Problemstruktur nachdenken oder sogar Verfahren zum L¨osen der Relaxation entwickeln, denn wir wissen, dass wir zu jedem Teilraum ein LP erhalten, sofern wir das Aufteilen von Teilr¨aumen durch lineare NB implementieren k¨onnen. Dieses LP k¨onnen wir dann mit etablierten Verfahren, z. B. dem Simplex-Algorithmus, effizient l¨osen. Nur in sehr speziellen IPs kann es vorkommen, dass wir Unbeschr¨anktheit der LP-Relaxation nicht sicher interpretieren k¨onnen. Es bleibt uns nat¨urlich unbenommen, die LP-Relaxation zu verbessern“, z. B. ” indem wir sogenannte g¨ultige Ungleichungen (im Englischen: valid inequalities“) ” erg¨anzen. ¨ Definition 4.4 (Gultige Ungleichung). Eine g¨ultige Ungleichung zu einem MO ist eine NB, die durch mindestens eine optimale L¨osung jeder Instanz erf¨ullt wird, aber nicht durch alle L¨osungen der LP-Relaxation erf¨ullt wird. Wenn wir eine g¨ultige Ungleichung in einem IP erg¨anzen, dann ver¨andern wir also nicht den Wert der optimalen L¨osung, aber wir ver¨andern potentiell den Wert der optimalen L¨osung der LP-Relaxation. Die Reduktion des LRs folgt hierbei demselben Prinzip wie in Abschnitt 2.3.2.5. Der Wert der optimalen L¨osung der LP-Relaxation a¨ ndert sich genau dann, wenn alle optimalen L¨osungen der LPRelaxation die g¨ultige Ungleichung nicht erf¨ullen. Dies verbessert die Absch¨atzung in Schritt 6. des B&B-Verfahrens (Algorithmus 4.2). Salopp formuliert: G¨ultige Ungleichung Eine g¨ultige Ungleichung eliminiert L¨osungen aus der Relaxation, aber keine optimalen L¨osungen aus der Instanz des Ausgangsproblems. Daher wird tendenziell die Absch¨atzungsqualit¨at der Relaxation erh¨oht. Martello und Toth (1997) entwickeln zwei Typen von g¨ultigen Ungleichungen f¨ur Modell 4.1. Wir k¨onnen relativ leicht absch¨atzen, wie viele Gegenst¨ande h¨ochstens ausgew¨ahlt werden k¨onnen. Wenn wir die Gegenst¨ande in einer Reihenfolge nicht-absteigender Gewichte betrachten und einen nach dem anderen aufnehmen, bis die Aufnahme des n¨achsten Gegenstandes die Kapazit¨atsnebenbedingung verletzen w¨urde, erhalten wir eine maximale Anzahl K ausw¨ahlbarer Gegenst¨ande. Wenn wir zus¨atzlich den Wert Z einer zul¨assigen L¨osung kennen, k¨onnen wir eine minimale Anzahl von Gegenst¨anden in optimalen L¨osungen bestimmen. Wir betrachten die Gegenst¨ande in Reihenfolge nicht-aufsteigender Werte und nehmen einen nach dem anderen in die Menge auf, bis der Gesamtwert der aufgenommen Gegenst¨ande mindestens Z betr¨agt. Die Anzahl der ausgew¨ahlten Gegenst¨ande gibt dann eine minimale Anzahl K ausgew¨ahlter Gegenst¨ande in jeder optimalen

194

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

L¨osung an. Sollten wir mehrere zul¨assige L¨osungen kennen, ziehen wir f¨ur diese Einschr¨ankung die mit dem h¨ochsten Wert heran. Wir k¨onnen dann die beiden NB n

∑ xi ≤ K

(4.11)

∑ xi ≥ K

(4.12)

i=1 n i=1

erg¨anzen und werden sp¨ater sehen, dass diese NB nicht zwangsl¨aufig durch optimale L¨osungen der LP-Relaxationen erf¨ullt sind. Wir k¨onnen diese verbesserte LP-Relaxation nat¨urlich auch weiterhin mit Verfahren aus Kapitel 3 l¨osen. Zuletzt wollen wir noch kurz die naheliegende M¨oglichkeit ansprechen, LPRelaxationen auch auf MIPs anzuwenden. Nat¨urlich k¨onnen wir dann die Forderung nach Ganzzahligkeit nicht f¨ur alle, sondern f¨ur nur die ganzzahligen Varia¨ blen des MIPs fallen lassen. Das Vorgehen und die obigen Uberlegungen sind dann aber analog. Auch f¨ur die im Weiteren erl¨auterten Komponenten gilt, dass sich alle ¨ Uberlegungen, die wir f¨ur IPs anstellen, auf MIPs u¨ bertragen lassen. Wir m¨ussen dabei lediglich im Hinterkopf behalten, dass wir nur auf Ganzzahligkeit solcher Variablen abzielen, die auch im MIP als ganzzahlig definiert sind.

¨ Tourenplanung 1-Baum-Relaxation fur W¨ahrend die LP-Relaxation der Typ von Relaxation ist, den wir in der Literatur am h¨aufigsten finden, ist es so, dass die effizientesten Verfahren zur L¨osung eines bestimmten Problems mitunter eben nicht die LP-Relaxation verwenden, sondern eine Relaxationsvorschrift, die auf das zu l¨osende Problem zugeschnitten ist. Insbesondere f¨ur Problem 1.2 (Tourenplanung) gibt es eine Relaxationsvorschrift, die sich in einer Vielzahl von Verfahren (u. a. B&B-Verfahren) bew¨ahrt hat. Das relaxierte Problem hat die Menge aller 1-B¨aume als LR. Definition 4.5 (1-Baum). Ein 1-Baum ist ein Baum zuz¨uglich einer weiteren Kante. Wir sehen in Abb. 4.6 und 4.7 zwei 1-B¨aume, wobei die jeweils grauen Kanten den Baum (gem¨aß Definition 2.10 auf S. 25) ausmachen und die schwarze Kante die zus¨atzliche Kante ist. Da ein Baum ein kreisfreier und zusammenh¨angender Graph ist, enth¨alt ein 1-Baum genau einen Kreis. Jede Tour, also jede zul¨assige L¨osung zu einer Instanz von Problem 1.2 (Tourenplanung), ist ein 1-Baum: Jede Tour ist ein Pfad u¨ ber alle Knoten zuz¨uglich einer Kante, die die beiden Enden des Pfades direkt verbindet. Da dieser Pfad ein Baum ist, ist die Tour ein 1-Baum. Umgekehrt ist nicht jeder 1-Baum eine Tour, wie in Abb. 4.7 zu erkennen ist. Das relaxierte Problem besteht dann darin, einen 1-Baum mit minimaler Gesamtl¨ange der Kanten im 1-Baum zu ermitteln. Die ZS von Problem 1.2 (Tourenplanung) und des relaxierten Problems sind konform, da sie identisch sind. Von daher

4.2 Branch & Bound

195 3

1

2

4

Abb. 4.6 Tour

3

1

Abb. 4.7 1-Baum

2

4

ist eine Instanz des relaxierten Problems, die 1-Baum-Relaxation, eine Relaxation der Instanz des zu l¨osenden Problems 1.2 gem¨aß Definition 4.3. Das relaxierte Problem k¨onnen wir nat¨urlich durch ein IP repr¨asentieren, aber im Gegensatz zur LP-Relaxation h¨angt dieses IP nicht von der Modellformulierung des Ausgangsproblems ab. Eine 1-Baum-Relaxation l¨asst sich sehr leicht l¨osen. Wir wollen uns hier damit begn¨ugen, die Relaxationen durch scharfes Hinsehen“ zu l¨osen. Der Vollst¨andigkeit ” halber pr¨asentieren wir in Anhang B.1 aber auch ein effizientes Verfahren f¨ur ein systematisches Vorgehen. Es ist nat¨urlich schon einmal beruhigend, dass wir die Relaxation f¨ur den vollst¨andigen LR leicht l¨osen k¨onnen. Allerdings bilden wir ja eine Relaxation nicht nur f¨ur den vollst¨andigen LR, sondern auch f¨ur jeden sich ergebenden Teilraum und die Frage bleibt, ob die Relaxationen f¨ur beliebige Teilr¨aume auch leicht zu l¨osen sind. W¨ahrend wir das bei der LP-Relaxation relativ leicht erkennen konnten, m¨ussen wir uns hier mehr Gedanken machen. Durch das Aufteilen des LRs k¨onnen wir den 1-Baum wom¨oglich nicht mehr v¨ollig frei w¨ahlen und dies macht die L¨osung der Relaxation zu einem Teilraum wom¨oglich komplexer. Wir k¨onnen die Frage nach der Effizienz der L¨osung der Relaxation also nicht unabh¨angig davon, wie genau wir den Teilraum bilden, beantworten, denn davon h¨angt ab, wie genau das relaxierte Problem aussieht. Wir werden diesen Punkt also noch einmal aufgreifen m¨ussen, wenn wir in Abschnitt 4.2.2.2 dieses Beispiel weiter behandeln.

196

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Ein weiteres Kriterium zur Bewertung einer Relaxation ist die Absch¨atzungsqualit¨at. Diese l¨asst sich nicht ohne Weiteres beurteilen. Allerdings k¨onnen wir sicher sein, dass es (anders als bei der LP-Relaxation) keine Probleme in Schritt 5. von Algorithmus 4.2 gibt, denn auch die 1-Baum-Relaxation hat nur endlich viele L¨osungen und kann daher nicht unbeschr¨ankt sein.

4.2.2.2 Aufteilung des Teilraums Wenn wir die (lokal) optimale L¨osung in dem aktuellen Teilraum noch nicht kennen und nicht ausschließen k¨onnen, dass diese (global) optimal ist, teilen wir den Teilraum weiter. Bei der Entscheidung, wie genau die Aufteilung erfolgen soll, sollten wir m¨oglichst die Informationen, die wir u¨ ber den aktuellen Teilraum haben, einfließen lassen. Dies sind zum einen das IP und der Teilraum selber, zum anderen aber auch die optimale L¨osung der Relaxation zum aktuellen Teilraum. Der Mechanismus zum Aufteilen des aktuellen Teilraums muss bzw. sollte m¨oglichst die folgenden Eigenschaften haben. • Alle relevanten L¨osungen des aktuellen Teilraums m¨ussen in mindestens einem der gebildeten Teilr¨aume enthalten sein. Dabei ist eine L¨osung irrelevant, wenn sie unzul¨assig ist oder wenn wir ausschließen k¨onnen, dass sie optimal ist. Es ist also durchaus zul¨assig, L¨osungen im Verlauf des Verfahrens aus der Betrachtung zu verlieren, weil sie in keinem gebildeten Teilraum enthalten sind, sofern wir ausschließen k¨onnen, dass es sich bei diesen L¨osungen gerade um die gesuchte optimale handelt. Umgekehrt w¨are es auch zul¨assig, wenn sich einige L¨osungen in mehreren der gebildeten Teilr¨aume f¨anden. Dies w¨urde zwar bedeuten, dass die Teilr¨aume unn¨otig groß sind, aber ggf. bringt dies strukturelle Vorteile mit sich, durch die sich die Relaxationen leichter l¨osen lassen. Die h¨aufigste Variante ist allerdings, den Teilraum so aufzuteilen, dass jede zul¨assige L¨osung des aktuellen Teilraums sich in genau einem aus ihm gebildeten Teilraum findet. • Die optimale L¨osung s der Relaxation des aktuellen Teilraums sollte keine zul¨assige L¨osung der Relaxation eines der gebildeten Teilr¨aume sein. Dies hat zwei Gr¨unde. W¨are s in der Relaxation eines Teilraums zul¨assig, w¨are sie dort wiederum optimal (sofern die LR der Relaxationen zu den Teilr¨aumen Teilmengen des LR der Relaxation zu dem aktuellen Teilraum sind). Es g¨abe ohne weitere Mechanismen also keine Garantie, dass das Verfahren endet, weil es immer wieder dieselbe L¨osung s einer Relaxation ermittelt. Dar¨uber hinaus wird die Absch¨atzungsqualit¨at einer Relaxation tendenziell besser, wenn ihr zul¨assiger LR kleiner wird. Wir kennen mit s ja eine L¨osung, die unzul¨assig f¨ur den aktuellen Teilraum und damit im Sinne des obigen Punktes irrelevant ist. Wenn wir s f¨ur die weitere Betrachtung von Teilr¨aumen eliminieren, verkleinern wir also den zul¨assigen LR der Relaxation mindestens eines Teilraums und verbessern dadurch die Absch¨atzungsqualit¨at. • Die erhaltenen Relaxation sollten mit einem oder wenigen effizienten Verfahren l¨osbar sein. Dies ist nicht selbstverst¨andlich, denn die Aufteilung des aktuellen Teilraums beeinflusst die Struktur der Teilr¨aume und dadurch auch die Struktur

4.2 Branch & Bound

197

der entsprechenden Relaxationen. Wenn die Relaxationsvorschrift und die Aufteilung des aktuellen Teilraums nicht aufeinander abgestimmt sind, kann es passieren, dass die zu l¨osenden Relaxationen keine gemeinsame Struktur haben, die eine effiziente L¨osung durch ein oder wenige Verfahren zulassen. Genau das ist aber unser Ziel, denn es ist uns bei m¨oglicherweise sehr vielen zu betrachtenden Teilr¨aumen nicht m¨oglich, Einzelfallbetrachtungen durchzuf¨uhren und fallweise Verfahren zu entwickeln. Also w¨are man in diesem Fall auf sehr allgemeine Verfahren angewiesen und w¨urde damit eine zu geringe Effizienz in Kauf nehmen. Wir werden schon bei unserem Beispiel zu Problem 1.2 (Tourenplanung) sehen, dass wir uns genau u¨ berlegen m¨ussen, wie wir sicherstellen k¨onnen, dass ein effizientes Verfahren die Relaxationen zu allen m¨oglichen Teilr¨aumen l¨osen kann. Zusammenfassung: Aufteilung des Teilraums Bei der Aufteilung des Teilraums m¨ussen wir sicherstellen, dass jede relevante L¨osung in einem der entstehenden Teilr¨aume ist, und zielen unter dieser Einschr¨ankung auf m¨oglichst effizient zu behandelnde Teilr¨aume ab. Wir m¨ochten daher unn¨otig große Teilr¨aume vermeiden und erreichen, dass Relaxationen zu den Teilr¨aumen m¨oglichst leicht zu l¨osen sind und die Absch¨atzungsqualit¨at hoch ist. Dies gelingt in der Regel nur bei enger Abstimmung der Aufteilung des Teilraums auf die Relaxationsvorschrift. Wir wollen die beiden Probleme 4.1 (Knapsack) und 1.2 (Tourenplanung) und die in Abschnitt 4.2.2.1 diskutierten Relaxationsvorschriften aufgreifen und sinnvolle Regeln zum Aufteilen des aktuellen Teilraums erg¨anzen.

LP-Relaxation Wenn die optimale L¨osung s im aktuellen Teilraum unzul¨assig ist, dann gibt es mindestens eine Variable x, die in s einen nicht-ganzzahligen Wert v ∈ Z hat. Wir k¨onnen nun den vorliegenden Teilraum t in zwei Teilr¨aume zerlegen, indem wir die beiden Teile von t, in denen x ≤ v bzw. x ≥ v gilt, betrachten. Implementieren k¨onnen wir diese Aufteilung, indem wir zwei IPs bilden, die sich von dem IP zu t nur um die erg¨anzten NB x ≤ v bzw. x ≥ v unterscheiden. Diese NB sind dann auch Bestandteil der jeweiligen LP-Relaxationen. Diese Form der Aufteilung hat alle drei der oben formulierten Eigenschaften. Jede zul¨assige L¨osung in t ist in einem der beiden gebildeten Teilr¨aume enthalten, denn in jeder zul¨assigen L¨osung hat x einen Wert von h¨ochstens v oder mindestens v . Zudem ist keine zul¨assige L¨osung in t in beiden gebildeten Teilr¨aumen, denn durch die Wahl von Variable x mit Wert v ∈ Z gilt v < v . Weiterhin wird die optimale L¨osung der Relaxation zu t keine zul¨assige L¨osung einer Relaxation zu einem der beiden gebildeten Teilr¨aume sein, denn dort sind nur L¨osungen mit x ≤ v < v bzw. x ≥ v > v zul¨assig. Zu guter Letzt betrachten wir wiederum jeweils

198

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

eine LP-Relaxation der beiden gebildeten IPs, was uns in die Lage versetzt, die etablierten Verfahren, z. B. den Simplex-Algorithmus aus Kapitel 3, zu verwenden. Dies ist unabh¨angig davon, wie genau die zu betrachtenden Teilr¨aume im konkreten Fall aussehen. Die Umsetzung f¨ur die Probleme 4.1 (Knapsack) und 1.2 (Tourenplanung) sieht dann so aus, dass wir in den Modellen 4.1 und 2.3 Variablen auf bestimmte Werte fixieren. Da in beiden Modellen ausschließlich Bin¨arvariablen verwendet werden, hat die gew¨ahlte Variable x einen Wert 0 < v < 1. Somit ergibt sich v = 0 und v = 1, wodurch x in den beiden gebildeten Teilr¨aumen den Wert 0 bzw. 1 annehmen muss. Wir k¨onnen also die Struktur des IPs weitestgehend beibehalten, haben aber mit jeder Aufteilung weniger freie Variablen“ zu ber¨ucksichtigen. ” Es bleibt die Frage, mittels welcher Variablen die Aufteilung des aktuellen Teilraums vorgenommen werden sollte, wenn es mehrere Variablen mit nichtganzzahligen Werten in L¨osung s gibt. Hierf¨ur gibt es verschiedene Vorgehensweisen, wobei man zwischen statischen und dynamischen Regeln unterscheiden kann. Statische Regeln ergeben nur relativ selten einen Sinn, n¨amlich nur, wenn man vor Ablauf des L¨osungsverfahrens Kenntnisse dar¨uber hat, welche Variablen einzuschr¨anken den gr¨oßten positiven Effekt auf L¨osungsaufwand oder Absch¨atzungsqualit¨at hat. Das bedeutet insbesondere, dass eine geeignete Wahl der Variablen nicht von den optimalen L¨osungen der Relaxationen abh¨angt. Denn wenn dies der Fall ist, dann erhalten wir ja w¨ahrend des Ablaufs des Verfahrens weitere relevante Informationen und m¨ussen die Auswahl dann dynamisch auf die derzeitig vorliegenden Erkenntnisse abstimmen. Dabei kann man z. B. ber¨ucksichtigen, welcher Variablenwert die gr¨oßte Differenz zur n¨achsten ganzen Zahl aufweist. Diese Variable ist in gewisser Weise am st¨arksten falsch belegt“ und beeinflusst Absch¨atzungen ” dadurch wom¨oglich am st¨arksten negativ. Es gibt noch etliche weitere etablierte Regeln, die u. a. in Nemhauser und Wolsey (1999) vorgestellt werden. Zusammenfassung: Aufteilung des Teilraums bei LP-Relaxation Wir k¨onnen den aktuellen Teilraum aufteilen, indem wir eine ganzzahlige Variable (des zu l¨osenden IPs) mit nicht-ganzzahligem Wert v in der optimalen L¨osung der LP-Relaxation auf Werte kleiner-gleich v oder gr¨oßergleich v beschr¨anken. Jede zul¨assige L¨osung des aktuellen Teilraums ist dann in einem der gebildeten Teilr¨aume enthalten, die optimale L¨osung der aktuellen LP-Relaxation aber nicht. Die oben beschriebene Vorgehensweise l¨asst sich immer bei Verwendung einer LP-Relaxation nutzen. Es gibt allerdings zahlreiche weitere generische M¨oglichkeiten. Z. B. ist es m¨oglich, statt einer einzelnen Variablen x eine Teilmenge X von Variablen, deren gesamter Wert V nicht-ganzzahlig ist, zu w¨ahlen. Die Teilr¨aume k¨onnen dann gebildet werden, indem ein Gesamtwert der Variablen in X von h¨ochstens V  oder mindestens V gefordert wird. Eine weitere Alternative w¨are, mehr als zwei Teilr¨aume zu bilden. Hierf¨ur gibt es eine recht einfache M¨oglichkeit, wenn die Variablenwerte nach oben beschr¨ankt sind. Wir k¨onnen dann eine Variable x mit Wert v ∈ Z in der optimalen L¨osung der Relaxation zu t und unterer bzw.

4.2 Branch & Bound

199

oberer Schranke von l bzw. u w¨ahlen und u − l + 1 Teilr¨aume bilden, in denen x auf jeweils einen der Werte l, . . . , u fixiert wird. Nat¨urlich gibt es zahllose weitere M¨oglichkeiten und vor allem auch die Option, statt dieser hier beschriebenen generischen Methoden problemspezifische zu verwenden.

¨ Tourenplanung 1-Baum-Relaxation fur Es gibt mehrere M¨oglichkeiten, 1-Baum-Relaxationen im Rahmen eines B&BVerfahrens zu nutzen. Die im Folgenden vorgestellten Ideen wurden von Volgenant und Jonker (1982) entwickelt. Das Aufteilen geschieht durch Verwalten zweier Mengen von Kanten, R und F, wobei verlangt wird, dass die Kanten in R in der zu w¨ahlenden Teilmenge enthalten sind und die Kanten in F nicht enthalten sind. Bei Betrachtung des gesamten LR, d. h. im Wurzelknoten des Baumdiagramms, gibt es keinerlei Einschr¨ankungen, d h. wir haben R = F = 0. / Beim Aufteilen des aktuellen Teilraums werden wir dann R oder F erweitern. Wir werden dabei laufend pr¨ufen, ob die Aufnahme weiterer Kanten in eine der beiden Mengen durch die Elemente in der jeweils anderen Menge gerechtfertigt ist, d. h. • wenn nur noch zwei Kanten, mit denen ein Knoten inzident ist, nicht in F sind, dann werden diese in R aufgenommen und • wenn zwei Kanten, zu denen ein Knoten inzident ist, in R sind, dann werden alle anderen inzidenten Kanten in F aufgenommen. Wenn die optimale L¨osung s im aktuellen Teilraum unzul¨assig ist, dann gibt es mindestens einen Knoten v, der in einem Kreis liegt und zu mindestens drei der ausgew¨ahlten Kanten inzident ist. Dies folgt aus der Tatsache, dass es einen Kreis gibt, dieser Kreis aber nicht alle Knoten enth¨alt (sonst w¨are s zul¨assig) und der Teilgraph zusammenh¨angend ist. Mindestens zwei dieser drei Kanten sind weder in R noch in F. Offensichtlich sind alle drei Kanten nicht in F. W¨aren zwei der drei Kanten in R, dann w¨aren alle weiteren inzidenten Kanten in F (also auch die dritte inzidente Kante) und somit w¨are der vorliegende 1-Baum unzul¨assig f¨ur die Relaxation. Wir w¨ahlen dann zwei zu v inzidente Kanten e1 und e2 , die im 1-Baum, aber weder in F noch in R sind, und bilden drei Teilr¨aume, in denen wir • R ← R ∪ {e1 , e2 } und F ← F, • R ← R ∪ {e1 } und F ← F ∪ {e2 }, und • R ← R und F ← F ∪ {e1 } setzen. Wenn wir abschließend die Konsistenz herstellen, dann ist die vormals optimale L¨osung nicht in einer Relaxation der gebildeten Teilr¨aume enthalten. Im ersten gebildeten Teilraum m¨ussen e1 und e2 in den 1-Baum aufgenommen werden, weswegen keine andere Kante, die zu v inzident ist, im 1-Baum ist (durch Erhaltung der Konsistenz). Im zweiten und dritten gebildeten Teilraum wird eine der Kanten e1 und e2 explizit ausgeschlossen. Somit ist die zweite oben formulierte Eigenschaft erf¨ullt.

200

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Umgekehrt ist jede zul¨assige L¨osung im aktuellen Teilraum in mindestens einem der gebildeten Teilr¨aume enthalten. Der erste Teilraum enth¨alt die Touren, in denen v durch e1 und e2 erreicht und verlassen wird. Der zweite Teilraum enth¨alt die Touren, in denen v durch e1 , aber nicht durch e2 erreicht oder verlassen wird. Der dritte Teilraum enth¨alt die Touren, in denen v nicht durch e1 erreicht oder verlassen wird. Zus¨atzlich ist es so, dass keine zul¨assige L¨osung in mehr als einem Teilraum enthalten ist. Eine Tour, in der v durch e1 und e2 erreicht und verlassen wird, ist nur im ersten gebildeten Teilraum. Eine Tour, in der v durch e1 , aber nicht durch e2 erreicht oder verlassen wird, ist nur im zweiten gebildeten Teilraum. Eine Tour, in der v durch e2 , aber nicht durch e1 erreicht oder verlassen wird, ist nur im dritten gebildeten Teilraum. Eine Tour, in der weder e1 noch e2 benutzt wird, ist nur im dritten gebildeten Teilraum. Somit ist auch die erste oben formulierte Eigenschaft erf¨ullt. Wir wollen dies kurz an dem schon bekannten 1-Baum in Abb. 4.7 veranschaulichen. Wir vernachl¨assigen daf¨ur die Kantengewichte (da sie f¨ur die Aufteilung an sich keine Rolle spielen) und nehmen an, dass wir diesen 1-Baum als optimale L¨osung der Relaxation zum Teilraum mit R = 0/ und F = 0/ erhalten. 3

1

Abb. 4.7 1-Baum

2

4

Knoten 2 liegt in einem Kreis und ist zu mindestens drei Kanten im 1-Baum inzident. Wir w¨ahlen dann e1 = {1, 2} ∈ R ∪ F und e2 = {2, 3} ∈ R ∪ F zuf¨allig unter den drei zu Knoten 2 inzidenten Kanten und bilden drei Teilr¨aume in denen wir • R ← {{1, 2}, {2, 3}} und F ← 0, / • R ← {{1, 2}} und F ← {{2, 3}}, und • R ← 0/ und F ← {{1, 2}} setzen. In jedem Teilraum gibt es jeweils nur eine zul¨assige L¨osung, n¨amlich {{1, 2}, {1, 4}, {2, 3}, {3, 4}} (erster Teilraum), {{1, 2}, {1, 3}, {2, 4}, {3, 4}} (zweiter Teilraum) und {{1, 3}, {1, 4}, {2, 3}, {2, 4}} (dritter Teilraum). Bzgl. der dritten Eigenschaft verweisen wir auf das effiziente Verfahren, das in Anhang B.1 pr¨asentiert wird. Dieses Verfahren ermittelt einen 1-Baum mit minimaler Gesamtl¨ange schnell genug. Es ist dann recht offensichtlich, wie wir Kanten in F ber¨ucksichtigen. Wir k¨onnen sie einfach aus dem vorliegenden Graphen entfernen, dann werden sie auch nicht im 1-Baum enthalten sein. Kanten in R zu ber¨ucksichtigen ist weniger offensichtlich. Wir wollen hier nur eine m¨ogliche Vorgehensweise skizzieren, ohne zu tief darauf einzugehen. Wir setzen die L¨ange der

4.2 Branch & Bound

201

Kanten in R auf null und erh¨ohen die L¨angen aller anderen Kanten um die Gesamtl¨ange aller Kanten. Um die Gesamtl¨ange zu optimieren, m¨ussen dann alle Kanten aus R gew¨ahlt werden und kostenminimal um Kanten, die weder in R noch in F sind, erg¨anzt werden. Mit diesem Trick sind wir also in der Lage mit einem effizienten Verfahren die Relaxation eines beliebigen Teilraums zu l¨osen. Somit ist auch die dritte Eigenschaft erf¨ullt. Auch hier stellt sich die Frage, wie v, e1 und e2 gew¨ahlt werden, wenn es mehrere geeignete gibt. Volgenant und Jonker (1982) schlagen vor, wann immer m¨oglich einen Knoten v zu w¨ahlen, der zu einer Kante in R inzident ist. In diesem Fall kann n¨amlich der erste Teilraum keine zul¨assigen L¨osungen enthalten, weswegen wir ihn nicht ber¨ucksichtigen m¨ussen.

4.2.2.3 Knotenreihenfolge Wir haben in Abschnitten 4.2.2.1 und 4.2.2.2 besprochen, wie wir Teilr¨aume (oder Knoten in dem Baumdiagramm) und die entsprechenden Relaxationen bilden. Was wir bisher noch nicht gekl¨art haben ist, in welcher Reihenfolge wir schon gebildete, aber noch nicht untersuchte Teilr¨aume betrachten. Wir k¨onnen durch die Wahl der Reihenfolge den gesamten Ablauf des Verfahrens beeinflussen und haben deshalb in Algorithmus 4.2 offen gelassen, wie genau in Schritt 2. der n¨achste Teilraum t gew¨ahlt wird. Festzuhalten ist, dass von der Reihenfolge nicht die grunds¨atzliche Funktionsf¨ahigkeit abh¨angt, denn wir werden in jedem Fall alle gebildeten Teilr¨aume und damit den gesamten LR untersuchen. Durch die Reihenfolge kann aber beeinflusst werden, in welcher Reihenfolge und zu welchen Zeitpunkten zul¨assige L¨osungen gefunden werden. Dies wiederum beeinflusst, welche Teilr¨aume u¨ berhaupt gebildet werden, und damit auch maßgeblich den Aufwand f¨ur die Durchf¨uhrung des Verfahrens. In Abb. 4.8 wird der Ablauf eines B&B-Verfahrens dargestellt. Uns soll an dieser Stelle nicht interessieren, welches IP gel¨ost wird, welche Relaxationsvorschrift angewendet wird und wie der aktuelle Teilraum aufgeteilt wird. Wir nehmen lediglich an, dass wir ein Maximierungsproblem l¨osen und dass die jeweilige Knotennummer dem Wert der optimalen L¨osung der Relaxation entspricht. Die Knoten mit einem Stern u¨ ber dem Wert entsprechen Teilr¨aumen, bei denen die optimale L¨osung der Relaxation in dem Teilraum (und damit zul¨assig f¨ur die zu l¨osende Instanz) ist. Der Baum ist also insofern vollst¨andig, als dass jeder Teilraum entweder weiter aufgeteilt wird oder seine optimale L¨osung ermittelt wurde. Wir k¨onnen erkennen, dass die optimale L¨osung des IPs durch Knoten 21 (mit Wert 21) repr¨asentiert wird. Ein Knoten wird als Kreis dargestellt, wenn der Wert der optimalen L¨osung der Relaxation nicht schlechter als der optimale Zielfunktionswert ist. Ein Knoten wird als Quadrat dargestellt, wenn die optimale L¨osung der Relaxation, aber noch nicht die seines Vater-/Mutterknotens, einen schlechteren Wert als den optimalen Zielfunktionswert hat. Ein Knoten ist als Dreieck dargestellt, wenn ein u¨ bergeordneter Knoten als Quadrat dargestellt ist. Dreiecksknoten stellen somit Teilr¨aume dar, die aus Teilr¨aumen entstanden sind, zu denen die optimale L¨osung der Relaxation schon

202

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung 25

13

24

5

4∗

3

1∗

2∗

18

12

11∗

10

6∗

19∗

17 15∗

9

7∗

14∗

23

16∗

22

20∗

21∗

8∗

Abb. 4.8 Ablauf im Baumdiagramm

einen schlechteren Wert als den optimalen Wert von 21 hatte. Beispielsweise ist der Teilraum zu Knoten 7 aus dem Teilraum zu Knoten 12 entstanden. Selbst wenn wir vorab w¨ussten, dass es eine zul¨assige L¨osung mit Wert 21 gibt, k¨amen wir nicht umhin, die Kreise nach Bestimmung der optimalen L¨osung der Relaxation weiter zu untersuchen, da es ja m¨oglich ist, dass in diesen Teilr¨aumen noch bessere L¨osungen liegen. Solange wir nur die optimale L¨osung der Relaxation nutzen, um Knoten auszuloten, d. h. im Weiteren zu vernachl¨assigen, m¨ussten wir diese zu den Knoten, die als Quadrate dargestellt werden, ebenfalls berechnen. Denn erst diese geben uns Auskunft dar¨uber, dass wir hier keine (global) optimale L¨osung finden k¨onnen. Ohne weitere Informationen m¨ussen wir also auf jeden Fall die weißen Knoten untersuchen und f¨ur die Kreise den jeweiligen Teilraum weiter aufteilen und Kinderknoten erzeugen. Die Teilr¨aume, die zu Dreiecken geh¨oren, m¨ussten wir dann tats¨achlich nicht mehr betrachten (daher sind sie hier noch farblich hervorgehoben). Leider wissen wir aber nicht vorab, dass es eine L¨osung mit Wert 21 gibt, und daher m¨ussen wir ggf. in Kauf nehmen, dass wir nicht nur die Kreise und Quadrate untersuchen, sondern auch die Dreiecke. Beim Festlegen einer Knotenreihenfolge sind verschiedene Kriterien zu beachten. Zun¨achst wollen wir m¨oglichst wenige Knoten konstruieren und untersuchen, da der Aufwand f¨ur die Ausf¨uhrung des B&B-Verfahrens nat¨urlich mit der Anzahl dieser Knoten steigt. Außerdem wollen wir den Aufwand f¨ur die Verwaltung des Baums bzw. der noch zu untersuchenden Knoten m¨oglichst gering halten. Schließlich wollen wir den Speicherbedarf m¨oglichst niedrig halten. Konstruierte, aber noch nicht untersuchte Knoten werden im Speicher abgelegt. Bei großen Probleminstanzen k¨onnen das Millionen von Knoten werden und wenn es zu viele werden, stoßen auch moderne Computer an ihre Grenzen. Außerdem wird der Aufwand f¨ur die Verwaltung tendenziell gr¨oßer, je mehr Knoten konstruiert, aber noch nicht untersucht wurden. Wir werden sehen, dass wir alle drei Zielgr¨oßen tats¨achlich

4.2 Branch & Bound

203

durch die Knotenreihenfolge maßgeblich beeinflussen k¨onnen, und im Folgenden drei g¨angige Strategien besprechen. Zusammenfassung: Knotenreihenfolge Die Wahl einer Knotenreihenfolge beeinflusst zwar die Struktur des vollst¨andigen Baumdiagramms nicht, aber sehr wohl, wann wir im Verlauf des Verfahrens welchen Teilraum untersuchen, und somit auch, wann wir welche L¨osung ermitteln. Wenn wir fr¨uh gute L¨osungen ermitteln, versetzt uns das h¨aufig in die Lage, viele Knoten ignorieren zu k¨onnen. Weiterhin k¨onnen wir durch die Knotenreihenfolge den Aufwand zur Verwaltung der schon konstruierten Knoten und den Speicherbedarf beeinflussen.

Tiefensuche Bei der Tiefensuche (im Englischen Depth-First-Search“) durchsuchen wir den ” Baum so, dass wir zun¨achst einen Pfad vom Wurzelknoten zu einem Blatt (also einem Teilraum, dessen optimale L¨osung wir finden oder den wir ignorieren k¨onnen) vollst¨andig durchlaufen, bevor wir weitere Knoten untersuchen. Wenn wir einen Pfad durchsucht haben, gehen wir zum letzten Punkt zur¨uck, an dem ein anderer Pfad abzweigt, und durchsuchen diesen. Wir k¨onnen eine Tiefensuche implementieren, indem wir eine Liste von Knoten f¨uhren, aus der wir Knoten immer am Anfang zur Untersuchung entnehmen und in die wir neu erzeugte Knoten am Anfang einf¨ugen. Bei zwei erzeugten Kinderknoten wird also zun¨achst der vollst¨andige Teilbaum unter dem zuletzt eingef¨ugten Kinderknoten untersucht, bevor der zuerst eingef¨ugte Kinderknoten betrachtet und sein Teilbaum untersucht wird. Wenn wir annehmen, dass wir immer den rechten Kinderknoten zuerst in die Liste einf¨ugen (ihn also nach dem linken untersuchen), dann wird der Baum in Abb. 4.8 vollst¨andig aufgespannt. Tabelle 4.1 stellt den Ablauf detailliert dar. Tabelle 4.1 Ablauf bei Tiefensuche mit linkem Kinderknoten zuerst untersucht k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 v 25 13 5 3 1 2 4 12 10 6 9 7 8 11 24 18 14 17 15 16 23 19 22 20 21 l 2 3 4 5 4 3 2 3 4 3 4 3 2 1 2 3 2 3 2 1 2 1 2 1 0

F¨ur jede Iteration k wird der untersuchte Knoten v und die Anzahl schon erzeugter, aber noch nicht abschließend bearbeiteter Knoten l angegeben. D. h., der Wert von l gibt die L¨ange der Liste am Ende der jeweiligen Iteration an. Dabei gehen wir davon aus, dass nach Untersuchung eines Knotens unmittelbar beide Kinderknoten erzeugt werden. Die Knoten, bei deren Untersuchung eine neue beste L¨osung gefunden wird, sind fett geschrieben. In der ersten Iteration wird Knoten 25 untersucht. Es werden zwei Kinderknoten erzeugt, n¨amlich 13 und 24, wovon der erste im n¨achsten Schritt untersucht wird. Nach Untersuchen von Knoten 13 werden die

204

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Knoten 5 und 12 erzeugt und daher erhalten wir l = 3. Sp¨ater werden f¨ur Knoten 1 und 2 keine Kinderknoten erzeugt und daher sinkt der Wert von l. Erst nach Iteration 25 (und somit nach Betrachtung aller Knoten in Abb. 4.8) sinkt l auf 0. Wir k¨onnen zusammenfassen, dass zwar insgesamt sehr viele Knoten untersucht werden, aber zu jedem Zeitpunkt die Anzahl schon erzeugter, aber noch nicht abschließend bearbeiteter Knoten relativ gering ist. Wenn wir annehmen, dass wir immer den linken Kinderknoten zuerst in die Liste einf¨ugen (ihn also nach dem rechten untersuchen), ergibt sich ein ganz anderes Bild. Tabelle 4.2 stellt den Ablauf detailliert dar. Tabelle 4.2 Ablauf bei Tiefensuche mit rechtem Kinderknoten zuerst untersucht k 1 2 3 4 5 6 7 8 9 v 25 24 23 22 21 20 19 18 13 l 2 3 4 5 4 3 2 1 0

Wir sehen, dass viel weniger Knoten untersucht werden, n¨amlich genau die, die in Abb. 4.8 weiß dargestellt sind. Dies waren diejenigen, die wir ohne weitere Kenntnisse auf jeden Fall untersuchen m¨ussen. Insofern tritt hier der Idealfall ein. Allerdings ist zu bedenken, dass wir bei der Verwendung der Tiefensuche nur dann auf diesen Idealfall hoffen sollten, wenn wir eine Ahnung davon haben, in welchem Bereich des Baums sich gute oder optimale L¨osungen finden. Wenn wir im vorliegenden Fall wissen, dass die optimale L¨osung tendenziell rechts zu finden ist, dann k¨onnen wir gezielt die rechten Kinderknoten zuerst untersuchen. Wenn wir dies nicht wissen, dann k¨onnen wir bei der Verwendung der Tiefensuche genauso gut immer mit dem linken Kinderknoten starten, was wie oben gesehen in unserem Beispiel zu dem gr¨oßtm¨oglichen Aufwand f¨uhrt. Zusammenfassung: Tiefensuche Bei der Tiefensuche n¨ahert sich die Suche m¨oglichst schnell den Bl¨attern im Baum. Dabei werden relativ wenige Knoten erzeugt, die erst sp¨ater untersucht werden. Die Verwaltung des Baums ist nicht aufwendig, da wir lediglich Knoten am Anfang einer Liste einf¨ugen oder entnehmen m¨ussen. Die Anzahl insgesamt untersuchter Knoten h¨angt stark davon ab, ob wir fr¨uh im Verlauf des Verfahrens die Bereiche des Baums untersuchen, in denen sich gute oder optimale L¨osungen finden.

Breitensuche Bei der Breitensuche (im Englischen Breadth-First-Search“) durchsuchen wir den ” Baum so, dass wir Knoten nach aufsteigender Distanz zum Wurzelknoten untersuchen. Wir k¨onnen eine Breitensuche implementieren, indem wir eine Liste von Knoten f¨uhren, aus der wir Knoten immer am Anfang zur Untersuchung entnehmen

4.2 Branch & Bound

205

und in die wir neu erzeugte Knoten am Ende einf¨ugen. Wenn wir annehmen, dass wir die Knoten auf einer Ebene von links nach rechts durchsuchen, ergibt sich der Ablauf in Tabelle 4.3. Tabelle 4.3 Ablauf bei Breitensuche von links nach rechts k 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 v 25 13 24 5 12 18 23 3 4 10 11 14 17 19 22 20 21 l 2 3 4 5 6 7 8 9 6 7 4 3 4 1 2 1 0

Wir sehen, dass wir mehr Knoten untersuchen als im Idealfall, denn zum Beispiel werden Knoten 1 und 2 erzeugt und Knoten 3 bis 5 sogar untersucht, aber weniger als im schlechtesten Fall, denn wir untersuchen nur 17 der 25 Knoten. Wir beobachten hier erstmalig den Effekt, dass erzeugte Knoten nicht untersucht werden. Knoten 1 und 2 werden zum Beispiel nach Untersuchung von Knoten 3 erzeugt, aber nach Untersuchen von Knoten 4 wieder verworfen, denn wir wissen dann, dass es eine zul¨assige L¨osung mit Wert 4 gibt, die Teilr¨aume von Knoten 1 und 2 aber keine L¨osungen mit einem Wert von mehr als 3 enthalten k¨onnen. Es gibt allerdings deutlich mehr Knoten, die erzeugt, aber noch nicht abgearbeitet wurden als bei der Tiefensuche. Dabei gehen wir davon aus, dass nach Untersuchung eines Knotens unmittelbar beide Kinderknoten erzeugt werden und Knoten verworfen werden, sobald wir Kenntnis dar¨uber erlangen, dass in dem entsprechenden Teilraum keine (global) optimale L¨osung liegen kann. Eine Breitensuche macht insbesondere dann Sinn, wenn wir annehmen k¨onnen, dass die optimalen Zielfunktionswerte der Relaxationen stark von der Entfernung eines Knotens zum Wurzelknoten abh¨angen. Zusammenfassung: Breitensuche Bei der Breitensuche wird zun¨achst eine Ebene des Baums vollst¨andig untersucht, bevor Knoten der n¨achsten Ebene untersucht werden. Daher werden in der Regel etliche Knoten erzeugt, die erst sp¨ater untersucht werden. Die Verwaltung des Baums ist nicht aufwendig, da wir lediglich Knoten am Ende einer Liste einf¨ugen und am Anfang der Liste entnehmen m¨ussen. Die Anzahl insgesamt untersuchter Knoten liegt im mittleren Bereich und ist relativ unabh¨angig davon, ob wir wissen, in welchem Bereich des Baums sich gute oder optimale L¨osungen finden.

Bestensuche Bei der Bestensuche (im Englischen Best-First-Search“) wird f¨ur jeden konstru” ierten, aber noch nicht untersuchten Knoten abgesch¨atzt, ob in dem entsprechenden Teilraum eine zul¨assige L¨osung gefunden wird und wie gut diese ist. Ein Knoten wird umso fr¨uher untersucht, je wahrscheinlicher das Finden einer guten oder

206

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

gar der optimalen L¨osung ist. Man m¨ochte damit erreichen, dass m¨oglichst fr¨uh m¨oglichst gute L¨osungen gefunden werden, denn je fr¨uher man zul¨assige L¨osungen kennt und je besser diese sind, desto mehr Knoten haben eine optimale L¨osung der Relaxation, die es erlaubt, diese Knoten im Weiteren zu ignorieren. Betont werden sollte hier noch einmal, dass das nicht an der Relaxation dieser Knoten liegt, denn diese bleibt ja dieselbe. Allerdings wird der Anspruch an Knoten, damit diese weiter betrachtet werden, h¨oher. Wir k¨onnen eine Bestensuche implementieren, indem wir eine Liste von Knoten f¨uhren, die nach der Absch¨atzung der Knoten sortiert ist. Knoten werden immer am Anfang zur Untersuchung entnommen und m¨ussen jeweils an einer geeigneten Stelle eingef¨ugt werden, sodass die resultierende Liste sortiert bleibt. Basis f¨ur die Absch¨atzung ist h¨aufig der optimale Zielfunktionswert der Relaxation des Vater-/Mutterknotens, wobei ein Knoten umso fr¨uher untersucht wird, je besser dieser Wert ist. Er beschr¨ankt den Zielfunktionswert der optimalen L¨osung des aktuellen Teilraums und kann somit als Indikator f¨ur das Potential des aktuellen Teilraums gesehen werden. Diese Basis wird dann h¨aufig um weitere Informationen angereichert, die sich zum Beispiel aus der genauen Aufteilung des Teilraums des Vater-/Mutterknotens ergeben. Optionen hierf¨ur werden z. B. in Morrison u. a. (2016) diskutiert. Wenn wir als Absch¨atzung nur den optimalen Zielfunktionswert der Relaxation des Vater-/Mutterknotens verwenden, dann hat die Bestensuche eine interessante Eigenschaft. Es ist dann garantiert, dass wir (fast) nur die Knoten untersuchen, die wir bei (a priori) Unkenntnis der optimalen L¨osung untersuchen m¨ussen. Dies k¨onnen wir uns recht leicht u¨ berlegen. Bis zu dem Zeitpunkt, zu dem wir die optimale L¨osung finden (aber noch nicht sicher wissen, dass es die optimale L¨osung ist), haben wir nur Knoten untersucht, f¨ur die der Zielfunktionswert der Relaxation des Vater-/Mutterknotens nicht schlechter als der Wert der optimalen L¨osung ist. Dies liegt an der gew¨ahlten Knotenreihenfolge. Auch nach Finden der optimalen L¨osung werden wir wom¨oglich noch Knoten untersuchen, aber nur solche, f¨ur die der Zielfunktionswert der Relaxation des Vater-/Mutterknotens besser als der Wert der optimalen L¨osung ist. Alle u¨ brigen werden ausgelotet. Somit k¨onnen wir das Folgende festhalten. Eigenschaft 4.1. Die Bestensuche (mit optimalem Zielfunktionswert der Relaxation des Vater-/Mutterknotens als Absch¨atzung) untersucht keine Knoten, f¨ur die der optimale Zielfunktionswert der Relaxation des Vater-/Mutterknotens schlechter als der Wert der optimalen L¨osung ist. Es kann passieren, dass unn¨otige Knoten untersucht werden, wenn diese dieselbe Absch¨atzung haben wie der Knoten, bei dessen Untersuchung die optimale L¨osung gefunden wird. Wenn wir als Absch¨atzung nur den optimalen Zielfunktionswert der Relaxation des Vater-/Mutterknotens verwenden, dann ergibt sich der Ablauf in Tabelle 4.4. Dabei nehmen wir an, dass von den beiden Kinderknoten der linke zuerst untersucht wird.

4.2 Branch & Bound

207

Tabelle 4.4 Ablauf bei Bestensuche k 1 2 3 4 5 6 7 8 9 v 25 13 24 18 23 19 22 20 21 l 2 3 4 5 6 1 2 1 0

Wir erkennen, dass die Bestensuche die minimale Anzahl an Knoten untersucht, n¨amlich genau die weißen Knoten. Außerdem ist die Anzahl erzeugter, aber noch nicht untersuchter Knoten deutlich geringer als bei der Breitensuche, aber h¨oher als bei der Tiefensuche. Zusammenfassung: Bestensuche Bei der Bestensuche wird das Potential eines Knotens abgesch¨atzt und die Knoten dann in absteigender Reihenfolge ihres Potentials untersucht. Je nach Umsetzung erlaubt uns das, die unn¨otige Untersuchung von Knoten weitestgehend zu vermeiden. Die Verwaltung des Baums wird dadurch aufwendiger, da wir Knoten zwar am Anfang der Liste entnehmen, aber an individuellen Position einf¨ugen, was zus¨atzlichen Aufwand verursacht. Es werden einige Knoten erzeugt, die erst sp¨ater untersucht werden; die Liste ist aber in der Regel k¨urzer als bei der Breitensuche.

4.2.2.4 Heuristik Wir haben schon in Abschnitt 4.2.2.3 gesehen, dass das gesamte Verfahren maßgeblich dadurch beschleunigt werden kann, dass fr¨uh im Ablauf gute zul¨assige L¨osungen gefunden werden. Wir erzielen sicher zul¨assige L¨osungen, wenn die optimale L¨osung der Relaxation zul¨assig f¨ur den aktuellen Teilraum ist. Wegen der m¨oglichen Effizienzsteigerung durch fr¨uh ermittelte zul¨assige L¨osungen ist aber nat¨urlich auch denkbar, zus¨atzlichen Aufwand zu betreiben, um mittels einfacher heuristischer Verfahren gute, zul¨assige L¨osungen zu ermitteln. Es ist sinnvoll, sich hierbei auf Informationen zu st¨utzen, die die optimale L¨osung der Relaxation liefert. An die Ausgestaltung einer solchen Heuristik sind keine formalen Bedingungen gekn¨upft, es ist aber (wie immer) erstrebenswert, m¨oglichst gute L¨osungen in m¨oglichst kurzer Zeit zu erzielen. Wir wollen Problem 4.1 (Knapsack) und die in Abschnitt 4.2.2.1 diskutierte Relaxationsvorschrift aufgreifen und um eine sinnvolle Heuristik erg¨anzen. Dabei wollen wir die optimale L¨osung der Relaxation als Ausgangspunkt verwenden und diese zu einer zul¨assigen L¨osung reparieren“. Volgenant und Jonker (1982) schlagen ei” ne solche Heuristik f¨ur Problem 1.2 (Tourenplanung) vor, deren Beschreibung hier allerdings den Rahmen sprengen w¨urde. Bei der Entwicklung einer Heuristik hilft uns, dass in einer optimalen L¨osung der LP-Relaxation von Modell 4.1 nur wenige Variablenwerte nicht-ganzzahlig sind.

208

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Eigenschaft 4.2. Es gibt eine optimale L¨osung der LP-Relaxation von Modell 4.1, in der maximal eine Variable einen nicht-ganzzahligen Wert hat. Wir erl¨autern Eigenschaft 4.2 in Anhang B.2 und wollen hier nur darauf eingehen, wie wir diese Eigenschaft f¨ur eine einfache Heuristik nutzen k¨onnen. Wir konstruieren eine zul¨assige L¨osung, indem wir alle Gegenst¨ande, deren Variablen der LP-Relaxation den Wert 1 haben, ausw¨ahlen und unter den verbleibenden, deren Variablenwert nicht auf 0 fixiert ist, so lange den jeweils wertvollsten w¨ahlen, der noch in die Menge aufgenommen werden kann, bis kein weiterer Gegenstand mehr aufgenommen werden kann. Wir nutzen hierbei, dass die Auswahl von Gegenst¨anden in der LP-Relaxation uns einen Hinweis auf eine gute Teilmenge von Gegenst¨anden geben sollte.

4.2.3 Beispiele Wir werden im Folgenden zwei Beispiele f¨ur vollst¨andige B&B-Verfahren erl¨autern, die zum L¨osen von Problem 4.1 (Knapsack) bzw. Problem 1.2 (Tourenplanung) geeignet sind. Die Verfahren verwenden die Komponenten, die schon beispielhaft in Abschnitt 4.2.2 beschrieben wurden. Wir werden jeweils diese Komponenten zusammenfassen und den Ablauf des Verfahrens an jeweils einer Probleminstanz erl¨autern. Beide Verfahren orientieren sich stark an den Verfahren, die in Kolesar (1967) und Volgenant und Jonker (1982) entwickelt wurden.

4.2.3.1 Knapsack Wir verwenden die LP-Relaxation von Modell 4.1 auf S. 177. Wir l¨osen diese mit dem Simplex-Algorithmus 3.5 oder dem einfacheren Verfahren, das in Anhang B.2 vorgestellt wird. Wir erhalten gem¨aß Eigenschaft 4.2 eine optimale L¨osung der Relaxation mit h¨ochstens einer Variablen xi mit einem nicht-ganzzahligen Wert. Wir teilen den aktuellen Teilraum falls n¨otig auf, indem wir den entsprechenden Gegenstand i in die Teilmenge aufnehmen oder nicht. Wir implementieren diese Aufteilung, indem wir diese Variable auf null bzw. auf eins fixieren. In beiden F¨allen erhalten wir eine neue Instanz von Problem 4.1 (Knapsack). Im ersten Fall entfernen wir einfach Gegenstand i aus der Grundmenge von Gegenst¨anden. Im anderen Fall tun wir dies auch, reduzieren aber auch die Kapazit¨at um wi , denn diese Kapazit¨at ist nun belegt, und veranschlagen vi als sicher erzielten Wert. Als Heuristik verwenden wir die in Abschnitt 4.2.2.4 beschriebene: Wir erg¨anzen die Gegenst¨ande, die gem¨aß L¨osung der LP-Relaxation aufgenommen werden, schrittweise um den jeweils wertvollsten verbleibenden, dessen Aufnahme die Kapazit¨at nicht verletzt, bis kein solcher Gegenstand mehr verbleibt. Hierbei kommen nur solche Gegenst¨ande in Betracht, deren Variablen nicht fixiert sind. Wir betrachten die folgende Instanz mit n = 6 Gegenst¨anden und einer Kapazit¨at von C = 21.

4.2 Branch & Bound

209

Beispiel 4.1 (Instanz zu Modell 4.1). • n = 6, C = 21 • v1 = 90, v2 = 49, v3 = 29, v4 = 28, v5 = 18, v6 = 15 • w1 = 18, w2 = 10, w3 = 6, w4 = 6, w5 = 4, w6 = 5 Wir legen uns zun¨achst noch nicht auf eine Knotenreihenfolge fest und entwickeln das vollst¨andige Baumdiagramm, d. h., wir verzweigen einen Teilraum immer, wenn die LP-Relaxation nicht unzul¨assig ist, die optimale L¨osung der LPRelaxation aber nicht-ganzzahlig ist. Wir wollen hier kurz betonen, dass die LPRelaxation keines Teilraums unbeschr¨ankt sein kann, da alle Variablenwerte sowohl nach oben als auch nach unten beschr¨ankt sind. Darum k¨onnen wir nicht in die in Abschnitt 4.2.2.1 beschriebene Situation kommen, eine unbeschr¨ankte LP-Relaxation interpretieren zu m¨ussen. Das resultierende Baumdiagramm ist in Abb. 4.9 dargestellt. In Abb. 4.9 sehen wir im oberen Teil jedes Knotens die optimale L¨osung (x1∗ , x2∗ , x3∗ , x4∗ , x5∗ , x6∗ ) der LP-Relaxation zu dem jeweiligen Teilraum. Dabei sind die im entsprechenden Teilraum fixierten Variablenwerte fett geschrieben. Im unteren Teil jedes Knotens sehen wir die Knotennummer, den optimalen Wert der LPRelaxation und den Wert der zul¨assigen L¨osung, die mittels der Heuristik ermittelt wurde. Sollte eine LP-Relaxation unzul¨assig sein, sind diese letzten beiden Werte und noch nicht fixierte Variablen nicht belegt. Im Wurzelknoten ist noch keine Variable fixiert und die optimale L¨osung der LP-Relaxation sieht vor, Gegenstand 1 und einen Bruchteil von Gegenstand 2 auszuw¨ahlen. Wir teilen den aktuellen Teilraum also mittels Gegenstand 2 weiter auf und erhalten die Teilr¨aume, in denen x2 = 0 bzw. x2 = 1 fixiert ist. Wiederum werden die optimalen L¨osungen der LP-Relaxationen ermittelt und weiter verzweigt. In allen Bl¨attern des Baums ist entweder die LP-Relaxation unzul¨assig oder die optimale L¨osung der LP-Relaxation zul¨assig (alle Variablen haben bin¨are Werte). Wir sehen auch, dass der optimale Wert der LP-Relaxationen von Kinderknoten immer schlechter ist als der des Mutter-/Vaterknotens. Dies muss nicht generell so sein, aber zumindest kann der Wert eines Kinderknotens nicht besser sein. Der Baum hat 29 Knoten, was ein Vorteil gegen¨uber der vollst¨andigen Enumeration (Pr¨ufen aller 26 = 64 Teilmengen von Gegenst¨anden auf Zul¨assigkeit und Bewertung) ist. Wir werden im Folgenden sehen, dass wir diese Anzahl von zu untersuchenden Knoten durch eine geeignete Wahl der Knotenreihenfolge noch leicht reduzieren k¨onnen. Wenn wir Tiefensuche als Knotenreihenfolge verwenden und immer den linken Kinderknoten (in dem die jeweilige Variable auf null fixiert wird) zuerst untersuchen, dann werden tats¨achlich alle Knoten des Baums untersucht und zwar in der Reihenfolge aufsteigender Knotennummern. Wenn wir hingegen Bestensuche anwenden, dann vermeiden wir die Untersuchung der Knoten 8 und 9. Wir haben durch unsere Heuristik bereits bei der Untersuchung von Knoten 19 eine L¨osung mit Wert 96 ermittelt. Nach der Untersuchung von Knoten 7 (mit optimalem Zielfunktionswert der Relaxation von 95) werden Knoten 8 und 9 dann gar nicht erst erzeugt.

Abb. 4.9 Branch & Bound f¨ur Knapsack

9 , 0, 0, 0, 0, 1

(1, 0, 0, 0, 0, 1) 9/–/–

(0, 0, 0, 0, 0, 1) 8 / 15 / 15

x1 = 0

x1 = 1

(0, 0, 0, 1, 1, 1) 14 / 61 / 61



(1, 0, 0, 0, 1, −) 12 / – / –

(1, 0, 0, 1, −, −) 15 / – / –

x1 = 1

x1 = 1

x6 = 0

x1 = 0

x6 = 0



0, 1, 56 , 1, 0, 0

x6 = 1

x3 = 1 (0, 1, 1, 1, −, −) 28 / – / –

(0, 1, 0, 1, 0, 1) 27 / 92 / 92

0, 1, 0, 1, 1, 5 25 / 98 / 95

 1

24 / 101 16 / 95





(1, 1, −, −, −, −) 29 / – / –

x1 = 1

19 / 104 / 96



18 , 1, 0, 0, 0, 0

 11

x4 = 1

x3 = 0

20 / 101 13 / 96

  0, 1, 1, 56 , 0, 0

x2 = 1

(0, 1, 0, 1, 1, 0) 26 / 95 / 95

(0, 1, 1, 0, 0, 1) 23 / 93 / 93

x6 = 1

x4 = 0   0, 1, 1, 0, 1, 15 21 / 99 / 96



3 1, 10 , 0, 0, 0, 0 1 / 104,7 / 90

(0, 1, 1, 0, 1, 0) 22 / 96 / 96

(1, 0, 1, −, −, −) 18 / – / –

6 , 0, 1, 0, 0, 0 16 / 104 / 90

5

x3 = 1

(0, 0, 1, 1, 1, 1) 17 / 90 / 90

(0, 0, 0, 0, 1, 1) 11 / 33 / 33

x1 = 1

7 / 95 / 15

x1 = 0

x1 = 0 

10 / 103 / 33

x6 = 1

8



18 , 0, 0, 0, 1, 0

 17

x5 = 1

13 / 103 / 61



x1 = 0

(1, 0, 0, 0, 0, 0) 6 / 90 / 90

x6 = 0

  1, 0, 0, 0, 0, 35 5 / 99 / 90

x5 = 0

5

  1, 0, 0, 0, 34 , 0 4 / 103,5 / 90

6 , 0, 0, 1, 0, 0

x4 = 1

1, 0, 0, 3 / 104 / 90



1 2 , 0, 0

x4 = 0



x3 = 0

 1, 0, 12 , 0, 0, 0 2 / 104,5 / 90



x2 = 0



210 4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

4.2 Branch & Bound

211

Abschließend wollen wir noch kurz den Effekt der g¨ultigen Ungleichungen von Martello und Toth (1997) diskutieren. Um die LP-Relaxation des um die g¨ultigen Ungleichungen (4.11) und (4.12) erg¨anzten Modells 4.1 zu l¨osen, sind wir nun auf den Simplex-Algorithmus 3.5 angewiesen, da das einfachere Verfahren, das in Anhang B.2 vorgestellt wird, nicht mehr funktioniert. Wir m¨ussen beachten, dass die Werte von K und K von den fixierten Variablenwerten und somit von dem jeweiligen Knoten abh¨angig sind. Daher erweitern wir die Notation in Abb. 4.10 dahingehend, dass die letzten beiden Eintr¨age im unteren Teil jedes Knotens die Werte von K und K bei der Untersuchung des Knotens darstellen. Wir wenden dar¨uber hinaus einen Test an, der uns hilft, Variablenwerte zu fixieren. F¨ur jede noch nicht fixierte Variable wird gepr¨uft, ob es eine zul¨assige L¨osung im Teilraum gibt, wenn der Wert dieser Variablen auf null bzw. eins fixiert w¨urde. Sollte dies nicht der Fall sein, wird diese Variable auf eins bzw. null fixiert. Diese Fixierungen sind mit einem Stern markiert und werden gesondert erl¨autert. Wir m¨ussen unsere Strategie zum Aufteilen eines Teilraums leicht modifizieren, denn es ist bei Verwendung der beiden g¨ultigen Ungleichungen m¨oglich, dass es mehr als eine Variable mit nicht-ganzzahligem Wert gibt. Wir teilen den Teilraum dann auf, indem wir die erste unter diesen Variablen auf null bzw. eins fixieren. Wir erhalten bei Anwendung der Bestensuche den Baum, der in Abb. 4.10 dargestellt ist.  3 , 0, 0, 0, 0 1, 10 1 / 104,7 / 90 / 1 / 4 

x2 = 0  1, 0, 12 , 0, 0, 0 2 / 104,5 / 90 / 1 / 4

x2 = 1   11 18 , 1, 0, 0, 0, 0 3 / 104 / 96 / 1 / 3



x3 = 0 (0∗ , 0, 0, 1, 1, 1) 4 / 61 / 61 / 2 / 4

x3 = 1

x1 = 0   0, 1, 1, 12 , 12 , 0 6 / 101 / 96 / 3 / 3

(0∗ , 0, 1, 1, 1, 1) 5 / 90 / 90 / 2 / 4 x4 = 0

(0, 1, 1, 0, 1, 0) 7 / 96 / 96 / 3 / 3

x4 = 1 (0, 1, 0∗ , 1, 1, 0) 8 / 95 / 95 / 3 / 3

Abb. 4.10 Branch & Bound f¨ur Knapsack mit g¨ultigen Ungleichungen

Die Werte von K und K im Wurzelknoten ergeben sich dadurch, dass in jeder optimalen L¨osung mindestens K = 1 Gegenstand in die Menge aufgenommen wird und die K + 1 = 5 Gegenst¨ande mit niedrigstem Gewicht nicht gemeinsam in die Menge aufgenommen werden k¨onnen. Die optimale L¨osung der Relaxation im Wurzelknoten entspricht der aus Abb. 4.9, da dort mindestens einer und h¨ochstens vier Gegenst¨ande in die Menge aufgenommen werden. Die erzeugten Teilr¨aume der beiden Kinderknoten entsprechen daher auch denen der Kinderknoten in Abb. 4.9. Der

212

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Wert von K in Knoten 2 a¨ ndert sich im Vergleich zum Wurzelknoten nicht. Wenn wir allerdings x2 = 1 setzen, dann k¨onnen wir erkennen, dass die drei Gegenst¨ande mit kleinstem Gewicht nicht zus¨atzlich in die Menge aufgenommen werden k¨onnen. Daher ergibt sich K = 3 f¨ur Knoten 3. In beiden Knoten a¨ ndert sich der Wert von K nicht, denn die beste bekannte L¨osung hat den Wert 90 und diese ist mit nur einem Gegenstand zu erzielen. Dies a¨ ndert sich auch nach Untersuchen von Knoten 2 nicht. Beim Untersuchen von Knoten 3 finden wir allerdings eine zul¨assige L¨osung mit Wert 96 und wissen daher, dass wir in jeder optimalen L¨osung mindestens zwei Gegenst¨ande in der Menge haben. Dadurch hat K in Knoten 4 bis 9 einen Wert von mindestens 2. Hieraus k¨onnen wir wiederum schließen, dass x1 = 0 fixiert werden kann, denn wenn Gegenstand 1 aufgenommen wird, kann kein zweiter Gegenstand aufgenommen werden. Dies wirkt sich zum einen auf den Teilbaum unter Knoten 2 aus und zum anderen auf das Aufteilen des Teilraums in Knoten 3, denn der (eigentlich f¨allige) Kinderknoten mit x1 = 1 wird nicht gebildet. Beim Untersuchen der Knoten 4 und 5 werden zul¨assige, aber keine verbessernden L¨osungen gefunden. F¨ur Knoten 6 k¨onnen wir schließen, dass in optimalen L¨osungen mindestens K = 3 Gegenst¨ande in die Menge aufgenommen werden, denn wenn Gegenstand 1 ausgeschlossen ist, haben die beiden verbleibenden Gegenst¨ande mit h¨ochstem Wert einen Gesamtwert von nicht mehr als 96. Dementsprechend werden in Knoten 6, 7 und 8 nur L¨osungen betrachtet, in denen genau drei Gegenst¨ande in die Menge aufgenommen werden. F¨ur Knoten 8 k¨onnen wir zudem x3 = 0 fixieren, denn das Gesamtgewicht der Gegenst¨ande 2, 3 und 4 u¨ bersteigt 21. Wenn wir den Ablauf in Abb. 4.9 und 4.10 vergleichen, erkennen wir, dass die Anzahl untersuchter Knoten stark reduziert wurde. Die einzigen zus¨atzlichen Informationen, die hier verwendet wurden, sind die g¨ultigen Ungleichungen und der Test einzelner Variablenwerte auf Unzul¨assigkeit.

4.2.3.2 Tourenplanung Wir verwenden die 1-Baum-Relaxation zu Problem 1.2 (Tourenplanung) wie in Abschnitt 4.2.2.1 vorgestellt und teilen den aktuellen Teilraum wie in Abschnitt 4.2.2.2 erl¨autert. Die resultierenden Relaxationen werden durch scharfes Hinsehen“ gel¨ost. ” Wir verzichten auf den Einsatz einer Heuristik. Die zu l¨osende Instanz von Problem 1.2 (Tourenplanung) ist in Abb. 4.11 dargestellt. Auch hier legen wir uns zun¨achst noch nicht auf eine Knotenreihenfolge fest und entwickeln das vollst¨andige Baumdiagramm, d. h., wir verzweigen einen Teilraum immer, wenn die 1-Baum-Relaxation eine zul¨assige L¨osung hat, die optimale L¨osung aber keine zul¨assige L¨osung von Problem 1.2 (Tourenplanung), also keine Tour, ist. Um den Aufwand zu reduzieren, werden wir einen Teilraum auch dann nicht weiter untersuchen, wenn wir erkennen k¨onnen, dass er keine Tour enth¨alt (auch wenn er noch 1-B¨aume enth¨alt und daher zul¨assige L¨osungen zur 1-BaumRelaxation existieren). Auch hier kann es nicht passieren, dass die Relaxation unbeschr¨ankt ist, da jede Kante einmal oder gar nicht im 1-Baum enthalten sein kann. Der resultierende Suchbaum des B&B-Verfahrens ist in Abb. 4.12 dargestellt, wobei der

4.2 Branch & Bound

213 2 0

0

1

1

3

1

2 0

2

0

6

Abb. 4.11 Instanz des Problems 1.2 (Tourenplanung)

5

0

4

erste Wert im Knoten eine identifizierende Nummer und der zweite der Zielfunktionswert ist, falls der optimale 1-Baum eine zul¨assige L¨osung ist. Die zu den Knoten geh¨orenden Parameter und Ergebnisse finden sich in den Tabellen 4.5 und 4.6. In Anhang B.3 sind zudem die Graphen und die gew¨ahlten 1-B¨aume jedes Knotens grafisch dargestellt. F¨ur jeden Knoten im Suchbaum wird der optimale 1-Baum (unter Ber¨ucksichtigung der Mengen R und F) bestimmt und in den Tabellen 4.5 und 4.6 ausgewiesen. Dann werden, sofern n¨otig, jeweils der in den Tabellen 4.5 und 4.6 genannte Knoten v und die Kanten e1 und e2 zum Verzweigen benutzt. F¨ur jeden aufgeteilten Teilraum entstehen so zwei oder drei Kinderknoten. Dies liegt daran, dass wir f¨ur die Aufteilung, sofern m¨oglich, immer einen Knoten v mit mindestens drei inzidenten Kanten im 1-Baum w¨ahlen, f¨ur den bereits eine inzidente Kante in der Menge R ist. Dann entf¨allt der erste der drei in Abschnitt 4.2.2.2 beschriebenen Teilr¨aume. Zum Beispiel wird bei der Untersuchung von Knoten 6 der optimale 1-Baum mit R = {{2, 3}, {3, 4}} und F = {{1, 2}, {1, 3}, {3, 5}} ermittelt. Dieser besteht aus den Kanten {1, 4}, {2, 3}, {2, 5}, {3, 4} und {4, 5}. Knoten v = 4 hat drei inzidente Kanten im 1-Baum (wovon {3, 4} schon in R ist) und wir w¨ahlen e1 = {4, 5} und e2 = {1, 4}. Es entstehen zwei Kinderknoten (da der erste Teilraum nicht gebildet wird): Im zweiten Teilraum wird {4, 5} in R und {1, 4} in F und im dritten Teilraum wird lediglich {4, 5} in F aufgenommen. Der Baum in Abb. 4.12 ist so dargestellt, dass die Kinderknoten von links nach rechts jeweils dem ersten (falls vorhanden), zweiten und dritten Teilraum entsprechen. Wir k¨onnen schon intuitiv nachvollziehen, dass sich die drei Teilr¨aume in ihrer Gr¨oße unterscheiden. Im ersten Teilraum werden zwei Kanten, n¨amlich e1 und e2 , in R aufgenommen und dadurch mindestens |V | − 3 Kanten, n¨amlich alle u¨ brigen zu Knoten v inzidenten, ausgeschlossen (von denen m¨oglicherweise schon welche in F waren). Im zweiten Teilraum wird nur Kante e1 in R aufgenommen und nur Kante e2 in F aufgenommen. Im dritten Teilraum wird keine Kante in R und nur e1 in F aufgenommen. Diese Intuition wird durch Abb. 4.12 best¨atigt, denn der Teilbaum

214

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

48/47/-

45/ 42/-

43/-

40/3 7/6

Abb. 4.12 Branch & Bound f¨ur Tourenplanung

5/

8/-

2/

25/9 26/-

35/- 36/10 22/ 23/10 24/-

34/ 37/- 38/6 20/19/11/- 12/9

9/-

6/

10/

15/-

13/

16/2

3/

1/

17/3

14/

18/

21/

33/-

31/

27/2

30/

28/

4/

32/3

39/

29/

44/

41/

46/3

unter dem rechten Kinderknoten ist tendenziell gr¨oßer als der unter dem mittleren, der wiederum tendenziell gr¨oßer als der unter dem linken ist.

4.2 Branch & Bound

215

Tabelle 4.5 Branch & Bound f¨ur Tourenplanung (Teil 1) R 1 0/ 2 {2, 3}, {3, 4} 3 {2, 3} 4 0/ 5 {1, 2}, {2, 3}, {3, 4} 6 {2, 3}, {3, 4} 7 {1, 2}, {2, 3}, {3, 4}, {4, 5} 8 {1, 2}, {2, 3}, {3, 4} 9 {2, 3}, {3, 4} {4, 5} 10 {2, 3}, {3, 4} 11 {2, 3}, {2, 4}, {3, 4} 12 {2, 3}, {3, 4} 13 {1, 2}, {2, 3} 14 {2, 3} 15 {1, 2}, {1, 3}, {2, 3} 16 {1, 2}, {2, 3} 17 {1, 3}, {2, 3} 18 {2, 3} 19 {2, 3}, {2, 5}, {3, 5} 20 {2, 3}, {2, 5} 21

{2, 3}

22 {2, 3}, {2, 4}, {4, 5} 23 {2, 3}, {2, 4} 24

{2, 3}

25 {1, 5}, {2, 3}, {2, 4}, {4, 5}

5 6 7 8

F 0/ {1, 3}, {3, 5} {3, 4} {2, 3} {1, 3}, {2, 4}, {2, 5}, {3, 5} {1, 2}, {1, 3}, {3, 5} {1, 3}, {1, 4}, {2, 4}, {2, 5}, {3, 5} {1, 3}, {2, 4}, {2, 5}, {3, 5}, {4, 5} {1, 2}, {1, 3}, {1, 4}, {2, 4}, {3, 5} {1, 2}, {1, 3}, {3, 5}, {4, 5} {1, 2}, {1, 3}, {1, 4}, {2, 5}, {3, 5}, {4, 5} {1, 2}, {1, 3}, {2, 4}, {3, 5}, {4, 5} {2, 4}, {2, 5}, {3, 4} {1, 2}, {3, 4} {1, 4}, {1, 5}, {2, 4}, {2, 5}, {3, 4}, {3, 5} {1, 3}, {2, 4}, {2, 5}, {3, 4} {1, 2}, {3, 4}, {3, 5} {1, 2}, {1, 3}, {3, 4} {1, 2}, {1, 3}, {1, 5}, {2, 4}, {3, 4}, {4, 5} {1, 2}, {1, 3}, {2, 4}, {3, 4}, {3, 5} {1, 2}, {1, 3}, {2, 5}, {3, 4} {1, 2}, {1, 3}, {1, 4}, {2, 5}, {3, 4} {1, 2}, {1, 3}, {2, 5}, {3, 4}, {4, 5} {1, 2}, {1, 3}, {2, 4}, {2, 5}, {3, 4} {1, 2}, {1, 3}, {1, 4}, {2, 5}, {3, 4}, {3, 5}

optimaler 1-Baum {1, 2}, {2, 3}, {3, 4}, {3, 5}, {4, 5} {1, 2}, {2, 3}, {2, 5}, {3, 4}, {4, 5} {1, 2}, {2, 3}, {2, 5}, {3, 5}, {4, 5} {1, 2}, {2, 5}, {3, 4}, {3, 5}, {4, 5} {1, 2}, {1, 4}, {2, 3}, {3, 4}, {4, 5}

LB 0 1 1 1 2

v 3 2 2 5 4

e1 {2, 3} {1, 2} {1, 2} {2, 5} {4, 5}

e2 {3, 4} {2, 5} {2, 5} {4, 5} {1, 4}

{1, 4}, {2, 3}, {2, 5}, {3, 4}, {4, 5} 2 4 {4, 5} {1, 4} {1, 2}, {1, 5}, {2, 3}, {3, 4}, {4, 5} 6 keine Tour im Teilraum5

- -

-

-

keine Tour im Teilraum6

- -

-

-

{1, 4}, {2, 3}, {2, 4}, {2, 5}, {3, 4} 5 2 {2, 4} {2, 5} unzul¨assig

- -

-

-

{1, 4}, {1, 5}, {2, 3}, {2, 5}, {3, 4} 9 -

-

-

{1, 2}, {1, 3}, {2, 3}, {3, 5}, {4, 5} 1 3 {1, 3} {3, 5} {1, 3}, {2, 3}, {2, 5}, {3, 5}, {4, 5} 2 3 {1, 3} {3, 5} unzul¨assig - {1, 2}, {1, 4}, {2, 3}, {3, 5}, {4, 5} 2 -

-

-

{1, 3}, {1, 4}, {2, 3}, {2, 5}, {4, 5} 4 {1, 4}, {2, 3}, {2, 5}, {3, 5}, {4, 5} 3 5 {2, 5} {3, 5} unzul¨assig - keine Tour im Teilraum7

- -

-

-

{1, 4}, {2, 3}, {2, 4}, {3, 5}, {4, 5} 4 4 {2, 4} {4, 5} {1, 5}, {2, 3}, {2, 4}, {3, 5}, {4, 5} 8 5 {1, 5} {3, 5} {1, 4}, {1, 5}, {2, 3}, {2, 4}, {3, 5} 10 -

-

-

keine Tour im Teilraum8

- -

-

-

unzul¨assig

- -

-

-

Es kann h¨ochstens eine zu Knoten 5 inzidente Kante gew¨ahlt werden. Es kann h¨ochstens eine zu Knoten 1 inzidente Kante gew¨ahlt werden. Es kann keine zweite zu Knoten 3 inzidente Kante gew¨ahlt werden. Es kann keine zweite zu Knoten 2 inzidente Kante gew¨ahlt werden.

216

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Tabelle 4.6 Branch & Bound f¨ur Tourenplanung (Teil 2) R 26 {2, 3}, {2, 4}, {4, 5} 27 {2, 5}, {4, 5} 28 {2, 5} 29 0/ 30 {1, 3}, {2, 5}, {3, 4} 31 {1, 3}, {2, 5} 32 {2, 5} 33 {1, 2}, {1, 3}, {2, 5}, {3, 4} 34 {1, 3}, {2, 5}, {3, 4} 35 {1, 3}, {1, 4}, {2, 5}, {3, 4} 36 {1, 3}, {2, 5}, {3, 4} 37 {1, 2}, {1, 3}, {2, 5} 38 {1, 3}, {2, 5} 39 {1, 3}, {3, 4} 40 {1, 3} 41 0/ 42 {1, 3}, {2, 4} {3, 4} 43 {1, 3}, {3, 4} 44 {3, 4}, {4, 5} 45

{4, 5}

46

0/

47 {1, 4}, {4, 5} 48

{4, 5}

F {1, 2}, {1, 3}, {1, 4}, {1, 5}, {2, 5}, {3, 4} {1, 5}, {2, 3}, {3, 5} {2, 3}, {4, 5} {2, 3}, {2, 5} {2, 3}, {3, 5}, {4, 5} {2, 3}, {3, 4}, {4, 5} {1, 3}, {2, 3}, {4, 5} {1, 4}, {1, 5}, {2, 3}, {2, 4}, {3, 5}, {4, 5} {1, 2}, {2, 3}, {3, 5}, {4, 5} {1, 2}, {1, 5}, {2, 3}, {2, 4}, {3, 5}, {4, 5} {1, 2}, {1, 4}, {2, 3}, {3, 5}, {4, 5} {1, 4}, {1, 5}, {2, 3}, {2, 4}, {3, 4}, {4, 5} {1, 2}, {2, 3}, {3, 4}, {4, 5} {2, 3}, {2, 5}, {3, 5} {2, 3}, {2, 5}, {3, 4} {1, 3}, {2, 3}, {2, 5} {1, 4}, {2, 3}, {2, 5}, {3, 5}, {4, 5} {2, 3}, {2, 4}, {2, 5}, {3, 5} {1, 3}, {1, 4}, {2, 3}, {2, 4}, {2, 5} {1, 3}, {2, 3}, {2, 5}, {3, 4} {1, 3}, {2, 3}, {2, 5} {4, 5} {1, 3}, {2, 3}, {2, 4}, {2, 5}, {3, 4} {1, 3}, {1, 4}, {2, 3}, {2, 5}, {3, 4}

1-Baum unzul¨assig {1, 2}, {1, 3}, {2, 5}, {3, 4}, {4, 5} {1, 2}, {1, 3}, {2, 5}, {3, 4}, {3, 5} {1, 2}, {2, 5}, {3, 4}, {3, 5}, {4, 5} {1, 2}, {1, 3}, {1, 4}, {2, 5}, {3, 4}

LB v - 2 2 1 4

e1 -

e2 -

3 {1, 3} {3, 4} 3 {1, 3} {3, 4} 1 {1, 2} {1, 4}

{1, 2}, {1, 3}, {2, 4}, {2, 5}, {3, 5} 4 2 {1, 2} {2, 4} {1, 2}, {1, 4}, {2, 5}, {3, 4}, {3, 5} 3 unzul¨assig - {1, 3}, {1, 4}, {2, 4}, {2, 5}, {3, 4} 4 4 {1, 4} {2, 4} unzul¨assig

- -

-

-

{1, 3}, {1, 5}, {2, 4}, {2, 5}, {3, 4} 10 -

-

-

- -

-

-

{1, 3}, {1, 4}, {2, 4}, {2, 5}, {3, 5} 6 -

-

-

unzul¨assig

{1, 2}, {1, 3}, {2, 4}, {3, 4}, {4, 5} {1, 2}, {1, 3}, {2, 4}, {3, 5}, {4, 5} {1, 2}, {2, 4}, {3, 4}, {3, 5}, {4, 5} keine Tour im Teilraum5

3 3 2 -

4 {2, 4} {4, 5} 4 {4, 5} {3, 4} -

keine Tour im Teilraum9

- -

-

-

keine Tour im Teilraum9

- -

-

-

{1, 2}, {1, 4}, {2, 4}, {3, 5}, {4, 5} 4 4 {1, 4} {2, 4} {1, 2}, {1, 4}, {2, 5}, {3, 4}, {3, 5} 3 -

-

-

keine Tour im Teilraum9

- -

-

-

keine Tour im Teilraum10

- -

-

-

Wenn wir Tiefensuche als Knotenreihenfolge verwenden und die Kinderknoten immer von links nach rechts untersuchen, dann entfallen die Teilb¨aume unter den Knoten 14, 28, 39 und 41 (f¨ur die die optimale L¨osung zur Relaxation keinen besseren Wert als die beste bekannte Tour mit Wert 2 (ermittelt in Knoten 16) hat). Somit reduziert sich die Anzahl untersuchter Knoten von 50 auf 22. Wenn wir Bestensuche anwenden, dann entfallen die Teilb¨aume unter den Konten 5, 6, 14, 28, 39 und 41 9

Es kann h¨ochstens eine zu Knoten 2 inzidente Kante gew¨ahlt werden. Es kann h¨ochstens eine zu Knoten 3 inzidente Kante gew¨ahlt werden.

10

4.3 Schnittebenenverfahren

217

(f¨ur die die optimale L¨osung zur Relaxation keinen besseren Wert als die beste bekannte Tour mit Wert 2 (ermittelt in Knoten 27) hat). Es werden also nur 16 Knoten untersucht. Die Breitensuche w¨urde hier zu demselben Ablauf f¨uhren, da ein Blatt mit geringstem Abstand zu dem Wurzelknoten eine optimale Tour liefert.

4.3 Schnittebenenverfahren In diesem Abschnitt wird zun¨achst der prinzipielle Ablauf eines Schnittebenenverfahrens bzw. dessen Motivation in Abschnitt 4.3.1 vorgestellt. Analog zu Abschnitt 4.2 muss dieses generische Prinzip durch Konkretisierung verschiedener Komponenten ausgestaltet werden. Diese Komponenten werden in Abschnitt 4.3.2 erl¨autert. Dabei werden etliche Konzepte und Erkenntnisse verwendet, die schon in Abschnitt 4.2 diskutiert wurden. Diese werden dann hier nicht ausf¨uhrlich erl¨autert; stattdessen wird auf die Entsprechung in Abschnitt 4.2 verwiesen. Abschließend finden sich in Abschnitt 4.3.3 Beispiele f¨ur konkrete Schnittebenenverfahren.

4.3.1 Generelle Vorgehensweise Auch in Schnittebenenverfahren spielen Relaxationsvorschriften bzw. Relaxationen (siehe Definition 4.3 auf S. 183) eine zentrale Rolle. Wir konstruieren zun¨achst eine Relaxation der zu l¨osenden Probleminstanz mittels einer Relaxationsvorschrift. Die aktuell vorliegende Relaxation wird dann gel¨ost. Wenn die optimale L¨osung der Relaxation zul¨assig f¨ur die zu l¨osende Instanz ist, dann ist sie auch optimal (siehe Erl¨auterungen zu der Verwendung von Relaxationen in Algorithmus 4.1 auf S. 183). Wenn die optimale L¨osung der Relaxation nicht zul¨assig f¨ur die zu l¨osende Instanz ist, modifizieren wir die Relaxation so, dass die vormals optimale L¨osung nicht mehr zul¨assig ist. Dabei wird die Menge zul¨assiger L¨osungen zwar verkleinert, aber wir stellen sicher, dass die modifizierte Relaxation ebenfalls eine Relaxation der zu l¨osenden Instanz ist. Mit dieser neuen Relaxation wiederholen wir den Schritt. Sukzessiv verkleinern wir also die Menge zul¨assiger L¨osungen der Relaxation bis die optimale L¨osung der Relaxation zul¨assig, und somit auch optimal, f¨ur die zu l¨osende Instanz ist. Die Einschr¨ankung des LR der Relaxation in jedem Schritt wird als Schnittebene bezeichnet. Definition 4.6 (Schnittebene). F¨ur ein Optimierungproblem P , eine Relaxation I einer Instanz I  von P und eine optimale L¨osung s von I, die nicht zul¨assig f¨ur I  ist, ist eine Schnittebene eine NB, die nicht durch s, aber durch alle zul¨assigen L¨osungen von I  erf¨ullt wird.

218

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Salopp formuliert: Schnittebene Eine Schnittebene schneidet L¨osungen aus dem LR der Relaxation, die unzul¨assig f¨ur die zu l¨osende Instanz sind. Unter den eliminierten L¨osungen befindet sich eine optimale L¨osung der Relaxation. Das Prinzip wollen wir zun¨achst grafisch veranschaulichen und danach in Algorithmus 4.3 konkretisieren. Abb. 4.13 veranschaulicht die L¨osungsr¨aume einer

I

3

I

1 4 2 3 1

2 Abb. 4.13 Prinzip des Schnittebenenverfahrens

Probleminstanz I  und der ersten zu l¨osenden Relaxation I als das jeweils Innere der beiden rechteckigen Fl¨achen. Wir wollen davon ausgehen, dass die beiden Zielfunktionen von I  und I identisch sind. Die optimale L¨osung von I ist mit 1 bezeichnet und ist nicht zul¨assig f¨ur I  (wir beziehen uns hier nicht auf ein konkretes Problem, insofern sind auch die hier angedeuteten L¨osungen willk¨urlich positioniert). Nun wird Relaxation I modifiziert, indem der LR verkleinert wird, was durch die Gerade 1 angedeutet wird. Als zul¨assig f¨ur die Relaxation werden dann nur noch die L¨osungen erachtet, die unterhalb oder links der Geraden 1 liegen. Wir k¨onnen erkennen, dass I eine Relaxation von I  bleibt. Zudem ist die vormals optimale L¨osung 1 der Relaxation nicht mehr zul¨assig f¨ur I. Nun ergibt sich die optimale L¨osung 2 im verbleibenden LR. Diese kann nicht besser als L¨osung 1 sein, weil wir den LR verkleinert haben. Auch L¨osung 2 ist nicht zul¨assig f¨ur I  und wiederum wird der LR der Relaxation verkleinert. Nun werden nur noch die L¨osungen als zul¨assig angesehen, die unterhalb oder links der Geraden 2 (und der Geraden 1) liegen. Wiederum erhalten wir eine Relaxation von I  , f¨ur die die vormals optimale L¨osung keine zul¨assige L¨osung darstellt. Das Vorgehen wiederholt sich noch ein weiteres Mal mit Finden der L¨osung 3 und Einschr¨anken des LRs durch Gerade 3. Dann

4.3 Schnittebenenverfahren

219

wird die optimale L¨osung 4 der Relaxation gefunden, die auch zul¨assig und somit optimal f¨ur I  ist. Algorithmus 4.3 (Schnittebenenverfahren). Eingabe: Instanz eines IP Ausgabe: optimale L¨osung oder Information, dass keine existiert11 1. Initialisiere Menge der Schnittebenen C ← 0/ 2. L¨ose die Relaxation mit allen Schnittebenen in C. 3. Wenn die Relaxation unzul¨assig ist, ist die Instanz des IP unzul¨assig. STOP. 4. Wenn die Relaxation unbeschr¨ankt ist, ist die Instanz des IP unbeschr¨ankt.12 STOP. 5. Wenn die optimale L¨osung s der Relaxation zul¨assig ist, ist die optimale L¨osung der Relaxation eine optimale L¨osung der Instanz des IPs. STOP. 6. Wenn s unzul¨assig ist, dann finde eine Schnittebene c, die von allen zul¨assigen L¨osungen, aber nicht von s erf¨ullt wird. Setze C ← C ∪ {c} und gehe zu 2. W¨ahrend das Prinzip intuitiv leicht fassbar ist, soll aber betont werden, welche nicht trivialen Eigenschaften das Verfahren haben muss. Wie schon angesprochen, muss die jeweilige Einschr¨ankung des LRs zwar die aktuelle optimale L¨osung der Relaxation ausschließen, darf aber keine zul¨assige L¨osung der zu l¨osenden Instanz ausschließen. Zudem sollte garantiert sein, dass wir in endlich vielen Iterationen eine zul¨assige L¨osung der zu l¨osenden Instanz erhalten. Wie wir im Folgenden sehen werden, ist gerade die letzte Anforderung nicht leicht zu erf¨ullen. Wir k¨onnen uns anhand eines einfachen Beispiels vor Augen f¨uhren, dass ein iteratives Reduzieren des LRs nicht zwangsl¨aufig zur optimalen L¨osung f¨uhrt. Wir betrachten daf¨ur das folgende Optimierungsproblem“: Finde ” ” die gr¨oßte ganze Zahl x mit einem Wert kleiner oder gleich 1/2.“ In diesem Fall gibt es nur eine Instanz zu dem Problem, sodass wir nicht zwischen Problem und Instanz unterscheiden m¨ussen. Die L¨osung selber ist nat¨urlich offensichtlich, aber wir k¨onnten versuchen, uns der L¨osung zu n¨ahern, indem wir die Relaxation betrachten, in der auch reelle Werte zugelassen sind. Wir erhalten x = 1/2 als optimale L¨osung der Relaxation und m¨ussen jetzt den LR ]−∞; 1/2] weiter einschr¨anken. Wir k¨onnen dies z. B. tun, indem wir eine obere Schranke f¨ur den Wert von x formulieren, der den aktuellen halbiert. Wir k¨onnten also fordern, dass x h¨ochstens den Wert 1/4 annimmt. Somit wird die vormals optimale L¨osung unzul¨assig und wir haben weiterhin eine Relaxation des Ausgangsproblems, denn es liegt keine ganze Zahl zwischen 1/4 und 1/2. Wir k¨onnen leicht erkennen, dass wir in jedem Schritt eine optimale L¨osung mit einem Wert erhalten, der halb so groß wie der vorherige ist. Allerdings wird niemals eine zul¨assige L¨osung des Ausgangsproblems erreicht, da die 11

Ob diese Ausgabe garantiert werden kann, h¨angt von der konkreten Ausgestaltung des Verfahrens, von dem zu l¨osenden IP und ggf. sogar von der zu l¨osenden Probleminstanz ab. In der Regel werden wir diese Ausgabe aber sicherstellen k¨onnen. 12 Dies gilt nicht allgemein; wir m¨ ussen durch problemspezifisches Wissen ausschließen, dass die Relaxation unbeschr¨ankt ist, oder sicherstellen, dass aus Unbeschr¨anktheit der Relaxation Unbeschr¨anktheit der Instanz folgt.

220

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

aktuelle obere Schranke immer positiv ist. Das Verfahren konvergiert dann gegen die optimale L¨osung, aber es erreicht sie nicht. Es k¨onnte nat¨urlich noch schlechter laufen, indem das Verfahren nicht einmal gegen das Optimum konvergiert. Wenn wir z. B. die obere Schranke modifizieren, indem wir die Differenz zum Wert 1/10 halbieren, dann erhalten wir die oberen Schranken 1/2, 3/10, 2/10, 3/20 usw. Die obere Schranke ist immer gr¨oßer als 1/10 und das Verfahren konvergiert gegen eine L¨osung mit eben diesem Wert, aber nicht gegen eine zul¨assige L¨osung. Das hier bespielhaft betrachtete Optimierungsproblem ist trivial zu l¨osen, und daher geht es uns nicht um die L¨osung selber. Das Beispiel zeigt aber, dass das Ph¨anomen der Konvergenz ohne Erreichen einer zul¨assigen L¨osung“ eintreten kann. Wie dieses ” Ph¨anomen vermieden werden kann, werden wir in Abschnitt 4.3.2 und Anhang B.4 behandeln. Salopp formuliert: Schnittebenenverfahren In Schnittebenenverfahren wird die Menge der zul¨assigen L¨osungen einer Relaxation so lange sukzessiv reduziert, bis die optimale L¨osung der Relaxation zul¨assig, und damit optimal, f¨ur die zu l¨osende Instanz ist.

4.3.2 Komponenten In Algorithmus 4.2 sind einige Komponenten noch nicht spezifiziert (insofern d¨urfen wir eigentlich gar nicht von einem Algorithmus gem¨aß Definition 1.5 sprechen). Um ein Verfahren vollst¨andig zu definieren, m¨ussen wir drei Komponenten festlegen: die Relaxationsvorschrift, die Struktur der Schnittebenen und die Regel, nach der wir ggf. eine Auswahl der als n¨achstes zu erg¨anzenden Schnittebene treffen. Diese einzelnen Komponenten werden in den Abschnitten 4.3.2.1 bis 4.3.2.3 besprochen. Dabei kann es nur darum gehen, allgemein zu erl¨autern, was bei der Ausgestaltung ber¨ucksichtigt werden sollte, da die Ausgestaltung selber h¨aufig problemabh¨angig ist. Wir werden dies aber an konkreten Beispielen veranschaulichen. Besondere Bedeutung hat im Folgenden ein Schnittebenenverfahren nach Gomory (1958) und Gomory (1960), das die LP-Relaxation einer Instanz des IPs oder MIPs nutzt. Die verwendeten Schnittebenen f¨ur IPs unterscheiden sich von denen f¨ur MIPs, weshalb wir hier auch explizit auf MIPs eingehen. Die zun¨achst in den Abschnitten 4.3.2.1 bis 4.3.2.3 vorgestellte Variante hat allerdings keine Garantie, die optimale L¨osung zu bestimmen. Eine aufwendigere und nach Wahrnehmung des Autors deutlich weniger popul¨are Variante, die das Optimum garantiert, wird in Anhang B.4 als Modifikation der zun¨achst vorgestellten Variante erl¨autert. Wir werden f¨ur die Betrachtung dieser Schnittebenenverfahren davon ausgehen, dass ein IP oder MIP mit ausschließlich ganzzahligen Koeffizienten zu l¨osen ist. Dies ist eine Einschr¨ankung, allerdings eine geringere, als man zun¨achst annehmen w¨urde. Wenn alle Koeffizienten rationale Werte haben, dann k¨onnen wir diese mit einem geeigneten Wert multiplizieren. Wir a¨ ndern dadurch das MO nicht wesentlich und erhalten

4.3 Schnittebenenverfahren

221

ganzzahlige Koeffizienten. F¨ur IPs, in denen nicht alle Koeffizienten rational sind, gelten einige Eigenschaften des Verfahrens nicht. Neben den Ans¨atzen, die auf Gomory (1958) und Gomory (1960) zur¨uckgehen, stellen wir in den Abschnitten 4.3.2.1 bis 4.3.2.3 eine weitere generische Ausgestaltung vor, die auf Relaxationen basiert, die wir durch Ignorieren von NB erhalten.

4.3.2.1 Relaxationsvorschrift Wie wir Relaxationsvorschriften bzw. Relaxationen (siehe Definitionen 4.2 und 4.3 auf S. 183 und 183) in Schnittebenenverfahren einsetzen, haben wir schon in Abschnitt 4.3.1 besprochen. Analog zur Verwendung einer Relaxationsvorschrift in einem B&B-Verfahren (siehe Abschnitt 4.2.2.1) kann zwar grunds¨atzlich auch in einem Schnittebenenverfahren jede beliebige Relaxationsvorschrift verwendet werden, die Effizienz des resultierenden Verfahrens h¨angt allerdings von mehreren Faktoren ab. Auch f¨ur den Einsatz in Schnittebenenverfahren sollten die Relaxationen m¨oglichst effizient l¨osbar sein, eine hohe Absch¨atzungsqualit¨at aufweisen und gut auf die u¨ brigen Komponenten des Verfahrens abgestimmt sein.

LP-Relaxation Auch im Kontext von Schnittebenenverfahren hat die LP-Relaxation sich bew¨ahrt. Die Vorteile wurden bereits in Abschnitt 4.2.2.1 aufgef¨uhrt. Die Art der Modifikation des betrachteten LR in einem Schnittebenenverfahren unterscheidet sich nat¨urlich von der in einem B&B-Verfahren, denn in Schnittebenenverfahren reduzieren wir die Menge zul¨assiger L¨osungen w¨ahrend wir sie bei B&B-Verfahren in Teilmengen aufteilen. Aber auch hier gilt, dass wir jede sich ergebende Relaxation effizient l¨osen k¨onnen, wenn wir die Schnittebenen durch lineare NB implementieren k¨onnen, denn dann ist auch die modifizierte Relaxation als LP darstellbar. Auch hier besteht das Risiko, dass wir eine unbeschr¨ankte LP-Relaxation nicht sicher interpretieren k¨onnen. Genaue Erl¨auterungen hierzu finden sich ebenfalls in 4.2.2.1. Kritisch ist weiterhin, wie die Einschr¨ankung des LRs vorgenommen werden soll. Dass dies nicht offensichtlich ist, haben wir schon an dem trivialen Beispiel in Abschnitt 4.3.1, bei dem die LP-Relaxation verwendet wurde, gesehen. Wir werden hierf¨ur allerdings in Abschnitt 4.3.2.2 ein m¨achtiges Werkzeug kennenlernen. An dieser Stelle wollen wir kurz die Dom¨ane der Schlupfvariablen der LPRelaxation diskutieren. Diese werden wir beim L¨osen der LP-Relaxationen einf¨ugen und naturgem¨aß beschr¨anken wir diese nicht auf ganzzahlige Werte. Allerdings nehmen sie in jeder zul¨assigen L¨osung (in der die Strukturvariablen ganzzahlige Werte haben) ganzzahlige Werte an, denn sie ergeben sich als Differenz zwischen dem Wert auf der RHS und dem Wert auf der linken Seite des Tableaus. Der Wert auf der RHS ist annahmegem¨aß ganzzahlig. Der Wert auf der linken Seite des Tableaus ergibt sich als Summe von Produkten aus ganzzahligen Koeffizienten und ganzzahligen Strukturvariablenwerten (in einer zul¨assigen L¨osung) und ist somit f¨ur zul¨assige

222

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

L¨osungen des IPs ebenfalls ganzzahlig. Wir m¨ussen also im Folgenden bzgl. der Ganzzahligkeitsanforderungen nicht zwischen Struktur- und Schlupfvariablen unterscheiden.

Relaxation durch Eliminieren von NB Eine weitere generische Form der Relaxation basiert ebenfalls auf der Darstellung eines Problems in Form eines MO. Ein zweites Problem bzw. ein MO, das sich durch die Eliminierung von NB aus dem ersten ergibt, ist nat¨urlich ein relaxiertes Problem. Dies gilt unabh¨angig davon, welches Ausgangsproblem bzw. MO betrachtet wird und welche NB eliminiert werden. Allerdings gilt es, die zu eliminierenden NB so zu w¨ahlen, dass die Relaxation die gew¨unschten Eigenschaften aufweist (siehe Abschnitt 4.2.2.1). Pferschy und Stanˇek (2017) verwenden ein Schnittebenenverfahren zur L¨osung von Problem 1.2 (Tourenplanung). Das verwendete relaxierte Problem k¨onnen wir mittels Model 2.3 auf S. 178 erl¨autern. Das relaxierte Problem erhalten wir durch Elimination von allen oder einzelnen NB (4.7) und l¨asst sich wie folgt verbal beschreiben. Es gilt, f¨ur jeden Ort einen Vorg¨anger und einen Nachfolger zu finden. Das Ziel bleibt, die gesamte Distanz zwischen Orten und dem jeweiligen Nachfolger zu minimieren. In der Relaxation sind dann einige, wom¨oglich sogar alle, Subtouren nicht ausgeschlossen. Bei Wahl dieser Relaxationsvorschrift muss in jedem Schritt ein IP gel¨ost werden, was relativ viel Aufwand bedeutet. Durch zunehmende Effizienz der Softwarepakete, die Pferschy und Stanˇek (2017) zum L¨osen der Relaxationen, also der jeweiligen IPs, verwenden, erzielen die Autoren dabei vielversprechende Ergebnisse. Vierzig Jahre fr¨uher waren die verf¨ugbaren Softwarepakete wesentlich weniger ausgereift, sodass Miliotis (1978) eine Relaxationsvorschrift verwendete, in der neben der NB (4.7) auch die Ganzzahligkeitsbedingungen fallen gelassen wurden. In jedem Schritt wird dann lediglich ein LP gel¨ost, was bedeutend schneller geht. Allerdings werden auch deutlich mehr Schnittebenen und somit Iterationen des Verfahrens ben¨otigt, um die optimale L¨osung zu finden, da die Absch¨atzungsqualit¨at der Relaxation niedriger ist. Wir beobachten also auch hier wieder die zwei gegenl¨aufigen Effekte, die wir schon in Abschnitt 4.2.2.1 diskutiert haben.

4.3.2.2 Schnittebenen Immer dann, wenn die optimale L¨osung der aktuellen Relaxation nicht zul¨assig f¨ur die zu l¨osende Instanz ist, erg¨anzen wir weitere Schnittebenen. Hierf¨ur haben wir u¨ blicherweise viele M¨oglichkeiten. Da wir aber nicht in jeder Iteration individuell entscheiden wollen, welche Schnittebene erg¨anzt wird, ben¨otigen wir einen Mechanismus, der f¨ur jede m¨ogliche optimale L¨osung der aktuellen Relaxation eine Schnittebene liefert, sofern die L¨osung nicht zul¨assig ist. Die gelieferte Schnittebene muss bzw. sollte m¨oglichst die folgenden Eigenschaften haben.

4.3 Schnittebenenverfahren

223

• Die erhaltenen Relaxationen sollten mit einem oder wenigen effizienten Verfahren l¨osbar sein. Dies ist nicht selbstverst¨andlich, denn die Erg¨anzung einer Schnittebene beeinflusst die Struktur der Relaxation. Wenn die Relaxationsvorschrift und die Schnittebenen nicht aufeinander abgestimmt sind, kann es passieren, dass die im Verlauf des Verfahrens betrachteten Relaxationen keine gemeinsame Struktur haben, die eine effiziente L¨osung durch ein oder wenige Verfahren zulassen. Dies sollte aber der Fall sein, denn es ist uns bei m¨oglicherweise sehr vielen zu erg¨anzenden Schnittebenen nicht m¨oglich, Einzelfallbetrachtungen durchzuf¨uhren und fallweise Verfahren zu entwickeln. • Es sollte garantiert sein, dass die optimale L¨osung der Relaxation nach Einf¨ugen einer endlichen Anzahl von Schnittebenen zul¨assig, und somit optimal, f¨ur die Instanz des zu l¨osenden IPs ist. Dies kann durch eine einzelne Schnittebene in der Regel nicht sichergestellt werden, sondern es h¨angt von dem Mechanismus zur Generierung der Schnittebenen bzw. der Gesamtheit der durch ihn generierten Schnittebenen ab. Salopp formuliert: Wahl der Schnittebenen Bei der Erg¨anzung von Schnittebenen zielen wir auf m¨oglichst effizient zu behandelnde Relaxationen ab. Wir m¨ochten daher unn¨otig große LR vermeiden und erreichen, dass die einzelnen Relaxationen m¨oglichst leicht zu l¨osen sind und die Absch¨atzungsqualit¨at hoch ist. Dies gelingt in der Regel nur bei enger Abstimmung der Schnittebenen auf die Relaxationsvorschrift. Wir greifen die in Abschnitt 4.3.2.1 diskutierten Relaxationen auf und erg¨anzen sie um sinnvolle Regeln zum Hinzuf¨ugen von Schnittebenen.

LP-Relaxation Wir werden hier zun¨achst zwei Ans¨atze erl¨autern, die auf Gomory (1958) und Gomory (1960) zur¨uckgehen. In Gomory (1958) wurde ein Mechanismus f¨ur Schnittebenen entwickelt, der bei der L¨osung von IPs zum Einsatz kommen kann, sofern die ermittelten optimalen L¨osungen der LP-Relaxation Basisl¨osungen sind (dies ist zum Beispiel bei der Verwendung des Simplex-Algorithmus 3.5 aus Kapitel 3 der Fall). In Gomory (1960) wurde dieser Mechanismus f¨ur MIPs erweitert. Im Folgenden werden wir uns die beiden Typen von Schnittebenen anschauen und argumentieren, dass sie die erste oben genannte Anforderung erf¨ullen. Beide Varianten der sogenannten Gomory Cuts (engl. f¨ur Schnittebenen) setzen an einem Indikator daf¨ur, dass die vorliegende optimale L¨osung der aktuellen Relaxation nicht zul¨assig f¨ur die Instanz des zu l¨osenden Problems ist, an. Der bes” te“ Indikator, den man hierf¨ur bei Verwendung der LP-Relaxation heranziehen kann, ist eine ganzzahlige Variable, deren Wert nicht ganzzahlig ist, bzw. die entsprechende Zeile des Simplextableaus. Im Folgenden werden wir Vorkenntnisse zur Interpretation eines Simplextableaus, wie in Abschnitt 3.3.2 vorgestellt, voraussetzen. Eine

224

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Variable x j , die in der optimalen L¨osung der Relaxation keinen ganzzahligen Wert hat, k¨onnen wir daran erkennen, dass sie eine BV ist und der Wert auf der RHS in der entsprechenden Zeile nicht-ganzzahlig ist. Diese Zeile stellt sich unter der Annahme, dass x j die i-te BV ist, wie folgt dar.



j ∈BV

⇔ ai, j x j +



j ∈BV, j = j

ai, j x j + ai, j x j + ⇔ xj +



ai, j x j = bi

(4.13)



ai, j x j = bi

(4.14)



ai, j x j = bi

(4.15)

j ∈NBV j ∈NBV j ∈NBV

Gleichung (4.13) stellt die ausgeschriebene, durch Zeile i des Simplextableaus repr¨asentierte Gleichung dar. In Gleichung (4.14) wurde x j von den u¨ brigen BV isoliert. Die Koeffizienten der BV in der Gleichung sind ai, j = 1 und ai, j = 0 f¨ur alle j ∈ BV, j = j. Gleichung (4.15) erh¨alt man, wenn man diese bekannten Koeffizienten in Gleichung (4.14) einsetzt. Im Folgenden leiten wir zun¨achst die Schnittebenen f¨ur IPs her und wollen daf¨ur Koeffizienten in ihren ganzzahligen Anteil und ihren fraktionalen Anteil zerlegen. Wir verwenden a f¨ur den ganzzahligen Anteil und f (a) = a − a f¨ur den fraktionalen Anteil. F¨ur jede Zahl a ∈ R gilt also a = a + f (a) mit 0 ≤ f (a) < 1 und a − 1 < a ≤ a. xj + ⇔ xj +

∑ 

j ∈NBV

⇔ xj +



j ∈NBV

ai, j x j = bi

(4.15)

 ai, j  + f (ai, j ) x j = bi  + f (bi )





j ∈NBV

ai, j x j − bi  = f (bi ) −



j ∈NBV

(4.16) f (ai, j )x j

(4.17)

Wir erhalten (4.17) aus (4.15) durch Aufteilen aller Koeffizienten (und der RHS) und Separieren der ganzzahligen und fraktionalen Anteile auf die linke und rechte Seite. Wir k¨onnen erkennen, dass die linke Seite von (4.17) f¨ur eine zul¨assige L¨osung ganzzahlig ist, denn es handelt sich um ein IP und daher sind alle (zul¨assigen) Variablenwerte ganzzahlig und deren Koeffizienten auf der linken Seite sind es ebenfalls. F¨ur die rechte Seite gilt somit ebenfalls, dass sie ganzzahlig ist. Weiterhin gilt, dass sie einen Wert kleiner eins hat, da f (bi ) < 1 und f (ai, j )x j ≥ 0 f¨ur jedes j ∈ NBV . Aus diesen beiden Einschr¨ankungen folgt, dass die rechte Seite keinen Wert gr¨oßer null haben kann. Somit muss jede zul¨assige L¨osung f (bi ) −



j ∈NBV

f (ai, j )x j ≤ 0

(4.18)

erf¨ullen. Ungleichung (4.18) kann somit der Relaxation hinzugef¨ugt werden, ohne dass eine zul¨assige L¨osung der zu l¨osenden Instanz ausgeschlossen w¨urde. Wei-

4.3 Schnittebenenverfahren

225

terhin gilt, dass die vorliegende optimale L¨osung x∗ der aktuellen Relaxation Ungleichung (4.18) nicht erf¨ullt, denn hier gilt f (bi ) −



j ∈NBV

f (ai, j )x∗j = f (bi ) − 0 > 0,

da wir Zeile i ja so gew¨ahlt hatten, dass f (bi ) > 0 gilt. Wir haben also mit Ungleichung (4.18) eine Schnittebene, die wir direkt von der optimalen L¨osung der aktuellen Relaxation, die unzul¨assig f¨ur die zu l¨osende Instanz ist, ableiten k¨onnen. Weiterhin ist Ungleichung (4.18) eine lineare Ungleichung und somit stellt die neue Relaxation auch ein LP dar und wir k¨onnen nach wie vor effiziente Verfahren (zum Beispiel den Simplex-Algorithmus 3.5 aus Kapitel 3) einsetzen. Die erste oben genannte Anforderung wird daher erf¨ullt. Eine weitere vorteilhafte Eigenschaft von (4.18) ist, dass wir alle ben¨otigten Koeffizienten, n¨amlich f (bi ) und f (ai, j ) f¨ur jedes j ∈ NBV direkt dem Simplextableau entnehmen k¨onnen. Das heißt, wir erhalten diese Werte durch das L¨osen der Relaxation, was wir ja ohnehin leisten m¨ussen, und m¨ussen keinerlei Zusatzaufwand erbringen. Salopp formuliert: Gomory Cuts f¨ur IPs Wir erg¨anzen in der Relaxation die Schnittebene (4.18) f¨ur die i-te BV x j mit nicht-ganzzahligem Wert. Unter allen BV mit nicht-ganzzahligem Wert k¨onnen wir dabei eine zuf¨allig w¨ahlen. Schnittebene (4.18) wird von allen zul¨assigen L¨osungen der zu l¨osenden Instanz erf¨ullt, von der optimalen L¨osung der aktuellen Relaxation jedoch nicht. Auch hier wollen wir noch einmal auf die Schlupfvariablen eingehen. Mit jeder Schnittebene wird eine neue Schlupfvariable in die LP-Relaxation eingef¨uhrt. Diese nimmt den Wert ∑ j ∈NBV f (ai, j )x j − f (bi ) ≥ 0 an und ist daher nicht zwangsl¨aufig ganzzahlig. Betont werden soll hier noch einmal, dass wir die Erf¨ullung der zweiten Anforderung (die optimale L¨osung der Relaxation nach Einf¨ugen einer endlichen Anzahl von Schnittebenen ist zul¨assig) bewusst offen halten und stattdessen in Anhang B.4 behandeln. Nun wenden wir uns den Schnittebenen f¨ur MIPs zu. Diese m¨ussen wir anders herleiten, da wir bei MIPs f¨ur die linke Seite von (4.17) nicht auf Ganzzahligkeit schließen k¨onnen. Dies liegt daran, dass eine NBV x j nicht zwangsl¨aufig einen ganzzahligen Wert annehmen muss, da in einem MIP auch kontinuierliche Variablen vorkommen. Wir beschr¨anken uns hier darauf, die entsprechende Schnittebene vorzustellen. Dabei bezeichnen wir die Menge der NBV, deren Koeffizienten in (4.15) nichtnegativ ist, mit NBV ≥ und die u¨ brigen mit NBV < = NBV \ NBV ≥ . Weiterhin unterscheiden wir zwischen den Mengen der ganzzahligen dieser Variablen, bezeichnet mit NBVN≥ bzw. NBVN< , und der kontinuierlichen Variablen, bezeichnet mit NBVR≥ bzw. NBVR< . Die Schnittebene l¨asst sich dann wie folgt formulieren.

226

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

∑ j ∈NBV ≥ f (ai, j )x j + ∑ j ∈NBV ≥ ai, j x j −∑

f (bi ) j ∈NBVN< 1− f (b ) i

N

( f (ai, j ) − 1)x j − ∑

(4.19)

R

f (bi ) j ∈NBVR< 1− f (b ) i

ai, j x j ≥ f (bi )

Diese Schnittebene l¨asst sich noch leicht verst¨arken, siehe Nemhauser und Wolsey (1999), aber wir belassen es bei dieser Variante. Die Herleitung, die etwas technischer als die obige ausf¨allt, findet sich in Anhang B.5. Diese Herleitung legt dar, dass jede zul¨assige L¨osung der zu l¨osenden Instanz Schnittebene (4.19) erf¨ullt. Zudem k¨onnen wir leicht erkennen, dass die linke Seite von (4.19) f¨ur die aktuell vorliegende L¨osung den Wert null annimmt und die rechte Seite positiv ist. Somit stellt (4.19) tats¨achlich eine Schnittebene dar, die sich zudem als lineare NB darstellen l¨asst. Wiederum gilt außerdem, dass alle ben¨otigten Koeffizienten direkt dem Simplextableau entnommen werden k¨onnen.

Relaxation durch Eliminieren von NB Wenn wir die Relaxationen durch Eliminieren einer oder mehrerer NB eines MO konstruieren, dann erhalten wir als optimale L¨osung der Relaxation entweder eine zul¨assige L¨osung der Instanz des Ausgangsproblems oder eine L¨osung der Relaxation, die mindestens eine der eliminierten NB verletzt. Jede verletzte NB ist dann eine Schnittebene. Eine wesentliche Frage ist hierbei, wie man effizient pr¨uft, ob eine bestimmte NB verletzt ist, und wie man effizient eine verletzte NB findet. Dies h¨angt maßgeblich von dem zu l¨osenden IP und den eliminierten NB ab. Die Erf¨ullung der zweiten oben aufgef¨uhrten Anforderung ist hier recht offensichtlich, denn sp¨atestens nachdem alle zuvor eliminierten NB eingef¨ugt wurden, wird die erhaltene L¨osung zul¨assig sein. Die erste Anforderung wird aber nicht unbedingt erf¨ullt. Die Motivation des Eliminierens der NB liegt ja gerade darin, dass die Struktur des MO ver¨andert und das Problem somit leichter l¨osbar wird. Dieser Effekt wird durch sukzessives Einf¨ugen dieser NB wieder aufgehoben. Bei dieser Vorgehensweise wird man also in der Regel darauf angewiesen sein, dass das Einf¨ugen relativ weniger NB schon zu einer zul¨assigen (und somit optimalen) L¨osung f¨uhrt. Wenn wir f¨ur das Problem 1.2 (Tourenplanung) und die von Pferschy und Stanˇek (2017) gew¨ahlte Relaxationsvorschrift (Elimination von allen oder einzelnen NB (4.7)) eine Schnittebene suchen, k¨onnen wir uns relativ einfach an den Sequenzen von Orten orientieren, die durch die gew¨ahlten Vorg¨anger und Nachfolger jedes Ortes in der optimalen L¨osung der Relaxation impliziert werden. Wenn es nur eine einzige Sequenz gibt, ist die vorliegende L¨osung zul¨assig f¨ur Problem 1.2 (Tourenplanung). Wenn es mehrere gibt, dann enth¨alt jede Sequenz eine echte Teilmenge S von Orten, f¨ur die NB (4.7) verletzt ist. Die L¨osung impliziert einen Kreis, der die Orte in S enth¨alt und aus dem keine Verbindung zu einem Knoten, der nicht in S liegt, gew¨ahlt wurde. Somit gilt ∑i∈S ∑ j∈S xi, j = 0.

4.3 Schnittebenenverfahren

227

Salopp formuliert: Schnittebenen durch Subtoureliminierung Wir identifizieren eine Menge von Orten S, f¨ur die die optimale L¨osung der aktuellen Relaxation einen Kreis schließt. F¨ur diese Menge S erg¨anzen wir die NB (4.7), denn diese wird verletzt.

4.3.2.3 Auswahl der Schnittebene Wenn die optimale L¨osung der aktuellen Relaxation nur eine Schnittebene (des gew¨ahlten Typs) impliziert, muss diese gew¨ahlt werden. Wenn allerdings mehrere Schnittebenen existieren, muss entschieden werden, welche dieser Schnittebenen der Relaxation hinzugef¨ugt wird. Es ist nat¨urlich auch m¨oglich, nicht nur einzelne, sondern jeweils mehrere Schnittebenen einzuf¨ugen. Wir k¨onnen durch die Wahl von Schnittebenen den Verlauf des Verfahrens beeinflussen, denn durch die Wahl einer Schnittebene bestimmt sich die n¨achste zu l¨osende Relaxation, deren optimale L¨osung und die sich wiederum daraus ergebenden Schnittebenen. Abh¨angig von der Wahl der Schnittebene k¨onnen wir so z. B. die Anzahl von Iterationen beeinflussen, die wir ben¨otigen, um die optimale L¨osung der zu l¨osenden Instanz zu finden. Es ist allerdings in der Regel schwer abzusch¨atzen, wie genau der Ablauf des Verfahrens durch eine bestimmte Auswahlstrategie beeinflusst wird. Unser u¨ bergeordnetes Ziel bei der Wahl einer oder mehrerer Schnittebenen ist u¨ blicherweise, den Aufwand des gesamten Verfahrens so gering wie m¨oglich zu halten. Auch hierbei k¨onnen wir zwei gegenl¨aufige Effekte beobachten. Je mehr Aufwand wir in eine gute Absch¨atzung investieren, desto weniger Iterationen k¨onnen ausreichen. Da der Aufwand pro Iteration aber steigt, ist nicht vorab klar, dass sich diese Investition auszahlt. Im Folgenden greifen wir zun¨achst die LP-Relaxation aus Abschnitt 4.3.2.1 bzw. die entsprechenden Schnittebenen aus Abschnitt 4.3.2.2 auf und benennen einige Strategien. Anschließend erl¨autern wir die Strategie des Ansatzes von Pferschy und Stanˇek (2017).

LP-Relaxation Intuitiv macht es Sinn, sich auf die Schnittebenen zu konzentrieren, von denen man eine m¨oglichst große Reduktion der Menge zul¨assiger L¨osungen der Relaxation oder eine m¨oglichst große Verschlechterung des optimalen Zielfunktionswerts erwartet. Beide Ziele motivieren sich aus der Tatsache, dass wir eine fixe (wenn auch unbekannte) Distanz“ zwischen der optimalen L¨osung der aktuellen Relaxation ” und der optimalen L¨osung der zu l¨osenden Instanz u¨ berbr¨ucken“ m¨ussen. Da” bei wollen wir m¨oglichst große Schritte“ machen, da wir ja sicher sein k¨onnen, ” dass wir nicht u¨ ber das Ziel hinaus schießen“, denn wir wissen, dass die Schnitt” ebenen (4.18) und (4.19) von allen zul¨assigen L¨osungen erf¨ullt werden.

228

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Es gibt zahlreiche Ans¨atze, diese Ziele zu formalisieren. Hier sollen nur zwei beispielhaft aufgegriffen und auf Wesselmann (2010) f¨ur weitere Ans¨atze verwiesen werden. Der erste dargestellte Ansatz stellt auf die Geometrie des LRs der Relaxation ab, w¨ahrend der zweite sich durch die Anwendungsperspektive motivieren l¨asst. Wenn wir die geometrischen Strukturen des LRs der Relaxation (siehe Abschnitt 3.3.1), einer Schnittebene und des LRs der zu l¨osenden Instanz betrachten, dann k¨onnen wir erkennen, dass die optimale L¨osung der aktuellen Relaxation und alle zul¨assigen L¨osungen der zu l¨osenden Instanz auf verschiedenen Seiten des (n − 1)dimensionalen Unterraums liegen, den die Schnittebene beschreibt. Da wir die optimale L¨osung der zu l¨osenden Instanz ja noch nicht kennen, k¨onnen wir die Distanz zwischen der optimalen L¨osung der Relaxation und der Schnittebene als Absch¨atzung f¨ur die Gr¨oße des Schrittes“, den wir durch Einf¨ugen der Schnitt” ebene machen, heranziehen. Wir bewerten daher jede Schnittebene mit der euklidischen Distanz zwischen ihr und der optimalen L¨osung der aktuellen Relaxation. Die Schnittebene mit der h¨ochsten Bewertung verspricht den gr¨oßten Schritt“ und wird ” daher gew¨ahlt. Die zweite Absch¨atzung beruht auf dem Ausmaß der Verletzung der Schnittebene durch die optimale L¨osung der aktuellen Relaxation. Diese betr¨agt f¨ur die Schnittebene (4.18) f¨ur IPs f (bi ) −



j ∈NBV

f (ai, j )x j = f (bi ).

¨ F¨ur die Schnittebene (4.19) f¨ur MIPs ergibt sich nach analoger Uberlegung ebenfalls ein Ausmaß der Verletzung der Schnittebene durch die optimale L¨osung der aktuellen Relaxation von f (bi ). Wir bewerten dann jede Schnittebene mit ihrem Ausmaß an Verletzung durch die vorliegende L¨osung und w¨ahlen die mit der h¨ochsten Bewertung. x2 2. 1.

3

3. 2 1 4./5. Abb. 4.14 Bewertung von Schnittebenen

1

2

3

x1

4.3 Schnittebenenverfahren

229

In Abb. 4.14 wird der LR eines IP mit zwei Variablen x1 und x2 dargestellt. Zwei NB 1. (x2 ≤ 2, 9) und 2. (x1 ≤ 2, 9) begrenzen den LR und bilden mit den beiden Achsen des Koordinatensystems den LR der LP-Relaxation. F¨ur die gegebene zu maximierende Zielfunktion x1 + x2 (nicht dargestellt) k¨onnen wir die optimale L¨osung (2; 2) der zu l¨osenden Instanz und die optimale L¨osung s = (2, 9; 2, 9) der LP-Relaxation leicht erkennen. Weiterhin betrachten wir zwei Schnittebenen 3. (x2 ≤ 2, 5) und√4. (x1 + x2 ≤ 5). Die euklidische Distanz von 3. bzw. 4. zu s betr¨agt 0, 4 bzw. 0, 32 > 0, 4. Wir w¨urden also Schnittebene 4. unter diesen beiden Schnittebenen w¨ahlen, wenn wir die euklidische Distanz als Bewertungsgrundlage nehmen. Das Ausmaß der Verletzung von 3. bzw. 4. durch s betr¨agt 0, 4 bzw. 0, 8 > 0, 4, was dementsprechend ebenfalls zur Wahl von 4. f¨uhren w¨urde. Wenn wir statt 4. eine Schnittebene 5. (0, 1 · x1 + 0, 1 · x2 ≤ 0, 5) betrachten, stellen wir fest, dass sie dieselbe geometrische Repr¨asentation √ wie 4. hat. D. h., die euklidische Distanz von 5. zu s betr¨agt zwar ebenfalls 0, 32, das Ausmaß an Verletzung von 5. betr¨agt allerdings nur 0, 08. D. h., zwischen 3. und 5. w¨urden wir uns gem¨aß Distanz anders entscheiden als gem¨aß Ausmaß an Verletzung. Solche Skalierungseffekte werden ebenfalls in Wesselmann (2010) eingehender diskutiert.

Relaxation durch Eliminieren von NB Grunds¨atzlich k¨onnen wir hier a¨ hnliche Auswahlkriterien wie bei der LP-Relaxation anwenden. Dies gilt inbesondere f¨ur das Ausmaß der Verletzung. Auf Distanzen abzustellen setzt hingegen voraus, dass es eine geometrische Interpretation gibt, was nicht zwangsl¨aufig der Fall ist. Pferschy und Stanˇek (2017) w¨ahlen dagegen u. a. den Ansatz, sich nicht zwischen den durch die optimale L¨osung der aktuellen Relaxation implizierten Schnittebenen zu entscheiden, sondern alle einzuf¨ugen.

4.3.3 Beispiele Wir werden im Folgenden zwei Beispiele f¨ur Schnittebenenverfahren erl¨autern, die zum L¨osen von Problem 4.1 (Knapsack) bzw. Problem 1.2 (Tourenplanung) geeignet sind. Die Verfahren verwenden die Komponenten, die schon beispielhaft in Abschnitt 4.3.2 beschrieben wurden. Wir werden jeweils diese Komponenten zusammenfassen und den Ablauf des Verfahrens an einer Probleminstanz erl¨autern. Beide Verfahren orientieren sich stark an den Verfahren, die in Gomory (1958) und Pferschy und Stanˇek (2017) entwickelt wurden.

230

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

4.3.3.1 Knapsack Wir verwenden die LP-Relaxation von Modell 4.1 auf S. 177. Wir l¨osen diese mit dem Simplex-Algorithmus 3.4 und erg¨anzen, sofern die optimale L¨osung der aktuellen Relaxation nicht-ganzzahlig ist, die Schnittebene (4.18) zu einer Zeile des Tableaus mit dem gr¨oßten fraktionalen Anteil des Wertes auf der RHS. Wir betrachten folgende Instanz von Modell 4.1. Beispiel 4.2 (Instanz zu Modell 4.1). • n = 5, C = 37 • v1 = 6, v2 = 8, v3 = 10, v4 = 16, v5 = 20 • w1 = 4, w2 = 6, w3 = 8, w4 = 10, w5 = 18 Naheliegenderweise verwenden wir Modell 4.1, um die Instanz als IP zu repr¨asentieren. Das folgende Modell 4.2 stellt die entsprechende LP-Relaxation dar. Modell 4.2 (Modell zu Beispiel 4.2). max 6 · x1 + 8 · x2 + 10 · x3 + 16 · x4 + 20 · x5 u.B.d.N.

4 · x1 + 6 · x2 + 8 · x3 + 10 · x4 + 18 · x5 ≤ 37 xi ≤ 1 xi ≥ 0

(4.20) (4.21)

∀ i = 1, . . . , 5

(4.22)

∀ i = 1, . . . , 5

(4.23)

Aus Modell 4.2 ergibt sich nach Erg¨anzung der Schlupfvariablen sC , s1 , . . . , s5 das folgende Ausgangstableau und durch Anwendung des Simplex-Algorithmus 3.4 das darauf folgende optimale Tableau. Hier korrespondiert sC zur Kapazit¨atsnebenbedingung und s1 , . . . , s5 zu den NB (4.22) f¨ur die Variablen x1 , . . . , x5 . F 0 0 0 0 0 0 1

x1 4 1 0 0 0 0 -6

x2 6 0 1 0 0 0 -8

x3 8 0 0 1 0 0 -10

x4 10 0 0 0 1 0 -16

x5 18 0 0 0 0 1 -20

sC 1 0 0 0 0 0 0

s1 0 1 0 0 0 0 0

s2 0 0 1 0 0 0 0

s3 0 0 0 1 0 0 0

s4 0 0 0 0 1 0 0

s5 0 0 0 0 0 1 0

RHS 37 1 1 1 1 1 0

F 0 0 0 0 0 0 1

x1 0 1 0 0 0 0 0

x2 1 0 0 0 0 0 0

x3 0 0 0 1 0 0 0

x4 0 0 0 0 1 0 0

x5 0 0 0 0 0 1 0

sC 0 0 1 − 18 0 0

s1 0 1

s2 1 0

s3 0 0

s4 0 0

s5 0 0 1 0 0 0 0

RHS 1 1

1 18 10 9

2 9

1 3

4 9

5 9

0 0 − 29

0 0 − 13

1 0 − 49

0 1 − 59

14 9

4 3

10 9

44 9

1 2

1 1 1 2

50

4.3 Schnittebenenverfahren

231

Wir h¨atten die optimale L¨osung auch mit dem einfachen Verfahren, das in Anhang B.2 vorgestellt wird, ermitteln k¨onnen. Dies gilt allerdings nicht mehr f¨ur die L¨osung der folgenden Relaxationen, in denen Schnittebenen erg¨anzt werden. Außerdem k¨onnen wir die Informationen f¨ur die Schnittebene, die wir einf¨uhren wollen, leicht am Simplextableau ablesen. Wir k¨onnen leicht der RHS des optimalen Tableaus entnehmen, dass die vorliegende L¨osung zwar f¨ur die aktuelle Relaxation optimal, aber nicht f¨ur die zu l¨osende Instanz zul¨assig ist. Wir erstellen entsprechend eine Schnittebene mit der Struktur von (4.18) anhand der Zeile des Simplextableaus, die zu dem Wert von Variable x5 korrespondiert:   1 1 7 2 5 4 − · sC + · s1 + · s2 + · s3 + · s4 ≤ 0. 2 18 9 3 9 9 Um diese Schnittebene in das Tableau einf¨ugen zu k¨onnen, transformieren wir sie durch Einf¨uhrung einer zus¨atzlichen Schlupfvariable t1 in eine Gleichung und erhalten 7 2 5 4 1 1 − · sC − · s1 − · s2 − · s3 − · s4 + t1 = − . 18 9 3 9 9 2 Wir h¨atten auch eine Schnittebene, die zu Variable s5 korrespondiert, konstruieren k¨onnen. Wenn es mehrere m¨ogliche Schnittebenen gibt, w¨ahlen wir hier und im Folgenden die, die zur ersten Variablen mit maximalem fraktionalem Anteil des Werts korrespondiert. Der fraktionale Anteil des Werts stellt das Ausmaß der Verletzung der Schnittebene dar. Wir f¨ugen diese Gleichung in das Simplextableau ein und erhalten eine unzul¨assige Basisl¨osung. Wir erkennen dies daran, dass ein Wert auf der RHS negativ ist. Dies entspricht einer Verletzung der eingef¨ugten Schnittebene, denn der Wert geh¨ort zu der Schlupfvariable t1 der Schnittebene. F 0 0 0 0 0 0 0 1

x1 0 1 0 0 0 0 0 0

x2 1 0 0 0 0 0 0 0

x3 0 0 0 1 0 0 0 0

x4 0 0 0 0 1 0 0 0

x5 0 0 0 0 0 1 0 0

sC 0 0 1 − 18 0 0 1 18 1 − 18 10 9

s1 0 1

s2 1 0

s3 0 0

s4 0 0

2 9

1 3

4 9

5 9

0 0 − 29 − 79

0 0 − 13 − 23

1 0 − 49 − 59

0 1 − 59 − 49

14 9

4 3

10 9

44 9

s5 0 0 1 0 0 0 0 0

t1 0 0 0 0 0 0 1 0

RHS 1 1 1 2

1 1 1 2

− 12 50

Wir m¨ussen also zun¨achst einmal eine zul¨assige Basisl¨osung ermitteln und erreichen dies z. B. mit der M-Methode (siehe Abschnitt 3.3.3). Nachdem wir eine zul¨assige Basisl¨osung gefunden haben, k¨onnen wir wie u¨ blich den SimplexAlgorithmus 3.4 anwenden, um das folgende optimale Tableau zu erhalten. Eine andere g¨angige Methode f¨ur diesen Schritt ist, den dualen Simplex-Algorithmus, der in diesem Buch aber nicht vorgestellt wird, anzuwenden.

232

F 0 0 0 0 0 0 0 1

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

x1 0 1 0 0 0 0 0 0

x2 1 0 0 0 0 0 0 0

x3 0 0 0 1 0 0 0 0

x4 0 0 0 0 1 0 0 0

x5 0 0 0 0 0 1 0 0

sC 0 1 − 14 1 − 14 0 0

s1 0 0 0 0 0 0 1 0

1 14 1 14

1

s2 1 − 67

s3 0 − 57

s4 0 − 47

0 0 − 17

1 0 − 27

0 1 − 37

0

0

4

1 7

2 7

6 7

5 7

3 7

4 7

s5 0 0 1 0 0 0 0 0

t1 0

RHS 1

9 7 2 7

5 14 5 14

0 0 − 27 − 97 2

1 1 9 14 9 14

49

Wir entnehmen wiederum der Zielfunktionszeile und der RHS, dass die optimale L¨osung f¨ur die aktuelle Relaxation nicht zul¨assig f¨ur die zu l¨osende Instanz ist. Wir erstellen entsprechend eine Schnittebene, die zu Variable x5 = 9/14 korrespondiert, transformieren sie in die entsprechende Gleichung und erhalten −

1 6 5 4 5 9 · sC − · s2 − · s3 − · s4 − · t1 + t2 = − . 14 7 7 7 7 14

Wir f¨ugen die konstruierte Gleichung in das Simplextableau ein und erhalten wiederum eine unzul¨assige Basisl¨osung. F 0 0 0 0 0 0 0 0 1

x1 0 1 0 0 0 0 0 0 0

x2 1 0 0 0 0 0 0 0 0

x3 0 0 0 1 0 0 0 0 0

x4 0 0 0 0 1 0 0 0 0

x5 sC 0 0 1 0 − 14 1 0 − 14 0 0 0 0 1 1 14 1 0 14 1 0 − 14 0 1

s1 0 0 0 0 0 0 1 0 0

s2 s3 s4 1 0 0 − 67 − 57 − 47 1 7

2 7

3 7

0 1 0 0 0 1 − 17 − 27 − 37 6 7

5 7

4 7

− 67 − 57 − 47 0 0 4

s5 0 0 1 0 0 0 0 0 0

t1 0 9 7 2 7

0 0 − 27 − 97 − 57 2

t2 0 0 0 0 0 0 0 1 0

RHS 1 5 14 5 14

1 1 9 14 9 14 9 − 14

49

Wir k¨onnen dann das folgende optimale Tableau ableiten. F 0 0 0 0 0 0 0 0 1

x1 0 1 0 0 0 0 0 0 0

x2 1 0 0 0 0 0 0 0 0

x3 0 0 0 1 0 0 0 0 0

x4 0 0 0 0 1 0 0 0 0

x5 sC 1 0 − 12 0 0 1 0 − 12 0 0 0 0 1 1 12 0 0 1 0 12 0 1

s1 0 0 0 0 0 0 1 0 0

s2 0 0 0 0 0 0 0 1 0

s3 s4 − 56 − 23 0 0 1 6

1 3

1 0 0 1 − 16 − 13 0 0 5 6

2 3

0

4

s5 0 0 1 0 0 0 0 0 0

t1 t2 RHS 5 1 − 6 67 4 2 −1 1 1 6

1 6

0 0 0 0 − 16 − 16 −2 1 5 − 76 6 2 0

1 4

1 1 3 4

0 3 4

49

Wir erkennen erneut, dass die L¨osung nicht zul¨assig f¨ur die zu l¨osende Instanz ist. Wir erstellen entsprechend eine Schnittebene, die zu Variable x5 = 3/4 korrespondiert, transformieren sie in die entsprechende Gleichung

4.3 Schnittebenenverfahren



233

1 5 2 5 5 3 · sC − · s3 − · s4 − · t1 − · t2 + t3 = − , 12 6 3 6 6 4

f¨ugen diese in das Simplextableau ein und erhalten eine unzul¨assige Basisl¨osung. F 0 0 0 0 0 0 0 0 0 1

x1 0 1 0 0 0 0 0 0 0 0

x2 1 0 0 0 0 0 0 0 0 0

x3 0 0 0 1 0 0 0 0 0 0

x4 0 0 0 0 1 0 0 0 0 0

x5 sC s1 1 0 − 12 0 0 0 0 1 0 − 12 0 0 0 0 0 0 0 1 1 12 0 0 0 1 1 0 12 0 1 0 − 12 0 0 1 0

s2 0 0 0 0 0 0 0 1 0 0

s3 s4 − 56 − 23 0 0 1 6

1 3

1 0 0 1 − 16 − 13 0 0 5 6

− 56 0

2 3

− 23 4

s5 0 0 1 0 0 0 0 0 0 0

t1 t2 − 56 76 2 −1 1 6

1 6

0 0 0 0 − 16 − 16 −2 1 5 − 76 6 5 − 6 − 56 2 0

t3 RHS 1 0 4 0 1 1 0 4 0 1 0 1 3 0 4 0 0 3 0 4 1 − 34 0 49

Wir k¨onnen dann das folgende optimale Tableau ableiten. F 0 0 0 0 0 0 0 0 0 1

x1 0 1 0 0 0 0 0 0 0 0

x2 1 0 0 0 0 0 0 0 0 0

x3 0 0 0 1 0 0 0 0 0 0

x4 0 0 0 0 1 0 0 0 0 0

x5 sC s1 0 0 0 0 0 0 1 0 − 10 0 1 0 − 10 0 0 0 0 1 1 10 0 0 0 1 0 0 0 1 0 10 0 0 1 0

s2 0 0 0 0 0 0 0 1 0 0

s3 0 0 0 0 0 0 0 0 1 0

s4 0 0 1 5

− 45 1 − 15 0 0 4 5

4

s5 0 0 1 0 0 0 0 0 0 0

t1 t2 t3 RHS 0 2 −1 1 2 −1 0 1 1 1 0 0 5 10 6 1 −1 −1 5 10 0 0 0 1 1 9 0 0 − 5 10 −2 1 0 0 0 −2 1 0 9 1 1 − 65 10 2 0 0 49

Wir erstellen eine Schnittebene, die zu Variable x5 = 9/10 korrespondiert, transformieren sie in Gleichung −

4 4 9 1 · sC − · s4 − · t3 + t4 = − , 10 5 5 10

f¨ugen diese in das Simplextableau ein und erhalten eine unzul¨assige Basisl¨osung.

234

F 0 0 0 0 0 0 0 0 0 0 1

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

x1 0 1 0 0 0 0 0 0 0 0 0

x2 1 0 0 0 0 0 0 0 0 0 0

x3 0 0 0 1 0 0 0 0 0 0 0

x4 0 0 0 0 1 0 0 0 0 0 0

x5 sC 0 0 0 0 1 0 − 10 1 0 − 10 0 0 1 1 10 0 0 0 0 1 0 10 1 0 − 10 0 1

s1 0 0 0 0 0 0 1 0 0 0 0

s2 0 0 0 0 0 0 0 1 0 0 0

s3 s4 s5 0 0 0 0 0 0 1 0 1 5 4 0 −5 0 0 1 0 0 − 15 0 0 0 0 0 0 0 4 1 0 5 0 − 45 0 0 4 0

t1 0 2 0 −1 0 0 −2 0 1 0 2

t2 2 −1 0 −1 0 0 1 −2 1 0 0

t3 t4 RHS −1 0 1 0 0 1 1 1 0 10 5 6 1 0 10 5 0 0 1 9 − 15 0 10 0 0 0 1 0 0 9 − 65 0 10 4 9 − 5 1 − 10 0 0 49

t2 0 0 0 1 0 0 0 0 0 0 0

t3 t4 RHS 1 2 0 3 3 0 0 1 0 −2 1 0 − 23 23 0 0 1 0 0 1 0 − 13 13 0 − 13 13 0 0 1 1 −1 1 8 142 0 3 3

Wir k¨onnen dann das folgende optimale Tableau ableiten. F 0 0 0 0 0 0 0 0 0 0 1

x1 0 1 0 0 0 0 0 0 0 0 0

x2 x3 x4 4 1 0 3 0 0 0 0 0 0 0 − 23 0 0 0 1 0 0 0 0 − 13 0 0 − 43 0 0 1 0 0 0 0 2 0 0 3

x5 0 0 0 0 0 1 0 0 0 0 0

sC s1 s2 0 − 23 0 0 1 0 1 0 0 1 0 0 3 0 0 0 0 0 0 0 − 13 0 2 0 1 3 0 0 0 0 0 0 2 0 0 3

s3 s4 s5 t1 0 − 35 − 53 0 0 0 0 0 0 0 −8 0 4 4 0 0 3 3 0 1 0 0 0 0 1 0 2 2 0 1 3 3 5 5 0 0 3 3 1 0 0 0 0 1 1 0 8 20 0 0 3 3

Wir erstellen eine Schnittebene, die zu Variable x2 = 2/3 korrespondiert, transformieren sie in Gleichung 1 1 1 1 2 1 − · x3 − · s1 − · s4 − · s5 − · t4 + t5 = − , 3 3 3 3 3 3 f¨ugen diese in das Simplextableau ein und erhalten eine unzul¨assige Basisl¨osung.

4.3 Schnittebenenverfahren

F 0 0 0 0 0 0 0 0 0 0 0 1

x1 0 1 0 0 0 0 0 0 0 0 0 0

x2 1 0 0 0 0 0 0 0 0 0 0 0

x3 4 3

0 0 − 23 0 0 − 13 − 43 1 0 − 13 2 3

x4 0 0 0 0 1 0 0 0 0 0 0 0

235

x5 0 0 0 0 0 1 0 0 0 0 0 0

sC s1 s2 0 − 23 0 0 1 0 1 0 0 0 13 0 0 0 0 0 0 0 0 − 13 0 0 23 1 0 0 0 0 0 0 0 − 13 0 0 23 0

s3 s4 0 − 53 0 0 0 0 0 43 0 1 0 0 0 23 0 53 1 0 0 1 0 − 13 0 83

s5 − 53 0 −8 4 3

0 1 2 3 5 3

0 1 − 13 20 3

t1 0 0 0 0 0 0 1 0 0 0 0 0

t2 0 0 0 1 0 0 0 0 0 0 0 0

t3 0 0 0 0 0 0 0 0 0 1 0 0

t2 0 0 0 1 0 0 0 0 0 0 0 0

t3 0 0 0 0 0 0 0 0 0 1 0 0

t5 RHS 0 23 0 0 1 −2 0 1 − 23 0 23 0 0 1 0 0 1 − 13 0 13 − 13 0 13 0 0 1 −1 0 1 − 13 1 − 23 8 0 142 3 3 t4 1 3

Wir k¨onnen dann das folgende optimale Tableau ableiten. F 0 0 0 0 0 0 0 0 0 0 0 1

x1 x2 x3 0 − 12 0 1 12 0 0 0 0 0 12 0 0 0 0 0 0 0 0 0 0 0 1 0 0 − 12 0 0 0 0 0 12 1 0 0 0

x4 0 0 0 0 1 0 0 0 0 0 0 0

x5 0 0 0 0 0 1 0 0 0 0 0 0

sC 0 0 1 0 0 0 0 0 0 0 0 0

s1 1 0 0 0 0 0 0 0 0 0 0 0

s2 0 0 0 0 0 0 0 1 0 0 0 0

s3 s4 0 32 0 − 32 0 0 0 12 0 1 0 0 0 1 0 0 1 12 0 1 0 − 12 0 2

s5

t1 0 − 32 0 −8 0 1 0 2 0 0 1 0 1 1 0 0 1 0 2 1 0 − 12 0 6 0 3 2

t4 1 2

− 12 −2 − 12 0 0 0 0 − 12 −1 1 2

2

t5 −2 2 0 0 0 0 −1 0 1 0 −1 2

RHS 1 0 1 1 1 1 1 1 0 1 1 46

Wir k¨onnen nun der Zielfunktionszeile und der RHS des Simplextableaus entnehmen, dass die vorliegende L¨osung sowohl f¨ur die aktuelle Relaxation optimal als auch f¨ur die zu l¨osende Instanz zul¨assig ist. Wir haben somit eine optimale L¨osung der Probleminstanz in Beispiel 4.2 gefunden.

4.3.3.2 Tourenplanung Wir folgen dem Ansatz von Pferschy und Stanˇek (2017) und verwenden die Relaxationsvorschrift zu Problem 1.2 (Tourenplanung), die vorsieht, alle oder einzelne NB (4.7) zu eliminieren wie in Abschnitt 4.3.2.1 vorgestellt. Sukzessiv werden diese NB, wenn sie durch die optimale L¨osung der Relaxation verletzt werden, als Schnittebenen eingef¨ugt (siehe Abschnitt 4.3.2.2). Dabei wird f¨ur jede geschlossene Subtour in der optimalen L¨osung der Relaxation eine Schnittebene eingef¨ugt, die die jeweils enthaltene Menge von Orten betrifft (siehe Abschnitt 4.3.2.3). Wir l¨osen die jeweiligen Relaxationen durch scharfes Hinschauen“. ”

236

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung 2 0

0

1

1

3

1

2 0

2

0

6

5

Abb. 4.11 Instanz des Problems 1.2 (Tourenplanung)

0

4

Die zu l¨osende Instanz von Problem 1.2 (Tourenplanung) ist in Abb. 4.11 dargestellt. Eine optimale L¨osung zur Relaxation ohne Schnittebenen ist in Abb. 4.15 dargestellt. 2

0

0

1

3 0 0

Abb. 4.15 Optimale L¨osung der ersten Relaxation im Schnittebenenverfahren

5

0

4

Wir erkennen die beiden geschlossenen Subtouren, die die Orte 1 und 2 sowie 3, 4 und 5 enthalten, und f¨ugen dem Modell entsprechend die zwei Schnittebenen x1,3 + x1,4 + x1,5 + x2,3 + x2,4 + x2,5 ≥ 1

(4.24)

x3,1 + x3,2 + x4,1 + x4,2 + x5,1 + x5,2 ≥ 1

(4.25)

hinzu. Wir erhalten dann eine optimale L¨osung zur Relaxation mit den Schnittebenen (4.24) und (4.25) wie in Abb. 4.16 dargestellt. Wir erkennen die beiden geschlossenen Subtouren, die die Orte 1, 2 und 3 sowie 4 und 5 enthalten, und f¨ugen dem Modell entsprechend die zwei Schnittebenen

4.3 Schnittebenenverfahren

237 2 0

0

1

1

3

0 5

Abb. 4.16 Optimale L¨osung der zweiten Relaxation im Schnittebenenverfahren

4 0

x1,4 + x1,5 + x2,4 + x2,5 + x3,4 + x3,5 ≥ 1 x4,1 + x4,2 + x4,3 + x5,1 + x5,2 + x5,3 ≥ 1

(4.26) (4.27)

hinzu. Wir erhalten dann eine optimale L¨osung zur Relaxation mit den Schnittebenen (4.24) bis (4.27) wie in Abb. 4.17 dargestellt. 2 0

0

3

1

2 0 Abb. 4.17 Optimale L¨osung der dritten Relaxation im Schnittebenenverfahren

5

0

4

Wir erkennen, dass die L¨osung eine Tour, die alle Orte enth¨alt, und somit eine zul¨assige und optimale L¨osung darstellt.

238

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

4.4 Dynamische Programmierung In diesem Abschnitt wird zun¨achst die grundlegende Idee der Dynamischen Programmierung (DP) in Abschnitt 4.4.1 vorgestellt. Analog zu den Abschnitten 4.2 und 4.3 muss dieses generische Prinzip durch Konkretisierung verschiedener Komponenten ausgestaltet werden. Diese Komponenten werden in Abschnitt 4.4.2 erl¨autert. Abschließend finden sich in Abschnitt 4.4.3 Beispiele f¨ur konkrete DPVerfahren. Neben den beiden Problemen 4.1 (Knapsack) und 1.2 (Tourenplanung) werden wir hier noch ein weiteres Problem heranziehen. Bei diesem weiteren Problem geht es um die Bestimmung von Wegen in Graphen. Was Wege sind, haben wir bereits in Definition 2.5 spezifiziert, die wir hier noch einmal auff¨uhren. Definition 2.5 (Weg). Ein Weg von einem Knoten u ∈ V zu einem Knoten v ∈ V in einem gerichteten Graphen G = (V, E) ist eine Sequenz von n, n ≥ 1, Kanten ((u1 , v1 ), . . . , (un , vn )), sodass • u1 = u und vn = v, d. h., die erste Kante beginnt bei Knoten u und die letzte endet bei Knoten v, • (uk , vk ) ∈ E f¨ur jedes k = 1, . . . , n, d. h., die Kanten im Weg sind im Graphen vorhanden, und • uk = vk−1 f¨ur jedes k = 2, . . . , n, d. h., jede Kante beginnt bei dem Knoten, bei dem die vorherige endet. Wir m¨ussen dar¨uber hinaus aber auch noch die L¨ange von Wegen definieren. Definition 4.7 (L¨ange eines Weges). Die L¨ange eines Weges ist die Summe der Gewichte (L¨angen) der im Weg enthaltenen Kanten. Nun k¨onnen wir das weitere Problem definieren, das uns in diesem Abschnitt als Grundlage f¨ur Beispiele dienen wird. ¨ Problem 4.2 (Kurzester Weg in einem gerichteten kreisfreien Graphen). Eingabe: Gerichteter, gewichteter, kreisfreier Graph und zwei ausgewiesene Knoten i und j LR: Wege von i nach j ZB: – ZS: L¨ange des Weges ist zu minimieren. Frage: Was ist eine optimale L¨osung? In einem gerichteten kreisfreien Graphen k¨onnen wir die Knoten immer so nummerieren, dass jede Kante vom kleineren zum gr¨oßeren Knoten verl¨auft. Dann kann es auch nur Wege von i zu j geben, wenn i < j, und diese Wege k¨onnen u¨ ber keine Knoten, die kleiner als i oder gr¨oßer als j sind, laufen. Alle Knoten 1, . . . , i − 1, j + 1, . . . , |V | k¨onnen wir also aus dem Graphen eliminieren. Wir gehen daher im Folgenden davon aus, dass i = 1 und j = |V |.

4.4 Dynamische Programmierung

239

4

1

2

4

2

3

3

4

4

3

1

5

8

6

9 Abb. 4.18 Gerichteter kreisfreier Graph

Abb. 4.18 illustriert eine Instanz mit |V | = 5 Knoten. Diese sind von links nach rechts aufsteigend angeordnet, weswegen alle Kanten von links nach rechts verlaufen. Die Kantenl¨angen sind in Abb. 4.18 eingetragen. Mit etwas M¨uhe k¨onnen wir den k¨urzesten Weg von Knoten 1 nach Knoten 5 erkennen. F¨ur gr¨oßere Instanzen wird uns dies allerdings kaum gelingen. Da wir hier von einem kreisfreien Graphen ausgehen, m¨ussen wir nicht zwischen Wegen und Pfaden (siehe Definition 2.6 auf Seite 24) unterscheiden, da ein Weg, der kein Pfad ist, einen Kreis enth¨alt. In einem kreisfreien Graph ist somit jeder Weg ein Pfad.

4.4.1 Generelle Vorgehensweise Das Prinzip von DP-Verfahren unterscheidet sich fundamental von dem von B&BVerfahren und Schnittebenenverfahren. F¨ur B&B-Verfahren und Schnittebenenverfahren wird lediglich ein Schritt des Verfahrens spezifiziert, der in einer vorab nicht bestimmten Anzahl von Iterationen durchgef¨uhrt wird. Es wird dann generisch festgelegt, wie genau ein Teilraum untersucht wird bzw. wie mit der aktuellen Relaxation verfahren wird. Welche Teilr¨aume oder welche Relaxationen genau betrachtet werden, wird nicht festgelegt und ergibt sich erst durch Ausf¨uhrung des Verfahrens. Bei DP-Verfahren hingegen werden alle durchzuf¨uhrenden Schritte vorab festgelegt. Wir m¨ussen also in der Regel deutlich mehr u¨ ber die Struktur des zu l¨osenden Problems wissen, wenn wir ein DP-Verfahren sinnvoll und effizient ausgestalten wollen. Das Prinzip der DP beruht auf einer Dekomposition des L¨osungsprozesses in eine Abfolge von Entscheidungen. Dies kann insbesondere bei kombinatorischen Optimierungsproblemen naheliegend sein. Gem¨aß Definition 4.1 auf S. 176 entspricht eine L¨osung eines kombinatorischen Optimierungsproblems einer Teilmenge der Grundmenge E. Man kann die Bestimmung einer L¨osung also durch das sequentielle Aufnehmen eines weiteren Elementes in die Teilmenge beschreiben. Wir verstehen unter einer L¨osung also im Folgenden eine Sequenz σ von Entscheidungen. Was genau dabei eine Entscheidung ist, h¨angt von dem zu l¨osenden Problem und dem

240

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

gew¨ahlten Ansatz ab. Eine Sequenz von Entscheidungen, die noch nicht vollst¨andig ist, nennen wir Teill¨osung. An dieser Stelle sollte betont werden, dass die Darstellung eines Problems als Sequenz von Entscheidungen nicht eindeutig ist. Nehmen wir z. B. an, dass wir die Elemente in E in eine bestimmte Reihenfolge gebracht haben. Dann k¨onnen wir sukzessiv in dieser Reihenfolge f¨ur jedes Element entscheiden, ob es in die L¨osung aufgenommen wird. Wir erhalten dann also zwangsl¨aufig |E| einzelne Entscheidungen. Wir k¨onnen aber auch sukzessiv entscheiden, welches Element das n¨achste (gem¨aß Sortierung) ist, das in die L¨osung aufgenommen wird. Diese Variante kann zu deutlich weniger als |E| Entscheidungen f¨uhren. Durch beide Typen von Entscheidungen k¨onnen wir aber offensichtlich jede Teilmenge von E darstellen. Salopp formuliert: Dynamische Programmierung Wir fassen L¨osungen als eine Sequenz von Entscheidungen auf. Dabei ist die Reihenfolge der Entscheidungen von Bedeutung. Wenn alle Entscheidungen getroffen sind, impliziert dies eine L¨osung. Wir k¨onnen eine Probleminstanz dann l¨osen, indem wir alle m¨oglichen Sequenzen von Entscheidungen generieren und bzgl. Zul¨assigkeit und Zielfunktionswert der entsprechenden L¨osung bewerten. F¨ur Sequenzen von Entscheidungen, die (vollst¨andige) L¨osungen repr¨asentieren, k¨onnen wir alle wichtigen Eigenschaften der jeweiligen L¨osung ableiten und daher die Bewertung durchf¨uhren. Wie wir sehen werden, ist dies h¨aufig aber auch schon f¨ur Teill¨osungen m¨oglich. Nat¨urlich m¨ussen die Eigenschaften von Teill¨osungen anders eingeordnet werden, denn Teill¨osungen werden in der Regel durch weitere Entscheidungen zu (vollst¨andigen) L¨osungen erg¨anzt. Die oben beschriebene Vorgehensweise w¨are allerdings sehr aufwendig, denn in der Regel gibt es sehr viele m¨ogliche Sequenzen von Entscheidungen. Bei DP-Verfahren nutzt man daher oft, dass man gar nicht zwingend zwischen allen m¨oglichen Teill¨osungen und L¨osungen unterscheiden muss. Dies wollen wir uns im Folgenden anhand zweier Teill¨osungen σ und σ  vor Augen f¨uhren. Beide Teill¨osungen schaffen jeweils eine Entscheidungssituation. Diese Entscheidungssituation gibt vor, durch welche Sequenzen von Entscheidungen sich σ und σ  zu einer zul¨assigen L¨osung vervollst¨andigen lassen und wie die jeweilige Bewertung ausf¨allt. Wir werden diese Entscheidungssituation im Folgenden als Zustand und solche Entscheidungen als Abschlussentscheidungen bezeichnen. Wenn σ und σ  identische Zust¨ande schaffen, dann m¨ussen wir f¨ur die Wahl der Abschlussentscheidungen nicht zwischen den beiden unterscheiden. Wir sollten f¨ur σ und σ  dieselben Abschlussentscheidungen treffen, denn wir treffen sie ja in derselben Situation. Offen muss an dieser Stelle bleiben, was genau ein Zustand ist. Dies ist nat¨urlich abh¨angig von dem zu l¨osenden Problem, aber auch von der Darstellung des Problems als Sequenz von Entscheidungen. Um ein gemeinsames Verst¨andnis zu erreichen, wollen wir die Idee eines Zustandes dennoch konkretisieren.

4.4 Dynamische Programmierung

241

Definition 4.8 (Zustand). F¨ur ein zu l¨osendes Problem, eine Darstellung des Problems als Sequenz von Entscheidungen und eine Ausgangssituation sowie eine Teill¨osung ist ein Zustand eine Menge von Informationen, die es erlaubt, jede Sequenz von Abschlussentscheidungen hinsichtlich 1. Zul¨assigkeit der resultierenden L¨osung und 2. Zielfunktionswert der resultierenden L¨osung zu bewerten. Der Begriff des Zustandes erfasst also ein abstraktes Konzept. Die Definition impliziert Freiheitsgrade, denn selbst wenn wir f¨ur ein zu l¨osendes Problem bereits festgelegt haben, wie wir das Problem als Sequenz von Entscheidungen darstellen, wie die Ausgangssituation ist und welche Teill¨osung vorliegt, sind wom¨oglich verschiedene Zustandsdefinitionen denkbar. Ein Zustand muss aber in jedem Fall Informationen darstellen, die erlauben, ein Optimierungsproblem zu formulieren. Dieses Optimierungsproblem besteht darin, die Abschlussentscheidungen so zu bestimmen, dass die L¨osung, die aus Teill¨osung und Abschlussentscheidungen resultiert, f¨ur die gegebene Teill¨osung optimal ist. Das bedeutet auch, dass die Instanz dieses Optimierungsproblems unzul¨assig ist, falls es f¨ur die gegebene Teill¨osung keine Abschlussentscheidungen geben sollte, die zu einer zul¨assigen L¨osung f¨uhren. Die Betrachtung von Zust¨anden reduziert den Aufwand, indem alle Teill¨osungen, die zu demselben Zustand f¨uhren, in diesem Zustand zusammengefasst werden, da sie sich in keinem f¨ur die Abschlussentscheidungen relevanten Merkmal unterscheiden. Diese Zusammenfassung ist zul¨assig, da zu diesen Teill¨osungen dieselbe Instanz des Optimierungsproblems, die optimalen Abschlussentscheidungen zu finden, geh¨ort. Eine Entscheidung, die in diesem Zustand getroffen wird, kann also als Verl¨angerung jeder der repr¨asentierten Teill¨osungen gesehen werden. Sie f¨uhrt wiederum zu einem Zustand, der s¨amtliche der entstehenden Sequenzen (und wom¨oglich noch weitere) repr¨asentiert. Wir werden von dem Erreichen eines Zu¨ standes durch Erg¨anzen einer Entscheidung als Ubergang von dem Vorg¨angerzustand zu dem Nachfolgerzustand sprechen. Zusammenfassung: Zustand Wir erfassen den Zustand des zu l¨osenden Problems, der w¨ahrend des L¨osungsprozesses sukzessiv durch einzelne Entscheidungen ver¨andert wird. Da die Anfangssequenz von Entscheidungen bereits festgelegt ist, sind im Sinne der Probleml¨osung in einem Zustand nur noch die Abschlussentscheidungen relevant. Die Situation, in der es die Abschlussentscheidungen zu treffen gilt, und alle mit ihr verbundenen relevanten Informationen werden vom Zustand erfasst. Zwei Teill¨osungen, die in diesen relevanten Informationen u¨ bereinstimmen und f¨ur die somit dieselben Abschlussentscheidungen getroffen werden sollten, fassen wir in einem Zustand zusammen.

242

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Salopp formuliert: Zustand Zust¨ande beschreiben Situationen, die sich durch eine Teill¨osung ergeben und in denen die n¨achste Entscheidung getroffen werden muss. ¨ Zu jedem Zustand z gibt es potentiell mehrere Uberg¨ ange von Vorg¨angerzust¨anden. Dabei ist f¨ur die Abschlussentscheidungen, die in diesem Zustand z getrof¨ fen werden sollen, aber gem¨aß der obigen Uberlegungen egal, u¨ ber welchen dieser ¨ Uberg¨ange der Zustand erreicht wird. Wir k¨onnen also davon ausgehen, dass eine eindeutige Sequenz σ a von Abschlussentscheidungen zu einer f¨ur den gegebenen Zustand z optimalen L¨osung, repr¨asentiert durch den Zustand z , f¨uhrt. Die unter¨ schiedlichen Uberg¨ ange von Vorg¨angerzust¨anden zu Zustand z repr¨asentieren aber unterschiedliche Teill¨osungen. Diese unterschiedlichen Teill¨osungen f¨uhren durch Erg¨anzung von σ a zu potentiell unterschiedlichen L¨osungen mit unterschiedlichen Zielfunktionswerten (dennoch ist σ a f¨ur jede dieser Teill¨osungen die optimale Se¨ quenz von Abschlussentscheidungen). Es gilt dann, zu Zustand z den Ubergang von einem Vorg¨angerzustand zu finden, der die Teill¨osung(en) repr¨asentiert, die durch Erg¨anzung von σ a zur besten L¨osung f¨uhrt bzw. f¨uhren. Diesen Zustand nennen wir im Folgenden v(z) und bezeichnen ihn auch als optimalen Vorg¨angerzustand von z. Durch Bestimmung von v(z) legen wir fest, dass f¨ur uns nur die durch z ¨ repr¨asentierten Teill¨osungen relevant sind, die durch den Ubergang von v(z) zu z gekennzeichnet sind. Diese Zusammenh¨ange werden in Abb. 4.19 in Netzwerkform dargestellt.

v(z) v(v(z)) v(v(z ))

z

v(z )

z

σa

Zust¨ande mit ¨ Ubergang zu z

Menge aller Abschlussentscheidungen Zust¨ande mit ¨ Ubergang von z

Abb. 4.19 Prinzip der Dynamischen Programmierung

¨ Zust¨ande werden als Knoten und Uberg¨ ange als Kanten eines Graphen darge¨ stellt. Zentral ist Zustand z abgebildet. Zu diesem gibt es mehrere Uberg¨ ange, von denen einer der optimale Vorg¨angerzustand v(z) ist. F¨ur Zustand v(z) gilt nat¨urlich ebenfalls, dass er einen optimalen Vorg¨angerzustand hat, wie in der Abbildung

4.4 Dynamische Programmierung

243

durch v(v(z)) angedeutet. Wir erkennen, dass es zwei verschiedene Sequenzen von Entscheidungen gibt, die von v(v(z)) zu z f¨uhren, aber nur die, die u¨ ber Zustand v(z) f¨uhrt, wird als optimal identifiziert. Der Zustand z repr¨asentiert die f¨ur den gegebenen Zustand z optimale L¨osung. Diese muss nicht global optimal sein. Unter allen m¨oglichen Abschlussentscheidungen f¨uhrt die Sequenz σ a von Abschlussentscheidungen von z zu z . Von Zustand z sind vermutlich weitere L¨osungen erreichbar und wom¨oglich ist sogar z durch mehrere Sequenzen von Abschlussentscheidungen erreichbar, aber nur σ a wird als diejenige identifiziert, die zu einer f¨ur den gegebenen Zustand z optimalen L¨osung f¨uhrt. F¨ur alle durch z repr¨asentierten Teill¨osungen, d. h. f¨ur alle Wege im Netzwerk zu z, ist σ a die optimale Sequenz von Abschlussentscheidungen. Ziel eines DP-Verfahrens ist, systematisch f¨ur alle Zust¨ande den jeweils optimalen Vorg¨angerzustand zu ermitteln. Wenn dies gelingt, erhalten wir den Zustand z∗ , der die beste(n) L¨osung(en) repr¨asentiert (annahmegem¨aß k¨onnen wir alle L¨osungen bewerten, denn die jeweiligen Zust¨ande liefern alle relevanten Informationen). Von diesem Zustand ausgehend, k¨onnen wir r¨uckw¨arts“ die optimale ” ¨ L¨osung ermitteln (der Ubergang von v(z∗ ) zu z∗ repr¨asentiert die letzte Entschei¨ dung in den optimalen L¨osungen, die von z∗ repr¨asentiert werden; der Ubergang von v(v(z∗ )) zu v(z∗ ) repr¨asentiert die vorletzte Entscheidung in den optimalen L¨osungen, die von z∗ repr¨asentiert werden,...). Salopp formuliert: Dynamische Programmierung In DP-Verfahren betrachten wir Entscheidungssituationen (Zust¨ande) statt detaillierter Teill¨osungen. Wir ermitteln dann indirekt f¨ur jeden Zustand die beste Sequenz von Entscheidungen, die zu ihm f¨uhrt, indem wir explizit die letzte Entscheidung, also die von seinem optimalen Vorg¨angerzustand zu ihm, ermitteln. Wenn wir dies f¨ur jeden Zustand tun und durch Bewertung aller Zust¨ande einen Zustand ermitteln, der zu optimalen L¨osungen korrespondiert, k¨onnen wir so r¨uckw¨arts“ die Entscheidungsequenz nachvollzie” hen, die zu dem Zustand gef¨uhrt hat. Das Prinzip der DP wird in etlichen Disziplinen verwendet. Auch wenn die Konzepte sich dabei weitestgehend entsprechen, weichen die verwendeten Begriffe voneinander ab. Wir werden in diesem Buch einige Aspekte ausblenden, die in anderen Disziplinen zum Teil enorme Bedeutung haben. So werden wir uns hier z. B. nicht mit Unsicherheit besch¨aftigen und nicht mit einer unendlichen Anzahl von Entscheidungen arbeiten.

4.4.2 Komponenten In der Beschreibung der Vorgehensweise in Abschnitt 4.4.1 sind einige Komponenten noch nicht spezifiziert. Um die Vorgehensweise weiter zu konkretisieren, m¨ussen wir verschiedene Komponenten festlegen: die Darstellung eines Pro-

244

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

blems als Sequenz von Entscheidungen, die sich daraus ergebenden Zust¨ande und ¨ die Uberg¨ ange zwischen ihnen. Weiterhin m¨ussen wir Funktionen, mittels derer ¨ Zust¨ande und Uberg¨ ange bewertet werden, festlegen. Diese einzelnen Komponenten werden in den Abschnitten 4.4.2.1 bis 4.4.2.4 besprochen. Abschließend wird in Abschnitt 4.4.2.5 dargestellt, wie die Prozedur zur Ermittlung der optimalen L¨osung aussehen kann. Dabei kann es nur darum gehen, allgemein zu erl¨autern, was bei der Ausgestaltung ber¨ucksichtigt werden sollte, da die konkrete Ausgestaltung problemabh¨angig ist. Wir m¨ussten streng genommen zwischen den modellhaften Abbildungen von ¨ Problemen durch Zust¨ande und Uberg¨ ange und den Abbildungen von Instanzen unterscheiden, werden dies aber nicht tun, um die Erl¨auterungen sprachlich nicht zu u¨ berfrachten.

4.4.2.1 Darstellung des Problems als Sequenz von Entscheidungen Wie schon oben erl¨autert, basiert das gesamte Prinzip der DP auf der Darstellung eines Problems als Sequenz von zu treffenden Entscheidungen. Definition 4.8 dr¨uckt schon aus, dass die Zust¨ande und die von ihnen repr¨asentierte Information auf die gew¨ahlte Darstellung abgestimmt sein m¨ussen. Dies gilt dann nat¨urlich auch f¨ur die ¨ Uberg¨ ange zwischen Zust¨anden. Bei der Wahl einer bestimmten Darstellung des Problems als Sequenz von Entscheidungen verfolgen wir verschiedene Ziele. • Die Darstellung des Problems schr¨ankt ein, welche Informationen mit einem Zustand assoziiert sein m¨ussen. Die konkrete Anzahl der Zust¨ande ergibt sich dann durch die Anzahl m¨oglicher (relevanter) Auspr¨agungen dieser Informationen. In der Regel gibt die Struktur der Zust¨ande vor, von welchem Zustand zu welchem ¨ ¨ anderen Zustand es einen Ubergang gibt. Da die Anzahl von Uberg¨ angen h¨aufig ein maßgeblicher Indikator f¨ur den L¨osungsaufwand ist, sollte die Darstellung ¨ des Problems m¨oglichst wenige Uberg¨ ange implizieren. ¨ • Jeder Ubergang entspricht einer Entscheidung, die in dem Vorg¨angerzustand getroffen wird und den Nachfolgerzustand zur Folge hat. Da es grunds¨atzlich aber mehrere Entscheidungen geben kann, durch die wir von diesem Vorg¨angerzustand zu diesem Nachfolgerzustand u¨ bergehen, m¨ussen wir uns festlegen, wel¨ che dieser Entscheidungen durch den Ubergang repr¨asentiert wird. Dabei sollten wir nach dem schon in Abschnitt 4.4.1 erl¨auterten Prinzip die Entscheidung w¨ahlen, die zusammen mit dem jeweiligen Vorg¨angerzustand eine Teill¨osung repr¨asentiert, die durch Erg¨anzung der optimalen Abschlussentscheidungen zur besten L¨osung f¨uhrt. Der Aufwand f¨ur diese Auswahl sollte m¨oglichst gering ausfallen.

4.4 Dynamische Programmierung

245

Zusammenfassung: Darstellung als Sequenz von Entscheidungen Wir fassen die Ermittlung einer L¨osung als Sequenz von zu treffenden Entscheidungen auf. Wir beeinflussen durch die gew¨ahlte Sequenz von Ent¨ scheidungen das Netzwerk aus Zust¨anden und Uberg¨ angen. Die Struk¨ tur der Zust¨ande (Entscheidungssituationen) und Uberg¨ ange (Entscheidungen) beeinflusst wiederum den Aufwand f¨ur die Bestimmung des optimalen Vorg¨angerzustands eines Zustands. Der Gesamtaufwand bestimmt sich grob ¨ durch die Gr¨oße des Netzwerks, insb. die Anzahl der Uberg¨ ange, und den ¨ Aufwand, der pro Ubergang f¨allig wird, und sollte m¨oglichst gering ausfallen. Nachdem wir nun wissen, was w¨unschenswerte Eigenschaften sind, wollen wir uns beispielhaft konkreten Darstellungen von Problem 4.2 (K¨urzester Weg in einem gerichteten kreisfreien Graphen), Problem 4.1 (Knapsack) und Problem 1.2 (Tourenplanung) als Sequenzen von Entscheidungen zuwenden. Diese Darstellungen sind jeweils problemspezifisch.

¨ Kurzester Weg in einem gerichteten kreisfreien Graphen Die Bestimmung eines Weges von Knoten 1 zu Knoten |V | l¨asst sich als die wiederholte Bestimmung des jeweils n¨achsten zu besuchenden Knotens darstellen. Zwei unmittelbar nacheinander besuchte Knoten implizieren dann eine Kante im Weg. Obwohl wir uns dies formal erst in den Abschnitten 4.4.2.2 bis 4.4.2.4 ableiten werden, k¨onnen wir schon hier intuitiv eine vielversprechende Eigenschaft dieser Dekomposition ausmachen. Um zu beurteilen, ob eine Entscheidung, n¨amlich ein n¨achster zu besuchender Knoten, zul¨assig ist, m¨ussen wir lediglich die letzte getroffene Entscheidung, also den aktuell besuchten Knoten, kennen. Dasselbe gilt f¨ur den Beitrag zum Zielfunktionswert, n¨amlich die L¨ange der Kante vom aktuell besuchten Knoten zum n¨achsten besuchten Knoten. W¨ahrend eine L¨osung (ein Weg) sehr viele Knoten besuchen kann, ist also f¨ur die n¨achste Entscheidung nur der letzte unter diesen Knoten maßgeblich.

Knapsack Die Bestimmung einer Menge von Gegenst¨anden l¨asst sich als Sequenz von Entscheidungen beschreiben, wobei jede Entscheidung festlegt, ob ein bestimmter Gegenstand in die Menge aufgenommen wird oder nicht. Es ist offensichtlich, dass es keine Rolle spielt, in welcher Reihenfolge diese Entscheidung f¨ur die verschiedenen Gegenst¨ande getroffen wird. Wir k¨onnen recht leicht erkennen, dass wir es nicht ganz so leicht haben werden wie bei Problem 4.2 (K¨urzester Weg in einem gerichteten kreisfreien Graphen), die relevante Information f¨ur die Entscheidung zu benennen. Der zuletzt ausgew¨ahlte Gegenstand alleine wird absehbar nicht ausrei-

246

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

chen, denn er impliziert nicht die verbleibende Kapazit¨at. Daher k¨onnen wir auf Basis des letzten ausgew¨ahlten Gegenstands allein nicht entscheiden, ob wir den n¨achsten Gegenstand zul¨assig ausw¨ahlen d¨urfen.

Tourenplanung Die Bestimmung einer Tour l¨asst sich, wie bei Problem 4.2 (K¨urzester Weg in einem gerichteten kreisfreien Graphen), als die wiederholte Bestimmung des jeweils n¨achsten zu besuchenden Ortes darstellen. Wie bei Problem 4.2 (K¨urzester Weg in einem gerichteten kreisfreien Graphen) erlaubt uns die Kenntnis des aktuell besuchten Ortes den Beitrag der n¨achsten Entscheidung (des n¨achsten zu besuchenden Ortes) zum Zielfunktionswert zu bestimmen. Um zu entscheiden, ob die Wahl des n¨achsten zu besuchenden Ortes zul¨assig ist (also zu einer zul¨assigen L¨osung f¨uhren kann), reicht diese Information allerdings nicht aus, denn daf¨ur m¨ussen wir wissen, welche Orte wir schon besucht haben.

4.4.2.2 Zust¨ande Zust¨ande beschreiben Situationen, die sich durch eine Teill¨osung ergeben und in denen die n¨achste Entscheidung getroffen werden muss. Definition 4.8 beschreibt dabei abstrakt die Anforderungen an die Informationen, die ein Zustand repr¨asentiert. Wir m¨ussen sicherstellen, dass jede Situation, die wir vorfinden k¨onnen, hinreichend genau beschrieben ist und uns so erm¨oglicht, die im Sinne des zu l¨osenden Problems optimalen Abschlussentscheidungen zu treffen. Umgekehrt wollen wir sofern m¨oglich vermeiden, Situationen zu beschreiben, die gar nicht auftreten k¨onnen. Wir k¨onnten beides gew¨ahrleisten, indem wir jede vollst¨andige Teill¨osung als Zustand repr¨asentieren. Allerdings kann es sein, dass verschiedene Teill¨osungen zu derselben Entscheidungssituation f¨uhren. Dies w¨urde dann bedeuten, dass wir mehr Zust¨ande als n¨otig haben, da mehrere identische (im Sinne der repr¨asentierten Entscheidungssituation) existieren. Wir werden daher versuchen, durch Zust¨ande nur solche Informationen abzubilden, die f¨ur die Repr¨asentation unterschiedlicher Entscheidungssituationen relevant sind. Idealerweise ist jede Entscheidungssituation nur durch einen einzigen Zustand repr¨asentiert. Wir wollen an dieser Stelle kurz zwei Spezialf¨alle von Zust¨anden betonen. F¨ur initiale Zust¨ande ist die Teill¨osung leer. Sie bilden also eine initiale Entscheidungssituation ab, die wir vorfinden, bevor eine Entscheidung getroffen wurde. F¨ur finale Zust¨ande hingegen gibt es keine weiteren zu treffenden Entscheidungen. Sie repr¨asentieren also eine (nicht notwendigerweise zul¨assige) L¨osung des zu l¨osenden Problems. H¨aufig ist vor dem L¨osen des Problems nur schwer zu ermitteln, welche Situationen sich durch Teill¨osungen ergeben k¨onnen und welche nicht. Wir arbeiten dann h¨aufig mit einer Menge von Zust¨anden, die Situationen beschreiben, von denen wir nicht ausschließen k¨onnen, dass sie sich ergeben. Erst im Verlauf der Probleml¨osung finden wir dann heraus, ob ein Zustand tats¨achlich erreicht wird oder nicht. Dabei

4.4 Dynamische Programmierung

247

verwenden wir dann h¨aufig aus technischen Gr¨unden auch initiale Zust¨ande, die nicht einer Ausgangssituation entsprechen. Bei initialen Zust¨anden ist dies nat¨urlich leicht zu beurteilen, weswegen wir diese Zust¨ande im Folgenden als k¨unstliche initiale Zust¨ande bezeichnen wollen. Sie werden verwendet, um direkt oder indirekt Zust¨ande zu bewerten, die nicht durch eine zul¨assige Teill¨osung erreicht werden k¨onnen. In der Regel wird diese Bewertung dann im Sinne der Zielfunktion sehr schlecht ausfallen, um sie als schlechtestm¨ogliche Entscheidungssituation zu markieren. Zusammenfassung: Zust¨ande Entscheidungssituationen k¨onnen wom¨oglich durch unterschiedliche Informationen beschrieben werden. Wir m¨ussen also nicht nur festlegen, welche Situationen wir beschreiben wollen, sondern auch, durch welche Informationen dies geschehen soll. Wir wollen dabei m¨oglichst wenige Zust¨ande verwenden, d. h. bei Erfassung aller relevanter Situationen sollte die mehrfache Abbildung derselben Situation oder die Abbildung von irrelevanten Situationen m¨oglichst vermieden werden.

¨ Kurzester Weg in einem gerichteten kreisfreien Graphen Wie schon in Abschnitt 4.4.2.1 angesprochen, wollen wir iterativ den jeweils n¨achsten zu besuchenden Knoten bestimmen. Dabei ist f¨ur eine Sequenz von Abschlussentscheidungen lediglich relevant, welcher Knoten j als letztes durch die gegebene Teill¨osung erreicht wurde. Dies liegt daran, dass wir zwar auf unterschiedlichen Wegen zu j gelangt sein k¨onnen, wir aber nun nur noch entscheiden m¨ussen, wie wir von j nach |V | kommen. Hierf¨ur sollten wir den besten Weg von j nach |V | w¨ahlen. Dieser h¨angt aber nicht davon ab, wie wir nach j gekommen sind und daher ist der Weg nach j irrelevant f¨ur die Abschlussentscheidungen. Um den besten Weg von j nach |V | zu finden, m¨ussen wir lediglich die Instanz des zu l¨osenden Problems, d. h. den Graphen G = (V, E, w), und den zuletzt erreichten Knoten j kennen. Wir verwenden dementsprechend einen Zustand f¨ur jeden Knoten in V . Der Zustand, der zu Knoten j ∈ V geh¨ort, steht dabei f¨ur alle Wege bzw. Teill¨osungen, die von Knoten 1 zu Knoten j f¨uhren. Unter den genannten Zust¨anden ist jeder, der zu einem Knoten geh¨ort, der keine eingehende Kante hat, ein initialer Zustand. Jeder Zustand, der zu einem Knoten ohne ausgehende Kante geh¨ort, ist ein finaler Zustand. Insbesondere Zustand 1 (|V |) ist also ein initialer (finaler) Zustand. Alle weiteren initialen Zust¨ande sind k¨unstliche initiale Zust¨ande, da der Weg dort nicht starten kann.

Knapsack Wie in Abschnitt 4.4.2.1 erl¨autert, wollen wir sequentiell f¨ur die Gegenst¨ande i = 1, . . . , n entscheiden, ob sie in die Menge aufgenommen werden oder nicht. Wir

248

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

k¨onnten also z. B. Zust¨ande betrachten, die ausdr¨ucken, f¨ur welche Gegenst¨ande die Entscheidung schon gefallen ist und welche Gegenst¨ande bislang in die Menge aufgenommen wurden. Zustand (i, I) w¨urde dann ausdr¨ucken, dass wir bereits u¨ ber die Gegenst¨ande 1, . . . , i entschieden haben und dabei die Gegenst¨ande in I ⊆ {1, . . . , i} in die Menge aufgenommen haben. Wir k¨onnen dann aus (i, I) ableiten, dass wir als n¨achstes u¨ ber Gegenstand i + 1 entscheiden m¨ussen und f¨ur die verbleibenden Gegenst¨ande noch eine Kapazit¨at von C − ∑i ∈I wi zur Verf¨ugung steht. Diese Informationen w¨urden uns erlauben, die verbleibende Kapazit¨at durch Entscheidungen f¨ur die Gegenst¨ande i + 1, . . . , n optimal zu nutzen. Wir k¨onnen hier aber noch etwas geschickter vorgehen und dabei die Anzahl der Zust¨ande reduzieren, denn f¨ur die Abschlussentscheidungen ist ja nur die verbleibende Kapazit¨at, nicht aber die Menge der schon aufgenommenen Gegenst¨ande relevant. Verschiedene Mengen von aufgenommenen Gegenst¨anden, die dieselbe Restkapazit¨at implizieren, k¨onnen wir als dieselbe Entscheidungssituation auffassen. Dies wollen wir an der folgenden schon bekannten Instanz verdeutlichen. Beispiel 4.1 (Instanz zu Modell 4.1). • n = 6, C = 21 • v1 = 90, v2 = 49, v3 = 29, v4 = 28, v5 = 18, v6 = 15 • w1 = 18, w2 = 10, w3 = 6, w4 = 6, w5 = 4, w6 = 5 Wir betrachten beispielhaft drei Teill¨osungen, die jeweils f¨ur die Gegenst¨ande 1, . . . , 5 festlegen, ob sie in die Menge aufgenommen werden. Gem¨aß der ersten Teill¨osung wird nur Gegenstand 2 aufgenommen, gem¨aß der zweiten die Gegenst¨ande 3 und 5 und gem¨aß der dritten die Gegenst¨ande 4 und 5. Die drei Teill¨osungen sowie die jeweiligen Mengen von aufgenommenen Gegenst¨anden unterscheiden sich, aber die verbleibende Kapazit¨at ist in jedem Fall 11. In jedem der genannten F¨alle sollten wir also die noch ausstehenden Entscheidungen gleich treffen, denn in jedem Fall gilt es, die verbleibende Kapazit¨at von 11 optimal durch die Entscheidung u¨ ber die Aufnahme von Gegenstand 6 zu nutzen. Wir verwenden also einen Zustand (i,C ) f¨ur jeden Gegenstand i ∈ {1, . . . , n} und jede verbleibende Kapazit¨at C ∈ {0, . . . ,C}. Der Zustand (i,C ) steht dabei f¨ur alle Teilmengen der Gegenst¨ande 1, . . . , i bzw. Teill¨osungen mit Entscheidungen u¨ ber die Aufnahme der Gegenst¨ande 1, . . . , i, die zu einer verbleibenden Kapazit¨at von C f¨uhren. Dabei ist jeder Zustand (n,C ), C ∈ {0, . . . ,C}, ein finaler Zustand. Dar¨uber hinaus ben¨otigen wir noch einen initialen Zustand (0,C), der die Situation vor der ersten Entscheidung beschreibt, und verwenden einen k¨unstlichen initialen Zustand (0,C ) f¨ur jede verbleibende Kapazit¨at C ∈ {0, . . . ,C − 1}.

Tourenplanung Wie schon in Abschnitt 4.4.2.1 angesprochen, wollen wir iterativ den jeweils n¨achsten zu besuchenden Ort bestimmen. Wir k¨onnten also z. B. Zust¨ande betrachten, die ausdr¨ucken, welche Orte bereits besucht wurden und in welcher Sequenz

4.4 Dynamische Programmierung

249

dies geschehen ist (dies entspr¨ache einem Zustand, der die Teill¨osung vollst¨andig repr¨asentiert). Aus einem Zustand k¨onnten wir dann ableiten, welche Orte wir noch besuchen m¨ussen und wie lang die n¨achste Teilstrecke bei Entscheidung des n¨achsten zu besuchenden Ortes ist. Diese Informationen w¨urden uns erlauben, f¨ur die verbleibenden Orte eine optimale Sequenz festzulegen. Aber auch hier k¨onnen wir etwas geschickter vorgehen, denn f¨ur die Entscheidung u¨ ber die Sequenz der verbleibenden Orte ist ja nur die Menge verbleibender Orte und der letzte bisher besuchte Ort relevant. Es reicht also, wenn jeder Zustand diese Informationen repr¨asentiert. Dies f¨uhrt zu einer kleineren Anzahl von Zust¨anden, da alle Sequenzen, die dieselben bisher besuchten Orte enthalten und denselben letzten Ort haben, durch einen einzigen Zustand repr¨asentiert werden. Wir verwenden dementsprechend einen Zustand (I, i) f¨ur jede Teilmenge I von Orten, die Ort 1 enth¨alt, und jeden Ort i ∈ I \ {1}, falls I \ {1} =  0, / bzw. Ort i = 1, falls I = {1}. Ein solcher Zustand beschreibt, dass die Teilmenge I von Orten besucht wurde und i der letzte der besuchten Orte ist. Die Einschr¨ankung i ∈ I \ / dr¨uckt dabei aus, dass Ort 1 nur dann der zuletzt besuchte {1}, falls I \ {1} = 0, Ort sein kann, wenn noch kein weiterer Ort besucht wurde. Dabei ist ({1}, 1) der einzige initiale Zustand, der die Situation vor der ersten Entscheidung beschreibt. Jeder Zustand ({1, . . . , n}, i), i ∈ {1, . . . , n}, ist ein finaler Zustand. ¨ 4.4.2.3 Uberg¨ ange ¨ Uberg¨ ange beschreiben Entscheidungen, die jeweils von einem Vorg¨angerzustand zu einem Nachfolgerzustand f¨uhren. In der Regel k¨onnen wir f¨ur jedes Paar von ¨ Zust¨anden durch unser Problemwissen festlegen, ob es einen Ubergang zwischen ihnen gibt. Dabei ist zu bedenken, dass die repr¨asentierte Entscheidung zul¨assig sein muss, d. h. im Sinne des zu l¨osenden Problems in dem jeweiligen Zustand getroffen werden kann. Gem¨aß Definition 4.8 k¨onnen wir dies anhand der von dem Ausgangszustand repr¨asentierten Informationen entscheiden. F¨ur die beiden speziellen ¨ Typen von initialen Zust¨anden bzw. finalen Zust¨anden gibt es keine Uberg¨ ange, die zu ihnen f¨uhren bzw. die von ihnen ausgehen. Wie schon zuvor gesehen, lassen sich ¨ Zust¨ande, Uberg¨ ange und ihre Zusammenh¨ange recht anschaulich als Netzwerk darstellen. ¨ angen dar. Wiederum Abb. 4.20 stellt ein Netzwerk aus Zust¨anden und Uberg¨ ¨ repr¨asentieren dabei Knoten Zust¨ande und gerichtete Kanten Uberg¨ ange. Eine Kan¨ von dem Zustand, te von Knoten j zu Knoten j steht dann f¨ur den Ubergang der Knoten j entspricht, zu dem Zustand, der Knoten j entspricht. Zust¨ande 1, ¨ 2 und 3 sind initiale Zust¨ande ohne eingehende Uberg¨ ange, w¨ahrend Zust¨ande 13 ¨ und 14 finale Zust¨ande ohne ausgehende Uberg¨ ange sind. Zustand 8 kann durch ¨ Uberg¨ ange von den vier Zust¨anden 4 bis 7 erreicht werden. Insgesamt gibt es acht Wege von einem initialen Zustand zu Zustand 8, d. h., es gibt acht Teill¨osungen, die zu Zustand 8 f¨uhren. Es gibt sechs Wege von Zustand 8 zu einem finalen Zustand. Wenn wir in der durch Zustand 8 repr¨asentierten Entscheidungssituation sind, ist f¨ur die Auswahl eines Weges, also f¨ur das Treffen der Abschlussentscheidungen,

250

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung 6 4

12

2

1

10 6

6

1

5

8

13

30

2

2

11 12

6

1

6

9

14

18

2

3

12 6 7

Abb. 4.20 Netzwerkdarstellung

¨ nicht mehr relevant, wie genau wir Zustand 8 erreicht haben. Uber jedem Knoten ist die Anzahl von Sequenzen von Abschlussentscheidungen notiert, die von diesem Zustand zu einem finalen Zustand f¨uhren. In dem Netzwerk mit 14 Zust¨anden sind also 12 + 30 + 18 = 60 L¨osungen in Form von verschiedenen Sequenzen von Entscheidungen repr¨asentiert. Dies veranschaulicht die Reduktion der Komplexit¨at, die durch das Zusammenfassen von Teill¨osungen zu Zust¨anden m¨oglich wird. ¨ Zusammenfassung: Uberg¨ ange Wenn wir in einer Entscheidungssituation eine Entscheidung treffen, f¨uhrt ¨ dies zu einer neuen Situation. Uberg¨ ange stellen diese Ver¨anderung der Situation durch eine Entscheidung dar. Die Zust¨ande sollten so aussagekr¨aftig definiert sein, dass mit dem Problemwissen entschieden werden kann, ob ¨ es zwischen zwei Zust¨anden einen Ubergang gibt. Wenn es mehr als eine Entscheidung gibt, die von dem Vorg¨angerzustand zu dem Nachfolgerzustand f¨uhrt, dann m¨ussen wir uns entscheiden, welche dieser Entschei¨ dungen durch den Ubergang repr¨asentiert werden.

¨ Kurzester Weg in einem gerichteten kreisfreien Graphen ¨ Ein Ubergang von einem Zustand, der zu Knoten j geh¨ort, zu einem Zustand, der zu Knoten j , j > j, geh¨ort, beschreibt das Benutzen der Kante ( j, j ). Diese Interpre¨ tation des Ubergangs ist eindeutig, da es nur eine M¨oglichkeit gibt, direkt von j als zuletzt besuchtem Knoten (Zustand j) zu j als zuletzt besuchtem Knoten (Zustand j ) u¨ berzugehen. F¨ur einen beliebigen gerichteten, kreisfreien Graphen G = (V, E)

4.4 Dynamische Programmierung

251

¨ ber¨ucksichtigen wir einen Ubergang von Zustand j zu Zustand j f¨ur jede Kan ¨ ange von einem Zustand j zu te ( j, j ) ∈ E. Es gibt also potentiell mehrere Uberg¨ anderen Zust¨anden und zwar einen f¨ur jede von Knoten j ausgehende Kante. Die ¨ Uberg¨ ange bilden die m¨oglichen Entscheidungen ab, die wir treffen k¨onnen, wenn wir auf einem Weg bei Knoten j angelangt sind.

1

2

3

4

5

Abb. 4.21 Netzwerkdarstellung zu der Instanz in Abb. 4.18

F¨ur die Instanz in Abb. 4.18 auf S. 239 ergibt sich die Netzwerkstruktur in Abb. 4.21. Es ist nicht sehr u¨ berraschend, dass die Struktur des Netzwerkes der des Graphen entspricht.

Knapsack ¨ Ein Ubergang beschreibt die Entscheidung u¨ ber die Aufnahme eines einzelnen Gegenstandes i in die Menge. Hierf¨ur gibt es maximal zwei Optionen: Der Gegenstand wird in die Menge aufgenommen oder er wird nicht in die Menge aufgenommen. Von einem Zustand (i − 1,C ), i = 1, . . . , n, ausgehend gibt es einen oder ¨ ¨ zwei Uberg¨ ange. Es gibt sicher einen Ubergang, der repr¨asentiert, dass i nicht in ¨ die Menge aufgenommen wird. Dieser Ubergang f¨uhrt zu Zustand (i,C ), denn die verbleibende Kapazit¨at a¨ ndert sich nicht. Wenn C ≥ wi , dann gibt es einen zwei¨ ten Ubergang, der repr¨asentiert, dass i in die Menge aufgenommen wird. Dieser ¨ Ubergang f¨uhrt zu Zustand (i,C − wi ), denn die verbleibende Kapazit¨at wird durch ¨ gibt es nicht, wenn C < wi , die Entscheidung um wi verringert. Diesen Ubergang denn dann k¨onnen wir i nicht in die Menge aufnehmen, da die verbleibende Kapa¨ zit¨at dies nicht zul¨asst. In jedem Fall ist die Interpretation eines Ubergangs eindeutig. ¨ Das Netzwerk aus Zust¨anden und Uberg¨ angen, das sich f¨ur die Instanz in Beispiel 4.1 ergibt, ist in Abb. 4.22 skizziert. ¨ In Abb. 4.22 sind der Ubersichtlichkeit halber nicht alle Zust¨ande wie in Abschnitt 4.4.2.2 beschrieben dargestellt. Ganz links finden wir die initialen Zust¨ande, wobei die k¨unstlichen initialen Zust¨ande mit einem schwarzen Rand dargestellt sind. In der zweiten Spalte finden sich alle Zust¨ande, die Entscheidungssituationen repr¨asentieren, in denen u¨ ber die Aufnahme von Gegenstand 1 in die Menge entschieden wurde. Wir sehen einen Zustand f¨ur jede Restkapazit¨at zwischen 0 und

252

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

0, 21

1, 21

0, 20

1, 20

0, 19

1, 19

0, 18

1, 18

0, 17

1, 17

0, 16

1, 16

0, 15

1, 15

0, 14

1, 14

0, 13

1, 13

0, 12

1, 12

0, 11

1, 11

0, 10

1, 10

0, 9

1, 9

0, 8

1, 8

0, 7

1, 7

0, 6

1, 6

0, 5

1, 5

0, 4

1, 4

0, 3

1, 3

0, 2

1, 2

0, 1

1, 1

0, 0

1, 0

2, 21

3, 21

4, 21

5, 21

6, 21

5, 17

6, 17 6, 16

3, 15

4, 15

5, 15

6, 15

6, 12 2, 11

3, 11

4, 11

5, 11

6, 11 6, 10

4, 9

5, 9

6, 9

5, 7

6, 7 6, 6

3, 5

4, 5

5, 5

6, 5 6, 4

2, 3

3, 3

4, 3

5, 3

6, 3 6, 2

5, 1

6, 1 6, 0

Abb. 4.22 Netzwerkdarstellung zu der Instanz in Beispiel 4.1 (Seite 209)

21. Dies deckt alle Restkapazit¨aten ab, die wir nicht trivial ausschließen k¨onnen. Allerdings sind auch etliche ber¨ucksichtigt, die sich gar nicht aus einer Entscheidung u¨ ber Gegenstand 1 von einem nicht-k¨unstlichen initialen Zustand aus ergeben k¨onnen. Diese sind durch einen fetten schwarzen Rand hervorgehoben. Wir sehen, dass lediglich die Zust¨ande (1, 21) und (1, 3) von Zustand (0, 21) aus erreicht wer-

4.4 Dynamische Programmierung

253

den, denn Gegenstand 1 wird entweder aufgenommen oder nicht. In allen folgenden Spalten werden dann nur noch die Zust¨ande abgebildet, die tats¨achlich von dem nicht-k¨unstlichen initialen Zustand aus indirekt erreicht werden k¨onnen. Wir erkennen, dass auch in der rechten Spalte, also in vollst¨andigen L¨osungen der Probleminstanz, nicht alle Restkapazit¨aten zwischen 0 und 21 erreicht werden k¨onnen. Die ¨ meisten Zust¨ande haben zwei ausgehende Uberg¨ ange. Wenn die Restkapazit¨at allerdings so gering ist, dass der aktuelle Gegenstand nicht in die Menge aufgenommen ¨ werden kann, gibt es nur einen ausgehenden Ubergang. Dies ist inbesondere der Fall, wenn Gegenstand 1 in die Menge aufgenommen wird; dann kann kein weiterer Gegenstand aufgenommen werden.

Tourenplanung ¨ Ein Ubergang beschreibt die Entscheidung u¨ ber den n¨achsten zu besuchenden Ort. ¨ Ausgehend von Zustand (I, i) gibt es daher einen Ubergang f¨ur jeden Ort, der nicht in I ist, also noch nicht besucht wurde, denn jeder dieser Orte kann als n¨achstes ¨ besucht werden. Der Ubergang, der zu Ort i als n¨achstem besuchtem Ort korrespondiert, f¨uhrt zu Zustand (I ∪ {i }, i ), da im n¨achsten Zustand i zus¨atzlich zu den bisher besuchten Orten in I besucht wurde und i der zuletzt besuchte Ort ist. Die ¨ Interpretation eines solchen Ubergangs ist, dass i unmittelbar nach i besucht wird und daher die Strecke von i zu i als ein Teil der Tour genutzt wird. Wenn i der letzte Ort ist, der noch nicht in I war, dann wird zus¨atzlich die Strecke von i zu Ort 1 genutzt, um die Tour zu vollenden. ¨ Das Netzwerk aus Zust¨anden und Uberg¨ angen, das sich f¨ur die Instanz in Abb. 4.11 ergibt, ist in Abb. 4.23 dargestellt. 2 0

0

1

1

3

1

2 0

2

0

6

Abb. 4.11 Instanz des Problems 1.2 (Tourenplanung)

5

0

4

Ganz links in Abb. 4.23 finden wir den initialen Zustand und in der n¨achsten Spalte alle Zust¨ande, die Entscheidungssituationen repr¨asentieren, in denen der

254

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

{1,2}, 2

{1,3}, 3

{1,2,3}, 3

{1,2,3,4}, 4

{1,2,4}, 4

{1,2,3,5}, 5

{1,2,5}, 5

{1,2,3,4}, 3

{1,2,3}, 2

{1,2,4,5}, 5

{1,3,4}, 4

{1,2,3,5}, 3

{1,3,5}, 5

{1,2,4,5}, 4

{1,2,4}, 2

{1,2,3,4}, 2

{1,3,4}, 3

{1,3,4,5}, 5

{1,4,5}, 5

{1,2,3,5}, 2

{1,2,5}, 2

{1,3,4,5}, 4

{1,3,5}, 3

{1,2,4,5}, 2

{1,4,5}, 4

{1,3,4,5}, 3

{1,2,3,4,5}, 5

{1,2,3,4,5}, 4

{1}, 1

{1,4}, 4

{1,5}, 5

{1,2,3,4,5}, 3

{1,2,3,4,5}, 2

Abb. 4.23 Netzwerkdarstellung zu der Instanz des Problems 1.2 (Tourenplanung) in Abb. 4.11

erste nach Ort 1 besuchte Ort entschieden wurde. Analog werden auch diese Zust¨ande weiterentwickelt, bis ganz rechts die finalen Zust¨ande erreicht werden. Jeder dieser finalen Zust¨ande repr¨asentiert eine Sequenz von Entscheidungen, die eine vollst¨andige Tour erzeugen. Wir k¨onnen auch hier den reduzierenden Ef”

4.4 Dynamische Programmierung

255

fekt“ beobachten, den das Zusammenfassen verschiedener Teill¨osungen, die zu derselben Entscheidungssituation f¨uhren, hat. Jeder Zustand in der vierten Spalte ¨ hat zwei eingehende Uberg¨ ange, d. h., jeder dieser Zust¨ande repr¨asentiert mehrere Teill¨osungen.

4.4.2.4 Bewertungsfunktionen und Bellmann-Gleichung In Abschnitt 4.4.1 haben wir schon diskutiert, dass wir unter den Teill¨osungen, die durch einen Zustand repr¨asentiert werden, diejenige identifizieren wollen, die erg¨anzt um die optimalen Sequenzen von Abschlussentscheidungen die beste L¨osung ¨ repr¨asentiert. Wir benutzen Bewertungsfunktionen f¨ur Zust¨ande und Uberg¨ ange, um abzubilden, wie sich die repr¨asentierten Teill¨osungen und Entscheidungen zur Konstruktion guter L¨osungen eignen. F¨ur einen Zustand z bewertet die jeweilige Funktion f (z) die beste unter allen Teill¨osungen, die von dem Zustand repr¨asentiert werden. Wir haben schon in Abschnitt 4.4.2.2 betont, dass ein Zustand die Teill¨osung in der Regel nicht vollst¨andig abbildet, sondern nur die Informationen, die f¨ur die Abschlussentscheidungen relevant sind. Ein Zustand gemeinsam mit seiner Bewertung repr¨asentiert allerdings nur solche Teill¨osungen, die sich durch Abschlussentscheidungen zu der besten L¨osung vervollst¨andigen lassen. Dies ist leicht nachzuvollziehen. Sollten wir durch unterschiedliche Teill¨osungen zu demselben Zustand gelangen, einige dieser Teill¨osungen sich aber besser (im Sinne der Zielfunktion) zu L¨osungen vervollst¨andigen lassen als die anderen, dann k¨onnen wir die anderen ignorieren. ¨ ¨ u muss die jeweilige Funktion g(u) die durch den Ubergang F¨ur einen Ubergang repr¨asentierte Entscheidung bewerten. H¨aufig ist es m¨oglich, den Beitrag der einzelnen Entscheidung zu der Bewertung einer vollst¨andigen L¨osung zu benennen und ¨ diesen dann als Bewertung des Ubergangs zu verwenden. Wie genau die Bewertungsfunktionen definiert sind, ist problemabh¨angig, aber der zentrale Zusammenhang zwischen den Bewertungsfunktionen der Zust¨ande und ¨ Uberg¨ ange wird in der Regel rekursiv in Form der Bellmann-Gleichung dargestellt, siehe auch Bellman (1957). In der Bellmann-Gleichung betrachten wir Zustand z ¨ und die Menge Z(z) der Zust¨ande, von denen es einen Ubergang zu z gibt. Die Menge Z(z) enth¨alt also die Zust¨ande, von denen aus wir durch eine einzelne Ent¨ scheidung Zustand z erreichen k¨onnen. Den Ubergang von z ∈ Z(z) zu z bezeichnen  wir mit u(z , z). Die Bewertung f (z) des Zustandes z, f¨ur den Z(z) = 0/ gilt, ergibt sich dann f¨ur eine zu maximierende Bewertung als     f (z) = max h f (z ), g(u(z , z)) | z ∈ Z(z) , (4.28) wobei h eine Funktion ist, die aus der Bewertung f (z ) des Vorg¨angerzustandes und ¨ eine m¨ogliche Bewertung des Zustandes der Bewertung g(u(z , z)) des Ubergangs z ableitet. Unter allen m¨oglichen Bewertungen des Zustandes z wird die h¨ochste gew¨ahlt. Der optimale Vorg¨angerzustand v(z) ist derjenige, der diese h¨ochste Bewertung f¨ur z impliziert. F¨ur eine zu minimierende Bewertung ergibt sich entspre-

256

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

chend

    f (z) = min h f (z ), g(u(z , z)) | z ∈ Z(z) .

(4.29)

Diese beiden Funktionen zur Bewertung von Zust¨anden unterscheiden sich nur in der Orientierung, die davon abh¨angt, ob der Vorg¨angerzustand mit der h¨ochsten oder niedrigsten implizierten Bewertung der optimale Vorg¨angerzustand ist. Die beiden Terme treffen keine Aussage u¨ ber die genaue Struktur der Funktionen. Diese k¨onnen beliebig komplex sein. Es ist allerdings ersichtlich, dass die Bewertung eines Zustandes lediglich von den Bewertungen der Vorg¨angerzust¨ande und den Be¨ wertungen der Uberg¨ ange zu Zustand z abh¨angt. Dies formalisiert unsere bisherige Beschreibung, dass wir einen Zustand wom¨oglich durch verschiedene Sequenzen von Entscheidungen erreichen k¨onnen, uns aber unter diesen Sequenzen auf die mit der besten Bewertung beschr¨anken wollen. Dabei m¨ussen die Bewertungsfunktionen so gew¨ahlt sein, dass h ( f (z ), g(u(z , z))) f¨ur den optimalen Vorg¨angerzustand z = v(z) maximal (minimal) unter allen Zust¨anden in Z(z) ist. Zusammenfassung: Bellmann-Gleichung Die Bellmann-Gleichung beschreibt die Bewertung eines Zustandes als Abw¨agung zwischen den Bewertungen, die verschiedene Vorg¨angerzust¨ande implizieren. Dabei wird unter diesen Alternativen diejenige gew¨ahlt, die die attraktivste Bewertung impliziert. Die Bewertung, die ein Vorg¨angerzustand impliziert, ergibt sich dabei aus ¨ seiner eigenen Bewertung und der Bewertung des Ubergangs zu dem zu bewertenden Zustand. Die Bewertung mittels Gleichungen (4.28) und (4.29) betrifft nur Zust¨ande mit Vorg¨angerzust¨anden. Initiale Zust¨ande repr¨asentieren Situationen, in denen noch keine Entscheidung getroffen wurde und zu denen dementsprechend kein ¨ Ubergang f¨uhrt. Daher kann f¨ur initiale Zust¨ande auch keine Bewertung mittels Vorg¨angerzust¨anden erfolgen und wir m¨ussen diese Bewertung aus unserem Pro¨ blemverst¨andnis bzw. aus der Kenntnis der Zust¨ande und Uberg¨ ange ableiten. Diese initialen Zust¨ande bzw. deren Bewertungen bilden den Kern des in Gleichungen (4.28) und (4.29) dargestellten rekursiven Zusammenhangs.

¨ Kurzester Weg in einem gerichteten kreisfreien Graphen ¨ Wir bewerten den Ubergang von dem Zustand, der zu Knoten j geh¨ort, zu dem Zustand, der zu Knoten j, j > j , geh¨ort, mit der L¨ange w j , j der entsprechenden Kante, d. h. g(u( j , j)) = w j , j . Die Bewertung des Zustandes, der zu Knoten j geh¨ort, reflektiert die L¨ange des k¨urzesten Weges von Knoten 1 zu Knoten j. Die Bellmann-Gleichung zur Bewertung eines Zustandes j, j = 1, . . . , |V |, ergibt sich dann als

4.4 Dynamische Programmierung

⎧     ⎪ / ⎨min f ( j ) + w j , j | j ∈ Z( j) , wenn Z( j) = 0, f ( j) = 0, wenn j = 1, ⎪ ⎩ ∑e∈E we + 1, wenn Z( j) = 0/ und j = 1.

257

(4.30)

Wir k¨onnen diese Gleichung so lesen, dass sich die L¨ange des k¨urzesten Weges von Knoten 1 zu Knoten j mit Z( j) = 0/ als die L¨ange des k¨urzesten Weges zu einem Knoten j , j < j, zuz¨uglich der L¨ange der Kante ( j , j) ergibt. Wir w¨ahlen explizit also nur den Vorg¨anger von j auf dem Weg von 1 zu j, sodass der resultierende Weg minimale L¨ange hat. F¨ur einen initialen Zustand, der zu Knoten j geh¨ort, d. h. f¨ur einen Zustand j mit Z( j) = 0, / ergibt sich f ( j) = 0, falls j = 1, und f ( j) = ∑e∈E we + 1, falls j = 1. F¨ur Knoten j = 1 w¨ahlen wir eine Bewertung von 0, sodass die Bewertung die L¨ange des k¨urzesten Weges von Knoten 1 zu Knoten j = 1 widerspiegelt. F¨ur Knoten j = 1 ohne Vorg¨angerzustand w¨ahlen wir eine Bewertung von ∞ bzw. einen endlichen Wert mit gleicher Wirkung, damit jeder bei j startende Weg eine so schlechte Bewertung erh¨alt, dass jeder Weg, der bei Knoten 1 beginnt, besser ist. Dies entspricht in gewisser Weise unserem Problemverst¨andnis. Wege, die bei 1 beginnen, k¨onnen zu einer L¨osung vervollst¨andigt werden und sollten daher gegen¨uber Wegen, die nicht bei 1 beginnen und somit nicht durch weitere Entscheidungen zu einer zul¨assigen L¨osung vervollst¨andigt werden k¨onnen, bevorzugt werden.

Knapsack ¨ Wir bewerten den Ubergang von Zustand (i − 1,C + wi ) zu Zustand (i,C ), der die Aufnahme von Gegenstand i, i = 1, . . . , n, in die Menge repr¨asentiert, mit dem ¨ von Zustand (i − 1,C ) zu Zustand (i,C ), Wert vi des Gegenstandes. Der Ubergang der abbildet, dass Gegenstand i nicht in die Menge aufgenommen wird, wird mit 0 bewertet. Insgesamt haben wir also g(u((i − 1,C + wi ), (i,C ))) = vi , falls C + wi ≤ C und g(u((i − 1,C ), (i,C ))) = 0 und bilden damit den Beitrag von Gegenstand i zu dem gesamten Zielfunktionswert ab. Die Bewertung des Zustandes (i,C ), der zu Gegenstand i und Restkapazit¨at  C geh¨ort, reflektiert den maximalen Wert aller Teilmengen von Gegenst¨anden aus {1, . . . , i} mit einem Gesamtgewicht von C − C . Die Bellmann-Gleichung zur Bewertung des Zustandes (i,C ) ergibt sich dann als ⎧ max { f (i − 1,C + wi ) + vi , f (i − 1,C )} , wenn i ≥ 1 und C + wi ≤ C, ⎪ ⎪ ⎪ ⎨ f (i − 1,C ), wenn i ≥ 1 und C + wi > C, f (i,C ) = ⎪ 0, wenn i = 0 und C = C, ⎪ ⎪ ⎩ − ∑ni=1 vi − 1, wenn i = 0 und C < C. (4.31) Die initialen Zust¨ande werden dabei in der dritten und vierten Zeile bewertet. In der vierten Zeile werden k¨unstliche initiale Zust¨ande bewertet. Die Bewertung ist so schlecht (im Sinne der zu maximierenden Bewertungsfunktion der u¨ brigen

258

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Zust¨ande), dass eine Bewertung, die direkt oder indirekt von einem k¨unstlichen initialen Zustand ausgeht, negativ ist und somit schlechter als jede direkt oder indirekt von dem einzigen u¨ brigen initialen Zustand ausgehende Bewertung. Letztere ist wegen der dritten Zeile und dem additiven Zusammenhang zwischen Bewertung von ¨ Zust¨anden und Uberg¨ angen nicht-negativ. Die zweite Zeile beschreibt die Bewertung solcher Zust¨ande, die ausschließen, dass Gegenstand i in die Menge aufgenommen wurde. Das sind Zust¨ande, bei denen die Restkapazit¨at C die Gesamtkapazit¨at C um weniger als wi unterschreitet, denn wenn Gegenstand i in der Menge ist, dann sind wi Kapazit¨atseinheiten belegt und die Restkapazit¨at kann h¨ochstens C − wi betragen. Da Gegenstand i in diesem Fall also nicht aufgenommen wurde, entspricht die Bewertung von (i,C ) der des einzigen Vorg¨angerzustandes (i − 1,C ), da der Beitrag von Gegenstand i null betr¨agt. F¨ur jeden anderen Zustand (i,C ) gilt, dass er durch zwei alternative Ent¨ scheidungen durch Uberg¨ ange von einem Zustand (i − 1,C ) erreicht werden kann: Entweder Gegenstand i wurde in die Menge aufgenommen oder nicht. Die entsprechenden Vorg¨angerzust¨ande sind (i − 1,C + wi ) und (i − 1,C ). Deren Bewertungen ¨ werden durch die Uberg¨ ange um vi oder um 0 vergr¨oßert. F¨ur die Bewertung von (i,C ) wird dann die Alternative herangezogen, die den gr¨oßeren Gesamtwert von Gegenst¨anden in der Menge impliziert.

Tourenplanung ¨ Ein Ubergang von Zustand (I, i ) zu Zustand (I ∪{i}, i) repr¨asentiert den Besuch von Ort i direkt nach dem Besuch von Ort i und wird mit dem Beitrag zur Zielfunktion, der mit dieser Entscheidung einhergeht, bewertet. Dabei m¨ussen wir zwischen zwei F¨allen unterscheiden. Wenn in I ∪ {i} nicht alle Orte enthalten sind, dann entspricht die Bewertung der Distanz di ,i von i zu i. Wenn I ∪ {i} hingegen alle Orte enth¨alt, ¨ dann entspricht die Bewertung des Ubergangs der Distanz di ,i von i zu i zuz¨uglich der Distanz di,1 der abschließenden Teilstrecke zur¨uck zu Ort 1. Entsprechend wollen wir auch bei der Bewertung eines Zustandes (I, i) die oben angesprochenen F¨alle unterscheiden. Wenn I nicht alle Orte enth¨alt, dann reflektiert die Bewertung f (I, i) die minimale Gesamtdistanz, die zur Erreichung von i nach Besuchen der u¨ brigen Orte in I \ {i} zur¨uckgelegt werden muss. Wenn I alle Orte enth¨alt, dann entspricht die Bewertung f (I, i) der minimalen Gesamtdistanz zum Besuch aller Orte und R¨uckkehr zu Ort 1, wobei i als letzter Ort vor der R¨uckkehr besucht wird. Die Bellmann-Gleichung zur Bewertung des Zustandes (I, i) ergibt sich dann als

4.4 Dynamische Programmierung

259

⎧   ⎪ min f (I \ {i}, i ) + di ,i | i ∈ I \ {1, i} , wenn n > |I| ≥ 3, ⎪ ⎪   ⎪   ⎪ ⎪ ⎨min f (I \ {i}, i ) + di ,i + di,1 | i ∈ I \ {1, i} , wenn n = |I| ≥ 3, f (I, i) = f ({1}, 1) + d1,i , wenn n > |I| = 2, ⎪ ⎪ ⎪ f ({1}, 1) + d1,i + di,1 , wenn n = |I| = 2, ⎪ ⎪ ⎪ ⎩0, wenn i = 1 und I = {1}. (4.32) Wir unterscheiden f¨unf F¨alle f¨ur die Bewertung abh¨angig von der Gesamtanzahl n von Orten und davon, ob I alle Orte enth¨alt oder nicht. Der einzige initiale Zustand ({1}, 1) wird dabei in der letzten Zeile bewertet. Auch intuitiv nachvollziehbar reflektiert die Bewertung die bis dahin zur¨uckgelegte Gesamtstrecke von null. Zeilen 3 und 4 behandeln Zust¨ande, in denen erst ein Ort nach Ort 1 besucht wurde (I enth¨alt zwei Orte). Der jeweilige Vorg¨angerzustand ist in diesem Fall der initiale Zustand. Wenn es mehr als zwei Orte gibt, m¨ussen noch weitere Orte besucht werden und es wird lediglich die Strecke von Ort 1 zu Ort i ber¨ucksichtigt (Zeile 3). Wenn es insgesamt nur zwei Orte gibt, sind bereits alle Orte besucht und wir ber¨ucksichtigen zus¨atzlich die R¨uckfahrt zu Ort 1 (Zeile 4). Zeilen 1 und 2 behandeln Zust¨ande, in denen mindestens zwei Orte nach Ort 1 besucht wurden. In diesem Fall kann im Vorg¨angerzustand nicht Ort 1 der zuletzt besuchte Ort sein. Wenn noch weitere Orte besucht werden m¨ussen, wird lediglich die Strecke von Ort i zu Ort i ber¨ucksichtigt (Zeile 1). Wenn hingegen alle Orte besucht wurden, ber¨ucksichtigen wir zus¨atzlich die R¨uckfahrt zu Ort 1 (Zeile 2). Die Bellmann-Gleichung (4.32) ist korrekt, aber etwas sperrig im Aufschrieb. In solchen Situationen werden h¨aufig k¨unstliche initiale Zust¨ande verwendet, um den Aufschrieb zu vereinfachen. In dem vorliegenden Fall k¨onnen wir zus¨atzlich zu den schon in Abschnitt 4.4.2.2 beschriebenen Zust¨anden den Zustand (I, 1) f¨ur jede nicht-leere Teilmenge I, I = {1} (der Zustand ({1}, 1) wurde schon in Abschnitt 4.4.2.2 eingef¨uhrt) verwenden. Ein solcher Zustand korrespondiert nicht zu einer zul¨assigen Teill¨osung, denn daf¨ur m¨usste man zu Ort 1 zur¨uckkehren, bevor alle Orte besucht wurden. Den Aufschrieb der Bellmann-Gleichung k¨onnen wir nun aber wie folgt vereinfachen. ⎧   min f (I \ {i}, i ) + di ,i | i ∈ I \ {i} , wenn n > |I| ≥ 2, ⎪ ⎪   ⎪ ⎨ min f (I \ {i}, i ) + di ,i + di,1 | i ∈ I \ {i} , wenn n = |I| = 2, f (I, i) = ⎪ ∞, wenn i = 1 und |I| ≥ 2, ⎪ ⎪ ⎩ 0, wenn i = 1 und I = {1}. (4.33) Wir unterscheiden vier F¨alle f¨ur die Bewertung. Der einzige echte“ initiale Zu” stand ({1}, 1) wird dabei in der letzten Zeile bewertet. Die k¨unstlichen initialen Zust¨ande werden in der vorletzten Zeile bewertet und mit einem so hohen Wert versehen, dass sie niemals den optimalen Vorg¨angerzustand eines Zustandes darstellen. Ein konkreter endlicher Wert, den wir hierf¨ur benutzen k¨onnten, w¨are zum Beispiel die Summe aller Distanzen zwischen Paaren von Orten.

260

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Die beiden ersten Zeilen repr¨asentieren die Bewertung aller u¨ brigen Zust¨ande. In der ersten Zeile wird der Fall betrachtet, in dem I noch nicht alle Orte enth¨alt. Dann erhalten wir die Bewertung von (I, i) durch die Bewertung eines Vorg¨angerzustandes zuz¨uglich der Distanz zwischen den jeweils ausgewiesenen letzten Orten. F¨ur den Vorg¨angerzustand gibt es |I| − 1 Alternativen, denn jeder Ort in I \ {i} kann als vorletzter besucht worden sein. Zu beachten ist hier, dass I \ {i} Ort 1 enth¨alt, was kein zul¨assiger Zustand ist, falls |I \ {i}| ≥ 2. Wegen der schlechten Bewertung dieses Zustandes in Zeile 3 wird diese Option aber auch nicht diejenige sein, die die minimale Bewertung impliziert. In der zweiten Zeile wird der Fall betrachtet, in dem I alle Orte enth¨alt. Der Term ist a¨ hnlich dem in der ersten Zeile, allerdings wird zus¨atzlich die Distanz zwischen dem letzten Ort i und Ort 1 ber¨ucksichtigt, da wir dorthin zur¨uckkehren m¨ussen. Die Vereinfachung in (4.33) gegen¨uber (4.32) besteht vor allem darin, dass wir in den ersten beiden Zeilen nicht beachten m¨ussen, ob Ort 1 in dem Vorg¨angerzustand der zuletzt besuchte Ort sein kann. Wenn er es nicht sein kann, wird die sehr hohe Bewertung des entsprechenden Vorg¨angerzustandes dazu f¨uhren, dass dieser Vorg¨angerzustand keine entscheidende Rolle spielt.

4.4.2.5 Bewertungen und Bestimmung einer optimalen L¨osung Nachdem wir nun die grunds¨atzlichen Zusammenh¨ange erl¨autert haben, bleibt noch die Systematik zu kl¨aren, mit der wir die einzelnen Funktionen auswerten. H¨aufig ¨ k¨onnen wir die Funktion g zur Bewertung des Ubergangs u(z , z) schon ganz zu Beginn auswerten, da sie in vielen F¨allen lediglich von den beiden durch u(z , z) verbundenen Zust¨anden z und z abh¨angt. Diese sind vorab bekannt. Allerdings m¨ussen wir die Bewertung g(u(z , z)) nicht kennen, bevor wir f (z) auswerten wollen, und insofern ist es ausreichend, wenn wir sie in diesem Moment auswerten k¨onnen. Wenn wir ausschließen, dass eine Sequenz von Entscheidungen zu demselben Zustand f¨uhren kann, von dem sie startet, dann ist das Netzwerk aus Zust¨anden und ¨ Uberg¨ angen, wie in Abb. 4.20 auf S. 250 beispielhaft dargestellt, kreisfrei. Wir wollen im Folgenden davon ausgehen, dass es einen solchen Kreis tats¨achlich nicht gibt. Dies folgt zwar nicht unmittelbar aus dem bisher Diskutierten, aber wir k¨onnen dies ¨ in der Regel durch geeignete Konzeption von Zust¨anden und Uberg¨ angen sicherstellen. Wir wollen die Zust¨ande nach und nach bewerten. Hierbei hilft uns, dass es immer mindestens einen Zustand gibt, der selber noch nicht bewertet wurde, f¨ur den aber bereits alle Vorg¨angerzust¨ande bewertet wurden. Am Anfang sind das die initialen Zust¨ande. Aber auch im weiteren Verlauf wird es immer mindestens einen solchen Zustand geben. Dies folgt aus der Kreisfreiheit des Netzwerks, soll hier aber nicht weiter vertieft werden. Wir k¨onnen die Zust¨ande sogar vorab so sortieren, dass alle Vorg¨angerzust¨ande eines Zustandes in der Sortierung vor ihm angeordnet sind. Die Bewertung kann dann in dieser Reihenfolge vorgenommen werden. Abb. 4.24 veranschaulicht das Prinzip der Auswertung. Die Spalten korrespondieren zu den insgesamt K Zust¨anden z1 , . . . , zK (in entsprechender Sortierung).

4.4 Dynamische Programmierung z1

z2

z3

261 z4

zk−1

zk

zK

A1 v(z1 ) A2 v(z2 ) A3 v(z3 ) A4 v(z4 )

Ak−1 v(zk−1 )

Ak v(zk )

AK v(zK ) Abb. 4.24 Prinzip der DP

Es gibt jeweils einen Algorithmus Ak , k = 1, . . . , K, der den optimalen Vorg¨angerzustand von zk ermittelt. Wie schon zuvor erl¨autert, wird dieses Verfahren h¨aufig ein

262

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

relativ simpler Vergleich aller Optionen sein, aber es muss nat¨urlich auch die Funk¨ u(z , zk ) auswerten, um den Vergleich tion h ( f (z ), g(u(z , zk ))) f¨ur jeden Ubergang u¨ berhaupt durchf¨uhren zu k¨onnen. Dabei verwendet Ak zum einen nat¨urlich Informationen zu zk selber, zum anderen aber auch die optimalen Vorg¨angerzust¨ande v(z1 ), . . . , v(zk−1 ) der Zust¨ande z1 , . . . , zk−1 bzw. die Bewertungen der Zust¨ande z1 , . . . , zk−1 . Nat¨urlich sind in der Regel nicht alle Zust¨ande z1 , . . . , zk−1 f¨ur die Bewertung von Zustand zk relevant, sondern nur die, die Vorg¨angerzust¨ande von zk sind. Wir werden dann zur Bewertung aller Zust¨ande schrittweise vorgehen. In jedem ¨ Schritt bewerten wir dabei alle zu einem Zustand f¨uhrenden Uberg¨ ange und abschließend diesen Zustand selber. Daf¨ur w¨ahlen wir jeweils einen Zustand, der keine unbewerteten Vorg¨angerzust¨ande hat (z. B. indem wir in der oben beschriebenen Reihenfolge vorgehen). Das bedeutet, dass wir die Bellmann-Gleichung (4.28) oder (4.29) f¨ur diesen Zustand auswerten k¨onnen. Im ersten Schritt w¨ahlen wir also auf jeden Fall einen initialen Zustand, in den weiteren Schritten dann wom¨oglich auch andere Zust¨ande. Explizit liefert uns das bisherige Vorgehen aber nat¨urlich nur die Bewertungen. D. h., wir k¨onnen zwar die Bewertung der optimalen L¨osung aus den finalen Zust¨anden (und deren Bewertungen) ableiten, aber nicht die optimale L¨osung selbst. Daher rekonstruieren wir ausgehend von einem finalen Zustand z∗ mit der besten Bewertung eine optimale L¨osung. Wir kennen seinen optimalen Vorg¨angerzustand v (z∗ ), denn wir haben ihn zuvor im Rahmen der Bewertungen ermittelt, und wissen daher, dass die letzte Entscheidung in der optimalen L¨osung die ist, die ¨ Ubergang u (v (z∗ ) , z∗ ) entspricht. Die vorletzte Entscheidung leiten wir wiederum aus dem optimalen Vorg¨angerzustand v (v (z∗ )) von v (z∗ ) ab. So fahren wir fort, bis wir einen initialen Zustand erreichen, und erhalten dabei alle Entscheidungen der optimalen L¨osung. Wir wollen noch festhalten, dass der erreichte initiale Zustand kein k¨unstlicher sein kann, wenn eine zul¨assige L¨osung existiert. Dies liegt daran, dass eine Bewertung, die direkt oder indirekt von einem k¨unstlichen initialen Zustand ausgeht, schlechter als jede direkt oder indirekt von einem anderen initialen Zustand ausgehende Bewertung ist. Wir halten das gesamte Vorgehen in Algorithmus 4.4 fest. Algorithmus 4.4 (Dynamische Programmierung). ¨ Eingabe: Instanz eines IPs, Menge der Zust¨ande und Uberg¨ ange Ausgabe: optimale L¨osung σ oder Information, dass keine existiert 1. Bestimme die Bewertungen aller Zust¨ande in einer geeigneten Reihenfolge mittels (4.28) oder (4.29). 2. Finde finalen Zustand z∗ mit der besten Bewertung. 3. Setze σ = () 4. Setze z ← z∗ . 5. Finde den optimalen Vorg¨angerzustand v(z) von z. 6. F¨uge Entscheidung, die u(v(z), z) entspricht, vorne in σ ein. 7. Falls v(z) kein initialer Zustand ist, setze z ← v(z) und gehe zu 5. 8. Falls v(z) ein k¨unstlicher initialer Zustand ist, dann gibt es keine zul¨assige L¨osung. STOP.

4.4 Dynamische Programmierung

263

In Algorithmus 4.4 wird die Bewertung aller Zust¨ande in Schritt 1. vorgenommen. Die Schritte 2. bis 8. dienen dann der Auswertung dieser Bewertungen und der Interpretation dieser Bewertungen als L¨osung. Wir gehen von dem finalen Zustand z∗ mit der besten Bewertung aus. Dann vollziehen wir die Sequenz von Entschei¨ dungen, die zu z∗ f¨uhrt, in umgekehrter Reihenfolge nach, indem wir den Ubergang vom optimalen Vorg¨angerzustand v(z) zu dem jeweils aktuellen Zustand z registrieren. Dieser Schritt wird mit v(z) als aktuellem Zustand wiederholt, bis v(z) ein initialer Zustand ist. Abschließend pr¨ufen wir, ob der erreichte initiale Zustand ein k¨unstlicher ist. Sollte dies der Fall sein, gibt es keine zul¨assige L¨osung. Ansonsten stellt die ermittelte Sequenz von Entscheidungen eine optimale L¨osung dar. Zusammenfassung: Bestimmung einer optimalen L¨osung Wir bewerten nacheinander alle Zust¨ande. Dabei k¨onnen wir als n¨achstes immer nur einen Zustand bewerten, f¨ur den bereits alle Vorg¨angerzust¨ande bewerten wurden. Nachdem wir alle Zust¨ande bewertet haben, vollziehen wir ausgehend von einem finalen Zustand mit bester Bewertung die Sequenz von Entscheidungen, die zu ihm (und der optimalen Bewertung) gef¨uhrt haben, in umgekehrter Reihenfolge nach.

4.4.3 Beispiele Wir werden im Folgenden drei Beispiele f¨ur Verfahren der DP erl¨autern, die zum L¨osen von Problem 4.2 (K¨urzester Weg in einem gerichteten kreisfreien Graphen), Problem 4.1 (Knapsack) bzw. Problem 1.2 (Tourenplanung) geeignet sind. Die Verfahren verwenden die Komponenten, die schon beispielhaft in Abschnitt 4.4.2 beschrieben wurden. Wir werden jeweils diese Komponenten zusammenfassen und den Ablauf des Verfahrens an einer Probleminstanz erl¨autern.

¨ 4.4.3.1 Kurzester Weg in einem gerichteten kreisfreien Graphen Wir verwenden die Darstellung des Problems als Sequenz von Entscheidungen und ¨ daraus resultierende Zust¨ande, Uberg¨ ange und Bewertungsfunktionen wie in den Abschnitten 4.4.2.1 bis 4.4.2.4 geschildert. Zust¨ande entsprechen also zuletzt er¨ reichten Knoten auf Wegen, die bei Knoten 1 beginnen, und Uberg¨ ange bilden die Entscheidung f¨ur eine n¨achste Kante im konstruierten Weg ab. Wir bewerten Zust¨ande mit der L¨ange des k¨urzesten Weges von Knoten 1 zu dem entsprechenden Knoten. Mit diesem Verfahren der DP l¨osen wir die in Abb. 4.18 dargestellte Instanz des Problems. Wir bewerten die Zust¨ande in aufsteigender Nummerierung. So k¨onnen wir sicherstellen, dass bei der Bewertung eines Zustandes die Bewertungen aller Vor-

264

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

g¨angerzust¨ande bereits vorliegen (hier spielt uns die Kreisfreiheit des Graphen in die H¨ande). Wir greifen das Netzwerk in Abb. 4.21 auf. 4

1 0

2

4

2

3

2

3 4

4

4

3

6

1

5 7

8

6

9 Abb. 4.25 Netzwerkdarstellung und Bewertungen zu der Instanz in Abb. 4.18

¨ In Abb. 4.25 ist die Bewertung der Kanten/Uberg¨ ange und der Knoten/Zust¨ande ¨ erg¨anzt. Die Bewertung eines Ubergangs entspricht der L¨ange der jeweiligen Kante ¨ im Graphen. Die Uberg¨ ange bilden die Nutzung der Kanten im Graphen ab, woraus sich dann nach den Erl¨auterungen in Abschnitt 4.4.2.4 die Bewertungen ergeben. Knoten 1 ist ein initialer Zustand und daher ist seine Bewertung nicht von anderen Zust¨anden abh¨angig und somit unmittelbar bestimmbar. F¨ur Knoten 2 k¨onnen wir die Bewertung danach vornehmen und erhalten auch diese recht einfach, da es nur einen Vorg¨angerzustand gibt. Bei der Bewertung weiterer Zust¨ande wird die Anzahl der Vorg¨angerzust¨ande sukzessiv wachsen. Knoten 4 z. B. hat drei Vorg¨angerzust¨ande. Seine Bewertung ergibt sich als min{0+8, 2+4, 4+3} = 6 mit optimalem Vorg¨angerzustand 2. Dies bedeutet, dass auf dem k¨urzesten Weg von Knoten 1 zu Knoten 4 Knoten 2 der direkte Vorg¨anger von Knoten 4 ist. Analog erhalten wir die weiteren Bewertungen. In Abb. 4.25 ist an jedem Knoten/Zustand die Bewertung erg¨anzt und zudem ¨ sind die Kanten/Uberg¨ ange schwarz hervorgehoben, die den jeweils optimalen Vorg¨angerzustand eines Zustandes kennzeichnen. Wir erkennen an der Bewertung von Knoten 5, dass die L¨ange des k¨urzesten Weges von 1 zu 5 eine L¨ange von 7 hat. Den Weg selber k¨onnen wir ermitteln, indem wir von Knoten/Zustand 5 die Sequenz von optimalen Vorg¨angerzust¨anden zur¨uck zu dem initialen Zustand nachvollziehen. Wir k¨onnen in diesem Fall ablesen, dass der optimale Vorg¨angerzustand von Zustand 5 Zustand 4 ist (und somit die Kante von Knoten 4 zu Knoten 5 im k¨urzesten Weg enthalten ist), der Vorg¨anger von Zustand 4 Zustand 2 ist (und somit die Kante von Knoten 2 zu Knoten 4 im k¨urzesten Weg enthalten ist) und der Vorg¨anger von Zustand 2 Zustand 1 ist (und somit die Kante von Knoten 1 zu Knoten 2 im k¨urzesten Weg enthalten ist). Der k¨urzeste Weg mit L¨ange 7 f¨uhrt also u¨ ber die Knoten 1, 2, 4 und 5.

4.4 Dynamische Programmierung

265

4.4.3.2 Knapsack Wir verwenden die Darstellung des Problems als Sequenz von Entscheidungen und ¨ daraus resultierende Zust¨ande, Uberg¨ ange und Bewertungsfunktionen wie in den Abschnitten 4.4.2.1 bis 4.4.2.4 geschildert. Zustand (i,C ) entspricht also getroffenen Entscheidungen f¨ur die Gegenst¨ande 1, . . . , i, so dass eine Kapazit¨at von C ¨ verbleibt. Uberg¨ ange bilden die Entscheidung u¨ ber die Aufnahme eines Gegenstandes in die Menge ab. Wir bewerten Zustand (i,C ) mit dem maximalen Gesamtwert unter allen Teilmengen von Gegenst¨anden aus {1, . . . , i} mit einem Gesamtgewicht von C − C . Mit diesem Verfahren der DP l¨osen wir die folgende schon bekannte Instanz. Beispiel 4.1 (Instanz zu Modell 4.1). • n = 6, C = 21 • v1 = 90, v2 = 49, v3 = 29, v4 = 28, v5 = 18, v6 = 15 • w1 = 18, w2 = 10, w3 = 6, w4 = 6, w5 = 4, w6 = 5 Wir bewerten die Zust¨ande (i,C) bis (i, 0) mit i = 0, . . . , 5, bevor wir Zust¨ande (i + 1,C) bis (i + 1, 0) bewerten. So k¨onnen wir sicherstellen, dass bei der Bewertung eines Zustandes die Bewertungen aller Vorg¨angerzust¨ande bereits vorliegen. ¨ Da es keinerlei Uberg¨ ange zwischen Zust¨anden mit gleichem zuletzt betrachtetem Gegenstand gibt, kann die Reihenfolge, in der wir diese Zust¨ande betrachten, frei gew¨ahlt werden. Wir nehmen daher an, dass wir solche Zust¨ande in absteigender Reihenfolge der Restkapazit¨aten bewerten. Wir greifen das Netzwerk in Abb. 4.22 auf. ¨ In Abb. 4.26 ist die Bewertung der Uberg¨ ange und der Zust¨ande erg¨anzt. Die ¨ Bewertung der Uberg¨ ange ergibt sich wie folgt: Die Bewertung aller horizontal ori¨ ¨ entierten Uberg¨ ange ist 0; die Bewertung aller Uberg¨ ange, die nach rechts unten gerichtet sind, ist ganz oben in der Abbildung zwischen den jeweiligen Spalten abgetragen und entspricht dem Wert des Gegenstandes, u¨ ber dessen Aufnahme in die ¨ Menge durch die Uberg¨ ange zwischen den Spalten entschieden wird. Die horizon¨ ange bilden eine Entscheidung gegen die Aufnahme des Gegenstandes talen Uberg¨ ¨ ab und die nach rechts unten gerichteten Uberg¨ ange bilden die Aufnahme des Gegenstandes ab, woraus sich dann nach den Erl¨auterungen in Abschnitt 4.4.2.4 die Bewertungen ergeben. Wir k¨onnen den Ablauf des Verfahrens nachvollziehen, indem wir die Bewertung aller Zust¨ande spaltenweise von links nach rechts und innerhalb einer Spalte von oben nach unten betrachten. In der linken Spalte beruht die Bewertung der Zust¨ande nicht auf der Bewertung anderer Zust¨ande, da wir hier nur initiale Zust¨ande finden. Bis auf den ersten handelt es sich um k¨unstliche initiale Zust¨ande mit einer Bewertung von − ∑ni=1 vi − 1 = −230. Diese Bewertung ist so schlecht, dass sie, selbst wenn es m¨oglich w¨are, alle Gegenst¨ande in die Menge aufzunehmen, nicht kompensiert werden k¨onnte, denn der gesamte Wert aller Gegest¨ande betr¨agt ∑ni=1 vi = 229, und wir haben somit eine Bewertung von h¨ochstens −1 f¨ur alle finalen Zust¨ande, die ausschließlich (indirekt) von k¨unstlichen initialen Zust¨anden aus erreicht werden

266

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung 90 0 0, 21

-230 0, 20 -230 0, 19 -230 0, 18 -230 0, 17 -230 0, 16 -230 0, 15 -230 0, 14 -230 0, 13 -230 0, 12 -230 0, 11 -230 0, 10 -230 0, 9 -230 0, 8 -230 0, 7 -230 0, 6 -230 0, 5 -230 0, 4 -230 0, 3 -230 0, 2 -230 0, 1 -230 0, 0

49 0 0 1, 21 2, 21 -230 1, 20 -230 1, 19 -230 1, 18 -230 1, 17 -230 1, 16 -230 1, 15 -230 1, 14 -230 1, 13 -230 1, 12 -230 49 1, 11 2, 11 -230 1, 10 -230 1, 9 -230 1, 8 -230 1, 7 -230 1, 6 -230 1, 5 -230 1, 4 90 90 1, 3 2, 3 -140 1, 2 -140 1, 1 -140 1, 0

29

28 0 3, 21

29 3, 15

49 3, 11

18 0 4, 21

29 4, 15

15 0 5, 21

0 6, 21

18 5, 17

18 6, 17 15 6, 16 29 6, 15

29 5, 15

49 4, 11

49 5, 11

57 4, 9

57 5, 9

67 5, 7

78 3, 5

78 4, 5

78 5, 5

90 3, 3

90 4, 3

90 5, 3

96 5, 1

33 6, 12 49 6, 11 44 6, 10 57 6, 9

67 6, 7 64 6, 6 78 6, 5 72 6, 4 90 6, 3 82 6, 2 96 6, 1 93 6, 0

Abb. 4.26 Netzwerkdarstellung und Bewertungen zu der Instanz in Beispiel 4.1

¨ k¨onnen. Jeder finale Zustand, der durch Uberg¨ ange von Zustand (0,C) aus erreicht werden kann, hat hingegen eine Bewertung von mindestens 0 und repr¨asentiert daher eine bessere L¨osung.

4.4 Dynamische Programmierung

267

In der zweiten Spalte finden wir die Zust¨ande, in denen u¨ ber die Aufnahme von Gegenstand 1 in die Menge entschieden wurde. Nur f¨ur vier Zust¨ande gibt es mehr als einen Vorg¨angerzustand. Diese vier Zust¨ande k¨onnen durch Aufnahme von Gegenstand 1 in die Menge erreicht werden und dies stellt auch jeweils die bessere Option dar. Ab der dritten Spalte werden analog zu Abb. 4.22 nur Zust¨ande dar¨ gestellt, die durch Uberg¨ ange von (0, 21) aus erreicht werden k¨onnen. F¨ur alle anderen, nicht dargestellten Zust¨ande gilt, dass sie eine negative Bewertung haben. Da alle dargestellten Zust¨ande in der dritten und vierten Spalte nur durch einen ¨ einzigen Ubergang erreicht werden, m¨ussen keine Alternativen abgew¨agt werden. ¨ In der f¨unften Spalte gibt es hingegen zwei Zust¨ande, die durch zwei Uberg¨ ange erreicht werden k¨onnen. Zustand (4, 15) kann von (3, 21) mit Bewertung 0 und ¨ von (3, 15) mit Bewertung 29 erreicht werden. Der Ubergang von Zustand (3, 21) hat eine Bewertung von 28, der von Zustand (3, 15) eine Bewertung von 0. Daraus ergeben sich zwei Alternativen f¨ur die Erreichung von (4, 15) mit den Bewertungen 28 und 29. Die Bewertung von (4, 15) ist dementsprechend max{28, 29} ¨ und wir merken uns, dass der Ubergang von (3, 15) die bessere Alternative darstellt, d. h. v(4, 15) = (3, 15). Analog ergibt sich f¨ur (4, 5) eine Bewertung von max{49 + 28, 78 + 0} = 78 mit v(4, 5) = (3, 5). In Abb. 4.26 ist an jedem Zustand die Bewertung erg¨anzt und zudem sind die ¨ Uberg¨ ange fett gezeichnet, die den jeweils optimalen Vorg¨angerzustand kennzeichnen. Außerdem ist der finale Zustand (6, 1) mit der besten Bewertung hervorgehoben. Wir erkennen, dass der optimale Zielfunktionswert 96 ist, und wir k¨onnen die optimale L¨osung nachvollziehen, indem wir von (6, 1) die Sequenz von besten Alternativen zur¨uck zu einem initialen Zustand nachvollziehen. Wir k¨onnen in diesem Fall ablesen, dass Gegenstand 6 nicht in die Menge aufgenommen wird, Gegenstand 5 aufgenommen wird, Gegenstand 4 nicht aufgenommen wird, Gegenst¨ande 3 und 2 aufgenommen werden und Gegenstand 1 nicht aufgenommen wird.

4.4.3.3 Tourenplanung Wir verwenden die Darstellung des Problems als Sequenz von Entscheidungen und ¨ daraus resultierende Zust¨ande, Uberg¨ ange und Bewertungsfunktionen wie in den Abschnitten 4.4.2.1 bis 4.4.2.4 geschildert. Zustand (I, i) beschreibt eine Situation, in der alle Orte in I besucht wurden und dabei Ort i als letzter erreicht wurde. ¨ Uberg¨ ange bilden die Entscheidung u¨ ber den n¨achsten zu besuchenden Ort ab. Wir bewerten Zustand (I, i) mit der minimalen Gesamtdistanz, die zur¨uckgelegt wird, um nach Besuch aller u¨ brigen Orte in I bei i anzukommen (und ggf. zu Ort 1 zur¨uckzukehren, falls I alle Orte enth¨alt). Mit diesem Verfahren der DP l¨osen wir die schon bekannte Instanz in Abb. 4.11. Wir bewerten die Zust¨ande so, dass Zust¨ande mit weniger Orten in I vor Zust¨anden mit mehr Orten in I bewertet werden. D. h., wir bewerten die Zust¨ande in nicht-absteigender Anzahl der schon besuchten Orte. So k¨onnen wir sicherstellen, dass bei der Bewertung eines Zustandes die Bewertungen aller Vorg¨angerzust¨ande ¨ bereits vorliegen. Da es keinerlei Uberg¨ ange zwischen Zust¨anden mit gleicher An-

268

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung 2 0

0

1

1

3

1

2 0

2

0

6

Abb. 4.11 Instanz des Problems 1.2 (Tourenplanung)

5

0

4

zahl von Orten in I gibt, kann die Reihenfolge, in der wir diese betrachten, frei gew¨ahlt werden. Wir greifen das Netzwerk in Abb. 4.23 auf. ¨ In Abb. 4.27 ist die Bewertung der Uberg¨ ange und der Zust¨ande erg¨anzt. Die Be¨ ¨ wertung der Uberg¨ange ergibt sich wie folgt: Uberg¨ ange zwischen zwei Zust¨anden repr¨asentieren die Nutzung der Kante von dem Ort, der im Vorg¨angerzustand als letztes besucht wurde, zu dem Ort, der im Nachfolgerzustand als letztes besucht ¨ wurde. Uberg¨ ange zwischen Zust¨anden in den letzten beiden Spalten repr¨asentieren zus¨atzlich die R¨uckkehr vom Ort, der im Nachfolgerzustand als letztes besucht wurde, zu Ort 1. Die Bewertung der Kanten entspricht der jeweils zur¨uckgelegten Distanz. Beispielsweise ergibt sich die Bewertung der Kante von ({1, 3, 4}, 4) zu ({1, 2, 3, 4}, 2) als die L¨ange 2 der Kante {4, 2} und die Bewertung der Kante von ({1, 2, 3, 4}, 2) zu ({1, 2, 3, 4, 5}, 5) als die Summe der L¨angen 1 und 6 der Kanten {2, 5} und {5, 1}. Wir k¨onnen den Ablauf des Verfahrens nachvollziehen, indem wir die Bewertung aller Zust¨ande spaltenweise von links nach rechts und innerhalb einer Spalte von oben nach unten betrachten. Knoten ({1}, 1) ist ein initialer Zustand und daher ist seine Bewertung nicht von anderen Zust¨anden abh¨angig und somit unmittelbar bestimmbar. In der zweiten und dritten Spalte finden sich ausschließlich Zust¨ande mit jeweils genau einem Vorg¨angerzustand. Daher ergibt sich deren Bewertung ohne Abw¨agung von Alternativen. In den weiteren Spalten hat jeder Knoten mehrere Vorg¨angerzust¨ande und wir m¨ussen deshalb abw¨agen, welcher der jeweils optimale Vorg¨angerzustand ist. F¨ur Zustand ({1, 2, 4, 5}, 4) ergibt sich die Bewer¨ tung beispielsweise als min{1 + 0; 7 + 2} = 1 durch Vergleich der Uberg¨ ange von ({1, 2, 5}, 5) und ({1, 2, 5}, 2). Wir erhalten also v({1, 2, 4, 5}, 4) = ({1, 2, 5}, 5). In Abb. 4.27 ist an jedem Zustand die Bewertung erg¨anzt und zudem sind die ¨ Uberg¨ ange schwarz hervorgehoben, die den jeweils optimalen Vorg¨angerzustand eines Zustandes kennzeichnen (({1, 2, 3, 4, 5}, 2) hat zwei optimale Vorg¨angerzust¨ande, von denen wir uns eigentlich nur einen merken m¨ussen). Außerdem sind die fi-

4.4 Dynamische Programmierung

269 {1,2,3}, 3

{1,2,3,4}, 4

0

0

{1,2}, 2

2

0

0

0

0 {1,2,4}, 4 2 1

2

0 0

6

{1,2,3,5}, 5

{1,2,3,4,5}, 5

0

6

6 {1,2,5}, 5

{1,2,3,4}, 3 1

1

2

{1,2,3}, 2

0

2

{1,2,4,5}, 5

0

1

2

0

0 {1,3}, 3

0

1

7 {1,3,4}, 4

0

1

2

1 0

0

1

{1,2,4}, 2

2 {1,4}, 4

0

2

2

{1,3,4}, 3 2

2

4 {1,2,3,4,5}, 3

1 {1,2,3,5}, 2

1

2

7 1 {1,3,5}, 3

0

1

0

{1,2,4,5}, 2

6

2 {1,2,3,4,5}, 2

3 2

{1,4,5}, 4

1

{1,3,4,5}, 4

6 0

1

2

0

{1,2,5}, 2

0

1

0

2

6

1

{1,3,4,5}, 5

0

{1,4,5}, 5

{1,5}, 5

1

0

0 6

{1,2,4,5}, 4

{1,2,3,4}, 2

0

4 2

2

1 {1,3,5}, 5

{1}, 1

{1,2,3,4,5}, 4

2

1

0

1

{1,2,3,5}, 3

0

0

2

{1,3,4,5}, 3 2

Abb. 4.27 Netzwerkdarstellung und Bewertungen zu der Instanz in Beispiel 4.11

nalen Zust¨ande ({1, 2, 3, 4, 5}, 4), ({1, 2, 3, 4, 5}, 3) und ({1, 2, 3, 4, 5}, 2) mit der besten Bewertung hervorgehoben. Wir erkennen, dass der optimale Zielfunktionswert 2 ist und wir k¨onnen die optimalen L¨osungen nachvollziehen, indem wir

270

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

von ({1, 2, 3, 4, 5}, 4), ({1, 2, 3, 4, 5}, 3) oder ({1, 2, 3, 4, 5}, 2) eine Sequenz von besten Alternativen zur¨uck zu dem initialen Zustand nachvollziehen. Wir k¨onnen dann ablesen, dass es vier optimale L¨osungen gibt: (1, 2, 3, 5, 4, 1), (1, 2, 5, 4, 3, 1), (1, 3, 4, 5, 2, 1) und (1, 4, 5, 3, 2, 1). Jeweils zwei dieser L¨osungen entsprechen sich insofern als die Orte in genau umgekehrter Reihenfolge besucht werden. Die beiden optimalen L¨osungen (1, 3, 4, 5, 2, 1) und (1, 4, 5, 3, 2, 1) korrespondieren zu dem finalen Zustand ({1, 2, 3, 4, 5}, 2). Von diesem ausgehend, k¨onnen wir zwei optimale L¨osungen ermitteln, da er zwei optimale Vorg¨angerzust¨ande hat.

4.5 Kombinationen von L¨osungsprinzipien In den Abschnitten 4.2 bis 4.4 haben wir drei Prinzipien kennengelernt, mit denen wir (M)IPs l¨osen k¨onnen. In Kapitel 3 haben wir eins zum L¨osen von LPs besprochen. Diese Prinzipien folgen jeweils einer zentralen Idee, die v¨ollig ausreicht, um eine Instanz des vorliegenden Problems zu l¨osen. Abh¨angig von dem vorliegenden Problem und/oder der vorliegenden Probleminstanz lassen sich diese Prinzipien effizienter oder weniger effizient einsetzen. Es ist daher naheliegend, die Prinzipien zu kombinieren, um die jeweiligen St¨arken zu nutzen. Dies bietet vor allem die M¨oglichkeit, Verfahren gegen starke Effizienzschwankungen in Abh¨angigkeit von der aktuell zu l¨osenden Probleminstanz abzusichern. Es gibt eine große Zahl von Verfahren, die verschiedene fundamentale Prinzipien kombinieren. Wir konzentrieren uns in den Abschnitten 4.5.1 und 4.5.2 auf zwei von ihnen.

4.5.1 Branch & Cut In diesem Abschnitt werden wir Branch & Cut (B&C) Verfahren beschreiben. Diese Verfahren kombinieren die Prinzipien von B&B-Verfahren und Schnittebenenverfahren. In Abschnitt 4.5.1.1 gehen wir auf die grunds¨atzliche Vorgehensweise ein. Die Komponenten wurden bereits in den Abschnitten 4.2 und 4.3 erl¨autert. Abschließend findet sich in Abschnitt 4.5.1.2 ein Beispiel f¨ur ein konkretes B&CVerfahren.

4.5.1.1 Generelle Vorgehensweise Nachdem uns B&B-Verfahren und Schnittebenenverfahren aus den Abschnitten 4.2 und 4.3 bekannt sind, k¨onnen wir das Prinzip von B&C-Verfahren sehr leicht erkl¨aren: Wir verfahren wie in einem B&B-Ansatz und modifizieren dabei die Relaxationen, die wir entsprechend der Relaxationsvorschrift erhalten, durch Erg¨anzen von NB. Die NB sollen die Qualit¨at der Absch¨atzungen, die durch die Relaxationen erzielt werden, verbessern. Dies kann durch den Einsatz von g¨ultigen Ungleichungen

4.5 Kombinationen von L¨osungsprinzipien

271

(siehe Definition 4.4 auf S. 193) oder Schnittebenen (siehe Definition 4.6 auf S. 217) geschehen. Wir werden im Folgenden zur Vereinheitlichung von Einschr¨ankungen sprechen. Das Prinzip der Absch¨atzung von Informationen u¨ ber Teilr¨aume mittels einer Relaxation, wie aus B&B-Verfahren bekannt, bleibt also erhalten. Es wird allerdings mehr Wert auf die Verbesserung der Absch¨atzung durch Reduktion des LR der Relaxation gelegt als bei reinen B&B-Verfahren. IV

III

VI 3.

6. 5. 1.

7.

4.

V

II 2.

I

Abb. 4.1 Teile und Herrsche

IV VI

III ii

3.

5. 1.

6./7.

4.

2.

Abb. 4.28 Teile und Herrsche mit B&C

II

i

I

272

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Abb. 4.28 greift Abb. 4.1 auf. Abb. 4.1 stellt die sukzessive Aufteilung des LRs in Teilr¨aume im Rahmen eines B&B-Verfahrens dar. Diese Teilr¨aume werden jeweils untersucht und entweder wird die beste enthaltene L¨osung ermittelt, entschieden, dass keine global optimale L¨osung enthalten sein kann, oder weiter aufgeteilt. Diese Vorgehensweise folgt dem Prinzip Teile und Herrsche“. Dieses ” Prinzip wird in Abb. 4.28 ebenfalls verfolgt. Anders als bei einem B&B-Verfahren werden die Teilr¨aume allerdings nicht nur durch Aufteilung, sondern auch durch Einschr¨ankungen modifiziert. Die betrachteten Teilr¨aume unterscheiden sich dann potentiell von denen, die im Ablauf eines B&B-Verfahrens betrachtet werden. Die folgende Beschreibung lehnt sich an keine konkrete Probleminstanz an und somit sind die beschriebenen Ergebnisse der Untersuchungen von Teilr¨aumen willk¨urlich. Zun¨achst wird die Relaxation zum gesamten LR betrachtet. Die optimale L¨osung ist nicht zul¨assig, weswegen wir zwei Teilr¨aume betrachten (in Abb. 4.1 und 4.28 wird die Teilung durch Gerade I dargestellt). Die optimale L¨osung des linken Teilraums k¨onnen wir wie gehabt finden. Allerdings erhalten wir eine unzul¨assige optimale L¨osung der Relaxation zum rechten Teilraum. In dem reinen B&B-Verfahren haben wir diesen Teilraum durch Gerade II weiter aufgeteilt. In dem B&C-Verfahren ergibt sich die M¨oglichkeit, eine Einschr¨ankung i einzuf¨ugen, wodurch die rechts von Einschr¨ankung i liegenden L¨osungen aus dem Teilraum eliminiert werden. Die optimale L¨osung der Relaxation zum verbleibenden Teilraum ist ebenfalls nicht zul¨assig und so wird der Teilraum weiter durch Gerade II aufgeteilt. Teilraum 2. im B&C-Verfahren enth¨alt nur eine Teilmenge der L¨osungen desselben Teilraums im Ablauf des B&B-Verfahrens. Da wir im Ablauf des B&B-Verfahrens erkennen k¨onnen, dass Teilraum 2. keine global optimale L¨osung enth¨alt, nehmen wir an, dass wir das im Ablauf des B&C-Verfahrens auch k¨onnen. Wir ermitteln daher die lokal optimale L¨osung von Teilraum 2. nicht (repr¨asentiert durch die graue F¨arbung des Teilraums in Abb. 4.28). F¨ur den Teilraum oberhalb von Gerade II ermitteln wir eine optimale L¨osung der Relaxation, stellen fest, dass diese nicht zul¨assig ist, und f¨ugen wiederum eine Einschr¨ankung ii ein, die die oberhalb von Einschr¨ankung ii liegenden L¨osungen aus dem Teilraum eliminiert. Da aber auch die optimale L¨osung der Relaxation zum verbleibenden Teilraum unzul¨assig ist, wird der verbleibende Teilraum weiter durch Gerade III aufgeteilt. Zun¨achst wird der linke entstehende Teilraum betrachtet und dieser wiederum durch Gerade IV aufgeteilt. Teilraum 3. ist durch Einschr¨ankung ii verkleinert (und somit kleiner als Teilraum 3. im Ablauf des B&B-Verfahrens) und wir erkennen, dass er keine (global) optimale L¨osung enthalten kann. Daher wird er, im Gegensatz zum Ablauf des B&B-Verfahrens, wo wir dies nicht erkennen konnten, nicht weiter untersucht. Teilr¨aume 4. und 5. werden wie gehabt behandelt und m¨ussen nicht weiter aufgeteilt werden. Auch der verbleibende Teilraum rechts von Gerade III ist kleiner als im Ablauf des B&BVerfahrens (wegen Einschr¨ankung i). Wir k¨onnen daher erkennen, dass er keine optimale L¨osung enthalten kann, und betrachten ihn nicht weiter. Im Ablauf des B&B-Verfahrens konnten wir nicht ausschließen, dass dieser Teilraum eine optimale L¨osung enth¨alt, und daher war ein weiteres Aufteilen und die Untersuchung der resultierenden Teilr¨aume 6. und 7. n¨otig.

4.5 Kombinationen von L¨osungsprinzipien

273

Im Unterschied zu dem B&B-Verfahren ist es bei dem B&C-Verfahren also nicht n¨otig die lokal optimalen L¨osungen der Teilr¨aume 3., 6. und 7. zu ermitteln. Die Teilr¨aume 6. und 7. werden nicht einmal mehr (wie in Abb. 4.1 durch Gerade V) erzeugt, da wir bereits f¨ur den u¨ bergeordneten Teilraum ermitteln k¨onnen, dass keine global optimale L¨osung enthalten ist. Dies ist m¨oglich, da Einschr¨ankung i L¨osungen eliminiert. Die Bedeutung von g¨ultigen Ungleichungen und Schnittebenen f¨ur die zu l¨osende Probleminstanz wurde schon in den Abschnitten 4.2 und 4.3 erl¨autert. Einschr¨ankungen werden im Ablauf eines B&C-Verfahrens zwar in der Regel bei der Untersuchung eines bestimmten Teilraums erzeugt, aber nat¨urlich ist es grunds¨atzlich m¨oglich, einmal erzeugte Einschr¨ankungen auch bei der L¨osung von Relaxationen zu anderen Teilr¨aumen einzusetzen. Da die Ermittlung jeder Einschr¨ankung ja einen gewissen Aufwand verursacht und potentiell jeder Einsatz beim Betrachten von Teilr¨aumen Vorteile mit sich bringt, kann dies zu einer weiteren Beschleunigung des Verfahrens f¨uhren. Wir m¨ussen allerdings sicherstellen, dass die Einschr¨ankungen keine global optimalen L¨osungen eliminieren. Daher wollen wir drei Typen von Einschr¨ankungen unterscheiden, die sich in ihrer Anwendbarkeit auf andere Teilr¨aume unterscheiden. • Lokale Einschr¨ankungen k¨onnen lediglich f¨ur die Relaxation zum aktuellen Teilraum verwendet werden. • Globale Einschr¨ankungen k¨onnen f¨ur die Relaxation zu jedem beliebigen Teilraum eingesetzt werden. • Vererbbare Einschr¨ankungen k¨onnen f¨ur die Relaxationen zum aktuellen Teilraum und zu allen aus ihm entstehenden Teilr¨aumen verwendet werden. Wir k¨onnen mit diesen drei Typen von Einschr¨ankungen recht einfach umgehen. Globale Einschr¨ankungen werden in einer einzigen Menge Cg verwaltet, zu der wir neue globale Einschr¨ankungen sukzessiv hinzuf¨ugen. Dar¨uber hinaus verwalten wir f¨ur jeden Teilraum t eine Menge Ct von Einschr¨ankungen, die zus¨atzlich zu denen in Cg bei der Betrachtung von t verwendet werden k¨onnen. Wenn wir t in Teilr¨aume aufteilen, u¨ bertragen wir dann alle vererbbaren Einschr¨ankungen in Ct in die entsprechenden Mengen der entstehenden Teilr¨aume. Neben der informellen Beschreibung der Vorgehensweise wollen wir sie hier noch einmal schematisch als Algorithmus 4.5 darstellen. Wie in Algorithmus 4.2 auf S. 186 stehen s∗ , v∗ und T f¨ur die beste bisher gefundene L¨osung, deren Zielfunktionswert und die Menge der noch zu untersuchenden Teilr¨aume.

274

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Algorithmus 4.5 (Branch & Cut). Eingabe: Instanz eines IP Ausgabe: optimale L¨osung oder Information, dass keine existiert13 1. Initialisiere v∗ , s∗ , Cg und T . 2. Falls T = 0, / w¨ahle ein Element t ∈ T und entnimm t aus T . Sonst STOP. 3. L¨ose die Relaxation zu t, erg¨anzt um Einschr¨ankungen in Cg und Ct . 4. Wenn die Relaxation unzul¨assig ist, gehe zu 2. 5. Wenn die Relaxation unbeschr¨ankt ist, ist das IP unbeschr¨ankt.14 STOP. 6. Wenn die optimale L¨osung s der Relaxation nicht besser ist als s∗ , gehe zu 2. 7. Wenn s im aktuellen Teilraum ist, ersetze s∗ und v∗ (wenn s besser als s∗ ist) und gehe zu 2. 8. Sonst, a. Versuche, eine Einschr¨ankung c zu finden, die s eliminiert. b. Wenn eine Einschr¨ankung c ermittelt wurde, setze Ct ← Ct ∪ {c}, setze ggf. Cg ← Cg ∪ {c} und gehe zu 3. c. Finde heuristisch eine gute L¨osung s im aktuellen Teilraum und ersetze ggf. s∗ und v∗ (wenn s besser als s∗ ist) und d. teile t in Teilr¨aume t1 , . . . ,tk auf, f¨ur deren Relaxationen s keine zul¨assige L¨osung ist, setze Ct  , . . . ,Ct  als die Menge von vererbbaren Einschr¨ankungen 1 k in Ct und f¨uge die Teilr¨aume in T ein und e. gehe zu 2. In Algorithmus 4.5 entsprechen die Schritte 1. bis 7. bis auf die Ber¨ucksichtigung der Einschr¨ankungen den Schritten 1. bis 7. in Algorithmus 4.2. Die wesentlichen Unterschiede werden dann in Schritt 8. ersichtlich. Die Ermittlung von Einschr¨ankungen (Schritt 8a.) findet sich in einem reinen B&B-Verfahren nicht. Auch werden die Schritte 3. bis 7. f¨ur denselben Teilraum wiederholt (ausgel¨ost durch Schritt 8b.), wenn eine neue Einschr¨ankung gefunden wird. Die Schritte 8c. und 8d. finden sich – wiederum bis auf die Ber¨ucksichtigung der Einschr¨ankungen – auch so in einem reinen B&B-Verfahren. Zusammenfassung: B&C-Verfahren B&C-Verfahren folgen wie B&B-Verfahren dem Prinzip Teile und Herr” sche“. Der LR wird in Teilr¨aume zerlegt, die untersucht und ggf. weiter aufgeteilt werden. Wie in B&B-Verfahren werden die Teilr¨aume mit Hilfe von Relaxationen untersucht. In B&C-Verfahren wird allerdings deutlich mehr Aufwand darauf verwendet, die Absch¨atzungsqualit¨at der Relaxationen durch Einschr¨ankungen zu verbessern. 13

Ob diese Ausgabe garantiert werden kann, h¨angt von der konkreten Ausgestaltung des Verfahrens, von dem zu l¨osenden IP und ggf. sogar von der zu l¨osenden Probleminstanz ab. In der Regel werden wir diese Ausgabe aber sicherstellen k¨onnen. 14 Dies gilt nicht allgemein; wir m¨ ussen durch problemspezifisches Wissen ausschließen, dass das IP unbeschr¨ankt ist, oder sicherstellen, dass aus Unbeschr¨anktheit der Relaxation Unbeschr¨anktheit der Instanz folgt.

4.5 Kombinationen von L¨osungsprinzipien

275

4.5.1.2 Beispiel Wir wollen eine konkrete Ausgestaltung eines B&C-Verfahrens f¨ur Problem 4.1 (Knapsack) und den Ablauf an einer Probleminstanz erl¨autern. F¨ur die Ausgestaltung verwenden wir die schon bekannten Komponenten des B&B-Verfahrens in Abschnitt 4.2 und die g¨ultigen Ungleichungen (4.11) und (4.12) als Einschr¨ankungen. Mit diesem B&C-Verfahren l¨osen wir die folgende schon bekannte Instanz. Beispiel 4.1 (Instanz zu Modell 4.1). • n = 6, C = 21 • v1 = 90, v2 = 49, v3 = 29, v4 = 28, v5 = 18, v6 = 15 • w1 = 18, w2 = 10, w3 = 6, w4 = 6, w5 = 4, w6 = 5 Die Ungleichungen (4.11) und (4.12) sind schon aus Abschnitt 4.2.3.1 bekannt und fordern, dass h¨ochstens K und mindestens K Gegenst¨ande ausgew¨ahlt werden. n

∑ xi ≤ K

(4.11)

∑ xi ≥ K

(4.12)

i=1 n i=1

Wir hatten die g¨ultigen Ungleichungen (4.11) und (4.12) schon in Abschnitt 4.2.3.1 verwendet, dort aber fest in die Relaxation aufgenommen. Hier werden wir streng nach Algorithmus 4.5 vorgehen und nach der L¨osung der Relaxation pr¨ufen, ob (4.11) oder (4.12) verletzt ist. Wenn dies der Fall ist, erg¨anzen wir die entsprechende Einschr¨ankung und l¨osen die modifizierte Relaxation erneut. Im Gegensatz zu dem B&B-Verfahren mit g¨ultigen Ungleichungen in Abschnitt 4.2.3.1 verzichten wir nun auch darauf, zu testen, ob das Fixieren einer Variablen zur Unzul¨assigkeit f¨uhrt. Wir erhalten bei Anwendung der Bestensuche den Baum, der in Abb. 4.29 dargestellt ist. Hier wird ein durch eine eingef¨ugte Einschr¨ankung modifizierter Teilraum als der einzige Kinderknoten des aktuellen Teilraums dargestellt. Die Notation entspricht weitestgehend der in Abb. 4.10 auf S. 211. Im oberen Bereich des Knotens ist die optimale L¨osung der Relaxation abgetragen; die fixierten Variablen sind dabei fett geschrieben. Im unteren Bereich finden wir die Nummerierung des Knotens, den Wert der optimalen L¨osung der Relaxation, den Wert der besten gefundenen zul¨assigen L¨osung bei Betrachtung des Knotens sowie die Werte von K und K, die f¨ur die Relaxation des Knotens verwendet werden. In Klammern stehen zudem die Werte von K und K, die sich aus den besten Informationen, die bei Betrachtung des Knotens vorliegen, ergeben. Diese beiden Paare von Werten sind nicht zwangsl¨aufig identisch, denn, wie oben beschrieben, sieht das Verfahren vor, die g¨ultigen Ungleichungen in einer Relaxation nur dann einzuf¨ugen, wenn sie tats¨achlich verletzt sind. Die Nummerierung der Knoten ist so vorgenommen, dass sie bei Anwendung der Bestensuche in aufsteigender Reihenfolge der Knotennummern untersucht werden.

Abb. 4.29 Branch & Cut f¨ur Knapsack

x1 = 1

(1, 0, 0, −, −, −) 12/–/–/2 (2)/4 (4)

x1 = 0

(0, 0, 0, 1, 1, 1) 11/61/61/2 (2)/4 (4)

5/102 47 /61/2 (2)/4 (4)

x1 + x4 + x5 + x6 ≥ 2   11 3 14 , 0, 0, 1, 14 , 0

x3 = 0   1, 0, 0, 12 , 0, 0 4/104/90/1 (2)/4 (4)

x1 = 0

3

(1, 0, 1, −, −, −) 14/–/–/2 (2)/4 (4)

x1 = 1

x1 + x3 + x4 + x5 + x6 ≥ 2  1 , 0, 1, , 0, 0 4 4 7/101/90/2 (2)/4 (4)

 6 , 0, 1, 0, 0, 0 6/104/90/1 (2)/4 (4)

x3 = 1 5

x2 = 0

(0, 0, 1, 1, 1, 1) 13/90/90/2 (2)/4 (4)



1, 0, 12 , 0, 0, 0 2/104,5/90/1 (1)/4 (4)



  3 1, 10 , 0, 0, 0, 0 1/104,7/90/1 (1)/4 (4)  18 , 1, 0, 0, 0, 0

 11

x1 = 1

(0, 1, 0, 1, 1, 0) 17/95/95/3 (3)/4 (3)

x3 = 0

(0, 1, 1, 0, 1, 0) 15/96/96/3 (3)/4 (3)



(0, 1, 1, 1, −, −) 18/–/–/3 (3)/4 (3)

x3 = 1

16/100 12 /95/3 (3)/4 (3)

  0, 1, 12 , 1, 12 , 0

x2 + x3 + x4 + x5 + x6 ≥ 3  0, 1, 1, 12 , 12 , 0 9/101/96/3 (3)/4 (3) x4 = 1 x4 = 0

8/101 13 /96/1 (3)/ 4 (3)

  0, 1, 1, 56 , 0, 0

(1, 1, −, −, −, −) 10/–/–/1 (1)/4 (3)

3/104/96/1 (1)/4 (3) x1 = 0

x2 = 1

276 4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

4.5 Kombinationen von L¨osungsprinzipien

277

Die Werte von K und K (in beiden Varianten) sind abh¨angig von den gefundenen zul¨assigen L¨osungen und den in einem Knoten fixierten Variablen. Daher erzeugen wir in den Knoten Einschr¨ankungen, die nicht zwangsl¨aufig f¨ur alle anderen Knoten gelten und deshalb nicht global sind. Allerdings k¨onnen die verwendeten Werte von K bzw. K durch Fixierungen von Variablen nur steigen bzw. sinken. Daher werden die Einschr¨ankungen eines Kinderknotens nicht schw¨acher sein als die des Elternknotens und somit sind diese Einschr¨ankungen vererbbar. In jedem Knoten l¨osen wir also zun¨achst die Relaxation unter Verwendung des Paares von Werten f¨ur K und K, die nicht in Klammern stehen. Diese Werte werden von dem jeweiligen Elternknoten u¨ bernommen oder durch eine Einschr¨ankung versch¨arft. Wir pr¨ufen dann, ob die optimale L¨osung der Relaxation die Einschr¨ankungen mit dem Paar von Werten f¨ur K und K, die in Klammern stehen, verletzen. Sollte dies der Fall sein, wird die entsprechende Einschr¨ankung in der Relaxation erg¨anzt. Die Werte von K und K im Wurzelknoten ergeben sich wie schon aus Abschnitt 4.2 bekannt. Die optimale L¨osung der Relaxation sowie die erzeugten Kinderknoten wurden ebenfalls schon in Abschnitt 4.2 erl¨autert. Auch die Untersuchungen der Knoten 2 und 3 verlaufen wie gehabt. Nach Untersuchung von Knoten 3 ist somit eine zul¨assige L¨osung mit Wert 96 durch Anwendung der Heuristik bekannt. Daraus ergibt sich, dass f¨ur alle im Folgenden betrachteten Knoten der Wert von K in Klammern mindestens zwei betr¨agt, denn es werden (unabh¨angig von fixierten Variablen) mindestens zwei Gegenst¨ande ben¨otigt, um diesen Zielfunktionswert zu erreichen. Knoten 4 wird als n¨achster untersucht. Wir erhalten eine optimale L¨osung, bei der 1,5 Gegenst¨ande in die Menge aufgenommen werden. Dies verletzt nicht die verwendeten Einschr¨ankungen, aber sehr wohl die, die sich aus den besten Werten f¨ur K = 2 und K = 4 in Klammern ergeben. Die verletzte Einschr¨ankung wird entsprechend erg¨anzt und die modifizierte Relaxation gel¨ost. Wir erkennen, dass der Zielfunktionswert der optimalen L¨osung sinkt und nun genau zwei Gegenst¨ande in die Menge aufgenommen werden. Bei der Untersuchung von Knoten 6 und 7 sowie 8 und 9 ergibt sich ein a¨ hnliches Bild. Die Relaxation zu Knoten 10 ist unzul¨assig, da das Gesamtgewicht der Gegenst¨ande 1 und 2 die Kapazit¨at u¨ berschreitet. Die optimale L¨osung der Relaxation zu Knoten 11 ist zul¨assig, hat aber einen Wert von 61 < 96. Im Weiteren ergibt sich dann f¨ur Knoten 12, 14 und 18 Unzul¨assigkeit (f¨ur Knoten 12, weil Gegenstand 1 nicht mehr um einen vollen Gegenstand erg¨anzt werden kann, ohne die Kapazit¨atsbedingung zu verletzen, aber wegen der Einschr¨ankung noch mindestens ein Gegenstand aufgenommen werden muss, und f¨ur Knoten 14 und 18 wegen des Gesamtgewichts der fix in die Menge aufgenommenen Gegenst¨ande), f¨ur Knoten 13, 15 und 17 gibt es jeweils eine zul¨assige L¨osung der Relaxation, die die beste bisher gefundene L¨osung aber nicht u¨ bertrifft. Wir k¨onnen dieses B&C-Verfahren gut mit den B&B-Verfahren aus Abschnitt 4.2.3.1 mit Bestensuche und ohne die bzw. mit der Verwendung der g¨ultigen Ungleichungen (4.11) und (4.12) vergleichen. W¨ahrend das B&B-Verfahren ohne g¨ultige Ungleichungen diese nie verwendet und das B&B-Verfahren mit g¨ultigen Ungleichungen diese immer verwendet, verwendet unser B&C-Verfahren die g¨ultigen Un-

278

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

gleichungen erst, wenn sie verletzt sind. Daher ist es nicht ganz u¨ berraschend, dass die Anzahl untersuchter Knoten gr¨oßer als die bei dem B&B-Verfahren mit g¨ultigen Ungleichungen (siehe Abb. 4.10 auf S. 211), aber deutlich geringer als bei dem B&B-Verfahren ohne g¨ultige Ungleichungen (siehe Abb. 4.9 auf S. 210 ohne Knoten 8 und 9) ist. Letzteres zeigt den Nutzen der zus¨atzlich bei Bedarf verwendeten Einschr¨ankungen. Gerade bei Betrachtung dieses Beispiels stellt sich nat¨urlich die Frage, warum wir nicht immer alle Einschr¨ankungen, die wir herleiten k¨onnten, auch generieren und in die Relaxation einbinden sollten. Wir haben z. B. in Knoten 4 bereits die Information f¨ur die Einschr¨ankung, die wir dann erst in Knoten 5 nutzen. Grunds¨atzlich ist es so, dass die Bestimmung einer verletzten Einschr¨ankung Aufwand bedeutet und die Relaxationen in der Regel auch umso schwerer zu l¨osen sind, je mehr Einschr¨ankungen eingef¨ugt wurden. Dies kann ein Grund sein, beides erst dann zu tun, wenn wir hierdurch tats¨achlich die Absch¨atzungsqualit¨at verbessern (was z. B. in Knoten 3 nicht der Fall w¨are). In unserem konkreten Beispiel ist es allerdings so, dass beides keinen Mehraufwand verursacht, sofern wir u¨ berhaupt pr¨ufen, ob es eine verletzte Einschr¨ankung gibt (und das m¨ussen wir in einem B&C-Verfahren tun). Um zu pr¨ufen, ob eine Einschr¨ankung verletzt ist, m¨ussen wir die Werte von K und K bestimmen, was uns unmittelbar in die Lage versetzt, die entsprechenden Einschr¨ankungen zu formulieren. Weiterhin kann eine neue Einschr¨ankung die entsprechende bestehende ersetzen, da lediglich der Wert von K oder K ver¨andert wird, und daher steigt der L¨osungsaufwand f¨ur Relaxationen absehbar nicht. In diesem konkreten Fall w¨urde man also vermutlich das B&B-Verfahren mit g¨ultigen Ungleichungen dem B&CVerfahren vorziehen.

4.5.2 Branch & Price In diesem Abschnitt werden wir Branch & Price (B&P) Verfahren beschreiben. Diese Verfahren kombinieren die Prinzipien von B&B-Verfahren und Spaltengenerierung. In Abschnitt 4.5.2.1 beschreiben wir die grunds¨atzliche Vorgehensweise und betonen eine Besonderheit, w¨ahrend die Komponenten bereits in den Abschnitten 4.2 und 3.6 erl¨autert wurden. Abschließend findet sich in Abschnitt 4.5.2.2 ein Beispiel f¨ur ein konkretes B&P-Verfahren.

4.5.2.1 Generelle Vorgehensweise Mit unserem Vorwissen aus den Abschnitten 4.2 und 3.6 k¨onnen wir das Prinzip eines B&P-Verfahrens recht einfach erl¨autern. Ein B&P-Verfahren ist ein B&BVerfahren, bei dem die Relaxationen zu den jeweiligen Teilr¨aumen mittels Spaltengenerierung gel¨ost werden. Hierf¨ur gibt es zwei Motivationen. Zum einen kann es sein, dass die nat¨urliche Formulierung eines IPs sehr viele Variablen verwendet und

4.5 Kombinationen von L¨osungsprinzipien

279

daher ein Verfahren der Spaltengenerierung zur L¨osung der LP-Relaxation naheliegend ist. Zum anderen kann es aber auch sein, dass bewusst eine IP-Formulierung mit vielen Variablen gew¨ahlt wird, obwohl es Formulierungen mit weniger Variablen gibt. Der Grund hierf¨ur kann sein, dass die Absch¨atzungsqualit¨at der LPRelaxation der Formulierung mit vielen Variablen besser ist oder Symmetrie vermieden wird. W¨ahrend das Prinzip genau wie oben beschrieben umgesetzt werden kann, sollte dabei in der Regel doch eine Besonderheit beachtet werden. Wir haben schon in den Abschnitten 4.2.2.1 und 4.2.2.2 besprochen, dass die Relaxationsvorschrift und die Aufteilung von Teilr¨aumen aufeinander abgestimmt sein sollten. Damit wir das Prinzip der Spaltengenerierung wie in Abschnitt 3.6 besprochen anwenden k¨onnen, sind wir darauf angewiesen, dass wir ein LP als Relaxation zu dem jeweiligen Teilraum vorliegen haben. In der Regel, wenn auch nicht zwingend, werden wir daher in B&P-Verfahren die LP-Relaxation zu einem Teilraum und einer IP-Formulierung des zu l¨osenden Problems verwenden. Wir haben in Abschnitt 4.2.2.2 besprochen, dass wir bei Verwendung einer LP-Relaxation die Teilr¨aume durch Einschr¨ankung der Wertebereiche von Variablen aufteilen k¨onnen. Dies gilt grunds¨atzlich auch in B&P-Verfahren, a¨ ndert aber die Struktur des Pricing Problems (siehe Erl¨auterungen auf S. 163) oft grundlegend. Dies wollen wir uns anhand von Modell 3.26 genauer anschauen. Modell 3.26 (1-dimensionales Zuschnittproblem (Problem 3.2)). min ∑ x p ≡ max − ∑ x p p∈P

u.B.d.N.

(4.34)

p∈P

∑ a p,i · x p ≥ di

∀ i = 1, . . . , n

(4.35)

x p ∈ N0

∀p∈P

(4.36)

p∈P

Wir haben das 1-dimensionale Zuschnittproblem bereits in Abschnitt 3.6 kennengelernt. Wir betrachten den Zuschnitt von 1-dimensionalen Produkten aus einheitlichen 1-dimensionalen Rohlingen (z. B. sind die Produkte St¨abe unterschiedlicher L¨ange, die wir durch Zers¨agen von l¨angeren St¨aben einheitlicher L¨ange“ erhalten). ” Wir ber¨ucksichtigen dabei eine Menge von Produkten, die sich lediglich in ihren L¨angen unterscheiden. F¨ur jedes Produkt i ist die entsprechende L¨ange und der nachgefragte Bedarf di gegeben. Es soll entschieden werden, wie die Rohlinge zers¨agt werden sollen, sodass unter Verwendung einer minimalen Anzahl von Rohlingen die Bedarfe gedeckt werden. In Modell 3.26 wird dabei die Menge P von m¨oglichen Schnittmustern betrachtet, wobei jedes Schnittmuster p durch die Anzahl a p,i der Einheiten von jedem Produkt i, die aus ihm geschnitten werden, spezifiziert ist. F¨ur jedes Schnittmuster p ist dann die Anzahl x p von Rohlingen zu entscheiden, die gem¨aß p zers¨agt werden sollen. Im Wurzelknoten eines B&P-Verfahrens m¨ussen wir die LP-Relaxation von Modell 3.26 l¨osen und erreichen dies durch Verwendung von Spaltengenerierung (siehe

280

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Abschnitt 3.6). Nehmen wir an, wir erhalten den Wert x p = 0, 5 f¨ur ein bestimmtes Schnittmuster p ∈ P. Wenn wir wie in Abschnitt 4.2.2.2 erl¨autert verfahren, dann erzeugen wir zwei Teilr¨aume, die durch x p = 0 und x p ≥ 1 beschrieben sind. Im ersten Teilraum sind nur L¨osungen enthalten, in denen Schnittmuster p nicht benutzt wird. Wenn wir die Relaxation zu diesem Teilraum mit Spaltengenerierung l¨osen, suchen wir beim L¨osen des Pricing Problems also nicht zwangsl¨aufig das Schnittmuster mit den minimalen reduzierten Kosten. Stattdessen suchen wir ein Schnittmuster, das unter allen Schnittmustern, die sich von p unterscheiden, minimale reduzierte Kosten hat. Allgemein gibt es in einem Teilraum eine Menge P von ausgeschlossenen Schnittmustern und wir suchen ein Schnittmuster in P\P mit ¨ minimalen reduzierten Kosten. Diese vermeintlich kleine Anderung f¨uhrt dazu, dass der L¨osungsaufwand f¨ur das Pricing Problem erheblich steigt. Keines der Verfahren in den Abschnitten 4.2 bis 4.4 kann ohne Weiteres angewendet werden, obwohl das Pricing Problem im Wurzelknoten (aber eben auch nur dort) Problem 4.1 (Knapsack) entspricht. Eine anschauliche Erkl¨arung f¨ur die zunehmende Komplexit¨at ist, dass die Gegenst¨ande nicht mehr weitgehend unabh¨angig voneinander in die Menge aufgenommen werden k¨onnen, sondern komplexe Zusammenh¨ange durch die willk¨urliche Eliminierung vollst¨andiger Schnittmuster entstehen. Willk¨urlich ist die Eliminierung hierbei zwar nur aus Perspektive des L¨osungsverfahrens f¨ur das Pricing Problem, aber das reicht aus, denn hier sind wir blind f¨ur strukturelles Wissen u¨ ber das Restricted Master Problem (siehe Erl¨auterungen auf S. 161) und die Aufteilung der Teilr¨aume. Zusammenfassung: Aufteilen der Teilr¨aume in B&P-Verfahren Das Einschr¨anken von Werten einzelner Variablen im Restricted Master Problem hat h¨aufig zur Folge, dass im Pricing Problem einzelne L¨osungen als unzul¨assig angesehen werden. Dies liegt z. B. daran, dass eine Variable, deren Wert im Restricted Master Problem auf Null fixiert wird, auch dann nicht als L¨osung des Pricing Problems ermittelt werden soll, wenn sie negative reduzierte Kosten hat, da sie ja im Restricted Master Problem nicht verwendet“ werden kann. Dies kann dazu f¨uhren, dass das Pricing Problem ” deutlich schwerer zu l¨osen ist und sollte daher vermieden werden. Es besteht also Bedarf an geeigneten Regeln zum Aufteilen von Teilr¨aumen, die sich leicht auf das Pricing Problem u¨ bertragen lassen und dort nur geringe oder keine strukturellen Ver¨anderungen verursachen. F¨ur den Fall eines IPs, in dem alle Koeffizienten der Variablen in NB bin¨ar sind, die Werte auf der RHS den Wert eins haben und die NB Gleichungen sind, haben Ryan und Foster (1981) ein solches Schema zum Aufteilen des aktuellen Teilraums vorgeschlagen, das seitdem vielfach aufgegriffen wurde. Dieser Ansatz ist insofern von zentraler Bedeutung, als dass sich viele Probleme als IPs mit dieser Struktur formulieren lassen. Dabei repr¨asentieren die NB des IPs dann eine Form von Bedarfserf¨ullung, w¨ahrend alle u¨ brigen Anforderungen an L¨osungen durch die Struktur der Spalten repr¨asentiert werden.

4.5 Kombinationen von L¨osungsprinzipien

281

Eine zentrale Beobachtung von Ryan und Foster (1981) ist, dass es in einer nichtganzzahligen, optimalen L¨osung der LP-Relaxation des IPs zwei Zeilen gibt, sodass die Summe der Werte der Variablen, die in beiden Zeilen einen Koeffizienten von eins haben, gr¨oßer als Null, aber kleiner als Eins ist. Eine detaillierte Argumentation f¨ur diese Aussage findet sich in Anhang B.6. Das bedeutet, dass die Bedar” fe“ in den beiden Zeilen zu einem Teil durch Variablen erf¨ullt werden, die beide Bedarfe“ simultan erf¨ullen. Der verbleibende Teil des jeweiligen Bedarfs“ beider ” ” Zeilen wird durch Variablen erf¨ullt, die nur einen der beiden Bedarfe“ erf¨ullen. ” Wegen der speziellen Struktur der NB (Koeffizienten bin¨ar, Gleichungen, RHS mit Wert eins) werden in einer ganzzahligen L¨osung die Bedarfe“ der beiden Zeilen ” entweder durch eine Variable gemeinsam erf¨ullt oder durch zwei Variablen separat erf¨ullt. Daraus motiviert sich die folgende Regel zum Aufteilen des aktuellen Teilraums in zwei Teilr¨aume. Im ersten Teilraum sind ausschließlich L¨osungen enthalten, in denen die Bedarfe“ der beiden Zeilen von derselben Variable erf¨ullt werden. ” Im zweiten Teilraum sind ausschließlich L¨osungen enthalten, in denen die Bedar” fe“ der beiden Zeilen nicht von derselben Variable erf¨ullt werden. Diese Regel hat zwei Eigenschaften, die wir schon in Abschnitt 4.2.2.2 sch¨atzen gelernt haben. • Die vorliegende optimale L¨osung des aktuellen Teilraums ist in keinem der entstehenden Teilr¨aume enthalten, denn die Bedarfe“ der beiden Zeilen werden ” sowohl durch Variablen erf¨ullt, die beide Bedarfe“ simultan erf¨ullen, als auch ” durch Variablen, die nur einen der beiden Bedarfe“ erf¨ullen. ” • Jede zul¨assige L¨osung ist in genau einem der entstehenden Teilr¨aume enthalten, denn in jeder zul¨assigen L¨osung werden die beiden Bedarfe“ entweder von ” derselben oder von verschiedenen Variablen erf¨ullt. Die Aufteilung schr¨ankt die Verwendung der Variablen des Restricted Master Problem nicht explizit ein (wie es z. B. durch die Beschr¨ankung von Variablenwerten der Fall w¨are), sondern stellt auf die Struktur der Variablen ab. Ob eine Variable verwendet werden kann oder nicht, h¨angt nicht von der gesamten Variablen, also allen Informationen, die mit der Variablen assoziiert sind, ab, sondern nur von Eigenschaften der Variablen, die sich an wenigen Komponenten festmachen lassen. Dies f¨uhrt h¨aufig dazu, dass sich das Pricing Problem strukturell nur geringf¨ugig oder gar nicht a¨ ndert und daher f¨ur alle Teilr¨aume dasselbe Verfahren zum L¨osen des Pricing Problems eingesetzt werden kann. Zusammenfassung: Aufteilen durch Koppeln von Bedarfserf¨ullung Wenn wir die beiden Teilr¨aume erzeugen, indem wir verlangen, dass zwei Bedarfe“ in einem Teilraum von derselben und im anderen von unter” schiedlichen Variablen erf¨ullt werden, dann erhalten wir Einschr¨ankungen im Pricing Problem, die sich auf die beiden Bedarfe“ beschr¨anken und nicht ” explizit vollst¨andige L¨osungen betreffen. Dies a¨ ndert die Struktur des Pricing Problems h¨ochstens geringf¨ugig.

282

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

4.5.2.2 Beispiel Wir werden im Folgenden ein konkretes B&P-Verfahren erl¨autern, das auf Vance u. a. (1994) zur¨uckgeht. Die Autoren verwenden dabei das Schema zum Aufteilen von Teilr¨aumen, das von Ryan und Foster (1981) entwickelt wurde. Das Verfahren l¨ost eine spezielle Variante von Modell 3.26, in dem es f¨ur jedes Produkt i einen Bedarf von di = 1 gibt, d. h., von jedem betrachteten Produkt wird lediglich eine Einheit ben¨otigt. Daraus folgt, dass wir uns auf Schnittmuster, in denen jedes Produkt h¨ochstens einmal vorkommt, beschr¨anken k¨onnen. Zudem k¨onnen wir uns auf L¨osungen, in denen jedes Schnittmuster h¨ochstens einmal benutzt wird und in denen der Bedarf an jedem Produkt genau bedient wird, beschr¨anken. Daher sind die Voraussetzungen f¨ur die Anwendung des Schemas zum Aufteilen von Teilr¨aumen von Ryan und Foster (1981) erf¨ullt. Zur Pr¨azisierung stellen wir diese spezielle Variante von Modell 3.26, die aus naheliegenden Gr¨unden auch als bin¨ares 1-dimensionales Zuschnittsproblem bezeichnet wird, noch einmal explizit dar. Modell 4.3 (Bin¨ares 1-dimensionales Zuschnittproblem). min ∑ x p ≡ max − ∑ x p p∈P

u.B.d.N.

(4.37)

p∈P

∑ a p,i · x p = 1

∀ i = 1, . . . , n

(4.38)

∀p∈P

(4.39)

p∈P

x p ∈ {0, 1}

Dabei gilt a p,i ∈ {0, 1} f¨ur jedes p ∈ P und jedes i = 1, . . . , n. Wir verwenden wiederum ωi = (cB B−1 )i f¨ur die Dualvariable, die zu der Bedarfserf¨ullung von Produkt i in NB (4.38) korrespondiert. Das (spezielle) Pricing Problem entspricht dann genau Problem 4.1 (Knapsack), f¨ur das uns zahlreiche L¨osungsverfahren aus den Abschnitten 4.2 bis 4.4 und 4.5.1 bekannt sind. Modell 4.4 (Modell zu (speziellem) Pricing Problem). n

n

i=1

i=1

min 1 − ∑ ωi · ai ≡ max ∑ ωi · ai

(4.40)

n

u.B.d.N.

∑ li · ai ≤ L

(4.41)

i=1

ai ∈ {0, 1}

∀ i = 1, . . . , n

(4.42)

Wir erinnern uns, dass L f¨ur die L¨ange der Rohlinge und li f¨ur die L¨ange von Produkt i = 1, . . . , n steht. Das Verfahren verwendet die LP-Relaxation zu der Probleminstanz und dem aktuellen Teilraum, die Aufteilung der Teilr¨aume erfolgt gem¨aß des Schemas von Ryan und Foster (1981) (sollte es mehrere M¨oglichkeiten geben, w¨ahlen wir das le-

4.5 Kombinationen von L¨osungsprinzipien

283

xikografisch kleinste Paar von Zeilen) und wir verwenden Bestensuche. Auf das Verfahren zum L¨osen des Pricing Problems werden wir nicht eingehen, sondern die optimale L¨osung durch genaues Hinschauen“ ermitteln. Wir betrachten im Weite” ren die folgende Instanz von Modell 4.3. Beispiel 4.3 (Instanz zu Modell 4.3). • L = 10 • n=3 • l1 = 3, l2 = 4, l3 = 5 Da wir nur Schnittmuster betrachten, in denen jedes Produkt h¨ochstens einmal vorkommt, gibt es nur sechs relevante Schnittmuster. Wir w¨ahlen die initiale Menge von im Restricted Master Problem ber¨ucksichtigten Schnittmustern so, dass es f¨ur jedes Produkt i ein Schnittmuster gibt, in dem ausschließlich i enthalten ist. Wir erhalten dann das folgende Tableau (unter Verwendung der Schlupfvariablen s1 , . . . , s3 korrespondierend zu den NB f¨ur Bedarfserf¨ullung der Produkte 1, . . . , 3). F 0 0 0 1

x1 1 0 0 1

x2 0 1 0 1

x3 0 0 1 1

s1 -1 0 0 0

s2 0 -1 0 0

s3 RHS 0 1 0 1 -1 1 0 0

Im ersten Tableau liegt zwar keine Basisl¨osung vor, wir k¨onnen aber leicht eine ermitteln und erhalten folgendes Tableau. F 0 0 0 1

x1 1 0 0 0

x2 0 1 0 0

x3 0 0 1 0

s1 -1 0 0 1

s2 0 -1 0 1

s3 RHS 0 1 0 1 -1 1 1 -3

Die optimale L¨osung des Restricted Master Problems sieht also vor, insgesamt drei Rohlinge zu zerschneiden, und die optimale primale L¨osung mit x1 = 1, x2 = 1 und x3 = 1 korrespondiert zu der dualen L¨osung mit ω1 = 1, ω2 = 1 und ω3 = 1. Es ergibt sich also die folgende Instanz des Pricing Problems. Modell 4.5 (Erste Instanz des speziellen Pricing Problems (Modell 4.4)). max 1 · a1 + 1 · a2 + 1 · a3 u.B.d.N.

3 · a1 + 4 · a2 + 5 · a3 ≤ 10 ai ∈ {0, 1}

(4.43) (4.44) ∀ i = 1, . . . , 3

(4.45)

284

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Durch scharfes Hinsehen erkennen wir, dass u. a. die L¨osung mit a1 = a2 = 1 und a3 = 0 optimal ist. Die reduzierten Kosten dieses Schnittmusters p sind c¯ p = 1 − 1 − 1 − 0 = −1 und somit bleibt die vorliegende Basis nach Hinzuf¨ugen dieses Schnittmusters nicht optimal. Wir f¨ugen die entsprechende Spalte dem Simplextableau des Restricted Master Problems als x4 hinzu (wie in Abschnitt 3.6 erl¨autert), ermitteln eine optimale L¨osung mittels des Simplex-Algorithmus 3.4 und erhalten das folgende Tableau. F 0 0 0 1

x1 1 -1 0 1

x2 0 1 0 0

x3 0 0 1 0

x4 1 0 0 0

s1 s2 -1 0 0 -1 0 0 0 1

s3 RHS 0 1 0 0 -1 1 1 -2

Wir erhalten daher die folgende Instanz des Pricing Problems. Modell 4.6 (Zweite Instanz des speziellen Pricing Problems (Modell 4.4)). max 0 · a1 + 1 · a2 + 1 · a3 u.B.d.N.

3 · a1 + 4 · a2 + 5 · a3 ≤ 10 ai ∈ {0, 1}

(4.46) (4.47) ∀ i = 1, . . . , 3

(4.48)

Wir k¨onnen erkennen, dass die L¨osung mit a2 = a3 = 1 und a1 = 0 optimal ist. Die reduzierten Kosten dieses Schnittmusters p sind c¯ p = 1 − 0 − 1 − 1 = −1. Nach Hinzuf¨ugen der Variablen x5 bzw. der entsprechenden Spalte und Ermitteln einer optimalen L¨osung erhalten wir folgendes Tableau. F 0 0 0 1

x1 1 -1 1 0

x2 0 1 -1 1

x3 0 0 1 0

x4 1 0 0 0

x5 0 1 0 0

s1 -1 1 -1 1

s2 s3 RHS 0 0 1 -1 0 0 1 -1 1 0 1 -2

Es ergibt sich daher die folgende Instanz des Pricing Problems. Modell 4.7 (Dritte Instanz des speziellen Pricing Problems (Modell 4.4)). max 1 · a1 + 0 · a2 + 1 · a3 u.B.d.N.

3 · a1 + 4 · a2 + 5 · a3 ≤ 10 ai ∈ {0, 1}

(4.49) (4.50) ∀ i = 1, . . . , 3

(4.51)

Wir erkennen, dass die L¨osung mit a1 = a3 = 1 und a2 = 0 optimal ist. Die reduzierten Kosten dieses Schnittmusters p sind c¯ p = 1 − 1 − 0 − 1 = −1. Nach Hinzuf¨ugen der Variablen x6 bzw. der entsprechenden Spalte und Ermitteln einer optimalen L¨osung erhalten wir folgendes Tableau.

4.5 Kombinationen von L¨osungsprinzipien

F 0 0 0 1

x1 0,5 -0,5 0,5 0,5

x2 x3 x4 0,5 -1 1 0,5 0,5 0 -1 0,5 0 0,5 0,5 0

285

x5 0 1 0 0

x6 0 0 1 0

s1 -1 0,5 -1 0,5

s2 s3 -1 0,5 -1 -0,5 0,5 -0,5 0,5 0,5

RHS 0,5 0,5 0,5 -1,5

Es ergibt sich daher die folgende Instanz des Pricing Problems. Modell 4.8 (Vierte Instanz des speziellen Pricing Problems (Modell 4.4)). max 0, 5 · a1 + 0, 5 · a2 + 0, 5 · a3 u.B.d.N.

3 · a1 + 4 · a2 + 5 · a3 ≤ 10 ai ∈ {0, 1}

(4.52) (4.53) ∀ i = 1, . . . , 3

(4.54)

Durch scharfes Hinsehen erkennen wir, dass es keine L¨osung mit negativen reduzierten Kosten gibt, und somit liegt die optimale L¨osung der LP-Relaxation zur Instanz in Beispiel 4.3 des Modells 4.3 vor. Wir erkennen, dass die optimale L¨osung nicht-ganzzahlig ist, und wenden somit das Schema von Ryan und Foster (1981) zum Aufteilen des aktuellen Teilraums an. Wir identifizieren die ersten beiden Zeilen als zwei, deren Bedarfe zum Teil simultan von Variablen (hier ist es x4 mit a4,1 = a4,2 = 1) und zum Teil exklusiv von Variablen (hier sind es x5 mit a5,1 = 0 und a5,2 = 1 und x6 mit a6,1 = 1 und a6,2 = 0) erf¨ullt werden. Wir betrachten also im Folgenden zwei Teilr¨aume. Im ersten werden die Bedarfe der ersten beiden Zeilen simultan erf¨ullt, d. h., ein Schnittmuster p ist nur erlaubt, wenn a p,1 = a p,2 gilt. Im zweiten Teilraum werden die Bedarfe der ersten beiden Zeilen von unterschiedlichen Variablen erf¨ullt, d. h., ein Schnittmuster p ist nur erlaubt, wenn a p,1 + a p,2 ≤ 1 gilt. Abb. 4.30 stellt den Baum zum B&P-Verfahren dar. Im oberen Teil jedes Knotens sehen wir die optimale L¨osung der Relaxation zum Teilraum durch Aufz¨ahlung der verwendeten Schnittmuster und des jeweiligen Variablenwertes. Im unteren Teil sehen wir die Knotennummer, den optimalen Zielfunktionswert der LP-Relaxation und den Wert einer zul¨assigen L¨osung. Diese zul¨assige L¨osung k¨onnen wir einfach ermitteln, indem wir jedes verwendete Schnittmuster genau einmal verwenden. Dies f¨uhrt zwar potentiell zu einer Bedarfs¨ubererf¨ullung, aber wir k¨onnen die Schnittmuster leicht so ver¨andern, dass jeder Bedarf genau erf¨ullt wird. (((1, 1, 0); 0, 5) , ((1, 0, 1); 0, 5) , ((0, 1, 1); 0, 5)) 1 / 1,5 / 3 a 1 = a2 a1 + a2 ≤ 1 (((1, 1, 0); 1) , ((0, 0, 1); 1)) 2/2/2

(((1, 0, 0); 1) , ((0, 1, 1); 1)) 3/2/2

Abb. 4.30 Branch & Price f¨ur bin¨ares 1-dimensionales Zuschnittproblem

286

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Abb. 4.30 stellt neben dem Wurzelknoten 1 auch die resultierenden Knoten 2 und 3 zu den Teilr¨aumen mit a p,1 = a p,2 bzw. a p,1 + a p,2 ≤ 1 dar, um die wir uns im Folgenden k¨ummern. Wir widmen uns zun¨achst dem ersten Teilraum (Knoten 2) und erkennen, dass wir hier tats¨achlich die Struktur des Pricing Problems u¨ berhaupt nicht a¨ ndern m¨ussen, denn wir k¨onnen einfach die Produkte 1 und 2 zu einem B¨undelprodukt zusammenfassen, dessen L¨ange der Summe der L¨angen der Produkte 1 und 2 und dessen Zielfunktionskoeffizient der Summe der Koeffizienten der Produkte 1 und 2 entspricht. In einer L¨osung einer Instanz des Pricing Problems wird das B¨undelprodukt dann in das Schnittmuster aufgenommen (und somit die beiden Produkte 1 und 2) oder nicht (und somit beide Produkte nicht). So erzeugen wir kein Schnittmuster p mit a p,1 = a p,2 . Da wir uns aber nach wie vor nicht im Detail um das Verfahren zum L¨osen des Pricing Problems k¨ummern wollen, behalten wir die bisherige Notation bei und erg¨anzen im Modell des Pricing Problems die NB a p,1 = a p,2 . Wir m¨ussen uns auch u¨ ber die initiale Menge von im Restricted Master Problem ber¨ucksichtigten Schnittmustern Gedanken machen. Dies kann abh¨angig vom betrachteten Problem und Teilraum alles andere als trivial sein. Sollte es nicht gelingen, zul¨assige Schnittmuster zu erzeugen, die eine zul¨assige L¨osung der LPRelaxation des aktuellen Teilraums erlauben, dann kann man sich mit unzul¨assigen Schnittmustern behelfen, die sehr hohe Kosten haben und daher im Laufe der Optimierung eliminiert werden (analog zu den Hilfsvariablen in Abschnitt 3.3.3). In unserem Fall haben wir zwar Gl¨uck, dass das Schnittmuster p = 4 mit a4,1 = a4,2 = 1 und a4,3 = 0 zul¨assig ist und zusammen mit Schnittmuster p = 3 absehbar ausreicht, um eine zul¨assige L¨osung zu ermitteln. Allerdings wird es nun schwerer, eine zul¨assige Basisl¨osung zu ermitteln, weswegen wir im Folgenden mit k¨unstlichen Hilfsvariablen y1 , . . . , y3 arbeiten, wie in Abschnitt 3.3.3 besprochen. F x4 x3 0 1 0 1 0 0 0 1 0 1 1 − 2M 1 − M

s1 -1 0 0 M

s2 0 -1 0 M

s3 0 0 -1 M

y1 1 0 0 0

y2 0 1 0 0

y3 RHS 0 1 0 1 1 1 0 −3M

Wenn wir die optimale L¨osung mittels des Simplex-Algorithmus 3.4 ermitteln und die Hilfsvariablen eliminieren, erhalten wir folgendes Tableau. F 0 0 0 1

x4 1 0 0 0

x3 0 0 1 0

s1 0 1 0 0

s2 s3 RHS -1 0 1 -1 0 0 0 -1 1 1 1 -2

Es ergibt sich daher die folgende Instanz des Pricing Problems.

4.5 Kombinationen von L¨osungsprinzipien

287

¨ Modell 4.9 (Funfte Instanz des speziellen Pricing Problems (Modell 4.4)). max 0 · a1 + 1 · a2 + 1 · a3 u.B.d.N.

(4.55)

3 · a1 + 4 · a2 + 5 · a3 ≤ 10 a1 − a2 = 0 ai ∈ {0, 1}

(4.56) (4.57) ∀ i = 1, . . . , 3

(4.58)

Durch scharfes Hinsehen erkennen wir, dass es keine L¨osung mit negativen reduzierten Kosten gibt: F¨ur eine L¨osung mit negativen reduzierten Kosten muss a2 = a3 = 1 gelten. Wegen NB (4.57) muss dann auch a1 = 1 gelten. Die L¨osung mit a1 = a2 = a3 = 1 verletzt allerdings NB (4.56). Somit liegt die optimale L¨osung der LP-Relaxation zum aktuellen Teilraum (Knoten 2) vor. Wir erkennen zudem, dass diese ganzzahlig ist. Eine optimale L¨osung des aktuellen Teilraums ist also durch Verwendung der Schnittmuster (1, 1, 0) und (0, 0, 1) spezifiziert und hat einen Zielfunktionswert von 2. Knoten 2 wird nicht weiter verzweigt, weil die optimale L¨osung gefunden wurde. Nun betrachten wir den zweiten Teilraum (Knoten 3 in Abb. 4.30) und erkennen, dass die Struktur des Pricing Problems leicht angepasst werden muss, denn wir k¨onnen nicht ohne Weiteres abbilden, dass die Produkte 1 und 2 nicht gemeinsam in ¨ einem Schnittmuster vorkommen k¨onnen. Diese Anderung ist aber f¨ur die L¨osung des Pricing Problems nicht von schwerwiegender Bedeutung, denn wir k¨onnen zum Beispiel das B&B-Verfahren aus Abschnitt 4.2.3.1 leicht anpassen. Wir k¨onnten stattdessen auch zwei Instanzen des Pricing Problems l¨osen, in denen wir entweder a1 = 0 oder a2 = 0 fixieren, und so alle Schnittmuster, in denen nicht beide Produkte enthalten sind, ber¨ucksichtigen. Da wir uns aber nach wie vor nicht im Detail um das Verfahren zum L¨osen des Pricing Problems k¨ummern wollen, ermitteln wir die optimale L¨osung einer Instanz des Pricing Problems durch genaues Hinschauen“. Die ” initiale Menge von im Restricted Master Problem ber¨ucksichtigten Schnittmustern w¨ahlen wir genauso wie im Wurzelknoten, denn sie sind auch in Knoten 3 zul¨assig. Wenn wir die optimale L¨osung mittels des Simplex-Algorithmus 3.4 ermitteln und die Hilfsvariablen eliminieren, erhalten wir das schon vom Wurzelknoten bekannte Tableau. F 0 0 0 1

x1 1 0 0 0

x2 0 1 0 0

x3 0 0 1 0

s1 -1 0 0 1

s2 0 -1 0 1

s3 RHS 0 1 0 1 -1 1 1 -3

Es ergibt sich also die folgende Instanz des Pricing Problems.

288

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Modell 4.10 (Sechste Instanz des speziellen Pricing Problems (Modell 4.4)). max 1 · a1 + 1 · a2 + 1 · a3 u.B.d.N.

(4.59)

3 · a1 + 4 · a2 + 5 · a3 ≤ 10 a1 + a2 ≤ 1

(4.60) (4.61)

ai ∈ {0, 1}

∀ i = 1, . . . , 3

(4.62)

Durch scharfes Hinsehen erkennen wir, dass u. a. die L¨osung mit a1 = a3 = 1 und a2 = 0 optimal ist. Nach Hinzuf¨ugen der Variablen x6 bzw. der entsprechenden Spalte und Ermitteln einer optimalen L¨osung erhalten wir folgendes Tableau. F 0 0 0 1

x1 1 0 -1 1

x2 0 1 0 0

x3 0 0 1 0

x6 1 0 0 0

s1 s2 -1 0 0 -1 1 0 0 1

s3 RHS 0 1 0 1 -1 0 1 -2

An dieser Stelle k¨onnten wir schließen, dass eine optimale L¨osung vorliegt, denn wir haben eine zul¨assige L¨osung mit Wert 2 vorliegen und wissen, dass 1,5 eine untere Schranke ist und dass jede zul¨assige L¨osung einen ganzzahligen Wert haben muss. Wir f¨uhren dennoch die Spaltengenerierung zu Ende und erhalten folgende Instanz des Pricing Problems. Modell 4.11 (Siebte Instanz des speziellen Pricing Problems (Modell 4.4)). max 0 · a1 + 1 · a2 + 1 · a3 u.B.d.N.

3 · a1 + 4 · a2 + 5 · a3 ≤ 10 a1 + a2 ≤ 1 ai ∈ {0, 1}

(4.63) (4.64) (4.65) ∀ i = 1, . . . , 3

(4.66)

Durch scharfes Hinsehen erkennen wir, dass die L¨osung mit a2 = a3 = 1 und a1 = 0 optimal ist. Nach Hinzuf¨ugen der Variablen x5 bzw. der entsprechenden Spalte und Ermitteln einer optimalen L¨osung erhalten wir folgendes Tableau. F 0 0 0 1

x1 1 1 -1 0

x2 0 1 0 0

x3 0 -1 1 1

x6 1 0 0 0

x5 0 0 1 0

s1 -1 -1 1 1

s2 s3 RHS 0 0 1 -1 1 1 0 -1 0 1 0 -2

Es ergibt sich also die folgende Instanz des Pricing Problems.

Literaturverzeichnis

289

Modell 4.12 (Achte Instanz des speziellen Pricing Problems (Modell 4.4)). max 1 · a1 + 1 · a2 + 0 · a3 u.B.d.N.

(4.67)

3 · a1 + 4 · a2 + 5 · a3 ≤ 10 a1 + a2 ≤ 1 ai ∈ {0, 1}

(4.68) (4.69) ∀ i = 1, . . . , 3

(4.70)

Durch scharfes Hinsehen erkennen wir, dass es keine L¨osung mit negativen reduzierten Kosten gibt: F¨ur eine L¨osung mit negativen reduzierten Kosten muss a1 = a2 = 1 gelten. Dies verletzt NB (4.69). Somit liegt die optimale L¨osung der LPRelaxation zum aktuellen Teilraum (Knoten 3) vor. Wir erkennen zudem, dass diese ganzzahlig ist. Eine optimale L¨osung des aktuellen Teilraums ist also durch Verwendung der Schnittmuster (1, 0, 1) und (0, 1, 0) spezifiziert und hat einen Zielfunktionswert von 2. Knoten 3 wird nicht weiter verzweigt, weil die optimale L¨osung gefunden wurde. Damit sind alle gebildeten Teilr¨aume untersucht und somit endet das B&BVerfahren. Wir haben sogar zwei optimale L¨osungen ermittelt, n¨amlich die zwei Schnittmuster (1, 1, 0) und (0, 0, 1) (Knoten 2) oder die zwei Schnittmuster (1, 0, 1) und (0, 1, 0) (Knoten 3) zu verwenden.

Literaturverzeichnis Bellman R (ed) (1957) Dynamic Programming. Princeton University Press Daniel RC, Jeffreys M (1979) Unboundedness in integer and discrete programming l.p. relaxations. Journal of the Operational Research Society 30:1119–1128 Gomory RE (1958) Outline of an algorithm for integer solutions to linear programs. Bulletin of the American Society 64:275–278 Gomory RE (1960) An algorithm for the mixed integer problem. Technical Report RM-2597, The RAND Cooperation Kellerer H, Pferschy U, Pisinger D (eds) (2004) Knapsack Problems. Springer, Berlin u. a. Kolesar PJ (1967) A branch and bound algorithm for the knapsack problem. Management Science 13:723–735 Martello S, Toth P (1997) Upper bounds and algorithms for hard 0-1 knapsack problems. Operations Research 45(5):768–778 Miliotis P (1978) Using cutting planes to solve the symmetric travelling salesman problem. Mathematical Programming 15:177–188 Morrison DR, Jacobson SH, Sauppe JJ, Sewell EC (2016) Branch-and-bound algorithms: A survey of recent advances in searching, branching, and pruning. Discrete Optimization 9:79–102

290

4 Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Nemhauser G, Wolsey LA (1999) Integer and Combinatorial Optimization. WileyInterscience Pferschy U, Stanˇek R (2017) Generating subtour elimination constraints for the tsp from pure integer solutions. Central European Journal of Operations Research 25(1):231–260 Ryan DM, Foster BA (1981) An integer programming approach to scheduling. In: Wren A (ed) Computer Scheduling of Public Transport: Urban Passenger Vehicle and Crew Scheduling, North-Holland, pp 269–280 Vance PH, Barnhart C, Johnson EL, Nemhauser GL (1994) Solving binary cutting stock problems by column generation and branch-and-bound. Computational Optimization and Applications 3(2):111–130 Volgenant T, Jonker R (1982) A branch and bound algorithm for the symmetric traveling salesman problem based on the 1-tree relaxation. European Journal of Operational Research 9:83–89 Wesselmann F (2010) Generating general-purpose cutting planes for mixed-integer programs. University of Paderborn, PhD thesis

Kapitel 5

Graphentheorie

Zusammenfassung In diesem Kapitel werden fundamentale Konzepte und Verfahren der Graphentheorie vorgestellt. Dabei legen wir den Fokus auf popul¨are Probleme in diesem Bereich, die zum einen unmittelbare Anwendungen haben und zum anderen auch h¨aufig als Teil- oder Subprobleme in u¨ bergeordneten L¨osungsverfahren zu finden sind. Lernziele Kapitel 5 Sie kennen nach Lesen und Verinnerlichen dieses Kapitels • Verfahren zur L¨osung spezieller Probleme im Bereich der Graphentheorie. Sie k¨onnen nach Lesen und Verinnerlichen dieses Kapitels • diese Verfahren anwenden und • die entsprechenden Probleme l¨osen. In diesem Kapitel wollen wir uns wiederum mit der L¨osung von bestimmten Problemen besch¨aftigen. Anders als in den Kapiteln 3 und 4 wird es dabei um einzelne Probleme und nicht um ganze Klassen von Problemen gehen. Jedes der behandelten Probleme l¨asst sich in einer der Klassen, die in den Kapiteln 3 und 4 diskutiert wurden, verorten und somit auch mit den entsprechenden Methoden l¨osen. Wir werden uns daher in den Abschnitten 5.1 bis 5.4 auf Verfahren konzentrieren, die speziell auf die jeweiligen Probleme abgestimmt und somit in der Regel deutlich effizienter oder intuitiver sind. Dabei geht es nicht unbedingt darum, das nach Stand der Dinge effizienteste Verfahren zu diskutieren. Diese sind zum Teil u¨ ber Jahrzehnte weiterentwickelt worden und h¨aufig hochkomplex. Vielmehr wollen wir uns auf die grundlegenden (zum Teil intuitiv motivierbaren) Ideen solcher Verfahren konzentrieren. Die Auswahl der Probleme, die wir dabei betrachten, deckt zentrale, in der Graphentheorie behandelte Probleme ab. Diese Probleme sind nicht nur f¨ur

© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 D. Briskorn, Operations Research, https://doi.org/10.1007/978-3-662-60783-1_5

292

5 Graphentheorie

sich genommen motivierbar, sondern treten auch oft als Teil- oder Subproblem in u¨ bergeordneten Problemen auf. ¨ F¨ur einen weiteren Uberblick u¨ ber Probleme, Verfahren und strukturelle Erkenntnisse im Bereich der Graphentheorie seien dem Leser Diestel (2017), Jungnickel (2013) und Wallis (2007) empfohlen.

¨ 5.1 Kurzeste Wege (und Pfade) In diesem Abschnitt geht es um die Bestimmung von Wegen und Pfaden in einem Graph. Was Wege und Pfade sind, haben wir bereits in den Definitionen 2.5 und 2.6 spezifiziert. Auch L¨angen von Wegen haben wir schon in Definition 4.7 definiert. Wir wollen uns diese Definitionen hier aber noch einmal vor Augen f¨uhren. Definition 2.5 (Weg). Ein Weg von einem Knoten u ∈ V zu einem Knoten v ∈ V in einem gerichteten Graphen G = (V, E) ist eine Sequenz von n, n ≥ 1, Kanten ((u1 , v1 ), . . . , (un , vn )), sodass • u1 = u und vn = v, d. h., die erste Kante beginnt bei Knoten u und die letzte endet bei Knoten v, • (uk , vk ) ∈ E f¨ur jedes k = 1, . . . , n, d. h., die Kanten im Weg sind im Graphen vorhanden, und • uk = vk−1 f¨ur jedes k = 2, . . . , n, d. h., jede Kante beginnt bei dem Knoten, bei dem die vorherige endet. Definition 2.6 (Pfad). Ein Pfad von einem Knoten u ∈ V zu einem Knoten v ∈ V in einem gerichteten Graphen G = (V, E) ist ein Weg ((u1 , v1 ), . . . , (un , vn )), sodass • uk = uk f¨ur jedes 1 ≤ k < k ≤ n,  vk f¨ur jedes 1 ≤ k < k ≤ n und • vk =  vn , • u1 = d. h., jeder Knoten in V wird h¨ochstens einmal erreicht. Definition 4.7 (L¨ange eines Weges). Die L¨ange eines Weges ist die Summe der Gewichte (L¨angen) der im Weg enthaltenen Kanten. Abb. 5.1 stellt einen Graph dar, in dem es f¨unf verschiedene Wege von Knoten 1 zu Knoten 8 gibt, die auch Pfade sind. Der Pfad (1, 2, 5, 4, 7, 8) hat eine L¨ange von 5 + 9 + 3 + 4 + 7 = 28. Die weiteren Pfade (1, 2, 3, 6, 9, 8), (1, 2, 5, 8), (1, 2, 5, 6, 9, 8) und (1, 4, 7, 8) haben die L¨angen 11, 22, 18 und 13. An diesem Beispiel erkennen wir schon, dass ein Weg bzw. Pfad k¨urzer sein kann, obwohl er mehr Kanten enth¨alt. Da der Graph auch einen Kreis, n¨amlich (6, 9, 10), enth¨alt, gibt es auch Wege, die keine Pfade sind. Weg (1, 2, 3, 6, 9, 10, 6, 9, 8) von Knoten 1 zu Knoten 8 ist kein Pfad, da Knoten 6 und 9 zweifach besucht werden, und hat L¨ange 18. Wir hatten uns schon in Abschnitt 4.4 mit der Bestimmung k¨urzester Wege besch¨aftigt, uns dort aber auf den recht speziellen Fall eines gerichteten, kreisfreien Graphen beschr¨ankt. Da es in kreisfreien Graphen keine Kreise gibt, mussten

5.1 K¨urzeste Wege (und Pfade) 1

5

2

293 2

9

2

4

3

1

5

1

8

4

7

7

3

6 3

2

8

1

9

2

10

Abb. 5.1 Beispiel zu Wegen, Pfaden und deren L¨angen

wir nicht zwischen Wegen und Pfaden unterscheiden, da in diesem Fall jeder Weg ein Pfad ist. Diesen Fall werden wir hier ausklammern und daher auch das betrachtete Problem allgemeiner fassen, indem wir uns nicht auf kreisfreie Graphen beschr¨anken. ¨ Problem 5.1 (Kurzester Weg in einem gerichteten Graphen). Eingabe: Gerichteter, gewichteter Graph G = (V, E, w) und zwei ausgewiesene Knoten i und j LR: Wege von i nach j ZB: – ZS: L¨ange des Weges ist zu minimieren. Frage: Was ist eine optimale L¨osung? Wir werden uns in den Abschnitten 5.1.1 und 5.1.2 mit zwei verschiedenen Verfahren besch¨aftigen. Das Verfahren in Abschnitt 5.1.1 f¨uhrt nur in dem speziellen Fall, in dem es keine negativen Kantengewichte gibt, zu optimalen L¨osungen. Dies ist in vielen naheliegenden Anwendungen, wie z. B. bei der Abbildung eines Streckennetzes, bei der die Kantengewichte die Distanzen darstellen, der Fall und daher hat dieses Verfahren eine hohe Bedeutung. Wenn wir nicht ausschließen k¨onnen, dass es negative Kantengewichte gibt, dann ben¨otigen wir ein aufwendigeres Verfahren, das wir in Abschnitt 5.1.2 besprechen.

5.1.1 Nicht-negative Kantenl¨angen Das Verfahren, das hier vorgestellt werden soll, geht auf Dijkstra (1959) zur¨uck. Dieses Verfahren l¨ost Problem 5.1 (K¨urzester Weg in einem gerichteten Graphen), indem der k¨urzeste Weg von Knoten i zu jedem anderen Knoten ermittelt wird.

294

5 Graphentheorie

Wir wollen davon ausgehen, dass der Ausgangsknoten i Knoten 1 ist. Da Kreise existieren k¨onnen, kann es auch Wege geben, die keine Pfade sind. Trotzdem werden wir uns um Wege, die keine Pfade sind, nicht explizit k¨ummern m¨ussen, da kein Weg von 1 zu einem anderen Knoten k¨urzer sein kann, als der k¨urzeste Pfad. Dies liegt daran, dass ein Weg, der kein Pfad ist, einen Kreis enth¨alt und dieser eine nichtnegative L¨ange hat, da kein Kantengewicht negativ ist. Also k¨onnen wir alle Kreise aus einem Weg entfernen und erhalten einen Pfad, der nicht l¨anger als der Weg ist. Zusammenfassung: K¨urzeste Wege und k¨urzeste Pfade Da Kreise nicht-negative L¨angen haben, wenn Kantengewichte nichtnegativ sind, gibt es keinen Weg der k¨urzer als der k¨urzeste Pfad ist. Um zun¨achst eine Intuition f¨ur die Vorgehensweise zu schaffen, wollen wir noch einmal rekapitulieren, wie wir in Abschnitt 4.4 mittels eines Ansatzes der DP Problem 4.2 (K¨urzester Pfad in einem gerichteten kreisfreien Graphen), also den Spezialfall von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen), in dem der vorliegende Graph keine Kreise enth¨alt, gel¨ost haben. Auch dort wurden die k¨urzesten Wege von Knoten 1 zu jedem anderen Knoten ermittelt. Wir waren dort, aufgrund der Kreisfreiheit, in der Lage, die Knoten vorab so zu sortieren, dass wir die k¨urzesten Wege zu den einzelnen Knoten in dieser Reihenfolge bestimmen konnten. Wir wussten also beispielsweise, dass es von Knoten 3 keinen Weg zu Knoten 2 gibt und wir daher den k¨urzesten Weg von 1 nach 2 bestimmen k¨onnen, bevor wir den k¨urzesten Weg von 1 nach 3 bestimmen. Diese M¨oglichkeit haben wir bei Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen) nicht, denn potentiell gibt es von jedem Knoten zu jedem anderen Knoten einen Weg. ¨ ¨ Uberblick uber das Verfahren Wir werden uns daher in jedem Schritt u¨ berlegen, zu welchen Knoten wir die k¨urzesten Wege inzwischen kennen, und dann Wege zu anderen Knoten unter Verwendung dieser Kenntnis entwickeln. Sollte zu einem Knoten der k¨urzeste Weg bereits bekannt sein, werden weitere Wege zu ihm ignoriert und dadurch Wege, die keine Pfade sind, bei der Konstruktion implizit ignoriert. Wir werden im Rahmen des Verfahrens drei Informationen zu jedem Knoten vorhalten und bei Bedarf aktualisieren. • Wir merken uns f¨ur jeden Knoten k die L¨ange Lk des k¨urzesten bisher gefundenen Weges von 1 zu Knoten k. Immer wenn wir einen k¨urzeren Weg zu k finden, aktualisieren wir diese Information. F¨ur Knoten 1 initialisieren wir diesen Wert mit 0, da wir einen Weg von Knoten 1 zu Knoten 1 der L¨ange null kennen und es bei nicht-negativen Kantengewichten keinen k¨urzeren Weg geben kann. F¨ur jeden anderen Knoten k, zu dem wir vorab keinen Weg kennen, initialisieren wir diesen Wert mit ∞, was dazu f¨uhrt, dass der erste gefunden Weg zu k auf jeden Fall k¨urzer “ ist. ”

5.1 K¨urzeste Wege (und Pfade)

295

• Wir merken uns f¨ur jeden Knoten k den vorletzten Knoten auf dem k¨urzesten bisher gefundenen Weg von 1 zu k. Wir sprechen von diesem Knoten auch als Vorg¨anger Vk von k. Immer wenn wir einen k¨urzeren Weg zu k finden, aktualisieren wir den Vorg¨anger von k. Wir initialisieren diese Information f¨ur alle Knoten mit −“, denn f¨ur Knoten 1 kennen wir schon einen k¨urzesten Weg, aber Knoten ” 1 hat auf diesem Weg keinen Vorg¨anger, und zu jedem anderen Knoten kennen wir noch keinen Weg. • Wir merken uns f¨ur jeden Knoten k, ob wir ihn im weiteren Verlauf des Verfahrens noch ber¨ucksichtigen m¨ussen. Daf¨ur halten wir die Menge V  von Knoten vor, die k enth¨alt, falls k noch ber¨ucksichtigt werden muss, weil der k¨urzeste Weg zu k noch nicht sicher bekannt ist. Initial enth¨alt V  alle Knoten. Nach der Initialisierung bearbeitet das Verfahren in jedem Schritt einen Knoten abschließend. Hierf¨ur wird jeweils der Knoten k gew¨ahlt, zu dem es unter allen Knoten, die noch ber¨ucksichtigt werden m¨ussen, den k¨urzesten bekannten Weg von Knoten 1 gibt. Wir pr¨ufen dann f¨ur jede von k ausgehende Kante (k, k ) zu einem noch nicht abschließend bearbeiteten Knoten k , ob der k¨urzeste bekannte Weg von 1 zu k erg¨anzt um die Kante (k, k ) einen neuen k¨urzesten bekannten Weg von 1 zu k darstellt. Sollte dies der Fall sein, ergibt sich ein neuer Wert f¨ur Lk , indem wir Lk um die L¨ange wk,k der Kante (k, k ) vergr¨oßern, und k als neuer Vorg¨anger Vk von k . Nachdem diese Operation f¨ur alle von k ausgehenden Kanten ausgef¨uhrt wurde, wird k als abschließend bearbeitet markiert und der aktuelle Schritt endet. Nach |V | Schritten endet das Verfahren. Nach Abschluss m¨ussen wir die f¨ur jeden Knoten erhaltene Information noch interpretieren. Wir sehen unmittelbar die L¨ange Lk des k¨urzesten gefundenen Weges von 1 nach k und den Vorg¨anger Vk . Wir k¨onnen dann den Weg von 1 nach k r¨uckw¨arts rekonstruieren, indem wir von k ausgehend den Vorg¨anger Vk einf¨ugen und dann den k¨urzesten gefundenen Weg von 1 nach Vk ermitteln. So werden wir als n¨achstes VVk einf¨ugen und wiederholen diese Vorgehensweise, bis wir Knoten 1 einf¨ugen. Sollte f¨ur einen Knoten k nach Abschluss des Verfahrens noch Vk = − gelten, dann gibt es keinen Weg von Knoten 1 nach Knoten k. Salopp formuliert: Verfahren von Dijkstra Wir pr¨ufen in jedem Schritt, ob wir von einem Knoten k aus durch Erg¨anzen einer Kante neue k¨urzeste Wege zu anderen Knoten finden k¨onnen. Knoten k wird so gew¨ahlt, dass wir den k¨urzesten Weg zu ihm bereits kennen. Das gesamte Verfahren l¨asst sich als Algorithmus 5.1 konkretisieren.

296

5 Graphentheorie

Algorithmus 5.1 (Dijkstra). Eingabe: Gerichteter Graph G = (V, E, w) mit nicht-negativen Kantengewichten Ausgabe: K¨urzester Weg von Knoten 1 zu jedem Knoten j oder Information, dass keiner existiert 1. Setze L1 ← 0 und Lk ← ∞ f¨ur k = 1, Vk ← − f¨ur jeden Knoten k, V  ← V 2. W¨ahle Knoten k = arg min{Lk | k ∈ V  } 3. F¨ur jede Kante (k, k ) ∈ E mit k ∈ V  und Lk > Lk + wk,k • Lk ← Lk + wk,k • Vk ← k 4. V  ← V  \ {k} / gehe zu 2. 5. Wenn V  = 0, Nach der Initialisierung werden die Schritte 2. bis 5. wiederholt, bis alle Knoten abschließend bearbeitet sind, was wir an V  = 0/ erkennen. In jedem Durchlauf wird Knoten k bestimmt und jede Kante (k, k ) daraufhin untersucht, ob sie zu einem neuen k¨urzesten bisher gefundenen Weg zu k f¨uhrt. Wenn dies der Fall ist, dann werden die entsprechenden Informationen f¨ur Knoten k aktualisiert.

Beispiel Bevor wir das Verfahren analysieren, wollen wir es an einem Beispiel veranschaulichen. Wir wenden Algorithmus 5.1 auf die Probleminstanz in Abb. 5.2 an.

1

Abb. 5.2 Instanz von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen) mit nicht-negativen Kantengewichten

1

3

2

4

3

2

8

5

6

5

1

3

2

6

Tabelle 5.1 stellt den Ablauf des Verfahrens dar. Die jeweiligen k¨urzesten bisher gefundenen Wege nach den Iterationen 1 bis 6 sind in Abb. 5.3 bis Abb. 5.8 illustriert. In Tabelle 5.1 korrespondiert jede der nummerierten Zeilen zur Betrachtung eines Knotens k als Ausgangspunkt f¨ur zu erg¨anzende Kanten. Es finden sich jeweils die Werte L1 bis L6 , V1 bis V6 und die Menge V  vor Wahl des Knoten k, der gew¨ahlte Knoten k und ein Verweis auf eine Abbildung mit den resultierenden k¨urzesten bisher gefundenen Wegen. Die resultierenden Werte f¨ur L1 bis L6 und V1 bis V6 finden sich dann in der folgenden Zeile. Wir wollen nun nachvollziehen, was in den einzelnen Iterationen geschieht. Wir initialisieren zun¨achst L1 bis L6 , V1 bis V6 und V  wie in Zeile 1 von Tabelle 5.1

5.1 K¨urzeste Wege (und Pfade)

297

Tabelle 5.1 Ablauf von Algorithmus 5.1 f¨ur die Instanz in Abb. 5.2 1 2 3 4 5 6

L1 0 0 0 0 0 0 0

L2 ∞ 1 1 1 1 1 1

L3 ∞ ∞ 9 9 9 8 8

L4 ∞ 2 2 2 2 2 2

L5 ∞ ∞ 7 5 5 5 5

L6 ∞ ∞ 6 6 6 6 6

V1 − − − − − − −

V2 − 1 1 1 1 1 1

V3 − − 2 2 2 6 6

V4 − 1 1 1 1 1 1

V5 − − 2 4 4 4 4

V6 − − 2 2 2 2 2

V {1, . . . , 6} {2, . . . , 6} {3, . . . , 6} {3, 5, 6} {3, 6} {3} 0/

k 1 2 4 5 6 3

Abb. 5.3 5.4 5.5 5.6 5.7 5.8

notiert. Wir w¨ahlen dann k = 1 und finden bessere Wege f¨ur k = 2 und k = 4, da L2 = ∞ > L1 + w1,2 = 0 + 1 = 1, d. h. der k¨urzeste Weg von 1 nach 1 erg¨anzt um die Kante von 1 nach 2 ergibt einen Weg von 1 nach 2, der k¨urzer als der k¨urzeste bisher gefunden ist, und L4 = ∞ > L1 + w1,4 = 0 + 2 = 2. Diese Wege sind in Abb. 5.3 durch schwarze Kanten hervorgehoben. Knoten werden weiß dargestellt, wenn sie nicht mehr ber¨ucksichtigt werden m¨ussen.

1

3

2 Abb. 5.3 K¨urzeste bisher gefundene Wege nach Iteration 1

1

4

2

5

6

3

8

5

3

2

1

6

In Iteration 2 w¨ahlen wir k = 2, da es von Knoten 1 nach Knoten 2 unter allen Knoten in V  den k¨urzesten gefundenen Weg gibt, und finden bessere Wege f¨ur k = 3, k = 5 und k = 6, da L3 = ∞ > L2 + w2,3 = 1 + 8 = 9, L5 = ∞ > L2 + w2,5 = 1 + 6 = 7 und L6 = ∞ > L2 + w2,6 = 1 + 5 = 6, siehe Abb. 5.4.

1

3

2 Abb. 5.4 K¨urzeste bisher gefundene Wege nach Iteration 2

1

4

3

2

8

5

6

5

1

3

2

6

In Iteration 3 w¨ahlen wir k = 4 und finden einen k¨urzeren Weg f¨ur k = 5, da L5 = 7 > L4 + w4,5 = 2 + 3 = 5. Kante (4, 2) wird nicht ber¨ucksichtigt, da 2 ∈ V  . Kante (4, 2) wird somit in keinem k¨urzesten Weg zu finden sein und wir bilden sie

298

5 Graphentheorie

in Abb. 5.5 bis 5.8 dementsprechend auch nicht mehr ab. Außerdem wissen wir nun, dass die Kante (2, 5) nicht ben¨otigt wird, da wir Knoten 5 u¨ ber die Kante (4, 5) auf einem k¨urzeren Weg erreichen.

1

1

2

5

2 Abb. 5.5 K¨urzeste bisher gefundene Wege nach Iteration 3

8

4

3

5

3

2

1

6

In Iteration 4 w¨ahlen wir k = 5, finden allerdings keine besseren Wege, da L6 = 6 = L5 + w5,6 = 5 + 1 = 6. Kante (5, 6) wird somit in keinem (ausgewiesenen) k¨urzesten Weg zu finden sein, siehe Abb. 5.6.

1

1

2

5

2 Abb. 5.6 K¨urzeste bisher gefundene Wege nach Iteration 4

8

4

3

3

2

5

6

In Iteration 5 w¨ahlen wir k = 6 und finden einen k¨urzeren Weg f¨ur k = 3, da L3 = 9 > L6 + w6,3 = 6 + 2 = 8. Kante (2, 3) wird somit in keinem k¨urzesten Weg zu finden sein, siehe Abb. 5.7.

1

1

5

2 Abb. 5.7 K¨urzeste bisher gefundene Wege nach Iteration 5

3

2

4

3

5

2

6

In Iteration 6 w¨ahlen wir k = 3 und finden keinen k¨urzeren Weg mehr, da Knoten k = 3 keine ausgehenden Kanten hat. Alle k¨urzesten Wege finden sich dann abschließend in Abb. 5.8.

5.1 K¨urzeste Wege (und Pfade)

299 1

1

5

2 Abb. 5.8 K¨urzeste bisher gefundene Wege nach Iteration 6

3

2

4

3

5

2

6

Analyse Nachdem wir gesehen haben, dass Algorithmus 5.1 die Probleminstanz in Abb. 5.2 l¨ost, besagt Theorem 5.1, dass er dies tats¨achlich f¨ur jede Instanz von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen) mit nicht-negativen Kantengewichten leistet. Theorem 5.1. Algorithmus 5.1 findet einen k¨urzesten Weg von Knoten 1 zu jedem anderen Knoten j, zu dem es einen Weg von Knoten 1 gibt, wenn kein Kantengewicht negativ ist. Einen formalen Beweis f¨uhren wir in Anhang C.1. Hier wollen wir allerdings schon intuitiv Analogien zu dem Ansatz der DP in Abschnitt 4.4 aufzeigen. Das DPVerfahren bestimmt schon vorab eine Reihenfolge der Knoten, sodass keine Kante im Graph von einem sp¨ateren Knoten in der Reihenfolge zu einem fr¨uheren verl¨auft. Dies ist hier nicht m¨oglich, da es Kreise geben kann. Algorithmus 5.1 bestimmt daher dynamisch durch die Wahl von Knoten k in jeder Iteration eine Reihenfolge der Knoten, sodass keine relevante“ Kante im Graph von einem sp¨ateren Knoten ” in der Reihenfolge zu einem fr¨uheren verl¨auft. Dabei sortiert er die Knoten nach den L¨angen der k¨urzesten Wege zu ihnen nicht-absteigend. Eine Kante von einem sp¨ateren Knoten k zu einem fr¨uheren Knoten k ist dann irrelevant“, weil sie den ” ohnehin l¨angeren Weg zu k nicht verbessern kann, da ihr Gewicht nicht-negativ ist.

5.1.2 Allgemeine Graphen In Abschnitt 5.1.1 haben wir uns auf Graphen beschr¨ankt, in denen es keine negativen Kantengewichte gibt. Dies erm¨oglicht uns, dynamisch die Reihenfolge zu bestimmen, in der wir f¨ur Knoten den bis dato k¨urzesten gefundenen Weg zu dem tats¨achlich k¨urzesten Weg erkl¨aren. Wenn Kantengewichte auch negativ sein k¨onnen, funktioniert dieser Ansatz nicht. Das Verfahren, das in diesem Abschnitt vorgestellt wird, geht auf Floyd (1962) zur¨uck, wurde aber in a¨ hnlicher Form auch von Warshall (1962) vorgeschlagen. Daher wird es in der einschl¨agigen Literatur meistens als der Algorithmus von Floyd und Warshall oder Floyd-Warshall-Algorithmus bezeichnet. Der Floyd-WarshallAlgorithmus zielt darauf ab, f¨ur jedes Paar i und j von Knoten den k¨urzesten Weg

300

5 Graphentheorie

von i nach j zu ermitteln. Dabei wird dann Problem 5.1 (K¨urzester Weg in einem gerichteten Graphen) implizit gel¨ost. Wir m¨ussen allerdings eine Besonderheit beachten, die bisher nicht relevant war. Wenn Kantengewichte negativ sein k¨onnen und Kreise nicht ausgeschlossen sind, dann kann es Kreise negativer L¨ange geben wie in dem Beispiel in Abb. 5.9. Der Weg (1, 4, 5, 2, 1) ist ein Kreis negativer L¨ange.

1

3

2 Abb. 5.9 Instanz von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen)

−3

4

3

2

8

5

−4

5

3

2

1

6

Wenn es Kreise negativer L¨ange gibt, m¨ussen wir zwischen Wegen und Pfaden unterscheiden, denn es gibt Wege, die k¨urzer sind, als der k¨urzeste Pfad. Es gibt einen Weg von i nach j, der k¨urzer als der k¨urzeste Pfad von i nach j ist, wenn es einen Pfad von i nach j gibt, der u¨ ber einen Knoten k l¨auft, der in einem Kreis negativer L¨ange liegt. Wir k¨onnen dann einen beliebig kurzen Weg konstruieren, indem wir von i nach k gehen, dann von Knoten k aus beliebig oft den Kreis ablaufen, bevor wir von k nach j gehen. In dem Beispiel in Abb. 5.9 gibt es zwei Pfade von Knoten 6 nach Knoten 3. Der k¨urzere der beiden f¨uhrt lediglich u¨ ber die Kante (6, 3) und hat eine L¨ange von zwei. Der l¨angere Pfad (6, 5, 2, 3) hat eine L¨ange von f¨unf, hat aber Knoten mit dem Kreis negativer L¨ange gemein. Die Wege (6, 5, 2, 1, 4, 5, 2, 3) und (6, 5, 2, 1, 4, 5, 2, 1, 4, 5, 2, 3) haben L¨angen von drei und eins. Somit ist der Weg (6, 5, 2, 1, 4, 5, 2, 1, 4, 5, 2, 3) k¨urzer als der k¨urzeste Pfad. Durch weitere Durchl¨aufe des Kreises negativer L¨ange k¨onnen wir beliebig kurze Wege finden. Zusammenfassung: K¨urzeste Wege und k¨urzeste Pfade Wenn es in Graph G einen Kreis negativer L¨ange gibt, dann gibt es mindestens ein Paar von Knoten i und j, sodass es keinen k¨urzesten Weg von i nach j gibt. Wenn es einen Weg von i nach j gibt, der k¨urzer als der k¨urzeste Pfad von i nach j ist, dann gibt es keinen k¨urzesten Weg von i nach j. Das bedeutet, dass der k¨urzeste Weg von jedem Knoten i zu jedem anderen Knoten j nur dann bestimmt werden kann, wenn es keine Kreise negativer L¨ange gibt. In diesem Fall ist der k¨urzeste Pfad von i nach j auch ein k¨urzester Weg von i nach j. Dabei sollten wir uns vor Augen halten, dass Kreise negativer L¨ange eher selten vorkommen werden, wenn wir in dem Graph direkt einen Sachverhalt aus der Anwendung abbilden. An dieser Stelle soll noch kurz erw¨ahnt werden, dass man in einem leicht modifizierten Problem nach dem k¨urzesten Pfad von i nach j fragen k¨onnte. Ein sol-

5.1 K¨urzeste Wege (und Pfade)

301

cher Pfad existiert auch in einem Graph mit Kreisen negativer L¨ange, sofern es ¨ u¨ berhaupt einen Weg von i nach j gibt. Trotz seiner großen Ahnlichkeit zu Problem 5.1 (K¨urzester Weg in einem gerichteten Graphen) ist das modifizierte Problem bedeutend schwerer zu l¨osen und wird im Weiteren nicht behandelt. ¨ ¨ Uberblick uber das Verfahren Wir nehmen an, dass die Knoten durch die Zahlen 1, . . . , |V | benannt sind, und bestimmen in |V | Iterationen Wege von jedem Knoten i zu jedem Knoten j unter bestimmten Einschr¨ankungen. Diese Einschr¨ankungen werden dabei von Iteration zu Iteration weniger streng, sodass in der letzten Iteration ein Weg von jedem Knoten i zu jedem Knoten j ohne weitere Einschr¨ankungen bestimmt wird. Die Einschr¨ankung besteht in der Menge von Knoten, die die jeweiligen Wege (zus¨atzlich zu i und j) durchlaufen d¨urfen. In Iteration k ist diese Menge auf die Knoten 1, . . . , k beschr¨ankt. Die L¨ange des k¨urzesten Weges von i zu j, den wir in Iteration k bestimmen, bezeichnen wir mit Li, j,k . Mit ⎧ ⎪ ⎨0 wenn i = j Li, j,0 = wi, j wenn (i, j) ∈ E ⎪ ⎩ ∞ sonst initialisieren wir Wert Li, j,0 f¨ur jedes Paar von Knoten i und j mit der L¨ange eines k¨urzesten Weges von i zu j, der nicht u¨ ber weitere Knoten l¨auft. Einen solchen Weg gibt es nur, wenn es eine Kante (i, j) ∈ E gibt, dann hat er L¨ange wi, j , oder wenn i = j, dann hat er eine L¨ange von null. Diese Werte stellen den Kern eines rekursiven Zusammenhangs dar, der dann in den Iterationen k, k = 1, . . . , |V |, ausgewertet wird. In Iteration k betrachten wir die L¨ange eines Weges von i nach j, der außer u¨ ber i und j nur u¨ ber Knoten in {1, . . . , k} f¨uhrt. Dabei m¨ussen nicht zwangsl¨aufig alle Knoten in {1, . . . , k} \ {i, j} besucht werden. Solch ein Weg f¨uhrt entweder u¨ ber k oder nicht. Die erste Alternative bewerten wir mit Li,k,k−1 + Lk, j,k−1 , da wir den k¨urzesten bekannten Weg von i nach k um den k¨urzesten bekannten Weg von k nach j erg¨anzen k¨onnen, um einen Weg von i nach j u¨ ber k zu konstruieren. Der konstruierte Weg f¨uhrt nur u¨ ber Knoten in {i, j, 1, . . . , k}, denn die jeweiligen Teilwege f¨uhren außer u¨ ber i, j und k nur u¨ ber Knoten in {1, . . . , k −1}. Die zweite Alternative bewerten wir mit Li, j,k−1 , d. h., wir u¨ bernehmen den bekannten Weg, der nicht u¨ ber k l¨auft. Unter diesen beiden Alternativen w¨ahlen wir die k¨urzere, d. h., wir erhalten   Li, j,k = min Li,k,k−1 + Lk, j,k−1 , Li, j,k−1 f¨ur alle Paare von Knoten i und j und alle k = 1, . . . , |V |. Wenn es keinen Weg von i nach j nur u¨ ber Knoten in {1, . . . , k − 1} gibt, dann gilt Li, j,k−1 = ∞. Wenn es keinen Weg von i nach k nur u¨ ber Knoten in {1, . . . , k − 1} oder keinen Weg von k nach j

302

5 Graphentheorie

nur u¨ ber Knoten in {1, . . . , k − 1} gibt, dann gilt Li,k,k−1 + Lk, j,k−1 = ∞. Wir erhalten also Li, j,k = ∞, wenn es keinen Weg von i nach j nur u¨ ber Knoten in {1, . . . , k} gibt. Diese Abw¨agung wird f¨ur jedes Paar von Knoten i und j vorgenommen. Die L¨ange des k¨urzesten bekannten Weges sinkt tendenziell im Verlauf der Iterationen, d. h., wir haben Li, j,k−1 ≥ Li, j,k , da die Einschr¨ankungen f¨ur die ermittelten Wege abnehmen. Wir merken uns zus¨atzlich noch laufend den gr¨oßten Knoten k(i, j), den wir in den k¨urzesten bekannten Weg von i nach j aufgenommen haben. Dieser Wert wurde urspr¨unglich mit k(i, j) = 0 f¨ur alle Paare von Knoten i und j initialisiert. Nach |V | Iterationen endet das Verfahren mit den Werten Li, j,|V | und k(i, j) f¨ur jedes Paar von Knoten i und j. Nach Abschluss m¨ussen wir die f¨ur jedes Paar von Knoten erhaltene Information noch interpretieren. Wir sehen unmittelbar die L¨ange Li, j,|V | des k¨urzesten gefundenen Weges von i nach j und den gr¨oßten Knoten k(i, j) auf diesem Weg (oder k(i, j) = 0). Wenn Li, j,|V | < ∞, d. h. wenn wir u¨ berhaupt einen Weg von i nach j gefunden haben, wissen wir, dass der k¨urzeste gefundene Weg von i u¨ ber potentiell mehrere Knoten zu k(i, j) und dann weiter u¨ ber potentiell mehrere Knoten zu j verl¨auft (oder dass er direkt u¨ ber die Kante (i, j) f¨uhrt, wenn k(i, j) = 0). Die beiden Abschnitte von i nach k und von k nach j werden von den jeweils k¨urzesten gefundenen Wegen von i nach k und von k nach j gebildet und analog interpretiert. Salopp formuliert: Verfahren von Floyd und Warshall Wir bestimmen in Iteration k einen k¨urzesten Weg von i nach j, der nur u¨ ber Knoten in {1, . . . , k} l¨auft. Indem wir k erh¨ohen und somit den Freiheitsgrad f¨ur die Konstruktion von Wegen erh¨ohen, verk¨urzen wir schrittweise die bekannten Wege. Nach Iteration |V | erhalten wir dann die k¨urzesten gefundenen Wege (ohne Einschr¨ankung auf Teilmengen von Knoten). Das Verfahren l¨asst sich als Algorithmus 5.2 konkretisieren. Algorithmus 5.2 (Floyd-Warshall). Eingabe: Gerichteter Graph G = (V, E, w) Ausgabe: K¨urzester Weg von jedem Knoten i zu jedem Knoten j oder Information, dass keiner existiert 1. Setze Li, j,0 ← wi, j f¨ur alle (i, j) ∈ E, Li,i,0 ← 0 f¨ur alle i ∈ V , Li, j,0 ← ∞ f¨ur alle (i, j) ∈ E mit i =  j, k(i, j) ← 0 f¨ur alle i, j ∈  V und k ← 1 2. Setze Li, j,k = min Li,k,k−1 + Lk, j,k−1 , Li, j,k−1 f¨ur jedes Paar von Knoten i und j und aktualisiere ggf. k(i, j). 3. Wenn k < |V |, setze k ← k + 1 und gehe zu 2. 4. Interpretiere Li, j,|V | und k(i, j) f¨ur alle Paare von Knoten i und j. Beispiel Bevor wir das Verfahren analysieren, wollen wir es an einem Beispiel veranschaulichen. Wir wenden Algorithmus 5.2 auf die Probleminstanz in Abb. 5.10 an.

5.1 K¨urzeste Wege (und Pfade)

303 10

1

-20

40

20

50

-10

3

-10

Abb. 5.10 Instanz von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen)

2

4

-10

5

Durch scharfes Hinsehen“ k¨onnen wir erkennen, dass es keine Kreise negativer ” L¨ange gibt. Tabellen 5.2 bis 5.6 stellen den Ablauf des Verfahrens dar, indem die Werte von Li, j,0 bis Li, j,5 auf der linken Seite und die Werte von ki, j auf der rechten Seite abgebildet werden. Tabelle 5.2 Initialisierung durch Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 Li, j,0 1 2 3 4 5

1 0 ∞ 40 ∞ ∞

2 10 0 ∞ 50 ∞

3 ∞ ∞ 0 -10 ∞

4 -20 ∞ ∞ 0 -10

5 -10 ∞ 20 ∞ 0

k(i, j) 1 2 3 4 5

1 0 0 0 0 0

2 0 0 0 0 0

3 0 0 0 0 0

4 0 0 0 0 0

5 0 0 0 0 0

Wir initialisieren die Tabellen (die dargestellten Werte) wie oben besprochen und erhalten Tabelle 5.2. F¨ur alle Kanten wird deren L¨ange in die entsprechende Zelle auf der linken Seite eingetragen. Die Werte in den u¨ brigen Zellen auf der linken Seite werden mit ∞ und alle Werte auf der rechten Seite mit null initialisiert. Nach der ersten Iteration von Algorithmus 5.2 wurden einzelne k¨urzere Wege gefunden, n¨amlich von 3 nach 2 und von 3 nach 4. Dass nur Wege, die von Knoten 3 ausgehen, verbessert werden, liegt daran, dass nur von Knoten 3 eine Kante zu Knoten 1 f¨uhrt, wir in Iteration 1 nur Wege u¨ ber Knoten 1 suchen und noch keine Wege, die aus mehr als einer Kante bestehen, bekannt sind. In Iteration 2 werden keine weiteren Verbesserungen erzielt. Dies liegt daran, dass von Knoten 2 keine Kanten ausgehen und wir daher keine Wege, die u¨ ber Knoten 2 f¨uhren, konstruieren k¨onnen.

304

5 Graphentheorie

Tabelle 5.3 Werte nach erster und zweiter Iteration von Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 2 3 4 5 k(i, j) 1 2 3 4 5 Li, j,1 /Li, j,2 1 1 0 10 ∞ -20 -10 1 0 0 0 0 0 2 ∞ 0 ∞ ∞ ∞ 2 0 0 0 0 0 3 40 50 0 20 20 3 0 1 0 1 0 4 ∞ 50 -10 0 ∞ 4 0 0 0 0 0 5 ∞ ∞ ∞ -10 0 5 0 0 0 0 0

Tabelle 5.4 Werte nach dritter Iteration von Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 Li, j,3 1 2 3 4 5

1 0 ∞ 40 30 ∞

2 10 0 50 40 ∞

3 ∞ ∞ 0 -10 ∞

4 -20 ∞ 20 0 -10

5 -10 ∞ 20 10 0

k(i, j) 1 2 3 4 5

1 0 0 0 3 0

2 0 0 1 3 0

3 0 0 0 0 0

4 0 0 1 0 0

5 0 0 0 3 0

Nach der dritten Iteration von Algorithmus 5.2 wurden wiederum einzelne k¨urzere Wege gefunden, n¨amlich von 4 nach 1, von 4 nach 2 und von 4 nach 5. Tabelle 5.5 Werte nach vierter Iteration von Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 Li, j,4 1 2 3 4 5

1 0 ∞ 40 30 20

2 10 0 50 40 30

3 -30 ∞ 0 -10 -20

4 -20 ∞ 20 0 -10

5 -10 ∞ 20 10 0

k(i, j) 1 2 3 4 5

1 0 0 0 3 4

2 0 0 1 3 4

3 4 0 0 0 4

4 0 0 1 0 0

5 0 0 0 3 0

In der vierten Iteration von Algorithmus 5.2 werden wiederum einzelne k¨urzere Wege gefunden, n¨amlich von 1 nach 3, von 5 nach 1, von 5 nach 2 und von 5 nach 3. Zudem wird in dieser Iteration durch i = 5, j = 5 und k = 4 ein Kreis der L¨ange null identifiziert, denn wir sehen, dass wir von i = 5 zu k = 4 und weiter (zur¨uck) zu j = 5 gehen k¨onnen und dabei eine Strecke von null zur¨ucklegen. In Iteration 5 wird ein einzelner k¨urzerer Weg gefunden, n¨amlich der von i = 3 nach j = 4. Weiterhin werden einige neue Wege gefunden, die so lang wie die bisher k¨urzesten gefundenen sind, z. B. durch i = 1, j = 4 und k = 5. In diesen F¨allen ist aber keine Aktualisierung n¨otig. Es bleibt, die Ergebnisse zu interpretieren. In Tabelle 5.7 werden die gefundenen Wege von jedem Knoten i zu jedem Knoten j dargestellt. Wir wollen am Beispiel des Weges von 5 nach 2 erl¨autern, wie wir die Ergebnisse in Tabelle 5.6 interpretieren. Wir erkennen an der rechten Seite von Tabelle 5.6 mit Eintrag k(5, 2) = 4, dass der k¨urzeste gefundene Weg von 5 nach 2 u¨ ber Knoten 4 l¨auft und somit aus zwei Teilwegen von 5 nach 4 und von 4 nach 2 besteht. Diese

5.1 K¨urzeste Wege (und Pfade)

305

Tabelle 5.6 Werte nach f¨unfter Iteration von Algorithmus 5.2 f¨ur die Instanz in Abb. 5.10 Li, j,5 1 2 3 4 5

1 0 ∞ 40 30 20

2 10 0 50 40 30

3 -30 ∞ 0 -10 -20

4 -20 ∞ 10 0 -10

5 -10 ∞ 20 10 0

k(i, j) 1 2 3 4 5

1 0 0 0 3 4

2 0 0 1 3 4

3 4 0 0 0 4

4 0 0 5 0 0

5 0 0 0 3 0

Tabelle 5.7 K¨urzeste durch Algorithmus 5.2 gefundene Wege f¨ur die Instanz in Abb. 5.10 Wege 1 2 3 4 5

1 2 3 (1) (1,2) (1,4,3) – (2) – (3,1) (3,1,2) (3) (4,3,1) (4,3,1,2) (4,3) (5,4,3,1) (5,4,3,1,2) (5,4,3)

4 (1,4) – (3,5,4) (4) (5,4)

5 (1,5) – (3,5) (4,3,5) (5)

Teilwege m¨ussen wir jeweils auch ableiten. Der Teilweg von 5 nach 4 besteht nur aus der Kante (5, 4), denn in diesen Weg wurden keine weiteren Knoten eingef¨ugt (k(5, 4) = 0). Der Teilweg von 4 nach 2 verl¨auft u¨ ber Knoten 3, denn k(4, 2) = 3, und besteht somit wiederum aus zwei Teilwegen von 4 nach 3 und von 3 nach 2. Der Teilweg von 4 nach 3 besteht nur aus der Kante (4, 3), denn in diesen Weg wurden keine weiteren Knoten eingef¨ugt (k(4, 3) = 0). Der Teilweg von 3 nach 2 verl¨auft u¨ ber Knoten 1, denn k(3, 2) = 1, und besteht somit aus zwei Teilwegen von 3 nach 1 und von 1 nach 2. Diese Teilwege bestehen aus den einzelnen Kanten (3, 1) und (1, 2). Somit ergibt sich der gefundene Weg von 5 nach 2 als (5, 4, 3, 1, 2).

Analyse Wir k¨onnen durch scharfes Hinsehen“ erkennen, dass Algorithmus 5.2 f¨ur jedes ” Paar von Knoten in der Probleminstanz in Abb. 5.10 den k¨urzesten Weg ermittelt. Theorem 5.2 besagt, dass er dies tats¨achlich f¨ur jede Instanz von Problem 5.1 (K¨urzester Pfad in einem gerichteten Graphen) leistet, sofern es m¨oglich ist. Theorem 5.2. Algorithmus 5.2 findet einen k¨urzesten Weg von Knoten i zu Knoten j, falls es einen k¨urzesten Weg von Knoten i zu Knoten j gibt, und gibt Li, j,|V | = ∞ genau dann aus, wenn es keinen Weg von i zu j gibt. Den Beweis f¨uhren wir in Anhang C.2. Theorem 5.2 gibt uns unmittelbar Gewissheit u¨ ber die Aussagekraft der Ergebnisse von Algorithmus 5.2 f¨ur Graphen, die keine Kreise negativer L¨ange enthalten. Denn in solchen Graphen gibt es von jedem Knoten i zu jedem Knoten j entweder keinen Weg oder einen k¨urzesten Weg. Wir wissen in diesem Fall also, dass Li, j,|V | < ∞ die L¨ange eines k¨urzesten Weges von i nach j angibt und Li, j,|V | = ∞ impliziert, dass es keinen Weg von i nach j gibt.

306

5 Graphentheorie

Wenn wir aber gar nicht wissen, ob der vorliegende Graph Kreise negativer L¨ange enth¨alt, dann w¨are es sch¨on, wenn wir einen Indikator daf¨ur h¨atten, ob es welche gibt. Wenn dies der Fall ist, m¨ussen wir das Ergebnis von Algorithmus 5.2 n¨amlich vorsichtig interpretieren, denn ein ermittelter Weg von i nach j muss nicht zwangsl¨aufig ein k¨urzester Weg sein. Tats¨achlich k¨onnen wir uns auch f¨ur die Identifikation von Kreisen negativer L¨ange an dem Ergebnis von Algorithmus 5.2 orientieren, wie das folgende Theorem besagt. Theorem 5.3. In jedem Kreis negativer L¨ange gibt es mindestens einen Knoten i mit Li,i,|V | < 0. Den Beweis f¨uhren wir in Anhang C.3. Theorem 5.3 k¨onnen wir nutzen, um zu ermitteln, ob wir Li, j,|V | als k¨urzesten Weg von i und j interpretieren k¨onnen oder nicht. Wir wollen unser bisheriges Wissen kurz zusammenfassen. • Wenn es keinen Weg von i zu j gibt, dann gibt Algorithmus 5.2 als Ergebnis Li, j,|V | = ∞ aus. • Es gibt einen k¨urzesten Weg von i nach j genau dann, wenn es einen Weg von i nach j gibt, es aber keinen Kreis negativer L¨ange gibt, der von i aus erreicht werden kann und von dem aus man j erreichen kann. • In jedem Kreis negativer L¨ange gibt es mindestens einen Knoten k mit Lk,k,|V | < 0. Den Wert Lk,k,|V | < 0 k¨onnen wir als Beleg f¨ur die Existenz des Kreises negativer L¨ange sehen. • Wir k¨onnen einen Kreis C negativer L¨ange von i aus genau dann erreichen, wenn wir jeden Knoten in C von i aus erreichen k¨onnen, denn wenn wir einen Knoten des Kreises erreichen, k¨onnen wir alle erreichen, indem wir den Kreis ablaufen. • Analog k¨onnen wir j von einem Kreis C negativer L¨ange aus genau dann erreichen, wenn wir j von jedem Knoten in C aus erreichen k¨onnen. Dieses Wissen k¨onnen wir wie folgt zusammenfassen. Theorem 5.4. Die Werte Li, j,|V | und k(i, j) repr¨asentieren einen k¨urzesten Weg von i nach j genau dann, wenn Li, j,|V | = ∞ gilt und es keinen Knoten k gibt mit Lk,k,|V | < 0, Li,k,|V | = ∞ und Lk, j,|V | = ∞. Wir verzichten auf einen formalen Beweis und erl¨autern das Theorem nur kurz. Gem¨aß Theorem 5.2 belegt Li, j,|V | = ∞, dass es einen Weg von i nach j gibt. Wenn es einen Kreis negativer L¨ange gibt, dann muss es gem¨aß Theorem 5.3 einen Knoten k mit Lk,k,|V | < 0 in ihm geben. Der ganze Kreis ist genau dann von i aus erreichbar, wenn k von i aus erreichbar ist. Knoten k ist gem¨aß Theorem 5.2 von i aus genau dann erreichbar, wenn Li,k,|V | = ∞. Analog gilt, dass j von dem Kreis aus genau dann erreichbar ist, wenn Lk, j,|V | = ∞. Wir wollen die Bedeutung von Theorem 5.4 noch an einem Beispiel verdeutlichen. Wir betrachten daf¨ur die Instanz in Abb. 5.11. Durch scharfes Hinsehen“ k¨onnen wir schon einen Kreis negativer L¨ange erken” nen. Tabelle 5.8 stellt das Ergebnis von Algorithmus 5.2 dar. Das Ergebnis in Tabelle 5.8 wollen wir uns etwas genauer anschauen. Die Knoten 1 und 2 sind beide als Knoten in einem Kreis negativer L¨ange erkennbar, da L1,1,5
δ E , dann wird mindestens eine weitere Kante (n¨amlich jede Kante in E \ E  , die einen ungeraden Knoten v ∈ V mit einem unmarkierten Knoten u ∈ U verbindet und den Term αv + βu − wv,u unter

336

5 Graphentheorie

diesen Kanten minimiert) in E  aufgenommen. Letzterer Fall kann aber nur |E|mal eintreten, da keine Kante (v, u) aus E  entnommen wird (wir haben schon oben argumentiert, dass der Wert von αv + βu f¨ur keine Kante (u, v) vergr¨oßert wird). D. h., sp¨atestens nach |E| Iterationen wird entweder das Verfahren abgebrochen (da die Dualvariablen zu den einsamen Knoten in V einen Wert von null haben) oder die primale L¨osung wird modifiziert. Da aber bei Modifikation der primalen L¨osung die Kardinalit¨at des vorliegenden Matchings steigt, kann auch dies nur begrenzt h¨aufig passieren. Daher muss nach einer endlichen Anzahl von Iterationen der Fall eintreten, in dem das Verfahren abbricht, und da es nur mit einer optimalen L¨osung abbricht, k¨onnen wir folgendes Theorem festhalten. Theorem 5.8. Algorithmus 5.6 findet in endlicher Zeit eine optimale L¨osung zu Problem 5.4 (Matching maximalen Gewichts) in bipartiten Graphen.

5.3.2 Allgemeine Graphen Matchings in allgemeinen Graphen spielen h¨aufig eine Rolle, wenn es darum geht, Paare aus Elementen einer einzelnen Menge zu bilden. Ein klassisches Anwendungsbeispiel ist die Bildung von Teams bestehend aus jeweils zwei Mitarbeitern. Hierbei gibt es f¨ur jeden Mitarbeiter einen Knoten. Es gibt eine Kante zwischen zwei Knoten, wenn die beiden Mitarbeiter ein Team bilden k¨onnen. Ein Matching maximaler Kardinalit¨at w¨urde dann eine maximale Anzahl von Teams darstellen. In einem gewichteten Graphen k¨onnte das Gewicht der Kante {v, u} die Effizienz des Teams darstellen, die davon abh¨angt, wie gut sich die jeweiligen Mitarbeiter v und u in ihren F¨ahigkeiten erg¨anzen. Ein Matching mit maximalem Gewicht stellt dann eine Menge von Teams dar, sodass die erzielte Effizienz maximal ist. Wir werden im Folgenden zun¨achst Problem 5.3 (Matching maximaler Kardinalit¨at) betrachten und uns im Anschluss Problem 5.4 (Matching maximalen Gewichts) zuwenden. Wir werden auch f¨ur allgemeine Graphen das Ger¨ust in Algorithmus 5.4 auf S. 315 nutzen und uns zun¨achst u¨ berlegen, wie wir vergr¨oßernde Pfade finden k¨onnen, um Matchings maximaler Kardinalit¨at in allgemeinen Graphen zu finden. Im Anschluss werden wir analog zu Abschnitt 5.3.1 ein Verfahren betrachten, das eine primale und eine duale L¨osung simultan modifiziert, um Matchings maximalen Gewichts in allgemeinen Graphen zu ermitteln. Bei der Analyse dieser Verfahren wird uns das Verst¨andnis der Verfahren in Abschnitt 5.3.1 helfen.

5.3.2.1 Matchings maximaler Kardinalit¨at Die Suche nach vergr¨oßernden Pfaden wurde uns in Abschnitt 5.3.1 durch die Beschr¨ankung auf bipartite Graphen recht einfach gemacht. Wir konnten uns vorstellen, Pfade von einsamen Knoten in V aus voranzutreiben und dabei abwechselnd ungerade und gerade Knoten zu besuchen. Wenn sich zwei solche Pfade bei einem

5.3 Matchings

337

Knoten u ∈ U trafen, waren sie insofern gleichwertig, als dass wir beide von u aus zu einem vergr¨oßernden Pfad vervollst¨andigen konnten oder dies f¨ur beide nicht m¨oglich war. Dies begr¨undet sich durch den bipartiten Graphen, denn beide Pfade haben ungerade L¨ange (und durch die Konstruktion abwechselnd Kanten in E \ M und M). Diese Gewissheit haben wir bei allgemeinen Graphen G = (V, E) nicht und m¨ussen uns daher genau u¨ berlegen, wie wir mit der Situation, in der sich zwei Pfade treffen, umgehen. ¨ ¨ Uberblick uber das Verfahren Wir werden uns im Folgenden vorstellen, dass wir vergr¨oßernde Pfade f¨ur einen Graph G und ein vorliegendes Matching M suchen, indem wir von einsamen Knoten in V ausgehen und versuchen, durch schrittweises Erg¨anzen weiterer Kanten einen Pfad zu einem anderen einsamen Knoten in V zu finden. Wir markieren dabei Knoten, die wir schon erreicht haben und die dementsprechend als Ausgangspunkt f¨ur weitere anzuf¨ugende Kanten dienen k¨onnen. Initial markieren wir alle einsamen Knoten als ungerade. Weiterhin nummerieren wir markierte Knoten im Verlauf des Verfahrens entlang der gefundenen Pfade und bezeichnen die markierten Knoten dann entsprechend dieser Nummerierung als ungerade oder gerade. Wir werden uns zudem f¨ur jeden erreichten Knoten v merken, bei welchem einsamen Knoten der Pfad, der v erreicht, startet, und diesen als Startpunkt s(v) von v bezeichnen. Diese Vorgehensweise entspricht weitestgehend der in Algorithmus 5.5. In jedem Schritt betrachten wir einen ungeraden Knoten v und eine inzidente Kante {v, u} ∈ E \ M. Dabei unterscheiden wir drei F¨alle. 1. Wenn die Kante von v zu einem unmarkierten Knoten u f¨uhrt, dann muss dieser Knoten gepaart sein, denn sonst w¨are er markiert. Wir markieren u dann als gerade und seinen Partner als ungerade. Auch der Partner kann zuvor nicht markiert gewesen sein, denn sonst w¨are u durch den gerade beschriebenen Mechanismus schon markiert gewesen. Diese Situation ist in Abb. 5.43 dargestellt. Wie schon in Abschnitt 5.3.1 stellen wir Kanten hier mit einer Orientierung entsprechend ihrer Orientierung im Pfad dar. Gestrichelte Kanten sind in E \ M und f¨uhren von einem ungeraden Knoten zu einem geraden Knoten, w¨ahrend durchgezogene Kanten in M sind und von einem geraden Knoten zu seinem Partner f¨uhren, der als ungerade markiert wird. Zudem sind markierte Knoten mit einem schwarzen Rand dargestellt. Dabei sind ungerade Knoten weiß und gerade Knoten grau. Alle u¨ brigen, also die unmarkierten, Knoten sind ohne Rand und in grau dargestellt. Wir sehen in Abb. 5.43 den ungeraden Knoten v und den Startpunkt s(v) des Pfades, der zu v f¨uhrt. Der Pfad selber ist nicht n¨aher ausgewiesen. Es kann sein, dass s(v) = v, d. h., v ist selbst ein einsamer Knoten. Wenn dies nicht der Fall ist, dann gibt es einen Partner v von v im vorliegenden Matching, von dem aus v auf dem Pfad erreicht wurde. Knoten w und w sind zwei unmarkierte Knoten mit {w, w } ∈ M. Vor der Verl¨angerung des Pfades waren u und u ebenfalls unmarkiert. Wir haben dann den ungeraden Knoten v und die inzidente Kante

338

5 Graphentheorie u

u w

Abb. 5.43 Pfad von s(v) zu u

v

s(v)

v

w

{v, u} ∈ E \ M betrachtet, u als gerade und dessen Partner u als ungerade markiert und so den Pfad verl¨angert. 2. Wenn die Kante zu einem ungeraden Knoten u f¨uhrt, der nicht denselben Startpunkt wie v hat, d. h., wir haben s(v) = s(u), dann ist der Pfad von s(v) zu v, verl¨angert um die Kante {v, u} und den Pfad von u zu s(u), ein vergr¨oßernder Pfad. Diese Situation ist in Abb. 5.44 dargestellt. Die Orientierung der Kanten entspricht der Orientierung, in der sie in Pfade aufgenommen wurden.

Abb. 5.44 Vergr¨oßernder Pfad

s(v)

v

v

s(u)

u

u

In Abb. 5.44 sehen wir die ungeraden Knoten v und u sowie ihre Startpunkte s(v) und s(u) und die zugeh¨origen Pfade. Zun¨achst waren die Pfade nicht verbunden. Dann haben wir den ungeraden Knoten v und die inzidente Kante {v, u} ∈ E \ M betrachtet und u als ungerade markiert erkannt. Da s(v) = s(u), haben wir einen vergr¨oßernden Pfad von s(v) zu s(u) (oder umgekehrt) gefunden. 3. Wenn die Kante zu einem ungeraden Knoten u mit demselben Startpunkt f¨uhrt, d. h., wir haben s(v) = s(u), dann bilden die beiden Pfade zusammen eine Struktur, die wir Blume nennen werden. Die Blume ist die Vereinigung der Kantenmengen der Pfade zu v und zu u, erg¨anzt um die Kante {v, u}. Eine Blume besteht dann aus einem Kreis, der Bl¨ute (im Englischen Blossom“), und einem Pfad, ” dem Stiel (im Englischen Stem“), der die Bl¨ute mit s(v) = s(u) verbindet. Den ” Knoten, der sowohl Teil der Bl¨ute als auch Teil des Stiels ist, nennen wir den Ursprung der Bl¨ute. Knoten s(v) = s(u) nennen wir die Wurzel der Blume. Es ist m¨oglich, dass der Stiel eine L¨ange von null hat und somit die Wurzel der Blume auch der Ursprung der Bl¨ute ist. In jedem Fall sind sowohl die Wurzel als auch

5.3 Matchings

339

der Ursprung der Bl¨ute ungerade. Jeder Knoten in der Blume bis auf die Wurzel ist gepaart und sein Partner ist ebenfalls in der Blume. u v Stiel

s(v) s(u)

Bl¨ute

lu¨

te

w

Abb. 5.45 Blume

U

rs

pr

un

g

de rB

Wurzel

In Abb. 5.45 sehen wir die ungeraden Knoten v und u sowie ihren gemeinsamen Startpunkt s(v) = s(u) und die jeweiligen Pfade, die zu v und u f¨uhren. Die beiden Pfade verlaufen bis Knoten w, dem Ursprung der Bl¨ute, gleich. Wir haben dann den ungeraden Knoten v und die inzidente Kante {v, u} ∈ E \ M betrachtet und u als ungerade markiert erkannt. Da s(v) = s(u), haben wir einen Kreis, die Bl¨ute, gefunden. Die Blume besteht neben der Bl¨ute aus dem Stiel, dem Pfad von w zu s(v) = s(u). Eine Blume erschwert uns das Finden eines vergr¨oßernden Pfades insofern, als dass jeder Knoten in der Bl¨ute außer dem Ursprung sowohl gerade als auch ungerade sein k¨onnte (abh¨angig davon, in welcher Richtung man vom Stiel aus die Bl¨ute durchl¨auft). Edmonds (1965b) entwickelte f¨ur dieses Problem eine einfache, elegante L¨osung. Eine gefundene Bl¨ute wird geschrumpft (im Englischen to shrink“), d. h., wir modifizieren den vorliegenden Graphen, sodass alle Kno” ten in der Bl¨ute durch einen einzelnen Knoten ersetzt werden. Wenn B ⊂ V die Knoten in der Bl¨ute sind, erhalten wir also einen neuen Graphen G = (V  , E  ) mit V  = (V \ B) ∪ {b}, wobei b der neue Knoten ist, der die Bl¨ute ersetzt. Die Kantenmenge E  ergibt sich durch Kanten in G zwischen Knoten, die nicht in der Bl¨ute sind, und einer Kante zwischen b und jedem Knoten v ∈ B, der in G adjazent zu einem Knoten in B ist. Alle Markierungen von Knoten außerhalb der Bl¨ute (also in V \ B) bleiben bestehen und b selber wird als ungerade markiert (entsprechend des bereits gefundenen Pfades von s(v) zu der Bl¨ute bzw. zu der geschrumpften Bl¨ute b). Den Vorgang des Schrumpfens werden wir im Folgenden noch im Detail betrachten.

340

5 Graphentheorie

Zusammenfassung: Vergr¨oßernde Pfade und Blumen F¨ur ein vorliegendes Matching M konstruieren wir Pfade, die an einem einsamen Knoten in V starten und abwechselnd Kanten in E \ M und in M enthalten. Dabei k¨onnen wir einen vergr¨oßernden Pfad, den wir auf das vorliegende Matching anwenden, oder eine Blume finden. Eine Blume besteht aus zwei Pfaden zu ungeraden Knoten mit demselben Startpunkt und einer Kante zwischen diesen beiden ungeraden Knoten. Der Startpunkt ist die Wurzel der Blume, der Teil, in dem die beiden Pfade u¨ bereinstimmen, ist der Stiel der Blume und die u¨ brigen Kanten bilden die Bl¨ute. Wenn wir eine Blume finden, schrumpfen wir deren Bl¨ute und verringern so die Gr¨oßen des betrachteten Graphen und des betrachteten Matchings. Wir wollen uns nun intensiver mit Bl¨uten und dem Schrumpfen derselben besch¨aftigen und uns daf¨ur zun¨achst ein Beispiel anschauen. In Abb. 5.46 sehen wir einen Graphen mit den 18 Knoten 1 bis 16 sowie v und u. Kanten, die in keinem Pfad sind, sind hellgrau dargestellt. 5 B

11

u 6

1

2

3

4

v

7

12

16

15

14

10

13

9

8

Abb. 5.46 Noch eine Blume

Die Blume wird durch die Betrachtung der Kante {v, u} gefunden und besteht aus der Bl¨ute B mit Knoten 11 bis 15 sowie v und u und dem Stiel mit Knoten 1 und 2, allen ggf. zwischen 1 und 2 liegenden Knoten sowie Knoten 3, 4 und 15. Knoten 1 ist die Wurzel der Blume und Knoten 15 der Urspung der Bl¨ute. Bevor die Blume gefunden wurde, wurden neben (1, . . . , 2, 3, 4, 15, 11, u) weitere Pfade, die von Knoten 1 ausgehen und durch Knoten der Bl¨ute verlaufen, gefunden, n¨amlich (1, . . . , 2, 3, 4, 15, 14, 13, 9, 8) und (1, . . . , 2, 3, 4, 15, 14, 13, 12, v, 6, 7). Weitere Kanten in E \ M sind inzident mit Knoten in der Bl¨ute, n¨amlich {5, 11}, {5, u} und {10, 14}. Dar¨uber hinaus gibt es eine weitere Kante {7, 16} in E \ M. Alle Kan-

5.3 Matchings

341

ten im vorliegenden Matching sind also auch als durchgezogene Kanten in Pfaden eingebunden (daher sind Knoten 5, 10 und 16 einsam und als ungerade markiert). F¨ur dieses Beispiel k¨onnen wir erahnen, dass es vergr¨oßernde Pfade f¨ur G und M gibt. Knoten 16 ist einsam und somit gibt es den vergr¨oßernden Pfad (1, . . . , 2, 3, 4, 15, 14, 13, 12, v, 6, 7, 16). Wir k¨onnen drei weitere vergr¨oßernde Pfade erkennen, die bei Knoten 1 starten und bei Knoten 5 bzw. 10 enden, n¨amlich (1, . . . , 2, 3, 4, 15, 11, u, 5), (1, . . . , 2, 3, 4, 15, 14, 13, 12, v, 11, 5) und (1, . . . , 2, 3, 4, 15, 11, u, v, 12, 13, 14, 10). Wir unterstellen allerdings, dass wir keine Kenntnis dieser vergr¨oßernden Pfade haben und daher die Bl¨ute schrumpfen. Das Schrumpfen der Bl¨ute B erzeugt den Knoten b, der adjazent zu genau den Knoten in V \ B ist, die adjazent zu mindestens einem Knoten in B waren. Kanten zwischen Knoten in der Bl¨ute und Knoten außerhalb der Bl¨ute k¨onnen dabei unterschiedliche Rollen im vorliegenden Matching und gefundenen Pfaden haben. • Es kann h¨ochstens eine Kante zwischen B und V \ B geben, die im vorliegenden Matching ist. Nur der Ursprung der Bl¨ute hat keinen Partner in der Bl¨ute. Wenn er auch die Wurzel ist, hat er gar keinen Partner, ansonsten liegt sein Partner im Stiel und außerhalb der Bl¨ute. • Es kann beliebig viele Kanten in E \M zwischen B und V \B geben, die in Pfaden vorkommen. F¨ur jede solche Kante {w, w } ∈ E \ M mit w ∈ B und w ∈ B ist w der Vorg¨anger von w auf dem gefundenen Pfad von s(w ) zu w . Dabei ist s(w ) die Wurzel der Blume, denn alle Knoten in der Bl¨ute (und somit auch w ) haben denselben Startpunkt. • Es kann beliebig viele Kanten in E \ M zwischen B und V \ B geben, die nicht in Pfaden vorkommen. Wir erhalten durch Schrumpfen den Graphen G = (V  , E  ) mit V  = (V \ B) ∪ {b}, wobei b der neue Knoten ist, der die Bl¨ute ersetzt. Die Kantenmenge E  ergibt sich durch Kanten in G zwischen Knoten, die nicht in der Bl¨ute sind, und einer Kante zwischen b und jedem Knoten v ∈ B, der in G adjazent zu einem Knoten in B ist. Nach Schrumpfen der Bl¨ute betrachten wir auch ein anderes Matching M  und andere Pfade, denn einige Kanten in M oder in den Pfaden gibt es in E  gar nicht. Matching M  enth¨alt alle Kanten in M, die zwei Knoten, die nicht in B sind, verbinden. Wenn der Ursprung der Bl¨ute in M einen Partner hat, dann enth¨alt M  zus¨atzlich die Kante, die b mit diesem Partner verbindet. In jedem gefundenen Pfad werden alle Knoten in B durch den ungeraden Knoten b ersetzt. Dies erlaubt, dass alle Markierungen von Knoten in V \ B bestehen bleiben und b selber als ungerade markiert wird (entsprechend des bereits gefundenen Pfades von s(v) zu der Bl¨ute bzw. zu der geschrumpften Bl¨ute b). In Abb. 5.47 sehen wir den Graphen, den wir aus dem Graphen in Abb. 5.46 durch Schrumpfen der Bl¨ute erhalten. Die Bl¨ute B wurde durch Knoten b ersetzt und jeder u¨ brige Knoten ist durch eine Kante in E  mit b verbunden, wenn er in G adjazent zu mindestens einem Knoten in B ist. Die Kante in M zwischen dem Ursprung der Bl¨ute und seinem Partner wurde durch eine Kante in M  zwischen b und demselbem Partner ersetzt. Jeder Knoten, der auf einem Pfad durch eine Kante

342

5 Graphentheorie 5

6 7 1

2

3

4

b 16

10

9

8

Abb. 5.47 Geschrumpfte Bl¨ute

in E \ M von einem Knoten in B aus erreicht wurde, wird durch eine Kante in E  \ M  von b aus erreicht. Jeder Knoten, der zwar adjazent zu Knoten in B war, aber nicht durch einen Pfad von einem dieser Knoten aus erreicht wurde, ist adjazent zu b, wird aber nicht durch einen Pfad von b aus erreicht. Alle Markierungen von Knoten in V \ B wurden u¨ bernommen. Wir merken uns beim Schrumpfen, welche Knoten in B waren, sodass wir jede geschrumpfte Bl¨ute im Nachgang wieder aufbl¨attern k¨onnen. Wir werden von diesem Vorgang als Interpretieren einer geschrumpften Bl¨ute sprechen. Zusammenfassung: Schrumpfen und Interpretieren von Bl¨uten Beim Schrumpfen wird eine Bl¨ute B durch einen einzelnen Knoten b ersetzt. Dabei werden alle Kanten in M bzw. in E \ M zwischen Knoten in B und Knoten in V \ B durch Kanten in M  bzw. in E  \ M  zwischen b und den Knoten in V \ B ersetzt. Auch die Rollen der Kanten in Pfaden werden auf die entsprechenden Kanten u¨ bertragen. Das Interpretieren einer geschrumpften Bl¨ute ist die Umkehrung dieses Vorgangs. Um dies zur erm¨oglichen, merken wir uns beim Schrumpfen die betroffenen Knoten und Kanten. Das Schrumpfen ergibt nur dann Sinn, wenn wir mit G so weiter arbeiten k¨onnen, dass wir sinnvolle Informationen f¨ur G ableiten. Dass dies tats¨achlich der Fall ist, dr¨uckt das folgende Theorem aus. Theorem 5.9. Es gibt einen vergr¨oßernden Pfad f¨ur Graph G und Matching M  (mit geschrumpfter Bl¨ute) genau dann, wenn es einen vergr¨oßernden Pfad f¨ur G und M (mit ungeschrumpfter Bl¨ute) gibt. Wir wollen hier argumentativ nur auf eine H¨alfte von Theorem 5.9 eingehen. Wenn es uns gelingt, einen vergr¨oßernden Pfad P f¨ur G und M  zu finden, dann

5.3 Matchings

343

k¨onnen wir aus diesem einen vergr¨oßernden Pfad P f¨ur G und M konstruieren. Wir werden im Folgenden beschreiben, wie diese Konstruktion erfolgt. Um dies zu zeigen, unterscheiden wir zwei F¨alle. • Wenn P nicht durch b l¨auft, dann enth¨alt er auschließlich Kanten, die auch in E sind. Die Kanten in P , die in M  sind, sind auch in M. Daher ist P selber ein vergr¨oßernder Pfad f¨ur G und M. • Wenn P durch b l¨auft, dann ist b im Pfad durch eine Kante in E  \ M  mit einem Knoten v verbunden, denn jeder vergr¨oßernde Pfad enth¨alt mindestens eine Kante in E  \ M  und Kanten aus E  \ M  und M  wechseln sich ab. Wir konstruieren dann P wie folgt. Wir u¨ bernehmen den Abschnitt von P , der ein Ende von P mit v verbindet, ohne durch b zu laufen, direkt in P. Dieser Teil enth¨alt abwechselnd Kanten in E  \ M  und M  . Da beim Schrumpfen nur Kanten aus E oder M entfernt wurden, die inzident zu mindestens einem Knoten aus B sind, enth¨alt dieser Teil von P also auch abwechselnd Kanten in E \ M und M. Wir erg¨anzen eine Kante, die in G v mit einem Knoten in v ∈ B verbindet. Es kann mehrere solche Kanten geben. Wenn dies der Fall ist, k¨onnen wir eine dieser Kanten zuf¨allig w¨ahlen. Genauso wie {v , b} nicht in M  ist, ist {v , v } nicht in M. – Wenn v der Ursprung von B ist, dann f¨ugen wir den Stiel, also den Pfad von v zu s(v ), an den bisher konstruierten Pfad an. Wenn der Stiel u¨ berhaupt Kanten enth¨alt, ist die erste Kante in M. – Wenn v nicht der Ursprung von B ist, dann gibt es einen Pfad von v zu s(v ), der ausschließlich Kanten aus der Blume benutzt und mit einer Kante in M beginnt. Diesen f¨ugen wir an den bisher konstruierten Pfad an. Da der im letzten Schritt erg¨anzte Pfad von v zu s(v ) abwechselnd Kanten aus M und E \ M enth¨alt und an dem einsamen Knoten s(v ) endet, ist Pfad P ein vergr¨oßernder Pfad f¨ur G und M. Den zweiten oben beschriebenen Fall wollen wir anhand des Beispiels in den Abb. 5.46 und 5.47 nachvollziehen. Wir haben schon festgestellt, dass es mehrere vergr¨oßernde Pfade f¨ur G und M in Abb. 5.46 gibt. Jeder dieser Pfade hat eine Entsprechung in Abb. 5.47. Wir wollen annehmen, dass wir den vergr¨oßernden Pfad (1, . . . , 2, 3, 4, b, 6, 7, 16) f¨ur G und M  gefunden haben, und diesen nun als vergr¨oßernden Pfad f¨ur G und M interpretieren m¨ussen. In diesem Fall haben wir v = 6 mit {6, b} ∈ M  . Knoten v = 6 hat nur v als adjazenten Knoten in B in Graph G und daher erhalten wir eindeutig v = v. Knoten v = v ist nicht der Ursprung von B und somit m¨ussen wir uns u¨ berlegen, wie wir den Pfad von Knoten 16 zu v = v durch einen Pfad von v zu s(v ) = 1 vervollst¨andigen. Die erste Kante nach v muss in M sein (denn die letzte Kante vor v war in E \ M) und daher erg¨anzen wir den Pfad (v, 12, 13, 14, 15, 4, 3, 2, . . . , 1) und erhalten den vergr¨oßernden Pfad (16, 7, 6, v, 12, 13, 14, 15, 4, 3, 2, . . . , 1) f¨ur G und M. Analog k¨onnen wir die beiden anderen vergr¨oßernden Pfade (10, b, 4, 3, 2, . . . , 1) und (5, b, 4, 3, 2, . . . , 1) f¨ur G und M  interpretieren, wobei es f¨ur letzteren noch eine Besonderheit zu beachten gibt. Abh¨angig davon, ob wir v = 11 oder v = u w¨ahlen (Knoten v = 5

344

5 Graphentheorie

hat zwei adjazente Knoten in B), verl¨auft der vergr¨oßernde Pfad f¨ur G und M ab v mit dem Uhrzeigersinn oder gegen den Uhrzeigersinn in der Bl¨ute. Wir erhalten dann im ersten Fall (5, 11, u, v, 12, 13, 14, 15, 4, 3, 2, . . . , 1) und im zweiten Fall (5, u, 11, 15, 4, 3, 2, . . . , 1) als vergr¨oßernden Pfad f¨ur G und M. Wir haben uns diese H¨alfte von Theorem 5.9 genauer angeschaut, da wir durch diese Konstruktion einen vergr¨oßernden Pfad in dem geschrumpften Graph G in einen vergr¨oßernden Pfad in dem Ursprungsgraph G u¨ bersetzen k¨onnen. Dies wird uns im Rahmen des gesamten Verfahrens n¨utzen und daher wollen wir die Vorgehensweise in Algorithmus 5.7 festhalten. ¨ G und M). Algorithmus 5.7 (Vergr¨oßernder Pfad fur Eingabe: Graph G = (V, E), Matching M, Blume mit Bl¨ute B, vergr¨oßernder Pfad P f¨ur G und M  Ausgabe: Vergr¨oßernder Pfad P f¨ur G und M 1. Wenn P nicht durch b l¨auft, dann setze P ← P . STOP. 2. Identifiziere Knoten v ∈ V  , der mit einer Kante in E  \ M  in P mit b verbunden ist, und beginne P mit dem Abschnitt von P , der ein Ende von P mit v verbindet, ohne durch b zu laufen. 3. Identifiziere Knoten v ∈ B, der mit einer Kante in E \ M mit v verbunden ist, und verl¨angere P um die Kante {v , v }. 4. Identifiziere Pfad P , der in der Blume von v ∈ B zu der Wurzel f¨uhrt und dabei nicht mit einer Kante in E \ M beginnt, und verl¨angere P um diesen Pfad. STOP. Die andere H¨alfte von Theorem 5.9 besagt, dass es einen vergr¨oßernden Pfad P f¨ur G und M  gibt, wenn es einen vergr¨oßernden Pfad P f¨ur G und M gibt. Diese H¨alfte haben wir hier nicht besprochen, der vollst¨andige Beweis von Theorem 5.9 findet sich aber in Anhang C.7. Theorem 5.9 rechtfertigt dann unser Vorgehen, eine gefundene Bl¨ute durch einen einzigen Knoten zu ersetzen und mit dem geschrumpften Graphen fortzufahren, um einen vergr¨oßernden Pfad zu finden. Dies kann mehrfach passieren und dabei k¨onnen Bl¨uten sogar ineinander verschachtelt sein. Der Knoten b, der eine Bl¨ute repr¨asentiert, kann sp¨ater selber in einer Bl¨ute sein, die wiederum geschrumpft wird. Beim Schrumpfen einer Bl¨ute wird die Anzahl von Knoten immer um mindestens zwei reduziert (die kleinstm¨ogliche Bl¨ute hat drei Knoten) und daher kann dieser Schritt des Schrumpfens einer Bl¨ute nur begrenzt oft ausgef¨uhrt werden. Wenn wir (wom¨oglich nach mehrmaligem Schrumpfen von Bl¨uten) einen vergr¨oßernden Pfad gefunden haben, m¨ussen wir diesen unter Ber¨ucksichtigung der geschrumpften Bl¨uten interpretieren. Dies geschieht mittels Algorithmus 5.7. Wenn dabei ineinander verschachtelte Bl¨uten zu beachten sind, m¨ussen wir darauf achten, dass wir die geschrumpften Bl¨uten in umgekehrter Reihenfolge, in der sie geschrumpft wurden, interpretieren.

5.3 Matchings

345

Zusammenfassung: Vergr¨oßernde Pfade in geschrumpften Graphen Unser Ziel ist, einen vergr¨oßernden Pfad f¨ur G und M zu finden oder die Existenz eines solchen Pfades auszuschließen. Wenn wir bei der Konstruktion von Pfaden auf eine Bl¨ute stoßen, birgt das Komplikationen, weil die Knoten in der Bl¨ute willk¨urliche Markierungen haben (je nachdem wie der Pfad zu den Knoten durch die Bl¨ute verl¨auft). Wir schrumpfen die Bl¨ute dann zu einem einzigen Knoten und suchen einen vergr¨oßernden Pfad f¨ur den resultierenden Graphen G und das resultierende Matching M  . Dabei wissen wir wegen Theorem 5.9, dass ein solcher genau dann existiert, wenn einer f¨ur G und M existiert. Wenn wir also nach (wom¨oglich mehrmaligem) Schrumpfen keinen vergr¨oßernden Pfad finden, dann gibt es auch keinen vergr¨oßernden Pfad f¨ur G und M. Sollten wir einen vergr¨oßernden Pfad f¨ur G und M  finden, dann nutzen wir die Freiheit bei der Markierung der Knoten in der (geschrumpften) Bl¨ute, um aus diesem einen vergr¨oßernden Pfad f¨ur G und M abzuleiten. Nun haben wir alle Komponenten beisammen, um die vollst¨andige Vorgehensweise zum Finden eines vergr¨oßernden Pfades als Algorithmus 5.8 zu spezifizieren. Algorithmus 5.8 (Vergr¨oßernde Pfade in Graphen). Eingabe: Graph G = (V, E), Matching M Ausgabe: Vergr¨oßernder Pfad f¨ur G und M oder Information, dass keiner existiert 1. Setze V  ← V , E  ← E und M  ← M. 2. Markiere alle einsamen Knoten in V  als ungerade Knoten und setze s(v) ← v f¨ur jeden einsamen Knoten v ∈ V  . 3. Wenn es einen ungeraden Knoten v ∈ V  und einen nicht-markierten Knoten u ∈ V  mit {v, u} ∈ E  \ M  gibt, dann a. markiere u als gerade und den Partner u von u als ungerade, b. merke dir v als Vorg¨anger von u und u als Vorg¨anger von u , c. setze s(u) ← s(v) und s(u ) ← s(v) und d. wiederhole Schritt 3. 4. Wenn es zwei ungerade Knoten v, u ∈ V  mit {v, u} ∈ E  \ M  und s(v) = s(u) gibt, dann ist der Weg von s(v) zu s(u) ein vergr¨oßernder Pfad. Interpretiere diesen Weg unter Ber¨ucksichtigung von geschrumpften Bl¨uten mittels Algorithmus 5.7. STOP. 5. Wenn es zwei ungerade Knoten v, u ∈ V  mit {v, u} ∈ E  \ M  und s(v) = s(u) gibt, dann ist der Weg von s(v) zu s(u) eine Blume. Schrumpfe die Bl¨ute, modifiziere G und M  entsprechend und gehe zu Schritt 3. 6. Es gibt keinen vergr¨oßernden Weg. STOP. An dieser Stelle soll zun¨achst erw¨ahnt werden, dass es effizientere Vorgehensweisen gibt, wir in diesem Buch aber eine m¨oglichst einfache Variante betrachten, die der Idee von Edmonds (1965b) folgt.

346

5 Graphentheorie

Das Vorgehen in Algorithmus 5.8 orientiert sich an den drei oben besprochenen F¨allen. Wir pr¨ufen wiederholt, ob wir in Schritt 3., Schritt 4. oder Schritt 5. von einem ungeraden Knoten ausgehend einen geraden Knoten (und dessen Partner) markieren k¨onnen (Schritt 3.) oder direkt andere ungerade Knoten erreichen k¨onnen (Schritte 4. oder 5.). In Schritt 3. markieren wir einen bislang unmarkierten Knoten als gerade und dessen Partner als ungerade. Wir halten weiterhin die Informationen u¨ ber den jeweiligen Vorg¨anger auf dem Pfad und den Ausgangsknoten des Pfades fest. In Schritt 4. wird ein vergr¨oßernder Pfad f¨ur G und M  gefunden und als vergr¨oßernder Pfad f¨ur G und M interpretiert. Sobald wir einen vergr¨oßernden Pfad f¨ur G und M gefunden haben, endet das Verfahren. Wenn wir in Schritt 5. eine Blume gefunden haben, schrumpfen wir die Bl¨ute und reduzieren V  , E  und M  entsprechend. Wir fahren dann mit dem geschrumpften Graphen fort. Wenn keine Bedingung f¨ur die Ausf¨uhrung eines der drei Schritte erf¨ullt ist, dann k¨onnen wir keinen bisher gefundenen Pfad verl¨angern und es gibt keinen vergr¨oßernden Pfad und das Verfahren endet. Dies ist nicht offensichtlich und wir sollten daf¨ur im Folgenden noch argumentieren.

Beispiel Zun¨achst wollen wir uns allerdings ein Beispiel anschauen. In den Abb. 5.48 bis 5.60 wird dargestellt, wie wir in zwei Schritten jeweils Algorithmus 5.8 anwenden, um ein gegebenes Matching um eine Kante zu vergr¨oßern. Abb. 5.48 stellt den vollst¨andigen Graph G = (V, E) mit den schwarz hervorgehobenen Kanten von Matching M dar. 1

2 3

12

11

4

10

5

9 Abb. 5.48 Graph G und Matching M

6 8

7

Wir haben in Algorithmus 5.8 nicht festgelegt, in welcher Reihenfolge wir die Kanten des Graphen untersuchen. Der Ablauf ist daher nicht eindeutig. Initial werden alle einsamen Knoten, also die Knoten 1 bis 6, als ungerade markiert. Wir betrachten Kante {1, 12} ∈ M zuerst, stellen fest, dass Knoten 1 ungerade und Knoten 12 nicht markiert ist und markieren daher Knoten 12 als gerade und dessen Partner,

5.3 Matchings

347

Knoten 11, als ungerade. Als n¨achstes betrachten wir Kante {10, 11} ∈ M, stellen fest, dass Knoten 11 ungerade und Knoten 10 nicht markiert ist, und markieren daher Knoten 10 als gerade und dessen Partner, Knoten 9, als ungerade. Kante {9, 11} verbindet nun zwei ungerade Knoten. Da s(9) = s(11) = 1, haben wir eine Blume gefunden. Die Blume besteht aus dem Stiel (1, 12, 11) und der Bl¨ute {9, 10, 11}, dargestellt in Abb. 5.49. 1

2 3

12

11

4

10

5

9

6 8

Abb. 5.49 Erste Blume

7

Wir schrumpfen die Bl¨ute {9, 10, 11} zu einem Knoten b. Die Kanten {4, 9}, {5, 10}, {7, 11}, {8, 11} und {11, 12} des Ausgangsgraphen werden durch die Kanten {4, b}, {5, b}, {7, b}, {8, b} und {12, b} ersetzt. Der geschrumpfte Graph G und das entsprechende Matching M  = {{7, 8}, {12, b}} sind in Abb. 5.50 dargestellt. 1

2 3

12

4

5

b

6 Abb. 5.50 Geschrumpfter Graph G und Matching M 

8

7

Wir u¨ bernehmen die Markierungen der Knoten aus G in G und markieren b als ungerade. Die einzige Kante in G, die auf einem Weg benutzt wurde und einen Knoten in der Bl¨ute mit einem Knoten, der nicht in der Bl¨ute ist, verbindet, ist die Kante {11, 12}. Diese wird durch die Kante {12, b} zwischen geradem Knoten 12

348

5 Graphentheorie

und ungeradem Knoten b ersetzt. Alle Markierungen und Rollen der Kanten sind in Abb. 5.51 dargestellt. 1

2 3

12

4

5

b

6

¨ Abb. 5.51 Ubernommene Markierungen und Pfade f¨ur G

8

7

Wir fahren dann mit dem geschrumpften Graphen fort, betrachten die Kante ¨ {8, b} und markieren Knoten 8 als gerade und Knoten 7 als ungerade. Uber Kante {7, b} finden wir eine weitere Blume, bestehend aus dem Stiel (1, 12, b) und der Bl¨ute {7, 8, b}, dargestellt in Abb. 5.52. 1

2 3

12

4

5

b

6 Abb. 5.52 Zweite Blume

8

7

Wir schrumpfen wiederum die Bl¨ute, erhalten den neuen Knoten b und markieren diesen als ungerade und erhalten Graph G , siehe Abb. 5.53. Das entsprechende Matching ist M  = {{12, b }}. Wir u¨ bernehmen die Markierungen der Knoten aus G in G und markieren b als ungerade. Die einzige Kante in G, die auf einem Weg benutzt wurde und einen Knoten in der Bl¨ute mit einem Knoten, der nicht in der Bl¨ute ist, verbindet, ist die Kante {12, b}. Diese wird durch die Kante {12, b } zwischen geradem Knoten 12

5.3 Matchings

349 1

2 3

12

4

5 Abb. 5.53 Geschrumpfter Graph G und Matching M 

b

6

und ungeradem Knoten b ersetzt. Alle Markierungen und Rollen der Kanten sind in Abb. 5.54 dargestellt. 1 12

2 3

4

5 ¨ Abb. 5.54 Ubernommene Markierungen und Pfade f¨ur G

b

6

Wir k¨onnen nun leicht einen vergr¨oßernden Pfad finden. Es kommen mehrere in Frage; wir nehmen an, dass wir Kante {3, b } zuerst betrachten und feststellen, dass sowohl Knoten 3 als auch Knoten b ungerade sind und dass zudem 1 = s(b ) = s(3) = 3 gilt. Wir haben somit einen vergr¨oßernden Pfad (1, 12, b , 3) f¨ur G und M  gefunden, siehe Abb. 5.55, und m¨ussen diesen nur noch als vergr¨oßernden Pfad f¨ur G und M interpretieren. Hierf¨ur betrachten wir zun¨achst die geschrumpfte Bl¨ute {7, 8, b}, da diese zuletzt geschrumpft wurde. Die Kante {3, b } ist nicht in M  und entspricht der Kante {3, 8} in G (die nicht in M  ist). Wir haben also v = 3 und v = 8. Der vergr¨oßernde Pfad f¨ur G und M  ergibt sich dann aus den beiden Teilpfaden von Knoten s(v ) = 3 zu Knoten 8 und von Knoten 8 zu der Wurzel der Blume, also Knoten 1. Die erste Kante in dem zweiten Teilpfad muss eine Kante in M  sein (da {3, 8} ∈ M  ) und somit erhalten wir (3, 8, 7, b, 12, 1) als vergr¨oßernden Pfad f¨ur G und M  . Diesen m¨ussen wir wiederum als vergr¨oßernden Pfad f¨ur G und M interpretieren. Hierf¨ur betrachten wir die geschrumpfte Bl¨ute {9, 10, 11}. Die Kante {7, b} ist nicht in M  und entspricht der Kante {7, 11} in G. Wir haben hier also v = 7 und

350

5 Graphentheorie 1

2 3

12

4

5 Abb. 5.55 Vergr¨oßernder Pfad f¨ur G und M 

b

6

v = 11 und somit den speziellen Fall, in dem der einzige Knoten der Bl¨ute, durch den der vergr¨oßernde Pfad verl¨auft, der Ursprung der Bl¨ute ist. Der vergr¨oßernde Pfad f¨ur G und M ergibt sich dann aus den beiden Teilpfaden von Knoten 3 zu Knoten v = 11 und von Knoten 11 zu der Wurzel der Blume, also Knoten 1. Wir erhalten daher (3, 8, 7, 11, 12, 1) als vergr¨oßernden Pfad f¨ur G und M. Der vergr¨oßernde Pfad f¨ur G und M ist in Abb. 5.56 dargestellt. 1

2 3

12

11

4

10

5

9 Abb. 5.56 Vergr¨oßernder Pfad f¨ur G und M

6 8

7

Wir wenden diesen Pfad auf Matching M an und erhalten das Matching M  in Abb. 5.57. Wir nutzen erneut Algorithmus 5.8, um einen vergr¨oßernden Pfad f¨ur G und M  zu finden. Die einsamen Knoten 2 und 4 bis 6 werden initial als ungerade markiert. In diesem Durchlauf finden wir keine Blumen und k¨urzen die Beschreibung daher ab. Wir betrachten zun¨achst Kante {2, 8} und markieren Knoten 8 als gerade und dessen Partner, Knoten 3, als ungerade. Als n¨achstes wird Kante {4, 9} betrachtet und Knoten 9 als gerade und dessen Partner, Knoten 10, als ungerade markiert. Dann finden wir durch die Kante {5, 10} den vergr¨oßernden Pfad (4, 9, 10, 5), siehe Abb. 5.58.

5.3 Matchings

351 1

2 3

12

11

4

10

5

9 Abb. 5.57 Matching M 

6 8

7

1

2 3

12

11

4

10

5

9

Abb. 5.58 Gefundene Pfade und Markierungen f¨ur G und M 

6 8

7

Wir wenden diesen Pfad auf Matching M  an und erhalten das Matching M ∗ in Abb. 5.59. 1

2 3

12

11

4

10

5

9 Abb. 5.59 Matching M ∗

6 8

7

352

5 Graphentheorie

Wir nutzen erneut Algorithmus 5.8, um einen vergr¨oßernden Pfad f¨ur G und M ∗ zu finden. Es wird allerdings keiner gefunden. Abb. 5.60 stellt die gefundenen Pfade und vorgenommenen Markierungen der Knoten dar. 1

2 3

12

Abb. 5.60 Gefundene Pfade und Markierungen f¨ur G und M∗

11

4

10

5

9

6 8

7

Die gepunktete Kante {8, 11} stellt dar, dass Knoten 8 auch von Knoten 11 (statt von Knoten 2 wie abgebildet) aus erreicht werden kann. An den Markierungen a¨ ndert dies nichts. Da es keinen vergr¨oßernden Pfad f¨ur G und M ∗ gibt, hat Matching M ∗ gem¨aß Theorem 5.6 auf S. 315 maximale Kardinalit¨at. In Graph G gibt es also kein perfektes Matching.

Analyse An dieser Stelle ist noch offen, ob wir durch Anwendung von Algorithmus 5.8 Gewissheit haben, dass es tats¨achlich keinen vergr¨oßernden Pfad f¨ur G und M ∗ gibt. Das folgende Theorem besagt, dass Algorithmus 5.8 tats¨achlich einen vergr¨oßernden Pfad f¨ur den vorliegenden Graph und das vorliegende Matching findet, falls es einen gibt. Theorem 5.10. Wenn Algorithmus 5.8 keinen vergr¨oßernden Pfad f¨ur Graph G und Matching M findet, dann gibt es keinen. Den Beweis f¨uhren wir in Anhang C.8. Theorem 5.10 liefert Gewissheit, dass Algorithmus 5.4 ein Matching maximaler Kardinalit¨at liefert, wenn wir Algorithmus 5.8 in Schritt 2. verwenden, um zu pr¨ufen, ob es einen vergr¨oßernden Pfad f¨ur den vorliegenden Graph und das aktuelle Matching gibt, und ggf. einen zu finden.

5.3.2.2 Matchings maximalen Gewichts Nun wollen wir uns Problem 5.4 (Matching maximalen Gewichts) zuwenden. Der Ansatz weist starke Analogien zu dem f¨ur bipartite Graphen in Abschnitt 5.3.1.2

5.3 Matchings

353

auf. Wir repr¨asentieren Problem 5.4 (Matching maximalen Gewichts) in einem MO und entwickeln das entsprechende duale MO. Das Verfahren modifiziert dann sukzessiv eine primale zul¨assige L¨osung und eine duale zul¨assige L¨osung so, dass sie abschließend beide (f¨ur das jeweilige MO) optimal sind. Zun¨achst stellen wir das primale MO vor. Modell 5.3 (Matching maximalen Gewichts (Problem 5.4)). max



wv,u · xv,u

(5.9)

{v,u}∈E,v 0, gepaart wird oder durch Modifikation der dualen L¨osung jeder einsame Knoten v einen Dualvariablenwert von αv = 0 erh¨alt. Bei der Modifikation der dualen L¨osung tritt mindestens einer der folgenden F¨alle ein (wiederum durch Wahl von δ ). • Wenn δ = δ V , dann ist nach Modifikation der dualen L¨osung auch Bedingung 2. erf¨ullt und das Verfahren endet mit der optimalen L¨osung. Die Argumentation

5.3 Matchings

371

ist analog zu der in Abschnitt 5.3.1.2. Die Dualvariablen zu einsamen Knoten in V haben identische Werte und die Dualvariable keines anderen Knoten in V hat einen niedrigeren Wert. Daher werden in diesem Fall alle Dualvariablenwerte von einsamen Knoten auf  null reduziert. Somit wird Bedingung 2. erf¨ullt.  • Wenn δ = min δ1E , δ2E , dann wird mindestens eine weitere Kante verf¨ugbar und wir k¨onnen einen der bisher gefundenen Pfade um diese Kante verl¨angern (und ggf. eine Bl¨ute oder einen vergr¨oßernden Pfad finden). Dieser Fall kann in einer Phase h¨ochstens |E|-mal eintreten, denn jede Kante wird in jeder Phase h¨ochstens einmal verf¨ugbar. Grunds¨atzlich ist es zwar m¨oglich, dass eine Kante aus E  entnommen wird, dies passiert aber nicht in der Phase, in der sie aufgenommen wurde. Stattdessen wird eine Kante {v, u} unmittelbar nachdem sie verf¨ugbar wurde in einen Pfad oder in eine Bl¨ute eingebunden (oder es wird ein anderer vergr¨oßernder Pfad ohne diese Kante gefunden, was die Phase beendet). Wenn {v, u} in einem Pfad, aber in keiner Bl¨ute ist, dann a¨ ndert sich Wv,u nicht, da einer der Knoten gerade und der andere ungerade ist. Da Pfade w¨ahrend einer Phase erhalten bleiben (ggf. werden Teile des Pfades als Bestandteil einer Bl¨ute geschrumpft), bleibt {v, u} w¨ahrend der gesamten Phase in einem Pfad oder wird als Bestandteil einer Bl¨ute geschrumpft. Wenn {v, u} in einer Bl¨ute ist, wird Wv,u ebenfalls nicht modifiziert (wie wir schon oben erschlossen haben). Bl¨uten werden nicht in der Phase, in der sie geschrumpft werden, interpretiert, denn nur gerade Bl¨uten werden interpretiert und eine geschrumpfte Bl¨ute ist in der Phase, in der sie geschrumpft wird, ungerade. Da der Wert Wv,u f¨ur jede Kante {v, u} in einem gefundenen Pfad oder einer geschrumpften Bl¨ute nicht modifiziert wird (s. o.), wird {v, u} also nicht in derselben Phase wieder aus E  entnommen und kann somit nur einmal pro Phase in E  aufgenommen werden. • Wenn δ = δ B , dann erh¨alt die Dualvariable zu mindestens einer geraden geschrumpfte Bl¨ute den Wert null. Wir interpretieren solche Bl¨uten dann, d. h., wir ersetzen den Knoten, der die Bl¨ute repr¨asentiert, durch die Bl¨ute mit den entsprechenden Kanten. Dieser Fall kann in einer Phase h¨ochstens |V |/2-mal eintreten, denn nur gerade Bl¨uten werden interpretiert. Da alle in der aktuellen Phase geschrumpften Bl¨uten ungerade sind, k¨onnen nur die schon in vorherigen Phasen geschrumpften Bl¨uten interpretiert werden. Da der zweite und dritte Fall jeweils nur endlich oft eintreten k¨onnen, muss entweder, ggf. nach mehrmaligem Eintreten des zweiten Falls, ein vergr¨oßernder Pfad gefunden werden, was die Phase beendet, oder der erste Fall eintreten, was nicht nur die Phase, sondern auch das Verfahren beendet.

372

5 Graphentheorie

Zusammenfassung: Phasen sind endlich Eine Phase endet mit einer Modifikation des vorliegenden Matchings oder durch Erf¨ullung von Bedingung 2. W¨ahrend einer Phase wird die duale L¨osung wom¨oglich mehrfach modifiziert (was zur Erf¨ullung von Bedingung 2. f¨uhren kann). Sp¨atestens wenn alle in vorherigen Phasen geschrumpften Bl¨uten interpretiert wurden und alle Kanten verf¨ugbar gemacht wurden (was jeweils nur endlich oft passieren kann), muss ein vergr¨oßernder Pfad gefunden werden oder bei der folgenden Modifikation der dualen L¨osung δ = δ V gelten. In beiden F¨allen endet die Phase. Nun haben wir uns alles erschlossen, was wir ben¨otigen, um f¨ur die Korrektheit des Verfahrens zu argumentieren. Jede Phase, die nicht zur Erf¨ullung von Bedingung 2. f¨uhrt, f¨uhrt dazu, dass die Kardinalit¨at des vorliegenden Matchings erh¨oht wird. Da diese niemals verringert wird, kann dieser Fall also wiederum nur |V |/2-mal eintreten. Wir erhalten also letztlich eine primale L¨osung und eine duale L¨osung, die die Bedingungen 1., 2. und 3. erf¨ullen und somit jeweils optimal f¨ur Modell 5.3 und Modell 5.4 sind. Wir haben zuvor schon betont, dass wir aber gar nicht sicher wissen, ob Modell 5.3 tats¨achlich Problem 5.4 (Matching maximalen Gewichts) oder ein relaxiertes Problem repr¨asentiert. In Kenntnis des Verfahrens sehen wir aber, dass die einzigen primalen L¨osungen, die betrachtet werden, Matchings sind. Trotz dieser Einschr¨ankung (im Vergleich zum LR von Modell 5.3) k¨onnen wir argumentieren, dass wir Optimalit¨at erreichen. Somit k¨onnen wir nun auch schließen, dass Modell 5.3 mindestens eine ganzzahlige optimale L¨osung hat. Wir fassen unsere Erkenntnisse im folgenden Theorem zusammen. Theorem 5.11. Algorithmus 5.9 findet in endlicher Zeit eine optimale L¨osung zu Problem 5.4 (Matching maximalen Gewichts). Wir wollen hier nicht weiter darauf eingehen, aber Algorithmus 5.9 ermittelt nicht nur in endlicher Zeit eine optimale L¨osung, sondern sogar in polynomieller Zeit. Wir haben bisher in diesem Buch der Laufzeitkomplexit¨at von Verfahren keine besondere Bedeutung geschenkt, aber hier sollte betont werden, dass Algorithmus 5.9 (und effizientere Ausgestaltungen desselben) als Meilenstein bei der Entwicklung sogenannter effizienter Verfahren gilt.

¨ 5.4 Flusse In diesem Abschnitt soll es um die Bestimmung von Fl¨ussen gehen. Zun¨achst wollen wir spezifizieren, was Fl¨usse u¨ berhaupt sind. Dabei m¨ussen wir etwas weiter ausholen und die zugrunde liegende Graphenstruktur definieren.

5.4 Fl¨usse

373

Definition 5.7 (Flussnetzwerk). Ein Flussnetzwerk (V, E, (w, c), s,t) ist ein gerichteter, (ggf. doppelt) gewichteter Graph G = (V, E, (w, c)) mit wi, j ≥ 0 f¨ur jede Kante (i, j) ∈ E, eine ausgewiesene Quelle s ∈ V und eine ausgewiesene Senke t ∈ V , s = t. Die Notation G = (V, E, (w, c)) haben wir in Abschnitt 2.2 nicht eingef¨uhrt. Sie soll hier daf¨ur stehen, dass sowohl (V, E, w) als auch (V, E, c) gewichtete Graphen sind, d. h., jeder Kante in E werden zwei numerische Werte zugeordnet. Wir interpretieren dabei wi, j als die Kapazit¨at einer Kante (i, j) ∈ E und ci, j als Kosten einer Kante (i, j) ∈ E. Nur f¨ur das in Abschnitt 5.4.2 behandelte Problem sind die Kosten relevant. Wir werden dieses Gewicht daher in Abschnitt 5.4.1 nicht darstellen und betrachten dort einen (einfach) gewichteten Graph. Ein Flussnetzwerk stellt eine Infrastruktur aus Transportrelationen dar. Eine gerichtete Kante (i, j) ∈ E repr¨asentiert dabei die M¨oglichkeit, Mengen von i nach j zu versenden. Die Kapazit¨at einer Kante stellt die H¨ochstmenge, die u¨ ber die Kante versendet werden kann, dar und die Kosten einer Kante stellen die Kosten pro u¨ ber diese Kante versendete Einheit dar. Abb. 5.78 stellt ein Flussnetzwerk F dar. An jeder Kante (i, j) ∈ E sind Kapazit¨at und Kosten als Tupel (wi, j , ci, j ) abgetragen. (2, 3) 1

(2, 2)

(3, 1)

2

(1, 1)

(3, 9)

(1, 2)

s

t (3, 6)

(5, 6)

3

(3, 2)

(5, 2)

4

Abb. 5.78 Flussnetzwerk F

Definition 5.8 (Fluss). Ein Fluss in einem Flussnetzwerk (V, E, (w, c), s,t) ist eine Funktion f , die jeder Kante (i, j) ∈ E einen numerischen Wert fi, j zuordnet, sodass 1. 0 ≤ fi, j ≤ wi, j f¨ur jede Kante (i, j) ∈ E und 2. ∑( j,i)∈E f j,i = ∑(i, j)∈E fi, j f¨ur jeden Knoten i ∈ V \ {s,t}. Wir k¨onnen einen Fluss als Transportmenge f¨ur jede Kante des Flussnetzwerkes interpretieren. Dabei darf u¨ ber keine Kante mehr als ihre Kapazit¨at fließen und alle Knoten außer s und t dienen ausschließlich zur Weiterleitung von eingehenden Transportmengen. D. h., von einem Knoten in V \ {s,t} aus wird genau die

374

5 Graphentheorie

Menge versendet (wom¨oglich u¨ ber mehrere Kanten), die bei dem Knoten eingeht (wom¨oglich u¨ ber mehrere Kanten). F¨ur die Knoten s und t hingegen gilt diese Einschr¨ankung nicht und daher kann von s mehr versendet werden als bei s eingeht. ¨ Wenn dies der Fall ist, muss dieser Uberschuss bei t aufgefangen werden, denn alle anderen Knoten k¨onnen ja nur weiterleiten. D. h., bei der Senke t versickert“ die ” Menge, die bei der Quelle s entsteht. Wir erweitern die Notation in Abb. 5.78 zur Darstellung eines Flusses und tragen an jeder Kante (i, j) ∈ E in Abb. 5.79 das Tripel ( fi, j , wi, j , ci, j ) ab. (0, 2, 3) 1

(1, 2, 2)

(2, 3, 1)

2

(1, 1, 1)

(0, 3, 9)

(0, 1, 2)

s

t (1, 3, 6)

(2, 5, 6)

3

(3, 3, 2)

(4, 5, 2)

4

Abb. 5.79 Fluss in Flussnetzwerk F in Abb. 5.78

Die bei Knoten 1 eingehende Gesamtmenge wird auf die zwei ausgehende Kanten (1, 2) und (1, 4) verteilt. Analog werden bei Knoten 3 die Mengen, die u¨ ber die Kanten (2, 3) und (s, 3) eingehen, geb¨undelt und u¨ ber die einzelne ausgehende Kante (3, 4) weitergeleitet. Wir k¨onnen leicht feststellen, dass keine Kapazit¨atsbeschr¨ankung verletzt wird und an den Knoten 1, 2, 3 und 4 dieselbe Menge ankommt, wie abfließt. Definition 5.9 (Wert eines Flusses). Der Wert v( f ) eines Flusses f in einem Flussnetzwerk (V, E, (w, c), s,t) ist v( f ) = ∑(s, j)∈E fs, j − ∑( j,s)∈E f j,s = ∑( j,t)∈E f j,t − ∑(t, j)∈E ft, j . Der Wert eines Flusses beschreibt die Menge, die von s (nicht zwangsl¨aufig direkt) nach t gesendet wird. Da alle Knoten außer s und t nur weiterleiten, muss ¨ ein Uberschuss an Versand von s, d. h. ∑(s, j)∈E fs, j − ∑( j,s)∈E f j,s > 0, zwangsl¨aufig ¨ zu einem Uberschuss an Empfang bei t, d. h. ∑( j,t)∈E f j,t − ∑(t, j)∈E ft, j > 0, f¨uhren. Nach Definition 5.9 kann ein Fluss einen negativen Wert haben, n¨amlich dann, wenn ¨ t einen Uberschuss an Versand hat. Der Fluss in Abb. 5.79 hat einen Wert von vier. In dem zugrunde liegenden Flussnetzwerk gibt es keinen Fluss mit negativem Wert,

5.4 Fl¨usse

375

was wir leicht daran erkennen, dass s bzw. t keine eingehenden bzw. ausgehenden Kanten hat. Definition 5.10 (Kosten eines Flusses). Die Kosten c( f ) eines Flusses f in einem Flussnetzwerk (V, E, (w, c), s,t) betragen c( f ) = ∑(i, j)∈E ci, j · fi, j . Die Kosten eines Flusses ergeben sich als die Summe der auf den einzelnen Kanten entstehenden Kosten. Die Kosten des Flusses in Abb. 5.79 sind 37. Zusammenfassung: Flussnetzwerke und Fl¨usse Ein Flussnetzwerk ist ein gerichteter Graph, der ein Transportnetzwerk abbildet. Die Kanten stellen dabei Transportwege zwischen Orten dar und haben Kapazit¨aten und ggf. Kosten. Es gibt eine Quelle und eine Senke, alle u¨ brigen Knoten dienen lediglich der Weiterleitung von empfangenen Transportmengen. Ein Fluss ist eine Zuordnung von Transportmengen zu jeder Kante, sodass Kapazit¨aten nicht u¨ berschritten werden und Transportmengen nur an der Quelle oder Senke entstehen oder verschwinden. Der Wert eines Flusses ist die Menge, die insgesamt von der Quelle zur Senke transportiert wird. Die Kosten eines Flusses sind die insgesamt durch die Transportmengen entstehenden Kosten auf den Kanten. Bevor wir uns mit konkreten Problemen und Verfahren besch¨aftigen, wollen wir ein Konzept einf¨uhren, das fundamental f¨ur die Verfahren in den Abschnitten 5.4.1 und 5.4.2 ist. Ein wertsteigernder Pfad (im Englischen Augmenting Path“) hilft ” uns, einen bestehenden Fluss f in einen Fluss f  mit h¨oherem Wert, d. h. v( f  ) > v( f ), zu transformieren. Ein wertsteigernder Pfad ist nicht zwangsl¨aufig ein Pfad in dem vorliegenden Flussnetzwerk, sondern in einem Hilfsgraph, dem Residualgraph, den wir f¨ur ein vorliegendes Flussnetzwerk F und einen Fluss f in diesem Flussnetzwerk konstruieren. In diesem Residualgraph gibt es sogenannte Vorw¨artskanten und R¨uckw¨artskanten. Diese repr¨asentieren Kanten in F, auf denen die Transportmenge in f vergr¨oßert bzw. verringert werden kann. Die beiden Mengen bezeichnen wir mit E v bzw. E r . Vorw¨artskante (i, j)v ist in E v , wenn (i, j) ∈ E und wi, j − fi, j > 0, d. h. wenn es Potential gibt, die Transportmenge auf dieser Kante zu vergr¨oßern. R¨uckw¨artskante (i, j)r ist in E r , wenn ( j, i) ∈ E und f j,i > 0, d. h. wenn es Potential gibt, die Transportmenge auf ( j, i) zu verringern. Die Entsprechung von ( j, i) ∈ E im Residualgraph in Form einer R¨uckw¨artskante hat also eine andere Orientierung als ( j, i).

376

5 Graphentheorie

Definition 5.11 (Residualgraph). Ein Residualgraph Gr (F, f ) f¨ur ein Flussnetzwerk F = (V, E, (w, c), s,t) und Fluss f in F ist ein gerichteter und (ggf. doppelt) gewichteter Graph Gr (F, f ) = (V, E  , (w , c )), wobei • (i, j) ∈ E  mit Gewichten (wi, j , ci, j ) = (wi, j − fi, j , ci, j ), wenn (i, j)v ∈ E v und (i, j)r ∈ E r , • (i, j) ∈ E  mit Gewichten (wi, j , ci, j ) = ( f j,i , −c j,i ), wenn (i, j)r ∈ E r und (i, j)v ∈ E v, • (i, j) ∈ E  mit Gewichten (wi, j , ci, j ) = (wi, j − fi, j , ci, j ), wenn (i, j)v ∈ E v und (i, j)r ∈ E r und ci, j ≤ −c j,i , und • (i, j) ∈ E  mit Gewichten (wi, j , ci, j ) = ( f j,i , −c j,i ), wenn (i, j)r ∈ E r und (i, j)v ∈ E v und ci, j > −c j,i . Wir wollen von dem ersten Gewicht einer Kante im Residulagraph als ihr Potential sprechen. Das zweite Gewicht bezeichnen wir die Kosten der Kante. Definition 5.11 wirkt recht kompliziert. Deshalb wollen wir sie n¨aher erl¨autern und unterscheiden dabei drei F¨alle, von denen der letzte die beiden letzten Punkte in der Definition abdeckt. • Wenn es Vorw¨artskante (i, j)v in E v , aber keine R¨uckw¨artskante (i, j)r in E r gibt, dann hat Kante (i, j) ∈ E  relevante Attribute, die Eigenschaften der Vorw¨artskante beschreiben. Das Potential der Kante beschreibt, um wieviel die Transportmenge auf der Kante (i, j) in Fluss f vergr¨oßert werden kann, n¨amlich um wi, j − fi, j . Die durch eine Vergr¨oßerung der Transportmenge entstehenden Kosten betragen ci, j pro Einheit. • Wenn es R¨uckw¨artskante (i, j)r in E r , aber keine Vorw¨artskante (i, j)v in E v gibt, dann hat Kante (i, j) ∈ E  relevante Attribute, die Eigenschaften der R¨uckw¨artskante beschreiben. Das Potential der Kante beschreibt, um wieviel die Transportmenge auf der Kante ( j, i) in Fluss f verringert werden kann, n¨amlich um f j,i . Die durch eine Verringerung der Transportmenge entstehenden Kosten betragen −c j,i pro Einheit, d. h. wir verringern die Kosten falls c j,i > 0. • Wenn es sowohl Vorw¨artskante (i, j)v in E v als auch R¨uckw¨artskante (i, j)r in E r gibt, dann hat Kante (i, j) ∈ E  die Attribute der Kante mit niedrigeren Kosten pro Einheit der assoziierten Ver¨anderung (Vergr¨oßerung der Transportmenge zu Kosten von ci, j f¨ur (i, j)v und Verringerung der Transportmenge zu Kosten von −c j,i f¨ur (i, j)r ). Diese etwas umst¨andlich wirkende Definition erlaubt ein einheitliches Verst¨andnis eines Residualgraphen in den Abschnitten 5.4.1 und 5.4.2. Im Fall eines einfach gewichteten Flussnetzwerkes F = (V, E, w, s,t) vereinfacht sich die Definition, da die Kosten der Kanten (i, j)v ∈ E v und (i, j)r ∈ E r nicht gegeneinander abgewogen werden m¨ussen. Wir werden sp¨ater sehen, dass wir in diesem Fall einfach immer die relevanten Attribute von (i, j)v ∈ E v u¨ bernehmen, wenn es Vorw¨artskante (i, j)v gibt (dies ist in Einklang mit Definition 5.11). Abb. 5.80 stellt den Residualgraph Gr (F, f ) f¨ur Flussnetzwerk F und Fluss f in Abb. 5.79 dar. Hier treten die drei oben erl¨auterten F¨alle auf.

5.4 Fl¨usse

377 (1,-2) 1

(1,2)

2

(2,-1) (1,-1)

(1,1) s

(3,9)

(1,2)

(4,-2)

t

(1,-6)

(2,-6) (2,6) (3,6)

(1,2) 3

(3,-2)

4

Abb. 5.80 Residualgraph Gr (F, f ) f¨ur F und f in Abb. 5.79

• Kante (3, 1) in F hat eine Entsprechung in Gr (F, f ) mit gleicher Orientierung und Gewichten (w3,1 , c3,1 ) = (w3,1 − f3,1 , c3,1 ) = (1, 2), da es Vorw¨artskante (3, 1)v (wegen f3,1 < w3,1 ), aber nicht R¨uckw¨artskante (3, 1)r gibt (wegen f3,1 = 0). • Kante (2, 3) in F hat eine Entsprechung in Gr (F, f ) mit umgekehrter Orientierung und Gewichten (w3,2 , c3,2 ) = ( f2,3 , −c2,3 ) = (1, −1), da es keine Vorw¨artskante (2, 3)v (wegen f2,3 = w2,3 ), aber R¨uckw¨artskante (2, 3)r gibt (wegen f2,3 > 0). • Da (1, 2) ∈ E und f1,2 > 0 sowie (2, 1) ∈ E und f2,1 < w2,1 , erhalten wir (2, 1)r ∈ E r sowie (2, 1)v ∈ E v . Wie in Definition 5.11 festgelegt, setzen wir dann (w2,1 , c2,1 ) = ( f1,2 , −c1,2 ), da die Kosten, die mit (2, 1)r assoziiert sind, niedriger als die zu (2, 1)v sind. Weiterhin sehen wir, dass eine Kante in F mehrere Entsprechungen in Gr (F, f ) haben kann. Kante (1, 4) in F wird durch (1, 4)v mit Gewichten (w1,4 , c1,4 ) = (w1,4 − f1,4 , c1,4 ) = (2, 6) und durch (4, 1)r mit Gewichten (w4,1 , c4,1 ) = ( f1,4 , −c1,4 ) = (1, −6) repr¨asentiert, da sowohl f1,4 < w1,4 als auch f1,4 > 0 gilt. Definition 5.12 (Wertsteigernder Pfad). Ein wertsteigernder Pfad f¨ur Flussnetzwerk F = (V, E, (w, c), s,t) und Fluss f in F ist ein Pfad von s nach t in dem entsprechenden Residualgraphen Gr (F, f ). In Abb. 5.80 k¨onnen wir durch scharfes Hinsehen“ mehrere wertsteigernde Pfa” de erkennen: (s, 1, 2,t), (s, 1, 4,t), (s, 1, 4, 3, 2,t), (s, 3, 2,t), (s, 3, 1, 2,t) und (s, 3, 1, 4,t). Ein wertsteigernder Pfad P f¨ur Flussnetzwerk F = (V, E, (w, c), s,t) und Fluss f in F erlaubt uns unmittelbar, den Fluss f so zu modifizieren, dass der erhaltene Fluss einen h¨oheren Wert hat. Ein wertsteigernder Pfad P hat hierf¨ur ein Potential δ max (P) in H¨ohe des minimalen Potentials unter den in ihm enthaltenen Kanten. Wir k¨onnen Fluss f modifizieren, indem wir auf jeder Kante in F, die einer Kante

378

5 Graphentheorie

des Pfades in E r entspricht, die Transportmenge um δ ≤ δ max (P) verringern und auf jeder Kante in F, die einer Kante des Pfades in E v entspricht, die Transportmenge um δ vergr¨oßern. Wir wollen uns vergewissern, dass wir durch diese Modifikation tats¨achlich einen Fluss f  erhalten. Bedingung 1. aus Definition 5.8 wird aufgrund der Wahl von δ ≤ δ max (P) und der Bestimmung der Potentiale der Kanten im Residualgraph Gr (F, f ) eingehalten. Da der Pfad bei s startet und bei t endet, enth¨alt er zudem f¨ur jeden Knoten in V \ {s,t} genau eine eingehende und genau eine ausgehende Kante in Gr (F, f ) oder gar keine inzidente Kante in Gr (F, f ). F¨ur einen Knoten in V \ {s,t}, der durch den Pfad nicht besucht wird, bleibt Bedingung 2. offensichtlich erf¨ullt. F¨ur jeden anderen Knoten i ∈ V \ {s,t}, der durch den Pfad besucht wird, k¨onnen wir vier F¨alle unterscheiden. • Knoten i wird durch zwei Kanten ( j, i) ∈ E  und (i, k) ∈ E  , die den Kanten ( j, i)r und (i, k)r in E r entsprechen, erreicht und verlassen. Dann werden die Transportmengen auf den Kanten (k, i) ∈ E und (i, j) ∈ E jeweils um δ verringert. • Knoten i wird durch zwei Kanten ( j, i) ∈ E  und (i, k) ∈ E  , die den Kanten ( j, i)v und (i, k)v in E v entsprechen, erreicht und verlassen. Dann werden die Transportmengen auf den Kanten ( j, i) ∈ E und (i, k) ∈ E jeweils um δ vergr¨oßert. • Knoten i wird durch zwei Kanten ( j, i) ∈ E  und (i, k) ∈ E  , die den Kanten ( j, i)r ∈ E r und (i, k)v ∈ E v entsprechen, erreicht und verlassen. Dann wird die Transportmenge auf der Kante (i, j) ∈ E um δ verringert und die Transportmenge auf der Kante (i, k) ∈ E um δ vergr¨oßert. • Knoten i wird durch zwei Kanten ( j, i) ∈ E  und (i, k) ∈ E  , die Kanten ( j, i)v ∈ E v und (i, k)r ∈ E r entsprechen, erreicht und verlassen. Dann wird die Transportmenge auf der Kante ( j, i) ∈ E um δ vergr¨oßert und die Transportmenge auf der Kante (k, i) ∈ E um δ verringert. In jedem der vier F¨alle bleiben die Transportmengen auf allen u¨ brigen zu i inzidenten Kanten in F unver¨andert und daher ist leicht zu erkennen, dass Bedingung 2. in Definition 5.8 durch f  erf¨ullt wird. In Abb. 5.81 wird Fluss f  dargestellt, den wir durch Anwendung des wertsteigernden Pfades (s, 1, 4, 3, 2,t) mit δ = min{1, 2, 3, 1, 3} = 1 auf den Fluss in Abb. 5.79 erhalten. Jeder der oben beschriebenen vier F¨alle trifft hier auf einen Knoten zu und wir k¨onnen daher beispielhaft nachvollziehen, wieso Bedingung 2. durch f  erf¨ullt wird. Zudem wurden die Potentiale der Kanten im Residualgraph in Abb. 5.80 so bestimmt, dass bei entsprechender Vergr¨oßerung oder Verringerung der Transportmengen keine Transportmenge negativ wird und keine Kantenkapazit¨at verletzt wird, wenn δ = 1 ≤ δ max (P) gew¨ahlt wird. Die Kosten steigen entsprechend der gesamten Kosten des wertsteigernden Pfades in Gr (F, f ) um 13. Diesen Mechanismus zur Vergr¨oßerung des Wertes eines Flusses unter Verwendung wertsteigernder Pfade werden wir in den Abschnitten 5.4.1 und 5.4.2 verwenden, um die dort behandelten Probleme zu l¨osen.

5.4 Fl¨usse

379 (0, 2, 3) 1

(1, 2, 2)

(3, 3, 1)

2

(0, 1, 1)

(1, 3, 9)

(0, 1, 2)

s

t (2, 3, 6)

(2, 5, 6)

3

(2, 3, 2)

(4, 5, 2)

4

Abb. 5.81 Fluss f  in Flussnetzwerk F in Abb. 5.78

Zusammenfassung: Residualgraph und wertsteigernde Pfade Ein Residualgraph zeigt f¨ur ein Flussnetzwerk F und einen Fluss f M¨oglichkeiten auf, einer Kante eine gr¨oßere oder eine kleinere Transportmenge als in f zuzuweisen. Kanten in E v stehen dabei f¨ur eine Vergr¨oßerung und Kanten in E r f¨ur eine Verringerung der Transportmenge. Die Potentiale und Kosten der Kanten entsprechen dabei der gr¨oßtm¨oglichen zul¨assigen Ver¨anderung und dem Kostenfaktor der Ver¨anderung. Die Kantenmenge in einem Pfad des Residualgraphs von s nach t, also in einem wertsteigernden Pfad, ist eine Menge von Kanten, auf denen die Transportmengen simultan so ver¨andert werden k¨onnen, dass die Ver¨anderung wiederum einen Fluss erzeugt. Dabei m¨ussen die Transportmengen auf Kanten in E r verringert und auf Kanten in E v vergr¨oßert werden. Die betraglich gr¨oßte m¨ogliche Ver¨anderung entspricht dabei dem kleinsten Potential einer Kante im Pfad.

5.4.1 Maximale Flusse und Minimale Schnitte ¨ Wir werden uns in diesem Abschnitt mit der L¨osung zweier Probleme befassen, die im Kontext von Flussnetzwerken betrachtet werden k¨onnen. Das erste Problem l¨asst sich recht leicht dadurch motivieren, dass wir eine m¨oglichst große Menge durch das Netzwerk von der Quelle zur Senke transportieren wollen.

380

5 Graphentheorie

Problem 5.5 (Maximaler Fluss). Eingabe: Flussnetzwerk F = (V, E, w, s,t) LR: Menge aller Fl¨usse in F ZB: – ZS: Wert des Flusses ist zu maximieren. Frage: Was ist eine optimale L¨osung? Eine L¨osung zu Problem 5.5 (Maximaler Fluss) ist immer dann interessant, wenn wir ein zu transportierendes Gut betrachten, bei dem es erstrebenswert ist, es zur Senke zu bringen. Wenn dies nicht der Fall ist, d. h., wir wollen gerade verhindern, dass das Gut die Senke erreicht, dann ergibt sich eine scheinbar vollst¨andig andere Perspektive. Um zu verhindern, dass das Gut von der Quelle zur Senke gelangt, k¨onnen Transportverbindungen aus dem Netzwerk entnommen (oder blockiert oder zerst¨ort) werden. Dies soll so geschehen, dass es keinen Pfad von s nach t gibt, denn dann kann kein Transport von der Quelle zur Senke mehr erfolgen. Wir betrachten dabei einen sogenannten Schnitt eines Flussnetzwerks F = (V, E, w, s,t). Schrijver ¨ (2002) gibt einen Uberblick u¨ ber die Betrachtung der beiden Probleme in einem historischen Kontext. Wir werden den Schnitt im Folgenden nicht als eine Menge von (zu entnehmenden) Kanten beschreiben (was naheliegend w¨are), sondern durch die Menge von Knoten, die von s erreichbar ist. Diese Menge impliziert dann die zu entnehmenden Kanten. Definition 5.13 (Schnitt). Ein Schnitt eines Flussnetzwerkes (V, E, w, s,t) ist eine Teilmenge V  von Knoten, sodass s ∈ V  und t ∈ V  . Wir interpretieren diese Teilmenge V  als diejenigen Knoten, die auf Pfaden von s aus erreicht werden k¨onnen, und die Komplement¨armenge V \ V  als diejenigen Knoten, die nicht auf Pfaden von s aus erreicht werden k¨onnen. In einem sinnvollen Flussnetzwerk ist t zun¨achst von s aus erreichbar. D. h., t ∈ V  ist nur zu erreichen, wenn wir Kanten aus dem Flussnetzwerk entfernen. Dass die Knoten in V  erreicht werden und die in V \V  nicht, erreichen wir, indem wir alle Kanten, die von einem Knoten in V  zu einem Knoten in V \V  f¨uhren, entfernen. Die Menge dieser Kanten wird also durch die Menge V  als zu entfernen impliziert. Definition 5.14 (Kapazit¨at eines Schnittes). Die Kapazit¨at c(V  ) eines Schnittes V  eines Flussnetzwerkes (V, E, w, s,t) ist c(V  ) = ∑(i, j)∈E,i∈V  , j∈V  wi, j . Das folgende Problem motiviert sich durch die Zielsetzung, Kanten aus dem Netzwerk so zu entfernen, dass es keinen Pfad von s nach t gibt und daf¨ur m¨oglichst wenig Aufwand betrieben wird. Wenn wir den Aufwand f¨ur das Entfernen einer Kante mit ihrer Kapazit¨at gleichsetzen, ergibt sich Problem 5.6 (Minimaler Schnitt).

5.4 Fl¨usse

381

Problem 5.6 (Minimaler Schnitt). Eingabe: Flussnetzwerk F = (V, E, w, s,t) LR: Schnitte ZB: – ZS: Die Kapazit¨at des Schnittes ist zu minimieren. Frage: Was ist eine optimale L¨osung? Zwischen Problem 5.5 (Maximaler Fluss) und Problem 5.6 (Minimaler Schnitt) gibt es eine sehr enge Beziehung. Wir k¨onnen relativ leicht argumentieren, dass die Kapazit¨at jedes Schnittes nicht kleiner sein kann als der Wert jedes Flusses in einem Flussnetzwerk. Um dies zu sehen, betrachten wir einen willk¨urlichen Schnitt V  und betrachten alle Kanten, die von einem Knoten in V  zu einem Knoten in V \V  verlaufen. Der Wert eines Flusses, also die gesamte von s nach t transportierte Menge, muss von V  nach V \ V  fließen, da s ∈ V  und t ∈ V  . Von V  nach V \ V  kann aber nicht mehr als c(V  ) fließen. Tats¨achlich ist die Beziehung zwischen den beiden Problemen aber sogar noch enger, wie das folgende Theorem formuliert. Theorem 5.12. F¨ur ein Flussnetzwerk entspricht der maximale Wert eines Flusses der minimalen Kapazit¨at eines Schnittes. In Anhang C.9 f¨uhren wir einen Beweis, der auf Vorwissen aus Abschnitt 3.4 aufbaut. Im Folgenden stellen wir ein Verfahren vor, das beide Probleme l¨ost. Aus der Korrektheit dieses Verfahrens folgt Theorem 5.12 ebenfalls, wie wir sp¨ater sehen werden. Salopp formuliert: Maximale Fl¨usse und (minimale) Schnitte Ein maximaler Fluss ist ein Fluss mit einer maximalen von s nach t versendeten Transportmenge. Ein Schnitt entspricht einer Kantenmenge, sodass ohne diese Kanten nichts von s nach t versendet werden kann. Die Kapazit¨at eines Schnitts ist die gesamte Kapazit¨at dieser Kanten und ein minimaler Schnitt ist ein Schnitt mit minimaler Kapazit¨at. In einem beliebigen Flussnetzwerk entspricht der maximale Wert unter allen Fl¨ussen der minimalen Kapazit¨at unter allen Schnitten.

¨ ¨ Uberblick uber das Verfahren Das Verfahren, das in diesem Abschnitt vorgestellt wird, geht auf Ford Jr. und Fulkerson (1956) zur¨uck. Es betrachtet iterativ jeweils einen aktuellen Fluss f und pr¨uft, ob es einen wertsteigernden Pfad f¨ur das Flussnetzwerk F = (V, E, w, s,t) und den aktuellen Fluss f gibt. Wenn es keinen gibt, hat der aktuelle Fluss maximalen Wert. Ansonsten modifizieren wir Fluss f mittels des wertsteigernden Pfads, erhalten einen neuen aktuellen Fluss mit h¨oherem Wert und wiederholen den Schritt.

382

5 Graphentheorie

Initial kann dabei der Fluss betrachtet werden, bei dem alle Transportmengen null sind. Es bleibt die Frage, wie wir ermitteln, ob es einen wertsteigernden Pfad gibt. Wir k¨onnen hierf¨ur in jeder Iteration den Residualgraph Gr (F, f ) = (V, E  , w ) f¨ur F und den aktuellen Fluss f in F konstruieren. Dann k¨onnen wir z. B. Algorithmus 5.1 verwenden (siehe Abschnitt 5.1.1), um einen Pfad von s nach t in Gr (F, f ) zu finden, der die wenigsten Kanten enth¨alt (hierf¨ur weisen wir jeder Kante eine L¨ange von eins zu). Wir suchen zwar gar nicht zwangsl¨aufig solch einen speziellen Pfad, aber solange es u¨ berhaupt einen Pfad von s nach t gibt, gibt es auch einen mit einer minimalen Anzahl an Kanten und wir k¨onnen diesen mit Algorithmus 5.1 ermitteln. Zusammenfassung: Verfahren von Ford und Fulkerson Wir starten mit einem beliebigen Fluss. In jeder Iteration pr¨ufen wir, ob es einen wertsteigernden Pfad gibt, und modifizieren den vorliegenden Fluss entsprechend, wenn wir einen solchen Pfad finden. Die Pr¨ufung k¨onnen wir mittels Verfahren zum Finden k¨urzester Wege in Graphen durchf¨uhren. Wenn kein solcher Pfad existiert, dann ist der vorliegende Fluss maximal und das Verfahren endet. Das gesamte Verfahren l¨asst sich als Algorithmus 5.10 konkretisieren. Algorithmus 5.10 (Ford & Fulkerson). Eingabe: Flussnetzwerk F = (V, E, w, s,t) Ausgabe: Fluss maximalen Wertes 1. Setze fi, j ← 0 f¨ur jede Kante (i, j) ∈ E. 2. Konstruiere Residualgraph Gr (F, f ). 3. Pr¨ufe mittels Algorithmus 5.1, ob es einen Pfad von s nach t in Gr (F, f ) gibt (und finde ggf. einen). 4. Wenn es keinen Pfad von s nach t gibt, hat f maximalen Wert. STOP. 5. Wenn es einen Pfad P von s nach t gibt, modifiziere f unter Verwendung von P (nutze dabei das volle Potential von P) und gehe zu 2.

Beispiel Bevor wir das Verfahren analysieren, wollen wir es an einem Beispiel veranschaulichen. Wir wenden Algorithmus 5.10 auf das Flussnetzwerk F = (V, E, w, s,t) in Abb. 5.82 an. Den Ablauf des Verfahrens stellen wir mittels Abb. 5.83 bis Abb. 5.91 dar. Wir bestimmen einen ersten Fluss f 0 , indem wir fi,0 j ← 0 f¨ur alle (i, j) ∈ E setzen. Der Residualgraph Gr (F, f 0 ) f¨ur F und f 0 in der ersten Iteration entspricht dem Flussnetzwerk F in Abb. 5.82, da auf jeder Kante die volle Kapazit¨at verbleibt und keine Transportmenge reduziert werden kann. Es f¨allt nicht schwer, einen Pfad von s nach t in Gr (F, f 0 ) zu finden, der eine minimale Anzahl Kanten, in diesem Fall drei,

5.4 Fl¨usse

383 1 3

s

2 2

1

3

2 4

3

t

3 4

1

Abb. 5.82 Flussnetzwerk F einer Instanz von Problem 5.5 (Maximaler Fluss)

3 4

8 5

2

enth¨alt. Hierf¨ur k¨onnten wir Algorithmus 5.1 einsetzen, verlassen uns der Einfachheit halber aber auf scharfes Hinsehen“. Der gefundene Pfad P1 ist in Abb. 5.83 ” durch schwarze Kanten hervorgehoben.

1 3

s

Abb. 5.83 Residualgraph Gr (F, f 0 ) mit wertsteigerndem Pfad P1

2 2

1

3

2 4

3

t

3 4

1

3 4

2

8 5

Durch Anwendung von P1 modifizieren wir f 0 und erhalten den in Abb. 5.84 dargestellten Fluss f 1 . In jedem Tupel steht der erste Eintrag f¨ur die Transportmenge und der zweite Eintrag f¨ur die Kapazit¨at der Kante. In der zweiten Iteration ergibt sich ein Residualgraph, der sich in der Struktur von F unterscheidet, siehe Abb. 5.85. Kante (2,t) ist voll ausgelastet und hat somit keine verbleibende Kapazit¨at mehr. Darum wird sie durch eine einzelne Kante in umgekehrter Orientierung in Gr (F, f 1 ) repr¨asentiert. Die Kanten (s, 1) und (1, 2) haben sowohl verbleibende Kapazit¨at als auch eine positive Transportmenge und somit finden sich jeweils zwei entsprechende Kanten in Gr (F, f 1 ). Dabei hat die jeweils umgekehrt orientierte Kante ein Potential in H¨ohe der Transportmenge (weil die Transportmenge auf null reduziert werden k¨onnte) und die jeweils gleich orientierte Kante ein Potential in H¨ohe der verbleibenden Kapazit¨at, weil die Transportmenge um diese vergr¨oßert werden kann. Alle u¨ brigen Kanten haben keine positive Trans-

384

5 Graphentheorie (1, 3) 1 (1, 3)

s

2 (1, 1)

(0, 3) (0, 2)

(0, 2)

t

3 (0, 4) (0, 1)

(0, 4)

(0, 8)

(0, 3) 4

Abb. 5.84 Fluss f 1

5

(0, 2) 1

1

2

1 2

2

1

3

2

s

2

t

3

4

4

1

Abb. 5.85 Residualgraph Gr (F, f 1 ) mit wertsteigerndem Pfad P2

3 4

2

8 5

portmenge und sind daher nur mit derselben Orientierung und der vollen Kapazit¨at als Potential in Gr (F, f 1 ) repr¨asentiert. Ein Pfad P2 von s nach t mit minimaler Anzahl Kanten ist in Abb. 5.85 durch die schwarzen Kanten hervorgehoben. Durch Anwendung von P2 modifizieren wir f 1 und erhalten den in Abb. 5.86 dargestellten Fluss f 2 . (1, 3) 1 (3, 3)

s

2 (1, 1)

(0, 3) (0, 2)

(0, 2)

t

3 (2, 4) (0, 4)

(0, 1) 4

Abb. 5.86 Fluss f 2

(2, 8)

(0, 3) (0, 2)

5

5.4 Fl¨usse

385

In der dritten Iteration ergeben sich Residualgraph Gr (F, f 2 ) und der wertsteigernde Pfad P3 in Abb. 5.87. 1 2

1 3 2

s

2

2

3

2 1

t

3 2

2 1

4 Abb. 5.87 Residualgraph Gr (F, f 2 ) mit wertsteigerndem Pfad P3

3 4

2

6 5

Durch Anwendung von P3 modifizieren wir f 2 und erhalten den in Abb. 5.88 dargestellten Fluss f 3 . (1, 3) 1 (3, 3)

s

2 (1, 1)

(0, 3) (0, 2)

(0, 2)

t

3 (2, 4) (2, 4)

(0, 1) 4

Abb. 5.88 Fluss f 3

(4, 8)

(0, 3) (2, 2)

5

In der vierten Iteration ergeben sich Residualgraph Gr (F, f 3 ), der wertsteigernde Pfad P4 und modifizierte Fluss f 4 , wie in Abb. 5.89 und 5.90 dargestellt. In der f¨unften Iteration ergeben sich der Residualgraph Gr (F, f 4 ) und der wertsteigernde Pfad P5 , wie in Abb. 5.91 dargestellt. Der wertsteigernde Pfad P5 enth¨alt zwei Kanten aus E r , n¨amlich (2, 1) und (1, 3). Durch Anwendung von P5 modifizieren wir f 4 und erhalten den in Abb. 5.92 dargestellten Fluss f 5 . In der sechsten Iteration ergibt sich der Residualgraph Gr (F, f 5 ) in Abb. 5.93. Die Knoten 2 und 4 k¨onnen auf Pfaden von s aus erreicht werden; die Senke t kann nicht erreicht werden.

386

5 Graphentheorie 1 2

1 3 2

s

2

2

3

2 1

t

3 2

4

2

2

1

Abb. 5.89 Residualgraph Gr (F, f 3 ) mit wertsteigerndem Pfad P4

3 4

4 5

2 (1, 3)

1 (3, 3)

s

2 (1, 1)

(2, 3) (0, 2)

(2, 2)

t

3 (4, 4) (0, 1)

(2, 4)

(6, 8)

(0, 3) 4

5

(2, 2)

Abb. 5.90 Fluss f 4

1 2

1

2

3

2

t

3 2

2 Abb. 5.91 Residualgraph Gr (F, f 4 ) mit wertsteigerndem Pfad P5

1

1

2

s

2

6

4

1

3 4

2

2 5

Algorithmus 5.10 endet und der vorliegende Fluss hat maximalen Wert. Dies k¨onnen wir erkennen, wenn wir den Schnitt betrachten, der die Knoten enth¨alt, zu denen im Residualgraph in Abb. 5.93 Pfade von s f¨uhren. Dieser Schnitt V  = {s, 2, 4} hat eine Kapazit¨at von ws,1 + ws,3 + w2,t + w4,5 = 8 und der vorliegende Fluss f 5 hat einen Wert von ebenfalls fs,1 + fs,3 + fs,4 = f2,t + f5,t = 8. Da, wie oben argumentiert, kein Fluss einen h¨oheren Wert haben kann als die minimale Ka-

5.4 Fl¨usse

387 (0, 3) 1 (3, 3)

s

2 (1, 1)

(1, 3) (1, 2)

(2, 2)

t

3 (4, 4) (0, 1)

(3, 4)

4

3

1

2 1

3

1

1

2

2

3

t

1

3 1

5

(2, 2)

Abb. 5.92 Fluss f 5

s

(7, 8)

(1, 3)

1

1

7

4

1

2 Abb. 5.93 Residualgraph Gr (F, f 5 )

4

2

5

pazit¨at eines Schnitts, hat der vorliegende Fluss f 5 maximalen Wert und Schnitt V  minimale Kapazit¨at.

Analyse Nachdem wir gesehen haben, dass Algorithmus 5.10 die Probleminstanz in Abb. 5.82 von Problem 5.5 (Maximaler Fluss) und Problem 5.6 (Minimaler Schnitt) l¨ost, besagt Theorem 5.13, dass er dies mit einer kleinen Einschr¨ankung tats¨achlich f¨ur jede Instanz von Problem 5.5 (Maximaler Fluss) und Problem 5.6 (Minimaler Schnitt) leistet. Theorem 5.13. Wenn alle Kantengewichte rational sind, bestimmt Algorithmus 5.10 einen Fluss maximalen Werts und die Menge von Knoten, die im finalen Residualgraph von s aus erreichbar sind, ist ein Schnitt minimaler Kapazit¨at. Den Beweis f¨uhren wir in Anhang C.10. Auch wenn die Einschr¨ankung auf rationale Kantengewichte etwas verwundern mag, ist es tats¨achlich so, dass Algorithmus 5.10 wom¨oglich nicht terminiert, wenn es nicht-rationale Kantengewichte gibt. Algorithmus 5.10 konvergiert dann zwar gegen einen bestimmten Wert von Fl¨ussen,

388

5 Graphentheorie

aber dieser Wert mag deutlich unter dem maximalen Wert unter allen Fl¨ussen liegen. Zwick (1995) pr¨asentiert sehr kleine Netzwerke mit sechs Knoten und acht Kanten, in denen dies passiert. Die hier vorgestellte Auffassung eines Flusses kann leicht dahingehend erweitert werden, dass wir mehrere Quellen und mehrere Senken ber¨ucksichtigen. Wir k¨onnen trotzdem das hier vorgestellte Verfahren nutzen, um dieses verallgemeinerte Problem zu l¨osen, indem wir es auf Problem 5.5 (Maximaler Fluss) (mit genau einer Quelle und genau einer Senke) zur¨uckf¨uhren. Dies k¨onnen wir erreichen, indem wir eine Super-Quelle einf¨uhren, von der aus eine Kante mit unbegrenzter Kapazit¨at zu jeder Quelle f¨uhrt. Analog f¨uhren wir eine Super-Senke ein, zu der eine Kante mit unbegrenzter Kapazit¨at von jeder Senke f¨uhrt. Das Prinzip ist in Abb. 5.94 veranschaulicht. Im urspr¨unglichen Flussnetzwerk gibt es die drei Quellen s1 , s2 und s3 , die zwei Senken t1 und t2 , die weiteren Knoten 1 bis 5 und die durchgezogenen Kanten zwischen diesen Knoten. Wir f¨ugen dann s1

t1 3

4 ∞

7

1 ∞

s

8

s2

6

3 8

2 ∞



2

3

4

5

t2



t

2 5

1 s3 Abb. 5.94 Super-Quelle und Super-Senke

eine Super-Quelle s und eine Super-Senke t ein, die u¨ ber die gestrichelten Kanten mit den Quellen und Senken verbunden sind. Diese neuen Kanten haben eine unbegrenzte Kapazit¨at und schr¨anken dadurch Fl¨usse im erweiterten Flussnetzwerk nicht ein. Daher entsprechen die Transportmengen auf Kanten des urspr¨unglichen Flussnetzwerks einem Fluss mit mehreren Quellen und Senken.

5.4.2 Flusse minimaler Kosten ¨ Wir werden uns in diesem Abschnitt mit der L¨osung eines weiteren Problems befassen, das sich f¨ur Flussnetzwerke ergibt. Bei diesem Problem geht es darum, einen Fluss mit einem bestimmten Wert zu ermitteln, der unter allen Fl¨ussen dieses Wer-

5.4 Fl¨usse

389

tes minimale Kosten hat. Der vorgegebene Wert muss nicht zwangsl¨aufig, kann aber der maximale Wert unter allen Fl¨ussen sein. Problem 5.7 (Fluss minimaler Kosten). Eingabe: Flussnetzwerk F = (V, E, (w, c), s,t), Wert b LR: Menge aller Fl¨usse in F ZB: Fluss muss Wert b haben. ZS: Kosten des Flusses sind zu minimieren. Frage: Was ist eine optimale L¨osung? Die Motivation von Problem 5.7 (Fluss minimaler Kosten) f¨allt nicht schwer. Wenn wir vorab wissen, welche Menge wir insgesamt von der Quelle zur Senke transportieren m¨ussen, wollen wir dies zu den geringsten Kosten erreichen. Wir werden im weiteren Verlauf zwei Verfahren besprechen. Beide ermitteln optimale L¨osungen f¨ur das Problem (eins davon mit leichten Einschr¨ankungen) und insofern k¨onnten wir es auch bei einem der beiden belassen. Da in beiden Verfahren aber unterschiedliche intuitiv motivierbare Ans¨atze verfolgt werden, die auf a¨ hnlichen Prinzipien beruhen und sich leicht durch Anwendung von Verfahren, die in vorherigen Abschnitten erl¨autert werden, ausgestalten lassen, wollen wir beide besprechen. Ein wichtiges Konzept, das wir f¨ur beide Verfahren ben¨otigen, ist ein Kreis negativer Kosten im Residualgraph f¨ur ein Flussnetzwerk und einen Fluss. Theorem 5.14. Ein Fluss f in Flussnetzwerk F = (V, E, (w, c), s,t) ist genau dann kostenminimal unter allen Fl¨ussen mit Wert v( f ), wenn es keinen Kreis negativer Kosten in dem Residualgraph Gr (F, f ) gibt. Es ist relativ leicht zu erkennen, dass wir von Fluss f einen Fluss gleichen Wertes ableiten k¨onnen, wenn wir einen solchen Kreis kennen. Wir wenden diesen Kreis an, wie wir wertsteigernde Pfade angewendet haben, und erkennen relativ leicht, dass ¨ wir einen Fluss gleichen Wertes erhalten. Die Uberlegungen hierzu sind dieselben wie zu wertsteigernden Pfaden, siehe Definition 5.12 auf S. 377 und die dort folgenden Erl¨auterungen. Wenn die Summe der Kosten der Kanten im Kreis negativ ist, dann sind die Kosten des neuen Flusses geringer als c( f ). Ausf¨uhrlicher werden wir hierauf in Anhang C.11 eingehen und zudem auch zeigen, dass f tats¨achlich kostenminimal ist, wenn kein Kreis negativer Kosten in Gr (F, f ) existiert. Diese zentrale Erkenntnis wird in den Abschnitten 5.4.2.1 und 5.4.2.2 genutzt, um zwei Verfahren zur L¨osung von Problem 5.7 (Fluss minimaler Kosten) zu motivieren bzw. deren Korrektheit zu zeigen. Auch hier k¨onnen wir die Auffassung eines Flusses dahingehend erweitern, dass wir mehrere Quellen und mehrere Senken ber¨ucksichtigen. Wir k¨onnen aber auch dann die im Folgenden diskutierten Verfahren nutzen, indem wir es auf Problem 5.7 (Fluss minimaler Kosten) (mit genau einer Quelle und genau einer Senke) zur¨uckf¨uhren. Dies k¨onnen wir wiederum durch Einf¨uhrung einer Super-Quelle und einer Super-Senke erreichen. Von der Super-Quelle f¨uhrt eine Kante mit unbegrenz-

390

5 Graphentheorie

ter Kapazit¨at und Kosten von null zu jeder Quelle und von jeder Senke f¨uhrt eine Kante mit unbegrenzter Kapazit¨at und Kosten von null zur Super-Senke.

5.4.2.1 Eliminierung negativer Kreise Das Verfahren, das in diesem Abschnitt vorgestellt wird, geht auf Klein (1967) zur¨uck. Es konstruiert zun¨achst eine zul¨assige L¨osung und modifiziert diese sukzessiv, um die Kosten zu reduzieren. ¨ ¨ Uberblick uber das Verfahren Zun¨achst wird ein Fluss mit Wert b ermittelt. Dies kann z. B. durch Anwendung von Algorithmus 5.10, vorgestellt in Abschnitt 5.4.1, erfolgen, wobei das Verfahren abgebrochen wird, sobald ein Wert von b erreicht ist. Nun wird der Residualgraph Gr (F, f ) f¨ur F und den aktuellen Fluss f konstruiert und gepr¨uft, ob es einen Kreis negativer Kosten in Gr (F, f ) gibt. Dies kann durch Anwendung von Algorithmus 5.2, vorgestellt in Abschnitt 5.1.2, erreicht werden, wobei die Kosten als L¨angen der Kanten in Gr (F, f ) interpretiert werden. Sollte ein Kreis negativer Kosten gefunden werden, wird dieser auf den aktuellen Fluss f angewendet. Wir erhalten dann einen Fluss f  mit demselben Wert und niedrigeren Kosten und wiederholen den Schritt mit f  als aktuellem Fluss. Sollte kein Kreis negativer Kosten existieren, ist der aktuelle Fluss f kostenminimal. Salopp formuliert: Eliminierung negativer Kreise Wir konstruieren einen Fluss mit Wert b, ohne auf die Kosten zu achten. Anschließend reduzieren wir iterativ die Kosten durch Anwendung negativer Kreise im Residualgraph bis es keinen solchen Kreis mehr gibt. Das gesamte Verfahren l¨asst sich als Algorithmus 5.11 konkretisieren. Algorithmus 5.11 (Eliminierung negativer Kreise). Eingabe: Flussnetzwerk F = (V, E, (w, c), s,t), Wert b Ausgabe: Fluss minimaler Kosten mit Wert b oder Information, dass keiner existiert 1. Ermittle Fluss f mit Wert b (z. B. mit Algorithmus 5.10). 2. Wenn es keinen Fluss mit Wert b gibt, gibt es keine zul¨assige L¨osung. STOP. 3. Konstruiere Residualgraph Gr (F, f ) = (V, E  , (w , c )). 4. Pr¨ufe mittels Algorithmus 5.2, ob es einen Kreis negativer Kosten in Gr (F, f ) gibt (und finde ggf. einen). 5. Wenn es keinen Kreis negativer Kosten gibt, hat f minimale Kosten. STOP. 6. Wenn es einen Kreis K negativer Kosten gibt, modifiziere f unter Verwendung von K. 7. Gehe zu 3.

5.4 Fl¨usse

391

Beispiel Bevor wir das Verfahren analysieren, wollen wir es an einem Beispiel veranschaulichen. Wir wenden Algorithmus 5.11 auf das Flussnetzwerk F = (V, E, w, s,t) in Abb. 5.95 an. Der geforderte Wert des zu findenden Flusses ist b = 4. (0, 2, 3) 1

(2, 2, 2)

(2, 3, 1)

2

(0, 1, 1)

(2, 3, 9)

(1, 1, 2)

s

t (1, 3, 6)

(2, 5, 6) 3

Abb. 5.95 Fluss f 0 in Flussnetzwerk F

(1, 3, 2)

(2, 5, 2)

4

Den Ablauf des Verfahrens stellen wir mittels Abb. 5.96 bis 5.104 dar. Wir k¨urzen das Finden eines ersten Flusses f 0 mit v( f 0 ) = 4 ab und nehmen an, dass wir ihn durch scharfes Hinsehen“ ermittelt haben. Fluss f 0 ist eben” falls in Abb. 5.95 dargestellt. Der Residualgraph Gr (F, f 0 ) in der ersten Iteration ist in Abb. 5.96 abgebildet. Wiederum durch scharfes Hinsehen“ k¨onnen wir den ” schwarz hervorgehobenen Kreis negativer Kosten erkennen. Alternativ k¨onnten wir Algorithmus 5.2 einsetzen, um einen Kreis negativer Kosten zu finden. (2,-2) 1

2

(2,-1)

(1,-6) (1,1) (1,9)

(1,1) s

(1,-2)

t

(2,6)

(2,-6)

(2,-2)

(3,6)

(3,2) (1,-2)

Abb. 5.96 Residualgraph Gr (F, f 0 ) und Kreis negativer Kosten

(2,-9)

3

4 (2,2)

392

5 Graphentheorie

Wir wenden den Kreis in Abb. 5.96 auf Fluss f 0 in Abb. 5.95 an und erhalten Fluss f 1 in Abb. 5.97. (0, 2, 3) 1

(1, 2, 2)

(2, 3, 1)

2

(0, 1, 1)

(1, 3, 9)

(0, 1, 2)

s

t (1, 3, 6)

(2, 5, 6) 3

Abb. 5.97 Fluss f 1 in Flussnetzwerk F

(2, 3, 2)

(3, 5, 2)

4

Residualgraph Gr (F, f 1 ) in der zweiten Iteration ist in Abb. 5.98 dargestellt. Wiederum ist ein Kreis negativer Kosten schwarz hervorgehoben. (1,-2) 1

(1,2)

(2,-1)

(1,-6) (1,1) (2,9)

(1,1) s

2

(1,2)

(1,-9)

t

(2,6)

(2,-6)

(3,-2)

(3,6)

(2,2) (2,-2)

Abb. 5.98 Residualgraph Gr (F, f 1 ) und Kreis negativer Kosten

3

4 (1,2)

Wir wenden den Kreis in Abb. 5.98 auf Fluss f 1 in Abb. 5.97 an und erhalten Fluss f 2 in Abb. 5.99. In zwei weiteren Iterationen werden die Residualgraphen Gr (F, f 2 ) und Gr (F, f 3 ) in Abb. 5.100 und 5.102 ermittelt, wobei Kreise negativer Kosten jeweils schwarz hervorgehoben sind. Wir wenden die Kreise in Abb. 5.100 und 5.102 dann auf die Fl¨usse f 2 und f 3 in Abb. 5.99 und 5.101 an und erhalten die Fl¨usse f 3 und f 4 in Abb. 5.101 und 5.103.

5.4 Fl¨usse

393 (0, 2, 3) 1

(0, 2, 2)

(2, 3, 1)

2

(0, 1, 1)

(0, 3, 9)

(0, 1, 2)

s

t (2, 3, 6)

(2, 5, 6) 3

Abb. 5.99 Fluss f 2 in Flussnetzwerk F

(2, 3, 2)

(4, 5, 2)

4

(2,2) 1

2

(2,-1)

(2,-6) (1,1)

(1,1) s

(1,2)

(3,9)

t

(1,6)

(2,-6)

(4,-2)

(3,6)

(1,2) (2,-2)

Abb. 5.100 Residualgraph Gr (F, f 2 ) und Kreis negativer Kosten

3

4 (1,2) (0, 2, 3)

1

(0, 2, 2)

(3, 3, 1) s

(0, 1, 1) (0, 1, 2)

(0, 3, 9) t

(3, 3, 6)

(1, 5, 6)

Abb. 5.101 Fluss f 3 in Flussnetzwerk F

2

3

(1, 3, 2)

(4, 5, 2)

4

Residualgraph Gr (F, f 4 ) in der f¨unften Iteration ist in Abb. 5.104 dargestellt. Es gibt keinen Kreis negativer Kosten und somit ist f 4 ein kostenminimaler Fluss mit Wert b = 4.

394

5 Graphentheorie (2,2) 1

2

(3,-1) s

(3,-6)

(3,9)

(1,1)

(1,2)

t

(1,-6)

(4,-2)

(4,6)

(1,2) (1,-2)

Abb. 5.102 Residualgraph Gr (F, f 3 ) und Kreis negativer Kosten

3

4 (2,2) (0, 2, 3)

1

(1, 2, 2)

(3, 3, 1)

2

(1, 1, 1)

(0, 3, 9)

(0, 1, 2)

s

t (2, 3, 6)

(1, 5, 6) 3

Abb. 5.103 Fluss f 4 in Flussnetzwerk F

(2, 3, 2)

(4, 5, 2)

4

(1,-2) 1

(1,2)

(2,-6) (1,-1) (3,9)

(3,-1) s

2

(1,2)

t

(1,6)

(1,-6)

(4,-2)

(4,6)

(1,2) (2,-2) 3

Abb. 5.104 Residualgraph Gr (F, f 4 )

4 (1,2)

5.4 Fl¨usse

395

Analyse Nachdem wir gesehen haben, dass Algorithmus 5.11 die Probleminstanz in Abb. 5.95 von Problem 5.7 (Fluss minimaler Kosten) l¨ost, besagt Theorem 5.15, dass er dies tats¨achlich f¨ur jede Instanz von Problem 5.7 (Fluss minimaler Kosten) leistet. Theorem 5.15. Algorithmus 5.11 bestimmt einen Fluss minimaler Kosten mit Wert b, wenn es einen solchen Fluss gibt und alle Kantengewichte rational sind. Den Beweis f¨uhren wir in Anhang C.12.

5.4.2.2 Versenden entlang kostenminimaler Wege Das Verfahren, das in diesem Abschnitt vorgestellt wird, geht auf Busacker und Gowen (1960), Iri (1960) und Jewell (1958) zur¨uck. Es ist nur anwendbar, wenn es keine negativen Kantenkosten gibt. Dies ist ein Spezialfall von Problem 5.7 (Fluss minimaler Kosten), wir werden allerdings sehen, dass wir hierbei nur solche Instanzen ausschließen m¨ussen, in denen es Kreise negativer Kosten im Flussnetzwerk gibt. Alle u¨ brigen Instanzen (also solche mit negativen Kantenkosten, aber ohne Kreise negativer Kosten) k¨onnen wir in a¨ quivalente Instanzen u¨ berf¨uhren, in denen es keine negativen Kantenkosten gibt. Bevor wir uns mit dem eigentlichen Verfahren besch¨aftigen, wollen wir uns mit dieser Modifikation der Instanzen befassen. Wir ermitteln zun¨achst die minimalen Kosten unter allen Wegen von s nach i f¨ur jeden Knoten i ∈ V . Wir k¨onnen zur Ermittlung dieser Wege z. B. Algorithmus 5.2, vorgestellt in Abschnitt 5.1.2, nutzen, wobei wir die Kosten einer Kante als L¨ange interpretieren. Da wir annehmen, dass es keine Kreise negativer Kosten gibt, gibt es entweder gar keinen Weg von s nach i oder einen kostenminimalen Pfad. Alle Knoten, zu denen es keinen Weg von s aus gibt, und die inzidenten Kanten entfernen wir aus dem Flussnetzwerk und erhalten ¯ F¨ur alle verbleibenden Knoten bezeichso die Knoten- und Kantenmenge V¯ und E. nen wir die minimalen Kosten unter allen Pfaden von s nach i mit ci . F¨ur jede Kante (i, j) ∈ E¯ gilt dann c j − ci ≤ ci, j . Wir betrachten die modifizierten Kosten c¯i, j = ci, j + ci − c j ≥ 0 f¨ur jede Kante (i, j) ∈ E¯ und verwenden im Weiteren die modifizierte Instanz von ¯ (w, c), Problem 5.7 (Fluss minimaler Kosten), die durch Flussnetzwerk F¯ = (V¯ , E, ¯ s,t) ¯ ¯ und Wert b spezifiziert ist. Ein Fluss f in Flussnetzwerk F mit Wert b und ein Fluss f in Flussnetzwerk F mit Wert b entsprechen sich unmittelbar, wenn fi, j = 0 f¨ur ¯ jede Kante (i, j) ∈ E \ E¯ und fi, j = f¯i, j jeder Kante (i, j) ∈ E. ¯ (w, c), ¯ s,t) mit Theorem 5.16. Ein Fluss f¯∗ mit Wert b in Flussnetzwerk F¯ = (V¯ , E, ¯ entspricht einem Fluss f ∗ mit Wert b in Flussnetzwerk minimalen Kosten (gem¨aß c) F = (V, E, (w, c), s,t) mit minimalen Kosten (gem¨aß c). Wir diskutieren ein Beispiel und f¨uhren den Beweis in Anhang C.13. In einem Verfahren zum Ermitteln eines kostenminimalen Flusses mit Wert b k¨onnen wir also

396

5 Graphentheorie

zun¨achst die Transformation von F in F¯ vornehmen, wenn es keine Kreise negativer Kosten in F gibt. Anschließend ermitteln wir einen kostenminimalen Fluss f¯∗ mit Wert b in F¯ und wissen durch Theorem 5.16, dass er einem kostenminimalen Fluss f ∗ mit Wert b in F entspricht. Theorem 5.16 rechtfertigt daher, dass wir uns im Folgenden auf die Betrachtung von Flussnetzwerken konzentrieren, in denen keine Kante negative Kosten hat, wenn wir uns auf Flussnetzwerke ohne Kreise negativer Kosten beschr¨anken. Das Verfahren, das in diesem Abschnitt vorgestellt wird, konstruiert zun¨achst einen kostenminimalen Fluss mit Wert null und modifiziert diesen sukzessiv, um einen kostenminimalen Fluss mit gr¨oßerem Wert zu erhalten. Die Modifikation endet, wenn der aktuelle Fluss einen Wert von b hat. In gewisser Weise ist die Vorgehensweise also komplement¨ar zu der in Abschnitt 5.4.2.1, denn dort haben wir zun¨achst den Wert des Flusses sichergestellt und dann die Kosten reduziert. ¨ ¨ Uberblick uber das Verfahren Zun¨achst wird ein Fluss f mit Wert null bestimmt; dies geschieht durch Setzen von fi, j ← 0 f¨ur jede Kante (i, j) ∈ E. In jeder Iteration wird dann der Residualgraph Gr (F, f ) f¨ur F und den aktuellen Fluss f konstruiert und ein Weg minimaler Kosten von s nach t in Gr (F, f ) ermittelt. Dies kann durch Anwendung von Algorithmus 5.2, vorgestellt in Abschnitt 5.1.2, erreicht werden, wobei die Kosten als L¨angen der Kanten in Gr (F, f ) interpretiert werden. Sollte es keinen Weg von s nach t in Gr (F, f ) geben, dann k¨onnen wir den Wert von Fluss f nicht vergr¨oßern, und wenn dar¨uber hinaus v( f ) < b, dann gibt es keinen Fluss mit Wert b in F. Ansonsten wenden wir den ermittelten Weg auf Fluss f an und erhalten Fluss f  mit v( f  ) > v( f ). Hierbei achten wir darauf, dass der Wert von f  nicht gr¨oßer als b wird. Falls v( f  ) = b, ist der vorliegende Fluss f  ein kostenminimaler Fluss mit Wert b und das Verfahren endet. Ansonsten wiederholen wir den Schritt mit f  als vorliegendem Fluss. Salopp formuliert: Versenden entlang kostenminimaler Wege Wir starten mit dem Nullfluss und erh¨ohen sukzessiv den Wert des vorliegenden Flusses durch Anwendung des kostenminimalen wertsteigernden Weges bis der vorliegende Fluss Wert b hat. Das gesamte Verfahren l¨asst sich als Algorithmus 5.12 konkretisieren.

5.4 Fl¨usse

397

Algorithmus 5.12 (Kostenminimale Wege). Eingabe: Flussnetzwerk F = (V, E, (w, c), s,t) mit ci, j ≥ 0 f¨ur jede Kante (i, j) ∈ E, Wert b Ausgabe: Fluss minimaler Kosten mit Wert b oder Information, dass keiner existiert 1. Setze fi, j = 0 f¨ur jede Kante (i, j) ∈ E. 2. Wenn v( f ) = b, dann ist f ein Fluss minimaler Kosten mit Wert b. STOP. 3. Konstruiere Residualgraph Gr (F, f ) = (V, E  , (w , c )). 4. Bestimme mittels Algorithmus 5.2 einen Weg P von s nach t in Gr (F, f ) mit minimalen Kosten. 5. Wenn es keinen Weg von s nach t in Gr (F, f ) gibt, gibt es keinen Fluss mit Wert b in F. STOP. 6. Wenn es einen Weg von s nach t in Gr (F, f ) gibt, modifiziere f unter Verwendung von P (ohne dabei einen Fluss mit Wert gr¨oßer b zu erzeugen). 7. Gehe zu 2.

Beispiel Bevor wir das Verfahren analysieren, wollen wir es an einem Beispiel veranschaulichen. Wir greifen das Beispiel aus Abschnitt 5.4.2.1 auf und wenden Algorithmus 5.12 auf das Flussnetzwerk F = (V, E, (w, c), s,t) in Abb. 5.105 an. Der geforderte Wert des zu findenden Flusses ist b = 4. Den Ablauf des Verfahrens stellen wir mittels Abb. 5.106 bis 5.111 dar. (0, 2, 3) 1

(0, 2, 2)

(0, 3, 1) s

(0, 1, 1)

(0, 1, 2)

(0, 3, 9) t

(0, 3, 6)

(0, 5, 6) Abb. 5.105 Fluss f 0 in Flussnetzwerk F

2

3

(0, 3, 2)

(0, 5, 2)

4

Der erste Fluss f 0 ist in Abb. 5.105 dargestellt. Da v( f 0 ) = 0 < 4, konstruieren wir Residualgraph Gr (F, f 0 ) in der ersten Iteration wie in Abb. 5.106 illustriert. Durch scharfes Hinsehen“ k¨onnen wir den schwarz hervorgehobenen Weg ” P1 als kostenminimalen Weg von s nach t in dem Residualgraph erkennen. Alternativ k¨onnten wir Algorithmus 5.2 einsetzen.

398

5 Graphentheorie (2, 3) 1

(2, 2)

(3, 1)

2 (1, 1)

(3, 9)

(1, 2)

s

t (3, 6)

(5, 6) Abb. 5.106 Residualgraph Gr (F, f 0 ) und kostenminimaler Weg P1

3

(3, 2)

(5, 2)

4

Wir wenden Weg P1 in Abb. 5.106 auf Fluss f 0 in Abb. 5.105 an und erhalten Fluss f 1 in Abb. 5.107. Fluss f 1 hat einen Wert von v( f 1 ) = 1 Kosten von c( f 1 ) = 8, was den gesamten Kosten der Kanten in Weg P1 entspricht. (0, 2, 3) 1

(1, 2, 2)

(1, 3, 1) s

(1, 1, 1)

(0, 1, 2)

(0, 3, 9) t

(0, 3, 6)

(0, 5, 6) Abb. 5.107 Fluss f 1 in Flussnetzwerk F

2

3

(1, 3, 2)

(1, 5, 2)

4

Residualgraph Gr (F, f 1 ) in der zweiten Iteration ist in Abb. 5.108 dargestellt. Wiederum ist ein kostenminimaler Weg P2 von s nach t schwarz hervorgehoben. Wir wenden Weg P2 in Abb. 5.108 auf Fluss f 1 in Abb. 5.107 an und erhalten Fluss f 2 in Abb. 5.109. Die Kosten des Flusses f 2 sind um das Doppelte der gesamten Kosten der Kanten in Weg P2 in Abb. 5.108 h¨oher als die Kosten des Flusses f 1 , da wir u¨ ber Weg P2 zwei Einheiten versenden und somit v( f 2 ) = 3 und c( f 2 ) = 26 erhalten. Residualgraph Gr (F, f 2 ) in der dritten Iteration ist in Abb. 5.110 dargestellt. Wiederum ist ein kostenminimaler Weg P3 von s nach t schwarz hervorgehoben. Wir wenden Weg P3 in Abb. 5.110 auf Fluss f 2 in Abb. 5.109 an und erhalten Fluss f 2 in Abb. 5.111. Wir versenden bei der Anwendung von Weg P3 nur eine Einheit u¨ ber P3 (obwohl wir zwei Einheiten versenden k¨onnten), weil nur eine Einheit zu einem Fluss mit

5.4 Fl¨usse

399 (1,-2) 1

(1,2)

(1,-1)

(1,-1) (3,9)

(2,1) s

2

(3,6)

(1,2)

t (1,-2)

(5,6)

(4,2)

(1,-2) Abb. 5.108 Residualgraph Gr (F, f 1 ) und kostenminimaler Weg P2

3

4 (2,2) (0, 2, 3)

1

(1, 2, 2)

(3, 3, 1) s

2 (1, 1, 1)

(0, 1, 2)

t (2, 3, 6)

(0, 5, 6) 3

Abb. 5.109 Fluss f 2 in Flussnetzwerk F

(0, 3, 9)

(1, 3, 2)

(3, 5, 2)

4

(1,-2) 1

2

(2,-6) (1,-1) (3,9)

(3,-1) s

(1,2)

(1,2) (1,6)

t (3,-2)

(5,6)

(2,2)

(1,-2) Abb. 5.110 Residualgraph Gr (F, f 2 ) und kostenminimaler Weg P3

3

4 (2,2)

Wert b = 4 fehlt. Fluss f 3 ist kostenminimal unter alle Fl¨ussen mit Wert v( f 3 ) = b = 4 und hat Kosten von c( f 3 ) = 36. Da v( f 3 ) = b endet das Verfahren.

400

5 Graphentheorie (0, 2, 3) 1

(1, 2, 2)

(3, 3, 1) s

(1, 1, 1)

(0, 1, 2)

(0, 3, 9) t

(2, 3, 6)

(1, 5, 6) Abb. 5.111 Fluss f 3 in Flussnetzwerk F

2

3

(2, 3, 2)

(4, 5, 2)

4

Analyse Nachdem wir gesehen haben, dass Algorithmus 5.12 die Probleminstanz in Abb. 5.105 von Problem 5.7 (Fluss minimaler Kosten) l¨ost, besagt Theorem 5.17, dass er dies tats¨achlich f¨ur jede Instanz von Problem 5.7 (Fluss minimaler Kosten) leistet. Theorem 5.17. Algorithmus 5.12 bestimmt einen Fluss minimaler Kosten mit Wert b, wenn es einen solchen Fluss gibt, alle Kantengewichte rational sind und Kantenkosten nicht negativ sind. Den Beweis f¨uhren wir in Anhang C.14. Dort wird auch ersichtlich, dass wir annehmen k¨onnen, dass die kostenminimalen wertsteigernden Wege, die wir ermitteln, Pfade sind. Wir haben darauf bisher keinen Wert gelegt, da es f¨ur unsere Vorgehensweise keine Bedeutung hat, wollen es an dieser Stelle aber festhalten.

Literaturverzeichnis Berge C (1957) Two theorems in graph theory. Proceedings of the National Academy of Sciences of the United States of America 43:842–844 Busacker R, Gowen P (1960) A procedure for determining a family of minimumcost network flow pattern. Technical Report ORO-TP-15, Operations Research Office, The Johns Hopkins University, Bethesda, MD Diestel R (2017) Graphentheorie, 5. Aufl. Springer, Berlin u. a. Dijkstra EW (1959) A note on two problems in connexion with graphs. Numerische Mathematik 1:269–271 Edmonds J (1965a) Matching and a polyhedron with 0,1 vertices. J of Res the Nat Bureau of Standards 69 B:125–130 Edmonds J (1965b) Paths, trees, and flowers. Canadian Journal of Mathematics 17:449–467 Floyd R (1962) Algorithm 97: Shortest path. Communications of the ACM 5:345

Literaturverzeichnis

401

Ford Jr LR, Fulkerson DR (1956) Maximal flow through a network. Canadian Journal of Mathematics 8:399–404 Galil Z (1986) Efficient algorithms for finding maximum matching in graphs. ACM Computing Surveys 18:23–38 Iri M (1960) A new method for solving transportation-network problems. Journal of the Operations Research Society of Japan 3:27–87 Jewell W (1958) Optimal flow through networks. Interim Technical Report No 8, Operations Research Center, MIT, Cambridge, MA Jungnickel D (2013) Graphs, Networks and Algorithms, 4. Aufl. Springer, Berlin u. a. Klein M (1967) A primal method for minimal cost flows with applications to the assignment and transportation problems. Management Science 14:205–220 Kruskal J (1956) On the shortest spanning subtree of a graph and the traveling salesman problem. Proceedings of the American Mathematical Society 7(1):48–50 Schrijver A (2002) On the history of the transportation and maximum flow problems. Mathematical Programming 91:437–445 Wallis WD (2007) A Beginner’s Guide to Graph Theory, 2. Aufl. Birkh¨auser Boston Warshall S (1962) A theorem on boolean matrices. Journal of the ACM 9:11–12 Zwick U (1995) The smallest networks on which the ford-fulkerson maximum flow procedure may fail to terminate. Theoretical Computer Science 148:165–170

Anhang A

Lineare Optimierung

A.1 Beweis zu Theorem 3.1 Theorem 3.1. Wenn es einen Eckpunkt und eine optimale L¨osung gibt, dann gibt es einen optimalen Eckpunkt. Beweis. Da es einen Eckpunkt gibt, gibt es n linear unabh¨angige NB. Betrachten wir nun eine optimale L¨osung x = (x1 , . . . , xn ), die kein Eckpunkt ist. Dann erf¨ullt x nur k, 0 ≤ k < n, linear unabh¨angige NB mit Gleichheit, denn ansonsten w¨are x ein Eckpunkt gem¨aß Definition 3.1. Wir wollen im Folgenden zeigen, dass es einen zul¨assigen Eckpunkt gibt, der nicht schlechter als x und daher ebenfalls optimal ist. Die Schnittmenge dieser k Unterr¨aume bildet einen Unterraum mit n − k ≥ 1 Dimensionen. Daher enth¨alt dieser Unterraum nicht nur x, sondern auch eine weitere zul¨assige L¨osung y. Sei δ = x − y die Differenz dieser beiden L¨osungen. Die linken Seiten der NB, die durch x und y mit Gleichheit erf¨ullt sind, evaluieren f¨ur δ zu Null, denn sie evaluieren f¨ur x und y zu demselben Wert und δ ist die Differenz von x und y. Sei weiterhin ε der minimale (euklidische) Abstand von x zu einer NB, die nicht durch Gleichheit erf¨ullt wird. Wir unterscheiden nun drei F¨alle (von denen nur einer eintreten kann, wie wir sehen werden). 1. Wenn ∑nj=1 c j δ j > 0, d. h., ein Verschieben in Richtung δ verbessert eine L¨osung, dann gibt es eine bessere L¨osung x = x + 0.5ε ||δδ || , wobei ||δδ || den normierten Vektor mit L¨ange 1 darstellt. L¨osung x ist zul¨assig, da sie die gleichen NB mit Gleichheit erf¨ullt wie x und y und durch ein hinreichend klein gew¨ahltes ε keine der anderen NB verletzen kann. Da x jedoch optimal ist, kann dieser Fall nicht eintreten. 2. Wenn ∑nj=1 c j δ j < 0, d. h., ein Verschieben in Richtung δ verschlechtert eine L¨osung, dann gibt es eine bessere zul¨assige L¨osung x = x − 0.5ε ||δδ || . Dieser Fall kann also auch nicht eintreten. 3. Wenn ∑nj=1 c j δ j = 0, d. h., ein Verschieben in Richtung δ ver¨andert den Zielfunktionswert nicht, dann gibt es eine andere optimale L¨osung x = x + ε  δ , ε  = 0, sodass x eine weitere NB mit Gleichheit erf¨ullt, die linear unabh¨angig von den © Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 D. Briskorn, Operations Research, https://doi.org/10.1007/978-3-662-60783-1

404

A Lineare Optimierung

bisher mit Gleichheit erf¨ullten ist. Eine solche NB muss es geben, denn es gibt n linear unabh¨angige NB und δ ist parallel zu den bisher mit Gleichheit erf¨ullten NB. Wir k¨onnen also schließen, dass es eine optimale L¨osung gibt, die k + 1 linear unabh¨angige NB mit Gleichheit erf¨ullt. Sofern k + 1 < n, l¨asst sich auf diese neue L¨osung dasselbe Argument wieder anwenden. Wir k¨onnen dieses Argument dann wiederholen, bis die vorliegende L¨osung n linear unabh¨angige NB mit Gleichheit erf¨ullt. Diese letztlich gefundene L¨osung ist auch optimal, da wir von einer optimalen L¨osung x gestartet sind und in jedem Schritt eine gleich gute L¨osung ermitteln. Daher k¨onnen wir schließen, dass es immer eine optimale L¨osung, die n linear unabh¨angige NB mit Gleichheit erf¨ullt, gibt, wenn es u¨ berhaupt eine optimale L¨osung gibt und, wie angenommen, ein Eckpunkt existiert.   Wir wollen die im Beweis verwendete Argumentation noch einmal f¨ur den Fall mit n = 3 konkretisieren. Wir betrachten eine optimale L¨osung x. Wenn weniger als n NB durch x mit Gleichheit erf¨ullt werden, liegt x auf keiner, einer oder zwei Ebenen von NB. Wenn x auf keiner Ebene liegt, k¨onnen wir einen beliebigen Vektor δ = 0 betrachten. Wenn x auf genau einer Ebene einer NB liegt, gibt es eine weitere zul¨assige L¨osung y, die ebenfalls auf dieser Ebene liegt, und Vektor δ = 0 ist parallel zu dieser Ebene. Wenn x auf genau zwei Ebenen von NB liegt, gibt es eine weitere L¨osung y, die ebenfalls auf der Geraden, in der sich diese Ebenen schneiden, liegt. Vektor δ = 0 ist parallel zu dieser Geraden und damit zu beiden Ebenen. Die L¨osungen x = x + 0.5ε ||δδ || und x = x − 0.5ε ||δδ || sind zul¨assig und k¨onnen nicht besser als x sein, da x als optimal angenommen wurde. Also muss der Vektor δ parallel zu der Ebene der Zielfunktion sein, denn sonst w¨are eine der beiden L¨osungen besser. Die L¨osungen x, x und x liegen also auf einer Geraden, auf der jede L¨osung entweder optimal oder unzul¨assig ist. Diese Gerade schneidet die Ebene von mindestens einer weiteren NB, denn es gibt mindestens drei linear unabh¨angige NB (da wir voraussetzen, dass es einen Eckpunkt gibt). Dieser Schnittpunkt entspricht also einer optimalen L¨osung, die dieselben NB mit Gleichheit erf¨ullt wie x (und x und x ). Zus¨atzlich erf¨ullt dieser Schnittpunkt die weitere NB mit Gleichheit. Um das Ganze auch bildlich darstellen zu k¨onnen, wollen wir die Situation noch weiter vereinfachen und die Argumentation im Beweis f¨ur den Fall n = 2 grafisch nachvollziehen. Die optimale L¨osung x liegt auf genau einer oder keiner Geraden einer NB. Wir beschr¨anken uns auf den interessanteren ersten Fall, der in Abb. A.1 dargestellt ist. L¨osung x liegt auf genau einer Geraden, n¨amlich auf Gerade IV. Wenn x auf einer, aber nicht zwei, Geraden von NB liegt, dann gibt es eine andere zul¨assige L¨osung y, die ebenfalls auf dieser Geraden liegt. Der Vektor δ = 0 ist dann parallel zu dieser Geraden. Wir erkennen weiterhin die k¨urzeste Distanz ε von x zu der Geraden einer NB, die durch x nicht mit Gleichheit erf¨ullt wird. Es gibt drei solche Geraden, n¨amlich I, II und III. Gerade III liegt x leicht ersichtlich am n¨achsten. Die L¨osungen x und x liegen in einer Distanz von 0, 5 · ε zu x in Richtungen δ und −δ . Sowohl x als auch x sind zul¨assig, da sie I, II und III wegen der geringen Distanz zu x nicht verletzen. Wenn die Zielfunktionsgerade nicht parallel zu Gerade IV liegt (wie in Abb. A.1), dann ist entweder x oder x besser als x (in Abb. A.1

A.2 Beweis zu Theorem 3.2

405

x2 80 70 II 60

I δ

y

50

x x x

40

ε III

30 20 IV

10

10

20

30

40

50

60

70

80

90

x1

Abb. A.1 Zul¨assige L¨osungen, optimale L¨osungen und zul¨assige Eckpunkte

ist es x ). Da wir annehmen, dass x optimal ist, muss die Zielfunktionsgerade also parallel zu Gerade IV liegen. Daher sind alle zul¨assigen L¨osungen auf Gerade IV optimal. Gerade IV schneidet mindestens eine weitere Gerade einer NB, die von x nicht mit Gleichheit erf¨ullt wird (denn es gibt zwei linear unabh¨angige NB, da es einen Eckpunkt gibt). In Abb. A.1 gibt es sogar drei solche Schnittpunkte. Von diesen stellen aber nur die Schnittpunkte mit den Geraden I und III zul¨assige L¨osungen dar. Beide sind dann auch optimal, da die Zielfunktionsgerade parallel zu Gerade IV liegt. Es gibt also mindestens eine optimale L¨osung, die zwei linear unabh¨angige NB mit Gleichheit erf¨ullt.

A.2 Beweis zu Theorem 3.2 Theorem 3.2. Wenn es einen Eckpunkt gibt, der eine optimale L¨osung darstellt, dann hat jeder Eckpunkt, der keine optimale L¨osung darstellt, einen benachbarten Eckpunkt, der besser ist.

406

A Lineare Optimierung

Beweis. Sei p ein zul¨assiger Eckpunkt und somit der Schnittpunkt einer Menge U von n linear unabh¨angigen NB. Wir wissen, dass wir einen benachbarten Eckpunkt erreichen k¨onnen, indem wir einen Basiswechsel vollziehen, d. h., eine NB u ∈ U wird nicht mehr mit Gleichheit erf¨ullt w¨ahrend die u¨ brigen NB in U mit Gleichheit erf¨ullt bleiben. Sei δ u der Vektor der L¨ange eins, der die Richtung angibt, in der der entsprechende benachbarte Eckpunkt von p aus liegt. Wenn p keine besseren benachbarten Eckpunkte hat, dann gilt c · δ u ≤ 0. Es kann auch eine NB u ∈ U geben, f¨ur die es keinen weiteren zul¨assigen Eckpunkt gibt, der die u¨ brigen NB in U mit Gleichheit erf¨ullt. Wir k¨onnen dann zul¨assige L¨osungen finden, die beliebig weit von p entfernt sind und die u¨ brigen NB in U mit Gleichheit erf¨ullen. Sei δ u in diesem Fall die Richtung, in der diese L¨osungen von p aus liegen. Auch hier gilt c · δ u ≤ 0, denn ansonsten w¨are das LP unbeschr¨ankt, was wir wegen der Existenz einer optimalen L¨osung ausschließen k¨onnen. Wir k¨onnen Vektor δ u etwas allgemeiner interpretieren: Wenn wir uns von einem beliebigen Punkt aus in Richtung von δ u bewegen, dann vergr¨oßern wir die Distanz zu u w¨ahrend die Distanz zu allen anderen NB in U gleich bleibt. Wir k¨onnen jeden beliebigen Punkt p bzw. jede beliebige L¨osung p durch seine Distanz zu den NB in U beschreiben, da U genau n linear unabh¨angige NB enth¨alt ¨ (diese Distanzen beschreiben die Ubererf¨ ullungen bzw. die Verletzungen der NB). Weiterhin k¨onnen wir p von p aus erreichen, indem wir uns in beliebiger Reihenfolge f¨ur alle u ∈ U u¨ ber eine geeignete Distanz in Richtung von δ u bewegen. Eine solche Distanz kann negativ sein, d. h. wir bewegen uns entgegen der Orientierung des entsprechenden Vektors. Wir formulieren dies etwas formaler als p − p =

∑ λu · δ u ,

u∈U

wobei λu die geeignete Distanz ist, u¨ ber die wir uns in Richtung von δ u bewegen. Da δ u die Richtung angibt, in der zul¨assige L¨osungen von p aus liegt, gilt λu ≥ 0 f¨ur alle u ∈ U, wenn p zul¨assig ist. Wir k¨onnen nun erkennen, dass c · (p − p) = c ·

∑ λu · δ u = ∑ λu · c · δ u ≤ 0,

u∈U

u∈U

d. h., eine beliebige zul¨assige L¨osung p kann nicht besser als p sein, wenn p keine besseren benachbarten Eckpunkte hat. Dann ist p tats¨achlich optimal.   Nachdem wir den Beweis formal abgeschlossen haben, wollen wir uns die Ideen des Beweises auch an Abb. A.2 bewusst machen. Wir nehmen an, dass der Zielfunktionswert einer L¨osung dem Wert der Variablen x2 entspricht, d. h., eine L¨osung ist umso besser, je h¨oher sie in der Abbildung liegt. Wir sehen NB 1 und NB 2, einen Abschnitt des zul¨assigen L¨osungsbereichs als gepunktete Fl¨ache, den zul¨assigen Eckpunkt p = (40, 40) und eine bessere L¨osung p = (10, 50). Weiterhin sind Normalenvektoren der NB dargestellt. Benachbarte Eckpunkte von p, die nicht dargestellt sind, m¨ussen schlechter sein, wenn sie u¨ berhaupt existieren, denn alle zul¨assigen L¨osungen, die NB 1 oder NB 2, aber nicht beide mit Gleichheit erf¨ullen, sind schlechter als p. Das Verschieben von p zu benachbarten Eckpunkten

A.3 Hinreichende Bedingung f¨ur Optimalit¨at

407

NB 2

F = x2

NB 1 50

p p

40



−1 1

  1 2



30

20

10

p

10

20

30

40

50

60

x1

Abb. A.2 Illustration zum Beweis von Theorem 3.2

k¨onnen √als Wandern entlang von NB 1 nach links (in Richtung von Vektor √ wir uns ange eins) oder entlang von NB 2 nach rechts (in Richtung (−1/ 2, −1/ √2) mit L¨ √ von Vektor (2/ 5, −1/ 5) mit L¨ange eins) vorstellen. Wenn wir nun den Differenzvektor p − p als √ √ √ √ p − p = (−30, 10) = λ1 · (2/ 5, −1/ 5) + λ2 · (−1/ 2, −1/ 2) √ √ darstellen, k¨onnen wir leicht λ1 = −40 5/3 und λ2 = 10 2/3 ableiten. Wir schließen aus λ1 < 0 und λ2 ≥ 0, dass NB 1 durch p verletzt wird, w¨ahrend NB 2 durch p erf¨ullt wird (und k¨onnen dies durch die Abbildung best¨atigen). Die bessere L¨osung p ist also unzul¨assig. In der Tat erkennen wir in Abb. A.2, dass jede L¨osung p , die wir durch p − p = λ1 · (2, −1) + λ2 · (−1, −1) mit λ1 , λ2 ≥ 0 darstellen k¨onnen, unterhalb der beiden NB liegt und somit schlechter als p ist.

¨ Optimalit¨at A.3 Hinreichende Bedingung fur Theorem 3.5. Wenn die vorliegende Basisl¨osung nicht optimal ist, dann gibt es eine NBV mit negativen reduzierten Kosten.

408

A Lineare Optimierung

Beweis. Wir betrachten die vorliegende zul¨assige Basisl¨osung x = (x1 , . . . , xm+n ) und nehmen an, dass alle reduzierten Kosten nicht-negativ sind. Weiterhin betrachten wir eine beliebige andere zul¨assige L¨osung y = (y1 , . . . , ym+n ) und wollen nun folgern, dass y nicht besser als x sein kann. Sei δ = y − x der Richtungsvektor von x zu y und δ B ein Vektor der Eintr¨age von δ , die zu den BV von x geh¨oren, und δ NB ein Vektor der Eintr¨age von δ , die zu den NBV von x geh¨oren (wir nehmen an, dass die Elemente jeweils in derselben Reihenfolge stehen wie in δ ). Wir wollen uns nun zun¨achst u¨ berlegen, dass sich δ B aus ¨ ¨ in den NBV implizieren die Anderungen in δ NB ableiten l¨asst, d. h., die Anderungen den BV. Die Tatsache, dass x Basisl¨osung ist, bedeutet, dass die NB, die zu den NBV ¨ geh¨oren, sich in einem Punkt schneiden. Eine Anderung der Werte der NBV k¨onnen wir uns als ein Parallelverschieben der jeweiligen NB vorstellen. Die verschobenen NB schneiden sich aber nat¨urlich wieder in einem Punkt und zwar in dem Punkt, der die Koordinaten yNB = yNB − xNB = δ NB f¨ur die NBV aufweist. Die Koordinaten f¨ur die BV ergeben sich dann wieder durch Aufl¨osen des jeweiligen LGS als     yB = B−1 b − B · δ NB = xB − B−1 · B · δ NB , wobei B die Teilmatrix von A ist, die zu den Spalten der NBV geh¨ort (also gerade die Spalten, die nicht in B sind). In dem Ausdruck f¨ur yB wird dann statt der urspr¨unglichen RHS b auch der Beitrag −B · δ NB der vormaligen NBV ber¨ucksichtigt. Daher erhalten wir  n      δkB = yBk − xBk = − B−1 · B · δ NB k = − ∑ B−1 · B k,l · δlNB l=1

  als die Ver¨anderung der k-ten BV f¨ur k = 1, . . . , m, wobei B−1 · B k,l der Eintrag von B−1 · B in Zeile k und Spalte l ist. Der Zielfunktionsbeitrag der Ver¨anderung δ betr¨agt somit m+n

∑ cj ·δj = ∑

j∈BV

j=1



cj ·δj +

m

= − ∑ cBk ·

j∈NBV n



k=1 m n

cj ·δj =

m

n

NB ∑ cBk · δkB + ∑ cNB l · δl

k=1





B−1 · B

l=1

k,l

l=1



· δlNB



n

NB + ∑ cNB l · δl l=1

=−∑

  n  NB ∑ cBk · B−1 · B k,l · δlNB + ∑ cNB l · δl

= −∑



k=1 l=1 n m 

cBk ·



l=1 k=1

=

n



l=1



−1

B

·B

  k,l

· δlNB +

 −1  B · B k,l cNB l − ∑ ck B m

k=1



l=1 n

NB ∑ cNB l · δl

l=1

n

NB · δlNB = − ∑ c¯NB l · δl . l=1

A.4 Duales LP zum dualen LP

409

Zudem wissen wir, dass die Ver¨anderung δlNB f¨ur die l-te NBV, l = 1, . . . , n, nicht negativ sein kann, denn jede NBV hat in x den Wert 0 und jede Variable hat in y einen nicht-negativen Wert, da beide L¨osungen zul¨assig sind. Dann folgt m+n

n

j=1

l=1

NB ≤ 0, ∑ c j · δ j = − ∑ c¯NB l · δl

wenn alle reduzierten Kosten nicht-negativ sind, was bedeutet, dass y nicht besser als x sein kann und x somit optimal ist.  

A.4 Duales LP zum dualen LP Theorem 3.8. Das duale LP des dualen LPs ist das primale LP. Beweis. Wir werden den Satz beweisen, indem wir das duale Modell 3.19 zun¨achst in Standardform bringen und dann das Modell zum Finden der kleinsten oberen Schranke aufstellen. Modell 3.19 (Kleinste obere Schranke). m

min ∑ ωi · bi

(A.1)

i=1

m

u.B.d.N.

∑ ai, j · ωi ≥ c j

∀ j = 1, . . . , n

(A.2)

ωi ≥ 0

∀i = 1, . . . , m

(A.3)

i=1

Wir erzeugen ein entsprechendes Modell in Standardform, indem wir die Zielfunktion und beide Seiten jeder NB mit −1 multiplizieren. Modell A.1 (Duales LP in Standardform). m

max − ∑ ωi · bi

(A.4)

i=1

m

u.B.d.N.

− ∑ ai, j · ωi ≤ −c j

∀ j = 1, . . . , n

(A.5)

i=1

ωi ≥ 0

∀i = 1, . . . , m

(A.6)

Wir f¨uhren nun die Variablen y1 , . . . , yn ein, um das Modell zum Finden der kleinsten oberen Schranke f¨ur Modell A.1 zu formulieren.

410

A Lineare Optimierung

Modell A.2 (Duales LP des dualen LP). n

min − ∑ c j · y j

(A.7)

j=1

n

u.B.d.N.

− ∑ ai, j · y j ≥ −bi

∀i = 1, . . . , m

(A.8)

j=1

yj ≥ 0

∀ j = 1, . . . , n

(A.9)

Abschließend bringen wir Modell A.2 nun wieder in Standardform. Modell A.3 (Duales LP des dualen LP in Standardform). n

max ∑ c j · y j

(A.10)

j=1

n

u.B.d.N.

∑ ai, j · y j ≤ bi

∀i = 1, . . . , m

(A.11)

∀ j = 1, . . . , n

(A.12)

j=1

yj ≥ 0

Offensichtlich entspricht Modell A.3 dem Ausgangsmodell 3.19, denn lediglich die Symbole der Variablen unterscheiden sich.  

A.5 Starker Dualit¨atssatz Theorem 3.9. Modell 3.8 hat genau dann eine optimale L¨osung x∗ , wenn Modell 3.19 eine optimale L¨osung ω ∗ hat. Falls beide L¨osungen existieren gilt n

m

j=1

i=1

∑ c j x∗j = ∑ ωi∗ bi .

Beweis. Wir werden zeigen, dass eine optimale L¨osung ω ∗ zu Modell 3.19 existiert, falls Modell 3.8 eine optimale L¨osung x∗ hat, und dass die beiden L¨osungen denselben Zielfunktionswert haben. Wegen Theorem 3.8 gilt dies dann auch umgekehrt. Wir wollen annehmen, dass es eine optimale L¨osung x∗ gibt und wir diese im Simplextableau repr¨asentieren. Wir haben also weitere Schlupfvariablen s1 , . . . , sm , das Ausgangstableau und das Tableau, das entsprechend der jeweiligen Basis aufgel¨ost ist. F xT sT RHS 0 A E b 1 −c 0 0

A.6 Komplement¨arer Schlupf

411

F xT sT RHS −1 0 B A B−1 B−1 b 1 −c + cB B−1 A cB B−1 cB B−1 b Wir nehmen nun an, dass das zweite Tableau die optimale Basisl¨osung x∗ repr¨asentiert, bei der s¨amtliche reduzierte Kosten nicht-negativ sind. Dass es eine solche geben muss, k¨onnen wir uns wie folgt erschließen. Der Simplex-Algorithmus mit Bland’s Regel (Algorithmus 3.5) erreicht nicht mehrfach dieselbe Basis (gem¨aß Theorem 3.4) und bricht somit nach einer endlichen Anzahl von Iterationen ab. Da er bei einem beschr¨ankten LP nur abbricht, wenn alle reduzierten Kosten nichtnegativ sind, wird eine entsprechende Basis erreicht, wenn es eine optimale L¨osung gibt.   Betrachten wir nun die L¨osung ω ∗ mit ωi∗ = cB B−1 i ≥ 0 f¨ur jedes i = 1, . . . , m. L¨osung ω ∗ erf¨ullt also die Dom¨anendefinitionen des dualen LP. Weiterhin k¨onnen wir erkennen, dass jede NB j des dualen LPs erf¨ullt wird, denn m m     −c j + ∑ ωi∗ · ai, j = −c j + ∑ cB B−1 i · ai, j = −c j + cB B−1 A j ≥ 0. i=1

i=1

L¨osung ω ∗ ist also eine zul¨assige L¨osung des dualen LPs. Ihr Wert ω ∗ · b entspricht dem Wert c · x∗ der L¨osung des primalen LPs, denn ω ∗ b = cB B−1 b = cB x∗ B =



j∈BV

c j · x∗j =

n

∑ c j · x∗j = cx∗ .

j=1

In der obigen Umformung steht x∗ B f¨ur die Werte der BV in der entsprechenden Reihenfolge. Wir haben mit ω ∗ = cB B−1 also eine zul¨assige L¨osung des dualen LPs, die denselben Zielfunktionswert wie x∗ im primalen LP hat. Wegen Theorem 3.7 m¨ussen dann beide L¨osungen optimal sein.  

A.6 Komplement¨arer Schlupf Theorem 3.10 (Komplement¨arer Schlupf). Eine zul¨assige L¨osung x des primalen LPs 3.8 und eine zul¨assige L¨osung ω des dualen LPs 3.19 sind genau dann optimal, wenn

m

∑ ai, j · ωi − c j

xj ·

i=1



n

ωi · bi − ∑ ai, j · x j j=1

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

412

A Lineare Optimierung

Beweis. Wir wissen durch Theorem 3.7, dass



n

∑ cj ·xj ≤

j=1

n



m

m

i=1

i=1

∑ ai, j · ωi · x j = ∑ ωi ·

j=1



n

∑ ai, j · x j

j=1

m

≤ ∑ ωi · bi

(A.13)

i=1

f¨ur jedes Paar von zul¨assigen L¨osungen x und ω f¨ur das primale LP und das duale LP gilt. Weiterhin wissen wir durch Theorem 3.9, dass n

m

j=1

i=1

∑ c j · x j = ∑ ωi · bi

gilt, genau dann, wenn x und ω optimal sind. Genau dann m¨ussen also auch die beiden Ungleichungen in (A.13) mit Gleichheit erf¨ullt sein und es gilt dementsprechend



n

n

m

j=1

j=1

i=1

∑ c j · x j = ∑ ∑ ai, j · ωi

und somit n





m

∑ x j · ∑ ai, j · ωi − c j

j=1

· x j und

= 0 und

i=1

m

m

n

i=1

j=1

∑ ωi ·

i=1

m

∑ ωi · ∑ ai, j · x j

n

= ∑ ωi · bi i=1



bi − ∑ ai, j · x j

= 0.

(A.14)

j=1

Da x zul¨assig ist, gilt weiterhin x j ≥ 0 f¨ur jedes j = 1, . . . , n und bi − ∑nj=1 ai, j x j ≥ 0 f¨ur jedes i = 1, . . . , m. Analog gilt wegen der Zul¨assigkeit von ω, dass ωi ≥ 0 f¨ur ur jedes j = 1, . . . , n. Daher gilt auch jedes i = 1, . . . , m und ∑m i=1 ai, j ωi − c j ≥ 0 f¨

m

∑ ai, j · ωi − c j

xj ·

≥ 0 f¨ur alle j = 1, . . . , n

(A.15)

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

(A.16)

i=1

und



n

ωi · bi − ∑ ai, j · x j



j=1

Schließlich folgt dann aus (A.14), dass (A.15) und (A.16) mit Gleichheit erf¨ullt sein m¨ussen.  

Anhang B

Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

¨ 1-B¨aume mit minimaler gesamter B.1 Ein Verfahren fur Kantenl¨ange Wir definieren das Problem, einen 1-Baum mit minimaler gesamter Kantenl¨ange zu finden, formal. Problem B.1 (Minimaler 1-Baum). Eingabe: Gewichteter Graph G LR: 1-B¨aume von G ZB: – ZS: Gesamte L¨ange der Kanten des 1-Baums ist zu minimieren. Frage: Was ist eine optimale L¨osung? Offensichtlich weist Problem B.1 (Minimaler 1-Baum) starke Analogien zu Problem 5.2 (Minimaler Spannbaum) auf. Wir werden dann auch im Folgenden eine Variante von Algorithmus 5.3 zum Finden minimaler Spannb¨aume, den wir in Abschnitt 5.2 besprechen, diskutieren. Wir setzen dabei voraus, dass dem Leser Algorithmus 5.3 bekannt ist und verweisen f¨ur Details auf Abschnitt 5.2. Das Verfahren, das in diesem Abschnitt vorgestellt wird, ermittelt zun¨achst einen Spannbaum mit minimalem Gewicht, also mit minimaler Gesamtl¨ange der im Spannbaum enthaltenen Kanten. Abschließend wird die k¨urzeste Kante, die im Graph, aber nicht im Spannbaum ist, erg¨anzt. Das gesamte Verfahren l¨asst sich als Algorithmus B.1 konkretisieren.

© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 D. Briskorn, Operations Research, https://doi.org/10.1007/978-3-662-60783-1

414

B Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Algorithmus B.1 (1-Baum mit minimaler gesamter Kantenl¨ange). Eingabe: Graph G = (V, E, w) Ausgabe: 1-Baum E  minimalen Gewichts oder Information, dass es keinen 1-Baum in G gibt 1. F¨uhre Algorithmus 5.3 aus, um einen minimalen Spannbaum E  in G zu finden. 2. Wenn es keinen Spannbaum in G gibt, dann gibt es keinen 1-Baum in G. STOP. / dann gibt es keinen 1-Baum in G. STOP. 3. Wenn E \ E  = 0, 4. F¨uge die Kante minimalen Gewichts in E \ E  zu E  hinzu. Im Folgenden wollen wir argumentieren, dass Algorithmus B.1 Problem B.1 (Minimaler 1-Baum) l¨ost. Theorem B.1. Algorithmus B.1 findet einen 1-Baum mit minimaler gesamter Kantenl¨ange, wenn es einen 1-Baum in dem Graph gibt. Beweis. Algorithmus B.1 ermittelt einen 1-Baum, falls es einen gibt, denn Algorithmus 5.3 findet einen Spannbaum, wenn einer existiert, und dieser l¨asst sich durch eine beliebige weitere Kante zu einem 1-Baum erg¨anzen, sofern eine existiert. Wir betrachten nun einen beliebigen 1-Baum E ∗ mit minimaler gesamter Kantenl¨ange und den 1-Baum E  , der von Algorithmus B.1 ermittelt wird. Wenn diese identisch sind, dann ist E  ein 1-Baum mit minimaler gesamter Kantenl¨ange; also nehmen wir an, dass E  = E ∗ gilt. Sei e die letzte zu E  hinzugef¨ugte Kante (also die Kante, die den Kreis schließt). Wenn die Kreise in E  und E ∗ identisch sind, dann ist e in beiden enthalten und E  \ {e } und E ∗ \ {e } sind Spannb¨aume. Dann ist E  ein 1-Baum mit minimaler gesamter Kantenl¨ange, denn Algorithmus 5.3 ermittelt einen Spannbaum mit minimaler gesamter Kantenl¨ange, siehe Theorem 5.5. Also nehmen wir an, dass die Kreise in E  und E ∗ nicht identisch sind. Sei e∗ eine beliebige Kante, die im Kreis in E ∗ , aber nicht in E  ist. Eine solche Kante muss es geben, denn sonst w¨aren die Kreise in E  und E ∗ identisch. Es gilt we ≤ we∗ , denn Algorithmus B.1 hat in Schritt 4. Kante e statt Kante e∗ gew¨ahlt. Weiterhin ist die Gesamtl¨ange von Kanten in E  \ {e } nicht gr¨oßer als die Gesamtl¨ange von Kanten in E ∗ \ {e∗ }, denn beides sind Spannb¨aume und Algorithmus 5.3 ermittelt einen Spannbaum mit minimaler gesamter Kantenl¨ange. Daher ist die Gesamtl¨ange von Kanten in E  nicht gr¨oßer als die Gesamtl¨ange von Kanten in  E ∗ und somit ist E  ein 1-Baum mit minimaler gesamter Kantenl¨ange. 

B.2 Beweis zu Eigenschaft 4.2 Eigenschaft 4.2. Es gibt eine optimale L¨osung der LP-Relaxation von Modell 4.1, in der maximal eine Variable einen nicht-ganzzahligen Wert hat. Beweis. Wir werden Eigenschaft 4.2 belegen, indem wir ein noch st¨arkeres Ergebnis herleiten. Wir k¨onnen die optimale L¨osung der LP-Relaxation ermitteln, indem

B.3 Branch & Bound-Verfahren f¨ur Tourenplanung

415

wir die Gegenst¨ande nach relativem Wert vi /wi nicht-aufsteigend sortieren und die Gegenst¨ande, solange die Kapazit¨at nicht u¨ berschritten wird, in dieser Reihenfolge in die Menge aufnehmen. Wenn dann noch Gegenst¨ande verbleiben, wird der n¨achste Gegenstand abschließend zu einem Bruchteil ausgew¨ahlt, sodass die Kapazit¨at voll ausgesch¨opft wird. Alle u¨ brigen Gegenst¨ande werden nicht in die Menge aufgenommen. Diese L¨osung hat offensichtlich maximal eine Variable mit nichtganzzahligem Wert. Wir m¨ussen jetzt noch daf¨ur argumentieren, dass diese L¨osung s optimal ist. F¨ur eine andere L¨osung s muss es einen ersten Gegenstand i (gem¨aß der Sortierung) geben, der in s zu einem geringeren Bruchteil in die Menge aufgenommen wurde als in s, da s die Kapazit¨at voll aussch¨opft (oder alle Gegenst¨ande voll aufnimmt). Umgekehrt muss es einen Gegenstand i geben, der in s zu einem h¨oheren Bruchteil aufgenommen wurde (ansonsten ist s offensichtlich besser als s ). Gegenstand i kommt in der Sortierung nach i, denn s haben wir konstruiert, indem wir die ersten Gegenst¨ande aufgenommen und dabei die Kapazit¨at ausgesch¨opft haben. Wenn wir in s einen hinreichend kleinen Bruchteil von i durch einen Bruchteil von i austauschen, der genau soviel Kapazit¨at in Anspruch nimmt, dann verschlechtern wir s nicht, denn vi /wi ≥ vi /wi . Durch wiederholtes Anwenden solcher Austausche k¨onnen wir dann ohne Verschlechterung s in s transformieren. Also ist s mindes tens so gut wie jede beliebige andere L¨osung s und daher optimal. 

¨ Tourenplanung B.3 Branch & Bound-Verfahren fur

2 0

0

1

1

3

1

2 0

2

0

6

Abb. 4.11 Instanz des Problems 1.2 (Tourenplanung)

5

0

4

Wir bilden im Folgenden alle Kanten, die im entsprechenden Teilraum nicht in F sind, ab. Alle Kanten im jeweiligen 1-Baum sind schwarz dargestellt. Unter diesen sind die Kanten, die in R sind, fett gezeichnet.

416

B Kombinatorische und (Gemischt-)Ganzzahlige Optimierung 2

2

0

0

1 1

1

2

6 5

3

2

1

2

1

0

0

1

1 1

2 0

5

0

0 3

6

4

0

2 0

0

2 0

6 5

4

0

2

3

4

0

Abb. B.1 Knoten 1 bis 3 2

2

2

0

0 1

1 1

2

3

5

0 3

1

2

2

1 1

2

0

6

0

0

6 5

4

0

0

2

6

0 5

4

0

3

0

4

Abb. B.2 Knoten 4 bis 6 2 0

0 3

1

6

0 5

2

2

0

3

1

2

6

4

0

5

0

0

0

3

1 1 6

0 5

4

4 0

Abb. B.3 Knoten 7 bis 9 2

2

2

0 2

1 1

0 3

3

3

1 1

2

6

0 5

2

1

0

4

Abb. B.4 Knoten 10 bis 12

6

0 5

4

2

6

0 5

4

B.3 Branch & Bound-Verfahren f¨ur Tourenplanung 2

2

0

0 1

1

3

1

1 1

3

6

2

5

4

0 3

0 1 3

1

2 3

6

0

2

0

2

5

417

4

0

0

5

4

Abb. B.5 Knoten 13 bis 15 2

2

0

2

0

0

0

1 3

1

3

1 1

2 0

6 5

2

2

1

6

0 5

4

0

3

2

6 5

4

0

2

1

4

0

Abb. B.6 Knoten 16 bis 18 2

2

2 0

0 3

1

0 3

1

2

1

1 2

1 2

2

6

0 5

0

6 5

4

3

5

4

0

4

0

Abb. B.7 Knoten 19 bis 21 2

2

1

2

2

0

0

0 3

2

1

3

3

1 2

2 0

6 5

0

6 4

0 Abb. B.8 Knoten 22 bis 24

5

0

6 4

5

0

4

418

B Kombinatorische und (Gemischt-)Ganzzahlige Optimierung 2

2

2

0 1

1

0 3

2

1

0 3

1

1

3

1 2 2

2 0

6 5

0

5

4 0

5

4

4

0

0

Abb. B.9 Knoten 25 bis 27 2

2 0 1

1 6

1 2

2

0

3

1

1

2

2 0

5

0

0

5

1 3

1

2

1 2

0

6

4

3

0

6

4

0

2 0

5

4

Abb. B.10 Knoten 28 bis 30 2

2

0

2 0

0 1 3

1 1 2

2

5

3

3

1

1 2

0

6

1

2

1

0

6 5

4

1 0

0 5

4

4

Abb. B.11 Knoten 31 bis 33 2

2

1

2

1 3

1

1 3

1

1 2 2

1 2

6

1

0 5

3

1

4

Abb. B.12 Knoten 34 bis 36

0 5

4

2

6

0 5

4

B.3 Branch & Bound-Verfahren f¨ur Tourenplanung 2

2

1

1

419 2 0

0 3

1

1 3

1

3

1 2

1 2 2

1 0 5

6

0

6 5

4

2 0

5

4

4

0

Abb. B.13 Knoten 37 bis 39 2

2

0

2

0

0

1 3

1 2

2

5

3

1 3

1

2

0

6

2

1

0

6 5

4

0

2 0

6

4

0

0 5

4

Abb. B.14 Knoten 40 bis 42 2

2

1 3

1 6

0 3

1

2

1

0

2

0

6

0

5

4

0

3

2

0 5

2

0

0

0

6 5

4 0

4 0

Abb. B.15 Knoten 43 bis 45 2

2 0 2

1

3

3 2

0 5

0

1

2 6

2

0

0 4

Abb. B.16 Knoten 46 bis 48

2

1

0

6

0

6 5

4 0

3

5

4 0

420

B Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

¨ IPs mit Optimalit¨atsgarantie B.4 Schnittebenenverfahren fur Wenn wir Algorithmus 4.3 folgen und die LP-Relaxation sowie die Schnittebenen aus Gomory (1958) und Gomory (1960) ohne weitere Besonderheiten verwenden, dann gibt es keine Garantie, dass das Verfahren eine zul¨assige (und daher optimale) L¨osung findet. Die Erf¨ullung der zweiten in Abschnitt 4.3.2.2 genannten Anforderung, n¨amlich dass nach Einf¨ugen einer endlichen Anzahl von Schnittebenen eine zul¨assige L¨osung erreicht wird, haben wir dort zur¨uckgestellt. Wir werden im Folgenden eine Variante des Verfahrens in Abschnitt 4.3.2.2 besprechen, das diese Anforderung f¨ur IPs mit ganzzahligen Zielfunktionskoeffizienten erf¨ullt. Wir werden davon ausgehen, dass es f¨ur den Wert jeder Variable x j eine obere Schranke s j und die untere Schranke 0 gibt. Wie Nemhauser und Wolsey (1999) zeigen, ist diese Annahme keine Einschr¨ankung. Wir beschr¨anken uns zudem bei den folgenden Ausf¨uhrungen auf Maximierungsprobleme, was ebenfalls keine Einschr¨ankung darstellt. Um die zweite Anforderung zu erf¨ullen, k¨onnen wir nicht direkt den SimplexAlgorithmus 3.5 einsetzen, sondern m¨ussen eine Variante w¨ahlen, die im Folgenden vorgestellt wird. Diese Variante bestimmt ebenfalls eine optimale L¨osung f¨ur ein LP (genau wie Simplex-Algorithmus 3.5). W¨ahrend der Simplex-Algorithmus 3.5 L¨osungen mit gleichem Zielfunktionswert nicht weiter unterscheidet, tut diese Variante dies sehr wohl. Wir betrachten den Vektor (cx, x1 , . . . , xn ) zur Bewertung jeder L¨osung x. Dieser Vektor stellt eine Sequenz von n + 1 Zielen dar, die jeweils zu maximieren sind. Bis auf das erste Ziel, das die Maximierung des Zielfunktionswertes ist, geht es jeweils darum, den Wert einzelner Variablen zu maximieren. Um die Notation zu vereinfachen, repr¨asentieren wir das erste Ziel cx durch x0 . In der Regel wird es nicht m¨oglich sein, alle Zielbewertungen durch eine einzelne L¨osung zu optimieren. Daher m¨ussen wir festlegen, in welchem Verh¨altnis die Ziele zueinander stehen. Wir sagen, dass eine L¨osung x∗ lexikografisch gr¨oßer als eine andere L¨osung x ist, wenn es ein j ∈ {0, . . . , n} gibt, sodass x∗j = x j f¨ur jedes j < j und x∗j > x j . Wir bezeichnen eine L¨osung als lexikografisch optimal, wenn es keine lexikografisch gr¨oßere L¨osung gibt. Die lexikografische Bewertung impliziert, dass zwei (unterschiedliche) L¨osungen nicht lexikografisch gleichwertig sein k¨onnen. Daher ist die lexikografisch optimale L¨osung eindeutig (im Gegensatz zur klas” sisch“ optimalen L¨osung).

B.4 Schnittebenenverfahren f¨ur IPs mit Optimalit¨atsgarantie

421

Salopp formuliert: Lexikografische Sortierung von L¨osungen Wir verfolgen bei der lexikografischen Bewertung von L¨osungen n + 1 Ziele. Das erste ist wie gewohnt die Maximierung des Zielfunktionswertes. Das k-te Ziel, k = 2, . . . , n + 1, ist die Maximierung des Wertes der Variablen xk−1 . Zur Entscheidung, welche von zwei L¨osungen besser ist, ist das erste Ziel ausschlaggebend, in dessen Bewertung die beiden L¨osungen sich unterscheiden. Wir sortieren L¨osungen dann nach diesem Vergleichskriterium. Gomory (1963) pr¨asentiert ein Verfahren, mittels dessen eine lexikografisch optimale L¨osung eines LPs bestimmt werden kann. Wir werden eine Variante betrachten, die in Zanette u. a. (2008) vorgestellt wird. Diese ist zwar weniger effizient, erlaubt uns aber, den gew¨unschten Effekt durch wiederholtes Anwenden des schon bekannten Simplex-Algorithmus 3.5 zu erreichen. Die Idee dabei ist, zun¨achst das erste Ziel, d. h. den Zielfunktionswert, zu optimieren. Wir wissen aus Abschnitt 3.3, dass wir aus dem Simplextableau die reduzierten Kosten der NBV ablesen k¨onnen. Wir fixieren dann alle NBV, deren reduzierte Kosten positiv sind, auf den Wert null (also ihren aktuellen Wert). D. h., im Folgenden k¨onnen nur die BV und die NBV mit reduzierten Kosten von null positive Werte annehmen. Hierdurch wird der verbleibende L¨osungsraum auf die gem¨aß Zielfunktion optimalen L¨osungen eingeschr¨ankt. Sollte es mehrere Basen geben, die optimal sind, dann sind diese durch die nicht-fixierten NBV und die derzeitigen BV darstellbar. Wir ersetzen dann die urspr¨ungliche Zielfunktion durch den zu maximierenden Wert der ersten nicht fixierten Variablen und wiederholen den Prozess, bis es keine NBV mit reduzierten Kosten von null mehr gibt. Die Vorgehensweise wird in Algorithmus B.2 spezifiziert. Algorithmus B.2 (lexikografisch optimale L¨osung eines LP). Eingabe: Instanz eines LP Ausgabe: lexikografisch optimale L¨osung oder Information, dass keine existiert 1. L¨ose das LP mit Simplex-Algorithmus 3.5. 2. Wenn das LP unbeschr¨ankt ist, dann STOP. 3. Wenn es keine NBV mit reduzierten Kosten von Null gibt, ist die vorliegende L¨osung lexikografisch optimal. STOP. 4. Fixiere x j = 0 f¨ur jede NBV x j mit positiven reduzierten Kosten. 5. Setze Zielfunktion max x j f¨ur erste nicht-fixierte Variable x j mit reduzierten Kosten von Null. 6. Gehe zu 1. F¨ur die Korrektheit von Algorithmus B.2 wollen wir intuitiv argumentieren, was Kenntnis der Inhalte von Kapitel 3 voraussetzt. In jedem Durchlauf finden wir eine L¨osung, die optimal ist bzgl. des ersten Ziels, dessen Bewertung noch nicht fixiert ist. Im ersten Schritt betrifft dies die urspr¨ungliche Zielfunktion bzw. x0 , in weiteren Durchl¨aufen die jeweils erste noch nicht fixierte Variable. Nach Optimierung des jeweiligen Ziels fixieren wir die Variablen, die nicht in einer optimalen Basis bzgl.

422

B Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

des aktuellen Ziels sein k¨onnen. Es gibt nur dann mehrere optimale Basen, wenn es NBV gibt, die reduzierte Kosten mit Wert null haben. Diese NBV und die aktuellen BV lassen wir unfixiert, da wir durch Wahl einer geeigneten unter den dann noch m¨oglichen Basen weitere Ziele optimieren k¨onnen, ohne die Optimalit¨at der bisher schon betrachteten aufzugeben. So wird die Menge der nicht fixierten Variablen sukzessiv reduziert, bis alle NBV fixiert sind. Salopp formuliert: Algorithmus B.2 f¨ur lexikografisch optimale L¨osung Durch Fixieren der NBV mit positiven reduzierten Kosten beschr¨anken wir uns auf die optimalen Basen bzgl. des aktuellen Ziels. Unter dieser Beschr¨ankung wird im n¨achsten Schritt das wichtigste noch nicht fixerte Ziel optimiert. Dieser Schritt wird wiederholt bis alle NBV fixiert sind. Dann ist die optimale Basis bzgl. des aktuellen Ziels eindeutig und somit kein Freiheitsgrad mehr gegeben. Neben der L¨osung der LP-Relaxation m¨ussen wir auch die Auswahl der n¨achsten einzuf¨ugenden Schnittebene (4.18) genauer spezifizieren. Dabei weichen wir von den Ans¨atzen in Abschnitt 4.3.2.3 ab und w¨ahlen immer die Zeile des Simplextableaus, die den Wert des ersten Ziels mit nicht-ganzzahligem Wert bestimmt. Hierbei ber¨ucksichtigen wir also auch die Zielfunktionszeile des Simplextableaus. Dies mag im ersten Moment u¨ berraschen. Wir k¨onnen uns allerdings vor Augen f¨uhren, dass diese Zeile sich ja strukturell nicht von den anderen unterscheidet (sie bestimmt den Wert der Variablen x0 , die wir in Abschnitt 3.3.2.1 mit F bezeichnet haben) und sie f¨ur eine zul¨assige L¨osung der zu l¨osenden Instanz einen ganzzahligen Wert auf der RHS haben muss, wenn c ganzzahlig ist. Dann ist die Ungleichung (4.18), die wir aus der Zielfunktionszeile ableiten, mit demselben Argument, wie in Abschnitt 4.3.2.2 dargelegt, eine Schnittebene. Nun ist das Verfahren, wie in Algorithmus B.3 zusammengefasst, vollst¨andig spezifiziert.

B.4 Schnittebenenverfahren f¨ur IPs mit Optimalit¨atsgarantie

423

Algorithmus B.3 (Schnittebenenverfahren mit Optimalit¨atsgarantie). Eingabe: Instanz eines IPs mit ganzzahligem c Ausgabe: optimale L¨osung oder Information, dass keine existiert1 1. Initialisiere Menge der Schnittebenen C ← 0/ 2. L¨ose die LP-Relaxation mit allen Schnittebenen in C durch Algorithmus B.2. 3. Wenn die LP-Relaxation unzul¨assig ist, ist die zu l¨osende Instanz unzul¨assig. STOP. 4. Wenn die LP-Relaxation unbeschr¨ankt ist, ist die zu l¨osende Instanz unbeschr¨ankt.2 STOP. 5. Wenn die optimale L¨osung s der LP-Relaxation zul¨assig ist, ist die optimale L¨osung der Relaxation eine optimale L¨osung f¨ur die zu l¨osende Instanz. STOP. 6. Wenn s unzul¨assig ist, dann sei c die Schnittebene (4.18), die zum ersten Ziel, das in s einen nicht-ganzzahligen Wert hat, korrespondiert. Setze C ← C ∪ {c} und gehe zu 2. Salopp formuliert: Schnittebenenverfahren mit Optimalit¨atsgarantie Wir bestimmen in jeder Iteration eine lexikografisch optimale L¨osung. Haben alle Ziele ganzzahlige Werte, ist die vorliegende L¨osung optimal f¨ur die zu l¨osende Instanz. Ansonsten identifizieren wir das erste Ziel mit nichtganzzahligem Wert, erg¨anzen die entsprechende Schnittebene (4.18) und wiederholen den Schritt. Nun bleibt allerdings noch zu argumentieren, dass dieses Verfahren tats¨achlich die optimale L¨osung ermittelt (sofern eine existiert). Wir u¨ berlegen uns zun¨achst, dass das Verfahren nicht kreisen kann, d. h., wir werden keine L¨osung mehrfach erhalten. Dies liegt daran, dass Schnittebene (4.18) die aktuelle L¨osung ausschließt. Daraus folgt dann wiederum, dass die Sequenz von L¨osungen, die wir im Verlauf des Verfahrens erhalten, lexikografisch absteigend ist, da Algorithmus B.2 in jedem Schritt die lexikografisch optimale L¨osung liefert. Da diese eindeutig ist, m¨ussen alle im Weiteren ermittelten L¨osungen lexikografisch kleiner sein. Diese Erkenntnis allein reicht uns allerdings noch nicht, denn die Beispiele am Ende von Abschnitt 4.3.1 beziehen sich auch auf lexikografisch absteigende L¨osungen und erreichen trotzdem nicht die optimale L¨osung. Wir brauchen also noch Gewissheit, dass Algorithmus B.3 mit jeder weiteren eingef¨ugten Schnittebene ein bestimmtes Maß an Fortschritt erzielt. Darum wird es im Folgenden gehen. Die Argumentation ist dabei an die in Nemhauser und Wolsey (1999) angelehnt. Wir betrachten eine f¨ur die aktuelle Relaxation lexikografisch optimale L¨osung s mit Bewertungsvektor 1

Ob diese Ausgabe garantiert werden kann, h¨angt von der konkreten Ausgestaltung des Verfahrens, von dem zu l¨osenden IP und ggf. sogar von der zu l¨osenden Probleminstanz ab. In der Regel werden wir diese Ausgabe aber sicherstellen k¨onnen. 2 Dies gilt nicht allgemein; wir m¨ ussen durch problemspezifisches Wissen ausschließen, dass die Relaxation unbeschr¨ankt ist, oder sicherstellen, dass aus Unbeschr¨anktheit der Relaxation Unbeschr¨anktheit der Instanz folgt.

424

B Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

v(s) = (s0 , s1 , . . . , sn ) , wobei s j die Bewertung bzgl. Ziel x j , j = 0, . . . , n, darstellt. Sei x j das erste Ziel mit einer nicht-ganzzahligen Bewertung. Weiterhin betrachten wir den Bewertungsvektor   v(s) = s0 , . . . , s j−1 , s j , s j+1 , . . . , sn . Folgende Aussage bringt uns ein wesentliches Werkzeug, um anschließend das Hauptergebnis zu erschließen. Lemma B.1. Die lexikografisch optimale L¨osung der Relaxation nach Einf¨ugen der Schnittebene (4.18), die zu x j korrespondiert, ist nicht lexikografisch gr¨oßer als v(s). F¨ur die Argumentation wollen wir uns noch einmal Gleichung (4.16) vor Augen f¨uhren, mittels derer Schnittebene (4.18) konstruiert wird. xj +

∑ 

ai, j x j = bi

(4.16)

f (ai, j )x j ≤ 0

(4.18)

j ∈NBV

f (bi ) −



j ∈NBV

Beweis. Wir k¨onnen an Gleichung (4.16) erkennen, wie sich der Wert von x j durch Erg¨anzen von Schnittebene (4.18) ver¨andern kann. F¨ur eine L¨osung, die Schnittebene (4.18) erf¨ullt, gilt ∑ j ∈NBV x j > 0, denn auf Grund unserer Wahl von i gilt f (bi ) > 0. Wir unterscheiden nun zwei F¨alle. • Wenn ∑ j ∈NBV ai, j x j < 0, dann nimmt x j in jeder nach Erg¨anzung von Schnittebene (4.18) zul¨assigen L¨osung einen Wert von bi − ∑ j ∈NBV ai, j x j > bi an, d. h., der Wert von x j ist gr¨oßer als in s. Wir wissen zudem, dass alle zul¨assigen L¨osungen nach Einf¨ugen der n¨achsten Schnittebene lexikografisch kleiner als s sind. Daher muss die Bewertung des ersten Ziels, in dessen Bewertung sich s und eine dann zul¨assige L¨osung s unterscheiden, in s kleiner sein als in s. Also ist s nicht nur lexikografisch kleiner als s, sondern auch lexikografisch kleiner als v(s). • Wenn ∑ j ∈NBV ai, j x j ≥ 0, k¨onnen wir zun¨achst erschließen, dass in jeder zul¨assigen L¨osung nach Einf¨ugen der n¨achsten Schnittebene x j ≤ s j  gilt. Daf¨ur formen wir zuerst (4.16) um, indem wir zwei Mal ganzzahlige und fraktionale Anteile von Werten trennen.

B.4 Schnittebenenverfahren f¨ur IPs mit Optimalit¨atsgarantie

xj + ⇔ xj +



j ∈NBV

⇔ xj +



ai, j x j +

425



j ∈NBV

ai, j x j = bi

f (ai, j )x j − f (bi ) = bi 

j ∈NBV





j ∈NBV

ai, j x j

j ∈NBV





+f

j ∈NBV





+

f (ai, j )x j

f (ai, j )x j

Nun k¨onnen wir erkennen, dass

− f (bi ) = bi 

(B.1)





f

(4.16)

j ∈NBV

f (ai, j )x j

= f (bi )

gilt, denn f (bi ) > 0 und dies sind die beiden einzigen nicht-ganzzahligen Terme. Wir k¨onnen (B.1) also zu   xj +



j ∈NBV



ai, j x j +

j ∈NBV

f (ai, j )x j = bi 

(B.2)

vereinfachen. Weiterhin k¨onnen wir ∑ j ∈NBV ai, j x j auf zwei Arten zerlegen und erhalten die beiden Zerlegungen auf der rechten und linken Seite der Gleichung  





j ∈NBV

ai, j x j +

 =





j ∈NBV

ai, j x j



j ∈NBV

f (ai, j )x j + f



+f





j ∈NBV

ai, j x j



j ∈NBV

f (ai, j )x j

.

Analog zu dem obigen Schluss sind auch hier die fraktionalen Anteile auf beiden Seiten der Gleichung gleichwertig und wir k¨onnen somit auch hier Gleichheit der ganzzahligen Anteile erschließen und erhalten    



j ∈NBV

ai, j x j +



j ∈NBV

Daher gilt

f (ai, j )x j =





j ∈NBV

ai, j x j

+



j ∈NBV

ai, j x j .





j ∈NBV

f (ai, j )x j

≥ 0,

(B.3)

wenn ∑ j ∈NBV ai, j x j ≥ 0. Aus (B.2) und (B.3) folgt unmittelbar x j ≤ bi  = s j .

426

B Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

Nachdem wir x j ≤ s j  f¨ur zul¨assige L¨osungen nach Einf¨ugen der n¨achsten Schnittebene erschlossen haben, betrachten wir eine beliebige zul¨assige L¨osung s , die Schnittebene (4.18) erf¨ullt. Wir unterscheiden wiederum zwei F¨alle. – Wenn s und v(s) in den Bewertungen der ersten j Ziele u¨ bereinstimmen, dann ist der Bewertungsvektor von s lexikografisch nicht gr¨oßer als v(s), da sk = sk f¨ur jedes k = 0, . . . , j − 1 und sj ≤ bi  = s j , wobei die zweite Gleichung daraus folgt, dass wir f¨ur die Schnittebene die Zeile des Simplextableaus zu dem ersten Ziel mit nicht-ganzzahligem Wert heranziehen. – Wenn s und v(s) in den Bewertungen der ersten j Ziele nicht u¨ bereinstimmen, dann hat s bzgl. des ersten Ziels, in dem sie unterschiedliche Bewertungen haben, eine niedrigere Bewertung, da s lexikografisch kleiner als s ist, und somit ist der Bewertungsvektor von s lexikografisch kleiner als v(s). Wir k¨onnen somit schließen, dass s lexikografisch nicht gr¨oßer als v(s) ist, wenn ∑ j ∈NBV ai, j x j ≥ 0. In beiden F¨allen, wenn ∑ j ∈NBV ai, j x j < 0 und wenn ∑ j ∈NBV ai, j x j ≥ 0, ist s also  lexikografisch nicht gr¨oßer als v(s). Dies schließt den Beweis.  Wenn die lexikografisch optimale L¨osung s∗ der Relaxation nach Einf¨ugen der Schnittebene (4.18), die zu x j korrespondiert, nicht lexikografisch gr¨oßer als v(s) ist, dann tritt einer der drei folgenden F¨alle ein. • Das erste Ziel, in dessen Bewertung sich s und s∗ unterscheiden, ist x j . Dann ist die Bewertung von x j h¨ochstens s j . • Die Bewertung des ersten Ziels x j , j < j, in dessen Bewertung sich s∗ und s unterscheiden, ist ganzzahlig. Dann ist die Bewertung von x j h¨ochstens s j − 1. • Die Bewertung des ersten Ziels x j , j < j, in dessen Bewertung sich s∗ und s unterscheiden, ist nicht ganzzahlig. Dann ist die Bewertung von x j kleiner als s j . Zusammenfassung: Lemma B.1 In jeder Iteration von Algorithmus B.3 wird die Bewertung des ersten Ziels mit nicht-ganzzahliger Bewertung, n¨amlich x j , oder eines wichtigeren Ziels x j , j < j, mindestens auf den n¨achsten kleineren ganzzahligen Wert reduziert oder die erste Position, an der im Bewertungsvektor ein nichtganzzahliger Wert steht, verkleinert. Diese Aussage l¨asst sich sehr sch¨on grafisch veranschaulichen. Wir greifen daf¨ur eine Darstellung aus Nemhauser und Wolsey (1999) auf. Abbildung B.17 stellt den LR eines IPs dar. Es gibt vier Variablen x0 , x1 , x2 , x3 wobei x0 ∈ {0, 1, 2, 3} und x1 , x2 , x3 ∈ {0, 1}. Jedes Blatt des Baums in Abbildung B.17 stellt eine L¨osung dar; der Pfad vom Wurzelknoten zum Blatt repr¨asentiert dabei die Werte der Variablen x0 , x1 , x2 und x3 durch die 1., 2., 3. und 4. Kante. Dabei repr¨asentieren die jeweils

Abb. B.17 L¨osungsbaum und Schnittebenen

(0, 0, 0, 0)

x3 = 0

x2 = 0

x2 = 1

x1 = 0

x1 = 1

x3 = 1

x0 = 0 x0 = 1

(2, 0, 1, 0)

x0 = 2

x0 = 3

(3, 1, 1, 1)

Schnittebene zu (3, 1/2, 1, 1/2)

(3, 0, 1, 1)

Schnittebene zu (3, 0, 1/2, 1/2)

(3, 0, 0, 1)

Schnittebene zu (2, 0, 1, 1/2)

B.4 Schnittebenenverfahren f¨ur IPs mit Optimalit¨atsgarantie 427

428

B Kombinatorische und (Gemischt-)Ganzzahlige Optimierung

verf¨ugbaren Optionen (f¨ur die Kante) von links nach rechts steigende Werte der jeweiligen Variablen. Die L¨osungen sind dann von links nach rechts lexikografisch aufsteigend sortiert. Nehmen wir an, dass die optimale L¨osung der ersten Relaxation (3, 1/2, 1, 1/2) ist, dann ist x1 die erste Variable mit nicht-ganzzahligem Wert. Die erste Schnittebene eliminiert dann jede L¨osung (x0 , x1 , x2 , x3 ) mit x0 = 3 und x1 = 1/2 = 1, denn f¨ur jede dann zul¨assige L¨osung ist • die Bewertung von x0 kleiner als drei oder • die Bewertung von x0 drei und die Bewertung von x1 h¨ochstens 1/2 = 0. Diese eliminierten L¨osungen sind in Abbildung B.17 entsprechend gekennzeichnet. Wenn die optimale L¨osung der zweiten Relaxation (3, 0, 1/2, 1/2) ist, dann ist x2 die erste Variable mit nicht-ganzzahligem Wert. Die zweite Schnittebene eliminiert dann jede weitere L¨osung (x0 , x1 , x2 , x3 ) mit x0 = 3, x1 = 0 und x2 = 1/2 = 1, denn f¨ur jede dann zul¨assige L¨osung ist • die Bewertung von x0 kleiner als drei oder • die Bewertung von x0 drei und die Bewertung von x2 h¨ochstens 1/2 = 0 (die Bewertung von x1 kann nicht reduziert werden). Die durch diese Schnittebene zus¨atzlich eliminierten L¨osungen sind entsprechend markiert. Wenn die optimale L¨osung der dritten Relaxation (2, 0, 1, 1/2) ist, dann ist x3 die erste Variable mit nicht-ganzzahligem Wert. Die dritte Schnittebene eliminiert dann zus¨atzlich jede L¨osung (x0 , x1 , x2 , x3 ) mit x0 = 3, x1 = 0 und x2 = 0, jede L¨osung mit x0 = 2 und x1 = 1 und die L¨osung mit x0 = 2, x1 = 0, x2 = 1 und x3 = 1, denn f¨ur jede dann zul¨assige L¨osung ist • die Bewertung von x0 kleiner zwei, • die Bewertung von x0 bzw. x1 zwei bzw. null und die Bewertung von x2 kleiner eins oder • die Bewertungen von x0 , x1 bzw. x2 zwei, null bzw. eins und die Bewertung von x3 h¨ochstens 1/2 = 0. Die jeweilige L¨osung in Grau direkt links neben den bisher ausgeschlossenen entspricht dem jeweils aktuellen Vektor v(s), also der optimalen L¨osung im verbleibenden LR. Theorem B.2. Nach einer endlichen Anzahl von Iterationen ermittelt Algorithmus B.3 eine optimale L¨osung (wenn eine existiert). Die folgende Absch¨atzung ist nicht die eleganteste oder sch¨arfste, die wir aufstellen k¨onnen. F¨ur die Aussage in Theorem B.2 reicht aber jede Absch¨atzung, die auf eine endliche Anzahl von Iterationen schließen l¨asst, und daher geben wir uns mit einer relativ einfachen Absch¨atzung mit niedrigerer Qualit¨at zufrieden. F¨ur eine bessere Absch¨atzung verweisen wir auf Nemhauser und Wolsey (1999). Beweis. Aus Lemma B.1 bzw. der Erl¨auterung folgt direkt, dass nach sp¨atestens n Iterationen des Verfahrens die Bewertung eines Ziels auf den n¨achsten kleineren

B.5 Schnittebenen f¨ur MIPs

429

ganzzahligen Wert reduziert wird, denn nur so oft kann die erste Position, an der im Bewertungsvektor ein nicht-ganzzahliger Wert steht, verkleinert werden. Wir k¨onnen s0 = ∑nj=1 c+j s j und s0 = ∑nj=1 c−j s j als obere und untere Schranke f¨ur den Zielfunktionswert bestimmen, wobei c+j = max{0, c j } und c−j = min{0, c j }. D. h., die Bewertung bzgl. x0 kann nur s0 − s0 Mal auf einen kleineren ganzzahligen Wert reduziert werden. Weiterhin kann die Bewertung bzgl. Ziel x j , j = 1, . . . , n, h¨ochstens s j Mal reduziert werden, bevor ein kleineres Ziel reduziert wird. Daher n s Iterationen die optimale L¨ osung erreicht muss nach h¨ochstens n (s0 − s0 ) · Π j=1 j werden, denn sp¨atestens dann w¨urde der Bewertungsvektor (s0 , 0, . . . , 0) eliminiert. Eine optimale L¨osung ist aber nicht lexikografisch kleiner als dieser Bewertungsvektor und muss daher zuvor ermittelt werden, falls eine existiert.   Anhand von Abbildung B.17 k¨onnen wir die Aussage von Theorem B.2 auch intuitiv nachvollziehen. In jeder Iteration eliminiert die eingef¨ugte Schnittebene mindestens eines der Bl¨atter des Baums in Abbildung B.17, denn die optimale L¨osung der aktuellen Relaxation wird eliminiert. Dies geschieht von rechts nach links. Da es eine endliche Zahl von Bl¨attern gibt, muss nach einer endlichen Anzahl von Iterationen eine zul¨assige L¨osung vorliegen oder es wurden alle Bl¨atter eliminiert. Im ersten Fall haben wir eine optimale L¨osung und brechen das Verfahren ab, im zweiten wissen wir, dass das IP unzul¨assig ist.

¨ MIPs B.5 Schnittebenen fur Wir greifen (4.15) auf und leiten (B.4) ab. xj + ⇔

∑ 



j ∈NBV

j ∈NBV

ai, j x j = bi

  ai, j x j = bi − x j = f (bi ) + bi  − x j .

(4.15) (B.4)

Dabei hat der Term (bi  − x j ) einen ganzzahligen Wert. Wir bezeichnen im Folgenden die Menge der NBV, deren Koeffizient in (B.4) nicht-negativ ist, mit NBV ≥ und die u¨ brigen mit NBV < = NBV \ NBV ≥ . Weiterhin unterscheiden wir zwischen den Mengen der ganzzahligen Variablen in diesen Mengen, bezeichnet mit NBVN≥ bzw. NBVN< , und der kontinuierlichen Variablen, bezeichnet mit NBVR≥ bzw. NBVR< . Wir k¨onnen dann beide Seiten von (B.4) um den ganzzahligen Wert !  !  ai, j + 1 x j ∑ ai, j x j + ∑ j ∈NBVN≥

reduzieren und erhalten

j ∈NBVN
c( f  − f ) (was sich aus den Uberlegungen Abschnitt C.11 erschließt). Diese beiden Fl¨usse wollen wir nun analysieren. • Wir wissen, dass Gr (F, f ) gem¨aß Theorem 5.14 keinen Kreis negativer Kosten enth¨alt, da Fluss f kostenminimal unter den Fl¨ussen mit Wert b ist. Wenn f  − f also Kreise enth¨alt k¨onnen wir diese entfernen, ohne den Wert von f  − f zu a¨ ndern oder die Kosten von f  − f zu vergr¨oßern. Wir nehmen daher im Folgenden an, dass f  − f keine Kreise enth¨alt. Fluss f  − f l¨asst sich dann als eine Menge von Wegen von s nach t in Gr (F, f ) mit jeweils einer Transportmenge interpretieren und die Kosten c( f  − f ) ergeben sich als Summe der Transportkosten der einzelnen Wege. Die Transportkosten jedes Weges ergeben sich dabei als Produkt der Transportmenge und der gesamten Kantenkosten im Weg in Gr (F, f ).

Literaturverzeichnis

465

• Weiterhin wissen wir, dass Fluss f  − f Transportmengen, die von null verschieden sind, nur auf genau einem Weg von s nach t in Gr (F, f ) hat. Dieser Weg entspricht dem kostenminimalen Weg von s nach t in Gr (F, f ), denn einen solchen haben wir bestimmt. Die Kosten c( f  − f ) entsprechen also dem Produkt aus δ und den Kosten dieses Weges in G . Wenn c( f  − f ) < c( f  − f ), dann muss mindestens einer der Wege von s nach t in Gr (F, f ), der in Fluss f  − f benutzt wird, niedrigere Kosten in Gr (F, f ) als der Weg in Fluss f  − f haben. Dies ist nicht m¨oglich, da der Weg in f  − f ein kostenminimaler ist. D. h., Algorithmus 5.12 ermittelt in jedem Schritt einen kostenminimalen Fluss mit Wert b + δ ≤ b, wenn der vorliegende Fluss mit Wert b kostenminimal ist. Da wir von einem kostenminimalen Fluss mit Wert Null ausgehen, ist also jeder Fluss, der im Laufe des Verfahrens konstruiert wird, kostenminimal unter allen Fl¨ussen mit einem entsprechenden Wert. Somit ist auch der finale Fluss mit Wert b kostenminimal. F¨ur das Theorem fehlt uns noch die Aussage, dass Algorithmus 5.12 tats¨achlich einen Fluss f mit v( f ) = b bestimmt, wenn alle Kantengewichte rational sind. Analog zu dem Beweis von Theorem 5.13 reicht uns ein Argument f¨ur ganzzahlige Kantengewichte. Wenn die Kapazit¨aten der Kanten ganzzahlig sind, wird der Wert des aktuellen Flusses in jeder Iteration um mindestens eins erh¨oht. Daher erreichen wir nach h¨ochstens b Iterationen einen Fluss mit Wert b und dieser ist - gem¨aß der ¨ obigen Uberlegungen - kostenminimal.  

Literaturverzeichnis Gomory RE (1958) Outline of an algorithm for integer solutions to linear programs. Bulletin of the American Society 64:275–278 Gomory RE (1960) An algorithm for the mixed integer problem. Technical Report RM-2597, The RAND Cooperation Gomory RE (1963) An algorithm for integer solutions to linear programs. In: Graves RL, Wolfe P (eds) Recent Advances in Mathematical Programming, McGrawHill, pp 269–302 Nemhauser G, Wolsey LA (1999) Integer and Combinatorial Optimization. WileyInterscience Ryan DM, Foster BA (1981) An integer programming approach to scheduling. In: Wren A (ed) Computer Scheduling of Public Transport: Urban Passenger Vehicle and Crew Scheduling, North-Holland, pp 269–280 Zanette A, Fischetti M, Balas E (2008) Can pure cutting plane algorithms work? In: Lodi A, Panconesi A, Rinaldi G (eds) Integer Programming and Combinatorial Optimization: 13th International Conference, IPCO 2008 Bertinoro, Italy, May 26-28, 2008 Proceedings, Springer Berlin Heidelberg, Berlin, Heidelberg, pp 416–434

Sachverzeichnis

k-te BV, 109 ¨ Ubergang (DP), 238 1-Baum, 190 1-Baum-Relaxation, 190 Abschlussentscheidungen (DP), 237 adjazent, 16 Algorithmus, 11 Allquantor, 30 Approximationsverfahren, 10

gewichteter Graph, 20 Graph, 15 Graph mit Knotengewichten, 21 Graph, kreisfrei, 22 Graph, maximal kreisfrei, 24 Graph, zusammenh¨angend, 23 Heuristiken, 10 hinreichend große Zahl, 43 inzident, 16

Basen, benachbarte, 117 Basis, 109 Basis, optimal, 127 Basisl¨osung, 107 Basisvariablen, 107 Baum, 23 Bin¨arvariablen, 28 Bl¨ute (blossom), 334 Blatt (B&B-Verfahren), 176 Blume, 334 Darstellungsformen, Graph, 16 Dom¨ane, 27 duales LP, 136, 137 Dualvariablen, 114 Eckpunkt, 103 Eckpunkt bei zwei Variablen, 98 Eckpunkte, benachbarte, 116 Entscheidungsproblem, 6 Fluss, 368 Flussnetzwerk, 368 fraktionaler Anteil einer Zahl, 221 gerichteter Graph, 16

Kante, 15 Kante, verf¨ugbare (Matchings), 322 Kantenmenge, 15 Kapazit¨at (Schnitt), 375 Knoten, 15 Knoten, einsam (Matching), 308 Knoten, gepaart (Matching), 308 Knoten, gerader (Matchings), 314 Knoten, ungerader (Matchings), 314 Knotenmenge, 15 konvexe Menge von Punkten, 93 Kosten (Fluss), 370 Kreis, 22 Kreuzprodukt, 16 L¨osung (Modell), 28 L¨osung (Problem), 5 L¨osung, optimal (Modell), 32 L¨osung, optimal (Problem), 6 L¨osung, unzul¨assige (Problem), 5 L¨osung, verzichtbare (Modell), 72 L¨osung, zul¨assig (Modell), 29 L¨osung, zul¨assige (Problem), 5 lexikografisch gr¨oßer/besser, 414 lexikografisch optimal, 414

© Springer-Verlag GmbH Deutschland, ein Teil von Springer Nature 2020 D. Briskorn, Operations Research, https://doi.org/10.1007/978-3-662-60783-1

468 LP, (primal) degeneriert, 117 LP-Relaxation, 185 Matching, 308 Matching, perfektes, 309 Nachfolgerzustand (DP), 238 Nichtbasisvariablen, 107 obere Schranke, 136 optimaler Vorg¨angerzustand (DP), 239 Optimierungsproblem, 6 Optimierungsproblem, kombinatorisches, 172 Paar, 7 Parameter, 26 Pfad, 22, 288 Pivotelement, 120 Potential einer Kante im Residualgraph, 371 Potenzmenge, 16 Pricing Problem, 160 primales LP, 136 Problem, 6 Probleminstanz, 8 Pseudocode, 11 reduzierte Kosten, 110, 114 Relaxation, 179 Relaxationsvorschrift, 178 relaxiertes Problem, 179 Residualgraph, 370 Restricted Master Problem, 159 Schlupfvariablen, 106 Schnitt, 375 Schnittebene, 214

Sachverzeichnis Solver, 25 Standardform, LP, 84 Stiel (stem), 334 Strukturvariablen, 107 Subtour, 31 Symmetrie (Modell), 72 Teill¨osung (DP), 237 unbeschr¨ankt (LP), 95 unzul¨assig (LP), 93, 95 Variable, 26 Variable, diskrete, 28 Variable, kontinuierliche, 28 Verfahren, 10 Verfahren, exaktes, 10 Verfahren, optimales, 10 Vorg¨angerzustand (DP), 238 Weg, 21, 235, 288 Weg, L¨ange, 235, 288 Wert (Fluss), 369 Wertebereich, 27 wertsteigernder Pfad, 370 Wurzelknoten (B&B-Verfahren), 176 Zielfunktionswert, 6 Zielfunktionswert (Modell), 32 Zirkulation, 446 Zirkulation, elementar, 449 Zusammenhangskomponente, 23 Zustand (DP), 238 Zustand, finaler (DP), 243 Zustand, initialer (DP), 243 Zustand, k¨unstlicher initialer (DP), 244