Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
discrete_math1.docx
Скачиваний:
332
Добавлен:
30.03.2015
Размер:
1.1 Mб
Скачать

6. Обходы графов: гамильтоновы цепи и циклы, достаточные условия их существования.

Графом G называется пара (V, E), где – непустое множество вершин графа, а– множество ребер графа, причем каждое ребро – это неупорядоченная пара различных вершин.

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

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

Утверждение. Достаточное условие существования гамильтонова цикла - если в связном n-вершинном графе, где n ≥ 3, степень каждой вершины deg(v) ≥ n/2, то в этом графе имеется гамильтонов цикл.

Утверждение. Если в связном n-вершинном графе, где n ≥ 3, степень каждой вершины deg(v) ≥ n/2, то в этом графе имеется гамильтонов цикл.

Определение. Граф, в котором имеется гамильтонов цикл, называется гамильтоновым.

7. Деревья, их свойства, кодирование деревьев, остовные деревья.

Определение. Связный граф без циклов называется деревом. Графом G называется пара (V, E), где – непустое множество вершин графа, а– множество ребер графа, причем каждое ребро – это неупорядоченная пара различных вершин.

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

Свойство 2. В дереве любое ребро является мостом

Свойство 3. В дереве количество ребер на единицу меньше числа вершин.

Определение. Ребро дерева называется концевым ребром, если оно инцидентно концевой вершине (т.е. вершине степени 1).

Свойство 4. В любом n-вершинном дереве при существует не менее двух концевых вершин и не менее одного концевого ребра.

Свойство 5. В любом n-вершинном дереве при есть хотя бы одна неконцевая вершина.

Определение. Дерево с выделенной вершиной называется корневым деревом, а выделенная вершина – корнем дерева.

Построение кода основано на обходе дерева «в глубину», при котором каждое ребро проходится дважды: первый раз – в направлении от корня, второй раз – к корню. Каждое ребро кодируется двумя символами – 0 и 1. При этом ноль означает движение вдоль данного ребра от корня, а единица – к корню. В получающемся коде ноль и единица, соответствующие одному и тому же ребру, не обязательно стоят рядом.

Пример 1. Корнем дерева на рисунке является вершина . При его обходе «в глубину» из корня получаем последовательность вершин:v7, v5, v4, v1, v4, v2, v4, v3, v4, v5, v7, v6, v7. Такой обход порождает код (000101011101). Заметим, что иному обходу этого же дерева v7, v6, v7, v5, v4, v1, v4, v2, v4, v3, v4, v5, v7 соответствует другой код (010001010111).

рисунок

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

Определение. Минимальное остовное дерево - остовное дерево минимально возможной длины. Для его построения существует алгоритм Краскала. Идея этого алгоритма состоит в том, что искомое остовное дерево «вырастает» из леса, отдельные деревья которого постепенно объединяются и на последнем шаге алгоритма объединяются в одну компоненту связности – остовное дерево. Схема алгоритма такова:

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

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

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