Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji...

17

Click here to load reader

Transcript of Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji...

Page 1: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

Rozdział 6

Programowanie sieciowe

Metody programowania sieciowego są to techniki planowania złożonychprzedsięwzięć organizacyjnych stosowane w celu zapewnienia sprawnego prze-biegu ich realizacji. Metody wykorzystujące sieci czynności zaczęto stosowaćw latach 40. XX wieku w związku z realizacją przedsięwzięć o zastosowaniachgłównie militarnych. W połowie lat 50. powstały najbardziej znane algorytmyCPM (ang. Critical Path Method) oraz PERT (ang. Program Evaluation andReview Technique) stosowane w programowaniu sieciowym [19].

Programowanie sieciowe stosuje sie jako narzędzie wspomagające planowa-nie przedsięwzięć w takich dziedzinach, jak:– produkcja oprogramowania,– wdrażanie systemów informatycznych,– procesy technicznego przygotowania produkcji,– przedsięwzięcia badawczo-rozwojowe,– modernizacja zakładów przemysłowych,– duże przedsięwzięcia inwestycyjne,– produkcja złożonych wyrobów na zamówienie.

Do oceny projektów stosuje się zwykle jedno lub kilka z następującegozbioru kryteriów:– całkowity czas realizacji,– całkowity koszt realizacji,– ryzyko,– NPV (ang. Net Present Value) – zaktualizowana wartość netto.

Całkowity czas realizacji jest podstawowym kryterium oceny projektu,gdyż niedotrzymanie terminów zwykle skutkuje wysokimi karami. Najczęściejstosowaną metodą wyznaczania minimalnego czasu trwania projektu jest me-toda ścieżki krytycznej (CPM), którą omówimy w punkcie 6.1. Zwykle pro-jekt charakteryzuje się nie tylko umownym terminem zakończenia, ale równieżokreślonym budżetem, którego przekroczenie powoduje, że zyski wykonawcysą mniejsze od spodziewanych, a nawet może on przynieść straty. Ponadtow pewnych sytuacjach można skrócić czas trwania poszczególnych czynności,ponosząc dodatkowe koszty (np. na zatrudnienie dodatkowych pracowników).Analiza czasowo-kosztowa (CPM/MCX), omówiona w punkcie 6.2, pozwa-la ustalić, które czynności i o ile warto skrócić, aby najlepiej wykorzystać

Page 2: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

78 Rozdział 6. Programowanie sieciowe

środki przeznaczone na skrócenie czasu realizacji projektu. Jednym z naj-większych problemów pojawiających się podczas stosowania metod sieciowychjest określenie czasów trwania poszczególnych czynności. Metody te dotycząprzedsięwzięć o niskiej powtarzalności, a zatem możliwości wykorzystania da-nych historycznych są niewielkie. Dlatego zwykle oszacowania czasów trwaniaczynności są obarczone dosyć dużym błędem, niosąc ze sobą wysokie ryzykoniedotrzymania terminu realizacji. Minimalizacja ryzyka jest jednym z celówplanowania. Do oceny ryzyka związanego z czasem wykonania projektu wy-korzystuje się metodę PERT, którą przedstawimy w punkcie 6.3. Najbardziejzaawansowaną miarą jakości projektu, ważną zwłaszcza w wypadku projek-tów trwających bardzo długo, jest zaktualizowana wartość netto, która po-zwala wyrazić koszty realizacji na poszczególnych etapach realizacji projektuz uwzględnieniem kosztów zamrożenia i skutków inflacji.

6.1. Metoda ścieżki krytycznej

Przedsięwzięcia składające się z dużej liczby wzajemnie powiązanych czyn-ności nazywa się często projektami. Projekt jest to jednorazowe niepow- ta-rzalne przedsięwzięcie wieloczynnościowe o nietypowej strukturze i przebiegu,którego realizacja wymaga zwykle czasu oraz ograniczonych zasobów.

6.1.1. Przykład

Załóżmy, że grupa studentów zainteresowanych pewnym problemem wy-kraczającym poza ramy programu studiów planuje zorganizować seminariumpoświęcone temu zagadnieniu z udziałem kilku wybitnych wykładowców z róż-nych uczelni. Studenci planują pozyskać sponsorów i wydrukować streszczeniaprezentowanych wykładów. Osobną sprawą jest wybór miejsca przeprowadze-nia seminarium. Organizatorzy biorą pod uwagę sale na uczelni lub poza nią.Ostateczny wybór będzie zależał od dostępności sal w ustalonym terminie orazkosztów ich wynajęcia. Należy też zadbać o rozpowszechnienie informacji o se-minarium wśród kolegów. W tym celu zostaną wydrukowane plakaty i ulotki.Listę czynności, jakie należy przeprowadzić, aby zrealizować plan, przedsta-wiono w tablicy 6.1. Ustalono również kolejność wykonywania poszczególnychczynności i przewidywany czas ich wykonania. Dane te również przedstawionow tablicy. Ile dni przed planowanym terminem seminarium należy rozpocząćjego przygotowywanie, aby ulotki i materiały seminaryjne zostały na czas wy-drukowane?

Page 3: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

