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