9.3. Алгоритм
«Принцип обогащения» применительно к решению задачи о коммивояжере (ЗОК) заключается в следующем: с помощью некоторого условия проверить все ветви графа на наличие полезных свойств (в данном случае это «способность» участвовать в оптимальном гамильтоновом цикле) и для дальнейшего решения задачи оставить только эти «полезные» ветви. В случае, когда используемое условие достаточно сильно, после этой проверки останутся только ветви оптимального гамильтонова цикла. В другом случае из рассмотрения будет исключена часть ветвей графа, что дает возможность сократить время поиска решения с применением какого-либо алгоритма.
Таким образом, весь процесс решения задачи делится на 2 стадии: первая – «обогащение» исходного числового массива, вторая – применение алгоритма поиска на «обогащенном» массиве.
Реализация первой стадии при решении ЗОК возможна с применением полученного в разделе 9.2 условия оптимальности гамильтонова цикла в графе
Условие оптимальности можно использовать для «обогащения» исходного множества ветвей графа: после проверки всех ветвей графа на условие оптимальности число ветвей, которое целесообразно использовать при дальнейшем решении ЗОК, сократится. Ввиду очевидной простоты описание алгоритма не приводится.
Опыт применения этого условия для графов с
Для поиска оптимального гамильтонова цикла на обогащенном массиве использовался следующий метод. Известно, что существующие алгоритмы решения ЗОК не ставят целью обеспечение или проверку
Предлагаемый алгоритм основан на последовательном обеспечении
0. Задаем произвольно исходный гамильтонов цикл
1. 3адаем значение
2. Задаем значение
3. Для вершины
Если веса всех последовательностей в операции 3 равны, либо вес
Если таких последовательностей несколько, то из них выбираем первую по счету, вводим ее в гамильтонов цикл вместо соответствующей прежней и переходим к операции 2, где задается очередное значение
4. Фиксируем значение
5. Проверка одинаковости решений при
Если хотя бы одно решение отличается от других, переходим к операции 1, где задается новое