Lineare Programmierung
Basisl¨ osungen
Basis Definition 3.38 Gegeben sei ein LP in der Normalform mit m als Rang der Matrix A 2 Rm⇥n .
x 2 Rn mit Ax = b heißt Basisl¨ osung gdw. n m Komponenten xi gleich Null und die zu den restlichen Variablen geh¨orenden Spaltenvektoren aj linear unabh¨angig sind. Eine Basisl¨osung, die zul¨assig ist (x
0), heißt zul¨assige Basisl¨osung.
Die m linear unabh¨angigen Spaltenvektoren aj einer (zul¨assigen) Basisl¨osung heißen Basisvektoren, die zugeh¨ origen Variablen xj Basisvariablen (BV). Alle u ¨brigen Spaltenvektoren heißen Nichtbasisvektoren, die zugeh¨ origen Variablen Nichtbasisvariablen (NBV). Die Menge aller Basisvariablen xj einer Basisl¨ osung bezeichnet man als Basis. Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
161 / 298
Lineare Programmierung
Basisl¨ osungen
Charakterisierung zul¨assiger Basisl¨osungen Satz 3.39 x ist genau dann eine zul¨assige Basisl¨osung eines LP, wenn x ist Ecke von XLP ist. Bemerkung: Dieser Satz ist der Schl¨ ussel zur algebraischen L¨osung von linearen Programmen.
Beweis. “)”: Es sei x eine zul¨assige Basisl¨ osung von Ax = b. Dann gibt es m linear unabh¨angige Spaltenvektoren ai1 , . . . , aim von A mit xi1 ai1 + · · · + xim aim = b Annahme: x ist keine Ecke von X . Dann existieren y, z 2 X mit y 6= z und ein 0 < < 1, so dass gilt x = y + (1 Peter Becker (H-BRS)
Operations Research I
)z Sommersemester 2014
162 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beweis. Aus y, z 0, > 0, (1 ) > 0 und xj = 0 f¨ ur j 2 / {i1 , . . . , im } folgt yj , zj = 0 f¨ ur j 2 / {i1 , . . . , im }. Andererseits gilt y, z 2 X , also Ay = b und Az = b und damit sowohl yi1 ai1 + · · · + yim aim = b als auch zi1 ai1 + · · · + zim aim = b Es folgt (yi1
zi1 )ai1 + · · · + (yim
zim )aim = 0
Da die aik linear unabh¨angig sind, folgt yik = zik f¨ ur k = 1, . . . , m und damit y = z. Widerspruch!
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
163 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beweis. “(”: Es sei x Ecke von X . F¨ ur den trivialen Fall x = 0 folgt b = 0 und wir k¨onnen m linear unabh¨angige Spaltenvektoren von A ausw¨ahlen. x ist damit eine zul¨assige Basisl¨ osung. Es sei also x 6= 0 mit k X xi j ai j = b j=1
und xij > 0. Annahme: Die Vektoren ai1 , . . . , aik sind linear abh¨angig. Dann g¨abe es eine nicht triviale Linearkombination y1 ai1 + · · · + yk aik = 0 F¨ ur hinreichend kleines ✏ gilt dann x + ✏y Peter Becker (H-BRS)
0 und x Operations Research I
✏y
0 Sommersemester 2014
164 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beweis. Damit sind die Vektoren x ± ✏y zul¨assig und es folgt 1 1 x = (x + ✏y) + (x 2 2
✏y)
Dies bedeutet wiederum, dass x keine Ecke ist. Widerspruch!
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
165 / 298
Lineare Programmierung
Basisl¨ osungen
Ecken-Algorithmus Algorithmus 3.40 Gegeben sei ein LP in Normalform mit c 2 Rn , A 2 Rm⇥n , x 2 Rn und b 2 Rm . n F¨ ur N := m seien B1 , B2 , . . . , BN die m-elementigen Teilmengen der Menge {1, . . . , n}.
F¨ ur eine Menge Bk = {j1 , . . . , jm } bezeiche ABk = (aj1 , . . . , ajm ) 2 Rm⇥m die Matrix, die aus den Spaltenvektoren j1 bis jm von A besteht. Der Vektor xBk ist der entsprechende Variablenvektor dessen Komponenten einen Index aus Bk haben.
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
166 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Algorithmus 3.40. 1
k := 1, z ⇤ :=
2
Erzeuge Bk , ABk und xBk .
3
Falls r (ABk ) < m dann weiter mit 6.
4
L¨ose das LGS ABk xBk = b. Es sei x die Basisl¨ osung zur L¨osung dieses LGS. Falls x nicht zul¨assig ist, weiter mit 6.
5 6
1
Falls cT x > z ⇤ , setze z ⇤ := cT x und x⇤ := x. k := k + 1. Falls k N gehe zu 2, sonst STOP!
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
167 / 298
Lineare Programmierung
Basisl¨ osungen
Bemerkungen zum Ecken-Algorithmus
Wenn ein LP eine L¨osung hat, dann liefert der Ecken-Algorithmus eine L¨osung x⇤ mit Zielfunktionswert z ⇤ . Die Bestimmung des Rang von ABk in Schritt 3 und die L¨osung des LGS in Schritt 4 kann mit dem Gaußschen Algorithmus oder der Cramer-Regel erfolgen. Der Algorithmus hat keine praktische Bedeutung und ist nur f¨ ur kleine n und m durchf¨ uhrbar.
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
168 / 298
Lineare Programmierung
Basisl¨ osungen
Beispiel zum Eckenalgorithmus Beispiel 3.41 Wir greifen das Beispiel mit dem Eisverk¨aufer (Beispiel 3.2 bzw. 3.4) wieder auf. Maximiere z = F (x) = 30x1 + 25x2 unter den Nebenbedingungen 0 1 x 1 0 1 0 1 B x2 C 1 1 1 0 0 10 B C @ 5 2 0 1 0 A · B x3 C = @ 30 A x1 , . . . , x5 0 B C @ x4 A 0 1 0 0 1 9 x5
Man beachte: Die redundante Nebenbedingung x1 6 wurde weggelassen.
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
169 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beispiel 3.41. Man erh¨alt
5 3
= 10 verschiedene Spaltenmengen f¨ ur die Matrix A: 0
1 0 1 0 1 1 1 1 x1 10 B1 = {1, 2, 3} : @ 5 2 0 A · @ x2 A = @ 30 A ergibt x3 < 0 0 1 0 x3 9 0 1 1 0 1 0 1 0 1 B 9 C 1 1 0 x1 10 B C C B2 = {1, 2, 4} : @ 5 2 1 A · @ x2 A = @ 30 A Ecke x = B B 0 C @ 0 1 0 x4 9 7 A 0 mit F (x) = 255 0 10/3 0 1 0 1 0 1 B 1 1 0 x1 10 B 20/3 B3 = {1, 2, 5} : @ 5 2 0 A · @ x2 A = @ 30 A Ecke x = B B 0 @ 0 0 1 1 x5 9 7/3 mit F (x) = 266 23 Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
1
C C C C A
170 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beispiel 3.41. 0
1 0 1 0 1 1 1 0 B4 = {1, 3, 4} : @ 5 A , @ 0 A , @ 1 A sind linear abh¨angig. 0 0 0 0
1 0
1
0
1
0
B 1 1 0 x1 10 B @ A @ A @ A 5 0 0 x3 30 B5 = {1, 3, 5} : · = Ecke x = B B @ 0 0 1 x5 9 mit F (x) = 180
6 0 4 0 9
1 C C C C A
0
1 0 1 0 1 1 0 0 x1 10 B6 = {1, 4, 5} : @ 5 1 0 A · @ x4 A = @ 30 A liefert x4 < 0 0 0 1 x5 9 Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
171 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beispiel 3.41. 0
1 0
1
0
1
0
B 1 1 0 x2 10 B B7 = {2, 3, 4} : @ 2 0 1 A · @ x3 A = @ 30 A Ecke x = B B @ 1 0 0 x4 9 mit F (x) = 225
0 9 1 12 0
1 C C C C A
0
1 0 1 0 1 1 1 0 x2 10 B8 = {2, 3, 5} : @ 2 0 0 A · @ x3 A = @ 30 A liefert x3 < 0 1 0 1 x5 9 0
1 0 1 0 1 1 0 0 x2 10 B9 = {2, 4, 5} : @ 2 1 0 A · @ x4 A = @ 30 A liefert x5 < 0 1 0 1 x5 9 Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
172 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beispiel 3.41.
B10
0
1 0
1
0
1
0
B 1 0 0 x3 10 B @ A @ A @ A 0 1 0 x4 30 = {3, 4, 5} : · = Ecke x = B B @ 0 0 1 x5 9 mit F (x) = 0
0
B B F¨ ur die Ecke B B @
10/3 20/3 0 0 7/3
0 0 10 30 9
1 C C C C A
1
C C C wird der maximale Zielfunktionswert C A
z = F (x) = 266 23 angenommen. Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
173 / 298
Lineare Programmierung
Basisl¨ osungen
Alternative Vorgehensweise beim Eckenalgorithmus Statt u ¨ber alle m¨oglichen Mengen von Basisvariablen (BV-Mengen) zu iterieren, kann man prinzipiell auch u oglichen Mengen von ¨ber alle m¨ Nichtbasisvariablen (NBV-Mengen) iterieren. Dies funktioniert wie folgt: Gegeben sei das LP in Normalform mit Koeffizientenmatrix A 2 Rm⇥n und es gelte r (A) = m.
Bestimme mit dem Gaußschen Algorithmus eine L¨osungsmenge f¨ ur das Gleichungssystem Ax = b. Wegen r (A) = m hat die L¨ osungsmenge k := n ↵1 , . . . , ↵k und l¨asst sich darstellen als
m freie Parameter
x = v + ↵ 1 w1 + · · · + ↵k wk Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
174 / 298
Lineare Programmierung
Basisl¨ osungen
Hierbei ist v eine L¨osung des inhomogenen LGS Ax = b und w1 , . . . , wk sind linear unabh¨angige L¨ osungen des homogenen LGS Ax = 0. F¨ ur alle k-elementigen Teilmengen {i1 , . . . , ik } stelle man aus den zugeh¨ origen k Zeilen von v + ↵ 1 w1 + · · · + ↵ k wk = 0 ein LGS auf und bestimme (wenn m¨ oglich) ↵1 , . . . , ↵k . Wenn dieses LGS l¨osbar ist, bestimme man mit der L¨osung ↵1 , . . . , ↵k den Vektor x = v + ↵ 1 w1 + · · · + ↵k wk Gilt xi
0 f¨ ur i = 1, . . . , n, dann ist x eine Ecke.
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
175 / 298
Lineare Programmierung
Basisl¨ osungen
Insgesamt wird der Aufwand dadurch nicht geringer, denn die Anzahl der zu l¨osenden LGS ist mit dem Eckenalgorithmus in urspr¨ unglicher Form identisch: ✓ ◆ ✓ ◆ n n #BV-Mengen = = = #NBV-Mengen m n m F¨ ur m > n/2 werden aber die zu l¨ osenden LGS kleiner.
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
176 / 298
Lineare Programmierung
Basisl¨ osungen
Beispiel zur alternativen Vorgehensweise Beispiel 3.42 Wir bleiben beim Eisverk¨aufer ohne die redundante Nebenbedingung (vgl. Beispiel 3.41). Wir bestimmen zun¨achst mit dem Gaußalgorithmus die L¨osungsmenge von Ax = b. 0 1 0 1 1 1 1 0 0 10 1 1 1 0 0 10 @ 5 2 0 1 0 30 A ) @ 0 3 5 1 0 20 A 0 1 0 0 1 9 0 1 0 0 1 9 0
1 @ 0 ) 0
1 3 0
1 5 5 3
0 0 1 0 1 3 1
freie Variablen: x4 = s, x5 = t
Peter Becker (H-BRS)
Operations Research I
1 10 20 A 7 3
Sommersemester 2014
177 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beispiel. Damit ergibt sich 7 1 3 + s+ t 5 5 5 = 9 t 12 1 2 = s+ t 5 5 5
x3 = x2 x1 und insgesamt 0
B B x=B B @ Peter Becker (H-BRS)
12 5
1
0
B 9 C C B 7 C B 5 C+sB @ 0 A 0
1 5
1
0
B 0 C C B 1 C B 5 C+tB @ 1 A 0
Operations Research I
2 5
1
1 C C 3 C 5 C 0 A 1 Sommersemester 2014
178 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beispiel. Wir haben jetzt insgesamt 52 = 10 M¨ oglichkeiten, zwei Variablen als Nichtbasisvariable auszuw¨ahlen. F¨ ur jede dieser M¨oglichkeiten m¨ ussen wir (falls m¨ oglich) s und t so bestimmen, dass die Komponenten in x zu 0 werden. 0 12 1 s
{4, 5} :
{3, 5} :
1 5s
Peter Becker (H-BRS)
B B x=B B @
= 0 t = 0
+
3 5t
= t =
7 5
0
5
9 C C 7 C nicht zul¨assig 5 C A 0 0 0 1 1 B 9 C B C C s = 7, x = B B 0 C Ecke F (x) = 255 @ 7 A 0
Operations Research I
Sommersemester 2014
179 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beispiel.
{3, 4} :
1 5s
s
{2, 5} :
+
3 5t
t = t =
= =
7 5
0
t=
7 3, x
0
10 3 20 3
1
B C B C 2 C =B B 0 C Ecke F (x) = 266 3 @ 0 A 7 3
9 0
unl¨osbares LGS
und so weiter ..
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
180 / 298
Lineare Programmierung
Basisl¨ osungen
Entartete Ecken Wenn m der Rang von A 2 Rm⇥n ist, sind im Normalfall genau m Koordinaten einer Ecke x 2 Rn positiv, die u ¨brigen Null.
Definition 3.43 Gegeben sei ein LP in Normalform mit Matrix A 2 Rm⇥n und es gelte r (A) = m. Eine Ecke x 2 XLP heißt entartet (degeneriert) gdw. weniger als m Koordinaten von x positiv sind.
Bemerkung: Bei entarteten Ecken ist das System der linear unabh¨angigen Spalten von A nicht eindeutig bestimmt.
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
181 / 298
Lineare Programmierung
Basisl¨ osungen
Beispiel zu entarteten Ecken Beispiel 3.44 Wir untersuchen das LP vom Einsverk¨aufer (Beispiele 3.2, 3.12 und 3.41) diesmal inklusive der redundanten Nebenbedingung x1 6: 0 1 x 1 0 1 0 1 C 1 1 1 0 0 0 B 10 B x2 C B 5 2 0 1 0 0 C B x3 C B 30 C CB C B C A=B @ 1 0 0 0 1 0 A B x4 C = @ 6 A B C 0 1 0 0 0 1 @ x5 A 9 x6
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
182 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beispiel. Wir betrachten die Basis mit der geh¨ ort das LGS 0 1 1 0 0 B 5 0 1 0 B @ 1 0 0 0 0 0 0 1 Es ergibt sich
Spaltenindexmenge {1, 3, 4, 6}. Hierzu 10
1 0 x1 10 C B x3 C B 30 CB C B A @ x4 A = @ 6 x6 9
x6 = 9, x1 = 6, 1 6 B 0 C B C B 4 C C also ist die Ecke B B 0 C entartet. B C @ 0 A 0
x4 = 0,
1 C C A
x3 = 4
9
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
183 / 298
Lineare Programmierung
Basisl¨ osungen
Fortsetzung Beispiel. Die gleiche Ecke ergibt dem zugeh¨origen LGS: 0 1 B 5 B @ 1 0
Peter Becker (H-BRS)
sich f¨ ur die Spaltenindexmenge {1, 3, 5, 6} und 1 0 0 0
0 0 1 0
10 0 x1 C B 0 C B x3 0 A @ x5 1 x6
1
1 10 C B 30 C C=B C A @ 6 A 9
Operations Research I
0
Sommersemester 2014
184 / 298
Lineare Programmierung
Basisl¨ osungen
Zusammenfassung
LP und Normalform Konvexit¨at, Ecken optimale L¨osungen treten in Ecken auf Ecke , zul¨assige Basisl¨ osung
Berechenbar aber nicht effizient: Ermittlung der Ecken bzw. der zul¨assigen Basisl¨osungen durch eindeutig l¨ osbare LGS
Peter Becker (H-BRS)
Operations Research I
Sommersemester 2014
185 / 298