finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB finale Version des Vorlesungsskripts - ZIB
10 Fourier-Motzkin-Elimination und Projektion Wir haben nun mit dem Simplex-Algorithmus ein Werkzeug zur Hand, um lineare Programme zu lösen. Insbesondere haben wir auch gesehen, wie wir mit dem Simplex- Algorithmus die Frage, ob ein lineares Ungleichungssystem Ax ≤ b eine Lösung hat oder nicht, entscheiden können. Wir werden in diesem Kapitel eine weitere Methode dafür kennenlernen, die gänzlich anders vorgeht und diese für eine theoretische Analyse der (Un)Zulässigkeit linearer Programme nutzen. Wir beginnen mit der Beschreibung eines Algorithmus, der aus einer (m, n)-Matrix A und einem Vektor b ∈ K m eine (r, n)-Matrix D und einen Vektor d ∈ K r macht, so dass eine Spalte von D aus lauter Nullen besteht und dass gilt: Ax ≤ b hat eine Lösung genau dann, wenn Dx ≤ d eine Lösung hat. 10.1 Fourier-Motzkin-Elimination (10.1) Fourier-Motzkin-Elimination (der j-ten Variablen). Eingabe: Eine (m, n)-Matrix A = (aij), ein Vektor b ∈ K m und ein Spaltenindex j ∈ {1, . . . , n} der Matrix A. Ausgabe: Eine (r, n)-Matrix D = (dij) (r wird im Algorithmus berechnet) und ein Vektor d ∈ K r , so dass D.j (die j-te Spalte von D) der Nullvektor ist. 1.) Partitioniere die Menge der Zeilenindizes M = {1, . . . , m} von A wie folgt: N := {i ∈ M | aij < 0}, Z := {i ∈ M | aij = 0}, P := {i ∈ M | aij > 0}. (Die Menge Z ∪ (N × P ) wird die Zeilenindexmenge von D.) 2.) Setze r := |Z ∪ (N × P )|, R := {1, . . . , r}, sei p : R → Z ∪ (N × P ) eine Bijektion (d. h. eine kanonische Indizierung der Elemente von Z ∪ (N × P )). 3.) Führe für i = 1, 2, . . . , r aus: (a) Falls p(i) ∈ Z, dann setze Di· := A p(i)·, di := b p(i) (d. h., die i-te Zeile von D ist gleich der p(i)-ten Zeile von A). 191
10 Fourier-Motzkin-Elimination und Projektion (b) Falls p(i) = (s, t) ∈ N × P , dann setze Di· := atjAs· − asjAt·, di := atjbs − asjbt (d. h., das asj-fache der t-ten Zeile von A wird vom atj-fachen der s-ten Zeile von A abgezogen und als i-te Zeile von D betrachtet). △ Hinweis: Die in (10.1) konstruierte Menge Z ∪ (N × P ) kann leer und somit r = 0 sein. Die Matrix D ist dann eine Matrix mit 0 Zeilen und n Spalten und somit Dx ≤ d ein „leeres Ungleichungssystem“. Die Menge der zulässigen Lösungen P (D, d) = {x ∈ K n |Dx ≤ d} unterliegt folglich keiner Einschränkung und ist daher der ganze Raum K n . Bevor wir den Algorithmus analysieren, betrachten wir ein Beispiel: −7x1 + 6x2 ≤ 25 (1) +x1 − 5x2 ≤ 1 (2) +x1 ≤ 7 (3) −x1 + 2x2 ≤ 12 (4) −x1 − 3x2 ≤ 1 (5) +2x1 − x2 ≤ 10 (6) Wir wollen die zweite Variable x2 eliminieren und erhalten in Schritt 1 von (10.1): N = {2, 5, 6}, Z = {3}, P = {1, 4}. Daraus ergibt sich |Z ∪ (N × P )| = 7. Die Nummerierung der Zeilen von D ist dann R = {1, . . . , 7}, und wir setzen: p(1) = 3, p(2) = (2, 1), p(3) = (2, 4), p(4) = (5, 1), p(5) = (5, 4), p(6) = (6, 1), p(7) = (6, 7). Die zweite Zeile von D ergibt sich dann als die Summe vom 6-fachen der zweiten Zeile von A und dem 5-fachen der ersten Zeile von A. Die zweite Ungleichung des Systems Dx ≤ d hat somit die Form −29x1 + 0x2 ≤ 131. Insgesamt ergibt sich (wenn wir die aus lauter Nullen bestehende zweite Spalte weglassen), das folgende System Dx ≤ d: 192 +x1 ≤ 7 (1) −29x1 ≤ 131 (2) −3x1 ≤ 62 (3) −27x1 ≤ 81 (4) −5x1 ≤ 38 (5) +5x1 ≤ 85 (6) +3x1 ≤ 32 (7)
- Seite 145 und 146: 7 Flüsse mit minimalen Kosten Erf
- Seite 147 und 148: 7 Flüsse mit minimalen Kosten Die
- Seite 149 und 150: 7 Flüsse mit minimalen Kosten (7.2
- Seite 151 und 152: 7 Flüsse mit minimalen Kosten W f
- Seite 153 und 154: 7 Flüsse mit minimalen Kosten r s
- Seite 156 und 157: 8 Grundlagen der Polyedertheorie In
- Seite 158 und 159: (c) Ist F = {x ∈ P | c T x = γ}
- Seite 160 und 161: (a) =⇒ (d): Nach Definition ist {
- Seite 162 und 163: (8.12) Folgerung. Sei P = P = (A, b
- Seite 164 und 165: 9 Die Grundversion des Simplex-Algo
- Seite 166 und 167: 9.1 Basen, Basislösungen, Entartun
- Seite 168 und 169: 9.1 Basen, Basislösungen, Entartun
- Seite 170 und 171: 9.2 Basisaustausch (Pivoting), Simp
- Seite 172 und 173: gilt daher ⎛ ⎜ F · E = ⎜ ⎝
- Seite 174 und 175: 9.2 Basisaustausch (Pivoting), Simp
- Seite 176 und 177: 9.3 Das Simplexverfahren (c) Ist x
- Seite 178 und 179: Setze (II.6) Updating B ′ := (p1,
- Seite 180 und 181: 9.3 Das Simplexverfahren (Die Trans
- Seite 182 und 183: 9.3 Das Simplexverfahren x2 = 0 nic
- Seite 184 und 185: 9.3 Das Simplexverfahren Wir führe
- Seite 186 und 187: 9.3 Das Simplexverfahren Das letzte
- Seite 188 und 189: 9.4 Spalten- und Zeilenauswahlregel
- Seite 190 und 191: 9.5 Die Phase I (2) Kleinster-Varia
- Seite 192 und 193: 9.5 Die Phase I x ≥ 0. Wir müsse
- Seite 194: x1 x2 x3 s1 s2 s3 9.5 Die Phase I 6
- Seite 199 und 200: 10 Fourier-Motzkin-Elimination und
- Seite 201 und 202: 10 Fourier-Motzkin-Elimination und
- Seite 203 und 204: 10 Fourier-Motzkin-Elimination und
- Seite 205 und 206: 10 Fourier-Motzkin-Elimination und
- Seite 207 und 208: 11 Das Farkas-Lemma und Dualitätst
- Seite 209 und 210: 11 Das Farkas-Lemma und Dualitätst
- Seite 211 und 212: 11 Das Farkas-Lemma und Dualitätst
- Seite 213 und 214: 11 Das Farkas-Lemma und Dualitätst
- Seite 215 und 216: 11 Das Farkas-Lemma und Dualitätst
- Seite 217 und 218: 11 Das Farkas-Lemma und Dualitätst
- Seite 219 und 220: 11 Das Farkas-Lemma und Dualitätst
- Seite 221 und 222: 11 Das Farkas-Lemma und Dualitätst
- Seite 223 und 224: 12 Ganzzahligkeit von Polyedern: Ei
- Seite 225 und 226: 12 Ganzzahligkeit von Polyedern: Ei
- Seite 227 und 228: 12 Ganzzahligkeit von Polyedern: Ei
- Seite 229: 12 Ganzzahligkeit von Polyedern: Ei
10 Fourier-Motzkin-Elimination und Projektion<br />
(b) Falls p(i) = (s, t) ∈ N × P , dann setze<br />
Di· := atjAs· − asjAt·,<br />
di := atjbs − asjbt<br />
(d. h., das asj-fache der t-ten Zeile von A wird vom atj-fachen der s-ten Zeile von<br />
A abgezogen und als i-te Zeile von D betrachtet). △<br />
Hinweis: Die in (10.1) konstruierte Menge Z ∪ (N × P ) kann leer und somit r = 0<br />
sein. Die Matrix D ist dann eine Matrix mit 0 Zeilen und n Spalten und somit Dx ≤ d<br />
ein „leeres Ungleichungssystem“. Die Menge der zulässigen Lösungen P (D, d) = {x ∈<br />
K n |Dx ≤ d} unterliegt folglich keiner Einschränkung und ist daher der ganze Raum K n .<br />
Bevor wir den Algorithmus analysieren, betrachten wir ein Beispiel:<br />
−7x1 + 6x2 ≤ 25 (1)<br />
+x1 − 5x2 ≤ 1 (2)<br />
+x1 ≤ 7 (3)<br />
−x1 + 2x2 ≤ 12 (4)<br />
−x1 − 3x2 ≤ 1 (5)<br />
+2x1 − x2 ≤ 10 (6)<br />
Wir wollen die zweite Variable x2 eliminieren und erhalten in Schritt 1 von (10.1):<br />
N = {2, 5, 6}, Z = {3}, P = {1, 4}.<br />
Daraus ergibt sich |Z ∪ (N × P )| = 7. Die Nummerierung der Zeilen von D ist dann<br />
R = {1, . . . , 7}, und wir setzen:<br />
p(1) = 3, p(2) = (2, 1), p(3) = (2, 4), p(4) = (5, 1), p(5) = (5, 4),<br />
p(6) = (6, 1), p(7) = (6, 7).<br />
Die zweite Zeile von D ergibt sich dann als die Summe vom 6-fachen der zweiten Zeile<br />
von A und dem 5-fachen der ersten Zeile von A. Die zweite Ungleichung <strong>des</strong> Systems<br />
Dx ≤ d hat somit die Form −29x1 + 0x2 ≤ 131.<br />
Insgesamt ergibt sich (wenn wir die aus lauter Nullen bestehende zweite Spalte weglassen),<br />
das folgende System Dx ≤ d:<br />
192<br />
+x1 ≤ 7 (1)<br />
−29x1 ≤ 131 (2)<br />
−3x1 ≤ 62 (3)<br />
−27x1 ≤ 81 (4)<br />
−5x1 ≤ 38 (5)<br />
+5x1 ≤ 85 (6)<br />
+3x1 ≤ 32 (7)