Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
GED / DM3.DOC
Скачиваний:
110
Добавлен:
11.05.2015
Размер:
2.46 Mб
Скачать

Эйлеровы и гамильтоновы графы

Связный граф G=(X, U) эйлеровым, если существует замкнутая цепь (цикл), проходящая через каждое ребро графа один раз.

Рис.18. Неэйлеров граф Рис.19. Полуэйлеров граф Рис.20. Эйлеров граф

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

Рассмотрим условие существования эйлерова цикла.

Конечный граф G является эйлеровым, если он связан и все его локальные степени четные (рис.20). Заметим, что граф является полуэйлеровым, если в нем не более двух вершин имеют нечетные локальные степени.

Идея алгоритма Флери построения эйлеровой цепи в эйлеровом графе. Пусть G – эйлеров граф. Тогда необходимо выйти из произвольной вершины и проходить по ребрам G соблюдая правила:

  1. Стирать ребра по мере их прохождения и стирать изолированные вершины.

  2. По мосту можно проходить только тогда, когда нет других возможностей.

При программировании использовать 2 стека.

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

Теорема 1. Если в графе с n (n  3) вершин для любой пары несмежных вершин xi, xj (xi)+  (xj) n, то граф имеет гамильтонов цикл.

Теорема 2. В графе без гамильтонова цикла длина его наибольших простых цепей удовлетворяет неравенству ℓ ≥  (xn1) +  (xn2), где  (xn1) и  (xn2) – две наименьшие локальные степени графа.

Рисунок 21 Рисунок 22

Если в графе G существует висячая вершина, то гамильтонов цикл отсутствует. Если граф G полный, то он содержит гамильтонов цикл.

Деревья

Связный граф без циклов называется деревом и обозначается Т = (Х, U), | X | = n , | T | = n-1. Начальную вершину называют корнем, из которого выходят ребра, называемые ветвями дерева. Любые две вершины дерева связаны единственной цепью. В любом связном графе G можно выделить некоторое дерево Т.

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

Для одного и того же связного графа можно выделить некоторое множество покрывающих его деревьев.

Теорема 3. Число t покрывающих деревьев в полном графе Kn составляет t=nn-2. Множество деревьев называется лесом.

Задачи выделения эйлеровых и гамильтоновых циклов, а также покрывающих деревьев, связаны с задачами о лабиринте, коммивояжере, с построением деревьев минимальной точности. Задача о лабиринте в терминах теории графов формулируется как задача отыскания в связном графе G=(X, U), маршрута с наименьшим числом ребер, который начинается в заданной вершине хiХ и приводит в искомую вершину хjХ.

Метод Тремо

От вершины хi необходимо перейти ко всем вершинам, находящимся на расстоянии 1 дин. Каждое ребро ui = (хi, x) помечается один раз, когда оно смежно с вершинами хi, xв вершине хi это ребро помечается как “открытое”. Если окажется, что нет ребер инцидентных xкроме ui, то, вернувшись в хi ребро ui помечается как “закрытое”. Если некоторое другое ребро u’i = (хi, x) также ведет из хi в xоно также помечается как закрытое.

Для попадания в вершины, находящиеся на расстоянии 2, берется открытое ребро u = (хi, x) и снова помечается. В xоткрытые ребра проходятся и помечаются как закрытые, если они ведут к пройденным вершинам и так со всеми открытыми ребрами. Если искомая вершина расположена на расстоянии n, то при ее достижении все открытые ребра будут помечены n раз.

Рисунок 7.23

Задача 2. Пусть необходимо проложить сеть проводов между терминалами при условии, что количество затраченного провода должно быть минимальным т.е. построить граф типа дерево.

Задача состоит в нахождении одного из nn-2 деревьев.

Пусть G=(X, U) связной граф, и каждому ребру uiU ставится в соответствие некоторое неотрицательное число νi, называемое мерой. Необходимо найти покрывающее дерево Т, для которого сумма мер, взятая по всем ребрам минимальна.

Метод Краскала

  1. В связном графе G=(X, U), | X | = n, определяется ребро с наименьшей мерой.

  2. Строится по индукции последовательность ребер u2, u3,…, un-1, причем на каждом шаге выбирается ребро с наименьшей мерой, не совпадающее с выбранными и не образующее циклов с предыдущими ребрами ui.Полученный подграф Т графа G является искомым деревом.

2х6)=1

6х3)=2

3х5)=1

3х1)=2

2х4)=1

Соседние файлы в папке GED