Vorlesung 05: Sonderfälle

Grundlagen Operations Research

Sonderfälle

Wenn der Plan nicht aufgeht

Vier Sonderfälle

Bisher fand der Simplex stets genau eine optimale Lösung. Das ist nicht selbstverständlich:

  • Mehrdeutige Lösung: mehrere Optima.
  • Degenerierte Basislösung: Gefahr des Kreisens.
  • Keine zulässige Lösung: leerer Lösungsraum.
  • Unbeschränktes Problem: F→∞F \to \infty.
TippIdee

Der Simplex meldet jeden Sonderfall selbst. Man muss nur wissen, wo man hinschaut: FF-Zeile, bb-Spalte oder Pivotspalte.

Mehrdeutigkeit

Ein einfaches Beispiel

max⁡F=X1+X2X1+X2≤4X1≤2X1,X2≥0 \begin{aligned} \max \; & F = X_1 + X_2 \\ & X_1 + X_2 \le 4 \\ & X_1 \le 2 \\ & X_1, X_2 \ge 0 \end{aligned}

Frage: Was fällt Ihnen an Zielfunktion und erster Restriktion auf?

Die Zielfunktion verläuft parallel zur ersten Nebenbedingung, das führt zu einer Besonderheit.

TippGleich ausprobieren

Auf der nächsten Folie schieben Sie den Plan selbst. Wo liegt der beste Punkt, und ist es nur einer?

Sie sind dran

Zwei optimale Basislösungen

Im Optimaltableau (nach zwei Pivots) sind die reduzierten Kosten der Nichtbasisvariablen Y2Y_2 null, ein Basistausch kostet nichts:

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 bb
Y1Y_1 1 1 1 0 4
Y2Y_2 1 0 0 1 2
FF −1 −1 0 0 0

FF-Zeile: −1-1 unter X1X_1 und X2X_2, gewählt X1X_1; Quotienten min⁡{4/1,2/1}=2\min\{4/1,\, 2/1\} = 2 ⇒\Rightarrow Pivot [1].

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 bb
Y1Y_1 0 1 1 −1 2
X1X_1 1 0 0 1 2
FF 0 −1 0 1 2

FF-Zeile: −1-1 unter X2X_2; einziger Quotient 2/1=22/1 = 2 ⇒\Rightarrow Pivot [1].

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 bb
X2X_2 0 1 1 −1 2
X1X_1 1 0 0 1 2
FF 0 0 1 0 4

Optimal: X1*=2X_1^* = 2, X2*=2X_2^* = 2, F*=4F^* = 4. Zeile 2 wurde 00-mal zur FF-Zeile addiert: Der Simplex-Multiplikator von Y2Y_2 bzw. die korrespondierende duale Variable ist null ⇒\Rightarrow duale Degeneration.

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 bb
X2X_2 1 1 1 0 4
Y2Y_2 1 0 0 1 2
FF 0 0 1 0 4

Nach dem Basistausch (Y2Y_2 für X1X_1): X2*=4X_2^* = 4, F*=4F^* = 4, eine zweite optimale Basislösung, gleicher Zielwert.

Grafische Deutung

Zulässiger Bereich mit den Ecken (0, 0), (2, 0), (2, 2) und (0, 4). Die Zielgerade liegt auf der Grenzgeraden X₁ + X₂ = 4, sodass die ganze Kante zwischen den markierten Ecken (2, 2) und (0, 4) optimal ist.

Die Zielgerade liegt auf der ersten Nebenbedingung.

WichtigMehrere Optima

(2,2)(2, 2), (0,4)(0, 4) und alle Punkte dazwischen sind optimal.

Degeneration

Entartete Basislösung

max⁡F=X1+2X2X1+X2≤4X1≤2X2≤2X1,X2≥0 \begin{aligned} \max \; & F = X_1 + 2 X_2 \\ & X_1 + X_2 \le 4 \\ & X_1 \le 2 \\ & X_2 \le 2 \\ & X_1, X_2 \ge 0 \end{aligned}

Am Optimum treffen sich drei Restriktionen in einem Punkt, eine Basisvariable wird null.

Eine Basisvariable wird null

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 Y3Y_3 bb
Y1Y_1 1 1 1 0 0 4
Y2Y_2 1 0 0 1 0 2
Y3Y_3 0 1 0 0 1 2
FF −1 −2 0 0 0 0

FF-Zeile: −2-2 unter X2X_2; Quotienten min⁡{4/1,2/1}=2\min\{4/1,\, 2/1\} = 2 ⇒\Rightarrow Pivot [1].

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 Y3Y_3 bb
Y1Y_1 1 0 1 0 −1 2
Y2Y_2 1 0 0 1 0 2
X2X_2 0 1 0 0 1 2
FF −1 0 0 0 2 4

FF-Zeile: −1-1 unter X1X_1; Quotienten 2/1=2/12/1 = 2/1: Gleichstand. Pivot [1] in der Zeile Y1Y_1, dann wird auch Y2Y_2 null.

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 Y3Y_3 bb
X1X_1 1 0 1 0 −1 2
Y2Y_2 0 0 −1 1 1 0
X2X_2 0 1 0 0 1 2
FF 0 0 1 0 1 6

Basisvariable Y2=0Y_2 = 0: eine entartete (degenerierte) Basislösung.

Grafische Deutung

Zulässiger Bereich als Quadrat mit den Ecken (0, 0), (2, 0), (2, 2) und (0, 2). In der optimalen Ecke (2, 2) treffen sich drei Grenzgeraden: X₁ = 2, X₂ = 2 und die gepunktete, redundante X₁ + X₂ = 4.

Die gepunktete Restriktion ist redundant; sie läuft durch die optimale Ecke (2,2)(2, 2).

VorsichtGefahr des Kreisens

Der Simplex kann zwischen Basislösungen desselben Eckpunkts kreisen.

Unzulässigkeit

Widersprüchliche Vorgaben

max⁡F=X1+2X2X1+X2≤4X1≥3X1≤X2X1,X2≥0 \begin{aligned} \max \; & F = X_1 + 2 X_2 \\ & X_1 + X_2 \le 4 \\ & X_1 \ge 3 \\ & X_1 \le X_2 \\ & X_1, X_2 \ge 0 \end{aligned}

Frage: Sehen Sie den Widerspruch?

X1≥3X_1 \ge 3 und X1≤X2X_1 \le X_2 erzwingen X1+X2≥6>4X_1 + X_2 \ge 6 > 4. Aber wie merkt das der Simplex?

Zweiphasen als Detektor

Die ≥\ge-Zeile erhält eine künstliche Variable: X1−Y2+Z1=3X_1 - Y_2 + Z_1 = 3, also ZZ-Zeile −X1+Y2+Z=−3-X_1 + Y_2 + Z = -3.

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 Y3Y_3 Z1Z_1 bb
Y1Y_1 1 1 1 0 0 0 4
Z1Z_1 1 0 0 −1 0 1 3
Y3Y_3 1 −1 0 0 1 0 0
FF −1 −2 0 0 0 0 0
ZZ −1 0 0 1 0 0 −3

ZZ-Zeile: −1-1 unter X1X_1; kleinster Quotient 0/10/1 ⇒\Rightarrow Pivot [1].

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 Y3Y_3 Z1Z_1 bb
Y1Y_1 0 2 1 0 −1 0 4
Z1Z_1 0 1 0 −1 −1 1 3
X1X_1 1 −1 0 0 1 0 0
FF 0 −3 0 0 1 0 0
ZZ 0 −1 0 1 1 0 −3

ZZ-Zeile: −1-1 unter X2X_2; Quotienten min⁡{4/2,3/1}=2\min\{4/2,\, 3/1\} = 2 ⇒\Rightarrow Pivot [2].

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 Y3Y_3 Z1Z_1 bb
X2X_2 0 1 1/2 0 −1/2 0 2
Z1Z_1 0 0 −1/2 −1 −1/2 1 1
X1X_1 1 0 1/2 0 1/2 0 2
FF 0 0 3/2 0 −1/2 0 6
ZZ 0 0 1/2 1 1/2 0 −1

Die ZZ-Zeile hat keine negativen Einträge mehr, aber Z1=1Z_1 = 1 bleibt in der Basis: keine zulässige Lösung.

Dualer Simplex als Detektor

Alternative: X1≥3X_1 \ge 3 mit −1-1 multipliziert (−X1+Y2=−3-X_1 + Y_2 = -3). Die Startlösung ist unzulässig, der duale Simplex übernimmt.

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 Y3Y_3 bb
Y1Y_1 1 1 1 0 0 4
Y2Y_2 −1 0 0 1 0 −3
Y3Y_3 1 −1 0 0 1 0
FF −1 −2 0 0 0 0

Y2=−3Y_2 = -3 ist unzulässig; einziger negativer Koeffizient ⇒\Rightarrow Pivot [−1].

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 Y3Y_3 bb
Y1Y_1 0 1 1 1 0 1
X1X_1 1 0 0 −1 0 3
Y3Y_3 0 −1 0 1 1 −3
FF 0 −2 0 −1 0 3

Jetzt ist Y3=−3Y_3 = -3 unzulässig; wieder nur ein Kandidat ⇒\Rightarrow Pivot [−1].

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 Y3Y_3 bb
Y1Y_1 0 0 1 2 1 −2
X1X_1 1 0 0 −1 0 3
X2X_2 0 1 0 −1 −1 3
FF 0 0 0 −3 −2 9

Y1=−2Y_1 = -2 ist unzulässig, aber die Zeile hat keinen negativen Koeffizienten, kein zulässiger Basistausch: keine zulässige Lösung.

Zwei Wege, ein Befund

  • Zweiphasenmethode: Phase 1 endet mit einer künstlichen Variablen Z1>0Z_1 > 0 in der Basis, obwohl keine Verbesserung mehr möglich ist.
  • Dualer Simplex: für eine negative Basisvariable existiert kein zulässiger Basistausch.

Beides signalisiert dasselbe: der Lösungsraum ist leer.

Grafische Deutung

Grenzgeraden der drei Restriktionen X₁ + X₂ = 4, X₁ = 3 und X₁ = X₂, ohne getönte Fläche: Kein Punkt erfüllt alle drei zugleich, der Lösungsraum ist die leere Menge.

Die drei Halbräume haben keine gemeinsame Fläche.

WichtigLeere Lösungsmenge

Es gibt keine zulässige Lösung.

Unbeschränktheit

Unbegrenzte Zielfunktion

max⁡F=X1+2X2X1−X2≤4X1+X2≥4X1,X2≥0 \begin{aligned} \max \; & F = X_1 + 2 X_2 \\ & X_1 - X_2 \le 4 \\ & X_1 + X_2 \ge 4 \\ & X_1, X_2 \ge 0 \end{aligned}

Der zulässige Bereich ist nach oben offen, die Zielfunktion kennt keine Schranke.

Erkennung im Simplex

Die ≥\ge-Zeile mit −1-1 multipliziert (−X1−X2+Y2=−4-X_1 - X_2 + Y_2 = -4). Die Startlösung ist unzulässig, der duale Simplex übernimmt.

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 bb
Y1Y_1 1 −1 1 0 4
Y2Y_2 −1 −1 0 1 −4
FF −1 −2 0 0 0

Y2=−4Y_2 = -4 ist unzulässig: Pivotzeile Y2Y_2. Spaltenregel aus Vorlesung 3: max⁡{(−1)/(−1),(−2)/(−1)}=2\max\{(-1)/(-1),\, (-2)/(-1)\} = 2 ⇒\Rightarrow Pivot [−1] unter X2X_2.

BV X1X_1 X2X_2 Y1Y_1 Y2Y_2 bb
Y1Y_1 2 0 1 −1 8
X2X_2 1 1 0 −1 4
FF 1 0 0 −2 8

Y2Y_2 soll in die Basis, aber alle Koeffizienten der Pivotspalte sind ≤0\le 0. Es gibt keine Schranke: FF ist beliebig steigerbar.

Grafische Deutung

Zulässiger Bereich oberhalb der Grenzgeraden X₁ + X₂ = 4 und X₁ − X₂ = 4, nach oben offen. Die Zielgerade durch (0, 4) und (8, 0) lässt sich in Pfeilrichtung nach rechts oben beliebig weit verschieben: F wächst unbegrenzt.

