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:
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
Seien
- zulässige Menge für MIP
- zulässige Menge für LP-Relaxierung
Zwei Annahmen müssen getroffen werden:
- LP-Relaxierung besitzt keine zulässige Lösung oder eine Optimallösung, ist also nicht unbeschränkt.
- 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:
- Prune by Infeasibility
- Prune by Integrality
- Prune by Bound
- 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: