- •Методологические основы моделирования (Миша)
- •Общая классификация основных видов моделирования (Миша)
- •Процедурно-технологическая схема построения и исследования моделей сложных систем (Аня)
- •Отличительные особенности моделей различных классов (Аня)
- •Области применения имитационного моделирования (Люба)
- •Сущность метода имитационного моделирования (Люба)
- •Статическое и динамическое представление моделируемой системы (Виля)
- •Управление модельным временем (Виля)
- •Проблемы стратегического и тактического планирования имитац.Эксп. (Гриша)
- •Общая технологическая схема имитационного моделирования (Гриша)
- •Базовые концепции структуризации и формализации имитационных систем (Леша)
- •Методологические подходы к построению дискретных имитационных моделей (Леша)
- •Язык моделирования gpss (Макс)
- •Сети Петри и их расширения (Макс)
- •Основы технологии имитационного моделирования (Киря)
- •Описание поведения системы (надо убрать воду и проверить формулы) (Киря)
- •Моделирование асинхронных процессов (Даша)
- •Обзор алгоритмов оптимизации (Даша)
- •Глобальная оптимизация (Дима)
- •Классификация алгоритмов оптимизации (Дима)
- •Скорость и точность оптимизации (Антон)
- •Метод Дельфи (Антон)
- •Метод Анализа Иерархий (маи) (Серега)
- •Анкетирование (Серега)
- •Экспертные оценки (Катя)
- •Обработка экспертных оценок (Катя)
- •Метод непосредственного оценивания (Вова)
- •Метод ранжирования (Саша)
- •Основные понятия га (Егор)
- •Стратегии отбора для га (Егор)
- •Модели га (Паша)
- •Применение алгоритмов, инспирированных природными явлениями, для решения задач оптимизации (Паша)
- •Алгоритм имитации отжига (Настя)
- •Алгоритм роя частиц (Настя)
- •Алгоритм муравьиной колонии (Миша)
- •Пчелиные алгоритмы (Люба)
- •Моделирование перемещения бактерий (Виля)
- •Алгоритм культурного обмена (Леша)
- •Алгоритм подъема (Киря)
- •Алгоритм поиска с запретами (Дима)
- •Меметический алгоритм (Антон)
- •Алгоритм поиска гармонии (Серега)
- •Отбор объектов в пространстве признаков. Метод Парето (Катя)
- •Применение интерактивного подхода к решению опт. Задач (Саша)
- •Типовые задачи многокритериальной оптимизации (Паша)
Алгоритм имитации отжига (Настя)
В металлургии отжигом называется термическая обработка металла, заключающаяся в его нагреве до определенной температуры, выдержке и последующем - обычно медленном - охлаждении.
В начале 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() вычисляет текущую температуру для заданного шага. Конкретная реализация этой функции зависит от выбранной характеристики изменения температуры.
Алгоритм имитации отжига успешно применяется для решения сложных комбинаторных задач и задач оптимизации функций. Он эффективно исследует поисковые пространства со сложной структурой, позволяя находить оптимумы для целевых функций с большой долей нелинейности и стохастичности. Алгоритмическая сложность метода довольно низка, благодаря чему его реализация не представляет больших трудностей. К недостаткам метода следует отнести зачастую слишком низкую скорость сходимости, а также сложность выбора значений настраиваемых параметров. Эти недостатки частично или полностью устранены в его модификациях (например, в адаптивном алгоритме имитации отжига) и являются предметом дальнейших исследований.