6.1. Metoda ścieżki krytycznej 79

Tablica 6.1. Lista czynności związanych z organizacją seminarium

Czynność Opis Czynności Czas trwaniapoprzedzające

1 Ustalenie listy wykładowców 22 Ustalenie listy możliwych lokalizacji 53 Pozyskanie sponsorów 1 54 Nadsyłanie streszczeń wykładów 1 75 Ustalenie lokalizacji 2 86 Ustalenie listy wystąpień 4 67 Opracowanie materiałów 4 88 Opracowanie i rozesłanie ulotek 5, 6 99 Druk materiałów 3, 7 7

6.1.2. Analiza sytuacji decyzyjnej

Zauważmy, że pewne czynności mogą być wykonywane równolegle, co po-winno skrócić czas przygotowania seminarium. Zależności kolejnościowe mię-dzy czynnościami wynikające z tablicy 6.1. można przedstawić za pomocągrafu. Przyjmiemy, że łuki w grafie reprezentują poszczególne czynności, na-tomiast węzły nazwiemy zdarzeniami. Zdarzenie jest punktem w czasie ozna-czającym moment rozpoczęcia lub zakończenia jakiejś czynności. W dalszymciągu będziemy oznaczać czynność jako parę 〈i, j〉, gdzie i oznacza zdarze-nie rozpoczynające czynność, a j oznacza zdarzenie kończące czynność. Grafczynności w rozważanym przykładzie przedstawia rysunek 6.1. Zdarzenia ozna-czono literami alfabetu.

START

A

B

C

D

E

F

2

5

7

5

8

8

6 9

7

Rys. 6.1. Sieć czynności

Page 4: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

80 Rozdział 6. Programowanie sieciowe

6.1.3. Model matematyczny

Jak wspomniano, grafy są wygodnym narzędziem do modelowania projek-tów. Przyjmijmy, że dane są:– dyskretny i skończony zbiór czynności (zadań),– zbiór ograniczeń kolejnościowych,– dyskretny i skończony zbiór atrybutów opisujących każdą czynność, takich

jak:◦ czas realizacji,◦ koszt realizacji,◦ zapotrzebowanie na zasoby.Zbiór czynności wynika bezpośrednio z zakresu projektu. Ustalenie listy

czynności jest zadaniem bardzo ważnym, a przy tym wymagającym doświad-czenia i wyobraźni. Niekiedy wprowadza się tzw. czynności pozorne, którychczas realizacji oraz zapotrzebowania zasobowe są zerowe. Wprowadzenie tychczynności jest konieczne w celu reprezentacji ograniczeń kolejnościowych mię-dzy zdarzeniami, między którymi nie występują zwykłe czynności (jest to zwią-zane z reprezentacją czynności na łukach grafu).

Kolejność czynności wynika z ograniczeń modelowanego projektu. Mogą tobyć ograniczenia:– technologiczne,– o charakterze czasowym,– wynikające z niepodzielności i niesubstytucyjności zasobów,– o charakterze bilansowym.Ograniczenia technologiczne wynikają z charakteru samego projektu i przy-jętego sposobu realizacji. W naszym przykładzie ulotki można wydrukowaćdopiero, gdy znane jest miejsce przeprowadzenia seminarium i lista referatów.Ograniczenia o charakterze czasowym występują na przykład, gdy jakaś czyn-ność nie może się rozpocząć przed ustalonym terminem, niezwiązanym z za-kończeniem żadnej innej czynności. Przykładem takiego ograniczenia może byćdata rozpoczęcia inwestycji związana z datą obowiązywania określonych prze-pisów. Jeżeli wykonawca projektu dysponuje np. jedną koparką, to pomiędzyczynnościami wymagającymi użycia koparki można ustalić ograniczenia kolej-nościowe w celu uniknięcia konfliktu zasobowego. W ogólności ograniczenia za-sobowe modeluje się jednak niezależnie od kolejnościowych. Mamy wówczas doczynienia z problemami rozdziału zasobów w systemach typu kompleks operacji,które należą do najtrudniejszych problemów kombinatorycznych. Omawianietych problemów wykracza poza zakres niniejszego skryptu.

Określenie wartości atrybutów też na ogół sprawia sporo trudności. Ustale-nie czasu trwania czy kosztu realizacji czynności jest możliwe tylko w pewnymprzybliżeniu.

Możliwe są dwa sposoby konstruowania grafu ograniczeń kolejnościowych:

Page 5: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

6.1. Metoda ścieżki krytycznej 81

– czynności występują na łukach,– czynności występują w węzłach.

Zwykle w zadaniach programowania sieciowego stosuje się ten pierwszysposób. Węzły grafu odpowiadają wtedy zdarzeniom (momentom rozpoczę-cia lub zakończenia czynności). Etykiety na łukach mogą zawierać informacjęo wartościach atrybutów związanych z czynnością (czas, koszt, zapotrzebowa-nie na zasoby). Na rysunku 6.1. etykiety na łukach oznaczają czas wykonaniaposzczególnych czynności. Przyjęta konwencja zapewnia, że otrzymany graf,nazywany siecią czynności, posiada następujące własności:– jest grafem prostym (między dowolną parą wierzchołków występuje co naj-

wyżej jeden łuk i nie występują pętle),– jest grafem spójnym,– jest grafem skierowanym,– nie zawiera dróg cyklicznych,– ma jedno zdarzenie początkowe i jedno zdarzenie końcowe.

6.1.4. Metoda ścieżki krytycznej

Z punktu widzenia teorii grafów rozwiązanie zadania polega na znalezieniunajdłuższej ścieżki w grafie. Metoda pełnego przeglądu, polegająca na obli-czeniu długości wszystkich ścieżek, a następnie wyborze najdłuższej z nich,jest nieefektywna obliczeniowo. Znana jest jednak znacznie sprawniejsza me-toda, nazywana metodą ścieżki krytycznej, którą przedstawimy poniżej. Jest topierwsza metoda analizy sieciowej, która została opracowana około roku 1956.Długość najdłuższej ścieżki w grafie, którą znajduje się za pomocą metodyCPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tejzakłada się, że sieć jest w postaci kanonicznej, czyli zarówno struktura sieci,jak i czasy trwania czynności są deterministyczne.

Wygodnym sposobem reprezentacji grafu jest macierz sąsiedztwa, czylikwadratowa macierz, w której aij oznacza liczbę krawędzi pomiędzy wierzchoł-kami i oraz j. W przypadku grafów prostych macierz sąsiedztwa jest macierzązerojedynkową z zerami na głównej przekątnej.

Macierz sąsiedztwa grafu z rysunku 6.1. przedstawia tablica 6.2.Zaczniemy od ponumerowania wierzchołków w grafie tak, aby zdarzenie

oznaczające początek czynności miało niższy numer niż zdarzenie oznacza-jące koniec tej czynności. W tym celu zastosujemy algorytm porządkowaniawarstwowego.

Algorytm porządkowania warstwowego

Krok 1. Zbuduj binarną macierz przejść dla sieci czynności; k := 0.Krok 2. Do warstwy wk zalicz zdarzenia odpowiadające zerowym kolumnom

aktualnej macierzy przejść; k := k + 1.

Page 6: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

82 Rozdział 6. Programowanie sieciowe

Tablica 6.2. Macierz sąsiedztwa grafu z rysunku 6.1

HHHHHi

jSTART A B C D E F

START 0 1 1 0 0 0 0A 0 0 0 1 0 1 0B 0 0 0 0 1 0 0C 0 0 0 0 1 1 0D 0 0 0 0 0 0 1E 0 0 0 0 0 0 1F 0 0 0 0 0 0 0

Krok 3. Wykreśl z macierzy przejść zerowe kolumny oraz wiersze o tych sa-mych numerach.

Krok 4. Jeżeli są jeszcze niewykreślone kolumny, to wróć do kroku 2, w prze-ciwnym razie zakończ.

W sieci z rysunku 6.1. do warstwy w0 zaliczymy jedynie wierzchołek START.Po wykreśleniu pierwszego wiersza i kolumny w macierzy sąsiedztwa zerowekolumny odpowiadają zdarzeniom A i B, a zatem w1 = {A,B}. Po kolej-nych skreśleniach otrzymujemy w2 = {C}, w3 = {D,E} oraz w4 = {F}.Wierzchołek START w warstwie w0 otrzymuje numer 1. Następne numery(kolejne liczby naturalne) przydzielamy wierzchołkom wg kolejności warstw.Wierzchołkom należącym do tej samej warstwy przydzielamy numery w do-wolnej kolejności. Numeracja wierzchołków w grafie z rysunku 6.1. zostałazastosowana na rysunku 6.2.

Z każdym zdarzeniem wiążemy najwcześniejszy możliwy termin wystąpie-nia tego zdarzenia oraz najpóźniejszy dopuszczalny termin wystąpienia tegozdarzenia. Jeżeli przyjmiemy jakiś termin rozpoczęcia projektu Tw0 , to naj-wcześniejszy możliwy termin Twi wystąpienia zdarzenia i, i = 1, . . . , n, jestto najwcześniejszy moment, w którym wszystkie czynności, dla których i jestzdarzeniem końcowym, zostaną wykonane. Jeżeli założymy jakiś termin za-kończenia całego projektu T pn , to najpóźniejszy dopuszczalny termin T pi wy-stąpienia zdarzenia i, i = 1, . . . , n−1 jest to najpóźniejszy moment, dla któregowszystkie czynności wymagające do swego rozpoczęcia wystąpienia zdarzeniai zostaną zakończone nie później niż w T pn .

Metodę ścieżki krytycznej przedstawimy przy założeniu, że graf sieci speł-nia następujące warunki:– zawiera jedno zdarzenie początkowe,– zawiera jedno zdarzenie końcowe,– zdarzenia są ponumerowane zgodnie z ich następstwem w czasie,– Tw1 = 0,– T pn = Twn .

Page 7: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

6.1. Metoda ścieżki krytycznej 83

Powyższe założenia nie zmniejszają ogólności przedstawionego algorytmu,gdyż każdą sieć czynności można łatwo sprowadzić do wymaganej postaci.Niech z1. . . . , zk będzie zbiorem zdarzeń początkowych (końcowych) w gra-fie. Dodając fikcyjne zdarzenie początkowe z0 (końcowe zn+1) oraz czynno-ści pozorne 〈z0, zi〉, i = 1, . . . , k (〈zi, zn+1〉, i = 1, . . . , k), otrzymujemy grafrównoważny z punktu widzenia metody CPM. Odpowiednie ponumerowaniewierzchołków wyznaczamy za pomocą algorytmu porządkowania warstwowego,a ostatnie dwa warunki traktujemy jako warunki początkowe.

Dodatkowo przyjmiemy następujące oznaczenia:– G(V,E) graf o zbiorze wierzchołków V i zbiorze łuków E,– Γi = {j : 〈i, j〉 ∈ E} – zbiór następników zdarzenia i,– Γ−1

j = {i : 〈i, j〉 ∈ E} – zbiór poprzedników zdarzenia i,– tij – czas trwania czynności 〈i, j〉,– Li = T pi − Twi – luz zdarzenia,– Zcij = T pj − Twi − tij – całkowity zapas czasu dla czynności 〈i, j〉.

Jeżeli Li = 0, to zdarzenie i nazywamy zdarzeniem krytycznym, natomiastjeżeli Zcij = 0, to czynność 〈i, j〉 jest czynnością krytyczną.

Metoda ścieżki krytycznej

Krok 1. Tw1 := 0.Krok 2. i := i+ 1.Krok 3. Wyznacz najwcześniejszy termin wystąpienia zdarzenia i:

Twi = maxj∈Γ−1i{Twj + tij}.

Krok 4. Jeżeli i < n, to wróć do kroku 2.Krok 5. T pn := Twn .Krok 6. i := i− 1.Krok 7. Wyznacz najpóźniejszy termin wystąpienia zdarzenia i:

T pi = minj∈Γi{Tpj − tij}.

Krok 8. Jeżeli i > 1, to wróć do kroku 6.Krok 9. Dla każdej czynności 〈i, j〉 oblicz Zcij = T pj − Twi − tij .

Czynności krytyczne wyznaczają ścieżkę krytyczną, czyli taką, dla którejsuma czasów wykonania czynności krytycznych jest największa. Wartość tejsumy (długość ścieżki krytycznej) wynosi Twn i ogranicza od dołu czas reali-zacji projektu. Inaczej mówiąc, ścieżka krytyczna jest to taka ścieżka w grafieczynności, która prowadzi od zdarzenia początkowego do zdarzenia końcowegoi zawiera jedynie czynności krytyczne. Wynik działania algorytmu dla projektuzdefiniowanego w tablicy 6.1. przedstawiono na rysunku 6.2.

Obliczenie zapasu czasu dla czynności przedstawiono w tablicy 6.3.

Page 8: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

84 Rozdział 6. Programowanie sieciowe

etykiety zdarzeniaiT pi

Li

Twi

00

00

12

02

27

25

39

09

415

015

517

017

624

024

2

5

7

5

8

8

6 9

7

Rys. 6.2. Ścieżki krytyczne

6.1.5. Analiza rozwiązania

W sieci czynności może istnieć więcej niż jedna ścieżka krytyczna i tak jestw rozważanym przykładzie. Jedna ścieżka krytyczna to 〈0, 1〉, 〈1, 3〉, 〈3, 4〉, 〈4, 6〉,a druga to 〈0, 1〉, 〈1, 3〉, 〈3, 5〉, 〈5, 6〉. Oczywiście obie ścieżki krytyczne mają tęsama długość, czyli 24. Oznacza to, że przygotowania do seminarium należyrozpocząć najpóźniej 24 dni przed planowanym terminem jego rozpoczęcia.

Wyniki obliczeń przedstawione w tablicy 6.3. pozwalają na bardziej szcze-gółową analizę projektu. Poza całkowitym zapasem każdej czynności, obli-czono także wartości zapasów: niezależnego: Twj − T

pi − tij oraz swobodnego:

Twj −Twi −tij . Łatwo zauważyć, że zachodzi następująca zależność: Znij ¬ Zsij ¬Zcij , a zatem dla czynności krytycznych wszystkie zapasy czasu są równe zero.

W analizowanym projekcie jedynie trzy czynności mają niezerowy zapasczasu. Są to dwie czynności związane z ustaleniem miejsca przeprowadzeniaseminarium oraz pozyskanie sponsorów. Sporządzanie listy możliwych lokali-zacji (czynność 〈0, 2〉) można przedłużyć maksymalnie o dwa dni, czyli tyle, ilewynosi zapas całkowity. Zapas niezależny i swobodny tej czynności są równezero. Z definicji zapasów wynika, że wydłużenie tej czynności o 2 dni jestmożliwe tylko wtedy, gdy rozpocznie się ona w najwcześniejszym możliwymterminie i spowoduje, że zdarzenie 2 wystąpi w najpóźniejszym możliwymterminie. W wypadku czynności 〈2, 4〉 występuje zapas swobodny, więc czyn-ność tę można wydłużyć o dwa dni, ale tylko wtedy, gdy rozpocznie się ona

Page 9: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

