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