Przeczytaj
Sieci przepływowe
Siecią przepływowąSiecią przepływową nazywamy taki graf spójnygraf spójny skierowany, którego każda krawędź przypisaną ma daną przepustowośćprzepustowość, dzięki czemu między krawędziami może odbywać się – zgodny z kierunkiem krawędzi – przepływ.
Przeanalizujmy graf spójny skierowany.
Dany jest grafgraf spójny skierowany , który składa się ze zbioru wierzchołków oraz ze zbioru krawędzi skierowanych .
Każdej krawędzi przypisana jest pewna wartość – to przepustowość krawędzi. Przepustowość to maksymalna ilość pewnego czynnika, który przepływa przez sieć. Wartość przepustowości możemy opisać następująco:
Dodatkowo oznaczmy dwa wierzchołki grafu: wierzchołek (oznaczony na ilustracji S) będzie źródłemźródłem, a wierzchołek (oznaczony na ilustracji T) – ujściemujściem.
Źródłem nazywamy wierzchołek, z którego wychodzą przepływy, natomiast ujściem nazywamy wierzchołek, do którego prowadzą przepływy.

Zastanów się, czy już teraz możesz odnaleźć w życiu codziennym przykład problemu, który może stanowić zobrazowanie działania sieci przepływowych.
Przykładami sieci przepływowych są np. przepływ gazu, wody czy też ruch drogowy. Przepływ danej krawędzi skierowanej to pewna wartość, jaką przypisujemy każdej krawędzi sieci. Wartość ta może być ujemna, jak i dodatnia.
Formalnie powiemy, że funkcję rzeczywistą pary wierzchołków sieci nazywamy przepływem, jeśli spełnia ona trzy wymienione niżej warunki.
Funkcja przyporządkowuje każdej parze wierzchołków v i w pewną wartość rzeczywistą.
Dla każdej krawędzi przepływ jest nie większy niż przepustowość tej samej krawędzi:
Oznacza to, że przepustowość danej krawędzi to maksymalna ilość czynnika, zatem przez daną krawędź może przepływać go mniej, ale nie może więcej, więc przepływ nie może przekroczyć przepustowości. Zatem przepustowość krawędzi wynosi 9.
Dla każdej krawędzi przepływ w odwrotnym kierunku ma znak przeciwny, czyli zachodzi równość:
Oznacza to, że przepływ w odwrotnym kierunku jest ujemny. Jeśli więc przepływ krawędzi wynosiłby 9, przepływ wynosiłby -9.
Dla wszystkich wierzchołków (czyli z wyjątkiem źródła i ujścia) suma przepływów , gdzie , wynosi , czyli suma wszystkich przepływów wpływających do wierzchołka jest równa sumie przepływów wypływających z wierzchołka.
Jeśli pomiędzy pewnymi wierzchołkami nie istnieje krawędź, to domyślnie przepływ równy jest .
Przepływ sieci to suma wszystkich przepływów nettoprzepływów netto ze źródła do wszystkich innych wierzchołków sieci.
By lepiej zrozumieć to zagadnienie, przyjrzyjmy się uzupełnionej ilustracji umieszczonej w dalszej części e‑materiału.
Przypuśćmy, że w pewnej sieci każda krawędź ma przepustowość oraz przypisano jej przepływ . Na ilustracjach sieci przepływowej przepustowość i przepływ krawędzi oznaczmy, pisząc obok dwie liczby oddzielone ukośnikiem. Liczba na lewo od ukośnika oznacza przepływ krawędzi, a na prawo – przepustowość krawędzi.
Suma przepływów wychodzących ze źródła wynosi 16 (13 do wierzchołka D oraz 3 do wierzchołka B).

