PS WYK 5 analiza sie..
Transkrypt
PS WYK 5 analiza sie..
E. Michlowicz:Programowanie sieciowe – Analiza sieciowa projektów WYKŁAD 5 ANALIZA SIECIOWA PROJEKTÓW REALIZACJI Podstawowe problemy rozwiązywane z wykorzystaniem programowania sieciowego: zagadnienia transportowe (rozdział zadań przewozowych, komiwojażer – najkrótsza droga), przepływy w sieciach (maksimum przepływu, najkrótsza droga, minimalny koszt przepływu), analiza sieciowa (ścieżka krytyczna, czas realizacji projektu, analiza czasowo – kosztowa), drzewa decyzyjne (maksymalizacja oczekiwanej korzyści, minimalizacja oczekiwanego kosztu). Przykładowy typy zadań do realizacji (projekty): P1 – zadanie transportowe Firma produkcyjna posiada 3 magazyny wyrobów gotowych. Wyroby dostarczana są do sieci 15 sklepów. Zasoby magazynów i zamówienia klientów są zadane. Wyznacz taki plan przewozów, aby koszt transportu był minimalny. P2 – problem komiwojażera Samochód pocztowy ma rozwieźć przesyłki do urzędów pocztowych w kilkunastu miejscowościach. Odległości pomiędzy miejscowościami są znane. Zaplanuj trasę przejazdu tak, aby operator objechał wszystkie miejscowości najkrótszą (najtańszą) trasą i wrócił do punktu wyjazdu. P3 – przepływ w sieci Natężenie pojazdów na pewnym odcinku autostrady wynosi 2000 pojazdów/godz. Ze względu na remont – odcinek ten zostanie czasowo wyłączony z ruchu. Istnieje kilka możliwości dróg alternatywnych (różne ograniczenia prędkości, różne standardy nawierzchni). Przepustowości tych dróg są zadane. Wyznacz maksymalny przepływ w rozpatrywanej sieci i ustal, czy jest on wystarczający dla spodziewanego natężenia ruchu. P4 – analiza sieciowa Należy opracować plan zamontowania silnika do samochodu. Czynności składające się na to przedsięwzięcie, kolejność ich wykonywania oraz czasy trwania (w minutach) ustalone przed konstrukcją projektu są 1 E. Michlowicz:Programowanie sieciowe – Analiza sieciowa projektów podane w tabeli. Przeprowadź analizę sieciową projektu, przyjmując jako kryterium optymalności minimalizację czasu realizacji projektu. Podstawowe pojęcia i oznaczenia: Łuki, krawędzie sieci – najkrótsze, niepodzielne ścieżki. Węzły, wierzchołki – punkty, w których łączą się łuki. Łuki są zorientowane, tzn. dla każdego z nich można wyznaczyć węzeł początkowy i węzeł końcowy. Źródło - węzeł, który nie jest końcem żadnego łuku. Ujście – węzeł, który nie jest początkiem żadnego łuku. Łukom i węzłom można przypisać etykiety; bardzo często etykiety sa liczbami, nazywane są wówczas wagami. Zdarzenie (wydarzenie) – pewne punkty realizowanego projektu (zadania, przedsięwzięcia), którym przyporządkowuje się określone momenty czasu; np. zatwierdzenie projektu, rozpoczęcie budowy. Czynność (działanie) – wykonanie pewnego zadania, na które potrzebny jest pewien okres czasu, ale także określone środki materialne; np. opracowanie projektu, wykonanie wykopu fundamentu. Każda czynność rozpoczyna się pewnym zdarzeniem (zdarzenie początkowe), a kończy innym zdarzeniem (zdarzenie końcowe). stąd: sieć zdarzeń i czynności lub sieć wydarzeń i działań. Siecią nazywamy graficzne przedstawienie planu realizacji projektu (przedsięwzięcia), uwzględniające wzajemne logiczne zależności między czynnościami. Używane oznaczenia: i – numer zdarzenia rozpoczynającego czynność, j – numer zdarzenia kończącego czynność, A, aij , <i, j> - symbol czynności rozpoczynającej się zdarzeniem i, a kończącej się zdarzeniem j, tij (NT) - czas trwania czynności <i, j>, ES - Earliest Start – najwcześniejszy moment rozpoczęcia czynności, LS - Latest Start – najpóźniejszy moment rozpoczęcia czynności, EF - Earliest Finish – najwcześniejszy moment zakończenia czynności, LF - Latest Finish - najpóźniejszy moment zakończenia czynności. 2 E. Michlowicz:Programowanie sieciowe – Analiza sieciowa projektów Najczęściej stosowane opisy przedstawiono na rysunkach 1 i 2. zdarzenie 1 – nr zdarzenia wierzchołek grafu czynność A A 1 6 czas trwania czynności (6) łuk grafu Rys. 1. Graf zdarzenia i czynności nr zdarzenia (1) najwcześniejszy możliwy moment rozpoczęcia zdarzenia 1 5 8 najwcześniejszy możliwy moment zakończenia zdarzenia Rys. 2. Oznaczenie zdarzeń 3 E. Michlowicz:Programowanie sieciowe – Analiza sieciowa projektów ANALIZA SIECIOWA Sieć jest utworzona przez uporządkowany zbiór węzłów (wierzchołków) i łuków. Najczęściej spotykanymi technikami sieciowymi są: AOA – activities-on-arcs – gdy czynności reprezentowane są za pomocą łuków, a zdarzenia za pomocą węzłów (wierzchołków); jest to sieć czynności (graf czynności). AON – activities-on-nodes – gdy węzły (wierzchołki) reprezentują czynności, a łuki przedstawiają relacje poprzedzenia; jest to sieć zdarzeń (stanów) lub graf zdarzeń. Graf jest siecią czynności (AOA), jeżeli jest to graf: skierowany - o określonej orientacji połączeń, antysymetryczny – złożony z dróg umożliwiających przejście tylko w jednym kierunku: od węzła początkowego do końcowego, spójnym – łączącym wszystkie węzły i łuki, acyklicznym – pozbawionym obwodu zamkniętego wewnątrz sieci. Budowa sieci AOA: 1. Kolejne zdarzenia można oznaczać liczbami 1, 2, … i, j…n. 2. Pełne nazwy czynności można zastąpić kolejnymi literami alfabetu (np. dużymi A, B, C…) lub symbolem <i, j>, gdzie i jest numerem rozpoczynającym dana czynność, a j numerem zdarzenia kończącego czynność. 3. Sieć zawiera dokładnie jedno zdarzenie początkowe i jedno zdarzenie końcowe. Zdarzenie początkowe nie jest poprzedzone żadna czynnością, a w zdarzeniu końcowym nie rozpoczyna się żadna czynność. Oznacza to, że wszystkie zdarzenia w sieci powinny być początkiem lub końcem co najmniej jednej czynności (z wyjątkiem zdarzenia początkowego i końcowego). 4. Do zdarzenia rozpoczynającego daną czynność powinny dochodzić jedynie te czynności, które bezpośrednio ją poprzedzają. 5. Dwie lub więcej czynności mogą rozpocząć się od tego samego zdarzenia tylko wówczas, gdy maja ten sam zbiór czynności poprzedzających. 6. Dwa dowolnie wybrane węzły może łączyć bezpośrednio co najwyżej jeden łuk. 4 E. Michlowicz:Programowanie sieciowe – Analiza sieciowa projektów 7. Każdy wierzchołek otrzymuje odrębny numer, będący liczbą całkowitą (1,2,…n) taką, że zdarzenie początkowe przyjmuje numer 1, końcowe numer n oraz jeśli <i, j> oznacza czynność, to i < j, czyli zdarzenie i będące początkiem czynności, powinno mieć numer mniejszy niż zdarzenie j, które kończy te czynność. 8. Należy unikać sytuacji, w której łuki przecinają się ze sobą. A 2 D 1 4 C B E 3 Rys. 1. Poprawny wykres sieciowy AOA C A 1 2 3 B D 4 Rys. 2. Błędny wykres sieciowy AOA Błędy: - sieć zawiera dwa zdarzenia końcowe (2 i 4), - istnieją dwie czynności <A, B>, które maja wspólny początek i koniec, - czynność C nie spełnia warunku i<j (3<2). 5 E. Michlowicz:Programowanie sieciowe – Analiza sieciowa projektów Aby usunąć błędy należy wprowadzić w sieci czynności pozorne – fikcyjne (przerywane strzałki - łuki). Czynność fikcyjna nie realizuje jakiegoś konkretnego działania, ale umożliwia uwzględnianie w grafie wymaganych relacji poprzedzania oraz przestrzeganie pozostałych zasad. Na rysunku 3 przedstawiono poprawioną wersję grafu z rysunku 2. Wprowadzono dodatkowe zdarzenie (2) będące końcem czynności A. Zakończenie czynności B występuje w zdarzeniu 3, zlikwidowano zatem bezpośrednie połączenia dwóch czynności A i B. Czynności C i D występują dopiero po zakończeniu czynności A i B. Taką relację następstwa może zagwarantować wprowadzona czynność pozorna p1 . Wprowadzenie drugiej czynności pozornej p2 umożliwiło zachowanie w sieci tylko jednego zdarzenia końcowego (czyli takiego, do którego strzałki – łuki jedynie dochodzą). 2 A P1 1 4 C P2 5 3 B D Rys. 3. Poprawiony wykres sieciowy AOA (z rys. 2) Algorytm generowania sieci typu AOA: Krok 1. Ustalić zbiory czynności poprzedzających, ich niepuste części wspólne oraz zbiór tych czynności, które nie wystąpiły w żadnym zbiorze, a następnie przypisać każdemu zbiorowi wierzchołek sieci. Krok 2. Narysować łuki odpowiadające czynnościom tak, aby rozpoczynały się od zbioru poprzedników, a kończyły w najmniejszym zbiorze zawierającym nazwę danej czynności. Czynności bez poprzedników zaczynają się od zbioru pustego. Krok 3. Jeżeli dany niepusty zbiór zawiera się w innym zbiorze, należy wprowadzić czynność pozorną zwróconą w kierunku bardziej licznego zbioru. Krok 4. Jeżeli dwa zbiory połączone są więcej niż jednym łukiem, należy dołączyć czynność fikcyjną. Węzły (wierzchołki) należy ponumerować tak, aby dla każdej czynności zdarzenie 6 E. Michlowicz:Programowanie sieciowe – Analiza sieciowa projektów rozpoczynające miało numer niższy niż zdarzenie kończące. Liczba wszystkich zbiorów wyznacza liczbę zdarzeń. Przykład działania algorytmu: Analiza czasowa umożliwia ustalenie: najwcześniejszego momentu zakończenia realizacji projektu, czynności, których opóźnienie wykonania przesunie moment zakończenia realizacji zadania, czynności, które można rozpocząć później nie opóźniając realizacji projektu, czynności, które można wykonać wolniej, niż planowano, bez opóźnienia momentu realizacji całego projektu. METODY ANALIZY SIECIOWEJ CPM - Critical Path Method - Metoda ścieżki krytycznej Tworzona została w latach 1956 – 57 w USA w koncernie chemicznym DuPont de Nemours (M.J. Walker) do planowania konserwacji maszyn pracujących w procesach ciągłych. Firma du Pont współpracowała z koncernem elektronicznych maszyn matematycznych Remington Rand Univac (j.E. Kelly). Metoda umożliwia graficzną prezentację kolejnych czynności wykonywanych w ramach projektu z zaznaczeniem szacowanego czasu trwania tych czynności oraz z zachowaniem ich sekwencji. Metodę stosujemy wtedy, gdy wszystkie czynności planowanego projektu są rzeczywiście realizowane, a czasy trwania poszczególnych czynności maja charakter deterministyczny. Ponadto CPM umożliwia odpowiednio wczesne rozpoznanie tzw. „wąskich gardeł” w procesach realizacji projektu. Ścieżka krytyczna będąca najdłuższą sekwencją czynności niezbędnych do wykonania projektu, wyznacza jednocześnie najkrótszy czas realizacji projektu. Składa się z czynności krytycznych, w przypadku realizacji których nie występuje żaden zapasu czasu. PERT - Program Evaluation and Review Technique – Technika oceny i kontroli programu; Stochastyczna metoda planowania i kontroli projektu Metoda opracowana przez Departament Obrony Stanów Zjednoczonych w roku 1958 na potrzeby marynarki wojennej USA podczas realizacji projektu budowy rakiet balistycznych Polaris. Projekt dotyczył prac 7 E. Michlowicz:Programowanie sieciowe – Analiza sieciowa projektów badawczych, konstrukcyjnych i produkcyjnych na okres 5 lat i angażował 3000dostawców. W metodzie PERT projekt jest przedstawiany w postaci grafu skierowanego. Podobnie jak w przypadku metody CPM istotą metody PERT jest analiza ścieżki krytycznej. Jednak czasy trwania czynności i momenty zajścia zdarzeń mają charakter zmiennych losowych o określonej funkcji gęstości prawdopodobieństwa. Takie ujęcie czasu trwania zadań składających się na projekt pozwala zastosować metody statystyczne do oceny czasowego ryzyka ukończenia zadań i całości projektu oraz określania prawdopodobieństwa ich ukończenia w z góry zadanym terminie. Parametry rozkładu prawdopodobieństwa czasu zakończenia zadania szacuje się na podstawie trzech zmiennych: optymistycznego czasu zakończenia zadania, najbardziej prawdopodobnego czasu zakończenia zadania, pesymistycznego czasu zakończenia zadania. Na podstawie tych zmiennych wyznacza się czas oczekiwany zakończenia zadania, który jest podstawą analizy ścieżki krytycznej oraz wariancję czasu oczekiwanego, która określa spodziewaną różnicę szacowanego czasu oczekiwanego zakończenia zadania od rzeczywistego czasu trwania czynności. Metoda CPM choć opracowana niezależnie, jest szczególnym przypadkiem metody PERT – takim, w którym wszystkie trzy zmienne czasowe poszczególnych zadań są równe. Analiza ścieżki krytycznej - momenty najwcześniejsze, - momenty najpóźniejsze, - czynności krytyczne, - zapasy czasu, - wyznaczenie ścieżki krytycznej, - wyznaczenie czasu realizacji zadania. Analiza czasowo – kosztowa - normalny czas trwania czynności, - koszt normalny, - graniczny czas trwania czynności, - koszt graniczny, - wyznaczenie takiego terminu zakończenia projektu, by koszt jego realizacji był minimalny. 8