Numeryczne metody optymalizacji Optymalizacja w kierunku informacje dodatkowe
Numeryczne metody optymalizacji x F x = min x D x F(x) Problemy analityczne: 1. Nieliniowa złożona funkcja celu F i ograniczeń φ oraz ψ. 2. Nieróżniczkowalność funkcji F, φ oraz ψ. 3. Nie jest znana postać analityczna funkcji F, φ oraz ψ, można jedynie zmierzyć wartość funkcji 4. Duży wymiar wektora zmiennych decyzyjnych.
Numeryczne metody optymalizacji Algorytm x n+1 = Ψ x n, x 0 Wybór kierunku poszukiwań. Optymalizacja w kierunku. Warunki zatrzymania procedury. x 0, x 1,, x n,, x N x F x 0 > F x 1 > > F x n > > F x N F(x )
Wybór kierunku poszukiwań Kierunki bazowe i ich modyfikacje metody bezgradientowe. Kierunki oparte na gradiencie funkcji metody gradientowe.
Optymalizacja w kierunku x 0 - punkt początkowy x 1 - punkt końcowy d - kierunek τ - długość kroku w kierunku τ F x 0 + τ d = min F(x 0 + τd) τ x 0, d ustalone F(x 0 + τd) f(τ) f(τ) funkcja jednej zmiennej (długości kroku τ) τ f τ = min f(τ) τ optymalizacja w kierunku optymalizacja funkcji jednej zmiennej
Warunki zatrzymania procedury x n+1 x n < ε; F x n+1 F x n < δ; F x n+1 F x n x n+1 x n < ρ Uwaga!
Dobra rada x n x n < ε x 0, x 0 - różne punkty początkowe x n, x n - odpowiednie punkty końcowe
Metody optymalizacji w kierunku Podział równomierny Podział na połowę Złoty podział Aproksymacji kwadratowej Metoda pierwszej pochodnej Metoda znaku pochodnej Metoda Newtona Metoda Bolzano 8
Metody optymalizacji w kierunku Podział równomierny Podział na połowę Złoty podział Aproksymacji kwadratowej Metoda pierwszej pochodnej Metoda znaku pochodnej Metoda Newtona Metoda Bolzano 9
Metody optymalizacji z ograniczeniami Transformacji zmiennych Funkcji kary Kary zewnętrznej (kary) Kary wewnętrzne (bariery) Metoda compleks 10
Optymalizacja w kierunku x 0 - punkt początkowy x 1 - punkt końcowy d - kierunek τ - długość kroku w kierunku τ F x 0 + τ d = min F(x 0 + τd) τ x 0, d ustalone F(x 0 + τd) f(τ) f(τ) funkcja jednej zmiennej (długości kroku τ) τ f τ = min f(τ) τ optymalizacja w kierunku optymalizacja funkcji jednej zmiennej
Przykład F x = x 1 2 2 + x 2 1 2, x 0 = 2 2, d = 1 1 x 1 = x 0 + τd = 2 2 + τ 1 1 = 2 + 1 τ 2 + 1 τ F x 0 + τd = 2 + τ 2 2 + 2 + τ 1 2 = τ 4 2 + τ 3 2 = 2τ 2 14τ + 25 f(τ) f τ = 4τ 14 = 0 τ = 3.5 x 1 = x 0 + τ d = 2 2 + 3.5 1 1 = 1.5 1.5
Metody zawężania odcinka Założenie: τ [a, b]
Spełnienie założenia τ [a, b]
ǁ Podział równomierny N = b a - liczba wyliczeń ε wartości funkcji τ 0 = a τ n = τ 0 + nε τ τǁ f τ = min {f(τ n)} 1 n N
Zawężanie odcinka f α n? f(β n ) f α n f β n a n+1 a n b n+1 β n f α n > f(β n ) a n+1 α n b n+1 b n
Metoda podziału na połowę Dane: a 0, b 0, ε, δ Krok 0: n = 0 Krok 1: α n = 1 2 a n + b n δ α n = 1 2 a n + b n β n = 1 2 a n + b n δ + δ β n = 1 2 a n + b n + δ Krok 2: Jeśli f α n f β n to a n+1 a n, b n+1 β n, w przeciwnym razie a n+1 α n, b n+1 b n. Krok 3: Jeśli b n+1 a n+1 ε to n n + 1, idź do kroku 1, w przeciwnym razie τ ǁ = 1 a 2 n+1 + b n+1 (STOP) N =?
Metoda γ podziału b n α n = β n a n = γ b n a n b n a n α n = b n + γ a n b n β n = a n + γ b n a n Dane: a 0, b 0, ε, γ Krok 0: n = 0 Krok 1: α n = b n + γ a n b n β n = a n + γ b n a n Krok 2: Jeśli f α n f β n to a n+1 a n, b n+1 β n, w przeciwnym razie a n+1 α n, b n+1 b n. Krok 3: Jeśli b n+1 a n+1 ε to n n + 1, idź do kroku 1, w przeciwnym razie τ ǁ = 1 a 2 n+1 b n+1 (STOP) N =?
Metoda złotego podziału γ 2 + γ 1 = 0 γ = 5 1 0.618 2 1. β n+1 a n+1 b n+1 a n+1 = γ, czyli α n a n = b n + γ a n b n a n = b n a n + γ(a n b n ) β n a n a n + γ b n a n a n γ(b n a n ) = 1 γ 1 = γ 2. b n+1 α n+1 b n+1 a n+1 = γ, czyli b n β n = b n a n + γ b n a n = b n a n + γ(b n a n ) b n a n b n b n γ b n a n γ(b n a n ) = 1 γ 1 = γ
Metoda złotego podziału c.d. γ 2 + γ 1 = 0 γ = 5 1 0.618 2 N =? Dane: a 0, b 0, ε, γ = 5 1 2 Krok 0: n = 0 α 0 = b 0 + γ a 0 b 0 β 0 = a 0 + γ(b 0 a 0 ) Krok 1: Jeśli b n a n < ε, to τ ǁ = 1 a 2 n + b n (STOP) w przeciwnym razie krok 2 Krok 2: Jeśli f α n f β n to a n+1 a n, b n+1 β n, β n+1 α n, α n+1 β n + γ(a n b n ) n n + 1, idź do kroku 1 w przeciwnym razie a n+1 α n, b n+1 b n, α n+1 β n, β n+1 α n + γ(b n α n ) n n + 1, idź do kroku 1
Metoda aproksymacji kwadratowej a < b < c f a f b f b f c q(τ) aproksymacja kwadratowa τ - minimum funkcji q(τ) q τ = f(a)(τ b)(τ c) (a b)(a c) + f(b)(τ a)(τ c) (b a)(b c) + f(c)(τ a)(τ b) (c a)(b c) τ = 1 2 f a b 2 c 2 + f b c 2 a 2 + f(c)(a 2 b 2 ) f a b c + f b c a + f(c)(a b)
Metoda aproksymacji kwadratowej f b n f(τ n ) a n+1 b n b n+1 τ n c n+1 c n f b n < f(τ n ) a n+1 a n b n+1 b n c n+1 τ n f b n f(τ n ) a n+1 a n b n+1 τ n c n+1 b n f b n f(τ n ) a n+1 τ n b n+1 b n c n+1 c n c n+1 a n+1 < ε τ ǁ = τ n+1
Metoda aproksymacji kwadratowej Dane: a 0, b 0, c 0, ε Krok 0: n = 0 f a n b n 2 c n 2 +f b n c n 2 a n 2 +f(c n )(a n 2 b n 2 ) Krok 1: τ n = 1 2 f a n b n c n +f b n c n a n +f(c n )(a n b n ) Krok 2: Jeśli b n < τ n to idź do kroku 3 w przeciwnym razie Jeśli f b n f(τ n ) to a n+1 a n, b n+1 τ n, c n+1 b n idź do kroku 4 w przeciwnym razie a n+1 τ n, b n+1 b n, c n+1 c n idź do kroku 4 Krok 3: Jeśli f b n f(τ n ) to a n+1 b n, b n+1 τ n, c n+1 c n idź do kroku 4 w przeciwnym razie a n+1 a n, b n+1 b n, c n+1 τ n idź do kroku 4 Krok 4: Jeśli c n+1 a n+1 ε to n n + 1 idź do kroku 1 w przeciwnym razie τ ǁ = 1 (a 2 n+1 + c n+1 ) (STOP)
Metoda pierwszej pochodnej τ n+1 = τ n γ n f t n γ n > 0, τ 0 lim γ n = γ n γ n = n=0 np. τ n+1 τ n < ε (STOP) τ 0 τ 1 = τ 0 γ 0 f τ 0 τ 2 = τ 1 γ 1 f τ 1 = τ 0 γ 0 f τ 0 γ 1 f τ 1 τ n+1 = τ n γ n f τ n = = τ 0 γ 0 f τ 0 γ 1 f τ 1 γ n f τ n τ n+1 τ 0 τ τ 0 n = γ k f τ k γ k f τ k k=0 γ k = k=0 n k=0 max 0<k<n f τ k n k=0 γ k
Metoda znaku pierwszej pochodnej τ n+1 = τ n θ n sign f τ n γ n f τ n = γ n f τ n sign f τ n = θ n sign[f (τ n )], gdzie θ n = γ n f τ n θ n > 0 lim θ n = 0, bo lim f τ n n n = 0, lim n γ n = γ θ n = n=0 lim n θ n = lim n γ n f τ n = 0
Metoda Bolzano sign a n sign b n sign a n = sign(f ( 1 2 a n + b n )) a n+1 1 2 a n + b n b n+1 b n f 1 2 a n + b n = 0 τǁ 1 2 a n + b n (rzadko) sign b n = sign(f ( 1 2 a n + b n ) ) a n+1 a n b n+1 1 2 a n + b n
Metoda drugiej pochodnej τ 0 τ n+1 = τ n f τ n f τ n τ n+1 τ n < ε (STOP) f τ = f τ 0 + τ τ 0 f τ 0 + 1 2 τ τ 0 2 f τ 0 + 0 3 ( τ τ 0 ) q(τ) q τ = f τ 0 + τ τ 0 f τ 0 = 0 τ = τ 0 f (τ 0) f (τ 0 )
Dziękuję za uwagę 28