Upload
lamminh
View
218
Download
1
Embed Size (px)
Citation preview
Zastosowanie teorii grafów w
Geograficznych Systemach
Informacyjnych
Katarzyna Lange Centrum GIS Uniwersytet Gdański Wydział Oceanografii i Geografii
Najważniejsze osiągnięcia teorii grafów były rezultatem prób rozwiązania
zadań praktycznych.
• dział matematyki i informatyki
• w informatyce graf to najbardziej skomplikowana podstawowa strukturą danych
• grafy dostarczają nam potężne możliwości tworzenia różnego rodzaju relacji pomiędzy danymi, które można wiązać na wiele różnych sposobów, reprezentując lub modelując złożone zależności z otaczającego nas świata
• 1736 rok , publikacja szwajcarskiego matematyka Leonhada Eulera
• problem wyznaczenia trasy poprzez 7 mostów Królewca (w dawnych Prusach Wschodnich) tak aby przez każdy most przejść tylko raz
• Twierdzenie zakłada, że każdy graf składający się z więcej niż 2 węzłów podłączonych do nieparzystej liczby krawędzi nie może być przemierzony tylko raz
Źródło:www.agh.pl
• zbiór wierzchołków, które mogą być połączone krawędziami, w taki sposób, że każda krawędź kończy się i zaczyna w którymś,
• wierzchołki grafu zwykle są numerowane i czasem stanowią reprezentację jakichś obiektów,
• krawędzie mogą obrazować relacje między takimi obiektami,
• prosty lub graf nieskierowany to uporządkowana para G := (V,E) gdzie: V jest niepustym zbiorem. Elementy tego zbioru nazywamy wierzchołkami, E jest rodziną dwuelementowych podzbiorów zbioru wierzchołków V, zwanych krawędziami. Wierzchołki należące do krawędzi nazywane są jej końcami;
• to uporządkowana para G := (V,a)
gdzie: V jest zbiorem wierzchołków, ‘a’
jest zbiorem uporządkowanych
par różnych wierzchołków ze zbioru V,
zwanych krawędziami skierowanymi,
lub łukami
• np. program udzielający wskazówek nawigacyjnych musi pamiętać informacje o ulicach jednokierunkowych, aby nie udzielać błędnych rad.
• Modelują związki, w których jest znana wartość liczbowa, nazywana wagą, dotycząca zależności między wierzchołkami (u,v). Wierzchołkami mogą być również dowolne informacje nieliczbowe.
• np. Krawędź między miastami A i B może zawierać zarówno odległość jak i czas podróży między nimi.
• najczęściej stosowany w GIS i kartografii,
• służy do wyznaczania najmniejszej odległości spośród wszystkich połączeń,
• poszczególne krawędzie grafu mogą posiadać wagi, które definiują koszt przejścia z jednego wierzchołka do drugiego po danej krawędzi,
• dla każdego z węzłów należącego do grafu algorytm wyznacza koszt dojścia do danego węzła z węzła początkowego oraz numer węzła poprzedzającego na najkrótszej ścieżce z węzła początkowego do danego węzła.
Metoda Dijkstry polega na wprowadzeniu podziału zbioru wierzchołków grafu na trzy zbiory:
• zbiór Q, w którym znajdują się wierzchołki, do których „dotarł” już algorytm, ale nie możemy jeszcze określić, czy znaleziono do nich najkrótszą ścieżkę ze źródła
• zbiór S, w którym znajdują się wierzchołki (węzły) grafu o już ustalonej najkrótszej ścieżce ze źródła, dalej nie będą już rozpatrywane w algorytmie
• pozostałe węzły, czyli zbiór V- Q – S, gdzie V jest
zbiorem wszystkich wierzchołków grafu G = (V, E)
Dla przykładowego grafu skierowanego
G = (V,E), gdzie
V = {1,2,3,4,5,6} (węzły)
E= {(1-2,3),(1-4,3),(2-3,2),(3-1,6),
(3-6,1),(4-5,1),(5-3,1),(5-6,2),(6-4,3)}
– wartości poszczególnych krawędzi.
2. Algorytm wyznacza najniższy
koszt dojścia do każdego z
pozostałych węzłów w grafie.
Tworzone są dwa zbiory:
S – należą do niego węzły, dla
których policzono najmniejszy koszt
Q - węzły jeszcze nie przetworzone.
3. Każdemu z węzłów v ustawiamy koszt dojścia d(v) równy nieskończoności. Dla węzła początkowego ustawiamy d(1) = 0. Poprzedzający go węzeł na najkrótszej ścieżce ustawiamy p(1)=0
węzeł 1 2 3 4 5 6
d(węzeł) 0 ∞ ∞ ∞ ∞ ∞
p(węzeł) 0 0 0 0 0 0
4. W zbiorze Q wyszukujemy węzeł o najmniejszym d. Węzeł ten jest przepisany do zbioru S i sprawdzamy wartość wszystkich d sąsiadów przeniesionego węzła ( węzły nr 2 i 4). Jeśli d(2) lub d(4) jest większe od kosztu d(1) + waga krawędzi do sprawdzanego węzła, to zmieniamy d i p dla tych wierzchołków.
węzeł 1 2 3 4 5 6
d(węzeł) 0 3 ∞ 3 ∞ ∞
p(węzeł) 0 1 0 1 0 0
W zbiorze Q szukamy węzła o najmniejszym d. Są dwa o najmniejszym d- 2 i 4. d(2) = d(4) = 3. Wybieramy jeden z nich ( np.: 3) i przenosimy go do zbioru S. Wierzchołek 2 posiada tylko jednego sąsiada – 3. Zmieniamy odpowiednio d(3) i p(3)
węzeł 1 2 3 4 5 6
d(węzeł) 0 3 5 3 ∞ ∞
p(węzeł) 0 1 2 1 0 0
Całość powtarzamy tak długo aż w zbiór Q nie
będzie pusty.
węzeł 1 2 3 4 5 6
d(węzeł) 0 3 5 3 4 ∞
p(węzeł) 0 1 2 1 4 0
węzeł 1 2 3 4 5 6
d(węzeł) 0 3 5 3 4 6
p(węzeł) 0 1 2 1 4 5
węzeł 1 2 3 4 5 6
d(węzeł) 0 3 5 3 4 6
p(węzeł) 0 1 2 1 4 5
Węzeł 3 posiada dwóch sąsiadów 1 i 6. Ponieważ 1 jest już w zbiorze S, nie jest brany pod uwagę. d(6) = 6 czyli dokładnie to samo co d(3) + waga (3-6)=5+1=6. Dlatego wartości dla węzła 6 nie są zmieniane. Przeniesienie do zbioru S ostatniego węzła ze zbioru Q nie powoduje również zmian w tablicy d, ponieważ węzeł ten nie posiada innych sąsiadów.
węzeł 1 2 3 4 5 6
d(węzeł) 0 3 5 3 4 6
p(węzeł) 0 1 2 1 4 5
Po zakończeniu przetwarzania, w tablicy d mamy najmniejszy koszt dojścia do poszczególnych węzłów w grafie.
Źródło: Film własny
Jakie zastosowanie mają grafy?
Ze względu na wrodzoną prostotę , teoria grafów znajduje szerokie zastosowanie w
• technice,
• naukach fizycznych,
• społecznych i biologicznych ,
• lingwistyce
•medycynie i wielu innych dziedzinach
•Graf można stosować do przedstawiania prawie każdej sytuacji fizycznej, w której występują obiekty dyskretne i relacje zachodzące między nimi.
• zestaw narzędzi dostępnych w programie ArcGis umożliwiających rozwiązywanie problemów związanych z komunikacją i transportem,
• Znajduje drogę z jednego punktu do drugiego, także uwzględniając punkty po drodze.
• Pozwala na obliczenie całkowitej drogi, czasu itp. Pozwala uwzględnić przepisy ruchu
• drogowego takie jak ruch jednostronny, zakaz wjazdu dla pojazdów ciężarowych czy
• ruch prawo- lub lewostronny. np. autobusy zatrzymują się zawsze po jednej stronie
• ulicy.
• Dysponując wieloma pojazdami transportowymi, drogę i punkty docelowe można
• podzielić równomiernie dla każdego z pojazdów, także w ten sposób aby punkty
• docelowe były rozmieszczony w grupach dość blisko siebie dla jednego pojazdu.
• Ponadto narzędzie pozwala uwzględnić czas otwarcia punktów docelowych jak i
• przerwy w pracy kierowcy.
• Pokazuje sieć punktów źródło-cel oraz zależności między mini (droga czas przejazdu)
• pozwala to na analizę np. znalezienie najkrótszej drogi.
• Pokazuje teren zasięgu z wybranego punktu na podstawie czasu dojazdu. Przykład
• zastosowania: Obręb miasta pozwalający na dowiezienie towaru z hipermarketu do
• klienta wraz z podziałem na strefy bezpłatne (blisko) i płatne (dalej).
• Pozwala na obliczenie drogi z punktu źródłowego do każdego miejsca w zasięgu. W
• ten sposób można znaleźć tereny nie objęte zasięgiem punktu lub gdzie droga i czas
• jest zbyt długi. Jako przykład w kursie Network Analyst pod uwagę wzięte jest
• rozmieszczenie posterunków straży pożarnej. Pozwala to obliczyć maksymalny czas
• potrzebny na dojazd do miejsca pożaru.
• biblioteka oprogramowania dla Pythona służącą do tworzenia manipulacji i analizy struktury dynamiki i funkcji sieci,
• oprogramowanie to dostarcza struktury danych dla grafów (lub sieci) razem z algorytmami grafu, generatorami i narzędziami rysującymi,
• struktura NetworkX może być postrzegana jako zorganizowanie kodu źródłowego.
Zalety NetworkX
• Struktury typowe dla języka Python dla grafów, grafów skierowanych i multigrafów • Węzły mogą być czymkolwiek ( np.: tekstem, obrazem,
rekordem XML) • Krawędzie mogą przechowywać dane bezwzględne ( np.:
wagi, serie czasowe) • Generatory dla klasycznych grafów, grafów losowych i sieci
symetrycznych • Standardowe algorytmy teorii grafów • Pomiar i analiza struktury sieci • Podstawowe narzędzia do kreślenia grafów • Bardzo dobrze przetestowana • Dodatkowo dzięki zastosowaniu Pythona do rozwoju
biblioteki- szybko rozwijalna, łatwa do nauki i dostępna dla wielu platform sprzętowych i softwarowych.
• potężne możliwości tworzenia różnego rodzaju relacji pomiędzy danymi, które można wiązać na wiele różnych sposobów, reprezentując lub modelując złożone zależności z otaczającego nas świata.
• Grafy możemy zaimplementować w postaci tablicy określającej rodzaj połączenia oraz jego etykietę lub dynamicznie korzystając ze wskaźników.
Źródło: http://home.agh.edu.pl/~horzyk/lectures/pi/ahdydpiwykl9.html
• Prosty, spójny i ważony graf skierowany G nazywa się siecią transportową ( lub przepływową), jeżeli waga związana z każdą krawędzią skierowana w grafie G jest liczbą nieujemną .
• W sieci transportowej liczba ta reprezentuje pojemność krawędzi i jest oznaczana symbolem c ᵢ ᶨ dla krawędzi skierowanej z wierzchołka i do wierzchołka j .
• Pojemność krawędzi .Można interpretować jako maksymalną ilość pewnego dobra ( tj. woda, gaz , energia elektryczna, liczba samochodów ze stacji i do stacji j ) przenoszonego wzdłuż krawędzi (i, j) w jednostce czasu w stanie ustalonym.
• Graf można wykorzystać jako model sieci rurociągów , prze którą transportuje się pewne dobro z jednego miejsca do innego.
• Problem ogólnym w takiej sieci transportowej (zwanej także siecią przepływów) jest maksymalizacja przepływu lub minimalizacja kosztu określonego przepływu.
• Jest to zagadnienie badań operacyjnych i można je rozwiązać za pomocą programowania liniowego , jednakże okazało się , że podejście oparte na teorii grafów jest bardziej efektywnie obliczeniowo. W niniejszym punkcie zobaczymy, jak problemy przepływów w sieciach można sformułować i rozwiązać stosując grafy.
1. Projekt byCycle.org
• Projekt został stworzony aby planować ścieżki rowerowe o zadanych parametrach: trudność i bezpieczeństwo. Trudność była określana jako : stroma, mniej stroma za pomocą wcześniejszego użycia funkcji Slope.
• Wyznaczanie ścieżek było oparte o Algorytm Dijkstry.
• 5.07.2011- zaprzestano nad nim pracować i rozwijać.
2. Ride city
• wyznacza trasę rowerową dla wybranych miast w Stanach, Kanadzie, Australii, Francji oraz Hiszpanii
• w tym przypadku również podajemy punkt początkowy i końcowy
• mamy możliwość wybrania jednego z trzech parametrów:
bezpieczne (safe), bezpieczniejsze (safer) bezpośrednie (direct).
Wyznaczenie trasy rowerowej w zależności od dwóch
parametrów: • typu drogi (Route Type) • preferencji (preference).
Typ drogi jest określany jako: uwzględniający główne ciągi
komunikacyjne (Major Roads Included) lub wyznaczający trasę wzdłuż ścieżek rowerowych lub dróg, po których mają prawo jeździć rowery (Designated + Alternate cycling Roads). Preferencje zostały określone jako:
• ograniczające maksymalne nachylenie (Restricted maximum Slope),
• najmniejsze zanieczyszczenia w wyniku korków (Least Traffic Pollution),
• najmniej strome (Least Elevation Gain), • najbardziej zalesione trasy (Most Vegetated Route) • najkrótsze trasy (Shortest Path Route).
http://maps.google.com/biking
• Najbardziej znanym serwisem umożliwiającym wyznaczenie trasy za pomocą Algorytmu Dijkstry jest Google Maps, który pozwala wyznaczyć, tak samo jak trasę samochodową, trasę rowerową.
• Google Maps daje możliwość przejazdu przez kilka wybranych punktów, określonych przez użytkownika
Zastosowanie teorii grafów z użyciem algorytmu Dijskstry daje możliwość uzyskania najkrótszych tras w transporcie, a co za tym idzie zaoszczędzenia:
czasu
nerwów (korki) funduszy finansowych (np.paliwo) zmniejszenia eksploatacji części dostosowania trasy do określonych wag , które mogą być
reprezentowane zarówno jakościowo jak i ilościowo (przejazdu przez drogi a atrakcyjniejszym wykładniku wagowym)