Krzysztof T. Zwerzysk Algorytmy rysowana grafów Plan wykładu Defncje Rysowane grafów planarnych Rysowane grafów na okrgu Rysowane grafów w ogranczonym obszarze Rysowane grafów metod Psanskego Przekształcena współrzdnych werzchołków grafów Edytor grafów Krytera oceny rysunków grafów Metody rysowana grafów do wyszukwana klk w grafach Rysunk grafów w 3D Informatyka, Sem III, Optymalzacja kombnatoryczna Pozna, 8 grudna 2003 r.
Defncje Graf G = (V, E) G = (V, E, x, y) x = x 1, x 2, x 3..., x n y = y 1, y 2, y 3..., y n Lne proste x = x 1, x 2, x 3..., x n y = y 1, y 2, y 3..., y n Rysunk grafów typy krawdz Lne krzywe nformacja o pozycj kadej krawdz (punkty charakterystyczne krzywych Bezera: punkty pocztkowe kocowe, punkty kontrolne) Lne łamane nformacje o punktach łamana krawdz Lne z grotam nformacje o skerowanu grotów Format.poz Rysunk grafów zapsywane s w plkach tekstowych z rozszerzenem.poz. Kada nowa lna w plku oznacza nowy graf. Elementy cgu opsujcego rysunek grafu rozdzelone s znakem spacj. Spacja pownna by równe na kocu tego cgu. n kod_grafu x 1 y 1 x 2 y 2... x n y n gdze: n lczba werzchołków grafu kod_grafu cg zer jedynek bdcy złoenem w jeden wektor elementów górnego trójkta macerzy przyległoc x y współrzdne x y werzchołka o ndekse np.: 4 111111 15 295 295 295 295 15 15 15 2
Rysowane grafów planarnych Twerdzene (Fáry) Jeel graf jest planarny, to mona przestaw go na rysunku w postac, w której wszystke krawdze ne krzyuj s s odcnkam ln prostych. Rysunek grafu planarnego o takch włacwocach nazywa s Fáry embeddng. Algorytm testowana czy graf jest planarny (Hopcroft-Tarajan 1974) - złoono O(n) Twerdzene (Euler) Graf rzdu n 3 z k krawdzam ne jest planarny, jeel k > 3n 6. Twerdzene (K. Kuratowsk, 1930). Graf jest planarny wtedy tylko wtedy, gdy ne zawera podgrafu homeomorfcznego do K 5 lub K 3,3. Algorytm rysowana grafów planarnych 3
Rysowane grafów na okrgu (X mn, Y mn) (X mn 15, Y mn 15) (X max/2, Y max/2) (X max 15, Y max 15) (X max, Y max) Załoene: X mn = 0, Y mn = 0, X max = 310, Y max = 310, π = 3.1415 Algorytm rozmeszczana werzchołków na okrgu Dane: n lczba werzchołków, X mn, Y mn, X max, Y max zakres dopuszczalnych wartoc nowych współrzdnych werzchołków, Wynk: x, y wektory opsujce nowe współrzdne werzchołków. Metoda: 1. Oblcz: x max := (X max - X mn - 30)/2 y max := (Y max - Y mn - 30)/2. 2. Dla kolejnych werzchołków (1 n) oblcz: dpn := 2 ( - 1) π/n; x := x max 0.9 x max sn(dpn) 15; y := y max 0.9 y max cos(dpn) 15; Złoono: O(n). Przykład 4
Rysowane grafów w ogranczonym obszarze Losowe rozmeszczene werzchołków Arbtralne rozmeszczene werzchołków (np. na okrgu) Rozmeszczene werzchołków sterowane rczne 5
Rysowane grafów metod Psanskego Wyznaczene macerzy wektorów własnych 0.447 0.447 0.447 0.447 B = 0.224 0.224 0.224 0.224 0.395 0.103 0.395 0.103 0.498 0.498 0.292 0.292 0.395 0.103 0.395 0.103 0.498 0.498 0.292 0.292 0.000 0.000 0.000 0.000 0.500 0.500 0.500 0.500 0.302 0.542 0.302 0.542 0.240 0.240 0.240 0.240 0.302 0.542 0.302 0.542 0.240 0.240 0.240 0.240 0.144 0.559 0.144 0.559 0.351 0.351 0.208 0.208 0.144 0.559 0.144 0.559 0.351 0.351 0.208 0.208 Uwaga! Posta macerzy zaley od etyketowana werzchołków w grafe Dobór wektorów a) b) c) d) a) kolumny 1-2, b) 1-4, c) 1-5, d) 2-7 6
7 Przekształcena współrzdnych werzchołków grafów Normalzacja Przycgane werzchołków do wzłów satk Transformacje Obroty Przesunca Odbca Skalowane Grawtacja ) ( ' ) ( N w x wx x N =, ) ( ' ) ( N w y wy y N = Antygrawtacja ) ( ' ) ( N w x wx x N = ) ( ' ) ( N w y wy y N = "Spryna"
Dodawane/usuwane werzchołków Edytor grafów Przemeszczane werzchołków za pomoc myszk Dodawane/usuwane krawdz mdzy dwoma werzchołkam Zaznaczane/odznaczane grupy werzchołków Przemeszczene grupy werzchołków za pomoc myszk Usuwane grupy werzchołków Usuwane/dodawane krawdz mdzy zaznaczon grup werzchołków Zamana podgrafu ndukowanego przez zaznaczon grup werzchołków na dopełnene Wdok macerzy przyległoc Dodawane usuwane krawdz w macerzy Wywetlane nformacj pomocnczych o werzchołkach Numer werzchołka, stope werzchołka 8
Krytera oceny rysunków grafów Lczba skrzyowa krawdz Algorytm zlczana skrzyowa krawdz (werzchołk na okrgu) Dane: n lczba werzchołków, A macerz przyległoc grafu. Wynk: cr lczba skrzyowa. Metoda: 1. Przypsz cr := 0; 2. Dla kadej krawdz {, j} wystpujcej w grafe okrel z loma nnym s krzyuje zwkszajc odpowedno cr. Wadomo, e ne krzyuj s krawdze o etyketach {1, n} oraz {a, a1}, gdy le na obwodze grafu. Kada krawd {, j} dzel zbór werzchołków grafu na dwa podzbory B (werzchołk { 1, j 1}) C (werzchołk {j 1, n} ) tylko krawdze, które łcz te róne podzbory krzyuj s z dan krawdz. Złoono: O(n 3 ). Algorytm zlczana skrzyowa (ogólny) Lczba punktów przec Defncja. Punkt przecca nazywamy mejsce skrzyowana s co najmnej dwóch krawdz. Suma któw mdzy krawdzam Symetra rozbce zboru werzchołków grafu na orbty Trudno z rysowanem grafów asymetrycznych, czyl takch, które maj tylko jeden automorfzm. 9
Optymalzacja rysunków grafów Wykorzystane losowych transpozycj (czyl zamana mejscam dwóch wylosowanych werzchołków) Wykorzystane losowych permutacj Algorytm mnmalzacj lczby skrzyowa metod ndukowana losowej permutacj Dane: n lczba werzchołków, A macerz przyległoc, x, y cg opsujce współrzdne werzchołków, s lczba powtórze. Wynk: A' macerz przyległoc. Metoda: 1. B := A, A' := A. 2. Oblcz lczb skrzyowa cr := countccr (B, x, y). 3. Powtórz s razy: a) wylosuj losow permutacj, b) ndukuj permutacj B := nducep(n,, B), c) oblcz cr := countccr (B, x, y), d) Jeel cr jest mnejsze od CCR to, A' = B, CCR := cr. Złoono: Zaley od lczby powtórze oraz od złoonoc ndukowana permutacj zlczana skrzyowa. cr = 15 cr = 11 cr = 8 cr = 4 Wykorzystane bazy danych rysunków mnejszych grafów 10
Wykorzystane przekształcene grawtacja antygrawtacja Metryka D( x, x', y, y') = n = 1 2 ( x x' ) ( y y' ) 2 Wykorzystane przekształcena spryna Wykorzystane metaheurystyk (algorytmy ewolucyjne, symulowane wyarzane) 11
Metody rysowana grafów do wyszukwana klk w grafach Problem MCP (ang. Mnmum Clque Partton Problem) podzału zboru werzchołków grafu na mnmaln lczb rozłcznych klk. W wersj decyzyjnej jest to problem NP-zupełny. Algorytm dokładny EMCP Dane: n lczba werzchołków, A macerz przyległoc. Wynk: cp mnmalna lczba klk w grafe, c cg kolorów werzchołków okrelajcy podzał zboru na podzbory. Metoda: 1. Przypsz cp := n. 2. Generuj kolejne podzały zboru werzchołków na podzbory dla kadego z nch sprawd, czy ndukuje klk. 3. Jeel tak, jest to rozwzane lepsze od becego, to zapamtaj bece rozwzane w cgu c oraz popraw warto cp. Złoono: wykładncza Lczba podzałów zboru na podzbory odpowada lczbe Bella B n. r(n) = t(n)/ t(n/2) r(n) 1E26 1E24 1E22 1E20 1E18 1E16 1E14 1E12 1E10 1E08 1E06 10000 100 1 4 8 12 16 20 24 28 O(n) O(n^2) O(2^n) O(3^n) O(n!) O(n^n) O(Bn) 12
Algorytm zachłanny GCP Dane: n lczba werzchołków, A macerz przyległoc. Wynk: cp mnmalna lczba klk w grafe, c cg kolorów werzchołków okrelajcy podzał zboru na podzbory. Metoda: 1.Werzchołkow 1 przydzel perwszy kolor. 2.Kolejnym werzchołkom przydzel: a) kolor zboru werzchołków o mnejszych etyketach jeel jest połczony z kadym z nch, b) nowy kolor w przecwnym przypadku. Złoono: O(n 3 ) Algorytm IPG (Iteracyjnego Przekształcena Grawtacyjnego) Dane: n lczba werzchołków, A macerz przyległoc, w waga werzchołka, pr próg podobestwa. Wynk: c cg kolorów opsujcy przynaleno danego werzchołka do podzboru. Metoda: 1. Losowo przypsz kademu z werzchołków par lczb (x, y) z przedzału [0, 1]. 2. Oblcz nowe wartoc tych par w nastpujcy sposób: x ' = wx w N( ) x N ( ) wy N ( ) y ' =, w N( ) gdze: N() ssedztwo werzchołka. 3. Podzel werzchołk na podzbory stosujc procedur PCA zapamtujc najlepszy podzał. 4. Jeel warto D(x, y, x', y') jest wksza n załoony próg podobestwa pr, to d do punktu 2. Złoono: welomanowa Algorytm wyznaczana skupe PCA (ang. Prncpal Components Analyss) 1.Normalzuj współrzdne werzchołków do przedzału [0, 1]. 2.Wyznacz wartoc redne dla x y. 3.Wyznacz odchylena standardowe oraz współczynnk korelacj mdzy atrybutam x y. 4.Jeel odchylena standardowe x y ne s jednoczene równe zero, to na podstawe powyszych nformacj podzel werzchołk na dwa podzbory. y 13
Algorytm ewolucyjny ECP Dane: n lczba werzchołków, A macerz przyległoc, m welko populacj, t wykładnk funkcj skalujcej, s lczba teracj. Wynk: c cg kolorów opsujcy przynaleno danego werzchołka do podzboru. Metoda: 1. Wylosuj populacj pocztkow złoon z m cgów o długoc n zawerajcych lczby całkowte z przedzału [1, n]. 2. Powtarzaj s razy: - Przegldaj elementy populacj weryfkujc czy podzały, które reprezentuj, ndukuj klk w grafe oraz jaka jest ch lczba. Osobnk z najmnejsz lczb klk jest zapamtywany jako najlepsze rozwzane. - Oce kadego osobnka nalecego do populacj. - Przeskaluj warto funkcj oceny za pomoc skalowana potg. - Wyselekcjonuj za pomoc metody koła ruletk m osobnków, których potomstwo traf do nastpnej populacj. - Zmutuj wektor kodujcy kadego z wyselekcjonowanych osobnków. - Populacj becej przypsz nowo powstała populacj. Kodowane osobnków Funkcja oceny Operator ewolucyjny: mutacja, krzyowane Metoda selekcj Anomala 14
Eksport rysunków grafów do rónych formatów SVG (Scalable Vector Graphcs) HTML, DocBook, MS Word <?xml erson="1.0" standalone="no"?> <sg ewbox="0 0 310 310" xmlns:xlnk="http://www.w3.org/1999/xlnk"> <path d="k1_2" stroke="#000000" d="m 155 15 L 295 125 Z "/> <path d="k1_5" stroke="#000000" d="m 155 15 L 15 125 Z "/> <path d="k2_3" stroke="#000000" d="m 295 125 L 245 295 Z "/> <path d="k3_4" stroke="#000000" d="m 245 295 L 65 295 Z "/> <path d="k4_5" stroke="#000000" d="m 65 295 L 15 125 Z "/> <crcle d="1" cx="155" cy="15" r="5" <crcle d="2" cx="295" cy="125" r="5"/> <crcle d="3" cx="245" cy="295" r="5"/> <crcle d="4" cx="65" cy="295" r="5"/> <crcle d="5" cx="15" cy="125" r="5"/> </sg> EPS TEX %!PS-Adobe EPSF-2.0 %%BoundngBox: 0 0 350 350 newpath 155 335 4 0 360 arc fll stroke newpath 295 225 4 0 360 arc fll stroke newpath 245 55 4 0 360 arc fll stroke newpath 65 55 4 0 360 arc fll stroke newpath 15 225 4 0 360 arc fll stroke newpath 155 335 moeto 295 225 lneto closepath stroke newpath 155 335 moeto 15 225 lneto closepath stroke newpath 295 225 moeto 245 55 lneto closepath stroke newpath 245 55 moeto 65 55 lneto closepath stroke newpath 65 55 moeto 15 225 lneto closepath stroke showpage RTF MS Word 15
Rysunk grafów w 3D VRML LeGraphcs3D (Martn Kraus) http://www.s.un-stuttgart.de/~kraus/legraphcs3d/ndex.html <HTML> <HEAD> <TITLE>C5</TITLE> </HEAD> <BODY> <APPLET ARCHIVE="le.jar" CODEBASE="" CODE="Le.class" WIDTH=600 HEIGHT=600 ALIGN=LEFT> <PARAM NAME=INPUT VALUE=" Graphcs3D[ {PontSze[0.03], GrayLeel[0.], {Pont[{155,15, 0}], Pont[{295,125, 0}], Pont[{245,295, 0}], Pont[{65,295, 0}], Pont[{15,125, 0}]}, {Lne[{{155,15,0},{295,125,0}}], Lne[{{155,15,0},{15,125,0}}], Lne[{{295,125,0},{245,295,0}}], Lne[{{245,295,0},{65,295,0}}], Lne[{{65,295,0},{15,125,0}}],}}, {VewPont -> {2.948, -1.719, 1.405}, BoxRatos -> {4, 4, 4}, Boxed -> False} ] "> </APPLET> </BODY> </HTML> 16