Definicja grafu nieskierowanego. Grafem nieskierowanym

Transkrypt

Definicja grafu nieskierowanego. Grafem nieskierowanym
Grafy
Definicja grafu nieskierowanego.
Grafem nieskierowanym nazywamy uporządkowaną trójkę:
gdzie: V- niepusty zbiór wierzchołków grafu G E- zbiór wszystkich krawędzi grafu G
funkcja ze zbioru E w zbiór
:
wszystkich podzbiorów jedno lub
dwuelementowych zbioru V.
Jeżeli
-
, to elementy p i q nazywamy końcami krawędzi e.
Przykład:
Graficzna prezentacja grafu:
Niech G
V E γ
V = {1, 2, 3},
gdzie:
E={a, b, c, d, e}
Zaś funkcja γ określona jest za pomocą tabeli:
f
γ f
a
{1}
b
{1,2}
c
{2,3}
d
{2,3}
e
{1,3}
Uwaga:
1 Pętla to krawędź łącząca wierzchołek z nim samym γ e
v v} = {v}).
2 Krawędź wielokrotna to taka która się powtarza jeżeli krawędzie e i f są różne i
γ e γ f to nazywamy je wielokrotnymi lub równoległymi .
Jeżeli w grafie G a i b nie są krawędziami równoległymi oraz
to mówimy że:



a
y i
b
Krawędzie a i b są krawędziami sąsiednimi lub przyległymi mają wspólny
wierzchołek y .
Wierzchołki y oraz y i z są wierzchołkami sąsiednimi.
Wierzchołek a także y jest incydentny do krawędzi a jest końcem tej
krawędzi.
yz,
Definicja grafu prostego. Graf bez krawędzi wielokrotnych i pętli nazywamy grafem
prostym.
Przykład:
Uwaga: W przypadku grafów bez krawędzi wielokrotnych w szczególności w
przypadku grafów prostych definicja grafu sprowadza się do podania zbioru
wierzchołków V i krawędzi w postaci p q gdzie p q V.
Zatem graf bez krawędzi wielokrotnych w szczególności prosty można zapisać jako:
pamiętając że
.
Definicja stopnia wierzchołka. Liczbę krawędzi incydentnych do danego wierzchołka v
z pętlami liczonymi podwójnie nazywamy stopniem wierzchołka v i oznaczamy deg(v).
Liczbę wierzchołków stopnia k oznaczamy Dk G i dla każdego grafu definiujemy ciąg
stopni wierzchołków grafu G D0(G), D1(G), D2 G … .
Uwaga:
1) Wierzchołek stopnia zerowego nazywamy wierzchołkiem izolowanym.
2) Wierzchołek stopnia pierwszego nazywamy wierzchołkiem końcowym lub wiszącym.
Definicja stopnia grafu. Stopniem grafu nazywamy najwyższy ze stopni jego
wierzchołków tzn. liczbę:
G
Przykład:
ma
deg v .
W powyższym grafie:





