- •Временные параметры работ
- •Расчет сроков свершения событий
- •Расчет резерва событий
- •Анализ сетевого графика
- •Расчет коэффициента напряженности
- •Оптимизация сетевого графика методом «время-стоимость»
- •Коды и длительности работ (мес.)
- •Определение коэффициентов для таблиц 3.5 и 3.8
- •Коэффициенты для расчета директивного срока
- •Стоимости работ
Предположим, что при составлении некоторого проекта выделено 12 событий: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 и 24 связывающие их работы: (0→1), (0→3), (0→5), (1→2), (1→3), (1→4), (2→7), (3→4), (3→5), (3→6), (4→6), (4→7), (5→6), (5→8), (5→9), (6→7), (6→8), (6→9), (6→10), (7→10), (8→9), (9→10), (9→11), (10→11). Необходимо:
1) составить и упорядочить сетевой график;
2) определить временные параметры сетевого графика;
3) оценить вероятность выполнения проекта в установленный срок;
4) оптимизировать сетевой график методом «время-стоимость».
Решение
Каждая работа имеет три временные оценки: оптимистическую, пессимистическую и наиболее вероятную; Определим среднее время выполнения работы (табл. 1).
Таблица 1
Временные параметры работ
Работа Pi,j |
аij |
bij |
mij |
|
Работа Pi,j |
аij |
bij |
mij |
|
Работа Pi,j |
аij |
bij |
mij |
|
0,1 |
2 |
10 |
9 |
8 |
3,5 |
1 |
9 |
8 |
7 |
6,8 |
7 |
9 |
8 |
8 |
0,3 |
14 |
16 |
12 |
13 |
3,6 |
3 |
9 |
6 |
6 |
6,9 |
14 |
16 |
12 |
13 |
0,5 |
2 |
12 |
10 |
9 |
4,6 |
2 |
4 |
3 |
3 |
6,10 |
4 |
6 |
5 |
5 |
1,2 |
1 |
13 |
10 |
9 |
4,7 |
2 |
10 |
9 |
8 |
7,10 |
2 |
8 |
5 |
5 |
1,3 |
2 |
10 |
3 |
4 |
5,6 |
2 |
12 |
10 |
9 |
8,9 |
3 |
5 |
4 |
4 |
1,4 |
4 |
12 |
5 |
6 |
5,8 |
6 |
18 |
9 |
10 |
9,10 |
5 |
7 |
6 |
6 |
2,7 |
2 |
4 |
3 |
3 |
5,9 |
4 |
12 |
5 |
6 |
9,11 |
5 |
21 |
19 |
17 |
3,4 |
5 |
19 |
9 |
10 |
6,7 |
1 |
7 |
4 |
4 |
10,11 |
14 |
20 |
11 |
13 |
Далее определяются временные параметры событий (ранний и поздний срок), после чего они наносятся на сетевой график (рис. 1). Критический путь находят, следуя от завершающего события к исходному, по номерам смежных событий.
При определении ранних сроков свершения событий tp(i) двигаемся по сетевому графику слева направо и используем формулы (1), (2).
Расчет сроков свершения событий.
Для i=0 (начального события), очевидно tp(0)=0.
i=1: tp(1) = tp(0) + t(0,1) = 0 + 8 = 8.
i=2: tp(2) = tp(1) + t(1,2) = 8 + 9 = 17.
i=3: max(tp(0) + t(0,3);tp(1) + t(1,3)) = max(0 + 13;8 + 4) = 13.
i=4: max(tp(1) + t(1,4);tp(3) + t(3,4)) = max(8 + 6;13 + 10) = 23.
i=5: max(tp(0) + t(0,5);tp(3) + t(3,5)) = max(0 + 9;13 + 7) = 20.
i=6: max(tp(3) + t(3,6);tp(4) + t(4,6);tp(5) + t(5,6)) = max(13 + 6;23 + 3;20 + 9) = 29.
i=7: max(tp(2) + t(2,7);tp(4) + t(4,7);tp(6) + t(6,7)) = max(17 + 3;23 + 8;29 + 4) = 33.
i=8: max(tp(5) + t(5,8);tp(6) + t(6,8)) = max(20 + 10;29 + 8) = 37.
i=9: max(tp(5) + t(5,9);tp(6) + t(6,9);tp(8) + t(8,9)) = max(20 + 6;29 + 13;37 + 4) = 42.
i=10: max(tp(6) + t(6,10);tp(7) + t(7,10);tp(9) + t(9,10)) = max(29 + 5;33 + 5;42 + 6) = 48.
i=11: max(tp(9) + t(9,11);tp(10) + t(10,11)) = max(42 + 17;48 + 13) = 61.
Длина критического пути равна раннему сроку свершения завершающего события 11: tkp=tp(11)=61
При определении поздних сроков свершения событий tп(i) двигаемся по сети в обратном направлении, то есть справа налево и используем формулы (3), (4).
Для i=11 (завершающего события) поздний срок свершения события должен равняться его раннему сроку (иначе изменится длина критического пути): tп(11)= tр(11)=61
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 10. Просматриваются все строчки, начинающиеся с номера 10.
i=10: tп(10) = tп(11) - t(10,11) = 61 - 13 = 48.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 9. Просматриваются все строчки, начинающиеся с номера 9.
i=9: min(tп(10) - t(9,10);tп(11) - t(9,11)) = min(48 - 6;61 - 17) = 42.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 10. Просматриваются все строчки, начинающиеся с номера 10.
i=10: tп(10) = tп(11) - t(10,11) = 61 - 13 = 48.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 10. Просматриваются все строчки, начинающиеся с номера 10.
i=10: tп(10) = tп(11) - t(10,11) = 61 - 13 = 48.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 9. Просматриваются все строчки, начинающиеся с номера 9.
i=9: min(tп(10) - t(9,10);tп(11) - t(9,11)) = min(48 - 6;61 - 17) = 42.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 8. Просматриваются все строчки, начинающиеся с номера 8.
i=8: tп(8) = tп(9) - t(8,9) = 42 - 4 = 38.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 7. Просматриваются все строчки, начинающиеся с номера 7.
i=7: tп(7) = tп(10) - t(7,10) = 48 - 5 = 43.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 9. Просматриваются все строчки, начинающиеся с номера 9.
i=9: min(tп(10) - t(9,10);tп(11) - t(9,11)) = min(48 - 6;61 - 17) = 42.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 8. Просматриваются все строчки, начинающиеся с номера 8.
i=8: tп(8) = tп(9) - t(8,9) = 42 - 4 = 38.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 6. Просматриваются все строчки, начинающиеся с номера 6.
i=6: min(tп(7) - t(6,7);tп(8) - t(6,8);tп(9) - t(6,9);tп(10) - t(6,10)) = min(43 - 4;38 - 8;42 - 13;48 - 5) = 29.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 7. Просматриваются все строчки, начинающиеся с номера 7.
i=7: tп(7) = tп(10) - t(7,10) = 48 - 5 = 43.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 6. Просматриваются все строчки, начинающиеся с номера 6.
i=6: min(tп(7) - t(6,7);tп(8) - t(6,8);tп(9) - t(6,9);tп(10) - t(6,10)) = min(43 - 4;38 - 8;42 - 13;48 - 5) = 29.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 6. Просматриваются все строчки, начинающиеся с номера 6.
i=6: min(tп(7) - t(6,7);tп(8) - t(6,8);tп(9) - t(6,9);tп(10) - t(6,10)) = min(43 - 4;38 - 8;42 - 13;48 - 5) = 29.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 5. Просматриваются все строчки, начинающиеся с номера 5.
i=5: min(tп(6) - t(5,6);tп(8) - t(5,8);tп(9) - t(5,9)) = min(29 - 9;38 - 10;42 - 6) = 20.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 4. Просматриваются все строчки, начинающиеся с номера 4.
i=4: min(tп(6) - t(4,6);tп(7) - t(4,7)) = min(29 - 3;43 - 8) = 26.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 7. Просматриваются все строчки, начинающиеся с номера 7.
i=7: tп(7) = tп(10) - t(7,10) = 48 - 5 = 43.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 4. Просматриваются все строчки, начинающиеся с номера 4.
i=4: min(tп(6) - t(4,6);tп(7) - t(4,7)) = min(29 - 3;43 - 8) = 26.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 3. Просматриваются все строчки, начинающиеся с номера 3.
i=3: min(tп(4) - t(3,4);tп(5) - t(3,5);tп(6) - t(3,6)) = min(26 - 10;20 - 7;29 - 6) = 13.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 2. Просматриваются все строчки, начинающиеся с номера 2.
i=2: tп(2) = tп(7) - t(2,7) = 43 - 3 = 40.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 5. Просматриваются все строчки, начинающиеся с номера 5.
i=5: min(tп(6) - t(5,6);tп(8) - t(5,8);tп(9) - t(5,9)) = min(29 - 9;38 - 10;42 - 6) = 20.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 3. Просматриваются все строчки, начинающиеся с номера 3.
i=3: min(tп(4) - t(3,4);tп(5) - t(3,5);tп(6) - t(3,6)) = min(26 - 10;20 - 7;29 - 6) = 13.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 1. Просматриваются все строчки, начинающиеся с номера 1.
i=1: min(tп(2) - t(1,2);tп(3) - t(1,3);tп(4) - t(1,4)) = min(40 - 9;13 - 4;26 - 6) = 9.
Далее просматриваются строки, оканчивающиеся на номер предпоследнего события, т.е. 0. Просматриваются все строчки, начинающиеся с номера 0.
i=0: min(tп(1) - t(0,1);tп(3) - t(0,3);tп(5) - t(0,5)) = min(9 - 8;13 - 13;20 - 9) = 0.
Рис. 1. Определение критического пути сетевого графика
Перечень работ и их продолжительность перенесем во вторую и третью графы. При этом работы следует записывать в графу 2 последовательно: сначала начиная с номера 0, затем с номера 1 и т.д.
Во второй графе поставим число, характеризующее количество непосредственно предшествующих работ (КПР) тому событию, с которого начинается рассматриваемая работа.
Так, для работы (1,2) в графу 1 поставим число 1, т.к. на номер 1 оканчиваются 1 работы: (0,1).
Графу 4 получаем из таблицы 1 (tp(i)). Графу 7 получаем из таблицы 1 (tп(i)).
Значения в графе 5 получаются в результате суммирования граф 3 и 4.
В графе 6 позднее начало работы определяется как разность позднего окончания этих работ и их продолжительности (из значений графы 7 вычитаются данные графы 3);
Содержимое графы 8 (полный резерв времени R(ij)) равно разности граф 6 и 4 или граф 7 и 5. Если R(ij) равен нулю, то работа является критической
Таблица 2
