Podręcznik
Strona: | SEZAM - System Edukacyjnych Zasobów Akademickich i Multimedialnych |
Kurs: | 2. Modele sieciowe i rozmyte |
Książka: | Podręcznik |
Wydrukowane przez użytkownika: | Gość |
Data: | czwartek, 23 października 2025, 13:21 |
Opis
Wersja podręcznika: 1.0
Data publikacji: 01.01.2022 r.
Wykłady
W1…WN, odpowiadające w sumie ok. 10-12 godz. standardowego wykładu
1. Modele sieciowe
W niniejszym module rozważamy modele sieci przepływowych. Niektóre z problemów programowania liniowego można przedstawić w postaci grafu i przepływów w tym grafie. Okazuje się, że takie problemy odznaczają się specjalną strukturą, dzięki której istotnie redukuje się złożoność obliczeniowa względem ogólnych klas problemów do których one należą. Przykładowo, niektóre problemy optymalizacji całkowitoliczbowej, czyli ogólnie problemy trudne do rozwiązywania, można przedstawić w postaci przepływów w sieci. Wiedza, że dany problem można przedstawić w postaci sieci przepływowej niesie ze sobą następujące konsekwencje. Po pierwsze, wiemy, że dany problem ma niższą złożoność obliczeniową. Po drugie możemy zastosować dedykowane algorytm sieciowe. Dodatkowo, dla problemów ze zmiennymi dyskretnymi i przy dodatkowych warunkach, wiemy, że uciąglenie zmiennych dyskretnych prowadzi do problemu, którego rozwiązanie zachowuje warunek całkowitoliczbowości. Dlatego w wielu praktycznych sytuacjach staramy się uzyskać model przepływowy problemu dokonując odpowiednich przeformułowań, odpowiedniego kodowania problemu w zmiennych decyzyjnych.
Modele sieci przepływowych mają szerokie pole zastosowania w praktycznych problemach. Przykładem mogą być sieci transportowo-dystrybucyjne dla towarów, ale również przepływy energii elektrycznej, zarządzanie zasobami telekomunikacyjnymi, czy sieci bardziej abstrakcyjne jak sieci społecznościowe, sieci zależności zadań w projektach, czy zależności w strukturze organizacyjnej przedsiębiorstwa.
1.1. Podstawowe pojęcia












