Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2260.doc
Скачиваний:
71
Добавлен:
24.09.2019
Размер:
3.71 Mб
Скачать

9. Алгоритмы отыскания гамильтоновых циклов

9.1. Алгоритм с возвратом (полного перебора)

Пусть G – произвольный граф с n вершинами. Опишем алгоритм, позволяющий найти в графе G все гамильтоновы циклы или выдать сообщение, что таких циклов нет. Пусть – произвольная вершина графа G. Рассмотрим некоторый гамильтонов цикл

.

Легко понять, что если мы научимся строить все максимальные простые цепи с началом в вершине , то задача о нахождении гамильтоновых циклов будет решена. Действительно, пусть

– максимальная простая цепь с началом в вершине . Если и вершина смежна с вершиной , то, добавляя к цепи P ребро , получим гамильтонов контур.

Пусть – множество всех простых цепей, имеющих начало в вершине . Для произвольных цепей положим , если цепь P является началом цепи Q. Отношение на множестве является отношением частичного порядка. Максимальные элементы частично упорядоченного множества называются максимальными простыми цепями с началом в вершине .

Алгоритм, позволяющий перечислить по одному разу все гамильтоновы циклы графа G, многократно выполняет следующую работу: имея текущую простую цепь

,

он по очереди добавляет к ней новые вершины, продолжая ее до всевозможных максимальных простых цепей с началом в вершине .

67

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]