Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Резерв времени и критический путь




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

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

rijп =ljп -liр-tij

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

rijс =ljр -liр-tij.

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

rijн=max{0, ljр -liп-tij }.

Очевидно, верны следующие утверждения.

Полный резерв работ, лежащих на критическом пути равен нулю.

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

Расчет всех параметров сетевого графика удобно свести в следующие две таблицы.

 

Таблица 2

Номер события Наиболее ранний возмож-ный срок   Номер предшествующего события, принадлежащего наиболее длинному пути из события 0 в событие j. Наиболее поздний допусти-мый срок   Номер события, следующего за событием j и принадлежащего кратчайшему пути от j до конечного.
  l0р ¾ l0п n
……….. ………… ………………… …………. ……………….
j ljр i(j) ljп j*(j)
……….. ………… ………………… ………… ………………
n lnр i(n) lnп ¾

 

Таблица 3

Работа Полный резерв времени Свободный резерв времени Независимый резерв времени
(i,j) rij п rijс rijн
…………. ……………….. ………………… ……………………

 

Величины резервов времени связаны соотношением

rijп ³rijс ³rijн.

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

1. узел с номером k принадлежит новому критическому пути,

2. если узел с номером j (j£k) принадлежит критическому пути, то номер предшествующего ему узла равен i(j),

3. начальный узел всегда имеет номер 0.

4. узел с номером l принадлежит новому критическому пути,

5. если узел с номером j (j³l) принадлежит критическому пути, то номер следующего за ним узла равен i*(j),

6. конечный узел всегда имеет номер n.

 

Пример 4.

Для всех дуг (работ) сети из примера 1 определите полный резерв времени, свободный резерв времени и независимый резерв времени.

Необходимо использовать результаты, полученные в примерах 2,3 и сведенные в таблицу 4.

 

Таблица 4

Номер события     j Наиболее ранний возмож-ный срок     ljр Номер предшеству-ющего собы-тия, принадле-жащего на-иболее длин-ному пути из события 0 в событие j. i(j) Наиболее поздний допусти-мый срок     ljп Номер события, следующего за событием j и принадлежа-щего кратчай-шему пути от j до конечного. j*(j)
    ¾    
         
         
         
         
         
         
         
        ¾

 

 

В таблицу 5 занесем значения резервов времени для всех работ. Анализ таблицы 5 подтверждает результат примера 2, что в данной сети критическим является путь

 

(0,2)-(2,3)-(3,4)-(4,6)-(6,7)-(7,8),

 

так как именно для этих работ полный резерв времени равен 0.

 

Таблица 5

Работа Продолжи-тельность работы Полный резерв времени rijп Свободный резерв времени rijс Независимый резерв времени rijн
(0,1)        
(0,2)        
(0,4)        
(1,5)        
(2,3)        
(3,4)        
(3,5)        
(4,6)        
(5,6)        
(6,7)        
(7,8)        

 

Критический путь представляет собой взаимосвязанную по­следовательность работ и событий — от начального до завер­шающего. Задержка наступления любого события, принадлежащего критическому пути, приведет к задержке срока завершения всего проекта. Напротив, работы и события, не находящиеся на критическом пути, могут быть за­держаны на ненулевой промежуток времени без влияния на срок завершения всего проекта. Например, за­держка события 6 на 4 единицы времени относительно наиболее раннего возможного срока его наступления не по­влияет на срок завершения всего проекта и, более того, не повлияет на начало работы (5,6). Увеличение продолжительности выполнения работы (0,4) на 4 единицы времени приводит к появлению в сети еще одного критического пути

(0,4)-(4,6)-(6,7)-(7,8).

Если увеличить продолжительность работы (5,6) на величину ее полного резерва времени, то в сети появится новый критический путь, которому принадлежит работа (5,6). Найдем его, используя данные таблицы 4:

k=5, i(5)=3, i(3)=2, i(2)=0,

l=6, i*(6)=7, i*(7)=8.

Итак, новый критический путь проходит через узлы 0-2-3-5-6-7-8, и ему принадлежат работы (0,2)-(2,3)-(3,5)-(5,6)-(6,7)-(7,8).

5.5 Оптимизация плана комплексных работ

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

Предположим, что в сетевом графике продолжительность каждой работы (i,j) не фиксирована, а лишь известен интервал ее изменения [Lij,Uij,]. Обозначим продолжительность работы (i,j) переменной yij. Тогда, yijÎ[Lij,Uij,]. Изменение продолжительности работы либо требует дополнительных затрат, если имеется в виду ее более быстрое исполнение, либо приводит к уменьшению затрат, если наблюдается увеличение продолжительности. Будем считать, что зависимость затрат от продолжительности работ линейна, то есть затраты на выполнение работы (i,j) равны bij-aijyij, где bij³0, aij³0.

