Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуры и алгоритмы / графы_задачи1.doc
Скачиваний:
91
Добавлен:
23.02.2015
Размер:
1.58 Mб
Скачать

Введение

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

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

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

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

  1. Неориентированные графы

    1. Основные определения

Пусть V – конечное множество некоторых элементов, и IV – его тождественное отношение, такое, что:

Обозначим

Определим отношение эквивалентности следующим образом:

(v1,v2) ~ (w1,w2), если (v1,v2) = (w1,w2) или (v1,v2) = (w2,w1). Множество эквивалентных классов, определенное таким образом, обозначим

Каждый класс эквивалентности содержит два элемента, так как если

, то [(v1,v2)] = {(v1,v2), (v2,v1)}.

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

Множество E - это множество ребер графа. Обычно в графе всегда можно определить количество вершин |V| и ребер |E|.

Граф G определяет нерефлексивное, симметричное отношение на множестве V. Обратное утверждение тоже верно: нерефлексивное, симметричное отношение на множестве V определяет граф.

Изображение графа G = (V, E) получается путем расположения различных точек на R2 для каждой вершины v V . Причем, если [v, w] E, проводим линию, соединяющую вершины v и w.

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

v1 v2 v3 v2

v1

v3

Рис. 1. Примеры изображения графа

Приведем пример построения графа (рис. 2).

Пусть V={1, 2, 3, 4, 5}.

Тогда IV = {(1, 1), (2, 2), (3, 3), (4, 4), (5, 5)}.

V2 = V V = {(1, 1), (1, 2), (1, 3), (1, 4), (1, 5),

(2, 1), (2, 2), (2, 3), (2, 4), (2, 5),

(3, 1), (3, 2), (3, 3), (3, 4), (3, 5),

(4, 1), (4, 2), (4, 3), (4, 4), (4, 5),

(5, 1), (5, 2), (5, 3), (5, 4), (5, 5)}

= {(1, 1), (1, 2), (1, 3), (1, 4), (1, 5),

(2, 1), (2, 2), (2, 3), (2, 4), (2, 5),

(3, 1), (3, 2), (3, 3), (3, 4), (3, 5),

(4, 1), (4, 2), (4, 3), (4, 4), (4, 5),

(5, 1), (5, 2), (5, 3), (5, 4), (5, 5)}

= {[(v1, v2)], [(v1, v3)], [(v1, v4)], [(v1, v5)],

[(v2, v1)], [(v2, v3)], [(v2, v4)], [(v2, v5)],

[(v3, v1)], [(v3, v2)], [(v3, v4)], [(v3, v5)],

[(v4, v1)], [(v4, v2)], [(v4, v3)], [(v4, v5)],

[(v5, v1)], [(v5, v2)], [(v5, v3)], [(v5, v4)]}.

По определению . Следовательно, может быть, что. В результате получили графG = (V, E), причем такой, что |V| = 5, |E| = 20.

Рис. 2 . Полный граф

Граф H = (V1, E1) является подграфом графа G = (V, E), если V1 V и E1 E.

Если V1 = V, то граф H является остовным подграфом графа G. Если V1 – непустое подмножество вершин графа (V, E), то подграф (V1, E1), порожденный V1, определяется как

[v, w] E1 v, w V1 и [v, w] E.

Граф G = (V, E) называется полным, если для всех v1, v2 V имеем [v1, v2] E. Полный граф с n вершинами обозначается Kn.

Граф G = (V, E) называется двудольным, если существует разбиение множества его вершин V = {V1, V2} такое, что никакие две вершины из V1 или из V2 не являются смежными. Двудольный граф называется полным, если для любой пары v1 V, v2 V имеем [v1, v2] E. Если |V1| = m и |V2| = n, то полный двудольный граф G = (V, E) обозначается Km,n.