Задачи по теории графов. Основные понятия и решения задач, страница 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).