Temperatura początkowa w symulowanym algorytmie wyżarzania


14

Przeprowadziłem pewne testy różnych temperatur początkowych w moim algorytmie symulującym wyżarzanie i zauważyłem, że temperatura początkowa ma wpływ na wydajność algorytmu.

Czy jest jakiś sposób obliczenia dobrej temperatury początkowej?


2
Temperatura początkowa ma wiele wspólnego z dziedziną problemową i innymi parametrami, których używasz do gradientowej części algorytmu. Czy możesz podać więcej kontekstu?
dj

Odpowiedzi:


9

0.8tmin t δ t E max t - E min t π min t 1maxtmintδtEmaxtEminttπmint1|N(mint)|t

N(i)i

πi=|N(i)|exp(Ei/T)j|N(j)|exp(Ej/T)
, gdzie oznacza zbiór sąsiadów .N(i)i

Wreszcie, to prawdopodobieństwo zaakceptowania przejścia dodatniego . Teraz możemy uzyskać oszacowanie prawdopodobieństwa akceptacji na podstawie „losowego” zestawu pozytywnych przejść:T Ď Ď ( T ) Sexp(δt/T)tχ^χ(T)S

χ^(T)=tSπmint1|N(mint)|exp(δt/T)tSπmint1|N(mint)|=tSexp(Emaxt/T)tSexp(Emint/T).

Chcemy znaleźć temperaturę taką, że , gdzie to oczekiwane prawdopodobieństwo akceptacji. χ ( T 0 ) = χ 0 χ 0] 0 , 1 [T0χ(T0)=χ0χ0]0,1[

S E max t E min t S T 1 T 0T0 oblicza się metodą iteracyjną. Generowane są niektóre stany i sąsiad dla każdego stanu. To daje nam zestaw przejścia . Energie i odpowiadające stanom podzbioru są przechowywane. Następnie wybierana jest wartość dla , która może być dowolną wartością dodatnią. Następnie znajduje się w formule rekurencyjnejSEmaxtEmintST1T0

Tn+1=Tnln(χ^(Tn))ln(χ0)1/p
, gdzie jest liczbą rzeczywistą .p1

Kiedy zbliży się do , możemy przestać. jest teraz dobrym przybliżeniem pożądanej temperatury początkowej . Więcej wyjaśnień, dowodów i dyskusji znajduje się w pierwszej części oryginalnego artykułu [1].χ^(Tn)χ0TnT0


[1] Ben-Ameur, Walid. „Obliczanie początkowej temperatury symulowanego wyżarzania”. Optymalizacja obliczeniowa i aplikacje 29, no. 3 (2004): 369–385.


3

jest to bardzo zaawansowany temat związany z uzyskiwaniem bardzo ciasnych optymów. rozumiem, początkowa temperatura jest ogólnie uważana za część strategii „harmonogramu temperatur”, dla której istnieją pewne głębokie badania. innymi słowy zarówno początkowy warunek temperatury, jak i algorytm zaniku temperatury (o których nie wspominasz) wpływają na ogólne wyniki optymalizacji. proste strategie lub heurystyka dla obu często dają dobre lub „wystarczająco dobre” wyniki.

istnieje jednak co najmniej jeden artykuł, który bada samą początkową temperaturę. [1] Najważniejsze jest to, że jeśli nie wykonujesz bardzo zaawansowanej pracy, traktowanie temperatury początkowej jako parametru problemu i iteracja różnych temperatur początkowych jako część ogólnej optymalizacji [po stwierdzeniu, że rzeczywiście wpływa na wyniki] jest bardzo rozsądne i prawdopodobnie powszechna praktyka.

lub nawet samo wybranie temperatury początkowej, która daje dobre wyniki, jest również powszechne (wydaje się to nieco zaskakujące i nie często wyniki optymalizacji wystąpienia problemu różnią się znacznie od „lepszego” parametru temperatury początkowej stwierdzonego metodą prób i błędów) . jak wskazał dhj, niektóre problemy będą bardziej wrażliwe niż inne na temperaturę początkową.

[1] Obliczanie początkowej temperatury symulowanego wyżarzania Ben-Ameur 2004

[2] Wydajny harmonogram symulowanego wyżarzania: pochodzenie Lam i Delosme

[3] Kontrola temperatury dla symulowanego wyżarzania Munakata i Nakamura


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.