Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к вопросам к экзамену ММО.docx
Скачиваний:
9
Добавлен:
01.05.2025
Размер:
5.23 Mб
Скачать
  1. Алгоритм имитации отжига (Настя)

В металлургии отжигом называется термическая обработка металла, заключающаяся в его нагреве до определенной температуры, выдержке и по­следующем - обычно медленном - охлаждении.

В начале 1950-х гг. группа исследователей под руководством Николаса Метрополиса (Nicholas Metropolis) разработала метод Монте-Карло, позво­ляющий вычислять свойства субстанций, которые могут быть рассмотрены как системы отдельных взаимодействующих молекул [3]. Этот метод копи­рует физический процесс, который может быть использован для имитации описанного процесса рекристаллизации в металлах.

Именно работа Метрополиса вдохновила Скотта Киркпатрика (Scott Kirkpatrick) и его коллег на создание вероятностного метаэвристического ме­тода оптимизации, названного ими алгоритмом имитации отжига. Незави­симо от них, примерно в то же время V. Сеrny применил похожий подход к решению задачи о коммивояжёре.

Вернемся к имитируемому физическому процессу. Каждая конфигура­ция системы (т. е. множество позиций её атомов) характеризуется вероятно­стным коэффициентом Больцмана:


где Ej - энергия системы в состоянии i; Т — абсолютная температура;

к = 1,380 • 10 Дж / — постоянная Больцмана.

Алгоритм имитации отжига требует для работы единственного началь­ного решения. На каждом шаге к текущему решению применяется оператор мутации и оно модифицируется случайным образом. Вычисляется энергия полученного состояния, и, если она окажется меньше энергии предыдущего, происходит безусловный переход к новому состоянию. Если энергия нового решения больше, чем энергия предыдущего, переход осуществляется с веро­ятностью, определяемой коэффициентом Больцмана.

Кроме того, в процессе работы алгоритма снижается значение темпера­туры, что имитирует процесс медленного остывания металла при отжиге. При этом, поскольку температура определяет коэффициент Больцмана, по­степенно снижается вероятность перехода системы к новому состоянию. Критерием останова алгоритма является достижение температурой мини­мального значения - нуля градусов.

Характер изменения температуры оказывает огромное влияние на тща­тельность исследования пространства поиска и скорость сходимости алго­ритма. Наиболее очевидным вариантом является её линейное уменьшение, когда на каждом шаге алгоритма значение температуры уменьшается на не­которую константу, пока не достигнет нуля. Возможны, однако, и более сложные (и, вместе с тем, более эффективные) способы управления темпера­турой. Можно снижать температуру от значения Т до (1- )T’ каждые не­сколько итераций. Значение Ɛ, очевидно, должно лежать в пределах (0;l). Также можно заранее выбрать число итераций К и уменьшать значение тем­пературы через каждые несколько итераций до значения =T0 (l -к/К)а, где константу а обычно выбирают равной 1, 2 или 4. Чем больше ее значе­ние, тем медленнее будет снижаться температура. Псевдокод алгоритма ими­тации отжига:

current <- init

iteration <- О

while not terminationCriteria

T <- getTemperatureForlteration(iteration) new <- mutate(current) dE = f(new) - f(current)

if dE > 0 or randomO < exp(-dE/(kB*T)) current <- new iteration <- iteration + 1

В приведенном алгоритме функция getTemperatureForIteration() вычисля­ет текущую температуру для заданного шага. Конкретная реализация этой функции зависит от выбранной характеристики изменения температуры.

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