Очевидно, что затраты на выполнение всего проекта будут минимальны при yij=Uij. Полагая yij=Uij найдем длину критического пути Tвкр. Если нас не устраивает полученное значение времени исполнения проекта Tвкр, то можно попытаться его уменьшить. Для этого необходимо уменьшить, по меньшей мере, продолжительность критических работ, что потребует дополнительных затрат. Обозначим желаемую продолжительность исполнения проекта T0. Пусть ti- неизвестный нам момент наступления i-го события. При сделанных допущениях можно построить математическую модель, предназначенную для минимизации общей стоимости проекта, продолжительность исполнения которого не больше T0. Математическая модель имеет вид

S (bij-aijyij)® min

(i,j)ÎS ti,yij

 

ti +yij £ tj для всех (i,j)ÎS, (3)

tn- t0 £ T0,

Lij £ yij £ Uij для всех (i,j)ÎS,

 

где S есть множество всех дуг сети.

Задача (3) позволяет найти оптимальные значения продолжительностей работ yij при заданных продолжительности проекта T0, отношениях предшествования, верхних и нижних пределах продолжительности каждой работы.

Задача линейного программирования (3) эквивалентна задаче (4)

 

S aijyij® max

(i,j)ÎS ti,yij

 

ti -tj+yij £ 0 для всех (i,j)ÎS, (4)

-t0 +tn £ T0,

Lij £ yij £ Uij для всех (i,j)ÎS.

 

Пусть Tпкр есть длина предкритического пути (пути, ближайшего по своей длине к критическому, но меньшего его). Если T0³Tпкр, то значение T0 может быть получено вследствие уменьшения продолжительности только тех работ, которые принадлежат критическому пути.

Этот результат позволяет в ситуации, когда T0>Tпкр, рассматривать вместо задачи (4) более простую задачу (5)

 

S aijyij® max

(i,j)ÎКр ti,yij

 

ti -tj+yij£0 для всех (i,j)ÎКр, (5)

 

-t0+tn £T0,

 

Lij £ yij £ Uij для всех (i,j)ÎКр, где Кр – множество дуг, принадлежащих критическим путям.

Если критический путь единственен, то задачу (5) можно упростить. Для этого перенумеруем работы, лежащие на критическом пути, 1,2,…,k. Обозначим продолжительности этих работ xi для i=1,2,…,k. Величины aij, отвечающие критическим работам, назовем ci.

Тогда задачу (5) можно переписать в виде непрерывной задачи о ранце с двухсторонними ограничениями на переменные.

k

S cixi® max

i=1 xi

 

k

S xi £ T0 (6)

i=1

Li £ xi £ Ui для i=1,2,…,k.

Здесь Li,Ui (i=1,2,…,k) - это значения Lij,Uij , соответствующие критическим работам. Для задачи (6) существует простой метод решения.

Алгоритм решения задачи (6).

1. Упорядочим критические работы в порядке убывания значений ci: i1,i2,…,ik .

2. Полагаем T0=T0 -å Li , j=1, i=1

3. Вычисляем z=min { Uij-Lij,T0 }, xij =Lij +z. Присваиваем T0=T0-z.

4. Если j< k, то увеличиваем j на 1 и переходим к шагу 3.

5. Работа алгоритма завершена.

 

Пример 5.

Для сетевого графика из примера 1 найти оптимальные значения сроков наступления событий ti и продолжительностей работ yij при заданных продолжительности проекта T0 =33, отношениях предшествования, определенных в примере 1, верхних и нижних пределах продолжительности каждой работы, заданных в таблице 6.

 

Таблица 6

Работа Lij Uij aij
(0,1)      
(0,2)      
(0,4)      
(1,5)      
(2,3)      
(3,4)      
(3,5)      
(4,6)      
(5,6)      
(6,7)      
(7,8)      

 

Полагаем yij=Uij, и при этих значениях продолжительностей работ методом критического пути проводим анализ сети (см. пример 2). Величина критического пути равна Tвкр =36. Величина предкритического пути равна Tпкр =32. Это означает, что T0 >Tпкр, и уменьшить время исполнения проекта можно за счет сокращения продолжительности работ, лежащих на критическом пути. Для этого достаточно решить задачу (6), которая в данном случае имеет вид:

3x1 +6x2 +0x3+4x4 +2x5 +x6 ® max

x1 +x2 +x3+x4 +x5 +x6 £33,

