Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции по дискретной математике / Эйлеровы и гамильтоновы графы

.docx
Скачиваний:
110
Добавлен:
19.04.2015
Размер:
695.68 Кб
Скачать

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

Эйлеровым путем графа G(V,E) называется путь e1,e2, ..., et такой, что каждое ребро появляется ровно 1 раз, т.е. t=|Е|.

Граф G(V,E) называется эйлеровым, если он имеет замкнутый эйлеровый путь, и полуэйлеровым, если существует эйлеров путь, не являющийся замкнутым.

Теорема (критерий эйлеровости графа): Связный граф G является эйлеровым тогда и только тогда, когда каждая вершина G имеет четную степень.

♦ Пусть Р – эйлеров цикл в графе G. Тогда при каждом прохождении цикла через любую вершину графа используется одно ребро для входа и одно ребро для выхода. Поскольку каждое ребро используется 1 раз, то каждая вершина должна иметь чётную степень.

Обратно. Индукцией по числу рёбер в графе.

Базис индукции: каждая компонента связности графа имеет эйлеров цикл. Докажем, что весь граф имеет эйлеров цикл.

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

Если нет, то удаляем из графа G все рёбра, принадлежащие циклу С. Получаем новый граф G1, возможно несвязный. Число рёбер в G1 меньше, чем в G, и каждая вершина имеет чётную степень.

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

Проходим рёбра G следующим образом: идём по рёбрам цикла С до первой неизолированной вершины графа G1. Затем проходим эйлеров цикл в компоненте графа G1, затем снова двигаемся по циклу С до следующей неизолированной вершины графа G1.

Процесс закончится в исходной вершине, что и показывает существование эйлерова цикла. ¨

Алгоритм построения эйлерового пути в эйлеровом графе.

Теорема: Пусть G - эйлеров граф. Тогда следующая процедура всегда возможна и приводит к построению эйлеровой цепи графа G.

Выходя из произвольной вершины, идем по ребрам графа произвольным образом, соблюдая следующие правила:

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

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

ПРИМЕР построения эйлерова цикла:

Эйлеров цикл: H, {H,L}, L, {L,i}, i, {i,M}, M, {M,J}, J, {J,N}, N, {N,K}, K, {K,H}, H, {H,i}, i, {i,J}, J, {J,K}, K, {K,L}, L, {L,M}, M, {M,N}, N, {N,H}, H.

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

Теорема (Дирака):

Если в графе G (V,E) с n вершинами (n³3) выполняется условие

для любого v ÎV. Тогда граф G является гамильтоновым.

♦ Заметим следующее. Если к любому графу G добавить некоторое количество новых вершин, соединяя каждую из них с каждой вершиной графа, то получим гамильтонов граф G/.

Пусть добавили к графу минимальное число k новых вершин, k>0, после чего граф стал гамильтоновым.

Рассмотрим гамильтонов цикл v1, w, v2,…, v1 в графе G/, где viÎV, w – одна из новых вершин.

Следовательно, v2 не является смежной с v1 в графе G/, поскольку тогда можно не использовать вершину w, что противоречило бы минимальности числа k.

Далее, пусть вершина v2/ смежная с v2, а v1/ - смежная с v1. Тогда v2/ не может следовать за v1/ в цикле.

Действительно, в этом случае цикл v1, w, v2,…, v1/, v2/ ,…, v1 можно заменить на v1, v1/,…, v2, v2/ ,…, v1 и снова высвободить вершину w.

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

Число вершин, смежных с v1, не меньше, чем (n/2)+k, то же и для вершины v2.

Далее, поскольку любая вершина графа G/ является либо смежной, либо не смежной вершине v2, то значит общее число вершин n+k не меньше, чем

Полученное противоречие показывает, что k=0, т.е. исходный граф гамильтонов.¨