Сетевые методы в планировании

16







		



 Кафедра прикладной математики  

		

		

		Курсовая работа

		по курсу:

		“Дискретная математика” 

		

		по теме:

		

		“Сетевые методы в планировании”

		

		

		

		Группа: ДИ 102

		Студент: Шеломанов Р.Б.

		

		

		

		Руководитель:  Алферова З.В.

		

		

		

		

				Москва 1998



























Содеражание



	Введение	3

	Часть 1 Теоретическая часть к курсовому проекту	4

	Глава 1 Теория графов	4

	Глава 2 Календарное планирование сетевыми методами	8

	Часть 2  Практическая реализация курсового проекта	13

	Задание	13

	Решение	14

	Заключение	20

	Список литературы 	21





















































Введение



Для иллюстраций условий и решений многих задач люди пользуются графиками. По своей сути графики являются набором из множества точек и отрезков прямых соединяющих эти точки. Возникает вопрос: подчиняются ли графики каким-либо законам и обладают ли они какими-нибудь свойствами?  Этот вопрос был поставлен Д.  Кенигом, который впервые объединил все схематические изображения, состоящие из совокупности точек и линий, общим термином “граф” и рассмотрел граф как самостоятельный математический объект. Теория графов нашла свое применение  в решении целого ряда экономических задач. Эту область приложения теории графов можно назвать: “Календарное планирование программ сетевыми методами”. Изучение именно этой области является основной целью моего курсового проекта.

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

Организационное управление программами стало новой областью теоретических и прикладных исследований благодаря разработке двух аналитических методов структурного и календарного планирования, а также оперативного управления программами. Эти методы, разработанные почти одновременно в 1957-1958 гг. двумя различными группами, получили названия метод критического пути (МКП) и метод оценки и пересмотра программ (ПЕРТ).

Метод критического пути был предложен фирмой Е. I. du Роnt de Nemours & Company для управления программами строительства, а затем был развит к обобщен фирмой Маuсhlу Associates. Метод ПЕРТ разработан консультативной фирмой по заказу военно-морского министерства США для календарного планирования научно-исследовательских и опытно-конструкторских работ программы создания ракет «Поларис».

В методах ПЕРТ и МКП основное внимание уделяется временному аспекту планов в том смысле, что оба метода в конечном счете определяют календарный план программы. Хотя эти методы были разработаны независимо, они отличаются поразительным сходством. Пожалуй, самым существенным различием первоначально было то, что в методе МКП оценки продолжительности операций предполагались детерминированными величинами, а в метод ПЕРТ — случайными. В настоящее время оба метода составляю единый метод сетевого планирования и управления (СПУ) программами.







  

Часть 1

Теоретическая часть к курсовому проекту



Глава1

Теория графов



Понятие графа



Графом G(X,U)  называется совокупность двух объектов некоторого множества X и отображения этого множества в себя Г.

При геометрическом представлении графа элементы множества Х изображаются точками плоскости и называются вершинами графа. Линии, соединяющие любые пары точек x и y, из которых у является отображением х, называются дугами графа. Дуги графа имеют направление, обозначаемое стрелкой, которая направлена острием от элемента х к его отображению у.



Вершины и линии графа



Две вершины А и В являются граничными вершинами дуги, если А- начало  дуги, а В ее конец.

Смежными называются различные дуги, имеющие общую граничную точку. Две вершины х и у смежны, если они различны и существует дуга, идущая от одной из них к другой .  

Вершина называется изолированной, если она не соединена дугами с другими вершинами графа. 

Если дуга U исходит из вершины х или заходит в х, то дуга U называется инцидентной вершине х, а вершины х инцидентной дуге U. Общее число дуг, инцидентной вершине х, являются  степенью вершины х Р(х). Вершины, степень которых Р(х)>2, называются узлом, а со степенью Р(х)<2 - антиузлом.

Полустепень захода Р+(х) вершины х - количество  дуг, заходящих в данную вершину. Полустепень исхода Р-(х) - количество дуг, исходящих из данной вершины.



Последовательность линий на графе



Путь - последовательность дуг (U1, U2, ...Un), в которой конец каждой предыдущей дуги совпадает с началом последующей. Путь может быть конечным и бесконечным.

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

