Задачи по теории графов. Основные понятия и решения задач, страница 2

Символ "∞" означает, что связь не существует.

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

Например, , d (D,А) = ∞,  .

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

2). Построим табл. (Т3).

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

Например, d1 (B,C) = d1 (B, A)+d1 (A, D) + d1 (D, C) =++ = ,

d2 (B, C) = d2 (B, D) + d2 (D, C) = +  =;

d (B, C) = min {d1 (B, C); d2 (B, C)} = min { ;} =  .

Таким образом, в табл. Т3 записаны кратчайшие пути между вершинами данного графа.

Задача 4.Найти кратчайшие пути между всеми вершинами графа (см.рис. 2) через транзитные вершины.

1).Построим табл. (Т*,А).

Запишем в клетки диагонали метки вершин A, B, C, D. Для них

d (A, A) = d (B, B) = d (C, C) = d (D, D) = d (E, E) = ∞.

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

Например,, , d (B, C) = ∞ .

Под диагональю запишем длины кратчайших путей не более чем из двух ребер через транзитную вершину А.

Например, длина пути BD через вершину А равна

d1 (B, D) = d (В, А) + d (А, D) = +=;

d2 (B, D) =, d (B, D) = min {;} =;

d (B, B) = d (B, A) + d (A, B) = + =. d (A, C) = ∞.

2) Построим табл. (Тв, с ).

таблица (Т*,А)                               таблица (Тв, с )

                                               таблица(ТD)

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

Например, d (С, A) =d (С, B) + d (B, A) = =  + =;

d1 (С, D) = d1 (С, В) + d1 (В, D) =  +  =;

d2 (С, D) = d2 (С, В) + d2 (В, A) +d2 (A, D) =  +  + =;

d (C, D) = min{d1 (C, D); d2 (C, D)} = min {;} =;

d (A, A) =d (A, B) + d (B, A) =  +  =;

d (D, D) =d (D, B) + d (B, D) = +  =;

d1 (A, D) =, d2 (A, D) = d2 (A, B) + d2 (B, D) =  +  =;

d (A, D) = min {;} =.

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

Например, d1 (D, A) = d1 (D, B) + d1 (B, A) =  +  =;

d2 (D, A) = d2 (D, C) + d2(C, B) + d2 (B, A) =  +  +  =;

d (D, A) = min {,} =;

d1 (D, D) = d1 (D, B) + d1 (B, D) =  +  =;

d2 (D, D) = d2 (D, C) + d2 (C, B) + d2 (B, D) =  +  +  =;

d3  (D,  D) = d3  (D, С) + d3  (C, B) + d3  (B, A) + d3  (A, D) = +  +  +  =;

d (D, D) = min {;;} = .

3).Построим табл.ТD.

В каждую клетку запишем длину кратчайшего пути, не более чем из пяти ребер (через А, или В, или С, или В, или АВ, или ВА, или АД, или ДС и т.д.). Например,

d1 (A, A) = d1 (A, B) + d1 (B, A) = =  +  =;

d2 (A, A) = d2 (A, D) + d2 (D, B) + d2 (B, A) = +  +  =;

d3 (A, A) = d3 (A, D) + d3 (D, C) + d3 (C, B) + d3 (B, A) =  +   +  +  =;

d (A, A) =min {;;} =;

Таким образом, в табл. ТD записаны кратчайшие пути между всеми вершинами данного графа через транзитные вершины.

Задача 5.   Построить минимальное дерево (рис. 3).

таблицу Т*

Решение. Построим таблицу Т* следующим образом.

Запишем в диагональные клетки обозначения вершин A, B, C, D, E F, E.

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

Рис. 4                               Рис. 5                                            Рис. 6

Рис. 7

Под диагональю запишем только  длины ребер минимального дерева .

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

1).Начнем с ребра, имеющего наименьшую длину, т.е. АВ. Запишем над ребром АВ число 1+. Затем возьмем ребро DF и запишем над ним число 2+ (рис. 4).

2).Добавим ребро длиной 3, соединяющее вершины В и E (3+), а затем ребро длиной 4 (4+). Мы получим ситуацию, представленную на рис. 5.

3).К результирующему графу добавим ребро длиной 6 (5+) (рис.6).