Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава 4. Взвешенные графы и орграфы, часть 1.doc
Скачиваний:
18
Добавлен:
13.02.2016
Размер:
603 Кб
Скачать
☆
    1. Д

      Определения

      еревья Штейнера (Steiner)

Пусть G=(V,E) будет графом, в котором каждое ребро имеет положительный действительный вес. В графе G задается множество N терминальных вершин, VN. Оставшиеся вершины (V\N) называются нетерминальными вершинами или вершинами Штейнера.

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

Пример

Терминальные вершины:

N={1,3,6}

Рис.3.4.1. Дерево Штейнера (выделено жирным)

с точками Штейнера {2,4,5}

Класс сложности

Проблема нахождения минимального дерева Штейнера относится к NP-тяжелым.

Точные алгоритмы

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

Эвристические алгоритмы

К проблеме поиска деревьев Штейнера сводятся многие важные практические задачи. Поэтому литература по эвристическим алгоритмам по данной проблеме обширна.

В решении проблемы Штейнера имеется два крайних случая, когда они решаются в полиномиальное время:

- N=V, когда проблема сводится к поиску минимального каркасного дерева;

- N=2, когда проблема сводится к поиску минимального пути между двумя вершинами.

Эвристический алгоритм слияния кратчайших путей

(The Merged Shortest Paths Heuristic - SPATH)

Задан граф G=(V,E), |V|=n, |E|=m, неотрицательные целочисленные веса ребер и терминальные вершины F V.

Описание алгоритма:

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

Если кратчайший путь выбирается с помощью алгоритма Дейкстры, то сложность алгоритма равна O(zn2), где n – число вершин графа, z- число терминальных вершин.

Дерево Штейнера с евклидовой метрикой

Огромный практический интерес представляет решение проблемы дерева Штейнера на плоскости. Для любых двух пар вершин графа u=(ux,uy) и v=(vx,vy), заданных координатами на плоскости, расстояние задается в Lp-метрике (1 p ):

||uv||p=(|ux – vx|p + |uy – uy|p)1/p.

Для двух специальных случаев:

  • Евклидово расстояние ||uv||2=((ux – vx)2 + (uy – uy)2)1/2;

  • Прямоугольное расстояние ||uv||1=|ux – vx| + |uy – uy|.

Алгоритм построения дерева Штейнера с евклидовой метрикой

На плоскости задано N точек, из F - терминальные.

Алгоритм приблизительного построения дерева Штейнера:

  1. Построить полносвязный граф G’=(N,E’) на вершинах N. Расстоянием между двумя вершинами этого графа будет кратчайшее расстояние между этими вершинами. Взять эти расстояния в качестве весов.

  2. Найти минимальное каркасное дерево Т’ полносвязного графа G’.

  3. Подставить минимальное каркасное дерево T’ в исходный граф G. Заменить каждое ребро дерева T’ минимальным путем исходного графа G. В результате получится новый граф T’’ (не всегда T’’ будет деревом).

  4. Найти каркасное дерево графа T’’, которое будет приблизительным деревом Штейнера.

Аппроксимационное отношение этого алгоритма равно 2.

Пример

G=(V,E)

N={A,B,C,D}

G’=(N,E’)

Рис.3.4.4. Построение дерева Штейнера (выделено жирным)

Замечание

Е

Пример

сли допускается введение на плоскости дополнительных «искусственных» вершин (они становятся вершинами Штейнера), то вес минимального дерева Штейнера можно уменьшить соответствующим подбором вершин Штейнера.

Исходная задача

Дерево Штейнера

(длина=9)

Дерево Штейнера с дополнительными вершинами Штейнера

(длина=7)

Рис.3.4.5. Решение задачи Штейнера в прямоугольных координатах