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

4.8. Гамильтоновы циклы и гамильтоновы графы

Гамильтонов путь (или гамильтонова цепь) — путь (цепь), содержащий каждую вершину графа ровно один раз. Гамильтонов путь, начальная и конечная вершины которого совпадают, называется гамильтоновым циклом. Гамильтонов цикл является простым остовным циклом.

Гамильтонов граф — в теории графов это граф, содержащий гамильтонову цепь или гамильтонов цикл.

В графе, изображенном на рис. 4.13 слева, гамильтоновым циклом является, например, последовательность 1, 2, 3, 5, 4, 1. В графе, изображенном в центре, нет гамильтоновых циклов, но есть гамильтоновы пути, например, 2, 1, 3, 5, 4. В правом графе нет и гамильтоновых путей.

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

Рис. 4.13

Поиск необходимого и достаточного условия для того, чтобы граф был гамильтоновым, стал одной из главных нерешенных задач теории графов!

Теорема Дирака: Если в простом графе с n  3 вершинами степень (v)  n/2 для любой вершины v, то граф G является гамильтоновым.

4.9. Эйлеровы циклы и эйлеровы графы

Эйлеров путь (эйлерова цепь) в графе — это путь, проходящий по всем рёбрам графа и притом только по одному разу. Эйлеров цикл — это эйлеров путь, являющийся циклом. Эйлеров граф — граф, содержащий эйлеров цикл. Полуэйлеров граф — граф, содержащий эйлеров путь (цепь).

Теорема Эйлера:

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

а) б) в)

Рис.4.14 Графы: а) – эйлеров, б) – полуэйлеров, в) не эйлеров.

Алгоритм Флёри нахождения эйлерова цикла:

Пусть G – эйлеров граф; тогда следующая процедура всегда возможна и приводит к построению эйлеровой цепи графа G. Выходя из произвольной вершины u, идем по ребрам графа произвольным образом, соблюдая лишь следующие правила:

1). Стираем ребра по мере их прохождения и стираем также изолированные вершины, которые при этом образуются;

2). На каждом этапе идем по мосту только тогда, когда нет других возможностей (или другими словами, не проходить по ребру, если удаление этого ребра приводит к разбиению графа на две связные компоненты).

Очевидно, что для того чтобы построить эйлеров путь достаточно использовать алгоритм Флери, который надо начать с вершины, имеющей нечетную степень.

Примеры решения задач

1) Построить матрицу смежности, достижимости и инциденций графа, изображенного на рис. 4.15.

Рис. 4.15

Решение:

a) Матрица смежности – квадратная матрица, для данного графа размером 66, по количеству вершин, 0 ставим, если две вершины не соединены друг с другом ребром, иначе 1:

b) Матрица достижимости – квадратная матрица, для данного графа размером 66, по количеству вершин, учитывает ориентированность графа, 1 ставим, если из некоторой вершины можно достичь другую, следуя по направлениям ребер, иначе 0. Например, из вершины x3 нельзя достичь ни одной вершины, т.к. оба ребра входят в вершину, но ни одного не выходит, а из 6-й вершины можно достичь любой другой вершины, но ни из какой вершины нельзя достичь 6-ю вершину, т.к. оба ребра выходят из 6-й вершины и ни одного не входит (не считая петлю).

c) Матрица инциденций – матрица размером 610, по числу вершин 6 и ребер 10, учитывает ориентированность графа, 1 ставим, если ребро выходит из некоторой вершины, -1 – если входит в вершину, иначе 0.

2) Пусть есть 6 городов, которые необходимо соединить дорогами, так, чтобы можно было добраться из любого города в любой другой (напрямую или через другие города). Разрешается строить дороги между заданными парами городов и известна стоимость строительства каждой такой дороги.

1

2

3

4

5

6

1

3

2

1

6

2

2

5

4

1

7

3

3

2

4

4

1

6

5

5

6

Граф задан матрицей смежности, где вместо единиц указаны веса – стоимость строительства дороги из пункта a в пункт b. Требуется решить, какие именно дороги нужно строить, чтобы минимизировать общую стоимость строительства.

Решение:

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

Таблица 4.1