Z warunku skośnej symetriiwarunku skośnej symetrii możemy wywnioskować, że przypływ wychodzący ze źródła jest równy przepływowi docierającemu do ujścia .
Możemy to sprawdzić – rzeczywiście suma przepływów wchodzących do ujścia wynosi 16 (8 z wierzchołka C oraz 8 z wierzchołka A).
Głównym problemem spotykanym przy zagadnieniu sieci przepływowej jest problem maksymalnego przepływu. Zadanie polega na wyznaczeniu maksymalnego przepływu sieci ze źródła do ujścia, biorąc pod uwagę ograniczenia związane z przepustowością każdej krawędzi. Dla ułatwienia możemy sobie wyobrazić krawędzie jako rury tworzące sieć połączeń wodociągowych ze źródła do ujścia. Problem maksymalnego przepływu polegałby tu na obliczeniu, ile wody można maksymalnie przepuścić ze źródła do ujścia. To, ile wody może przepłynąć przez każdą rurę, ogranicza jej przepustowość.
Algorytm Forda‑Fulkersona pomaga rozwiązać problem maksymalnego przepływu. Polega on na wyznaczeniu sieci rezydualnych oraz ścieżek rozszerzających.
Siecią rezydualnąSiecią rezydualną nazywamy graf, który jest tworzony na podstawie pierwotnej sieci przepływowej i aktualnego przepływu. Krawędzie w sieci rezydualnej reprezentują przepustowość rezydualną, czyli maksymalną ilość dodatkowych danych, które mogą przepłynąć daną krawędzią w danej chwili.
Ścieżkami rozszerzającymi nazywamy ścieżki w sieci rezydualnej, które umożliwiają dodanie dodatkowego przepływu do istniejącego przepływu w sieci przepływowej.
Wróćmy do zaprezentowanej wcześniej ilustracji:

Przepustowość rezydualną krawędzi definiujemy jako różnicę przepustowości oraz przepływu krawędzi.
Podstawmy konkretne wartości:
Zatem dla krawędzi , której przepływ to 8, a przepustowość to 9, przepustowość rezydualna wynosi 9 - 8, czyli 1. Jest to zapasowy przepust krawędzi.
Może występować przepływ w przeciwnym do krawędzi kierunku (ujemny).
Kierunek, w którym obliczamy przepustowość rezydualną, jest dowolny. Można obliczyć przepustowość rezydualną , choć nie istnieje w sieci krawędź zwrotna . Jeśli nie istnieje krawędź , to przepustowość jest równa . Oznacza to, że przepustowość rezydualna jest równa aktualnemu przepływowi krawędzi .
Również podstawmy konkretne wartości:
Dla kierunku przeciwnego przepust rezydualny jest równy samej wartości przepływu, czyli 8.
Przepustowość rezydualna wyznaczona w kierunku zgodnym z krawędzią jest zapasowym przepustem krawędzi, przez którą można jeszcze prowadzić przepływ. Natomiast przepustowość rezydualna wyznaczona w kierunku przeciwnym jest aktualną wartością przepływu krawędzi.
Na podstawie obliczonych przepustowości rezydualnych wyznaczamy sieć rezydualną. Jest to taka sieć, która przejmuje wierzchołki pierwotnej sieci przepływowej oraz tylko te krawędzie, których przepustowość rezydualna jest różna od zera. W sieci przepływowej każdej krawędzi pierwotnej odpowiadają dwie krawędzie skierowane w przeciwne strony.
Krawędzie sieci rezydualnej o kierunku zgodnym z pierwotną krawędzią oznaczają przepustowość rezydualną, czyli zapas przepływu. Krawędzie o zerowej przepustowości rezydualnej są zbędne w sieci rezydualnej, ponieważ nie pomieszczą więcej przepływu. Z tego powodu, jeśli przepustowość rezydualna jest równa 0, to takiej krawędzi nie rysujemy.
Krawędź w sieci rezydualnej przeciwna do kierunku pierwotnej krawędzi oznacza przepływ. Jeśli przepływ pewnej krawędzi jest zerowy, to krawędź także jest ignorowana.
Przyjrzyjmy się ilustracjom. Krawędź to zapas przepływu danej sieci, natomiast krawędź – aktualny przepływ.
Przy tworzeniu sieci rezydualnej będziemy szukać ścieżek ze źródła do ujścia we wszystkich możliwych parach wierzchołków. Każdą taką ścieżkę w grafie rezydualnym z wierzchołka do wierzchołka nazywamy ścieżką rozszerzającąścieżką rozszerzającą, o ile nie zawiera cykli i jeśli każda krawędź ma dodatnią przepustowość rezydualną.
Problem niezawodności sieci
Przypuśćmy, że projektujemy sieć. Będzie się składała z routerów połączonych ze sobą kanałami komunikacyjnymi. Znając teorię grafów, możemy skorzystać z reprezentacji grafowej, która pozwoli nam dokładniej przeanalizować sprawność sieci. Routery przedstawimy jako wierzchołki, natomiast kanały będą reprezentowane przez krawędzie łączące routery.