Graf jest spójny jeżeli dla dowolnej pary wierzchołów grafu istnieje ścieżka je łącząca (z pominięciem skierowania łuków).
Graf ważony jest to graf, a którym do łuków
zostały przypisane pewne wagi .
Powyższe wagi mogą mieć charakter kosztu związanego z przepływem daną krawędzią, przy czym koszt należy rozumieć tu w sposób ogólny: może to być koszt finansowy, ale również czas lub odległość. Wagi mogą przyjmować również znaczenie przepustowości, a więc ograniczenia maksymalnego przepływu daną krawędzią. Generalnie graf może zawierać wiele wag dla pojedynczej krawędzi, ale typowymi parametrami sieci przepływowej są koszty i przepustowości krawędzi.
Przepływem na łuku nazywamy przypisaną do łuku liczbę reprezentującą wielkość przesyłanego towaru.
Wierzchołek nazywamy poprzednikiem
wierzchołka
jeżeli w grafie istnieje łuk
. Zbiór wszystkich
poprzedników wierzchołka
oznaczmy przez
.
Wierzchołek nazywamy następnikiem
wierzchołka
jeżeli w grafie istnieje łuk
. Zbiór wszystkich
następników wierzchołka
oznaczmy przez
.
Dywergencją wierzchołka
nazywamy
. Jeżeli
to wierzchołek
jest źródłem. Jeżeli
to wierzchołek
jest ujściem.
Graf
jest podgrafem grafu
jeżeli zbiory wierzchołów i krawędzi
są
podzbiorami odpowiednio zbiorów wierzchołków i krawędzi
.
Drzewem
rozpinającym grafu nazywamy spójny podgraf, taki, że zawiera wszystkie
wierzchołki z grafu
oraz zawiera
krawędzie, gdzie
jest
liczbą wierzchołów
.
Skojarzeniem nazywamy podzbiór krawędzi grafu taki, że
krawędzie nie mają wspólnych wierzchołków. Maksymalne skojarzenie, to
skojarzenie zawierające maksymalną liczbę krawędzi.
Pokryciem jest podzbiór wierzchołów takich, że wszystkie krawędzie są przylegające do co najmniej jednego wierzchołka z tego zbioru. Z minimalnym pokryciem mamy do czynienia, jeżeli liczba wierzchołków jest najmniejsza.
Graf jest dwudzielnym jeżeli możemy podzielić zbiór wierzchołków na dwa rozłączne podzbiory, takie że w każdym z tych podzbiorów nie ma krawędzi łączących wierzchołki w obrębie zbioru.
Istnieje wiele sposobów reprezentacji sieci przepływowych. Macierz
sąsiedztwa jest macierzą kwadratową w której kolumny i wiersze odpowiadają
wierzchołkom grafu. Wartość 1 w wierszu i kolumnie
oznacza krawędź
skierowaną
. Innym sposobem reprezentacji jest przechowywanie dla
każdego wierzchołka listy łuków wychodzących z tego wierzchołka. W
programowaniu liniowym najczęściej wykorzystuje się macierz incydencji. Jej wiersze
odpowiadają wierzchołkom, a kolumny odpowiadają łukom. Wartość 1 w wierszu
oraz kolumnie
oznacza początek łuku
w wierzchołku
, zaś wartość
-1 oznacza, że łuk
kończy się w
wierzchołku
. Jeżeli w sieci przepływowej wyróżnimy wierzchołek źródłowy
oraz wierzchołek ujściowy
, to ograniczenia modelujące przepływ w sieci
mogą przyjąć następującą postać:
gdzie jest wielkością przepływu z
do
, a
jest przepływem po krawędzi
ograniczonym przepustowością łuku
.
1.2. Zagadnienia modelowane jako problemy w sieciach przepływowych
W sieciach przepływowych formułuje się problemy typowe dla sieci przepływowych, w szczególności problem maksymalnego przepływu i problem przepływu minimalnokosztowego. Cała sztuka modelowania polega na „zakodowaniu” problemu, który chcemy rozwiązać w pojęciach ze świata sieci przepływowych. Najpierw dokonujemy więc pewnego mapowania problemu do problemu w sieci przepływowej. Następnie rozwiązujemy odpowiedni problem w sieci przepływowej. Uzyskany w ten sposób wynik dekodujemy z przestrzeni pojęć sieci przepływowej do domeny wyjściowego problemu. Dlatego istotne jest jednoznaczne i poprawne określenie parametrów sieci przepływowej, zazwyczaj przepustowości i kosztów łuków, oraz wskazanie problemu do rozwiązania na sieci. Przedstawimy teraz dwa kluczowe problemy rozwiązywane w sieciach przepływowych.
Problem maksymalnego przepływu
Problem polega na znalezieniu maksymalnego przepływu od
wierzchołka źródłowego do wierzchołka ujściowego
. W problemie tym
muszą zostać zdefiniowane przepustowości krawędzi, natomiast nie są
wykorzystywane koszty.
Poniżej znajduje się przykładowa sieć przesyłowa dla problemu maksymalnego przepływu.
Rozwiązanie problemu maksymalnego przepływu zostało zaznaczone poniżej w postaci przepływów podanych w nawiasach kwadratowych.
Problem maksymalnego przepływu można rozwiązywać np. algorytmem Forda-Fulkersona. Dla całkowitoliczbowych przepustowości algorytm ten znajduje rozwiązanie całkowitoliczbowe w skończonej liczbie iteracji. Ponieważ w niniejszym materiale skupiamy się na modelowaniu, czytelnika chcącego poznać szczegóły algorytmu odsyłamy do pozycji bibliograficznych.
Model programowania liniowego dla problemu maksymalnego przepływu jest następujący:
Z maksymalnym przepływem wiąże się pojęcie minimalnego przekroju.
Przekrojem grafu nazywamy podział łuków na dwa rozłączne
podzbiory
oraz
. Przepustowość przekroju
to
suma przepustowości wszystkich łuków łączących wierzchołki
z
wierzchołkami
.
Wartość dowolnego przepływu w sieci nie może być większa niż
przepustowość dowolnego przekroju. W szczególności wartość maksymalnego
przepływu w sieci jest równa przepustowości minimalnego przekroju w sieci
.
Minimalny przekrój może być wyznaczony np. w ramach
ostatniej iteracji algorytmu Forda-Fulkersona, w której finalne znakowanie wierzchołków
wyznacza ich podział na podzbiory i
.
Problem najtańszego przepływu
Problem najtańszego przepływu wymaga zdefiniowania jednostkowych
kosztów przepływ na łukach. Należy znaleźć przepływ o zadanej wielkości z węzła
źródłowego do ujścia
przy minimalnym sumarycznym koszcie przepływu.
Poniżej znajduje się przykładowa sieć przesyłowa dla problemu najtańszego przepływu, gdzie pierwsza liczba z pary x/y oznacza przepustowość, a druga koszt.
Rozwiązanie problemu najtańszego przepływu zostało zaznaczone poniżej w postaci przepływów podanych w nawiasach kwadratowych.
Problem najtańszego przepływu może być rozwiązywany uproszczoną metodą sympleks lub dedykowanymi algorytmami sieciowymi.
Model programowania liniowego dla problemu minimalnokosztowego
przepływu jest następujący:
2. Modele rozmyte
Dlaczego potrzebujemy zbiorów rozmytych w modelowaniu matematycznym?
- Teoria prawdopodobieństwa nie jest w stanie uchwycić wszystkich aspektów niepewności. Dotyczy ona niepewności związanej z przypadkowością.
- Zbiory rozmyte pozwalają na określenie nieprezycyjnej i rozmytej informacji (np. temperatura jest wysoka).
- Zbiory rozmyte pozwalają na modelowanie stopniowego przejścia przynależności do zbioru, co było rewolucyjne w pojmowaniu zbiorów i elementów do nich należących.
Przełomowe prace teoretyczne:
Zadeh (1965)
L.A. Zadeh, Fuzzy sets, Information and Control, Volume 8, Issue 3, 1965, Pages 338-353}.
Bellman i Zadeh (1970)
R. E. Bellman and L. A. Zadeh, Decision-Making in a Fuzzy Environment, Management Science , Dec., 1970, Vol. 17, No. 4, pp. B141-B164.
2.2. Zbiory rozmyte
Zbiór rozmyty
Zbiór rozmyty w przestrzeni rozważań
(czyli zbiór rozmyty
w
) jest zbiorem par:
Nośnik zbioru rozmytego (ang. support) $A$ w jest zdefiniowany jako zbiór nierozmyty (
):
- przekrój zbioru rozmytego
w
jest zdefiniowany jako zbiór nierozmyty:
Rodzaje funkcji przynależności:
- Trójkątna funkcja przynależności
- Trapezoidalna funkcja przynależności
- Gausowska funkcja przynależności
- Dzwonowa funkcja przynależności
- Sigmoidalna funkcja przynależności
Trapezoidalna funkcja przynależności:
Gausowska funkcja przynależności
Funkcja sigmoidalna