Metody CPM

Podstawową metodą wykorzystywaną przez te programy jest metoda CPM (Critica

  • Path Method) nazywana metodą drogi krytycznej.

    Przypomnijmy, że metoda ta pozwala na wyznaczenie najwcześniejszego możliwego terminu zakończenia przedsięwzięcia, gdy znane są czasy trwania oraz relacje kolejności wykonania poszczególnych zadań wchodzących w skład tego przedsięwzięcia. Relacje kolejności najczęściej są odwzorowywane przy pomocy sieci powiązań lub poprzez określenie poprzedników (następników) dla każdego zadania.

    Mówimy, że zadanie i jest poprzednikiem zadania j jeżeli zadanie i bezpośrednio poprzedza zadanie j, czyli aby rozpocząć zadanie j musi być zakończone zadanie i. Relację tę zapisujemy w postaci i < j. Każde zadanie może mieć więcej niż jednego poprzednika co można zapisać w postaci zbioru P i = {k : k < i}. Podanie zbioru poprzedników dla każdego zadania jednoznacznie określa powiązania kolejności zadań. Równoważne w sensie określenia kolejności zadań jest podanie zbioru następników dla każdego zadania, czyli N i = {k : i < k}.

    Zadania które nie mają poprzedników nazywamy zadaniami początkowymi. Niech Ć oznacza zbiór pusty. Wtedy zbiór zadań początkowych możemy krótko określić: P Ć = {i : P i = A}.

    Założenia
    Zadania które nie mają następników nazywamy końcowymi, tworzą one zbiór: N Ć = {i : N i = A}. Algorytm obliczeń w metodzie CPM oparty jest na czterech formułach, które można opisać następująco:

    1. Najwcześniejszy termin zakończenia i-tego zadania TiWZ jest sumą najwcześniejszego rozpoczęcia tego zadania i czasu jego trwania ti .
    2. Najwcześniejszy termin rozpoczęcia i-tego zadania TiWR jest maksymalnym terminem najwcześniejszego zakończenia zadań które bezpośrednio to zadanie poprzedzają.
    3. Najpóźniejszy termin rozpoczęcia i-tego zadania TiPR jest różnicą pomiędzy najpóźniejszym terminem zakończenia tego zadania a czasem jego trwania t i .
    4. Najpóźniejszy termin zakończenia i-tego zadania TiPZ jest minimalnym terminem najpóźniejszego rozpoczęcia zadań które bezpośrednio po nim następują.

    Postępowanie przy obliczaniu sieci metodą CPM
    Kolejność obliczeń nie jest obojętna, gdyż do wyznaczenia TiWR dla i-tego zadania potrzebna jest znajomość terminów najwcześniejszych dla poprzedników i-tego zadania. W tym celu trzeba zadania tak uporządkować (nadać tzw. numer topologiczny), aby zadanie znalazło się na liście wcześniej zanim nastąpi odwołanie do niego czyli zanim pojawi się w innym zadaniu jako poprzednik. Takie uporządkowanie nazywa się porządkiem topologicznym, jest ono możliwe pod warunkiem, że w sieci nie ma cyklu.

    W metodzie CPM nie dopuszcza się możliwości występowania cyklu. Oznaczmy termin rozpoczęcia przedsięwzięcia przez T R . Poszczególne kroki algorytmu obliczeniowego można wypowiedzieć następująco:

  • Krok 1. Dla zadań początkowych przyjąć najwcześniejszy termin rozpoczęcia jako T R , czyli T iWR = T R , “i Î P Ć
  • Krok 2. Obliczyć dla pozostałych zadań najwcześniejsze terminy rozpoczęcia i zakończenia zadań stosując odpowiednio formuły T iWZ = T iWR + T i oraz T iWR = max {T kWZ : k Î P i }
    Obliczenia wykonać według porządku topologicznego.
  • Krok 3. Ustalić czas zakończenia przedsięwzięcia T Z jako T Z = max {T iWZ : i Î N Ć } czyli T Z to maksymalny termin najwcześniejszego zakończenia zadań końcowych.
  • Krok 4. Dla zadań końcowych przyjąć, że czas najpóźniejszego zakończenia zadań końcowych jest równy czasowi zakończenia przedsięwzięcia, czyli T iPZ = T Z , “i Î N ĆQQQ
  • Krok 5. Obliczyć dla pozostałych zadań najpóźniejsze terminy rozpoczęcia i zakończenia zadań stosując odpowiednio formuły
    T iPR = T iPZ – t i
    oraz
    T iPZ = min {T kWZ : k Î N i }

    Podobnie jak w kroku 2 kolejność obliczeń nie jest obojętna, gdyż do wyznaczenia T iPZ dla i-tego zadania potrzebna jest znajomość terminów najpóźniejszych dla następników i-tego zadania. Dlatego należy je wykonać w odwrotnym porządku od porządku topologicznego.

  • Krok 6. Obliczyć całkowite i swobodne zapasy czasów dla poszczególnych zadań oznaczone odpowiednio przez Z iC oraz Z iS wg formuł
    Z iC = T iPZ – T iWZ
    Z iS = min {T kWP : k Î N i } – T iWZ

    W tym kroku kolejność obliczeń zapasów nie jest ważna.

    Rola “zapasu całkowitego”
    Zapasy czasów dla zadań są istotne z wielu względów praktycznych, a mianowicie zapas całkowity dla zadania określa o ile można maksymalnie opóźnić termin zakończenia tego zadania, aby nie spowodować naruszenia terminu końcowego przedsięwzięcia. Tak więc, jeżeli zapas czasu całkowitego dla zadania wynosi t 0 to opóźnienie zakończenia tego zadania o czas t < t 0 nie spowoduje zmiany terminu końcowego, jeżeli natomiast zadanie ma zerowy zapas czasu całkowitego, to opóźnienie zakończenia tego zadania o czas t spowoduje opóźnienie realizacji całego przedsięwzięcia również o czas t. Dlatego zadania z zerowym zapasem czasu całkowitego nazywamy zadaniami krytycznymi, a uporządkowany zbiór tych zadań kolejno po sobie następujących nazywamy drogą krytyczną.

    Droga krytyczna
    Droga krytyczna przeważnie zaczyna się od zadania początkowego, a kończy się na zadaniu końcowym. Wtedy to łączny czas trwania zadań na drodze krytycznej jest czasem trwania przedsięwzięcia. Ten przypadek ma zawsze miejsce w klasycznej metodzie CPM, w której nie ma dodatkowych ograniczeń na zadania poza ograniczeniami wynikającymi z relacji kolejności.

    Inną własnością zbioru zadań krytycznych jest to, że mogą one tworzyć nie tylko jedną, a wiele dróg krytycznych lecz oczywiście o identycznym czasie trwania. W krańcowym przypadku może się zdarzyć, że wszystkie zadania będą krytyczne.

    Taki przypadek będzie miał miejsce wtedy, gdy będzie realizowany harmonogram wg najpóźniejszych terminów. Jeśli w sieci jest wiele dróg krytycznych, to nie zawsze skrócenie czasu zadania leżącego na drodze krytycznej spowoduje skrócenie czasu trwania przedsięwzięcia.

    Taki efekt zaobserwujemy, gdy skracane zadanie krytyczne leży na jednym z rozgałęzień drogi krytycznej. Wówczas skrócone zadanie przestanie być już krytycznym (jak również inne leżące na tym rozgałęzieniu), ale termin końcowy determinują pozostałe drogi krytyczne. Skrócenie czasu przedsięwzięcia przy wielu drogach może się odbyć poprzez skrócenie wszystkich zadań krytycznych leżących na dowolnym przekroju dzielącym zadania początkowe od zadań końcowych.

    Rola “zapasu swobodnego”
    W metodzie CPM oprócz zapasu całkowitego dla zadania wyznacza się również zapas swobodny. Możliwe jest również definiowanie innych zapasów, lecz nie znalazły one uznania praktycznego. Zapas swobodny wskazuje, o ile maksymalnie można opóźnić termin zakończenia tego zadania bez naruszenia najwcześniejszych terminów dla następników tego zadania.

    Dopuszczalne jest zatem całkowite wykorzystanie tego zapasu, gdyż nie wpłynie ono na terminy realizacji dalszych zadań. Zapas swobodny powstaje tylko wówczas, gdy wszystkie następniki danego zadania mają oprócz danego zadania jeszcze inne poprzedniki. Ponadto zrozumiałym jest, że zapas swobodny nigdy nie przekracza zapasu całkowitego, czyli zachodzi relacja.