{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "import numpy as np\n", "import math\n", "import scipy.linalg as lalg\n", "import scipy.sparse.linalg as linalg\n", "import networkx as nx\n", "import csv\n", "import matplotlib.pyplot as plt\n", "\n", "import warnings\n", "warnings.filterwarnings(\"ignore\")\n", "\n", "np.set_printoptions(linewidth=200, suppress=True)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Initialize the network and plot it" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# plots the network\n", "def plot_network(A):\n", " G = nx.from_numpy_matrix(A.T, create_using=nx.DiGraph())\n", " G = nx.convert_node_labels_to_integers(G, first_label=1)\n", "\n", " pos = nx.circular_layout(G)\n", " nx.draw(G, pos)\n", " nx.draw_networkx_labels(G, pos)\n", "\n", " plt.draw()" ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeEAAAFCCAYAAADGwmVOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzt3Xl4VOXdxvHvEIgkCAHCjghYqkBIjECCLJEAIRGUVqx1\nwS1YK4sWl0JbFNxqRYq0KAhS8RK30r5WS9r3DSYgIUAACVsSkrggKKBAwhYkG1nm/WPIIctkIzNz\nZib357pyaWbO8kvIOfc8z3nOcyxWq9WKiIiIuFwLswsQERFprhTCIiIiJlEIi4iImEQhLCIiYhKF\nsIiIiEkUwiIiIiZRCIuIiJhEISwiImIShbCIiIhJFMIiIiImUQiLiIiYRCEsIiJiEoWwiIiISRTC\nIiIiJlEIi4iImEQhLCIiYhKFsIiIiEkUwiIiIiZRCIuIiJhEISwiImIShbCIiIhJFMIiIiImUQiL\niIiYRCEsIiJiEoWwiIiISVqaXYCIuFBODqxeDenpkJcHAQEQEgJTp0LnzmZXJ9LsWKxWq9XsIkTE\nyVJTYcECWLfO9n1R0aX3/PzAaoUJE2DuXAgLM6dGkWZIISzi7VasgNmzobDQFra1sVhsgfzqqzBj\nhuvqE2nG1B0t4s0qArigoP5lrVbbcrNn275XEIs4nVrCIt4qNRUiI2sE8H3ABqAA6Ab8Dni4+rr+\n/pCcDEOHuqBQkeZLo6NFvNWCBbYu6Gr+ABwEzgH/AeYBu6svVFhoW19EnEohLOKNcnJsg7DsdHQN\nAvwv/r/l4tc31ReyWiE+HnJznVqmSHOnEBbxRqtX1/n2TGxB3B/oDky0t5DFUu92RKRpFMIi3ig9\nveptSNUsB34EtgC3A1fYW6iwEDIynFKeiNgohEW8UV5evYv4AKOAo8CKWpbJTElh/fr1FNUR6CJy\n+RTCIl6ktLSUbdu2kfbddw1fBzvXhC/affAg0dHRdOzYkQkTJvDXv/6VrKwsdFOFiGPoFiURD/fd\nd9+RkJBAYmIiGzdupFevXrzcvj0379iBz4ULVZbNATYCtwJ+2G5Vuh1YA/ys2nYLgGeBxXb2edVV\nVxEdHU1MTAxRUVF07NjR0T+WSLOgEBbxMPn5+WzatMkI3tOnTzN+/HhiYmIYP3483bt3t42O7t27\nxnXhXOAOIA0oB3oDs4Bf29lPIXA1cLKeeiwWC2FhYcTExBATE8OwYcNo2VLzAIk0hEJYxM2Vl5eT\nnp5uhO7OnTsZMmSIEXqhoaG0aGHnytLtt8PatXVPVVkLq8XC92FhvBASQkJCAkeOHGnwuu3atWPc\nuHHExMQQHR1N3759G71/keZCISzihk6cOMH69etJSEhg/fr1tGvXzgi1yMhI2rZtW/9Gapkxq0Eq\nzZhltVr54osvSExMJCEhgU2bNlFoZxKQ2vz0pz81ah8zZgxXXnll4+sR8VIKYRE3cOHCBVJSUkhI\nSCAhIYFDhw4xduzYprcmGzN3dAV//zof4lBUVMTWrVuNUE5PT2/wplu1asXIkSOZNWsWkydPbnhN\nIl5KISxiAqvVytdff22E7ubNmxkwYIDRxRweHk6rVq0cszMnP0Xp2LFjRqs9MTGRkyfru4oMy5Yt\n49FHH23wPkS8lUJYxEXOnj3Lxo0bjeAtLS01QnfcuHEEBgY6b+e7dtnmgo6Pt4Vt5e7kiucJT5xo\ne55wEx7aUF5ezr59+4yfMSUlhdLS0hrLBQYGMmHCBKKjo4mOjqZr166XvU8RT6YQFnGSsrIyUlNT\nq3Tbjhw50gjeAQMGYLFYXFtUbq5tKsqMDDhzBjp0gOBgiI2Fzp0dvrsff/zRGMmdkJDAgQMH6Nev\nH4mJicbvJSkpiT59+hhd7yNHjuSKK+zO4SXidRTCIg505MgRI1w+++wzevToYYRuREQErVu3NrtE\nUx08eJAffviBUaNGGa+Vlpby+eefG93ZWVlZ3HTTTcZ9yNdee63rP6yIuIhCWKQJCgoKSE5ONoI3\nJyfHuGc3OjqaHj16mF2ixzl9+jQbNmwwfqc+Pj5GII8bN4727dubXaKIwyiERRrBarWSkZFhtNp2\n7NjB4MGDjZAYPHiw/Xt25bJYrVays7ON33dKSgrBwcHG7zssLAwfHx+zyxS5bAphkXrk5uayfv16\n4zqmv7+/EQJjxoyhXbt2ZpfYbBQVFbFlyxajlXz06FFjYpCYmBh69epldokijaIQFqnmwoULbN++\n3Wh9HThwgMjISCN4f/KTn5hdolz0ww8/VJnUpFOnTkYgjx49Gn9/f7NLFKmTQlgEOHDggDGCNzk5\nmWuvvda4rjt8+HDH3bMrTlNeXs7evXuNf8c9e/YwbNgwI5SDg4M1wEvcjkJYmqVz584Z9+wmJiZS\nWFhonKyjoqLo1KmT2SVKE507d67K7VH5+flVnvzUpUsXs0sUUQhL81BWVsaePXuME/K+ffsYPny4\n0dodNGiQWkle7ptvvqky//VPfvIT499/xIgR+Pr6ml2iNEMKYfFa33//vXHS3bBhA926dTNaQjfd\ndBN+fn5mlygmKSkpYceOHUZPyJdffsno0aONUO7Xr58+lIlLKITFaxQWFrJlyxajtXvs2DGioqKM\nE+tVV11ldonipk6ePFnl3uQrrrjC+LsZO3YsAQEBZpcoXkohLB7LarWSmZlpnDi3bdtGaGio0dod\nMmSI7iGVRtPflbiSQlg8yqlTp6rcs+vr66sWizhVYWEhmzdvNkL5+PHjREVFGQ+fUA+LNIVCWNxa\nxbW7ihNgxbW7ilaJrt2Jqx09etS4N1ljDaSpFMLidg4ePGgMmElKStIoVnFbdY26j4mJISgoSB8S\npU4KYXGZ8vJy44SVmJhIVFQU8+fP58cffyQpKcl4/fz587qfUzxSXl6e8beckJBAcXFxlb9l3X8u\n1SmExal++OEHoyt5/fr1nDp1ynjvqquu4pprrqkys1F0dDQhISFqPYjHs1qtfPPNN3ZnYouJieHG\nG2/UTGyiEG6WcnJsD3ZPT4e8PAgIgJAQmDq1yQ92r5hgv+LEs3///jqX/+c//8ktt9xCmzZtmrRf\nEXdX25zkFR8+nTonuROPeWkahXBzkpoKCxbAunW274uKLr3n5wdWK0yYAHPnQlhYgzZptVrJysoy\nWrvJyckUVd5uPf7zn/8wadKkxvwUIl6h4ulcFaHcpk0bo5U8ZswY2rZt2/SdOOGYF8dSCDcXK1bA\n7NlQWGg78GpjsdgOzldfhRkz7C5y6tQpY2KDxMREjh492uAyAgICqtze0adPn0b+ICLep7bnVFe0\nki/rOdUOPObFeRTCzUHFwVhQ0PB1/P2Ng7KkpITPP//cOEGkpqbS0D+bFi1aEB4ebgxOCQ8Pp2XL\nlpf5g4g0DwUFBSQnJxs9TLm5uYwfP9748NqjR4+6N9DEY15cRyHs7VJTITKy1oPxayAYuAP4oNp7\nJb6+zB0+nLf27uXcuXMN3mWvXr2MT/Djxo2jY8eOl1m8iAAcOXLECOTPPvuMnj17GsdYREQErVu3\nvrSwnWO+GJgJbABOAz8BFgATqu/I3x+Sk2HoUOf+QGJQCHu722+HtWtr7Y6KBgqB3tQM4TJgLbaA\nroufn1+VASb9+/fX6GYRJykrK2PXrl3G4MeMjAxGjhxp9DYNeOYZLHFxVY75fGAREAtcDcQD9wAZ\nQJ/KG7dYYPJk+PhjV/04zZ5C2Jvl5EDv3lUHY1TyD+ATYCBwgJohDLaAvho4We31kJAQI3RHjRpV\n9ZO4iLjM2bNnjWdj74qPJ+XoURpyNIYAzwG/qP5G69Zw+LBGTbuILs55s9Wra33rHPAssBFYVccm\nrMCDwLudOhmftMePH0/37t0dWamIS3lrT81soLwBy50AvgKC7L1psdjOHXPmOLAyqY1C2Julp9fa\nCp4P/Aqob+p5f2DuxIn8+b//bfzoTBFxqRBsx2xdSoB7sX247m9vgcJCyMhwcGVSG4WwN8vLs/vy\nPmwDNPY2cDMp8fH8XI9uE3F77et5vxy4H/AFltW14JkzjipJ6qEQ9ma1PNZvE/Attmu9AOexDcLK\nAvbYWf5n99+P9b33HF+fiEm8tTv6bB3vWbH1fp3ANjCrzgkzO3RwYFVSF/UverOQENsgi2oeAb7B\n1iLeB0wHbgES7G3Dzw+Cg51YpIjrWa1Wr/y6f+FCu8c8wAwgG/gvUOfDFnXMu5RGR3uzekZHV3ie\n2kdHa6SkiAep5Zj/DtutSFdQtftzJbbrw1XomHcptYS9WZcutnlh6+l6e55aAthigYkTdTCKeIpa\njvne2Lqji7Bdfqr4qhHAOuZdTi1hb1fPjFl10uw5Ip5Hx7xHUUvY24WFkfWrX5Hf2PUq5pHVwSji\nWcLCbMeuf303K1VV4uurY94ECmEvV1hYyM/i4/kttqnryupbwWLRRO4inm7GjEtBXM/lqDJs54bf\nWSwcu+02l5QnlyiEvdzLL7/MN998w0pgNLa5oMt9fW0jICvz87MNyJg82dYdpQAW8WwzZtiO5cmT\nbcd2tWO+vHVrirCdE0YDS4qLefLJJ82otFnTNWEvlp2dzfXXX09JSYnx2syZM3nj+edt09JlZPCf\n99/nZ/ffb7slITZWAzJEvFFurnHMc+aM7T7g4GD+duEC0+bNq7Lop59+SkxMjDl1NkMKYS9ltVoZ\nM2YMycnJxmvdunXjiy++IKDSJB4Wi6XBzwYWEe9SVlZGeHg4e/Zcmqanb9++7N+/H/9GXlOWy6Pu\naC/17rvvVglggCVLllQJYBFp3nx8fFi5cmWVeeEPHTrESy+9ZGJVzYtawl7o5MmT9O/fn1OnThmv\nxcTEsG7duhrT9aklLCKzZs1i6dKlxvctW7Zk3759BAXZfc6SOJBC2As99NBDvPPOO8b3rVu3JjMz\nk2uuuabGsgphETl37hwDBgzghx9+MF4bNWoUycnJenqak+m362U2b95cJYAB5s+fbzeARUQA2rVr\nx2uvvVblta1bt9Y4l4jjqSXsRS5cuEBoaCjZ2dnGawMHDmTv3r34+vraXUctYREB22DOW2+9lfj4\neOO1jh078sUXX9BZd004jVrCXmTRokVVAhjgzTffrDWARUQqWCwW3njjDfwq3U98+vRpZs+ebWJV\n3k8h7CW++eabGiMaH3roISIiIkyqSEQ8TZ8+fXjuueeqvPbee++RlJRkUkXeT93RXsBqtXLzzTeT\nmJhovNapUye++OILAgMD61xX3dEiUllJSQmDBw9m//79xmvXXnst6enpXHHFFSZW5p3UEvYCe/bs\nYf369VVee/XVV+sNYBGR6lq1asXKlSurvPbVV1+xdu1akyrybgphLzBkyBBWrVpFy5a2x3VHRkby\nwAMPmFyViHiqESNG8Otf/xqwhfLs2bO56667TK7KO6k72guUlpYSFhbGE088walTp5g4cSL9+/dv\n0LrqjhYRe06fPs2SJUsYM2YM9957L1lZWbRv397ssryOQtgL/OUvfyE+Pp7169fXmBGrPgphEanP\njItPVVuxYoXJlXgfhbCHO3z4MIMHD2bbtm1ce+21jV5fISwi9Tl79iwDBw7kk08+4cYbbzS7HK+i\na8IebtasWfzmN7+5rAAWEWmI9u3bs3jxYqZNm1bl0ajSdAphDxYXF0d2djZ/+MMfzC5FRLzc3Xff\nTdeuXWtMbylNo+5oD3X+/HkGDhzIu+++y5gxYy57O+qOFpGGOnDgADfeeCO7d++md+/eZpfjFRTC\nHuq3v/0tubm5vPfee03ajkJYRBrjpZdeYufOncTFxTV6IKjUpBD2QPv27SM6Opr9+/fTpUuXJm1L\nISwijVFcXExoaCgvv/wykydPNrscj6cQ9jBlZWXGjfQPP/xwk7enEBaRxkpOTua+++4jKyuLtm3b\nml2OR9PALA+zcuVKWrVqxUMPPWR2KSLSTI0ePZqoqCieffZZs0vxeGoJe5Bjx44REhLCpk2bCAoK\ncsg21RIWkctx8uRJgoKCWLduHYMHDza7HI+llrAHefLJJ3n44YcdFsAiIperU6dOvPLKK0ybNo2y\nsjKzy/FYCmEP8emnn7Jz507mz59vdikiIgDExsbi7+/P8uXLzS7FY6k72gMUFBQwaNAg3njjDSZM\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A = np.array([[0., 0., 0., 0., 0., 0., 0., 0.],\n", " [1., 0., 0., 1., 0., 0., 0., 0.],\n", " [0., 1., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 1., 0., 1., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 1., 1., 0.],\n", " [0., 0., 0., 1., 0., 0., 1., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 1., 0.]])\n", "\n", "plot_network(A)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": true }, "outputs": [], "source": [ "# calculates the centrality\n", "def centralities(A, alpha=1.0, const_term=False, normalize=True, threshold=1e-6, nsteps=100):\n", " n, n = A.shape\n", " x = np.ones(n)\n", " x /= np.linalg.norm(x)\n", " xi = [x]\n", " for i in range(nsteps):\n", " x_new = alpha * np.dot(A, x)\n", " if const_term:\n", " x_new += np.ones(n)\n", " if normalize:\n", " x_new /= np.linalg.norm(x_new) # normalize to a unit vector\n", " dist = np.linalg.norm(x-x_new) # distance to the previous iteration\n", " x = x_new\n", " xi.append(x)\n", " if dist < threshold:\n", " break\n", " return xi" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Eigenvector Centrality" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### First Try" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Eigenvector centralities:\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "Number of iterations: 100\n" ] } ], "source": [ "xi = centralities(A)\n", "print('Eigenvector centralities:')\n", "print(xi[-1])\n", "print('Number of iterations:', len(xi) - 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check the convergence" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iterations:\n", "[ 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339]\n", "[ 0. 0.47140452 0.23570226 0.47140452 0.47140452 0.47140452 0. 0.23570226]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n", "[ 0. 0.4 0.4 0.6 0.4 0.4 0. 0. ]\n", "[ 0. 0.46291005 0.3086067 0.6172134 0.3086067 0.46291005 0. 0. ]\n", "[ 0. 0.49236596 0.36927447 0.49236596 0.36927447 0.49236596 0. 0. ]\n" ] } ], "source": [ "print('Iterations:')\n", "for x in xi: print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check the eigenvalues" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Eigenvalues:\n", "-0.629961+1.091124j abs:1.259921\n", "-0.629961-1.091124j abs:1.259921\n", "1.259921+0.000000j abs:1.259921\n", "0.000000+0.000000j abs:0.000000\n", "-0.000000+0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n" ] } ], "source": [ "l, v = np.linalg.eig(A)\n", "print('Eigenvalues:')\n", "for lam in l: print('{0:<30f}abs:{1:f}'.format(lam, np.absolute(lam)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Connect the network (Demonstration of Perron-Frobenius)" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nOmW/LV1mpv2i/EaN7JckxMW5ZETk5cuX2bhxo3HuKy0tDYB77rmHUaNGGYe0g4KCiI2NJSYmhsGD\nB3vldbg7duwgLi6O9PT0Uu/pXHHNkZ2dzcKFC/nqq6/YuXMnly9fpnXr1gwePBibzcbHH38MQJcu\nXYpdUVC3bl3XFOTmbV4qTyEsbpeVlcXKlStp1aoVAwcOBErfgGDz5s3GObCYmBh69eqFn593XNZ+\n+fJlZsyYwSuvvOLwnJ/OFfseq9XKv//9bz744APWr1/PmTNnqFevHr1792bUqFGMHj3aOIebmZnJ\n5s2biYmJoV27diZXLmZTCItHys3NZe3atUaXnJWVRXR0NDExMcTExNC6dWuzS6yQumLftm/fPubP\nn8+3335rjGy++eabGT58OJMmTVLASqUohMUrHD16lKSkJJKSkowuuugw3oABAwgKcnR7AvOpK/Yd\n+fn5/N///R9///vfSUtL4+LFizRv3pwBAwbwxBNPMGTIEK85WiOeQyEsXqewsJDU1FSjS05PTycq\nKsoI5W7dunncjUHUFXuntWvXsnDhQtasWcOJEycIDAwkPDycBx98kMcff9wrxy2IZ1EIi9fLzs4u\ndtODK1euGIEcHR3tMV2mumLPd+LECebNm8eyZcvYu3cvBQUFxt2oJk2axC233GJ2ieJjFMLiU2w2\nG/v27TMCOTk5mS5duhg3Oejbty+1a9c2tUZ1xZ6joKCAL774go8++oitW7eSnZ1No0aN6Nu3L3Fx\ncdx///3UqqWHzYnrKITFp126dIlNmzYZo64PHjxY7HZ/HTp0MKUudcXmycjIYO7cuSQlJXHkyBFq\n165N165due+++5g4cSLNmzc3u0SpQRTCUqOcPHmSlStXGueT69WrZwTywIEDqVevnlvrUVfseufP\nnyc+Pp4vv/ySzMxMLl26RKtWrRg8eDDjxo0jKirK7BKlBlMIS41ltVrJzMw0uuStW7fSq1cv49rk\nHj16uGW0q7pi57JarXz33XcsWrSI9evXc+rUKW644QZ69erFQw89xJgxYwgs4znbIu6mEBa56uLF\niyQnJxuhfPbsWYYMGWI8+ally5YuXb+64ut36NAh5s6dy7fffsv+/fsB6NSpE3fffTcTJ07kpptu\nMrlCEccUwiJlOHz4sDHA6/vvv6dt27ZGl9y/f3+XdFPqiisnPz+fjz76iM8++4xt27Zx4cIFmjVr\nRv/+/Xn88ce56667dM2ueAWFsEglFBQUkJKSYpxL3rlzJ/379zcuherSpYtTr01WV1zahg0biI+P\nZ9WqVRw/fpw6deoQFhbGr3/9a5544gkaNmxodokiVaYQFrkO586d4/vvvzc6ZZvNZnTJ0dHRNGrU\nqNrrqOldcVZWFvPnz2fp0qXs2bOHK1eu0LZtW2JiYpg4cSIRERFmlyhSbQphkWqy2Wz88MMPRiCv\nW7eO0NBQo0vu06dPta41rSldsdVq5csvv+TDDz9k8+bNnDt3joYNG9KnTx9Gjx7Nb37zG12zKz5H\nISziZJcuXWLDhg3GAK/Dhw8zePBg41Ko67mxv7d3xUV/JklJSRQWFvLGG28AsGvXLuOa3f/85z/4\n+/vTpUsX7r33XiZMmECrVq1MrlzEtRTCIi524sQJVqxYQWJiIitWrKBRo0ZGlzxw4MAqPUPWW7pi\nm83Gjz/+aJxDX716Nbm5uQDUqVOH7t27k5mZSX5+Pi1atGDQoEGMGzeO22+/3eTKRdxLISziRlar\nlfT0dKNLTk1NpU+fPkYoh4eHVziqt1pdcVaW/eHuGRmQkwMNGkB4OIwdW+2Hu2dnZ/P9998bwXv4\n8OEy5w0PD2f8+PGMGTOG4ODgaq1XxJsphEVMdOHCBdasWWMEV05OTrFrk0NCQsr8bJW64pQUmDED\nli+3v87P/2XmoCCw2WDoUJg6FSIjK1V7YWGhMWI8MTGRLVu2YLVaK/XZv/zlL/zv//5vpeYV8WUK\nYREPcujQIWOA1+rVq40n+MTGxhIVFUVAQECx+SvTFcf36MEN06ZBXp49bMtisdgD+c03YcIEh7Mc\nOXLEqG/lypVkZ2dX+ne79hnQ0dHRNG3atNKfFfFVCmERD1VQUMCWLVuMLnnPnj0MGDDACOWbb77Z\nuDa5rK54HPA2UKUDvsHBRhAX3UWsKHj37t1b6cUEBgZy++23G8EbGhrqcc95FjGbQljES5w9e5aV\nK1cagejv728E8uDBgwkODi7WFfcG1gDXDvu6ocQy84CJwJwS06/Urs0fIiJ4Pz2dy5cvV7rG0NBQ\n43rp22+/naCgoOv4TUVqDoWwiBey2Wzs2bPH6JI3bNhAWFgYsbGxtG/fnrfffpu/padzL+BfxjIu\nAC2ABKDkmORCYCnwQAV1NG7cuNg57DZt2lTr9xKpaRTCIj4gPz+fdevWGV1y/pEjZJ4/T51yNu8P\ngReBA4Cjg8R5QFvg9DXT/P396devn9GB9+zZE3//smJeRCqiEBbxQTkvvEDd11+n1pUrZc4zGHsH\nPL2M93OBvwFLOnQodti7fv36Tq9XpKZSCIv4okcegU8/LfPtw0BHYD/QoZzFnL/3XuovXerk4kSk\niJ71JeKLcnLKfftjoD/lBzBA/cJCZ1UkIg4ohEV8UYMG5b79ETCmMstxwtOgRKRsCmERXxQeDoGB\nDt/aCPwX+HVFywgKgrAwJxcmItfSOWERX5SVBe3aFb895VXjsA+6+riiZQQGwpEj1b6ntIiUTZ2w\niC9q3tx+L2gHd6iKpxIBbLHAsGEKYBEXUycs4qtSUmDgQLj6CMEqCQ6G5GTo3dvpZYnIL9QJi/iq\nyEj7PaCr+qjAontHK4BFXK6W2QWIiAsVPQ1pyhSnPEVJRJxLh6NFaoLUVPvzhBMS7GGbl/fLe0XP\nEx42zP48YXXAIm6jEBapSU6dgsWLITMTzp2zXwccFgZxcRqEJWIChbCIiIhJNDBLRETEJAphERER\nkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERM\nohAWERExiUJYRETEJAphERERkyiERURETKIQFhERMYlCWERExCQKYREREZMohEVEREyiEBYRETGJ\nQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERkyiERURETKIQFhERMYlCWERExCQK\nYREREZMohEVEREyiEBYRETGJQlhERMQkCmERERGTKIRFRERMohAWERExiUJYRETEJAphERERk/w/\n2FPRvFKAB9MAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A[0][1] = 1 # 2->1\n", "A[6][7] = 1 # 8->7\n", "A[6][4] = 1 # 5->7\n", "\n", "plot_network(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Second Try" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Eigenvector centralities:\n", "[ 0.18388015 0.32355487 0.18388015 0.38544571 0.49434931 0.454886 0.41497054 0.23583251]\n", "Number of iterations: 35\n" ] } ], "source": [ "xi = centralities(A)\n", "print('Eigenvector centralities:')\n", "print(xi[-1])\n", "print('Number of iterations:', len(xi) - 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check the convergence" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iterations:\n", "[ 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339]\n", "[ 0.20851441 0.41702883 0.20851441 0.41702883 0.41702883 0.41702883 0.41702883 0.20851441]\n", "[ 0.23735633 0.3560345 0.23735633 0.3560345 0.47471266 0.47471266 0.3560345 0.23735633]\n", "[ 0.20751434 0.34585723 0.20751434 0.41502868 0.48420012 0.41502868 0.41502868 0.20751434]\n", "[ 0.19536617 0.3516591 0.19536617 0.39073233 0.4688788 0.4688788 0.39073233 0.2344394 ]\n", "[ 0.20205596 0.33675994 0.20205596 0.38166127 0.49391458 0.44901326 0.40411193 0.22450663]\n", "[ 0.19199238 0.3327868 0.19199238 0.39678426 0.4863807 0.44798222 0.40958375 0.23039086]\n", "[ 0.18914719 0.33464503 0.18914719 0.38556928 0.48741777 0.4583182 0.40739395 0.23279654]\n", "[ 0.19083851 0.32774441 0.19083851 0.38582569 0.49369094 0.45220431 0.41071767 0.23232515]\n", "[ 0.18642137 0.32800722 0.18642137 0.38936108 0.49083094 0.45307472 0.41295873 0.23361665]\n", "[ 0.18646215 0.32731486 0.18646215 0.38499739 0.49231374 0.45609447 0.41182648 0.23475451]\n", "[ 0.18626269 0.32519634 0.18626269 0.38626607 0.49390148 0.45344278 0.41374745 0.23435511]\n", "[ 0.18483322 0.3254106 0.18483322 0.3865878 0.49288859 0.45470708 0.41392229 0.2351634 ]\n", "[ 0.18498983 0.32484214 0.18498983 0.38527215 0.49379951 0.45507497 0.41388391 0.23530706]\n", "[ 0.18468764 0.32422007 0.18468764 0.38592285 0.49404295 0.45435685 0.41453051 0.23531197]\n", "[ 0.18426373 0.3242946 0.18426373 0.38574241 0.49381404 0.454921 0.41451369 0.23558978]\n", "[ 0.18432946 0.32399222 0.18432946 0.38542027 0.49418779 0.45486659 0.41459407 0.23561011]\n", "[ 0.18415129 0.3238354 0.18415129 0.38565688 0.49418564 0.45471361 0.41480387 0.23564773]\n", "[ 0.1840426 0.3238342 0.1840426 0.38551342 0.49416543 0.45491901 0.41477996 0.23574193]\n", "[ 0.18405166 0.32370804 0.18405166 0.38546057 0.49429474 0.45484797 0.41484397 0.23574082]\n", "[ 0.18397341 0.32367163 0.18397341 0.3855255 0.49427315 0.45483813 0.41490207 0.23576881]\n", "[ 0.18394854 0.32365671 0.18394854 0.38546 0.49428935 0.45489771 0.41489628 0.23579648]\n", "[ 0.18394289 0.32361033 0.18394289 0.385461 0.49432753 0.4548642 0.41492759 0.23579682]\n", "[ 0.1839133 0.323602 0.1839133 0.38547271 0.49431759 0.45487456 0.41494219 0.23581046]\n", "[ 0.18390802 0.32359088 0.18390802 0.3854491 0.49433031 0.45488817 0.41494307 0.23581806]\n", "[ 0.18390223 0.3235754 0.18390223 0.38545445 0.49433998 0.45487657 0.41495582 0.23581925]\n", "[ 0.18389219 0.32357295 0.18389219 0.38545404 0.49433727 0.45488376 0.41495916 0.23582489]\n", "[ 0.18389086 0.32356712 0.18389086 0.38544693 0.49434344 0.4548856 0.41496099 0.23582688]\n", "[ 0.18388753 0.32356229 0.18388753 0.38544964 0.49434546 0.45488254 0.41496557 0.23582788]\n", "[ 0.18388437 0.32356121 0.18388437 0.38544803 0.49434523 0.45488567 0.41496636 0.23582997]\n", "[ 0.18388384 0.32355864 0.18388384 0.38544626 0.49434766 0.45488539 0.41496758 0.23583051]\n", "[ 0.18388229 0.32355719 0.18388229 0.38544717 0.49434798 0.45488488 0.41496909 0.2358311 ]\n", "[ 0.18388135 0.32355662 0.18388135 0.38544623 0.49434823 0.45488596 0.41496935 0.23583181]\n", "[ 0.18388106 0.3235556 0.18388106 0.3854459 0.49434907 0.45488564 0.41496996 0.23583199]\n", "[ 0.18388043 0.32355516 0.18388043 0.3854461 0.4943491 0.45488568 0.41497043 0.23583228]\n", "[ 0.18388015 0.32355487 0.18388015 0.38544571 0.49434931 0.454886 0.41497054 0.23583251]\n" ] } ], "source": [ "print('Iterations:')\n", "for x in xi: print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check the eigenvalues" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Eigenvalues:\n", "-0.756139+0.935719j abs:1.203044\n", "-0.756139-0.935719j abs:1.203044\n", "-1.000000+0.000000j abs:1.000000\n", "-0.874007+0.000000j abs:0.874007\n", "-0.000000+0.000000j abs:0.000000\n", "0.352630+0.000000j abs:0.352630\n", "1.759598+0.000000j abs:1.759598\n", "1.274057+0.000000j abs:1.274057\n" ] } ], "source": [ "l, v = np.linalg.eig(A)\n", "print('Eigenvalues:')\n", "for lam in l: print('{0:<30f}abs:{1:f}'.format(lam, np.absolute(lam)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Katz Centrality" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### We use again the original network" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nk2uuuabGsgphETl37hwDBgzghx9+MF4bNWoUycnJenqak+m362U2b95cJYAB5s+fbzeARUQA2rVr\nx2uvvVblta1bt9Y4l4jjqSXsRS5cuEBoaCjZ2dnGawMHDmTv3r34+vraXUctYREB22DOW2+9lfj4\neOO1jh078sUXX9BZd004jVrCXmTRokVVAhjgzTffrDWARUQqWCwW3njjDfwq3U98+vRpZs+ebWJV\n3k8h7CW++eabGiMaH3roISIiIkyqSEQ8TZ8+fXjuueeqvPbee++RlJRkUkXeT93RXsBqtXLzzTeT\nmJhovNapUye++OILAgMD61xX3dEiUllJSQmDBw9m//79xmvXXnst6enpXHHFFSZW5p3UEvYCe/bs\nYf369VVee/XVV+sNYBGR6lq1asXKlSurvPbVV1+xdu1akyrybgphLzBkyBBWrVpFy5a2x3VHRkby\nwAMPmFyViHiqESNG8Otf/xqwhfLs2bO56667TK7KO6k72guUlpYSFhbGE088walTp5g4cSL9+/dv\n0LrqjhYRe06fPs2SJUsYM2YM9957L1lZWbRv397ssryOQtgL/OUvfyE+Pp7169fXmBGrPgphEanP\njItPVVuxYoXJlXgfhbCHO3z4MIMHD2bbtm1ce+21jV5fISwi9Tl79iwDBw7kk08+4cYbbzS7HK+i\na8IebtasWfzmN7+5rAAWEWmI9u3bs3jxYqZNm1bl0ajSdAphDxYXF0d2djZ/+MMfzC5FRLzc3Xff\nTdeuXWtMbylNo+5oD3X+/HkGDhzIu+++y5gxYy57O+qOFpGGOnDgADfeeCO7d++md+/eZpfjFRTC\nHuq3v/0tubm5vPfee03ajkJYRBrjpZdeYufOncTFxTV6IKjUpBD2QPv27SM6Opr9+/fTpUuXJm1L\nISwijVFcXExoaCgvv/wykydPNrscj6cQ9jBlZWXGjfQPP/xwk7enEBaRxkpOTua+++4jKyuLtm3b\nml2OR9PALA+zcuVKWrVqxUMPPWR2KSLSTI0ePZqoqCieffZZs0vxeGoJe5Bjx44REhLCpk2bCAoK\ncsg21RIWkctx8uRJgoKCWLduHYMHDza7HI+llrAHefLJJ3n44YcdFsAiIperU6dOvPLKK0ybNo2y\nsjKzy/FYCmEP8emnn7Jz507mz59vdikiIgDExsbi7+/P8uXLzS7FY6k72gMUFBQwaNAg3njjDSZM\n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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A[0][1] = 0 # delete 2->1\n", "A[6][7] = 0 # delete 8->7\n", "A[6][4] = 0 # delete 5->7\n", "\n", "plot_network(A)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate $\\alpha$" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Eigenvalues:\n", "-0.629961+1.091124j abs:1.259921\n", "-0.629961-1.091124j abs:1.259921\n", "1.259921+0.000000j abs:1.259921\n", "0.000000+0.000000j abs:0.000000\n", "-0.000000+0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n", "Spectral radius: 1.25992104989\n", "alpha: 0.634960420787\n" ] } ], "source": [ "l, v = np.linalg.eig(A)\n", "rho = np.absolute(l).max()\n", "print('Eigenvalues:')\n", "for lam in l: print('{0:<30f}abs:{1:f}'.format(lam, np.absolute(lam)))\n", "print('Spectral radius:', rho)\n", "alpha = 0.8 / rho\n", "print('alpha:', alpha)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Calculate the centralities" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Katz centralities:\n", "[ 0.06608949 0.45128689 0.35263879 0.54055842 0.394603 0.45128689 0.06608949 0.10805371]\n", "Number of iterations: 68\n" ] } ], "source": [ "xi = centralities(A, alpha=alpha, const_term=True, normalize=False)\n", "print('Katz centralities:')\n", "print(xi[-1] / np.linalg.norm(xi[-1]))\n", "print('Number of iterations:', len(xi) - 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Check convergence" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iterations:\n", "[ 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339 0.35355339]\n", "[ 1. 1.44898482 1.22449241 1.44898482 1.44898482 1.44898482 1. 1.22449241]\n", "[ 1. 2.55500843 1.92004801 2.69755223 2.55500843 2.55500843 1. 1.63496042]\n", "[ 1. 3.34779932 2.62232923 3.84148372 3.25728965 3.34779932 1. 1.63496042]\n", "[ 1. 4.07415054 3.12572006 4.73332528 3.76068048 4.07415054 1. 1.63496042]\n", "[ 1. 4.64043463 3.58692434 5.37259179 4.22188476 4.64043463 1. 1.63496042]\n", "[ 1. 5.04634356 3.94649233 5.95828471 4.58145275 5.04634356 1. 1.63496042]\n", "[ 1. 5.41823539 4.20422843 6.41490759 4.83918885 5.41823539 1. 1.63496042]\n", "[ 1. 5.70817284 4.44036502 6.74221205 5.07532544 5.70817284 1. 1.63496042]\n", "[ 1. 5.91599822 4.62446383 7.04208682 5.25942425 5.91599822 1. 1.63496042]\n", "[ 1. 6.10640683 4.75642472 7.27587774 5.39138514 6.10640683 1. 1.63496042]\n", "[ 1. 6.25485481 4.87732665 7.44345762 5.51228707 6.25485481 1. 1.63496042]\n", "[ 1. 6.3612614 4.97158524 7.5969935 5.60654566 6.3612614 1. 1.63496042]\n", "[ 1. 6.45875061 5.03914922 7.71669445 5.67410964 6.45875061 1. 1.63496042]\n", "[ 1. 6.53475598 5.10105101 7.80249535 5.73601143 6.53475598 1. 1.63496042]\n", "[ 1. 6.58923615 5.1493114 7.88110572 5.78427183 6.58923615 1. 1.63496042]\n", "[ 1. 6.63915063 5.18390416 7.94239261 5.81886458 6.63915063 1. 1.63496042]\n", "[ 1. 6.67806537 5.21559788 7.98632267 5.8505583 6.67806537 1. 1.63496042]\n", "[ 1. 6.70595922 5.2403072 8.02657118 5.87526762 6.70595922 1. 1.63496042]\n", "[ 1. 6.73151543 5.25801869 8.05795006 5.89297911 6.73151543 1. 1.63496042]\n", "[ 1. 6.75143978 5.27424587 8.08044226 5.90920629 6.75143978 1. 1.63496042]\n", "[ 1. 6.76572144 5.28689705 8.10104949 5.92185747 6.76572144 1. 1.63496042]\n", "[ 1. 6.77880622 5.29596533 8.11711548 5.93092575 6.77880622 1. 1.63496042]\n", "[ 1. 6.78900748 5.30427365 8.12863148 5.93923407 6.78900748 1. 1.63496042]\n", "[ 1. 6.79631969 5.31075105 8.13918239 5.94571147 6.79631969 1. 1.63496042]\n", "[ 1. 6.8030191 5.31539401 8.14740818 5.95035443 6.8030191 1. 1.63496042]\n", "[ 1. 6.80824214 5.31964787 8.15330437 5.95460829 6.80824214 1. 1.63496042]\n", "[ 1. 6.81198599 5.3229643 8.15870643 5.95792472 6.81198599 1. 1.63496042]\n", "[ 1. 6.81541609 5.32534149 8.16291804 5.96030191 6.81541609 1. 1.63496042]\n", "[ 1. 6.81809029 5.32751947 8.16593689 5.96247989 6.81809029 1. 1.63496042]\n", "[ 1. 6.82000714 5.32921748 8.16870274 5.9641779 6.82000714 1. 1.63496042]\n", "[ 1. 6.82176335 5.3304346 8.17085908 5.96539503 6.82176335 1. 1.63496042]\n", "[ 1. 6.82313254 5.33154973 8.17240474 5.96651015 6.82313254 1. 1.63496042]\n", "[ 1. 6.82411397 5.33241911 8.17382085 5.96737953 6.82411397 1. 1.63496042]\n", "[ 1. 6.82501315 5.33304228 8.1749249 5.9680027 6.82501315 1. 1.63496042]\n", "[ 1. 6.82571418 5.33361322 8.17571627 5.96857364 6.82571418 1. 1.63496042]\n", "[ 1. 6.82621667 5.33405835 8.17644133 5.96901877 6.82621667 1. 1.63496042]\n", "[ 1. 6.82667705 5.33437741 8.1770066 5.96933783 6.82667705 1. 1.63496042]\n", "[ 1. 6.82703597 5.33466973 8.17741178 5.96963015 6.82703597 1. 1.63496042]\n", "[ 1. 6.82729325 5.33489763 8.17778301 5.96985805 6.82729325 1. 1.63496042]\n", "[ 1. 6.82752896 5.33506099 8.17807243 5.97002141 6.82752896 1. 1.63496042]\n", "[ 1. 6.82771273 5.33521066 8.17827988 5.97017108 6.82771273 1. 1.63496042]\n", "[ 1. 6.82784446 5.33532735 8.17846995 5.97028777 6.82784446 1. 1.63496042]\n", "[ 1. 6.82796514 5.33541099 8.17861813 5.97037141 6.82796514 1. 1.63496042]\n", "[ 1. 6.82805923 5.33548762 8.17872435 5.97044804 6.82805923 1. 1.63496042]\n", "[ 1. 6.82812667 5.33554736 8.17882166 5.97050778 6.82812667 1. 1.63496042]\n", "[ 1. 6.82818847 5.33559019 8.17889753 5.97055061 6.82818847 1. 1.63496042]\n", "[ 1. 6.82823664 5.33562942 8.17895192 5.97058984 6.82823664 1. 1.63496042]\n", "[ 1. 6.82827117 5.33566001 8.17900174 5.97062043 6.82827117 1. 1.63496042]\n", "[ 1. 6.82830281 5.33568194 8.17904059 5.97064236 6.82830281 1. 1.63496042]\n", "[ 1. 6.82832747 5.33570202 8.17906843 5.97066245 6.82832747 1. 1.63496042]\n", "[ 1. 6.82834515 5.33571769 8.17909394 5.97067811 6.82834515 1. 1.63496042]\n", "[ 1. 6.82836135 5.33572891 8.17911383 5.97068933 6.82836135 1. 1.63496042]\n", "[ 1. 6.82837398 5.3357392 8.17912809 5.97069962 6.82837398 1. 1.63496042]\n", "[ 1. 6.82838303 5.33574722 8.17914115 5.97070764 6.82838303 1. 1.63496042]\n", "[ 1. 6.82839133 5.33575296 8.17915133 5.97071338 6.82839133 1. 1.63496042]\n", "[ 1. 6.82839779 5.33575823 8.17915863 5.97071865 6.82839779 1. 1.63496042]\n", "[ 1. 6.82840243 5.33576233 8.17916532 5.97072276 6.82840243 1. 1.63496042]\n", "[ 1. 6.82840667 5.33576528 8.17917053 5.9707257 6.82840667 1. 1.63496042]\n", "[ 1. 6.82840998 5.33576797 8.17917427 5.97072839 6.82840998 1. 1.63496042]\n", "[ 1. 6.82841236 5.33577008 8.17917769 5.9707305 6.82841236 1. 1.63496042]\n", "[ 1. 6.82841453 5.33577158 8.17918036 5.970732 6.82841453 1. 1.63496042]\n", "[ 1. 6.82841622 5.33577296 8.17918227 5.97073338 6.82841622 1. 1.63496042]\n", "[ 1. 6.82841744 5.33577404 8.17918403 5.97073446 6.82841744 1. 1.63496042]\n", "[ 1. 6.82841855 5.33577481 8.17918539 5.97073523 6.82841855 1. 1.63496042]\n", "[ 1. 6.82841942 5.33577552 8.17918637 5.97073594 6.82841942 1. 1.63496042]\n", "[ 1. 6.82842004 5.33577607 8.17918727 5.97073649 6.82842004 1. 1.63496042]\n", "[ 1. 6.82842061 5.33577646 8.17918797 5.97073688 6.82842061 1. 1.63496042]\n", "[ 1. 6.82842106 5.33577683 8.17918847 5.97073725 6.82842106 1. 1.63496042]\n" ] } ], "source": [ "print('Iterations:')\n", "for x in xi: print(x)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Propagation of centralities" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "A = np.array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [1., 0., 0., 1., 0., 0., 0., 0., 0., 0.],\n", " [0., 1., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 1., 0., 1., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 1., 1., 0., 0., 0.],\n", " [0., 0., 0., 1., 0., 0., 1., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 0., 0., 0., 1., 0., 0., 0.],\n", " [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.],\n", " [0., 0., 0., 1., 0., 0., 0., 0., 0., 0.]])\n", "\n", "plot_network(A)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Katz centralities:\n", "[ 0.05719751 0.39056869 0.30519316 0.46782923 0.34151131 0.39056869 0.05719751 0.09351566 0.35425054 0.35425054]\n", "Number of iterations: 69\n" ] } ], "source": [ "l, v = np.linalg.eig(A)\n", "rho = np.absolute(l).max()\n", "alpha = 0.8 / rho\n", "\n", "xi = centralities(A, alpha=alpha, const_term=True, normalize=False)\n", "print('Katz centralities:')\n", "print(xi[-1] / np.linalg.norm(xi[-1]))\n", "print('Number of iterations:', len(xi) - 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# PageRank" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Eigenvalues:\n", "0.000000+0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n", "-0.396850+0.687365j abs:0.793701\n", "-0.396850-0.687365j abs:0.793701\n", "0.793701+0.000000j abs:0.793701\n", "-0.000000+0.000000j abs:0.000000\n", "-0.000000-0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n", "0.000000+0.000000j abs:0.000000\n", "Spectral radius: 0.793700525984\n", "PageRank centralities:\n", "[ 0.03750605 0.11566382 0.1300371 0.24076463 0.12403613 0.09566059 0.03750605 0.04750767 0.08565898 0.08565898]\n", "Number of iterations: 35\n" ] } ], "source": [ "n, n = A.shape\n", "k = np.sum(A, axis=0)\n", "k[k == 0] = 1\n", "k_inv = [1.0/(ki) for ki in k]\n", "D_inv = np.diag(k_inv)\n", "alpha = 0.8\n", "\n", "P = np.dot(A, D_inv)\n", "l, v = np.linalg.eig(P)\n", "rho = np.absolute(l).max()\n", "print('Eigenvalues:')\n", "for lam in l: print('{0:<30f}abs:{1:f}'.format(lam, np.absolute(lam)))\n", "print('Spectral radius:', rho)\n", "\n", "xi = centralities(P, alpha=alpha, const_term=True, normalize=False)\n", "print('PageRank centralities:')\n", "print(xi[-1] / sum(xi[-1]))\n", "print('Number of iterations:', len(xi) - 1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Random Surfer" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Eigenvalues:\n", "1.000000+0.000000j abs:1.000000\n", "-0.312723+0.533094j abs:0.618050\n", "-0.312723-0.533094j abs:0.618050\n", "0.032723+0.229224j abs:0.231548\n", "0.032723-0.229224j abs:0.231548\n", "-0.000001+0.000000j abs:0.000001\n", "0.000001+0.000001j abs:0.000001\n", "0.000001-0.000001j abs:0.000001\n", "-0.000000+0.000000j abs:0.000000\n", "-0.000000+0.000000j abs:0.000000\n", "Stationary distribution:\n", "[ 0.03750605 0.11566382 0.1300371 0.24076464 0.12403613 0.09566059 0.03750605 0.04750766 0.08565898 0.08565898]\n" ] } ], "source": [ "P = np.dot(A, D_inv)\n", "dangling = np.sum(P, axis=0) # nodes without outgoing links\n", "index_dangling = np.ix_(dangling == 0)\n", "P[:, index_dangling] = 1.0 / n\n", "P = alpha * P + ((1 - alpha) / n) * np.ones([n, n]) # transition matrix\n", "l, v = np.linalg.eig(P)\n", "\n", "print('Eigenvalues:')\n", "for lam in l: print('{0:<30f}abs:{1:f}'.format(lam, np.absolute(lam)))\n", "print('Stationary distribution:')\n", "print(v[:,0].real / sum(v[:,0].real))" ] } ], "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.6.6" } }, "nbformat": 4, "nbformat_minor": 1 }