Die Zielgerade lässt sich beliebig nach rechts oben schieben.

WichtigKeine endliche Lösung

F→∞F \to \infty: das Problem ist unbeschränkt.

Sonderfälle im dualen Problem

Jeder Fall hat ein Gegenstück im dualen Problem (Vorlesung 4):

  • Primal optimal ⇔\Leftrightarrow dual optimal, mit gleichem Zielwert (starke Dualität).
  • Primal unbeschränkt ⇒\Rightarrow dual unzulässig.
  • Primal unzulässig ⇒\Rightarrow dual unbeschränkt oder unzulässig.

Das Dual des Duals ist wieder das Primal: Die Regeln gelten auch in Gegenrichtung.

Kontrolle mit Julia

Mehrdeutigkeit erkennen

Die reduzierten Kosten verraten die Mehrdeutigkeit: HiGHS findet die Ecke (0,4)(0, 4); die Nichtbasisvariable X1X_1 hat reduzierte Kosten null, ein Basistausch wäre gratis:

using JuMP, HiGHS

modell = Model(HiGHS.Optimizer); set_silent(modell)
@variable(modell, X1 >= 0); @variable(modell, X2 >= 0)
@objective(modell, Max, X1 + X2)
@constraint(modell, X1 + X2 <= 4)
@constraint(modell, X1 <= 2)
optimize!(modell)
println("X = (", value(X1), ", ", value(X2), "), F* = ",
        objective_value(modell))
println("Reduzierte Kosten von X1: ", round(Int, reduced_cost(X1)))
X = (0.0, 4.0), F* = 4.0
Reduzierte Kosten von X1: 0

Sonderfälle erkennen

JuMP meldet jeden Sonderfall über den termination_status:

# Unzulässiges Problem
modell = Model(HiGHS.Optimizer); set_silent(modell)
@variable(modell, X1 >= 0); @variable(modell, X2 >= 0)
@objective(modell, Max, X1 + 2X2)
@constraint(modell, X1 + X2 <= 4)
@constraint(modell, X1 >= 3)
@constraint(modell, X1 <= X2)
optimize!(modell)
println("Status: ", termination_status(modell))
Status: INFEASIBLE

Unbeschränktheit erkennen

modell = Model(HiGHS.Optimizer); set_silent(modell)
@variable(modell, X1 >= 0); @variable(modell, X2 >= 0)
@objective(modell, Max, X1 + 2X2)
@constraint(modell, X1 - X2 <= 4)
@constraint(modell, X1 + X2 >= 4)
optimize!(modell)
println("Status: ", termination_status(modell))
Status: DUAL_INFEASIBLE
HinweisWarum DUAL_INFEASIBLE?

HiGHS meldet Unbeschränktheit über das Dualproblem: Ist das primale Problem unbeschränkt, dann ist sein Dual unzulässig. DUAL_INFEASIBLE bedeutet hier also: unbeschränkt.

Zusammenfassung

Das Wichtigste auf einen Blick

  • Duale Degeneration: reduzierte Kosten einer NBV sind null ⇒\Rightarrow mehrere optimale Lösungen.
  • Primale Degeneration: eine Basisvariable ist null ⇒\Rightarrow Gefahr des Kreisens.
  • Keine zulässige Lösung: künstliche Variable bleibt in der Basis / kein Basistausch möglich.
  • Unbeschränktes Problem: Pivotspalte ganz ≤0\le 0 ⇒\Rightarrow F→∞F \to \infty.

Literatur

Literaturverzeichnis

Domschke, Wolfgang, Andreas Drexl, Robert Klein, und Armin Scholl. 2015. Einführung in Operations Research. 9. Aufl. Springer Gabler. https://doi.org/10.1007/978-3-662-48216-2.
Haase, Knut, Habib Zain Al Abideen, Salim Al-Bosta, u. a. 2016. „Improving Pilgrim Safety During the Hajj: An Analytical and Operational Research Approach“. Interfaces 46 (1): 74–90. https://doi.org/10.1287/inte.2015.0833.