Дискретные задачи размещения ballred.gif (861 bytes) Оптимизационные алгоритмы
line.jpg (1129 bytes)

ballred.gif (861 bytes) Главная страница библиотеки  ballred.gif (861 bytes) Демонстрационная версия ballred.gif (861 bytes) Оптимизационные алгоритмы ballred.gif (861 bytes)

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

Экзотическое название данного алгоритма связано с методами имитационного моделирования в статистической физике [1], основанными на технике Монте-Карло. Исследование кристаллической решетки и поведения атомов при медленном остывании тела привело к появлению на свет вероятностных алгоритмов, которые оказались чрезвычайно эффективными в комбинаторной оптимизации. Впервые это было замечено в 1983 году [2]. Сегодня этот алгоритм является популярным как среди практиков благодаря своей простоте, гибкости и эффективности, так и среди теоретиков, поскольку для данного алгоритма удается аналитически исследовать его свойства и доказать асимптотическую сходимость.

Алгоритм имитации отжига относится к классу пороговых алгоритмов локального поиска. На каждом шаге этого алгоритма для текущего решения ik в его окрестности N(ik) выбирается некоторое решение j и, если разность по целевой функции между новым и текущим решением не превосходит заданного порога tk, то новое решение j заменяет текущее. В противном случае выбирается новое соседнее решение. Общая схема пороговых алгоритмов может быть представлена следующим образом.

Пороговый алгоритм

1. Выбрать начальное решение i0 Î I и положить f* : = f (i0), k : =  0.

2. Пока не выполнен критерий остановки делать следующее:

2.1. Случайно выбрать  j Î N (ik).

2.2. Если  f (j) – f (ik) < tk то  ik+1 : =  j.

2.3. Если f* > f (ik), то f* : =  f (ik).

2.4. Положить k : =  k+1.

В зависимости от способа задания последовательности {tk} различают три типа пороговых алгоритмов.

  1. Последовательное улучшение: tk= 0, k = 0, 1, 2, …— вариант классического локального спуска с монотонным улучшением по целевой функции.

  2. Пороговое улучшение: tk = ck, k = 0, 1, 2, …,   ck ³ 0, ck ³ ck+1 и — вариант локального поиска, когда допускается ухудшение по целевой функции до некоторого заданного порога, и этот порог последовательно снижается до нуля.

  3. Имитация отжига: tk ³ 0, k = 0, 1, 2, … — случайная величина с математическим ожиданием E (tk) = ck ³ 0 — вариант локального поиска, когда допускается произвольное ухудшение по целевой функции, но вероятность такого перехода обратно пропорциональна величине ухудшения, точнее для любого j Î N(i)

Последовательность {ck} играет важную роль при анализе сходимости и выбирается так, чтобы ck ® ¥ при k ® ¥. Иногда параметр ck называют температурой [3], имея ввиду указанные выше истоки.

Существует много эвристических способов выбора конечной последовательности {ck} с целью повышения вероятности обнаружить глобальный оптимум. В некоторых работах рассматриваются небольшие примеры, для которых удается полностью исследовать характеристики цепей Маркова [4, 5]. В большинстве работ следуют рекомендациям первопроходцев [2] и используют схему геометрической прогрессии.

1. Начальное значение: c0= D fmax      — максимальная разность между двумя соседними решениями.

2. Понижение порога: ck+1=a ck,   k = 0, 1,…, K – 1, где a положительная константа, достаточно близкая к 1, например, a Î [ 0,8;  0,99].

3. Конечное значение: cK > 0 определяется либо по числу сделанных изменений, либо как максимальное ck, при котором алгоритм не меняет текущее решение в течение заданного числа шагов. При каждом значении ck алгоритм выполняет порядка | N(i)| шагов, не меняя значение порога.

Литература

  1. Binder K. Monte Carlo methods in statistical physics. Berlin: Springer, 1978.
  1. Kirkpatrick S., Gelatt C. D., Vecchi M. P. Optimization by simulated annealing. Science. v220 (1983), pp 671–680.
  1. Aarts E. H. L., Korst J. H. M., Laarhoven van P. J. M. Simulated annealing. in Aarts E., LenstraJ.K. (Eds) Local search in combinatorial optimization. Chichester: Wiley, 1997. pp 91–120.
  1. Aarts E. H. L., Korst J. H. M. Simulated annealing and Boltzmann machines. Chichester: Wiley, 1989.
  1. Hajek B., Sasaki G. Simulated annealing: to cool it or not. Sys. Contr. Lett. v12 (1989), pp 443–447.

 


ballred.gif (861 bytes) Главная страница библиотеки  ballred.gif (861 bytes) Демонстрационная версия ballred.gif (861 bytes) Оптимизационные алгоритмы ballred.gif (861 bytes)