4£x1 £6,

4£x2 £7,

0£x3 £0,

8£x4 £10,

1£x5 £4,

7£x6 £9.

Переменные xi обозначают продолжительность работ, принадлежащих критическому пути. При этом переменная x3 соответствует фиктивной работе, и поэтому x3 =0 (далее эту переменную не рассматриваем). Упорядочим переменные в соответствии с убыванием коэффициентов целевой функции {2,4,1,5,6}.

Полагаем T0=33-(4+4+0+8+1+7)=9.

Тогда, x2 =4+min{7-4,9}=7, уменьшаем T0 =9-3=6,

x4 =8+min{10-8,6}=10, уменьшаем T0 =6 –2=4,

x1 =4+min{6-4,4}=6, T0 =4-2=2,

x5 =1+min{4-1,2}=3, T0 =2-2=0,

x6 =7+min{9-7,0}=7, T0 =0.

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

Таблица 7

Работа Переменная Xi, соответству-ющая работе Оптимальная продолжительность работы Yij Lij Uij
(0,1)        
(0,2) X1 6*    
(0,4)        
(1,5)        
(2,3) X2 7*    
(3,4) X3 0*    
(3,5)        
(4,6) X4 10*    
(5,6)        
(6,7) X5 3*    
(7,8) X6 7*    

 

Пример 6.

Для сетевого графика, изображенного на рис. 4, найти оптимальные значения продолжительностей работ yij при заданных в таблице 8 отношениях предшествования, верхних и нижних пределах продолжительности каждой работы и продолжительности проекта T0 =15.

 
 

Сетевой график для примера 5.

Рисунок 4.

Таблица 8

Работа Lij Uij aij
(0,1)      
(0,2)      
(1,2)      
(1,3)      
(2,3)      

Полагая yij=Lij, находим Tнкр. При заданных значениях продолжительностей работ Tнкр=11. Так как T0 >Tнкр, то задача разрешима. При yij= Uij, величины критического и предкритического путей равны Tвкр =20 и Tпкр =18 соответственно. Это означает, что T0<Tпкр и нельзя уменьшить время исполнения проекта только за счет сокращения продолжительности работ, лежащих на критическом пути. Таким образом, для определения продолжительности работ необходимо решить задачу (5), которая для данного примера при t0=0 имеет вид:

y0,1+8y0,2+6y1,2+7y1,3+5y2,3® max

y0,1-t1 £0

y0,2-t2 £0

y1,2+t1-t2£0 (7)

y1,3+t1-t3£0

y2,3+t1-t3£0

t3£15

2£y0,1£8

5£y0,2£10

1£y1,2£4

4£y1,3£8

6£y2,3£8.

Сформулированная задача имеет слишком большую для ручного счета размерность (число ограничений m=16, число переменных n=8, а после приведения задачи к каноническому виду возрастет до n=29). Поэтому для решения задачи рекомендуем воспользоваться программой SIMPLEX, разработанной на кафедре исследования операций и предназначенной для решения задач линейного программирования.

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

Tкр=tn-t0 ® min

ti,yij

ti - tj +yij£0 для всех (i,j)ÎS,

(8)

S (bij-aijyij) £ C0

(i,j)ÎS

Lij £ yij £ Uij для всех (i,j)ÎS.

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

Пусть Сн – затраты на выполнение проекта при yij=Uij. Задача (8) разрешима тогда и только тогда, когда С 0³Cн.

 

Задача (8) эквивалентна задаче линейного программирования (9):

Tкр=tn-t0 ® min

ti,yij

ti +yij £tj для всех (i,j)ÎS,

(9)

S aijyij ³ D0, где D0= S bij -C0,

(i,j)ÎS (i,j)ÎS

 

Lij £ yij £ Uij для всех (i,j)ÎS.

Задачу (9) как и задачу (4) можно решить симплекс-методом. Для этого можно воспользоваться программой SIMPLEX.

 

Пример 6.

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

Задача (9) для данного примера при t0=0 имеет вид:

t3® min

y0,1-t1 £0

y0,2-t2 £0

y1,2+t1-t2£0

y1,3+t1-t3£0 (10)

y2,3+t1-t3£0

y0,1+8y0,2+6y1,2+7y1,3+5y2,3³201

2£y0,1£8

5£y0,2£10

1£y1,2£4

4£y1,3£8

6£y2,3£8.

В результате работы программы было получено следующее оптимальное решение y0,1=6, y0,2=10, y1,2=4, y1,3=8, y2,3=7, t 1=6, t2=10, Tкр=t 3=17.

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...