Метод имитации отжигаНастраиваем параметры
Нетреба КириллКафедра «Теоретические основы электротехники», ГОУ СПбГПУ
12/04/2023 2
Кратко о главном…1. Введение
2. Постановка задачи
3. Динамический нагрев (Tmax)
4. Определение Tmin
5. О скорости охлаждения
6. Заключение
Нетреба Кирилл, СПбГПУ
Метод отжига
12/04/2023 3
Как ясно из названия,…Алгоритм моделирует физический процесс нагрева и последующего контролируемого охлаждения субстанции.
Минимизируемый функционал – энергия остывающего тела. При медленном отжиге тепловое равновесие достигается при каждом значении температуры T и энергия тела, соответствующая этой температуре, будет минимальной => плавно понижая температуру, можно достичь глобального минимума энергии.
При быстром охлаждении образуются внутренние напряжения => энергия тела больше, чем при медленном охлаждении (соответствует сходимости к локальному минимуму)
Нетреба Кирилл, СПбГПУ
Метод отжигаВведение
12/04/2023 4
Ещё аналогия…Есть ящик с шариками
разного размера.
Трясти так, чтобы внизу оказались самые маленькие,
наверху – самые большие.
Сначала трясём сильно, потом слабо.
В детстве миску с клюквой трясли?!
Нетреба Кирилл, СПбГПУ
Метод отжига
Введение
12/04/2023 5
Найти минимум функции
Нетреба Кирилл, СПбГПУ
Метод отжигаПостановка задачи
2 2 2 2 21 2 1 2 1 2 1
p pI(p ,p ) p p 5p p 10 cos p cos 1
6 3
-8 ≤ p1,2 ≤ 8
pmax = (-5.63, 4.61)
f (pmax) = -262.1026
12/04/2023 6
Статический нагрев: если известно максимальное расстояние между соседними решениями, то легко рассчитать начальную температуру:
Динамический нагрев: если задать статистику по коэффициенту допуска худших решений и нахождению новых лучших решений, можно повышать температуру до тех пор, пока не будет достигнуто нужное количество допусков. Процесс аналогичен нагреву субстанции до перехода её в жидкую форму, после чего уже нет смысла повышать температуру.
Нетреба Кирилл, СПбГПУ
Метод отжигаНагрев (Tmax)
/Te r (r [0,1], 0, I( 1) I( )) p p
Tmax↑, (pi – p1i)↑, I(pi) – I(p1i)↑Высокая температура позволяет покрыть весь диапазон «по горизонтали» (предлагаются решения, «далекие» от текущего), и «по вертикали» (новым решениям позволяется занимать точки с «плохим» функционалом – оседлые точки).
А – локальный минимумB – оседлая точкаС – глобальный минимум
12/04/2023 7Нетреба Кирилл, СПбГПУ
Метод отжигаНагрев (Tmax)
T_max = 10; начальная TmaxA = [-8 -8]; B = [8 8]; % диапазоны аргументовp = A + (B-A).*rand(1, N); % начальное решениеF = FindFunct(p); % вычисление его функционалаnT=0; ep0 = 0.9; % ep0-коэффициент допускаdT = 5; % повышение Tmax на dT, если решение не принятоwhile nT<ep0*100 % набираем нужное количество «ухудшений» T_max = T_max + dT; nT = 0; for i = 1:100 p = A + (B-A).*rand(1,2); % новое случайное решение G = FindFunct(p); % его функционал (формула-слайд 5) delt = abs(G - F); % в данном случае важен модуль ep = exp(-delt/T_max); if ep>ep0, nT = nT + 1; end F = G; % не привязываемся к первому случайному решению endend
Динамический нагрев (задача на слайде 5)
Результат:Tmax ≈ 2615
ξ = e-∆/T, ∆ = −ln(ξ)∙T = −ln(0.9)∙2615 ≈ 275Ответ: вероятность того, что решение, ухудшающее функционал на 275 единиц будет принято, равна 90% (при T = 2615).
из графика: Imax – Imin = 462 – (262) = 724 (соответствует ξ=1)275/724 ∙100 ≈ 38%
12/04/2023 8Нетреба Кирилл, СПбГПУ
Метод отжигаНагрев (Tmax)
Динамический нагрев для различных ξ
Условие принятия нового решения:∆≤0 или (∆>0 & ξ>r)ξ = e-∆/T, r = rand ∈ [0,1]
∆↓ ξ↑ или ∆→0 ξ→1 (T=const)T↑ ξ↑ или T→∞ ξ→1 (∆=const)
Imax – Imin = 724
Решение «плохое», если ∆>00.4 0.5 0.6 0.7 0.8 0.9 1
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2x 10
4
Tmax
0.4 0.5 0.6 0.7 0.8 0.9 10
100
200
300
400
500
600
700
2615
y=Tmax(ξ)
∆=−ln(ξ)∙Tmax(ξ)
∆1=724∙ξ
•«плохие» решения принимаются с вероятностью ξ=0.9 при T=2615
•этим ξ и T соответствует ∆=−ln(0.9)∙2615=275 единиц функционала
•не забываем, что ξ – это не ∆i/ ∆ ∙ 100%! (∆ ≠ ∆1)
275
12/04/2023 9Нетреба Кирилл, СПбГПУ
Метод отжигаОпределение Tmin
Влияние Tmin на точность решения
Tmin определяет точность решения. Чем меньше Tmin, тем точнее решение.
Т.о.: Tmin↑ и ∆↑.
Для ξ=0.70.8 имеем:•T=10, ∆=2.23.5•T=1, ∆=0.220.35
Условие принятия: ξ>r, r = rand ∈ [0,1]
0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.40
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1y = ()
0 0.5 1 1.5 2 2.5 3 3.5 40 5 10 15 20 25 30 35 40
T = 0.1T = 1T = 10
12/04/2023 10Нетреба Кирилл, СПбГПУ
Метод отжигаОпределение Tmin
Влияние Tmin на точность решения
-8 -6 -4 -2 0 2 4 6 8-8
-6
-4
-2
0
2
4
6
8
p1
p2
I(p1,p2),
-8 -6 -4 -2 0 2 4 6 8-8
-6
-4
-2
0
2
4
6
8
p1
p2
I(p1,p2),
Tmax=1200, k=0.96, Ti+1=Ti∙kmin maxln(T / T )
n = fixln(k)
Tmin=0.1, n=230 Tmin=0.01, n=286
250
255
260
250
255
260
12/04/2023 11Нетреба Кирилл, СПбГПУ
Метод отжигаОпределение Tmin
Tmax=1000, k=0.94min max
min
ln(T / T )n = fix
ln(k)
ln(T /1000)n = fix
ln(0.94)
Tmin= 0.001 0.01 0.1 1n = 223 186 148 111
Tmin= 0.001 0.01 0.1 0.001k = 0.912 0. 925 0. 940 0.955
Tmax=1000, n=150
1 1n 150
min min
max
T Tk =
T 1000
250.44
255.60
261.14262.06
252.38
256.12
261.06261.95
−I
−I
IGlobalMin= -262.1026
12/04/2023 12Нетреба Кирилл, СПбГПУ
Метод отжигаО скорости охлажденияКритерий применимости любого метода – приемлемое количество обращений к функции вычисления функционала (количество итераций, n) для нахождения глобального минимума => делаем так:Tmax – из динамического нагрева, Tmin и n – задаём сами, k = (Tmin/Tmax)1/n
0 10 20 30 40 50 60 70 80 90 1000
200
400
600
800
1000
итерация
T
Tmax
=1000, n=100
Tmin = 1, Tср = 149.67, k = 0.9333
Tmin = 0.1, Tср = 113.64, k = 0.9120
Tmin = 0.01, Tср = 91.95, k = 0.8913
cp
1
nmin
max
TT
n
Tk =
T
Но! Если текущее решение «задержалось» в зоне локального минимума, может от туда и не выбраться…
Пусть Tmin1<Tmin2, тогда каждая итерация для Tmin1 происходит при меньшей текущей T (Ti1<Ti2) =>• новое решение генерируется
близко к текущему• меньше вероятность принятия
«плохого» решения.
средняя температура
коэффициент охлаждения
12/04/2023 13Нетреба Кирилл, СПбГПУ
Метод отжигаО скорости охлаждения
Параметры: Tmax = 1000, Tmin = 1e-5, n = 51, k = 0.7Статистика: зона глоб.мин – 86%, локального мин. – 14%
-8 -6 -4 -2 0 2 4 6 8-8
-6
-4
-2
0
2
4
6
8
p1
p2
I(p1,p2),
-8 -6 -4 -2 0 2 4 6 8-8
-6
-4
-2
0
2
4
6
8
p1
p2
I(p1,p2),
Два запуска, два решения…Глобальный минимум Локальный минимум
Быстрое охлаждение: алгоритм не видит глоб. минимум и уточняет локальный.
Быстрое охлаждение: алгоритм больше работает над уточнением глоб. мин.
12/04/2023 14Нетреба Кирилл,
СПбГПУ
Спасибо за внимание!
Литература:Лопатин А.С. Метод отжига в задачах оптимизации. Дипломная работа. СПб., 2004