6.2. Analiza czasowo-kosztowa 85

Tablica 6.3. Obliczenie zapasu czasu dla czynności w sieci z rysunku 6.2

〈i, j〉 tij Twi T pi Twj T pj Zcij Zsij Znij〈0,1〉 2 0 0 2 2 0 0 0〈0, 2〉 5 0 0 5 7 2 0 0〈1,3〉 7 2 2 9 9 0 0 0〈1, 5〉 5 2 2 17 17 10 10 10〈2, 4〉 8 5 7 15 15 2 2 0〈3,4〉 6 9 9 15 15 0 0 0〈3,5〉 8 9 9 17 17 0 0 0〈4,6〉 9 15 15 24 24 0 0 0〈5,6〉 7 17 17 24 24 0 0 0

Czynności krytyczne oznaczono pogrubiona czcionką

w najwcześniejszym możliwym terminie, gdyż zapas niezależny jest równy ze-ro. Pozyskiwanie sponsorów (czynność 〈1, 5〉) można wydłużyć o 10 dni, nawetjeżeli rozpocznie się ono w najpóźniejszym dopuszczalnym terminie, nie opóź-niając zdarzenia 5, gdyż zapas niezależny tej czynności wynosi 10. Spóźnieniejakiejkolwiek czynności krytycznej spowoduje opóźnienie całego projektu.

Zwróćmy uwagę na jeszcze jedną kwestię, mianowicie, że zdarzenia krytycz-ne nie wyznaczają jednoznacznie ścieżki krytycznej. Zauważmy, że zdarzenia1, 3 i 5 są krytyczne i wyznaczają dwie ścieżki: 〈1, 5〉 oraz 〈1, 3〉, 〈3, 5〉, z któ-rych tylko ta druga jest krytyczna. Dlatego jednoznaczne wyznaczenie ścieżkikrytycznej wymaga obliczenia całkowitego zapasu czasu dla czynności.

6.2. Analiza czasowo-kosztowa

W niektórych sytuacjach czasy trwania pewnych czynności można skrócić,przeznaczając do ich wykonania dodatkowe zasoby (np. zatrudniając więcejosób). Takie rozwiązanie powoduje jednak wzrost kosztów realizacji projektu.W metodzie CPM nie bierze się pod uwagę kosztów, ale w praktyce stano-wią one na równi z dotrzymaniem terminów istotne kryterium oceny jakościprojektu. W tym punkcie przedstawimy metodę pozwalającą analizować pro-jekt z punktu widzenia zarówno czasu, jak i kosztów jego realizacji. Przedsta-wiona poniżej metoda analizy czasowo-kosztowej nazywa się niekiedy metodąCPM/MCX (ang. Cirtical Path Method/Minimum Cost Expediting). W me-todzie tej zakłada się, że zachodzi liniowa zależność między czasem trwaniaczynności a jej kosztem. Czas trwania czynności 〈i, j〉 nie może być krótszyniż pewien czas graniczny tgij i nie jest dłuższy niż czas normalny tnij . KosztKnij realizacji czynności w czasie normalnym nazywamy kosztem normalnym,

a w czasie granicznym – kosztem granicznym Knij . Naturalne są zależności:

tgij ¬ tij ¬ tnij oraz Knij ¬ Kij ¬ Kg

ij , gdzie tij ,Kij są odpowiednio rzeczywi-stym czasem i kosztem wykonania czynności. Przyrost kosztów przy skróceniuczasu wykonania czynności o jednostkę obliczamy jako

Page 10: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

86 Rozdział 6. Programowanie sieciowe

aij =Kgij −Kn

ij

Knij −K

gij

(6.1)

i nazywamy średnim gradientem kosztu.Załóżmy, że przy organizacji seminarium można zatrudnić dodatkową oso-

bę. Wtedy czynność związaną z opracowaniem materiałów można skrócić o 2dni, ale dodatkowy koszt wyniesie 100 zł. Podobnie opracowanie ulotek możnaskrócić o 3 dni, ale to zwiększy koszt o 240 zł. Ustalenie listy wystąpień możnawykonać najkrócej w ciągu 4 dni za dodatkowe 150 zł. Ponadto listę możliwychlokalizacji można opracować w ciągu 3 dni za dodatkowe 120 zł. Czas trwa-nia pozostałych czynności nie zależy od liczby osób zaangażowanych w ichrealizację, więc nie można ich skrócić. Na podstawie powyższych informacjimożna wyliczyć średni gradient kosztu dla każdej czynności. Wyniki zebranow tablicy 6.4.

Tablica 6.4. Koszty skrócenia czynności związanych z organizacją seminarium

〈i, j〉 tnij tgij Knij Kg

ij aij〈0, 1〉 2 2 100 100 −〈0, 2〉 5 3 250 370 60〈1, 3〉 7 7 400 400 −〈1, 5〉 5 5 30 30 −〈2, 4〉 8 8 60 60 −〈3, 4〉 6 4 300 450 75〈3, 5〉 8 6 800 900 50〈4, 6〉 9 6 600 840 80〈5, 6〉 7 7 1500 1500 −

