TEORIA GRAFÓW I SIECI Temat nr 5: Sieci, drogi ekstremalne w sieciach, analiza złożonych przedsięwzięć (CPM i PERT) dr hab. inż. Zbigniew TARAPATA, prof. WAT e-mail: zbigniew.tarapata@wat.edu.pl http://tarapata.edu.pl tel.: 261-83-95-04, p.225/100 Zakład Badań Operacyjnych i Wspomagania Decyzji Instytut Systemów Informatycznych Wydział Cybernetyki, Wojskowa Akademia Techniczna
Definicja sieci S G, i i1, I j j 1, J, gdzie: G=W, U, P - graf : W X, i i i 1, j : U Y j, j 1, J najczęściej: Xi=R, Yj=R I 2
Definicja sieci stochastycznej bez zależności ξi oraz Ψj od czasu: i : W 0,1 i 1,,I i w PrAw gdzie: Aw pewne zdarzenie losowe dotyczące wierzchołka w, np. Aw wierzchołek w jest sprawny (działa); lub (i) : U 0,1 1 j, J j u PrAu j, gdzie: Au pewne zdarzenia losowe dotyczące gałęzi u, np. Au gałąź u jest sprawna; Au długość gałęzi u wynosi lu, itp. 3
Definicja sieci stochastycznej Przykład stochastycznego drzewa zdarzeń (pęknięcie zbiornika z amoniakiem) z prawodobieństwami zajścia poszczególnych zdarzeń opisanymi na łukach 4
Definicja sieci stochastycznej z zależnością ξi oraz Ψj od czasu: : W T 0,1 1, i I i w, t Pr Aw t i, gdzie:, T R 0, Aw,t pewne zdarzenie losowe dotyczące wierzchołka w i chwili t, np. Aw,t wierzchołek w jest sprawny do chwili t, itp. T zbiór opisujący czas; Przykład: W dowolnej sieci drogowej czas przejazdu między węzłami zależny jest od chwili, w której dotrzemy do węzła (rano korek do centrum, po południu od centrum ) i jest zmienną losową (nie jest stały). 5
Problem drzewa (karkasu) ekonomicznego Dla danej sieci S G, l, l : U R taki karkas, wyznaczyć * * * T W, U, P grafu G W, U, P * min LT L T TT, aby gdzie: T zbiór wszystkich karkasów grafu G; L T lu - koszt karkasu. uu (T ) UWAGA! Karkas (drzewo) najtańszy (ekonomiczne) = = minimalne drzewo rozpinające 6
Problem drzewa (karkasu) ekonomicznego Minimalne drzewo rozpinające dla grafu miast = = najtańszy (np. najkrótszy) sposób dotarcia z dowolnego miasta do każdego innego 7
Problem drzewa (karkasu) ekonomicznego algorytm Prim a 1. Wybieramy dowolny xw i wśród gałęzi incydentnych z nim wybieramy gałąź u I (nie pętlę) o najmniejszej wartości l(u I ). I I I I Tworzymy podgraf częściowy G W, U, P zawierający u I i wierzchołki incydentne z u I. Podstawiamy: II I II II II I G : W W, U, P - podgraf, W : W / W. 2. Wśród gałęzi uu takich, że I II x, u, y P y, u, x P, x W, y W wybieramy gałąź o najmniejszej wartości l(u). Gałąź tą dołączamy do U I : I I II II W : W y; W : W \ y. Postępowanie kończymy, gdy W II * I =. Wówczas T : G. 8
Problem drzewa (karkasu) ekonomicznego algorytm Prim a 9
Problem drzewa (karkasu) ekonomicznego algorytm Kruskala 1. W zbiorze U wybieramy gałąź (nie pętlę) o najmniejszej wartości l(u). I I I I Tworzymy podgraf częściowy G W, U, P złożony z tej gałęzi i wierzchołków z nią incydentnych. 2. Spośród niewybranych gałęzi, nie tworzących łańcuchów cyklicznych z podgrafem G I, wybieramy gałąź o najmniejszym l(u) i dołączamy ją do G I wraz z wierzchołkami incydentnymi. Za każdym razem przy wyborze następnej, najtańszej gałęzi, wyliczamy liczbę cyklomatyczną powstającego grafu częściowego i gałąź włączamy do zbioru gałęzi karkasu wyliczona liczba cyklomatyczna jest równa zeru. Postępowanie kończymy, gdy W I * I =W. Wówczas T : G. 10
Problem drzewa (karkasu) ekonomicznego algorytm Kruskala 11
Drogi ekstremalne w sieciach skierowanych Sieć standardowa dla problemu dróg ekstremalnych: S G,, l gdzie: l : UR l(u) koszt gałęzi uu; U(μ(x p,x k )) zbiór gałęzi drogi μ(x p,x k ) z wierzchołka x p do x k ; F p k ( x, x ) lu uu ( x p x k, ) - koszt drogi μ(x p,x k ). Definicja problemu wyznaczania drogi ekstremalnej: * D x p, x k, dla której w sieci S znaleźć taką drogę F lub F gdzie x p x k * p k p k ( x, x ) min F ( x, x ) ( x p, x k ) D( x * p k p k ( x, x ) max F ( x, x ) ( x p, x k ) D( x D, - zbiór wszystkich dróg prostych w G z x p do x k. p p, x, x k k ) ) 12
Drogi ekstremalne w sieciach skierowanych kilka spojrzeń Sieć drogowa miasta Bloomington w stanie Indiana w USA: droga najkrótsza vs. droga najprostsza 13
Drogi ekstremalne w sieciach skierowanych kilka spojrzeń Droga najkrótsza vs. droga najszybsza z Wrocławia do Warszawy 14
Drogi ekstremalne w sieciach skierowanych kilka spojrzeń Alternatywne drogi z WAT na Politechnikę Warszawską Która najlepsza? Zależy to od kryterium wyboru: najszybsza, najkrótsza, itd. 15
Drogi ekstremalne w sieciach klasyfikacja problemów N S jest cykliczna? N T Rodzaj ekstremalizacji min max l 0? l0? T N T Długości dróg cykl.>=0? N T Długości dróg cykl.<=0? N T Programowanie dynamiczne Programowanie całkowitoliczbowe pełny przegląd Metoda dendrytów dróg ekstremalnych 16
Drogi ekstremalne w sieciach acyklicznych programowanie dynamiczne * p k x, x? w I G I I W, U, P p x k x X p k x x x, x k ; X= nie istnieje x, x k - zbiór wierzchołków osiągalnych z x p w G I ; - zbiór wierzchołków, z których w G I osiągalny jest x k ; - zbiór wierzchołków, które mogą wystąpić w ; G X, U, P - podgraf generowany przez XW; p k W0, W1,, W K - warstwy w G; x W0 ; x WK X W X i - zbiór tzw. stanów uszczalnych w i-tym etapie; i U x u U y X x u y P :,, - zbiór tzw. sterowań uszczalnych dla stanu xx; m - liczba łuków w drodze μ; graf acykliczny!!! 17
Drogi ekstremalne w sieciach acyklicznych programowanie dynamiczne Funkcje etapowe: F x u l u F y x, u, i 0, K 1 F i, K, i1 i x extr uu x l u F i1 przy czym yx, u y X : x, u, yx, u P u x u F x, u F x i : i, K K i y x, u. przy czym x X j ; F x 0 K ; u K x ji Interpretacja: długość drogi ekstremalnej z x do x k wyznaczana jest na podstawie długości dróg ekstremalnych z następników x do x k. Innymi słowy: droga ekstremalna składana jest z odcinków dróg ekstremalnych 18
Drogi ekstremalne w sieciach acyklicznych programowanie dynamiczne, algorytm 1. Wyznaczyć X dla każdego etapu i 1, K ; i 2. Dla każdego wierzchołka x określić zbiór x, i : K 1 U ; 3. Dla każdego wierzchołka x X i wyznaczyć F * (x) oraz u * (x) (są to cechy wierzchołka x). Jeżeli i=0, to przejście do pkt. 4, w przeciwnym przypadku i:=i 1 i powtórz punkt 3; 4. Koniec algorytmu. 5. Długość drogi ekstremalnej określa F * (x p ), a drogę ekstremalną wyznaczają cechy u * (x), począwszy od wierzchołka początkowego x p, zgodnie z wyrażeniem x y x, u x, s 1,2, m s 1 s s,. 19
Drogi ekstremalne w sieciach acyklicznych programowanie dynamiczne, algorytm PRZYKŁAD W sieci S wyznaczyć najdłuższą drogę z x p = 1 do x k = 5. S 1 1 2 5 3 12 4 4 3 4 5 2 1 6 4 5 12 9 1 1 2 4 6 1 3 2 5 7 3 4 4 1 4 5 5 W 0 W 1 W 2 W 3 W 4 20
Drogi ekstremalne w sieciach acyklicznych programowanie dynamiczne, algorytm x p = 1, x k = 5, μmax(1,5) =? p x 1 1,2,3,4,5,6,7 X U U k x 5 1,2,3,4,5,6 0 X 1 5 1,2,3,4,5,6 1, X 2,4, X 6, X 3, X 5, 1 1 u 1,2, u1,3, u1,4, U 2 u 2,6, u2,3, U 3 u 3,5 4 u, u, U 5, U 6 u, u 4,3 4,5 2 Wartości poszczególnych funkcji etapowych tabela. x 5 3 6 2 4 1 i- nr etapu 4 3 2 1 1 0 F i x 0 2 4 14 6 15 y u x - u3,5 u6,5 u2,3 u4,3 u1,2, u x - 5 5 3 3 2 x 3 F i x 6,3 4 6,5 oraz u x przedstawia 21
Drogi ekstremalne w sieciach acyklicznych programowanie dynamiczne, algorytm x p = 1, x k = 5, μmax(1,5) =? p x 1 1,2,3,4,5,6,7 X U U k x 5 1,2,3,4,5,6 0 X 1 5 1,2,3,4,5,6 1, X 2,4, X 6, X 3, X 5, 1 1 u 1,2, u1,3, u1,4, U 2 u 2,6, u2,3, U 3 u 3,5 4 u, u, U 5, U 6 u, u 4,3 4,5 2 Wartości poszczególnych funkcji etapowych tabela. x 5 3 6 2 4 1 i- nr etapu 4 3 2 1 1 0 F i x 0 2 4 14 6 15 y u x - u3,5 u6,5 u2,3 u4,3 u1,2, u x - 5 5 3 3 2 x 3 F i x 6,3 4 6,5 oraz u x przedstawia 22
Drogi ekstremalne w sieciach acyklicznych programowanie dynamiczne, algorytm x p = 1, x k = 5, μmax(1,5) =? p x 1 1,2,3,4,5,6,7 X U U k x 5 1,2,3,4,5,6 0 X 1 5 1,2,3,4,5,6 1, X 2,4, X 6, X 3, X 5, 1 1 u 1,2, u1,3, u1,4, U 2 u 2,6, u2,3, U 3 u 3,5 4 u, u, U 5, U 6 u, u 4,3 4,5 2 Wartości poszczególnych funkcji etapowych oraz tabela. np. dla x=6 mamy x 5 3 6 2 4 1 i- nr etapu 4 3 2 1 1 0 * F 6 F i x 0 2 4 14 6 15 max 2 u u, u y u x - u3,5 u6,5 u2,3 u4,3 u1,2, u x - 5 5 3 3 2 x 3 F i x max max 1 6,3 4 6,5 u x przedstawia * l u F y 6, u 3 6,3 6,5 * * l u F 3, lu F 5 6,3 2,4 0 4 Z przeprowadzonych w tabeli wyliczeń wynika, że długość najdłuższej drogi μmax(1,5) wynosi F max 1,5 F0 1 15. Droga najdłuższa jest następująca (z x p =1 do x k =5): 1 u1,2 2 u2,3 3 u3,5 5. 3 6,5 3 23
Drogi ekstremalne w sieciach cyklicznych Rozróżniamy dwa zasadnicze przypadki: I minimalizacja : l0 długość dróg cyklicznych 0, II maksymalizacja : l0 długość dróg cyklicznych 0. S jest cykliczna? N T Rodzaj ekstremalizacji min max l 0? l0? N T N T Długości dróg cykl.>=0? N T Długości dróg cykl.<=0? N T Sieć standardowa: gdzie: S=G,,l Programowanie dynamiczne G=W, U, P T=W, U I, P I - dendryt Programowanie całkowitoliczbowe pełny przegląd Metoda dendrytów dróg ekstremalnych 24
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych TWIERDZENIE Dendryt T o korzeniu x p, zawierający wszystkie wierzchołki osiągalne z x p w sieci S takiej, dla której zachodzi I (II), jest maksymalnym dendrytem dróg najkrótszych (najdłuższych) w tej sieci od wierzchołka x p dla każdego uu\u I zachodzi: gdzie: j i F x F x l u x i, u, x j P F(x) długość drogi od x p do x w T. x i l(u) u x j x i, u, x j P 25
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych Algorytm wyznaczania dendrytu dróg najkrótszych G=W, U - graf Berge a c(x)=f(x), g(x) - cechy xw, g(x) wybrany poprzednik x 1. x p cechujemy c(x p )=0,+, pozostałe wierzchołki c(x)=, +; 2. Dla każdego xw, y(x) jeżeli : F(y) F(x) l (x,y) to: F(y) : = F(x) + l(x,y); g(y) : = x; Wniosek z tezy poprzedniego Twierdzenia Postępowanie kontynuujemy óki jest to możliwe. 3. Tworzymy dendryt z łuków g(x), x. Maksymalny dendryt dróg prostych najdłuższych w S = G,, l maksymalny dendryt dróg prostych w S I = G,, -l. Antydendryt zmiana łuków na przeciwne. 26
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Iteracja nr 1 Przed Po - 0 > 7 stąd F(2)= 0 + 7 = 7-0 > 16 stąd F(3) = 0 + 16 = 16 - wierzchołek (1), którego następniki cechowane w bieżącej iteracji 27
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Iteracja nr 2 Przed Po - 7 > 2 stąd F(4)= 7 + 2 = 9 1 0-7 < 3 stąd F(1)=F(1) - wierzchołek (2), którego następniki cechowane w bieżącej iteracji 28
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Iteracja nr 3 Przed Po 2 16-9 > 3 stąd F(3)= 9 + 3 = 12 - wierzchołek (4), którego następniki cechowane w bieżącej iteracji - 9 > 1 stąd F(6)= 9 + 1= = 10 29
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Iteracja nr 4 Przed Po 4 12-10 < 4 stąd F(3)= F(3) - wierzchołek (6), którego następniki cechowane w bieżącej iteracji 30
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Iteracja nr 5 Przed Po 6-12 > 12 stąd F(5)= 12 + 12 = 24 - wierzchołek (3), którego następniki cechowane w bieżącej iteracji 31
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Tworzymy dendryt z łuków < g(x), x > startując z dowolnego wierzchołka. Postępowanie kontynuujemy aż do włączenia wszystkich wierzchołków, które mają lewą cechę g(x). 3 5 32
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Tworzymy dendryt z łuków < g(x), x > startując z dowolnego wierzchołka. Postępowanie kontynuujemy aż do włączenia wszystkich wierzchołków, które mają lewą cechę g(x). 4 3 5 33
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Tworzymy dendryt z łuków < g(x), x > startując z dowolnego wierzchołka. Postępowanie kontynuujemy aż do włączenia wszystkich wierzchołków, które mają lewą cechę g(x). 2 4 3 5 34
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Tworzymy dendryt z łuków < g(x), x > startując z dowolnego wierzchołka. Postępowanie kontynuujemy aż do włączenia wszystkich wierzchołków, które mają lewą cechę g(x). 2 4 1 3 5 35
Drogi ekstremalne w sieciach cyklicznych metoda dendrytu dróg ekstremalnych PRZYKŁAD (wyznaczanie dendrytu dróg najkrótszych, x p =1) Tworzymy dendryt z łuków < g(x), x > startując z dowolnego wierzchołka. Postępowanie kontynuujemy aż do włączenia wszystkich wierzchołków, które mają lewą cechę g(x). 2 4 1 6 3 5 36
Zakład Badań Operacyjnych i Wspomagania Decyzji Instytut Systemów Informatycznych Wydział Cybernetyki, Wojskowa Akademia Techniczna DZIĘKUJĘ ZA UWAGĘ dr hab. inż. Zbigniew TARAPATA, prof. WAT e-mail: zbigniew.tarapata@wat.edu.pl http://tarapata.edu.pl