Имитация отжига ( SA ) — вероятностный метод приближения глобального оптимума заданной функции . В частности, это метаэвристика для приближения глобальной оптимизации в большом пространстве поиска для задачи оптимизации . Для большого количества локальных оптимумов SA может найти глобальный оптимум. [1] Он часто используется, когда пространство поиска дискретно (например, задача коммивояжера , задача выполнимости булевых функций , предсказание структуры белка и планирование работы в цехе ). Для задач, где нахождение приблизительного глобального оптимума важнее, чем нахождение точного локального оптимума за фиксированный промежуток времени, имитация отжига может быть предпочтительнее точных алгоритмов, таких как градиентный спуск или ветвь и граница .
Название алгоритма происходит от отжига в металлургии , метода, включающего нагрев и контролируемое охлаждение материала для изменения его физических свойств . Оба являются атрибутами материала, которые зависят от его термодинамической свободной энергии . Нагрев и охлаждение материала влияют как на температуру, так и на термодинамическую свободную энергию или энергию Гиббса . Имитационный отжиг может использоваться для очень сложных вычислительных задач оптимизации, где точные алгоритмы не справляются; даже если он обычно достигает приблизительного решения глобального минимума, этого может быть достаточно для многих практических задач.
Задачи, решаемые SA, в настоящее время формулируются целевой функцией многих переменных, подлежащих нескольким математическим ограничениям . На практике ограничение может быть оштрафовано как часть целевой функции.
Похожие методы были независимо введены в нескольких случаях, включая Pincus (1970), [2] Khachaturyan et al (1979, [3] 1981 [4] ), Kirkpatrick, Gelatt and Vecchi (1983), и Cerny (1985). [5] В 1983 году этот подход был использован Kirkpatrick, Gelatt Jr., Vecchi, [6] для решения задачи коммивояжера . Они также предложили его нынешнее название — имитация отжига.
Это понятие медленного охлаждения, реализованное в алгоритме имитации отжига, интерпретируется как медленное уменьшение вероятности принятия худших решений по мере исследования пространства решений. Принятие худших решений позволяет проводить более обширный поиск глобального оптимального решения. В целом алгоритмы имитации отжига работают следующим образом. Температура постепенно уменьшается от начального положительного значения до нуля. На каждом временном шаге алгоритм случайным образом выбирает решение, близкое к текущему, измеряет его качество и переходит к нему в соответствии с зависящими от температуры вероятностями выбора лучших или худших решений, которые во время поиска соответственно остаются равными 1 (или положительными) и уменьшаются к нулю.
Моделирование может быть выполнено либо путем решения кинетических уравнений для функций плотности вероятности , [7] [8], либо с использованием метода стохастической выборки. [6] [9] Метод является адаптацией алгоритма Метрополиса–Гастингса , метода Монте-Карло для генерации выборочных состояний термодинамической системы, опубликованного Н. Метрополисом и др. в 1953 году. [10]
Состояние s некоторых физических систем и минимизируемая функция E ( s ) аналогичны внутренней энергии системы в этом состоянии. Цель состоит в том, чтобы перевести систему из произвольного начального состояния в состояние с минимально возможной энергией.
На каждом шаге эвристика имитации отжига рассматривает некоторое соседнее состояние s* текущего состояния s и вероятностно решает между перемещением системы в состояние s* или пребыванием в состоянии s . Эти вероятности в конечном итоге приводят к тому, что система переходит в состояния с более низкой энергией. Обычно этот шаг повторяется до тех пор, пока система не достигнет состояния, достаточно хорошего для приложения, или пока заданный бюджет вычислений не будет исчерпан.
Оптимизация решения включает оценку соседей состояния задачи, которые являются новыми состояниями, полученными путем консервативного изменения заданного состояния. Например, в задаче коммивояжера каждое состояние обычно определяется как перестановка городов, которые необходимо посетить, а соседи любого состояния являются набором перестановок, полученных путем обмена любых двух из этих городов. Четко определенный способ, которым состояния изменяются для получения соседних состояний, называется «ходом», и различные ходы дают различные наборы соседних состояний. Эти ходы обычно приводят к минимальным изменениям последнего состояния в попытке постепенного улучшения решения путем итеративного улучшения его частей (например, связей городов в задаче коммивояжера). Еще лучше изменить порядок интервала городов на обратный. Это меньший ход, поскольку обмен двух городов может быть достигнут путем двукратного изменения интервала.
Простые эвристики , такие как восхождение на холм , которые движутся, находя лучшего соседа за лучшим соседом и останавливаются, когда достигают решения, у которого нет соседей, которые являются лучшими решениями, не могут гарантировать, что приведут к любому из существующих лучших решений — их результат может легко оказаться просто локальным оптимумом , в то время как фактическим лучшим решением будет глобальный оптимум , который может быть другим. Метаэвристики используют соседей решения как способ исследования пространства решений, и хотя они предпочитают лучших соседей, они также принимают худших соседей, чтобы не застрять в локальных оптимумах; они могут найти глобальный оптимум, если работают достаточно долго.
Вероятность перехода из текущего состояния в новое состояние-кандидат определяется функцией вероятности принятия , которая зависит от энергий и двух состояний, а также от глобального изменяющегося во времени параметра, называемого температурой . Состояния с меньшей энергией лучше, чем состояния с большей энергией. Функция вероятности должна быть положительной, даже когда больше . Эта функция не позволяет методу застрять на локальном минимуме, который хуже глобального.
Когда стремится к нулю, вероятность должна стремиться к нулю, если и к положительному значению в противном случае. Для достаточно малых значений система будет все больше отдавать предпочтение ходам, которые идут «вниз» (т. е. к более низким значениям энергии), и избегать тех, которые идут «вверх». С процедурой сводится к жадному алгоритму , который делает только переходы вниз.
В первоначальном описании имитации отжига вероятность была равна 1, когда —т. е. процедура всегда двигалась вниз, когда находила способ сделать это, независимо от температуры. Многие описания и реализации имитации отжига все еще принимают это условие как часть определения метода. Однако это условие не является обязательным для работы метода.
Функция обычно выбирается так, чтобы вероятность принятия хода уменьшалась при увеличении разницы, то есть небольшие подъемы более вероятны, чем большие. Однако это требование не является строго необходимым, при условии, что выполняются вышеуказанные требования.
Учитывая эти свойства, температура играет решающую роль в управлении эволюцией состояния системы с точки зрения ее чувствительности к изменениям энергий системы. Точнее, для большого значения эволюция чувствительна к более грубым изменениям энергии, в то время как она чувствительна к более тонким изменениям энергии, когда мало.
Название и вдохновение алгоритма требуют, чтобы интересная функция, связанная с изменением температуры, была встроена в рабочие характеристики алгоритма. Это требует постепенного снижения температуры по мере продолжения моделирования. Алгоритм изначально начинается с установки высокого значения (или бесконечности), а затем она уменьшается на каждом шаге, следуя некоторому графику отжига , который может быть указан пользователем, но должен заканчиваться ближе к концу выделенного временного бюджета. Таким образом, ожидается, что система будет сначала блуждать в направлении широкой области пространства поиска, содержащей хорошие решения, игнорируя небольшие особенности энергетической функции; затем дрейфовать в направлении областей с низкой энергией, которые становятся все уже и уже, и, наконец, двигаться вниз в соответствии с эвристикой наискорейшего спуска .
Для любой заданной конечной задачи вероятность того, что алгоритм имитации отжига завершится глобальным оптимальным решением, приближается к 1 по мере расширения графика отжига. [11] Однако этот теоретический результат не особенно полезен, поскольку время, необходимое для обеспечения значительной вероятности успеха, обычно превышает время, необходимое для полного поиска пространства решений . [12]
Следующий псевдокод представляет эвристику имитации отжига, как описано выше. Она начинается с состояния s 0 и продолжается до тех пор, пока не будет выполнено максимум k max шагов. В процессе вызов neighbor( s ) должен генерировать случайно выбранного соседа заданного состояния s ; вызов random(0, 1) должен выбрать и вернуть значение в диапазоне [0, 1] , равномерно случайным образом . Расписание отжига определяется вызовом temperatura( r ) , который должен выдавать температуру для использования, учитывая долю r временного бюджета, которая была затрачена до сих пор.
Чтобы применить метод имитации отжига к конкретной проблеме, необходимо указать следующие параметры: пространство состояний, энергетическую (целевую) функцию E()
, процедуру генератора кандидатов neighbor ()
, функцию вероятности принятия P()
и график отжига temperature()
И начальную температуру init_temp
. Эти выборы могут оказать значительное влияние на эффективность метода. К сожалению, нет выбора этих параметров, который был бы хорош для всех проблем, и нет общего способа найти лучший выбор для данной проблемы. В следующих разделах приведены некоторые общие рекомендации.
Имитация отжига может быть смоделирована как случайное блуждание по графу поиска, вершинами которого являются все возможные состояния, а ребрами — кандидаты на ходы. Существенным требованием к функции neighbor ()
является то, что она должна обеспечивать достаточно короткий путь на этом графе от начального состояния до любого состояния, которое может быть глобальным оптимумом — диаметр графа поиска должен быть небольшим. Например, в приведенном выше примере коммивояжера пространство поиска для n = 20 городов имеет n! = 2 432 902 008 176 640 000 (2,4 квинтиллиона) состояний; однако число соседей каждой вершины равно ребрам (исходя из n, выбираем 20), а диаметр графа равен .
Чтобы исследовать поведение имитации отжига на конкретной задаче, может быть полезно рассмотреть вероятности перехода , которые являются результатом различных вариантов дизайна, сделанных при реализации алгоритма. Для каждого ребра графа поиска вероятность перехода определяется как вероятность того, что алгоритм имитации отжига перейдет в состояние, когда его текущее состояние равно . Эта вероятность зависит от текущей температуры, как указано , от порядка, в котором кандидаты-ходы генерируются функцией , и от функции вероятности принятия . (Обратите внимание, что вероятность перехода не просто , поскольку кандидаты тестируются последовательно.)temperature()
neighbor ()
P()
Спецификация neighbour()
, P()
, и temperature()
частично избыточна. На практике обычно используют одну и ту же функцию принятия P()
для многих задач и корректируют две другие функции в соответствии с конкретной задачей.
В формулировке метода Киркпатрика и др. функция вероятности принятия была определена как 1, если , и в противном случае. Эта формула была поверхностно обоснована по аналогии с переходами физической системы; она соответствует алгоритму Метрополиса–Гастингса , в случае, когда T=1 и распределение предложений Метрополиса–Гастингса симметрично. Однако эта вероятность принятия часто используется для имитации отжига, даже когда функция , которая аналогична распределению предложений в Метрополисе–Гастингсе, не является симметричной или вообще не является вероятностной. В результате вероятности перехода алгоритма имитации отжига не соответствуют переходам аналогичной физической системы, и долгосрочное распределение состояний при постоянной температуре не обязательно должно иметь какое-либо сходство с распределением термодинамического равновесия по состояниям этой физической системы при любой температуре. Тем не менее, большинство описаний имитации отжига предполагают исходную функцию принятия, которая, вероятно, жестко закодирована во многих реализациях SA.neighbor ()
В 1990 году Москато и Фонтанари [13] и независимо Дюк и Шойер [14] предположили, что детерминированное обновление (то есть не основанное на правиле вероятностного принятия) может ускорить процесс оптимизации, не влияя на конечное качество. Москато и Фонтанари, наблюдая аналог кривой «удельной теплоты» отжига «обновления порога», возникшей в их исследовании, делают вывод, что «стохастичность обновления Метрополиса в алгоритме имитационного отжига не играет большой роли в поиске почти оптимальных минимумов». Вместо этого они предположили, что «сглаживание ландшафта функции стоимости при высокой температуре и постепенное определение минимумов в процессе охлаждения являются основными составляющими успеха имитационного отжига». Метод впоследствии популяризировался под названием «прием порога» благодаря названию Дюка и Шойера. В 2001 году Франц, Хоффманн и Саламон показали, что детерминированная стратегия обновления действительно является оптимальной в большом классе алгоритмов, которые имитируют случайное блуждание по ландшафту стоимости/энергии. [15]
При выборе генератора neighbor ()
-кандидата необходимо учитывать, что после нескольких итераций алгоритма имитации отжига ожидается, что текущее состояние будет иметь гораздо более низкую энергию, чем случайное состояние. Поэтому, как правило, следует наклонять генератор в сторону ходов-кандидатов, где энергия целевого состояния, вероятно, будет близка к энергии текущего состояния. Эта эвристика (которая является основным принципом алгоритма Метрополиса–Гастингса ) имеет тенденцию исключать как очень хорошие ходы-кандидаты, так и очень плохие ; однако первые обычно встречаются гораздо реже, чем вторые, поэтому эвристика, как правило, довольно эффективна.
В задаче коммивояжера выше, например, ожидается, что обмен двух последовательных городов в низкоэнергетическом туре окажет скромное влияние на его энергию (длину); тогда как обмен двух произвольных городов с гораздо большей вероятностью увеличит его длину, чем уменьшит ее. Таким образом, ожидается, что генератор соседей с последовательным обменом будет работать лучше, чем генератор с произвольным обменом, хотя последний может обеспечить несколько более короткий путь к оптимуму (с обменами вместо ).
Более точное утверждение эвристики заключается в том, что следует попробовать первые кандидатные состояния, для которых велико. Для «стандартной» функции принятия выше это означает, что имеет порядок или меньше. Таким образом, в примере с коммивояжером выше можно использовать функцию, которая меняет местами два случайных города, где вероятность выбора пары городов исчезает по мере увеличения их расстояния сверх .neighbor ()
При выборе кандидата-генератора neighbor ()
необходимо также попытаться сократить количество «глубоких» локальных минимумов — состояний (или наборов связанных состояний), которые имеют гораздо более низкую энергию, чем все его соседние состояния. Такие «закрытые водосборные бассейны» энергетической функции могут захватить алгоритм имитации отжига с высокой вероятностью (примерно пропорциональной числу состояний в бассейне) и на очень долгое время (примерно экспоненциальное от разности энергий между окружающими состояниями и дном бассейна).
Как правило, невозможно разработать генератор кандидатов, который будет удовлетворять этой цели и также отдавать приоритет кандидатам с похожей энергией. С другой стороны, часто можно значительно повысить эффективность имитации отжига путем относительно простых изменений в генераторе. Например, в задаче коммивояжера несложно продемонстрировать два тура , , с почти одинаковой длиной, так что (1) является оптимальным, (2) каждая последовательность обменов парами городов, которая преобразуется в , проходит через туры, которые намного длиннее обоих, и (3) может быть преобразована в путем переворачивания (изменения порядка) набора последовательных городов. В этом примере и лежат в разных «глубоких бассейнах», если генератор выполняет только случайные обмены парами; но они будут находиться в одном бассейне, если генератор выполняет случайные перевороты сегментов.
Физическая аналогия, которая используется для обоснования имитации отжига, предполагает, что скорость охлаждения достаточно низка для того, чтобы распределение вероятностей текущего состояния всегда было близко к термодинамическому равновесию . К сожалению, время релаксации — время, которое необходимо ждать для восстановления равновесия после изменения температуры — сильно зависит от «топографии» энергетической функции и от текущей температуры. В алгоритме имитации отжига время релаксации также зависит от генератора-кандидата, причем очень сложным образом. Обратите внимание, что все эти параметры обычно предоставляются как функции черного ящика для алгоритма имитации отжига. Поэтому идеальную скорость охлаждения невозможно определить заранее, и ее следует эмпирически корректировать для каждой задачи. Адаптивные алгоритмы имитации отжига решают эту проблему, связывая график охлаждения с ходом поиска. Другие адаптивные подходы, такие как термодинамическая имитация отжига [16], автоматически корректируют температуру на каждом шаге на основе разницы энергий между двумя состояниями в соответствии с законами термодинамики.
Иногда лучше вернуться к решению, которое было значительно лучше, чем всегда двигаться из текущего состояния. Этот процесс называется перезапуском имитированного отжига. Для этого мы устанавливаем и s
и , возможно, перезапускаем график отжига. Решение о перезапуске может быть основано на нескольких критериях. Среди них следует отметить перезапуск на основе фиксированного количества шагов, на основе того, слишком ли высока текущая энергия по сравнению с лучшей энергией, полученной до сих пор, случайный перезапуск и т. д.e
sbest
ebest
{{cite journal}}
: CS1 maint: multiple names: authors list (link){{cite journal}}
: CS1 maint: multiple names: authors list (link)