wierzchołki izolowane: 5 i x7
wierzchołki wiszące to 4 i x6
deg(x1)=2, deg(x2)=5, deg(x3)=4, deg(x8)=3
ciąg stopni wierzchołków tego grafu jest następujący 2 2 1 1 1 1
stopień tego grafu wynosi 5
Definicja grafu skierowanego. Grafem skierowanym lub digrafem G nazywamy
uporządkowaną trójkę
gdzie V jest niepustym zbiorem wierzchołków Ezbiorem krawędzi skierowanych łuków
odwzorowaniem zbioru E w zbiór
.
Definicja źródła i ujścia w grafie skierowanym.
Źródłem w digrafie nazywamy wierzchołek do którego nie wchodzi żaden łuk.
Wierzchołek digrafu który nie jest początkiem żadnego łuku nazywamy ujściem.
Definicja grafu ważonego. Grafem ważonym nazywamy graf w którym każdej krawędzi
przyporządkowana jest liczba rzeczywista zwana wagą tej krawędzi.
Przykład:
Definicja drogi. Drogą w grafie G nazywamy skończony ciąg krawędzi
1 … oraz istnieją wierzchołki
…
takie że
1… .
…
taki że
dla
Uwaga:
1) Wierzchołek nazywamy wierzchołkiem początkowym,
- wierzchołkiem
końcowym drogi.
2) Jeżeli w drodze wierzchołek początkowy pokrywa się z wierzchołkiem końcowym to
taką drogę nazywamy drogą zamkniętą.
Definicja drogi prostej. Drogą prostą lub ścieżką nazywamy drogę w której wszystkie
krawędzi są różne. Jeżeli
… jest drogą prostą to możemy identyfikować ją po
wierzchołkach przez które przechodzi.
Przykład:
Droga degbac jest drogą prostą .
Droga fkhkc nie jest drogą
prostą ponieważ krawędź k
powtarza się dwa razy.
Definicja cyklu w grafie. Zamkniętą drogę prostą której odpowiada ciąg wierzchołków
…
, nazywamy cyklem jeśli wszystkie wierzchołki
… są różne.
Przykład:
Droga dgba jest drogą prostą
zamkniętą.
Droga degba nie jest cyklem,
chociaż jest drogą prostą
zamkniętą ponieważ w ciągu
wierzchołków odpowiadających
tej drodze wierzchołek
powtarza się.
Definicja grafu acyklicznego. Graf nie zawierający cykli nazywamy grafem acyklicznym.
Definicja grafu spójnego. Graf G nazywamy spójnym wtedy i tylko wtedy, gdy każda para
jego różnych wierzchołków jest połączona drogą w tym grafie.
Zadanie komiwojażera
Dlaczego komiwojażera ?
Komiwojażer ma odwiedzić kilka miast każde dokładnie jeden raz i powrócić do
miasta z którego wyruszył przebywając łącznie najkrótszą najtańszą lub najszybciej
przebytą drogę. Znane są odległości koszty lub czas przejazdu między każdą parą
miast. Należy wyznaczyć komiwojażerowi trasę przejazdu tak aby mógł odwiedzić
każde miasto dokładnie jeden raz i całkowita droga koszt lub czas podróży była/był
możliwie najkrótsza/najmniejszy.
Definicja.
Drogą Hamiltona nazywamy drogę która przechodzi przez każdy wierzchołek grafu
dokładnie jeden raz.
Cyklem Hamiltona nazywamy cykl przechodzący przez wszystkie wierzchołki grafu.
Sformułowanie problemu.
Zbudujmy graf ważony którego wierzchołki są miastami. Każdą parę miast połączmy
krawędziami. Każdej krawędzi nadajemy wagę równą 'odległości' między miastami
odpowiadającymi wierzchołkom które są końcami tej krawędzi. Otrzymujemy w ten
sposób graf pełny który ma tyle wierzchołków ile miast musi odwiedzić komiwojażer
wliczając w to miasto z którego wyrusza . Odwiedzenie wszystkich miast odpowiada
cyklowi Hamiltona. Poszukujemy więc w grafie pełnym cyklu Hamiltona o minimalnej
sumie wag krawędzi.
Wniosek: Problem ten możemy sformułować w teorii n - wierzchołkowej sieci pełnej a
następnie znaleźć najkrótszy najtańszy lub najszybszy cykl Hamiltona.
Mamy
cykl a, b, c, d, e a
cykl a b e c d a
ma wagę 230
ma wagę 120
Teoretycznie problem komiwojażera można rozwiązać poprzez wyznaczenie
1
cykli Hamiltona i wybranie tego który ma najmniejszą sumę wag.
Już przy pięciu miastach wszystkich możliwych tras podróży komiwojażera jest
3 2 1
12 . Można zauważyć że przy wiekszej liczbie miast rozważanie
wszystkich możliwości nie jest najlepszym pomysłem.
Dla zobrazowania problemu sprawdzenia wszystkich możliwych permutacji
wierzchołków możliwych tras podam kilka obliczeń:
Dla 3 miast jest 1 możliwość
Dla miast są 3 możliwości
Dla 5 miast 12 tras
Dla 6 już 60 tras
Dla 7 miast 360
Dla 9 miast mamy 20 160 dróg
Dla 11 mamy 1 814 400
Dla 26 miast- 7 755 605 021 665 492 992 000 000 dróg.
Dlaczego rozwiązanie tego problemu zawsze istnieje ?
Dowolny graf pełny posiada co najmniej jeden cykl Hamiltona. Ponieważ graf ma
skończoną liczbę wierzchołków to w zbiorze cykli Hamiltona istnieje taki
(niekoniecznie jedyny który posiada minimalną sumę wag krawędzi.
Rozwiązując problem komiwojażera możemy wybrać jedną z dwóch metod:
 metodę dokładną np. metodę podziału i ograniczeń która wygeneruje dokładne
rozwiązanie ale działającą w czasie wykładniczym a więc metoda „wolna”
 metodę przybliżoną inaczej nazywaną metodą aproksymacyjną która generuje
rozwiązanie bliskie optymalnemu ale działającą w czasie wielomianowym.
Algorytmy przybliżone
Czas rozwiązywania problemu komiwojażera można zmniejszyć stosując jeden ze
znanych algorytmów przybliżonych które nie wymagają rozważania aż tak dużej liczby
przypadków. Jednak algorytmy takie nie zawsze znajdują optymalne rozwiązanie.
Stworzona przez nie trasa może być znacznie 'dłuższa' od najkrótszej. Stosowanie
algorytmów przybliżonych wynika z konieczności wyboru pomiędzy szybkością
znajdowania a 'jakością' znalezionego rozwiązania. Z reguły zakłada sie że wynik
działania takiego algorytmu nie może być gorszy od optymalnego o więcej niż pewna
ustalona z góry wartość.
Rozwiązania heurystyczne
Wyjaśnijmy najpierw słowo heurystyka – jest to praktyczna oparta na doświadczeniu
reguła postępowania która może znacznie uprościć lub skrócić proces rozwiązania
rozważanego problemu gdy metoda rozwiązania nie jest znana lub jest zawiła i
czasochłonna.
Jeśli w zadaniu mamy do czynienia z wieloma rozwiązaniami ważne jest szybkie
odrzucenie nieobiecujących kierunków poszukiwania rozwiązania. Zapewnia to
ogromne oszczędności na kosztach obliczeniowych a w rezultacie przyspiesza
znalezienie rozwiązania.
Metody heurystyczne pozwalają na znalezienie w akceptowalnym czasie przynajmniej
przybliżonego rozwiązania problemu choć nie gwarantują tego we wszystkich
przypadkach.
Skuteczności kroków heurystycznych nie można w pełni udowodnić teoretycznie
można jedynie pokazać doświadczalnie ich trafność.
Algorytmy mrówkowe
Owady żyjące w koloniach jak np. mrówki pszczoły rozwiązują w naturze złożone
zadania. Budowa gniazda lub poszukiwanie pokarmu to zadania które przekraczają
możliwości pojedynczego zwierzęcia. Jednak pojedynczy osobnik dysponuje
umiejętnościami które po wykorzystaniu przez pozostałych członków populacji danej
kolonii potrafią dać zaskakująco dobre rezultaty w rozwiązywaniu skomplikowanych
problemów. Jedną z grup takich naturalnych „społecznych” algorytmów występującą w
przyrodzie stanowią właśnie algorytmy mrówkowe.
Algorytmy te zawdzięczają swoją nazwę oraz ideę działania analogii do natury. W 1991
M. Dorigo A. Colornie oraz R. Maniezzo na podstawie wcześniejszych badań
wykonanych przez J. L. Deneubourga oraz S. Gossa, zainspirowani poszukiwaniem
pokarmu przez mrówki argentyńskie przenieśli zachowanie kolonii mrówek na szukanie
rozwiązań w kombinatorycznych problemach optymalizacyjnych.
Mrówki orientują się w poszukiwaniu pokarmu przy pomocy substancji chemicznej –
feromonu którą wydzielają z tylnej części swojego ciała poruszając się. Podążające za
nimi kolejne mrówki dokonują wyboru kierunku drogi na podstawie intensywności
pozostawionego feromonu. Substancja ta pełni rolę wspólnego mózgu kolonii zapisując
wybór drogi.
Obserwacje natury pokazują że mrówki wyznaczają swoje drogi bezpośrednio
pomiędzy swoim gniazdem a źródłem pokarmu. Fakt że droga ta jest najczęściej
najkrótsza wynika z tego że na drogach częściej uczęszczanych znajduje się większa
ilość feromonu i jest on dłużej zachowywany. W jednostce czasu może więc większa
ilość mrówek przebiec odcinek krótszy niż ten który jest dłuższy. Fakt że mrówki
wybierają zawsze krótszą drogę z większym prawdopodobieństwem powoduje że po
pewnym czasie droga między gniazdem a pokarmem jest bardzo bliska drodze
optymalnej.
Przykłady zastosowań
Rozwiązania problemu komiwojażera mają wiele praktycznych zastosowań:
- w transporcie
- w przemyśle np.: jeżeli maszyna wiertnicza ma zrobić kilka otworów w materiale
komputer powinien wymyślić taką drogę żeby trasa przejścia wiertła między punktami
była jak najkrótsza
- ramię automatycznej maszyny nitującej rozmieszczającej nity na skrzydle samolotu
porusza się z punktu do punktu i po umocowaniu n nitów w n różnych miejscach wraca
do punktu wyjścia optymalna droga poruszania się ramienia jest rozwiązaniem
odpowiedniego problemu komiwojażera .
- zestaw maszyn ma być użyty do wyprodukowania n elementów. Zmiana obrabianego
elementu na inny jest związana ze zmianą oprzyrządowania maszyny i koszty tej
dodatkowej czynności są znane optymalna kolejność wyprodukowania n elementów
jest rozwiązaniem problemu komiwojażera .
- także w poznawaniu struktury kryształów promień rentgenowski musi przejść w
krysztale przez kilka tysięcy punktów
Przepływ jednotowarowy w sieci
Definicja sieci przepływowej. Siecią przepływową (G, s, t, c), nazywamy graf skierowany
G=(V, E w którym wyróżniono wierzchołki : źródło s V i ujście t V oraz z każdą
krawędzią związana jest funkcja przepustowości :
0 taka że
0
0
Definicja przepływu w sieci. Przepływem w sieci (G, s ,t, c nazywamy funkcję
f:
spełniającą warunki:

dla

warunek ograniczenia przepustowości
dla
mamy

warunek skośnej symetrii
dla każdego
mamy
0
(warunek zachowania przepływu
Definicja wartości przepływu f. Wartość przepływu f oznaczamy |f| i definiujemy jako
sumaryczną wielkość przepływu wypływającego z s wszystkimi krawędziami
Definicja maksymalnego przepływu w sieci. Dla danej sieci (G, s, t, c przepływ f, którego
wartość będzie maksymalna
Nazywamy maksymalnym przepływem sieci G s, t, c)
Definicja przepustowości residualnej. Niech G s t c będzie siecią. f pewnym
przepływem w tej sieci. Przepustowością residualną pary wierzchołków (u, v) sieci
G s t c nazywamy liczbę
.
Definicja sieci residualnej. Siecią residualną dla sieci (G, s, t, c) indukowaną przez
przepływ f nazywamy sieć Gf, s, t, cf w której Gf = (V, Ef), przy czym
0.
Krawędzie sieci residualnej nazywamy krawędziami residualnymi.
Definicja ścieżki powiększającej. Dla danej sieci G s t c i przepływu f ścieżką
powiększającą p nazywamy każdą ścieżkę ze źródła s do ujścia t w sieci residualnej
(Gf, s, t, cf).
Twierdzenie Forda Fulkersona o maksymalnym przepływie i minimalnym przekroju
Niech (G, s, t, c będzie siecią przepływową. f – przepływem w tej sieci. Następujące
warunki są równoważne:
1 przepływ f jest maksymalny
2 sieć residualna Gf, s, t, cf nie zawiera ścieżek powiększających
3) dla pewnego przekroju (S, T) w sieci (G, s, t, c) zachodzi |f| = c = (S, T)
Podstawowy algorytm Forda-Fulkersona brzmi następująco:

Wyzeruj wszystkie przepływy w sieci

Dopóki w sieci residualnej istnieje ścieżka rozszerzająca p zwiększaj przepływ o
cf p wzdłuż kanałów zgodnych z kierunkiem ścieżki a zmniejszaj przepływ
wzdłuż kanałów przeciwnych (wygaszanie przepływu . Przepływ sieciowy
rośnie o cf(p).
Aby lepiej zrozumieć ten algorytm oprzyjmy się na prostym przykładzie. Oto nasza sieć
przepływowa. W kanałach zaznaczyliśmy ich przepustowości. Przepływy są zerowe.
Również przepływ sieci f
0.
Dla zerowych przepływów sieć residualna jest identyczna z siecią pierwotną. Szukamy
w niej ścieżki rozszerzającej która połączy źródło s z ujściem t. Takich ścieżek może być
wiele. Umówmy się że wybieramy najkrótszą z nich mającą najmniej krawędzi . Na
przykład może to być ścieżka:
Na ścieżce p znajdują się trzy kanały sieci residualnej: s A A B i B t . Przepustowość
residualna cf p ścieżki jest równa najmniejszej przepustowości residualnej jej kanałów.
Najmniejszą przepustowość residualną posiada kanał B-t dla którego cf(B,t) = 6.
Zatem wzdłuż krawędzi ścieżki przepływ można zwiększyć o 6 jednostek. O tyle rośnie
również przepływ sieciowy czyli
| fnowy | = | fstary| + cf(p) = 0 + 6 = 6
Zwiększenie przepływu w kanale sieci pierwotnej o cf(p) odpowiada zmniejszeniu
przepustowości residualnej tego kanału. Jednocześnie wraz z pojawieniem się
przepływu w kanale sieci pierwotnej powstaje kanał przeciwny w sieci residualnej o
przepustowości residualnej równej przepływowi. Nasza sieć residualna wygląda teraz
następująco:
Przepustowość residualna kanału s A wynosi 3 - oznacza to iż kanałem tym można
wciąż jeszcze przesłać trzy dodatkowe jednostki przepływu. Zwróćmy uwagę iż w siei
residualnej pojawił się kanał przeciwny A s o przepustowości residualnej cf(A,s) = 6.
Kanał A B może jeszcze przesłać 1 dodatkową jednostkę przepływu. Również tutaj
pojawił się kanał przeciwny o przepustowości residualnej równej 6.
Kanał B t przestał istnieć w sieci residualnej ponieważ osiągnął już swoją maksymalną
przepustowość - 6 jednostek przepływu. Nie może on być dalej wykorzystywany do
powiększania przepływu. Na jego miejscu mamy jednak kanał przeciwny z
przepustowością residualną równą 6.
W nowej sieci residualnej szukamy kolejnej ścieżki rozszerzającej:
Przepływ zwiększamy f
6 + 3 9 i modyfikujemy przepustowości residualne
krawędzi ścieżki rozszerzającej otrzymując nową sieć residualną:
Z sieci residualnej znikają kanały s A i A C - wykorzystały już swój potencjał
zwiększania przepływu. Szukamy kolejnej ścieżki rozszerzającej:
p
s D E t cf(p) = 6
Przepływ zwiększamy f
9 + 6 15. Wzdłuż ścieżki rozszerzającej modyfikujemy
odpowiednio przepustowości residualne kanałów i otrzymujemy nową sieć residualną:
W nowej sieci residualnej zniknął kanał D E . Wciąż jednakże możemy znaleźć nową
ścieżkę rozszerzającą:
p
Przepływ zwiększamy f
otrzymujemy:
15 + 3
s D C t cf(p) = 3
18. Po zmodyfikowaniu sieci residualnej
W tej sieci residualnej nie znajdziemy już żadnej ścieżki rozszerzającej - ze źródła s nie
wychodzi żaden kanał. Otrzymaliśmy maksymalny przepływ. Z sieci residualnej można
w prosty sposób przejść do sieci przepływowej wraz z rozkładem przepływów na
poszczególne kanały. Wystarczy od przepustowości kanałów odjąć otrzymane
przepustowości residualne - dla nieistniejących kanałów ich przepustowość residualna
wynosi 0. W efekcie otrzymamy następującą sieć przepływową z wyznaczonym
maksymalnym przepływem sieciowym:

Podobne dokumenty