Стоимостью дерева



Download 24,12 Kb.
bet1/2
Sana12.11.2022
Hajmi24,12 Kb.
#864626
TuriЗадача
  1   2
Bog'liq
4 Покрывающие деревья минимальной стоимости, алгоритмы




4.10. Покрывающие деревья минимальной стоимости
Пусть задан граф со взвешенными рёбрами и его покрывающее дерево. Сумма весов рёбер, принадлежащих покрывающему дереву, называется стоимостью дерева. Покрывающее дерево графа, имеющее наименьшую стоимость по сравнению со всеми другими покрывающими деревьями этого же графа, называется покрывающим деревом минимальной стоимости.
Рассмотрим задачи, решение которых сводится к нахождению покрывающего дерева минимальной стоимости.
Задача 1. В управлении шоссейных дорог рассматривается проект строительства новых дорог, которые должны связать несколько городов некоторого района (причём не обязательно непосредственно каждую пару городов). Стоимость прокладки дороги между каждой парой городов известна. Необходимо определить, между какими городами нужно проложить дороги, чтобы суммарная стоимость прокладки дорог была минимальной.
Задача 2. Необходимо соединить проводами клеммы электрической сети, минимизируя длину проводника. Расстояния между каждой парой клемм известно.
Для нахождения покрывающего дерева минимальной стоимости можно получить все покрывающие деревья, определить их стоимость и выбрать дерево минимальной стоимости. Такой подход не является эффективным.
Алгоритм Краскала строит покрывающее дерево минимальной стоимости, если рёбра графа просматривать в порядке неубывания их весов. Поэтому для нахождения покрывающего дерева минимальной стоимости можно предварительно использовать алгоритм сортировки рёбер, а затем применить алгоритм Краскала. Тогда на каждом шаге будет выбираться ребро с минимальным весом, которое можно включить в покрывающее дерево. Такой выбор можно осуществить и в процессе выполнения алгоритма Краскала без предварительной сортировки рёбер. В этом случае при выборе ребра используем алгоритм нахождения ребра минимального веса среди рёбер, не включённых в дерево, при этом все рёбра, образующие цикл с рёбрами, включёнными в дерево, исключаются из дальнейшего рассмотрения.
Рассмотрим ещё один алгоритм построения покрывающего дерева минимальной стоимости, не требующий предварительной сортировки рёбер. Это алгоритм Прима (алгоритм ближайшего соседа). Он отличается от алгоритма Краскала тем, что в нём формируется только один букет. На очередном шаге выбирается ребро минимального веса среди рёбер, у которых одна концевая вершина принадлежит букету, а другая – не принадлежит. Такое ребро включается в дерево, а концевая вершина, не принадлежащая букету, включается в него.
Для эффективного выбора ребра в алгоритме Прима каждой вершине vi графа, не принадлежащей букету Б приписывается метка t(vi) – «ближайшая» к vi вершина, принадлежащая букету Б, и число d(vi) – вес ребра {t(vi),vi}. На каждом шаге выполнения алгоритма вершина vi с наименьшим числом d(vi) добавляется к букету Б, а ребро {t(vi),vi} – к покрывающему дереву. После добавления новой вершины vi к букету Б метка t(vj) и число d(vj) вершины vj, не принадлежащей букету, изменятся, если вес ребра {vi,vj} меньше числа d(vj)
Алгоритм Прима.
Вход: G=(V,E) - взвешенный граф, где
V – множество вершин,
E – множество рёбер.
Выход: T – покрывающее дерево минимальной стоимости.
1. Начальная установка.
Каждой вершине vi приписать t(vi)=0;
Б:={v}, v –произвольная вершина графа включается в букет Б;
каждой вершине vi, не принадлежащей букету, приписать d(vi)= ,
y:=v, yпоследняя вершина, включённая в букет;
T:=, дерево пусто.
2. Пересчёт чисел d(vi) и меток t(vi).
viГ(y)-Б пересчитать d(vi):
d(vi):=min(d(vi), вес{y,xi}).
Если число d(vi) изменилась (уменьшилась), то t(vi):=y.
3. Из всех вершин viБ выбрать вершину vj с наименьшим числом d(vj);
Б:=Б{vj}, включить выбранную вершину в букет;
y:=vj, y – последняя вершина, включённая в букет;
T:=T{t(vi),vi}, добавить ребро в дерево.
4. Если все вершины графа включены в букет (Б=V), то конец алгоритма, иначе перейти к п.2

При программной реализации алгоритма Прима букет можно представить бинарным массивом Б, i-ый элемент которого соответствует вершине vi и, если вершина vi принадлежит букету, то Бi=1, иначе Бi=0. Числа d(vi) целесообразно хранить в массиве D, i-ый элемент которого соответствует вершине vi , а его значение Di - числу d(vi). Для хранения меток t(vi) можно использовать массив T, i-ый элемент которого соответствует вершине vi , а его значение Ti – метке t(vi). Заметим, что массив T по окончании алгоритма хранит полную информацию о структуре построенного покрывающего дерева минимальной стоимости: пара {Ti,i} соответствует ребру дерева, если Ti≠0, а сумма всех элементов массива D равна стоимости дерева.


Работу алгоритма Прима при построении покрывающего дерева минимальной стоимости графа, диаграмма которого изображена на рис.4.26, представим в таблице 4.4, отображающей изменения значений массивов Б, D и T на каждом шаге выполнения алгоритма.
v2 2 v4

1 2

v1 v6


7 4 8
9 5
5
v3 v5
Рис.4.26. Диаграмма графа
Таблица 4.4

Download 24,12 Kb.

Do'stlaringiz bilan baham:
  1   2




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish