Lecture Notes in Economics and Mathematical Systems Operations Research, Computer Science, Social Science Edited by M. Beckmann, Previdence, G. Gees, Karlsruhe, and H. P. Künzi, Zürich 4 Sranch and Sound: Eine Einführung Zweite, geänderte Auflage Herausgegeben von F. Weinberg Unterlagen für einen Kurs des Instituts für Operations Research der ETH Zürich Spri nger-Verlag Berlin . Heidelberg . NewYork 1973 Advisory Board H. Albach . A. V. Balakrishnan . F. Ferschl . R. E. KaIman· W. Krelle . G. Seegmüller N. Wirth Prof. Dr. Franz Weinberg Institut für Operations Research der ETH Zürich 8006 Zürich, Clausiusstr. 55 AMS Subject Classifications (1970): 90-B-99, 90-02 ISBN-13: 978-3-540-06112-0 e-ISBN -13: 978-3-642-80724-4 DO!: 10.1007/978-3-642-80724-4 This work is subject to copyright. All rights are reserved, whether the whole or part of the material is concerned, specifically those of translation, reprinting, re-use of illustrations, broadcasting, reproduction by photocopying machine or similar means, and storage in data banks. Under § 54 of the German Copyright Law where copies are made for other than private use, a fee is pavable to the publisher, the amount of the fee to be determined by agreement with the publisher. © by Springer-Verlag Berlin . Heidelberg 1973. Library of Congress Catalog Card Number 72-95677. Offsetdruck: Julius Beltz, HemsbachfBergstr. VORWORT Es gibt eine grosse Menge von betriebswirtschaftlichen Entscheidungsfragen, die sich mit den nunmehr bereits als herkömmlich geltenden Optimierungsmethoden des Operations Research nicht behandeln la§sen, sei es beispielsweise, dass die Zielfunktion und auch einzelne Restriktionen nicht konvex sind, sei es, dass nur ganzzahlige Lösungen toleriert werqen, sei es, dass die von einzelnen Variablen angenommenen Zahlenwerte Einfluss auf die Gültigkeit ganzer Restriktionengruppen nehmen. So wachsen z. B. die Kosten der Lagerhaltung als Sprungfunktion mit der Errichtung jedes zusätzlichen Warenhauses und sie nehmen für jedes bestehende Warenhaus meist konkav mit der Quantität der gelagerten Güter zu. Dieser nicht-konvexe Charakter kann sich in einer Zielfunktion (Kosten-Minimierung) oder in einer Restriktion äussern (Nicht-Ueberschreitung einer Kostenlimite). Die Anzahl von Warenhäusern ist offenbar eine ganze Zahl, deren Optimum unter Angabe der zugehörigen geographischen Standorte gesucht werden mag. Die Notwendigkeit der Berücksichtigung ortsgebundener Restriktionen für einzelne Warenhäuser (z.B. Provenienzvorschriften betreffend deren eigene Güterversorgung) ist vom Werte der logischen Variablen" abhängig, der angibt, ob ein bestimmtes Warenhaus errichtet werden soll oder nicht. Es würde nicht schwer fallen, eine lange Liste von derartigen Problemen aufzuzählen, die alle sehr erhebliche finanzielle Bedeutung für eine Unternehmung annehmen. Diese Probleme haben schon immer bestanden; es ist interessant, dass sie in letzter Zeit immer häufiger genannt werden und der Ruf nach ihrer Lösung mit immer grösserer Dringlichkeit ertönt. Diese Erscheinung ist allerdings erklärbar. Zunächst darf man feststellen, dass das Operations Research sich nach und nach als Disziplin etabliert hat. Die Führungsspitzen von Unternehmungen beginnen sich langsam mit diesem Werkzeug zu befreunden und wünschen mit seiner Hilfe Antwort auf Fragen von hoher Wichtigkeit zu erhalten, die sie bisher nur mühevoll und mit dem unbehaglichen Gefühl von grosser Unsicherheit behandeln konnten. Dies betrifft häufig PolitikVariantenprobleme . Während Mischungsprobleme, wie sie beispielsweise ins Gebiet der gewöhnlichen linearen Programmierung fallen (z.B. optimale Produktionsmengenzusammensetzung) mit den klassischen Methoden des Operations Research meist lösbar sind, stellen Politik-Variantenprobleme normalerweise Aufgaben des eingangs erwähnten Typus dar. Nun sind Mischungsprobleme aber naturgemäss meist nicht so kritischer Natur, weil intuitiv gewählte Lösungen oft schon optimumnah ausfallen und sich schlimmstenfalls zu gegebener Zeit korrigieren lassen. Eine bestehende Fabrik kann ohne allzu schwerwiegende Eingriffe ihren Produktionsplan leicht abändern, und die damit verbundenen Kosten sind taktischer GrÖssenordnung. - IV - Politik-Varianten sind im allgemeinen nicht stetig modifizierbar. Eine Firma, die 10 Fabriken und 20 Warenhäuser betreibt, kann die einzelnen gewählten Standorte nicht adaptiv verschieben. Die Unternehmungsleitung muss sich anlässlich von Reorganisationsmassnahmen oder bei Erweiterungsabsichten für eine bestimmte Verteil-Organisation entscheiden, jegliche Aenderungen sind einschneidender Natur und finanziell von strategischer Dimension. Im Zuge der immer stärker sich abzeichnenden Kontaktnahme zwischen Management und Operations Research-Fachleuten ist es daher verständlich, dass gerade derartige, vom unternehmerischen Standpunkt aus besonders brennende Probleme in den Vordergrund gerückt werden. Gleichzeitig - und dies ist kein Zufall, denn angewandte Wissenschaft und Praxis stehen seit jeher und auf allen Gebieten in gegenseitiger, anspornender Wechselwirkung, - wurden neue Verfahren entwickelt, die auf Probleme dieser Art zugeschnitten sind. Diese Verfahren sind noch keineswegs vollkommen und sie führen auch nicht immer zum Ziel; denn je nach der angewandten Methodik ist entweder die Konvergenz oft schlecht oder der Rechenaufwand wächst mit der Dimension des Problems häufig explosionsartig . Das letztere Charakteristikum trifft für kombinatorische Vorgehensweise zu. Das im folgenden zur Sprache gelangende Branch and Bound-Verfahren kann zu den kombinatorischen Methoden gezählt werden. Im wesentlichen liegt sein Bestreben darin, durch ausgeklügelte Systematik von der normalerweise unübersehbaren Anzahl erlaubter Lösungen so rasch wie möglich ganze Familienzweige als nicht in Frage kommend abzuspalten und auf diese Weise mit oft einfacher Probiertechnik das gesuchte Optimum aufzuspüren. Branch and Bound ist gegenwärtig in Mode. Es ist nie schlecht, eine vernünftige Mode mitzumachen, denn so bleibt man in lebendigem Kontakt mit der Entwicklung. Ob die hier vorliegende Moderichtung sich als dauerhaft erweisen wird, muss die Zukunft zeigen. Sicherlich darf man baldige Erarbeitung neuer verbesserter Methoden erwarten, sowohl auf dem Gebiete des Branch and Bound als auch auf jenem anderer Techniken, die sich mit den gleichen Aufgabenstellungen befassen. Einstweilen aber reicht der gegenwärtige Stand des Branch and Bound schon aus, um recht viele bedeutsame Aufgaben des Operations Research zu lösen und wertvolle Anregungen für eine weitere Bereicherung des mathematischen Instrumentariums dieser Disziplin zu bieten. Prof. Dr. Franz Weinberg Direktor des Instituts für Operations Research der ETH INHA LTSVERZEIC HNIS 1 2 3 4 5 6 7 8 9 Branch and Bound: Eine Einführung GIANCORRADO ESCHER 1 GIANCORRADO ESCHER 20 Das Handelsreisenden-Problem Ein Branch and Bound-Algorithmus zur Bestimmung einer exakten Lösung des Maschinenbelegungsplanproblems für 3 Maschinen ULRICH WEISNER 33 OTTO MUELLER 45 NILS KYED 64 PETER KALL 75 PIA PFLUGER 90 Ganzzahlige, Null-Eins- und Gemischt-Ganzzahlige Programmierung im Zusammenhang mit der Branch and Bound-Technik WOLF GANG RUNGGALDIER 107 Vertreter-Touren mit zeitlich variabler Dringlichkeit Das verallgemeinerte Knapsack-Problem Zusammenhang zwischen Dynamischer Programmierung und Branch and Bound Diskussion der Modellwahl am Beispiel des Travelling-Salesman Problems Optimales Rangieren PETER SCHALTEGGER 127 JOSEF ACHERMANN 143 10 Optimale Bildung von Nahgüterzügen 11 Gemeinsame Losgrössenrechnung für Teilevarianten bei deterministischem Bedarf KLAUS RUTZ 155 VERZEICHNIS DER AUTOREN Dr. Josef Achermann Wander AG., Bern Giancorrado Escher, dipl. Phys. ETH Institut für Operations Research der ETH Zürich Prof. Dr. Peter Kall Institut für Operations Research der Universität Zürich Dr. Pia Korevaar-Pfluger Math. Dept. San Diego State College Nils Kyed Institut für Elektronische Datenverarbeitung der Universität Zürich Dr. Otto Müller Werkzeugmaschinenfabrik Oerlikon-Bührle AG. Prof. Dr. Wolfgang Runggaldier Universita degli Studi di Padova Dr. Klaus Rutz Heberlein & Co. AG., Wattwil Peter Schaltegger, lic. Math. FIDES Treuhand-Vereinigung, Zürich Ulrich Weisner, dipl. Phys. ETH Institut für Operations Research der ETH Zürich HERSTELLUNG DES MANUSKRIPTS Frau Maria Daniel, Institut für Operations Research der ETH Zürich VORBEMERKUNG Bei dieser Veröffentlichung handelt es sich um eine Zusammenstellung von Unterlagen für einen vom Institut für Operations Research der ETH Zürich gehaltenen Kurs. Gegenüber der 1. Auflage wurden einige wesentliche Aenderungen vorgenommen, die der Ergänzung und der besseren Verständlich.,. keit dienen. Einige der Beiträge folgen ziemlich genau den Gedankengängen bereits publizierter Abhandlungen. Die entsprechenden Literaturangaben gehen aus dem Text hervor. BRANCH AND BOUND: EINE EINFUEHRUNG Giancorrado Escher 1. 1. Einführendes Beispiel Die Verkehrsbetriebe einer Stadt unterhalten ein Netz von 5 Linien mit folgendem maximalen Wagenbedarf pro Linie: Linie Fahrzeuge 1 17 2 16 3 21 4 8 5 12 total (1. 1) 74 Der Wagenpark beträgt 80 Fahrzeuge, es stehen also jeweils mindestens 6 Fahrzeuge ausser Betrieb (Revisionen, Reparaturen, Einsatzmöglichkeit bei Notfällen, etc.). Erhebungen aus dem letzten Betriebsjahr ergaben folgende mittlere Zahlen von beförderten Passagieren (in 1000) pro Tag: Linie Passagiere (in 1000) 1 11 2 14 3 16 4 8 5 7 total 56 (1. 2) - 2 - Auf sämtlichen Linien verkehrt Rollmaterial desselben Typus, das jedoch infolge langjährigen Gebrauchs im Betrieb sehr teuer geworden ist. Es ist ausserdem veraltet und genügt nicht mehr den Anforderungen an Bequemlichkeit, die der Fahrgast erwartet. Die Gesellschaft beschliesst daher, ihren Wagenpark zu erneuern; in einer 1. Etappe steht ihr zu diesem Zwecke ein Kredit zur Verfügung, der es gestattet, höchstens 40 Fahrzeuge durch wirtschaftlichere, modernere und komfortablere zu ersetzen. Der Austausch der Fahrzeuge soll nach folgenden Richtlinien vorgenommen werden: 1) Auf allen Linien bleibt die gleiche Anzahl Fahrzeuge wie bisher im Einsatz. 2) Die Linien mit den höheren Beförderungszahlen sollen als erste berücksichtigt werden, um möglichst viele Passagiere in den Genuss der grösseren Bequemlichkeit zu bringen. 3) Die Ersetzung soll linienweise erfolgen, d. h., am Schluss soll es keine Linie geben, auf der gleichzeitig neue und alte Wagen verkehren. Dies mit Rücksicht auf die Wagenführer, die linienweise eingesetzt sind und umgeschult werden müssen, falls die Linie auf neues Rollmaterial eingerichtet wird. 4) Es ist damit zu rechnen, dass, bei Bestellungen bis 30 Wagen deren 2, von 31 bis 40 Wagen deren 3 wegen Reparaturen, Revisionen, Einsatz bei Notfällen, etc. ausser Betrieb in Reserve gelassen werden müssen. Wieviel Fahrzeuge soll die Gesellschaft ersetzen und wie sollen die neuen Wagen auf die Linien verteilt werden, um möglichst vielen Fahrgästen den höheren Komfort zur Verfügung zu stellen? - 3 - Bei diesem recht einfachen Problem dürfte es nicht schwierig sein, die Optimallösung zu "erraten". Man findet sie z. B., indem man, unter möglichster Ausschöpfung des "Plafonds" von 40- 3 = 37 Fahrzeugen, diese auf verschiedene Arten auf die Linien verteilt: Linien Total Wagen Total Passagiere (in 1000) 1 2 33 25 1 4 5 37 26 2 3 37 30 2 4 5 36 29 3 4 29 24 3 5 33 23 (1. 3) Durch Vergleich der beförderten Passagierzahlen erkennt man, dass die dritte Politik - "Ersetzen der Wagen auf Linien 2 und 3" - die optimale ist. Sie schöpft - nebenbei bemerkt - die Maximalzahl Fahrzeuge aus. Nachdem dieser erste, mehr intuitive Lösungsweg gezeigt wurde, soll eine strengere, verallgemeinerungsfähige Methode ausgearbeitet werden. Zu diesem Zwecke führe man folgende Variable ein: x. 1 Anteil neuer Wagen am Bedarf für die Linie (i = 1, ... , 5). Dann kann man das Problem wie folgt schreiben: J 1 Max. z = (1.4) (1. 5) x. = 0 oder 1 1 (i = 1, ... ,5). (1. 6) - 4 - Dieses Problem sieht einem gewöhnlichen linearen Programm sehr ähnlich; der Unterschied liegt in den Restriktionen (1.6), die die Ganzzahligkeit fordern und die das Problem in entscheidender Weise verändern. Würde man (1. 6) ersetzen durch o :s; x. so: 1 1 (i = 1, ... , 5), (1. 7) dann hiesse die Lösung des nicht-ganzzahligen Problems: (1. 8) das heisst: ersetze alle Fahrzeuge auf Linien 2 und 4, sowie 13 der 21 auf Linie 3. Dadurch werden 31.900 Passagiere berücksichtigt. Die Einführung der Ganzzahligkeitsrestriktionen verschlechtert also die Optimallösung um 1,9 Tausend. Das lineare ganzzahlige Programm (1.4) bis (1.6), mit einer einzigen Restriktion und nur nichtnegativen Koeffizienten heisst in der Fachliteratur "Rucksackproblem" . Am Problem (1. 4) bis (1. 6) soll nun das Verfahren "Branch and Bound" erklärt werden. 1.1.3. Branch Um ein schwer lösbares Problem zu lösen (und wir nehmen an, (1. 4) bis (1. 6) sei schwer lösbar), kann man so vorgehen, dass man es mit einem zweiten leichteren Problem in Verbindung bringt, und hofft, zeigen zu können, dass die optimale Lösung des leichten Problems ebenfalls für das schwere Problem das Optimum darstellt. Natürlich hat man sich die Frage zu stellen, was passiert, wenn man nach Lösung des einfachen Problems feststellen muss, dass damit das schwierige Problem noch nicht gelöst ist. Man muss dann einen anderen "Versuch" starten, und es stellt sich somit sofort die Frage, nach welchem Kriterium man die verschiedenen - 5 - Versuche anlegen und ordnen soll, um mit möglichst wenig Aufwand und innerhalb einer vernünftigen Zeitspanne zum gewünschten Resultat zu kommen. In unserem konkreten Beispiel hat man ein auf der Hand liegendes Verfahren, um aus dem schweren Problem zwei einfachere zu konstruieren: man nehme eine der fünf Variablen und fixiere ihren Wert das eine Mal auf 0, das andere Mal auf 1; das Resultat dieser Manipulation ist, dass man zwei "Unterprobleme" von folgender Gestalt erhält: zl 7x 5 = Max. = { (1. 9) x. 1 = 0 oder 1 (i = 2, ... , 5) 11·1 + 14x 2 + 16x 3 + 8x 4 + 7x 5 = Max. 17·1 + 16x 2 + 21x 3 + 8x 4 + 12x 5 :s: 37 x. = 0 oder 1 1 (1. 10) (i = 2, ... , 5). Das erste Glied der Zielfunktion ist in beiden Fällen eine Konstante; der Effekt dieses ersten Gliedes äussert sich im Wert der Zielfunktion z 1 bzw. z 2 für das entsprechende Teilproblem, nicht jedoch in den Werten der Variablen xl' ... , x 5 ' die den Wert zl bzw. z2 liefern; man kann es daher aus der Zielfunktion streichen, unter der Bedingung, dass man den Beitrag dieses konstanten Termes nicht v3rgisst. Dieser Punkt bedarf noch einer Erläuterung, für die auf den nächsten Abschnitt 1.1.4. verwiesen wird. Die Restriktion der Unterprobleme wird durch Berücksichtigung der Tatsache, dass das erste Glied eine Konstante ist, modifiziert, indem man diese Konstante auf die rechte Seite der Ungleichung bringt. Dann erhält man folgende Formulierung für (1. 9) und (1.10): - 6 - 14x 2 +16x 3 +8x 4 + 7x 5 16x 2 + 21x 3 + 8x 4 + 12x 5 x. = 0 oder 1 1 (x 14x 2 + 16x 3 + 8x 4 + Max. s; 37 = 2, ... , 5) 7x 5 Max. 16x 2 + 21x 3 + 8x 4 + 12x 5 s: 20 x. = 0 oder 1 1 (1.11) (1. 12) (x = 2, ... , 5). Wie man sehen kann, sind zwei neue Probleme entstanden, die in dem Sinne einfacher sind als das Ausgangsproblem, dass sie je eine Variable weniger enthalten. Im übrigen ist der Problemtyp der gleiche geblieben. Jedes davon ist in dem Sinn als "Unterproblem" des Ausgangsproblems zu bezeichnen, dass dessen Lösungsmenge ein Teil der ursprünglichen Lösungsmenge ist. Man bemerke: die beiden Teilmengen enthalten keine gemeinsamen Punkte und deren Vereinigung ist identisch mit der Lösungsmenge des ursprünglichen Problems. Welches Unterproblem enthält nun die optimale Lösung von (1. 4) bis (1. 6)? Diese Frage lässt sich leider noch nicht direkt beantworten; zuerst müssen (1.11) und (1.12) separat gelöst, deren Lösungen verglichen und die bessere davon ausgewählt werden. Dies tönt zwar recht einfach, erweist sich aber in der Ausführung als recht umständlich. Will man nämlich den hier eingeschlagenen Lösungsweg beibehalten, so wird man (1. 11) und (1. 12) je ebenso reduzieren, wie das für das Ausgangsproblem der Fall war: es handelt sich ja um den gleichen Problemtyp. Damit erhält man Probleme mit nur drei Variablen; dafür muss man in Kauf nehmen, dass man deren vier zu lösen hat. Die Verallgemeinerung ist nun nicht mehr schwierig: bei jedem Schritt reduziert man die Anzahl Variablen um Eins, dafür verdoppelt man die Anzahl zu lösender Probleme. - 7 - Dies kann man solange weiterführen, bis alle n Variablen durch Reduktion des Problems einen fixen Wert erhalten haben. Dann hat man im ganzen 2 n Probleme erzeugt und jedes davon entspricht genau einer der 2n Möglichkeiten (Kombinationen), den Variablen xl bis x 5 Werte o oder I zuzuweisen. Zur Auffindung der Optimallösung muss man also den Lösungsraum (der bei diskreten Problemen aus endlich vielen Punkten besteht) vollständig durchzählen, enumerieren. Das kann man machen, wenn n relativ klein ist (in unserem Beispiel n = 5, 2 n = 2 5 = 32 geht es noch an), wird aber bei Problemen aus der Praxis mit 20 oder noch mehr Variablen undurchführbar wegen der enormen Anzahl Lösungspunkte, die man erhält. Das soeben beschriebene Verfahren kann durch eine der Graphentheorie entnommene Darstellung veranschaulicht werden: die Menge aller Punkte im Lösungsraum wird durch Festlegen des Wertes einer Variablen zunächst in zwei Untermengen geteilt, jede davon durch Festlegen einer weiteren Variablen wiederum in zwei Unter- Untermengen, und so weiter, bis jede Untermenge noch einen einzigen Punkt im Lösungsraum enthält und der Lösungsraum in seine 2n Komponenten aufgeteilt ist. Das Bild dieser fortgesetzten Aufspaltung ist durch einen sogenannten Baum gegeben; er besitzt "Knoten" auf verschiedenen Ebenen und "Knospen" auf der tiefsten Ebene. Jeder Knoten stellt eine Verästelung des Baumes dar; daher auch der Name des Verfahrens: "Branch". _s - o 1 o 1 o 1 o 1 o 1 o 1 o 1 1 o 1 o 1 o 1 o 1 o 1 o 1 o 1 o 1 1 o 1 v o ll s tä n ~ d ig e r L ö sungsb S .u rn 1 - 9 - 1.1.4. Bound Der zweite Teil des Namens, nämlich "Bound", bedarf nun auch noch einer Erklärung. Das Verfahren ist in seiner jetzigen Fassung noch zu schwerfällig und unbrauchbar, da man sämtliche Lösungspunkte durchkämmen muss, um das Optimum zu finden. Man möchte nun einen Mechanismus einbauen, der das Verfahren verkürzt. Es soll ein Kriterium gewonnen werden, das es erlaubt, einem Knoten anzusehen, welche Aussicht auf Erfolg er verspricht, d. h. welche Aussicht dafür besteht, das Optimum in der entsprechenden Teilmenge von Lösungen zu finden. Dieses Kriterium wird durch die sogenannte "Schranke" gegeben, die für jeden Knoten ausgerechnet wird. Wie dies im Einzelnen geschieht, soll zunächst am Beispiel des gestellten Problems demonstriert werden. Ausgangspunkt sei daher wieder das System (1.4) bis (1.6); um das Vorgehen zu verdeutlichen, zeichne man, parallel zu den einzelnen Schritten der Rechnung, den entsprechenden Lösungsbaum. (1.4) bis (1.6) enthält sämtliche Lösungen, die Spitze des Baumes wird daher mit "alle Lösungen" angeschrieben. Dazu muss nun noch die entsprechende Schranke berechnet werden. Dies geschieht wie folgt: ohne auf die Restriktion Rücksicht zu nehmen, fragt man, wieviele Passagiere höchstens in den Genuss der Neuerung kommen können. Falls keine Restriktion (d. h. keine Kreditbeschränkung für Neuanschaffungen) vorliegt, ist diese Anzahl offensichtlich durch "Alle Passagiere" gegeben. Die Summe aller Passagiere ist 56'000, wie man leicht nachprüfen kann. Diese Zahl bildet die sogenannte "Schranke" ("Baound") für den Knoten nullter Ordnung. Für alle weiteren Knoten (= Teilprobleme) wird nach demselben Gesichtspunkt verfahren, wie man gleich sehen wird. Vorerst sei aber noch die Zahl "37", nämlich die Anzahl der zur Verfügung stehenden Fahrzeuge, ebenfalls an den nullten Knoten angeschrieben. Sodann führe man den ersten Branch-Schritt durch. Es entstehen die Probleme (1. 11) und (1. 12). Bei näherer Betrachtung sieht man, dass sie sich lediglich um die Konstante in der Restriktion unterscheiden. - 10 - Diese Konstante hat eine sehr anschauliche Bedeutung, nämlich die Anzahl noch zur Verfügung stehender Fahrzeuge. Das ist der Grund, warum diese Zahl bei jedem Schritt mitzuführen ist; sie ermöglicht eine Kontrolle über die "Zulässigkeit" des entsprechenden Knotens, d. h. "Branch" hat nur dann einen Sinn, solange noch Fahrzeuge zur Verfügung stehen; der Knoten kann verlassen werden, sobald diese Zahl negativ werden sollte. Was die beiden Probleme aber noch weiter unterscheidet, und in (1.11) bzw. (1.12) gar nicht zum Ausdruck kommt, ist die Schranke, die man dazu berechnet. In (1.11) wurde ein Entschluss gefasst (xl = 0), der es 11'000 Passagieren unmöglich macht, auf neuen Fahrzeugen zu fahren: für dieses Problem ist die Schranke auf b 2 = 45'000 gesunken. Für (1.12) [Entscheid: xl = 1] ist natürlich immer noch der alte Wert b 1 = 56'000 massgebend: theoretisch ist es immer noch möglich, sämtliche Passagiere zu berücksichtigen. Das "Bound", die Schranke, liefert einem also ein "Präferenzkriterium". Es besteht grössere Hoffnung, das gesuchte Optimum im Teilbaum mit xl = 1 zu finden. Deshalb geht man nun so vor, dass man nur diesen Teilbaum, bzw. das zugehörige Unterproblem, weiter untersucht und auf dieses die gleichen Gedanken anwendet, die soeben ausgeführt wurden. Das zweite Problem mit xl = 0 wird für den Augenblick zurückgestellt, da es weniger Aussicht auf Erfolg verspricht (was natürlich nicht heissen soll, dass es nicht doch noch, zu einem späteren Zeitpunkt, wieder aufgegriffen werden muss! ). Ausgehend von (1. 12) wird also nun x 2 = 1 oder x 2 = 0 gesetzt. Dies führt zu folgenden beiden neuen Unterproblemen, nach einigen Umformungen auf "Normalform" gebracht: 16x 3 + 8x 4 + 7x 5 = Max. 21x 3 + 8x 4 + 12x 5 ,;; 20 Xi = 0 oder 1, (i = (1. 13) 3, 4, 5) - 11 - z4 = 16x 3 + 8x 4 + { 7x 5 = Max. 21x 3 + 8x 4 + 12x 5 s; 4 x. = 0 oder 1, (1. 14) (i = 3, 4, 5). 1 Nun stehen bereits drei Kandidaten zur Verfügung zur weiteren Untersuchung. Wie vorhin wird man denjenigen aussuchen, dessen Bound am grössten ist. Mit diesem Prinzip wird übrigens bis zum Schluss weitergefahren. Die drei Schranken lauten nun: 42'000 (für (1.13)) 56'000 (für (1. 14)) 45'000 (für (1. 11)) (1. 15) Also wird (1. 14) zur weiteren Untersuchung herausgegriffen. Beim nächsten Branch-Schritt (x 3 = 0 oder x 3 = 1) passiert erstmals etwas Neues, nämlich, die Restriktion wird für x 3 = 1 verletzt: z 5 = 8x 4 + { 7x 5 8x 4 + 12x 5 s; 4 Xi = 0 oder 1, z6 = 8x 4 + { Max. 8x 4 + (i = 4, 5) 7x 5 = Max. 7x 5 :s: - 17 x. = 0 oder 1, 1 (1. 16) (1. 17) (i = 4, 5) Offensichtlich ist (1.17) unlösbar, da die Konstante auf der rechten Seite der Restriktion negativ geworden ist, während die linke nur nichtnegative Werte annehmen kann. Es bleibt daher nur (1. 16) zur Diskus- - 12 - sion; da das entsprechende Bound b 5 = 40'000 beträgt, und dieser Wert tiefer liegt als b 1 = 45'000, wird der entsprechende Ast verlassen und wieder auf b 1 , bzw. auf Problem (1. 11) zurückgesprungen. Es ist nochmals mit Nachdruck darauf hinzuweisen, dass das Nichtverfolgen eines Astes nur provisorischen Charakter hat und man jederzeit in Kauf nehmen muss, dass man in einer späteren Phase des Verfahrens wieder darauf zurückkommen muss (ausser, wenn der betreffende Ast keine zulässige Lösung enthält, wie z.B. (1.17)). Nach Ausführen weiterer Branch and Bound-Schritte auf das Problem (1. 5) bis (1. 7), die nicht im Detail ausgeführt seien, erhält man folgen- den Baum (die Knoten sind in der Reihenfolge ihres Auftretens durchnumeriert), vgl. Abb. 1. 2. Durch konsequentes Ausführen der Branch and Bound-Schritte hat man bei Schritt No. 17 erstmals das Ende des Baumes erreicht. Die entsprechende Lösung: Xl x 5 = 0; x 2 = x 3 = 1; b 17 = z = 30'000; f 17 = 0 (d. h.: alle 37 Fahrzeuge werden beansprucht), stellt eine "zulässige Lösung" des Problems dar. Ein Vergleich mit der inutitiv = x4 = gefundenen Lösung (vgl. Abschnitt 1.1.1.) zeigt, dass es sich hier bereits um das Optimum handelt. Leider kann man aus der Sicht des Branch and Bound- Verfahrens noch nicht diese Behauptung aufstellen, da einem die nötigen Informationen dazu fehlen. Man weiss nur, dass der Punkt zulässig ist, bzw. dass er eine mögliche Erneuerungspolitik darstellt. Zur Bestätigung der Optimalität sind noch zwei Knoten zu untersuchen, nämlich (7) und (15) (vgl. Abb. 1. 2), deren Bound grösser ist als der soeben gefundene Wert. Es besteht also noch die Möglichkeit, eine bessere Lösung zu finden. - 13 - Lösung Nr. 1 Be schriftung: CD: b. Bound f. Restriktions Konstante x Lösung nicht zulässig 1 1 x Knoten Nr. Abb. 1. 2 Auffinden der Lösung Erst nach Ausführung weiterer acht Schritte sieht man, dass die erste Lösung das Maximum darstellte; mit dem 26. Knoten ist man an allen Aesten entweder zum zulässigen Gebiet hinausgekommen oder auf ein Bound gestossen, das tiefer liegt als der Wert für die gefundene Lösung. Somit weiss man jetzt, dass es sich um das Optimum handelt. Der vollständige Lösungsbaum für unser Problem ist in Abb. 1. 3 dargestellt.