• Keine Ergebnisse gefunden

Lineare Programmierung

4.2 Ganzzahlige lineare Programmierung

Wird ein lineares Programm um die Forderung der Ganzzahligkeit der L¨osungen erg¨anzt, ergibt sich einGanzzahliges lineares Programm bzw. Integer Linear Program (ILP):

zILP = min{c0x|Ax≥b,x∈Zn} (4.3)

Wird Ganzzahligkeit nur f¨ur bestimmte Entscheidungsvariablen gefordert, spricht man von einemGemischt-ganzzahligen linearen Programm bzw. einemMixed-Integer Program (MIP). Die folgenden Ausf¨uhrungen beschr¨anken sich auf rein ganzzahlige Probleme.

Die exakte L¨osung eines ILPs stellt im Normalfall einN P-schweres Problem dar. Die zu diesem Zweck eingesetzten Methoden sind unter anderemSchnittebenenverfahren, Branch-and-Bound sowie ihre Kombination, Branch-and-Cut. F¨ur eine detaillierte Beschreibung dieser und weiterer Verfahren siehe [37].

Sowohl Schnittebenenverfahren als auch Branch-and-Bound beruhen auf der sogenannten LP-Relaxation eines ILP:

Definition 4.2.1 (LP-Relaxation). Gegeben sei ein ILP zILP = min{c0x| Ax ≥b,x∈ Zn}. Das zugeh¨orige LP zLP = min{c0x|Ax≥b,x ∈Rn} wird LP-Relaxation des ILP genannt.

F¨ur die optimalen L¨osungen der LP-Relaxation und des originalen Problems gilt, dass zLP≤zILP, da der zul¨assige Bereich des originalen Problems in jenem der LP-Relaxation enthalten ist.

4.2.1 Schnittebenenverfahren

Schnittebenenverfahren zur L¨osung von ILPs beruhen auf der L¨osung einer Folge von LP-Relaxationen. Algorithmus 4.1 zeigt das allgemeine Vorgehen im Rahmen eines Schnit-tebenenverfahrens. Der Algorithmus l¨ost die LP-Relaxation des ILP und ermittelt so eine L¨osungx. Istx ganzzahlig, so ist die optimale L¨osung des ILP gefunden, und das Ver-fahren wird abgebrochen. Andernfalls wird das ILP um eine Nebenbedingung erweitert, die von allen ganzzahligen L¨osungen, aber nicht vonxerf¨ullt wird. Dieses Verfahren wird fortgesetzt, bis eine ganzzahlige L¨osung gefunden wurde.

Algorithmus 4.1 : Schnittebenenverfahren repeat

1

x← ermittle die optimale L¨osung der LP-Relaxation

2

if x ist nicht ganzzahlig then

3

Erg¨anze das ILP um eine Nebenbedingung, die von allen ganzzahligen

4

L¨osungen, aber nicht vonx erf¨ullt wird until x ist ganzzahlig

5

Die Ermittlung einer durch x verletzten Nebenbedingung wird als Separation Problem [41] bezeichnet. Die Qualit¨at eines Schnittebenenverfahrens hinsichtlich der Anzahl der notwendigen Schritte und damit der Anzahl der zu l¨osenden LP-Relaxationen h¨angt von der Methode zur L¨osung des Separation Problems ab. Einerseits k¨onnen hierf¨ur generische

Verfahren wie der Gomory Cutting-Plane Algorithmus [9] herangezogen werden, welche die L¨osung jedes beliebigen ILPs garantieren. Anderseits k¨onnen auch problemangepasste Verfahren verwendet werden, die problemspezifisches Wissen ausnutzen, um Schnittebenen zu generieren, die in jedem Schritt einen gr¨oßeren Teil des Suchraums eliminieren k¨onnen und damit schneller zu einer L¨osung des ILPs f¨uhren.

4.2.2 Branch-and-Bound

Algorithmus 4.2: Generisches Branch-and-Bound U ← ∞

Fi ←W¨ahle aktives Unterproblem aus L

4

if Fi ist unzul¨assig then

5

else if Fi optimal l¨osbar then

11

L¨oseFi optimal und aktualisiere gegebenenfallsU

12

else

13

Teile UnterproblemFi in weitere Unterprobleme und f¨uge diese zuL

14

hinzu until L=∅

15

Der Branch-and-Bound-Ansatz zur L¨osung ganzzahliger linearer Programme beruht auf der geschickten Enumeration des Suchraums aller zul¨assigen ganzzahligen L¨osungen. Dies geschieht durch Zerteilung des Problems in unabh¨angige Unterprobleme, die in Form eines Baums dargestellt werden k¨onnen. Kann ein Unterproblem nicht optimal gel¨ost werden, wird es wiederum in Unterprobleme zerteilt, bis schließlich eine ganzzahlige L¨osung ermit-telt werden kann. Um Teile des Berechnungs-Baums und damit auch Teile des Suchraums nicht untersuchen zu m¨ussen, st¨utzt sich der Algorithmus auf zwei Schranken:

• Die globale obere Schranke des ZielfunktionswertsU. Diese entspricht dem Zielfunk-tionswert der besten bisher gefundenen ganzzahligen L¨osung.

• Eine untere Schranke des Zielfunktionswerts eines Teilproblems Fi, bezeichnet mit b(Fi).

Falls f¨ur ein Unterproblemb(Fi)≥U gilt, d.h. falls die untere Schranke des Unterproblems Fi die globale obere Schranke nicht unterschreitet, muss es nicht weiter behandelt werden, da die optimale L¨osung von Fi nicht besser ist als die bisher beste ganzzahlige L¨osung.

Algorithmus 4.2 zeigt das allgemeine Vorgehen des Branch-and-Bound-Verfahrens. In die-sem Algorithmus sind Variationsm¨oglichkeiten hinsichtlich des Verfahrens zur Auswahl des aktuellen aktiven Unterproblems, der Methode zur Berechnung von b(Fi) sowie des Verfahrens zur Ermittlung neuer Unterprobleme vorhanden.

Die naheliegendste M¨oglichkeit zur Berechnung vonb(Fi) ist die L¨osung der LP-Relaxation von Fi, da f¨ur die Zielfunktionswerte der optimalen L¨osungen ziLP und ziILP der LP-Relaxation bzw. des originalen Problems ziLP≤ziILP gilt.

Algorithmus 4.3 zeigt eine in dieser Weise angepasste Version des generischen Branch-and-Bound-Algorithmus. Immer wenn die durch L¨osung der LP-Relaxation gewonnene untere Schrankeb(Fi) kleiner als die globale obere SchrankeU ist und die L¨osung der LP-Relaxation nur ganzzahlige Werte enth¨alt, wurde eine verbesserte zul¨assige L¨osung des ILP gefunden und es erfolgt eine Aktualisierung vonU. Ist die L¨osung der LP-Relaxation nicht ganzzahlig, muss das aktuelle Unterproblem in weitere Unterprobleme zerlegt wer-den.

Algorithmus 4.3 : Branch-and-Bound mit LP-Relaxation U ← ∞

Fi ← W¨ahle aktives Unterproblem ausL

4

xi ← L¨ose die LP-Relaxation von Fi

5

if Fi ist unzul¨assig then

6

else if xi ist ganzzahlig then

12

/* Verbesserte ganzzahlige L¨osung gefunden */

13

Teile UnterproblemFi in weiteres Unterprobleme und f¨uge diese zuL

18

hinzu untilL=∅

19

Die Zerlegung von Fi in Unterprobleme geschieht durch Hinzuf¨ugen neuer Nebenbedin-gungen. Dazu wird eine Variablexj der L¨osung der LP-Relaxation mit nicht-ganzzahligem Wertxj ausgew¨ahlt und jeweils eine der beiden Nebenbedingungen

xj ≤ bxjc bzw.

xj ≥ dxje

zu Fi hinzugef¨ugt, wodurch zwei neue Unterprobleme entstehen, die in L aufgenommen werden.

Die Kombination von Branch-and-Bound und Schnittebenenverfahren wird als Branch-and-Cut bezeichnet. Ein solches Verfahren wendet ein Schnittebenenverfahren auf neu erzeugte Unterprobleme an, um den Suchraum weiter einzuschr¨anken.

Kapitel 5