finale Version des Vorlesungsskripts - ZIB
finale Version des Vorlesungsskripts - ZIB finale Version des Vorlesungsskripts - ZIB
9.5 Die Phase I x ≥ 0. Wir müssen nun noch evtl. Zeilen von A streichen, um die Rangbedingung zu erfüllen. (I.3) Falls B ∩ {n + 1, . . . , n + m} = ∅, so befinden sich in der optimalen Basis keine künstlichen Variablen, d. h. es gilt DB = AB. Da DB = AB regulär ist, gilt rang(A) = m. Falls N ∩ {1, . . . , n} = ∅, so sind alle Basisvariablen Originalvariablen, und wir haben m = n. Dann gilt x = A −1 b und P = (A, b) = {x}. In diesem Falle können wir das Verfahren beenden mit Antwort (b), STOP! Der Vektor x ist die Optimallösung eines jeden LP über P = (A, b). Andernfalls ist m < n und AB ein zulässige Basis von A. Wir setzen I = {1, . . . , m} und schließen das Verfahren mit Antwort (c) ab, STOP! Die beiden abschließenden Schritte sind für den Fall vorgesehen, dass sich noch künstliche Variablen in der Basis befinden, d. h. falls B∩{n+1, . . . , n+m} = ∅. Wir versuchen zunächst, diese künstlichen Variablen aus der Basis zu entfernen. Da alle künstlichen Variablen yn+1, . . . , yn+m Null sind, ist die Basislösung z = (zB, zN), b degeneriert. Sei o. B. d. A. zB = D −1 B z T B = (yp1 , . . . , ypt, xpt+1 , . . . , xpm), d. h. B ∩ {n + 1, . . . , n + m} = {p1, . . . , pt}. Wenn wir also künstliche Variablen aus der Basis entfernen wollen, müssen wir prüfen, ob wir sie aus der Basis „hinauspivo- tisieren“ können, d. h. ob in den Zeilen Di· (i = 1, . . . , t) (D = (drs) = D −1 B DN) von Null verschiedene Pivotelemente vorhanden sind. Da wir ja nur Nichtbasisvariable gegen degenerierte Basisvariable austauschen, also Nullen gegen Nullen tauschen, können wir auch Pivotoperationen auf negativen Elementen zulassen. (I.4) Falls es r ∈ {1, . . . , t} und s ∈ {1, . . . , n} gibt, so dass zqs keine künstliche Variable ist und drs = 0 gilt, dann führe eine Pivotoperation mit dem Pivotelement drs entsprechend Satz (9.12) durch. Wir erhalten dadurch eine neue Basis DB ′, mit einer künstlichen Variablen weniger, setzen B := B ′ und gehen zu (I.3). (I.5) Falls dij = 0 ∀ i ∈ {1, . . . , t} ∀ s ∈ {1, . . . , n}, für die zqs keine künstliche Variable ist, dann hat das Gleichungssystem zB = D −1 B b − D−1 B DNzN bis auf Permutationen der Zeilen und Spalten folgende Form: ⎛ ⎞ ⎡ ⎤ ⎡ zp1 0 ⎜ ⎟ ⎢ ⎥ ⎝ . ⎠ = ⎣. ⎦ − ⎣ 0 0 ⎤ ∗⎦ xN yN zpt und ⎛ ⎞ ⎡ ⎤ ⎡ ⎤ zpt+1 ⎜ ⎟ ⎝ . ⎠ = ⎣∗⎦ − ⎣ ∗ ∗⎦ zpm xN yN 187
9 Die Grundversion des Simplex-Algorithmus (mit yB = (zp1 , . . . , zpt), xB = (zpt+1 , . . . , zpm), zN = (xN, yN)). Setzen wir also die künstlichen Variablen Null, so ist der obere Teil des Gleichungssystems yB = 0 − 0xN unabhängig von der Belegung von xN stets erfüllt, d. h. wir können alle Zeilen D1·, . . . , Dt· streichen. Ist I = {t+1, . . . , m} und J = {j ∈ {1, . . . , n} | zqj künstliche Variable} so gilt ist keine xB = (D −1 B b)I − DIJxN und B = (pt+1, . . . , pm) ist eine zulässige Basis von A ′ := AI· mit rang(A ′ ) = k := m − t. Ist k = n, so gilt wieder P = (A, b) = {x}, und wir enden mit Antwort (b). Andernfalls gilt k < n, und wir beenden das Verfahren mit Antwort (c), STOP! △ Die Korrektheit des Phase-I-Verfahrens (9.38) ist aufgrund der oben gemachten Bemerkungen offensichtlich. Algorithmus (9.38) zeigt auch, dass man bei der Lösung von linearen Programmen im wesentlichen mit der Grundversion des Simplexalgorithmus zur Lösung von Phase II auskommt. Es ist lediglich zusätzlich etwas Buchhaltung (Einführung künstlicher Variablen, Streichen von Spalten und Zeilen) zusätzlich durchzuführen. Außerdem sind u. U. im Schritt (I.4) Pivotoperationen auf negativen Pivotelementen erforderlich. Die Pivotformeln ändern sich dadurch aber nicht. (9.41) Bemerkung. Liegen Probleme mit nicht vorzeichenbeschränkten Variablen vor, so wendet man die Transformationsregeln (2.5) aus Kapitel 2 an, um das Problem in ein LP mit vorzeichenbeschränkten Variablen zu transformieren. △ Zur Auffindung einer Anfangslösung gibt es noch andere Varianten (z. B. die M- Methode), jedoch wird in kommerziellen Codes meist die Zweiphasenmethode verwendet. (9.42) Beispiel (für Phase I). Gegeben sei das folgende lineare Programm in Standardform max x1 − x2 + 2x3 2x1 − 3x2 + x3 = 3 −x1 + 2x2 + x3 = −1 3x1 − 5x2 = 4 x1, x2, x3 ≥ 0 Durch Multiplikation der zweiten Zeile mit −1 machen wir die rechten Seiten nichtnegativ. Es gilt dann 1 T A = (6, −10, 0), 1 T b = 8. Wir stellen nun unser Simplextableau auf, wobei wir künstliche Variablen s1, s2, s3 einführen. Wir fügen dem Simplextableau eine neue oberste Zeile für die künstliche Zielfunktion hinzu. 188
- Seite 141 und 142: 7 Flüsse mit minimalen Kosten 2. K
- Seite 143 und 144: 7 Flüsse mit minimalen Kosten schr
- 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 194: x1 x2 x3 s1 s2 s3 9.5 Die Phase I 6
- Seite 197 und 198: 10 Fourier-Motzkin-Elimination und
- 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
9.5 Die Phase I<br />
x ≥ 0. Wir müssen nun noch evtl. Zeilen von A streichen, um die Rangbedingung<br />
zu erfüllen.<br />
(I.3) Falls B ∩ {n + 1, . . . , n + m} = ∅, so befinden sich in der optimalen Basis keine<br />
künstlichen Variablen, d. h. es gilt DB = AB. Da DB = AB regulär ist, gilt<br />
rang(A) = m.<br />
Falls N ∩ {1, . . . , n} = ∅, so sind alle Basisvariablen Originalvariablen, und wir<br />
haben m = n. Dann gilt x = A −1 b und P = (A, b) = {x}. In diesem Falle können wir<br />
das Verfahren beenden mit Antwort (b), STOP! Der Vektor x ist die Optimallösung<br />
eines jeden LP über P = (A, b). Andernfalls ist m < n und AB ein zulässige Basis<br />
von A. Wir setzen I = {1, . . . , m} und schließen das Verfahren mit Antwort (c) ab,<br />
STOP!<br />
Die beiden abschließenden Schritte sind für den Fall vorgesehen, dass sich noch<br />
künstliche Variablen in der Basis befinden, d. h. falls B∩{n+1, . . . , n+m} = ∅. Wir<br />
versuchen zunächst, diese künstlichen Variablen aus der Basis zu entfernen. Da alle<br />
künstlichen Variablen yn+1, . . . , yn+m Null sind, ist die Basislösung z = (zB, zN),<br />
b degeneriert. Sei o. B. d. A.<br />
zB = D −1<br />
B<br />
z T B = (yp1 , . . . , ypt, xpt+1 , . . . , xpm),<br />
d. h. B ∩ {n + 1, . . . , n + m} = {p1, . . . , pt}. Wenn wir also künstliche Variablen aus<br />
der Basis entfernen wollen, müssen wir prüfen, ob wir sie aus der Basis „hinauspivo-<br />
tisieren“ können, d. h. ob in den Zeilen Di· (i = 1, . . . , t) (D = (drs) = D −1<br />
B DN) von<br />
Null verschiedene Pivotelemente vorhanden sind. Da wir ja nur Nichtbasisvariable<br />
gegen degenerierte Basisvariable austauschen, also Nullen gegen Nullen tauschen,<br />
können wir auch Pivotoperationen auf negativen Elementen zulassen.<br />
(I.4) Falls es r ∈ {1, . . . , t} und s ∈ {1, . . . , n} gibt, so dass zqs keine künstliche Variable<br />
ist und drs = 0 gilt, dann führe eine Pivotoperation mit dem Pivotelement drs<br />
entsprechend Satz (9.12) durch. Wir erhalten dadurch eine neue Basis DB ′, mit<br />
einer künstlichen Variablen weniger, setzen B := B ′ und gehen zu (I.3).<br />
(I.5) Falls dij = 0 ∀ i ∈ {1, . . . , t} ∀ s ∈ {1, . . . , n}, für die zqs keine künstliche Variable<br />
ist, dann hat das Gleichungssystem zB = D −1<br />
B b − D−1<br />
B DNzN bis auf Permutationen<br />
der Zeilen und Spalten folgende Form:<br />
⎛ ⎞ ⎡ ⎤ ⎡<br />
zp1 0<br />
⎜ ⎟ ⎢ ⎥<br />
⎝ . ⎠ = ⎣.<br />
⎦ − ⎣<br />
0<br />
0<br />
⎤<br />
∗⎦<br />
<br />
xN<br />
yN<br />
zpt<br />
und ⎛ ⎞ ⎡ ⎤ ⎡<br />
⎤<br />
zpt+1<br />
⎜ ⎟<br />
⎝ . ⎠ = ⎣∗⎦<br />
− ⎣ ∗ ∗⎦<br />
zpm<br />
xN<br />
yN<br />
<br />
187