Minimalizacja funkcji Poszukiwanie minimum funkcji Foma

Transkrypt

Minimalizacja funkcji Poszukiwanie minimum funkcji Foma
Minimalizacja funkcji
Poszukiwanie minimum funkcji
■ Foma kwadratowa
■ Metody przybliżania minimum – minimalizacja
■ Minimalizacja w n wymiarach
■ Metody poszukiwania minimum

Otaczanie minimum

Podział obszaru zawierającego minimum
metodą złotego podziału

Metoda interpolacji kwadratowej
■
KADD – Minimalizacja funkcji
1
Pomiary zależne
■
Pomiary nie muszą być całkowicie niezależne. Np.
mierząc 3 kąty w trójkącie musimy uzyskać sumę
równą 180°. Szukamy estymatorów wielkości ηj:
{ }
y j = j  j , j=1, 2 , , n
■
E  j =0
{ }
2
2
E  j = j
Oprócz tego mamy też równania więzów:
f k =0, k=1, 2 , , q
■
Najprostszy przypadek to równania liniowe:
b10 b11 1 b12 2 b1 n n=0
⋮
b q0 b q1 1 b q2 2 b qn n =0
■
lub w notacji macierzowej
B b0 =0
KADD – Minimalizacja funkcji
2
Metoda mnożników Lagrange'a
■
Metoda elementów wymaga wyboru zmiennych α.
Metoda mnożników Lagrange'a podchodzi inaczej
do problemu. Przepiszmy równanie więzów:
B y−B b0 =0
■
Wprowadzamy wektor c i otrzymujemy równanie:
c=B yb0  c−B =0
■
Wprowadzamy wektor mnożników Lagrange'a:

T = 1 2 q
■

i z jego pomocą rozszerzamy funkcję M do L:
L=M 2 T  c−B =T G y 2 T  c−B 
■
Jest to funkcja Lagrange'a. Teraz rozwiązujemy
problem minimalizacji M przy jednoczesnym
spełnieniu równań więzów.
KADD – Minimalizacja funkcji
3
Mnożniki Lagrange'a – rozwiązanie
■
■
Pochodna zupełna funkcji L musi znikać:
dL=2 T G y d 2 T B d =0 ⇔ T G y −T B=0
Przekształcając otrzymujemy rozwiązanie na μ:
T
−1
T
−1
T −1
T G y =T B ⇒ =G−1
B

⇒
c−B
G
B
=0
⇒
=
B
G
B
 c

y
y
y
■
I możemy wyliczyć estymatory błędów pomiarowych
T
−1
T −1
 =G−1
B

B
G
B
 c
y
y
■
oraz najlepszy estymator dla wektora η:
−1
T
−1
T −1
=
 y− = y−G y B  B G y B  c
■
I ostatecznie piszemy macierze kowariancji:
−1
T −1
G−1
=
B
G
B
 ≡G B

y
−1
−1
T
−1
G−1
=G
−G
B
G
B
G

y
y
B
y
KADD – Minimalizacja funkcji
4
Wartości ekstremalne
Bardzo ważnym zagadnieniem jest poszukiwanie
wartości ekstremalnych funkcji. Poszukiwanie
maksimum można zawsze zamienić na
poszukiwanie minimum przez przemnożenie
funkcji przez -1. Stąd mówimy o minimalizacji
funkcji.
■ Jeśli jest to możliwe, to zawsze używamy
analitycznych metod minimalizacji. Jednak w
większości przypadków nie są one dostępne.
Dlatego przedstawimy teraz numeryczne metody
minimalizacji. Należy pamiętać, że dają one
zawsze wyniki z ograniczoną dokładnością.
■
KADD – Minimalizacja funkcji
5
Forma kwadratowa
■
Rozważmy prostą formę kwadratową:
M  x =c−bx1/ 2 A x 2
■
która osiąga ekstremum w miejscach zerowych
pierwszej pochodnej:
dM
■
■
dx
=0 =−bx A x
czyli gdy x = xm = b/A. Oznaczymy M(xm) = Mm i:
M  x −M m=1/ 2 A x−x m 2
Bardziej skomplikowane funkcje można zawsze
przybliżyć przez taką formę w pobliżu minimum
poprzez rozwinięcie w szereg Taylora w x0:
M  x =M  x 0 −b x−x 0 1/ 2 A x−x 0 2 
■
skąd b=-M'(x0) i A=M''(x0) a minimum funkcji jest w
x mp=x 0 b / A
KADD – Minimalizacja funkcji
6
Forma kwadratowa – omówienie
M(x)
Podane wzory są słuszne
tylko w pobliżu minimum
gdzie usprawiedliwione jest
obcięcie szeregu Taylora
na dwóch wyrazach.
■ Na rysunku mamy funkcję
xM
xs xm xs xM
x
o minimum w xm i maksimach w xM oraz punktach
przegięcia w xs.
■ Drugie pochodne funkcji dają: M''(x )>0 dla x<x
0
s
oraz M''(x0)<0 dla x>xs. Stąd xmp jest bliżej xm niż x0
tylko dla x0<xs. Widzimy, że duże znaczenie ma
wybór x0.
7
■
KADD – Minimalizacja funkcji
Procedury przybliżania
Wykorzystanie wartości funkcji M oraz jej
pierwszej i drugiej pochodnej w punkcie x0.
 Obliczamy x
jako pierwsze przybliżenie xm.
mp
Zastępujemy x0 przez xmp i powtarzamy dopóki
otrzymana w kolejnym kroku wielkość różni się
od poprzedniej o więcej niż ε.
■ Wykorzystanie wartości M oraz jej pierwszej
pochodnej w punkcie x0.

Posuwamy się w kierunku wskazywanym przez
znak pochodnej M'(x0)=-b. Przechodzimy do
punktu x1 = x0 + b, lub x1 = x0 + cb, dobierając
dowolną stałą c.
■
KADD – Minimalizacja funkcji
8
Przybliżanie c.d.
Wykorzystanie wartości funkcji w kilku punktach

Przez trzy punkty, przez które przechodzi
funkcja można poprowadzić parabolę i jej
wartość ekstremalną przyjąć jako kolejne
przybliżenie. Jest to interpolacja kwadratowa.
■ Stopniowe zmniejszanie przedziału otaczającego
minimum.

Jeśli znamy z pewnością przedział, w którym
leży minimum, to możemy ten przedział dzielić
na coraz mniejsze podprzedziały i sprawdzać, w
którym z nich ono leży. Ta metoda pozwala na
wyznaczenie minimum z dowolną dokładnością.
■
KADD – Minimalizacja funkcji
9
Minimalizacja w n wymiarach
■
W przypadku n niezależnych zmiennych forma
kwadratowa ma postać:
M  x=c−b x1/ 2 xT A x=c−∑k b k x k 1/ 2
∑k , l x k Akl x l
Gdzie A jest macierzą symetryczną
■ Pochodne względem xi są dane jako:
■
dM
■
dx i
=−bi x1/ 2
∑ A x ∑ A =−b ∑ A x
l
il
l
k
ki
i
l
il
l
lub w zwartej postaci:
∇ M =−b A x
■
i analogicznie do przypadku jednowymiarowego:
x m= A−1 b
■
Gdy funkcja M nie jest prostą formą kwadratową,
rozwijamy ją w szereg Taylora wokół x0
M  x=M  x0 −b  x− x0 1/ 2  x− x0 T A x− x0 
KADD – Minimalizacja funkcji
10
Procedury minimalizacji w n wymiarach
■
Wtedy gradient i macierz drugich pochodnych to:
b=−∇ M  x0  , tzn. bi =−
∂M
∂ xi
∣x= x
0
Aik =−
∂2 M
∂ xi ∂ xk
∣x= x
0
I tworzymy procedury minimalizacyjne:
■ Minimalizacja w kierunku gradientu
 Rozpoczynając od x poszukujemy minimum w