Путь, в котором ни одна из вершин не встречается более одного раза, называется элементарным путем.

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

Эллеров путь - путь содержащий все дуги графа, при этом только по одному разу.

Длинна пути - число дуг последовательности (U1, U2, ...Un).

Ветвь - путь, в котором начальная и конечная вершины являются узлами. Дуга (x,y) называется замыкающей,  если удаление ее не приводит к аннулированию пути из x в y.

Контур - конечный путь, начинающийся и заканчивающийся в одной и той же вершине. Контур единичной длинны называется петлей.

Ориентированный граф - граф, у которого вершины соединяются направляющими стрелками.

Графы можно рассматривать с учетом или без учета ориентации его дуг.



Разновидности графов 



Нуль-граф - граф (X,U), состоящий только из изолированных вершин.

Однородный граф - если степени всех вершин графа одинаковы и P+(x)= P- (x) =0.

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

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

Полный - граф, в котором любая пара вершин соединена одинаковым числом дуг.

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



Подмножества графов 



Подграфом графа  G(X,U) называется граф G(A,UA), определяемый следующим образом:

1. Вершинами A  подграфа G(A,UA)   является некоторое подмножество вершин графа G(X,U);

2. Отображением каждой вершины подграфа является пересечение отображения той же вершины в графе G(X,U) со всем подмножеством вершин A подграфа G(A,UA).

Частичным графом для графа G(X,U) называется граф G(X,U), в котором содержатся все вершины и некоторое подмножество дуг исходного графа.

Частичный подграф - это частичный граф от подграфа.

Фактором графа G(X,U) называется частичный граф G(X,U), в котором  каждая вершина обладает полустепенями исхода и захода, равными единице,  имеются одна заходящая и одна исходящая дуги.

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



Связность графа



В общем случае граф может быть представлен несколькими отдельными графами, не имеющими общих дуг. Тогда граф G(X,U) называется несвязным, а каждый из составляющих его графов G1 , G2 ,...Gn - компонентами связности. Граф называется  связным, когда каждую его вершину можно соединить с любой другой его вершиной некоторой цепью.



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



1. Объединение графов

G3(X3,Гх3) = G1(X1,Г1х1)  G2(X2,Г2х2), где  X3=X1X2, а Гx3=Г1x1Г2x2

Пример (Рис 1.1).



Рис 1.1



2.  Пересечение графов

G3(X3,Гх3) = G1(X1,Г1х1) G2(X2,Г2х2), где  X3=X1 X2, а Гx3=Г1x1Г2x2

Пример (рис 1.2).

Рис 1.2

4. Прямое (декартово) произведение графов.

Прямым произведением множеств Х{x1.......xn} и Y  называется множество Z, элементами которого являются всевозможные пары вида xi , yj , где xiX, yjY. Обозначают:  Z=X x Y.

G3(X3,Гх3) = G1(X1,Г1х1)  G2(X2,Г2х2), где  X3=X1X2, а Гx3=Г1х1Г2х2

Пример. (рис 2.3) 

G1(X,Гх)=G1(X1,Гх1)                                           G2(Y,Гy)= G2(X2,Гх2)

X={x1 x2 x3 }                                                           Y={y1 y2}  

Гх1=0                                                                       Гу1={y1 y1}

Гх2={x1 x3}                                                               Гу2={y1}

Гх3=0

Z=X x Y={x1 y1, x1y2, x2y1, x2y2, x3y1, x3y2}

Z={z1 z2 z3 z4 z5 z6}           



Рис 2.3



7.  Расширение графа.

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



8.  Сжатие графа.

Сжатие графа - это превращение элементарного пути, соединяющего две любые вершины графа, в линию.  



9.  Стягивание графа.

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



Некоторые числа теории графов



Пусть существует мультиграф с b вершинами,  p ребрами, и R компонентами связности, тогда цикломатическое число мультиграфа определяется равенством:

V= p-b+R



Матрицы для графов



Матрицей смежности графа G(X,Гх), содержащего n вершин называется квадратная бинарная матрица А(G)  n x n , c нулями на диагонали. Число единиц в строке равно степени соответствующей вершины. 

Матрицей инциденций ориентированного графа G(X,U) называется прямоугольная матрица порядка [m x n] n - мощность множества Х,  m - мощность множества U. Каждый элемент которой определяется следующим образом:



              1,  если хi  - начало дуги  Uj

aij =        -1, если хi  - конец дуги  Uj

              0,  если хi  - не инцидентна дуге Uj





Пример.

Построим матрицы смежности (М1) и инциденций (М2) для графа G(X,U) (рис 2.1).





Рис 2.1

Дополнительная матрица графа G(X,U) представляет собой квадратную матрицу А1 ,  которая получается из матрицы смежности этого графа путем замены всех нулей единицами и наоборот.



Деревья и прадеревья



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

Прадрево - ориентированное дерево.

Корень прадерева - вершина у которой Р+(х)=0.

 



Глава 2

Календарное планирование программ сетевыми методами



Сетью называется конечный граф G(X,Y) , без циклов и петель, ориентированный в одном общем направлении от вершин V, являющимися входами графа, к вершинам W, являющимися выходами.

Сетевое планирование и управление программами включает три основных этапа: структурное планирование, календарное планирование и оперативное управление.

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

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

Заключительным этапом является оперативное управление процессом реализации программы. Этот этап включает использование ñåòåâîé ìîäåëè è êàëåíäàðíîãî ãðàôèêà äëÿ ñîñòàâëåíèÿ ïåðèîäèческих отчетов о ходе выполнения программы. Сетевая модель подвергается  анализу и в случае необходимости корректируется. В этом случае разрабатывается новый календарный план выполнения остальной части программы.

Сетевая модель



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



           					       1



     i                             j



 							   3 		4



					        2



              (а)							(б)

				Рис. 3.1

На рис. 3.1 а приведен типичный пример графического отображения операции i, j с начальным событием i и конечным событием j. На рис. 3.1 б показан другой пример, из которого видно, что для возможности начала операции (3, 4) требуется завершение операций (1,3) и (2, 3). Протекание операций во времени задается порядком нумерации событий, причем номер начального события всегда меньше номера конечного. Такой способ нумерации особенно удобен выполнении вычислений на ЭВМ.



Правила построения сетевой модели



Правило 1. Каждая операция в сети представляется одной и только одной дугой (стрелкой). Ни одна из операций не должна появляться в модели дважды. При этом следует различать случай, когда какая-либо операция разбивается на части; тогда каждая часть изображается отдельной дугой. Так, например, прокладку трубопровода можно расчленить на прокладку отдельных секций и рассматривать прокладку каждой секции как самостоятельную операцию.

Правило 2. Ни одна пара операций не должна определяться одинаковыми начальным и конечным событиями. Возможность неоднозначного определения операций через события появляется в случае, когда две или большее число операций допустимо выполнять одновременно. Пример этого случая приведен на рис. 3.2 а, где операции А' и В имеют одинаковые начальное и конечное события. Чтобы исключить такую «ошибку» между А и

		

                             



                                (a)				      (б)



				рис 3.2

конечным (начальным) событием или между В и конечным (начальным) событием, вводится фиктивная операция D . Рис. 3.2 б иллюстрирует различные варианты введения такой фиктивной операции D. В результате операции А и В определяются теперь однозначно парой событий, отличающихся либо номером начального, либо номером конечного события. Следует обратить внимание на то, что фиктивные операции не требуют затрат ни времени, ни ресурсов.

Фиктивные операции позволяют также правильно отображать логические связи, которые без их помощи нельзя задать на сети. Предположим, что в некоторой программе операции А и В должны непосредственно предшествовать С, а операции Е непосредственно предшествует только В. На рис 12.3 а эти условия отражены неверно, так как, хотя упорядочения между А. В и С показаны правильно, из этого фрагмента следует, что операции Е должны непосредственно предшествовать обе операции А и В. Правильное представление указанных условий дает фрагмент, изображенный на рис 12.3 б в котором используется



















		      (а)				                         (б)



Рис 3.3



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

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

а) Какие операции необходимо завершить непосредственно перед началом рассматриваемой операции?

б) Какие операции должны непосредственно следовать после завершения данной операции?

в) Какие операции могут выполняться одновременно с рассматриваемой?                              

Это правило не требует пояснений. Оно позволяет проверять (и перепроверять) отношения упорядочения в процессе построения сети.