Interesujące jest, o ile można maksymalnie skrócić czas przygotowania se-minarium i jakie będą związane z tym koszty. Inna kwestia to, o ile możnaskrócić czas przygotowań, jeżeli koszt można zwiększyć co najwyżej o 100 zł.

Zauważmy, że skrócenie czynności, która nie jest krytyczna (np. 〈0, 2〉),nie spowoduje skrócenia czasu trwania projektu. Wybierzmy zatem czynnośćkrytyczną, której skrócenie o jednostkę kosztuje najmniej, czyli taką, dla którejaij ma najmniejszą wartość. Jest to czynność 〈3, 5〉. Zauważmy, że skrócenietej czynności również nie przyniesie skrócenia czasu trwania projektu, jeżeli nieskrócimy ścieżki 〈3, 4〉, 〈4, 6〉. Ponieważ a34 < a46, wybierzmy czynność 〈3, 4〉i skróćmy równocześnie czynności 〈3, 5〉 i 〈3, 4〉 o min{tn35 − t

g35, t

n34 − t

g34} = 2.

Dodatkowy koszt z tym związany wyniesie 50+75 = 125 zł. W tej sytuacji, jakwidać na rysunku 6.3, skrócenie czynności 〈4, 6〉 nie ma sensu. Zatem możnaskrócić czas przygotowań co najwyżej o dwa dni. Co do drugiego pytania, tomożemy skrócić te same czynności (a co za tym idzie cały projekt) o 1 dzieńza kwotę 62,50 zł. Organizatorzy seminarium mogą zdecydować, który wariantjest dla nich najbardziej korzystny.

Page 11: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

6.2. Analiza czasowo-kosztowa 87

00

00

12

02

27

25

39

09

415

015

513

013

622

022

2

5

7

5

8

6

4 9

7

Rys. 6.3. Ścieżka krytyczna po skróceniu czynności

Ogólny sposób postępowania w analizie czasowo-kosztowej nosi nazwę Al-gorytmu kompresji i przebiega w sposób następujący [17].

Algorytm kompresji

Krok 1. Znaleźć ścieżkę krytyczną dla zadania z normalnymi czasami wyko-nania czynności.

Krok 2. Zestawić czynności krytyczne, podać ich gradienty kosztów aij orazczasy graniczne tgi .

Krok 3. Wyeliminować z zestawienia te czynności, dla których tgi = tni .Krok 4. Proces skracania rozpocząć od czynności krytycznej o najniższym

gradiencie kosztów aij .Krok 5. Należy starać się skrócić czas trwania czynności o jak największą

liczbę jednostek, respektując dwa ograniczenia:– czas graniczny danej czynności tgi ,– pojawienie się nowej ścieżki krytycznej.

Krok 6. W wypadku gdy istnieją dwie lub więcej ścieżki krytyczne w sieci,należy skracać czas o tę samą wielkość na wszystkich równoległychścieżkach krytycznych.

Krok 7. Najkrótszy termin wykonania programu uzyskuje się, gdy wszystkieczynności na którejkolwiek ścieżce krytycznej osiągną czasy granicz-ne.

Krok 8. Koszty przyspieszenia czynności oblicza się, mnożąc liczbę jednostekczasu, o które czynność została skrócona przez jej gradient kosztów.

Krok 9. Całkowity koszt skrócenia czasu realizacji projektu obliczamy jakosumę kosztów poniesionych na poszczególnych etapach.

Page 12: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

88 Rozdział 6. Programowanie sieciowe

6.3. Metoda PERT

Trudności związane z precyzyjnym określeniem czasów trwania czynno-ści spowodowały, że zaczęto poszukiwać metody uwzględniającej niepewnośćzwiązaną z realizacją projektu. Zastosowanie klasycznej analizy statystycz-nej nie jest możliwe ze względu na małą powtarzalność przedsięwzięć. Jednąz pierwszych metod analizy przedsięwzięć uwzględniającą niepewność czasówtrwania czynności jest metoda PERT. W metodzie tej przyjmuje się arbitral-nie, że rozkład czasu trwania czynności jest rozkładem beta. Jest to rozkładciągły o gęstości wyrażonej wzorem 6.2:

f(t) = H(t− a)p−1(b− t)q−1 dla a < t < b (6.2)

gdzie a, b, p, q są parametrami rozkładu, a H jest stałą zależną od parame-trów. Parametry te w metodzie PERT zastępuje się trzema wartościami, któresą stosunkowo łatwe do ustalenia: optymistycznym czasem trwania czynności(a), pesymistycznym czasem trwania czynności (b) oraz najbardziej prawdo-podobnym czasem trwania czynności (m), gdzie a ¬ m ¬ b. Na podstawietych wartości można oszacować wartość średnią t i wariancję σ czasu trwaniaczynności:

te =a+ 4m+ b

6(6.3)

σ2 =(b− a)2

36(6.4)

Celem analizy wg metody PERT jest oszacowanie prawdopodobieństw wy-stąpienia ujemnych luzów zdarzeń (6.5):

P{Li < 0} = P{T pi − Twi < 0} (6.5)

