Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ShPOR1_16_na_1.docx
Скачиваний:
15
Добавлен:
23.09.2019
Размер:
1.45 Mб
Скачать

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

Пусть G=(V,Е) – связный взвешенный граф. Алгоритм строит МОД в графе G, последовательно выбирая ребра наименьшего возможного веса до образования остовного дерева. МОД в памяти компьютера хранится в виде множестваТребер.

begin

е:=ребро графа G с наименьшим весом;

Т:={е};

Е':=Е\{е}

whileE' do

begin

е':=ребро наименьшего веса из Е';

Т:= T{е'};

Е':=множество ребер из Е'\{Т}, чье добавление к Т неведет к образованию циклов; Endend

33

Деревом с корнем называется дерево с одной выделенной вершиной, которая и является корнем дерева.

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

Таким образом, можно сказать, что каждой вершине двоичного дерева с корнем соответствует не более чем два поддерева, которые называют левым и правым поддеревьями этой вершины. Если оказалось, что у какой-то вершины дерева отсутствует потомок слева, то ее левое поддерево называют нулевым деревом (т.е. нулевое дерево – это дерево без единой вершины). Аналогично, если у вершины отсутствует правый потомок, то ее правое поддерево будет нулевым.

Пример 7.10. ПустьТ – двоичное дерево с корнем, изображенное на рис. 7.18.

Рисунок.18. Двоичное дерево с корнемТ

В этом примере корнемТявляется вершина A. Корнем левого поддерева вершины Bявляется вершина D. Листьями Tявляются вершины G,H,I,J. Сыном вершины Cявляется вершина F.

Сейчас нарисуем двоичное дерево с корнемТ’, полученное из Т перестановкой левых и правых поддеревьев у каждой вершины (рис. 7.19).

Рисунок19. Двоичное дерево с корнемТ’

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

Дерево данных, удовлетворяющее указанному условию, называют двоичным деревом поиска.

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

Поиск (дерево)

begin

ifдерево нулевоеthen

поиск:=ложь;

else

ifключ поиска = ключ корняthen

поиск := истина;

else

ifключ поиска < ключ корняthen

поиск:= поиск (левое поддерево);

else

поиск:= поиск (правое поддерево);

end

Алгоритм вставкивставляет новые вершины (ключи вставок) в двоичное дерево поиска, создавая при этом новую вершину слева или справа от уже существующей. Это делается таким образом, чтобы все ключи вершин в получившемся дереве подчинялись установившемуся порядку.

Вставка (запись, дерево)

begin

ifдерево нулевоеthen

добавить новую вершину;

else

ifключ вставки= ключ корняthen

вывести на печать: «запись содержится в дереве»;

else

ifключ вставки < ключ корняthen

вставка:= вставка (запись, левое поддерево);

else

вставка:= вставка(запись, правое поддерево);

end

34

Ориентированный графили орграф представляет собой пару G=(V), где V– конечное множество вершин, а Е – множество ориентированных ребер, которые называются дугами.Дугу, соединяющую пару вершин и иvорграфа Gбудем обозначать через uv. В простом орграфе отсутствуют петли и кратные дуги. Следовательно, для любой пары вершин u и v в орграфе найдется не более одной дуги uvиз вершины u в v, и не боле одной дуги vu из vв и. Если uv– дуга орграфа, то вершину и называют антецедентом вершины v.

Множество Eэто отношение на V. Графическое изображение графа состоит из множества помеченных вершин с дугами.

На рис. 8.1 приведен пример простого орграфа с множеством вершин V={a,b,c,d}и множеством дугЕ={ab, bd, cb, db, dc}. Вершины а, с и dздесь – антецеденты b.

Рисунок.20. Пример ориентированного графа

Матрицей смежности данного графа является несимметричная матрица

Путем длины kв орграфе называют последовательность различных вершин v0, v1, ..., vk, каждая пара vi-1viкоторой образует дугу (i = 1,2,...,k).

Контуром в орграфе Gпринято называть последовательность вершин v0, v1, ..., vk, образующую путь, в которой первая вершина v0совпадает с последней vk, а других повторяющихся вершин в ней нет. Орграф Gназывают бесконтурным, если в нем нет контуров.В задаче о планировании заданий соответствующий бесконтурный орграф называют «система ПЕРТ».

ПЕРТ – это система планирования и руководства разработками. На английском языке аббревиатура PERT – это сокращение от «ProgramEvaluationandReviewTechnique».

Пример 8.1. Для получения степени магистра биологии студенту университета необходимо прослушать восемь курсов, которые некоторым образом зависят друг от друга. Эта зависимость представлена в табл. 8.1. Изобразите систему ПЕРТ, иллюстрирующую приоритетную структуру курсов.

Таблица.15.

Название курсов

Предварительные

A

Биотехнология

B

B

Начальный курс биотехнологии

C

C

Цитология

H

D

Структура ДНК

C

E

Энзимология

D, G

F

Диетология

E

G

Генная инженерия

C

H

Биология человека

Никаких требований

Решение. Система ПЕРТ (см. рис. 8.2) – это орграф, представляющий данную приоритетную структуру. Вершины орграфа – это восемь курсов. Для краткости обозначим курсы буквами латинского алфавита от А до Н. Дуги орграфа отражают представленные в таблице требования, необходимые для усвоения данного курса.

Рисунок.21. Система ПЕРТ: приорететная структура курсов

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]