- •Глава 4. Деревья
- •§ 1. Определение дерева
- •§ 2. Задача полного перебора всех деревьев данного порядка. Код Прюфера. Теорема Кэли.
- •§ 3. Задача о построении остова минимального веса
- •3.1. Алгоритм Краскала
- •3.2. Алгоритм Прима.
- •§ 4. Метрические характеристики дерева.
- •§ 5. Задача о построении остова наименьшего диаметра.
- •Глава 5. Потоки в сетях
- •§ 1. Потоки и разрезы
- •§ 2. Задача о максимальном потоке
- •§ 3. Поток минимальной стоимости.
- •Глава 6. Применение сетевых методов к решению задач линейного программирования транспортного типа
- •§ 1. Эквивалентность экстремальных задач
- •§ 2. Классическая транспортная задача
- •§ 3. Операции над т-сетями
- •§ 4. Оптимальное планирование вагонопотоков с учетом возврата порожних вагонов
- •Литература
- •Оглавление
§ 5. Задача о построении остова наименьшего диаметра.
Пусть
обозначает неориентированную сеть с
положительными весами,
– связный подграф графа
и
– соответствующая подсеть сети
.
Поскольку множество путей в графе
между узлами
содержится в множестве путей между
этими узлами в графе
,
то выполняется неравенство
.
(4.13)
В случае
из (4.5.1) получаем
.
В частности, если
– остов сети
,
то всегда справедливо неравенство
.
(4.14)
В этом параграфе мы рассмотрим задачу
,
(4.15)
называемую задачей построения остова наименьшего диаметра.
Заметим, что в
случае
,
,
для любого остова
мы имеем очевидное неравенство
при
,
в то время как
.
Таким образом, неравенство (4.14) может
быть строгим.
С другой стороны,
если
,
– дерево кратчайших путей от узла
до остальных узлов, то из неравенства
треугольника мы имеем для любых узлов
.
Следовательно,
.
(4.16)
Из неравенств
(4.14) и (4.16) следует, что в случае
,
– решение задачи (4.15).
Таким образом, новая задача возникает только в случае выполнения неравенства
(4.17)
В дальнейшем, будем считать выполненным неравенство (4.17).
Пусть
– некоторый остов сети
и пусть
.
Поскольку каждое ребро дерева является
мостом, граф
состоит из двух компонент связности.
Обозначим через
множество вершин той компоненты
связности, которой принадлежит вершина
,
а через
– множество вершин другой компоненты.
Рассмотрим соответствующие подсети
исходной сети
и
.
Пусть
– дерево кратчайших путей по сети
от узла
до остальных узлов из множества
,
– дерево кратчайших путей сети
от узла
до остальных узлов из множества
.
Сеть
является остовом для сети
,
причем, очевидно, что
.
В частности, если остов
является решением задачи (4.5.3), то таковым
будет и остов
.
Из этого рассмотрения
следует, что решение задачи (4.15) можно
искать в виде остова, имеющего структуру
.
При таком подходе возникают два вопроса.
Во-первых, как по заданному ребру
построить разбиение
таким образом, чтобы кратчайшие пути
по сети
от узла
до остальных узлов из множества
проходили бы только через узлы этого
множества, и аналогично кратчайшие
пути по сети
от узла
до остальных узлов из множества
проходили бы только через узлы множества
?
Во-вторых, как для остова
проверить, является ли он остовом
наименьшего диаметра, или в противном
случае, как построить остов аналогичной
структуры, но меньшего диаметра?
Пусть
– два различных узла сети
,
– произвольное ребро. Определим множества
и
следующим образом:
,
=
.
Покажем, что разбиение обладает желаемым свойством.
Пусть
– кратчайший путь по сети
от узла
до узла
,
Тогда
.
Имеем
поскольку
и
.
Следовательно,
.
Пусть теперь
– кратчайший путь по сети
от узла
до узла
,
Учитывая равенство
и неравенство треугольника, получим
поскольку
.
Следовательно,
.
Диаметр остова
является функцией
трех переменных: ребра
и узлов
.
Сначала для данного ребра
найдем минимум функции
по всем возможным узлам
.
Пусть
,
Задачу (4.5.3) в случае выполнения неравенства
(4.17) можно решить перебором всех ребер
,
вычислением их оценок
и нахождением ребра
.
Мы не будем в данном пособии детально описывать конкретный алгоритм, поскольку при поиске соответствующих минимумов не известны эффективные методы рационализации переборов пар узлов и ребер. Отметим только, что для его реализации необходимо иметь следующие функции:
1) функцию вычисления расстояний между парами узлов исходной сети;
2) функцию построения дерева кратчайших путей от заданного узла сети до остальных узлов сети;
3) функцию вычисления метрических характеристик дерева.
Алгоритмы, реализующие эти функции, детально изучались ранее.