Prawdopodobieństwa te można wyznaczyć, znając rozkład prawdopodo-bieństwa zmiennej losowej Li = T pi − Twi i korzystając z twierdzenia granicz-nego Lapunowa (zob. [10]). Przy dość ogólnych założeniach suma zmiennychlosowych wyrażających czasy trwania czynności ma rozkład asymptotycznienormalny N(T̄wi , σTwi ), gdzie

T̄wi = maxj∈Γ−1

i

{T̄wj + teij} (6.6)

σTwi =√σ2T̄wk

+ σ2teik

(6.7)

gdzie k jest indeksem zdarzenia, dla którego T̄wi = T̄wk + teik. Podobnie oblicza-my wartość średnią i wariancję rozkładu zmiennej T̄ pi . W konsekwencji rozkład

Page 13: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

6.3. Metoda PERT 89

zmiennej losowej Li jest w przybliżeniu normalny:

N

(T̄ pi − T̄

wi ,√σ2Twi

+ σ2T pi

)Prawdopodobieństwa ujemnych luzów zdarzeń obliczamy zatem jako:

P{Li < 0} = Φ

− T̄ pi − T̄wi√σ2Twi

+ σ2T pi

(6.8)

gdzie Φ(x) jest dystrybuantą rozkładu normalnego N(0, 1). Pamiętamy przytym, że dystrybuanta rozkładu normalnego N(0, 1) jest symetryczna, a zatemΦ(−x) = 1− Φ(x).

Metoda PERT polega zatem na wykorzystaniu metody CPM do wyzna-czenia wartości oczekiwanych oraz wariancji terminów T̄wi i T̄ pi . Pojęcie ścieżkikrytycznej traci sens ze względu na to, że czasy trwania czynności są zmienny-mi losowymi. Prawdopodobieństwo ujemnego luzu zdarzenia pozwala ocenićszanse na dotrzymanie terminów pośrednich realizacji projektu. Gdy praw-dopodobieństwo przekroczenia terminu jest duże (np. 0,8), to uważa się, żetermin jest obarczony znacznym ryzykiem.

Można założyć, że studenci organizujący seminarium nie potrafią dokładnieokreślić czasów trwania poszczególnych czynności, łatwiej im podać wartościoptymistyczne, pesymistyczne i najbardziej prawdopodobne. Wartości te ze-brano w tablicy 6.5.

Tablica 6.5. Czas trwania czynności związanych z organizacją seminarium

Czynnośćtij teij σ2

ija m b〈0, 1〉 1 4 5 3,67 0,44〈0, 2〉 3 5 7 5,00 0,44〈1, 3〉 2 5 10 5,33 1,78〈1, 5〉 5 7 14 7,83 2,25〈2, 4〉 1 8 9 7,00 1,28〈3, 4〉 3 9 12 8,50 2,25〈3, 5〉 5 8 14 8,50 2,25〈4, 6〉 5 7 10 7,17 0,69〈5, 6〉 5 5 10 5,83 0,69

Przypuśćmy, że na realizację projektu przewidziano 26 dni. Wyznacza-my najwcześniejsze i najpóźniejsze terminy wystąpienia zdarzeń, a w końcuprawdopodobieństwo ujemnego luzu zgodnie ze wzorami (6.6)-(6.8). Wynikiobliczeń zestawiono w tablicy 6.6.

Wartości w ostatniej kolumnie tablicy 6.6. oznaczają prawdopodobieństwoujemnych luzów poszczególnych zdarzeń. Prawdopodobieństwo, że projekt niezostanie zrealizowany w terminie 26 dni, wynosi 0,281.

Page 14: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

90 Rozdział 6. Programowanie sieciowe

Tablica 6.6. Obliczenie prawdopodobieństw ujemnych luzów zdarzeń

i T̄wi σ2Twi

T̄ pi σ2Twi

T̄ pi − T̄wi ui =

T̄pi−T̄wi√

σ2Tpi

+σ2Twi

Φ(−ui)

1 3,67 0,44 5,00 4,72 1,33 0,5865 0,2812 5,00 0,44 11,83 2,47 6,83 4,0011 0,0003 9,00 2,22 10,33 2,94 1,33 0,5865 0,2814 17,50 4,47 18,83 0,69 1,33 0,5865 0,2815 17,50 4,47 20,17 0,69 2,67 0,1731 0,1216 24,67 5,17 26,00 0,00 1,33 0,5865 0,281

6.4. Zadania

Zadanie 6.1.Opracowano listę czynności składających się na pewien projekt budowlany(tab. 6.7).

Tablica 6.7. Lista czynności projektu

Lp. Czynność Czas trwania czynności1 〈1, 2〉 22 〈1, 3〉 53 〈1, 4〉 44 〈2, 5〉 35 〈2, 6〉 56. 〈2, 7〉 67 〈3, 7〉 28 〈4, 8〉 49 〈4, 11〉 1010 〈5, 9〉 711 〈6, 9〉 812 〈6, 10〉 213 〈7, 11〉 614 〈8, 14〉 515 〈9, 12〉 316 〈10, 12〉 817 〈11, 13〉 218 〈12, 15〉 619 〈13, 15〉 520 〈14, 15〉 3

