Übung 08: Branch & Bound

Grundlagen Operations Research

Video zur Übung

Aufgabe 1

Gegeben sei folgendes ganzzahlige Optimierungsproblem:

maximiere F=X1+2X2+3X3u.d.N.2X1+X2173X2+3X313X1,X2,X30 und ganzzahlig \begin{aligned} \text{maximiere } \; & F = X_1 + 2 X_2 + 3 X_3 \\ \text{u.d.N.} \quad & 2 X_1 + X_2 \le 17 \\ & 3 X_2 + 3 X_3 \le 13 \\ & X_1, X_2, X_3 \ge 0 \text{ und ganzzahlig} \end{aligned}

Im Rahmen eines Branch-&-Bound-Verfahrens wurden die zusätzlichen Restriktionen X21X_2 \ge 1 und X21X_2 \le 1 eingeführt, also X2=1X_2 = 1.

  1. Bestimmen Sie eine obere Schranke für das zugehörige Teilproblem.
  2. Lösen Sie das ganzzahlige Teilproblem grafisch.
  3. Überprüfen Sie Ihre Lösungen mit Julia.

Ihre Lösung in Julia

Modellieren Sie zunächst die LP-Relaxation des Teilproblems (X2=1X_2 = 1 fixieren Sie mit fix(modell[:X][2], 1; force = true)) und nennen Sie das Modell modell:

using JuMP, HiGHS

modell = Model(HiGHS.Optimizer)
set_silent(modell)

# IHR CODE HIER

optimize!(modell)
# Führen Sie diese Zelle nach Ihrer Lösung aus:
@assert isapprox(objective_value(modell), 20.0; atol = 1e-4) "Noch nicht korrekt, ist X2 auf 1 fixiert und das Problem noch nicht ganzzahlig?"
println("Obere Schranke korrekt: F = ", objective_value(modell))

Das ganzzahlige Teilproblem

Deklarieren Sie die Variablen nun ganzzahlig (Int) und lösen Sie erneut, das Ergebnis muss zu Ihrer grafischen Lösung passen:

@assert isapprox(objective_value(modell), 19.0; atol = 1e-4) "Noch nicht korrekt, sind alle Variablen ganzzahlig deklariert?"
println("Ganzzahliges Teilproblem korrekt: F = ", objective_value(modell))

Aufgabe 2

Gegeben sei der folgende Branch-&-Bound-Baum. Jeder Kasten zeigt den Namen des Teilproblems, die Schranke Fi\bar{F}_i und die Lösung (X1,X2,X3,X4)(X_1, X_2, X_3, X_4):

  1. Was für ein Variablentyp wird betrachtet?

  2. Handelt es sich um eine Maximierung oder eine Minimierung?

  3. Ersetzen Sie die Fragezeichen durch die zugehörigen Variablenfestlegungen.

  4. Welche Regel wurde bei der Variablenauswahl angewandt?

  5. Bestimmen Sie die Reihenfolge der Abarbeitung der Teilprobleme bei reiner Tiefensuche, bei Tiefensuche mit MUB und bei Breitensuche (vgl. Vorlesung 8).