Modele sieciowe Badania operacyjne Wykład 6 6-6-
6-6- Plan wykładu Zarządzanie złożonymi przedsięwzięciami Metoda ścieżki krytycznej Metoda PERT Projekty z ograniczonymi zasobami Modele z kontrolą czasu wykonania czynności
6-6- Projekt Projekt jest to jednorazowe niepowtarzalne przedsięwzięcie wieloczynnościowe o nietypowej strukturze i przebiegu, którego realizacja wymaga zwykle czasu oraz ograniczonych zasobów (Neumann i in. )
Obszary projektów 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żonego wyrobu na zamówienie,. 6-6-
Słynne projekty Pocisk Polaris (Marynarka wojenna USA) 8 CONCORDE 6- GIOTTO (statek kosmiczny do obserwacji komety Halley a) 8 Sala koncertowa europejskiej stolicy kulturalnej w Porto (Portugalia) 6-6-
Jak modelować projekty? (Battersby 6) 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 6-6- 6
Jak oceniać projekty? Dyskretny i skończony zbiór kryteriów, np.: całkowity czas realizacji, całkowity koszt realizacji, ryzyko, zaktualizowana wartość netto (NPV). 6-6-
6-6- 8 Sieć czynności czas trwania czynności p czynność zdarzenie 6
Sieć czynności czas trwania czynności p czynność zdarzenie 6 V zbiór zdarzeń n liczba zdarzeń w projekcie G = (V, E) graf zależności kolejnościowych p ij czas trwania czynności <i,j> i, j =,,..., n 6-6-
Sieć czynności czas trwania czynności p czynność zdarzenie 6 E zbiór czynności n liczba czynności w projekcie G = (V, E) graf zależności kolejnościowych p ij czas trwania czynności <i,j> i, j =,,..., n 6-6-
Sieć czynności Sieć czynności jest to sieć, której graf przedstawia strukturę kolejności realizacji poszczególnych czynności projektu, a funkcje określone na zbiorze łuków i wierzchołków tego grafu reprezentują informacje o charakterze techniczno-ekonomicznym związane z realizacją projektu. Czynność <i,j> to czynność, której zdarzeniem początkowym jest zdarzenie i, końcowym zdarzenie j. 6-6-
Następstwo zdarzeń w sieci Zdarzenie o numerze k wystąpi, gdy zostanie zakończona realizacja wszystkich czynności, dla których k jest zdarzeniem końcowym. Rozpoczęcie czynności <i,j> jest możliwe, gdy wystąpi zdarzenie i. i i j k i Czynności <i, j>, <i, j>, <i, j> poprzedzają czynność <j,k>. 6-6-
6-6- Następstwo zdarzeń w sieci czynność pozorna p = 6
Sieć czynności jako graf Sieć czynności jest grafem unigrafem (między dowolną parą wierzchołków występuje co najwyżej jeden łuk), spójnym, skierowanym, nie zawierającym pętli ani dróg cyklicznych, ma jedno zdarzenie początkowe i jedno zdarzenie końcowe. 6 6-6-
Sieć czynności jako graf Kolejność czynności w sieci wynika z ograniczeń modelowanego projektu. Mogą to być ograniczenia: technologiczne, o charakterze czasowym, wynikające z niepodzielności i niesubstytucyjności zasobów, o charakterze bilansowym. 6-6-
Przykład wprowadzenie na rynek nowego wyrobu <,> badanie popytu na wyroby <,> nabycie surowców na prototypy <,> wyprodukowanie prototypów i ocena ich jakości <,> wybór opakowań <,6> nabycie surowców do produkcji <,> nabycie opakowań <6,> analiza kosztów produkcji <6,> reklama i zbieranie zamówień <,8> analiza ekonomicznych parametrów decyzji <8,> proces produkcji wyrobu <,> pakowanie wyrobu gotowego <,> wysyłka do handlu 6-6- 6
Przykład <,> badanie popytu na wyroby <,> nabycie surowców na prototypy <,> wyprodukowanie prototypów i ocena ich jakości <,> wybór opakowań <,6> nabycie surowców do produkcji <,> nabycie opakowań <6,> analiza kosztów produkcji <6,> reklama i zbieranie zamówień <,8> analiza ekonomicznych parametrów decyzji <8,> proces produkcji wyrobu <,> pakowanie wyrobu gotowego <,> wysyłka do handlu 8 6 6-6-
6-6- 8 Analiza czasu realizacji projektu Metoda ścieżki krytycznej Critical Path Method (CPM) Metoda PERT Project Evaluation and Review Technique
Algorytm porządkowania warstwowego. Zbuduj binarną macierz przejść dla sieci czynności.. k:=;. Do warstwy w k zalicz zdarzenia odpowiadające zerowym kolumnom aktualnej macierzy przejść; k:=k+;. Wykreśl z macierzy przejść zerowe kolumny oraz wiersze o tych samych numerach.. Jeżeli są jeszcze niewykreślone kolumny, to wróć do kroku w przeciwnym razie stop. 6-6-
Algorytm porządkowania warstwowego. Zbuduj binarną macierz przejść dla sieci czynności.. k:=;. Do warstwy w k zalicz zdarzenia odpowiadające zerowym kolumnom aktualnej macierzy przejść; k:=k+;. Wykreśl z macierzy przejść zerowe kolumny oraz wiersze o tych samych numerach.. Jeżeli są jeszcze niewykreślone kolumny, to wróć do kroku w przeciwnym razie stop. 6-6-
6-6- Przykład 6 6 6
6-6- Przykład 6 6 6
6-6- Przykład 6 6 6
6-6- Przykład 6 6 6
6-6- Przykład 6 6 6
6-6- 6 Przykład 6 6 6
6-6- Przykład 6 6 6
6-6- 8 Przykład 6 6 6
6-6- Przykład 6 6 6
6-6- Przykład 6 6 6
6-6- Przykład 6 Binarna macierz przejść 6 6
Algorytm porządkowania warstwowego. Zbuduj binarną macierz przejść dla sieci czynności.. k:=;. Do warstwy w k zalicz zdarzenia odpowiadające zerowym kolumnom aktualnej macierzy przejść; k:=k+;. Wykreśl z macierzy przejść zerowe kolumny oraz wiersze o tych samych numerach.. Jeżeli są jeszcze niewykreślone kolumny, to wróć do kroku w przeciwnym razie stop. 6-6-
6-6- Przykład 6 Binarna macierz przejść 6 k = w = {6} k = 6
Algorytm porządkowania warstwowego. Zbuduj binarną macierz przejść dla sieci czynności.. k:=;. Do warstwy w k zalicz zdarzenia odpowiadające zerowym kolumnom aktualnej macierzy przejść; k:=k+;. Wykreśl z macierzy przejść zerowe kolumny oraz wiersze o tych samych numerach.. Jeżeli są jeszcze niewykreślone kolumny, to wróć do kroku w przeciwnym razie stop. 6-6-
6-6- Przykład 6 Binarna macierz przejść 6 w = {6} k = 6
Algorytm porządkowania warstwowego. Zbuduj binarną macierz przejść dla sieci czynności.. k:=;. Do warstwy w k zalicz zdarzenia odpowiadające zerowym kolumnom aktualnej macierzy przejść; k:=k+;. Wykreśl z macierzy przejść zerowe kolumny oraz wiersze o tych samych numerach.. Jeżeli są jeszcze niewykreślone kolumny, to wróć do kroku w przeciwnym razie stop. 6-6- 6
Algorytm porządkowania warstwowego. Zbuduj binarną macierz przejść dla sieci czynności.. k:=;. Do warstwy w k zalicz zdarzenia odpowiadające zerowym kolumnom aktualnej macierzy przejść; k:=k+;. Wykreśl z macierzy przejść zerowe kolumny oraz wiersze o tych samych numerach.. Jeżeli są jeszcze niewykreślone kolumny, to wróć do kroku w przeciwnym razie stop. 6-6-
6-6- 8 Przykład 6 k = k = w = {6} w = {} Binarna macierz przejść 6 6
Algorytm porządkowania warstwowego. Zbuduj binarną macierz przejść dla sieci czynności.. k:=;. Do warstwy w k zalicz zdarzenia odpowiadające zerowym kolumnom aktualnej macierzy przejść; k:=k+;. Wykreśl z macierzy przejść zerowe kolumny oraz wiersze o tych samych numerach.. Jeżeli są jeszcze niewykreślone kolumny, to wróć do kroku w przeciwnym razie stop. 6-6-
6-6- Przykład 6 Binarna macierz przejść 6 w = {6} w = {} k = 6
6-6- Przykład 6 Binarna macierz przejść 6 w = {6} w = {} k = w = {, } k = 6
6-6- Przykład 6 Binarna macierz przejść 6 w = {6} w = {} w = {, } k = 6
6-6- Przykład 6 Binarna macierz przejść 6 w = {6} w = {} w = {, } k = w = {} k = w = {} 6
6-6- Przykład 6 Binarna macierz przejść 6 w = {6} w = {} w = {, } w = {} k = w = {} 6
Algorytm porządkowania warstwowego. Zbuduj binarną macierz przejść dla sieci czynności.. k:=;. Do warstwy w k zalicz zdarzenia odpowiadające zerowym kolumnom aktualnej macierzy przejść; k:=k+;. Wykreśl z macierzy przejść zerowe kolumny oraz wiersze o tych samych numerach.. Jeżeli są jeszcze niewykreślone kolumny, to wróć do kroku w przeciwnym razie stop. 6-6-
Przykład 6 6 w = {6} w = {} w = {, } w = {} w = {} 6-6- 6
6-6- Przykład 6 w = {6} w = {} w = {, } w = {} w = {}
kryteria optymalności prof. Joanna Józefowska Analiza projektu czas realizacji przedsięwzięcia, stopień równomierności wykorzystania zasobów w czasie zamrożenie środków obrotowych, wielkość przestojów maszyn i urządzeń całkowity koszt realizacji przedsięwzięcia, ryzyko przekroczenia terminu realizacji lub budżetu, odporność harmonogramu na zakłócenia. 6-6- 8
Metoda ścieżki krytycznej (CPM) CPM Critical Path Method pierwsza metoda analizy sieciowej (ok. 6) sieć jest w postaci kanonicznej (deterministyczna struktura sieci i czasy trwania czynności) znajduje najkrótszy możliwy czas realizacji projektu 6-6-
CPM oznaczenia przedział na osi czasu t ij czas trwania czynności <i, j> T i w najwcześniejszy możliwy termin wystąpienia zdarzenia i T j p najpóźniejszy dopuszczalny termin wystąpienia zdarzenia i punkt na osi czasu i j T i w t ij T j p 6-6-
CPM - założenia jedno zdarzenie początkowe jedno zdarzenie końcowe zdarzenia ponumerowane zgodnie z ich następstwem w czasie (algorytm porządkowania warstwowego) T w = T n p = T n w 6-6-
CPM - założenia jedno zdarzenie początkowe jedno zdarzenie końcowe zdarzenia ponumerowane zgodnie z ich następstwem w czasie (algorytm porządkowania warstwowego) T w = T n p = T n w 6-6-
. 6-6- CPM obliczanie T j w Zbiór poprzedników zdarzenia j G j - i i j <i,j> <i,j> <i,j> i k T i w T i w T i w T i w <i,j> T w max T j ig j w t, j,, n i ij
CPM - założenia jedno zdarzenie początkowe jedno zdarzenie końcowe zdarzenia ponumerowane zgodnie z ich następstwem w czasie (algorytm porządkowania warstwowego) T w = T n p = T n w 6-6-
. 6-6- CPM obliczanie T i p Zbiór następników zdarzenia i G i j i j <i,j > <i,j > <i,j > j k <i,j > T j p T j p T j p T j p T p i min T jgi p t, i,,,n - j ij Luzem zdarzenia nazywamy liczbę L i = T i p T iw.
6-6- 6 CPM przykład najwcześniejszy możliwy termin wystąpienia zdarzenia (T iw ) czas trwania czynności t ij numer zdarzenia (i) 6 najpóźniejszy dopuszczalny termin wystąpienia zdarzenia (T ip ) luz zdarzenia (T i p T iw )
6-6- CPM przykład 6
6-6- 8 CPM przykład 6
6-6- CPM przykład 6
6-6- 6 CPM przykład 6
6-6- 6 CPM przykład 6
6-6- 6 CPM przykład Max{+, +} 6
6-6- 6 CPM przykład 6
6-6- 6 CPM przykład max{+, +, +} 6 6
6-6- 6 CPM przykład 6 6 6
6-6- 66 CPM przykład 6 6 6
6-6- 6 CPM przykład 6 6 6
6-6- 68 CPM przykład 6 6 6
6-6- 6 CPM przykład min{, } 6 6 6
6-6- CPM przykład 6 6 6
6-6- CPM przykład min{,, } 6 6 6
6-6- CPM przykład 6 6 6
6-6- CPM przykład 6 6 6
6-6- CPM przykład 6 6 6
6-6- CPM przykład 6 6 6 Jeżeli luz zdarzenia jest równy zero, to zdarzenie nazywamy zdarzeniem krytycznym.
6-6- 6 Ścieżka krytyczna - definicja Ścieżką krytyczną nazywamy taką drogę <i, i > <i, i > <i p, i p > łączącą zdarzenie początkowe i = ze zdarzeniem końcowym i p = n, dla której czas p k t i i k k jest najdłuższy.
6-6- Ścieżka krytyczna - przykład 6 6 6 Najdłuższa ścieżka w grafie, a jednocześnie najkrótszy czas realizacji całego projektu <,> <,> <,6> <,> <6,> <,> <,> <,> 6 t
Ścieżka krytyczna - własności W danej sieci może istnieć jedna lub więcej ścieżek krytycznych. Czynności leżące na ścieżce krytycznej nazywamy czynnościami krytycznymi. Suma czasów wykonania czynności krytycznych ogranicza od dołu czas realizacji projektu. Czas ten można wyznaczyć jako = T n p = T nw. 6-6- 8
6-6- Ścieżka krytyczna - wyznaczanie i i i
6-6- 8 Ścieżka krytyczna - wyznaczanie i i i Nie zawsze zdarzenia krytyczne wyznaczają jednoznacznie ścieżkę krytyczną!
Zapas czasu (luz) czynności Zapasem całkowitym czasu czynności <i,j> nazywamy wielkość Z ij c = T j p T i w t ij. t ij <i,j> Z ij c T i w T i p T j w T j p 6-6- 8
Ścieżka krytyczna - wyznaczanie Twierdzenie Warunkiem koniecznym i dostatecznym na to, aby czynność <i,j> była czynnością krytyczną jest równość Z ij c =. 6-6- 8
Zapas czasu (luz) czynności Zapasem swobodnym czasu czynności <i,j> nazywamy wielkość Z ij s = T j w T i w t ij. t ij <i,j> Z ij s T i w T i p T j w T j p 6-6- 8
Zapas czasu (luz) czynności Zapasem niezależnym czasu czynności <i,j> nazywamy wielkość Z ij n = T j w T i p t ij. t ij <i,j> Z ij n T i w T i p T j w T j p 6-6- 8
Zapasy czasu czynności Twierdzenie Między zapasami całkowitym, swobodnym i niezależnym zachodzą następujące relacje: Z ij n Z ijs Z ijc. Wniosek Dla czynności krytycznych wszystkie rodzaje zapasu są równe zero. 6-6- 8
6-6- 86 Ścieżka krytyczna - przykład 8 6
6-6- 8 Ścieżka krytyczna - przykład 8 8 8 6
6-6- 88 Ścieżka krytyczna - przykład 8 8, 8,,,,, 6,,,
6-6- 8 Ścieżka krytyczna - przykład 8 8, 8,,,,, 6,,,
Metoda PERT Rozkład beta f(t) = H(t a) p (b t) q Wartość średnia i wariancja czasu trwania czynności t e amb 6 ba 6 a - wartość optymistyczna czasu trwania czynności b - wartość pesymistyczna czasu trwania czynności m - najbardziej prawdopodobna wartość czasu trwania czynności 6-6-
6-6- prof. Joanna Józefowska 6-6- Metoda PERT Luz zdarzenia ma rozkład normalny o parametrach: w i T σ p i T σ w i T p i T N, m k e k w i t T l k e k p i t T m k k t w i T σ σ l k k t p i T σ σ
6-6- prof. Joanna Józefowska 6-6- Metoda PERT Prawdopodobieństwo ujemnego luzu zdarzenia i Φ - dystrybuanta rozkładu normalnego o parametrach N(,) T T w i p i w i p i i w i p i σ σ T T Φ T T P P L
6-6- Przykład e Czynność a m b t ij,,6,,,,,,,8,,8,, 8,,8, 8,,, 8 8,,,6,,6,6,8,6 σ ij
6-6- Przykład c.d. i T i w T i p,,,6,,,8,,, 8,8,, 6,6 6,
6-6- Przykład c.d. i T i w σ w Ti T i p σ p Ti,,,,8,6,,,,,,8,,,8,,,, 8,8,6,,,,6 6,6,8 6,,
6-6- 6 Przykład c.d. i,,,,8,,6,,,,,,,8, 6,8,,8,,,,, 8,8,6,,,,,6,6 6,6,8 6,,,
6-6- prof. Joanna Józefowska 6-6- Przykład c.d. i T i w σ Ti w T i p σ Ti p T i p Ti w u i,,,,8,,,6,,,,,,,,8, 6,8,,,8,,,,,, 8,8,6,,,,,,6,6, 6,6,8 6,,,, T T w i p i w i p i σ σ T T i u
6-6- prof. Joanna Józefowska 8 6-6- 8 Przykład c.d. i T i w σ Ti w T i p σ Ti p T i p Ti w u i (-u i ),,,,8,,,6,6,,,,,,6,,,8, 6,8,,,,8,,,,,6,, 8,8,6,,,6,,,,6,6,,8 6,6,8 6,,,,,6 T T w i p i w i p i σ σ T T i u
6-6- Zasoby Zasoby odnawialne Zasoby nieodnawialne Zasoby podwójnie ograniczone
Problem rozdziału zasobów R liczba zasobów odnawialnych N liczba zasobów nieodnawialnych R k liczba jednostek k-tego zasobu odnawialnego, k =,,..., R N l liczba jednostek l-tego zasobu nieodnawialnego, l =,,..., N r jk liczba jednostek zasobu k żądanych przez czynność j n jl - liczba jednostek zasobu l zużywanych przez czynność j 6-6-
6-6- Problemy rozdziału zasobów Zadanie <,> <,> <.> <,> <,> <,> <,> <,8> <,8> dostępne Zasób CPM 6 - - -8 - - - - - -8 6 8 6 8 8 8
Problemy rozdziału zasobów Zadanie <,> <,> <.> <,> <,> <,> <,> <,8> <,8> dostępne Zasób 8 6 8 Uszeregowanie dopuszczalne - - - -8 - - - -8-6 8 6 8 6-6-
6-6- Problemy rozdziału zasobów Zadanie <,> <,> <.> <,> <,> <,> <,> <,8> <,8> dostępne Zasób 8 6 8 Zasób - - - -8 - -
Problemy rozdziału zasobów Zadanie <,> <,> <.> <,> <,> <,> <,> <,8> <,8> dostępne Zasób Zasób 6 - - - - -8-8 - - - 8 6-6- 8
6-6- Problemy rozdziału zasobów Zadanie <,> <,> <.> <,> <,> <,> <,> <,8> <,8> dostępne Zasób 8 6 8 Zasób - - - -8-8 -
Problem rozdziału zasobów z wieloma sposobami wykonywania czynności M j liczba sposobów wykonania czynności j d jm czas trwania czynności j wykonywanej sposobem m, r jmk liczba jednostek zasobu odnawialnego k wymaganych do wykonania czynności j sposobem m, n jml - liczba jednostek zasobu nieodnawialnego l wymaganych do wykonania czynności j sposobem m, dla więcej niż jednego zasobu znalezienie rozwiązania dopuszczalnego jest silnie NP-trudne (Kolish ) 6-6- 6
Problem rozdziału zasobów z wieloma sposobami wykonywania czynności Zadanie Ilość zasobu <,> <,> <.> <,> <,> <,> <,> <,8> <,8> 6 6 8 - - - -8 - - -8 - - 6 8 6 8 6-6-
Problem rozdziału zasobów z wieloma sposobami wykonywania czynności podejścia dokładne: schematy pełnego przeglądu do czynności Talbot 8 Patterson 8 algorytm podziału i ograniczeń do czynności Speranza and Vercellis Demeulemeester and Herroelen Sprecher and Drexl 8 6-6- 8
Problem rozdziału zasobów z wieloma sposobami wykonywania czynności - heurystyki algorytm podziału i ograniczeń Talbot 8 Sprecher and Drexl 8 losowe próbkowanie Drexl and Grünewald symulowane wyżarzanie Słowiński et. al. Bouleimen and Lecocq 8 Józefowska et. al. algorytmy genetyczne Özdamar Hartmann dekompozycja Bendersa Maniezzo and Mingozzi 6-6-
6-6- Zmienny czas wykonania czynności k s t gr n k t n gr t n, k n czas, koszt normalny t gr, k gr czas, koszt graniczny s gradient kosztu
Algorytm kompresji. Zestawić czynności krytyczne, podać ich gradienty kosztów s oraz czasy graniczne t gr.. Wyeliminować z zestawienia te czynności, dla których t gr = t n.. Proces skracania rozpocząć od czynności krytycznej o najniższym gradiencie kosztów s.. Należy starać się skrócić czas trwania czynności o jak największą liczbę jednostek. Występują tu dwa ograniczenia: czas graniczny danej czynności t gr, pojawienie się nowej ścieżki krytycznej. 6-6-
Algorytm kompresji. Przy istnieniu dwóch lub więcej ścieżek krytycznych w sieci należy skracać czas o tę samą wielkość na wszystkich równoległych ścieżkach krytycznych. 6. Najkrótszy termin wykonania programu uzyskuje się, gdy wszystkie czynności na ścieżce krytycznej osiągną czasy graniczne.. Koszty przyspieszenia czynności oblicza się mnożąc liczbę jednostek czasu, o które czynność została skrócona przez jej gradient kosztów. 6-6-
6-6- Zaktualizowana wartość netto NPV CF CF r t t CF - przepływ (wypływ) gotówki występujący na początku realizacji przedsięwzięcia CF - przepływ gotówki występujący na końcu okresu t r - stopa dyskontowa