Расчет сетевой модели



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

 

Определение критического пути



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

Теперь, используя результаты вычислений при прямом и обратном проходах, можно определить операции критического пути. Операция (i, j) принадлежит критическому пути, если она удовлетворяет следующим трем условиям:

E(i)  -  ранние сроки начала всех операций, выходящих из события i.

 L(i) - поздние сроки  окончания  всех операций, входящих в событие i.

Dij - продолжительность операции, соединяющей i-тое и j- тое события. 

1.  E(i)=L(i)

2.  E(j)=L(j)

3.  E(j)-E(i)=L(j)-L(i)=Dij



По существу, эти условия означают, что между ранним сроком: начала (окончания) и поздним сроком начала (окончания) критической операции запас времени отсутствует.



Резервы времени некритических операций



Резерв критической  операции равен нулю. Рассмотрим некоторую некритическую операцию / i , j /. Какое  максимальное количество времени можно выделить для ее выполнения без  задержки своевременного окончания всего проекта? Операция  / i ,j / может  начаться не ранее Е/ i /и должна закончиться не позднее L ( j ). Таким образом,  без  задержки   окончания проекта на выполнение операции / i, j  / можно выделить не более  L(j)-Е(i) единиц времени. Следовательно, при выполнении этой операции можно допустить максимальную задержку  L( j )-Е( i )- d ij >= 0. Величина L(j )-E(i)-d ij   называется полным резервом времени  операции ( i , j ).  Какое   максимальное количество времени может быть выделено для  выполнения операции (i ,j ) без введения  дополнительных временных  ограничений на последующие операции? Для соблюдения этого условия  операция ( i , j ) должна быть закончена к моменту времени  Е ( j ).  Поскольку операция ( i , j ) может начаться не ранее  E ( i ), на ее  выполнение без введения дополнительных ограничений на последующие  операции можно выделять не более E( j )-E(i ) единиц  времени.  Величина E ( j ) -E ( i ) - d ij   Называется свободным резервом  времени операции ( i ,j ).  Свободный резерв времени равен максимальной задержке выполнения операции  ( i , j ),  не влияющей на выполнение последующих операций.  Какое максимальное количество времени может быть выделено для выполнения  операции ( i,j ) без введения дополнительных временных ограничений на любую  операцию проекта? Для выполнения этого условия операция ( i,j )  должна начаться в момент времени L(i ) и закончиться к моменту времени E(j ),  cледовательно, на выполнение операции ( i,j ) в  этом случае можно выделить не   более Е ( J ) -L(i) единиц времени.  Величина Е( j )- L (i )-d ij     называется независимым резервом  Времени операции  (i ,j ). Независимый  резерв времени равен максимальной  задержке, которую можно допустить при выполнении операции ( i ,j ) без  введения дополнительных временных ограничений на любую  другую операцию  проекта. Отрицательное значение независимого резерва означает, что любая задержка с выполнением операции приведет к дополнительным ограничениям на выполнение других операций.



Построение календарного графика и распределение ресурсов



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

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

Для построения календарного графика прежде всего определяются календарные сроки выполнения критических операций. Далее рассматриваются некритические операция и указываются их ранние сроки начала Е и поздние сроки окончания L. Критические операции изображаются сплошными линиями. Отрезки времени, в пределах которых могут выполняться некритические операции, наносятся пунктирными линиями, показывающими, что календарные сроки этих операций можно выбрать в указанных пределах при условии сохранения отношений следования. Фиктивная операция  не требует затрат времени и поэтому изображается на графике вертикальным отрезком. Числа, проставленные над некритическими операциями, соответствуют их продолжительностям.

Роль полных и свободных резервов времени при выборе календарных сроков выполнения некритических операций объясняется двумя общими правилами.

1. Если полный резерв равен свободному, то календарные сроки некритической операции можно выбрать в любой точке между ее ранним началом и поздним окончанием.

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

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

Теперь, после изучения теории сетевого планирования, я перехожу к практической части курсового проекта.



Часть 2



Практическая реализация курсового проекта



Задание



Вариант № 24

Построить сетевую модель и календарный график по указанным в таблице данным.



Номера работ (опера-ций)

