Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
шпоры по дискретке.docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
206.09 Кб
Скачать

30) Деревья.

Граф G = (V, Е) называется деревом, если он связен

и ацикличен (т.е. не содержит циклов).

Пусть G = (V, Е) — граф с n вершинами и m ребрами. Можно сформулировать несколько необходимых и достаточных условий, при которых G является деревом:

• Любая пара вершин в G соединена единственным путем.

• G связен и m = n — 1.

• G связен, а удаление хотя бы одного его ребра нарушает связность графа.

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

Дерево с одной выделенной вершиной называют деревом с корнем, а выделенную вершину — его корнем. Вершины, стоявшие непосредственно

под вершиной v (и соединенные с ней ребрами), называются сыновьями вершины v. Вершины, расположенные в самом низу дерева (они не имеют сыновей), называются листьями.

Вершины, отличные от корня и листьев, называют внутренними вершинами графа. Нулевое дерево — это дерево, не имеющее ни одной вершины.

31) Ориентированные графы.

Ориентированный граф или орграф представляет собой пару G= (V, Е), где V — конечное множество вершин, а Е — отношение на V. Графическое изображение графа состоит из множества помеченных вершин с ориентированными ребрами (называемых дугами), соединяющими пары вершин. Совокупность всех дуг образует множество Е.

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

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

Контуром в орграфе G принято называть последовательность вершин v0 ,v1 …vk, образующую путь, в которой первая вершина V0 совпадает с последней Vk , а других повторяющихся вершин в ней нет. Орграф G называют бесконтурным, если в нем нет контуров.

32) Алгоритм топологической сортировки.

Алгоритм генерирует последовательность согласованных меток для вершин бесконтурного

орграфа G = (V, Е). В самом начале работы алгоритма

антецеденты каждой вершины v записываются в множество A(v).

begin

for v  V do

вычислить A(v);

label:=0;

while остаются неотмеченные вершины, для

которых A(v)= do

begin

label:=1;

u:=вершина с A(u)= ;

Присвоить метку вершине u;

for каждой неотмеченной вершины vV do;

A(v):=A(v)\{u};

end

end

Алгоритм успешно присваивает метки вершинам. Каждая вершина получает очередную метку в том случае, если у нее нет неотмеченных антецедентов.

33. Матрица достижимости. Алгоритм Воршала.

Пусть G = (F, Е) — орграф с п вершинами, а М — его матрица смежности. Напомним, что буквой И на пересечении i-той строки и j-гo столбца мы обозначаем наличие дуги от вершины с номером i к вершине с номером j . Дуга, по определению, является путем длины 1. Булево произведение матрицы М с самой собой обозначается через М2. В этой матрице буква И символизирует наличие пути длины 2 и т. д.

Наконец, в матрице достижимости

М* = М или М2 или ... или Мn

записаны пути любой длины между вершинами.

Матрица достижимости орграфа G = (V, E) фактически является матрицей замыкания по транзитивности Е* отношения Е на вершинах орграфа G. Для больших орграфов вычисление матрицы М* с помощью возведения М все в большую степень утомительно и неэффективно. Более удобный путь определения М* дает так называемый алгоритм

Уоршелла.

Пусть G = (V, Е) — орграф с вершинами v1, v2, .., vn. Алгоритм Уоршелла генерирует последовательность матриц W0 = M, W1, W2, ..., Wn, причем элемент матрицы Wk (k ≥1), стоящий на пересечении i-ой строки и j-гo столбца Wk(i, j), равен И в том и только том случае, когда существует путь (произвольной длины) из вершины vi в вершину vj с внутренними вершинами из множества {v1,v2,…,vk}.

Матрица W0 совпадает с матрицей смежности М орграфа, а Wn — искомая матрица достижимости М*. Последовательные проходы этого цикла (пронумерованные индексом k) вычисляют матрицы W1, W2,…,Wn.

Алгоритм Уоршелла.

Этот алгоритм вычисляет матрицу достижимости

W = М* ориентированного графа G = (V, Е) с матрицей смежности М.

begin

W:=M;

for k = 1 to n do

for i = 1 to n do

for j = 1 to n do

W(i, j) = W(i,,j) или (W(i, k) и W(k,j));

end