Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Элементы теории множеств, основные положения те....doc
Скачиваний:
33
Добавлен:
23.04.2019
Размер:
8.12 Mб
Скачать

2.8 Операции над графами

Объединением графов G1=(A, Г1(А)) и G2=(В, Г2(В)) называется граф G=G1G2= .

Пересечением графов G1=(A, Г1(А)) и G2=(В, Г2(В)) называется граф G=G1G2= .

Пример. Для графов G1 и G 2, изображенных на рис. 2.13, найти графы G1G2 и G1G2.

Решение. A={x1, x2, x3, x4}; Г1(x1)={x2}; Г12)={x3, x4}; Г13)={x4}; Г14)={x1}. B={x1, x2, x3, x4}; Г21)={x3}; Г22)={x1, x3}; Г23)=; Г24)={x1, x3}.

Находим объединение графов G1 и G2 (рис. 2.14): AB={x1, x2, x3, x4}; Г11)Г21)={x2, x3}; Г12)Г22)={x1, x3, x4}; Г13)Г23)={x4}; Г14)Г24)={x1, x3}.

Рис. 2.13

Находим пересечение графов G1 и G2 (рис. 2.14): AB={x1, x2, x3, x4}; Г11)Г21)=; Г12)Г22)={x3}; Г13)Г23)=; Г14)Г24)={x1}.

Рис.2.14

Декартовым произведением графов G1=(A, Г1(А)) и G2=(В, Г2(В)) называется граф G=G1G2= .

Пример. Для графов G1 и G 2, изображенных на рис. 2.15, найти граф G1G2 .

Рис. 2.15

Решение. A={X1, X2}, Г(Х1)={X2}, Г(X2)={X1};

B={Y1, Y2, Y3}, Г(Y1)={Y2}, Г(Y2)={Y3}, Г(Y3)={Y1, Y2}.

AB={(X1, Y1), (X1, Y2), (X1, Y3), (X2, Y1), (X2, Y2), (X2, Y3)};

Г[(X1, Y1)]=Г(Х1)Г(Y1)={(X2, Y2)}; Г[(X1, Y2)]=Г(Х1)Г(Y2)={(X2, Y3)}; Г[(X1, Y3)] = Г(Х1)Г(Y3)={(X2, Y1), (X2, Y2)}; Г[(X2, Y1)]=Г(Х2)Г(Y1)= {(X1, Y2)}; Г[(X2, Y2)] = Г(X2)Г(Y2)={(X1, Y3)}; Г[(X2, Y3)]=Г(X2)Г(Y3)= {(X1, Y1), (X1, Y2)}.

В результате получаем граф, вид которого представлен на рис. 2.16.

Рис. 2.16.

2.9. Определение путей экстремальной длины

2.9.1. Задача о кратчайшем пути между двумя вершинами (ориентированного графа

Каждой дуге графа G(X, V) ставиться в соответствие неотрицательное число - l(V) - длина его дуги. Требуется для двух фиксированных вершин Х0, Хn найти кратчайший путь, их соединяющий. Если под длиной дуги l(Xi, Xj) понимать стоимость перевозки груза из пункта Xi в пункт Xj, то содержание задачи составит определение пути из Х0 в Хn, при котором затраты на перевозки минимальны

2.18

Данная задача предполагает, во-первых, определение длины кратчайшего пути, во-вторых, определение самого пути минимальной длины.

Алгоритм решения этой задачи позволяет определить кратчайший путь и его длину за конечное число шагов. Каждая вершина графа получает некоторую числовую метку на первом шаге. Затем метки вершин, вообще говоря, могут меняться, становясь на некотором шаге постоянным числом. Установившаяся метка данной вершины есть кратчайшее рас­стояние от этой вершины до вершины Х0. Если пути, соединяющего вершины Х0 и Хn не существуют, считают длину кратчайшего расстояния между ними +

Алгоритм состоит в выполнении следующих операций:

Шаг 1. Проставить следующие метки: для вершины Х0 - метку . Для любой другой вершины Xi, - метку

Шаг 2. Найти на графе такую дугу (Xi, Xj), для которой

2.19

Разность считать равной 0. Если такая дуга най­дется, то изменить метку вершины Хj на

2.20

Если такой дуги нет, то пути, соединяющего Х0 и Хn не существует.

Шаг 3. Повторять шаг 2 до тех пор, пока метки вершин не перестанут меняться.

Установившиеся метки обозначим Может быть два случая: 1) . Это значит, что пути, соеди­няющего Х0 и Хn не существует. 2) - конечное число. Оно равно кратчайшему расстоянию между Х0 и Хn.

Сам путь минимальной длины получим, отмечая вершины, по которым достигается минимум.

На графе-сети между входом и выходом графа путь ми­нимальной длины всегда существует. Его можно определить за один шаг, если пользоваться формулой:

2.21

Пример. Найти кратчайший путь между вершинами Х0 и X5. Длины дуг заданы на графе (рис. 2.17).

Рис. 2.17.

Решение. Имеем ориентированный граф без циклов, имеющий одну вершину Х0 без входящих дуг - вход графа, и одну вершину Х5 без выходящих дуг - выход графа. Такой граф есть граф-сеть.

Следуя алгоритму, обозначим Далее меняем метки всех вершин, кроме Х0. Смысл метки -некоторое расстояние от вершины Хi, до Х0. Поэтому метка вершины Х0 не меняется.

Для вершины X1: Поэтому меняем метку вершины X1 на

Х0

Справа отметим вершину, из которой пришли в вершину X1. Аналогично для вершины Х2:

Х0

В вершину Х3 ведут два пути: из вершины Х0 и из 'вершины X1. Поэтому используем формулу 2.21:

Х0

Справа обозначим вершину, по которой достигается минимум.

Аналогично для вершины Х4 и Х5 получаем:

Х1

Х4

Полученное значение = 5 есть длина минимального пути из Х0 в Х5. Сам путь получим, проходя по отмеченным вершинам из Х5 в Х0: Х5, Х4, X1, Х0, т.е. = {Х0, X1, Х4, Х5} -искомый путь, а его длина 1( ) = 5.

Задача может иметь не единственное решение.