Эйлеровы графы и гамильтоновы циклы — КиберПедия 

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Эйлеровы графы и гамильтоновы циклы

2017-05-14 661
Эйлеровы графы и гамильтоновы циклы 0.00 из 5.00 0 оценок
Заказать работу

Различают эйлеровы циклы и эйлеровы графы. Эйлеровым цикл можно считать следом пера, вычерчивающего этот цикл не отрываясь от бумаги.

Условия, при которых граф эйлеров.

Конечный неориентированный граф G эйлеров тогда и только тогда, когда он связан и степени всех его вершин четны.

В несвязном графе каждый цикл принадлежит какой-либо его связной части, т.е. не проходит через все его ребра.

В каждую вершину может входить несколько дуг при условии, что выходят они каждый раз по другим дугам. Т.о. их должно быть четное число.

Эйлеровы цепи. Так называется цепь, включающая все ребра данного конечного неориентированного графа G, но имеющая различное начало (U’) и конец (U”).

Чтобы в графе существовала эйлерова цепь, необходимы его связность и четность степеней всех вершин, кроме начальной и конечной. Последние две вершины должны иметь нечетные степени: из U’ мы лишний раз выходим, а в U” лишний раз входим. Эти условия достаточны для существования эйлеровой цепи.

Случай конечного ориентированного графа.

Чтобы в конечноориентированном графе существовал эйлеров цикл, необходимо и достаточно равенство степеней вершин графа по входящим и выходящим ребрам.

Т.к. любому неориентированному графу канонически соответствует ориентированный, в котором каждое ребро заменяется двумя направленными дугами, инцидентными тем же вершинам и идущими в противоположном направлении, то отсюда следует справедливость утверждения:

В конечном связном графе всегда можно построить ориентированный цикл, проходящий через каждое ребро по одному разу в каждом из двух направлений. Такой цикл иногда называется способом обхода всех дуг графа. Он используется во многих прикладных задачах, связанных с графами.

Гамильтоновым циклом называется простой цикл, проходящий через все вершины рассматриваемого графа. Такой цикл существует не во всяком графе (рис.2.9).

       
 
   
 

 


Да Нет

 

Рис.2.9 - Примеры графов

Несмотря на внешнюю схожесть, задачи распознавания эйлеровости и гамильтоновости графа принципиально различны. Правило определения эйлеровости приведено више. Что же касается гамильтоновости графа, то ответ на этот вопрос дает такая теорема, которая приводиться без доказательства: Граф со степенной последовательностью d1 £ d2 £... £ dn является гамильтоновым, если для всякого k, которое удовлетворяет неравенствам 1 £ k < n/2, истинна импликация (соответствие):

(dk £ k) Þ (dn-k ³ n - k) (2.8)

 

Существуют и другие, как более сильные, так і білее слабые теоремы и условия определения гамильтоновости графов.

Расчет сетевого графика

 

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

Вершины, отличные от полюсов, называются внутренними вершинами сети. Ребро, инцидентное хотя бы одному полюсу, называется полюсным ребром. Прочие ребра называются внутренними.

Рассмотрим использование положений теории графов при построении сети сложного комплекса работ или операций.

Всякий намеченный комплекс работ, необходимых для достижения некоторой цели, называют проектом. Да, можно говорить о строительстве нового дома, модернизации оборудования, создании нового устройства. При этом сроки выполнения всего проекта заданные и известные продолжительности отдельных работ или операций, которые входят в состав проекта. Каждая такая операция начинается некоторым событием и заканчивается событием. Обычно исходным событием есть начало операции (роботы), а конечной по отношению к данной операции событием есть окончание этой операции, и возможно, начало новой.

Рассмотрим основные расчетные параметры сетевого графика и формулы для их расчета. Обозначим:

 

t p - ранний срок наступления события;

t n ­- поздний срок наступления события;

t i j­ - время операций;

i - номер предшествующего события;

j - номер последующего события;

R п - полный резерв времени операции (i, j);

R - резерв времени события;

t p o - ранний срок окончания операции (i, j);

t п о - поздний срок окончания операции (i, j);

 

Основные временные параметры сетевого графика с детерминированным временем выполнения операций рассчитываются по следующим формулам:

