Граф G = (X, A) называется нагруженным, если для каждого ребра (xi, xj) определена его длина (или вес) cij.
Пусть G - связный нагруженный граф. Задача построения минимального остовного дерева заключается в том, чтобы из множества остовных деревьев найти дерево, у которого сумма длин ребер минимальна.
Приведем типичные случаи, когда возникает необходимость построения минимального остовного дерева графа.
а) Нужно соединить n городов железнодорожными линиями (автомобильными дорогами, линиями электропередач, сетью трубопроводов и т.д.) так, чтобы суммарная длина линий или стоимость была бы минимальной.
б)Требуется построить схему электрической сети, в которой клеммы должны быть соединены с помощью проводов наименьшей общей длины.
Задачу построения минимального остовного дерева можно решить с помощью следующего алгоритма.
Алгоритм 3.2 (Алгоритм Краскала).
Шаг 1. Установка начальных значений.
Вводится матрица длин ребер C графа G.
Шаг 2. Выбрать в графе G ребро минимальной длины. Построить граф G 2, состоящий из данного ребра и инцидентных ему вершин. Положить i = 2.
Шаг 3. Если i = n, где n - число ребер графа, то закончить работу (задача решена), в противном случае перейти к шагу 4.
Шаг 4. Построить граф Gi + 1, добавляя к графу Gi новое ребро минимальной длины, выбранное среди всех ребер графа G, каждое из которых инцидентно какой-нибудь вершине графа Gi и одновременно инцидентно какой-нибудь вершине графа G, не содержащейся в Gi. Вместе с этим ребром включаем в Gi + 1и инцидентную ему вершину, не содержащуюся в Gi. Присваиваем i: = i +1 и переходим к шагу 3.
Пример 3.19.
Найдем минимальное остовное дерево для графа, изображенного на рис. 3.14.
Рис. 3.14
Шаг 1. Установка начальных значений.
Введем матрицу длин ребер C:
С = .
Шаг 2. Выберем ребро минимальной длины. Минимальная длина ребра равна единице. Таких ребер три: (x 1, x 2), (x 1, x 4), (x 2, x 4). В этом случае можно взять любое. Возьмем (x 1, x 2). Построим граф G 2, состоящий из данного ребра и инцидентных ему вершин x 1 и x 2. Положим i = 2.
Шаг 3. Так как n = 5, то i ¹ n, поэтому переходим к шагу 4.
Шаг 4. Строим граф G 3, добавляя к графу G 2новое ребро минимальной длины, выбранное среди всех ребер графа G, каждое из которых инцидентно одной из вершин x 1, x 2 и одновременно инцидентно какой-нибудь вершине графа G, не содержащейся в G 2 т. е. одной из вершин x 3, x 4, x 5. Таким образом, нужно выбрать ребро минимальной длины из ребер (x 1, x 4), (x 1, x 5), (x 2, x 3), (x 2, x 4), (x 2, x 5). Таких ребер длины единица два: (x 1, x 4) и (x 2, x 4). Можно выбрать любое. Возьмем (x 1, x 4). Вместе с этим ребром включаем в G 3вершину x 4, не содержащуюся в G 2. Полагаем i =3 и переходим к шагу 3.
Шаг 3. Так как i ¹ n, поэтому переходим к шагу 4.
Шаг 4. Строим граф G 4, добавляя к графу G 3новое ребро минимальной длины из ребер (x 1, x 5), (x 2, x 3), (x 2, x 5), (x 4, x 5). Такое ребро длины два одно: (x 2, x 3). Вместе с этим ребром включаем в G 4вершину x 3, не содержащуюся в G 3. Полагаем i =4 и переходим к шагу 3.
Шаг 3. Так как i ¹ n, поэтому переходим к шагу 4.
Шаг 4. Строим граф G 5, добавляя к графу G 3новое ребро минимальной длины из ребер (x 1, x 5), (x 2, x 5), (x 4, x 5). Таких ребер длины три два: (x 2, x 5) и (x 4, x 5). Возьмем (x 2, x 5). Вместе с этим ребром включаем в G 5вершину x 5, не содержащуюся в G 4. Полагаем i =5 и переходим к шагу 3.
Шаг 3. Так как i = n, то граф G 5 – искомое минимальное остовное дерево. Суммарная длина ребер равна 1 + 1 + 2 + 3 = 7.
Процесс построения минимального остовного дерева изображен на рис. 3.15.
Рис. 3.15
Контрольные вопросы к теме 3
1. Какое из двух утверждений верно: а) ориентированный граф является частным случаем неориентированного графа; б) неориентированный граф является частным случаем ориентированного графа?
2. Перечислите все возможные способы задания графов.
3. Что характеризует сумма элементов столбца матрицы смежности неориентированного графа?
4. Что характеризует сумма элементов строки матрицы смежности неориентированного графа?
5. Что характеризует сумма элементов столбца матрицы смежности ориентированного графа?
6. Что характеризует сумма элементов строки матрицы смежности ориентированного графа
7. Всегда ли матрица смежности симметрична относительно главной диагонали?
8. Как по матрице смежности определить число ребер неориентированного графа?
9. Как по матрице инцидентности, не рисуя граф, определить его матрицу смежности?
10. Может ли матрица быть матрицей смежности неориентированного графа?
11. Какие из следующих утверждений являются правильными: а) если матрица смежности несимметричная, то граф ориентированный; б) если граф неориентированный, то матрица смежности симметричная; в) если диагональные элементы матрицы смежности – нули, то граф неориентированный?
12. Может ли вершина, входящая в цикл графа, иметь степень, меньшую двух?
13. Как называется путь, у которого начало первой дуги совпадает с концом последней?
14. Как называется маршрут, у которого первая вершина совпадает с последней?
15. Можно ли утверждать, что сильно связный граф всегда содержит контур?
16. Какие из следующих матриц полностью задают граф:
а) матрица инцидентности; б) матрица односторонней связности; в) матрица связности; г) матрица сильной связности; д) матрица смежности?
17. По какой матрице можно без дополнительных вычислений определить число компонент связности неориентированного графа: а) матрице смежности; б) матрице инциденций; в) матрице расстояний; г) матрице связности?
18. Может ли число компонент связности графа превосходить число его вершин?
19. Верно или неверно утверждение, что в ориентированном графе с контурами минимальный путь может содержать контуры?
20. Как называется связный граф без циклов?
21. Пусть n - число вершин, а m - число ребер в связном графе без циклов. Какие из следующих соотношений возможны:
а) n = m; б) n < m; в) n m; г) n > m; д) n m?
22. Сколько ребер имеет связный граф без циклов с n вершинами?
23. Чему равно наименьшее и наибольшее число ребер в связном графе без петель и кратных ребер с n вершинами?
24. Чему равно наименьшее и наибольшее число ребер в графе без петель и кратных ребер с n вершинами?
25. Верно или неверно следующее утверждение: Минимальное остовное дерево может содержать циклы?
26. Постройте дерево наименьшей общей длины, ребра которого соединяют вершины правильного шестиугольника.
27. Сколько компонент связности может иметь дерево?
28. Можно ли построить дерево, все вершины которого имеют степень больше, чем единица?
29. Какая модель теории графов адекватна следующей задаче:
Различные организации x 1,..., xn обмениваются некоторой информацией (при этом связи могут быть направленными). Если между организациями xi и xj возможен непосредственный обмен информацией, то затраты на него составляют rij рублей. Возможен ли обмен информацией между двумя организациями? Если возможен, то как осуществить этот обмен с наименьшими затратами?
30. Какая модель теории графов адекватна следующей задаче:
Имеется схема городских дорог с перекрестками и, возможно, односторонним движением. Необходимо найти маршрут, соединяющий две точки на карте. Как найти такой маршрут при условии, что его длина минимальна?
31. Какая модель теории графов адекватна следующей задаче: Требуется построить схему электрической сети, в которой клеммы должны быть соединены с помощью проводов наименьшей общей длины.
32. Какая модель теории графов адекватна следующей задаче:
Имеется сеть связи, соединяющая n узлов. Если выйдут из строя некоторые каналы, то связь между узлами может быть нарушена. Какие каналы можно удалить без нарушения связи? Какие каналы нужно удалить, чтобы связь не нарушалась, а общая стоимость всех каналов была минимальной?
33. Какая модель теории графов адекватна следующей задаче:
Разрабатывается проект газопровода, соединяющего буровые скважины в Мексиканском заливе с находящейся на берегу приемной станцией. Следует выбрать проект, в котором строительство газопровода имеет минимальную стоимость.
34. Какая модель теории графов адекватна следующей задаче:
Пусть имеется n изолированных городов. Какое минимальное количество дорог между некоторыми городами надо построить, чтобы иметь возможность попасть из любого города в любой другой? Если заданы расстояния между городами, то как выбрать сеть дорог с минимальной общей длиной?
ТЕМА 4. БУЛЕВЫ ФУНКЦИИ