Skocz do zawartości

Public disclosure

  • wpisy
    20
  • komentarzy
    161
  • wyświetleń
    24221

[Kółka i kreski]Czyli krótka rozprawa o grafach


Hakken

1313 wyświetleń

Przedsłowie

Czemu mnie tak długo nie było?

No cóż, najpierw sesja, potem nie miałem weny. Wybaczcie.

Czemu jakieś badziewne grafy jak miała być kryptologia?

Bo uświadomiłem sobie, że żeby zrobić następny wpis kryptologiczny musiałbym powiedzieć więcej o rachunku prawdopodobieństwa i ekstraktorach losowości. Zajęłoby mi to ze dwa miesiące i byłoby to dość nudne, więc postanowiłem zająć się czymś lżejszym. Z bólem serca, bo kryptologia to bardzo ciekawy temat, ale tak jak przed chwilą napisałem - wymaga sporo wiedzy żeby móc się nim poważnie zająć.

Abstrakt

Graf to, mówiąc najprościej, wierzchołki połączone krawędziami.

Używa się ich często do modelowania zjawisk ze świata rzeczywistego, takich jak rozmieszczenie miast, połączenia pociągowe czy relacje między poszczególnymi osobami.

Definicja

Grafem skierowanym ql_d9b723432254592be6479ab4c20b8421_l3.png nazwiemy parę ql_827238e5d380ae7a10b4c825dd387104_l3.png, gdzie V jest skończonym zbiorem wierzchołków, a E relacją binarną w V. Zbiór E nazwiemy zbiorem krawędzi, a jego elementy krawędziami.

Grafem nieskierowanym nazwiemy parę ql_827238e5d380ae7a10b4c825dd387104_l3.png, gdzie V jest zbiorem wierzchołków jak wyżej, natomiast E to zbiór nieuporządkowanych par wierzchołków.

Różnica między grafem nieskierowanym a skierowanym jest więc taka, że w grafie nieskierowanym para ze zbioru krawędzi ql_68579cfd0b66e2bd77e1b687873777aa_l3.png, a w grafie skierowanym nie.

Kolokwialnie rzecz ujmując, graf to wierzchołki (punkty) i łączące je krawędzie. W grafie skierowanym krawędzie mają strzałki - działają tylko w jedną stronę. W nieskierowanym krawędzie nie mają strzałek - działają w obie strony.

Przykłady

Poniżej jest wykonany rysunek (1.1) grafu skierowanego dla ql_1fdd7ca3e9251bb8e9ef366a89d4238b_l3.png.

2u4u3bt.jpg

Tutaj natomiast jest przykład (1.2) grafu nieskierowanego, dla ql_2c9ab55747b68e8a59d1a950652a7e0d_l3.png.

14o3h1d.jpg

Oznaczenia

W grafie skierowanym mówimy, że krawędź wychodzi i wchodzi do wierzchołka. Na przykładzie 1.2 powiemy, że krawędź wychodzi z wierzchołka 4 a wchodzi do wierzchołka 1.

Jeżeli dwa wierzchołki są połączone krawędzią, to mówimy, że są one sąsiadami. W grafie nieskierowanym relacja bycia sąsiadem jest oczywiście symetryczna, czyli jeśli v jest sąsiadem u, to u jest sąsiadem v.

W grafie skierowanym jest inaczej, jeśli u jest sąsiadem v, to v nie musi być sąsiadem u. Na przykładzie 1.2 3 jest sąsiadem 6, ale 6 nie jest sąsiadem 3.

Stopniem wierzchołka w grafie nieskierowanym nazywamy liczbę krawędzi w których dany wierzchołek uczestniczy, na przykładzie 1.2 stopień wierzchołka 2 to 2, a wierzchołka 5 to 1.

W grafie nieskierowanym stopień wejściowy wierzchołka to liczba krawędzi wchodzących do tego wierzchołka, a stopień wyjściowy to liczba krawędzi z niego wychodzących.

Stopień wierzchołka w grafie nieskierowanym to suma stopnia wejściowego i wyjściowego.

Dla wierzchołka 2 w przykładzie 1.1 jego stopień wejściowy to 2, wyjściowy 3, a więc stopień w ogóle to 5.

Ścieżka o długości k pomiędzy wierzchołkami v i u to taki zbiór wierzchołków ql_e0907c778cdfd3d1a809a467a178c642_l3.png, że każdy jest sąsiadem swojego poprzednika oraz ql_175919aa1fcab6af58c56d4c1374bdfe_l3.png.

Długość ścieżki to liczba wierzchołków wchodzących w skład ścieżki (inaczej mówiąc jest to moc wyżej zdefiniowanego zbioru).

Jeżeli istnieje ścieżka p z wierzchołka u do v, to powiemy, że v jest osiągalny z v po ścieżce p.

Cyklem nazwiemy taką ścieżkę ql_e0907c778cdfd3d1a809a467a178c642_l3.png, że ql_6c03e07153ec2b3ae559620b61d2dc96_l3.png oraz długość ścieżki jest niezerowa.

Graf który nie zawiera cykli nazywamy acyklicznym.

Spójność

Graf nieskierowany jest spójny jeżeli każde dwa wierzchołki są przez siebie osiągalne.

Spójne składowe to klasy abstrakcji relacji bycia osiągalnym. Kolokwialnie mówiąc, jeśli istnieje ścieżka z jednego wierzchołka do drugiego, to są one w ten samej spójnej składowej.

Na przykładzie 1.2 mamy trzy spójne składowe: są to zbiory wierzchołków: ql_831807555ccadea5c55be9c53a482afa_l3.png. Oczywiście graf nieskierowany jest spójny wtedy, i tylko wtedy, gdy ma tylko jedną spójną składową (jest nią wtedy cały graf).

Graf skierowany jest silnie spójny jeżeli każde dwa wierzchołki są osiągane jeden z drugiego.

Analogicznie tworzymy silne spójne składowe. Są to klasy abstrakcji relacji bycia wzajemnie osiągalnym.

Na przykładzie 1.1 mamy trzy silnie spójne składowe: ql_0dc7e58cffd9d0d00d8e17eb17744155_l3.png.

Ważenie grafu

Graf jest ważony, jeżeli zdefiniujemy koszt przejścia po każdej krawędzi.

Dodajmy wagi do grafu z przykładu 1.1

wt7odt.jpg

Można w taki sposób prezentować np. koszt biletów pociągowych między miastami. Naturalnie nasuwającym się pytaniem jest "jak najtaniej przejechać z miasta A do miasta B?". Dla tego przykładu rozpatrzmy przejście z wierzchołka 1 do 4.

Możemy przejść z 1 do 2 i z 2 do 4. Taka ścieżka ma sumaryczny koszt równy 7.

Ale można też przejść z 1 do 2, z 2 do 5 i na koniec z 5 do 4. Taka ścieżki mimo, że jest dłuższa, to koszt jest mniejszy (wynosi 6).

Algorytm rozwiązujący ten problem ogólnie to algorytm Dijkstry, ale nie będę teraz o nim pisał, być może poświęcę mu osobny wpis.

Myślę, że na początek starczy. W następnym wpisie zajmę się najprawdopodobniej drzewami (nie, nie zmieniłem zainteresowań z matematyki/informatyki na botanikę wink_prosty.gif).

Jak zawsze zachęcam do komentowania, zadawania pytań i dyskutowania!

5 komentarzy


Rekomendowane komentarze

O algorytmach grafowych z pewnością wpis się pojawi, tylko nie wiem jeszcze czy najpierw przedstawić drzewa, a potem zająć się algorytmami i grafowymi i drzewami, czy najpierw zrobić algorytmy grafowe, a potem drzewa i algorytmy doń.

Link do komentarza

Coś nawala ze stronką, na której zamieniam LaTeX na grafiki, przez to obrazki się nie ładują. Przepraszam wszystkich, będę musiał pomyśleć nad rozwiązaniem...

Link do komentarza
Gość
Dodaj komentarz...

×   Wklejony jako tekst z formatowaniem.   Wklej jako zwykły tekst

  Maksymalna ilość emotikon wynosi 75.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...