Zum Inhalt springen

Branch-and-Cut

aus Wikipedia, der freien EnzyklopÀdie

Branch-and-Cut bzw. Verzweigung und Schnitt bezeichnet in der kombinatorischen Optimierung, einem Teilgebiet der diskreten Mathematik, ein Verfahren zur Lösung ganzzahliger linearer Optimierungsprobleme. Das Verfahren besteht aus der Kombination von Schnittebenenverfahren und Branch-and-Bound.

WĂ€hrend Schnittebenen und Branch-and-Bound bereits in den 1950er und 1960er Jahren entwickelt wurden, wurden diese Verfahren erst in den 1980er Jahren zu Branch-and-Cut kombiniert. Eine der ersten Anwendungen dieses Verfahrens war die Untersuchung des Problems des Handlungsreisenden durch Manfred Padberg, Martin Grötschel und andere, die wesentlich zur Weiterentwicklung von Branch-and-Cut beigetragen hat. In den 1990er Jahren wurden durch George Nemhauser, Laurence Wolsey, Robert Bixby und andere neue Schnittebenen fĂŒr verschiedene kombinatorische Optimierungsprobleme, bessere Branchingregeln und geschickte Kombinationen beider Verfahren entwickelt, wodurch Branch-and-Cut heute zu einem Standardwerkzeug der ganzzahligen linearen Optimierung geworden ist. Die besten Löser fĂŒr ganzzahlige lineare Programme basieren heute auf diesem Prinzip, und die Lösungsverfahren werden nach wie vor weiterentwickelt.

Ziel der ganzzahligen linearen Optimierung ist die Maximierung (oder Minimierung) einer linearen Zielfunktion ĂŒber einem Polyeder, das durch ein lineares Ungleichungssystem gegeben ist, wobei nur ganzzahlige Punkte zulĂ€ssig sind:

Dieses Problem ist in allgemeiner Form NP-vollstÀndig, d. h., es ist vermutlich nicht effizient lösbar. Ein Standardansatz der ganzzahligen linearen Optimierung ist die Lösung der sogenannten LP-Relaxierung dieses Systems, also des linearen Programms, das durch Weglassen der Ganzzahligkeitsbedingungen entsteht. Dieses Problem ist vergleichsweise einfach lösbar, beispielsweise mit dem Simplex-Verfahren.

Schnittebenenverfahren

[Bearbeiten | Quelltext bearbeiten]
HinzufĂŒgen einer Schnittebene (grĂŒn)

Die Lösung der LP-Relaxierung erfĂŒllt zwar die Bedingungen , ist aber in der Regel nicht ganzzahlig. Ein Schnittebenenverfahren fĂŒgt nun dem System weitere Ungleichungen hinzu, die von allen zulĂ€ssigen (ganzzahligen) Punkten erfĂŒllt sind, aber nicht von der aktuellen Lösung der LP-Relaxierung. Beim erneuten Lösen des Systems mit den neuen Ungleichungen muss daher eine andere Lösung herauskommen, die hoffentlich „nĂ€her“ am gesuchten Optimum liegt. Ist die neue Lösung ganzzahlig, ist sie auch optimal fĂŒr das Ausgangsproblem. Andernfalls muss wieder nach neuen Schnittebenen gesucht werden. Geometrisch entspricht das HinzufĂŒgen einer weiteren Ungleichung der Bestimmung einer Hyperebene (im Bild grĂŒn), die die LP-Lösung (blauer Punkt ganz oben) vom meist unbekannten Polyeder der ganzzahligen Punkte (rot) trennt.

Branch-and-Bound

[Bearbeiten | Quelltext bearbeiten]
Zerlegung des Problems in die Teilprobleme mit und

Werden keine weiteren Schnittebenen mehr gefunden, die man noch hinzufĂŒgen könnte, ohne dass die aktuelle Lösung ganzzahlig ist, wird ein Branch-and-Bound-Prozess gestartet. Dieser unterteilt das Problem in zwei Teilprobleme. Ein Standardverfahren ist das Branching auf einer einzelnen Variablen. Hat beispielsweise eine Variable , die eigentlich ganzzahlig sein sollte, in der aktuellen LP-Lösung den Wert 1,8, so wird in einem Teilproblem diese Variable auf beschrĂ€nkt und in dem anderen auf (siehe Bild). Dadurch wird die Menge der zulĂ€ssigen Lösungen in zwei disjunkte, also nicht ĂŒberlappende, Teile aufgeteilt, da jede zulĂ€ssige Lösung ja genau eine der beiden Bedingungen erfĂŒllen muss. Statt Schranken auf einzelne Variablen zu setzen, können auch in jedem Teilproblem weitere lineare Ungleichungen hinzugefĂŒgt werden.

