Random_walks/main.ipynb
2021-06-28 11:16:57 +02:00

317 lines
95 KiB
Plaintext

{
"cells": [
{
"cell_type": "code",
"execution_count": 7,
"id": "3580fb47",
"metadata": {},
"outputs": [],
"source": [
"import sys\n",
"import numpy as np\n",
"import networkx as nx\n",
"import sklearn.preprocessing\n",
"from matplotlib.pylab import show, cm, axis\n",
"\n",
"def draw(G, A, cluster_map):\n",
"\n",
" graph = nx.Graph(G)\n",
" clust_map = {}\n",
" for k, vals in cluster_map.items():\n",
" for v in vals:\n",
" clust_map[v] = k\n",
"\n",
" colors = []\n",
" for i in range(len(G.nodes())):\n",
" colors.append(clust_map.get(i, 100))\n",
" \n",
" nx.draw_networkx(graph,node_color =colors,linewidths=7)\n",
" axis(\"off\")\n",
" show(block=False)\n",
"\n",
"def normalize(A):\n",
"# Normalize the columns of the given matrix\n",
" return sklearn.preprocessing.normalize(A, norm=\"l1\", axis=0)\n",
"\n",
"def inflate(A, inflate_factor):\n",
"# Apply cluster inflation to the given matrix by raising each element to the given power.\n",
" return normalize(np.power(A, inflate_factor))\n",
"\n",
"def expand(A, expand_factor):\n",
"# Apply cluster expansion to the given matrix by raising the matrix to the given power.\n",
" return np.linalg.matrix_power(A, expand_factor)\n",
"\n",
"def add_diag(A, mult_factor):\n",
"# Add self-loops to the matrix by setting the diagonal to 1\n",
" return A + mult_factor * np.identity(A.shape[0])\n",
"\n",
"def get_clusters(A):\n",
" clusters = []\n",
" for i, r in enumerate((A>0).tolist()): # Pętla po każdym node, jeśli nie jest listą samych \n",
" # False to dodajemy do tablicy klastrów\n",
" if r[i]:\n",
" clusters.append(A[i,:]>0)\n",
" clust_map ={}\n",
" for cn , c in enumerate(clusters): # Pętla po tablicy klastrów i zamiana wartości True na dany węzęł\n",
" for x in [ i for i, x in enumerate(c) if x ]:\n",
" clust_map[cn] = clust_map.get(cn, []) + [x]\n",
" return clust_map\n",
"\n",
"def stop(M, i):\n",
" if i%5==4:\n",
" m = np.max( M**2 - M) - np.min( M**2 - M)\n",
" if m==0:\n",
" print(\"Stop at iteration %s\" % i)\n",
" return True\n",
" return False\n",
"\n",
"\n",
"def mcl(M, max_loop = 10):\n",
" expand_factor = 2\n",
" inflate_factor = 2\n",
" M = add_diag(M, 1)\n",
" M = normalize(M)\n",
" \n",
" for i in range(max_loop):\n",
" M = expand(M, expand_factor)\n",
" M = inflate(M, inflate_factor)\n",
" \n",
" if stop(M, i): break\n",
"\n",
" clusters = get_clusters(M)\n",
" return M, clusters\n",
"\n",
"def networkx_mcl(G, max_loop = 50):\n",
" A = nx.adjacency_matrix(G)\n",
" return mcl(np.array(A.todense()), max_loop)\n",
"\n",
"\n",
"def calculate_and_draw(Graph): \n",
" M = nx.to_numpy_matrix(Graph)\n",
" print(\" number of nodes: %s\\n\" % M.shape[0])\n",
" \n",
" M, clusters = networkx_mcl(Graph)\n",
" [print(key, \": \", value) for key, value in clusters.items()]\n",
" \n",
" draw(Graph, M, clusters)\n",
"\n",
"\n",
"# https://networkx.org/documentation/stable/reference/generators.html"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "dying-impact",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" number of nodes: 16\n",
"\n",
"Stop at iteration 14\n",
"0 : [0, 1]\n",
"1 : [2, 3]\n",
"2 : [4, 5]\n",
"3 : [6, 7]\n",
"4 : [8, 9]\n",
"5 : [10, 12]\n",
"6 : [11, 13]\n",
"7 : [14, 15]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G_bin = nx.binomial_tree(4) # Returns the Binomial Tree of order n.\n",
"calculate_and_draw(G_bin)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "wooden-harbor",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" number of nodes: 15\n",
"\n",
"0 : [0, 1, 3, 7, 8]\n",
"1 : [0, 1, 4, 9, 10]\n",
"2 : [0, 2, 5, 11, 12]\n",
"3 : [0, 2, 6, 13, 14]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G_balanced = nx.balanced_tree(2,3) # Returns the perfectly balanced r-ary tree of height h.\n",
"calculate_and_draw(G_balanced)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "perceived-principal",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" number of nodes: 31\n",
"\n",
"0 : [0, 1]\n",
"1 : [0, 2]\n",
"2 : [3, 7, 15, 16]\n",
"3 : [3, 8, 17, 18]\n",
"4 : [4, 9, 19, 20]\n",
"5 : [4, 10, 21, 22]\n",
"6 : [5, 11, 23, 24]\n",
"7 : [5, 12, 25, 26]\n",
"8 : [6, 13, 27, 28]\n",
"9 : [6, 14, 29, 30]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G_balanced = nx.balanced_tree(2,4) # Returns the perfectly balanced r-ary tree of height h.\n",
"calculate_and_draw(G_balanced)"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "excellent-bulletin",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" number of nodes: 10\n",
"\n",
"0 : [0, 1]\n",
"1 : [0, 2]\n",
"2 : [0, 6]\n",
"3 : [5, 7]\n",
"4 : [3, 4, 8]\n",
"5 : [5, 9]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G_gn = nx.gn_graph(10) # (Directed) Returns the growing network (GN) digraph with n nodes.\n",
"calculate_and_draw(G_gn)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "acting-flight",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
" number of nodes: 10\n",
"\n",
"Stop at iteration 19\n",
"0 : [1, 2, 6]\n",
"1 : [3]\n",
"2 : [4, 5, 8, 9]\n",
"3 : [0, 7]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"G_tree = nx.random_tree(10) # Returns a uniformly random tree on n nodes.\n",
"calculate_and_draw(G_tree)\n"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "loved-north",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.5"
}
},
"nbformat": 4,
"nbformat_minor": 5
}