Алгоритм имитации отжига

Материал из testwiki
Перейти к навигации Перейти к поиску

Алгори́тм имита́ции о́тжига (Шаблон:Lang-en) — общий алгоритмический метод решения задачи глобальной оптимизации, особенно дискретной и комбинаторной оптимизации. Один из примеров методов Монте-Карло.

Общее описание

Поиск глобального максимума методом имитации отжига. Стандартные градиентные методы (методы спуска) в данном случае неприменимы, поскольку имеется множество локальных максимумов. Со временем температура уменьшается.

Алгоритм основывается на имитации физического процесса, который происходит при кристаллизации вещества, в том числе при отжиге металлов. Предполагается, что атомы вещества уже почти выстроены в кристаллическую решётку, но ещё допустимы переходы отдельных атомов из одной ячейки в другую. Активность атомов тем больше, чем выше температура, которую постепенно понижают, что приводит к тому, что вероятность переходов в состояния с большей энергией уменьшается. Устойчивая кристаллическая решётка соответствует минимуму энергии атомов, поэтому атом либо переходит в состояние с меньшим уровнем энергии, либо остаётся на месте. (Этот алгоритм также называется алгоритмом Н. Метрополиса, по имени его автора).

Моделирование похожего процесса используется для решения задачи глобальной оптимизации, состоящей в нахождении такой точки или множества точек, на которых достигается минимум некоторой целевой функции F(x) ("энергия системы"), где xX (x — "состояние системы", X — множество всех состояний).

Алгоритм поиска минимума методом имитации отжига предполагает свободное задание:

  • x0X — начального состояния системы;
  • оператора A(x,i):X×X, случайно генерирующего новое состояние системы после i-ого шага с учётом текущего состояния x (этот оператор, с одной стороны, должен обеспечивать достаточно свободное случайное блуждание по пространству X, а с другой — работать в некоторой степени целенаправленно, обеспечивая быстроту поиска);
  • Ti>0 — убывающей к нулю положительной последовательности, которая задаёт аналог понижающейся температуры в кристалле. Скорость остывания (закон убывания) также может задаваться (и варьироваться) произвольно, что придаёт алгоритму значительной гибкости.

Алгоритм генерирует процесс случайного блуждания по пространству состояний X. Решение ищется последовательным вычислением точек x0,x1,x2,, пространства X; каждая точка, начиная с x1, «претендует» на то, чтобы лучше предыдущих приближать решение. На каждом шаге алгоритм (который описан ниже) вычисляет новую точку и понижает значение величины (изначально положительной), понимаемой как «температура».

Последовательность этих точек (состояний) получается следующим образом. К точке xi применяется оператор A, в результате чего получается точка-кандидат xi*=A(xi,i), для которой вычисляется соответствующее изменение "энергии" ΔFi=F(xi*)F(xi). Если энергия понижается (ΔFi0), осуществляется переход системы в новое состояние: xi+1=xi*. Если энергия повышается (ΔFi>0), переход в новое состояние может осуществиться лишь с некоторой вероятностью, зависящей от величины повышения энергии и текущей температуры, в соответствии с законом распределения Гиббса:

P(xi*xi+1xi)=exp(ΔFi/Ti)

Если переход не произошёл, состояние системы остаётся прежним: xi+1=xi. Алгоритм останавливается по достижении точки, которая оказывается при температуре ноль.

Алгоритм имитации отжига похож на градиентный спуск, но за счёт случайности выбора промежуточной точки и возможности выбираться из локальных минимумов должен реже застревать в локальных, но не глобальных минимумах, чем градиентный спуск. Алгоритм имитации отжига не гарантирует нахождения минимума функции, однако при правильной настройке генерации случайной точки в пространстве X, как правило, происходит улучшение начального приближения.

Применение

См. также

Примечания

Шаблон:Примечания

Литература

Ссылки

Шаблон:Методы оптимизации Шаблон:Rq