From 496f838611e369bd9101013b76e0910df9a641af Mon Sep 17 00:00:00 2001 From: Kees van Kempen Date: Mon, 3 Oct 2022 12:55:17 +0200 Subject: [PATCH] 04: Maybe I solved 1c, fix off-by-one error, fix minor things --- Exercise sheet 4/exercise_sheet_04.ipynb | 42 +++++++++++++++++------- 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/Exercise sheet 4/exercise_sheet_04.ipynb b/Exercise sheet 4/exercise_sheet_04.ipynb index 5037f6f..65b9976 100644 --- a/Exercise sheet 4/exercise_sheet_04.ipynb +++ b/Exercise sheet 4/exercise_sheet_04.ipynb @@ -137,7 +137,7 @@ "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -196,9 +196,9 @@ "source": [ "def sample_proposal(graph,x):\n", " '''Pick a random node y from the neighbors of x in graph with uniform\n", - " probability.'''\n", + " probability, according to Q.'''\n", " y_list = np.fromiter(graph.neighbors(x), dtype=int)\n", - " return np.random.choice(y_list)" + " return rng.choice(y_list)" ] }, { @@ -269,7 +269,7 @@ "outputs": [ { "data": { - "image/png": "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dmvzyJEjy45N1ZS2GOrdRxxmZpaJE4eZWTPefvttjjvuOD7xiU9wwAEHcMstt3DZZZfx6U9/mgMOOIBx48ax6WHqkSNH8t3vfpfDDz+c/fffn/nz53PSSSdRW1vLj3/8YwCWL1/OoEGDGDt2LAcddBAnn3wy69at22q99957L8OHD+fggw/mlFNO4a233gLg7rvvZtCgQRx22GHccccdrbcjEk4cZmbNuPvuu9lrr734xz/+QUNDA8cccwwTJkxg/vz5NDQ08M4772xxqqhz58489NBDjB8/ntGjRzNlyhQaGhqYOXMma9asAQoj4o4bN47HH3+cHj16bPWyqFdffZXLL7+c+++/n4ULF1JXV8eVV17Ju+++y9lnn80f//hHHn74YV5++eVW3RfgxGFm1qwDDzyQ+++/nx/+8Ic8/PDDfPSjH+XBBx9k2LBhHHjggfz5z39m8eJ/jaZ0/PHHb243ZMgQevfuzc4778w+++zDiy8WBg3v168fI0aMAOCMM87gr3/96xbrfPTRR3nyyScZMWIEQ4cOZdasWTz//PP885//ZMCAAdTW1iKJM844o5X2wr/44riZWTP2228/FixYwJw5c7jwwgs5+uijmTJlCvX19fTr149LLrmEd999d3P9TUOv77TTTlsMw77TTjttfk1s6ZDopfMRwVFHHcVNN235VolFixaVHU69NfmIw8ysGStWrGCXXXbhjDPO4IILLmDhwoUA9OrVi7feeovbbrstc58vvPDC5tFub7rpJg477LAtlh966KE88sgjLFu2DIB169bx1FNPMWjQIJ577jmeeeaZzW1bm484zGy70ha3zz7xxBN8//vfZ6eddqJTp05MnTqVP/zhDxx44IH079+fT3/605n73H///Zk1axbnnHMOtbW1fPOb39xieU1NDTNnzmTMmDG89957AFx++eXst99+TJ8+neOOO45evXpx2GGH0dDQ0CLbmVZuw6pXEw+rbq3Bw6rnY0ccVn358uV88YtfbPUf/EqyDKvuU1VmZpaJE4eZWSvr379/VR1tZOXEYWZVrz2cUm9LWfevE4eZVbUuXbqwZs0aJ4+cRARr1qyhS5cuqdv4riozq2p9+/alsbGR1atXt3UoO6wuXbrQt2/Zl7GW5cRhZlWtU6dODBgwoK3DsCI+VWVmZpnkmjgkHSNpqaRlkiaVWT5I0jxJ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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -301,7 +301,7 @@ " Q = np.zeros((n, n))\n", " for x in range(n): \n", " for k in example_graph.neighbors(x):\n", - " Q[x,k] = 1/example_graph.degree(x)\n", + " Q[x, k] = 1/example_graph.degree(x)\n", " return Q\n", "\n", "# Compare histogram and stationary distribution in a plot\n", @@ -309,7 +309,7 @@ "k = 100000\n", "\n", "plt.figure()\n", - "x_list = [i + 1 for i in range(example_graph.number_of_nodes())]\n", + "x_list = list(range(example_graph.number_of_nodes()))\n", "plt.bar(x_list, chain_Q_histogram(example_graph, x_start, k)/k, color=\"lightblue\", label=\"sampled\")\n", "plt.scatter(x_list, stationary_distributions(transition_matrix_Q(example_graph)), s=200, marker=\"_\", color=\"black\", label=\"theoretical\")\n", "plt.ylabel(\"visiting density\")\n", @@ -371,7 +371,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "37804448", "metadata": { "deletable": false, @@ -390,18 +390,36 @@ "source": [ "def acceptance_probability(graph,x,y):\n", " '''Compute A(x -> y) for the supplied graph (assuming x!=y).'''\n", - " # YOUR CODE HERE\n", - " raise NotImplementedError()\n", + " assert x != y\n", + " \n", + " Q = transition_matrix_Q(graph)\n", + " # TODO: What should pi be?\n", + " # As we have no preference, we'll take pi to be constant for all values.\n", + " pi = np.ones(graph.number_of_nodes())\n", + " #pi = stationary_distributions(Q)[0]\n", + " \n", + " #return np.min(1, pi[y - 1]*Q[x - 1, y - 1]/(pi[x - 1]*Q[y - 1, x - 1]))\n", + " #print(Q[x - 1, y - 1], Q[y - 1, x - 1], Q[x - 1, y - 1]/Q[y - 1, x - 1])\n", + " #A = Q[x-1, y-1]/Q[y-1, x-1]\n", + " #A = Q[y-1, x-1]/Q[x-1, y-1]\n", + " #A = pi[y - 1]*Q[x - 1, y - 1]/( pi[x - 1]*Q[y - 1, x - 1] )\n", + " #A = Q[x, y]/Q[y, x]\n", + " #print(\"<<<\", A, Q, \">>>\")\n", + " if Q[x, y] == 0:\n", + " return 0\n", + " else:\n", + " A = pi[y]*Q[y, x]/( pi[x]*Q[x, y] )\n", + " return np.min([1., A])\n", "\n", "def sample_next_state(graph,x):\n", " '''Return next random state y according to MH transition matrix P(x -> y).'''\n", - " # YOUR CODE HERE\n", - " raise NotImplementedError()" + " y = sample_proposal(graph, x)\n", + " return y if rng.random() < acceptance_probability(graph, x, y) else x" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "058d3728", "metadata": { "deletable": false,