1) ранний срок наступления события j

æ t i p + t i j , если к событию j подходит одна

t j p = í операция (2.9)

è max {t i p + t i j}, если к событию j подходит

{i} несколько операций;

2) поздний срок наступления события j

æ t j п - t i j если от события j отходит одна

t i п = í операция; (2.10)

è min {t j п - t i j}, если от события j отходит

{j} несколько операций

 

3) резерв времени события

 

R = t n - t p ; (2.11)

 

4) ранний срок окончания операции (i, j)

 

t p о = t p + t i j, при t p o = 0 (2.12)

 

5) поздний срок окончания операции (i, j)

 

t n о = t n (2.13)

 

6) полный резерв времени операции (i, j)

 

R n = Tn - Tp - t i j ; (2.14)

 

где R n - максимальное время, на которое можно отсрочить или увеличить продолжительность работы (i, j), не изменяя директивного или раннего срока наступления завершающего события; R п принимают минимальные значения для операций, лежащих на критическом пути; эти минимальные значения равны нулю, если директивный срок наступления завершающего события не задан или превышает начало выполнения операций на время, равное продолжительности критического пути.

Критический путь сетевого графика Lкр - это последовательность операций, продолжительность которых составляет минимальное время выполнения всего комплекса операций. Продолжительность критического пути называют критическим временем Tkp. Критический путь Lkp определяется как последовательностью операций с наименьшим полным резервом.

Расчет t p o и t p ведется от начала сетевого графика к концу, а расчет t n и t n о - от конца к началу. При этом для конечного события t p = t n .

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

Пример. В таблице записаны работы (i, j) и время их выполнения tij ;

 

i, j 1, 2 1, 3 2, 3 2, 5 3, 4 3, 6 4, 5 4, 6 4, 7 5, 7 6,7
tij                      

 

Начертить сетевой график и найти параметры сетевого графика по событиям и работам.

 

РЕШЕНИЕ По данным работам i, j строим сетевой график. Событий всего 7, значит рисуем 7 вершин. Надо так расположить вершины, чтобы работы i, j не пересекались.

 

 
 


27

2 4 5 2

2 1 29 10

3

2 12 39

7 0

0 15 39

1 0 5 4 2 5

0 17 8

7 8

8 8

3 0 23 31

8 6 0

t p 31

N R

t n

Рис. 2.10 - Сетевой график

Находим параметры по событиям.

1) Ранний срок наступления события i, tp (i).Это максимальный путь от начального события до i - го события:

tp(1) = 0; tp(2) = t1,2 = 2

В третье событие входят 2 работы: (2,3) и (1,3), значит

tp(3)=max{tp(2) + t2,3 ; tp(1) + t1,3}=max{2+5, 8}= 8

В четвертое событие входит одна работа (3,4)

tp(4) = tp(3)+t3,4 = 8+7=15

В пятое событие входят 2 работы: (2,5) и (4,5), значит

tp(5)=max{tp(2) + t2,5 ; tp() + t4,5}=max{2+4, 15+12}= 27

В шестое событие входят две работы: (4,6) и (3,6), значит

tp(6)=max{tp(4) + t2,5 ; tp(3) + t3,6}=max{15+4, 8+23}= 31

В седьмое событие входят три работы: (5,7); (4,7); (6,8) значит

tp(7)=max{tp(5) + t5,7 ; tp(4) + t4,7; tp(6) + t6,7}=

max{5+5, 27+10,31+8}= 39

 

2) Поздний срок наступления события i, tn (i) — это разность между продолжительностью максимального пути lmax и пути наибольшей продолжительности от данного события i до конечного события.

Рассчитывается tn (i) по обратной схеме tp (i). Значит, расчет начинаем от конечного события, ориентируемся на выходящие работы, берем минимум разности.

Для конечного события

tn(7) = tp(7)=39

Из шестого события выходит одна работа: (6,7)

tn(6) = tn­­­­­­­­(7) - t6,7 = 39 - 8 = 31

Из пятого события выходит одна работа: (5,7)

tn(5) = tn­­­­­­­­(7) - t5,7 = 39 - 10 = 29

Из четвертого события выходит 3 работы: (4,5);(4,6);(4,7)

