first update
This commit is contained in:
parent
ae6e74f2c2
commit
72da71900e
BIN
images/cykle.png
Normal file
BIN
images/cykle.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
BIN
images/random_walk_1d_1.png
Normal file
BIN
images/random_walk_1d_1.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.5 KiB |
BIN
images/random_walk_1d_2.png
Normal file
BIN
images/random_walk_1d_2.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
BIN
images/random_walk_1d_3.png
Normal file
BIN
images/random_walk_1d_3.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
BIN
images/random_walk_1d_4.png
Normal file
BIN
images/random_walk_1d_4.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
images/random_walk_2d.png
Normal file
BIN
images/random_walk_2d.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 120 KiB |
82
matma2.ipynb
82
matma2.ipynb
@ -1,82 +0,0 @@
|
||||
{
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<b>Spacery losowe po grafach: algorytm wyszukiwania klastrów</b>\n",
|
||||
"<br><br><br>\n",
|
||||
"<b>Spacery losowe</b>\n",
|
||||
"\n",
|
||||
"Graf G = (V, E) składa się ze\n",
|
||||
"zbioru wierzchołków V oraz zbioru krawędzi E, gdzie E zbiorem nieuporządkowanych par\n",
|
||||
"wierzchołków:\n",
|
||||
"\n",
|
||||
"$E ⊂\\{(x, y) : x, y ∈ V, x ≠ y\\} $\n",
|
||||
"\n",
|
||||
"Je»eli (x, y) ∈ E, to wierzchołki x, y nazywamy sąsiadami i oznaczamy x ∼ y. Stopniem\n",
|
||||
"wierzchołka x ∈ V nazywamy liczbę jego sąsiadów i oznaczamy deg(x).\n",
|
||||
"Na danym grafie G = (V, E) definiujemy prosty spacer losowy. Jest to łańcuch Markowa\n",
|
||||
"na przestrzeni stanów V z macierzą przejścia\n",
|
||||
"\n",
|
||||
"$P(x, y) = \\frac{1}{deg(x)}$ jeżeli y ∼ x\n",
|
||||
"\n",
|
||||
"$P(x, y) = 0$ w przeciwnym razie\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"Gdy łańcuch znajduje się w wierzchołku x, to wybiera losowo (jednostajnie) jednego z jego\n",
|
||||
"sąsiadów i przechodzi do niego.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<b>Łancuch markova</b>\n",
|
||||
"<br><br><br>\n",
|
||||
"Proces Markowa – ciąg zdarzeń, w którym prawdopodobieństwo każdego zdarzenia zależy jedynie od wyniku poprzedniego. W ujęciu matematycznym, procesy Markowa to takie procesy stochastyczne, które spełniają własność Markowa.\n",
|
||||
"\n",
|
||||
"$P(X_{n+1} = x|X_{n}=x_n,\\ldots X_{1}=x_{1}) = P(X_{n+1}=x | X_{n}=x_n)$\n",
|
||||
"\n",
|
||||
"Oznacza to, że zmienna w ciągu \n",
|
||||
"X\n",
|
||||
"n\n",
|
||||
" ''pamięta'' tylko swój stan z poprzedniego kroku i wyłącznie od niego zależy."
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<b>Podgrafy silnie ze sobą powiązane</b>\n",
|
||||
"\n",
|
||||
"Najprościej będzie to zaobserować na przykładzie:\n",
|
||||
"\n",
|
||||
"![](https://i.imgur.com/QrHGsgF.png)\n",
|
||||
"\n",
|
||||
"![](https://i.imgur.com/vqnrftV.png)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<b>Wierzchołki krytyczne rozspójniające graf</b>\n",
|
||||
"\n",
|
||||
"Graf spójny - graf w który dowolne dwa wierzchołki łączy pewna ścieżka\n",
|
||||
"\n",
|
||||
"![](https://i.imgur.com/pCLbkwz.png)\n",
|
||||
"\n",
|
||||
"Wierzchołkiem krytycznym powyższego grafu jest wierzchołek numer 4, usunięcie go spowoduje odłączenie wierzchołka numer 6 od reszty grafu"
|
||||
]
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"language_info": {
|
||||
"name": "python"
|
||||
},
|
||||
"orig_nbformat": 4
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
170
matma2nowy.ipynb
170
matma2nowy.ipynb
@ -2,20 +2,102 @@
|
||||
"cells": [
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"<b>Spacery losowe po grafach: algorytm wyszukiwania klastrów</b>\n",
|
||||
"<br><br><br>\n",
|
||||
"<b>Spacery losowe</b>\n",
|
||||
"## Spacery losowe po grafach: algorytm wyszukiwania klastrów\n",
|
||||
"\n",
|
||||
"Graf G = (V, E) składa się ze\n",
|
||||
"zbioru wierzchołków V oraz zbioru krawędzi E, gdzie E zbiorem nieuporządkowanych par\n",
|
||||
"wierzchołków:\n",
|
||||
"### Spacery losowe\n",
|
||||
"\n",
|
||||
"$E ⊂\\{(x, y) : x, y ∈ V, x ≠ y\\} $\n",
|
||||
"Spacer losowy można zdefiniować jako serię dyskretnych kroków wykonywanych przez obiekt w pewnym kierunku. Co więcej, kierunek i ruch obiektu w każdym kroku określamy probabilistycznie.\n",
|
||||
"\n",
|
||||
"Je»eli (x, y) ∈ E, to wierzchołki x, y nazywamy sąsiadami i oznaczamy x ∼ y. Stopniem\n",
|
||||
"W spacerze losowym przyszłe położenie obiektu jest całkowicie niezależne od bieżącego położenia. Ponadto jest to przykład procesu Markowa. Zaczynając od pewnej pozycji, obiekt może iść w dowolnym kierunku. Każdy krok wykonany przez obiekt w dowolnym kierunku ma przypisane prawdopodobieństwo, dlatego końcowe położenie jest całkowicie niezależne od punktu początkowego.\n",
|
||||
"\n",
|
||||
"#### Przykład jednowymiarowego spaceru losowego zaczynającego się w punkcie 0, po osi liczb całkowitych:\n",
|
||||
"![r_w_1d_1](./images/random_walk_1d_1.png)\n",
|
||||
"Obiekt w każdym kroku może poruszać się z równym prawdopodobieństwem w dwóch kierunkach: lewo lub prawo.\n",
|
||||
"W pierwszym kroku prawdopodobieństwo że obiekt znajdzie się w pozycji -1 lub 1 wynosi 1/2.\n",
|
||||
"![r_w_1d_2](./images/random_walk_1d_2.png)\n",
|
||||
"W drugim kroku obiekt może znaleźć się na pozycjach -2, 0 i 2. Prawdopodobieństwo że obiekt znajdzie się w położeniu -2 lub 2 jest równe i wynosi 1/4,\n",
|
||||
"do punktu 0 obiekt może dotrzeć z punktów -1 i 1 to znaczy że prawdopowdopodobieństwa należy zsumować i wtedy 1/4 + 1/4 = 1/2.\n",
|
||||
"![r_w_1d_3](./images/random_walk_1d_3.png)\n",
|
||||
"W trzecim kroku obiekt może znaleźć się w pozycjach -3, -1, 1, 3. Prawdopodobieństwo że obiekt znajdzie się w pozycji 3 lub -3 jest równe 3/8, a pozycjach 1 lub -1 jest równe 1/8.\n",
|
||||
"![r_w_1d_4](./images/random_walk_1d_4.png)\n",
|
||||
"Łatwo zauważyć, że gdy liczba wykonanych kroków jest nieparzysta, to wszystkich możliwych pozycji w jakich może znależć się obiekt również jest nieparzysta liczba. Podobnie w przypadku parzystej liczby wykonanych kroków, ilość możliwych pozycji jest parzysta.\n",
|
||||
"\n",
|
||||
"#### Dwuwymiarowy spacer losowy\n",
|
||||
"![r_w_2d](./images/random_walk_2d.png)\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"### Grafy\n",
|
||||
"\n",
|
||||
"Grafem nazywamy uporządkowaną kolekcję dwóch zbiorów: zbioru wierzchołków *V* oraz zbioru krawędzi *E*. Zbiór wierzchołków jest dowolnej postaci. Elementami zbioru krawędzi są *e* ∈ *E*, które są podzbiorami postaci {v<sub>1</sub>, v<sub>2</sub>} dla pewnych dwóch wierzchołków v<sub>1</sub>, v<sub>2</sub> ∈ *V* (jeśli graf jest nieskierowany) lub parą uporządkowaną (v<sub>1</sub>, v<sub>2</sub>) jeśli graf jest skierowany.\n",
|
||||
"\n",
|
||||
"Jeżeli (x, y) ∈ E, to wierzchołki x, y nazywamy sąsiadami i oznaczamy x ∼ y. Stopniem\n",
|
||||
"wierzchołka x ∈ V nazywamy liczbę jego sąsiadów i oznaczamy deg(x).\n",
|
||||
"\n",
|
||||
"#### Podgrafy\n",
|
||||
"Podgraf danego grafu G to graf powstały przez usunięcie z grafu G pewnej liczby wierzchołków lub krawędzi (z tym zastrzeżeniem, że usuwając pewien wierzchołek usuwamy wszystkie przyległe do niego krawędzie).\n",
|
||||
"W szczególności każdy graf jest swoim podgrafem.\n",
|
||||
"\n",
|
||||
"#### Graf spójny\n",
|
||||
"Graf spójny – graf, w którym każdą parę wierzchołków łączy pewna ścieżka. Graf nieposiadający powyższej własności to graf niespójny.\n",
|
||||
"\n",
|
||||
"Warunkiem koniecznym, by graf skierowany był spójny, jest spójność jego grafu podstawowego (tego samego grafu bez kierunków na krawędziach).\n",
|
||||
"\n",
|
||||
"#### Wierzchołki krytyczne rozspójniające graf\n",
|
||||
"\n",
|
||||
"Wierzchołek krytyczny to taki którego usunięcie sprawi że graf przestaje być grafem spójnym\n",
|
||||
"\n",
|
||||
"![](https://i.imgur.com/pCLbkwz.png)\n",
|
||||
"\n",
|
||||
"Wierzchołkiem krytycznym powyższego grafu jest wierzchołek numer 4, usunięcie go spowoduje odłączenie wierzchołka numer 6 od reszty grafu.\n",
|
||||
"\n",
|
||||
"Niektóre grafy nie posiadają wierzchołków krytycznych są to na przyklad:\n",
|
||||
"\n",
|
||||
"- grafy posiadające cykle (czyli zamkniętą ścieżkę z takim samym ostatnim i pierwszym wierzchołkiem):\n",
|
||||
"\n",
|
||||
"![](./images/cykle.png)\n",
|
||||
"\n",
|
||||
"- grafy pełne (grafy w których dla każdej pary węzłów istnieje krawędź je łącząca):\n",
|
||||
"\n",
|
||||
"![](https://i.imgur.com/BtJKeyz.png)"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"source": [
|
||||
"### Klastry\n"
|
||||
],
|
||||
"metadata": {
|
||||
"collapsed": false,
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"### Łancuch markova\n",
|
||||
"\n",
|
||||
"Na danym grafie G = (V, E) definiujemy prosty spacer losowy. Jest to łańcuch Markowa\n",
|
||||
"na przestrzeni stanów V z macierzą przejścia\n",
|
||||
"\n",
|
||||
@ -25,15 +107,13 @@
|
||||
"\n",
|
||||
"\n",
|
||||
"Gdy łańcuch znajduje się w wierzchołku x, to wybiera losowo (jednostajnie) jednego z jego\n",
|
||||
"sąsiadów i przechodzi do niego.\n"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<b>Łancuch markova</b>\n",
|
||||
"<br><br><br>\n",
|
||||
"sąsiadów i przechodzi do niego.\n",
|
||||
"\n",
|
||||
"Spacery losowe są podstawą algorytmu MCL.\n",
|
||||
" Poruszając się losowo od węzła do węzła, istnieje większe prawdopodobieństwo poruszania się wewnątrz klastru, niż przecinania klastrów. Dzieje się tak, ponieważ z definicji klastry są wewnętrznie gęste, a są oddzielone rzadkimi regionami. W grupowaniu grafów gęstość i rzadkość definiuje się jako proporcję szczelin krawędziowych, które mają w sobie krawędzie.\n",
|
||||
" Przeprowadzając spacery losowe, mamy większą szansę na znalezienie trendu gromadzenia się wierzchołków i definicji klastrów w grafie.\n",
|
||||
" Spacery losowe w grafie są obliczane za pomocą łańcuchów Markowa.\n",
|
||||
"\n",
|
||||
"Proces Markowa – ciąg zdarzeń, w którym prawdopodobieństwo każdego zdarzenia zależy jedynie od wyniku poprzedniego. W ujęciu matematycznym, procesy Markowa to takie procesy stochastyczne, które spełniają własność Markowa.\n",
|
||||
"\n",
|
||||
"$P(X_{n+1} = x|X_{n}=x_n,\\ldots X_{1}=x_{1}) = P(X_{n+1}=x | X_{n}=x_n)$\n",
|
||||
@ -46,9 +126,13 @@
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"<b>Podgrafy silnie ze sobą powiązane</b>\n",
|
||||
"### Podgrafy silnie ze sobą powiązane\n",
|
||||
"\n",
|
||||
"Najprościej będzie to zaobserować na przykładzie:\n",
|
||||
"\n",
|
||||
@ -56,44 +140,32 @@
|
||||
"\n",
|
||||
"![](https://i.imgur.com/vqnrftV.png)\n",
|
||||
"\n",
|
||||
"Jak widać a powyższym obrazku silnie ze sobą powiążane podgrafy to po prostu podgrafy których wierzchołki posiadają między sobą znacznie więcej krawędzi niż z pozostałymi wierzchołkami grafu, trochę inaczej wygląd asytuacja z grafami skierowanymi, w przypadku grafów skierowanych, podgraf silnie powiązany to podgraf z którym z każdego wierzchołka można osiągnąć inny wierzchołek, jak na poniższym obrazku\n",
|
||||
"Jak widać a powyższym obrazku silnie ze sobą powiążane podgrafy to po prostu podgrafy których wierzchołki posiadają między sobą znacznie więcej krawędzi niż z pozostałymi wierzchołkami grafu.\n",
|
||||
"\n",
|
||||
"W przypadku grafów skierowanych, podgraf silnie powiązany to podgraf z którym z każdego wierzchołka można osiągnąć inny wierzchołek, jak na poniższym obrazku:\n",
|
||||
"\n",
|
||||
"![](https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Scc-1.svg/712px-Scc-1.svg.png)"
|
||||
]
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"source": [
|
||||
"<b>Wierzchołki krytyczne rozspójniające graf</b>\n",
|
||||
"\n",
|
||||
"Graf spójny - graf w którym dowolne dwa wierzchołki łączy pewna ścieżka\n",
|
||||
"\n",
|
||||
"![](https://i.imgur.com/pCLbkwz.png)\n",
|
||||
"\n",
|
||||
"Wierzchołkiem krytycznym powyższego grafu jest wierzchołek numer 4, usunięcie go spowoduje odłączenie wierzchołka numer 6 od reszty grafu.\n",
|
||||
"\n",
|
||||
"Więc wierzchołek krytyczny to taki którego usunięcie sprawi że graf przestaje być grafem spójnym\n",
|
||||
"Niektóre grafy nie posiadają wierzchołków krytycznych są ta np\n",
|
||||
"\n",
|
||||
"cykle:\n",
|
||||
"\n",
|
||||
"\n",
|
||||
"![](https://www.researchgate.net/publication/341354100/figure/fig1/AS:890737768026113@1589379841098/Strong-3-rainbow-colorings-of-C3-C4-C5-C6-and-C8.png)\n",
|
||||
"\n",
|
||||
"grafy pełne:\n",
|
||||
"\n",
|
||||
"![](https://i.imgur.com/BtJKeyz.png)"
|
||||
]
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
},
|
||||
"source": []
|
||||
},
|
||||
{
|
||||
"cell_type": "markdown",
|
||||
"metadata": {},
|
||||
"metadata": {
|
||||
"pycharm": {
|
||||
"name": "#%% md\n"
|
||||
}
|
||||
},
|
||||
"source": [
|
||||
"<b> Zastosowanie spacerów losowych w klastrowaniu grafów.</b>\n",
|
||||
"<br>\n",
|
||||
"<br>\n",
|
||||
"<br>\n",
|
||||
"### Zastosowanie spacerów losowych w klastrowaniu grafów.\n",
|
||||
"\n",
|
||||
"Spacery losowe na grafach nadają się do klastrowania ponieważ istnieje znacznie większeprawdopodobieństwo że poruszając się losowo zostaniemy w obrębie danego klastru. klastry są wewnątrz gęste a wyjścia z klastru są rzadkie. Do klastrowania można wykorzystać algorytm MCL(Markov Cluster Algorithm)\n",
|
||||
"1) Obliczamy dla każdej pary wezłów u i v prawdopodobieństwo rozpoczęcia od węzła u i zakończenia w węźle v po przejściu k kroków.\n",
|
||||
"2) Otrzymaną macierz normalizujemy do wartości z przedziału 0-1\n",
|
||||
@ -118,4 +190,4 @@
|
||||
},
|
||||
"nbformat": 4,
|
||||
"nbformat_minor": 2
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user