Next: Проверка оптимальности решения
Up: TSP
Previous: Достаточный признак оптимальности
Алгоритм решения
- задачи прост: нужно, исходя из первоначального графа
, построить его подграф
, и затем последовательными векторами смещений привести
к линейному графу, удовлетворяющему достаточному признаку оптимальности. Частных алгоритмов выбора векторов смещений существует достаточно много, и наилучший из них, по-видимому, ещё не найден. Тем не менее множество хороших алгоритмов уже получено. В файле
приведена таблица дальностей полётов между городами СНГ. В файле
находятся названия городов и финальный вектор смещений. В файле
находится результирующий
. Все файлы
- обычные текстовые файлы, их можно просмотреть в Блокноте или любом другом текством редакторе, либо загрузить в Microsoft Office Excel.
Общее число шагов, т.е. выборов вектора смещений, равно . Бесполезно сравнивать это число с общим числом вариантов обхода -
Время счёта - менее секунды, оно даже не измерялось, так как тестовая программа выполнялась в пошаговом режиме, и компьютер тратил время на перерисовку промежуточных таблиц. Сложность шага, т.е. выбора нового вектора смещений, примерно равна сложности пересортировки таблицы рёбер, т.е.
. Сортировку таблицу рёбер можно применять, если
не очень велико. При больших значениях следует применять более быстрые алгоритмы, например, выбор из дерева. Это связано с тем, что подавляющее число ребёр фактически не принимает никакого участия в построении подграфа
. Было выполнено большое число тестовых расчётов для отладки алгоритмов, обычно
было в пределах , но был и пример с
. Стоимости рёбер были получены от датчика случайных чисел, что не есть хорошо, хотелось бы и реальных примеров.
Бродников А.П.
2006-11-05
Используются технологии
uCoz