tn(4) = min{ tn­­­­­­­­(5) - t4,5 ; tn­­­­­­­­(6) - t4,6 ; tn­­­­­­­­(7) - t4,7 }=

min{29 - 12; 31 - 4; 39 - 5}= 17

Из третьего события выходит 2 работы: (3,4);(3,6)

tn(3)=min{tn­­­­­­­­(4) - t3,4 ; tn­­­­­­­­(6) - t3,6}=min{17 - 7;31 - 23}= 8

Из второго события выходит 2 работы: (2,5);(2,3)

tn(2)=min{tn­­­­­­­­(5) - t2,5 ; tn­­­­­­­­(3) - t1,3}=min{8 - 5;29 - 4}= 3

Из начального события выходит 2 работы: (1,2);(1,3)

tn(1)=min{tn­­­­­­­­(2) - t1,2 ; tn­­­­­­­­(3) - t1,3}=min{3 - 2;8 - 8}= 0

Для начального события должно выполняться условие:

tp(1) = tn (1) = 0.

3) Находим резерв времени по событиям:

R(i) = tn(i) - tp(i).

R(1) = 0; R(2) = 3-2 =1; R(3) = 8-8 = 0;

R(4) = 17-15 = 2; R(5) = 29-27 = 2; R(6) = 31-31 = 0;

R(7) = 39-39 = 0.

 

4) Критический путь проходит по событиям с нулевым резервом времени R(i) = 0, т.е. 1, 3, 6, 7, (выделено на графе). Длина критического пути Lкр — это самый длинный путь от начального события до конечного:

Lкр = tp(7) = 39.

Рассчитаем необходимые параметры по работам.

 

5) Ранний срок окончания работы (i, j):

tp.o(i, j)=tp(i) + ti,j

tp.o(1,2)=tp(1) + t1,2 = 0+2 = 2;

tp.o(1,3)=tp(1) + t1,3 = 0+8 = 8;

tp.o(2,3)=tp(2) + t2,3 = 2+5 = 7;

tp.o(2,5)=tp(2) + t2,5 = 2+4 = 6;

tp.o(3,4)=tp(3) + t3,4 = 8+7 = 15;

tp.o(3,6)=tp(3) + t3,6 = 8+23 = 31;

tp.o(4,5)=tp(4) + t4,5 = 15+12 = 27;

tp.o(4,6)=tp(4) + t4,6 = 15+4 = 19;

tp.o(4,7)=tp(4) + t4,7 = 15+5 = 20;

tp.o(5,7)=tp(5) + t5,7 = 27+10 = 37;

tp.o(6,7)=tp(6) + t6,7 = 31+8 = 39;

6) Поздний срок наступления окончания работы (i, j):

 

tn.o (1,2) = tn(2) = 3; tn.o (2,3) = tn(3) = 8;

tn.o (1,3) = tn(3) = 8; tn.o (2,5) = tn(5) = 29;

tn.o (3,4) = tn(4) = 17; tn.o (4,5) = tn(5) = 29;

tn.o (3,6) = tn(6) = 31; tn.o (4,6) = tn(6) = 31;

tn.o (5,7) = tn(7) = 39; tn.o (4,7) = tn(7) = 39.

tn.o (6,7) = tn(7) = 39;

 

7) Полный резерв времени работы i, j — это время, на которое можно увеличить продолжительность данной работы, не изменяя при этом продолжительность критического пути Lкр.

 

Rn(i, j) = tn (j) - tp(i) - - ti,j;

Rn(1,2) = tn (2) - tp(1) - t1,2 = 3-0-2 = 1;

Rn(1,3) = tn (3) - tp(1) - t1,3 = 8-0-8 = 0;

Rn(2,3) = tn (3) - tp(2) - t2,3 = 8-2-5 = 1;

Rn(2,5) = tn (5) - tp(2) - t2,5 = 8-2-4 = 2;

Rn(3,4) = tn (4) - tp(3) - t3,4 = 17-8-7 = 2;

Rn(3,6) = tn (6) - tp(3) - t3,6 = 31-8-23 = 0;

Rn(4,5) = tn (5) - tp(4) - t4,5 = 29-15-12 = 2;

Rn(4,6) = tn (6) - tp(4) - t4,6 = 31-15-4 = 12;

Rn(5,7) = tn (7) - tp(5) - t5,7 = 39-27-10 = 2;

Rn(6,7) = tn (7) - tp(6) - t6,7 = 39-31-8 = 0;

 

Работа (4,7) имеет большой резерв времени (12), значит можно с этой работы снять на данном этапе ресурсы и перебросить их на работы лежащие на критическом пути. Аналогично, работы (2,5),(3,4),(4,5),(5,7) имеют резерв времени равный 2. Работу (2,3) считаем под критической, а работы с нулевым резервом времени — критические. На рисунке критический путь отмечен жирной линией.

 

2.8. Оптимизация на сетях.

Пусть S - произвольная, частично ориентированная сеть, каждому ребру u которой приписанное неотъемлемое число c(u) - пропускная способность. Потоком в сети S называется пара (f, w), где w - некоторая ориентация всех неориентированных ребер сети, а f(u) -заданная на множестве всех ребер функция с не отрицательными значениями, которые не превосходят пропускных способностей, и такая, что в каждой внутренней вершине a выполняется закон Кірхгофа, соответственно которой сумма значений потока по ребрам, которые входит в вершину, равно сумме потоков по ребрам, которые выходит с вершины. Иными словами, для f(u) выполняются условия:

0 £ f(u) £ c(u) для всех вершин сети;

 
 

R(a) = 0 для всех внутренних вершин, где

а G(a) (соответственно G'(a)) - множество всех ребер, которое выходят из a (соответственно входящих в a) при ориентации w.

Поскольку сумма значений R(a) по всем вершинах сети, включая полюса, равно нулю (каждое ребро есть исходным для одной вершины и входным для другой), то R(as) = - R(bs). Значение R = R(as) называется величиной потока.

Рассмотрим задачу определения максимального значения Rmax потока через сеть S при заданных значениях пропускных способностей. Ответ может быть получен в терминах сечений сети.

Сечением сети называется множество ребер, при удалении которых сеть становится несвязной, причем полюса попадают в разные компоненты связности. В сети на рис.2.11 примерами сечений есть {d, e, f}, {b, c, e, g, h}, {d, g, h, i}.

 

 
 


7 a d h 2

       
   


aS 2 c 4 e 3 g bS

3 b 4 i

1

f

 

Рис. 2.11 - Задача максимального потока

 

Сечение называется простым, если при удалении какого-нибудь его ребра, оно перестает быть сечением. Да, сечения {d, e, f} и {b, c, e, g, h} есть простыми, а сечение {d, g, h, i} не является таким. По-видимому, что для каждого ребра простого сечения можно указать цепь, что проходить через это ребро, но не проходит через иные ребра данного сечения.

Если в связной сети выполняется простое сечение, то сеть распадается ровно на две части: левую часть, что содержит aS, и правую часть, что содержит bS. Каждое ребро простого сечения связывает вершины с разных частей. Будем называть ребро сечения прямым, если оно в сети не ориентированное или ориентирован слева по правой сторону, и обратным в противном случае. Будет ориентированное ребро прямым или обратным, зависит от выбора сечения. Так, в примере ребро е в сечениях {d, e, f} и {b, c, e, g, h} - обратное, а в сечении {a, c, e, g, i}- прямое.

Каждому простому сечению W припишем пропускную способность c(W), равную сумме пропускных способностей всех его прямых ребер. В примере на рис.2.11 сечение {d, e, f} имеет пропускную состоятельность 5+1=6, а сечение {b, c, e, g, h} - 3+2+3+2=10.

Теорема о максимальной пропускной состоятельность сети сформулированная Фордом и Фалкерсоном в таком виде: Максимальный размер потока Rmax через сеть S равно минимальной с пропускных способностей cmin ее простых сечений. Доказательство этой теоремы приведено в [2]. Эта теорема положена в основу задачи определения максимальной пропускной состоятельности сети.

 


Поделиться с друзьями:

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

История развития хранилищ для нефти: Первые склады нефти появились в XVII веке. Они представляли собой землянные ямы-амбара глубиной 4…5 м...

Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.102 с.