Optimierung mit Ungleichungen als Nebenbedingungen Gegeben ist das folgende Problem (P): f (x1, x2, . . . , xn) 7→ ext! g1(x1, x2, . . . , xn) ≤ g2(x1, x2, . . . , xn) ≤ ... gm(x1, x2, . . . , xn) ≤ b1 b2 bm Spezialfälle: 1) Das obige Problem heißt lineares Program, falls die Zielfunktion f und alle Nebenbedingungen g1, . . . gm linear sind (→ lineare Optimierung, Simplexalgorithmus). 1 2a) Das obige Problem heißt konvexes Program, falls (i) ein Minimum gesucht wird, (ii) die Zielfunktion f konvex ist und (iii) alle Nebenbedingungen g1, . . . gm konvex sind. 2b) Das obige Problem heißt konkaves Program, falls (i) ein Maximum gesucht wird, (ii) die Zielfunktion f konkav ist und (iii) alle Nebenbedingungen g1, . . . gm konvex sind. Satz: Wenn ein konkaves Programm im Punkt x∗ ein lokales Maximum annimmt, dann nimmt es in x∗ sogar ein globales Maximum an. (Analog: Wenn ein konvexes Programm im Punkt x∗ ein lokales Minimum annimmt, dann nimmt es in x∗ sogar ein globales Minimum an.) 2 Definition: Mit C wird der zulässige Bereich bezeichnet, d.h. alle Punkte (x1, . . . , xn), sodaß g1(x1, x2, . . . , xn) ≤ b1 g(x1, x2, . . . , xn) ≤ b2 ... gm(x1, x2, . . . , xn) ≤ bm gilt. Sei x∗ ∈ C so, daß gj (x∗) = bj , dann heisst die Nebenbedingung gj aktiv in x∗. Sei x∗ ∈ C so, daß gj (x∗) < bj , dann heisst die Nebenbedingung gj inaktiv in x∗ 3 Satz von Kuhn–Tucker: Sei x∗ ein lokaler Maximizer des Problems (P). Weiters soll x∗ die ”constraint qualifications” erfüllen. (i) Dann gibt es Zahlen λ1 ≥ 0, λ2 ≥ 0, . . . , λm ≥ 0, sodaß gradf (x∗) = m X λj gradgj (x∗). j=1 Es gilt, daß λj = 0, wenn gj inaktiv ist. (ii) Ist (P) ein konkaves Programm, dann ist (i) auch hinreichend dafür, daß x∗ ein lokaler (und damit auch globaler) Maximizer ist. Analog gilt der Satz für Minimizer: dann müssen die λj aus (i) ≤ 0 sein. Und in (ii) steht dann konvexes Programm. 4 Beispiel 1: 2 f (x1, x2) = 2x2 1 + x2 7→ Max! 2 g(x1, x2) = x2 1 + x2 ≤ 1 Es handelt sich weder um ein konvexes noch ein konkaves Programm! 2 − λ(x2 + x2 − 1) L(x1, x2, λ) = 2x2 + x 1 2 1 2 ∂L = 4x − 2λx = 0 1) ∂x 1 1 1 ∂L = 2x − 2λx = 0 2) ∂x 2 2 2 2≤1 3) x2 + x 1 2 . . . 1)–3) sind die Kuhn–Tucker–Bedingungen für dieses Problem. 5 Fall 1: λ = 0 Das ergibt als Lösung P0 = (0, 0). Nebenbedingung ist erfüllt, d.h. P0 ist ein Kandidat. Offensichtlich ist P0 aber kein Maximizer sondern ein Minimizer (Zielfunktion anschauen). Fall 2: λ 6= 0 Dieser Fall hat folgende Punkte als Lösungen: P1 = (1, 0) mit λ = 2, P2 = (−1, 0) mit λ = 2, P3 = (0, 1) mit λ = 1, P4 = (0, −1) mit λ = 1. Alle vier Punkte sind Kandidaten für Maximizer, da jedes der λ ≥ 0. Da es sich nicht um ein konkaves Programm handelt, sind weitere Überlegungen notwendig, um zu bestimmen welche der 4 Punkte Maximizer sind. 6 Beispiel 2: f (x1, x2) = −x2 1 − x2 7→ Max! g1(x1, x2) = x1 − x2 ≤ 0 g2(x1, x2) = x1 ≤ 0 Es handelt sich um ein konkaves Programm (nachprüfen!) L(x1, x2, λ1, λ2) = −x2 1 − x2 − λ1 (x1 − x2 ) − λ2 x1 ∂L = −2x − λ − λ = 0 1) ∂x 1 1 2 1 ∂L = −1 + λ = 0 2) ∂x 1 2 3) x1 − x2 ≤ 0 4) x1 ≤ 0 . . . 1)–4) Kuhn–Tucker–Bedingungen. 7 Fall 1: λ1 = λ2 = 0 Das ist nicht möglich, da aus 2) folgt, daß λ1 = 1. Fall 2: λ1 = 0, λ2 6= 0 Nicht möglich, siehe Fall 1. Fall 3: λ1 6= 0, λ2 = 0 1 , − 1 ) mit λ = 1 ≥ Ergibt als Lösung P = (− 2 1 2 0, also ist P Kandidat für lokalen Maximizer. Da es sich um ein konkaves Programm handelt ⇒ P ist ein lokaler Maximizer und somit globaler Maximizer. Fall 4: λ1 6= 0, λ2 6= 0 Es ist nicht mehr notwendig, diesen Fall zu betrachten, da es sich um ein konkaves Programm handelt und wir den globalen Maximizer bereits im Fall 3 gefunden haben. 8