Sieci Sieć (graf skierowany) Siecia (grafem skierowanym) G = (V, A) nazywamy zbiór wierzchołków V oraz zbiór łuków A V V. V = {A, B, C, D, E, F}, A = {(A, B), (A, D), (A, C), (B, C),..., }
Ścieżki i cykle Sieci Ciag niepowtarzajacych się wierzchołków w sieci G = (V, A), połaczonych łukami, nazywamy ścieżka w G. Cyklem nazywamy ciag niepowtarzajacych się wierzchołków połaczonych łukami, za wyjatkiem pierwszego i ostatniego, które sa takie same. Jeżeli wszystkie łuki na ścieżce (cyklu) maja taka sama orientację, to mówimy o ścieżce skierowanej (cyklu skierowanym). Sieć jest spójna jeżeli istnieje ścieżka między każda para wierzchołków w tej sieci. Ścieżka skierowana A,C,F i cykl skierowany B,E,D,B. Ścieżka nieskierowana jest np. A, D, E a cyklem nieskierowanym A, D, C, A.
Sieć acykliczna Sieci Sieć nazywamy acykliczna jeżeli nie zawiera żadnego cyklu skierowanego. W takiej sieci można ponumerować wierzchołki w ten sposób, że dla każdego łuku (i, j) A zachodzi i < j. Jest to tzw. uporzadkowanie topologiczne wierzchołków.
Sieci Drzewo rozpinajace Drzewem rozpinajacym nazywamy spójna sieć nie zawierajac a żadnego cyklu. Każde drzewo rozpinajace dla sieci G = (V, A) ma dokładnie V 1 łuków. Dodanie nowego łuku do drzewa rozpinajacego powoduje powstanie dokładnie jednego cyklu (skierowanego lub nie)
Sieci (przykład) Fabryka, ulokowana w mieście 1, ma wysłać 5 jednostek towaru do dwóch sklepów. Sklep 1 znajduje się w mieście 4 i zamówił 2 jednostki towaru a sklep 2 znajduje się w mieście 5 i zamówił 3 jednostki towaru. Mapa połaczeń między fabryka a sklepami jest zadana w postaci sieci G = (V, A). Każdy łuk (i, j) A ma dwa parametry: koszt c ij transportu 1 sztuki towaru po (i, j) oraz pojemność u ij oznaczajac a maksymalna liczbę jednostek towaru, jaka może być przewożona po (i, j). Jaki jest najtańszy plan transportu towaru z fabryki do sklepów?
Sieci Model liniowy i rozwiazanie min z = 5x 12 + 2x 13 + 8x 31 + 1x 23 + 2x 24 + 4x 34 + 1x 35 + 3x 45 x 12 + x 13 x 31 = 5 x 24 + x 23 x 12 = 0 x 34 + x 35 x 23 x 13 = 0 x 45 x 24 x 34 = 2 x 35 x 45 = 3 0 x 12 9, 0 x 13 4, 0 x 31 3, 0 x 23 6, 0 x 24 4 0 x 34 4, 0 x 35 9, 0 x 45 7
Sieci Ogólne sformułowanie problemu Zadana jest sieć G = (V, A). Dla każdego łuku (i, j) A sa zadane koszt c ij i pojemność u ij 0. Dla każdego wierzchołka i V zadana jest liczba b i oznaczajaca podaż/popyt w tym wierzchołku. Jeżeli b i > 0, to i jest dostawca; jeżeli b i < 0, to i jest odbiorca; jeżeli b i = 0, to i jest wierzchołkiem pośrednim. Niech x ij 0 będzie zmienna oznaczajac a przepływ po łuku (i, j) A. min z = (i,j) A c ij x ij {j:(i,j) A} x ij {j:(j,i) A} x ji = b i for all i N 0 x ij u ij for all (i, j) A Zakładamy, że i V b i = 0, czyli problem jest zbilansowany.
Sieci Planowanie produkcji/zapasów Fabryka wytwarza pewien produkt i chce zaspokoić popyt d j w każdym z K okresów j = 1, 2,..., K. Zdolność produkcyjna w j-tym okresie wynosi a j, jednostkowy koszt produkcji w j-tym okresie wynosi c j a jednostkowy koszt magazynowania w j-tym okresie wynosi m j. Zakładamy, że do I jednostek wyrobu może być przechowywana w magazynie. Fabryka chce wyznaczyć najtańszy plan produkcji i magazynowania produktu w ciagu K okresów.
Planowanie lotów Sieci Mała firma używa samolotu, który może zabrać p pasażerów. Samolot odwiedza miasta w kolejności 1, 2,..., n. Samolot może zabrać pasażerów w każdym mieście i wysadzić ich w dowolnym z kolejnych miast. Niech b ij oznacza liczbę pasażerów oczekujacych w mieście i na lot do miasta j. Niech f ij będzie opłata za przelot od i do j. Ilu pasażerów powinien zabrać samolot pomiędzy każda para miast aby zmaksymalizować przychód?
Planowanie lotów Sieci Sieć dla 4 miast:
Sieć rezydualna Sieci Niech x będzie przepływem w sieci G = (V, A). Sieć rezydualna G(x) ma takie same wierzchołki jak G a jej łuki definiujemy następujaco. 1 Dla każdego łuku (i, j) A tworzymy dwa łuki: (i, j) o pojemności r ij = u ij x ij i koszcie c ij (j, i) o pojemności r ji = x ij i kozcie c ij 2 Usuwamy wszystkie łuki o pojemności 0.
Sieć rezydualna Sieci Jeżeli sieć rezydualna G(x) zawiera cykl skierowany o ujemnym koszcie (ujemny cykl), to można wyznaczyć tańszy dopuszczalny przepływ poprzez przemieszczenie dodatniego przepływu po tym cyklu.
Sieci Algorytm kasowania ujemnych cykli Twierdzenie. Dopuszczalny przepływ x w sieci G jest optymalny wtedy i tylko wtedy gdy sieć rezydualna G(x) nie zawiera ujemnego cyklu. 1: Znajdź dopuszczalny przepływ x w sieci 2: while G(x) zawiera ujemny cykl do 3: Wyznacz ujemny cykl W w G(x) 4: δ := min{r ij : (i, j) W } 5: Przemieść δ jednostek przepływu po W i zaktualizuj G(x) 6: end while
Przykład Sieci Pierwszy dopuszczalny przepływ. Sieć rezydualna zawiera ujemny cykl. Można wyznaczyć tańszy przepływ przemieszczajac 2 jednostki przepływu po tym cyklu.
Przykład Sieci Sieć rezydualna zawiera ujemny cykl. Można wyznaczyć tańszy przepływ przemieszczajac 1 jednostkę przepływu po tym cyklu.
Przykład Sieci Sieć rezydualna nie zawiera ujemnego cyklu. Przepływ jest optymalny.
Sieci Wyznaczania dopuszczalnego przepływu Dodajemy wierzchołek s i łaczymy go z dostawcami i odbiorcami dodatkowymi łukami. Koszty i pojemności dodatkowych łuków wynosza (w praktyce jest to duża liczba M). Jeżeli w optymalnym rozwiazaniu na którymś z dodatkowych łuków istnieje dodatni przepływ to wyjściowy problem jest sprzeczny.
Sieci Rozwiazanie całkowitoliczbowe Jeżeli pojemności łuków, podaże oraz popyty wierzchołków sa liczbami całkowitymi, to istnieje optymalne rozwiazanie (przepływ) całkowitoliczbowe. Algorytm kasowania ujemnych cykli zwraca takie rozwiazanie.