0
kierunku gradientu M(x0). Wynik: x1 bierzemy
jako następne przybliżenie i poszukujemy dalej
w kierunku M(x1). Jest to metoda
największego spadku dla przypadku
wielowymiarowego.
■
KADD – Minimalizacja funkcji
11
Procedury n-wymiarowe c.d.
■
Krok o zadanej długości w kierunku gradientu

Oblicza się wartość wektora:
x1 = x0 c b , b=−∇ M  x0 
przy zadanej dodatniej liczbie c. Jest to więc
krok w kierunku maksymalnego spadku, ale bez
wyznaczania minimum w tym kierunku.
■ Wykorzystanie gradientu i drugich pochodnych

Korzystamy ze wzoru:
xmp= x0  A−1 b

Następnie rozwiązanie przyjmujemy jako
następne przybliżenie, liczymy w tym punkcie
gradienty i drugie pochodne i powtarzamy
procedurę.
KADD – Minimalizacja funkcji
12
Dokładność numeryczna
■
W kolejnych krokach przybliżenia porównujemy
wartości funkcji w blisko położonych punktach:
x−x m =
■

2 [ M  x −M  x m ]
A
Obliczenia prowadzimy z dokładnością δ:
x−x m≈
■
A

≈ 
Musimy podać warunek, przy którym kończymy
procedurę minimalizacji. Rozważmy wzór:
∣x −x ∣∣x ∣t
k
■

2
k−1
k
ε jest ograniczone przez dokładność obliczeń. Do
zapisu mantysy stosuje się n=24 bity, stąd:
−n/ 2
2
−4
≈2 ⋅10
KADD – Minimalizacja funkcji
13
Parabola przechodząca przez trzy punkty
■
Mamy zadane trzy
punkty (xa, ya), (xb, yb),
(xc, yc). Stosujemy
następujące równanie
paraboli:
2
y=c 0 c 1  x− x b c 2  x−x b 
■
Stosując je w trzech danych punktach otrzymujemy
c 0 =y b
c 1 =C [ x c −x b 2  y a −y b − x a −x b 2  y c −y b ]
c 2 =C [− x c −x b  y a −y b − x a−x b  y c −y b ]
■
C=1.0/[ x 1 −x b  x c −x b 2 − x c − x b  x a− x b 2 ]
Dostajemy też położenie ekstremum paraboli:
x mp=x b −c 1 /2 ⋅c 2 
KADD – Minimalizacja funkcji
14
Parabola – ekstremum
■
Parabola ma minimum, gdy c2<0. Grupujemy
punkty tak, aby xa<xb<xc i możemy napisać:
sign c 2 =sign[ x c −x b  y a−y b  x b− x a  y c −y b ]
■
Warunkiem wystarczającym istnienia minimum
jest więc:
y ay b , y c y b
■
Gdy minimalizowana funkcja jest określona na
prostej w przestrzeni n-wymiarowej:
f a=M  x0 a d 
■
gzie x0 to pewien punkt, a d – wektor w tej
przestrzeni, to problem sprowadzamy do
przypadku jednowymiarowego przez wzięcie:
n=1, x0 =0, d=1
KADD – Minimalizacja funkcji
15
Otaczanie minimum
Poszukujemy przedziału, w którym z pewnością
znajduje się minimum funkcji.
■ Rozpoczynamy od dwóch punktów początkowych
x1 i x2. Nazywamy je a i b tak, aby M(xa)>M(xb).
■ Z dowolną stałą p dobieramy: xc=xb+p(xb-xa)
■ Nasz cel jest osiągnięty, gdy y >y . Gdy to nie
c
b
zachodzi, wyznaczamy xm z równania elipsy w
trzech punktach i realizujemy algorytm:
■
b. x m ∈ x c , x end  , gdzie x end =x b  f  x c − x b 
a. x m ∈ x b , x c 
a.1 y my c ⇒ bierzemy  x b , x m , x c  b.1 y my c ⇒ bierzemy  x b , x c , x m 
a.2 y y ⇒ bierzemy  x , x , x  b.2 y m y c ⇒ dalej
b
m
a
a.3 y m y c ∧y my b ⇒ dalej
b
m
c. x end x m ⇒ dalej
KADD – Minimalizacja funkcji
16
Otaczanie minimum – kolejna iteracja
■
Krok 2
Krok 1
a
a
b
m
n
m
n−1
x n
=
x
b
c
c
■
Krok 3
Krok 4
a
a
b
m
c
c m b
n−1
xa = xb
b
c
W kolejnym kroku
bierzemy:
n−1
x n
=
x
c
m
Procedurę
przerywamy, gdy
znajdujemy
przedział,
zawierający
minimum, czyli gdy
y a y b , y c y b
KADD – Minimalizacja funkcji
17
Reguła złotego podziału
■
Jako wejście mamy 3 punkty spełniające warunki
y ay b , y c y b
■
Wyliczamy położenie punktu x w większym z
przedziałów (xa,xb), (xb,xc). Stosujemy regułę
złotego podziału, tzn.
λ
λ

