Шестая международная научно-практическая конференция "Информационные технологии и математическое моделирование", г. Анжеро-Судженск, 9 ноября 2007 г.
Отличие сбалансированной задачи k коммивояжёров (СЗkК) от известной задачи коммивояжёра (ЗК) состоит в следующем:
Самый простой способ состоит в разрезании маршрута, полученного решением ЗК. Как известно, точное решение ЗК удаётся найти только для небольшого числа городов, поэтому приходится использовать приближённые алгоритмы. После разрезания маршрута на k групп в каждую группу добавляется база, после чего решается простая ЗК для каждой из групп.
Второй способ состоит в последовательном распределении городов на две группы по принципу близости к двум наиболее удалённым друг от друга городам. После разделения городов на две группы каждая из групп снова разделяется на две группы и т. д. При этом возможно несколько вариантов разделения, отличающихся способами оценки близости городов.
Был проведён численный эксперимент, в котором города генерировались как случайные точки с равномерным распределением внутри единичного квадрата, а расстояние вычислялось как евклидово. Количество городов n задавалось в пределах от 32 до 1024, а число коммивояжёров k — от 2 до 64. В качестве приближённого алгоритма решения простой ЗК использовался алгоритм Лина-Кернигана.
Для оценки качества работы различных алгоритмов вычислялась длина минимального остова по всем n + 1 городам, как нижняя граница ЗК.
Моделирование показало, что алгоритм последовательного распределения городов по двум группам имеет существенное преимущество перед алгоритмом разрезания маршрута.
Если города расположены на плоскости и есть возможность найти углы между любой парой городов относительно базы, то можно воспользоваться угловой сортировкой городов на плоскости с дальнейшем нахождением оптимального разбиения получившейся последовательности на группы для каждого коммивояжёра. Этот подход не попадает под исходную постановку задачи, но в случаях, когда его применение возможно, он даёт результат лучше, чем приведённые выше алгоритмы.