УДК 519.658.2
А. В. Землянский, Г. А. Штыков
ПРОГРАММНАЯ РЕАЛИЗАЦИЯ МЕТОДА ИМИТАЦИИ ОТЖИГА И АНАЛИЗ ЕГО ЭФФЕКТИВНОСТИ
Аннотация. При реализации алгоритма имитации отжига были использованы закон распределения Коши и закон убывания температуры Коши. Проведен вычислительный эксперимент, в котором сравнивалась вычислительная эффективность метода золотого сечения, метода Монте-Карло и метода имитации отжига, а также сравнение результатов при использовании различных схем охлаждения. Обсуждается возможность применения алгоритма в случае многокритериальной оптимизации.
Ключевые слова: метод золотого сечения, моделируемый отжиг, распределение Коши, распределение Гиббса, метод Монте-Карло.
Введение
Поиск экстремума функции - злободневная задача практически в каждой области прикладных наук. Все потому, что очень часто для исследования протекающих процессов необходимо составить функцию (одну или несколько), моделирующую ход этого процесса. Она всегда зависит от факторов, влияющих на состояние моделируемого явления.
Для оценки и оптимизации протекания исследуемого процесса требуется найти экстремумы функций, моделирующих этот процесс.
Всего существует несколько одномерных методов поиска экстремума в исследуемом интервале некой функции. Среди них методы, которые находят оптимум с помощью сужения заданного интервала вокруг точки оптимума путем исключения подинтервалов.
Для того, чтобы эти методы работали на практике, нужно, чтобы функция в исследуемом интервале была унимодальна. В таких функциях, сравнивая значения функции в разных точках интервала, можно узнать, в каком из подинтервалов, разделенных этими точками, нет точки оптимума функции.
Правило исключения интервалов
Пусть функция / унимодальна на интервале а < х < Ь, а ее минимум достигается в точке х*.
Рассмотрим точки Х1 и Х2, расположенные в интервале таким образом, что а < Х1 < < х2 < Ь. Теперь необходимо найти значение функции в каждой из этих точек.
1. ЕслиЛХ1) > ДХ2), то минимум не лежит в интервале (а, Х1), и этот интервал мы исключаем.
2. ЕслиЛХ1) < ДХ2), то минимум не лежит в интервале (Х2, Ь), и отбрасывается уже он.
3. Если У(х1) = Дх2), то получается, что точка х* находится между двумя случайно взятыми Х1 и Х2.
Используя этот алгоритм, можно найти минимум заданной функции /, исключая подинтервалы, в которых точно нет точки оптимума.
Повторяем эти действия до тех пор, пока интервал не достигнет желаемого размера.
Достоинства этих методов:
- не приходится перебирать все точки для нахождения минимума;
- всего лишь две необходимые операции - нахождение значения функции и сравнение;
- следовательно, функции не обязательно должны быть дифференцируемыми и записываться в аналитическом виде.
Метод золотого сечения
Смысл этого метода в том, что после каждого отбрасывания подинтервала без точки минимума мы выбираем новые точки х и Х2 - такие, чтобы одна из них совпадала с предыдущей. Таким образом, мы экономим время на вычислении значения функции в этой точке, используя ранее найденное.
Кроме того, точки Хг и Х2 выбираются не случайным образом, а симметрично друг к другу - так, чтобы отношение всего отрезка к большей части было равно отношению большей части к меньшей. Это отношение может быть точно рассчитано; оно получило название золотого сечения, где А1 = Ь-а - исходный интервал; ЛК+г - интервал, полученный после уменьшения интервала ЛК отбрасыванием «лишнего» подинтервала.
Метод золотого сечения подразумевает, что точки Хг и Х2 делят интервал в фиксированном значении:
Лг/Л2 = Л2/Л3 = ... = у = 1,618.
Из соотношений
Лк/Лк+1 = Лк+1/Лк+2 = у и Лк = Лк+1 + Лк+2
получаем:
Лк/Лк+1 = (Лк+1+Лк+2)/Лк+1 = 1 + Лк+2/Лк+1, у = 1 + 1/у или у2 - у - 1 = О.
Корнем этого уравнения является золотое сечение
у = ( (^ + 1) )/2 * 1,618 X = 1/у = (75 - 1) /2 * 0,618.
Следовательно:
Х1 = а + (1 - х)(Ь - а), Х2 = а + х(Ь - а).
Алгоритм метода золотого сечения:
1. Ввести а, Ь, в - точность вычисления, х = (у]5 -1) /2.
2. Вычислить
Х1 = Ь - (Ь - а)х; Х2 = а + (Ь - а)х.
3. Вычислить
У1 = ДХО; у 2 = /(Х2).
4. Если У1 < у2, то для дальнейшего деления оставляют интервал [а, Х2] и выполняют следующее:
Ь: = Х2; Х2: = Х1; У2: = У1; Х1 := Ь - (Ь - а)х; у1 :=ДхО, в противном случае (если у1 > У2) для дальнейшего деления оставляют интервал [Х1, Ь] и выполняют следующее:
а := Х1; Х1 := Х2; У1 := У2; Х2 := а + (Ь - а)х; У2 :=ДХ2).
5. Сравнение длины интервала неопределенности с заданной точностью в:
Если (Ь - а) < в, то положить х* := (Ь - а)/2 (точка минимума), иначе (если (Ь - а)<в) перейти к п. 4.
Основной результат
Моделируемый отжиг (СА) - это вероятностный метод приближения глобального экстремума данной функции. В частности, это метаэвристически приближенная глобальная оптимизация в пространстве поиска высокой размерности. Часто используется, когда пространство поиска является дискретным (например, все туры, в которых посещают данный набор городов). В задачах, где найти примерный глобальный оптимум является более важным, чем найти точный локальный оптимум в определенный промежуток времени, метод моделируемого отжига может быть предпочтительнее альтернативы - такой, как градиентный спуск.
Название и источник метода приходят из отжига в металлургии - метода привлечения нагрева в контролируемом охлаждении материала для увеличения размеров его кристаллов и уменьшения их недостатков. Оба являются атрибутами материального, которые зависят от его свободной термодинамической энергии. Нагрев и охлаждение материала влияют на температуру и свободную термодинамическую энергию. Имитация отжига в качестве подхода, снижающего минимум функции большого числа, впервые была сформулирована А. Г. Хачатуряном, С. В. Семеновской, Б. К. Вайнштейном в 1979 г. [1]. В 1981 г. эти авторы использовали компьютерное моделирование имитации отжига и охлаждения такой системы, чтобы найти ее глобальный минимум [2].
Понятие медленного охлаждения реализовано в алгоритме имитации отжига, в котором осуществляется медленное снижение вероятности принятия худших решений. Моделирование может осуществляться либо путем решения кинетических уравнений для функции плотности вероятностей, либо с помощью метода стохастической выборки, который был описан С. Киркпатрик, Э. Даниэль Гелло и П. Марио Векки в 1983 г. [3]. Метод является адаптацией алгоритма Метрополиса - Гастингса, а метод Монте-Карло для генерации эталонных состояний термодинамической системы был изобретен М. Н. Розен-блютом и опубликован Н. Метрополисом и соавторами в 1953 г. [6].
Алгоритм имитации отжига - это один из методов глобальной оптимизации, основанный на моделировании физического процесса, происходящего при кристаллизации вещества, например, металла. Атомы вещества имеют некоторый шанс перестроиться в другую ячейку, причем этот шанс уменьшается с понижением температуры.
Смоделированная схема имитации подразумевает наличие величины, называемой температура, которая понижается после каждой итерации. Первая точка (состояние системы) из исследуемого интервала берется случайным образом. Вычисляется значение функции (энергия атомов) в этой точке. После чего следующая точка выбирается на том же интервале в соответствии с выбранным законом распределения, и вычисляется новое значение функции. С вероятностью И, зависящей от приращения значения и температуры на данном шаге алгоритма, система переходит в новое состояние. Вероятность И вычисляется в соответствии с распределением Гиббса. Далее происходит убывание температуры по заранее известному закону, и вновь выбирается следующая точка. Алгоритм повторяется до тех пор, пока температура не достигнет нуля (или значения, близкого к нулю).
В работе были использованы закон распределения Коши и закон убывания температуры Коши. Для создания новой точки по закону распределения Коши необходимо сгенерировать точку в квадрате [-1, 1] х [-1, 1] и взять ее координаты в том случае, если она находится в круге с центром (о, о) и единичным радиусом. Находится отношение полученных координат. Результат дает значение случайной величины, распределенной по
закону Коши. Такая процедура заменяет нахождение тангенса в стандартном алгоритме генерации распределения Коши.
Реализация алгоритма нахождения глобального минимума по методу отжига
Функция нахождения глобального минимума по методу отжига получает на вход границы интервала [а,Ь] и начальное значение температуры. Точка Х0 (начальное значение) находится с помощью равномерного распределения. Точка Х1 (новое состояние системы) находится с помощью распределения Коши. Функция генерации нового значения по методу Коши получает на вход границы интервала [а,Ь], значение Хо и текущее значение температуры. Сделано это для того, чтобы при высоких значениях температуры иметь возможность взять практически любую точку на исследуемом интервале, а при уменьшении температуры сужать область выбора новых точек Х1 к окрестностям старой точки Х0. Вероятность принятия нового состояния системы зависит от приращения энергии системы (значения функции). Если значение функции в новой точке меньше, чем в старой, то вероятность принятия нового состояния принимается больше 1, и такая точка берется за новое значение Х0 по умолчанию. В случае, если значение функции в новой точке больше, чем в старой, то вероятность принятия рассчитывается по формуле
ЛЕ
И (ЛЕ,Т) = е т , где АЕ — приращение значения функции, Т - текущая температура. Новое
состояние принимается в том случае, если получившееся значение больше заранее сгенерированного случайного значения из промежутка (0,1). Иначе генерируется еще одна точка с тем же значением температуры. Температура меняется только в случае удачного взятия нового состояния системы.
Рассмотрим функцию на отрезке [-9,5, 10], график которой представлен на рис. 1.
, Y ñ
» Л Л
AJ JJ
Л
»
Л
Л
-10 V
V !
-15 V
0 -1.0 и 2. 3. 4 5.0 6. 7.0 1.0 Í.0 10.0
Рис. 1. График функции y = (х2 - 5х|х -l| + l)sin(4x)
В табл. 1 представлены результаты эксперимента по нахождению глобального минимума.
Таблица 1
Результаты эксперимента по нахождению глобального минимума
Решение, полученное методом Монте-Карло при k = 40, a = -9,5, b = 10 Решение, полученное методом имитации отжига при k = 40, a = -9,5, b = 10, Т0 = 20 Решение, полученное методом золотого сечения при a = -9,5, b = 10
х = 9,13947, fx) = -39,8503 x = 8,98772, fx) = -28,6681 x = 7,48660, fx) = 24,490672
x = 8,89428, fx) = -34,6188 x = 9,23528, fx) = -31,014
x = 9,31662, fx) = -19,4419 x = 9,07936, fx) = -42,2705
x = 9,02461, fx) = -42,3017 x = 9,03354, Ax) = -42,4364
x = -8,27348, fx) = -22,9506 x = -8,31394, fx) = -22,7046
Отсюда можно сделать следующие выводы:
- метод золотого сечения находит не глобальный минимум для данной функции, а лишь один из локальных;
- метод отжига в свою очередь находит глобальный минимум, но в сравнении с методом Монте-Карло при использовании в методе отжига функции распределения Коши и
T
закона изменения температуры T = —— проигрывает в точности.
к +1
Точность метода отжига напрямую незначительно зависит от количества итераций цикла. На точность алгоритма и время его выполнения влияет:
- выбранный закон распределения;
- закон изменения температуры;
- начальная температура.
Дальнейшими направлениями исследования могут быть применение алгоритма имитации отжига для нахождения глобального экстремума для функций двух переменных и сравнение его с методами спуска.
Заключение
В работе приведены численные методы нахождения экстремума. Необходимость в них возникает, когда система из частных производных не имеет аналитического решения или содержит сложную нелинейность. Аналитически решается лишь малая часть задач оптимизации, поэтому рассматриваются и некоторые численные алгоритмы. Они запрограммированы, как правило, в математических компьютерных пакетах, которые обеспечивают высокую точность и скорость нахождения экстремума, но, к сожалению, не всегда находят глобальный экстремум. Среди таких пакетов следует отметить математические программы Maple, MatLab, Mathematica. Но это не означает, что для нахождения экстремумов следует пользоваться ими, не имея понятия о математических алгоритмах.
В работе ввиду ограниченного объема не рассматривались задачи оптимизации функций с ограничениями и задачи многокритериальной оптимизации. Тем не менее они составляют важный класс задач поиска экстремума, которые часто появляются в научной и практической деятельности.
Заметим, что в большей части работ, посвященных алгоритму имитации отжига, рассматривается применение алгоритма к решению задач дискретной оптимизации. Несмотря на это, существует обоснованный интерес к возможности применения алгоритма в задачах непрерывной оптимизации.
В ходе численного эксперимента исследовано поведение алгоритма при поиске глобальных минимумов унимодальных и мультимодальных функций. Произведено сравнение полученных результатов с результатами метода Монте-Карло для тех же тестовых функций и методом золотого сечения, а также сравнение результатов при использовании различных схем охлаждения.
Библиографический список
1. Каллан, Роберт. Основные концепции нейронных сетей / Роберт Каллан. - М. : Вильямс, 2003. - С. 146-148.
2. Кирсанов, М. Н. Графы в Maple / М. Н. Кирсанов. - М. : Физматлит, 2007. - 168 с.
3. Vicente, J. De. Placement by thermodynamic simulated annealing / J. De Vicente, J. Lanchares, R. Hermida // Physics Letters A. - 2003. - Vol. 317 (5-6). - P. 415-423.
4. Press, W. H. Section 10.12. Simulated Annealing Methods / W. H. Press, S. A. Teukolsky, W. T. Vetterling, B. P. Flannery // Numerical Recipes: The Art of Scientific Computing (3rd ed.). - N.Y. : Cambridge University Press, 2007. - 1262 р.
5. Strobl, M. A. R. On simulated annealing phase transitions in phylogeny reconstruction // M. A. R. Strobl, D. Barker // Molecular Phylogenetics and Evolution. - 2016. - Vol. 101. - P. 46-55.
6. Акулич, И. Л. Математическое программирование в примерах и задачах / И. Л. Акулич. -М. : Высш. шк., 1986. - 319 с.
7. Алексеев, В. М. Сборник задач по оптимизации / В. М. Алексеев, Э. М. Галеев, В. М. Тихомиров. - М. : Наука, 1984. - 288 с.
8. Банди, Б. Методы оптимизации. Вводный курс / Б. Банди. - М. : Радио и связь, 1988. -
128 с.
9. Васильев, Ф. П. Численные методы решения экстремальных задач / Ф. П. Васильев. - М. : Наука, 1980. - 520 с.
10. Гилл, Ф. Практическая оптимизация / Ф. Гилл, У. Мюррей, М. Райт. - М. : Мир, 1985. -
509 с.
11. Евтушенко, Ю. Г. Методы решения экстремальных задач и их применение в системах оптимизации / Ю. Г. Евтушенко. - М. : Наука, 1982. - 432 с.
12. Карманов, В. Г. Математическое программирование / В. Г. Карманов. - М. : Наука, 1975. - 272 с.
13. Лесин, В. В. Основы методов оптимизации / В. В. Лесин, Ю. П. Лисовец. - М. : Изд-во МАИ, 1995. - 341 с.
14. Летова, Т. А. Экстремум функций в примерах и задачах / Т. А. Летова, А. В. Пантелеев. -M. : Изд-во МАИ, 1998. - 376 с.
15. Пшеничный, Б. И. Численные методы в экстремальных задачах / Б. И. Пшеничный, Ю. М. Данилин. - М. : Наука, 1975. - 320 с.
16. Федоров, В. В. Численные методы максимина / В. В. Федоров. - М. : Наука, 1979. - 272 с.
Землянский Антон Владимирович, студент, Пензенский государственный университет. E-mail: [email protected]
Штыков Григорий Алексеевич, студент, Пензенский государственный университет. E-mail: [email protected]
УДК 519.658.2 Землянский, А. В.
Программная реализация метода имитации отжига и анализ его эффективности / А. В. Землянский, Г. А. Штыков // Вестник Пензенского государственного университета. - 2017. - № 4 (20). - С. 76-81.