l
g= =
L l
■
5−1

=
≈0,618034
x
l
xa
2
Sprawdzamy warunek:
xb
xc
L
M  x M  x b 
■
I mamy cztery możliwości wyznaczenia nowego
przedziału zawierającego minimum:
∣x − x ∣∣x −x ∣⇒ M  x M  x ⇒ x , x , x  ,
∣x −x ∣∣x −x ∣⇒ M  x M  x ⇒ x , x , x  ,
b
a
c
b
b
a
b
w przeciwnym razie x , x b , x c 
b
a
c
b
b
b
c
w przeciwnym razie x a , x b , x 
KADD – Minimalizacja funkcji
18
Przykład metody złotego podziału
■
Stosujemy
kolejne
podziały i
zawężamy
przedział,
gdzie
znajduje się
minimum,
aż do
spełnienia
warunku
∣x −x ∣
c
KADD – Minimalizacja funkcji
a
19
Minimalizacja interpolacją kwadratową
■
Procedura redukcji przedziału poprzez złoty
podział jest dość wolno zbieżna. Można ją
przyspieszyć poprzez jej połączenie z metodą
interpolacji kwadratowej:

Wychodzimy od granic przedziału, w których
znajduje się minimum (xa,xc). Następnie dzielimy
ten przedział regułą złotego przedziału
otrzymując xb. Opierając się na tych trzech
punktach przeprowadzamy interpolację
kwadratową uzyskując minimum xm. Korzystając
z identycznych warunków jak poprzednio
zawężamy przedział.
20
KADD – Minimalizacja funkcji
Interpolacja kwadratowa – przykład
Kolejne
przedziały są
coraz mniejsze i
zawierają w
sobie minimum.
■ Porównanie
szybkości
zbieżności:

Złoty podział:
21 kroków

Interpolacja:
13 kroków
■
KADD – Minimalizacja funkcji
21
Metoda elementów
■
Rozwiązujemy q równań więzów aby wyeliminować
z równań q z n wielkości η. Pozostałe n-q wielkości αi
(i=1,2,...,n-q) nazywamy elementami. Mogą to być
pierwotne pomiary n lub ich kombinacje liniowe:
 j = f j0  f j1 1  f j2  2  f j , n−q  n−q , j=1, 2 , , n lub =F  f 0
■
■
Rozwiązanie znajdujemy podobnie jak wcześniej:

=
 F Gy F
T

−1
F T G y  y− f 0 
Macierz kowariancji wynosi wtedy:
−1

T
G−1
=
F
Gy F

■

zaś poprawione wyniki pomiarów i ich macierz
kowariancji wynoszą:
−1

T
=F

 f 0 =F F G y F



F T G y  y− f 0  f 0
T
G−1
=
F
G
F



KADD – Minimalizacja funkcji
22