diff --git a/matma2nowy.ipynb b/matma2nowy.ipynb
new file mode 100644
index 0000000..16bba02
--- /dev/null
+++ b/matma2nowy.ipynb
@@ -0,0 +1,121 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Spacery losowe po grafach: algorytm wyszukiwania klastrów\n",
+ "
\n",
+ "Spacery losowe\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": [
+ "Łancuch markova\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",
+ "\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": [
+ "Podgrafy silnie ze sobą powiązane\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)\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",
+ "\n",
+ "![](https://upload.wikimedia.org/wikipedia/commons/thumb/e/e1/Scc-1.svg/712px-Scc-1.svg.png)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ "Wierzchołki krytyczne rozspójniające graf\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)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {},
+ "source": [
+ " Zastosowanie spacerów losowych w klastrowaniu grafów.\n",
+ "
\n",
+ "
\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",
+ "3) Mnożymy macierz k razy przez siebie\n",
+ "4) Wzmacniamy obserwacje z punktu 3 stosując inflacje z parametrem r ma to wpływ na ziarnistość klastrów\n",
+ "\n",
+ "![](https://i.imgur.com/76ocnf5.png)\n",
+ "\n",
+ "5) Kroki 3 i 4 powtarzamy do momeentu gdy sumy w kolumnach będą równe\n",
+ "6) Z otrzymanej macierzy odczytujemy klastry np:\n",
+ "{1}, {3}, {2,4}\n",
+ "\n",
+ "![](https://i.imgur.com/ryF4FUu.png)\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "language_info": {
+ "name": "python"
+ },
+ "orig_nbformat": 4
+ },
+ "nbformat": 4,
+ "nbformat_minor": 2
+}