Глава 8.Задачи по теории графов |
8.1.Основные понятия
1.Граф – это фигура, состоящая из точек (вершин) и соединяющих их линий (ребер) (рис. 1).
2.Орграф – это граф, у которого ориентированы ребра (дуги), т.е. указаны начало и конец каждого из них (рис. 2).
3.Длина ребра или дуги – это некое число, поставленное в соответствие каждому ребру или дуге.
Рис. 1 Рис. 2
4.Путь (маршрут) в графе или орграфе – это последовательность ребер, ведущая от некоторой начальной вершины в конечную вершину, в которой каждые два соседних ребра имеют общую вершину и никакое ребро не встречается более одного раза.
Например, путями от точки А до точки D (рис. 1) могут быть AD, или AED, или ABED и т.д.
5.Длина пути – это число ребер или дуг в нем.
6.Цикл – это путь, который начинается и кончается в одной и той же вершине.
7.Граф или орграф называется связанным, если две любые его вершины можно соединить, по крайней мере, одним путем.
8.Дерево – это путь без циклов.
Задача 1.Найти кратчайший путь между всеми вершинами графа (см. рис. 1).
таблица. Т1,2 таблица. Т3,4
Решение. 1).Заполним табл. Т1,2 следующим образом.
Обозначим через d (x, y) длину пути от x до y, очевидно, что
d (x, y) = d (y, x). Диагональю будут являться точки А, В, С, D, E.
Для них d (A, A) = d (B, B) = d (C, C) = d (D, D) = d (E, E) = ∞.
Над диагональю запишем длины кратчайших путей, но не более чем из одного ребра (в противном случае поставим ∞). Таким образом,
d (A, В) = 5, d (А, С) = ∞, d (А, D) = 9, d (A, E) = 1, d (B, C) = 2,
d (B, D) = ∞, d (B, E) = 3, d (C, D) = 4, d (C, E) = ∞, d (D, E) = 3.
Под диагональю запишем длины кратчайших путей, состоящих не более чем из двух ребер (иначе поставим ∞):
d1 (A, В) = 5, d2 (A, B) = d (A, E) + d (E, B) = 1 + 3 = 4E ,
d (A, В) = min {d1 (A, В); d2 (A, В)} = min {5; 4E } = 4E.
d1 (A, C) = d (A, B) + d (B, C) = 5 + 2 = 7B,
d2 (A, C) = d (A, D) + d (D, C) = 9 + 4 = 13D,
d (A, C) = min {d1 (A, C); d2 (A, C)} = min {7B; 13D } = 7B.
Аналогично находим:
d (A, D) = 4E, d (А, E) = 1, d (B, C) = 2, d (B, D) = 6C или d (B, D) = 6Е,
d (B, Е) = 3, d (С, D) = 4, d (С, E) = 5В, d (D, E) = 3.
2).Заполним табл. Т3,4 следующим образом.
Над диагональю запишем длины кратчайших путей, но не более чем из трех ребер, а под диагональю - длины кратчайших путей, но не более чем из четырех ребер. Таким образом, под диагональю записаны кратчайшие пути между всеми вершинами графа.
Задача 2.Найти кратчайшие пути между всеми вершинами графа
(рис. 1) через транзитные вершины.
Решение. 1).Построим таблицу (Т*,А) следующим образом:
запишем в диагональные клетки обозначения вершин A, B, C, D, E.
Для них d (A, A) = d (B, B) = d (C, C) = d (D, D) = d (E, E) = ∞.
Над диагональю запишем длины кратчайших путей, но не более чем из одного ребра (в противном случае поставим ∞).
Под диагональю запишем длину кратчайшего пути, но не более чем из двух ребер (через транзитную вершину А). Например, длина пути DЕ равна 3, а через вершину А – 10A.
Запишем в клетке (D, E), min {3, 10A} = 3. Длина пути ВВ через вершину А равна 10A, т.е. d (B, B) = d (В, А) + d (А, В) = 5 + 5 = 10A.
Длина пути DВ через вершину А равна 14А, т.е.
d (D, B) = d (B, D) = d (D, A) + d (А, В) = 14А.
2).Построим таблицу (Тв, с )
Над диагональю запишем длину кратчайшего пути, но не более чем из трех ребер (через А, или В, или АВ). Например,
d (С, Е)= min {d1 (С, Е);d2 (С, Е)} = min {8AB; 5B} = 5B; где d1 (С, Е) = d1 (С, В) + d1 (В, А) + d (A, E) = 2 + 5 + 1 = 8AB;
d2 (С, Е) = d (С, В) + d (В, E) = 2 + 3 = 5B;
d (Е, B) = min {d1 (Е, B); d2 (Е, B)} = min {3; 6А } = 3;
таблица (Т*,А) таблица (Тв, с )
таблица (ТD.,E )
где d1 (Е, B) = 3, d2 (Е, B) = d2 (Е, А) + d2 (А, В) = 6А,
d (D, B) = d (B, D) = d (D, A) + d (А, В) = 9 + 5 = 14А.
Под диагональю запишем длину кратчайшего пути, но не более чем из четырех ребер (через А, или В, или С, или АВ, или ВС, или АВС).
Например, d1 (Е, D) = d1 (D, Е) = 3, d2 (Е, D) = d2 (D, Е) =d2 (E, А) + d2 (A, B) +
+ d2 (B, C) +d2 (C, D) =1+5 +2 + 4 = 12ABC;
d3 (Е, D) = d3 (D, Е) = d3 (E, А) + d3 (A, D) = 1 + 9 =10A;
d4 (Е, D) = d4 (D, Е) = d4 (E, B) +d4 (B, C) + d4 (C, D) = 3 + 2 + 4 = 9BC;
d5 (Е, D) = d5 (D, Е) = d5 (D, A) + d5 (A, B) + d5 (B, E) = 9 + 5 + 3 = 17AB;
d (Е, D) = d (D, E) = min {3; 12ABC; 10A; 9BC; 17AB } = 3.
3). Построим таблицу (ТD.,E )
Над диагональю запишем длину кратчайшего пути, но не более чем из пяти ребер (через А, или В, или С, или D, или АВ, или ВD, или …, или АВСD).
Над диагональю запишем длину кратчайшего пути, но не более чем из пяти ребер (через А, или В, или С, или D, или АВ, или ВD, или …, или АВСD).
Под диагональю запишем длину кратчайшего пути между всеми вершинами данного графа через транзитные вершины.
Задача 3
Найти кратчайшие пути между всеми вершинами графа (см. рис. 2).
таблица (Т1,2 ) таблица (Т3)
Решение. 1).Построим табл. (Т1,2 ).
Запишем в клетки диагонали метки вершин A, B, C, D. Для них
d (A,A) = d (B, B) = d (C, C) = d (D, D) = d (E, E)= ∞.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.