diff --git a/IsingModel.ipynb b/IsingModel.ipynb new file mode 100644 index 0000000..f6fdfdc --- /dev/null +++ b/IsingModel.ipynb @@ -0,0 +1,1105 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "f0af85a1-5faf-44bf-9742-208123e14c4e", + "metadata": {}, + "source": [ + "# Ising model as Perception-Action Loop\n", + "\n", + "Description: Interpreting Ising model as perception-action loop to compare different intrinsic utility measures. Measures include:\n", + "\n", + "- predictive information\n", + "- empowerment\n", + "- variational free energy (active inference), intrinsic component only\n", + "- thermodynamic efficiency" + ] + }, + { + "cell_type": "markdown", + "id": "f2a1d8f7-33ca-42e3-9edb-1663b2165f12", + "metadata": {}, + "source": [ + "## 1. Simulation\n", + "Simulate the process of magnetization based on 2D Ising model, assume no external magnetic field. Use Metroplolis Algorithm." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "603d4982-e3e5-4515-8be6-df9bc32c0fad", + "metadata": {}, + "outputs": [], + "source": [ + "# -*- coding: utf-8 -*-\n", + "from jpype import *\n", + "import sys\n", + "import numpy as np\n", + "from collections import defaultdict # to compute pdf\n", + "import matplotlib.pyplot as plt\n", + "import numba\n", + "from numba import njit\n", + "from scipy.ndimage import convolve, generate_binary_structure\n", + "import plotly.graph_objs as go\n", + "from plotly.offline import plot\n", + "from scipy.signal import savgol_filter\n", + "import pandas as pd\n", + "from joblib import Parallel, delayed\n", + "from scipy.interpolate import interp1d\n", + "import json # for loading config file and exporting intermediate results\n", + "\n", + "# Load configuration from a JSON file\n", + "with open('config.json') as config_file:\n", + " config = json.load(config_file)\n", + "\n", + "sys.path.append(config['infodynamics_path'])\n", + "jarLocation = config['jar_location']\n", + "\n", + "if not isJVMStarted():\n", + " # Start the JVM with the jarLocation path from config\n", + " startJVM(getDefaultJVMPath(), \"-ea\", \"-Djava.class.path=\" + jarLocation, convertStrings=True)\n", + "\n", + "# Constant setting\n", + "EPSILON = 1e-6 # to avoid log(p) getting too large due to random fluctuation\n", + "CRITICAL_VALUE = np.log(1+2**0.5)/2 # critical value for J\n", + "\n", + "# Plot setting\n", + "plt.rcParams['font.family'] = 'serif'\n", + "plt.rcParams['font.serif'] = 'cmr10' # Use the Computer Modern Roman font\n", + "plt.rcParams['mathtext.fontset'] = 'cm' # Use Computer Modern for math text\n", + "plt.rcParams['axes.formatter.use_mathtext'] = True\n", + "plt.rcParams['axes.labelsize'] = 16 # Axis labels\n", + "plt.rcParams['axes.titlesize'] = 20 # Title\n", + "plt.rcParams['xtick.labelsize'] = 14 # X tick labels\n", + "plt.rcParams['ytick.labelsize'] = 14 # Y tick labels\n", + "# plt.rcParams['legend.fontsize'] = 12 # Legend" + ] + }, + { + "cell_type": "markdown", + "id": "9a73f683-94e7-4eb1-9ef3-613da51708eb", + "metadata": {}, + "source": [ + "### Description of process\n", + "Consider a set $\\Lambda$ of lattice sites in 2D, each site $i$ has a spin $\\sigma_i\\in\\{-1,+1\\}$. For each adjacent site $i,j$ there is an interaction $J_{ij}$ between them. Assume interaction strength is the same everywhere in the lattice, and hence $J_{ij}=J$. Consider only energy in the links between the nearest 4 neighbors. Without external magnetic field, the energy of a specific configuration $\\underline{\\sigma}=\\{\\sigma_1, ..., \\sigma_N\\}$ is therefore:\n", + "\n", + "$E(\\underline{\\sigma}) = -\\sum_{}{J\\sigma_i\\sigma_j} = -\\sum_{}{J\\mu_{i,j}}$\n", + "\n", + "Where $$ denotes sum over all the adjacent neighbors $i,j$, and $\\mu_{i,j}$ represents the interaction between two neighboring sites, with +1 represents alignment and -1 represents misalignment. Note that this formualtion of energy favours alignment between sites (i.e. lower energy when sites are aligned).\n", + "\n", + "The Boltzmann distribution describes the probability of configuration $\\underline{\\sigma}$ as:\n", + "\n", + "$p_{\\beta}(\\underline{\\sigma}) = \\frac{e^{-\\beta E(\\underline{\\sigma})}}{Z_{\\beta}}$\n", + "\n", + "Where $\\beta = 1/(k_B T)$ is the inverse of temperature.\n", + "\n", + "#### The metropolis algorithm:\n", + "This algorithm evolves the system to equilibrium:\n", + "1. start with a square LxL lattice\n", + "2. randomly choose a site i, now we need to decide wether or not the flip the spin of this site. Let initial energy be E_i and the energy of the flipped state be E_f.\n", + "3. if E_i>E_f, flipping results in a lower energy state, hence flip spin(i)\n", + "4. if E_i(sigma_i, sigma_j)\n", + " # applies the nearest neighbours summation, ignore beta*J\n", + " kern = generate_binary_structure(2, 1) \n", + " kern[1][1] = False\n", + " arr = -lattice * convolve(lattice, kern, mode='constant', cval=0)\n", + " # total energy should be divided by 2 as each of the neighboring pair contributed once to the energy\n", + " return arr.sum()/2\n", + "\n", + "def get_magnetisation(lattice):\n", + " # average spin\n", + " return lattice.sum()/lattice.size\n", + "\n", + "@numba.njit(\"UniTuple(f8[:], 5)(i8[:,:], i8, f8, f8)\", nopython=True, nogil=True)\n", + "def metropolis(lattice, time, J, mu):\n", + " ''' Run Metropolis algorithem for a period of time, using coupling parameter J.\n", + " Perform flip on one random site. each time, assume beta=1 or T = 1/kB for Boltzmann distribution \n", + " Return S, A, SNext, magnetisations(i.e. W) of each timestep: for intrinsic utility\n", + " mus for each timestep: for sense checking \n", + " '''\n", + " beta = 1 # beta = 1/(kB*T), assume temperature is constant 1/kB\n", + " L = lattice.shape[0]\n", + "\n", + " # save energies and magnetisation for checking\n", + " mus = np.zeros(time)\n", + " magnetisations = np.zeros(time)\n", + " \n", + " # save values for perception-action loop\n", + " S = np.zeros(time) # sensory values at time t, sum of sigma_i*sigma_j for four neighbours\n", + " A = np.zeros(time) # actions at time t\n", + " SNext = np.zeros(time) # sensory values at time t+1, sum of sigma_i*sigma_j for four neighbours\n", + "\n", + " for t in range(time):\n", + " mus[t] = mu # net interactions mu = E/J = -sum{sigma_i*sigma_j} across the whole lattice\n", + " \n", + " # at each time step, randomly choose a site, compute energy before and after flipping\n", + " x,y = np.random.randint(L), np.random.randint(L)\n", + " spin_i = lattice[x][y] # initial spin\n", + " spin_f = -1*spin_i # spin after flipping\n", + " \n", + " # compute change in Energy/J, E/J=sum{-si*sj}\n", + " mu_i = -spin_i*(lattice[x-1][y] + lattice[(x+1)%L][y] + lattice[x][y-1] + lattice[x][(y+1)%L])\n", + " mu_f = -spin_f*(lattice[x-1][y] + lattice[(x+1)%L][y] + lattice[x][y-1] + lattice[x][(y+1)%L])\n", + " dmu = mu_f - mu_i # change in energy after flipping\n", + "\n", + " S[t] = mu_i # \"energy\" sensor (senses E/J), when particles align S is negative\n", + " if dmu<0 or np.random.rand()" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABAsAAAGZCAYAAADvrLhYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACuVklEQVR4nOzddXgUV9sG8HuTkIQ4JBCCS3CCO8WtOEWKU6AtFbTU0JcW90LRFihOsaLFiltxd9cEQoyEhHjm+yPfTGd2ZzW7Me7fdfXqzJkzZ84mm2XnmXOeoxEEQQARERERERER0f+zy+gOEBEREREREVHmwmABERERERERESkwWEBERERERERECgwWEBEREREREZECgwVEREREREREpMBgAREREREREREpMFhARERERERERAoMFhARERERERGRAoMFRERERERERKTAYAEREaVZuXLl4O3tDY1GI/3XsmVLs9o4duwYcuTIIZ3v4OCA4sWLY/HixTbqddY2fvx4eHl5YeLEiRndFaMeP36M0qVLo1y5cnj27FlGd4espGLFitLfq5eXF8qXL4/KlSvD399f8Vng7e2NSpUqoVKlSihcuLDi2Llz5xRtDhgwALlz58Yff/yRQa+KiIhEDBYQEVGa3bp1C2FhYdi4cSPKlCkDe3t7HDhwAM+fPze5jU2bNqFKlSoAUm9CQkND8ejRI3z11Ve26naWNmfOHERGRmL27NkZ3RWjtm7dinv37uH27dvYunVrRneHrCQkJATFihXD4cOHERERgZs3b+LKlSt48OAB2rdvL9W7ffs2rl69iqtXr+LZs2d48eIFevfuDQAIDQ2V6oWFhWHFihWIiIjAr7/+mu6vh4iIlBgsICIiq6lZsyZ8fX3RvHlzCIKAdevWmXTeu3fvoNFo4OLiAgAoWbIkvLy8bNjTzE0MmhgybNgwuLm5YfDgwenQI/127NiBn376yWCdjz76CP7+/vD391fcRFLWFhoaivXr16Nx48bQaDSKY7ly5ZK28+bNqzhWoEABrFq1CpUrV0ZISIhU7u3tjb59+8Ld3Z1BQiKiTIDBAiIisro+ffoAANauXWtS/e3bt6NDhw627FKW8uTJE6N1Jk2ahLdv32LSpEm275ABjx8/NlqnePHiuH//Pu7fv4/ixYunQ6/I1t68eYN8+fKhdu3aFp1vZ2eHjh07KkYWAMCq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+USxtN+NGzcwf/58bN68GWvWrEG1atUysLdEREREmQNzFhAR0Xvh+vXrWLlyJU6cOIGYmBjkyJEDCQkJyJ8/P1q1aoW+ffsiT548Gd1NIiIiokyBwQIiIiIiIiIiUuA0hAyUkpKCoKAguLu7Q6PRZHR3iIiIiIiIKJsTBAFv375F/vz5YWenP40hgwUZKCgoiGt5ExERERERUbp7/vw5ChYsqPc4gwUZyN3dHUDqL8nDwyODe0NERERERETZXVRUFAoVKiTdj+rDYEEGEqceeHh4MFhARERERERE6cbYVHj9ExSIiIiIiIiI6L3EYAERERERERERKTBYQEREREREREQKDBYQERERERERkQKDBURERERERESkwGABERERERERESkwWEBERERERERECgwWEBEREREREZECgwVEREREREREpMBgAREREREREREpMFhAmVpycjI+/vhjzJw5M6O7QkRERERE9N7QCIIgZHQn3ldRUVHw9PREZGQkPDw8Mro7mdKOHTvQsWNHAADfqkRERERERGlj6n0oRxZQphYdHZ3RXSAiIiIiInrvMFhAmdqtW7cyugtERERERETvHU5DyECchmCcRqORtvlWJSIiIiIiShtOQyAiIiIiIiIiizBYQDazfv16fPDBBwgMDLRKeykpKVZph4iIiIiIiAxjsIBsplevXjh16hR+/PFHq7SXmJholXaIiIiIiIjIMAYLyObevn1rlXYSEhKs0g4REREREREZxmAB2dzOnTstOi85OVmxf+bMGWt0h4iIiIiIiIxgsIBswhorF5w9e1ax36JFizS3SURERERERMYxWEA2ERcXl+Y23r17Z4WeEBERERERkbkYLCCbiIyMVOw/efLE7DaY0JCIiIiIiChjMFhANvHmzRvF/pAhQ8xuw9fX10q9ISIiIiIiInMwWEA2oT0qICoqKoN6QkREREREROZisIBsIikpSbEfHh6e5jYA4MGDBxb3iYiIiIiIiEzDYAHZhPbIghs3bqS5DQCYOHGixX0iIiIiIiIi0zBYQDZhjeSEYhv58uWTyl68eJHmdomIiIiIiMgwBgvIJqwRLHj58iUAwM3NTSpLTk5Oc7tERERERERkGIMFZBPawYKPPvrI7Dbs7e0BKPMUqOUxICIiIiIiIutisIBsQjtYULZsWbPbiI+PBwA0b95cKuPIAiIiIiIi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EREREZEJNBoNpk+fjsaNGyvKFy9erNj/6KOPDLbTpk0bAMDatWuRmJiIBw8eYN++fTr19AUL8ubNizVr1mDfvn3o16+f4pifn5+xl0FkturVqwNIXdazdevW6NSpE37//XfVkQbAfzkOKGvjaghERERERGYoU6YMjhw5Iu0/fPhQ2m7atKnR88Wns7t378aGDRswceJE1bngpiQr1F79wMPDw+g5ROaSjyjYu3cvAGDbtm166zNYkD1wZAERERERkRmmTJmiNy+BKXO1R4wYIW0HBgZKqyq0bdsWPj4+0rHcuXMbbUv7powjC8gW8uXLh59//tnk+gwWZA8MFhARERERmcHLywvh4eEQBAGHDh2SykePHo3SpUsbPb9q1ar46quvAADz58+X8hWsXLkSY8eOleoVKVLEaFsVKlSQtt3d3XVGGhBZi/YqHPLAVPHixSEIAn755RcAwKpVq7B06VIEBwenax/JuhgsICIiIiKykHx4tlryN32cnJwAAEFBQVKZm5ubYsSCKe2J7QDQWa6RyJbq1q0rbYvvVXmejYEDB2LYsGHp3S2yIuYsICIiIiKyUOXKlTFq1Ci8fv0avXv3Nvk8+U2+vKxDhw746quv4OXlhSpVqhhtR8xSDwBv3rwx+fpElpg/fz6GDBkCX19fLFmyBG3atMG+ffvw9ddfA9BNyvn8+fOM6CZZiUYwJXMK2URUVBQ8PT0RGRnJZDRERERE75GffvpJZw64JV/LX79+DV9fXwBArVq1cObMGav0j8gSq1evxieffKIoW7duHR4+fIicOXOifPnyaNWqVQb1jkSm3odyZAERERERUTqz1oMid3d3q7dJZCn5+1HUq1cvxf6tW7dQtmzZ9OoSpQFzFhARERERpbNevXrhq6++QqdOnQAA06dPt6idnDlz4vfff0efPn0wadIka3aRyGwtW7ZEnTp1DNaR5+mgzI3TEDIQpyEQEREREVF2pG9ljg4dOmD9+vVwcXExq72IiAhs3boV7dq1Q968ea3RxfeWqfehHFlARERERERE6WLHjh1YsWKF2ef98MMP+OyzzzB48GAb9IrUMFhAREREREREVrV9+3a9xwIDA81ub9myZQCAzZs3W9olMhODBURERERERGRVHTp0kLanTZsGQRAwatQoAMDx48exePFixMTEZFT3yARcDYGIiIiIiIiszt7e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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Sense check: simulation for one J value\n", + "\n", + "time = 20000\n", + "j = 2\n", + "bias = 0.5\n", + "L = 50\n", + "\n", + "plot_lattice_evolution(time, L, j, bias)" + ] + }, + { + "cell_type": "markdown", + "id": "7b1a54d8-1a5c-40b4-8841-c11cee9e7750", + "metadata": {}, + "source": [ + "### Run simulation" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "577674fb", + "metadata": {}, + "outputs": [], + "source": [ + "def run_single_simulation(L, time, j, sampleSize, bias=0.5):\n", + " \"\"\" \n", + " Run a single simulation of the Metropolis algorithm.\n", + " \n", + " Parameters:\n", + " L (int): The size of the lattice.\n", + " time (int): The number of time steps to run the simulation.\n", + " j (float): The coupling strength.\n", + " bias (float, optional): The bias for initialising the lattice. Defaults to 0.5.\n", + " \n", + " Returns:\n", + " tuple: A tuple containing the arrays S, A, SNext, magnetisations, and the last lattice.\n", + " \"\"\"\n", + " lattice = initialise(L, bias=bias) # initialize lattice\n", + " senses, actions, sensesNext, magnetisations, _ = metropolis(lattice, time, j, get_mu(lattice)) # run one simulation\n", + " return senses[-sampleSize:], actions[-sampleSize:], sensesNext[-sampleSize:], magnetisations[-sampleSize:], lattice\n", + "\n", + "def run_multi_simulation(L, time, j, sampleSize, numSims, bias=0.5, n_jobs=-1):\n", + " results = Parallel(n_jobs=n_jobs)(delayed(run_single_simulation)(L, time, j, sampleSize, bias=bias) for _ in range(numSims))\n", + " return results" + ] + }, + { + "cell_type": "markdown", + "id": "c53a4895-7c6a-4380-8fd6-5b106e65edb7", + "metadata": {}, + "source": [ + "## 2. Compute intrinsic utilities" + ] + }, + { + "cell_type": "markdown", + "id": "d9d73da0", + "metadata": {}, + "source": [ + "### 2.1 Predictive information\n", + "Compute predictive information and plot values w.r.t. J\n", + "\n", + "Each simulation:\n", + "- the transient period will be disregarded.\n", + "- the last k timesteps are sampled (assuming at equilibrium). Returning k pairs of (St, St+1).\n", + "- I(St,St+1) are computed based on the k samples from this simulation.\n", + "\n", + "The estimate of $\\mathcal{I}(J) = \\sum_{sims}(\\mathcal{I}(J))/num\\_sims$" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "258fbb16", + "metadata": {}, + "outputs": [], + "source": [ + "def mutual_information(source, destination, sourceBase, destinationBase):\n", + " # 1. Construct the calculator:\n", + " calcClass = JPackage(\"infodynamics.measures.discrete\").MutualInformationCalculatorDiscrete\n", + " calc = calcClass(sourceBase, destinationBase, 0) # use timeDiff = 0\n", + " # 2. No other properties to set for discrete calculators.\n", + " # 3. Initialise the calculator for (re-)use:\n", + " calc.initialise()\n", + "\n", + " # 4. Supply the sample data:\n", + " # check input dimension:\n", + " if source.ndim >1:\n", + " for k in range(source.shape[1]):\n", + " src = JArray(JInt, 1)(source[:,k].tolist())\n", + " dest = JArray(JInt, 1)(destination[:,k].tolist())\n", + " calc.addObservations(src, dest)\n", + " else:\n", + " src = JArray(JInt, 1)(source.tolist())\n", + " dest = JArray(JInt, 1)(destination.tolist())\n", + " calc.addObservations(src, dest) \n", + " \n", + " # 5. Compute the estimate:\n", + " result = calc.computeAverageLocalOfObservations()\n", + " return result\n", + "\n", + "def entropy(source, sourceBase):\n", + " # 1. Construct the calculator:\n", + " calcClass = JPackage(\"infodynamics.measures.discrete\").EntropyCalculatorDiscrete\n", + " calc = calcClass(sourceBase)\n", + " # 2. No other properties to set for discrete calculators.\n", + " # 3. Initialise the calculator for (re-)use:\n", + " calc.initialise()\n", + "\n", + " # 4. Supply the sample data:\n", + " # check input dimension:\n", + " if source.ndim >1:\n", + " for k in range(source.shape[1]):\n", + " # 0. Load/prepare the data:\n", + " src = JArray(JInt, 1)(source[:,k].tolist())\n", + " calc.addObservations(src)\n", + " else:\n", + " src = JArray(JInt, 1)(source.tolist())\n", + " calc.addObservations(src) \n", + " \n", + " # 5. Compute the estimate:\n", + " result = calc.computeAverageLocalOfObservations() #unit = bits\n", + " return result\n", + "\n", + "def conditional_entropy(source, condition, sourceBase, conditionBase):\n", + " entropySource = entropy(source, sourceBase) #H(S)\n", + " miSourceCondition = mutual_information(source, condition, sourceBase, conditionBase) #I(S;C)\n", + " condEntropy = entropySource - miSourceCondition # H(S|C) = H(S) - I(S;C)\n", + " return condEntropy\n", + "\n", + "def get_pred_info(sensory, nextSensory):\n", + " offset = 4 # need to offset {-4,-2,0,2,4} to {0,1,2,3,4} for the base\n", + " base = 2 * offset + 1\n", + " predInfo = mutual_information(nextSensory + offset, sensory + offset, base, base)\n", + " return predInfo\n", + "\n", + "def get_sensory_entropy(sensory):\n", + " offset = 4 # need to offset {-4,-2,0,2,4} to {0,1,2,3,4} for the base\n", + " base = 2 * offset + 1\n", + " sensoryEntropy = entropy(sensory + offset, base)\n", + " return sensoryEntropy\n" + ] + }, + { + "cell_type": "markdown", + "id": "2dd4ff0f", + "metadata": {}, + "source": [ + "Check if PI makes sense:\n", + "where J is very low (assume beta=1), all the sites starts to jiggle. As J->0, p(flip)->1, and we shall observe $(S_t,S_{t+1}) = (s,-s)$ almost all of the time. $I(S_t,S_{t+1})$ is therefore maximized, and approximately $H(S_t)$ = log2(#values of s) = log2(5) as the majority of sites are internal (i.e. with 4 neigbours), so $\\sum_{}{\\sigma_i\\sigma_j}\\in\\{-4,-2,0,2,4\\}$. The conditional entropy is zero in this case." + ] + }, + { + "cell_type": "markdown", + "id": "2ec05bb8", + "metadata": {}, + "source": [ + "### 2.2 Empowerment\n", + "Compute average empowerment (channel capacity) and plot values w.r.t J\n", + "\n", + "Each simulation:\n", + "- the transient period will be disregarded.\n", + "- the last k timesteps are sampled (assuming at equilibrium). Returning k pairs of (At, St+1).\n", + "- I(At,St+1) are computed based on the k samples from this simulation.\n", + "\n", + "The estimate of $\\mathcal{E}(J) = \\sum_{sims}(\\mathcal{E}(J))/num\\_sims$" + ] + }, + { + "cell_type": "markdown", + "id": "66374fda", + "metadata": {}, + "source": [ + "\n", + " #### Channel capacity\n", + " Considering an arbitrary site i in the lattice. $\\sigma_i$ denotes its spin and $\\mu_i=\\sum_{}{-\\sigma_i\\sigma_j}=\\frac{E}{J}$ measures its energy (scaled by a factor J). Lower energy (i.e. negative $\\mu$) or equivalently, alignment with neighbors, is preferred.\n", + "\n", + "For this single site, let sensory state $S_t = \\mu_i(t)$ and $A_t\\in\\{flip, no-flip\\}$. The action channel of the site is characterised by the conditional probability p(s'|a,s), where s' is the value of the sensory state following an action, given that the site starts from S=s. If $S_t=s$, after flip/no-flip action, the only possible values for $S_{t+1}$ are {s, -s} (except that when s=0 then only one value is possible). Therefore we essentially have a channel looks like {flip, no-flip}$\\rightarrow${-s, s}, and the mapping is deterministic. This is the embodiment of the site (agent).\n", + "\n", + "With a binary channel like this, the channel capacity (maximum mutual information max$I(S_{t+1}, A_t)$) C(s)=1 bit, and it's achieved when the distribution between {flip, no-flip} is uniform (50/50 chance). This is true for all values of $s\\in\\{-4,-3,-2,-1,1,2,3,4\\}$. Therefore all these states are equally empowered, if the site is free to designate its action distributions.\n", + "\n", + "The channel capacity of s=0, C(0)=0, because no matter how the site acts (flip or not), it can only perceive s=0. \n", + "\n", + "Therefore, a more empowered state is where the lattice has net magnetisation $\\neq0$, i.e. empoewrment is high when sites are aligned.\n", + "\n", + "Let the subset of S states where channel capacity is nonzero be $\\Gamma=\\{-4,-3,-2,-1,1,2,3,4\\}$. The average empowerment given control parameter J is: $\\mathcal{E}(S;J) = \\sum{p(s;J)\\mathcal{E}(s)}=\\sum_{s\\in\\Gamma}{p(s;J)\\times1}$\n", + "\n", + "#### Mutual information\n", + "On the other hand, we can also compute the actual mutual information (instead of its potential maximum) under the constraint of the \"controller\" that regulates the action distribution of the site. For a given channel s, the action distribution p(a) is:\n", + "\n", + "- When s < 0: p(flip) = $e^{2\\beta Js}$, p(no flip) = 1- p(flip)\n", + "- When s >= 0: p(flip) = 1, p(np flip) = 0\n", + "\n", + "Hence mutual information for a given channel s: $I(S_{t+1};A_t|S_t=s) = H(S_{t+1}|S_t=s) - H(S_{t+1}|A_t, S_t=s) = H(S_{t+1}|S_t=s) = -\\sum{p*logp}$ (since flip$\\rightarrow$-s and no-flip$\\rightarrow$s is deterministic, the conditional entropy is zero)\n", + "\n", + "- When s< 0: $I(S_{t+1};A_t|S_t=s) = p(flip)*logp(flip) + p(noflip)*logp(noflip))$ \n", + "- When s>=0: 0\n", + "\n", + "Let the subset of S states where mutual information is nonzero be $\\Theta = \\{-4,-3,-2,-1\\}$. The average mutual information given control parameter J is:\n", + "$I(S_{t+1};A_t|J) = \\sum{p(s;J)I(S_{t+1};A_t|J,s)} = -\\sum_{s\\in\\Theta}{p(s;J)\\{e^{2\\beta Js}*log2(e^{2\\beta Js}) + (1-e^{2\\beta Js})*log2(1-e^{2\\beta Js})\\}}$ bits\n", + "\n", + "Compared with empowerment, average mutual information gives smaller weight to full alignments $H(S_{t+1}|S=-4) << 1$ when J is large (as we have a very skewed distribution of $S_{t+1}$). The larger is J, the further away is $p(a)$ from optimal $p^*(a)$ (which is 1/2, 1/2)" + ] + }, + { + "cell_type": "markdown", + "id": "d23213ec", + "metadata": {}, + "source": [ + " is zero)\n", + "\n", + "- When s< 0: $I(S_{t+1};A_t|S_t=s) = p(flip)*logp(flip) + p(noflip)*logp(noflip))$ \n", + "- When s>=0: 0\n", + "\n", + "Let the subset of S states where mutual information is nonzero be $\\Theta = \\{-4,-3,-2,-1\\}$. The average mutual information given control parameter J is:\n", + "$I(S_{t+1};A_t|J) = \\sum{p(s;J)I(S_{t+1};A_t|J,s)} = -\\sum_{s\\in\\Theta}{p(s;J)\\{e^{2\\beta Js}*log2(e^{2\\beta Js}) + (1-e^{2\\beta Js})*log2(1-e^{2\\beta Js})\\}}$ bits\n", + "\n", + "Compared with empowerment, average mutual information gives smaller weight to full alignments $H(S_{t+1}|S=-4) << 1$ when J is large (as we have a very skewed distribution of $S_{t+1}$). The larger is J, the further away is $p(a)$ from optimal $p^*(a)$ (which is 1/2, 1/2)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "035862c3", + "metadata": {}, + "outputs": [], + "source": [ + "def get_empowerment(actions, nextSensory):\n", + " # all non-zero states are equally empowered (1 bit) as explained in \"Channel capacity\" \n", + " return sum(nextSensory!=0)/len(nextSensory)" + ] + }, + { + "cell_type": "markdown", + "id": "23c70a13", + "metadata": {}, + "source": [ + "### 2.3 Conditional entropy (active inference intrinsic only)\n", + "\n", + "Each simulation:\n", + "- the transient period will be disregarded.\n", + "- the last k timesteps are sampled (assuming at equilibrium). Returning k pairs of (At, Wt+1, St+1), where W is the global magnetisation\n", + "- H(St+1,Wt+1|At=at) are computed based on the k samples from this simulation.\n", + "\n", + "The estimate of $\\mathcal{F}(J) = \\sum_{sims}(\\mathcal{F}(J))/num\\_sims$" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "8af2b130", + "metadata": {}, + "outputs": [], + "source": [ + "def get_pdf(samples):\n", + " sigma, counts = np.unique(samples, return_counts=True)\n", + " p = {}\n", + " for sig, cnt in zip(sigma, counts):\n", + " p[sig] = cnt/samples.size\n", + " return p\n", + "\n", + "def get_free_energy(nextSensory, nextEnvironment, action, numBins=10):\n", + " \"\"\"\n", + " Calculate the free energy as conditional entropy H(St+1, Wt+1|At=at).\n", + " Parameters:\n", + " nextSensory (numpy.ndarray): The sensory input for the next state.\n", + " nextEnvironment (numpy.ndarray): The environment input for the next state.\n", + " action (numpy.ndarray): The action taken.\n", + " numBins (int, optional): The number of bins to use for digitizing the next environment. Defaults to 10.\n", + " Returns:\n", + " float: The calculated free energy.\n", + " \"\"\"\n", + "\n", + " offset = 4\n", + " base = 4 * 2 + 1\n", + " nextSensory_offset = nextSensory + offset\n", + " # work out the distribution of different actions\n", + " pA = get_pdf(action)\n", + " # put next environment into bins\n", + " nextEnvDigitized = np.digitize(nextEnvironment, np.linspace(-1,1,numBins), right=True) # put magnetisation [-1,1] into bins\n", + " # compute negative conditional entropy for given A=a, then take the weighted sum across all a\n", + " freeEnergy = 0\n", + " for a in pA.keys():\n", + " SNext = nextSensory_offset[action==a] # already offest to 0-8\n", + " RNext = nextEnvDigitized[action==a] \n", + " freeEnergy -= pA[a] * conditional_entropy(SNext, RNext, base, numBins)\n", + " return freeEnergy" + ] + }, + { + "cell_type": "markdown", + "id": "92101f0b", + "metadata": {}, + "source": [ + "### 2.4 Thermodynamic efficiency\n", + "\n", + "$\\eta$ is the ratio between rate of entropy reduction (increasing order in the collective system) and the amount of work done by changing the control parameter $\\theta$, it has a unit of bit/joule. It is defined as follow:\n", + "\n", + "$\\eta(\\theta) = -\\frac{d S/d \\theta}{d W/d \\theta} = - \\frac{d S/d \\theta}{\\int F(\\theta)d\\theta}$\n", + "\n", + "where S is entropy of the system, $\\theta$ is control parameter, W is work done by changing the control parameter. The denominator is equivalent to integrating fisher information w.r.t the control parameter.\n", + "\n", + "To compute $\\eta$, we need the following quantities:\n", + "\n", + "- configuration entropy of the system $S(\\underline{\\sigma}; \\theta)$, where $\\underline{\\sigma} = \\{\\sigma_1, ..., \\sigma_{N*N}\\}$\n", + "- derivative of entropy w.r.t. $\\theta$\n", + "- Fisher information of control parameter \\theta $F(\\theta) = 4*\\sum_{x}{(\\frac{\\sqrt{p(x;\\theta+\\delta \\theta)} - \\sqrt{p(x;\\theta-\\delta \\theta)}}{2\\delta \\theta})^2}$\n", + "- integral of fisher information w.r.t. $\\theta$\n", + "\n", + "Each simulation:\n", + "- the transient period will be disregarded.\n", + "- the last k timesteps are sampled (assuming at equilibrium). Returning the average of k magnetisation values $\\bar{m}$.\n", + "- Configuration entropy of this simulation $\\mathcal{S}_n$ and $p(x;\\theta)$ is computed based on the final configuration at the end of the simulation\n", + "\n", + "The estimate of $\\mathcal{S}(\\theta) = \\sum_{sims}(\\mathcal{S}(\\theta))/num\\_sims$. $\\eta$ is computed given configuration entropy $\\mathcal{S}(\\theta)$ and equilibrium distribution $p(x;\\theta)$ as functions of $\\theta$." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "31f8e3a8", + "metadata": {}, + "outputs": [], + "source": [ + "# Compute thermodynamic efficiency\n", + "def compute_probability_distribution(lattice, n, m):\n", + " \"\"\"\n", + " Compute the probability distribution of configurations in a given nxm area\n", + " in a wrapped around square lattice.\n", + " \n", + " Parameters:\n", + " lattice (np.ndarray): A 10x10 numpy array with values -1 or 1.\n", + " n (int): The number of rows in the area.\n", + " m (int): The number of columns in the area.\n", + " \n", + " Returns:\n", + " dict: A dictionary with configurations as keys and their probabilities as values.\n", + " \"\"\"\n", + " L = lattice.shape[0]\n", + " count_dict = defaultdict(int)\n", + " \n", + " for i in range(L):\n", + " for j in range(L):\n", + " # Extract the nxm sub-lattice starting at (i, j)\n", + " sub_lattice = tuple(tuple(lattice[(i + x) % L, (j + y) % L] for y in range(m)) for x in range(n))\n", + " count_dict[sub_lattice] += 1\n", + "\n", + " # Compute the probability distribution\n", + " total_counts = sum(count_dict.values())\n", + " prob_distribution = {k: v / total_counts for k, v in count_dict.items()}\n", + " \n", + " return prob_distribution\n", + "\n", + "def compute_entropy(prob_distribution):\n", + " \"\"\"\n", + " Compute the entropy of a given probability distribution.\n", + " \n", + " Parameters:\n", + " prob_distribution (dict): A dictionary with probabilities.\n", + " \n", + " Returns:\n", + " float: The entropy value.\n", + " \"\"\"\n", + " entropy = -sum(p * np.log2(p) for p in prob_distribution.values() if p > EPSILON)\n", + " return entropy\n", + "\n", + "def get_entropy_kikuchi(lattice):\n", + " \"\"\" \n", + " Compute configuration entropy using kikuchi approximation S = S1-2*S2+S4.\n", + "\n", + " Parameters:\n", + " lattice (np.array): A 2D integer array of the LxL squre lattice. Values +/-1.\n", + " \n", + " Returns:\n", + " float: The entropy value.\n", + " \"\"\"\n", + " # compute kikuchi approx \n", + " entp1 = compute_entropy(compute_probability_distribution(lattice, 1, 1))\n", + " entp2 = compute_entropy(compute_probability_distribution(lattice, 1, 2))\n", + " entp4 = compute_entropy(compute_probability_distribution(lattice, 2, 2))\n", + " return entp1 - 2 * entp2 + entp4\n", + "\n", + "def get_entropy_meanfield(pdf):\n", + " \"\"\" \n", + " Compute configuration entropy using meanfield approximation S = sum(-1,1) -p*log(p).\n", + "\n", + " Parameters:\n", + " pdf (dict): Proability distribution {spin:p(spin)}. This can be an average distribution computed over \n", + " a period of time and (or) mutltiple simulations.\n", + " \n", + " Returns:\n", + " float: The entropy value.\n", + " \"\"\"\n", + " # compute mean-field approx \n", + " return -sum(p * np.log2(p) for p in pdf.values() if p > EPSILON)\n", + " \n", + "def get_fisher(pdf, method = 'sqrt'):\n", + " \"\"\"\n", + " Compute fisher information using two different methods. Default is square-root approximation because it is more stable when p is small.\n", + "\n", + " Parameters:\n", + " pdf (dict): A dictionary {theta: f(x)}, where f(x) is also a dictionary ({x:p(x)}). Density function takes the form f(x;theta), \n", + " and theta is the parameter with respect to which we compute the fisher information. Assume theta is uniformly spaced. \n", + " For continuous distribution make sure samples are binned and normalised.\n", + " \n", + " Returns:\n", + " dict: Fisher information of different Js.\n", + " \"\"\"\n", + " thetas = np.array(list(pdf.keys()))\n", + " fisher = {}\n", + "\n", + " # Convert pdf dictionaries to arrays\n", + " x_values = np.array(list(pdf[thetas[0]].keys()))\n", + " p_values = np.array([[pdf[theta].get(x, 0) for x in x_values] for theta in thetas])\n", + "\n", + " if method == 'sqrt':\n", + " # Compute the square root of p_values\n", + " sqrt_p_values = np.sqrt(p_values)\n", + " \n", + " # Compute the gradient of sqrt_p_values with respect to theta\n", + " dsqrtp_dtheta = np.gradient(sqrt_p_values, thetas, axis=0)\n", + " \n", + " # Compute Fisher Information for each theta\n", + " for i, theta in enumerate(thetas):\n", + " fisher[theta] = 4* np.sum(dsqrtp_dtheta[i]**2)\n", + " else: \n", + " # using original sum_x {(dp_dtheta)^2 / p}\n", + " # Compute the gradient of p_values with respect to theta. Use dp_dtheta is more stable than dlogp_dtheta when p is small\n", + " dp_dtheta = np.gradient(p_values, thetas, axis=0)\n", + " \n", + " # Compute Fisher Information for each theta\n", + " for i, theta in enumerate(thetas):\n", + " # Avoid division by zero, sum over x\n", + " valid_mask = p_values[i] > 0\n", + " fisher[theta] = np.sum((dp_dtheta[i][valid_mask]**2) / p_values[i][valid_mask])\n", + " return fisher\n", + " \n", + "def get_efficiency(configEntropy, magnetisations, fisherMethod='sqrt', entropyFilt=False, derivativeFilt=False, fisherFilt=False, integralFilt=False, pdfFilter=False, window=15, theta_star=None, threshold=None):\n", + " \"\"\"\n", + " Compute thermodynamic efficiency. Interpolate from where fisherInfo < threshold to theta_star. Change return eta to np.array.\n", + " \n", + " Parameters:\n", + " configEntropy (dict): A dictionary with parameter and configuration entropy.\n", + " fisherInfo (dict): A dictionary with parameter and Fisher information.\n", + " entropyFilt, derivativeFilt, fisherFilt, integralFilt (bool): switches for filters (Savitzky-Golay filter).\n", + " window (int): window size for the filter.\n", + " \n", + " Returns:\n", + " np.array: thermodynamic efficiency eta;\n", + " np.array: configuration entropy values extracted from configEntropy, for checking;\n", + " np.array: numerators for each eta, for checking;\n", + " np.array: fisher information values extracted from fisherInfo, for checking;\n", + " np.array: denominators for each eta, for checking.\n", + " \"\"\"\n", + " theta = np.array(list(configEntropy.keys()))\n", + " hx = np.array(list(configEntropy.values()))\n", + "\n", + " # Check if smoothing magnetisation is on:\n", + " if pdfFilter:\n", + " mask = theta > CRITICAL_VALUE # mask for J > Jc\n", + " filtered_section = savgol_filter(magnetisations[mask], window_length=20, polyorder=1)\n", + " mm = np.copy(magnetisations)\n", + " mm[mask] = filtered_section\n", + " else:\n", + " mm = np.copy(magnetisations)\n", + "\n", + " # Retrieve average pdf for each J \n", + " pdfs = {} # pdf for each J\n", + " for theta_idx, theta_val in enumerate(theta):\n", + " Mbar = mm[theta_idx]\n", + " pdfs[theta_val] = {1:(1 + Mbar) / 2, -1:(1 - Mbar) / 2}\n", + "\n", + " # Compute fisher information given pdfs for different Js\n", + " fisherInfo = get_fisher(pdfs, method=fisherMethod)\n", + " fisher = np.array(list(fisherInfo.values()))\n", + " \n", + " # Values to keep\n", + " denominator = np.empty(len(hx)) \n", + "\n", + " # Check if sum to theta_star is on\n", + " if (theta_star != None) and (theta_star > theta.max()):\n", + " theta = np.append(theta, theta_star)\n", + " fisher = np.append(fisher, 0) # assume theta_star correspond to zero fisher information\n", + "\n", + " # interpolate between fi_small and fi_thetastar (to remove noise)\n", + " if (threshold != None) and (threshold > 0):\n", + " start_index = np.where(fisher > threshold)[0][-1] # find the last index where fisher > threshold\n", + " x = np.append(theta[start_index], theta[-1]) # define starting and end point for interpolation\n", + " y = np.append(fisher[start_index], fisher[-1]) # define starting and end point for interpolation\n", + " interp_func = interp1d(x, y, kind='linear') # Create the interpolation function\n", + " x_interp = theta[start_index:] # Define the range of x values to interpolate over\n", + " y_interp = interp_func(x_interp) # Perform the interpolation\n", + " fisher = np.append(fisher[:start_index], y_interp)\n", + "\n", + " # apply filters: entropy, fisher\n", + " if entropyFilt:\n", + " hx = savgol_filter(hx, window_length=window, polyorder=1)\n", + " if fisherFilt:\n", + " fisher = savgol_filter(fisher, window_length=window, polyorder=1)\n", + " \n", + " # compute numerator, denominator\n", + " numerator = np.gradient(hx,theta[:len(hx)])\n", + " for i in range(len(hx)):\n", + " denominator[i] = np.trapz(fisher[i:], theta[i:]) # integrate from theta0 to point to zero-response 10\n", + " \n", + " # apply filters: derivative, integral\n", + " if derivativeFilt:\n", + " numerator = savgol_filter(numerator, window_length=window, polyorder=1)\n", + " if integralFilt:\n", + " denominator = savgol_filter(denominator, window_length=window, polyorder=1)\n", + " \n", + " # compute eta\n", + " mask = (abs(denominator) < EPSILON) | (abs(numerator) < EPSILON)\n", + " eta = np.zeros_like(numerator)\n", + " eta[~mask] = -numerator[~mask] / denominator[~mask]\n", + " return eta, hx, numerator, fisher, denominator, mm" + ] + }, + { + "cell_type": "markdown", + "id": "33e0a372", + "metadata": {}, + "source": [ + "### 2.5 Compute all utilities" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "0c7541a2", + "metadata": {}, + "outputs": [], + "source": [ + "def unpack_results(results):\n", + " senses_array = np.array([result[0].astype(int) for result in results])\n", + " actions_array = np.array([result[1].astype(int) for result in results])\n", + " sensesNext_array = np.array([result[2].astype(int) for result in results])\n", + " magnetisations_array = np.array([result[3] for result in results])\n", + " lattice_array = np.array([result[4].astype(int) for result in results])\n", + " return senses_array, actions_array, sensesNext_array, magnetisations_array, lattice_array\n", + "\n", + "def compute_all_intrinsic_utilities(results, subSample, method='kikuchi', absolute_m=True):\n", + " \"\"\"\n", + " Compute all intrinsic utilities for a given j value.\n", + " \n", + " Parameters:\n", + " results (list): A list of simulation results, where each result is a tuple containing the arrays of sensory input, actions, next sensory input, magnetisations, and lattice at the end of each simulation. \n", + " method (str): The method to use for computing configuration entropy (thermodynamic efficiency). Defaults to 'kikuchi'.\n", + " absolute_m (bool): Whether to take the absolute value of magnetisation for Fisher Information (thermodynamic efficiency). Defaults to True.\n", + " \n", + " Returns:\n", + " tuple: A tuple containing the mean values of predictive information, empowerment, free energy, configuration entropy, and average magnetisation across all simulations.\n", + " \"\"\"\n", + " senses_array, actions_array, sensesNext_array, magnetisations_array, lattice_array = unpack_results(results)\n", + " numSims = len(senses_array) # each element in the array is a list of samples collected for one simulation. Length of the array is the number of simulations.\n", + " pi = np.zeros(numSims) # predictive information for each simulation\n", + " se = np.zeros(numSims) # sensory entropy for each simulation\n", + " ep = np.zeros(numSims) # empowerment for each simulation\n", + " fe = np.zeros(numSims) # free energy for each simulation\n", + " hx = np.zeros(numSims) # configuration entropy for each simulation\n", + " mm = np.zeros(numSims) # average magnetisation for each simulation\n", + " \n", + " for i in range(numSims):\n", + " pi[i] = get_pred_info(senses_array[i], sensesNext_array[i])\n", + " se[i] = get_sensory_entropy(sensesNext_array[i]) \n", + " ep[i] = get_empowerment(actions_array[i], sensesNext_array[i])\n", + " fe[i] = get_free_energy(sensesNext_array[i], magnetisations_array[i], actions_array[i])\n", + " # average magnetisation each simulation\n", + " # magnetisation is sampled every subSample time steps because it is highly correlated\n", + " if absolute_m:\n", + " mm[i] = np.mean(abs(magnetisations_array[i][:][::subSample]))\n", + " else:\n", + " mm[i] = np.mean(magnetisations_array[i][:][::subSample])\n", + " # configuration entropy each simulation\n", + " if method == 'kikuchi':\n", + " hx[i] = get_entropy_kikuchi(lattice_array[i])\n", + " else: \n", + " pdf = {1:(1 + mm[i]) / 2, -1:(1 - mm[i]) / 2}\n", + " hx[i] = get_entropy_meanfield(pdf)\n", + " return np.mean(pi), np.mean(se), np.mean(ep), np.mean(fe), np.mean(hx), np.mean(mm)" + ] + }, + { + "cell_type": "markdown", + "id": "5ebe4bc8-02d2-4ad5-acaf-1288b20138f6", + "metadata": {}, + "source": [ + "## 3. Analysis" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "d912c50f-2fb3-4877-926c-ec09cbed942e", + "metadata": {}, + "outputs": [], + "source": [ + "# Run simulations and analysis\n", + "# parameters for simulation\n", + "L = 50\n", + "time = 20200000 # perform 20.2mil flips\n", + "Js = np.linspace(0.01,2,100)\n", + "sampleSize = 200000 # take 200k observations to compute pi, emp, fe\n", + "subSample = L*L # sample every sweep for magnetisation\n", + "numSims = 20 # number of simulations\n", + "bias = 0.5\n", + "\n", + "# parameters for computing intrinsic utilities\n", + "absolute_m = True # use absolute value of magnetisation for fisher information\n", + "theta_star = 10 # theta_star for thermodynamic efficiency upper bound\n", + "threshold = 5e-2 # threshold for interpolation in fisher information integral\n", + "\n", + "# initialise arrays to store results\n", + "pred_info = np.zeros_like(Js) # predictive information\n", + "sens_entp = np.zeros_like(Js) # sensory entropy\n", + "empw_vals = np.zeros_like(Js) # empowerment\n", + "free_engy = np.zeros_like(Js) # free energy\n", + "cnfg_entp = np.zeros_like(Js) # configuration entropy\n", + "avrg_magt = np.zeros_like(Js) # average magnetisation\n", + "pdf_dict = {} # pdf for each J\n", + "cnfg_entp_dict = {} # average configuration entropy for each J\n", + "\n", + "# run simulations for different J values\n", + "for i, J in enumerate(Js):\n", + " results = run_multi_simulation(L, time, J, sampleSize, numSims, bias=bias)\n", + " pred_info[i], sens_entp[i], empw_vals[i], free_engy[i], cnfg_entp[i], avrg_magt[i] = compute_all_intrinsic_utilities(results, subSample, method='kikuchi', absolute_m=absolute_m)\n", + " cnfg_entp_dict[J] = cnfg_entp[i]\n", + "\n", + "# compute thermodynamic efficiency\n", + "result_eta,_,_,_,_, result_mag = get_efficiency(cnfg_entp_dict, avrg_magt, fisherMethod='sqrt', derivativeFilt=True, pdfFilter=True, window=15, theta_star=theta_star, threshold=threshold)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "856efef6", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAs0AAAIzCAYAAAD71yToAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABjO0lEQVR4nO3dfXxT9d3/8XdoaEtvLXcCUm4GiqII4y4T5G54N2DgQGWDiaKosALbBf4uxaEV3RSZ1tkNHZcMNhH1Gjgnujp1gtx0UlBExbEJziLItMBKQ1MaEnp+f/RqIDZpkjZ3J3k9H488Hqffc/c5J+ecfPrNN9+vxTAMQwAAAAD8ahXrAAAAAIB4R9IMAAAABEDSDAAAAARA0gwAAAAEQNIMAAAABEDSDAAAAARA0gwAAAAEQNIMAAAABEDSDAAAAARgjXUAAMzn1KlTOnr0qI4dO6Zjx46pc+fO6tOnT6zDQgBVVVX685//rIMHD6pfv34aN25crEMCANOgphmIosOHD+vCCy9Ubm6uLBaL55WVlaVLL71UAwYM0IABA9SnTx9169ZNY8aM0fLly3Xy5MlYh+5l2rRpOu+883TppZdqzJgxev755xst8/TTT+ucc87RHXfcEfX4Yrnv5ohGvC+88IJ69OihLVu2qE2bNpoyZYrmzJkTsf0lErNdT8nsqaeeUp8+fdSuXTuvZ6zFYlFubq6uuuqqWIcIE7MYhmHEOggg2RiGoUcffVT//d//LUnavHmzRo4c6bXMqVOn9MILL2ju3Llq27atnnvuOQ0bNiwW4TZiGIaOHj2qSZMm6Z133lFhYaHuv/9+r2X69eunPXv2SJIqKyt1zjnnRC2+WO67OSId71tvvaWrrrpKP/7xj1VUVKQnnnhCP/nJT5SdnS273R7WfSUis11PX1dbW6s33nhDW7du1SeffKIjR47I4XDI5XKprq7O5zo33nijfvrTn0Y50vD69NNPNWbMGB08eFB9+vTRhx9+qNTU1FiHBROjphmIAYvFoiFDhnj+btu2baNlUlNTNWPGDP3617/WgQMHdPXVV+v999+PZph+WSwWdejQQWPHjvW7zNy5c5Wdna0ZM2aENcn45je/GXCZSO07UiId73333SfDMDz/pI0bN07f/va3ddddd4V9X2aTiNdTg9OnT+uxxx5Tjx49NGnSJD366KPasGGD3nnnHX344Yfau3ev/vnPf3q9ysvLNXToUBUUFMQ6/Bbr1auXvvGNb0iSOnXqRMKMFqOmGYiRt99+W2PGjJEkffTRR7rkkkt8LudyuZSXlyeHw6ERI0Zoy5Yt0QyzSffff7+WLFnis6Y5Eo4fP65vfvOb+uyzzyK+r0SSnp6uvLw8/fvf/451KHElka8nu92u8ePHy2636+6779all16qzp07KysrS61bt5bT6dTIkSP11Vdfac+ePcrOzo51yBExevRobd68WaNGjdLbb78d63BgcvwQEIhzrVu31vnnn6/du3dr69atqqioUMeOHWMdVkz86U9/Ev/nh87pdCotLS3WYcSdRL6eZs6cqdLSUpWWluqyyy5rNP/BBx/Uzp07tXbt2oRNmIFwo3kGYAKZmZme6QMHDsQwktg5ffq0fvWrX8U6DCSIRL6ePv/8c/3rX//SH//4R58J8/Hjx1VcXKwOHTrouuuui0GEgDlR0wyYwPHjxz3T3bp1U01NjT788ENVVFSooqJC2dnZmjp1qo4cOaI//vGPslgsmj59uley3eDYsWN68803deDAAbVr105XX3218vPzm9y/YRh6++239fHHH8vlcmnUqFEaOHCg3+UrKip05MgRz+v666/3u6zb7dZf//pX7d27V1arVX369NG3v/1tWa31j6e6ujrt27dPixcv1q5du9S9e/cmYw1l383VnHPoj794XS6Xdu/era+++koVFRWSpFtuuUWStHv3bm3ZskVut1s2m03Dhw9v8TG5XC799a9/1d///ndlZGSof//+Pn94Gsq1F8wxpKSkyGazafDgwZ59GIahN954Qx9++KGysrJ01VVXqVevXk3Gv2PHDr333nuqrq7WJZdcoiuuuEKtW7dutFwkr6dgzmE03tdu3bo1+fuHp59+WtXV1fr+978f03a+O3fu1I4dO1RdXa0LL7xQ48eP13vvvaeuXbvqvPPOi1lcgD/UNANxzuFwaP/+/ZLq2+ede+652rVrl0aPHq1Jkybptttu09NPP629e/dq3Lhxqqio0Pz58/Xtb3+70bYef/xxXXjhhfrggw+Un5+vDz74QOeff77uu+8+v/vfsmWL+vbtq8WLF8swDJ177rl6/PHH9cMf/lBOp9PnOueee64uueQSjRkzRjfccIPfbb/55pvq06ePfvnLXyo7O1tZWVl66623NHDgQJWUlEiS1q1bp6lTp+rjjz+WVN9tX0PXfAMGDGhUU+Zv30899ZS6dOni1QVVx44d9fLLL3uW+dWvfqWUlBTP/E6dOunw4cMtPodN8Rfvv//9b40cOVLf/e53deutt6qoqEh1dXWaO3euVq5cqfbt26uiokIjRozQ1KlTG/WCcPZ5kuq/oTj7vJ19XBs2bNA3vvENPfPMM+rYsaPnR4Pf+ta39Pe//91ru6Fce8Ecw8GDBzV06FDNmjVLUn2SOmHCBJWVlalz587auHGj+vTpoyeffNLn+du/f78uv/xyrV69Wq1atVLHjh3185//XL1799abb77ZaPlwXU9fF+w5bOn7Gg7PPvusJDW7n+6W3ksVFRW6/PLLdffdd8swDOXn52vHjh0aPny4rr76au3bt6/lBwlEggEgJjZt2mRIMiQZH330kd/lfvnLXxqSjLy8PGPPnj1e84qLiw1JxtixY42rrrrKOHTokLFx40bPdo8cOeJZdvHixYYk46WXXvLaxuOPP25IMoqLixvt+6WXXjJSU1ONG2+80airq/Oa9/TTTxvp6emGJKOwsNBrXkVFhfHUU0954vDlT3/6k9G6dWtj5syZXuW7du0ycnNzjby8POPUqVOe8s8++8yQZHTv3t3fqQpq30uXLjUkGV27djXcbnej+WvXrjUsFovx29/+ttExN+ccBhIo3pdfftmQZFx88cXGnXfeabzyyite82+++WZDkrF27Vq/+2jqfVi1apXRqlUrn+v/13/9l5GXl2fs3Lmz0bxQrr1gj+HFF180xo0bZ3z66aeeeW632+jdu7fRunVr49ChQ43iGDZsmNG9e3dj9+7dnrJTp04ZI0aMMFJTU43S0lKfxx2u68kwmncOw/G+Nsenn35qSDJSUlKM48ePt2hbzb2XrrnmGuO6665rtPx7771npKSkGJs2bWpRXGcbNWqUIckYNWpU2LaJ5EXSDMRIoKT58OHDxoMPPmi0bt3auOSSS7ySggb79u3zJNT33nuvYRiGceLECWPEiBHGjTfe6Fnub3/7m2GxWIzBgwc32obT6TTatWtntGvXznA6nZ7ygwcPGuecc46RlZVl2O12n8dwxRVX+EyaDcMwTp486TfR+Oqrr4y2bdsaGRkZjT64H330UZ+JV7BJTqB9OxwOIzs727BYLMZnn33WaP7GjRuN6dOnNypvzjkMVlPxulwuz3t8++23N5q/Zs0aQ5LX+/11/ra9d+9eIz093ZgwYYLP9Vwul9G9e3fjggsuMGpqarzmBXvthXIMHTp0MJ555plG82+99VZDkrF69epG8xr+cSsoKPAqb0jgx4wZ4/PYwnU9NfcchuN9bY5f/epXhiTDZrO1eFvNuZccDochyXjiiSd8bnPixIkkzYhbNM8A4sDkyZO9viI+//zzddVVV2nPnj169tlntXv3bvXv37/Reg3tfisrK/W9731PkpSVlaUtW7bomWee8Sz385//XIZh6MYbb2y0jdTUVI0ePVrHjh3T1q1bPeWPP/64jh8/rkmTJvn9dX1T7Q7T09P9znviiSf0n//8R+PGjVNubq7XvOnTp2vChAlasmSJ2rdv73cbTWlq3xkZGbruuutkGIbWrFnTaP4LL7yg2267rVF5c85hOOI9+z2++eabG80/99xzJalZ3cn97Gc/U21trSZPnux33+PHj9cnn3yi3/3ud37jauraC+UYTp48qe9///t+53+9qYxU3x44Ly+v0TF861vfklTfbralmnp/mnsOI/m+NuWtt96SJJ/Nt0LVnHupYXTT559/Xg6Ho9E6gwcPbvJ8A7FE0gzEgSeffFK7d+/2vPbt26ePPvpIL7zwgm644QalpKQ0ub7VavXbz3N1dbXeeOMNSVKfPn18LtMwAEBDO09J+t///V9J0qBBg0I+nkBeeOEFSfIa4KVBp06d9MorrzS7jXAwbrrpJklqlNw5nU7t3Lmz0eiMzT2H4dbQPvlsDT92c7lcIW3r1KlT+tOf/iRJ6t27t9/lGn6At3btWp/zm7r2fGnqGPr27evzx3sNZadOnWo0b/ny5frPf/7TKAls06aNpPr3LlLCdQ7D+b42pa6uztNXcVMDE4Ui1HupXbt2+uY3v6nt27frwgsv1H333aeSkhLPjyLvvfdezz88QLyh9wwgAbRr185nsiFJ5eXlng/e+fPne5KJs1VXV+vcc8/11H45HA598cUXkqQuXbqENdba2lr961//klT/K/9YGDlypHr06KH9+/ertLTU00vByy+/rO9+97uyWCxeyzfnHEaCr/021759+zw1fTk5OX6Xa/iWoWEY6a9r6trzpaljaMnxffnll1q/fr127Nihv//97z4T7HAL1zkM5/valHfffVfHjx9XVlaWLr/88rBsM9R7SZLWrFmjq6++WocOHdKDDz4oSWrVqpWuueYaPf7447rgggvCEhsQbiTNQAJo6uvMmpoaz/Rzzz0XVM3x2V+bhvsD/ezu82L1NazFYtGMGTP0wAMP6JlnnvF80K9Zs0a//OUvGy3fnHMY7+x2e1DLNfTeUFVVJbfb3eifglh/lX7s2DEtXLhQzz77rEaMGKGCggI9/vjjateunc+ELZzCdQ6j5bXXXpMkTZgwIWyD3YR6L0nSxRdfrH/84x967rnn9Pzzz+vdd99VdXW1SkpKVFpaqnfeeUcXXXRRWOIDwonmGUCCO7v/YF9tQn3p0KGDp//W2trasMbTsWNHr/acLfXss8/qww8/DHm9GTNmSJL+8Ic/qLa2VhUVFTpx4oTP/oCbcw7j3dnfIDTVhOHIkSOSvN+3ePHFF19o4MCB+v3vf69HHnlEmzZt0nXXXad27do1e5uhXE9mO4cNXcL98Ic/DOt2Q7mX3G639u3bp6ysLN1+++3atGmTqqqqPLXUVVVVuvPOO8MaHxAuJM1AguvcubMuvPBCSfI0i/DF5XLpxIkTkuprjxq+vj106FBY42nVqpWnNuqjjz7yu9zp06eDas+5f/9+/ec//wk5jl69eunyyy/X8ePHtWHDBj333HOaPn26z2Wbcw7jXX5+vuefgaZGmWz4IZqvgU5irbCwUJ9//rnGjRunhQsXNrlsTU2Ntm3bFnCboVxPZjqHf//73/X+++9rwIABze6f2Z9Q7qVDhw416gu7VatWGjZsmN566y317ds35B/T/uIXv1Bubq6mTJkit9vtNa+hlr9VK9IdtBxXEZAE7rjjDknSiy++6HeZp556Si+99JLn71tvvVWStGnTJr/rNPwSPlQNA1n8+c9/lmEYPpdZunSpXn31Vc/feXl5PvfpcDiUkZHRrDgafsT0+9//Xn/4wx+aHLyiOecwnrVq1Uq33367JOmdd97xu9zGjRslnTn+ePK3v/1NknTllVc2mvf1XicqKiq0ePFiz9/huJ7MdA6LiookSQ899JDPZisbNmzQ2LFj/Q5YFEgo99JHH32kgwcPNipPS0vTNddcE3KzmgceeEB2u11//OMfG7Ub//LLLyVJXbt2DWmbgC8kzUASmDdvnoYOHapt27b5rN2tqqrS73//e68aoB/84AcaNWqUXnvtNe3atavROh9//LGn54CqqqqQ4pk+fbrGjBmjTz75RM8//3yj+ZWVlXr55Zc1YcIET1lubq66du2qo0ePerWL/sc//tHs9o833HCD2rRpo7/85S/q3r17o+7vztaccxjv7rzzTvXr10/PP/+8jh492mj+nj179I9//EPf//73dc0118QgwqY1dEnoK/bVq1d7pt1ut9xut9cPFsN1PZnhHO7YsUO/+93vdNddd+k73/lOo/kbNmzQtddeq6FDhza7rXMo95JhGFq6dKnPeQ0jPIbi3HPP9fyQsG/fvp7ygwcPekYXnDRpUkjbBHyKZSfRQLKqq6szli1b5hkw4eGHH240+lwwGgZwyMzM9Dm4wNkqKioMm81m9O7d23j33Xc95fv27TPGjBlj/O1vf2u0zpEjR4zBgwcb5513nrF9+3ZP+euvv24MGzbMGDt2rGeAhgcffNB46623PMv861//8hzfgQMHGm376NGjxmWXXWZkZ2cb69at85R/9tlnxhVXXGFs27at0ToNI7P9/Oc/NwyjfvTAW265pdFygfZ9th/84AeGJKOkpKTJ5QyjeecwGE3Fe/a8/fv3N1p31apVhiSjd+/ejQYgaYitYf3333+/0fyDBw8aAwcONEaOHOm173/+85/GpZdeakyePNmorq5utF4o116wx3D++ecbJ0+ebDR/xowZhqRGA2W8/vrrRmpqqpGdne25Xk6fPm387ne/M8aMGWPccssthiTjnXfeMZ5//nnj/vvv91o/XNdTc85hS99Xf5xOp7FkyRKjX79+Rp8+fYw+ffoYKSkphsVi8fx99qtHjx6G1Wo17rrrrmY9g84WzL3UMKhMu3btjEcffdRwuVyGYdSP4vj4448bWVlZPq/Tpvz61782zj//fKOiosKr/LbbbjMkGRMmTGjxsQGGwYiAQFR98cUXxoUXXmjk5uZ6PjAbXjk5OcaFF15ofPHFFwG3s3PnTuP88883rFarZ32LxWL06NHDePLJJ/2uV1tba/zmN78xhg4dalx88cXGoEGDjClTpjQ5jPfJkyeNoqIio3///kbfvn2NgQMHGgsWLDAqKyuNW2+91ejYsaNx8cUXG6NHjzaKi4uNL774wujTp4+RlpbmiS09Pd246KKLfMazfPlyY/DgwUa3bt2M4cOHG9dff73x8ccf+43nscceM3r27Gn07t3bmDhxolFZWel1foPdd4O//vWvRo8e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y0o3ZeaVmir9+tdnpgEAQFSQPSW44uJiFRYWyu12q6SkRJK0YMGCGEeFZmvdWiooiHUUAAAkHZpnJLiysjK53W7l5eXJ7XarrKws1iEBAACYDklzgrPZbLJaraqsrJTVapXNZot1SGiJ06elt9+uf50+HetoAABIGjTPSHDz58+XJK82zTCx2lppzJj66epqKTMztvEAAJAkSJoTnNVqpQ0zAABAC9E8AwAAAAiApBkAAAAIgKQZAAAACICkGQAAAAiApBkAAAAIgN4zADNp3VpatuzMNAAAiAqSZsBMUlOl//f/Yh0FAABJh+YZAAAAQADUNANmcvq0tGtX/fTAgVJKSmzjAQAgSZA0JyG3263i4mKvobWtVi4FU6itlYYOrZ9mGG0AAKLG9JlSeXm5Fi5cqBdffDGo5Z999lktWbJEffv2VZs2bZSamqpWrc60Urnxxhs1duxYLVq0SJMnT1afPn0kSXv37tXrr7+u++67LyLHEU3FxcUqLCyU2+1WSUmJJDHUNgAAQBNMnTS/+eabmjVrlnr27Bn0Ov/4xz+0f/9+7d+/v9G8vLw8PfTQQ5KkpUuXaunSpZ552dnZeu6551oedBwoKyuT2+1WXl6eKisrVVZWFuuQAAAA4popk+Z3331X9957r7p166b09PSQ1v3qq6907Ngx5eTkKCUlRRaLRZK0fPlynXPOOerSpYskqV+/fho0aJCqqqrUv39/3XrrreratWvYjyUWbDabSkpKVFlZKavVKpvNFuuQAAAA4popk+bBgwfrtddekySNHj06pHVzcnLUtm1br7L9+/dr+/btWrNmjads4MCBWr16dYtjjUfz58+XJK82zQAAAPDPlElzSzz22GNefxuGoYULF+rpp5+OUUTRZ7VaacMMAAAQgqRLmr9u9erVGj16tDp27OhVbrfbdc8996i2tla1tbVyOp0qKipSbm6u3205nU45nU6vbQAAAMD8kjppdjgceuSRR/T+++83mvfJJ59oxYoV6tChgyRpzpw5Gj9+vLZs2eLV28bZHn74YS1ZsiSiMSPJtW4tFRaemQYAAFGR1CMCrlmzRhdccIEyMjIazfvggw88CbMkzZgxQ6WlpVq/fr3f7S1atEhVVVWe18GDByMSN5JYaqp0//31r9TUWEcDAEDSSOqk+cknn9SQIUN8zkv52khrnTp1kiS9+uqr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R/sbNGiQli5dqg8//DBcuwMAAACiJmzNM3r16qV9+/Zpz5496tGjh9q3by9JGjJkiC655BJJUmpqarh2ByQnp1O644766RUrpLS02MYDAECSYHCTCKL3DIQdvWcAABBWweZrYatpdrvdslq9N/fPf/5TO3bsUE5OjkaMGKG2bduGa3cAAABA1IStTfNVV13VqCw7O1vdunWTYRi6++67tXbt2nDtDgAAAIiasNU0+2rl0aVLF3Xp0kWSdO2112rMmDGaPn16uHYJAAAAREXYapotAbq/Kisr01dffRWu3QEAAABR0+ya5smTJ+tf//qX7Ha7JOnLL7/UN77xDZ/L2u12VVZW6v7772/u7gAAAICYaXbS/Mc//lGnTp3S+vXrtXDhQqWnp6t79+4+l23fvr0mTJigm266qdmBAgAAALHSojbNqampmjZtms4991z97Gc/06ZNm8IVFwBfMjKkigpJkjs1VcVFRSorK5PNZtP8+fMb9WADAADCIyyfsKNGjWK0PyAaLBapQwdJUnFRkQoLC+V2u1VSUiJJWrBgQSyjAwAgYYXlh4BWq1X/9V//FXC5oqKicOwOgOp/XOt2u5WXlye3262ysrJYhwQAQMJqVtJsGIZqa2tDWufkyZN64oknmrM7AA2cTqmgQCoo0LBBg2S1WlVZWSmr1SqbzRbr6AAASFjNap4xcuRIlZeXa9++fUpPT9e///1vde3aNdyxAfg6t1t68klJUsHx4zpttXq1aQYAAJHRrKT5X//6l44dO6aamhqlp6erffv2MgxDl112mS644AKf61RXV+uPf/xji4L9uvLyci1cuFAvvvhi0Ovs2bNHixcvVu/eveV0OmUYhpYtW6aMjIyQlgFizWq10oYZAIAoaVbS/Pbbb+v48eNq27atJKl169Zq3769tm7dqlat/Lf4GDBgQLOC9OXNN9/UrFmz1LNnz6DXqays1BVXXKEVK1Zo0qRJkqQ77rhDP/jBD/Tyyy8HvQwAAACSS7PaNJ9//vkaMmSIV9lbb73VZMIsScuXL2/O7ry8++67+s53vqP169crPT09pHWXLVumtLQ0TZw40VNWUFCgDRs2aNu2bUEvAwAAgOQStk5d+/XrJ0k6ffq0/vznP+vdd99V69atNWjQIH3nO9+RxWLR8OHDW7yfwYMH67XXXpMkjR49OqR1169fr2HDhnkN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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Make plots\n", + "# predictive information\n", + "plt.figure(figsize=(8, 6)) # Define the figure size\n", + "plt.scatter(Js, pred_info, s=5, color='k', alpha=0.9);\n", + "plt.axvline(x=CRITICAL_VALUE, color='r', linestyle='--', label='Indicates $J_c$');\n", + "plt.title(r'Predictive information $\\mathcal{I}$ vs J');\n", + "plt.ylabel(r'$\\mathcal{I}$ [bits]');\n", + "plt.xlabel('J');\n", + "plt.savefig('pi_v_J.png', dpi=300) # dpi=300 for high resolution" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "cc07b137", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAskAAAIzCAYAAADyPISSAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAC5UklEQVR4nOzdd1iT19sH8G8ggLIVxIGgiLW4qQvrRK2jaJ1VrNZVtW6se9SfaFurtRUrrVZbV52to61WsW5FUVHq3toKCg6GCLJCAuf9g5fUmAQDTyAg38915brCOec5505Cws2T85wjE0IIEBERERGRmpmpAyAiIiIiKm6YJBMRERERvYRJMhERERHRS5gkExERERG9hEkyEREREdFLmCQTEREREb2ESTIRERER0UuYJBMRERERvURu6gCIqHRIT09HQkKC+lazZk24u7ubOqwip1Kp1M9BfHw87O3t4e3tbeqwir3nz5+rn7OEhAS0bt0a1tbWpg6LipmIiAicOHECcrkc77//PipXrpzvPi5evIjTp0/j+fPnqFatGjp06ABnZ2d1nYWFBerWrWvs0KkY4plkytPDhw/h5eUFBwcHyGQy9c3CwgL16tWDt7e3+ubl5QUnJyeNdu3btzf1Q6BionXr1nBzc4O3tzc6dOiAI0eOmDokk5g5cyYqVaqEunXrom3btvj222+12jx79gzNmjWDu7s7Lly4IGm8n376CY6Ojhg1apSkfkzN3t4eHh4eaNq0Kbp06YLY2FhTh0TFyNOnT9G1a1f4+/vD2toae/bsQe3atXH79m2D+4iPj4efnx/Gjh0LmUwGd3d33Lp1Cx06dMCcOXOQnJyMPn364Ny5c4X4SIpW586d4enpiTJlymj87c59/D/88IOpQzQtQWSA7OxssXjxYgFAABBfffWV3rYPHjwQU6dOFebm5uKNN94owiipOMvKyhL3798XNWrUEADEunXrTB2SSWRnZ4tnz56JPn36CABiyJAhWm127Nihfq9NnDhR0nj16tVT95WYmCipL1NSKpXixIkTwszMTAAQ9+7dM3VIVExkZ2cLX19fYWdnJx48eCCEEMLR0VEAEEuWLDGoj+fPnwsvLy8xbNgwkZWVpVGnUqnE+PHjRaVKlV7bz66srCyxZs0a9WfF/PnzTR1SscAzyWQQmUyGpk2bqn92cXHR27Zq1ar4+uuv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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# decomposition of predictive information\n", + "plt.figure(figsize=(8, 6)) # Define the figure size\n", + "plt.scatter(Js, sens_entp, s=20,color='k', marker='.', alpha=0.9, label=r'Entropy $H(S\\prime)$');\n", + "plt.plot(Js, sens_entp - pred_info,c='k', linewidth=3, linestyle='--', alpha=0.9, label=r'Conditional Entropy $H(S\\prime|S)$');\n", + "plt.axvline(x=CRITICAL_VALUE, color='r', linestyle='--', label='Indicates $J_c$');\n", + "plt.title('Entropy and conditional entropy of S vs J');\n", + "plt.ylabel(r'Entropy or conditional entropy [bits]');\n", + "plt.xlabel('J');\n", + "plt.legend();\n", + "plt.savefig('hs_v_J.png', dpi=300) # dpi=300 for high resolution" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "0387678f", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAs0AAAI1CAYAAAAtjsf1AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABg5ElEQVR4nO3dfVxUZf7/8ffACMhwE4J4k0SmplmGZTq7mma3u6tmpaalm9nWpq3F/rJ2N8uNrHY1SipaKzdXS7vb1FrdlrItb/ObWHYnm21SYpIliiMICs7A+f3BMjrBMAwMDId5PR+P83gcrnPONZ9zmDl8uOY612UxDMMQAAAAAK/Cgh0AAAAA0NaRNAMAAAA+kDQDAAAAPpA0AwAAAD6QNAMAAAA+kDQDAAAAPpA0AwAAAD6QNAMAAAA+kDQDAAAAPpA0AwAAAD6QNAMAAAA+kDQD8Gnfvn3q16+f4uPjZbFY3EuHDh10zjnnaODAge6lX79+SkxM9NjvkksuCfYpAAG3d+9effbZZyotLQ12KAH3zDPPqG/fvnU+yxaLRfHx8briiiuCHSLQ6kiaAfjUvXt3ffnllzp8+LAyMzPd5X/605+Ul5enTz/91L18+eWXKi4u1t69e3X33XcrPDxchYWFQYwe8J9hGFq1apVGjx6t1NRUDRo0SL/5zW905MgRGYah9957z/2PYu0/k+Hh4fr9738f7NAD4rbbbtN///tfFRcXKz8/XykpKZKkvn376sCBA3rnnXeCHCHQ+qzBDgCAeVgsFg0ePNj9c3Jystd9e/TooUcffVQdO3bUggULWiM8hLDzzjtPn3zySUDqOnz4sCZPnqy33npLAwcO1HvvvafevXu7t7/33nvKyMjQoUOHPI674oorNHfu3IDE0Jb06tVLZ5xxhvbu3auuXbsqIiIi2CEBQUFLM4AW9Yc//EGS6iQYQKAcPnxYhw8fDkhd1dXVuu666/TWW28pKSlJb775pkfC/Mgjj6iqqkpvv/225syZoyFDhuinP/2psrOz9eabb6pjx44BiQNA20NLM4AWZbPZNGzYMO3du1edOnUKdjhoh/7xj3/IMIyA1PXyyy9r7dq1kqQ5c+bo1FNPdW9btGiR7rnnHh07dkxRUVF66KGH9NBDDwXkdQG0fbQ0A2hxAwcOpF8zWkRVVZWeeuqpgNVX22c/PDxc06ZNc5f/8MMPuvPOOyVJeXl5dY4rKSkJWAwA2iZamgEE1Nq1a/XKK6/o+eefd5edffbZKi4ultPp1Keffqr9+/erqKhIkvSrX/1KkvTpp59q06ZNCg8Pl91u1wUXXOA+3jAMvfPOO/r8888VExOjK664Qr169arz2keOHNFHH32k4uJiHTp0SNXV1ZoxY4YqKir0zjvv6Msvv1SnTp3005/+VGeffXaD5+F0OvXuu+/qiy++UHR0tNLS0jR06NAAXCH/FBcX69///rf27NmjxMRE/exnP3M/lCVJR48e1eeff66ioiIVFRUpNjZWkyZN0oEDB/T666/LYrFoypQpstlsLX79/YlbUqPicblcstvtGjZsmMex1dXV2rVrl+bMmaOPP/5YqampTbzCJ+zcuVM7duyQJJ177rmKj493b9u0aZOOHTsmSZo/f75WrlwpSdq4caNuueUW5efnq0+fPlq9erXOOuusZsfijw8//FDbtm1TWVmZ+vXrp9GjR2v79u3q0aOHR0s5gOahpRlAQH377bd1ym688UZNnTpV33//vUaMGKErr7xSN998s7KyslRdXa3bb79dixcvVlJSkvbu3ashQ4bolltukSQVFRVpzJgxys3NVbdu3bRu3Tr17dtXTz/9dJ3X+fLLLzVt2jRde+21mj59uubPn6+1a9fqsssuU15enk499VR9/PHHSktL06RJk3TkyJF6z2HNmjU644wztGzZMiUnJ8swDP3+97/XT37yE33xxRce+z7zzDPq2rWrx5BcPXr00EcffaTLL79c0dHR7vLY2Fjdd999kmoSndjYWPe2qKioOi2mjz/+uPr166fPPvtMKSkp+uyzz9SnTx/df//97n0+/vhjjRw5UldddZV+/etf67nnntPOnTs1atQoFRUVKT093T3kX0tff3/ibmw8RUVFGj58uCZNmqTq6mr3sStWrNCkSZP0n//8R1LNsIgnD304YcIEr/F583//93/u9R8n4Scn/KtWrdLSpUu1adMm/exnP1N+fr4kadeuXfrvf//b6Nd75pln1L17d4/3TnJyslavXu3e56mnnlJ4eLh7e9euXbVv3z5JNb+bCy+8UPfcc48Mw1BKSoq2bdumYcOG6Wc/+5l27drl9zUA0AADAPywfv16Q5IhyVi6dKnHti+++MI4++yzjRtvvLHBOlavXm1IMs4++2zj7rvvNv75z396bJ82bZohyVi1apUxatQo4+uvv3Zvc7lcRu/evY0OHToYhYWF9da/atUqQ5IRFRVlXHnllUZZWZnH9qVLlxqSjMGDBxvHjh3z2LZkyRIjLCzMeOmll+rUe+eddxoJCQnGhx9+6FFeXV1tXHfddYYk48orr/TYtn//fqNTp06GJOPgwYMe2xwOh9GnTx/jvPPOM77//nuPbXPmzDEkGW+88YZH+eOPP25IMrKzsz3Ks7OzDUnGpZdealxxxRVGYWGhsW7dOvfv6sCBA+59W/L6+xu3P/HU9zvZvXu3IclITU2ts81fv/vd79zXa8qUKXW2X3DBBe7tHTp0MFJTU40XXnjBOHz4sPHMM88YFoulznk3xvz58w1JRo8ePQyXy1Vn+0svvWRYLBbjb3/7m1FdXe0u//nPf25MmDChzv7bt283wsPDjfXr1/sdizcXXXSRIcm46KKLAlYnYDYkzQD8cnLSnJKSYqSlpRlnn322ccopp7jLfSXNTqfTkGQkJCQYt956a53ty5cvNyQZnTt3NpYtW1Zn+80331xv0l6rNpGKi4szDh06VO8+l1xyiSHJuO+++9xlO3fuNKKioowxY8Z4jTs1NdU488wzjaNHj3ps27x5syHJ6NOnT53jZsyYYUgyNm/eXGfbmDFjjNzcXI+y//u//zMsFotxwQUX1Nm/srLSSExMNBITE43Kykp3+a5du9zX9I9//KNhGIZx5MgRY/jw4cYNN9xQ5zxa4vo3JW5/4vnxeRhGYJPmX//61+738NixY+ts/+KLL4yOHTu69znllFOMb7/91r19+vTpTUqay8vLjdjYWMNisRi7d++us33dunV1kvjy8nJDkvHkk0/WW+fYsWNJmoEAo3sGgCZ78MEH9emnnyovL0/FxcVat26dEhMTfR5ntdY8TuFwODwetqrVpUsXSdKxY8d03XXXed1e+zW1NwkJCUpISKh32/Tp0yVJTzzxhI4ePSpJevjhh1VRUaFx48Z5jXv06NH66quvPPpsS9KwYcPUrVs37dq1y90vttZ3330nqaZLwcmOHTum7777TkOGDPEo/9Of/iTDMHTDDTfUiSEiIkIjR45UcXGxNm/e7BGbVHNNr7nmGklSTEyMNm3apGXLltU5j9p9A3n9mxK3P/F8//33dbYFUm0ckrR79+4628866yxlZ2e7fz58+LAeffRR988LFy7UlVde6ffrRkdHa8KECTIMQ8uXL6+z/dVXX9Wvf/1rj7La/tWvvPKKysvL6xxzwQUXKCoqyu9YAHhH0gwgIMLCwnTxxRfrtttu8+u4gQMH1inr0KGDJKl///7u9fq2Hz9+3P9A/+fiiy+WJJWXl2vt2rU6fvy4/vGPf0iSx7i8P1b7ANxLL73kUW6xWDR+/HhJ0uuvv+4uLy0t1Z49e9StWze9/vrrHkOj5eTk6Oc//7lHPWVlZe7Z1vr27VtvDGeccYYkufvznsxqteqcc87xGv+PBer6NzfuxsTjdDq9HhcIXbt2da9/+eWX9Sajt9xyi4YPH+7+eePGje718PBwhYeHN+m1b7zxRkmq8w9OZWWlPvzwQ40YMcKjPDExUeedd562bt2qfv366f7771dOTo77gco//vGP+slPftKkWADUj6QZQEClpaXVW/7Pf/5TP/zwQ53yhiaDaMmJIjp37uxuhf7qq6+0a9cud5IUFxfn9bjY2FhJ9Q87Vvvw2apVq9xl//znP3XllVdq3LhxKiws1AcffODetmLFijoPrBUUFLiTw/T0dI+H22qX119/XV26dPFoGa2VmJhYb6LrTaCuf3PjbsprBtq5557rXnc6ncrJyal3v9/+9rfudYvFEpDXHjFihE4//XTl5+dry5Yt7vLVq1fryiuvrPd1li9frlNPPVWFhYV66KGHNHr0aHXr1s39bQiAwGLIOQABdfIwXSdbsGCBe5iutqL26+ujR4+qtLS0UcfUjuBQUlIil8vlkQAOHz5cXbp00Y4dO5Sfn6/evXtr5cqVysjI0OHDh7Vw4UKtXLlSQ4cO1bFjx7Rz506df/75HvXXdhWRaibaGDRoUJPOqbU1N+624JJLLlFkZKQqKysl1XS3uPbaa+vsd/KQchMnTgzIa1ssFk2dOlUPPvigli1b5h5ib/ny5XriiSfqPebss8/Wl19+qZdfflmvvPKKPvroI5WVlSknJ0dbtmzRBx980OrD3wHtGS3NAALq8ssvr9Pf1zAMff/990pKSgpOUPVwOp06ePCgJKlHjx7q3r27e1tZWZnX4w4cOCBJSk5OrtNiGhYW5u5P/Prrr6usrExff/21Bg4cqBEjRqhLly7uVui33nqrTtcMyXNoM199ttuSthb3iy++qM8//9yvY+Li4txdbKSarhe1w7+5XC4dPXpUhmHotddekyRdddVV+t3vfufev6CgoFkxT506VZL02muvqaKiQkVFRTpy5Ei9Y2K7XC7t2rVLMTExuvXWW7V+/XqVlJRoy5YtGjZsmEpKSnT33Xc3Kx4AnkiaAbS4L774Qp07dw52GB62b9/u7k4wcuRIpaSkuBO/PXv2eD2u9mE0bxOd1LZMrlq1Sv/61780atQoSScS6m+//Va5ubn1ds2QpG7duqlfv36SpG+++cZrHE6n0+s408HQ1uLOz8/XoUOH/D5u9uzZHv8M3Xjjjdq6dasKCwt17bXX6vzzz9f69eu1ePFivfHGG+rQoYOOHDmiadOm6U9/+lOzYu7Vq5cuvPBCHT58WGvWrNHLL7+sKVOm1LtvYWFhnfdPWFiYhg4dqvfee0/9+/ev88ClL48++qji4+M1fvx4uVwuj22137CEhZE2IHTx7gfQ4l555RV3QtWaGnpwrPZBvksvvVR9+vRRWFiYbr31Vkny6Hf8Y+vWrZN0YvSNH7vooovUuXNnffjhh8rOzvZIbGrXly9frry8PA0ePLjeOmrrPrlv9I8988wzeuONN7xuD4ZgxF3bL712NIla5eXlio6O9ru+c845x6P1uKSkRCNGjNAzzzyjJ598Up988ok2btyom2++Wfn5+frzn/+sM844Qxs3blRWVlbzTkYnHgh84YUX9NprrzXY/WPHjh3au3dvnfLIyEj9/Oc/97u/9YMPPqjS0lK9/vrrdfrs1z6P0KNHD7/qBNoTkmYALerrr7/Wk08+GZSked++fXVGuZBqZm7729/+ppiYGC1atMhdfvfdd2vAgAF65ZVX3F03TpaXl6cvv/xS1113Xb1dK6SaERSuvvpqGYahffv2eUxHPXLkSHXu3FnPPvusrrjiCq9x33HHHRoyZIjef//9OsPXSTWJ3AsvvNCkWe9aUjDijo+PV48ePXTw4EEdPnzYXf7ll182uT/vQw89pLFjx7p/djqdyszMVJ8+fRQXF6czzjhDcXFxOvPMM3XfffcpOjpab7/9tvsh0eaYOHGiOnbsqLffflupqalenxGQaro9zZ8/v95t+fn5uvDCC/167S5duigsLEw///nP1b9/f3f53r173bMLXnXVVX7VCbQnJM0AGs0wDH344Yfunxv6+vvw4cNaunSphg0bprKyMo+k+eQxcL/++us6x9Zu37dvnyoqKrxur52+2Jvk5GQ988wzeuGFF9xDve3YsUOjRo1SbGys1q5d69FfNCoqSjk5OUpNTdX48eM9pgT/6quvNGXKFI0bN06LFy9u8HVrk8Ifj/dcm1BXVVU1mDiGh4frzTff1JAhQzRu3Dht377dvS0/P1/XXHON/vKXv3i0pNZek4MHD/rsW9tS178pcfsTz3fffVenRVmS7rvvPlVXV7un9v7kk0+UnJzc5CQ2PDxcr7/+uu655546I5EcOXJEu3fvdncxGTx4sLZs2eJ1mD1/xcXF6eqrr1Z1dbW7j3ND/v73v2vBggXu7hROp1NPPPGE1q1b53d3kTvvvFO9evXSsmXLFBER4S5/6KGHJEljxozxOoY5EBKCNasKAPP47rvvjH79+hnx8fHu2dD0v6mE+/fvb6SlpbmXvn37Gl27dvXYT5Kxa9cu47vvvjP69u1rREZGetTRp08f48MPPzRWr15t9OzZ07BYLO7tsbGxRv/+/Q3DMIz77ruvTt1JSUnGtGnTPOI9eZa4I0eOGHfddZdx7rnnGuecc45xzjnnGPfee6+xf/9+r+d77Ngx4+mnnzbsdrsxYMAA44ILLjAuvfRSY8WKFR7TGHvjdDqNHj161Jlu2zBqZlTs3bt3o+qpqKgwnn32WWPIkCHG2WefbQwaNMgYP368sWPHDvc+H374odGnTx/DarW6r4nFYjFOP/104+mnn/aor7Wuf2Pibmo8NpvNOOuss+pcqwULFhg9e/Y0evfubYwdO9ZwOBw+r29jfPPNN8bs2bONQYMGGQkJCYbVajW6dOlijBkzxnj11VeNqqqqgLzOyd59913j9NNPr3dK7Vp79+417Ha7UVJSYsybN88YNGiQkZaWZgwYMMC47rrrjP/85z9Neu2HHnrISE1NNebOnWu8/PLLxrRp04zw8HDj9ttvrzMLJhBqLIZx0kj7ANAOFBQUqGfPnkpNTW32iAZAqNm/f7/eeustff/99+rWrZt+9rOfqVu3bsEOCwg6xmkGAABuXbp0qXc6cyDU0acZAAAA8IGkGQAAAPCBpBlAu1M7qsOBAwdUVFQU5GgAAO0BSTOAduOjjz5S79693WMoHz16VCkpKerbt2+bmNoZAGBejJ4BAAAA+MDoGS2ourpa+/btU2xsrN/TmQIAAKDlGYahI0eOqHv37goL894Jg6S5Be3bt08pKSnBDgMAAAA+7N27Vz169PC6naS5BdVO4bp3717FxcUFORq0C06ntHRpzfpNN0k/muIXAAD4p7S0VCkpKe68zRv6NLeg0tJSxcfHq6SkhKQZgVFeLsXE1KyXlUk2W3DjAQDA5BqbrzF6BgAAAOADSTMAAADgA0kzAAAA4ANJMwAAAOADSTMAAADgA0kzAAAA4APjNANmEhkpvfnmiXUAANAqSJoBM7FapdGjgx0FAAAhh+4ZAAAAgA+0NANm4nRKL71Usz5lCtNoAwDQSkiaATM5fly66aaa9WuvJWkGAKCVmDppLigo0F133aVVq1Y1+pi8vDzNmTNHvXv3VmVlpQzDUGZmpqKjo/3aBwAAAKHDtH2a//3vf+uiiy5ScXFxo49xOBy67LLLdNNNN+mxxx7TU089JafTqeuvv96vfQAAABBaTJc0f/TRR/rFL36hlStXKioqyq9jMzMzFRkZqbFjx7rLZs6cqTVr1uj9999v9D4AAAAILaZLmi+44AK99dZbWrRokbp16+bXsStXrtTQoUNlsVjcZQMGDFBsbKxWrFjR6H0AAAAQWkyXNDdVWVmZ8vPzddppp3mUWywWdevWTdu3b2/UPgAAAAg9IZM0FxQUSJLi4uLqbLPZbCoqKmrUPgDMxeVyKSsrS5MmTVJWVpZcLlewQwKAdqm++217ugebevQMf5SWlkqSIiIi6myz2WwqLCxs1D4NqaysVGVlZZ3XBAImMlJ67bUT6/ApOztbGRkZcrlcysnJkSTNmjUryFGhLXG5XMrOzlZubq7sdrvS09NltYbMn8cW4e81banfQUv+bgNRt7c6/CmX1CbqsFqt9d5vJdV7D/a37jbBMLGLLrrIuOiiixq179atWw1JxqOPPlpnm91uNxISEhq1T0MyMjIMSXWWkpKSRsUIwJPT6TQWLFhgTJw40ViwYIHhdDr93n/ixIlGVFSU0a1bNyMqKsqYOHFik+pu7XNp6/w5n7Z+7gsWLDBiYmKMqKgoIyYmxliwYIHfdbTkOQaibm911FceiM+dv9e0vv39idnfOIJRd2PP29/ytlKHYRj13m+93YP9rbsllZSUNCpfC5mk+euvv/aaEJ9zzjlGSkpKo/ZpSEVFhVFSUuJe9u7dS9IMNIO/f5QC8cfAH4H44xiIuoORlPpzPi35RzAQyaC3P+r+CEQC5c/72t/feSASKH/q9vef1fr2D0QiF6iELRB1+/NPvT/lbaUOf99P/tbdkhqbNLeR9u6Wl5ycLIvFIofDUWdbeXm5UlNTG7VPQyIjIxXJV+ZoSS6X9MYbNevXXCO1ga+sWvKrtNzcXLlcLiUkJMjhcCg3N1eS9y4X9e3/0v+mHf/xV5He6vaHtzjquyb+vp4/3Ur8iSNQX3/Wdz7e6vV27oGIw9u5+/M1sd1uV05OjhwOh6xWq+x2u18xeLseDcXnz7nUV7e/v3Nv8TX0u2ns76u+OrxdU29x17e/vzH7E0cw6q7v3L3V4W95W6nj5Pvryffb+sr8rbstCP5f3FYSExOjtLQ07d2716Pc6XSqsLBQo0ePbtQ+QFBVVkoTJ9asl5W1iaQ5EAlbbT0/3tffP0r17W+1WutNUrzV7U98gfjj6E0gklJ/Esr09HS/Etj6zsefhKih+OrTksmgtz/0Lflebezv3Nu19vd3HogEyp+6vV1Tb3HXt392dnazEzlvcQQiWfW3bn/+qfdWtz9JaTDq8Ha/ra+sKfEFXYu3ebeghrpnFBQU1Pm66t577zX69OnjUbZ+/XpDkrF+/fpG79NYjW3uBxqtrMwwpJqlrCzY0RiG4d/XdN7KA9ENo6H969OSXTzquyb+9qFsqTi8lQei+0ggvpL393fe2t0OAvFeDcT72t/feUt2Y2mpbkqB6Hfclur29/2H1hMSfZrtdrsxePDgOuUbN240LBaLMX36dI/yb7/91rDZbMbq1avdZRMmTDDGjBnj1z6NRdKMgAty0hyIP97+9KfzJ45A8Se+QPxxDET/x0Akmq2dEHnbPxjJoDct9V5t7X/6AiUQdbf1h0JbUiife1vXbvs079mzR7/+9a9VUFCgXbt2SZJ69eqlXr16adGiRerZs6eSkpKUmJiolJQUj2NTUlK0bt06ZWRkaOPGjTpw4IBsNpsWL17s1z5AqPL2tb7U/K8//em64O0rwEDwJz5vcfjz9aK3r6vrq9tbbP7G4c9X4f50ofD3a9X69p8yZUqjuyg0dO7+fE3sTUu9V/35nftTr9SyX20Hou6W/Oy2daF87u2F6ZLm1NRUvfPOOw3u079/fx04cKDebUOGDNFbb73V4PGN2QcIRfX9sQ9EwnZy/cHuwxaI+Pz54+hPX2d/kxZ/Ekp/+6D683r+7N+UB4xaSku9V1vyQaeWTMxI+hDqLIZhGMEOor0qLS1VfHy8SkpK6p1lEPBbebkUE1OzXlYm2Wyt+vJZWVnuVker1aq5c+fyR7SZ2vRA/mr933lbvx6BEArnCJhJY/M1kuYWRNKMgGulpNmUMzWhRfA7B9DekTS3ASTNCDinU/rfEEWaMkXq0KFFXoYWZQBAqGhsvkZzAWAmHTpI06a1+MsEYuIPAADak7BgBwCg7amdFKQtzsgEAEAw0NIMmInLJa1dW7P+s581e0ZAb/1V2/SMTAAABAFJM2AmlZXSmDE16wGYRtvbGLwMLQUAgCe6ZwAh7OS+yy6Xi77LAAB4QdIMhDD6LgMA0Dh0zwBCGH2XAQBoHJJmIITRdxkAgMahewYAAADgA0kzAAAA4APdMwAziYiQ/vKXE+sAAKBVkDQDZtKhgzRzZrCjAAAg5NA9AwgRLpdLWVlZmjRpkrKysuRyuYIdEgAApkFLM2AmVVXS5s0168OHS+HhjT7U2+x/AADAN5JmwEwqKqSLL65ZLyuTbLZGH3ry7H8Oh4PZ/wAA8APdM4AQwex/AAA0HS3NQIhg9j8AAJqOpBkIEcz+BwBA09E9AwAAAPCBpBkAAADwgaQZAAAA8IE+zYCZdOggZWaeWAcAAK2CpBkwk4gI6Xe/C3YUAACEHLpnAAAAAD7Q0gyYSVWV9PHHNevnn+/XNNoAAKDpSJoBM6mokIYMqVn3Mo22y+VSdna2xyQmVisfdQAAmoO/pEA7k52drYyMDLlcLuXk5EgSk5oAANBM9GkG2pnc3Fy5XC4lJCTI5XIpNzc32CEBAGB6JM1AO2O322W1WuVwOGS1WmW324MdEgAApkf3DKCdSU9PlySPPs0AAKB5SJqBdsZqtdKHGQCAAKN7BgAAAOADLc2AmXToIGVknFgHAACtgqQZMJOICOmBB4IdBQAAIYfuGQAAAIAPtDQDZlJdLe3cWbN+1llSGP/3AgDQGkiaATM5dkw655yadS/TaAMAgMCjmQoAAADwwbQtzXl5eZozZ4569+6tyspKGYahzMxMRUdH+zx2165dmjt3rmJiYiRJVVVVeuyxxxQfH+/eZ/bs2Ro3bpz69u0rSdq5c6fWrl2r+++/v2VOCAAAAG2WKVuaHQ6HLrvsMt1000167LHH9NRTT8npdOr666/3eWx+fr7sdrtGjx6tZ599Vs8++6xOP/10TZgwwWO/+fPna8iQIYqPj1d8fLwuv/xynX/++S11SgAAAGjDLIZhGMEOwl+zZ8/Wyy+/rIKCAlksFknS559/rrS0NG3evFkXXnih12OvvPJKffDBBzpw4ID72G+++Ua9evXSv//9b1122WWSpHPPPVeDBg1SSUmJ0tLSdPPNN6tHjx5+xVlaWqr4+HiVlJQoLi6uiWcLnKS8XPrfNyT0aQYAoPkam6+ZsnvGypUrNXToUHfSK0kDBgxQbGysVqxY4TVprqys1FtvvaXzzz/f49gzzjhDkZGRWrVqlTtpPv/887V06dKWPREAAACYgum6Z5SVlSk/P1+nnXaaR7nFYlG3bt20fft2r8c6HA5VVVWpY8eOdbbFxcU1eCwAAABCl+lamgsKCiSp3uZzm82moqIir8cmJSUpOjpalZWVHuXHjx/XoUOHFBkZ6S4rLS3Vvffeq4qKClVUVKiyslJZWVkeDwsCra5DB+nuu0+sAwCAVmG6pLm0tFSSFBERUWebzWZTYWGh12OtVqvGjx+vtWvXepR/9tlnqqqqUnFxsbvsq6++0qJFi9S5c2dJ0m233abRo0dr06ZNCvMyoURlZaVHQl4bKxAwERHSo48GOwoAAEKO6bpnhIeHS5JHn+RaTqdTLperweMzMzMVExOjJUuWSJIqKir0j3/8Q927d3fXLdUk0rUJsyRNnTpVW7Zs0cqVK73WPW/ePPdoG/Hx8UpJSfHr3AAAANA2mS5pPjmR/bHy8nL32MvedO3aVdu2bVNBQYHuuusuzZ8/X7/97W/ldDp16qmnuvc7OYGuPU6S3nzzTa91z549WyUlJe5l7969jTkloPGqq6WCgpqlujrY0QAAEDJM1z0jOTlZFotFDoejzrby8nKlpqb6rCMxMVEPPvig++eqqio5HA5deeWVkqQRI0bIMAxt3rzZvU/1/xKUhvpMR0ZGevSLBgLu2DGpZ8+adYacAwCg1ZiupTkmJkZpaWl1WnGdTqcKCws1cOBAv+vMy8uTy+XS+PHjJUkff/yxjhw54rHPwYMHJanOqB1AsLhcLmVlZWnSpEnKysry2TUJAAA0nemSZkkaNWqUtm7d6lG2ZcsWOZ1Od+IrSXv27KmTSDzxxBNKTk72eGBw+fLlGjhwoH7xi19Iki6//HKtX7/e47ht27ZJkiZPnhzQcwGa6umnn1ZGRobWrFmjjIwMZWdnBzskAADaLVMmzTNmzNC+ffu0Zs0ad9nChQs1ZswYjRw5UpK0adMm9ezZU7fffrvHsWVlZYqOjpbVWtMzZf369Vq2bJleeeUV98OFd999t+644w4dP35cUs3DgkuWLNGMGTPc9QPB9tFHH8nlcikhIUEul0u5ubnBDgkAgHbLdH2aJSklJUXr1q1TRkaGNm7cqAMHDshms2nx4sXufZKSkpSYmFhnBItZs2bp8OHDmj17tg4fPqyKigq9++676tevn3ufYcOGqby8XJMnT1Z0dLSKi4t1yy23aObMma12joAvF1xwgd545x05HA5ZrVbZ7fZghwQAQLtlMQzDCHYQ7VVj5zIHGq28XPrfCDGuw4eV/be/KTc3V3a7Xenp6e5vUAAAQOM0Nl/jLyxgUlarVbNmzQp2GAAAhASSZsBMrFbpN785sQ4AAFoFf3UBM4mMlBYuDHYUAACEHFOOngEAAAC0JlqaATMxDOl/E+0oKUn63zCJAACgZZE0A2Zy9KiUnFyzzjTaAAC0GrpnAAAAAD6QNAMAAAA+kDQDAAAAPpA0AwAAAD6QNAMAAAA+kDQDAAAAPjDkHGAmVqt0440n1gEAQKvgry5gJpGR0vPPBzsKAABCDt0zAAAAAB9oaQbMxDBqZgWUpOhoptEGAKCV0NIMmMnRo1JMTM1SmzwDAIAWR9IMAAAA+EDSDAAAAPhA0gwAAAD4QNIMAAAA+EDSDAAAAPhA0gwAAAD4wDjNgJmEh0sTJpxYBwAArYKkGTCTqChpxYpgRwEAQMihewYAAADgA0kzAAAA4ANJM2Am5eWSxVKzlJcHOxoAAEIGSTMAAADgA0kzAAAA4ANJMwAAAOADSTMAAADgA0kzAAAA4ANJMwAAAOADMwICZhIeLo0adWIdAAC0CpJmwEyioqR//SvYUQAAEHLongEAAAD4QNIMAAAA+EDSDJhJeblks9UsTKMNAECroU8zYDZHjwY7AgAAQg4tzQAAAIAPpmxpzsvL05w5c9S7d29VVlbKMAxlZmYqOjra57G7du3S3LlzFRMTI0mqqqrSY489pvj4+IDUDwAAgPbHdC3NDodDl112mW666SY99thjeuqpp+R0OnX99df7PDY/P192u12jR4/Ws88+q2effVann366JkyYEJD6AQAA0D6ZLmnOzMxUZGSkxo4d6y6bOXOm1qxZo/fff7/BY++8806FhYXpuuuuc5ddf/31evfdd/Xuu+82u34AAAC0T6ZLmleuXKmhQ4fKYrG4ywYMGKDY2FitWLHC63GVlZV66623dMYZZ3gce8YZZygyMlKrVq1qVv0AAABov0yVNJeVlSk/P1+nnXaaR7nFYlG3bt20fft2r8c6HA5VVVWpY8eOdbbFxcVp+/btzaofaBVhYdJFF9UsYab6+AIAYGqmehCwoKBAUk2S+2M2m01FRUVej01KSlJ0dLQqKys9yo8fP65Dhw4pMjKyWfUDraJjR2nDhmBHAQBAyDFVU1VpaakkKSIios42m82mw4cPez3WarVq/Pjx2r17t0f5Z599pqqqKhUXFzerfqmmC0hpaanHAgAAAPMzVdIcHh4uSR79jWs5nU65XK4Gj8/MzFRMTIyWLFkiSaqoqNA//vEPde/eXeHh4c2uf968eYqPj3cvKSkpjTovAAAAtG2mSpo7d+7sdVt5ebl77GVvunbtqm3btqmgoEB33XWX5s+fr9/+9rdyOp069dRTm13/7NmzVVJS4l727t3b8AkB/iovlzp3rlmYRhsAgFZjqj7NycnJslgscjgcdbaVl5crNTXVZx2JiYl68MEH3T9XVVXJ4XDoyiuvbHb9kZGRioyMbMSZAM1w8GCwIwAAIOSYqqU5JiZGaWlpdVpwnU6nCgsLNXDgQL/rzMvLk8vl0vjx41ukfgAAAJifqZJmSRo1apS2bt3qUbZlyxY5nU6NHz/eXbZnz546fZCfeOIJJScnq7Cw0F22fPlyDRw4UL/4xS/8qh8AAAChw3RJ84wZM7Rv3z6tWbPGXbZw4UKNGTNGI0eOlCRt2rRJPXv21O233+5xbFlZmaKjo2W11vRKWb9+vZYtW6ZXXnnF/fBfY+oHWpvL5VJWVpamTp0a7FAAAAhJpurTLEkpKSlat26dMjIytHHjRh04cEA2m02LFy9275OUlKTExMQ6o1fMmjVLhw8f1uzZs3X48GFVVFTo3XffVb9+/fyqH2ht2dnZysjIUITTGexQAAAISRbDMIxgB9FelZaWKj4+XiUlJfVOmAI01qRJk7RmzRp1j4/X1/v31xSWlUk2W3ADAwDA5Bqbr5muewYQiux2u6xWqw4dPqztYWH6ISWFabQBAGhFpuueAYSi9PR0SVJubq422u01P1v5+AIA0FrontGC6J4BAADQttE9AwAAAAgQkmbATI4elU4/vWY5ejTY0QAAEDLoFAmYiWFIe/acWAcAAK2ClmYAAADAB5JmAAAAwAeSZgAAAMAHkmYAAADAB5JmAAAAwAdGzwDMxGKR+vc/sQ4AAFoFSTNgJtHR0n/+E+woAAAIOXTPAAAAAHwgaQYAAAB8IGkGzOToUenss2sWptEGAKDV0KcZMBPDkL744sQ6AABoFbQ0AwAAAD6QNAMAAAA+kDQDAAAAPpA0AwAAAD6QNAMAAAA+MHoGYCYWi5SaemIdAAC0CpJmwEyio6WCgmBHAQBAyKF7BgAAAOADSTMAAADgA0kzYCbHjkmDB9csx44FOxoAAEIGfZoBM6mulj766MQ6AABoFbQ0AwAAAD6QNAMAAAA+kDQDAAAAPpA0AwAAAD6QNAMAAAA+MHoGYDZJScGOAACAkEPSDJiJzSYdOBDsKAAACDl0zwAAAAB8IGkGAAAAfCBpBszk2DFp5MiahWm0AQBoNfRpBtoQl8ul7Oxs5ebmym63Kz09XVbrSR/T6mpp48YT6wAAoFWQNANtSHZ2tjIyMuRyuZSTkyNJmjVrVpCjAgAAdM8A2pDc3Fy5XC4lJCTI5XIpNzc32CEBAACRNANtit1ul9VqlcPhkNVqld1uD3ZIAABAJu6ekZeXpzlz5qh3796qrKyUYRjKzMxUdHS0z2O//fZbzZs3T+Hh4aqoqJDL5dIDDzyg008/3b3P7NmzNW7cOPXt21eStHPnTq1du1b3339/S50SoPT0dEny6NMMAACCz2IYhhHsIPzlcDh01llnadGiRbrqqqskSdOnT9cPP/yg1atXN3hscXGxfvWrX+mvf/2runTpIkn65JNPNGnSJG3dulWdOnWSJFksFo/jYmNj9fLLL2vMmDGNjrO0tFTx8fEqKSlRXFycP6cI1K+8XIqJqVkvK6uZ7AQAADRZY/M1U7Y0Z2ZmKjIyUmPHjnWXzZw5U2lpaXr//fd14YUXej12yZIluvzyy90JsySdd955GjlypP7+97/rtttukyQNGDBAgwYNUklJidLS0nTzzTerR48eLXdSQGM14tsUAAAQWKZMmleuXKmhQ4d6tAYPGDBAsbGxWrFiRYNJ8zfffKOioiLdfvvtHuVRUVE6fvy4++fzzz9fS5cuDXzwQHPYbDWtzQAAoFWZ7kHAsrIy5efn67TTTvMot1gs6tatm7Zv397g8eeee65ef/11TZs2TUeOHJEkHTp0SG+//bYmTJjQYnEDAADAvEzX0lxQUCBJ9fY5sdlsKioqavD4m266Sc8995xeeOEFbdiwQY888ohWrFihZcuW6dRTT3XvV1paqnvvvVcVFRWqqKhQZWWlsrKyFB8f77XuyspKVVZWetQBAAAA8zNdS3NtIhoREVFnm81m0+HDhxs8PioqShs2bNAll1yiPXv26LrrrlNsbKzS0tI89vvqq6905513KisrS08//bQiIiI0evRoVTcwC9u8efMUHx/vXlJSUvw/QaAhFRXS6NE1S0VFsKMBACBkmC5pDg8Pl1R3dAtJcjqdcrlcPut46qmndO6552rlypXq0qWLnn/+eV188cWqOCkJ+eyzz9S5c2f3z1OnTtWWLVu0cuVKr/XOnj1bJSUl7mXv3r3+nBrgW1WVlJNTs1RVBTsaAABChumS5pMT2R8rLy9XTO1wXF48/vjj2r17tx5//HGNHz9eeXl5GjdunHJzc/XYY4+596tNzmt17dpVkvTmm296rTsyMlJxcXEeCwAAAMzPdElzcnKyLBaLHA5HnW3l5eVKTU31eqxhGJo3b54effRRd1lSUpJWrVqlX/7yl+4xnkeMGKHhw4d7HFvbLcNXn2kAAAC0P6ZLmmNiYpSWllan64PT6VRhYaEGDhzo9dgDBw4oPDxcCQkJdbbdeeed7iHnPv74Y/fIGrUOHjwoSXVG7QAAAED7Z7qkWZJGjRqlrVu3epRt2bJFTqdT48ePd5ft2bPHo49zUlKSDMNQYWFhnTqLioo0YsQISdLll1+u9evXe2zftm2bJGny5MkBOw8AAACYgymT5hkzZmjfvn1as2aNu2zhwoUaM2aMRo4cKUnatGmTevbs6TGJSVhYmObPn68bbrjBo3vHnj179Oijj+q+++6TJN19992644473C3PFRUVWrJkiWbMmOGuHwAAAKHDdOM0S1JKSorWrVunjIwMbdy4UQcOHJDNZtPixYvd+yQlJSkxMbHOsG/Tpk1TcnKypk6dqtjYWFVVVSk2NlbLli1zP+w3bNgwlZeXa/LkyYqOjlZxcbFuueUWzZw5s1XPEwAAAG2DxTAMI9hBtFelpaWKj49XSUkJI2kAAAC0QY3N1/xqac7OzvY5eUhTnHLKKUpPTw94vQAAAEAg+JU0L1++3KOPcKAsXLiQpBkAAABtll9Jc0xMjG688caAB/H8888HvE6gXaqokG64oWZ9+XIpKiq48QAAECL8Gj2jpYZbYxg3oJGqqqSVK2sWptEGAKDV8CBgC+JBQARceblUO1V8WZlkswU3HgAATK6x+VrAxmn+85//rAcffFAPPvigdu3aJUl64okn1LVrV3Xq1El33323eypqAAAAwEwCljTHxMRo/fr1uuSSS5Samqo33nhDd911l+644w5t2LBBR48e1fz58wP1cgAAAECrCVj3jIkTJ+q5555TfHy8JGnEiBGKjo7W22+/LUlyuVwaOXKk3n///UC8nCnQPQMBR/cMAAACqtW7ZxQXF7sT5srKSn3wwQcaNWqUe7vValWHDh0C9XIAAABAqwlY0nz8+HH3+tatW1VdXa0hQ4a4y6qrq+VyuQL1cgAAAECrCVjS3KNHD23evFmS9Mgjj+jUU0/VT37yE/f2OXPmaObMmYF6OSA0RUfXdMsoK6tZBwAArSJgSfPDDz+syZMnKyEhQRs2bNDy5csl1cz2N2jQIM2fP1+ff/55oF4OCE0WS00/ZputZh0AALQKv2YEbEivXr20a9cu5eXl6fTTT1dSUpIkafDgwTrnnHMkSREREYF6OQAAAKDVBCxpdrlcioqK0gUXXOAu++9//6svv/xS8fHxGj58uDp16hSolwNMzeVyKTs7W7m5ubLb7UpPT5fV2oiPY2WlNH16zfqiRVJkZMsGCgAAJAWwe8YVV1xRpyw2NlapqakyDEP33HOPXnrppUC9HGBq2dnZysjI0Jo1a5SRkaHs7OzGHehySS+8ULPwYC0AAK0mYC3N9Q333L17d3Xv3l2SdPXVV+viiy/WlClTAvWSgGnl5ubK5XIpISFBDodDubm5wQ4JAAA0IGAtzRYfDyXl5uZq//79gXo5wNTsdrusVqscDoesVqvsdnuwQwIAAA1ockvzuHHj9M0336i0tFSS9MMPP+iMM86od9/S0lI5HA498MADTX05oF1JT0+XJI8+zQAAoO1q1jTax48f18qVK3XXXXepsrJSaWlp9e6XlJSkMWPG6MYbb2xyoGbENNoIOKbRBgAgoBqbrzWrT3NERIQmT56sLl266OGHH9b69eubUx0AAADQJgXkQcCLLrqIiUsAAADQbgXkQUCr1ao777zT535ZWVmBeDkgdEVHS0VFNQvTaAMA0GqalDQbhqGKigq/jjl27JiefPLJprwcgFoWi9S5c83CNNoAALSaJnXPGDFihAoKCrRr1y5FRUXp+++/V48ePQIdGwAAANAmNClp/uabb1RcXKyjR48qKipKSUlJMgxDP/3pT3XmmWfWe0xZWZlef/31ZgULhLzKSmnWrJr1rCym0QYAoJU0KWnesGGDDh8+rE6dOkmSOnTooKSkJG3evFlhYd57fAwcOLBJQQL4H5dLevrpmvXMTJJmAABaSZOS5j59+tQpe++99xpMmCVp4cKFTXk5AAAAIKgCNo32gAEDfO4zbNiwQL0cAAAA0GoCMk7zyaqqqvSvf/1LH330kTp06KBBgwbpF7/4hSw86Q8AAACTCmjS/MEHH2jKlCnas2ePamfntlgs6t+/v1asWKF+/foF8uUAAACAVhGwpHnnzp264oor1KdPH02ZMkXdu3eXxWJRfn6+3njjDV122WX6+OOPlZycHKiXBAAAAFqFxahtEm6miRMnKjU1VY8++midbdXV1brtttvUsWNHPfHEE4F4OVMoLS1VfHy8SkpKFBcXF+xw0B6Ul0sxMTXrZWWSzRbceAAAMLnG5msBa2n+/PPP9eqrr9a7LSwsTNnZ2brwwgsD9XJAaOrYUdq9+8Q6AABoFQFLmk877bQGh5yLjIxUTG0LGYCmCQuTTj892FEAABByAjbkXGJiosrKyrxur6yspIsCAAAATClgSfMf/vAHzZ49u95thmHo97//vf7whz8E6uWA0HT8uPS739Usx48HOxoAAEKG390zXnzxRS1ZsqTebf/973/19ttvKzY21qPc4XDonHPOUc+ePZsWJYAaTqf02GM16w88IEVEBDUcAABChd8tzSUlJdq0aZOOHj0qwzA8ljPPPFM9evRQfHy8x3L66aerrKxM06ZNa4FTAAAAAFqW3y3NiYmJuummm/Tcc8+1RDwAAABAm+N30jx48GCdeuqpLRELAAAA0Cb51T3j4YcfVq9evTR8+PCABvHwww8HtD4AAAAgkPxqaV63bp3mzJkT8CD8rTcvL09z5sxR7969VVlZKcMwlJmZqejoaJ/Hfvvtt5o3b57Cw8NVUVEhl8ulBx54QKefNPZtc+oHTuZyuZSdna3c3FzZ7Xalp6fLag3Y8OgAAKCV+PXX2+Fw6MEHHwxoAIZh6PDhw37FcNlll2nRokW66qqrJEnTp0/X9ddfr9WrVzd4bHFxse644w799a9/VZcuXSRJn3zyia644gpt3bpVnTp1alb9wI9lZ2crIyNDLpdLOTk5kqRZs2YFOSoAAOAvv5LmOXPmNDiBSVPdd999jd43MzNTkZGRGjt2rLts5syZSktL0/vvv9/gVN1LlizR5Zdf7k6YJem8887TyJEj9fe//1233XZbs+oHfiw3N1cul0sJCQlyOBzKzc1tXoUdO0p5eSfWAQBAq/AraR4/fnxLxdFoK1eu1NChQ2WxWNxlAwYMUGxsrFasWNFgUvvNN9+oqKhIt99+u0d5VFSUjv9voojm1A/8mN1uV05OjhwOh6xWq+x2e/MqDAuTzj47MMEBAIBGM1XnyrKyMuXn52vcuHEe5RaLRd26ddP27dsbPP7cc8/Vb37zG02bNk1PPfWUYmNjdejQIb399ttav359s+sHfiw9PV2SPPo0AwAA8zFV0lxQUCBJiouLq7PNZrOpqKioweNrx5d+4YUXtGHDBj3yyCNasWKFli1bplNPPVV5//vau6n1Az9mtVoD24f5+HHpz3+uWb/3XmYEBACglfg9I2AwlZaWSpIi6kkUbDabzwcKo6KitGHDBl1yySXas2ePrrvuOsXGxiotLS0g9VdWVqq0tNRjAQLK6ZTmzq1ZnM5gRwMAQMgwVdIcHh4uSR79jWs5nU65XC6fdTz11FM699xztXLlSnXp0kXPP/+8Lr74YlVUVDS7/nnz5nlMH56SktKY0wIAAEAbZ6qkuXPnzl63lZeXKyYmpsHjH3/8ce3evVuPP/64xo8fr7y8PI0bN065ubl67LHHml3/7NmzVVJS4l727t3b8AkBAADAFEzVpzk5OVkWi0UOh6POtvLycqWmpno91jAMzZs3T//973/dZUlJSVq1apVuuOEGrV69Wv/v//2/JtcvSZGRkYqMjPTjjAAAAGAGpmppjomJUVpaWp0WXKfTqcLCQg0cONDrsQcOHFB4eLgSEhLqbLvzzjt1/PjxZtUPAACA9stUSbMkjRo1Slu3bvUo27Jli5xOp8c40nv27PHog5yUlCTDMFRYWFinzqKiIo0YMcKv+gEAABA6mpQ0V1dXBzqORpsxY4b27dunNWvWuMsWLlyoMWPGaOTIkZKkTZs2qWfPnh6TmISFhWn+/Pm64YYbPLpf7NmzR48++qh7VsLG1A8AAIDQ0qQ+zX/4wx9kt9s1YcIESdIDDzygTZs2qUOHDvrrX//q0fd3x44dGjBgQGCilZSSkqJ169YpIyNDGzdu1IEDB2Sz2bR48WL3PklJSUpMTKwzesW0adOUnJysqVOnKjY2VlVVVYqNjdWyZcvUtWvXRtcPBE1UlLRt24l1AADQKiyGYRj+HvT9998rJSVFK1eu1NVXX634+HhZLBatW7dO559/vse+U6ZM0cCBA/W73/0uYEGbRWlpqeLj41VSUlLvhCkAAAAIrsbma01qad6/f7+qq6v1xz/+UVdffbXOOOMM9erVq07CLEnPPfeczjrrLEVFRemOO+5oyssBAAAAQeV3n+aKigr96le/klQzRbAkPfvss/roo4/0wQcfaMKECUpMTFS/fv303nvvKTo6Wvfee69mzZqlHTt2BDZ6INQcPy49+mjNcvx4sKMBACBk+J00R0ZGusdLvvrqqyVJdrtdDz30kC688EK98cYbcjgc+uqrrzR27Fh9++23Gj9+vKqqqpSVlRXo+IHQ4nRKv/99zcI02gAAtBq/k2aLxaJXX31Vffr00dixYyVJ27Zt0x/+8AcZhiHDMHTqqafqjjvu0JgxY/TYY48pKSlJNptN69atC/gJAAAAAC2tSX2a//Wvf+m5557TNddco8TERH3++eeqqqqSJE2fPl0LFixQdHS0++eqqipVVFTohx9+CFzkAAAAQCtp0jjNf/nLXzR8+HC98847Cg8PV1VVlVJTU7VmzRo988wz7oRZqhn+bfv27e7h3QAAAACzaVJLc35+vqqrq3XmmWdq27ZtOnTokBISEmSxWOrs+9BDD7ln0jv33HObFy0AAAAQBE1qaU5KStJDDz3k/rlTp071JsyGYWj27NlavXq1LBaLJk6c2PRIAQAAgCBpUtI8fvx4Pfjgg5oyZYry8vLqbC8tLdWyZcs0cOBAPfbYY5KkM8880z1UHdAeuVwuZWVladKkScrKypLL5Qp2SAAAIECaNCPgkSNHdN5552n37t2SpOTkZJ1++ukKDw/X/v37tXv3btVWWzuaxrvvvqu+ffsGNvo2jhkBQ0tWVpYyMjLkcrlktVo1d+5czZo1K7AvUlUlbd5csz58uBQeHtj6AQAIMS06I2BsbKy2bNmiadOmae3atdq/f7/2798vi8Wik3Nwi8Wia6+9VtnZ2erSpUtTXgowjdzcXLlcLiUkJMjhcCg3NzfwLxIeLo0cGfh6AQBAg5qUNEtSly5d9NZbb2n79u167bXXtG3bNveQcikpKfrpT3+q6667TmeddVbAggXaMrvdrpycHDkcDlmtVtnt9mCHBAAAAqTJSXOtQYMGadCgQYGIBTC19PR0STUtzna73f1zQDmd0l//WrN+661Shw6Bfw0AAFBHk/o0o3Ho04yAKy+XYmJq1svKJJstuPEAAGByjc3XmjR6BgAAABBKSJoBAAAAH0iaAQAAAB9ImgEAAAAfSJoBAAAAH0iaAQAAAB+aPU4zgFYUGSm9+eaJdQAA0CpImgEzsVql0aODHQUAACGH7hkAAACAD7Q0A2bidEovvVSzPmUK02gDANBKSJoBMzl+XLrpppr1a68laQYAoJXQPQMAAADwgaQZAAAA8IGkGQAAAPCBpBkAAADwgaQZ8JPL5VJWVpYmTZqkrKwsuVyuYIcEAABaGKNnAH7Kzs5WRkaGXC6XcnJyJEmzZs0KclQAAKAlkTQDfsrNzZXL5VJCQoIcDodyc3Nb78UjI6XXXjuxDgAAWgXdMwA/2e12Wa1WORwOWa1W2e321ntxq7VmfOZrr61ZBwAArYK/uoCf0tPTJdW0ONvtdvfPAACg/bIYhmEEO4j2qrS0VPHx8SopKVFcXFyww0F74HJJb7xRs37NNbQ2AwDQTI3N1/iLC5hJZaU0cWLNelkZSTMAAK2EPs0AAACADyTNAAAAgA8kzQAAAIAPJM0AAACADyTNAAAAgA+mffQ+Ly9Pc+bMUe/evVVZWSnDMJSZmano6OgGj3vxxRc1d+5c9e/fXx07dlRERITCwk7873DDDTfo0ksv1ezZszVu3Dj17dtXkrRz506tXbtW999/f4ueFwAAANoeUybNDodDl112mRYtWqSrrrpKkjR9+nRdf/31Wr16dYPHfvnll8rPz1d+fn6dbQkJCfrzn/8sSZo/f77mz5/v3hYbG6uXX345gGcBNEFEhLR06Yl1AADQKkyZNGdmZioyMlJjx451l82cOVNpaWl6//33deGFF3o9dv/+/SouLlZcXJzCw8NlsVgkSQsXLtQpp5yi7t27S5IGDBigQYMGqaSkRGlpabr55pvVo0ePlj0xwJcOHaRp04IdBQAAIceUSfPKlSs1dOhQd8Ir1SS5sbGxWrFiRYNJc1xcnDp16uRRlp+fr61bt2r58uXusvPPP19La1v0AAAAENJM9yBgWVmZ8vPzddppp3mUWywWdevWTdu3b2/w+AULFnj8bBiG7rrrrjrlQJvkckn/+lfN4nIFOxoAAEKG6VqaCwoKJKneucFtNpuKior8qm/p0qUaOXKkkpOTPcpLS0t17733qqKiQhUVFaqsrFRWVpbi4+ObHDvQbJWV0pgxNetMow0AQKsx3V/c0tJSSVJEPQ9B2Ww2FRYWNrqu8vJyPfLII/rkk0/qbPvqq6+0aNEide7cWZJ02223afTo0dq0aZPHaBsnq6ysVGVlZZ1YYU4ul0vZ2dnKzc2V3W5Xenq6rCSpAACEJNNlAOHh4ZLk0Z+5ltPplMuPr6yXL1+uM888s95h6j777DP3a0nS1KlTNXToUK1cuVITJ06st7558+Zp7ty5jX59tG3Z2dnKyMiQy+VSTk6OJGnWrFlBjgoAAASD6fo017b81qe8vFwxMTGNruvpp5/W4MGD6912csIsSV27dpUkvfnmm17rmz17tkpKStzL3r17Gx0L2p7c3Fy5XC4lJCTI5XIpNzc32CEBAIAgMV3SnJycLIvFIofDUWdbeXm5UlNTG1VPYWGhduzYoW7dutXZNmLECA0fPtyjrLq6WpIa7DMdGRmpuLg4jwXmZbfbZbVa5XA4ZLVaZbfbgx0SAAAIEtN1z4iJiVFaWlqdVlyn06nCwkKNHj26UfVs2LBBkpSUlFRn28cff6zevXt7lB08eFCS6ozagfYrPT1dkjz6NAMAgNBkuqRZkkaNGqUVK1Z4lG3ZskVOp1Pjx493l+3Zs0ennnpqvQ9vff3115KkqKioOtsuv/xyLVmyxKNs27ZtkqTJkyc3O36Yg9VqpQ8zAACQZMLuGZI0Y8YM7du3T2vWrHGXLVy4UGPGjNHIkSMlSZs2bVLPnj11++2311tHbTeL+kbhuPvuu3XHHXfo+PHjkqSKigotWbJEM2bMcNcPBEVEhPSXv9QsTKMNAECrMWVLc0pKitatW6eMjAxt3LhRBw4ckM1m0+LFi937JCUlKTExUSkpKfXW0a9fP3Xu3Fl9+/ats23YsGEqLy/X5MmTFR0dreLiYt1yyy2aOXNmi50T0CgdOki8DwEAaHUWwzCMYAfRXpWWlio+Pl4lJSU8FAgAANAGNTZfM2VLMxCyqqqkzZtr1ocPl340NCIAAGgZJM2AmVRUSBdfXLNeVibZbMGNBwCAEGHKBwEBAACA1kTSDAAAAPhA0gwAAAD4QNIMAAAA+EDSDAAAAPhA0gwAAAD4wJBzgJl06CBlZp5YBwAArYKkGTCTiAjpd78LdhQAAIQcumcAklwul7KysjRp0iRlZWXJ5XIFOyQAANCG0NIMSMrOzlZGRoZcLpdycnIkSbNmzQpyVPWoqpI+/rhm/fzzmUYbAIBWQtIMSMrNzZXL5VJCQoIcDodyc3ODHVL9KiqkIUNq1plGGwCAVkP3DECS3W6X1WqVw+GQ1WqV3W4PdkgAAKANoaUZkJSeni6ppsXZbre7fwYAAJBImgFJktVqbZt9mAEAQJtA9wwAAADAB5JmAAAAwAeSZgAAAMAH+jQDZtKhg5SRcWIdAAC0CpJmwEwiIqQHHgh2FAAAhBy6ZwAAAAA+0NIMmEl1tbRzZ836WWdJYfzfCwBAayBpBszk2DHpnHNq1plGGwCAVkMzFQAAAOADSTMAAADgA0kzQorL5VJWVpYmTZqkrKwsuVyuYIcEAABMgD7NCCnZ2dnKyMiQy+VSTk6OJGnWrFlBjgoAALR1tDQjpOTm5srlcikhIUEul0u5ubnBDgkAAJgASTNCit1ul9VqlcPhkNVqld1uD3ZIAADABOiegZCSnp4uqabF2W63u382jQ4dpLvvPrEOAABahcUwDCPYQbRXpaWlio+PV0lJieLi4oIdDgAAAH6ksfka3TMAAAAAH+ieAZhJdbX07bc166edxjTaAAC0EpJmwEyOHZN69qxZZxptAABaDc1UAAAAgA8kzQAAAIAPJM0AAACADyTNAAAAgA8kzQAAAIAPJM0AAACAD6Ycci4vL09z5sxR7969VVlZKcMwlJmZqejo6AaPe/HFFzV37lz1799fHTt2VEREhMJOGuf2hhtu0KWXXtrk+tF2uFwuZWdne0yXbbWa8u3uyWqVfvObE+sAAKBVmG4abYfDobPOOkuLFi3SVVddJUmaPn26fvjhB61evbrBY+fMmaM//elP9W5LSEhQXl6eOnbs2OT6f4xptIMnKytLGRkZcrlcslqtmjt3rmbNmhXssAAAQBvT2HzNdE1VmZmZioyM1NixY91lM2fOVFpamt5//31deOGFXo/dv3+/iouLFRcXp/DwcFksFknSwoULdcopp6h79+6aPXt2k+tH25GbmyuXy6WEhAQ5HA7l5uYGOyQAAGBipuvTvHLlSg0dOtSd8ErSgAEDFBsbqxUrVjR4bFxcnDp16iSr1eo+Pj8/X1u3btWUKVOaXT/aDrvdLqvVKofDIavVKrvdHuyQAsMwpAMHahZzfUkEAICpmaqluaysTPn5+Ro3bpxHucViUbdu3bR9+/YGj1+wYIHHz4Zh6K677tJzzz0XkPrRdqSnp0uSR5/mduHoUSk5uWadabQBAGg1pkqaCwoKJKne/iY2m01FRUV+1bd06VKNHDlSyf9LQgJdP4LHarXShxkAAASMqZLm0tJSSVJERESdbTabTYWFhY2uq7y8XI888og++eSTgNVfWVmpysrKOvUBAADA3EzVpzk8PFySPPob13I6nXK5XI2ua/ny5TrzzDM9hpFrbv3z5s1TfHy8e0lJSWl0PAAAAGi7TJU0d+7c2eu28vJyxcTENLqup59+WoMHDw5o/bNnz1ZJSYl72bt3b6PjAQAAQNtlqqQ5OTlZFotFDoejzrby8nKlpqY2qp7CwkLt2LFD3bp1C2j9kZGRiouL81gAAABgfqZKmmNiYpSWllanBdfpdKqwsFADBw5sVD0bNmyQJCUlJbVI/QAAAGhfTJU0S9KoUaO0detWj7ItW7bI6XRq/Pjx7rI9e/Z47YP89ddfS5KioqKaXD8QFFardOONNQvTaAMA0GpMlzTPmDFD+/bt05o1a9xlCxcu1JgxYzRy5EhJ0qZNm9SzZ0/dfvvt9dZRO3RcfaNkNKZ+IGgiI6Xnn69ZIiODHQ0AACHDdE1VKSkpWrdunTIyMrRx40YdOHBANptNixcvdu+TlJSkxMREr6NX9OvXT507d1bfvn2bVD8AAABCi8UwmIu3pZSWlio+Pl4lJSU8FNiCXC6XsrOzPWb/s7bXrguGUTMroCRFR0v1DI8IAAAar7H5WjvNLBBKsrOzlZGRIZfLpZycHElqv7MBHj0q1Q59yDTaAAC0GtP1aQZ+LDc3Vy6XSwkJCXK5XMrNzQ12SAAAoJ0haYbp2e12Wa1WORwOWa1W2e32YIcEAADaGbpnwPTS09MlyaNPMwAAQCCRNMP0rFZr++3DDAAA2gS6ZwAAAAA+kDQDAAAAPtA9AzCT8HBpwoQT6wAAoFWQNANmEhUlrVgR7CgAAAg5dM8AAAAAfCBpBgAAAHwgaQbMpLxcslhqlvLyYEcDAEDIIGmGabhcLmVlZWnSpEnKysqSy+UKdkgAACBE8CAgTCM7O1sZGRlyuVzKycmRJCY1AQAArYKWZphGbm6uXC6XEhIS5HK5lJubG+yQAABAiCBphmnY7XZZrVY5HA5ZrVbZ7fZghwQAAEIE3TNgGunp6ZJqWpztdrv7ZwAAgJZG0gzTsFqt9GEGAABBQdIMmEl4uDRq1Il1AADQKkiaATOJipL+9a9gRwEAQMjhQUAAAADAB5JmAAAAwAeSZsBMysslm61mYRptAABaDUkz2hymy/bh6NGaBQAAtBoeBESbw3TZAACgraGlGW0O02UDAIC2hqQZbQ7TZQMAgLaG7hloc5guGwAAtDUkzWhzmC4bAAC0NSTNgJmEhUkXXXRiHQAAtAqSZsBMOnaUNmwIdhQAAIQcmqoAAAAAH0iaAQAAAB9ImhFUzP7np/JyqXPnmoVptAEAaDX0aUZQMftfExw8GOwIAAAIObQ0I6iY/Q8AAJgBSTOCitn/AACAGdA9A0HF7H8AAMAMSJoRVMz+BwAAzIDuGQAAAIAPtDQDZhIWJl1wwYl1AADQKkybNOfl5WnOnDnq3bu3KisrZRiGMjMzFR0d3ajj//Of/2ju3LmKi4tTRESE4uPj9eCDD6pDhw6SpNmzZ2vcuHHq27evJGnnzp1au3at7r///hY7J8Cnjh2lDz8MdhQAAIQci2EYRrCD8JfD4dBZZ52lRYsW6aqrrpIkTZ8+XT/88INWr17t8/gdO3Zo9OjRWrVqlQYPHqzPP/9cl112mTIzMzVt2jRJksVi8TgmNjZWL7/8ssaMGdPoOEtLSxUfH6+SkhLFxcU1/gTbIZfLpezsbI8H/qxW0/7PBgAA2onG5mumzFoyMzMVGRmpsWPHustmzpyptLQ0vf/++7rwwgu9Hut0OnX11Vfrnnvu0eDBgyVJlZWVqqysVGxsrHu/AQMGaNCgQSopKVFaWppuvvlm9ejRo+VOqp1jEhMAAGBmpkyaV65cqaFDh3q0Bg8YMECxsbFasWJFg0nz888/r++++06//OUv3WWDBw9WSUmJx37nn3++li5dGvjgQ9TJk5g4HA4mMWmqo0el/v1r1r/4QmpkdyQAANA8pnuSqKysTPn5+TrttNM8yi0Wi7p166bt27c3ePyrr76q3r17h3x3idbGJCYBYhjSnj01i/l6VgEAYFqma2kuKCiQpHqTXpvNpqKiIq/HGoahLVu26Cc/+YnWrVun9evXy+Fw6Pvvv9e8efN05plnuvctLS3Vvffeq4qKClVUVKiyslJZWVmKj48P+DmFAiYxAQAAZma6pLm0tFSSFBERUWebzWZTYWGh12MPHjyoyspK7d+/X7t379ZDDz0kSXr55Zc1fPhwffrpp+rWrZsk6auvvtKiRYvUuXNnSdJtt92m0aNHa9OmTQrzMtRXbd/oH8cKJjEBAADmZrruGeHh4ZLqjm4h1Tzk53K5vB5bXV0tqaa1esqUKe7y8ePH69ChQ3r44YfdZZ999pk7YZakqVOnasuWLVq5cqXX+ufNm6f4+Hj3kpKS0vgTAwAAQJtluqT55ET2x8rLyxUTE+N1e6dOnSRJvXr1UlRUlLs8MjJSiYmJevPNN91ltcl5ra5du0qSxz4/Nnv2bJWUlLiXvXv3NnwyAAAAMAXTdc9ITk6WxWKRw+Gos628vFypqalej+3QoYM6d+7sTp5PFhkZqR9++EGSNGLECBmGoc2bN7u317ZSN9RnOjIyUpGRkY0+l/aI8ZgBAEB7ZLpsJiYmRmlpaXVacZ1OpwoLCzV69OgGj7fb7crPz69TXllZ6R6H+eOPP1bv3r09th88eFCS6ozaAU+Mx9zCLJYTQ87V00UJAAC0DNN1z5CkUaNGaevWrR5lW7ZskdPp1Pjx491le/bsqdPHeeLEidqzZ48qKircZcXFxSoqKtK4ceMkSZdffrnWr1/vcdy2bdskSZMnTw7oubQ3J4/H7HK5GI850KKjpf/8p2ZhjGYAAFqNKZPmGTNmaN++fVqzZo27bOHChRozZoxGjhwpSdq0aZN69uyp22+/3ePYyZMn6+yzz9azzz7rLnv++eeVmpqq++67T5J0991364477tDx48clSRUVFVqyZIlmzJjhrh/1YzxmAADQHpmue4YkpaSkaN26dcrIyNDGjRt14MAB2Ww2LV682L1PUlKSEhMT64xgER4erpycHP2///f/NHHiRElSdHS0PvjgA51yyimSpGHDhqm8vFyTJ09WdHS0iouLdcstt2jmzJmtdo5mxXjMAACgPbIYBtOKtZTS0lLFx8erpKSEGQgRGEePSoMH16x/+CFdNAAAaKbG5mumbGkGQpZhSF98cWIdAAC0ClP2aUbwuVwuZWVladKkScrKympwUhkAAACzo6UZTcLQcgAAIJTQ0owmYWg5AAAQSkia0SQMLQcAAEIJ3TPQJAwtBwAAQglJM3xyuVzKzs72SJCtVit9mIPBYpFSU0+sAwCAVkHSDJ946K8NiY6WCgqCHQUAACGHPs3wiYf+AABAqCNphk889AcAAEId3TPgEw/9tSHHjkkjRtSsb9okdewY3HgAAAgRFsNgLt6W0ti5zNsKbw/8oQ0pL5diYmrWy8okmy248QAAYHKNzdfIiODGA38AAAD1o08z3HjgDwAAoH4kzSHI5XIpKytLkyZNUlZWllwulyQe+AMAAPCG7hkhyFs3DB74AwAAqB9JcztX38N9J3fDcDgc7m4YzPIHAABQP5LmdsLbyBf1tSrb7Xbl5OTQDcOskpKCHQEAACGHpLmd8Nblor5W5ZdeekkS3TBMyWaTDhwIdhQAAIQckuZ2wluXi/palemGAQAA4B+S5nbCW5cLHu4DAABoPpLmdsJbckyrcjtz7Jj0i1/UrL/1FtNoAwDQSphGuwWZbRptmADTaAMAEFCNzdeY3AQAAADwgaQZAAAA8IGkGQAAAPCBpBkAAADwgaQZAAAA8IEh5wCziY4OdgQAAIQckmbATGy2mmHnAABAq6J7BgAAAOADSTMAAADgA0kzYCYVFdLo0TVLRUWwowEAIGTQpxkwk6oqKSfnxDoAAGgVtDQDAAAAPpA0AwAAAD6QNAMAAAA+kDQDAAAAPpA0AwAAAD4wekYLMgxDklRaWhrkSNBunDwbYGkpI2gAANBMtXlabd7mDUlzCzpy5IgkKSUlJciRoF3q3j3YEQAA0G4cOXJE8fHxXrdbDF9pNZqsurpa+/btU2xsrCwWS4u8RmlpqVJSUrR3717FxcW1yGuYFdfGO66Nd1yb+nFdvOPaeMe18Y5r411rXxvDMHTkyBF1795dYWHeey7T0tyCwsLC1KNHj1Z5rbi4OD50XnBtvOPaeMe1qR/XxTuujXdcG++4Nt615rVpqIW5Fg8CAgAAAD6QNAMAAAA+kDSbXGRkpDIyMhQZGRnsUNocro13XBvvuDb147p4x7XxjmvjHdfGu7Z6bXgQEAAAAPCBlmYAAADAB5JmAAAAwAeSZgAAAMAHxmluI/Ly8jRnzhz17t1blZWVMgxDmZmZio6ODsixzak/2JoT++bNm7VgwQJVVFTo22+/1dixY/XHP/5RNpvNvc/s2bM1btw49e3bV5K0c+dOrV27Vvfff3+LnVOgNOfaNOa8Q/F98+KLL2ru3Lnq37+/OnbsqIiICI/B7m+44QZdeumlpn7f1CooKNBdd92lVatWNfqY9n6/kZp2Xdr7vaZWU65Ne7/X1PL32oTCvaYxnwtv2uS9xkDQHTp0yOjSpYvxj3/8w1126623GmPHjg3Isc2pP9iaE/uOHTuMa665xjh69KhhGIaxe/duo3v37sbgwYONiooK936SPJbY2Fjjn//8Z+BPJsCa+3v1dd6h+r6577776lyb2iUhIcH47rvvDMMw7/um1jvvvGOcdtppxkUXXdToY9r7/cYwmnZd2vu9plZTro1htO97Ta2mXJv2fq9p7OeiPm31XkPS3Abcc889xmmnnWZUV1e7yz777DNDkrF58+ZmH9uc+oOtObFfeeWVxvfff+9R9uSTTxqSjIULF7rLBgwYYEybNs245pprjAceeMDYu3dvYE+ihTT39+rrvEP1fXPLLbcYxcXFhtPp9Dj+L3/5i/Hiiy+6fzbr++bDDz80fv7znxu33nqrceaZZ/r1R74932+ac13a+72mOdfGMNr3vaY516a932sa+7moT1u915A0twG9e/c2rrvuOo+y6upqIzY21khPT2/2sc2pP9iaE7vNZjP69+/v8R/tp59+akgyxo8f7y678cYbAxpza2nu79XXeYfq+2bWrFl1ynbt2mX88pe/9Cgz6/vmZBdddJFff+Tb+/2mlr/Xpb3fa07m77UxjPZ9rzmZv9emvd9rGvu5qE9bvdfwIGCQlZWVKT8/X6eddppHucViUbdu3bR9+/ZmHduc+oOtubGnpqbqu+++k9PpdJfVDpR+7NixwAfcilr69xrK75sFCxZ4/GwYhu6666465aGmvd9vmqM932taWqi+Z6T2f69p6ueiLd9reBAwyAoKCiRJcXFxdbbZbDYVFRU169jm1B9szY1969atqqioUExMjLvsk08+kSQNGTLEXVZaWqp7771XFRUVqqioUGVlpbKyshQfHx+As2gZgfi9NnTeofy++bGlS5dq5MiRSk5O9ig34/umOdr7/aY52vO9JhDa670m0Nrbvaaxn4sfa8v3GpLmICstLZUkRURE1Nlms9lUWFjYrGObU3+wNTf22NhYxcbGepQ988wz6ty5s+644w532VdffaVFixapc+fOkqTbbrtNo0eP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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# empowerment\n", + "plt.figure(figsize=(8, 6)) # Define the figure size\n", + "plt.scatter(Js, empw_vals,s=5, color='k', alpha=0.9);\n", + "plt.axvline(x=CRITICAL_VALUE, color='r', linestyle='--', label='Indicates $J_c$');\n", + "plt.title(r'Empowerment $\\mathfrak{E}$ vs J');\n", + "plt.ylabel(r'$\\mathfrak{E}$ [bits]');\n", + "plt.xlabel('J');\n", + "plt.savefig('emp_v_J.png', dpi=300) # dpi=300 for high resolution" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "c6ad35dd", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAtwAAAI2CAYAAABjdl+NAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABjrElEQVR4nO3de3hU5bn38d8kQxJyIEIAOQVEUESlsYKOimI8uzmqiLTYYlUUMRzeorsFQSJai2JJJS1FKgWrhd1usBbUWGtFDmaXgCAoViuowSAqh4aMSUjIkOf9I83AOEmYyZxnfT/XNde1so73WlmzcueZe57HZowxAgAAABASCZEOAAAAAIhnJNwAAABACJFwAwAAACFEwg0AAACEEAk3AAAAEEIk3AAAAEAIkXADAAAAIUTCDQAAAIQQCTcAAAAQQiTcAAAAQAiRcAMAAAAhZI90AAAAqaKiQq+++qrKyso0YMAADR06NNIhAQCChBZuIEbs379f3/nOd3TWWWcpIyNDNptNNptNd911V7PbPPTQQ8rKynKva7PZlJKSor59+4Yx8vB59tlnddppp2nixImRDsUvf/zjH3XGGWdo48aNatu2rUaPHq1JkyZFOizAkhYvXqx+/fp5PTttNpsyMzN1/fXXRzpExCCbMcZEOggA/lm/fr1Gjhypb775RpL0xhtv6Nprr21yXWOMXnrpJY0dO1Y/+MEPVFhYqIyMjHCGGzYDBgzQrl27JEnl5eU67bTTIhuQD958801df/31mjZtmgoKCrRw4UL9v//3/5SRkSGn0xnp8AC5XC799a9/1Zo1a/TRRx/p0KFDail1sNvt6tSpk2677baY/8fxk08+0VVXXaWysjL169dP7733npKSkiIdFmIQJSVAjLrpppv0r3/9S1u2bNHEiRP1/vvvKzU11Ws9m82mW265Rd/97nf1k5/8JGaT7e9+97t69913W1xn8uTJ+u///m/dfPPNMZFsS9KcOXNkjNFPfvITSdLQoUO1du1aXX311RGODJBefvllPfjgg/r444/93nbz5s269957lZiYGILIwqNPnz4688wzVVZWpi5dupBso9UoKQFiVEJCgpYuXao2bdro008/1Zw5c1pcPzU1VW3btg1TdMF15MgRHTly5JTrTZw4UU6nU7///e9DH1SQbNu2Taeffrq6dOkiSTrrrLP05ptvatasWRGODFY3a9Ys3XLLLRo3bpw+++wzuVwuPfroo5KkwYMHyxjj8Tp+/LgOHTqk++67T126dNHy5ctjOtkGgomEG4hhAwYMcLeMPv3003rnnXciHFFo/OUvf2nxI+xYVltbq+Tk5EiHAXgoKCjQz3/+c82bN0/5+fk644wzlJiYqO3bt0uShgwZ4rVNQkKCsrKyVFhYqP379+t73/teuMMGohYJNxDjHn74YZ199tk6fvy4JkyYIJfLFemQgur48eP61a9+FekwAMv48ssvNWPGDGVnZ+v+++/3WFZSUiJJuvLKK5vdvk2bNrLZbCGNEYg11HADMS45OVnPPvuscnNztXPnTj311FOaOXOm3/s5fPiw3njjDe3du1dZWVm64YYblJ2d3eI2//znP/Xmm2+qurpaF1xwga677jolJCRo27Zt2rRpk9LS0nTXXXd5fay8ZcsWbdu2TZWVlTr//PN17bXXqk2bNh7r1NfXa/fu3Zo9e7a2b9+uXr16tRjLgQMHdPDgQfdrzJgxfl8DX7TmOrVGdXW13nvvPR04cEAHDhxQRkaGxo4dq4MHD+rPf/6zbDabbr/9dqWlpQUcXyjOyZd91tXVaceOHfr666914MABSXL3urNjxw5t3LhRLpdLDodDgwcPDuh4rb2eUuvv81i1detW3X333Zo9e7bH90I++ugjffnll7Lb7brssssiGGGDrVu3asuWLaqsrNQ555yjYcOGadu2berRo4e6d+8e6fAAD7RwA3FgyJAhuueeeyRJjz76qHbv3u3X9r/85S91zjnnaOfOncrOztbOnTt11llnNVsXXlNTozvvvFM33nijEhMT1a1bN82dO1c5OTkaOXKknn76aZWXl+vee+/Vc889595uz549uvzyy7V8+XIlJCSoc+fOevzxx9W3b1+98cYbHsdYtWqVxo4dqw8++EBSQ7eIF1xwgft16623eqx/+umn6/zzz9dVV12l2267zWPZ4sWL1a1bN4/uvTp37qw1a9a41/nVr36lxMRE9/IuXbpo//79AV2n5px8LpK0d+9ej3Pbv3+/tm/frtzcXI0aNUr33HOPnn32WX344YcaOnSoDhw4oKlTp3p9sbI18QXrnFqzzy+//FJDhgzRiBEjdPfdd6ugoED19fWaPHmyli5dqo4dO+rAgQO64oorNHbsWNXX17f6eK25nv7e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eOEFs3PnTp/3c7I9e/YYSea0004zR48eNV9//XWzf0wDuU6+CDThbk18oTinQPfpb8Ld2uP58w9ca+7zk+3fv98kJiaatm3bmiNHjphPP/3UXHPNNT7HGg2++eYb065dO2Oz2cxHH30UsuP4+p6sq6szH3/8sce848ePm+LiYjN48GAjyQwdOjSosZFwIxio4QbiVL9+/fTwww9Lkn73u99p165dHsu7du2qc845R5L06aefNrufuro6ffPNNx7zXn75Zf39739X9+7ddfXVV+vCCy/Uhx9+qH/84x9NfoFNkvLz8/X5559r6NCheuCBB1qMvbq6Wm+//XaL6+zZs0f//ve/W1ynOX369NHll1+uI0eOaO3atVq5cqVuv/32JtcN5DqFQ2viC8U5hfs6heN4rbnPvx3jjTfeqKNHj+pPf/qTfv/737vrlWPFM888I6fTqdGjRzdbKx8Mvr4n9+3b59UHf0JCgi677DK9+eabOvfcc1v15eWnnnpKmZmZGj16tNdovY01+N/+8izgl0hn/AD850sLtzENfVwPGDDA3RL47W63GvsqvuKKK5rdx8KFC83vf/97j3kXXHCB+eabb/yKuX///kaS+eUvf+m17OTWSmMaWiEbW5OOHDliJJnOnTt7bPPggw969H3cSD60cBtjzLPPPutuDbv00kvNkSNHml23tdfJF6eK15cW2dbEF4pzCmSfLV2Hplq4W3s8f1q4W3Off9uqVauMJHPJJZeYnJwcU1VVFdD+wqmystJ06tTJJCQkBL1Moym+vCc/++wzY7PZzOeff97kPqZPn27atWvn97FPLkt59913PZadddZZTXZLCfiDhBuIQa+++qoZM2aMT+uWlJSYhISEJhNul8tlLr74YmOz2cx7773nte2RI0fMhRde6JUk5OTkmJ///Od+xXzFFVcYSWbWrFleyx5//HH3H7u6ujqze/duc+2117qX9+jRwyQkJJjy8nL3vOHDhxun0+m1L18T7oqKCtO2bVuTkJBgvve977W4bmuvky+CkXC3Jr5QnFMg+2xNwt2a4/mTcLfmPv+2xv7AJZm77roroH2F0h//+EczevRo93cqjDFm3rx5YU00fXlPNv7+7r///iaXjxw5slUlJX369DEJCQnmxhtv9Oi3/fPPP3ffm6tXr/Z7v0AjEm4gxhw8eNDccMMNJjMz02zatMmnbaZNm9Zkwm1MwwiNDofD9O3b1+PLZ7t37zZXXXWV+b//+z+vbR599FEjNYyk169fP3POOeeYnJwck5ubayZOnGhefvllr1HjXn/9dZOUlGQyMjLM22+/bYxpqL187rnnzFVXXWXuuusuI8n84x//MP/zP/9jHnnkEfe2jSNIPv7448YYY7Zv395k8vLpp5+6/zju3bv3lNfl+9//vpFkioqKTrlua67TqTQOwtJUq1qjxkGB0tLSmvz9BRJfKM6pNfs8+ffW1Jfkli1bZiSZvn37murq6oCO5+v1NKZ193lTpkyZYiT5/H4Nt8aBhRpb4g8dOmSOHDlisrKyzOmnn272798ftlhO9Z5sTLizsrLML37xC1NXV2eMafg075e//KVJT09v9r3Ukl//+tfmrLPO8hrU55577jGSzPDhw2NqVFBEHxJuIEZ88cUX5swzzzR2u939x1GSOf30082iRYta3LaystKceeaZzfZMUFNTY5555hlz8cUXm/POO88MHDjQjB492rz//vtNrr9lyxb3qJHNva688kqPFmljjNmxY4e5/fbbTY8ePczZZ59tLrroIjN79mxz9OhR89VXX5krrrjCdOvWzUybNs0rkVmwYIHp3bu36du3rxk5cqTHvr/44gvTr18/95dEJZmUlBTTv3//Fq/L3//+d3PGGWf4lDS15jo154svvjBnn322adOmjTtem81mOnbsaGbOnGmMMWbr1q3mrLPO8vh922w2c8YZZ5jf/OY3QYsvWOfUmn029Xtr06aNOeuss8zWrVvNmjVrTO/evY3NZnMvT0tL8/q9+nK81lzP1t7n37Z582bTt2/f1l3MMPjiiy/cI2NKMklJSaZTp06ma9euIemZpyWnek+WlZUZh8NhKioqzLx588zAgQNNTk6OGTBggPne975nPvjgg1Yf+7HHHjO9evUyc+fONStXrjQ/+tGPTGJiopk8ebLXP3qAv2zG+DksFABL++1vf6uf/OQnWrZsmYYPH66kpCRJDV90LC8v144dO/Tiiy9q+fLlmjx5sn71q19FOGLAf8G8z5977jl98cUXmjVrVrjC99uOHTs0ffp0bd68WVlZWbrppps0e/Zs9yifVvH111/rtdde05dffqmuXbvqhhtuUNeuXSMdFuIACTcAnx06dEjdu3fX448/rgcffLDFdW+++Wa9++67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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# free energy\n", + "plt.figure(figsize=(8, 6)) # Define the figure size\n", + "plt.scatter(Js, free_engy, s=5, color='k', alpha=0.9);\n", + "plt.axvline(x=CRITICAL_VALUE, color='r', linestyle='--', label='Indicates $J_c$');\n", + "plt.title(r'Negative free energy $-\\mathcal{F}$ vs J');\n", + "plt.ylabel(r'$-\\mathcal{F}$ [bits]');\n", + "plt.xlabel('J');\n", + "plt.savefig('nfe_v_J.png', dpi=300) # dpi=300 for high resolution" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "id": "8dcf947a", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAArUAAAI2CAYAAABOhHA3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAABTXElEQVR4nO3deXgUVdr38V8nnQSyGkGQHYZNQYVRoMeFTRgXRBxFZZBBcX8UzVyijuLoxG3GmVGD5hEdHzdcENyV0biDgigBVFwQHVBBFpVlQkJWUuS8f+RNQ0x3SKeru7q6v5/r6ouiqqvqrurq6jun7z7HY4wxAgAAAFwsyekAAAAAgHCR1AIAAMD1SGoBAADgeiS1AAAAcD2SWgAAALgeSS0AAABcj6QWAAAArkdSCwAAANcjqQUAAIDrkdQCAADA9UhqAQAA4HpepwMAYkVpaam2b9+uHTt2aPv27Ro3bpzTIbnS7t27/edxx44d6tSpk/r37+90WLBRaWmpXnvtNW3cuFGHH354wPdKS54DAHaipRauVVBQII/HI4/Ho5SUFPXp00eDBw/W4YcfrvT09EbLDjvsMA0ePFj9+/dXmzZt/Msuv/xySdL69et1wAEHqE+fPvL5fDrllFMcPjr3Ouecc9SlSxcdccQRGj16tObNm+d0SDHvoYce0gEHHKBLL73U6VD2a/78+erZs6cWL16stm3bauLEibrsssta9By7j9NN5w2R98ADD6h///5q166d/x7f8MjJydEJJ5zgdIiINAO41PXXX2+Sk5PNHXfcYXbt2tVo2YsvvmgkGUnmH//4R6NlNTU15uGHHzbp6enmrLPO8s/fvXu3mTdvnn89tE5dXZ3ZunWrOfroo40kk5+f73RIMe+www7zX3clJSVOhxPUO++8Y5KSksxVV11ljDHmnnvuMZJMVlZWi55j93G65bwh+tatW2e6detmJJn+/fubmpoap0NCFNBSC9fatm2bLrroIl1//fXKzMxstCw3N9c/3aFDh0bLUlNTdeGFF+r222/Xtm3b/PNTUlJ05plnRjboBODxeHTQQQdpzJgxTofiGldccYWysrJ07rnn6oADDnA6nKD+8pe/yBijP/3pT5KkcePG6fjjj9d1113XoufYfZxuOW+Ivt69e+tXv/qVJOnggw9WamqqwxEhGqiphWtt375dV155ZavXP+OMM/Too482muf18pawS3JystMhuMall17qiq/QP/74Y3Xs2FEHH3ywJKlv37569913Q3qOncfplvMGIDpoqYVrbdu2TQMHDmz1+j169FBVVZWNEQHxraamRmlpaWE/BwAigaQWrlVeXu5vDWqttm3byhhjU0QAAMApfNcK1zr99NPD3sbkyZNVU1OjNm3aBH3OF198oUWLFqm2tlbDhg3T8OHDm93mjh079Pbbb2vDhg1q166dTjzxRHXr1s2/vLKyUp9//rm2bt2qrVu3KisrS5MmTdK2bdv04osvyuPxaMqUKcrIyFBtba1WrVqln3/+WVu3bpUkXXDBBZKkVatWafHixUpOTpbP59OQIUP8+zDG6K233tLnn3+uzMxMnXDCCerdu3ezcdfW1uqdd97RV199pfT0dA0aNEjHHHPMfs+hMUbvvfeeVq9erdraWo0cOVJHHnnkftcLVUvOhWVZ8vl8OvbYY/e7veXLl+vjjz9WeXm5DjvsMI0dO1YpKSmt2m84r8HWrVu1bds2/+Oss84KGK9lWXrnnXe0Zs0aeb1e9e/fX8cff3zYJTP7u17t0tLjlFp2rKFsb3/HaPe1FanXKp6sWLFCy5cvV3l5uQ455BCdcsop+vjjj9W1a1d16dLF6fDgUrTUwrVuvvnmsLdxww03BE1ojTG65pprdN9996ldu3basWOHRo0apYkTJ6quri7gOrNmzdIhhxyizz77TN26ddNnn32mvn376i9/+Yv/OZ988olGjRql0047TRdffLEeeughrVmzRuPGjdPWrVuVl5en448/XpL0448/asSIETr11FN14YUXqqCgQHV1dbriiiv08MMPq3379tq4caOGDRumiy66SFL9h/348eNVXFysTp06aeHCherfv7/uv//+oOdhwYIF+tWvfqUnnnhCHTp08P/Q5ze/+Y2++uqroOstXrxYAwYM0I033ihjjDp27KhZs2bpD3/4g2pqagKu88ADD6hLly6Nutvp0KGDXnnlFf9z7r33XiUnJ/uXH3zwwS06F1u3btXw4cM1adKkoK/RunXrdNxxx+mxxx5TUlKSOnTooL/+9a/q06eP3n777SbPj/Rr0LFjRx122GEaPXq0zj777IAxv/322+rfv7/uueceZWVlKTMzU++++66OPPJIFRUVBX199qcl1+uWLVs0ePBgDR48WJK0YcMG//8HDx6sLVu2tOg5LTnOUI61pdtryTHadW21NP7Wvge2bNkSdL/R8sADD6hz587Nxv6///u/QWPfunWrjjvuOF1//fUyxqhbt25avny5jj32WJ144olau3atU4eGeOBUtwtAJC1atMjf1c9jjz0W0roN6/3tb38zc+fObbTswgsvNJLMk08+2WS9G2+80UgyL730UqP5s2bNMpJMYWFho/mFhYVGkhkzZow54YQTzKZNm8zChQv9+9+2bZv/ua+88oqRZAYOHGiuueYa8+9//7vRtqZNm2YkmRdeeMGMGzfOfPvtt/5llmWZPn36mJSUFLNp06YmcT/66KMmKSmpybEaY8xVV11lcnNzzYoVK5ose+mll0xqaqqZOnWqqaura7TsoYceMm3atGm2S68777zTSDJdunQxlmU1Wf6vf/3LeDwe8/DDDzfafkvPRaDjMcaYY445xvTo0cOsWrXKP2/37t1m+PDhJjU11SxdujTgepF6DbZu3WoeeOCBoF3JvfzyyyYlJcWcf/75jeZ/8sknJicnx+Tm5prdu3cHjLk5oV6vxpigMbbkOfs7TmNCO9aWbC/UYwz32gr1tWrte6ClHn/8cXP88cebE0880XzwwQf++c8//7w59dRTzfDhw82oUaPMQw89FPL2//73vxtJpmvXrgFjnzt3rvF4POaRRx5ptO2TTjrJnHnmmU2e//HHH5vk5GSzaNGikOJozsiRI40kM3LkSNu2idhGUou4ZEdSe8455zRZ9tRTTxlJ5g9/+EOj+R9++KHxeDxmyJAhTdapqakx7dq1M+3atWvUV+LatWuNJJObm2tuuukmY4wxu3btMsOHDzdTp05ttI3a2lr/cy+55JIm+3jyySeNJHPQQQeZJ554osnyhmT8l+dizZo1pk2bNmb8+PEBz0Vtba3p0aOH6devn6msrPTP37hxoznggANMZmamKSsrC7ju2LFjm01qq6qqzAEHHGAkmbVr1zZZXlRUZCZPnhwwppaci1+ewwYNyfb06dMbzW/4g2L06NEB14vUa2BM/bkIlJz9/PPP5sADDzTp6elm586djZbdddddAf8AaonWXK/GhJfUGhP8OI1p3bE2t73WHGM411Zr42/Ne6Alli5das4991xTV1dnLrroIpOenm6+/vprc/bZZ5v8/HyzY8cOY4wx8+fPD/pHTHMqKipMVlaW8Xg85vvvv2+yfOHChWbKlClN1pFk7r333oDbnDBhAkktwkL5ARDE5MmTm8xr6PP2p59+ajT/r3/9q4wxmjp1apN1UlNTNWrUKO3YsUNLlizxz2+oryspKfHXB2dmZmrx4sV64oknGm1j3+dOmzatyT46duwoSaqqqtLvf//7oMt/+fXl7bffrurqap1xxhlN1mnY7ymnnKL//Oc/mjNnjn/+rFmztHPnTp122mnKysoKuO7+6uLatGmjSZMmSVKjbTeYP39+wO6aWnoufvzxx4D7veCCC5Sbm9vkmH/zm99Iqq/1CyRSr4GkoCUw9957r/773/9q3LhxysnJabRsypQpGj9+vG655Ra1b98+4PrBtOZ6tUNzteutOdbmthfuezLUa6u18bfmPdASd999t/70pz/J4/Gobdu2qqys1EknnaSpU6fq5ptv1oEHHihJOu200yQp5JH/0tPTdeaZZ8oYoyeffDJg7BdffHGjeQ29zcybN08VFRVN1hkyZEizrymwPyS1QBCDBg1qMq/hh0S1tbX+eeXl5XrrrbckSf379w+4rYZOwFevXt1kmdfr1WGHHdbiuBrqFgPFNWDAgIA/dmqYt3v3bv+83bt36+WXX5Yk9enTJ+j+Gn7cNHfuXP+8Z555RpJ01FFHtTjuQM4//3xJ0hNPPNGoTrG8vFyffvqpRowY0ez6zZ2LfV+jfc2ePVv//e9//XXLDdq2bevf9/7Y9Rrsz/z58yVJQ4cObbLs4IMP1r///e9GtaEtEe71Gil2HqsdxxjqtdXa+MN9DwSye/durV+/3t/l4RdffCFJmjp1qsaPH9/ouWVlZZIUMMncn/POO88f+75qamq0YsWKJrG3a9dOv/71r7Vs2TIdcsgh+stf/qKioiL/j/Nuuukm/x+XQGvwU0wgiIYkZ3/Wr1/v/5DLy8sLuF55ebk6duwY8NfP7dq1C5gEtSaulsYsSWvXrvV/kGVnZwd9XkNL7Jdffimp/sNv8+bNkqTOnTu3eH+B+Hw+HXrooVqzZo3effdd/fa3v5UkPffcczrzzDPl8XiaXT+U4/2ln376Sc8//7yWL1+ur776KqRk067XoDnV1dX67rvvJEndu3e3ZZtS+NdrJNh9rHYcYyivYzjxh/seCGTnzp2aMWOGP7Zly5YpPT1df/7zn5s89+OPP5bU/B+2wYwYMUI9e/bUunXrtHTpUn/PEK+88opOPfXUgLE/+eSTOvHEE7Vp0ybddtttkqSkpCSddNJJmjVrlvr16xdyHEADklogTJWVlf7pp59+OuTWS6e+bmtoodmfhtaj0tJSWZbVqEXHjgRu2rRpuu666zRnzhz/B/qTTz6pxx57LOxtB7Jjxw5dffXVeuqppzR8+HBNnz5ds2bNUrt27VqVQETKzp07/dN2XiPhXq+RYPexRvsYw43f7vdAhw4dNGXKFEnShx9+qOrqav32t78NOCjGokWLJKlVLcIej0fnnnuubr31Vj3xxBP+pPbJJ5/UPffcE3CdgQMH6uuvv9bTTz+tefPmaeXKlSovL1dRUZGWLl2qjz76SIceemjIsQAS5QdA2Pbt7zIWutxpqX1bWZv7yn3btm2S6j8ovV6vDjroIP846tXV1WHHMXXqVCUnJ+ull15SaWmpvv/+eyUlJalHjx5hb/uXNm/erCOPPFKPP/64/vGPf2jRokU688wz1a5dO9v3Fa6G8y3V13jaJRavV7uPNdrHGG78kXwPNAxR/MtymwYLFy5sdvn+nHvuuZKkZ599VtXV1dq6dat27doVsE9my7K0du1aZWZm6pJLLtGiRYtUWlrqb+UtLS3VNddc06o4AImkFghbp06ddMghh0iS/yvIQGpra7Vr165ohbVf3bp183/4b9iwIejzGn4U0zAQg8fj0XHHHSdJ2rRpU9hxdOrUSSeddJKqqqr0zDPP6PHHH/fX6tktPz9fP/zwg8aNG6err7662edWVlbqgw8+iEgcLZGUlORv+WqoiQxkz549QeuHA4nF69XuY432MYYbfyTfA80lrTt37tSnn36qDh06hFTXv6/evXvruOOO086dO7VgwQI9/fTT/lbiX9q0aZPOPPPMRvOSkpJ0zDHH6N1339WAAQNC/nHinXfeqZycHE2cOFGWZTVa1vAtU1ISqU6i4JUGbNDwC+UXXngh6HMeeOABvfTSS9EKab+SkpJ0ySWXSJI++uijoM9r+FDc91fYF154oaS9X10G0vBL55Zo+KX5Y489ppdfflkTJ05s8bqh+PDDDyXJ/xXvvn75i/atW7fqxhtvjEgcLdUwmMNrr70WdDjnv//973r11VdD2m4sXq92H2u0jzHc+CPxHti1a5dWrlypnJycgCUY7733nurq6jR69OiwSm8aEvDHH39czz77bLODYXzxxRfauHFjk/lpaWk66aSTQo7j1ltvVVlZmV588UV/3X+Dhl5qunbtGtI24V4ktYANrrzySg0bNkwffPBBwJaa0tJSPf74401aKZx2zTXX6PDDD9e8efO0ffv2Jsu//PJLff311/r973+vk046yT9/8uTJGjlypF5//XV98sknTdZbvXq1v2eF0tLS/cYxYcIEtWvXTsuWLdNRRx2l9PT01h9UMxq6Uwp0rPvWL1qWJcuyQvoBXyRMmTJFo0eP1n/+85+AXS6VlJTolVdeafKL9v2JxevV7mON9jGGG38k3gPvv/++LMvSiBEjlJyc3GR5uKUHDc4++2y1bdtWb7zxhnr06NGkS7N9GWP097//PeCyhtH+QtGxY0f/D80GDBjgn79x40b/6GQN3ZYhATjXRS4QGbt37zZ33HGHv7Pz6dOnNxo4oDnr16/3r1dcXNxk+aOPPmokmT59+jTZ5tatW43P5zN9+vQxK1eu9M9fu3atGT16tPnwww8bPb+hs/+MjIyAnZfv67vvvvPHtW7duqBx9e3b11RVVTVZfu655xpJTTpDN6Z+IIUjjzzSjBgxwmzYsME//5tvvjFHHHGEOeOMM0x5eXmT9bZt22aGDBliunTpYpYtW+af/+abb5pjjjnGjBkzxt+R/W233WbefffdZo/xyiuvNJLMkiVLbDkXgV6jN99806SmppqsrCz/CEt79uwxc+bMMaNHjzYXXHCBkWQ++ugjM2/ePHPzzTeHvN/WvAb7bnvf18AYY7Zv326OPvpok5WVZZ577jn//O+//96MHTu20UhRoQj1em0YLESS+fTTTwNuc3/Pae44W3Os+9teqMcYzrXVmvh/qaXvgZa66qqrjCQza9asgMsHDhwY9FhDNXnyZCPJFBUVBX3O999/bySZdu3ambvuusvU1tYaY+rv2bNmzTKZmZlBr61g7rvvPtO3b1+zdevWRvMvvvhiI8mMHz++VaOxwZ1IahEXVqxYYXr37m3atWtnkpOT/R9MDY+kpCSTm5trevXqZV5++eUm62/evNn079/fpKWl+dfxer2mb9++ZsWKFeaVV14xvXr1Mh6Px788IyPDHHrooY22U11dbf71r3+ZYcOGmYEDB5qjjjrKTJw40XzxxReNYu3bt6/xer3+bXk8HtOzZ09z//337zeulJSUZuPKysoyAwYMMMYY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AADRY0tLbTBr167V3LlzNX/+fPXs2VNTpkzRGWecYWtfstu2bdOQIUN088036/zzzw/6PFpqERW7d0t//nP99F//KqWmOhsPAAAuFkpLbUST2n0VFxdr7ty5WrBggY4++mhNmTJFJ598spKTk1u9zd27d+uEE07QBRdcoHPPPTekdRkmFxHBMLkAANgm6uUHLdFQivDtt9/q3HPP1fz589WnTx9Nnz5dxcXFrdrm9OnTmyS0TzzxhF0hAwAAwCWiPvhCcnKyTj75ZD311FNavXq1jjnmGD366KMhb+fee+/VkCFDGiW0lZWVWrVqlY3RAgAAwA2iVn5gp7feekvnn3++Ro8e3Wj+zz//rN/97neaPn36frdB+QEigvIDAABsE0q+FnI/tcFYliWvt/HmvvnmGy1fvlzZ2dkaPnx40J4JQjVp0iTt3LlTc+fObbLs+uuvt2UfAAAAcA/byg9OOOGEJvOysrLUvXt3GWN0/fXXB0xCW6OkpETGmICPMWPG2LIPAAAAuIdtLbWBqhg6d+6szp07S5J+97vfafTo0ZoyZYpduwQAAAAk2ZjUejyeZpcXFxfr559/tmt3QGxq21b68su90wAAICpandSeccYZ+u6771RWViZJ+umnn/SrX/0q4HPLyspUUlKim2++ubW7A9whKUkaONDpKAAASDitTmpffPFF7d69W88//7yuvvpqtWnTRj169Aj43Pbt22v8+PE677zzWh0oAAAAEExY5Qepqak655xz1LFjR91+++1atGiRXXEB7rR7t/S3v9VP33ADw+QCABAlttTUjhw5Up9//rkdmwLcrbZWuuWW+ulrryWpBQAgSmzp0svr9eqqq66yY1MAHGRZlgoKCjRp0iQVFBTIsiynQwIAoEVs6/2gJQoKCjRjxoxo7hJACAoLC5Wfny/LslRUVCRJvGcBAK7QqpZaY4yqq6tDWqeqqkr33ntva3YHIEqKi4tlWZZyc3NlWZaKi4udDgkAgBZpVVI7YsQI9e3b15/Y/vjjj0pOTm72kZmZqU2bNtkaPAB7+Xw+eb1elZSUyOv1yufzOR0SAAAt0qryg++++047duxQZWWl2rRpo/bt28sYo6OPPlr9+vULuE55eblefPHFsIIFEFl5eXmS6ltsfT6f//8AAMS6ViW17733nnbu3KkDDzxQkpSSkqL27dtryZIlSkoK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qszgwYPN//zP/0Th6MITzrlpyXG79boJ57w0uPzyy40k88477zRZ5uZrZl8+n88MHTq0yfxEvdfsK9RzE+/3mn2Fem7i+V7zS6GemwbxeL9pyXvCjfcauvRqgW7dumnhwoXKz8/X+++/r23btikjI0MPP/yw/znt27dXu3bt1K1bt5DXbclzYlU452bSpEnauXOn5s6d22S7119/vSTp2GOPVUVFhc455xylp6drx44duuiiizR9+vTIHpgNwjk3LTlut1434ZyXBocccogOOugg9e/fv8kyN18zGzZs0MUXX6z169dr7dq1kqTevXurd+/eevDBB9WrV6+EvdeEc27i/V4TzrmJ53uNFN65aRCP95uWvCfceK/xGGNMRPcAAAAARBg1tQAAAHA9kloAAAC4HkktAAAAXI+kFgAAAK5HUgsAAADXI6kFAACA65HUAgAAwPVIagEAAOB6JLUAAABwPZJaAIgTq1at0tFHH62+ffsqKSlJHo9HSUlJGjx4sN5//32nwwOAiGKYXACIQ48++qguvPBCTZo0SfPnz3c6HACIOFpqASAOHXjggZKkNm3aOBwJAEQHSS0AAABcj6QWAAAArkdSCwAAANcjqQUAAIDrkdQCAADA9UhqAQAA4HoktQAAAHA9kloAcLmrr75aY8aM0ZYtW5wOBQAcQ1ILAC62bds2FRQUaOHChXrmmWf882trayVJKSkpToUGAFHldToAAEDrHXDAAUpPT1dmZqbGjBnjn79y5UpJ0hFHHOFUaAAQVR5jjHE6CABA6+Xn52vnzp266667lJKSorVr18rn86lXr15asmSJ0tPTnQ4RACKOpBYAXM4Yo3vvvVfPPvusvF6vdu7cqQkTJuj6669XZmam0+EBQFSQ1AIAAMD1+KEYAAAAXI+kFgAAAK5HUgsAAADXI6kFAACA65HUAgAAwPVIagEAAOB6JLUAAABwPZJaAAAAuB5JLQAAAFyPpBYAAACuR1ILAAAA1yOpBQAAgOuR1AIAAMD1/h+q1LH2sPbFUQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Thermodynamic efficiency\n", + "plt.figure(figsize=(8, 6)) # Define the figure size\n", + "plt.scatter(Js, result_eta,s=5, color='k', alpha=0.9);\n", + "plt.axvline(x=CRITICAL_VALUE, color='r', linestyle='--', label='Indicates $p_c$');\n", + "plt.title(r'Thermodynamic efficiency $\\eta$ vs J');\n", + "plt.ylabel(r'$\\eta$ [bit/joule]');\n", + "plt.xlabel('J');\n", + "plt.savefig('eta_v_J.png', dpi=300) # dpi=300 for high resolution" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "22d7593e", + "metadata": {}, + "outputs": [], + "source": [ + "# Export data \n", + "combined_data = {\n", + " 'L' : L,\n", + " 'time' : time,\n", + " 'Js' : Js.tolist(),\n", + " 'sampleSize' : sampleSize,\n", + " 'subSample' : subSample,\n", + " 'numSims' : numSims,\n", + " 'bias' : bias,\n", + " 'absolute_m' : absolute_m,\n", + " 'theta_star' : theta_star,\n", + " 'threshold' : threshold,\n", + " 'pred_info' : pred_info.tolist(),\n", + " 'sens_entp' : sens_entp.tolist(),\n", + " 'empw_vals' : empw_vals.tolist(),\n", + " 'free_engy' : free_engy.tolist(),\n", + " 'cnfg_entp' : cnfg_entp.tolist(),\n", + " 'avrg_magt' : avrg_magt.tolist()\n", + "}\n", + "\n", + "# Save combined data to a JSON file\n", + "with open('output.json', 'w') as json_file:\n", + " json.dump(combined_data, json_file)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "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.11.5" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +}