Branch-and-Bound Verfahren

Das Branch-and-Bound Verfahren nutzt eine Relaxierung, die LP-Relaxierung, aus um ein MIP zu vereinfachen, indem es in Teilprobleme aufgespalten (Branch) wird.

Dabei verwendet es verschiedene Bedingungen (Bound) um nicht alle möglichen Teilprobleme lösen zu müssen:

Ein Verfahren zum lösen von Gemischt-ganzzahligen linearen Optimierungsproblemen.

Für das Problem lässt sich der ZFW beschränken:

  • → Wert einer Optimallösung von LP
  • → Wert einer Optimallösung von MIP

Es gilt: denn mit der Relaxierung kann ein besserer ZFW durch eine für MIP unzulässige Lösung gefunden werden. Wenn aber für MIP zulässig ist, dann ist es bereits die Optimallösung.

Das Problem lässt sich in Teilprobleme zerlegen:

  • Sei gemischt-ganzzahlig
  • Sei mit

Dann ist

  • zulässig für MIP mit oder
  • zulässig für MIP mit

Seien

Zwei Annahmen müssen getroffen werden:

  1. LP-Relaxierung besitzt keine zulässige Lösung oder eine Optimallösung, ist also nicht unbeschränkt.
  2. Alle Koeffizienten in und sind rational (siehe Übung 7)

Vorgehen

Löse die LP-Relaxierung, dabei kann es zu folgenden Fällen kommen:

1. LP Relaxierung liefert eine ganzzahlige Lösung

Wenn die LP-Relaxierung eine ganzzahlige Lösung ergibt, so ist MIP gelöst.

2. LP Relaxierung liefert eine fraktionale Lösung

Wenn die LP-Relaxierung keine ganzzahlige Lösung ergibt, so ist die Lösung ein Wert , der nicht ganzzahlig ist. Partitioniere mit Daraus entstehen zwei MIPs.

Stelle für die beiden MIPs die entsprechenden LP-Relaxierungen auf mit Beim lösen der LP-Relaxierungen können folgende Fälle auftreten:

  1. Prune by Infeasibility
  2. Prune by Integrality
  3. Prune by Bound
  4. Wenn das Problem einen kleineren ZFW als die beste obere Schranke (Prune by Integrality) hat, dann kann noch eine optimale Lösung enthalten. Es wird also erneut partitioniert mit und den Mengen und . Der Vorgang wird wiederholt.

Terminiertheit

Der Algorithmus stoppt, wenn alle Teilprobleme abgearbeitet sind. Das passiert in endlich vielen Schritten, wenn die ganzzahligen Variablen beschränkt sind. Die Anzahl an Teilproblemen kann aber exponentiell in der Anzahl der ganzzahligen Variablen wachsen.

Implementierung

Für eine effiziente Implementierung muss noch eine passende Node Selection Rule in Schritt 3 und Branching Rule in Schritt 13 des Algorithmus festgelegt werden.

Algorithmus

Beispiel

Oft wird ein Graph als Darstellung des Verfahrens verwendet: