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)
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. 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.
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).
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 http://maps.google.com/biking
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)