Durch iterative Anwendung dieses Verfahrens wird ein Entscheidungsbaum aufgebaut, in dem ein Teilproblem umso weiter eingeschrĂ€nkt ist, je tiefer es im Baum liegt. Auf diese Art kann der gesamte Lösungsraum systematisch durchsucht werden. Ein Vorteil dieses Verfahrens gegenĂŒber der reinen AufzĂ€hlung aller Lösungen ist die Tatsache, dass in einigen FĂ€llen komplette TeilbĂ€ume abgeschnitten werden können (Bounding), weil klar ist, dass in diesem Teilbaum keine optimale Lösung enthalten sein kann.

Kombination zu Branch-and-Cut

[Bearbeiten | Quelltext bearbeiten]

Dadurch, dass vor dem Branch-and-Bound-Prozess schon Schnittebenen zur LP-Relaxierung hinzugefĂŒgt wurden, findet das Verfahren oft sehr viel schneller eine Lösung, als wenn der Branch-and-Bound-Baum auf der ursprĂŒnglichen LP-Relaxierung aufgebaut wird. DarĂŒber hinaus können oft auch wĂ€hrend des Branchings weitere Schnittebenen bestimmt werden, die man ohne die EinschrĂ€nkungen in den Teilproblemen nicht gefunden hĂ€tte. Diese Schnittebenen können entweder global gĂŒltig, also fĂŒr das ursprĂŒngliche Problem zulĂ€ssig, oder lokal gĂŒltig, also nur fĂŒr den aktuellen Teilbaum mit seinen EinschrĂ€nkungen zulĂ€ssig sein. Des Weiteren können in den einzelnen Teilproblemen zusĂ€tzliche Heuristiken zur Bestimmung zulĂ€ssiger Lösungen aufgerufen werden, wodurch evtl. weitere TeilbĂ€ume frĂŒhzeitig abgeschnitten werden können.

Bewertung des Verfahrens

[Bearbeiten | Quelltext bearbeiten]

Branch-and-Cut hat sich gegenĂŒber reinem Branch-and-Bound oder Schnittebenenverfahren als deutlich vorteilhaft erwiesen. Ein Hauptvorteil des Verfahrens in der Praxis gegenĂŒber Heuristiken liegt darin, dass es generisch ist, also als Standardlösungsverfahren fĂŒr eine ganze Reihe von Optimierungsproblemen verwendet werden kann, wĂ€hrend Heuristiken meist problemspezifisch entwickelt werden mĂŒssen. Als weiteren Vorteil gegenĂŒber der alleinigen Anwendung der meisten Heuristiken liefert das Branch-and-Cut-Verfahren eine AbschĂ€tzung, wie gut eine gefundene Lösung im Vergleich zu einer Optimallösung ist, ohne diese selbst zu kennen. Die Lösungszeiten bis zum Finden einer Optimallösung mitsamt dem Beweis der OptimalitĂ€t können allerdings sehr lang sein. TatsĂ€chlich ist es bei vielen ganzzahligen linearen Programmen so, dass in kurzer Zeit gute Lösungen gefunden werden, der Beweis der OptimalitĂ€t aber sehr lange dauert. Eine zumindest in der Forschung verbreitete Variante ist daher, in den einzelnen Teilproblemen mit generischen oder problemspezifischen Heuristiken schnell gute Lösungen zu berechnen, deren QualitĂ€t dann durch das gesamte Branch-and-Cut-Verfahren abgeschĂ€tzt werden kann. Bei Erreichen einer Lösung, die beispielsweise höchstens 5 % schlechter ist als eine Optimallösung, kann das Verfahren abgebrochen werden, wenn diese LösungsqualitĂ€t fĂŒr praktische Zwecke ausreichend ist.

  • George Nemhauser und Laurence Wolsey: Integer and Combinatorial Optimization. Wiley Interscience, 1988, ISBN 0-471-35943-2.