Метод имитации отжига. Алгоритм отжига. Задачи...

14
Метод имитации отжига Настраиваем параметры Нетреба Кирилл Кафедра «Теоретические основы электротехники», ГОУ СПбГПУ

description

Презентация посвящена проблеме настройки параметров алгоритма имитации отжига. Рассмотрены вопросы определения максимальной температуры (динамический нагрев), влияния минимальной температуры и коэффициента охлаждения.

Transcript of Метод имитации отжига. Алгоритм отжига. Задачи...

Page 1: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

Метод имитации отжигаНастраиваем параметры

Нетреба КириллКафедра «Теоретические основы электротехники», ГОУ СПбГПУ

Page 2: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

12/04/2023 2

Кратко о главном…1. Введение

2. Постановка задачи

3. Динамический нагрев (Tmax)

4. Определение Tmin

5. О скорости охлаждения

6. Заключение

Нетреба Кирилл, СПбГПУ

Метод отжига

Page 3: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

12/04/2023 3

Как ясно из названия,…Алгоритм моделирует физический процесс нагрева и последующего контролируемого охлаждения субстанции.

Минимизируемый функционал – энергия остывающего тела. При медленном отжиге тепловое равновесие достигается при каждом значении температуры T и энергия тела, соответствующая этой температуре, будет минимальной => плавно понижая температуру, можно достичь глобального минимума энергии.

При быстром охлаждении образуются внутренние напряжения => энергия тела больше, чем при медленном охлаждении (соответствует сходимости к локальному минимуму)

Нетреба Кирилл, СПбГПУ

Метод отжигаВведение

Page 4: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

12/04/2023 4

Ещё аналогия…Есть ящик с шариками

разного размера.

Трясти так, чтобы внизу оказались самые маленькие,

наверху – самые большие.

Сначала трясём сильно, потом слабо.

В детстве миску с клюквой трясли?!

Нетреба Кирилл, СПбГПУ

Метод отжига

Введение

Page 5: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

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

Page 6: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

12/04/2023 6

Статический нагрев: если известно максимальное расстояние между соседними решениями, то легко рассчитать начальную температуру:

Динамический нагрев: если задать статистику по коэффициенту допуска худших решений и нахождению новых лучших решений, можно повышать температуру до тех пор, пока не будет достигнуто нужное количество допусков. Процесс аналогичен нагреву субстанции до перехода её в жидкую форму, после чего уже нет смысла повышать температуру.

Нетреба Кирилл, СПбГПУ

Метод отжигаНагрев (Tmax)

/Te r (r [0,1], 0, I( 1) I( )) p p

Tmax↑, (pi – p1i)↑, I(pi) – I(p1i)↑Высокая температура позволяет покрыть весь диапазон «по горизонтали» (предлагаются решения, «далекие» от текущего), и «по вертикали» (новым решениям позволяется занимать точки с «плохим» функционалом – оседлые точки).

А – локальный минимумB – оседлая точкаС – глобальный минимум

Page 7: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

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%

Page 8: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

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

Page 9: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

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

Page 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

Page 11: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

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

Page 12: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

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) =>• новое решение генерируется

близко к текущему• меньше вероятность принятия

«плохого» решения.

средняя температура

коэффициент охлаждения

Page 13: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

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),

Два запуска, два решения…Глобальный минимум Локальный минимум

Быстрое охлаждение: алгоритм не видит глоб. минимум и уточняет локальный.

Быстрое охлаждение: алгоритм больше работает над уточнением глоб. мин.

Page 14: Метод имитации отжига. Алгоритм отжига. Задачи оптимизации.

12/04/2023 14Нетреба Кирилл,

СПбГПУ

Спасибо за внимание!

Литература:Лопатин А.С. Метод отжига в задачах оптимизации. Дипломная работа. СПб., 2004