Поиск симуляцией отжига

Симуляция отжига - алгоритм поиска, сочетающий эвристику и случайность. Эвристика указывает перспективное направление поиска. Она помогает избежать необходимости перебирать все варианты. Случайность позволяет не попадать в ловушку локальных максимумов.

В течение работы алгоритма роль случайности постепенно уменьшается. А эвристика, наоборот, становится всё важнее и важнее.

Мера продвижения поиска к результату обозначается числом, которое имеет условное название «температура». Вначале температура максимальна. С каждым шагом алгоритма она снижается. Температура достигает низшей точки при завершении поиска.

Алгоритм:

Из-за понижения температуры к концу поиска невыгодные состояния исследуются реже.

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

Реализация поиска симуляцией отжига на гибридном языке ДРАКОН-Lua:

Скачать исходник в формате DRAKON Editor: anneal.drn Из этого файла можно сгенерировать работающий скрипт на Lua.

Степан Митькин