- •32. Определение графа, орграфа, мультиграфа и псевдографа
- •Пример.
- •33. Степень вершины. Лемма Эйлера. Теорема о числе вершин нечетной степени
- •Смежность вершин и ребер графа. Матрица смежности.
- •Примеры.
- •37. Типы подграфов. Остовное дерево. Циклический ранг.
- •38. Изоморфизм графов.
- •39. Связанность графа. Маршрут, цепь, простая цепь, цикл. Лемма о цепи.
- •Пример.
- •40. Связанность графа. Разделяющее множество, разрез, мост, точка сочленения. Лемма о точках сочленения
- •41. Расстояние между вершинами графа. Диаметр, радиус, центр графа.
- •Доказательство:
- •50. Эйлеровы графы. Лемма о цикле. Теорема о необходимых и достаточных условиях эйлеровости графа
- •Алгоритм Флери (алгоритм построения эйлерова цикла).
- •53. Гамильтоновы графы. Задача коммивояжера и методы ее решения.
53. Гамильтоновы графы. Задача коммивояжера и методы ее решения.
Определение. Если граф имеет простой цикл, содержащий все вершины графа, то такой цикл называется гамильтоновым циклом, а граф – гамильтоновым графом. Если граф имеет цепь, содержащую все вершины, то такая цепь называется гамильтоновой цепью, а граф полугамильтоновым.
Задача коммивояжера. Рассмотрим следующую задачу. Имеется p городов, расстояния между которыми известны. Коммивояжер должен посетить все p городов по одному разу, вернувшись в тот, с которого начал. Требуется найти такой маршрут движения, при котором суммарное пройденное расстояние будет минимальным. Очевидно, что задача сводится к отысканию кратчайшего гамильтонова цикла в полном графе. Рассмотрим методы решения этой задачи.
Алгоритм полного перебора. Считая, что коммивояжер всегда выезжает из одного и того же города, сгенерировать p-1! Перестановок остальных вершин и для каждой перестановки вычислить длину пути, выбрав затем из них минимальную. Большая трудоёмкость.
Методы сокращения перебора
1)Метод ветвей и границ
Приближённые методы.
Алгоритм ближайшего соседа. На каждом шаге включаем в цепь ребро наименьшего веса из рёбер, соединяющих последнюю вершину с вершинами, ещё не включёнными в цепь. Когда все вершины оказываются включёнными в цепь, возвращаемся к исходной вершине по единственно возможному ребру. Как правило, вес постороннего цикла далёк от минимального. Для любого положительного k найдётся граф, для которого вес гамильтонова цикла, построенного по этому алгоритму, в k раз больше минимального.
2) Алгоритм ближайшей вставки. Возьмём в графе некоторый цикл и на каждом шаге будем увеличивать его, включая самые близкие к нему вершины. Вес построенного цикла не более чем в 2 раза больше минимального веса.
