Both sides previous revision
Poprzednia wersja
Nowa wersja
|
Poprzednia wersja
|
pl:miw:2010:miw10_hgviz:prezentacja [2010/10/27 15:11] jsi09 |
pl:miw:2010:miw10_hgviz:prezentacja [2019/06/27 15:50] (aktualna) |
~~SLIDESHOW~~ | ~~SLIDESHOW~~ |
| |
====== MIW 2010 hgviz ====== | ====== MIW 2010 hgviz ====== |
| |
| |
[[pl:dydaktyka:miw:2010:hgviz:start|Powrót do głównej strony projektu...]] | [[pl:dydaktyka:miw:2010:hgviz:start|Powrót do głównej strony projektu...]] |
| |
| |
| ===== Znalezione metody wizualizacji hipergrafów ===== |
| |
| |
| {{:pl:dydaktyka:miw:2010:hgviz:5.gif?350x350 |}} |
| {{ :pl:dydaktyka:miw:2010:hgviz:2.gif?380x350 |}} |
| |
| |
===== Znalezione metody wizualizacji hipergrafów ===== | ===== Znalezione metody wizualizacji hipergrafów ===== |
| {{:pl:dydaktyka:miw:2010:hgviz:3.gif?400x350 |}} |
| {{ :pl:dydaktyka:miw:2010:hgviz:1.gif?350x350 |}} |
| |
{{:pl:dydaktyka:miw:2010:hgviz:5.gif |}} | |
{{ :pl:dydaktyka:miw:2010:hgviz:2.gif|}} | |
{{:pl:dydaktyka:miw:2010:hgviz:3.gif |}} | |
{{ :pl:dydaktyka:miw:2010:hgviz:1.gif|}} | |
| |
===== Metody reprezentacji grafów w Prologu ===== | ===== Metody reprezentacji grafów w Prologu ===== |
* listy sąsiedztwa \\ np. zbiór faktów typu: krawedz(a, [ b, c ]). | * listy sąsiedztwa \\ np. zbiór faktów typu: krawedz(a, [ b, c ]). |
| |
===== Przykładowy graf i jego reprezentacje w Prologu ===== | |
{{:pl:dydaktyka:miw:2010:hgviz:przykladowy2.gif|}} | ===== Przykładowy graf i jego reprezentacje (termowe) ===== |
| |
| {{ :pl:dydaktyka:miw:2010:hgviz:przykladowy2.gif|}} |
| |
* zbiór (lista) krawędzi | * zbiór (lista) krawędzi |
<code> [1 -> 2, 1 -> 3, 1 -> 4, 2 -> 3, 2 -> 4, 3 -> 4] </code> | <code prolog> [1 -> 2, 1 -> 3, 1 -> 4, 2 -> 3, 2 -> 4, 3 -> 4] </code> |
| |
* listy sąsiedztwa | * listy sąsiedztwa |
<code> [w(1,[2,3,4]), w(2,[3,4]), w(3,[4]), w(4,[])] </code> | <code prolog> [w(1,[2,3,4]), w(2,[3,4]), w(3,[4]), w(4,[])] </code> |
* macierz sąsiedztwa | * macierz sąsiedztwa |
| |
^ 3 | 0 | 0 | 0 | 1 | | ^ 3 | 0 | 0 | 0 | 1 | |
^ 4 | 0 | 0 | 0 | 0 | | ^ 4 | 0 | 0 | 0 | 0 | |
| |
| ===== Przykładowy graf i jego reprezentacje (klauzulowe) ===== |
| |
| |
| {{ :pl:dydaktyka:miw:2010:hgviz:przykladowy2.gif|}} |
| |
* zbiór krawędzi | * zbiór krawędzi |
| |
| |
===== Możliwości wizualizacji w GraphViz ===== | ===== Możliwości wizualizacji w GraphViz (dot)===== |
| |
* **dot** - umożliwia hierarchiczną (warstwową) wizualizację skierowanych grafów; dostarcza użytkownikowi dość sporą ilość atrybutów możliwych do ustawienia (m.in. kolor i wzór połączeń między węzłami, kształty węzłów); pozwala tworzyć podgrupy z krawędzi i węzłów. \\ | **dot** - umożliwia hierarchiczną (warstwową) wizualizację skierowanych grafów; dostarcza użytkownikowi dość sporą ilość atrybutów możliwych do ustawienia (m.in. kolor i wzór połączeń między węzłami, kształty węzłów); pozwala tworzyć podgrupy z krawędzi i węzłów. \\ |
{{:pl:dydaktyka:miw:2010:hgviz:dot.gif|}} \\ | {{ :pl:dydaktyka:miw:2010:hgviz:dot.gif?300x300 |}} \\ |
* **neato** - umożliwia wizualizację grafów nieskierowanych; można umiejscawiać węzły w dowolnym miejscu (parametr //pos//).\\ | |
{{:pl:dydaktyka:miw:2010:hgviz:neato.gif|}} \\ | |
* **fdp** - umożliwia wizualizację grafów nieskierowanych wraz z tworzeniem podgrup z krawędzi i węzłów. \\ | |
{{:pl:dydaktyka:miw:2010:hgviz:fdp.gif|}} | |
| |
===== Zaproponowane metody reprezentacji hipergrafów w prologu ===== | |
| |
=== nazwa(numer hiperkrawędzi,lista wierzchołków) === | ===== Możliwości wizualizacji w GraphViz (neato)===== |
| **neato** - umożliwia wizualizację grafów nieskierowanych; można umiejscawiać węzły w dowolnym miejscu (parametr //pos//).\\ |
| {{ :pl:dydaktyka:miw:2010:hgviz:neato.gif?500x300 |}} \\ |
| |
| |
| ===== Możliwości wizualizacji w GraphViz (fdp)===== |
| **fdp** - umożliwia wizualizację grafów nieskierowanych wraz z tworzeniem podgrup z krawędzi i węzłów. \\ |
| {{ :pl:dydaktyka:miw:2010:hgviz:fdp.gif?500x300 |}} |
| |
| |
| ===== Zaproponowane metody reprezentacji HG w prologu ===== |
| |
| * nazwa(numer hiperkrawędzi,lista wierzchołków) |
Listy wierzchołków połączonych przez dane hiperkrawędzie. \\ | Listy wierzchołków połączonych przez dane hiperkrawędzie. \\ |
Przykładowo: \\ \\ | Przykładowo: \\ |
''h_przykladowy([v<sub>8</sub>]). \\ | <code prolog> |
h_przykladowy(e<sub>1</sub>,[v<sub>1</sub>,v<sub>7</sub>]). \\ | h_przykladowy([v8]). |
h_przykladowy(e<sub>2</sub>,[v<sub>1</sub>,v<sub>2</sub>,v<sub>6</sub>]). \\ | h_przykladowy(e1,[v1,v7]). |
h_przykladowy(e<sub>3</sub>,[v<sub>5</sub>,v<sub>6</sub>]). \\ | h_przykladowy(e2,[v1,v2,v6]). |
h_przykladowy(e<sub>4</sub>,[v<sub>3</sub>,v<sub>4</sub>,v<sub>5</sub>]). '' | h_przykladowy(e3,[v5,v6]). |
| h_przykladowy(e4,[v3,v4,v5]).</code> |
| |
=== zbiór połączeń === | ===== Zaproponowane metody reprezentacji HG w prologu ===== |
| |
| * zbiór połączeń |
Każde połączenie wiąże ze sobą węzeł i hiperkrawędź. \\ | Każde połączenie wiąże ze sobą węzeł i hiperkrawędź. \\ |
Przykładowo: \\ | Przykładowo: \\ |
''h_przykladowy(v<sub>8</sub>,[]). \\ | <code prolog> |
h_przykladowy(v<sub>1</sub>,e<sub>1</sub>). \\ | h_przykladowy(v8,[]). |
h_przykladowy(v<sub>7</sub>,e<sub>1</sub>). \\ | h_przykladowy(v1,e1). |
h_przykladowy(v<sub>1</sub>,e<sub>2</sub>). \\ | h_przykladowy(v7,e1). |
h_przykladowy(v<sub>2</sub>,e<sub>2</sub>). \\ | h_przykladowy(v1,e2). |
h_przykladowy(v<sub>6</sub>,e<sub>2</sub>). \\ | h_przykladowy(v2,e2). |
h_przykladowy(v<sub>5</sub>,e<sub>3</sub>). \\ | h_przykladowy(v6,e2). |
h_przykladowy(v<sub>6</sub>,e<sub>3</sub>). \\ | h_przykladowy(v5,e3). |
h_przykladowy(v<sub>3</sub>,e<sub>4</sub>). \\ | h_przykladowy(v6,e3). |
h_przykladowy(v<sub>4</sub>,e<sub>4</sub>). \\ | h_przykladowy(v3,e4). |
h_przykladowy(v<sub>5</sub>,e<sub>4</sub>). '' | h_przykladowy(v4,e4). |
| h_przykladowy(v5,e4). |
| </code> |
| |
| |
| ===== Zaproponowane metody reprezentacji HG w prologu ===== |
| |
=== macierz sąsiedztwa === | * macierz sąsiedztwa |
W przeciwieństwie do zwykłych grafów, gdzie zarówno wiersze jak i kolumny reprezentowały węzły, w przypadku hipergrafów wiersze macierzy oznaczać będą krawędzie. \\ | W przeciwieństwie do zwykłych grafów, gdzie zarówno wiersze jak i kolumny reprezentowały węzły, w przypadku hipergrafów wiersze macierzy oznaczać będą krawędzie. \\ |
Przykładowo: \\ | Przykładowo: \\ |
* nazwy predykatu przechowującego fakty o hipergrafie | * nazwy predykatu przechowującego fakty o hipergrafie |
* nazwy docelowego pliku LaTeX. | * nazwy docelowego pliku LaTeX. |
| |
| ===== Generowanie tabeli do Latexu ===== |
| |
Jego wywołanie dla przykładowego predykatu: | Jego wywołanie dla przykładowego predykatu: |
| |
powoduje wygenerowanie pliku [[pl:dydaktyka:miw:2010:hgviz:cpp|macierz.cpp]] | powoduje wygenerowanie pliku [[pl:dydaktyka:miw:2010:hgviz:cpp|macierz.cpp]] |
| |
| ===== Generowanie tabeli do Latexu ===== |
| |
Po skompilowaniu tego pliku i uruchomieniu pliku wynikowego otrzymujemy gotowy do kompilacji plik [[pl:dydaktyka:miw:2010:hgviz:tex|macierz.tex]] | Po skompilowaniu tego pliku i uruchomieniu pliku wynikowego otrzymujemy gotowy do kompilacji plik [[pl:dydaktyka:miw:2010:hgviz:tex|macierz.tex]] |
Po jego uruchomieniu wystarczy podać nazwy plików wynikowych i cała reszta robi się automatycznie. | Po jego uruchomieniu wystarczy podać nazwy plików wynikowych i cała reszta robi się automatycznie. |
| |
Efektem działania skryptu jest plik **macierz.pdf** z macierzą incydencji naszego hipergrafu. {{:pl:miw:2010:miw10_hgviz:macierz.pdf|}} | Efektem działania skryptu jest plik {{:pl:miw:2010:miw10_hgviz:macierz.pdf|}} z macierzą incydencji naszego hipergrafu. |
| |
===== Wizualizacja w GraphViz ===== | ===== Wizualizacja w GraphViz ===== |
* nazwy pliku dot | * nazwy pliku dot |
* nazwy predykatu przechowującego fakty o hipergrafie | * nazwy predykatu przechowującego fakty o hipergrafie |
| |
| ===== Wizualizacja w GraphViz ===== |
| |
Jego wywołanie dla przykładu: | Jego wywołanie dla przykładu: |
| |
powoduje wygenerowanie pliku [[pl:dydaktyka:miw:2010:hgviz:dot|graf.dot]] | powoduje wygenerowanie pliku [[pl:dydaktyka:miw:2010:hgviz:dot|graf.dot]] |
| |
| ===== Wizualizacja w GraphViz ===== |
| |
Po jego skompilowaniu otrzymujemy taki oto rysunek: | Po jego skompilowaniu otrzymujemy taki oto rysunek: |
| |
{{:pl:miw:2010:miw10_hgviz:graf.png|}} | {{ :pl:miw:2010:miw10_hgviz:graf.png?280x280| }} |
| |
Również tutaj przygotowałem dla uproszczenia procesu skrypt unixowy [[pl:dydaktyka:miw:2010:hgviz:sh2|skrypt2.sh]] | Również tutaj przygotowałem dla uproszczenia procesu skrypt unixowy [[pl:dydaktyka:miw:2010:hgviz:sh2|skrypt2.sh]] |