Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по математической логике1.doc
Скачиваний:
267
Добавлен:
02.05.2014
Размер:
2.3 Mб
Скачать

Деревья на множестве вершин

Пусть множество v содержит р вершин, которые пронумерованы v1,… vр. Связав эти вершины (р-1) ребрами так, чтобы отсутствовали циклы, получим некоторое дерево, покрывающее данное множество р вершин. При р=2 такое дерево единственное и состоит из одной ветви. С увеличением р число различных деревьев tp быстро возрастает

tp=рр-2

многие из них являются изоморфными, т.е. отличаются только нумерацией вершин. Так при р=0 имеем 108 различных деревьев, из которых 106 неизоморфны.

На рис. показаны 16 различных деревьев, которые можно построить на множестве четырех вершин.

Символ дерева

Любому дереву Т можно поставить во взаимно-однозначное соответствие некоторый символ — упорядоченную последовательность (р-2) номеров вершин (Т)=(1,2,… р-2), среди которых могут быть повторяющиеся, причем 1,2,… р-2.

Эта последовательность для данного дерева образуется следующим образом.

Вводится последовательность Np=(1,2,…р), далее выбирается концевая вершина с наименьшим номером и записывается номер ,связанной с ней вершиной, а сама концевая вершина удаляется из последовательности Np=(1,2,…р). Затем этот процесс повторяется до тех пор, пока не получим последовательность (Т)=(1,2,… р-2). Каждый такой шаг соответствует удалению из дерева концевой вершины с наименьшим номером и связанного с ней концевого ребра, причем (р-2) шагов от дерева остается единственное ребро, положение которого определяется парой номеров вершин, остав­шихся в последовательности Np. Построение дерева по его символу выполняется последовательным восстановлением концевых вершин и ребер.

На первом шаге из последовательности Np=(1,2,…р) выбирается наименьший номер min, который отсутствует в (Т)=(1,2,… р-2) и строится ребро (min,1). Далее удаляется номер min из Np и номер 1 из (Т) и процесс продолжается до исчерпывания символа (Т). оставшаяся в последовательности Np пара вершин определяет последнее ребро дерева.

Например, исходя из символа (Т2)=(1,3,1,1,3) дерева Т2

.

последовательность N7=(1,2,3,4,5,6,7) на первом шаге имеем ребро (2,1). Удаляя ''2'' из N7 и ''1'' из (Т2), получаем последовательность

На втором шаге получаем ребро (4,3) и далее аналогично ребра (5,1),(6,1),(1,3),(3,7). Совокупность всех полученных ребер и обра­зует соответствующее дерево.

Произвольное дерево на множестве р вершин можно рассмат­ривать как одно из покрывающих деревьев графа.

Рис. Дерево полного графа.

Экстремальное дерево.

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

На языке теории графов эта задача формулируется в общем виде следующим образом.

Каждому ребру (i,j) полного графа с р вершинами приписыва­ется вес ij, выражающий численно расстояние, стоимость и другую величину, характеризующую любую пару вершин.

Требуется построить экстремальное дерево, связывающее все вершины так, чтобы был минимальным суммарный вес i ветвей дерева

.

Перебор вариантов при р9 больше 106. Существует алгоритм Прима, который основан на последовательном введении выбора ре­бер с наименьшим весом. Затем на каждом следующем шаге выби­рается min по весу ребро и, если оно не образует цикла с ранее вы­бранными ветвями, вводится в дерево. Построение заканчивается после отбора дерева (р-1) ребер. Если имеются ребра с одинаковым весом, то решение может быть единственным в том случае, когда не все такие ребра входят в дерево, а отдается определенный приоритет отдельным.

Построение экстремального дерева с максимальным суммар­ным весом аналогично, необходимо лишь последовательно выбирать для него ребра наибольшего веса.