Bezgradientowe metody optymalizacji funkcji wielu zmiennych informacje dodatkowe
Wybór kierunku poszukiwań Kierunki bazowe i ich modyfikacje metody bezgradientowe. Kierunki oparte na gradiencie funkcji metody gradientowe.
Metoda Hooka-Jeveesa z krokiem dyskretnym τ- krok α > 1 współczynnik kroku roboczego β (0,1) współczynnika korekcji kroku τ τβ
Metoda Hooka-Jeveesa z krokiem dyskretnym DANE: d 1, d 2,, d S, x 0, τ, ε, α, β Krok 0: z 1 x 0, s = 1, n = 0 Krok 1: z s+1 z s + τd s Jeśli F z s+1 < F z s idź do kroku 2 w przeciwnym razie z s+1 z s τd s Jeśli F z s+1 < F(z s ) idź do kroku 2 w przeciwnym razie z s+1 z s Krok 2: Jeśli s < S, s s + 1 idź do kroku 1 w przeciwnym razie Jeśli F z S+1 < F(z 1 ) idź do kroku 3 τ τβ, x n+1 x n, z s x n, n n + 1, s = 1 idź do kroku 1 Krok 3: Jeśli τ < ε, STOP w przeciwnym razie x n+1 z S+1 + α z S+1 z 1, n n + 1, s 1 idź do kroku 1
Metoda Rozenbrocka z krokiem dyskretnym τ- krok α > 1 współczynnik korekcji kroku β ( 1, 0) - współczynnika korekcji kroku τ s τ s α τ s τ s β
Metoda Rozenbrocka z krokiem dyskretnym DANE: d 1, d 2,, d S, x 0, τ, ε, α > 1, β 1, 0 Krok 0: τ 1 = τ 2 = = τ S = τ, δ 1 = δ 2 = = δ S = 0, z 1 = x 0, n = 0, s = 1 Krok 1: z s+1 = z s + τ s d s, δ s = δ s + τ s IF F z s+1 < F z s τ s ατ s s s + 1, IDŹ DO KROKU 2 ELSE F z s+1 F z s τ s βτ s s s + 1 IDŹ DO KROKU 2 Krok 2: IF s < S s s + 1 IDŹ DO KROKU 1 IF F z S+1 < F z 1 z 1 z S+1 s 1 IDŹ DO KROKU 1 IF F z S+1 = F x n IF n = 0 zmień punkt startowy ELSE x n+1 = z S+1 Krok 3: IF STOP? (np.: xn 1 xn ) STOP Krok 4: Obrót bazy ELSE n:= n+1, s=1 τ 1 = τ 2 = = τ S = τ, δ 1 = δ 2 = = δ S = 0, IDŹ DO KROKU 1
Obrót bazy Krok 4: d s s = 0 a s = b s = S σ j=s j d j s 0 a s s = 1 a s σ s 1 j=1 a T j d j d j
Metoda Hooka-Jeveesa z krokiem optymalnym
Metoda Hooka-Jeevesa - z krokiem optymalnym DANE: d 1, d 2,, d S, x 0, ε Krok 0: z 1 x 0, n = 0, s = 1 Krok 1: z s+1 z s + τ s d s τ s - min w kierunku d s Krok 2: Jeśli s < S, s = s + 1 idź do kroku 1 Jeśli z S+1 z 1 < ε - STOP Krok 3: x n+1 z s + τd τ min w kierunku d S+1 τ s d d = z S+1 z 1 = σ s=1 z S+1 z 1 σ S+1 s=1 τ s d n n + 1, s = 1, z 1 = x n
Metoda Rozenbrocka z krokiem optymalnym
Metoda Rozenbrocka z krokiem optymalnym DANE: d 1, d 2,, d S, x 0, ε Krok 0: z 1 x 0, n = 0, s = 1 Krok 1: z s+1 z s + τ s d s τ s - min w kierunku d s Krok 2: Jeśli s < S, s s + 1 idź do kroku 1 Jeśli z S+1 z 1 < ε - STOP Krok 3: d s τ s = 0 a s = b s = S σ j=s τ j d j τ s 0 a s s = 1 a s σ s 1 j=1 a T j d j d j d s = b s s = 1,2,, S b s Krok 4: d s d s s = 1,2,, S, n n + 1, s = 1 idź do kroku 1
Metoda Powella wektory sprzężone d 1, d 2,, d S d i T Ad j = - sprzężone według macierzy A, symetrycznej i dodatnio określonej 0 i j 1 i = j
Metoda Powella wektory sprzężone F x = x T Ax + b T x + c Dla tak dobranej funkcji, jeżeli zestaw wektorów d 1, d 2,, d S jest sprzężony według macierzy A, to minimalizując wzdłuż kierunków sprzężonych otrzymamy rozwiązanie w nie więcej niż S krokach.
Metoda Powella F x = x T Ax + b T + c x 1 = x 0 + x d τ - min w kierunku d z x 0 x 1 = x 0 + τ d τ - min w kierunku d z x 0 d T Ad = 0 d, d - sprzężone według A d = x 1 x 1 x 1 x 1
Metoda Powella
Metoda Powella DANE: d 1, d 2,, d S, x 0, ε Krok 0: z 1 x 0 + τ S d S, n 0, s 1 τ S - min w kierunku d S Krok 1: z s+1 = z s + τ s d s τ s - min w kierunku d s Krok 2: Jeśli s < S, s s + 1 idź do kroku 1 Jeśli z S+1 z 1 < ε - STOP Krok 3: x n+1 z s+1 d Z S+1 Z 1 Z S+1 Z 1 z 1 x n+1 + τd τ min w kierunku d d s d s+1 s = 1, 2,, S 1 d S d τ max max z s+1 z s 1 s S d max = d Δ = max 1 s S τ s τ mδ Z S+1 Z 1 > 0.8
Metoda Neldera-Meada (simplex) x 1 x 2 x S+1 - simplex w przestrzeni s-wymiarowej x H F x H = max s) 1 s S+1 x L F x L = min s) 1 s S+1 x ҧ = 1 s S+1 s=1,s H x s Generowanie simplexu początkowego x 0, c a = c ( S + 1 + 2 1) S 2 b = c ( S + 1 1) S 2 d j = x i = x 0 + d j, x S+1 = x 0
Metoda Neldera-Meada (simplex)
ҧ ҧ ҧ ҧ Metoda Neldera-Meada Odbicie x = x + α( xҧ x H ) α współczynnik odbicia Jeśli α > 0 F x < F(x L ) Ekspansja x = x + γ x xҧ γ > 1 γ współczynnik kontrakcji Jeśli F x > F x H x = x + β(x H x) ҧ Jeśli F x > max F(x 1 s S+1 s ) x = s H x + β x xҧ β (0, 1)
ҧ ҧ ҧ Metoda Neldera-Meada DANE: x 0, c, ε Krok 0: x 1 x 2 x S+1 - simplex początkowy, n = 0 Krok 1: x H F x H = max F x s, x L F x L = min F(x s) 1 s S+1 1 s S+1 x = 1 σ S s=1 S+1 x s s H Krok 2: x = x + α xҧ x H Jeśli F x < F x L x = x ҧ + γ(x x) ҧ idź do kroku 3 w przeciwnym razie idź do kroku 4 Krok 3: Jeśli F x < F x x H = x, n = n + 1 idź do kroku 1 w przeciwnym razie x H = x, n = n + 1 idź do kroku 1 Krok 4: Jeśli F x < max 1 s S+1 s H F x s x H = x, n = n + 1 Krok 5: x F x = min F x, F x H x = x + β x xҧ Jeśli F x > F x x j = x j + 1 x 2 L x j, j = 1,2,, S + 1 idź do kroku 1 x H = x, n = n + 1 idź do kroku 1