- •Использование алгоритма муравьиных колоний для решения задачи маршрутизации транспортных средств1
- •1. Задача маршрутизации транспорта
- •2. Алгоритм муравьиных колоний
- •3. Применение алгоритма муравьиных колоний для решения задачи vrp
- •4. Локальная оптимизация маршрутов
- •5. Распараллеливание алгоритма муравьиных колоний
- •6. Вычислительный эксперимент
- •7. Заключение
4. Локальная оптимизация маршрутов
Для улучшения качества создаваемых маршрутов используются алгоритмы локального поиска. В данной работе мы рассмотрим применение алгоритма 2-точечной оптимизации (2-opt). В предлагаемом алгоритме каждая пара рядом стоящих точек в маршруте обменивается местами, в случае если значение целевой функции улучшается изменение применяется к решению. Процесс повторяется до тех пор, пока удаётся улучшать решение.
5. Распараллеливание алгоритма муравьиных колоний
При анализе последовательного алгоритма муравьиных колоний можно выделить следующие этапы решения задачи:
A) начальная подготовка, включающая в себя загрузку и начальную инициализацию данных,
B) последовательное построение и улучшение созданных маршрутов, непосредственно сам вычислительный этап,
C) обработка и вывод полученных результатов.
Наибольшую сложность в вычислительном плане составляет этап B, время выполнения остальных этапов относительно невелико, особенно при возрастании размерности задачи. В свою очередь этап B можно разбить на следующие подэтапы: построение маршрута и его последующее улучшение для каждого муравья, затем обновление следа феромона. Построение и улучшение маршрутов для каждого муравья производится абсолютно независимо от остальных муравьев, при обновлении феромона происходит редактирование общей структуры данных. В итоге можно предложить следующую схему распараллеливания для общей памяти: потоки независимо друг от друга строят и улучшают по 1 маршруту для каждого муравья, затем они синхронизируются с помощью барьера и главный поток, на основе полученных результатов производит обновление феромона.
6. Вычислительный эксперимент
Для вычислительного эксперимента были отобраны три задачи, описанные в работе [1]. В качестве тестовой системы использовалась рабочая станция с 4-ядерным процессором Intel Core 2 Quad 9550 2.83 ГГц и 4 Гб оперативной памяти.
В ходе численного эксперимента было отслежено влияние значений параметров α и β на качество получаемого решения.
Для первых трех наборов тестов была выбрана задача с 50 клиентами E051-05e, значение лучшего известного решения которой равно 524.61.
В первом наборе тестов проверялось влияние параметра α (параметр значимости количества феромона при выборе следующего клиента). Значения параметра α менялось от 1 до 10, остальные параметры были зафиксированы: β = 1, p = 0.2, O = 524. Таб. 1 показывает, что увеличение параметра α приводит к существенному ухудшению решений.
α |
1 |
3 |
5 |
7 |
9 |
L |
585.7 |
774.5 |
1229.3 |
1113.9 |
1145.9 |
Таб. 1. Влияние параметра α на качество решения L.
Во втором наборе тестов проверялось влияние параметра β (параметр значимости расстояния при выборе следующего клиента). Значения параметра β менялось от 1 до 10, остальные параметры были зафиксированы: α = 1, p = 0.2, O = 524. Как легко можно заметить из Таб. 2 изменение значения β практически не влияет на решение, лучшее решения достигается при значениях параметра 3 и 5.
β |
1 |
3 |
5 |
7 |
9 |
L |
585.7 |
567.4 |
567.3 |
576.2 |
583.0 |
Таб. 2. Влияние параметра β на качество решения L.
На рис. 1 графически отображены результаты предыдущих наборов тестов.
Рис. 1. Влияние параметров α и β на качество решения.
В таб. 3 приведены некоторые результаты для различных комбинаций α и β:
α |
β |
L |
2 |
3 |
569.1 |
2 |
4 |
603.3 |
2 |
5 |
606.8 |
2 |
8 |
579.0 |
2 |
10 |
568.8 |
2 |
12 |
582.7 |
3 |
5 |
603.0 |
3 |
10 |
564.7 |
3 |
12 |
605.9 |
3 |
15 |
605.9 |
Таб. 3. Влияние комбинаций параметров α и β на качество решения L.
В заключение приведем значения лучших решений, полученных для 3 тестовых задач:
Задача |
Лучшее известное решение |
Лучшее полученное решение |
E051-05e |
524.6 |
564.7 |
076-10e |
835.3 |
956.5 |
E101-08eE |
826.1 |
969.7 |
Таб. 4. Лучшие полученные решения.
При проведении вышеописанных наборов тестов на оставшихся двух примерах наблюдается аналогичное поведение: при увеличении параметра α решение задачи резко ухудшается, изменение β в свою очередь подобного эффекта не дает.
Для оценки масштабируемости реализованного алгоритма муравьиных колоний был проведен ряд запусков тестовых задач на 1 и 4 ядрах. Результаты приведены в таб. 5.
Задача |
Время выполнения на 1 ядре, с. |
Время выполнения на 4 ядрах, с. |
Коэффициент масштабируемости (ускорение) |
E051-05e |
20 |
6 |
3.33 |
076-10e |
70 |
18 |
3.88 |
E101-08eE |
152 |
39 |
3.89 |
Таб. 5. Время выполнения на 1 и 4 ядрах.