Chcemy uniknąć awarii całej sieci w sytuacji, gdyby niektóre połączenia zostały przerwane. W tym celu należy zapewnić bezpośrednie lub pośrednie połączenie między dwoma routerami. Dla grafu reprezentującego sieć routerów zdefiniujmy pojęcie spójności krawędziowej grafu.
Powiemy, że graf jest -spójny krawędziowo-spójny krawędziowo, jeśli pozostanie spójny nawet wtedy, gdy zostanie usuniętych mniej niż dowolnych krawędzi. Wtedy spójność krawędziowa tego grafu jest największą liczbą krawędzi, po usunięciu których graf na pewno pozostanie spójny. W grafie może istnieć zbiór większej niż liczby krawędzi.
Usterka jednego kanału

Awaria sieci

k = 2).Połączenie dwóch routerów kanałem jest obarczone pewnym kosztem. Dla uproszczenia przyjmiemy, że utworzenie każdego połączenia kosztuje tyle samo. Chcemy przy możliwie najmniejszym koszcie stworzyć sieć, która spełnia minimalną niezawodnośćminimalną niezawodność. Innymi słowy, chcemy utworzyć graf o spójności krawędziowej przy najmniejszej możliwej liczbie krawędzi. O ile określenie algorytmu, którego zadaniem byłoby zaprojektowanie takiej sieci, jest skomplikowanym zadaniem, o tyle możemy zbadać niezawodność już zaprojektowanej sieci.

Wierzchołki grafów możemy oznaczać małymi albo wielkimi literami, a także cyframi.
Algorytm wyznaczania niezawodności sieci bada spójność krawędziową grafu. Na początku każdą nieskierowaną krawędź grafu zamienia się na dwie przeciwnie skierowane krawędzie o przepustowości równej 1. Algorytm wyznacza maksymalny przepływ między każdą parą wierzchołków i . Graf jest -spójny krawędziowo, jeśli maksymalny przepływ między każdą parą wierzchołków jest nie mniejszy niż . Wtedy spójność krawędziowa grafu jest najmniejszym wyznaczonym przepływem.
Słownik
struktura składająca się z niepustego zbioru wierzchołków oraz ze zbioru krawędzi; dla grafu zbiór wierzchołków oznaczamy (ang. verticies – wierzchołki), a zbiór krawędzi – (ang. edges – krawędzie); liczbę elementów zbioru oznaczamy literą , zaś liczbę elementów zbioru literą
graf, w którym każda para wierzchołków połączona jest drogą
o grafie mówimy, że jest k-spójny krawędziowo, jeśli po usunięcie k - 1 krawędzi dalej istnieje ścieżka między dowolnymi dwoma wierzchołkami; w kontekście przepływu sieci mówimy o wartości minimalnej przepustowości, która musi zostać zachowana w sieci, aby była ona k-spójna krawędziowo
sieć, która spełnia kryterium ustalonej k-spójności krawędziowej
zdolność seci do utrzymania ciągłego przekazywania danych z jednego węzła do drugiego w obliczu różnych awarii, zakłóceń lub ograniczeń
różnica między przepływem wchodzącym a wychodzącym danego wierzchołka
maksymalna ilość jednostek danych (czynników), która może być przetransportowana przez daną krawędź w jednostce czasu
graf skierowany, w którym każda krawędź ma przypisaną przepustowość (ilość, którą można przetransportować) oraz funkcję przepływu (ilość przepływających danych) spełniającą pewne warunki
graf, który jest tworzony na podstawie pierwotnej sieci przepływowej i aktualnego przepływu; krawędzie w sieci rezydualnej reprezentują przepustowość rezydualną, czyli maksymalną ilość dodatkowych danych, które mogą przepłynąć daną krawędzią w danej chwili
ścieżki w sieci rezydualnej, które umożliwiają dodanie dodatkowego przepływu do istniejącego przepływu w sieci przepływowej
wierzchołek w sieci przepływowej, na którym przepływ się kończy
zasada, zgodnie z którą przepływ w odwrotnym kierunku na krawędziach ma przeciwny znak w porównaniu do przepływu w danym kierunku
wierzchołek w sieci przepływowej, od którego przepływ się zaczyna

