Übung 07: Transportproblem

Grundlagen Operations Research

Video zur Übung

Aufgabe 1

Gegeben sei der folgende, mit Transportkosten je Mengeneinheit bewertete Graph eines klassischen Transportproblems. Die gestrichelten Pfeile repräsentieren nicht realisierte und die anderen Pfeile realisierte Transportverbindungen.

Graph des Transportproblems: links die Anbieter 1 und 2, rechts drei Nachfrager (von oben nach unten 1 bis 3). Durchgezogene Pfeile mit Kosten: 1→1 (140), 1→2 (70), 2→1 (80), 2→3 (120). Gestrichelte Pfeile: 1→3 (100), 2→2 (130).

Bestimmen Sie die reduzierten Kosten der Nichtbasisvariablen.

Aufgabe 2

Gegeben sei das folgende klassische Transportproblem mit drei Produktionsstandorten und fünf Unternehmen:

cijc_{ij} j=1j = 1 j=2j = 2 j=3j = 3 j=4j = 4 j=5j = 5 Angebot aia_i
i=1i = 1 130 140 170 150 180 40
i=2i = 2 210 150 170 130 130 60
i=3i = 3 140 160 210 90 170 70
Nachfrage bjb_j 30 40 50 60 30
  1. Bestimmen Sie mit der Vogelschen Approximationsmethode eine Startlösung.
  2. Wenden Sie anschließend die MODI-Methode an.
  3. Vergleichen Sie Ihre Lösung mit der Julia-Lösung.
HinweisAngebot und Nachfrage

Das Gesamtangebot (170) deckt die Gesamtnachfrage (210) nicht. Sie benötigen einen fiktiven Anbieter mit Angebot 40 und Transportkosten 0 (vgl. Vorlesung 7).

Ihre Lösung in Julia

Nennen Sie Ihr Modell modell. Sie können den fiktiven Anbieter als vierte Zeile der Kostenmatrix ergänzen oder mit Ungleichungen arbeiten, dann entfällt er:

using JuMP, HiGHS

a = [40, 60, 70]
b = [30, 40, 50, 60, 30]
c = [130 140 170 150 180;
     210 150 170 130 130;
     140 160 210  90 170]

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

# IHR CODE HIER

optimize!(modell)
# Ergebnisse ausgeben, z. B. @show value(X1) oder @show value.(X)
# Führen Sie diese Zelle nach Ihrer Lösung aus:
@assert isapprox(objective_value(modell), 20800.0; atol = 1e-3) "Noch nicht korrekt, liefert der fiktive Anbieter wirklich kostenlos?"
println("Transportproblem korrekt: F* = ", objective_value(modell))