Optymalizacja globalna

Transkrypt

Optymalizacja globalna
Optymalizacja globalna
Low-Discrepancy Sequences, Pure Random Search
1
Wstęp
Najważniejszym celem optymalizacji globalnej, zarówno w algorytmach multistartu jak i również w algorytmach bezpośrednio dedykowanych do poszukiwań optimum globalnego,jest zyskanie maksymalnej ilości informacji o rozważanym
problemie. Co więcej, jednym z najważniejszych wskaźników jakości różnych
metod optymalizacji globalnej, jest liczba obliczeń funkcji celu. Tak też, najbardziej efektywna strategia powinna pozyskiwać jak najwięcej informacji o
nieznanej funkcji celu, za pomocą minimalnej ilości punktów testowych.
Na potrzeby niniejszego ćwiczenia rozważmy problemy optymalizacji globalnej, dla których przestrzeń rozwiązań K przyjmuje postaci hiperkostki, t.j.:
K = {x ∈ Rn : xLi ≤ xi ≤ xUi , i = 1, 2, . . . , n}
(1)
Należy zauważyć, że stosując proste przekształcenia liniowe, każdy zbiór
postaci (2) można przekształcić w jednostkową hiperkostkę H n , t.j.:
H n = {x ∈ Rn : 0 ≤ xi ≤ 1, i = 1, 2, . . . , n}
(2)
W ten sposób, w niniejszym ćwiczeniu, optimum globalne x∗ zdefiniowane
będzie zdefiniowany następująco:
x∗ = arg minn f (x)
x∈H
(3)
Każdy algorytm optymalizacji globalnej, czy to stochastyczny czy też deterministyczny, generuje ciąg kolejnych przybliżeń rozwiązania optymalnego
X N = {xi }N
i=1 . Zatem zakładając, że funkcja celu f (·) nie posiada charakteru stochastycznego, jako naturalne przybliżenie rozwiązania optymalnego,
przyjmuje się ten element ciągu X N , dla którego funkcja celu przyjmuje
wartość najmniejszą:
x∗N = arg min f (xi )
(4)
xi ∈X N
Oczywiście, aby punkty testowe xi dostarczały maksymalną ilość informacji,
ciągi punktów testowych X N powinny spełniać odpowiednie kryteria. Po
pierwsze, ciągi te powinny być rozłożone na przestrzeni przeszukiwań tak
równomiernie jak to tylko możliwe. Z drugiej strony, kolejno generowane
punkty, takich ciągów, powinny wypełniać luki pomiędzy wcześniej wygenerowanymi punktami. Intuicyjną miarą jakości ciągów X N jest tzw. dyspersja dN (n) definiowana następująco:
dn (X N ) = sup min kx − xj k2
x∈H n 1≤j≤N
(5)
Sekwencje o małej dyspersji gwarantują lepsze przybliżenie optimum globalnego.
2
Przeszukiwania czysto-losowe
Metody przeszukiwań czysto losowych należą do tzw. stochastycznych, nieadaptacyjnych metod optymalizacji globalnej. Oznacza to, że kolejno generowane
punkty testowe nie wykorzystują informacji o punktach wygenerowanych
wcześniej. W przypadku braku jakiejkolwiek informacji o funkcji celu, kolejne punkty testowe generowane są za pomocą rozkładu równomiernego na
zbiorze H n .
3
Ciągi Haltona
Deterministyczne ciągi punktów o małej dyspersji są naturalną alternatywą
dla ciągów czystolosowych w zadaniach optymalizacji globalnej. Ich cechą
charakterystyczną jest, sposób generowania kolejnych punktów testowych,
który bierze pod uwagę położenie punktów wcześniej wygenerowanych. W
ten sposób możliwe jest, bardziej szczelne wypełnienie luk w przestrzeni H n .
Aby zdefiniować jednowymiarowe ciągi Haltona rozpatrzmy zapis liczb naturalnych w systemie liczbowym o bazie b, t.j:
i = [dm , dm−1 , . . . , d1 , d0 ] =
m
X
dk bk ,
(6)
k=0
gdzie dk ∈ {0, 1, . . . , b − 1} dla k = 0, 1, . . . , m. Korzystając z rozwinięcia
(6), i-ty element ciągu Haltona definiuje się następująco:
Xb (i) = 0.d0 , d1 , . . . , dm−1 , dm =
m
X
k=0
2
dk b−k−1 ,
(7)
W ten sposób otrzymuje się ciąg {Xb (i)}, który charakteryzuje się równomiernym
rozkładem na na odcinku [0, 1]. Wielowymiarowe ciągi Haltona otrzymuje
się wykorzystując wyżej zdefiniowane ciąg jednowymiarowe, w następujący
sposób:
xi = (Xb1 (i), Xb1 (i), . . . , Xbn (i)),
dla i = 1, 2, . . . ,
(8)
gdzie b1 , b2 , . . . , bn są kolejnymi liczbami pierwszymi. W ten sposób ciągi (8)
są równomiernie rozłożone w zbiorze [0, 1] × [0, 1] × . . . × [0, 1] ⊂ Rn .
4
Zadania do wykonania
1. Wykorzystując funkcje dec2base, str2num napisać funkcję generującą
jednowymiarowy oraz wielowymiarowy ciąg Haltona o długości N .
2. Narysuj pokrycie zbioru H 2 za pomocą ciągów punktów otrzymanych
za pomocą rozkładu równomiernego oraz za pomocą ciągów Haltona
(dla N= 64, 256, 1024, 2048)
3. Dla zbiorów H n (n = 2, 4, 8, 16) zbadaj eksperymentalnie wielkość
dyspersji dla ciągów czystolosowych oraz ciągów Haltona o długości N
= 64, 256, 1024, 2048.
3