УДК 004.91
ИССЛЕДОВАНИЕ АЛГОРИТМА ИМИТАЦИИ ОТЖИГА
С. А. Савельев, А. И. Томилина Научный руководитель - М. Н. Фаворская
Сибирский государственный аэрокосмический университет имени академика М. Ф. Решетнева
Российская Федерация, 660037, г. Красноярск, просп. им. газ. «Красноярский рабочий», 31 Е-mail: [email protected], [email protected]
Произведено исследование алгоритма имитации отжига путем изменения параметров, сделаны выводы по работе алгоритма, все тесты произведены с помощью специально написанного авторами приложения.
Ключевые слова: искусственный интеллект, алгоритм имитации обжига, задача о рюкзаке. SIMULATED ANNEALING ALGORITHM RESEARCH
S. A. Savelev, A. I. Tomilina Scientific Supervisor - M. N. Favorskaya
Reshetnev Siberian State Aerospace University 31, Krasnoyarsky Rabochy Av., Krasnoyarsk, 660037, Russian Federation E-mail: [email protected], [email protected]
In this work it was researched the algorithm of simulated annealing by changing the parameters, made some conclusions about the work of the algorithm, all tests are made with a specially realized application by the authors of this paper.
Keywords: artificial intelligence, simulated annealing algorithm, knapsack problem.
Искусственный интеллект появился с рождением компьютеров, однако значимые с практической точки зрения результаты были получены лишь в конце 1960-х годов. Из-за практической значимости сегодня искусственный интеллект продолжает активно изучаться. Можно выделить следующие основные методики искусственного интеллекта: нейронные сети, генетические алгоритмы, алгоритм имитации отжига, муравьиные алгоритмы и другие. В данной работе будет рассмотрен алгоритм имитации отжига.
Алгоритм имитации отжига представляет собой метод решения задачи глобальной оптимизации, в особенности дискретной и комбинаторной оптимизации. Алгоритм основывается на имитации физического процесса, который происходит при кристаллизации вещества, в том числе при отжиге металлов. Предполагается, что атомы уже выстроились в кристаллическую решётку, но ещё допустимы переходы отдельных атомов из одной ячейки в другую. Предполагается, что процесс протекает при постепенно понижающейся температуре. Переход атома из одной ячейки в другую происходит с некоторой вероятностью, причём вероятность уменьшается с понижением температуры. Устойчивая кристаллическая решётка соответствует минимуму энергии атомов, поэтому атом либо переходит в состояние с меньшим уровнем энергии, либо остаётся на месте [1].
Данный алгоритм был программно реализован и протестирован на задаче о рюкзаке [3]. Формулировка задачи о рюкзаке: «Пусть имеется набор предметов, каждый из которых имеет два параметра - вес и ценность. И есть рюкзак, определенной вместимости. Задача заключается в том, чтобы собрать рюкзак с максимальной ценностью предметов внутри, соблюдая при этом весовое ограничение рюкзака» [2].
Основные параметры при проведении исследований были установлены следующим образом:
- В качестве исходного состояния (Initialstate) использовался пустой рюкзак, в котором не лежит ни одной вещи.
Секция «Программные средства и информационные технологии»
- Если полученное на текущей итерации решение получается хуже чем на предыдущей, проверяем можем ли мы принять его, с помощью следующей функции (Acceptfunction). random() < e-deltaC/t, значение которой полностью зависит от текущей температуры.
- Функция «заморозки» (Frozenfunction). было использовано константное значение конечной температуры.
- Ограничение внутреннего цикла (Innerloopend). было использовано число, выражающее максимальное число итераций.
- Функция остужения (Coolfunction): было использовано геометрическое остужение t = alpha*t, где alpha = 0,8.. .0,99.
Эксперименты.
Для всех экспериментов использовался тестовый набор данных состоящий из 30 предметов. Тестирование проводилось на следующей конфигурации аппаратного обеспечения. процессор - Intel Corei7 4700 HQ 2.4 GHz (x64), ОЗУ - 1600 Mhz 8 Gb.
Эксперимент 1. Начальная температура = 4000.0, конечная температура = 0.1, Альфа = 0.995, Внутренний цикл N = 50.
Время выполнения. 8.49 с. Относительная погрешность. 0,0172.
Рис. 1. Эксперимент 1 (по вертикали графика - разность стоимости рюкзака, по горизонтали - итерации)
На рис. 1 можно увидеть некоторое количество «безрезультатно потраченного» времени в конце вычислений, но относительная погрешность низкая. Лишняя трата времени может означать, что установленное значение конечной температуры было слишком низкое. Эксперимент 2.
Начальная температура = 4000.0, конечная температура =1.0, Альфа = 0.995, Внутренний цикл N = 50.
Время выполнения: 6.49 с. Относительная погрешность: 0,0473.
4000 2000 о
О 10000 20000 30000 40000
Рис. 2. Эксперимент 2 (по вертикали графика - разность стоимости рюкзака, по горизонтали - итерации)
Увеличение значения конечной температуры дало свой эффект, в этом случае область интенсификации короче, но область диверсификации слишком большая.
Эксперимент 3. Начальная температура = 4000.0, конечная температура = 0.1, Альфа = 0.995, Внутренний цикл N = 25.
Во время выполнения = 2.68. Относительная погрешность: 0,0739.
3000
Е
2000 1000
V * » (ix. jtAj
0
0 5000 10000 15000 20000
Рис. 3. Эксперимент 3 (по вертикали графика - разность стоимости рюкзака, по горизонтали - итерации)
В этом эксперименте была совершена попытка урезать конечную сумму итераций путем урезания количества итераций во внутреннем цикле. Результат получился хуже, чем в предыдущих опытах, но вычисление заняло гораздо меньшее времени.
Эксперимент 4. Начальная температура = 4000.0, конечная температура =0.1, Альфа = 0.95, Внутренний цикл N = 50.
Время выполнения: 0.97. Относительная погрешность: 0,492.
4000
3000
2000
1000 0 ■ш
0 1000 2000 3000 4000 5000
Рис. 4. Эксперимент 4 (по вертикали графика - разность стоимости рюкзака, по горизонтали - итерации)
В этом эксперименте был уменьшен коэффициент Альфа, время выполнения этого эксперимента является самым низким из всех, но относительная погрешность - самая высокая. Охлаждение происходит слишком быстро.
Таким образом, лучшим является результат, полученный в эксперименте 1: с времен выполнения 6.49 с. При этом простым перебором точного результата можно добиться за 8 минут 29,64 секунды, а эвристическим алгоритмом - 0,055 за 1,93 секунды .
Алгоритм имитации отжига имеет свои преимущества и недостатки по сравнению с другими методами глобальной оптимизации. Его преимуществами являются относительная простота реализации и универсальность применения для многих комбинаторных задач. К недостаткам можно отнести необходимость многократных тестов для верного подбора параметров алгоритма, результат работы данного алгоритма сильно зависит от выбранных значений параметров, что доказали проведенные эксперименты. Для каждой задачи и реализации параметры могут существенно варьироваться, что делает проведение тестов неотъемлемым этапом метода.
Библиографические ссылки
1. Алгоритм имитации отжига [Электронный ресурс]. URL: Шр8://гц.'тк1ре&а.о^^1к1/Алго-ритм_имитации_отжига (дата обращения: 30.01.2016).
2. Задача о ранце [Электронный ресурс]. URL: Шр8://гц.'шк1ре&а.о^/'шк1/Задача_о_ранце (дата обращения: 30.01.2016).
3. Джонс М. Т. Программирование искусственного интеллекта в приложениях. М. : ДМК Пресс, 2004. 312 с. ISBN 5-94074-275-0. С. 25-42.
© Савельев А. С., Томилина А. И., 2016