folie z wykładu

Transkrypt

folie z wykładu
Krzysztof T. Zwierzy ski
Algorytmy rysowania grafów
Plan wykładu
Definicje
Rysowanie grafów planarnych
Rysowanie grafów na okr gu
Rysowanie grafów w ograniczonym obszarze
Rysowanie grafów metod Pisanskiego
Przekształcenia współrz dnych wierzchołków grafów
Edytor grafów
Kryteria oceny rysunków grafów
Metody rysowania grafów do wyszukiwania klik w grafach
Rysunki grafów w 3D
Informatyka, Sem III, Optymalizacja kombinatoryczna
Pozna , 8 grudnia 2003 r.
Definicje
Graf
G = (V, E)
→
x = x1, x2, x3...., xn
Linie proste
x = x1, x2, x3...., xn
y = y1, y2, y3...., yn
G = (V, E, x, y)
y = y1, y2, y3...., yn
Rysunki grafów – typy kraw dzi
Linie krzywe
+ informacja o pozycji ka dej kraw dzi
(punkty charakterystyczne krzywych Beziera:
punkty pocz tkowe i ko cowe, punkty
kontrolne)
Linie łamane
+ informacje o punktach łamania kraw dzi
Linie z grotami
+ informacje o skierowaniu grotów
Format .poz
Rysunki grafów zapisywane s w plikach tekstowych z rozszerzeniem .poz. Ka da nowa linia
w pliku oznacza nowy graf. Elementy ci gu opisuj cego rysunek grafu rozdzielone s
znakiem spacji. Spacja powinna by równie na ko cu tego ci gu.
gdzie:
np.:
n kod_grafu x1 y1 x2 y2 ... xn yn
n – liczba wierzchołków grafu
kod_grafu – ci g zer i jedynek b d cy zło eniem w jeden wektor elementów górnego
trójk ta macierzy przyległo ci
xi yi – współrz dne x i y wierzchołka o indeksie i
4 111111 15 295 295 295 295 15 15 15
2
Rysowanie grafów planarnych
Twierdzenie (Fáry)
Je eli graf jest planarny, to mo na przestawi go na rysunku w postaci, w której
wszystkie kraw dzie nie krzy uj si i s odcinkami linii prostych.
Rysunek grafu planarnego o takich wła ciwo ciach nazywa si Fáry embedding.
Algorytm testowania czy graf jest planarny (Hopcroft-Tarajan 1974) zło ono O(n)
Twierdzenie (Euler)
Graf rz du n ≥ 3 z k kraw dziami nie jest planarny, je eli k > 3n − 6.
Twierdzenie (K. Kuratowski, 1930). Graf jest planarny wtedy i tylko wtedy, gdy
nie zawiera podgrafu homeomorficznego do K5 lub K3,3.
Algorytm rysowania grafów planarnych
3
Rysowanie grafów na okr gu
(Xmin, Ymin)
(Xmin+ 15, Ymin+ 15)
(Xmax/2, Ymax/2)
(Xmax− 15, Ymax− 15)
(Xmax, Ymax)
Zało enie: Xmin = 0, Ymin = 0, Xmax = 310, Ymax = 310, π = 3.1415
Algorytm rozmieszczania wierzchołków na okr gu
Dane:
n – liczba wierzchołków,
Xmin, Ymin, Xmax, Ymax – zakres dopuszczalnych warto ci nowych
współrz dnych wierzchołków,
Wynik:
x, y – wektory opisuj ce nowe współrz dne wierzchołków.
Metoda:
1. Oblicz:
xmax := (Xmax - Xmin - 30)/2
ymax := (Ymax - Ymin - 30)/2.
2. Dla kolejnych wierzchołków i (1 ≤ i ≤ n) oblicz:
dpni := 2⋅(i - 1)⋅π/n;
xi := xmax + 0.9⋅xmax⋅sin(dpni) + 15;
yi := ymax + 0.9⋅ymax⋅cos(dpni) + 15;
Zło ono : O(n).
Przykład
4
Rysowanie grafów w ograniczonym obszarze
Losowe rozmieszczenie wierzchołków
Arbitralne rozmieszczenie wierzchołków (np. na okr gu)
Rozmieszczenie wierzchołków sterowane r cznie
5
Rysowanie grafów metod Pisanskiego
Wyznaczenie macierzy wektorów własnych
− 0.447 0.395
0.395
− 0.447 − 0.103 − 0.103
0.000
0.000
0.302
0.302
0.144
0.144
− 0.542 − 0.542 − 0.559 − 0.559
− 0.447 − 0.395 − 0.395
− 0.447 0.103
0.103
B=
− 0.224 0.498
0.498
− 0.224 − 0.498 − 0.498
0.000
0.000
0.500
0.500
0.302
0.302 − 0.144 − 0.144
− 0.542 − 0.542 0.559
0.559
0.240
0.240 − 0.351 − 0.351
0.240
0.240
0.351
0.351
− 0.224 − 0.292 − 0.292 − 0.500
− 0.224 0.292
0.292 − 0.500
0.240
0.240
0.240
0.240
− 0.208 − 0.208
0.208
0.208
Uwaga! Posta macierzy zale y od etykietowania wierzchołków w grafie
Dobór wektorów
a)
b)
c)
d)
a) kolumny 1-2, b) 1-4, c) 1-5, d) 2-7
6
Przekształcenia współrz dnych wierzchołków grafów
Normalizacja
→
Przyci ganie wierzchołków do w złów siatki
Transformacje
Obroty
Przesuni cia
Odbicia
Skalowanie
Grawitacja
wx v +
xv ' =
wy v +
xi
i∈N ( v )
w + N (v )
yv ' =
,
yi
i∈N ( v )
w + N (v )
Antygrawitacja
wxv +
xv ' =
wyv +
xi
i∈N ( v )
w + N (v )
yv ' =
"Spr yna"
7
yi
i∈N ( v )
w + N (v )
Edytor grafów
Dodawanie/usuwanie wierzchołków
Przemieszczanie wierzchołków za pomoc myszki
Dodawanie/usuwanie kraw dzi mi dzy dwoma wierzchołkami
Zaznaczanie/odznaczanie grupy wierzchołków
Przemieszczenie grupy wierzchołków za pomoc myszki
Usuwanie grupy wierzchołków
Usuwanie/dodawanie kraw dzi mi dzy zaznaczon grup wierzchołków
Zamiana podgrafu indukowanego przez zaznaczon grup wierzchołków
na dopełnienie
Widok macierzy przyległo ci
Dodawanie i usuwanie kraw dzi w macierzy
Wy wietlanie informacji pomocniczych o wierzchołkach
Numer wierzchołka, stopie wierzchołka
8
Kryteria oceny rysunków grafów
Liczba skrzy owa kraw dzi
Algorytm zliczania skrzy owa kraw dzi (wierzchołki na okr gu)
Dane:
n – liczba wierzchołków, A – macierz przyległo ci grafu.
Wynik:
cr – liczba skrzy owa .
Metoda:
1. Przypisz cr := 0;
2. Dla ka dej kraw dzi {i, j} wyst puj cej w grafie okre l z iloma innymi si
krzy uje zwi kszaj c odpowiednio cr.
Wiadomo, e nie krzy uj si kraw dzie o etykietach {1, n} oraz {a, a+1},
gdy le na obwodzie grafu.
Ka da kraw d {i, j} dzieli zbiór wierzchołków grafu na dwa podzbiory B
(wierzchołki {i + 1, j −1}) i C (wierzchołki {j + 1, n} ) i tylko kraw dzie,
które ł cz te ró ne podzbiory krzy uj si z dan kraw dzi .
Zło ono : O(n3).
Algorytm zliczania skrzy owa (ogólny)
Liczba punktów przeci
Definicja. Punkt przeci cia nazywamy miejsce skrzy owania si co
najmniej dwóch kraw dzi.
Suma k tów mi dzy kraw dziami
Symetria – rozbicie zbioru wierzchołków grafu na orbity
Trudno z rysowaniem grafów asymetrycznych, czyli takich, które maj
tylko jeden automorfizm.
9
Optymalizacja rysunków grafów
Wykorzystanie losowych transpozycji
(czyli zamiana miejscami dwóch wylosowanych wierzchołków)
Wykorzystanie losowych permutacji
Algorytm minimalizacji liczby skrzy owa metod indukowania losowej
permutacji
Dane:
n – liczba wierzchołków, A – macierz przyległo ci, x, y – ci gi
opisuj ce współrz dne wierzchołków, s – liczba powtórze .
Wynik:
A' – macierz przyległo ci.
Metoda:
1. B := A, A' := A.
2. Oblicz liczb skrzy owa cr := countCCR (B, x, y).
3. Powtórz s razy:
a) wylosuj losow permutacj ,
b) indukuj permutacj B := induceP(n, , B),
c) oblicz cr := countCCR (B, x, y),
d) Je eli cr jest mniejsze od CCR to, A' = B, CCR := cr.
Zło ono : Zale y od liczby powtórze oraz od zło ono ci indukowania
permutacji i zliczania skrzy owa .
cr = 15
cr = 11
cr = 8
Wykorzystanie bazy danych rysunków mniejszych grafów
10
cr = 4
Wykorzystanie przekształcenie grawitacja i antygrawitacja
Metryka
D ( x, x ' , y , y ' ) =
n
i =1
(x − x')2 + ( y − y')2
Wykorzystanie przekształcenia spr yna
Wykorzystanie metaheurystyk
(algorytmy ewolucyjne, symulowane wy arzanie)
11
Metody rysowania grafów do wyszukiwania klik w grafach
Problem MCP (ang. Minimum Clique Partition Problem) podziału zbioru
wierzchołków grafu na minimaln liczb rozł cznych klik. W wersji decyzyjnej
jest to problem NP-zupełny.
Algorytm dokładny EMCP
Dane: n − liczba wierzchołków, A − macierz przyległo ci.
Wynik: cp − minimalna liczba klik w grafie, c – ci g kolorów wierzchołków
okre laj cy podział zbioru na podzbiory.
Metoda:
1. Przypisz cp := n.
2. Generuj kolejne podziały zbioru wierzchołków na podzbiory i dla ka dego z
nich sprawd , czy indukuje kliki.
3. Je eli tak, i jest to rozwi zanie lepsze od bie cego, to zapami taj bie ce
rozwi zanie w ci gu c oraz popraw warto cp.
Zło ono : wykładnicza
Liczba podziałów zbioru na podzbiory odpowiada liczbie Bella Bn.
r(n) = t(n)/ t(n/2)
r(n)
1E+26
1E+24
1E+22
1E+20
1E+18
1E+16
1E+14
1E+12
1E+10
1E+08
1E+06
10000
100
1
O(n)
O(n^2)
O(2^n)
O(3^n)
O(n!)
O(n^n)
O(Bn)
4
8
12
16
20
12
24
28
Algorytm zachłanny GCP
Dane: n − liczba wierzchołków, A − macierz przyległo ci.
Wynik: cp − minimalna liczba klik w grafie, c – ci g kolorów wierzchołków okre laj cy
podział zbioru na podzbiory.
Metoda:
1.Wierzchołkowi 1 przydziel pierwszy kolor.
2.Kolejnym wierzchołkom przydziel:
a) kolor zbioru wierzchołków o mniejszych etykietach je eli jest poł czony z ka dym z
nich,
b) nowy kolor w przeciwnym przypadku.
Zło ono : O(n3)
Algorytm IPG (Iteracyjnego Przekształcenia Grawitacyjnego)
Dane: n − liczba wierzchołków, A − macierz przyległo ci, w – waga wierzchołka, pr – próg
podobie stwa.
Wynik: c – ci g kolorów opisuj cy przynale no danego wierzchołka do podzbioru.
Metoda:
1. Losowo przypisz ka demu z wierzchołków par liczb (x, y) z przedziału [0, 1].
2. Oblicz nowe warto ci tych par w nast puj cy sposób:
wx v +
xv ' =
wy v +
xi
i∈N ( v )
w + N (v )
,
yv ' =
yi
i∈N ( v )
w + N (v )
gdzie: N(v) − s siedztwo wierzchołka v.
3. Podziel wierzchołki na podzbiory stosuj c procedur PCA zapami tuj c najlepszy podział.
4. Je eli warto D(x, y, x', y') jest wi ksza ni zało ony próg podobie stwa pr, to id do
punktu 2.
Zło ono : wielomianowa
Algorytm wyznaczania skupie PCA (ang. Principal Components Analysis)
1.Normalizuj współrz dne wierzchołków do przedziału [0, 1].
2.Wyznacz warto ci rednie dla x i y.
3.Wyznacz odchylenia standardowe oraz współczynnik korelacji mi dzy atrybutami x i y.
4.Je eli odchylenia standardowe x i y nie s jednocze nie równe zero, to na podstawie
powy szych informacji podziel wierzchołki na dwa podzbiory.
13
Algorytm ewolucyjny ECP
Dane: n − liczba wierzchołków, A − macierz przyległo ci, m – wielko
populacji, t – wykładnik funkcji skaluj cej, s – liczba iteracji.
Wynik: c – ci g kolorów opisuj cy przynale no danego wierzchołka do
podzbioru.
Metoda:
1. Wylosuj populacj pocz tkow zło on z m ci gów o długo ci n
zawieraj cych liczby całkowite z przedziału [1, n].
2. Powtarzaj s razy:
- Przegl daj elementy populacji weryfikuj c czy podziały, które
reprezentuj , indukuj kliki w grafie oraz jaka jest ich liczba. Osobnik z
najmniejsz liczb klik jest zapami tywany jako najlepsze rozwi zanie.
- Oce ka dego osobnika nale cego do populacji.
- Przeskaluj warto funkcji oceny za pomoc skalowania pot g .
- Wyselekcjonuj za pomoc metody koła ruletki m osobników, których
potomstwo trafi do nast pnej populacji.
- Zmutuj wektor koduj cy ka dego z wyselekcjonowanych osobników.
- Populacji bie cej przypisz nowo powstała populacj .
Kodowanie osobników
Funkcja oceny
Operator ewolucyjny: mutacja, krzy owanie
Metoda selekcji
Anomalia
14
Eksport rysunków grafów do ró nych formatów
SVG (Scalable Vector Graphics) – HTML, DocBook, MS Word
<?xml version="1.0" standalone="no"?>
<svg viewBox="0 0 310 310"
xmlns:xlink="http://www.w3.org/1999/xlink">
<path id="k1_2" stroke="#000000" d="M 155 15 L 295 125 Z "/>
<path id="k1_5" stroke="#000000" d="M 155 15 L 15 125 Z "/>
<path id="k2_3" stroke="#000000" d="M 295 125 L 245 295 Z "/>
<path id="k3_4" stroke="#000000" d="M 245 295 L 65 295 Z "/>
<path id="k4_5" stroke="#000000" d="M 65 295 L 15 125 Z "/>
<circle id="v1" cx="155" cy="15" r="5"
<circle id="v2" cx="295" cy="125" r="5"/>
<circle id="v3" cx="245" cy="295" r="5"/>
<circle id="v4" cx="65" cy="295" r="5"/>
<circle id="v5" cx="15" cy="125" r="5"/>
</svg>
EPS – TEX
%!PS-Adobe EPSF-2.0
%%BoundingBox: 0 0 350 350
newpath 155 335 4 0 360 arc fill stroke
newpath 295 225 4 0 360 arc fill stroke
newpath 245 55 4 0 360 arc fill stroke
newpath 65 55 4 0 360 arc fill stroke
newpath 15 225 4 0 360 arc fill stroke
newpath 155 335 moveto 295 225 lineto closepath stroke
newpath 155 335 moveto 15 225 lineto closepath stroke
newpath 295 225 moveto 245 55 lineto closepath stroke
newpath 245 55 moveto 65 55 lineto closepath stroke
newpath 65 55 moveto 15 225 lineto closepath stroke
showpage
RTF − MS Word
15
Rysunki grafów w 3D
VRML
LiveGraphics3D (Martin Kraus)
http://www.vis.uni-stuttgart.de/~kraus/LiveGraphics3D/index.html
<HTML>
<HEAD>
<TITLE>C5</TITLE>
</HEAD>
<BODY>
<APPLET ARCHIVE="live.jar" CODEBASE="" CODE="Live.class"
WIDTH=600 HEIGHT=600 ALIGN=LEFT>
<PARAM NAME=INPUT VALUE="
Graphics3D[
{PointSize[0.03], GrayLevel[0.],
{Point[{155,15 , 0}],
Point[{295,125, 0}],
Point[{245,295, 0}],
Point[{65 ,295, 0}],
Point[{15 ,125, 0}]},
{Line[{{155,15,0} ,{295,125,0}}],
Line[{{155,15,0} ,{15 ,125,0}}],
Line[{{295,125,0},{245,295,0}}],
Line[{{245,295,0},{65 ,295,0}}],
Line[{{65 ,295,0},{15 ,125,0}}],}},
{ViewPoint -> {2.948, -1.719, 1.405},
BoxRatios -> {4, 4, 4}, Boxed -> False}
]
">
</APPLET>
</BODY>
</HTML>
16

Podobne dokumenty