a) Jaki jest minimalny czas potrzebny na wykonanie całego projektu?b) Które czynności mogą zostać spóźnione i o ile, aby zapewnić terminową

realizację projektu?c) O ile skróci się czas wykonania projektu, jeżeli czas trwania czynności 〈6, 9〉

zmaleje o 2 jednostki?

Page 15: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

6.4. Zadania 91

Zadanie 6.2.Pewien projekt składa się z 15 czynności, których czas trwania i zbiory po-przedników podano w tablicy 6.8. Należy narysować sieć czynności tego projek-tu oraz wyznaczyć ścieżkę krytyczną i podać najkrótszy możliwy czas realizacjitego projektu.

Tablica 6.8. Lista czynności projektu

Czynność Czynności poprzedzające Czas trwania czynności1 - 62 1 43 1 84 2 65 2 96. 2 97 3,4 118 3.4 99 6,7 610 6,7 711 6,7 912 5,8,9 413 6,7 414 11,13 415 10,12 4

Zadanie 6.3.Pewien projekt informatyczny wymaga wykonania 11 czynności, dla którychznane są normalne i graniczne czasy wykonania oraz odpowiadające im koszty.Dane te zestawiono w tablicy 6.9.

Tablica 6.9. Koszty skrócenia czynności w projekcie informatycznym

Lp. Czynność tnij tgij Knij Kg

ij

1 〈1, 2〉 15 10 500 6002 〈1, 3〉 6 6 400 4003 〈1, 4〉 7 5 200 4004 〈2, 5〉 15 13 250 3705 〈2, 6〉 10 8 740 8206. 〈3, 6〉 8 2 300 15007 〈4, 6〉 12 15 510 5258 〈4, 7〉 25 20 500 6259 〈5, 8〉 20 17 380 44610 〈6, 8〉 22 20 200 50011 〈7, 8〉 16 15 700 950

a) Narysować sieć czynności tego projektu.b) Jaki jest najkrótszy możliwy czas realizacji tego projektu? Jaki jest koszt

tego skrócenia?

Page 16: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

92 Rozdział 6. Programowanie sieciowe

c) O ile maksymalnie można skrócić projekt, nie zwiększając jego kosztówo więcej niż 300 zł?

d) Jakie czynności i o ile należy skrócić, aby czas trwania całego projektuskrócić o 3 dni przy możliwie najmniejszym koszcie? Ile wynosi koszt tegoskrócenia?

Zadanie 6.4.Pewien projekt informatyczny można wykonać przy zastosowaniu dwóch tech-nologii. Charakterystyki czynności występujących w obu projektach podanow tablicach 6.10. oraz 6.11. Który z wariantów daje większą szansę zakończeniaprojektu przed terminem, który upływa za 27 dni?

Tablica 6.10. Szacowane czasy trwania czynności w wariancie I

CzynnośćCzas trwania czynnościa m b

〈1, 2〉 9 10 10〈1, 3〉 7 7 7〈1, 4〉 1 3 8〈2, 5〉 1 5 6〈3, 6〉 9 9 13〈3, 7〉 8 8 8〈4, 7〉 1 3 7〈5, 8〉 9 10 14〈6, 8〉 7 8 11〈7, 8〉 9 12 12

Tablica 6.11. Szacowane czasy trwania czynności w wariancie II

CzynnośćCzas trwania czynnościa m b

〈1, 2〉 7 7 8〈1, 3〉 3 5 8〈1, 4〉 4 5 10〈2, 3〉 1 1 1〈2, 5〉 5 5 5〈3, 6〉 10 11 11〈3, 7〉 2 8 8〈4, 7〉 3 10 12〈5, 8〉 3 4 6〈6, 8〉 6 6 6〈7, 8〉 9 9 15

Zadanie 6.5.Oszacowano optymistyczny, pesymistyczny i najbardziej prawdopodobny czastrwania każdej czynności w procesie montażu silnika okrętowego i zestawiono

Page 17: Programowanie sieciowe - cs.put.poznan.pl · CPM, wyznacza najkrótszy możliwy czas realizacji projektu. W metodzie tej W metodzie tej zakłada się, że sieć jest w postaci kanonicznej,

6.4. Zadania 93

je w tablicy 6.12. Należy podać prawdopodobieństwo dotrzymania terminuwynikającego z umowy, który upływa za 50 dni.

Tablica 6.12. Szacowane czasy trwania czynności w procesie naprawy silnika okręto-wego

CzynnośćCzas trwania czynnościa m b

〈1, 2〉 3 7 11〈1, 3〉 3 6 21〈2, 4〉 7 8 15〈2, 5〉 4 6 8〈3, 4〉 6 8 10〈3, 6〉 7 12 17〈4, 5〉 4 7 10〈4, 6〉 1 2 3〈4, 8〉 3 7 11〈5, 8〉 5 7 27〈5, 9〉 5 8 11〈6, 7〉 4 8 12〈7, 8〉 6 8 10〈7, 10〉 2 5 14〈7, 11〉 4 8 12〈8, 10〉 3 10 17〈9, 10〉 4 5 6〈9, 12〉 7 9 17〈10, 13〉 3 6 9〈11, 13〉 4 7 10〈12, 13〉 7 10 13