АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

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

Читайте также:
  1. I. Психологические операции в современной войне.
  2. II. Операции над векторами, заданными их разложениями по ортам (заданными координатами)
  3. V.Операции банка
  4. V2: ДЕ 11 - Векторные пространства. Линейные операции над векторами
  5. V2: ДЕ 4 – Линейные отображения. Линейные операции над матрицами
  6. Активные и пассивные операции банков
  7. Активные операции банков и их структура.
  8. Активные операции коммерческих банков.
  9. Активные операции коммерческих банков: понятие, значение, характеристика видов
  10. Анализ даты совершения операции по ДР.
  11. Арифметические выражения и операции
  12. Арифметические операции

 

Объединением графов 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.

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

 

2.9.2 Задача о нахождении пути максимальной длины между двумя фиксированными вершинами ориентированного графа

Сетевое планирование.

Постановка задачи и ее решение аналогичны предыдущей задаче. Алгоритм решения задачи следующий:

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

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

Изменить метку вершины Xj на

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

На графе-сети получим решение за один шаг, если будем пользоваться формулой

2.22

Определим путь максимальной длины и его длину для условия предыдущей задачи.

Следуя алгоритму, полагаем Так как , то меняем метку вершины X1 на метку

Х0

Аналогично, для вершины X2:

Х0

Для определения метки вершины Х3 применяем формулу 2.22:

Х1

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

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

Х3

= Х4

Длина максимального пути из вершины Х0 в вершину Х5 =14. Сам путь получим, просматривая отмеченные вершины: = {Х0, X1, Х3, Х4, X5}.

Путь максимальной длины - критический путь, его дли­на совпадает с критическим временем завершения проекта, представленного графом-сетью, т.е. с критическим временем. Вершина Х0 - событие, состоящее в начале всего проекта, т.е. всех работ, представленных на графе дугами; Xn - событие, состоящее в окончании всех работ, всего проекта. Другие вершины X1, ... , Xn-1 - события, состоящие в начале одних и окончании других работ. Дуги графа - работы, составляющие проект. Последовательность выполнения работ - со­держание проекта, представлено графом-сетью. Длина дуги - продолжительность выполнения данной работы. Скорейшее время завершения всего проекта совпадает с длиной пути максимальной длины из Х0 в Хn и называется критическим временем. Работы, составляющие критический путь не до­пускают запаздывания по времени.

Так, граф (рис. 2.18) может рассматриваться как неко­торый проект, состоящий из девяти работ, заданных таблицей:

Виды работ Какие работы следуют за перечисленными Продолжительность работ
2,3
6,7
6,7
-
-
-

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |


Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.013 сек.)