Каким работам предше-ствует

Продолжи-тельность работ

Потребность в трудресурсах

1

2

9

2

2

3, 4, 5

8

1

3

6

8

9

4

8

9

5

5

7

13

1

6

7

12

4

7

10, 12

14

4

8

9, 10

12

3

9

10, 12

14

8

10

11

6

4

11

14

9

1

12

13, 17

11

3

13

15

16

6

14

15

5

1

15

16

7

5

16

18

9

1

17

18

13

2

18



9

3





Решение



На основе данных и предписаний указанных выше выполняем первый этап проекта, тоесть строим сетевой график проекта (рис 4.1). События пронумерованы в кружках, линии со стрелками - работы  (далее вместо слова “ работы” я буду употреблять “операции”). Рядом со стрелками операций стоят их номера и ( с черточками над и под числом) продолжительность. Пунктиром выделены фиктивные операции. 



Рис 4.1



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

Обозначим через Е/ j /- наиболее ранний возможный срок наступления j-го события. Пусть d i,j- продолжительность операции, соединяющей i -е и j -е события. Поскольку j-е событие не может произойти, пока не будут завершены все операции ведущие к j-му узлу, то наиболее ранний возможный срок его наступления будет вычисляться по следующему алгоритму.

Алгоритм расчета наиболее ранних возможных сроков

наступления событий.

Шаг 1. Положить Е/0/ = 0

Шaг 2. Для  j = 1,2,...,n     вычислить

E(j)=max    {E( i ) + d ij },

i: (ij) э А



где максимум берется по всем операциям, завершающимся, в  j -m  узле и выходящим из любого предшествующего i -го узла.

Обозначим теперь через  L ( i ) наиболее   поздний   срок    наступления   i -го события, не влияющий на время завершения всего проекта. Начиная с завершающего события движемся в обратном  направлении  через каждое предшествующее событие. Вычисления осуществляются в этом случае по следующему алгоритму.

Алгоритм расчета наиболее поздних допустимых сроков

наступления событий.

Шаг 1. Положить   L( n ) =Е( n ).

Шаг 2. Для i = n-1,n-2,......,0   вычислить

L(i)=min {L(j-dij)},

j:(ij)эA

                            
где минимум  берется по всем операциям начинающимся в i -м  узле и входящим  в  любой  j-й  узел.

Действуя описанным выше способом, рассчитаем наиболее ранние возможные сроки наступления событий и наиболее поздние допустимые сроки наступления событий (рис 4.2). Наиболее ранние возможные сроки наступления событий отображены в квадратиках рядом с самим событием, над квадратиками расположены наиболее поздние допустимые сроки наступления событий. На основе прямого и обратного проходов выделяем на графике критические операции из которых складывается критический путь. Критический путь составляют операции: 1,2,4,8,9,(из 6 до 8 события фиктивная операция),12,13,15,16,18 - эти опреации выделены другим цветом на граффике (рис 4.2).

Критическое время проекта - 104.





Рис 4.2

Теперь вычислим резервы времени для некритических операций. Рассчитанные резервы времени внесем в таблицу 1.  













































Таблица 1





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







































Таблица 2







На основе полученной таблицы строим календарный график реализации проекта (рис 4.3) и два графика ресурсных профилей проекта - в первом, выберем  в качестве моментов начала некритических операций  их ранние возможные сроки, получим ранний календарный план реализации проекта (рис 4.5), а во втором выберем в качестве моментов  начала некритических операций  их поздние допустимые сроки, получим поздний календарный план реализации проекта (рис 4.6)

.Рис 4.5



Рис 4.6



Заключение



Максимальная потребность в ресурсах как на раннем, так и на позднем календарных планах равна 15, но на позднем календарном плане время использования максимума ресурсов составляет 1, а на раннем плане 8. Также из графиков видно, что наиболее равномерно ресурсы распределены на позднем плане. Поэтому наиболее оптимальной реализацией проекта будет поздний календарный план, тоесть когда мы возьмем наиболее поздние возможные сроки операций. 

































Список использованной литературы





Таха Х.  “Введение в исследование операций”     т.1,2                          М. Мир         1989

Ковалева Л.Ф. “Математическая логика и теория графов”                   МЭСИ           1977