diff --git a/.github/workflows/python-package.yml b/.github/workflows/python-package.yml index 744e9d54..184fe37b 100644 --- a/.github/workflows/python-package.yml +++ b/.github/workflows/python-package.yml @@ -15,7 +15,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.10", "3.11", "3.12"] + python-version: ["3.11", "3.12"] steps: - uses: actions/checkout@v2 @@ -27,11 +27,11 @@ jobs: run: | python -m pip install --upgrade pip python -m pip install flake8 pytest - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + python -m pip install -e . - name: Lint with flake8 run: | # exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics - name: Test with pytest run: | - pytest test + pytest test \ No newline at end of file diff --git a/README.md b/README.md index 4b0411a8..cb54b352 100644 --- a/README.md +++ b/README.md @@ -120,8 +120,7 @@ If you would like to contribute to this repo, we recommend using venv and pip cd python3 -m venv env source env/bin/activate -pip install -r requirements.txt -pip install -e ./ # This will install pymdp as a local dev package +pip install -e . # This will install pymdp as a local dev package ``` You should then be able to run tests locally with `pytest` diff --git a/docs/env.rst b/docs/env.rst index 93b1b5bd..076361c0 100644 --- a/docs/env.rst +++ b/docs/env.rst @@ -19,6 +19,6 @@ same general usage as above. pymdp.envs.GridWorldEnv pymdp.envs.DGridWorldEnv - pymdp.envs.VisualForagingEnv + pymdp.envs.SceneConstruction pymdp.envs.TMazeEnv pymdp.envs.TMazeEnvNullOutcome diff --git a/examples/A_matrix_demo.ipynb b/examples/A_matrix_demo.ipynb deleted file mode 100644 index 3bd9af37..00000000 --- a/examples/A_matrix_demo.ipynb +++ /dev/null @@ -1,261 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Generative Model Demo: Constructing a simple likelihood model \n", - "This demo notebook provides a walk-through of how to build a simple A matrix (or likelihood mapping) that encodes an aegnt's beliefs about how hidden states 'cause' or probabilistically relate to observations" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Imports\n", - "\n", - "First, import `pymdp` and the modules we'll need." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import sys\n", - "import pathlib\n", - "\n", - "import numpy as np\n", - "import itertools\n", - "import pandas as pd\n", - "\n", - "path = pathlib.Path(os.getcwd())\n", - "module_path = str(path.parent) + '/'\n", - "sys.path.append(module_path)\n", - "\n", - "import pymdp.utils as utils\n", - "from pymdp.utils import create_A_matrix_stub, read_A_matrix\n", - "from pymdp.algos import run_vanilla_fpi" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## The world (as represented by the agent's generative model)\n", - "\n", - "### Hidden states\n", - "\n", - "We assume the agent's \"represents\" (this should make you think: generative _model_ , not _process_ ) its environment using two latent variables that are statistically independent of one another - we can thus represent them using two _hidden state factors._\n", - "\n", - "We refer to these two hidden state factors are `DID_IT_RAIN` and `WAS_SPRINKLER_ON`. \n", - "\n", - "#### 1. `DID_IT_RAIN`\n", - "The first factor is a binary variable representing whether or not it rained earlier today.\n", - "\n", - "#### 2. `WAS_SPRINKLER_ON`\n", - "\n", - "The second factor is a binary variable representing whether or not the sprinkler was on or off earlier today.\n", - "\n", - "### Observations\n", - "\n", - "The agent believes that these two hidden states probabilistically relate to two observation modalities, i.e. two independent 'sensory channels', which we can call `GRASS_OBSERVATION` and `WEATHER_OBSERVATION`. \n", - "\n", - "#### 1. `GRASS_OBSERVATION`\n", - "The first modality is a binary variable representing the agent's observation (e.g. via vision, for instance) of the grass being wet or being dry.\n", - "\n", - "#### 2. `WEATHER_OBSERVATION`\n", - "\n", - "The second modality is a ternary (3-valued) variable representing the agent's observation of the state of the weather, e.g. by looking at the sky. In this example, it can either look `clear`, `rainy`, or `cloudy`\n" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "model_labels = {\n", - " \"observations\": {\n", - " \"grass_observation\": [\n", - " \"wet\",\n", - " \"dry\" \n", - " ],\n", - " \"weather_observation\": [\n", - " \"clear\",\n", - " \"rainy\",\n", - " \"cloudy\"\n", - " ]\n", - " },\n", - " \"states\": {\n", - " \"did_it_rain\": [\"rained\", \"did_not_rain\"],\n", - " \"was_sprinkler_on\": [\"on\", \"off\"],\n", - " },\n", - " }\n", - "\n", - "num_obs, _, n_states, n_factors = utils.get_model_dimensions_from_labels(model_labels)\n", - "\n", - "read_from_excel = True\n", - "pre_specified_excel = True\n", - "\n", - "A_stub = create_A_matrix_stub(model_labels)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Option 1. Write the empty A matrix stub to an excel file, fill it out separately (e.g. manually in excel, and then read it back into memory). Remember, these represent the agent's generative model, not the true probabilities that relate states to observations. So you can think of these as the agent's personal/subjective 'assumptions' about how hidden states relate to observations." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if read_from_excel:\n", - " ## Option 1: fill out A matrix 'offline' (e.g. in an excel spreadsheet)\n", - "\n", - " excel_dir = 'tmp_dir'\n", - " if not os.path.exists(excel_dir):\n", - " os.mkdir(excel_dir)\n", - "\n", - " excel_path = os.path.join(excel_dir, 'my_a_matrix.xlsx')\n", - "\n", - " if not pre_specified_excel:\n", - " A_stub.to_excel(excel_path)\n", - " print(f'Go fill out the A matrix in {excel_path} and then continue running this code\\n')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "After you've filled out the Excel sheet separately (e.g. opening up Microsoft Excel and filling out the cells, you can read it back into memory)" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if read_from_excel:\n", - " A_stub = read_A_matrix(excel_path, n_factors)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Option 2. Fill out the A matrix using the desired probabilities. Remember, these represent the agent's generative model, not the true probabilities that relate states to observations. So you can think of these as the agent's personal/subjective 'assumptions' about how hidden states relate to observations." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "if not read_from_excel:\n", - " A_stub.loc[('grass_observation','wet'),('rained', 'on')] = 1.0\n", - "\n", - " A_stub.loc[('grass_observation','wet'),('rained', 'off')] = 0.7\n", - " A_stub.loc[('grass_observation','dry'),('rained', 'off')] = 0.3\n", - "\n", - " A_stub.loc[('grass_observation','wet'),('did_not_rain', 'on')] = 0.5\n", - " A_stub.loc[('grass_observation','dry'),('did_not_rain', 'on')] = 0.5\n", - "\n", - " A_stub.loc[('grass_observation','dry'),('did_not_rain', 'off')] = 1.0\n", - "\n", - " A_stub.loc['weather_observation','rained'] = np.tile(np.array([0.1, 0.65, 0.25]).reshape(-1,1), (1,2)) \n", - "\n", - " A_stub.loc[('weather_observation'),('did_not_rain')] = np.tile(np.array([0.9, 0.05, 0.05]).reshape(-1,1), (1,2)) \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Now we can use a utility function `convert_stub_to_ndarray` to convert the human-readable A matrix into the multi-dimensional tensor form needed by `pymdp` to achieve things like inference and action selection" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "A = utils.convert_A_stub_to_ndarray(A_stub, model_labels)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Sample a random observation" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "obs_idx = [np.random.randint(o_dim) for o_dim in num_obs]\n", - "# obs_idx = [0, 1] # wet and rainy\n", - "\n", - "observation = utils.obj_array_zeros(num_obs)\n", - "\n", - "for g, modality_name in enumerate(model_labels['observations'].keys()):\n", - " observation[g][obs_idx[g]] = 1.0\n", - " print('%s: %s'%(modality_name, model_labels['observations'][modality_name][obs_idx[g]]))" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Given the observation and your A matrix, perform inference to optimize a simple posterior belief about the state of the world " - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [ - "qs = run_vanilla_fpi(A, observation, num_obs, n_states, prior=None, num_iter=10, dF=1.0, dF_tol=0.001)\n", - "\n", - "print('Belief that it rained: %.2f'%(qs[0][0]))\n", - "print('Belief that the sprinkler was on: %.2f'%(qs[1][0]))" - ] - } - ], - "metadata": { - "interpreter": { - "hash": "43ee964e2ad3601b7244370fb08e7f23a81bd2f0e3c87ee41227da88c57ff102" - }, - "kernelspec": { - "display_name": "Python 3.7.10 64-bit ('pymdp_env': conda)", - "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.7.10" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/A_matrix_demo.py b/examples/A_matrix_demo.py deleted file mode 100644 index c3c0531b..00000000 --- a/examples/A_matrix_demo.py +++ /dev/null @@ -1,97 +0,0 @@ -# %% This notebook is supposed to be stepped through cell-by-cell, like a jupyter notebook - -import os -import sys -import pathlib - -import numpy as np -import itertools -import pandas as pd - -path = pathlib.Path(os.getcwd()) -module_path = str(path.parent) + '/' -sys.path.append(module_path) - -from pymdp import utils -from pymdp.utils import create_A_matrix_stub, read_A_matrix -from pymdp.algos import run_vanilla_fpi - -# %% Create an empty A matrix -model_labels = { - "observations": { - "grass_observation": [ - "wet", - "dry" - ], - "weather_observation": [ - "clear", - "rainy", - "cloudy" - ] - }, - "states": { - "did_it_rain": ["rained", "did_not_rain"], - "was_sprinkler_on": ["on", "off"], - }, - } - -num_obs, _, n_states, n_factors = utils.get_model_dimensions_from_labels(model_labels) - -read_from_excel = True -pre_specified_excel = True - -A_stub = create_A_matrix_stub(model_labels) - -if read_from_excel: - ## Option 1: fill out A matrix 'offline' (e.g. in an excel spreadsheet) - - excel_dir = 'examples/tmp_dir' - if not os.path.exists(excel_dir): - os.mkdir(excel_dir) - - excel_path = os.path.join(excel_dir, 'my_a_matrix.xlsx') - - if not pre_specified_excel: - A_stub.to_excel(excel_path) - print(f'Go fill out the A matrix in {excel_path} and then continue running this code\n') - -if read_from_excel: - - A_stub = read_A_matrix(excel_path, n_factors) - -if not read_from_excel: - ## Option 2: fill out the A matrix here in Python, using our knowledge of the dependencies in the system and pandas multindexing assignments - - A_stub.loc[('grass_observation','wet'),('rained', 'on')] = 1.0 - - A_stub.loc[('grass_observation','wet'),('rained', 'off')] = 0.7 - A_stub.loc[('grass_observation','dry'),('rained', 'off')] = 0.3 - - A_stub.loc[('grass_observation','wet'),('did_not_rain', 'on')] = 0.5 - A_stub.loc[('grass_observation','dry'),('did_not_rain', 'on')] = 0.5 - - A_stub.loc[('grass_observation','dry'),('did_not_rain', 'off')] = 1.0 - - A_stub.loc['weather_observation','rained'] = np.tile(np.array([0.1, 0.65, 0.25]).reshape(-1,1), (1,2)) - - A_stub.loc[('weather_observation'),('did_not_rain')] = np.tile(np.array([0.9, 0.05, 0.05]).reshape(-1,1), (1,2)) - -# %% now convert the A matrix into a sequence of appopriately shaped numpy arrays - -A = utils.convert_A_stub_to_ndarray(A_stub, model_labels) - -obs_idx = [np.random.randint(o_dim) for o_dim in num_obs] -# obs_idx = [0, 1] # wet and rainy - -observation = utils.obj_array_zeros(num_obs) - -for g, modality_name in enumerate(model_labels['observations'].keys()): - observation[g][obs_idx[g]] = 1.0 - print('%s: %s'%(modality_name, model_labels['observations'][modality_name][obs_idx[g]])) - -qs = run_vanilla_fpi(A, observation, num_obs, n_states, prior=None, num_iter=10, dF=1.0, dF_tol=0.001) - -print('Belief that it rained: %.2f'%(qs[0][0])) -print('Belief that the sprinkler was on: %.2f'%(qs[1][0])) - -# %% diff --git a/examples/advanced/complex_action_dependency.ipynb b/examples/advanced/complex_action_dependency.ipynb new file mode 100644 index 00000000..fd16fe33 --- /dev/null +++ b/examples/advanced/complex_action_dependency.ipynb @@ -0,0 +1,302 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Complex action dependencies\n", + "\n", + "In this notebook, we will show some examples of how to specify and run agents with complex action dependencies. Complex action dependencies refer to situations where a state variables depends on multiple actions or no action. These state transitions tensors have shapes of the form: `[state_dim, *prev_state_dims, *prev_action_dims]`. \n", + "\n", + "The general strategy for dealing with this is to flatten the `prev_action_dims` while initializing the agent so that the new B tensor shapes are `[state_dim, *prev_state_dims, math.prod(prev_action_dims)]`. If a state has no action dependency, the new B tensor will have shape `[state_dim, *prev_state_dims, 1]` where 1 stands for a dummy action. All computations will be done in the flattened B tensors and actions will be sampled in the flattened action dimensions. After a flattened action is sampled, one can convert it back to the original action dimensions by calling `agent.decode_multi_actions`. To flatten multi actions, for example from collected data, one can call `agent.encode_multi_actions`." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from pprint import pprint\n", + "import itertools\n", + "import numpy as np\n", + "from jax import numpy as jnp\n", + "from jax import tree_util as jtu\n", + "\n", + "from pymdp.jax.agent import Agent\n", + "from pymdp.jax import distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Multiple action dependencies\n", + "In this example, some states depend on multiple actions. " + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A_dependencies [[0]]\n", + "B_dependencies [[0], [1]]\n", + "B_action_dependencies [[0, 1], [0]]\n", + "original control dims [2, 3]\n", + "flattened control dims [6, 2]\n", + "original B shapes [(4, 4, 2, 3), (4, 4, 2)]\n", + "flattened B shapes [(1, 4, 4, 6), (1, 4, 4, 2)]\n", + "B normalized [Array(True, dtype=bool), Array(True, dtype=bool)]\n", + "B flat normalized [Array(True, dtype=bool), Array(True, dtype=bool)]\n", + "\n", + "\n", + "prior\n", + "[Array([[0. , 0.25, 0.25, 0.5 ]], dtype=float32),\n", + " Array([[0. , 0.25, 0.25, 0.5 ]], dtype=float32)]\n", + "post\n", + "[Array([[[0.5 , 0.12, 0.12, 0.25]]], dtype=float32),\n", + " Array([[[0. , 0.25, 0.25, 0.5 ]]], dtype=float32)]\n", + "action\n", + "Array([[0, 0]], dtype=int32)\n", + "action_multi\n", + "Array([[0, 0]], dtype=int32)\n", + "action_reconstruct\n", + "Array([[0, 0]], dtype=int32)\n" + ] + } + ], + "source": [ + "model = {\n", + " \"observations\": {\n", + " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", + " },\n", + " \"controls\": {\"c1\": {\"elements\": [\"up\", \"down\"]}, \"c2\": {\"elements\": [\"left\", \"right\", \"stay\"]}},\n", + " \"states\": {\n", + " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"], \"controlled_by\": [\"c1\", \"c2\"]},\n", + " \"s2\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s2\"], \"controlled_by\": [\"c1\"]},\n", + " },\n", + "}\n", + "\n", + "B_action_dependencies = [\n", + " [list(model[\"controls\"].keys()).index(i) for i in s[\"controlled_by\"]] \n", + " for s in model[\"states\"].values()\n", + "]\n", + "num_controls = [len(c[\"elements\"]) for c in model[\"controls\"].values()]\n", + "\n", + "As, Bs = distribution.compile_model(model)\n", + "\n", + "# initialize tensor values\n", + "As[0][\"A\", \"A\"] = 1.0\n", + "As[0][\"B\", \"B\"] = 1.0\n", + "As[0][\"C\", \"C\"] = 1.0\n", + "As[0][\"D\", \"D\"] = 1.0\n", + "\n", + "for i, state in enumerate(model[\"states\"].keys()):\n", + " controls = list(itertools.product(*[\n", + " model[\"controls\"][c][\"elements\"] for c in model[\"states\"][state][\"controlled_by\"]\n", + " ]))\n", + " for control in controls:\n", + " Bs[i][*[\"B\", \"A\"], *control] = 1.0\n", + " Bs[i][*[\"C\", \"B\"], *control] = 1.0\n", + " Bs[i][*[\"D\", \"C\"], *control] = 1.0\n", + " Bs[i][*[\"D\", \"D\"], *control] = 1.0\n", + "\n", + "agent = Agent(\n", + " As, Bs,\n", + " B_action_dependencies=B_action_dependencies,\n", + " num_controls=num_controls,\n", + ")\n", + "\n", + "# dummy history\n", + "action = agent.policies[np.random.randint(0, len(agent.policies))]\n", + "observation = [np.random.randint(0, d, size=(1, 1)) for d in agent.num_obs]\n", + "qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D)\n", + "\n", + "prior, _ = agent.infer_empirical_prior(action, qs_hist)\n", + "qs = agent.infer_states(observation, None, prior, None)\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "action_multi = agent.decode_multi_actions(action)\n", + "action_reconstruct = agent.encode_multi_actions(action_multi)\n", + "\n", + "print(\"A_dependencies\", agent.A_dependencies)\n", + "print(\"B_dependencies\", agent.B_dependencies)\n", + "print(\"B_action_dependencies\", agent.B_action_dependencies)\n", + "print(\"original control dims\", agent.num_controls_multi)\n", + "print(\"flattened control dims\", agent.num_controls)\n", + "print(\"original B shapes\", [a.data.shape for a in Bs])\n", + "print(\"flattened B shapes\", [a.shape for a in agent.B])\n", + "print(\"B normalized\", [jnp.isclose(a.data.sum(0), 1.).all() for a in Bs])\n", + "print(\"B flat normalized\", [jnp.isclose(a.sum(1), 1.).all() for a in agent.B])\n", + "\n", + "print(\"\\n\")\n", + "print(\"prior\")\n", + "pprint([p.round(2) for p in prior])\n", + "print(\"post\")\n", + "pprint([p.round(2) for p in qs])\n", + "print(\"action\")\n", + "pprint(action)\n", + "print(\"action_multi\")\n", + "pprint(action_multi)\n", + "print(\"action_reconstruct\")\n", + "pprint(action_reconstruct)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## No action dependency\n", + "\n", + "In this example, some states do not depend on any action." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A_dependencies [[0]]\n", + "B_dependencies [[0], [1]]\n", + "B_action_dependencies [[0, 1], []]\n", + "original control dims [2, 3]\n", + "flattened control dims [6, 1]\n", + "original B shapes [(4, 4, 2, 3), (4, 4)]\n", + "flattened B shapes [(1, 4, 4, 6), (1, 4, 4, 1)]\n", + "B normalized [Array(True, dtype=bool), Array(True, dtype=bool)]\n", + "B flat normalized [Array(True, dtype=bool), Array(True, dtype=bool)]\n", + "\n", + "\n", + "prior\n", + "[Array([[0. , 0.25, 0.25, 0.5 ]], dtype=float32),\n", + " Array([[0. , 0.25, 0.25, 0.5 ]], dtype=float32)]\n", + "post\n", + "[Array([[[0., 0., 1., 0.]]], dtype=float32),\n", + " Array([[[0. , 0.25, 0.25, 0.5 ]]], dtype=float32)]\n", + "action\n", + "Array([[0, 0]], dtype=int32)\n", + "action_multi\n", + "Array([[0, 0]], dtype=int32)\n", + "action_reconstruct\n", + "Array([[0, 0]], dtype=int32)\n" + ] + } + ], + "source": [ + "model = {\n", + " \"observations\": {\n", + " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", + " },\n", + " \"controls\": {\"c1\": {\"elements\": [\"up\", \"down\"]}, \"c2\": {\"elements\": [\"left\", \"right\", \"stay\"]}},\n", + " \"states\": {\n", + " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"], \"controlled_by\": [\"c1\", \"c2\"]},\n", + " \"s2\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s2\"], \"controlled_by\": []},\n", + " },\n", + "}\n", + "\n", + "B_action_dependencies = [\n", + " [list(model[\"controls\"].keys()).index(i) for i in s[\"controlled_by\"]] \n", + " for s in model[\"states\"].values()\n", + "]\n", + "num_controls = [len(c[\"elements\"]) for c in model[\"controls\"].values()]\n", + "\n", + "As, Bs = distribution.compile_model(model)\n", + "\n", + "# initialize tensor values\n", + "As[0][\"A\", \"A\"] = 1.0\n", + "As[0][\"B\", \"B\"] = 1.0\n", + "As[0][\"C\", \"C\"] = 1.0\n", + "As[0][\"D\", \"D\"] = 1.0\n", + "\n", + "for i, state in enumerate(model[\"states\"].keys()):\n", + " controls = list(itertools.product(*[\n", + " model[\"controls\"][c][\"elements\"] for c in model[\"states\"][state][\"controlled_by\"]\n", + " ]))\n", + " for control in controls:\n", + " Bs[i][*[\"B\", \"A\"], *control] = 1.0\n", + " Bs[i][*[\"C\", \"B\"], *control] = 1.0\n", + " Bs[i][*[\"D\", \"C\"], *control] = 1.0\n", + " Bs[i][*[\"D\", \"D\"], *control] = 1.0\n", + "\n", + "agent = Agent(\n", + " As, Bs,\n", + " B_action_dependencies=B_action_dependencies,\n", + " num_controls=num_controls,\n", + ")\n", + "\n", + "# dummy history\n", + "action = agent.policies[np.random.randint(0, len(agent.policies))]\n", + "observation = [np.random.randint(0, d, size=(1, 1)) for d in agent.num_obs]\n", + "qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D)\n", + "\n", + "prior, _ = agent.infer_empirical_prior(action, qs_hist)\n", + "qs = agent.infer_states(observation, None, prior, None)\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "action_multi = agent.decode_multi_actions(action)\n", + "action_reconstruct = agent.encode_multi_actions(action_multi)\n", + "\n", + "print(\"A_dependencies\", agent.A_dependencies)\n", + "print(\"B_dependencies\", agent.B_dependencies)\n", + "print(\"B_action_dependencies\", agent.B_action_dependencies)\n", + "print(\"original control dims\", agent.num_controls_multi)\n", + "print(\"flattened control dims\", agent.num_controls)\n", + "print(\"original B shapes\", [a.data.shape for a in Bs])\n", + "print(\"flattened B shapes\", [a.shape for a in agent.B])\n", + "print(\"B normalized\", [jnp.isclose(a.data.sum(0), 1.).all() for a in Bs])\n", + "print(\"B flat normalized\", [jnp.isclose(a.sum(1), 1.).all() for a in agent.B])\n", + "\n", + "print(\"\\n\")\n", + "print(\"prior\")\n", + "pprint([p.round(2) for p in prior])\n", + "print(\"post\")\n", + "pprint([p.round(2) for p in qs])\n", + "print(\"action\")\n", + "pprint(action)\n", + "print(\"action_multi\")\n", + "pprint(action_multi)\n", + "print(\"action_reconstruct\")\n", + "pprint(action_reconstruct)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pymdp", + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/testing_large_latent_spaces.ipynb b/examples/advanced/testing_large_latent_spaces.ipynb similarity index 100% rename from examples/testing_large_latent_spaces.ipynb rename to examples/advanced/testing_large_latent_spaces.ipynb diff --git a/examples/agent_demo.py b/examples/agent_demo.py deleted file mode 100644 index e921f933..00000000 --- a/examples/agent_demo.py +++ /dev/null @@ -1,78 +0,0 @@ -import numpy as np -from pymdp.agent import Agent -from pymdp import utils -from pymdp.maths import softmax -import copy - -obs_names = ["state_observation", "reward", "decision_proprioceptive"] -state_names = ["reward_level", "decision_state"] -action_names = ["uncontrolled", "decision_state"] - -num_obs = [3, 3, 3] -num_states = [2, 3] -num_modalities = len(num_obs) -num_factors = len(num_states) - -A = utils.obj_array_zeros([[o] + num_states for _, o in enumerate(num_obs)]) - -A[0][:, :, 0] = np.ones( (num_obs[0], num_states[0]) ) / num_obs[0] -A[0][:, :, 1] = np.ones( (num_obs[0], num_states[0]) ) / num_obs[0] -A[0][:, :, 2] = np.array([[0.8, 0.2], [0.0, 0.0], [0.2, 0.8]]) - -A[1][2, :, 0] = np.ones(num_states[0]) -A[1][0:2, :, 1] = softmax(np.eye(num_obs[1] - 1)) # bandit statistics (mapping between reward-state (first hidden state factor) and rewards (Good vs Bad)) -A[1][2, :, 2] = np.ones(num_states[0]) - -# establish a proprioceptive mapping that determines how the agent perceives its own `decision_state` -A[2][0,:,0] = 1.0 -A[2][1,:,1] = 1.0 -A[2][2,:,2] = 1.0 - -control_fac_idx = [1] -B = utils.obj_array(num_factors) -for f, ns in enumerate(num_states): - B[f] = np.eye(ns) - if f in control_fac_idx: - B[f] = B[f].reshape(ns, ns, 1) - B[f] = np.tile(B[f], (1, 1, ns)) - B[f] = B[f].transpose(1, 2, 0) - else: - B[f] = B[f].reshape(ns, ns, 1) - -C = utils.obj_array_zeros(num_obs) -C[1][0] = 1.0 # put a 'reward' over first observation -C[1][1] = -2.0 # put a 'punishment' over first observation -# this implies that C[1][2] is 'neutral' - -agent = Agent(A=A, B=B, C=C, control_fac_idx=[1]) - -# initial state -T = 5 -o = [2, 2, 0] -s = [0, 0] - -# transition/observation matrices characterising the generative process -A_gp = copy.deepcopy(A) -B_gp = copy.deepcopy(B) - -for t in range(T): - - for g in range(num_modalities): - print(f"{t}: Observation {obs_names[g]}: {o[g]}") - - qx = agent.infer_states(o) - - for f in range(num_factors): - print(f"{t}: Beliefs about {state_names[f]}: {qx[f]}") - - agent.infer_policies() - action = agent.sample_action() - - for f, s_i in enumerate(s): - s[f] = utils.sample(B_gp[f][:, s_i, int(action[f])]) - - for g, _ in enumerate(o): - o[g] = utils.sample(A_gp[g][:, s[0], s[1]]) - - print(np.argmax(s)) - print(f"{t}: Action: {action} / State: {s}") diff --git a/examples/api/distribution_api.ipynb b/examples/api/distribution_api.ipynb new file mode 100644 index 00000000..e1c57c01 --- /dev/null +++ b/examples/api/distribution_api.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Named Distributions API\n", + "\n", + "In this notebook we'll give some example uses of the named distribution api\n", + "designed for easier querying and construction of complicated A and B tensors.\n", + "\n", + "The distribution objects allow for giving semantically sensible names to axes\n", + "and indices within a tensor. These can be made interactively in code or an \n", + "entire set of A and B tensors can be compiled from a structured model\n", + "description.\n", + "\n", + "Below is an example of how to build a distribution from code for a model\n", + "conisting of a single observation modality \"observation\" consiting of the\n", + "possible observations {A, B, C, D}. A hidden state \"state\" consisting of the\n", + "values {A, B, C, D} and controls \"control\" {up, down}." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import jax.tree_util as jtu\n", + "from jax import numpy as jnp\n", + "\n", + "np.set_printoptions(precision=2, suppress=True)\n", + "\n", + "from pymdp.jax.agent import Agent\n", + "from pymdp.jax.distribution import Distribution, compile_model\n", + "\n", + "observations = [\"A\", \"B\", \"C\", \"D\"]\n", + "states = [\"A\", \"B\", \"C\", \"D\"]\n", + "controls = [\"up\", \"down\"]\n", + "\n", + "data = np.zeros((len(observations), len(states)))\n", + "A = Distribution({\"observations\": observations}, {\"states\": states}, data)\n", + "\n", + "A[\"A\", \"A\"] = 1.0 \n", + "A[\"B\", \"B\"] = 1.0\n", + "A[\"C\", \"C\"] = 1.0\n", + "A[\"D\", \"D\"] = 1.0\n", + "\n", + "data = np.zeros((len(states), len(states), len(controls)))\n", + "B = Distribution({\"states\": states}, {\"states\": states, \"controls\": controls}, data)\n", + "\n", + "B[\"B\", \"A\", \"up\"] = 1.0\n", + "B[\"C\", \"B\", \"up\"] = 1.0\n", + "B[\"D\", \"C\", \"up\"] = 1.0\n", + "B[\"D\", \"D\", \"up\"] = 1.0\n", + "\n", + "B[\"A\", \"A\", \"down\"] = 1.0\n", + "B[\"A\", \"B\", \"down\"] = 1.0\n", + "B[\"B\", \"C\", \"down\"] = 1.0\n", + "B[\"C\", \"D\", \"down\"] = 1.0\n", + "\n", + "\n", + "C = Distribution({\"observations\": observations})\n", + "C[\"D\"] = 1.0\n", + "\n", + "D = Distribution({\"states\": states})\n", + "D[\"A\"] = 1.0\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can use these A,B,C tensors to create an agent, and infer states and actions" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "goal state: D\n", + "initial state: A\n", + "action taken: up\n" + ] + } + ], + "source": [ + "agent = Agent([A], [B], [C], [D])\n", + "print(f\"goal state: {states[jnp.argmax(agent.C[0])]}\")\n", + "\n", + "# infer state given action and observation\n", + "action = jnp.array([1])\n", + "action = jnp.broadcast_to(action, (1, 1))\n", + "\n", + "observation = jnp.array([0])\n", + "observation = jnp.broadcast_to(observation, (1, 1))\n", + "\n", + "# qs needs a time dimension for infer_empirical_prior, so expand dims of D\n", + "qs_init = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D)\n", + "prior, _ = agent.update_empirical_prior(action, qs_init)\n", + "qs = agent.infer_states([observation], prior)\n", + "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "print(f\"action taken: {controls[action[0][0]]}\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Using configs\n", + "Alternatively you can use a model description to just generate the shape of the\n", + "A's and the B's in one go. " + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "goal state: D\n", + "initial state: A\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "action taken: up\n" + ] + } + ], + "source": [ + "model_description = {\n", + " \"observations\": {\n", + " \"o1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"]},\n", + " },\n", + " \"controls\": {\"c1\": {\"elements\": [\"up\", \"down\"]}},\n", + " \"states\": {\n", + " \"s1\": {\"elements\": [\"A\", \"B\", \"C\", \"D\"], \"depends_on\": [\"s1\"], \"controlled_by\": [\"c1\"]},\n", + " },\n", + "}\n", + "\n", + "model = compile_model(model_description)\n", + "\n", + "model.A[\"o1\"][\"A\", \"A\"] = 1.0\n", + "model.A[\"o1\"][\"B\", \"B\"] = 1.0\n", + "model.A[\"o1\"][\"C\", \"C\"] = 1.0\n", + "model.A[\"o1\"][\"D\", \"D\"] = 1.0\n", + "\n", + "model.B[\"s1\"][\"B\", \"A\", \"up\"] = 1.0\n", + "model.B[\"s1\"][\"C\", \"B\", \"up\"] = 1.0\n", + "model.B[\"s1\"][\"D\", \"C\", \"up\"] = 1.0\n", + "model.B[\"s1\"][\"D\", \"D\", \"up\"] = 1.0\n", + "\n", + "model.B[\"s1\"][\"A\", \"A\", \"down\"] = 1.0\n", + "model.B[\"s1\"][\"A\", \"B\", \"down\"] = 1.0\n", + "model.B[\"s1\"][\"B\", \"C\", \"down\"] = 1.0\n", + "model.B[\"s1\"][\"C\", \"D\", \"down\"] = 1.0\n", + "\n", + "model.C[\"o1\"][\"D\"] = 1.0\n", + "agent = Agent(**model, apply_batch=True)\n", + "print(f\"goal state: {states[jnp.argmax(agent.C[0])]}\")\n", + "\n", + "prior, _ = agent.update_empirical_prior(action, qs_init)\n", + "qs = agent.infer_states([observation], prior)\n", + "print(f\"initial state: {states[jnp.argmax(qs[0])]}\")\n", + "\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "print(f\"action taken: {controls[action[0][0]]}\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "model_description = {\n", + " \"observations\": {\n", + " \"temperature\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"operating_state\"]},\n", + " \"humidity\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"maintenance_state\"]},\n", + " \"pressure\": {\"elements\": [\"low\", \"medium\", \"high\", \"very high\"], \"depends_on\": [\"power_state\"]},\n", + " \"vibration\": {\n", + " \"elements\": [\"none\", \"low\", \"medium\", \"high\"],\n", + " \"depends_on\": [\"operating_state\", \"maintenance_state\"],\n", + " },\n", + " },\n", + " \"controls\": {\n", + " \"temperature_control\": {\"elements\": [\"off\", \"low\", \"medium\", \"high\"]},\n", + " \"humidity_control\": {\"elements\": [\"off\", \"low\", \"medium\", \"high\"]},\n", + " \"pressure_control\": {\"elements\": [\"off\", \"low\", \"medium\", \"high\"]},\n", + " },\n", + " \"states\": {\n", + " \"operating_state\": {\n", + " \"elements\": [\"idle\", \"running\", \"overload\"],\n", + " \"depends_on\": [\"operating_state\"],\n", + " \"controlled_by\": [\"temperature_control\"],\n", + " },\n", + " \"maintenance_state\": {\n", + " \"elements\": [\"regular\", \"alert\", \"critical\"],\n", + " \"depends_on\": [\"maintenance_state\"],\n", + " \"controlled_by\": [\"humidity_control\"],\n", + " },\n", + " \"power_state\": {\n", + " \"elements\": [\"low\", \"normal\", \"high\"],\n", + " \"depends_on\": [\"power_state\"],\n", + " \"controlled_by\": [\"pressure_control\"],\n", + " },\n", + " },\n", + "}\n", + "\n", + "model = compile_model(model_description)\n", + "\n", + "model.A[\"temperature\"][\"low\", \"idle\"] = 1.0\n", + "model.A[\"temperature\"][\"medium\", \"running\"] = 1.0\n", + "model.A[\"temperature\"][\"low\", \"overload\"] = 1.0\n", + "\n", + "model.A[\"humidity\"][\"low\", \"regular\"] = 1.0\n", + "model.A[\"humidity\"][\"low\", \"alert\"] = 1.0\n", + "model.A[\"humidity\"][\"high\", \"critical\"] = 1.0\n", + "\n", + "model.A[\"pressure\"][\"low\", \"low\"] = 1.0\n", + "model.A[\"pressure\"][\"medium\", \"low\"] = 1.0\n", + "model.A[\"pressure\"][\"high\", \"high\"] = 1.0\n", + "\n", + "model.A[\"vibration\"][\"low\", \"idle\", \"regular\"] = 1.0\n", + "model.A[\"vibration\"][\"medium\", \"running\", \"regular\"] = 1.0\n", + "model.A[\"vibration\"][\"high\", \"running\", \"critical\"] = 1.0\n", + "model.A[\"vibration\"][\"high\", \"overload\", \"alert\"] = 1.0\n", + "\n", + "model.B[\"operating_state\"][\"overload\", \"running\", \"medium\"] = 1.0\n", + "model.B[\"operating_state\"][\"overload\", \"overload\", \"high\"] = 1.0\n", + "model.B[\"operating_state\"][\"idle\", \"idle\", \"off\"] = 1.0\n", + "model.B[\"operating_state\"][\"idle\", \"running\", \"off\"] = 1.0\n", + "model.B[\"operating_state\"][\"running\", \"idle\", \"low\"] = 1.0\n", + "model.B[\"operating_state\"][\"running\", \"overload\", \"off\"] = 1.0\n", + "model.B[\"operating_state\"][\"running\", \"running\", \"off\"] = 1.0\n", + "\n", + "model.B[\"maintenance_state\"][\"alert\", \"regular\", \"low\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"alert\", \"critical\", \"off\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"alert\", \"alert\", \"off\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"critical\", \"alert\", \"medium\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"critical\", \"critical\", \"high\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"regular\", \"regular\", \"off\"] = 1.0\n", + "model.B[\"maintenance_state\"][\"regular\", \"alert\", \"off\"] = 1.0\n", + "\n", + "model.B[\"power_state\"][\"low\", \"low\", \"off\"] = 1.0\n", + "model.B[\"power_state\"][\"low\", \"normal\", \"off\"] = 1.0\n", + "model.B[\"power_state\"][\"normal\", \"high\", \"off\"] = 1.0\n", + "model.B[\"power_state\"][\"normal\", \"normal\", \"off\"] = 1.0\n", + "model.B[\"power_state\"][\"normal\", \"low\", \"low\"] = 1.0\n", + "model.B[\"power_state\"][\"high\", \"normal\", \"medium\"] = 1.0\n", + "model.B[\"power_state\"][\"high\", \"high\", \"high\"] = 1.0\n", + "\n", + "agent = Agent(**model, apply_batch=True)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pymdp", + "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.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/building_up_agent_loop.ipynb b/examples/building_up_agent_loop.ipynb deleted file mode 100644 index cdb45e55..00000000 --- a/examples/building_up_agent_loop.ipynb +++ /dev/null @@ -1,182 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import jax.numpy as jnp\n", - "import jax.tree_util as jtu\n", - "from jax import random as jr\n", - "from pymdp.jax.agent import Agent as AIFAgent\n", - "from pymdp.utils import random_A_matrix, random_B_matrix" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(2, 10, 5, 4)\n", - "[1 1]\n", - "(10, 3, 3, 3)\n", - "(10, 3, 3, 2)\n" - ] - } - ], - "source": [ - "def scan(f, init, xs, length=None, axis=0):\n", - " if xs is None:\n", - " xs = [None] * length\n", - " carry = init\n", - " ys = []\n", - " for x in xs:\n", - " carry, y = f(carry, x)\n", - " if y is not None:\n", - " ys.append(y)\n", - " \n", - " ys = None if len(ys) < 1 else jtu.tree_map(lambda *x: jnp.stack(x,axis=axis), *ys)\n", - "\n", - " return carry, ys\n", - "\n", - "def evolve_trials(agent, env, block_idx, num_timesteps, prng_key=jr.PRNGKey(0)):\n", - "\n", - " batch_keys = jr.split(prng_key, batch_size)\n", - " def step_fn(carry, xs):\n", - " actions = carry['actions']\n", - " outcomes = carry['outcomes']\n", - " beliefs = agent.infer_states(outcomes, actions, *carry['args'])\n", - " q_pi, _ = agent.infer_policies(beliefs)\n", - " actions_t = agent.sample_action(q_pi, rng_key=batch_keys)\n", - "\n", - " outcome_t = env.step(actions_t)\n", - " outcomes = jtu.tree_map(\n", - " lambda prev_o, new_o: jnp.concatenate([prev_o, jnp.expand_dims(new_o, -1)], -1), outcomes, outcome_t\n", - " )\n", - "\n", - " if actions is not None:\n", - " actions = jnp.concatenate([actions, jnp.expand_dims(actions_t, -2)], -2)\n", - " else:\n", - " actions = jnp.expand_dims(actions_t, -2)\n", - "\n", - " args = agent.update_empirical_prior(actions_t, beliefs)\n", - "\n", - " ### @ NOTE !!!!: Shape of policy_probs = (num_blocks, num_trials, batch_size, num_policies) if scan axis = 0, but size of `actions` will \n", - " ### be (num_blocks, batch_size, num_trials, num_controls) -- so we need to 1) swap axes to both to have the same first three dimensiosn aligned,\n", - " # 2) use the action indices (the integers stored in the last dimension of `actions`) to index into the policy_probs array\n", - " \n", - " # args = (pred_{t+1}, [post_1, post_{2}, ..., post_{t}])\n", - " # beliefs = [post_1, post_{2}, ..., post_{t}]\n", - " return {'args': args, 'outcomes': outcomes, 'beliefs': beliefs, 'actions': actions}, {'policy_probs': q_pi}\n", - "\n", - " \n", - " outcome_0 = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), env.step())\n", - " # qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, -2), agent.D) # add a time dimension to the initial state prior\n", - " init = {\n", - " 'args': (agent.D, None,),\n", - " 'outcomes': outcome_0, \n", - " 'beliefs': [],\n", - " 'actions': None\n", - " }\n", - " last, q_pis_ = scan(step_fn, init, range(num_timesteps), axis=1)\n", - "\n", - " return last, q_pis_, env\n", - "\n", - "def step_fn(carry, block_idx):\n", - " agent, env = carry\n", - " output, q_pis_, env = evolve_trials(agent, env, block_idx, num_timesteps)\n", - " args = output.pop('args')\n", - " output['beliefs'] = agent.infer_states(output['outcomes'], output['actions'], *args)\n", - " output.update(q_pis_)\n", - "\n", - " # How to deal with contiguous blocks of trials? Two options we can imagine: \n", - " # A) you use final posterior (over current and past timesteps) to compute the smoothing distribution over qs_{t=0} and update pD, and then pass pD as the initial state prior ($D = \\mathbb{E}_{pD}[qs_{t=0}]$);\n", - " # B) we don't assume that blocks 'reset time', and are really just adjacent chunks of one long sequence, so you set the initial state prior to be the final output (`output['beliefs']`) passed through\n", - " # the transition model entailed by the action taken at the last timestep of the previous block.\n", - " # print(output['beliefs'].shape)\n", - " agent = agent.learning(**output)\n", - " \n", - " return (agent, env), output\n", - "\n", - "# define an agent and environment here\n", - "batch_size = 10\n", - "num_obs = [3, 3]\n", - "num_states = [3, 3]\n", - "num_controls = [2, 2]\n", - "num_blocks = 2\n", - "num_timesteps = 5\n", - "\n", - "A_np = random_A_matrix(num_obs=num_obs, num_states=num_states)\n", - "B_np = random_B_matrix(num_states=num_states, num_controls=num_controls)\n", - "A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), list(A_np))\n", - "B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), list(B_np))\n", - "C = [jnp.zeros((batch_size, no)) for no in num_obs]\n", - "D = [jnp.ones((batch_size, ns)) / ns for ns in num_states]\n", - "E = jnp.ones((batch_size, 4 )) / 4 \n", - "\n", - "pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), list(A_np))\n", - "pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (batch_size,) + x.shape), list(B_np))\n", - "\n", - "class TestEnv:\n", - " def __init__(self, num_obs, prng_key=jr.PRNGKey(0)):\n", - " self.num_obs=num_obs\n", - " self.key = prng_key\n", - " def step(self, actions=None):\n", - " # return a list of random observations for each agent or parallel realization (each entry in batch_dim)\n", - " obs = [jr.randint(self.key, (batch_size,), 0, no) for no in self.num_obs]\n", - " self.key, _ = jr.split(self.key)\n", - " return obs\n", - "\n", - "agents = AIFAgent(A, B, C, D, E, pA, pB, use_param_info_gain=True, use_inductive=False, inference_algo='fpi', sampling_mode='marginal', action_selection='stochastic')\n", - "env = TestEnv(num_obs)\n", - "init = (agents, env)\n", - "(agents, env), sequences = scan(step_fn, init, range(num_blocks) )\n", - "print(sequences['policy_probs'].shape)\n", - "print(sequences['actions'][0][0][0])\n", - "print(agents.A[0].shape)\n", - "print(agents.B[0].shape)\n", - "# def loss_fn(agents):\n", - "# env = TestEnv(num_obs)\n", - "# init = (agents, env)\n", - "# (agents, env), sequences = scan(step_fn, init, range(num_blocks)) \n", - "\n", - "# return jnp.sum(jnp.log(sequences['policy_probs']))\n", - "\n", - "# dLoss_dAgents = jax.grad(loss_fn)(agents)\n", - "# print(dLoss_dAgents.A[0].shape)\n", - "\n", - "\n", - "# sequences = jtu.tree_map(lambda x: x.swapaxes(1, 2), sequences)\n", - "\n", - "# NOTE: all elements of sequences will have dimensionality blocks, trials, batch_size, ...\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": "jax_pymdp_test", - "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.6" - }, - "orig_nbformat": 4 - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/examples/envs/generalized_tmaze_demo.ipynb b/examples/envs/generalized_tmaze_demo.ipynb new file mode 100644 index 00000000..81b9d6bd --- /dev/null +++ b/examples/envs/generalized_tmaze_demo.ipynb @@ -0,0 +1,590 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Generalized T-Maze environment" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "from pymdp.jax.envs.generalized_tmaze import (\n", + " GeneralizedTMazeEnv, parse_maze, render \n", + ")\n", + "from pymdp.jax.envs.rollout import rollout\n", + "from pymdp.jax.agent import Agent\n", + "\n", + "import numpy as np \n", + "import jax.random as jr \n", + "import jax.numpy as jnp\n", + "import jax.tree_util as jtu " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Create the environment\n", + "\n", + "In this example we create a simple square environment, where multiple cues are present, and multiple reward pairs. Each cue indicates the location of one of the reward pairs. \n", + "\n", + "The agent is can move in the grid world using actions up, down, left and right, and observes the current tile it is at. \n", + "\n", + "The grid world is specified by a matrix using the following labels: \n", + "\n", + "```\n", + "0: Empty space\n", + "1: The initial position of the agent\n", + "2: Walls\n", + "3 + i: Cue for reward i\n", + "4 + i: Potential reward location i 1\n", + "4 + i: Potential reward location i 2\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0], [1], [2], [3]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB220lEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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Jit3HmPh1iOk5xZRN8ROmL8Pxu+P2ihhmibpuUUczconIsCX/u3r07NZHSwWo5wti1TM/sz95BRV/PFcgT6BxIbEVkFFckkxTTi4FrbMdQWqwCjX6/QxwEzT1dqVlQw+/tCsL7T+P7Cd+YtrVbsYPk9EzsclGb5KJKXmsnRHClsPZ5CZX4wB+FgtmJgUF5uYQIi/jXYNQ7m2VV0ahQdUa70iIlUi+xjs+g6S1rjuYATXWGCGAY4iwHQNTxHVGlrcAHVbV2u5JS6mzxORirikw1eJIxn5JB7P4UhGHqk5hWBAZKCdeiF+NIkKpF6IhpQQkUtAbioc+83VwpV91DUavl8YhDSA8DjXy7h4Wv4vxs8TkXNx5gv8l4joUD+iQxWwROQSFxABsd2ruwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUD0IiASLvmuKyMVB4UsuSF6hg00H01mTmEpSWi45BQ4cphMw8LNZCPHzoUNMKF0ahxNfJxDDMKq7ZKmNMg5C0lpI+gXy0qAo1zXdsIBvEARHQ9xV0LAr+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQk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auXKTQVHPkQ0hbZDXH29dLOHiFQTXXaUC5Jf5GDLoQzWJKZyIDWXnIJiihxODMPA38dKsJ+NTo3D6dI4jNjIwLNvUOR8ZB6Gg+vgwM+uuxiLclwtYRab65JkSEOI7QENu5R6NJHUXPo8kZpK4UsqhWmaZBUUk5JZQH6RA8OAsABfooLs+Np0dVu8xFEMOccg97irX5jN7hpE1T9cLV21kD5PpKbS9R+pFIZhEOLnoxHrpXpZbRBS3/USEblIqUlCRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts3t6haZoAZGZmenvXIiJSi5R8jpR8rojUFF4PX1lZWQDExMR4e9ciIlILZWVlERoaWt1liJwzw/TyVwan08nhw4cJDg7GMAxv7vqcZGZmEhMTQ1JSEiEhIdVdTo2kc3jhdA4vjM7fhasJ59A0TbKysmjQoAEWi3rRSM3h9ZYvi8VCo0aNvL3bCgsJCblo/+DUFDqHF07n8MLo/F24i/0cqsVLaiJ9VRARERHxIoUvERERES9S+DqN3W7nySefxG63V3cpNZbO4YXTObwwOn8XTudQpOp4vcO9iIiIyKVMLV8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl+neP3114mLi8PPz48rrriCNWvWVHdJNcrKlSsZOHAgDRo0wDAMvvzyy+ouqUaZPHkyl112GcHBwdStW5fBgwfz22+/VXdZNcq0adPo0KGDe2DQ7t27s2DBguouq8aaMmUKhmHwyCOPVHcpIrWKwtfv5syZw8SJE3nyySfZsGEDHTt2pF+/fqSkpFR3aTVGTk4OHTt25PXXX6/uUmqkFStWMHbsWH7++WcWL15MUVERN9xwAzk5OdVdWo3RqFEjpkyZwvr161m3bh3XXnstgwYNYuvWrdVdWo2zdu1apk+fTocOHaq7FJFaR0NN/O6KK67gsssu47XXXgNcz6CMiYnhT3/6E48//ng1V1fzGIbBF198weDBg6u7lBrr2LFj1K1blxUrVtCrV6/qLqfGioiI4IUXXmDMmDHVXUqNkZ2dTZcuXXjjjTf417/+RadOnXjllVequyyRWkMtX0BhYSHr16+nb9++7mkWi4W+ffvy008/VWNlcinLyMgAXOFBKs7hcPDxxx+Tk5ND9+7dq7ucGmXs2LEMGDDA42+iiFQerz9Y+2J0/PhxHA4H9erV85her149duzYUU1VyaXM6XTyyCOPcNVVV9GuXbvqLqdG2bx5M927dyc/P5+goCC++OIL2rRpU91l1Rgff/wxGzZsYO3atdVdikitpfAlchEaO3YsW7ZsYdWqVdVdSo3TsmVLEhISyMjI4LPPPmPkyJGsWLFCAewcJCUl8fDDD7N48WL8/PyquxyRWkvhC6hTpw5Wq5WjR496TD969CjR0dHVVJVcqsaNG8f8+fNZuXIljRo1qu5yahxfX1+aNWsGQNeuXVm7di3//e9/mT59ejVXdvFbv349KSkpdOnSxT3N4XCwcuVKXnvtNQoKCrBardVYoUjtoD5fuP5Yd+3ale+//949zel08v3336uviHiNaZqMGzeOL774gqVLlxIfH1/dJdUKTqeTgoKC6i6jRrjuuuvYvHkzCQkJ7le3bt0YMWIECQkJCl4ilUQtX7+bOHEiI0eOpFu3blx++eW88sor5OTkMHr06OourcbIzs5m9+7d7p8TExNJSEggIiKCxo0bV2NlNcPYsWOZPXs28+bNIzg4mCNHjgAQGhqKv79/NVdXM0yaNIkbb7yRxo0bk5WVxezZs1m+fDmLFi2q7tJqhODg4FJ9DAMDA4mMjFTfQ5FKpPD1u2HDhnHs2DGeeOIJjhw5QqdOnVi4cGGpTvhSvnXr1nHNNde4f544cSIAI0eOZObMmdVUVc0xbdo0APr06eMxfcaMGYwaNcr7BdVAKSkp3H333SQnJxMaGkqHDh1YtGgR119/fXWXJiLipnG+RERERLxIfb5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSL/j+ISD+Fp1HZzAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def get_maze_matrix(small=False):\n", + " if small:\n", + " M = np.zeros((3, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + "\n", + " # Set the initial position\n", + " M[2,3] = 1\n", + " else:\n", + "\n", + " M = np.zeros((5, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[4,1] = 10\n", + " M[4,3] = 11\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[3,2] = 9\n", + "\n", + " # Set the initial position\n", + " M[2,2] = 1\n", + " return M\n", + "\n", + "M = get_maze_matrix(small=False)\n", + "env_info = parse_maze(M)\n", + "tmaze_env = GeneralizedTMazeEnv(env_info)\n", + "_ = render(env_info, tmaze_env)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Create the agent. \n", + "\n", + "The PyMDPEnv class consists of a params dict that contains the A, B, and D vectors of the environment. We initialize our agent using the same parameters. This means that the agent has full knowledge about the environment transitions, and likelihoods. We initialize the agent with a flat prior, i.e. it does not know where it, or the reward is. Finally, we set the C vector to have a preference only over the rewarding observation of cue-reward pair 1 (i.e. C[1][1] = 1 and zero for other values). " + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", + "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", + "A_dependencies = tmaze_env.dependencies[\"A\"]\n", + "B_dependencies = tmaze_env.dependencies[\"B\"]\n", + "\n", + "# [position], [cue], [reward]\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "\n", + "rewarding_modality = 1 + env_info[\"num_cues\"]\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,1].set(2.0)\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,2].set(-3.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "\n", + "agent = Agent(\n", + " A, B, C, D, \n", + " None, None, None, \n", + " policy_len=7,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies,\n", + " apply_batch=False\n", + ")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Rollout an agent episode \n", + "\n", + "Using the rollout function, we can run an active inference agent in this environment over a specified number of discrete timesteps using the parameters previously set. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "key = jr.PRNGKey(0)\n", + "T = 20\n", + "_, info, _ = rollout(agent, tmaze_env, num_timesteps=T, rng_key=key)" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=0\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB22klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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OZ2Q/CvsWw3Hdvw+DEXJnzXD1brlHwaNLoe4qyA8rvpqlUqlzxOpqRS+pFLkFBRzOD2PlKwC8godWCwQ6u9LvRA7DUL9sWhICalqJZcVs5Ih5wSYDteArEH1XGODaTDVWkefJ1JT6bKjVIpAu43m9YJpXi/47AuLVAXDgJAGrpeIyEVM14BEREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLbNVdgNQOWflFHEzL41hWAXlFDiyGQViAD/WC/WgY7o/VYlR3iVLbmSZkHoLMZMg9Dk4H2OwQVBdCYyAgororFBEBFL7kAh3JyOenvSdYvz+VtJxCHKZrugGYgL+PhcYRgVzRJIJusRH42tTYKpXM6YBDG2DfD3B8JxTmeM43DPALg4ZdIe5qiGxaLWWKiJRQ+JLz4nSa/LjnBAu2JHMsq4CIQF/iIgOxWU+GK9M0yS10kHg8h10pWSQkpTOoU0MahvlXY+VSq+ScgC2fwYGfXT8H1YPQxq7AVcLpgLxU2L0YktZAy/7QvB/YfKunZhG55Cl8SYU5nCbzNx1m8baj+NmstIoOxjBKX1Y0DINAu414u438IgebkjI4llXA3d3jiK8TWA2VS62SdQR+eQuO7YDwOLAHl72cxQqBURBQB7KPwqZPIOsodLnLdVlS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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=1\n" + ] + }, + { + "data": { + "image/png": "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emvXrk2vXr2YOnUqycnJJZYvbQiJs+nTpw8hISE899xzFBUVndc2T3xrP7Ve0zT53//+V+56AKZNm8bUqVN54403Sg2l5TkPN910E7/88gurV6/2mP/xxx+fV22na9WqFb1793a/OnfuXOay9957L0899RQvvfRSmcuUdi6BUkc2f/rpp1m4cCGffPJJqZfjOnfuTOPGjfnvf/9b6uXt83m/VISWLVvStm1bZs+ezezZs6lbty49evQ47+3ddNNNrF69mp9//tk9LScnh7fffpu4uLgSfdMqm9VqZfDgwcyZM6fUlu3zPe+BgYHnfQlfRC4+avmqIk2bNmXmzJkMHTqU5s2bu0e4N02TxMREZs6cicVi8ehj9cYbb3D11VfTtm1b7rvvPho1asSRI0f4+eefOXDgABs2bChXDSEhIUyZMoW77rqLTp06cfvttxMVFcX+/fv59ttvueqqq3j99dfPuI0WLVrQuHFjHnvsMQ4ePEhISAhz5sw5r/4qx44d46GHHqJVq1bY7XY++ugjj/mDBg0iMDDwnM/D3/72Nz788EP69u3LI4884h5qIjY21uuPboqNjeVf//rXGZcJCQmhR48evPDCCxQVFVG/fn2+//57EhMTPZbbtGkTzz77LD169CAlJaXEebrzzjuxWCy8++673HjjjbRu3ZqRI0dSv359Dh48yNKlSwkJCeGbb745a93r168vsX1wtax17dr17AdeiiFDhvDkk0/i5+fHqFGjLmgg4SeeeIJPPvmEG2+8kbFjxxIREcEHH3xAYmIic+bMqZJBiidNmsTSpUu54ooruO+++2jVqhWpqamsX7+exYsXk5qaWu5tdu7cmdmzZzN+/Hguu+wygoKC6N+/fyVULyLeoPBVhQYMGMCmTZt46aWX+P7773n//fcxDIPY2Fj69evHAw88QPv27d3Lt2rVirVr1/L0008zffp0jh8/Tu3atenYsaPHZaryuOOOO6hXrx6TJk3ixRdfpKCggPr169O9e3dGjhx51vV9fHz45ptvGDt2LBMnTsTPz49BgwYxZswYj9rPRXZ2Nvn5+WzdutV9d+OpEhMTCQwMPOfzULduXZYuXcrDDz/MpEmTiIyM5IEHHqBevXruDt8Xm5kzZ/Lwww/zxhtvYJomN9xwA/Pnz6devXruZY4fP45pmixfvpzly5eX2MaJS6G9evXi559/5tlnn+X1118nOzub6OhorrjiCv785z+fUz2ffPKJ+07NUw0fPvyCwtc//vEPcnNzz+kuxzOpU6cOP/30E48//jivvfYa+fn5tGvXjm+++YZ+/fpd0LYvpKbVq1fzzDPP8MUXX/Dmm28SGRlJ69atef75589rmw899BAJCQlMmzaNV155hdjYWIUvkWrMMNWrU0RERMRr1OdLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yOvjfDmdTg4dOkRwcLAemSEiIufNNE2ysrKoV69elQyoK3K+vB6+Dh06RExMjLd3KyIiNVRSUpLH00BELnZeD1/BwcGA63+WkJAQb+9eRERqiMzMTGJiYtyfKyLVhdfD14lLjSEhIQpfIiJywdSFRaobXSQXERER8SKFLxEREREvUvgSERER8SKv9/kSERHxFofDQVFRUVWXITWcj48PVqv1nJdX+BIRkRrHNE0OHz5Menp6VZcil4iwsDCio6PP6QYQhS8REalxTgSv2rVrExAQoDsipdKYpklubi4pKSkA1K1b96zrKHyJiEiN4nA43MErMjKyqsuRS4C/vz8AKSkp1K5d+6yXINXhXkREapQTfbwCAgKquBK5lJx4v51LH0OFLxERqZF0qVG8qTzvN4UvERERES9S+BIRERHxIoUvERGR0xQWFl7Q/At1+PBhHn74YRo1aoTdbicmJob+/fvzww8/VOp+xTsUvkRERE4xe/Zs2rZtS1JSUqnzk5KSaNu2LbNnz66U/e/du5fOnTuzZMkSXnzxRTZt2sSCBQu45pprGD16dKXsU7xL4UtEROQPhYWFPPnkk+zYsYNevXqVCGBJSUn06tWLHTt28OSTT1ZKC9hDDz2EYRisXr2awYMH06xZM1q3bs348eP55Zdf2Lt3L4ZhkJCQ4F4nPT0dwzBYtmyZe9rmzZu58cYbCQoKok6dOtx1110cO3aswuuV8lP4EhER+YOvry+LFy+mUaNG7NmzxyOAnQhee/bsoVGjRixevBhfX98K3X9qaioLFixg9OjRBAYGlpgfFhZ2TttJT0/n2muvpWPHjqxdu5YFCxZw5MgRbrvttgqtV86PwpeIiMgpYmJiWLZsmUcA++mnnzyC17Jly4iJianwfe/atQvTNGnRosUFbef111+nY8eOPPfcc7Ro0YKO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/P396du3r7tWgG+//Zb69et7rGe32895HzWNwpeIiMgfQkLAYjm3AGaxuJavTJMmTaJDhw40b97cPa1Tp05s3bqVJk2alLpO8+bNKS4u5rfffqNz586AqwXq1Lsn161bh9Pp5KWXXsJicXX//vTTTz224+vri8PhOGuN3bp1IyYmhtmzZzN//nxuvfVWfHx8AGjVqhV2u539+/fTs2fP8h18DabwJSIi8gd/fxgwwHVX4+md7U9ls7mWq6xWrxPatm3LsGHDmDx5snva448/zpVXXsmYMWO49957CQwMZOvWrSxatIjXX3+dFi1a0Lt3b+6//36mTJmCj48Pf/nLX/D393ePFdakSROKiop47bXX6N+/P6tWreKt027hjIuLIzs7mx9++IH27dsTEBBQZovYHXfcwVtvvcWOHTtYunSpe3pwcDCPPfYY48aNw+l0cvXVV5ORkcGqVasICQlh+PDhlXDWLn6621FEROQU48fD2Rp8HA4YN8479TzzzDM4T2mKa9euHcuXL2fHjh10796djh078uSTT1KvXj33MjNmzKBOnTr06NGDQYMGcd999xEcHIyfnx8A7du35+WXX+b555+nTZs2fPzxxyWGtujWrRsPPPAAQ4YMISoqihdeeKHMGocNG8bWrVupX78+V111lce8Z599ln/+859MnDiRli1b0rdvX7799lvi4+Mr4vRUS4ZpmqY3d5iZmUloaCgZGRmEVHZ7rYiI1FhlfZ7k5+eTmJhIfHy8O2yU11tvuYaTsFo9W8BsNlfwevNNeOCBCz0C7zlw4AAxMTEsXryY6667rqrLqZHK875Ty5eIiMhpHngAfvzRdWnxjy5RWCyun3/88eIPXkuWLOHrr78mMTGRn376idtvv524uDh69OhR1aUJ6vMlIiJSqquucr3y8lx3NYaEVH4fr4pSVFTE3//+d/bs2UNwcDDdunXj448/dneEl6ql8CUiInIG/v7VJ3Sd0KdPH/r06VPVZUgZdNlRRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIt0t6OIiAiwL3MfOUU55V4v0CeQ2JDYSqhIaiqFLxERueTty9zHzV/efN7rzxs0TwFMzpkuO4qIyCXvfFq8KnL90/38889YrVb69etXods9V3v37sUwDBISEqpk/zWdwpeIiMhF5r333uPhhx9mxYoVHDp0qKrLkQqm8CUiInIRyc7OZvbs2Tz44IP069eP6dOne8z/+uuvadq0KX5+flxzzTV88MEHGIZBenq6e5mVK1fSvXt3/P39iYmJYezYseTknGydi4uL47nnnuOee+4hODiYhg0b8vbbb7vnx8fHA9CxY0cMw6BXr16VeciXHIUvERGRi8inn35KixYtaN68OXfeeSfvv/8+pmkCkJiYyC233MLAgQPZsGEDf/7zn/m///s/j/V3795N3759GTx4MBs3bmT27NmsXLmSMWPGeCz30ksv0aVLF3777TceeughHnzwQX7//XcAVq9eDcDixYtJTk7miy++8MKRXzoUvkRERC4i7733HnfeeScAffv2JSMjg+XLlwMwdepUmjdvzosvvkjz5s25/fbbGTFihMf6EydOZNiwYTz66KM0bdqUbt26MXnyZGbMmEF+fr57uZtuuomHHnqIJk2a8Pjjj1OrVi2WLl0KQFRUFACRkZFER0cTERHhhSO/dCh8iYiIXCR+//13Vq9ezdChQwGw2WwMGTKE9957zz3/sssu81jn8ssv9/h5w4YNTJ8+naCgIPerT58+OJ1OEhMT3cu1a9fO/d+GYRAdHU1KSkplHZqcQkNNiIiIXCTee+89iouLqVevnnuaaZrY7XZef/31c9pGdnY2f/7znxk7dmyJeQ0bNnT/t4+Pj8c8wzBwOp3nWbmUh8KXiIjIRaC4uJgZM2bw0ksvccMNN3jMGzhwIJ988gnNmzfnu+++85i3Zs0aj587derE1q1badKkyXnX4uvrC4DD4TjvbUjZFL5EREQuAvPmzSMtLY1Ro0YRGhrqMW/w4MG89957fPrpp7z88ss8/vjjjBo1ioSEBPfdkIZhAPD4449z5ZVXMmbMGO69914CAwPZunUrixYtOufWs9q1a+Pv78+CBQto0KABfn5+JWqS86c+XyIiIheB9957j969e5cacgYPHszatWvJysri888/54svvqBdu3ZMmTLFfbej3W4HXH25li9fzo4dO+jevTsdO3bkySef9LiUeTY2m43JkyczdepU6tWrx4ABAyrmIAUAwzxx/6qXZGZmEhoaSkZGBiEhId7ctYiI1CBlfZ7k5+eTmJhIfHw8fn5+57Strce3MmTekPOuZfbNs2kV2eq8178Q//nPf3jrrbdISkqqkv2LS3ned7rsKCIi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LxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SJbVRcgNUNWfhEH0vI4mlVAXpEDi2EQFuBDnWA/6of7Y7UYVV2i1HSmCZkHITMZco+B0wE2OwTVhtAYCIio6gpFRACFL7lAhzPy+XnPcdbtSyUtpxCH6ZpuACbg72OhYUQgVzSKoEtsBL42NbZKBXM64OB62PsjHNsBhTme8w0D/MKgfmeIuxoiG1dJmSIiJyh8yXlxOk1+2n2c+ZuTOZpVQESgL3GRgdisJ8OVaZrkFjpIPJbDzpQsEpLSGdChPvXD/KuwcqlRco7D5s9h/y+un4PqQGhDV+A6wemAvFTYtQiSVkPzvtC0D9h8q6ZmEbnkKXxJuTmcJvM2HmLR1iP42ay0iA7GMEpeVjQMg0C7jXi7jfwiBxuTMjiaVcDdXeOIrxVYBZVLjZJ1GH59G45uh/A4sAeXvpzFCoFREFALso/Axk8h6wh0ust1WVJExMt0DUjK7cedR/l+yxEiAn2pH+5favA6nZ+Plaa1gziSkc/MX/dxPLvAC5VKjVWYC2unwfEdULtl2cHrVIYBwdGu/l97lsHmL139xEREvEzhS8rlQFouCzcfJtBuJTyg9Ms21oJ8AtKOYS3I95husRg0igpi//FcvtuUjNOpDz45TzsWwpHNENkULCUb8PMKbBxJDSCvoJTGfXuwK4TtWQKHN3mhWBERT+d12fGNN97gxRdf5PDhw7Rv357XXnuNyy+/vKJrk4vQih1HOZ5TSIvoki0N9TavpdOc6TT++QcsTidOi4XdXa9j/S0jOdS6MwBWi0G9cH/W7Uuja+NaNKkd5O1DkOouO8UVnAKjwOr5BWDlpga8/NnlzP2pKU6nBYvFyYBuO/nLbb9yVZuDJxcMiIScY64QV6cNWPQ9VES8p9x/cWbPns348eN56qmnWL9+Pe3bt6dPnz6kpKRURn1yETmWXcDGAxnUDraXuNTY7puZ3Db+Thr9sgSL0wmAxemk0S9LuG3cMNrN+8S9bIifD3lFDn7bn+bV+qWGOPQb5Ka6wtcppsztSI9H7uSbn5vgdLr+tDmdFr75uQndx97FW1939NxOSD3X3ZGpu71VuYgIcB7h6+WXX+a+++5j5MiRtGrVirfeeouAgADef//9yqhPLiL7U3PJyCsiPNCztaHe5rVc+9ozGJhYHQ6PeVaHAwOTayc/Tb0t69zTw/x92ZqciUOXHqW8jmwGmz8YJ/98rdzUgNH/64OJQbHD6rF4scOKicFDr/Zh1eb6J2fYg6E4D9L2eqlwERGXcoWvwsJC1q1bR+/evU9uwGKhd+/e/PzzzxVenFxcUjJdneQtp7V6dZozHaf1zG8lp9VCxznT3T8H2q1k5RWp472UT1E+ZBwo0cH+5c8ux2p1nnFVq9XJK5+d1j3CsEL6/oquUkTkjMrV5+vYsWM4HA7q1KnjMb1OnTps37691HUKCgooKDj5AZuZmXkeZcrFILuguMQ0a0G+u4/XmVgdDpr8tBhrQT4Oux++NguFDic5hY4zrifioSgXHEXge3KokrwCm7uP15kUO6x8uaoZeQU2/O1/vJdtfq4xwEREvKjSe5lOnDiR0NBQ9ysmJqaydymVpLQBJey52WcNXidYnE7sudmuH0wwMNBTh+S8nHK1OjPH96zB6wSn00JmzimXzU3T1folIuJF5QpftWrVwmq1cuTIEY/pR44cITo6utR1JkyYQEZGhvuVlJR0/tVKlQoL8ME8bVykgoAgnOd4p5jTYqEgwHV3Y16RA7uPhRA/nwqvU2owewj4BLj6av0hJLAQi+UcvwBYnIQEFp6cUJzvGhVfRMSLyhW+fH196dy5Mz/88IN7mtPp5IcffqBr166lrmO32wkJCfF4SfVUJ8QPi8Wg2HHyg85h92N31+twWM/ceuCwWtnVrTcOux/guoQZHuhLWIDCl5SD1eYazb7gZPcFf3sxA7rtxGY98yVsm9XBoKt2nLzkaJpgOl13PYqIeFG5LzuOHz+ed955hw8++IBt27bx4IMPkpOTw8iRIyujPrmIxNUKJCrIztHTOsmvHzwCi+PMLQ8Wh5PfBo8AXM98zM4vpmNM2DmNji/iIbqt63mNzpN9EMffuhqH48x/zhwOC+NuXX1yQl4a+IVCVPPKqlREpFTlDl9Dhgzhv//9L08++SQdOnQgISGBBQsWlOiELzVPkN3GZXERpOcWUXxKP69DbbqwZOxTmBglWsAcVtdt/kvGPuUeaPVYdiFhAT60jwnzZvlSU9Tr4GqtyjjgnnR12wO8+ehCDMwSLWA2q2u4kzcfXXhyoFXThKxDULe9Wr5ExOsM8/ROPJUsMzOT0NBQMjIydAmyGsrILeL1pTs5nJlPfGSgR8tVvS3r6DhnOk1+Wuwe4X5Xt978NniEO3gVFDvYeyyHAR3qc2PbulV1GFLdJf4Ia9+D4Hoew06s2lyfVz67nC9XNXOPcD/oqh2Mu3W15wj36Umuh2r3+AuENqiCA5CKoM8Tqa4UvqTcNh/M4IOf9uJwmjQo5cHa1oJ87LnZFAQEuft4gSt47TmaQ/sGYYzqHo+fj+4yk/PkdMDa910PyA6P9xh6AlzDT2Tm+BISWHiyj9cJWYehMBs63QWNenmtZKl4+jyR6koPNJNya1M/lCGXxeBjs7ArJZuCYs/LPA67H7nhtdzByzRNjmcXkHgsh3YNwhh2ZUMFL7kwFit0GAZx3SF9H2Qecl1K/IO/vZg6EbmewctZDMd3uu6UbHsLxPesgsJFRM7zwdoiXeIiiAj05esNh9hxJAuLYRAR4Eug3YaP1cA0XcNJZOUXk55bSLCfjX5t69G7VW0CfPW2kwrgGwBd7oGIeNj+LaRscXWg9wsFn0DX44ecxa5WrtxUcORDRGNoPcjV10s3e4hIFdFlR7kg+UUONh/MYHViKvtTc8kpKKbI4cQwDPx9rAT72ejQMJxODcOIjQw8+wZFzkfmITiwFvb/4rqLsSjH1RJmsbkuSYbUh9huUL9TiUcTSfWlzxOprhS+pEKYpklWQTEpmQXkFzkwDAgL8CUqyI6vTVe3xUscxZBzFHKPufqF2eyuQVT9w9XSVQPp80SqK13/kQphGAYhfj4asV6qltUGIXVdLxGRi5SaJERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yObtHZqmCUBmZqa3dy0iIjXIic+RE58rItWF18NXVlYWADExMd7etYiI1EBZWVmEhoZWdRki58wwvfyVwel0cujQIYKDgzEMw5u7PieZmZnExMSQlJRESEhIVZdTLekcXjidwwuj83fhqsM5NE2TrKws6tWrh8WiXjRSfXi95ctisdCgQQNv77bcQkJCLto/ONWFzuGF0zm8MDp/F+5iP4dq8ZLqSF8VRERERLxI4UtERETEixS+TmO323nqqaew2+1VXUq1pXN44XQOL4zO34XTORSpPF7vcC8iIiJyKVPLl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHC1yneeOMN4uLi8PPz44orrmD16tVVXVK1smLFCvr370+9evUwDIOvvvqqqkuqViZOnMhll11GcHAwtWvXZuDAgfz+++9VXVa1MmXKFNq1a+ceGLRr167Mnz+/qsuqtiZNmoRhGDz66KNVXYpIjaLw9YfZs2czfvx4nnrqKdavX0/79u3p06cPKSkpVV1atZGTk0P79u154403qrqUamn58uWMHj2aX375hUWLFlFUVMQNN9xATk5OVZdWbTRo0IBJkyaxbt061q5dy7XXXsuAAQPYsmVLVZdW7axZs4apU6fSrl27qi5FpMbRUBN/uOKKK7jssst4/fXXAdczKGNiYnj44Yd54oknqri66scwDL788ksGDhxY1aVUW0ePHqV27dosX76cHj16VHU51VZERAQvvvgio0aNqupSqo3s7Gw6derEm2++yb///W86dOjAq6++WtVlidQYavkCCgsLWbduHb1793ZPs1gs9O7dm59//rkKK5NLWUZGBuAKD1J+DoeDWbNmkZOTQ9euXau6nGpl9OjR9OvXz+NvoohUHK8/WPtidOzYMRwOB3Xq1PGYXqdOHbZv315FVcmlzOl08uijj3LVVVfRpk2bqi6nWtm0aRNdu3YlPz+foKAgvvzyS1q1alXVZVUbs2bNYv369axZs6aqSxGpsRS+RC5Co0ePZvPmzaxcubKqS6l2mjdvTkJCAhkZGXz++ecMHz6c5cuXK4Cdg6SkJB555BEWLVqEn59fVZcjUmMpfAG1atXCarVy5MgRj+lHjhwhOjq6iqqSS9WYMWOYN28eK1asoEGDBlVdTrXj6+tLkyZNAOjcuTNr1qzhf//7H1OnTq3iyi5+69atIyUlhU6dOrmnORwOVqxYweuvv05BQQFWq7UKKxSpGdTnC9cf686dO/PDDz+4pzmdTn744Qf1FRGvMU2TMWPG8OWXX7JkyRLi4+OruqQawel0UlBQUNVlVAvXXXcdmzZtIiEhwf3q0qULw4YNIyEhQcFLpIKo5esP48ePZ/jw4XTp0oXLL7+cV199lZycHEaOHFnVpVUb2dnZ7Nq1y/1zYmIiCQkJRERE0LBhwyqsrHoYPXo0M2fOZO7cuQQHB3P48GEAQkND8ff3r+LqqocJEyZw44030rBhQ7Kyspg5cybLli1j4cKFVV1atRAcHFyij2FgYCCRkZHqeyhSgRS+/jBkyBCOHj3Kk08+yeHDh+nQoQMLFiwo0QlfyrZ27VquueYa98/jx48HYPjw4UyfPr2Kqqo+pkyZAkCvXr08pk+bNo0RI0Z4v6BqKCUlhbvvvpvk5GRCQ0Np164dCxcu5Prrr6/q0kRE3DTOl4iIiIgXqc+XiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh40f8HwVy3u0pRXqYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=2\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB22klEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQioqCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIE2w0AwdaQECBAKk92Tm/P4YMzAkAQLJhIT7dV1zYU79nJMxc89znvMcwzRNExERERHxCkt1FyAiIiJyKVH4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4Eq/55z//iWEYHtPi4uIYNWqUV+uYOXMmhmGwb98+r+5Xzo1+PyJS2yl8VbPExETGjRtHixYtCAgIICAggDZt2jB27Fg2bdpU3eVdkvbt24dhGOf0Ki8gxMXFYRgGffv2LXP+22+/7d7GunXrqvBozs/ZzsGUKVOqu8RLyuzZs3nllVequwwRqSS26i7gUjZ//nyGDRuGzWZjxIgRdOzYEYvFwo4dO/j888+ZNm0aiYmJxMbGVnepVea3337DYrm4vgNERUXx/vvve0x78cUXOXjwIC+//HKpZcvj5+fHsmXLOHLkCNHR0R7zPvzwQ/z8/MjPz6+8wqvA8OHDuemmm0pN79y5c5Xt86677uL222/HbrdX2T5qmtmzZ7NlyxYeeeSR6i5FRCqBwlc12bNnD7fffjuxsbF8//331K9f32P+c889xxtvvHHRBZNT5eTkEBgYeEHbuBg/YAMDA7nzzjs9pn388cekpaWVmn4mV111FWvXrmXOnDk8/PDD7ukHDx7khx9+YMiQIcydO7fS6q4KXbp0qdAxVwar1YrVaj3jMqZpkp+fj7+/v5eqEhGpPBfvJ3st9/zzz5OTk8OMGTNKBS8Am83G+PHjiYmJ8Zi+Y8cObrnlFiIiIvDz86Nbt2589dVXHsuU9JlZvXo1EydOJCoqisDAQIYMGcKxY8dK7WvBggX07NmTwMBAgoODGTBgAFu3bvVYZtSoUQQFBbFnzx5uuukmgoODGTFiBAA//PADt956K40bN8ZutxMTE8OECRPIy8s763k4vc/XuV7iO5fzALB161auvfZa/P39adSoEf/6179wOp1nrasy+Pn58Yc//IHZs2d7TP/oo48IDw+nX79+pdbZtGkTo0aNokmTJvj5+REdHc0999zDiRMn3Muc7ZLgqX755Rf69+9PaGgoAQEB9O7dm9WrV1fqccbFxXHzzTezatUqLr/8cvz8/GjSpAmzZs1yL7Nu3ToMw+C9994rtf6iRYswDIP58+cDZff5KtnHokWL6NatG/7+/kyfPh2AvXv3cuuttxIREUFAQABXXnkl33zzjcc+li9fjmEYfPLJJ/z73/+mUaNG+Pn5cd1117F7926PZfv06UO7du3YtGkTvXv3JiAggGbNmvHZZ58BsGLFCq644gr8/f1p2bIlS5YsKXVMhw4d4p577qFevXrY7Xbatm3Lu+++e1419enTh2+++Yb9+/e7f8dxcXHn8JsRkYuVWr6qyfz582nWrBlXXHHFOa+zdetWrrrqKho2bMjjjz9OYGAgn3zyCYMHD2bu3LkMGTLEY/k//elPhIeH8+STT7Jv3z5eeeUVxo0bx5w5c9zLvP/++4wcOZJ+/frx3HPPkZuby7Rp07j66qv59ddfPf7IFxcX069fP66++mr+85//EBAQAMCnn35Kbm4uDz74IJGRkaxZs4ZXX32VgwcP8umnn1bovJx+uQ/g73//OykpKQQFBVXoPBw5coRrrrmG4uJi93JvvfWWV1tL7rjjDm644Qb27NlD06ZNAdclpFtuuQUfH59Syy9evJi9e/cyevRooqOj2bp1K2+99RZbt27l559/xjCMMi+LFhUVMWHCBHx9fd3Tli5dyo033kjXrl158sknsVgszJgxg2uvvZYffviByy+//Kz15+bmcvz48VLTw8LCsNlO/vnYvXs3t9xyC2PGjGHkyJG8++67jBo1iq5du9K2bVu6detGkyZN+OSTTxg5cqTHtubMmVNuGD3Vb7/9xvDhw/njH//IfffdR8uWLTl69Cg9evQgNzeX8ePHExkZyXvvvcf//d//8dlnn5X6f2LKlClYLBYeffRRMjIyeP755xkxYgS//PKLx3JpaWncfPPN3H777dx6661MmzaN22+/nQ8//JBHHnmEBx54gDvuuIMXXniBW265haSkJIKDgwE4evQoV155JYZhMG7cOKKioliwYAFjxowhMzOz1KXDs9X0//7f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9datW5c+ffowffp0kpOTSy1f1hASZ9OvXz9CQkJ49tlnKSoqOq9tlnxrP7Ve0zT573//W+F6AGbMmMH06dN5/fXXywylFTkPN910Ez///DNr1qzxmP/hhx+eV22na9OmDX379nW/unbtWu6y9957L08++SQvvvhiucuUdS6BMkc2f+qpp1i0aBEfffRRmZfjunbtStOmTfnPf/5T5uXt83m/VIbWrVvTvn175syZw5w5c6hfvz69evU67+3ddNNNrFmzhp9++sk9LScnh7feeou4uLhSfdOqmtVqZejQocydO7fMlu3zPe+BgYHnfQlfRC4+avmqJs2bN2f27NkMHz6cli1buke4N02TxMREZs+ejcVi8ehj9frrr3P11VfTvn177rvvPpo0acLRo0f56aefOHjwIBs3bqxQDSEhIUybNo277rqLLl26cPvttxMVFcWBAwf45ptvuOqqq3jttdfOuI1WrVrRtGlTHn30UQ4dOkRISAhz5849r/4qx48f56GHHqJNmzbY7XY++OADj/lDhgwhMDDwnM/DX//6V95//3369+/Pww8/7B5qIjY21uuPboqNjeWf//znGZcJCQmhV69ePP/88xQVFdGwYUO+++47EhMTPZbbvHkzzzzzDL169SIlJaXUebrzzjuxWCz873//48Ybb6Rt27aMHj2ahg0bcujQIZYtW0ZISAhff/31WevesGFDqe2Dq2Wte/fuZz/wMgwbNownnngCPz8/xowZc0EDCT/++ON89NFH3HjjjYwfP56IiAjee+89EhMTmTt3brUMUjxlyhSWLVvGFVdcwX333UebNm1ITU1lw4YNLFmyhNTU1Apvs2vXrsyZM4eJEydy2WWXERQUxMCBA6ugehHxBoWvajRo0CA2b97Miy++yHfffce7776LYRjExsYyYMAAHnjgATp27Ohevk2bNqxbt46nnnqKmTNncuLECerWrUvnzp09LlNVxB133EGDBg2YMmUKL7zwAgUFBTRs2JCePXsyevTos67v4+PD119/zfjx45k8eTJ+fn4MGTKEcePGedR+LrKzs8nPz2fbtm3uuxtPlZiYSGBg4Dmfh/r167Ns2TL+9Kc/MWXKFCIjI3nggQdo0KCBu8P3xWb27Nn86U9/4vXXX8c0TW644QYWLFhAgwYN3MucOHEC0zRZsWIFK1asKLWNkkuhffr04aeffuKZZ57htddeIzs7m+joaK644gr++Mc/nlM9H330kftOzVONHDnygsLX3//+d3Jzc8/pLsczqVevHj/++COPPfYYr776Kvn5+XTo0IGvv/6aAQMGXNC2L6SmNWvW8PTTT/P555/zxhtvEBkZSdu2bXnuuefOa5sPPfQQCQkJzJgxg5dffpnY2FiFL5EazDDVq1NERETEa9TnS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvMjr43w5nU4OHz5McHCwHpkhIiLnzTRNsrKyaNCgQbUMqCtyvrwevg4fPkxMTIy3dysiIrVUUlKSx9NARC52Xg9fwcHBgOt/lpCQEG/vXkREaonMzExiYmLcnysiNYXXw1fJpcaQkBCFLxERuWDqwiI1jS6Si4iIiHiRwpeIiIiIFyl8iYiIiHiR1/t8iYiIeIvD4aCoqKi6y5BazsfHB6vVes7LK3yJiEitY5omR44cIT09vbpLkUtEWFgY0dHR53QDiMKXiIjUOiXBq27dugQEBOiOSKkypmmSm5tLSkoKAPXr1z/rOgpfIiJSqzgcDnfwioyMrO5y5BLg7+8PQEpKCnXr1j3rJUh1uBcRkVqlpI9XQEBANVcil5KS99u59DFU+BIRkVpJlxrFmyryflP4EhEREfEihS8RERERL1L4EhEROU1hYeEFzb9QR44c4U9/+hNNmjTBbrcTExPDwIED+f7776t0v+IdCl8iIiKnmDNnDu3btycpKanM+UlJSbRv3545c+ZUyf737dtH165dWbp0KS+88AKbN29m4cKFXHPNNYwdO7ZK9inepfAlIiLyu8LCQp544gl27txJnz59SgWwpKQk+vTpw86dO3niiSeqpAXsoYcewjAM1qxZw9ChQ2nRogVt27Zl4sSJ/Pzzz+zbtw/DMEhISHCvk56ejmEYLF++3D1ty5Yt3HjjjQQFBVGvXj3uuusujh8/Xun1SsUpfImIiPzO19eXJUuW0KRJE/bu3esRwEqC1969e2nSpAlLlizB19e3UvefmprKwoULGTt2LIGBgaXmh4WFndN20tPTufbaa+ncuTPr1q1j4cKFHD16lNtuu61S65Xzo/AlIiJyipiYGJYvX+4RwH788UeP4LV8+XJiYmIqfd+7d+/GNE1atWp1Qdt57bXX6Ny5M88++yytWrWi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cCCxsbG8/fbbNGjQAKfTSbt27dwd4P39S980VFnKqqcynOn8ZGdnU79+fY/LnyXCwsKqpJ4KtXylpKRw991307JlS6677jrWrl3LokWLuP7666ukOJHaJtQeStd6XUnNT3V3lC8uKmbqA1PL7Fx/eif8qQ9MpbCwkOScZFpHtqZRUKPqPByR2sPH39XRPje1YuvlprrW86m6QAKwdOlSNm/eXOqS4KlCQkIYNmwYb7/9NnPmzGHu3LmkprqOx8fHB4ej/P6mJU6cOMFvv/3G3//+d6677jpat25NWprn2IMdOnQgISHBve3T+fr6ltpX69atS/Wz2rZtG+np6We8aa8ylXd+unTpwpEjR7DZbDRr1szjVadOnXKP6UJUqOXrnXfeqbQdi1yq+sT0YXf6bvZn7nc929HHxs0P3sz8afMZ/+b4Un27SgLY1AemMuCBARzJP0KUfxT94vqVewlCRCrIMKBxdzi03nUJ8VxasooLABNie1RqZ/uCggKOHDmCw+Hg6NGjLFy4kMmTJ3PzzTdz9913l7nOSy+9RP369encuTMWi4VPP/2U6Ohod8tNXFwc33//PVdddRV2u53w8NI38QCEh4cTGRnJW2+9Rf369Tlw4ACPP/64xzLDhw/n2WefZfDgwUyePJn69evz66+/0qBBA7p3705cXByJiYkkJCTQqFEjgoOD6du3L+3bt2fEiBG88sorFBcX89BDD9G7d2+6detW4XO0bds2CgsLSU1NJSsri4SEBIByx+I60/np27cv3bt3Z/DgwTz//PO0aNGCw4cP88033zBkyBC6detW5jFdyDAferajiJcF+QYxqNkgIvwi2JuxF4fTQdd+Xfl/n/6/Mu9qBFcAm/TJJOr2qIuP1YeBTQdSN6CulysXqeWi20NEvKsD/dme4WiakJboWr5eu0otY+HChdSvX5+4uDj69+/PsmXLmDp1KvPmzSv3DsDg4GCef/55unXrxmWXXca+ffv49ttvsVhcH/MvvvgiixcvJiYmhs6dO5e7b4vFwscff8z69etp164dEyZM4IUXXvBYxtfXl++++466dety00030b59e6ZMmeKubejQofTv359rrrmGqKgoPvroIwzDYN68eYSHh9OrVy/69u1LkyZNmDNnznmdo5tuuonOnTvz9ddfs3z5cjp37nzG4zrT+TEMg2+//ZZevXox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OZ2Q/CvsWw3Hdvw+DEXJnzXD1brlHwaNLoe4qyA8rvpqlUqlzxOpqRS+pFLkFBRzOD2PlKwC8godWCwQ6u9LvRA7DUL9sWhICalqJZcVs5Ih5wSYDteArEH1XGODaTDVWkefJ1JT6bKjVIpAu43m9YJpXi/47AuLVAXDgJAGrpeIyEVM14BEREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLbNVdgNQOWflFHEzL41hWAXlFDiyGQViAD/WC/WgY7o/VYlR3iVLbmSZkHoLMZMg9Dk4H2OwQVBdCYyAgororFBEBFL7kAh3JyOenvSdYvz+VtJxCHKZrugGYgL+PhcYRgVzRJIJusRH42tTYKpXM6YBDG2DfD3B8JxTmeM43DPALg4ZdIe5qiGxaLWWKiJRQ+JLz4nSa/LjnBAu2JHMsq4CIQF/iIgOxWU+GK9M0yS10kHg8h10pWSQkpTOoU0MahvlXY+VSq+ScgC2fwYGfXT8H1YPQxq7AVcLpgLxU2L0YktZAy/7QvB/YfKunZhG55Cl8SYU5nCbzNx1m8baj+NmstIoOxjBKX1Y0DINAu414u438IgebkjI4llXA3d3jiK8TWA2VS62SdQR+eQuO7YDwOLAHl72cxQqBURBQB7KPwqZPIOsodLnLdVlSRMTLdA1IKuyHXcf4butRIgJ9aRjuX2bwOp2fj5XmdYM4mpHP7F/2cyK7wAuVSq1VmAvrZsCJnVC3dfnB61SGAcHRrv5fe5fDli9c/cRERLxM4Usq5GBaLou2HCHQbiU8oOzLNtaCfALSjmMtyPeYbrEYNIkK4sCJXL7dnIzTqQ8+OU87F8HRLRDZHCylG/DzCmwcTQ0gr6CMxn17sCuE7V0KRzZ7oVgREU/nddnx9ddf54UXXuDIkSN07NiRV199lcsvv7yya5OL0MqdxziRU0ir6NItDQ22rKPL3Jk0/el7LE4nTouFPd2vY8MtoznctisAVotBg3B/1u9Po3vTOjSrG+TtQ5CaLjvFFZwCo8Dq+QVg1eZGvPTp5cz7sTlOpwWLxcmgHrv4822/cFW7QycXDIiEnOOuEFevHVj0PVREvKfCf3HmzJnDxIkTefLJJ9mwYQMdO3akX79+pKSkVEV9chE5nl3ApoMZ1A22l7rU2OHr2dw28U6a/LwUi9MJgMXppMnPS7ltwgg6zP/IvWyInw95RQ5+PZDm1fqlljj8K+SmusLXKabN60yvh+/k65+a4XS6/rQ5nRa+/qkZPcffxZtfdfbcTkgD192RqXu8VbmICHAe4eull17ivvvuY/To0bRp04Y333yTgIAA3n333aqoTy4iB1JzycgrIjzQs7WhwZZ1XPvq0xiYWB0Oj3lWhwMDk2unPkWDrevd08P8fdmWnIlDlx6loo5uAZs/GCf/fK3a3Iix/+2HiUGxw+qxeLHDionBQ6/0Y/WWhidn2IOhOA/S9nmpcBERlwqFr8LCQtavX0/fvn1PbsBioW/fvvz000+VXpxcXFIyXZ3kLae1enWZOxOn9cxvJafVQue5M90/B9qtZOUVqeO9VExRPmQcLNXB/qVPL8dqdZ5xVavVycufntY9wrBC+oHKrlJE5Iwq1Ofr+PHjOBwO6tWr5zG9Xr167Nixo8x1CgoKKCg4+QGbmZl5HmXKxSC7oLjUNGtBvruP15lYHQ6a/bgEa0E+DrsfvjYLhQ4nOYWOM64n4qEoFxxF4HtyqJK8Apu7j9eZFDusfLG6BXkFNvztv7+XbX6uMcBERLyoynuZTp48mdDQUPcrJiamqncpVaSsASXsudlnDV4lLE4n9txs1w8mGBjoqUNyXk65Wp2Z43vW4FXC6bSQmXPKZXPTdLV+iYh4UYXCV506dbBarRw9etRj+tGjR4mOji5znUmTJpGRkeF+JSUlnX+1Uq3CAnwwTxsXqSAgCOc53inmtFgoCHDd3ZhX5MDuYyHEz6fS65RazB4CPgGuvlq/CwksxGI5xy8AFichgYUnJxTnu0bFFxHxogqFL19fX7p27cr333/vnuZ0Ovn+++/p3r17mevY7XZCQkI8XlIz1Qvxw2IxKHac/KBz2P3Y0/06HNYztx44rFZ29+iLw+4HuC5hhgf6Ehag8CUVYLW5RrMvONl9wd9ezKAeu7BZz3wJ22Z1MOSqnScvOZommE7XXY8iIl5U4cuOEydO5O233+a9995j+/btPPjgg+Tk5DB69OiqqE8uInF1AokKsnPstE7yG4aOwuI4c8uDxeHk16GjANczH7Pzi+kcE3ZOo+OLeIhu73peo/NkH8SJt67B4TjznzOHw8KEW9ecnJCXBn6hENWyqioVESlThcPXsGHD+M9//sMTTzxBp06dSEhIYOHChaU64UvtE2S3cVlcBOm5RRSf0s/rcLtuLB3/JCZGqRYwh9V1m//S8U+6B1o9nl1IWIAPHWPCvFm+1BYNOrlaqzIOuidd3f4gbzyyCAOzVAuYzeoa7uSNRxadHGjVNCHrMNTvqJYvEfE6wzy9E08Vy8zMJDQ0lIyMDF2CrIEycot4bdkujmTmEx8Z6NFy1WDrejrPnUmzH5e4R7jf3aMvvw4d5Q5eBcUO9h3PYVCnhtzYvn51HYbUdIk/wLp3ILiBx7ATq7c05OVPL+eL1S3cI9wPuWonE25d4znCfXqS66Havf4MoY2q4QCkMujzRGoqhS+psC2HMnjvx304nCaNyniwtrUgH3tuNgUBQe4+XuAKXnuP5dCxURhjesbj56O7zOQ8OR2w7l3XA7LD4z2GngDX8BOZOb6EBBae7ONVIusIFGZDl7ugSR+vlSyVT58nUlPpgWZSYe0ahjLsshh8bBZ2p2RTUOx5mcdh9yM3vI47eJmmyYnsAhKP59ChURgjrmys4CUXxmKFTiMgriek74fMw65Lib/ztxdTLyLXM3g5i+HELtedku1vgfje1VC4iMh5PlhbpFtcBBGBvny18TA7j2ZhMQwiAnwJtNvwsRqYpms4iaz8YtJzCwn2szGgfQP6tqlLgK/edlIJfAOg2z0QEQ87voGUra4O9H6h4BPoevyQs9jVypWbCo58iGgKbYe4+nrpZg8RqSa67CgXJL/IwZZDGaxJTOVAai45BcUUOZwYhoG/j5VgPxudGofTpXEYsZGBZ9+gyPnIPAwH18GBn113MRbluFrCLDbXJcmQhhDbAxp2KfVoIqm59HkiNZXCl1QK0zTJKigmJbOA/CIHhgFhAb5EBdnxtenqtniJoxhyjkHucVe/MJvdNYiqf7haumohfZ5ITaXrP1IpDMMgxM9HI9ZL9bLaIKS+6yUicpFSk4SIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIF9m8vUPTNAHIzMz09q5FRKQWKfkcKflcEakpvB6+srKyAIiJifH2rkVEpBbKysoiNDS0ussQOWeG6eWvDE6nk8OHDxMcHIxhGN7c9TnJzMwkJiaGpKQkQkJCqrucGknn8MLpHF4Ynb8LVxPOoWmaZGVl0aBBAywW9aKRmsPrLV8Wi4VGjRp5e7cVFhISctH+wakpdA4vnM7hhdH5u3AX+zlUi5fURPqqICIiIuJFCl8iIiIiXqTwdRq73c6TTz6J3W6v7lJqLJ3DC6dzeGF0/i6czqFI1fF6h3sRERGRS5lavkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvk7x+uuvExcXh5+fH1dccQVr1qyp7pJqlJUrVzJw4EAaNGiAYRh8+eWX1V1SjTJ58mQuu+wygoODqVu3LoMHD+a3336r7rJqlGnTptGhQwf3wKDdu3dnwYIF1V1WjTVlyhQMw+CRRx6p7lJEahWFr9/NmTOHiRMn8uSTT7JhwwY6duxIv379SElJqe7SaoycnBw6duzI66+/Xt2l1EgrVqxg7Nix/PzzzyxevJiioiJuuOEGcnJyqru0GqNRo0ZMmTKF9evXs27dOq699loGDRrE1q1bq7u0Gmft2rVMnz6dDh06VHcpIrWOhpr43RVXXMFll13Ga6+9BrieQRkTE8Of/vQnHn/88WquruYxDIMvvviCwYMHV3cpNdaxY8eoW7cuK1asoFevXtVdTo0VERHBCy+8wJgxY6q7lBojOzubLl268MYbb/Cvf/2LTp068corr1R3WSK1hlq+gMLCQtavX0/fvn3d0ywWC3379uWnn36qxsrkUpaRkQG4woNUnMPh4OOPPyYnJ4fu3btXdzk1ytixYxkwYIDH30QRqTxef7D2xej48eM4HA7q1avnMb1evXrs2LGjmqqSS5nT6eSRRx7hqquuol27dtVdTo2yefNmunfvTn5+PkFBQXzxxRe0adOmusuqMT7++GM2bNjA2rVrq7sUkVpL4UvkIjR27Fi2bNnCqlWrqruUGqdly5YkJCSQkZHBZ599xsiRI1mxYoUC2DlISkri4YcfZvHixfj5+VV3OSK1lsIXUKdOHaxWK0ePHvWYfvToUaKjo6upKrlUjRs3jvnz57Ny5UoaNWpU3eXUOL6+vjRr1gyArl27snbtWv773/8yffr0aq7s4rd+/XpSUlLo0qWLe5rD4WDlypW89tprFBQUYLVaq7FCkdpBfb5w/bHu2rUr33//vXua0+nk+++/V18R8RrTNBk3bhxffPEFS5cuJT4+vrpLqhWcTicFBQXVXUaNcN1117F582YSEhLcr27dujFixAgSEhIUvEQqiVq+fjdx4kRGjhxJt27duPzyy3nllVfIyclh9OjR1V1ajZGdnc3u3bvdPycmJpKQkEBERASNGzeuxspqhrFjxzJ79mzmzZtHcHAwR44cASA0NBR/f/9qrq5mmDRpEjfeeCONGzcmKyuL2bNns3z5chYtWlTdpdUIwcHBpfoYBgYGEhkZqb6HIpVI4et3w4YN49ixYzzxxBMcOXKETp06sXDhwlKd8KV869at45prrnH/PHHiRABGjhzJzJkzq6mqmmPatGkA9OnTx2P6jBkzGDVqlPcLqoFSUlK4++67SU5OJjQ0lA4dOrBo0SKuv/766i5NRMRN43yJiIiIeJH6fImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBf9fwYdP4WwBnTjAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=3\n" + ] + }, + { + "data": { + "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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rybXQrO+XipWpHY58/+0WshiMbipXT2C7DYWbDnCjqPZRIfYCfP3wfj9URslTNMkPbeIo1n5RAT4cmvXWHo0rVNqORGRGimhJ/j4w+Y5kLIVAqNcr9PHADNNV2tX1mHX8q0HQqv/A9uZv7iKSNkuucuOp0pOzWXJ9hS2HMogM78YA/CxWjAxKS42MYEQfxttG4RybctoGoYHVGu9IiJVIvsY7PwOkle77mAE11hghgGOIsB0DU8R1Qqa3wDRraq13BIX0+eJSEVc0uGrxJGMfJKO53AkI4/UnEIwIDLQTt0QPxpHBVI3RENKiMglIDcVjv3mauHKPuoaDd8vDELqQ3i863URtfxfjJ8nIufikrvsWJaYUD9iQhWwROQSFxABcd2quwqRWu+S63AvIiIiUp0UvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yFbdBUjtYJom6blFHMsuIK/QgcUwCAvwISrYjp+PtbrLk0uFowiyj0LOcTAdYLVDUF0IiASLvmuKyMVB4UsuSF6hg40H0lmdlEpyWi45BQ4cphMw8LNZCPHzoX1sKJ0bhZNQJxDDMKq7ZKmNMg5A8hpI/gXy0qAo1zXdsIBvEATHQPxV0KAL+IVWb60icskzTNM0vbnDzMxMQkNDycjIICQkxJu7lkq2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vavg2Pbfh6Eo+bVmuFq3/MOg4eUQfxWEx1dfrVKp9HkiNZXCl1SKnIJiDqXnkZJVQF6hA4sFQv19qRtip36oPxYNKSFVreSyYtZhyDkBpsM1IGtQXdfYYBpMtdbR54nUVLrsKJUi0G6jWd1gmtUNPvvCIlXBMCCkvuslInIR0zUgERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1FyC1Q1Z+EQfS8jiWVUBekQOLYRAW4EPdYD8ahPtjtRjVXaLUdqYJmQch8zDkHgenA2x2CIqG0FgIiKjuCkVEAIUvuUBHMvL5ac8J1u1LJS2nEIfpmm4AJuDvY6FRRCBXNI6ga1wEvjY1tkolczrg4HrY+wMc3wGFOZ7zDQP8wqBBF4i/GiKbVEuZIiIlFL7kvDidJj/uPsH8zYc5llVARKAv8ZGB2Kwnw5VpmuQWOkg6nsPOlCwSk9MZ2LEBDcL8q7FyqVVyTsDmz2D/z66fg+pCaCNX4CrhdEBeKuxaBMmroUU/aNYXbL7VU7OIXPIUvqTCHE6TeRsPsWjrUfxsVlrGBGMYpS8rGoZBoN1Ggt1GfpGDjckZHMsq4O5u8STUCayGyqVWyToCv7wFx7ZDeDzYg8tezmKFwCgIqAPZR2HjJ5B1FDrf5bosKSLiZboGJBX2w85jfLflKBGBvjQI9y8zeJ3Oz8dKs+ggjmbkM+uXfZzILvBCpVJrFebC2ulwYgdEtyo/eJ3KMCA4xtX/a88y2PyFq5+YiIiXKXxJhRxIy2Xh5iME2q2EB5R92cZakE9A2nGsBfke0y0Wg8ZRQew/kcu3mw7jdOqDT87TjoVwdDNENgNL6Qb8vAIbR1MDyCsoo3HfHuwKYXuWwJFNXihWRMTTeV12fP3113nhhRc4cuQIHTp04NVXX+Xyyy+v7NrkIrRixzFO5BTSMqZ0S0P9zWvpPGcGTX76HovTidNiYXe361h/yygOtekCgNViUD/cn3X70ujWpA5No4O8fQhS02WnuIJTYBRYPb8ArNzUkJc+vZy5PzbD6bRgsTgZ2H0nf77tF65qe/DkggGRkHPcFeLqtgWLvoeKiPdU+DfO7NmzmTBhAk8++STr16+nQ4cO9O3bl5SUlKqoTy4ix7ML2Hggg+hge6lLje2/nsVtE+6k8c9LsDidAFicThr/vITbxg+n/byP3MuG+PmQV+Tg1/1pXq1faolDv0Juqit8nWLq3E70fPhOvv6pKU6n61eb02nh65+a0mPcXbz5VSfP7YTUd90dmbrbW5WLiADnEb5eeukl7rvvPkaNGkXr1q158803CQgI4N13362K+uQisj81l4y8IsIDPVsb6m9ey7WvPo2BidXh8JhndTgwMLl2ylPU37LOPT3M35ethzNx6NKjVNTRzWDzB+Pkr6+Vmxoy5r99MTEodlg9Fi92WDExeOiVvqza3ODkDHswFOdB2l4vFS4i4lKh8FVYWMi6devo06fPyQ1YLPTp04effvqp0ouTi0tKpquTvOW0Vq/Oc2bgtJ75reS0Wug0Z4b750C7lay8InW8l4opyoeMA6U62L/06eVYrc4zrmq1Onn509O6RxhWSN9f2VWKiJxRhfp8HT9+HIfDQd26dT2m161bl+3bt5e5TkFBAQUFJz9gMzMzz6NMuRhkFxSXmmYtyHf38ToTq8NB0x8XYy3Ix2H3w9dmodDhJKfQccb1RDwU5YKjCHxPDlWSV2Bz9/E6k2KHlS9WNSevwIa//ff3ss3PNQaYiIgXVXkv00mTJhEaGup+xcbGVvUupYqUNaCEPTf7rMGrhMXpxJ6b7frBBAMDPXVIzsspV6szc3zPGrxKOJ0WMnNOuWxumq7WLxERL6pQ+KpTpw5Wq5WjR496TD969CgxMTFlrjNx4kQyMjLcr+Tk5POvVqpVWIAP5mnjIhUEBOE8xzvFnBYLBQGuuxvzihzYfSyE+PlUep1Si9lDwCfA1VfrdyGBhVgs5/gFwOIkJLDw5ITifNeo+CIiXlSh8OXr60uXLl34/vvv3dOcTifff/893bp1K3Mdu91OSEiIx0tqprohflgsBsWOkx90Drsfu7tdh8N65tYDh9XKru59cNj9ANclzPBAX8ICFL6kAqw212j2BSe7L/jbixnYfSc265kvYdusDgZftePkJUfTBNPpuutRRMSLKnzZccKECbz99tu89957bNu2jQcffJCcnBxGjRpVFfXJRSS+TiBRQXaOndZJfv2QkVgcZ255sDic/DpkJOB65mN2fjGdYsPOaXR8EQ8x7VzPa3Se7IM44dbVOBxn/nXmcFgYf+vqkxPy0sAvFKJaVFWlIiJlqnD4Gjp0KP/5z3944okn6NixI4mJiSxYsKBUJ3ypfYLsNi6LjyA9t4jiU/p5HWrblSXjnsTEKNUC5rC6bvNfMu5J90Crx7MLCQvwoUNsmDfLl9qifkdXa1XGAfekq9sd4I1HFmJglmoBs1ldw5288cjCkwOtmiZkHYJ6HdTyJSJeZ5ind+KpYpmZmYSGhpKRkaFLkDVQRm4Rry3dyZHMfBIiAz1arupvWUenOTNo+uNi9wj3u7r34dchI93Bq6DYwd7jOQzs2IAb29WrrsOQmi7pB1j7DgTX9xh2YtXmBrz86eV8saq5e4T7wVftYPytqz1HuE9Pdj1Uu+efIbRhNRyAVAZ9nkhNpfAlFbb5YAbv/bgXh9OkYRkP1rYW5GPPzaYgIMjdxwtcwWvPsRw6NAxjdI8E/Hx0l5mcJ6cD1r7rekB2eILH0BPgGn4iM8eXkMDCk328SmQdgcJs6HwXNO7ttZKl8unzRGoqPdBMKqxtg1CGXhaLj83CrpRsCoo9L/M47H7khtdxBy/TNDmRXUDS8RzaNwxj+JWNFLzkwlis0HE4xPeA9H2Qech1KfF3/vZi6kbkegYvZzGc2Om6U7LdLZDQqxoKFxE5zwdri3SNjyAi0JevNhxix9EsLIZBRIAvgXYbPlYD03QNJ5GVX0x6biHBfjb6t6tPn9bRBPjqbSeVwDcAut4DEQmw/RtI2eLqQO8XCj6BrscPOYtdrVy5qeDIh4gm0Gawq6+XbvYQkWqiy45yQfKLHGw+mMHqpFT2p+aSU1BMkcOJYRj4+1gJ9rPRsVE4nRuFERcZePYNipyPzENwYC3s/9l1F2NRjqslzGJzXZIMaQBx3aFB51KPJpKaS58nUlMpfEmlME2TrIJiUjILyC9yYBgQFuBLVJAdX5uubouXOIoh5xjkHnf1C7PZXYOo+oerpasW0ueJ1FS6/iOVwjAMQvx8NGK9VC+rDULquV4iIhcpNUmIiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHN2zs0TROAzMxMb+9aRERqkZLPkZLPFZGawuvhKysrC4DY2Fhv71pERGqhrKwsQkNDq7sMkXNmmF7+yuB0Ojl06BDBwcEYhuHNXZ+TzMxMYmNjSU5OJiQkpLrLqZF0Di+czuGF0fm7cDXhHJqmSVZWFvXr18diUS8aqTm83vJlsVho2LCht3dbYSEhIRftL5yaQufwwukcXhidvwt3sZ9DtXhJTaSvCiIiIiJepPAlIiIi4kUKX6ex2+08+eST2O326i6lxtI5vHA6hxdG5+/C6RyKVB2vd7gXERERuZSp5UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4esUr7/+OvHx8fj5+XHFFVewevXq6i6pRlmxYgUDBgygfv36GIbBl19+Wd0l1SiTJk3isssuIzg4mOjoaAYNGsRvv/1W3WXVKFOnTqV9+/bugUG7devG/Pnzq7usGmvy5MkYhsEjjzxS3aWI1CoKX7+bPXs2EyZM4Mknn2T9+vV06NCBvn37kpKSUt2l1Rg5OTl06NCB119/vbpLqZGWL1/OmDFj+Pnnn1m0aBFFRUXccMMN5OTkVHdpNUbDhg2ZPHky69atY+3atVx77bUMHDiQLVu2VHdpNc6aNWuYNm0a7du3r+5SRGodDTXxuyuuuILLLruM1157DXA9gzI2NpY//elPPP7449VcXc1jGAZffPEFgwYNqu5Saqxjx44RHR3N8uXL6dmzZ3WXU2NFRETwwgsvMHr06OoupcbIzs6mc+fOvPHGG/zrX/+iY8eOvPLKK9VdlkitoZYvoLCwkHXr1tGnTx/3NIvFQp8+ffjpp5+qsTK5lGVkZACu8CAV53A4+Pjjj8nJyaFbt27VXU6NMmbMGPr37+/xO1FEKo/XH6x9MTp+/DgOh4O6det6TK9bty7bt2+vpqrkUuZ0OnnkkUe46qqraNu2bXWXU6Ns2rSJbt26kZ+fT1BQEF988QWtW7eu7rJqjI8//pj169ezZs2a6i5FpNZS+BK5CI0ZM4bNmzezcuXK6i6lxmnRogWJiYlkZGTw2WefMWLECJYvX64Adg6Sk5N5+OGHWbRoEX5+ftVdjkitpfAF1KlTB6vVytGjRz2mHz16lJiYmGqqSi5VY8eOZd68eaxYsYKGDRtWdzk1jq+vL02bNgWgS5curFmzhv/+979Mmzatmiu7+K1bt46UlBQ6d+7snuZwOFixYgWvvfYaBQUFWK3WaqxQpHZQny9cv6y7dOnC999/757mdDr5/vvv1VdEvMY0TcaOHcsXX3zBkiVLSEhIqO6SagWn00lBQUF1l1EjXHfddWzatInExET3q2vXrgwfPpzExEQFL5FKopav302YMIERI0bQtWtXLr/8cl555RVycnIYNWpUdZdWY2RnZ7Nr1y73z0lJSSQmJhIREUGjRo2qsbKaYcyYMcyaNYu5c+cSHBzMkSNHAAgNDcXf37+aq6sZJk6cyI033kijRo3Iyspi1qxZLFu2jIULF1Z3aTVCcHBwqT6GgYGBREZGqu+hSCVS+Prd0KFDOXbsGE888QRHjhyhY8eOLFiwoFQnfCnf2rVrueaaa9w/T5gwAYARI0YwY8aMaqqq5pg6dSoAvXv39pg+ffp0Ro4c6f2CaqCUlBTuvvtuDh8+TGhoKO3bt2fhwoVcf/311V2aiIibxvkSERER8SL1+RIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES/6/23MJUtBSWv3AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=4\n" + ] + }, + { + "data": { + "image/png": "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IyPD7bJ3yf8FEblEmeJxGRkZJmAOGjSo1Ly0tDTz2LFjrldubq5r3nXXXWe2bt3azM/Pd01zOBxm165dzSZNmrimTZ8+3QTMPn36mA6HwzV9woQJptVqNdPT003TNM2srCwzNDTUvP/++91qOHLkiBkSEuI2fcSIESZgPvHEE6VqPrXGEpMmTTINwzAPHDjgmvb000+bp7/lYmNjzREjRpRav8RLL71kAuasWbMqfB7Gjx9vAuYvv/zimpaSkmKGhISYgJmYmFjufk/Xv39/MzY29pyXj42NNfv3728WFxeb0dHR5vPPP2+apmlu377dBMyVK1e6/p3WrVvnWq+sc/nxxx+bgPnDDz+Uu7+HH37YtFqt5rJly0zTdJ6PJk2amH379nV7D+Tm5prx8fHm9ddff8b6ExMTTaDc108//eR2rKfXl5KSYtpsNvPRRx91TXvyySdNb29vMzU11TWtoKDADA0NNe+9917XtJLzcuq/T8k+Fi1a5FZnyb/xjz/+6JqWlZVlxsfHm3FxcabdbjdN0zSXL19uAmaLFi3MgoIC17L/+c9/TMDcsmWLa1rPnj1NwJw9e7Zr2s6dO03AtFgs5s8//+yavnjxYhMwp0+f7po2evRos06dOubx48fdar3jjjvMkJAQ179xRWqq6PtPRC5uuuxYDTIzM4Gyv7326tWLyMhI1+utt94CIDU1lWXLlnH77beTlZXF8ePHOX78OCdOnKBv377s3r2bw4cPu23rgQcecLsM1b17d+x2OwcOHACcrSzp6ekMGzbMtb3jx49jtVq56qqrWL58ean6HnrooVLTTm1JysnJ4fjx43Tt2hXTNPn111/P4ww5LV++nCeffJI///nP3H333RU+D99++y1XX321WwtPZGSk63KpJ1itVm6//XY+/vhjwNnRPiYmhu7du5e5/KnnMj8/n+PHj3P11VcDsHHjxjLXmTVrFm+//TYvvfQSvXv3BiAhIYHdu3dz5513cuLECdd5ysnJ4brrruOHH344p8uvDzzwAEuWLCn1atmypdtyLVu2dDumyMhImjVrxr59+1zThg4dSlFREV988YVr2nfffUd6ejpDhw49ay3x8fGlWse+/fZbrrzySq655hrXtMDAQB544AH279/P9u3b3ZYfNWqUW+tgSc2n1lmyjTvuuMP1c7NmzQgNDaVFixZurdUlfy9Z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4vnnn+fNN98kOzub6OhorrrqKv70pz+dUz0ff/yx607NU40YMeKCwtff//53cnNzz+kuxzOpXbs2a9as4fHHH+eNN94gPz+fNm3a8PXXX9O/f/8L2vaF1LR27Vqee+45vvjiC95++20iIiK44oorePHFF89rmw8//DAJCQlMnz6d1157jdjYWIUvkUuYYapXp4iIiIjHqM+XiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMfH+XI4HPz+++8EBQXpkRkiInLeTNMkKyuLunXrVsuAuiLny+Ph6/fffycmJsbTuxURkRoqKSnJ7WkgIhc7j4evoKAgwPmfJTg42NO7FxGRGiIzM5OYmBjX54rIpcLj4avkUmNwcLDCl4iIXDB1YZFLjS6Si4iIiHiQwpeIiIiIByl8iYiIiHiQx/t8iYiIeIrdbqeoqKi6y5AaztvbG6vVes7LK3yJiEiNY5omR44cIT09vbpLkctEaGgo0dHR53QDiMKXiIjUOCXBKyoqCn9/f90RKVXGNE1yc3NJSUkBoE6dOmddR+FLRERqFLvd7gpeERER1V2OXAb8/PwASElJISoq6qyXINXhXkREapSSPl7+/v7VXIlcTkreb+fSx1DhS0REaiRdahRPqsj7TeFLRERExIMUvkREREQ8SOFLRETkNIWFhRc0/0IdOXKEP//5zzRs2BCbzUZMTAwDBgzg+++/r9L9imcofImIiJxizpw5tG7dmqSkpDLnJyUl0bp1a+bMmVMl+9+/fz8dO3Zk2bJlvPzyy2zZsoVFixbRu3dvxowZUyX7FM9S+BIREflDYWEhTz31FLt27aJXr16lAlhSUhK9evVi165dPPXUU1XSAvbwww9jGAZr165lyJAhNG3alCuuuIKJEyfy888/s3//fgzDICEhwbVOeno6hmGwYsUK17StW7dy4403EhgYSO3atbn77rs5fvx4pdcrFafwJSIi8gcfHx+WLl1Kw4YN2bdvn1sAKwle+/bto2HDhixduhQfH59K3X9qaiqLFi1izJgxBAQElJofGhp6TttJT0/n2muvpX379qxfv55FixZx9OhRbr/99kqtV86PwpeIiMgpYmJiWLFihVsAW7NmjVvwWrFiBTExMZW+7z179mCaJs2bN7+g7bz55pu0b9+eF154gebNm9O+fXs+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U9i2bRszZ85k2bJl/PWvfwWga9euvP766wQHB5OcnExycjKPPfZYqVqGDx/O119/7QptAIsXLyY3N5fBgwcDMGnSJGbNmsU777zDtm3bmDBhAnfddRcrV66slPN1STI9LCMjwwTMjIwMT+9aRERqkPI+T/Ly8szt27ebeXl557XdwYNN08vLNJ0xq+yXl5dpDhlSGUfhbsSIEebAgQNN0zTNq6++2rz33ntN0zTNL7/80iz5yB49erT5wAMPuK33448/mhaLxczLyzN37NhhAua6detc83fv3m0C5muvvVbuvj/77DMzIiLC9fP06dPNkJCQUsvFxsa6tlNUVGTWqlXLnDVrlmv+sGHDzKFDh5qmaZr5+fmmv7+/uWbNGrdtjB492hw2bNiZT8YlpiLvOw2yKiIi8oe8PJg37+SlxvIUF8OXXzqXr6rnbb/44otce+21pVqcNm3axObNm/noo49c00zTxOFwkJiYyK5du/Dy8qJDhw6u+Y0bNyYsLMxtO0uXLmXSpEns3LmTzMxMiouLyc/PJzc395z7dHl5eXH77bfz0Ucfcffdd5OTk8O8efP45JNPANizZw+5ublcf/31busVFhbSvn37Cp2PmkThS0RE5A+ZmWcPXiUcDufyVRW+evToQd++fXnyyScZOXKka3p2djZ/+tOfGDduXKl1GjRowK5du8667f3793PzzTfz0EMP8a9//Yvw8HBWrVrF6NGjKSwsrFCH+uHDh9OzZ09SUlJYsmQJfn5+9OvXz1UrwDfffEO9evXc1rPZbOe8j5pG4UtEROQPwcFgsZxbALNYnMtXpcmTJ9OuXTuaNWvmmtahQwe2b99O48aNy1ynWbNmFBcX8+uvv9KxY0fA2QJ16t2TGzZswOFw8Morr2CxOLt/f/rpp27b8fHxwW63n7XGrl27EhMTw5w5c1i4cCG33XYb3t7eALRs2RKbzcbBgwfp2bNnxQ6+BlP4EhER+YOfHwwc6Lyr8fTO9qfy8nIuV1WtXiVat27N8OHDmTJlimva448/ztVXX83YsWO57777CAgIYPv27SxZsoQ333yT5s2b06dPHx544AGmTp2Kt7c3jz76KH5+fq6xwho3bkxRURFvvPEGAwYMYPXq1bxz2i2ccXFxZGdn8/3339O2bVv8/f3LbRG78847eeedd9i1axfLly93TQ8KCuKxxx5jwoQJOBwOrrnmGjIyMli9ejXBwcGMGDGiCs7axU93O4qIiJxi4kQ4W4OP3Q4TJnimnueeew7HKU1xbdq0YeXKlezatYvu3bvTvn17nnrqKerWretaZtasWdSuXZsePXowePBg7r//foKCgvD19QWgbdu2vPrqq7z44ou0atWKjz76qNTQFl27duXBBx9k6NChREZG8tJLL5Vb4/Dhw9m+fTv16tWjW7dubvOef/55/vGPfzBp0iRatGhBv379+Oabb4iPj6+M03NJMkzTND25w8zMTEJCQsjIyCC4qttrRUSkxirv8yQ/P5/ExETi4+NdYaOi3nnHOZyE1ereAubl5Qxeb78NDz54oUfgOYcOHSImJoalS5dy3XXXVXc5NVJF3ndq+RIRETnNgw/Cjz86Ly3+0SUKi8X5848/XvzBa9myZcyfP5/ExETWrFnDHXfcQVxcHD169Kju0gT1+RIRESlTt27OV16e867G4OCq7+NVWYqKivjb3/7Gvn37CAoKomvXrnz00UeujvBSvRS+REREzsDP79IJXSX69u1L3759q7sMKYcuO4qIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kO52FBERAQ5kHiCnKKfC6wV4BxAbHFsFFUlNpfAlIiKXvQOZB7j5y5vPe/0FgxcogMk502VHERG57J1Pi1dlrn+6n376CavVSv/+/St1u+dq//79GIZBQkJCtey/plP4EhERuci8//77/PnPf+aHH37g999/r+5ypJIpfImIiFxEsrOzmTNnDg899BD9+/dnxowZbvPnz59PkyZN8PX1pXfv3sycORPDMEhPT3cts2rVKrp3746fnx8xMTGMGzeOnJyTrXNxcXG88MIL3HvvvQQFBdGgQQPeffdd1/z4+HgA2rdvj2EY9OrVqyoP+bKj8CUiInIR+fTTT2nevDnNmjXjrrvu4oMPPsA0TQASExO59dZbGTRoEJs2beJPf/oT/+///T+39ffu3Uu/fv0YMmQImzdvZs6cOaxatYqxY8e6LffKK6/QqVMnfv31Vx5++GEeeughfvvtNwDWrl0LwNKlS0lOTuaLL77wwJFfPhS+RERELiLvv/8+d911FwD9+vUjIyODlStXAjBt2jSaNWvGyy+/TLNmzbjjjjsYOXKk2/qTJk1i+PDhjB8/niZNmtC1a1emTJnCrFmzyM/Pdy1300038fDDD9O4cWMef/xxatWqxfLlywGIjIwEICIigujoaMLDwz1w5JcPhS8REZGLxG+//cbatWsZNmwYAF5eXgwdOpT333/fNb9z585u61x55ZVuP2/atIkZM2YQGBjoevXt2xeHw0FiYqJruTZt2rj+bhgG0dHRpKSkVNWhySk01ISIiMhF4v3336e4uJi6deu6ppmmic1m48033zynbWRnZ/OnP/2JcePGlZrXoEED19+9vb3d5hmGgcPhOM/KpSIUvkRERC4CxcXFzJo1i1deeYUbbrjBbd6gQYP4+OOPadasGd9++63bvHXr1rn93KFDB7Zv307jxo3PuxYfHx8A7Hb7eW9DyqfwJSIichFYsGABaWlpjB49mpCQELd5Q4YM4f333+fTTz/l1Vdf5fHHH2f06NEkJCS47oY0DAOAxx9/nKuvvpqxY8dy3333ERAQwPbt21myZMk5t55FRUXh5+fHokWLqF+/Pr6+vqVqkvOnPl8iIiIXgffff58+ffqUGXKGDBnC+vXrycrK4vPPP+eLL76gTZs2TJ061XW3o81mA5x9uVauXMmuXbvo3r077du356mnnnK7lHk2Xl5eTJkyhWnTplG3bl0GDhxYOQcpABhmyf2rHpKZmUlISAgZGRkEBwd7ctciIlKDlPd5kp+fT2JiIvHx8fj6+p7Ttraf2M7QBUPPu5Y5N8+hZUTL817/QvzrX//inXfeISkpqVr2L04Ved/psqOIiMgl5O2336Zz585ERESwevVqXn755VJjeMnFTeFLRETkErJ7927++c9/kpqaSoMGDXj00Ud58sknq7ssqQCFLxERuewFeAdU6/oV8dprr/Haa695bH9S+RS+RETkshcbHMuCwQvIKco5+8KnCfAOIDY4tgqqkppK4UtERAQUoMRjNNSEiIiIiAcpfImIiIh4kC47ioiIlMM0TfKLHBTaHfhYLfh6W1wjyYucL4UvERGR0+QX2dmenMm6xFQOnMjB7jCxWgxiIwLoHB9OyzrB+Hpbq7tMuUQpfImIiJxi//Ec5qxP4sCJHAwMwvy98fGxUmx3sPlQBpsOpRMbEcDQTjHE1fLcEBOXgl69etGuXTtef/316i7loqY+XyIiIn/YfzyH6asTOXA8h9jwABpHBRIRaCPEz5uIQBuNowKJDQ/gwB/L7T9e8aEpzmTk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4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg7yquwCpGUzTJD23iGPZBeQV2rEYBqH+3kQG2fD1tlZ3eXK5sBdB9lHIOQ6mHaw2CKwN/hFg0XdNEbk4KHzJBckrtLP5UDprE1NJSsslp8CO3XQABr5eFoJ9vWkTE0KHBmHE1wrAMIzqLllqooxDkLQOkn6BvDQoynVONyzgEwhB0RDXDep1BN+Q6q1VRC57hmmapid3mJmZSUhICBkZGQQHB3ty11LJ9qRkMT/hd3anZONlNQj39yHA5oW31YJpmuQV2cnKLyYtt4hAm5VrmkRyfcvaBNqU+aWSFBfAnqXw2yLISwXfMPALAW9/Z/ByFENhNuSmQnEehMZBq8FQtwPoi8AlT58ncqlS+JLz8su+E8zdeIjsgmJiwwPw8TrzJZ3UnEJSsvK5om4Id10dS3iAj4cqlRqrMAc2zISDa8AvHAKjzxyoHMWQtt8Zyq4YBM1uUgC7xOnzRC5V6gQhFbb5UDqfrk/C7jBpHBl41uAFEB7gQ8NagWw9nMFHPx8gr9DugUqlxrIXw6//gwOrITQeguqcPUhZvCCisfMy5JbPYd9yz9QqInIahS+pkPTcQuYn/E6R3UH9MP8y+3AVFhhkpVkpLHCf5+NloWFkAFt/z2TZzqOeKllqogOr4cAa52VEH//S8wuKIDXL+efpAqOclyW3z4f0g1VeqojI6dT5Ripk1e7jHEzNpWntoFLz9m31ZeXcMLb+FIjpMDAsJq26ZNPr1jTir8gHwOZlJSLAh5W7jtG+QRh1Q/08fQhyqcvPhJ0LwNsPbIHu87bsh89W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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=5\n" + ] + }, + { + "data": { + "image/png": "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msybN48BAwZgmqbH/6u+ffuSnp5e4t/xfGsSkZpDlx2rQPHliaysrBLzpk+fTmZmJseOHfPo6Lxnzx5M0+Qf//gH//jHP0rdbnJyMvXr13f/3LBhQ4/54eHhgOuSCsDu3bsBuO6660rdXkhIiMfPNpuNBg0alFju4MGDPPHEE3z55ZfubRdLT08vddvncujQIYYOHco111zDSy+95J5envNw4MCBUi/rNm/e/IJqOlN6erpHvzZfX18iIiJKLHfnnXcydepUNm3axJw5c7jjjjtK9M0qlpKSwlNPPcVHH31EcnJyif2dKSEhgQcffJBhw4YxceJE9/Tif9szL/Gdub3i90RZmjZtWuZwGac7870Grvfb6e+H9u3b06JFC+bOncvo0aMB1yXHWrVqlfkePF18fHyJaWX9G7ds2dI9v02bNmXWeeb/iWINGjQo8W8UGhpaog9maGiox/rHjx8nLS2Nt956i7feeqvU4zjz3/V8axKRmkPhqwqEhoZSt25dtm7dWmJe8QfJmeNHFbdSPProo2X2jWnSpInHz2XdMWaapsc233///RJDIQAefXrAdWfimXdfOhwObrjhBlJSUnjsscdo0aIFgYGBHD58mJEjR15Q5/aCggJuvfVW7HY7H3/8sUcdF3IeKssjjzzi0YG8Z8+erFixosRyV111FY0bN2b8+PEkJiZy5513lrnN22+/nR9++IG//OUvdOjQgaCgIJxOJ/369StxLlNTUxkyZAjNmjXjnXfe8ZhXvOwLL7xAhw4dSt1XRfYbOtd7rdjQoUP597//zYkTJwgODubLL79k2LBhJd5rpamIvnrnW2dZy53v/6m77rqrzODbrl27C6pJRGoOha8q0r9/f9555x3Wrl17Xh2fGzVqBICPj895tUScj+IO4LVr177gbW7ZsoVdu3Yxa9Ys7rnnHvf0JUuWXHBd48aNIyEhgVWrVlGnTh2PeeU5D7Gxse4WoNP9+uuvF1zb6f761796tE6erRVp2LBh/Otf/6Jly5ZlhqHU1FS+++47nnrqKZ544gn39NKOwel0Mnz4cNLS0li6dKn75odixf+2ISEhFfZ+qQhDhw7lqaeeYt68edSpU4eMjAyPy3vlFRsbW+q/586dO93zvSkqKorg4GAcDkeFnveyWkpFpHpSn68q8te//pWAgADuvfdejh07VmL+md96a9euTa9evZg+fTpHjhwpsXxpQ0icS9++fQkJCeHZZ5+lsLDwgrZZ/K399HpN0+S///1vuesBmDFjBtOnT+f1118vNZSW5zzcfPPN/PTTT6xdu9Zj/gcffHBBtZ2pVatW9OnTx/3q3Llzmcved999PPnkk7z44otlLlPauQRKHdn8qaeeYvHixXz44YelXo7r3LkzjRs35j//+U+pl7cv5P1SEVq2bEnbtm2ZO3cuc+fOpW7duvTo0eOCt3fzzTezdu1afvzxR/e07Oxs3nrrLeLi4kr0TatsVquVIUOGMG/evFJbti/0vAcGBl7wJXwRufSo5auKNG3alDlz5jBs2DCaN2/uHuHeNE0SExOZM2cOFovFo4/V66+/zrXXXkvbtm25//77adSoEceOHePHH3/k0KFDbNq0qVw1hISEMG3aNO6++246derEHXfcQVRUFAcPHuTrr7/mmmuu4bXXXjvrNlq0aEHjxo159NFHOXz4MCEhIcybN++C+qucOHGChx9+mFatWmG32/nf//7nMX/w4MEEBgae93n461//yvvvv0+/fv145JFH3ENNxMbGev3RTbGxsfzzn/886zIhISH06NGD559/nsLCQurXr8+3335LYmKix3JbtmzhmWeeoUePHiQnJ5c4T3fddRcWi4V33nmHm266idatWzNq1Cjq16/P4cOHWb58OSEhIXz11VfnrHvjxo0ltg+ulrWuXbue+8BLMXToUJ544gn8/PwYPXr0RQ0k/Pjjj/Phhx9y0003MW7cOCIiIpg1axaJiYnMmzevSgYpnjJlCsuXL+eqq67i/vvvp1WrVqSkpLBx40aWLl1KSkpKubfZuXNn5s6dy8SJE7niiisICgpiwIABlVC9iHiDwlcVGjhwIFu2bOHFF1/k22+/5b333sMwDGJjY+nfvz8PPvgg7du3dy/fqlUr1q9fz1NPPcXMmTM5efIktWvXpmPHjh6XqcrjzjvvpF69ekyZMoUXXniB/Px86tevT/fu3Rk1atQ51/fx8eGrr75i3LhxTJ48GT8/PwYPHszYsWM9aj8fWVlZ5OXlsX37dvfdjadLTEwkMDDwvM9D3bp1Wb58OX/605+YMmUKkZGRPPjgg9SrV8/d4ftSM2fOHP70pz/x+uuvY5omN954IwsXLqRevXruZU6ePIlpmqxcuZKVK1eW2EbxpdBevXrx448/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7Fiu81GTKHyJiIj8LiPj3MGrmNPpWr6ywlePHj3o27cvkyZNYuTIke7pWVlZ/PGPf2TcuHEl1mnYsCG7du0657b379/PLbfcwkMPPcS///1vIiIiWL16NaNHj6agoKBcHeqHDx9Oz549SU5OZsmSJfj7+9OvXz93rQBff/019evX91jPbref9z5qGoUvERGR34WEgMVyfgHMYnEtX5mmTJlChw4daN68uXtap06d2L59O02aNCl1nebNm1NUVMQvv/xC586dAVcL1Ol3T27YsAGn08mLL76IxeLq/v3xxx97bMfX1xeHw3HOGrt160ZMTAxz585l4cKF3Hbbbfj4+ADQqlUr7HY7Bw8epGfPnuU7+BpM4UtEROR3/v4wcKDrrsYzO9ufzmZzLVdZrV7F2rZty/Dhw5k6dap72mOPPcbVV1/N2LFjue+++wgMDGT79u0sWbKE1157jRYtWtCnTx8eeOABpk2bho+PD3/+85/x9/d3jxXWpEkTCgsLefXVVxkwYABr1qzhzTNu4YyLiyMrK4vvvvuO9u3bExAQUGaL2J133smbb77Jrl27WL58uXt6cHAwjz76KBMmTMDpdHLttdeSnp7OmjVrCAkJYcSIEZVw1i59uttRRETkNBMnwrkafBwOmDDBO/U8/fTTOE9rimvXrh0rV65k165ddO/enY4dO/LEE09Qr1499zKzZ8+mTp069OjRg8GDB3P//fcTHByMn58fAO3bt+ell17iueeeo02bNnzwwQclhrbo1q0bDz74IEOHDiUqKornn3++zBqHDx/O9u3bqV+/Ptdcc43HvGeeeYZ//OMfTJ48mZYtW9KvXz++/vpr4uPjK+L0VEuGaZqmN3eYkZFBaGgo6enphFR2e62IiNRYZX2e5OXlkZiYSHx8vDtslNebb7qGk7BaPVvAbDZX8HrjDXjwwYs9Au85dOgQMTExLF26lOuvv76qy6mRyvO+U8uXiIjIGR58EL7/3nVp8fcuUVgsrp+///7SD17Lli3jyy+/JDExkR9++IE77riDuLg4evToUdWlCerzJSIiUqprrnG9cnNddzWGhFR+H6+KUlhYyN/+9jf27dtHcHAw3bp144MPPnB3hJeqpfAlIiJyFv7+1Sd0Fevbty99+/at6jKkDLrsKCIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIi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9ttvqV27NjfffDNt27ZlypQp7tqGDBlCv3796N27N1FRUXz44YcYhsH8+fMJDw+nR48e9OnTh0aNGjF37txyn59Zs2aRk5PD5MmTqVu3rvv1hz/8ocx1fH19mTRpEu3ataNHjx5YrVY++ugjAAICAli1ahUNGzbkD3/4Ay1btmT06NHk5eUREhICwP3330/z5s3p0qULUVFRrFmzptx1n84wz/UOq2AZGRmEhoaSnp7uPigREZHyKuvzJC8vj8TExLOOFVWW4hHuT+SeoGFwQ9dwEmcocBRwMPMgtfxrcXfLu4kJiSllS3K5Kc/7Th3uRUREftcwpCF3tbzL/WxHDNdwElbDisN0kJqfCiY0DG7IkKZDFLzkgih8iYiInKZhSEMe6vAQv6b8yoZjG0jKTKLQUYjVYqVNZBs61+lM84jm2K0V92gfubwofImIiJzBbrXTLqodbWu1Jc+RR6GzEB+LD35Wv0odyV4uDwpfIiIiZTAMA3+bP/5U7uj1cnnR3Y4iIlIjefl+MrnMlef9pvAlIiI1io+Pa7T5nJycKq5ELifF77fi99/Z6LKjiIjUKFarlbCwMJKTkwHXOE7qpyWVxTRNcnJySE5OJiwsrMyx2E6n8CUiIjVOdHQ0gDuAiVS2sLAw9/vuXBS+RESkxjEMg7p161K7du2LfhSMyLn4+PicV4tXMYUvERGpsaxWa7k+FEW8QR3uRURERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2xVXcClJDu/iKz8IgwgyM9GgK9Oj4hchgrzIC8NTBN8A8AeAoZR1VWJ1BiXfbpIzsxjc1I6W39L51hGHgVFTgB8bRbqhPjRtn4o7RqEERVsr+JKRUQqUW4q/PaL65V+yBXAMMHqC4G1oE5baNAZQmMUxEQukmGapunNHWZkZBAaGkp6ejohISHe3LWH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VyuQq+Ij6BQbjs+5hgMQKS+nE478AvvXwPGdvw9DUfxrzXC1bvmHQYMrIe4aCI+rulqlQunzRKorhS+pENn5RfyWlktyZj65BQ4sFgj196VOiJ16of5YNKSEVLbiy4qZRyD7JJgO14CsQXVcY4NpMNUaR58nUl3psqNUiEC7jaZ1gmlaJ/jcC4tUBsOAkHqul4jIJUzXgERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExItsVV2A1AyZeYUcSs3leGY+uYUOLIZBWIAPdYL9qB/uj9ViVHWJUtOZJmQchowjkHMCnA6w2SGoNoTGQEBEVVcoIgIofMlFOpqex4/7TrLhQAqp2QU4TNd0AzABfx8LDSMCuapRBF1iI/C1qbFVKpjTAYc3wv7v4cQuKMj2nG8Y4BcG9TtD3LUQ2bhKyhQRKabwJRfE6TT5Ye9JFm49wvHMfCICfYmLDMRmPRWuTNMkp8BB4olsdidnkpCUxsAO9akf5l+FlUuNkn0Stn4KB39y/RxUB0IbugJXMacDclNgzxJIWgvN+0HTvmDzrZqaReSyp/Al5eZwmizY/BtLth/Dz2alRXQwhlHysqJhGATabcTbbeQVOticlM7xzHzu6RpHfK3AKqhcapTMo/DzW3B8J4THgT249OUsVgiMgoBakHUMNn8Mmceg092uy5IiIl6ma0BSbt/vPs63244REehL/XD/UoPXmfx8rDStHcSx9Dzm/HyAk1n5XqhUaqyCHFg/A07ugtotyw5epzMMCI529f/atwK2fu7qJyYi4mUKX1Iuh1JzWLz1KIF2K+EBpV+2sebnEZB6Amt+nsd0i8WgUVQQB0/m8M2WIzid+uCTC7RrMRzbCpFNwVKyAT8338axlABy80tp3LcHu0LYvmVwdIsXihUR8XRBlx1ff/11XnjhBY4ePUr79u159dVXufLKKyu6NrkErdp1nJPZBbSILtnSUG/rejrNm0njH7/D4nTitFjY2/V6Nt46it9adwbAajGoF+7PhgOpdG1ciya1g7x9CFLdZSW7glNgFFg9vwCs3tKAlz65kvk/NMXptGCxOBnYbTd/vv1nrmlz+NSCAZGQfcIV4uq0AYu+h4qI95T7N87cuXOZOHEiTz75JBs3bqR9+/b07duX5OTkyqhPLiEnsvLZfCid2sH2Epca2301h9sn3kWjn5ZhcToBsDidNPppGbdPGE67BR+6lw3x8yG30MEvB1O9Wr/UEL/9AjkprvB1mmnzO9Ljkbv46scmOJ2uX21Op4WvfmxC93F38+aXHT23E1LPdXdkyl5vVS4iAlxA+HrppZe4//77GTVqFK1ateLNN98kICCA9957rzLqk0vIwZQc0nMLCQ/0bG2ot3U91736NAYmVofDY57V4cDA5LqpT1Fv2wb39DB/X7YfycChS49SXse2gs0fjFO/vlZvacCY//bFxKDIYfVYvMhhxcTg4Vf6smZr/VMz7MFQlAup+71UuIiIS7nCV0FBARs2bKBPnz6nNmCx0KdPH3788ccKL04uLckZrk7yljNavTrNm4nTeva3ktNqoeO8me6fA+1WMnML1fFeyqcwD9IPlehg/9InV2K1Os+6qtXq5OVPzugeYVgh7WBFVykiclbl6vN14sQJHA4HderU8Zhep04ddu7cWeo6+fn55Oef+oDNyMi4gDLlUpCVX1RimjU/z93H62ysDgdNfliKNT8Ph90PX5uFAoeT7ALHWdcT8VCYA45C8D01VEluvs3dx+tsihxWPl/TjNx8G/7239/LNj/XGGAiIl5U6b1MJ0+eTGhoqPsVExNT2buUSlLagBL2nKxzBq9iFqcTe06W6wcTDAz01CG5IKddrc7I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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=6\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1C0lEQVR4nO3dd3hUZf7+8feZmWTSGwRCCUmQXqVYAGmKAiJfQFREVEDUVWER0F11f2vfFdS1LBbEQnNFUVFBFBCkKEWlGOnSAgQEAqT3ZOb8/hgzMCQBAsmEhPt1XXNBTv3MYcjc8zzPecYwTdNERERERLzCUtkFiIiIiFxKFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL5EREREvEjhS0RERMSLFL7Ea5555hkMw/BYFhsby4gRI7xax4wZMzAMg3379nn1vHJu9O8jItWdwlclS0hIYMyYMTRp0oSAgAACAgJo0aIFo0ePZtOmTZVd3iVp3759GIZxTo/SAkJsbCyGYdCrV68S17/33nvuY6xfv74Cn835Ods1mDRpUmWXeEmZPXs2r7/+emWXISLlxFbZBVzKFixYwJAhQ7DZbAwbNoy2bdtisVjYsWMHX3zxBVOmTCEhIYGYmJjKLrXC/P7771gsF9dngMjISD788EOPZa+88goHDx7ktddeK7Ztafz8/Fi+fDlHjhwhKirKY91HH32En58fubm55Vd4BRg6dCg33nhjseXt2rWrsHPedddd3H777djt9go7R1Uze/ZstmzZwrhx4yq7FBEpBwpflWTPnj3cfvvtxMTE8P3331OnTh2P9S+++CJvv/32RRdMTpWVlUVgYOAFHeNifIMNDAzkzjvv9Fj2ySefkJKSUmz5mXTp0oV169YxZ84cHn74YffygwcP8uOPPzJo0CDmzp1bbnVXhPbt25fpOZcHq9WK1Wo94zamaZKbm4u/v7+XqhIRKT8X7zt7NffSSy+RlZXF9OnTiwUvAJvNxtixY4mOjvZYvmPHDm655RYiIiLw8/OjY8eOzJ8/32ObojEzq1evZsKECURGRhIYGMigQYM4duxYsXMtXLiQrl27EhgYSHBwMP369WPr1q0e24wYMYKgoCD27NnDjTfeSHBwMMOGDQPgxx9/5NZbb6VBgwbY7Xaio6MZP348OTk5Z70Op4/5OtcuvnO5DgBbt27l2muvxd/fn/r16/Ovf/0Lp9N51rrKg5+fHzfffDOzZ8/2WP7xxx8THh5O7969i+2zadMmRowYQcOGDfHz8yMqKop77rmHEydOuLc5W5fgqX7++Wf69OlDaGgoAQEBdO/endWrV5fr84yNjeWmm25i1apVXHnllfj5+dGwYUNmzZrl3mb9+vUYhsHMmTOL7b948WIMw2DBggVAyWO+is6xePFiOnbsiL+/P1OnTgVg79693HrrrURERBAQEMDVV1/NN99843GOFStWYBgGn376Kf/+97+pX78+fn5+XHfddezevdtj2x49etCqVSs2bdpE9+7dCQgIoFGjRnz++ecArFy5kquuugp/f3+aNm3K0qVLiz2nQ4cOcc8991C7dm3sdjstW7Zk2rRp51VTjx49+Oabb9i/f7/73zg2NvYc/mVE5GKllq9KsmDBAho1asRVV111zvts3bqVLl26UK9ePR5//HECAwP59NNPGThwIHPnzmXQoEEe2//1r38lPDycp59+mn379vH6668zZswY5syZ497mww8/ZPjw4fTu3ZsXX3yR7OxspkyZwjXXXMOvv/7q8Uu+sLCQ3r17c8011/Cf//yHgIAAAD777DOys7N58MEHqVGjBr/88gtvvPEGBw8e5LPPPivTdTm9uw/gn//8J0lJSQQFBZXpOhw5coSePXtSWFjo3u7dd9/1amvJHXfcwQ033MCePXu47LLLAFcX0i233IKPj0+x7ZcsWcLevXsZOXIkUVFRbN26lXfffZetW7fy008/YRhGid2iBQUFjB8/Hl9fX/eyZcuW0bdvXzp06MDTTz+NxWJh+vTpXHvttfz4449ceeWVZ60/Ozub48ePF1seFhaGzXby18fu3bu55ZZbGDVqFMOHD2fatGmMGDGCDh060LJlSzp27EjDhg359NNPGT58uMex5syZU2oYPdXvv//O0KFD+ctf/sJ9991H06ZNOXr0KJ07dyY7O5uxY8dSo0YNZs6cyf/93//x+eefF/s/MWnSJCwWC48++ihpaWm89NJLDBs2jJ9//tlju5SUFG666SZuv/12br31VqZMmcLtt9/ORx99xLhx43jggQe44447ePnll7nllltITEwkODgYgKNHj3L11VdjGAZjxowhMjKShQsXMmrUKNLT04t1HZ6tpv/3//4faWlp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Rw+mTp3K4cOHi21f0hQSZ9O7d29CQkJ44YUXKCgoOK9jFn1qP7Ve0zT573//W+Z6AKZPn87UqVN56623SgylZbkON954Iz/99BO//PKLx/qPPvrovGo7XYsWLejVq5f70aFDh1K3vffee3n66ad55ZVXSt2mpGsJlDiz+bPPPsvixYv5+OOPS+yO69ChA5dddhn/+c9/SuzePp/XS3lo3rw5rVu3Zs6cOcyZM4c6derQrVu38z7ejTfeyC+//MLatWvdy7Kysnj33XeJjY0tNjatolmtVgYPHszcuXNLbNk+3+seGBh43l34InLxUctXJWncuDGzZ89m6NChNG3a1D3DvWmaJCQkMHv2bCwWi8cYq7feeotrrrmG1q1bc99999GwYUOOHj3K2rVrOXjwIL/99luZaggJCWHKlCncddddtG/fnttvv53IyEgOHDjAN998Q5cuXXjzzTfPeIxmzZpx2WWX8eijj3Lo0CFCQkKYO3fueY1XOX78OA899BAtWrTAbrfzv//9z2P9oEGDCAwMPOfr8Pe//50PP/yQPn368PDDD7unmoiJifH6VzfFxMTwzDPPnHGbkJAQunXrxksvvURBQQH16tXju+++IyEhwWO7zZs38/zzz9OtWzeSkpKKXac777wTi8XC+++/T9++fWnZsiUjR46kXr16HDp0iOXLlxMSEsLXX3991ro3btxY7Pjgalnr1KnT2Z94CYYMGcJTTz2Fn58fo0aNuqCJhB9//HE+/vhj+vbty9ixY4mIiGDmzJkkJCQwd+7cSpmkeNKkSSxfvpyrrrqK++67jxYtWpCcnMzGjRtZunQpycnJZT5mhw4dmDNnDhMmTOCKK64gKCiI/v37V0D1IuINCl+VaMCAAWzevJlXXnmF7777jmnTpmEYBjExMfTr148HHniAtm3burdv0aIF69ev59lnn2XGjBmcOHGCWrVq0a5dO49uqrK44447qFu3LpMmTeLll18mLy+PevXq0bVrV0aOHHnW/X18fPj6668ZO3YsEydOxM/Pj0GDBjFmzBiP2s9FZmYmubm5bNu2zX1346kSEhIIDAw85+tQp04dli9fzl//+lcmTZpEjRo1eOCBB6hbt657wPfFZvbs2fz1r3/lrbfewjRNbrjhBhYuXEjdunXd25w4cQLTNFm5ciUrV64sdoyirtAePXqwdu1ann/+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bBhff/21O7QBLF68mOzsbAYNGgTAxIkTmTVrFu+88w5bt25l/Pjx3HnnnaxcubJcrleVZHpZWlqaCZhpaWnePrWIiFQjpb2f5OTkmNu2bTNzcnLO67iDBpmmzWaarphV8sNmM83Bg8vjWXgaPny4OWDAANM0TfPqq68277nnHtM0TfPLL780i96yR40aZd5///0e+/3444+mxWIxc3JyzO3bt5uAuW7dOvf6Xbt2mYD52muvlXruzz77zKxRo4b75+nTp5uhoaHFtouJiXEfp6CgwKxZs6Y5a9Ys9/qhQ4eaQ4YMMU3TNHNzc82AgABzzZo1HscYNWqUOXTo0DNfjCqmLK87TbIqIiLyp5wcmDfvZFdjaQoL4csvXdtX1Pdtv/jii1x77bXFWpx+++03Nm3axEcffeReZpomTqeThIQEdu7cic1mo3379u71jRo1Ijw83OM4S5cuZeLEiezYsYP09HQKCwvJzc0lOzv7nMd02Ww2brvtNj766CPuuususrKymDdvHp988gkAu3fvJjs7m+uvv95jv/z8fNq1a1em61GdKHyJiIj8KT397MGriNPp2r6iwle3bt3o3bs3TzzxBCNGjHAvz8zM5C9/+Qtjx44ttk+DBg3YuXPnWY+9b98+brrpJh588EH+/e9/ExERwapVqxg1ahT5+fllGlA/bNgwunfvTlJSEkuWLMHf358+ffq4awX45ptvqFevnsd+drv9nM9R3Sh8iYiI/CkkBCyWcwtgFotr+4o0adIkLr/8cpo2bepe1r59e7Zt20ajRo1K3Kdp06YUFhby66+/0qFDB8DVAnXq3ZMbNmzA6XTyyiuvYLG4hn9/+umnHsfx9fXF4XCctcbOnTsTHR3NnDlzWLhwIbfeeis+Pj4AtGjRArvdzoEDB+jevXvZnnw1pvAlIiLyJ39/GDDAdVfj6YPtT2WzubarqFavIq1bt2bYsGFMnjzZveyxxx7j6quvZsyYMdx7770EBgaybds2lixZwptvvkmzZs3o1asX999/P1OmTMHHx4dHHnkEf39/91xhjRo1oqCggDfeeIP+/fuzevVq3jntFs7Y2FgyMzP5/vvvadu2LQEBAaW2iN1xxx2888477Ny5k+XLl7uXBwcH8+ijjzJ+/HicTifXXHMNaWlprF69mpCQEIYPH14BV+3ip7sdRURETjFhApytwcfh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Z66v2Nnr5dKiux1FREREvEjhS0RERMSLFL5EREREvEhjvkREREphmia5jlwKnAX4WHzws/rpRhi5YApfIiIip8lz5LEjeQcbj24kMSMRh9OB1WIlOjia9rXb0yyiGXbr+X+9jFzaFL5EREROcSD9AF/s+oLEjEQMwyDMHoavzZdCs5CtJ7ay5fgWooOjubnxzTQIaVBpdRqGwZdffsnAgQMrrQY5PxrzJSIi8qcD6Qf43/b/cSDjAA2CG9AwtCERfhGE2EOI8IugYWhDGgQ34EDGn9ulHyjX848YMQLDMDAMAx8fH2rXrs3111/PtGnTcDqdHtsePnyYvn37ntNxDcPgq6++KtdaS/PMM8+U+gXX5WHFihUMGDCAOnXqEBgYyOWXX85HH31UYecD179LeYZchS8RERFcXY1f7PqC4znHuSz0MnysPiVu52P14bLQyziec5wvdn1BniOvXOvo06cPhw8fZt++fSxcuJCePXvy8MMPc9NNN1FYWOjeLioqCru9/Lo+8/Pzy+1Y5aG0etasWUObNm2YO3cumzZtYuTIkdx9990sWLDAyxWeP4UvERERYEfyDhIzEokJjjnroHrDMGgQ3IDEjER+T/69XOuw2+1ERUVRr1492rdvzz/+8Q/mzZvHwoULmTFjhkcNRa1Z+fn5jBkzhjp16uDn50dMTAwTJ04EIDY2FoBBgwZhGIb756IWqvfff9/jy6AXLVrENddcQ1hYGDVq1OCmm25iz549HjUePHiQoUOHEhERQWBgIB07duTnn39mxowZPPvss/z222/uFryimg8cOMCAAQMICgoiJCSE2267jaNHj7qPWVo9p/vHP/7B888/T+fOnbnssst4+OGH6dOnD1988UWp1zQlJYVhw4YRGRmJv78/jRs3Zvr06e71iYmJ3HbbbYSFhREREcGAAQPYt2+fu66ZM2cyb94893NasWLFmf4Jz0pjvkRE5JJnmiYbj250dfeV0uJ1Ol+rLxiw4egGWtdsXaF3QV577bW0bduWL774gnvvvbfY+smTJzN//nw+/fRTGjRoQGJiIomJiQCsW7eOWrVqMX36dPr06YPVevIbNHbv3s3cuXP54osv3MuzsrKYMGECbdq0ITMzk6eeeopBgwYRHx+PxWIhMzOT7t27U69ePebPn09UVBQbN27E6XQyZMgQtmzZwqJFi1i6dCkAoaGhOJ1Od/BauXIlhYWFjB49miFDhngEmZLqORdpaWk0b9681PVPPvkk27ZtY+HChdSsWZPdu3eTk5MDQEFBAb1796ZTp078+OOP2Gw2/vWvf9GnTx82bdrEo48+yvbt20lPT3cHtoiIiHOurSQKXyIicsnLdeSSmJFImD2sTPuF28NJzEgk15GLv82/Yor7U7Nmzdi0aVOJ6w4cOEDjxo255pprMAyDmJgY97rIyEgAwsLCiIqK8tgvPz+fWbNmubcBGDx4sMc206ZNIzIykm3bttGqVStmz57NsWPHWLdunTuENGrUyL19UFAQNpvN41xLlixh8+bNJCQkEB0dDcCsWbNo2bIl69at44orrii1nrP59NNPWbduHVOnTi11mwMHDtCuXTs6duwInGwNBJgzZw5Op5P333/fHaCnT59OWFgYK1as4IYbbsDf35+8vLxi1+98qdtRREQueQXOAhxOBzajbG0SVsOKw+mgwFlQQZWdZJpmqa1rI0aMID4+nqZNmzJ27Fi+++67czpmTExMsaCza9cuhg4dSsOGDQkJCXEHlQMHXDcXxMfH065duzK1/mzfvp3o6Gh38AJo0aIFYWFhbN++/Yz1nMny5csZOXIk7733Hi1btix1uwcffJBPPvmEyy+/nL///e+sWbPGve63335j9+7dBAcHExQURFBQEBEREeTm5hbrbi0vavkSEZFLno/FB6vFSqFZePaNT+EwXfN/+VjOravyQmzfvp24uLgS17Vv356EhAQWLlzI0qVLue222+jVqxeff/75GY8ZGBhYbFn//v2JiYnhvffeo27dujidTlq1auUeAO/vX3EtfCXVU5qVK1fSv39/XnvtNe6+++4zbtu3b1/279/Pt99+y5IlS7juuusYPXo0//nPf8jMzKRDhw4l3jFZliBYFmr5EhGRS56f1Y/o4GhS81LLtF9KXgrRwdH4WUseHF5eli1bxubNm4t1CZ4qJCSEIUOG8N577zFnzhzmzp1LcnIyAD4+PjgcjrOe58SJE/z+++/885//5LrrrqN58+akpKR4bNOmTRvi4+Pdxz6dr69vsXM1b97cYxwawLZt20hNTaVFixZnret0K1asoF+/frz44ovcf//957RPZGQkw4cP53//+x+vv/467777LuAKrrt27aJWrVo0atTI4xEaGlrqc7oQCl8iInLJMwyD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ERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIltlFyDVg2mapGYXcCwzj5x8BxbDICzAh8hgO34+1souTy4VjgLIPApZx8F0gNUOQbUhoAZY9FlTRC4OCl9yQXLyHWw6mMovCckkpmSTlefAYToBAz+bhRA/H9pEh9K+QThxNQMxDKOyS5bqKO0gJK6DxJ8hJwUKsl3LDQv4BkFwFMR2gXodwC+0cmsVkUueYZqm6c0TpqenExoaSlpaGiEhId48tZSz3UkZzI//g11JmdisBhEBvgTabfhYLZimSU6Bg4zcQlKyCwiyW7mmcSTXt6hNkF2ZX8pJYR7sXgq/L4KcZPALB/9Q8AlwBS9nIeRnQnYyFOZAWCy0GgR124M+CFR5ej+RqkrhS87Lz3tPMHfjQTLzComJCMTXduYuneSsfJIycmlZN5Q7r44hItDXS5VKtZWfBRtmwoE14B8BQVFnDlTOQkjZ5wplLQdC0xsVwKo4vZ9IVaVBEFJmmw6m8un6RBxOk0aRQWcNXgARgb40rBnElkNpfPTTfnLyHV6oVKotRyH8+j/YvxrC4iC4ztmDlMUGNRq5uiE3fw57l3unVhGR0yh8SZmkZuczP/4PChxO6ocHlDiGKz/PICPFSn6e5zpfm4WGkYFs+SOdZTuOeqtkqY72r4b9a1zdiL4BxdfnFUByhuvP0wXVcnVLbpsPqQcqvFQRkdNp8I2UyapdxzmQnE2T2sHF1u3d4sfKueFsWRuE6TQwLCatOmXS45YU4lrmAmC3WakR6MvKncdo1yCcumH+3n4KUtXlpsOOBeDjD/Ygz3Wb98Fnq2DNdnCaYDGgc3O4rSu0ijm5XUg9OLYNdnwLV/1F3Y8i4lVl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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=7\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB21ElEQVR4nO3dd3hUZf7+8feZmWTSKwmhhCT03i2gFBUFRb7AoiKiAqKuCovCuqvsb1dX3RXUtSwWRFdBVBQVFUUBQZpgoRk60gKEGiC9JzPn98eYgSEJEEgmJNyv65oLcurnHIbMPc95znMM0zRNRERERMQrLNVdgIiIiMilROFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLvOaf//wnhmF4TIuPj2fkyJFerWPGjBkYhsHevXu9ul85N/r3EZHaTuGrmiUlJTF27FiaN29OQEAAAQEBtG7dmjFjxrBx48bqLu+StHfvXgzDOKdXeQEhPj4ewzDo06dPmfPffvtt9zbWrl1bhUdzfs52DiZPnlzdJV5SZs2axSuvvFLdZYhIJbFVdwGXsnnz5jF06FBsNhvDhw+nQ4cOWCwWtm/fzueff87UqVNJSkoiLi6uukutMr/99hsWy8X1HSAqKor333/fY9qLL77IgQMHePnll0stWx4/Pz+WLl3KkSNHiImJ8Zj34Ycf4ufnR35+fuUVXgWGDRvGTTfdVGp6p06dqmyfd911F7fffjt2u73K9lHTzJo1i82bN/PII49UdykiUgkUvqrJ7t27uf3224mLi+P777+nXr16HvOfe+453njjjYsumJwqJyeHwMDAC9rGxfgBGxgYyJ133ukx7eOPPyYtLa3U9DO56qqrWLNmDbNnz+bhhx92Tz9w4AA//PADgwcPZs6cOZVWd1Xo3LlzhY65MlitVqxW6xmXMU2T/Px8/P39vVSViEjluXg/2Wu5559/npycHKZPn14qeAHYbDbGjRtHbGysx/Tt27dzyy23EBERgZ+fH127duWrr77yWKakz8yqVauYMGECUVFRBAYGMnjwYI4dO1ZqX/Pnz6dHjx4EBgYSHBxM//792bJli8cyI0eOJCgoiN27d3PTTTcRHBzM8OHDAfjhhx+49dZbadSoEXa7ndjYWMaPH09eXt5Zz8Ppfb7O9RLfuZwHgC1btnDttdfi7+9Pw4YN+de//oXT6TxrXZXBz8+PP/zhD8yaNctj+kcffUR4eDh9+/Yttc7GjRsZOXIkjRs3xs/Pj5iYGO655x5OnDjhXuZslwRP9csvv9CvXz9CQ0MJCAigV69erFq1qlKPMz4+nptvvpmVK1dy+eWX4+fnR+PGjZk5c6Z7mbVr12IYBu+9916p9RcuXIhhGMybNw8ou89XyT4WLlxI165d8ff3Z9q0aQDs2bOHW2+9lYiICAICArjyyiv55ptvPPaxbNkyDMPgk08+4d///jcNGzbEz8+P6667jl27dnks27t3b9q2bcvGjRvp1asXAQEBNG3alM8++wyA5cuXc8UVV+Dv70+LFi1YvHhxqWM6ePAg99xzD3Xr1sVut9OmTRvefffd86qpd+/efPPNN+zbt8/9bxwfH38O/zIicrFSy1c1mTdvHk2bNuWKK64453W2bNnCVVddRYMGDXj88ccJDAzkk08+YdCgQcyZM4fBgwd7LP+nP/2J8PBwnnzySfbu3csrr7zC2LFjmT17tnuZ999/nxEjRtC3b1+ee+45cnNzmTp1KldffTW//vqrxy/54uJi+vbty9VXX81//vMfAgICAPj000/Jzc3lwQcfJDIyktWrV/Pqq69y4MABPv300wqdl9Mv9wH8/e9/JyUlhaCgoAqdhyNHjnDNNddQXFzsXu6tt97yamvJHXfcwQ033MDu3btp0qQJ4LqEdMstt+Dj41Nq+UWLFrFnzx5GjRpFTEwMW7Zs4a233mLLli38/PPPGIZR5mXRoqIixo8fj6+vr3vakiVLuPHGG+nSpQtPPvkkFouF6dOnc+211/LDDz9w+eWXn7X+3Nxcjh8/Xmp6WFgYNtvJXx+7du3illtuYfTo0YwYMYJ3332XkSNH0qVLF9q0aUPXrl1p3Lgxn3zyCSNGjPDY1uzZs8sNo6f67bffGDZsGH/84x+57777aNGiBUePHqV79+7k5uYybtw4IiMjee+99/i///s/Pvvss1L/JyZPnozFYuHRRx8lIyOD559/nuHDh/PLL794LJeWlsbNN9/M7bffzq233srUqVO5/fbb+fDDD3nkkUd44IEHuOOOO3jhhRe45ZZbSE5OJjg4GICjR49y5ZVXYhgGY8eOJSoqivnz5zN69GgyMzNLXTo8W03/7//9PzIyMjwue5f8XxCRGsoUr8vIyDABc9CgQaXmpaWlmceOHXO/cnNz3fOuu+46s127dmZ+fr57mtPpNLt37242a9bMPW369OkmYPbp08d0Op3u6ePHjzetVquZnp5umqZpZmVlmWFhYeZ9993nUcORI0fM0NBQj+kjRowwAfPxxx8vVfOpNZaYNGmSaRiGuW/fPve0J5980jz9LRcXF2eOGDGi1Polnn/+eRMwZ86cWeHz8Mgjj5iA+csvv7inpaSkmKGhoSZgJiUllbvf0/Xv39+Mi4s75+Xj4uLM/v37m8XFxWZMTIz5zDPPmKZpmlu3bjUBc/ny5e5/pzVr1rjXK+tcfvTRRyZgrlixotz9PfTQQ6bVajWXLFlimqbrfDRr1szs27evx3sgNzfXTEhIMK+//voz1p+UlGQC5b5++uknj2M9vb6UlBTTbrebf/7zn93TJk6caPr4+JipqanuaQUFBWZYWJh5zz33uKeVnJdT/31K9rFgwQKPOkv+jX/44Qf3tKysLDMhIcGMj483HQ6HaZqmuXTpUhMwW7VqZRYUFLiX/e9//2sC5qZNm9zTevXqZQLmrFmz3NO2b99uAqbFYjF//vln9/SFCxeagDl9+nT3tNGjR5v16tUzjx8/7lHr7bffboaGhrr/jStSU0XffyJycdNlx2qQmZkJlP3ttXfv3kRFRblfr7/+OgCpqaksWbKE2267jaysLI4fP87x48c5ceIEffv2ZefOnRw8eNBjW/fff7/HZagePXrgcDjYt28f4GplSU9PZ9iwYe7tHT9+HKvVyhVXXMHSpUtL1ffggw+WmnZqS1JOTg7Hjx+ne/fumKbJr7/+eh5nyGXp0qVMnDiRP/3pT9x1110VPg/ffvstV155pUcLT1RUlPtyqTdYrVZuu+02PvroI8DV0T42NpYePXqUufyp5zI/P5/jx49z5ZVXArB+/foy15k5cyZvvPEGzz//PNdccw0AiYmJ7Ny5kzvuuIMTJ064z1NOTg7XXXcdK1asOKfLr/fffz+LFi0q9WrdurXHcq1bt/Y4pqioKFq0aMGePXvc04YOHUpRURGff/65e9p3331Heno6Q4cOPWstCQkJpVrHvv32Wy6//HKuvvpq97SgoCDuv/9+9u7dy9atWz2WHzVqlEfrYEnNp9ZZso3bb7/d/XOLFi0ICwujVatWHq3VJX8vWd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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lyovwLZt20hISChzXufOnUlKSmL+/PksXryY2267jT59+vDZZ5+dcZuBgYGlpg0YMIC4uDjefvtt6tevj9PppG3btu4O8P7+pW8aqixl1VMZznR+srOzqVevnsflzxJhYWFVUk+FWr5SUlK4++67adGiBddddx1r1qxh4cKFXH/99VVSnEhtE2oPpUvdLqTmp7o7yhcXFTPlgSlldq4/vRP+lAemUFhYyOGcw7SKbEXDoIbVeTgitYePv6ujfW5qxdbLTXWt51N1gQRgyZIlbNq0qdQlwVOFhIQwdOhQ3n77bWbPns2cOXNITXUdj4+PDw5H+f1NS5w4cYLffvuNv//971x33XW0atWKtDTPsQfbt29PYmKie9un8/X1LbWvVq1alepntXXrVtLT0894015lKu/8dO7cmSNHjmCz2WjatKnHq06dOuUe04WoUMvXO++8U2k7FrlU9Y7tza70XezL3Od6qLaPjZsfvJl5U+cx7s1xpfp2lQSwKQ9Mof8D/TmSf4Qo/yj6xvct9xKEiFSQYUCjbnBwnesS4rm0ZBUXACbEda/UzvYFBQUcOXIEh8PB0aNHWbBgAZMmTeLmm2/m7rvvLnOdl156iXr16tGpUycsFguffvopMTEx7pab+Ph4vv/+e6666irsdjvh4aVv4gEIDw8nMjKSt956i3r16rF//34ef/xxj2WGDRvGs88+y6BBg5g0aRL16tXj119/pX79+nTr1o34+HiSkpJITEykYcOGBAcH06dPH9q1a8fw4cN55ZVXKC4u5qGHHqJXr1507dq1wudo69atFBYWkpqaSlZWFomJiQDljsV1pvPTp08funXrxqBBg3j++edp3rw5hw4d4ptvvmHw4MF07dq1zGO6kGE+9GxHES8L8g1iYNOBRPhFsCdjDw6ngy59u/D/Pv1/Zd7VCK4ANvGTiUR3j8bH6sOAJgOIDoj2cuUitVxMO4hIcHWgP9szHE0T0pJcy9dtW6llLFiwgHr16hEfH0+/fv1YunQpU6ZMYe7cueXeARgcHMzzzz9P165dueyyy9i7dy/ffvstFovrY/7FF19k0aJFxMbG0qlTp3L3bbFY+Pjjj1m3bh1t27Zl/PjxvPDCCx7L+Pr68t133xEdHc1NN91Eu3btmDx5sru2IUOG0K9fP6655hqioqL46KOPMAyDuXPnEh4eTs+ePenT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NmTIEPr168c111xDVFQUH330EYZhMHfuXMLDw+nZsyd9+vShcePGzJ49u8Ln57333iM3N5dJkyZRr1499+sPf/hDuev4+voyceJE2rdvT8+ePbFarXz88ccABAQEsGLFCho1asQf/vAHWrVqxejRo8nPzyckJASA++67jxYtWtC1a1eioqJYtWpVhes+lWGe7R1WyTIzMwkNDSUjI8N9UCIiIhVV3udJfn4+SUlJZxwrqjwlI9wfzztOo+BGruEkTlPoKGR/1n7q+NfhrlZ3ERsSW8aW5FJTkfedOtyLiIj8rlFII+5sdaf72Y4YruEkrIYVh+kgrSANTGgU3IghzYYoeMl5UfgSERE5RaOQRjzY8UF+S/2NdUfXkZyVTJGjCKvFStvItnSp24UWES2wWyvv0T5yaVH4EhEROY3daqd9VHva1WlHviOfImcRPhYf/Kx+VTqSvVwaFL5ERETKYRgG/jZ//Kna0evl0qK7HUVEpFby8v1kcomryPtN4UtERGoVHx/XaPO5ubnVXIlcSkrebyXvvzPRZUcREalVrFYrYWFhpKSkAK5xnNRPS6qKaZrk5uaSkpJCWFhYuWOxnUrhS0REap2YmBgAdwATqWphYWHu993ZKHyJiEitYxgG9erVIzo6+oIfBSNyNj4+PufU4lVC4UtERGotq9VaoQ9FEW9Qh3sRERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEiW3UXcDHJKSgmu6AYAwjysxHgq9MjIpegonzITwfTBN8AsIeAYVR3VSK1xiWfLlKy8tmYnMHmQxkczcynsNgJgK/NQt0QP9o1CKV9wzCigu3VXKmISBXKS4NDv7peGQdcAQwTrL4QWAfqtoOGXSA0VkFM5AIZpmma3txhZmYmoaGhZGRkEBIS4s1de8gvcrB0ewrLdxwjNaeQAF8rQXYb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RDSBNoNdfb10s4eIVBNddpQLkl/kYPPBDFYnpbI/NZecgmKKHE4Mw8Dfx0qwn42OjcLp3CiMuMjAs29Q5HxkHoIDa2H/z667GItyXC1hFpvrkmRIA4jrDg06l3o0kdRc+jyRmkrhSyqFaZpkFRSTkllAfpEDw4CwAF+iguz42nR1W7zEUQw5xyD3uKtfmM3uGkTVP1wtXbWQPk+kptL1H6kUhmEQ4uejEeulelltEFLP9RIRuUipSUJERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEixS+RERERLxI4UtERETEi2ze3qFpmgBkZmZ6e9ciIlKLlHyOlHyuiNQUXg9fWVlZAMTGxnp71yIiUgtlZWURGhpa3WWInDPD9PJXBqfTyaFDhwgODsYwDG/u+pxkZmYSGxtLcnIyISEh1V1OjaRzeOF0Di+Mzt+Fqwnn0DRNsrKyqF+/PhaLetFIzeH1li+LxULDhg29vdsKCwkJuWh/4dQUOocXTufwwuj8XbiL/RyqxUtqIn1VEBEREfEihS8RERERL1L4Oo3dbufJJ5/EbrdXdyk1ls7hhdM5vDA6fxdO51Ck6ni9w72IiIjIpUwtXyIiIiJepPAlIiIi4kUKXyIiIiJepPAlIiIi4kUKX6d4/fXXiY+Px8/PjyuuuILVq1dXd0k1yooVKxgwYAD169fHMAy+/PLL6i6pRpk0aRKXXXYZwcHBREdHM2jQIH777bfqLqtGmTp1Ku3bt3cPDNqtWzfmz59f3WXVWJMnT8YwDB555JHqLkWkVlH4+t3s2bOZMGECTz75JOvXr6dDhw707duXlJSU6i6txsjJyaFDhw68/vrr1V1KjbR8+XLGjBnDzz//zKJFiygqKuKGG24gJyenukurMRo2bMjkyZNZt24da9eu5dprr2XgwIFs2bKlukurcdasWcO0adNo3759dZciUutoqInfXXHFFVx22WW89tprgOsZlLGxsfzpT3/i8ccfr+bqah7DMPjiiy8YNGhQdZdSYx07dozo6GiWL19Oz549q7ucGisiIoIXXniB0aNHV3cpNUZ2djadO3fmjTfe4F//+hcdO3bklVdeqe6yRGoNtXwBhYWFrFu3jj59+rinWSwW+vTpw08//VSNlcmlLCMjA3CFB6k4h8PBxx9/TE5ODt26davucmqUMWPG0L9/f4/fiSJSebz+YO2L0fHjx3E4HNStW9djet26ddm+fXs1VSWXMqfTySOPPMJVV11F27Ztq7ucGmXTpk1069aN/Px8goKC+OKLL2jdunV1l1VjfPzxx6xfv541a9ZUdykitZbCl8hFaMyYMWzevJmVK1dWdyk1TosWLUhMTCQjI4PPPvuMESNGsHz5cgWwc5CcnMzDDz/MokWL8PPzq+5yRGothS+gTp06WK1Wjh496jH96NGjxMTEVFNVcqkaO3Ys8+bNY8WKFTRs2LC6y6lxfH19adq0KQBdunRhzZo1/Pe//2XatGnVXNnFb926daSkpNC5c2f3NIfDwYoVK3jttdcoKCjAarVWY4UitYP6fOH6Zd2lSxe+//579zSn08n333+vviLiNaZpMnbsWL744guWLFlCQkJCdZdUKzidTgoKCqq7jBrhuuuuY9OmTSQmJrpfXbt2Zfjw4SQmJip4iVQStXz9bsKECYwYMYKuXbty+eWX88orr5CTk8OoUaOqu7QaIzs7m127drl/TkpKIjExkYiICBo1alSNldUMY8aMYdasWcydO5fg4GCOHDkCQGhoKP7+/tVcXc0wceJEbrzxRho1akRWVhazZs1i2bJlLFy4sLpLqxGCg4NL9TEMDAwkMjJSfQ9FKpHC1++GDh3KsWPHeOKJJzhy5AgdO3ZkwYIFpTrhS/nWrl3LNddc4/55woQJAIwYMYIZM2ZUU1U1x9SpUwHo3bu3x/Tp06czcuRI7xdUA6WkpHD33Xdz+PBhQkNDad++PQsXLuT666+v7tJERNw0zpeIiIiIF6nPl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeNH/B2k+JUs07naKAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=8\n" + ] + }, + { + "data": { + "image/png": "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Wd80TebMmcOAAQMwTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAEOHDuWqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrvjjjuYMmUKGzZsYNasWdx+++2l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMCwYcOYMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz2b06NGA65JjnTp1yn0PniohIaHUtPL+jVu1auWe37Zt23LrPP3/RImGDRuW+jcKDQ0t1QczNDTUY/1jx46Rnp7OW2+9xVtvvVXmcZz+73quNYlI7aHwVQ1CQ0OpV68emzdvLjWv5IPk9PGjSlopHn300XL7xjRt2tTj5/LuGDNN02Ob77//fqmhEACPPj3gujPx9LsvHQ4H119/PampqTz22GO0bNmSwMBADh48yMiRI8+rc3thYSG33HILdrudTz75xKOO8zkPVeXhhx/26EDeq1cvli1bVmq5K664giZNmvDII4+QlJTEHXfcUe42b7vtNn788Uf+8pe/0LFjR4KCgnA6nfTr16/UuUxLS2PIkCE0b96c//3vfx7zSpZ94YUX6NixY5n7qsx+Q2d7r5UYOnQo//73vzl+/DjBwcF89dVXDBs2rNR7rSyV0VfvXOssb7lz/T915513lht827dvf141iUjtofBVTfr378///vc/Vq9efU4dnxs3bgyAj4/PObVEnIuSDuDR0dHnvc1NmzaxY8cO3nvvPe6++2739EWLFp13XePGjSMxMZEVK1ZQt25dj3kVOQ9xcXHuFqBT/fbbb+dd26n++te/erROnqkVadiwYfzrX/+iVatW5YahtLQ0vv/+e5566imeeOIJ9/SyjsHpdDJ8+HDS09NZvHix++aHEiX/tiEhIZX2fqkMQ4cO5amnnmLOnDnUrVuXzMxMj8t7FRUXF1fmv+f27dvd870pKiqK4OBgHA5HpZ738lpKRaRmUp+vavLXv/6VgIAA7rnnHo4ePVpq/unfeqOjo+nduzfTpk3j8OHDpZYvawiJs+nbty8hISE8++yzFBUVndc2S761n1qvaZr897//rXA9ANOnT2fatGm8/vrrZYbSipyHm266iZ9//pnVq1d7zP/www/Pq7bTtW7dmj59+rhfXbp0KXfZe++9lyeffJIXX3yx3GXKOpdAmSObP/XUUyxcuJCPPvqozMtxXbp0oUmTJvznP/8p8/L2+bxfKkOrVq1o164ds2fPZvbs2dSrV4+ePXue9/ZuuukmVq9ezU8//eSelpOTw1tvvUV8fHypvmlVzWq1MmTIEObMmVNmy/b5nvfAwMDzvoQvIhcftXxVk2bNmjFr1iyGDRtGixYt3CPcm6ZJUlISs2bNwmKxePSxev3117n66qtp164d9913H40bN+bo0aP89NNPHDhwgA0bNlSohpCQEKZOncpdd91F586duf3224mKimL//v188803XHXVVbz22mtn3EbLli1p0qQJjz76KAcPHiQkJIQ5c+acV3+V48eP89BDD9G6dWvsdjsffPCBx/zBgwcTGBh4zufhr3/9K++//z79+vXj4Ycfdg81ERcX5/VHN8XFxfHPf/7zjMuEhITQs2dPnn/+eYqKimjQoAHfffcdSUlJHstt2rSJZ555hp49e5KSklLqPN15551YLBb+97//ceONN9KmTRtGjRpFgwYNOHjwIEuXLiUkJISvv/76rHWvX7++1PbB1bLWrVu3sx94GYYOHcoTTzyBn58fo0ePvqCBhB9//HE++ugjbrzxRsaNG0dERATvvfceSUlJzJkzp1oGKZ48eTJLly7liiuu4L777qN169akpqayfv16Fi9eTGpqaoW32aVLF2bPns2ECRO47LLLCAoKYsCAAVVQvYh4g8JXNRo4cCCbNm3ixRdf5LvvvuPdd9/FMAzi4uLo378/DzzwAB06dHAv37p1a9auXctTTz3FjBkzOHHiBNHR0XTq1MnjMlVF3HHHHdSvX5/JkyfzwgsvUFBQQIMGDejRowejRo066/o+Pj58/fXXjBs3jkmTJuHn58fgwYMZO3asR+3nIjs7m/z8fLZu3eq+u/FUSUlJBAYGnvN5qFevHkuXLuVPf/oTkydPJjIykgceeID69eu7O3xfbGbNmsWf/vQnXn/9dUzT5IYbbmD+/PnUr1/fvcyJEycwTZPly5ezfPnyUtsouRTau3dv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ahuFLxERkTKsXAl/+AMEBUFMjOvPP/wBVq2q2v36+fnx3HPPkZaWVrU7Ok9RUVEEBARUdxk1msKXiIjIaaZOhZ494euvXY91BNefX38NPXq4nrtdVfr06UNMTAyTJk0qd5mVK1fSo0cP/P39iY2NZdy4ceTk5LjnHz58mP79++Pv709CQgKzZs0qdbnwpZdeol27dgQGBhIbG8tDDz1EdnY24Hpu86hRo8jIyMAwDAzD4J///CfgednxjjvuYOjQoR61FRUVUadOHWbOnAmA0+lk0qRJJCQk4O/vT4cOHfjss88q4UzVXApfIiIip1i5EsaMAdOE4mLPecXFrukPPVR1LWBWq5Vnn32WV199lQMHDpSav3v3bvr168eQIUPYuHEjs2fPZuXKlYwdO9a9zN13382hQ4dYtmwZc+bM4a233iIlJcVjOxaLhSlTprBlyxbee+89lixZwl//+lcAunfvziuvvEJISAiHDx/m8OHDPProo6VqGT58OF9//bU7tAEsXLiQ3NxcBg8eDMCkSZOYOXMmb775Jlu2bGH8+PHceeedLF++vFLOV41kellGRoYJmBkZGd7etYiI1CLlfZ7k5eWZW7duNfPy8s5ru4MHm6bNZpqumFX2y2YzzSFDKuMoPI0YMcIcOHCgaZqmeeWVV5r33HOPaZqm+cUXX5glH9mjR48277//fo/1fvjhB9NisZh5eXnmtm3bTMBcs2aNe/7OnTtNwHz55ZfL3fenn35qRkZGun+ePn26GRoaWmq5uLg493aKiorMOnXqmDNnznTPHzZsmDl06FDTNE0zPz/fDAgIMH/88UePbYwePdocNmzYmU9GDVOR950GWRUREfldXh7MnXvyUmN5iovhiy9cy1fV87afe+45rr322lItThs2bGDjxo18+OGH7mmmaeJ0OklKSmLHjh3YbDY6d+7snt+0aVPCw8M9trN48WImTZrE9u3byczMpLi4mPz8fHJzc8+5T5fNZuO2227jww8/5K677iInJ4e5c+fy8ccfA7Br1y5yc3O5/vrrPdYrLCykU6dOFToftYnCl4iIyO8yM88evEo4na7lqyp89ezZk759+zJx4kRGjhzpnp6dnc0f//hHxo0bV2qdRo0asWPHjrNue+/evdx88808+OCD/Pvf/yYiIoKVK1cyevRoCgsLK9Shfvjw4fTq1YuUlBQW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n9OwYUOefvppDh8+zOHDhy/o3FYndbgXEZFLXn6Rk30ncggP8KnQeuEBPuw7kUN+kRN/38q5+3HevHkEBQVRXFxMQUEBFouF1157DYCCggKeffZZFi9eTLdu3QBo3LgxK1euZNq0afTq1YvevXvzzjvv4HA42Lx5M76+vgwdOpRly5bRr18/li1bRq9evdz7u+eee9x/b9y4MVOmTOGyyy4jOzuboKAg97ynn36a66+/HoDs7GzeeecdPvjgA6677joA3nvvPRo2bHjGY9u/fz9/+ctfaNmyJQDNmjVzz5s0aRLDhw/nkUcecc+bMmUKvXr1YurUqURERGC1Wt0tdDWZWr5EROSSV+hw4nCa2KwV+1i0WgwcTpNCh7PSarnmmmtITEzkl19+YcSIEYwaNYohQ4YAsGvXLnJzc7n++usJCgpyv2bOnMnu3bsB6NGjB1lZWfz6668sX77cHchKWsOWL19O79693ftbt24dAwYMoFGjRgQHB7uD2f79+z3q6tq1q/vvu3fvprCwkCuuuMI9LSIighYtWpzx2CZMmMC9995Lnz59mDx5srtmcF2SnDFjhsdx9e3bF6fTSVJSUsVP5EVMLV8iInLJ87VasFoMiisYokrG//KtYGg7k8DAQPclwXfffZcOHTrwzjvvMHr0aHe/rW+++YYGDRp4rGe32wEICwujQ4cOLFu2jJ9++onrr7+enj17MnToUHbs2MHOnTvdASsnJ4e+ffvSt29fPvzwQ6Kioti/fz99+/alsLCwVF0X6p///Cd33HEH33zzDfPnz+fJJ5/k448/ZvDgwWRnZ/PHP/6RcePGlVqvUaNGF7zvi4lavkRE5JLn52MhLjKQtNyiCq2XlltEXGQgfj5V83FqsVj429/+xt///nfy8vJo3bo1drud/fv307RpU49XbGyse71evXqxdOlSVqxYQe/evYmIiKBVq1b8+9//pl69ejRv3hyA7du3c+LECSZPnkyPHj1o2bKlR2f78jRp0gQfHx9++eUX97S0tDR27Nhx1nWbN2/O+PHj+e677/jDH/7A9OnTAejcuTNbt24tdVxNmzZ193nz9fXF4ajcu0urg8KXiIhc8gzD4LKECExMCovPrfWrsNiJicnlCRFVeufdrbfeitVq5fXXXyc4OJhHH32U8ePH895777F7927Wr1/Pq6++ynvvvedep3fv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ZHdtQ4YMoV+/flxzzTVERUXx0UcfYRgGc+fOJTw8nJ49e9KnTx8aN27M7NmzK3x+3nvvPXJzc5k0aRL16tVzv/7whz+Uu46vry8TJ06kffv29OzZE6vVyscffwxAQEAAK1asoFGjRvzhD3+gVatWjB49mvz8fEJCQgC47777aNGiBV27diUqKopVq1ZVuO5TGebZ3mGVLDMzk9DQUDIyMtwHJSIiUlHlfZ7k5+eTlJR0xrGiylMywv3xvOM0Cm7kGk7iNIWOQvZn7aeOfx3uanUXsSGxZWxJLjUVed+pw72IiMjvGoU04s5Wd7qf7YjhGk7CalhxmA7SCtLAhEbBjRjSbIiCl5wXhS8REZFTNAppxIMdH+S31N9Yd3QdyVnJFDmKsFqstI1sS5e6XWgR0QK7tfIe7SOXFoUvERGR09itdtpHtaddnXbkO/IpchbhY/HBz+pXpSPZy6VB4UtERKQchmHgb/PHn6odvV4uLbrbUUREaiUv308ml7iKvN8UvkREpFbx8XGNNp+bm1vNlcilpOT9VvL+OxNddhQRkVrFarUSFhZGSkoK4BrHSf20pKqYpklubi4pKSmEhYWVOxbbqRS+RESk1omJiQFwBzCRqhYWFuZ+352NwpeIiNQ6hmFQr149oqOjL/hRMCJn4+Pjc04tXiUUvkREpNayWq0V+lAU8QZ1uBcRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES+yVXcBF5OcgmKyC4oxgCA/GwG+Oj0icgkqyof8dDBN8A0AewgYRnVXJVJrXPLpIiUrn43JGWw+lMHRzHwKi50A+Nos1A3xo12DUNo3DCMq2F7NlYqIVKG8NDj0q+uVccAVwDDB6guBdaBuO2jYBUJjFcRELpBhmqbpzR1mZmYSGhpKRkYGISEh3ty1h/wiB0u3p7B8xzFScwoJ8LUS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cORDRBNoM9jV10s3e4hINdFlR7kg+UUONh/MYHVSKvtTc8kpKKbI4cQwDPx9rAT72ejYKJzOjcKIiww8+wZFzkfmITiwFvb/7LqLsSjH1RJmsbkuSYY0gLju0KBzqUcTSc2lzxOpqRS+pFKYpklWQTEpmQXkFzkwDAgL8CUqyI6vTVe3xUscxZBzDHKPu/qF2eyuQVT9w9XSVQvp80RqKl3/kUphGAYhfj4asV6ql9UGIfVcLxGRi5SaJERERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8yObtHZqmCUBmZqa3dy0iIrVIyedIyeeKSE3h9fCVlZUFQGxsrLd3LSIitVBWVhahoaHVXYbIOTNML39lcDqdHDp0iODgYAzD8Oauz0lmZiaxsbEkJycTEhJS3eXUSDqHF07n8MLo/F24mnAOTdMkKyuL+vXrY7GoF43UHF5v+bJYLDRs2NDbu62wkJCQi/YXTk2hc3jhdA4vjM7fhbvYz6FavKQm0lcFERERES9S+BIRERHxIoWv09jtdp588knsdnt1l1Jj6RxeOJ3DC6Pzd+F0DkWqjtc73IuIiIhcytTyJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwdYrXX3+d+Ph4/Pz8uOKKK1i9enV1l1SjrFixggEDBlC/fn0Mw+DLL7+s7pJqlEmTJnHZZZcRHBxMdHQ0gwYN4rfffqvusmqUqVOn0r59e/fAoN26dWP+/PnVXVaNNXnyZAzD4JFHHqnuUkRqFYWv382ePZsJEybw5JNPsn79ejp06EDfvn1JSUmp7tJqjJycHDp06MDrr79e3aXUSMuXL2fMmDH8/PPPLFq0iKKiIm644QZycnKqu7Qao2HDhkyePJl169axdu1arr32WgYOHMiWLVuqu7QaZ82aNUybNo327dtXdykitY6GmvjdFVdcwWWXXcZrr70GuJ5BGRsby5/+9Ccef/zxaq6u5jEMgy+++IJBgwZVdyk11rFjx4iOjmb58uX07NmzusupsSIiInjhhRcYPXp0dZdSY2RnZ9O5c2feeOMN/vWvf9GxY0deeeWV6i5LpNZQyxdQWFjIunXr6NOnj3uaxWKhT58+/PTTT9VYmVzKMjIyAFd4kIpzOBx8/PHH5OTk0K1bt+oup0YZM2YM/fv39/idKCKVx+sP1r4YHT9+HIfDQd26dT2m161bl+3bt1dTVXIpczqdPPLII1x11VW0bdu2usupUTZt2kS3bt3Iz88nKCiIL774gtatW1d3WTXGxx9/zPr161mzZk11lyJSayl8iVyExowZw+bNm1m5cmV1l1LjtGjRgsTERDIyMvjss88YMWIEy5cvVwA7B8nJyTz88MMsWrQIPz+/6i5HpNZS+ALq1KmD1Wrl6NGjHtOPHj1KTExMNVUll6qxY8cyb948VqxYQcOGDau7nBrH19eXpk2bAtClSxfWrFnDf//7X6ZNm1bNlV381q1bR0pKCp07d3ZPczgcrFixgtdee42CggKsVms1VihSO6jPF65f1l26dOH77793T3M6nXz//ffqKyJeY5omY8eO5YsvvmDJkiUkJCRUd0m1gtPppKCgoLrLqBGuu+46Nm3aRGJiovvVtWtXhg8fTmJiooKXSCVRy9fvJkyYwIgRI+jatSuXX345r7zyCjk5OYwaNaq6S6sxsrOz2bVrl/vnpKQkEhMTiYiIoFGjRtVYWc0wZswYZs2axdy5cwkODubIkSMAhIaG4u/vX83V1QwTJ07kxhtvpFGjRmRlZTFr1iyWLVvGwoULq7u0GiE4OLhUH8PAwEAiIyPV91CkEil8/W7o0KEcO3aMJ554giNHjtCxY0cWLFhQqhO+lG/t2rVcc8017p8nTJgAwIgRI5gxY0Y1VVVzTJ06FYDevXt7TJ8+fTojR470fkE1UEpKCnfffTeHDx8mNDSU9u3bs3DhQq6//vrqLk1ExE3jfImIiIh4kfp8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIFyl8iYiIiHiRwpeIiIiIF/1/ocUlS3F43cIAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=9\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1NklEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkKQqIfIFFRUQFRF0VFoF1V9nfrq66CupaFgtio6gIKiqIAoI0AZVm6EgLEBAIENL7zPn9MWZgSAIEkgkJ9+u65sKc+pnDyNx5nuc8xzBN00REREREPMJS0QWIiIiIXE0UvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvkREREQ8SOFLRERExIMUvsRj/v3vf2MYhtuy2NhYhg8f7tE6pk+fjmEYHDhwwKPnlYujvx8RqeoUvipYQkICo0ePplGjRvj7++Pv70+zZs0YNWoUW7ZsqejyrkoHDhzAMIyLepUUEGJjYzEMg549exa7/r333nMdY8OGDeX4bi7Nha7BpEmTKrrEq8qsWbN4/fXXK7oMESkjtoou4Gq2YMECBg8ejM1mY+jQobRu3RqLxcKuXbv48ssvmTJlCgkJCcTExFR0qeXmt99+w2K5sn4HiIyM5KOPPnJb9sorr3D48GFee+21ItuWxNfXl+XLl3Ps2DGioqLc1n3yySf4+vqSk5NTdoWXgyFDhnDrrbcWWd62bdtyO+e9997LXXfdhY+PT7mdo7KZNWsW27ZtY+zYsRVdioiUAYWvCrJv3z7uuusuYmJi+OGHH6hZs6bb+hdffJG33377igsmZ8vMzCQgIOCyjnElfsEGBARwzz33uC2bPXs2p0+fLrL8fDp37sz69euZM2cOjz32mGv54cOH+fHHHxk4cCBz584ts7rLQ7t27Ur1nsuC1WrFarWedxvTNMnJycHPz89DVYmIlJ0r95u9invppZfIzMxk2rRpRYIXgM1mY8yYMURHR7st37VrF7fffjvh4eH4+vrSoUMH5s+f77ZN4ZiZNWvWMH78eCIjIwkICGDgwIGcOHGiyLkWLlxIly5dCAgIICgoiL59+7J9+3a3bYYPH05gYCD79u3j1ltvJSgoiKFDhwLw448/cscdd1C3bl18fHyIjo5m3LhxZGdnX/A6nDvm62K7+C7mOgBs376dG2+8ET8/P+rUqcN//vMfHA7HBesqC76+vvzpT39i1qxZbss//fRTwsLC6NWrV5F9tmzZwvDhw6lXrx6+vr5ERUVx//33c+rUKdc2F+oSPNsvv/xC7969CQkJwd/fn27durFmzZoyfZ+xsbHcdtttrF69mmuvvRZfX1/q1avHzJkzXdts2LABwzCYMWNGkf0XL16MYRgsWLAAKH7MV+E5Fi9eTIcOHfDz82Pq1KkA7N+/nzvuuIPw8HD8/f25/vrr+fbbb93OsWLFCgzD4LPPPuP555+nTp06+Pr6ctNNN7F37163bbt3706LFi3YsmUL3bp1w9/fnwYNGvDFF18AsHLlSq677jr8/Pxo3LgxS5cuLfKejhw5wv3330+NGjXw8fGhefPmfPjhh5dUU/fu3fn22285ePCg6+84Njb2Iv5mRORKpZavCrJgwQIaNGjAddddd9H7bN++nc6dO1O7dm2efPJJAgIC+OyzzxgwYABz585l4MCBbtv/5S9/ISwsjKeffpoDBw7w+uuvM3r0aObMmePa5qOPPmLYsGH06tWLF198kaysLKZMmcINN9zAr7/+6vaPfEFBAb169eKGG27gv//9L/7+/gB8/vnnZGVl8cgjjxAREcG6det44403OHz4MJ9//nmprsu53X0A//znP0lKSiIwMLBU1+HYsWP06NGDgoIC13bvvvuuR1tL7r77bm655Rb27dtH/fr1AWcX0u23346Xl1eR7ZcsWcL+/fsZMWIEUVFRbN++nXfffZft27fz888/YxhGsd2i+fn5jBs3Dm9vb9eyZcuW0adPH9q3b8/TTz+NxWJh2rRp3Hjjjfz4449ce+21F6w/KyuLkydPFlkeGhqKzXbmn4+9e/dy++23M3LkSIYNG8aHH37I8OHDad++Pc2bN6dDhw7Uq1ePzz77jGHDhrkda86cOSWG0bP99ttvDBkyhD//+c88+OCDNG7cmOPHj9OpUyeysrIYM2YMERERzJgxg//7v//jiy++KPL/xKRJk7BYLDz++OOkpqby0ksvMXToUH755Re37U6fPs1tt93GXXfdxR133MGUKVO46667+OSTTxg7diwPP/wwd999Ny+//DK33347iYmJBAUFAXD8+HGuv/56DMNg9OjRREZGsnDhQkaOHElaWlqRrsML1fT//t//IzU1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3bszdepUjh49WmT74qaQuJBevXoRHBzMCy+8QH5+/iUds/C39rPrNU2T//3vf6WuB2DatGlMnTqVt956q9hQWprrcOutt/Lzzz+zbt06t/WffPLJJdV2rmbNmtGzZ0/Xq3379iVu+8ADD/D000/zyiuvlLhNcdcSKHZm82eeeYbFixfz6aefFtsd1759e+rXr89///vfYru3L+XzUhaaNm1Ky5YtmTNnDnPmzKFmzZp07dr1ko936623sm7dOn766SfXsszMTN59911iY2OLjE0rb1arlUGDBjF37txiW7Yv9boHBARcche+iFx51PJVQRo2bMisWbMYMmQIjRs3ds1wb5omCQkJzJo1C4vF4jbG6q233uKGG26gZcuWPPjgg9SrV4/jx4/z008/cfjwYTZv3lyqGoKDg5kyZQr33nsv7dq146677iIyMpJDhw7x7bff0rlzZ958883zHqNJkybUr1+fxx9/nCNHjhAcHMzcuXMvabzKyZMnefTRR2nWrBk+Pj58/PHHbusHDhxIQEDARV+Hv//973z00Uf07t2bxx57zDXVRExMjMcf3RQTE8O///3v824THBxM165deemll8jPz6d27dp8//33JCQkuG23detWnnvuObp27UpSUlKR63TPPfdgsVh4//336dOnD82bN2fEiBHUrl2bI0eOsHz5coKDg/nmm28uWPemTZuKHB+cLWsdO3a88BsvxuDBg3nqqafw9fVl5MiRlzWR8JNPPsmnn35Knz59GDNmDOHh4cyYMYOEhATmzp1bIZMUT5o0ieXLl3Pdddfx4IMP0qxZM5KTk9m0aRNLly4lOTm51Mds3749c+bMYfz48VxzzTUEBgbSr1+/cqheRDxB4asC9e/fn61bt/LKK6/w/fff8+GHH2IYBjExMfTt25eHH36Y1q1bu7Zv1qwZGzZs4JlnnmH69OmcOnWK6tWr07ZtW7duqtK4++67qVWrFpMmTeLll18mNzeX2rVr06VLF0aMGHHB/b28vPjmm28YM2YMEydOxNfXl4EDBzJ69Gi32i9GRkYGOTk57Nixw3V349kSEhIICAi46OtQs2ZNli9fzl/+8hcmTZpEREQEDz/8MLVq1XIN+L7SzJo1i7/85S+89dZbmKbJLbfcwsKFC6lVq5Zrm1OnTmGaJitXrmTlypVFjlHYFdq9e3d++uknnnvuOd58800yMjKIioriuuuu489//vNF1fPpp5+67tQ827Bhwy4rfP3zn/8kKyvrou5yPJ8aNWqwdu1annjiCd544w1ycnJo1aoV33zzDX379r2sY19OTevWrePZZ5/lyy+/5O233yYiIoLmzZvz4osvXtIxH330UeLj45k2bRqvvfYaMTExCl8ilZhhalSniIiIiMdozJeIiIiIByl8iYiIiHiQwpeIiIiIByl8iYiIiHiQwpeIiIiIByl8iYiIiHiQx+f5cjgc/P777wQFBemRGSIicslM0yQ9PZ1atWpVyIS6IpfK4+Hr999/Jzo62tOnFRGRKioxMdHtaSAiVzqPh6+goCDA+T9LcHCwp08vIiJVRFpaGtHR0a7vFZHKwuPhq7CrMTg4WOFLREQum4awSGWjTnIRERERD1L4EhEREfEghS8RERERD/L4mC8RERFPsdvt5OfnV3QZUsV5eXlhtVovenuFLxERqXJM0+TYsWOkpKRUdClylQgNDSUqKuqibgBR+BIRkSqnMHhVr14df39/3REp5cY0TbKyskhKSgKgZs2aF9xH4UtERKoUu93uCl4REREVXY5cBfz8/ABISkqievXqF+yC1IB7ERGpUgrHePn7+1dwJXI1Kfy8XcwYQ4UvERGpktTVKJ5Ums+bwpeIiIiIByl8iYiIiHiQwpeIiMg58vLyLmv95Tp27Bh/+ctfqFevHj4+PkRHR9OvXz9++OGHcj2veIbCl4iIyFnmzJlDy5YtSUxMLHZ9YmIiLVu2ZM6cOeVy/gMHDtC+fXuWLVvGyy+/zNatW1m0aBE9evRg1KhR5XJO8SyFLxERkT/k5eXx1FNPsXv3brp3714kgCUmJtK9e3d2797NU089VS4tYI8++iiGYbBu3ToGDRpEo0aNaN68OePHj+fnn3/mwIEDGIZBfHy8a5+UlBQMw2DFihWuZdu2baNPnz4EBgZSo0YN7r33Xk6ePFnm9UrpKXyJiIj8wdvbm6VLl1KvXj3279/vFsAKg9f+/fupV68eS5cuxdvbu0zPn5yczKJFixg1ahQBAQFF1oeGhl7UcVJSUrjxxhtp27YtGzZsYNGiRRw/fpw777yzTOuVS6PwJSIicpbo6GhWrFjhFsDWrl3rFrxWrFhBdHR0mZ977969mKZJkyZNLus4b775Jm3btuWFF16gSZMmtG3blg8//JDly5eze/fuMqpWLpVmuBcRETlHYQArDFydO3cGKNfgBc5H1ZSFzZs3s3z5cgIDA4us27dvH40aNSqT88ilUfgSEREpRnR0NB999JEreAF89NFH5Ra8ABo2bIhhGOzatavEbSwWZ6fV2UHt3FnVMzIy6NevHy+++GKR/S/m2YNSvtTtKCIiUozExETuvfdet2X33ntviXdBloXw8HB69erFW2+9RWZmZpH1KSkpREZGAnD06FHX8rMH3wO0a9eO7du3ExsbS4MGDdxexY0lE89S+BIRETnHuYPr16xZU+wg/PLw1ltvYbfbufbaa5k7dy579uxh586dTJ48mY4dO+Ln58f111/PpEmT2LlzJytXruSf//yn2zFGjRpFcnIyQ4YMYf369ezbt4/FixczYsQI7HZ7udUuF0fhS0RE5CznBq8VK1bQqVOnIoPwyyuA1atXj02bNtGjRw/++te/0qJFC26++WZ++OEHpkyZAsCHH35IQUEB7du3Z+zYsfznP/9xO0atWrVYs2YNdrudW265hZYtWzJ27FhCQ0Nd3ZZScQyzrEb3XaS0tDRCQkJITU0lODjYk6cWEZEqpKTvk5ycHBISEoiLi8PX17dUx8zLy6Nly5bs3r272MH1ZwezRo0asXXr1jKfbkIqp9J87hR/RURE/uDt7c2zzz5Lo0aNir2rsfAuyEaNGvHss88qeMkl0d2OIiIiZxk8eDADBw4sMVhFR0erxUsui1q+REREznGhYKXgJZdD4UtERETEgxS+RERERDxIY77kspmmyZGMIxzJOEJSVhIZeRlYLVYi/CKo7ledeqH1CPDSpH5SvnIKckhITSApK4kT2SfIt+fj5+VHdf/q1AyoSUxwDBZDv2+KSMVT+JJLZpome1L2sObIGvae3ktmQSYGBjaLDdM0sZt2DMOgml812tdoT6danQjyDqrosqWKySnI4eejP7P+2HqOZR7DbtqxGlYshgW7acc0TXysPsSGxNKxVkdaVmupECYiFUrhSy5Jrj2XpQeWsub3NeTYc6jhX4NagbUwDMNtuwJHAadyTvHd/u/YfnI7fev1pXF44wqqWqqaxPREvtn3DbtP7ybQK5C6QXXxsnoV2S4rP4t9KfvYn7KfDlEduDXuVgK9iz5wWETEE/Trn5Rarj2XubvnsuTQEgK8AmgQ2oAg76AiwQvAZrFRw78G9UPrczTzKLN2zmLbyW0VULVUNQdSD/Dxjo/Zc3oPscGx1AqsVWzwAvD38icuJI4IvwjW/L6GT3d9SnpeuocrFhFxUviSUjFNkx8O/sC6Y+uoE1iHMN+wi9rPZrERGxxLrj2Xr/Z8xe8Zv5dzpVKVpeam8sWeLziZfZL6ofXxtl7cbf9B3kHEBsey7eQ2vtn3DQ7TUc6VilwZVqxYgWEYpKSknHe72NhYXn/9dY/UdDVT+JJS2ZeyjzW/r6GaXzX8vfyL3caak4ffqTSsOXluyw3DIDoomuScZBYmLCTfke+JkqWKMU2TpQeXkpiWSGxwbLHjt/JyrKSd8iMvx1pknY/Vh9pBtfk16Vfik+I9ULFUetnZcPy4889yNnz4cAzDwDAMvL29adCgAc8++ywFBQWXddxOnTpx9OhRQkJCAJg+fTqhoaFFtlu/fj0PPfTQZZ1LLuyyxnxNmjSJCRMm8NhjjykpXwVM0+Snoz+RlZ9F7cDaRdZH/bqX1h8vI27FFiwOE4fFIKF7KzbfexPH2tQHnAGsTlAddibvZF/KPpqEN/H025BK7mjmUX5N+pUaATWwWtzD1d5fo1j2cWu2rIjDdFgwLA5adU/gpns3U7/NMdd2gV6BnDJO8eORH2kZ2RIvS/HdlXKVW70aXn0V5s0DhwMsFujfH/76V+jcudxO27t3b6ZNm0Zubi7fffcdo0aNwsvLiwkTJlzyMb29vYmKirrgdpGRkZd8Drl4l9zytX79eqZOnUqrVq3Ksh65gh3POs5vyb9R3b96kXXNP1vFwJGvEbdyKxaH81ntFodJ3MqtDLz/VZp//qNrWz+bHw7ToVYHuSTbTm4jPT+dEO8Qt+WrPmvOayMHsnWlM3gBmA4LW1fG8er9A/nx8+Zu29fwr8Hh9MPsT9nvsdqlEpkyBbp2hW++cQYvcP75zTfQpQu88065ndrHx4eoqChiYmJ45JFH6NmzJ/Pnz+f06dPcd999hIWF4e/vT58+fdizZ49rv4MHD9KvXz/CwsIICAigefPmfPfdd4B7t+OKFSsYMWIEqamprla2f//734B7t+Pdd9/N4MGD3WrLz8+nWrVqzJw5849L4mDixInExcXh5+dH69at+eKLL8rt2lQVlxS+MjIyGDp0KO+99x5hYRc35kcqv98zficzP5Ng72C35VG/7qXrpDkYJljs7mNoLHYHhgldJ84mKn6fa3mIdwj7U/ar61FKbW/KXgJsAW43eOz9NYo5k7qCaeCwu/+z5rBbwDSYPbEr++LP/Obva/OlwFHA0cyjHqtdKonVq2HUKDBNOLe7r6DAufzRR2HNGo+U4+fnR15eHsOHD2fDhg3Mnz+fn376CdM0ufXWW8nPd/47OmrUKHJzc1m1ahVbt27lxRdfJDCw6F29nTp14vXXXyc4OJijR49y9OhRHn/88SLbDR06lG+++YaMjAzXssWLF5OVlcXAgQMBmDhxIjNnzuSdd95h+/btjBs3jnvuuYeVK1eW09WoGi4pfI0aNYq+ffvSs2fPsq5HrmAnsk8AFLmrsfXHyzAt5/8omRYLrT9e5vrZ38ufjPwMTmWfKvtCpcrKys/iZPbJIuMNl33cGovFPO++FovJso9buy2zWWwcyThS5nVKJffqq2AtOl7QjdUKr71WrmWYpsnSpUtZvHgxdevWZf78+bz//vt06dKF1q1b88knn3DkyBG+/vprAA4dOkTnzp1p2bIl9erV47bbbqNr165Fjuvt7U1ISAiGYRAVFUVUVFSxIa1Xr14EBATw1VdfuZbNmjWL//u//yMoKIjc3FxeeOEFPvzwQ3r16kW9evUYPnw499xzD1OnTi2361IVlHrM1+zZs9m0aRPr16+/qO1zc3PJzc11/ZyWllbaU8oVIrsgu0jwsubkucZ4nY/F7iBu+WasOXnYfb3xsnhR4Cgg15573v1EzpZnz6PAUeD2xIS8HKtrjNf5OOwWNi+PIy/HirevHQAvixcZeRnn3U+uMtnZZ8Z4nU9BAXz1lXN7P78yLWHBggUEBgaSn5+Pw+Hg7rvv5k9/+hMLFizguuuuc20XERFB48aN2blzJwBjxozhkUce4fvvv6dnz54MGjTosoYG2Ww27rzzTj755BPuvfdeMjMzmTdvHrNnzwZg7969ZGVlcfPNN7vtl5eXR9u2bS/5vFeDUrV8JSYm8thjj/HJJ5/g6+t7UftMnDiRkJAQ1ys6OvqSCpWKZzWscE7G8s7MuWDwKmRxmHhn5gDO3+gMw9BM41IqhmFgYLhNEZGT6X3B4FXIdFjIyTwzLYXDdGCzaK5pOUta2oWDVyGHw7l9GevRowfx8fHs2bOH7OxsZsyYUew8iud64IEH2L9/P/feey9bt26lQ4cOvPHGG5dVy9ChQ/nhhx9ISkri66+/xs/Pj969ewO4uiO//fZb4uPjXa8dO3Zo3NcFlOqbb+PGjSQlJdGuXTtsNhs2m42VK1cyefJkbDYbdru9yD4TJkwgNTXV9UpMTCyz4sWzwnzDMM9JX3kBvjgsF/5HAcBhMcgLcIb2rIIs/Gx+hPqElnWZUoUFeQcR4BVAdsGZW/59A/IwLBf3ZWlYHPgGnJkCJdeeS1TAhe8Ak6tIcLDzrsaLYbE4ty9jAQEBNGjQgLp162KzOX85aNq0KQUFBfzyyy+u7U6dOsVvv/1Gs2bNXMuio6N5+OGH+fLLL/nrX//Ke++9V+w5vL29i/3OPlenTp2Ijo5mzpw5fPLJJ9xxxx14eTnvDm7WrBk+Pj4cOnSIBg0auL3U0HJ+pfqV76abbmLr1q1uy0aMGEGTJk144oknsBbTR+7j44OPj8/lVSlXhEi/SKyGlTx7nmtSS7uvNwndWznvcrSX/AXosFpI6N4Ku69zv4z8DGoH1ibQS494kYtnMSzUDa7LumPrXMu8fe206p7A1pVxRQbbu+1rdU47UdjlWNh6Vtzdu3IV8/NzTifxzTdFB9ufzWZzblfGXY4ladiwIf379+fBBx9k6tSpBAUF8eSTT1K7dm369+8PwNixY+nTpw+NGjXi9OnTLF++nKZNmxZ7vNjYWDIyMvjhhx9o3bo1/v7++PsXP3fj3XffzTvvvMPu3btZvny5a3lQUBCPP/4448aNw+FwcMMNN5CamsqaNWsIDg5m2LBhZX8hqohStXwFBQXRokULt1dAQAARERG0aNGivGqUK0RsSCxRAVGugfeFNt9zI8YFmukNh4PN99wIOL/0sguyaR3Z+qKa0kXO1iyiGQYGefYzLVg33rMZh+P8nyWHw+DGeza7fj6dc5pQn1AahjYst1qlkho/Hi7UKmS3w7hxnqnnD9OmTaN9+/bcdtttdOzYEdM0+e6771wtUXa7nVGjRtG0aVN69+5No0aNePvtt4s9VqdOnXj44YcZPHgwkZGRvPTSSyWed+jQoezYsYPatWvT+Zz5zZ577jn+9a9/MXHiRNd5v/32W+Li4srujVdBhmmaFzdgpwTdu3enTZs2Fz3JalpaGiEhIaSmphJcDs21Ur5WHV7Fl3u+JDY41u2RLs0//5GuE2djWixuLWAOqwXD4WDVhLvYfkcXwDllha/Nl1FtRl3044lECuXac3k7/m2OZhwlNiTWtfzHz5sze2JXLBbTrQXMYnXgcBjcNWEVXe7YDoDdtLP39F561O3BgAYDPPwOpKyU9H2Sk5NDQkICcXFxFz0+uYh33nFOJ2G1ureA2WzO4PX22/Dww5f5DqQqKc3n7rJHmq5YseJyDyGVyDVR17Dt5Db2nt5L/dD6rpar7Xd04VTDWs4Z7pdvdp/h/p4bXTPcZ+ZnklWQRd96fRW85JL4WH24JfYWPtr+EadzTrs+R13u2E6thqdY9nFrNi93n+H+xnvOzHBvmiaJ6YnUDqxN9zrdK/CdyBXt4YehZUvndBJffeU+w/24ceU6w71UfbrNR0rFz+bHbfVu46MdH5GQluD2bL1jbepzrE19rDl5eGfmkBfg6xrjBc7gdSTjCNfXvJ5roq6pqLcgVUCz8GZ0rdOVJQeXYBiG68aN+m2OUb/NMfJyrORkeuMbkOca4wXO4HU44zA+Vh/61u9LqG9oxbwBqRw6d3a+srOddzUGB3tsjJdUbbrPX0qtbnBd7mpyF5F+kexN2Ut6XrrberuvN9kRwa7gZTft/J7xO8cyj9GxZkcGNBig2/vlshiGwS2xt9Czbk9Sc1M5mHaQAseZriFvXzvBEdluwSu7IJu9KXvxs/lxe6PbaR7RvLhDixTl5wc1aih4SZnRN6Bckvqh9Xmg5QMsPrCYrSe2cjTzqHMaAFsAXlYvTNMkuyCbjPwMcu25VPevTr/6/Whfo72Cl5QJm8XGrfVuJTo4mu8Pfs+BtANYDStB3kH42fywGBYKHAVk5WeRlpeGzWKjRbUW9InrQ63AWhVdvohcxfQtKJcswi+Cu5rcRcdaHdlyYgu7T+8mPS+d/Lx8DAx8bb7UC6lHy8iWNI9oTohPyIUPKlIKhmHQKrIVDUIbsDN5J1tObOFI+hFSclJw4MBm2Aj0DqRFZAtaVWtF/dD6Cv8iUuH0r5BcFothIS4kjriQOBymg5TcFHILcjEMgxCfEPxsaqaX8ufv5U/7Gu1pX6M9ufZcZ/gyHXhZvQjzCcNqucBz+kREPEjhS8qMxbAQ7hte0WXIVc7H6kONgBoVXYaISIk04F5ERETEgxS+RERERDxI4UtEREQuWmxs7EU/1UaKp/AlIiJyHtnZcPy488/yNnz4cAzDYNKkSW7Lv/76a48/C3f69OmEhoYWWb5+/Xoeeughj9ZS1Sh8iYiIFGP1avjTnyAwEKKinH/+6U+wZk35ntfX15cXX3yR06dPl++JLlFkZCT+/v4VXUalpvAlIiJyjilToGtX+OYb52MdwfnnN99Aly7O526Xl549exIVFcXEiRNL3Gb16tV06dIFPz8/oqOjGTNmDJmZma71R48epW/fvvj5+REXF8esWbOKdBe++uqrtGzZkoCAAKKjo3n00UfJyMgAnM9tHjFiBKmpqRiGgWEY/Pvf/wbcux3vvvtuBg8e7FZbfn4+1apVY+bMmQA4HA4mTpxIXFwcfn5+tG7dmi+++KIMrlTlpfAlIiJyltWrYdQoME0oKHBfV1DgXP7oo+XXAma1WnnhhRd44403OHz4cJH1+/bto3fv3gwaNIgtW7YwZ84cVq9ezejRo13b3Hffffz++++sWLGCuXPn8u6775KUlOR2HIvFwuTJk9m+fTszZsxg2bJl/P3vfwegU6dOvP766wQHB3P06FGOHj3K448/XqSWoUOH8s0337hCG8DixYvJyspi4MCBAEycOJGZM2fyzjvvsH37dsaNG8c999zDypUry+R6VUqmh6WmppqAmZqa6ulTi4hIFVLS90l2dra5Y8cOMzs7+5KOO3CgadpspumMWcW/bDbTHDSoLN6Fu2HDhpn9+/c3TdM0r7/+evP+++83TdM0v/rqK7PwK3vkyJHmQw895Lbfjz/+aFosFjM7O9vcuXOnCZjr1693rd+zZ48JmK+99lqJ5/7888/NiIgI18/Tpk0zQ0JCimwXExPjOk5+fr5ZrVo1c+bMma71Q4YMMQcPHmyapmnm5OSY/v7+5tq1a92OMXLkSHPIkCHnvxiVTGk+d5pkVURE5A/Z2TBv3pmuxpIUFMBXXzm3L6/nbb/44ovceOONRVqcNm/ezJYtW/jkk09cy0zTxOFwkJCQwO7du7HZbLRr1861vkGDBoSFhbkdZ+nSpUycOJFdu3aRlpZGQUEBOTk5ZGVlXfSYLpvNxp133sknn3zCvffeS2ZmJvPmzWP27NkA7N27l6ysLG6++Wa3/fLy8mjbtm2prkdVovAlIiLyh7S0CwevQg6Hc/vyCl9du3alV69eTJgwgeHDh7uWZ2Rk8Oc//5kxY8YU2adu3brs3r37gsc+cOAAt912G4888gjPP/884eHhrF69mpEjR5KXl1eqAfVDhw6lW7duJCUlsWTJEvz8/Ojdu7erVoBvv/2W2rVru+3n4+Nz0eeoahS+RERE/hAcDBbLxQUwi8W5fXmaNGkSbdq0oXHjxq5l7dq1Y8eOHTRo0KDYfRo3bkxBQQG//vor7du3B5wtUGffPblx40YcDgevvPIKFotz+Pdnn33mdhxvb2/sdvsFa+zUqRPR0dHMmTOHhQsXcscdd+Dl5QVAs2bN8PHx4dChQ3Tr1q10b74KU/gSERH5g58f9O/vvKvx3MH2Z7PZnNuVV6tXoZYtWzJ06FAmT57sWvbEE09w/fXXM3r0aB544AECAgLYsWMHS5Ys4c0336RJkyb07NmThx56iClTpuDl5cVf//pX/Pz8XHOFNWjQgPz8fN544w369evHmjVreOecWzhjY2PJyMjghx9+oHXr1vj7+5fYInb33XfzzjvvsHv3bpYvX+5aHhQUxOOPP864ceNwOBzccMMNpKamsmbNGoKDgxk2bFg5XLUrn+52FBEROcv48XChBh+7HcaN80w9zz77LI6zmuJatWrFypUr2b17N126dKFt27Y89dRT1KpVy7XNzJkzqVGjBl27dmXgwIE8+OCDBAUF4evrC0Dr1q159dVXefHFF2nRogWffPJJkaktOnXqxMMPP8zgwYOJjIzkpZdeKrHGoUOHsmPHDmrXrk3nzp3d1j333HP861//YuLEiTRt2pTevXvz7bffEhcXVxaXp1IyTNM0PXnCtLQ0QkJCSE1NJbi822tFRKTKKun7JCcnh4SEBOLi4lxho7Teecc5nYTV6t4CZrM5g9fbb8PDD1/uO/Ccw4cPEx0dzdKlS7npppsqupwqqTSfO7V8iYiInOPhh+HHH51di38MicJicf78449XfvBatmwZ8+fPJyEhgbVr13LXXXcRGxtL165dK7o0QWO+REREitW5s/OVne28qzE4uPzHeJWV/Px8/vGPf7B//36CgoLo1KkTn3zyiWsgvFQshS8REZHz8POrPKGrUK9evejVq1dFlyElULejiIiIiAcpfImIiIh4kMKXiIiIiAcpfImIiIh4kMKXiIiIiAfpbkcRERHgYNpBMvMzS71fgFcAMcEx5VCRVFUKXyIictU7mHaQ27667ZL3XzBwgQKYXDR1O4qIyFXvUlq8ynL/c/30009YrVb69u1bpse9WAcOHMAwDOLj4yvk/FWdwpeIiMgV5oMPPuAvf/kLq1at4vfff6/ocqSMKXyJiIhcQTIyMpgzZw6PPPIIffv2Zfr06W7r58+fT8OGDfH19aVHjx7MmDEDwzBISUlxbbN69Wq6dOmCn58f0dHRjBkzhszMM61zsbGxvPDCC9x///0EBQVRt25d3n33Xdf6uLg4ANq2bYthGHTv3r083/JVR+FLRETkCvLZZ5/RpEkTGjduzD333MOHH36IaZoAJCQkcPvttzNgwAA2b97Mn//8Z/7f//t/bvvv27eP3r17M2jQILZs2cKcOXNYvXo1o0ePdtvulVdeoUOHDvz66688+uijPPLII/z2228ArFu3DoClS5dy9OhRvvzySw+886uHwpeIiMgV5IMPPuCee+4BoHfv3qSmprJy5UoApk6dSuPGjXn55Zdp3Lgxd911F8OHD3fbf+LEiQwdOpSxY8fSsGFDOnXqxOTJk5k5cyY5OTmu7W699VYeffRRGjRowBNPPEG1atVYvnw5AJGRkQBEREQQFRVFeHi4B9751UPhS0RE5Arx22+/sW7dOoYMGQKAzWZj8ODBfPDBB67111xzjds+1157rdvPmzdvZvr06QQGBrpevXr1wuFwkJCQ4NquVatWrv82DIOoqCiSkpLK663JWTTVhIiIyBXigw8+oKCggFq1armWmaaJj48Pb7755kUdIyMjgz//+c+MGTOmyLq6deu6/tvLy8ttnWEYOByOS6xcSkPhS0RE5ApQUFDAzJkzeeWVV7jlllvc1g0YMIBPP/2Uxo0b891337mtW79+vdvP7dq1Y8eOHTRo0OCSa/H29gbAbrdf8jGkZApfIiIiV4AFCxZw+vRpRo4cSUhIiNu6QYMG8cEHH/DZZ5/x6quv8sQTTzBy5Eji4+Ndd0MahgHAE088wfXXX8/o0aN54IEHCAgIYMeOHSxZsuSiW8+qV6+On58fixYtok6dOvj6+hapSS6dxnyJiIhcAT744AN69uxZbMgZNGgQGzZsID09nS+++IIvv/ySVq1aMWXKFNfdjj4+PoBzLNfKlSvZvXs3Xbp0oW3btjz11FNuXZkXYrPZmDx5MlOnTqVWrVr079+/bN6kAGCYhfevekhaWhohISGkpqYSHBzsyVOLiEgVUtL3SU5ODgkJCcTFxeHr63tRx9pxageDFwy+5Frm3DaHZhHNLnn/y/H888/zzjvvkJiYWCHnF6fSfO7U7SgiIlKJvP3221xzzTVERESwZs0aXn755SJzeMmVTeFLRESkEtmzZw//+c9/SE5Opm7duvz1r39lwoQJFV2WlILCl4iIXPUCvAIqdP/SeO2113jttdc8dj4pewpfIiJy1YsJjmHBwAVk5mdeeONzBHgFEBMcUw5VSVWl8CUiIgIKUOIxmmpCRERExIMUvkREREQ8SN2OIiIiJTBNk5x8B3l2B95WC75eFtdM8iKXSuFLRETkHDn5dnYcTWN9QjIHT2Vid5hYLQYxEQFcExdOs5rB+HpZK7pMqaQUvkRERM5y4GQmczYkcvBUJgYGYf5eeHtbKbA72HI4lc2HU4iJCGBwh2hiq3luionKoHv37rRp04bXX3+9oku5omnMl4iIyB8OnMxk2poEDp7MJCY8gAbVA4kI9CHEz4uIQB8aVA8kJjyAg39sd+Bk6aemOJ/hw4djGAaGYeDl5UVcXBx///vfycnJKdPzVFaxsbFVItgpfImIiODsapyzIZET6bk0qB6It634r0hvm4UG1QM5kZ7LnA2J5OTby7SO3r17c/ToUfbv389rr73G1KlTefrpp8v0HJfDNE0KCgoquoxKTeFLREQE2HE0jYOnMomJCLjgoHrDcI7/Ongqk51H08q0Dh8fH6KiooiOjmbAgAH07NmTJUuWuNY7HA4mTpxIXFwcfn5+tG7dmi+++MK1vkOHDvz3v/91/TxgwAC8vLzIyMgA4PDhwxiGwd69ewH46KOP6NChA0FBQURFRXH33XeTlJTk2n/FihUYhsHChQtp3749Pj4+rF69mszMTO677z4CAwOpWbMmr7zyygXf2+bNm+nRowdBQUEEBwfTvn17NmzY4Fq/evVqunTpgp+fH9HR0YwZM4bMTGfrYvfu3Tl48CDjxo1ztQ5WVgpfIiJy1TNNk/UJyRgYJbZ4ncvbZsHAYF1CMqZplktd27ZtY+3atXh7e7uWTZw4kZkzZ/LOO++wfft2xo0bxz333MPKlSsB6NatGytWrACc7+vHH38kNDSU1atXA7By5Upq165NgwYNAMjPz+e5555j8+bNfP311xw4cIDhw4cXqeXJJ59k0qRJ7Ny5k1atWvG3v/2NlStXMm/ePL7//ntWrFjBpk2bzvt+hg4dSp06dVi/fj0bN27kySefxMvLC4B9+/bRu3dvBg0axJYtW5gzZw6rV692PTT8yy+/pE6dOjz77LMcPXqUo0ePXta1rUgacC8iIle9nHwHB09lEubvVar9wvy9OHgqk5x8B37eZXP344IFCwgMDKSgoIDc3FwsFgtvvvkmALm5ubzwwgssXbqUjh07AlCvXj1Wr17N1KlT6datG927d+eDDz7Abrezbds2vL29GTx4MCtWrKB3796sWLGCbt26uc53//33u/67Xr16TJ48mWuuuYaMjAwCAwNd65599lluvvlmADIyMvjggw/4+OOPuemmmwCYMWMGderUOe97O3ToEH/7299o0qQJAA0bNnStmzhxIkOHDmXs2LGudZMnT6Zbt25MmTKF8PBwrFarq4WuMlPLl4iIXPXy7A7sDhObtXRfi1aLgd1hkmd3lFktPXr0ID4+nl9++YVhw4YxYsQIBg0aBMDevXvJysri5ptvJjAw0PWaOXMm+/btA6BLly6kp6fz66+/snLlSlcgK2wNW7lyJd27d3edb+PGjfTr14+6desSFBTkCmaHDh1yq6tDhw6u/963bx95eXlcd911rmXh4eE0btz4vO9t/PjxPPDAA/Ts2ZNJkya5agZnl+T06dPd3levXr1wOBwkJCSU/kJewdTyJSIiVz1vqwWrxaCglCGqcP4v71KGtvMJCAhwdQl++OGHtG7dmg8++ICRI0e6xm19++231K5d220/Hx8fAEJDQ2ndujUrVqzgp59+4uabb6Zr164MHjyY3bt3s2fPHlfAyszMpFevXvTq1YtPPvmEyMhIDh06RK9evcjLyytS1+X697//zd133823337LwoULefrpp5k9ezYDBw4kIyODP//5z4wZM6bIfnXr1r3sc19J1PIlIiJXPV8vCzERAZzOyi/Vfqez8omJCMDXq3y+Ti0WC//4xz/45z//SXZ2Ns2aNcPHx4dDhw7RoEEDt1d0dLRrv27durF8+XJWrVpF9+7dCQ8Pp2nTpjz//PPUrFmTRo0aAbBr1y5OnTrFpEmT6NKlC02aNHEbbF+S+vXr4+XlxS+//OJadvr0aXbv3n3BfRs1asS4ceP4/vvv+dOf/sS0adMAaNeuHTt27Cjyvho0aOAa8+bt7Y3dXrZ3l1YEhS8REbnqGYbBNXHhmJjkFVxc61degQMTk2vjwsv1zrs77rgDq9XKW2+9RVBQEI8//jjjxo1jxowZ7Nu3j02bNvHGG28wY8YM1z7du3dn8eLF2Gw2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52XxwmqxUmAWXHjjs9hN5/xfXpaL66q8HDt37iQuLq7Yde3atSMhIYGFCxeydOlS7rzzTnr27MkXX3xx3mMGBAQUWdavXz9iYmJ47733qFWrFg6HgxYtWrgGwPv5lV8LX3H1lGTlypX069eP1157jfvuu++82/bp04eDBw/y3XffsWTJEm666SZGjRrFf//7XzIyMmjfvn2xd0yWJgiWhlq+RETkqudr9SU6KJqU3JRS7Xc69zTRQdH4WosfHF5Wli1bxtatW4t0CZ4tODiYwYMH89577zFnzhzmzp1LcnIyAF5eXtjt9gue59SpU/z222/885//5KabbqJp06acPn3abZtWrVoRHx/vOva5vL29i5yradOmbuPQAHbs2EFKSgrNmjW7YF3nWrFiBX379uXFF1/koYceuqh9IiMjGTZsGB9//DGvv/467777LuAMrnv27KF69eo0aNDA7RUSElLie7ocCl8iInLVMwyDdjXaYZom+faL60LMs+eBCe1rtC/Twfa5ubkcO3aMI0eOsGnTJl544QX69+/PbbfdVmILz6uvvsqnn37Krl272L17N59//jlRUVGEhoYCzjFOP/zwA8eOHSsSps4WFhZGREQE7777Lnv37mXZsmWMHz/ebZshQ4YQFRXFgAEDWLNmDfv372fu3Ln89NNPrnMlJCQQHx/PyZMnyc3NpWfPnrRs2ZKhQ4eyadMm1q1bx3333Ue3bt1c47Au1vLly+nbty9jxoxh0KBBHDt2jGPHjpUYBgGeeuop5s2bx969e9m+fTsLFixwDdAfOnQo1apVo3///vz4448kJCSwYsUKxowZw+HDh13vacuWLfz222+cPHmS/PzL62ZW+BIREQGahDchOiiag+kHMU3zvNuapsmh9ENEB0XTOLxxmdaxaNEiatasSWxsLL1792b58uVMnjyZefPmlXgHYFBQEC+99BIdOnTgmmuu4cCBA3z33XdYLM6v+VdeeYUlS5YQHR1N27ZtSzy3xWJh9uzZbNy4kRYtWjBu3Dhefvllt228vb35/vvvqV69OrfeeistW7Zk0qRJrtoGDRpE79696dGjB5GRkXz66acYhsG8efMICwuja9eu9OzZk3r16jFnzpxSX58ZM2aQlZXFxIkTqVmzpuv1pz/9qcR9vL29mTBhAq1ataJr165YrVZmz54NgL+/P6tWraJu3br86U9/omnTpowcOZKcnByCg4MBePDBB2ncuDEdOnQgMjKSNWvWlLrusxnmhT5hZSwtLY2QkBBSU1Ndb0pERKS0Svo+ycnJISEh4bxzRZWkcIb7k9knqRtU1zmdxDny7HkcSj9ENb9q3Nv0XqKDo4s5klxtSvO504B7ERGRP9QNrss9Te9xPdsRwzmdhNWwYjftnM49DSbUDarLoIaDFLzkkih8iYiInKVucF0eafMIvyX/xsbjG0lMTyTfno/VYqVFRAva12hP4/DG+FjL7tE+cnVR+BIRETmHj9WHVpGtaFmtJTn2HPId+XhZvPC1+pbrTPZydVD4EhERKYFhGPjZ/PCjfGevl6uL7nYUEZEqycP3k8lVrjSfN4UvERGpUry8nLPNZ2VlVXAlcjUp/LwVfv7OR92OIiJSpVitVkJDQ0lKSgKc8zhpnJaUF9M0ycrKIikpidDQ0BLnYjubwpeIiFQ5UVFRAK4AJlLeQkNDXZ+7C1H4EhGRKscwDGrWrEn16tUv+1EwIhfi5eV1US1ehRS+RESkyrJaraX6UhTxBA24FxEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD1L4EhEREfEghS8RERERD7JVdAFXkszcAjJyCzCAQF8b/t66PCJyFcrPgZwUME3w9gefYDCMiq5KpMq46tNFUnoOWxJT2fZ7KsfTcsgrcADgbbNQI9iXlrVDaFUnlMggnwquVESkHGWfht9/db5SDzsDGCZYvSGgGtRoCXXaQ0i0gpjIZTJM0zQ9ecK0tDRCQkJITU0lODjYk6d2k5NvZ/muJFbuPkFyZh7+3lYCfWz4eFkByM23k5FbQHa+nTB/b3o0jqRb4+r4/rFeRKRKsBfAgVWw61tIPw42H2dLl5cfYIA9F3IzIC/duTz2Bmh6G/iGVHTlV8z3iUhpXZXh61RGLlNW/8zOpBOE+HkR6u+N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9PR0AKKjoz19ahERqYLS09MJCQmp6DJELpphevhXBofDwe+//05QUBCGYXjy1BclLS2N6OhoEhMTCQ4OruhyKiVdw8una3h5dP0uX2W4hqZpkp6eTq1atbBYNIpGKg+Pt3xZLBbq1Knj6dOWWnBw8BX7D05loWt4+XQNL4+u3+W70q+hWrykMtKvCiIiIiIepPAlIiIi4kEKX+fw8fHh6aefxsfHp6JLqbR0DS+fruHl0fW7fLqGIuXH4wPuRURERK5mavkSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvg6y1tvvUVsbCy+vr5cd911rFu3rqJLqlRWrVpFv379qFWrFoZh8PXXX1d0SZXKxIkTueaaawgKCqJ69eoMGDCA3377raLLqlSmTJlCq1atXBODduzYkYULF1Z0WZXWpEmTMAyDsWPHVnQpIlWKwtcf5syZw/jx43n66afZtGkTrVu3plevXiQlJVV0aZVGZmYmrVu35q233qroUiqllStXMmrUKH7++WeWLFlCfn4+t9xyC5mZmRVdWqVRp04dJk2axMaNG9mwYQM33ngj/fv3Z/v27RVdWqWzfv16pk6dSqtWrSq6FJEqR1NN/OG6667jmmuu4c033wScz6CMjo7mL3/5C08++WQFV1f5GIbBV199xYABAyq6lErrxIkTVK9enZUrV9K1a9eKLqfSCg8P5+WXX2bkyJEVXUqlkZGRQbt27Xj77bf5z3/+Q5s2bXj99dcruiyRKkMtX0BeXh4bN26kZ8+ermUWi4WePXvy008/VWBlcjVLTU0FnOFBSs9utzN79mwyMzPp2LFjRZdTqYwaNYq+ffu6/ZsoImXH4w/WvhKdPHkSu91OjRo13JbXqFGDXbt2VVBVcjVzOByMHTuWzp0706JFi4oup1LZunUrHTt2JCcnh8DAQL766iuaNWtW0WVVGrNnz2bTpk2sX7++oksRqbIUvkSuQKNGjWLbtm2sXr26okupdBo3bkx8fDypqal88cUXDBs2jJUrVyqAXYTExEQee+wxlixZgq+vb0WXI1JlKXwB1apVw2q1cvz4cbflx48fJyoqqoKqkqvV6NGjWbBgAatWraJOnToVXU6l4+3tTYMGDQBo374969ev53//+x9Tp06t4MqufBs3biQpKYl27dq5ltntdlatWsWbb75Jbm4uVqu1AisUqRo05gvnP9bt27fnhx9+cC1zOBz88MMPGisiHmOaJqNHj+arr75i2bJlxMXFVXRJVYLD4SA3N7eiy6gUbrrpJrZu3Up8fLzr1aFDB4YOHUp8fLyCl0gZUcvXH8aPH8+wYcPo0KED1157La+//jqZmZmMGDGiokurNDIyMti7d6/r54SEBOLj4wkPD6du3boVWFnlMGrUKGbNmsW8efMICgri2LFjAISEhODn51fB1VUOEyZMoE+fPtStW5f09HRmzZrFihUrWLx4cUWXVikEBQUVGWMYEBBARESExh6KlCGFrz8MHjyYEydO8NRTT3Hs2DHatGnDokWLigzCl5Jt2LCBHj16uH4eP348AMOGDWP69OkVVFXlMWXKFAC6d+/utnzatGkMHz7c8wVVQklJSdx3330cPXqUkJAQWrVqxeLFi7n55psrujQRERfN8yUiIiLiQRrzJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHvT/ASgtS/wHX+QkAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=10\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB250lEQVR4nO3dd3hUZf7+8feZmWTSK4FQQhJ67xZQiooCIl9gURFRAVFXhUVh3VX2t6ur7grqWhYLoqsgKoqKiqKAIEXBQjN0pAUIEAiQ3pOZ8/tjzMCQBAgkExLu13XNBTn1cw5D5p7nPOc5hmmaJiIiIiLiFZbqLkBERETkUqLwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJSIiIuJFCl8iIiIiXqTwJV7zz3/+E8MwPKbFxcUxevRor9Yxa9YsDMNg3759Xt2vnBv9+4hIbafwVc0SExMZP348LVq0ICAggICAANq0acO4cePYtGlTdZd3Sdq3bx+GYZzTq7yAEBcXh2EY9O3bt8z5b731lnsb69atq8KjOT9nOwdTp06t7hIvKXPmzOHll1+u7jJEpJLYqruAS9mCBQsYPnw4NpuNkSNH0rFjRywWCzt27OCzzz5j+vTpJCYmEhsbW92lVpnffvsNi+Xi+g4QFRXFe++95zHthRde4ODBg7z00kulli2Pn58fy5cv58iRI0RHR3vM++CDD/Dz8yM/P7/yCq8CI0aM4MYbbyw1vXPnzlW2zzvvvJPbbrsNu91eZfuoaebMmcOWLVt4+OGHq7sUEakECl/VZM+ePdx2223Exsby3XffUb9+fY/5zz77LK+//vpFF0xOlZOTQ2Bg4AVt42L8gA0MDOSOO+7wmPbRRx+RlpZWavqZXHXVVaxdu5a5c+fy0EMPuacfPHiQH374gaFDhzJv3rxKq7sqdOnSpULHXBmsVitWq/WMy5imSX5+Pv7+/l6qSkSk8ly8n+y13HPPPUdOTg4zZ84sFbwAbDYbEyZMICYmxmP6jh07uPnmm4mIiMDPz49u3brx5ZdfeixT0mdm9erVTJo0iaioKAIDAxk6dCjHjh0rta+FCxfSs2dPAgMDCQ4OZuDAgWzdutVjmdGjRxMUFMSePXu48cYbCQ4OZuTIkQD88MMP3HLLLTRu3Bi73U5MTAwTJ04kLy/vrOfh9D5f53qJ71zOA8DWrVu59tpr8ff3p1GjRvzrX//C6XSeta7K4Ofnxx/+8AfmzJnjMf3DDz8kPDycfv36lVpn06ZNjB49miZNmuDn50d0dDR33303J06ccC9ztkuCp/rll1/o378/oaGhBAQE0Lt3b1avXl2pxxkXF8dNN93EqlWruPzyy/Hz86NJkybMnj3bvcy6deswDIN333231PqLFy/GMAwWLFgAlN3nq2Qfixcvplu3bvj7+zNjxgwA9u7dyy233EJERAQBAQFceeWVfP311x77WLFiBYZh8PHHH/Pvf/+bRo0a4efnx3XXXcfu3bs9lu3Tpw/t2rVj06ZN9O7dm4CAAJo1a8ann34KwMqVK7niiivw9/enZcuWLF26tNQxHTp0iLvvvpt69epht9tp27Yt77zzznnV1KdPH77++mv279/v/jeOi4s7h38ZEblYqeWrmixYsIBmzZpxxRVXnPM6W7du5aqrrqJhw4Y89thjBAYG8vHHHzNkyBDmzZvH0KFDPZb/05/+RHh4OE888QT79u3j5ZdfZvz48cydO9e9zHvvvceoUaPo168fzz77LLm5uUyfPp2rr76aX3/91eOXfHFxMf369ePqq6/mP//5DwEBAQB88skn5Obm8sADDxAZGcmaNWt45ZVXOHjwIJ988kmFzsvpl/sA/v73v5OSkkJQUFCFzsORI0e45pprKC4udi/35ptverW15Pbbb+eGG25gz549NG3aFHBdQrr55pvx8fEptfySJUvYu3cvY8aMITo6mq1bt/Lmm2+ydetWfv75ZwzDKPOyaFFRERMnTsTX19c9bdmyZQwYMICuXbvyxBNPYLFYmDlzJtdeey0//PADl19++Vnrz83N5fjx46Wmh4WFYbOd/PWxe/dubr75ZsaOHcuoUaN45513GD16NF27dqVt27Z069aNJk2a8PHHHzNq1CiPbc2dO7fcMHqq3377jREjRvDHP/6Re++9l5YtW3L06FF69OhBbm4uEyZMIDIyknfffZf/+7//49NPPy31f2Lq1KlYLBYeeeQRMjIyeO655xg5ciS//PKLx3JpaWncdNNN3Hbbbdxyyy1Mnz6d2267jQ8++ICHH36Y+++/n9tvv53nn3+em2++maSkJIKDgwE4evQoV155JYZhMH78eKKioli4cCFjx44lMzOz1KXDs9X0//7f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ZVHLl4iIXPJ8LD5YLVaKzeKzL3wKh+ka/8vHcm6XKi/E9u3biY+PL3Nely5dSExMZOHChSxdupRbb72Vvn378umnn55xm4GBgaWmDRo0iNjYWN566y0aNGiA0+mkXbt27g7w/v5V18JXVj3lWblyJYMGDeKll17irrvuOuOyAwYMYP/+/XzzzTcsWbKE6667jnHjxvGf//yH7OxsunbtWuYdkxUJghWhli8REbnk+Vn9iAmOIb0gvULrpRWkERMcg5+17M7hlWXZsmVs3ry51CXBU4WEhDB8+HDeeust5s6dy7x580hNTQXAx8cHh8Nx1v2cOHGC3377jb///e9cd911tG7dmrS0NI9lOnToQEJCgnvbp/P19S21r9atW3v0QwPYtm0b6enptGnT5qx1nW7FihUMHDiQZ599lvvuu++c1omKimLUqFG8//77vPzyy7z55puAK7ju2rWLunXr0qxZM49XaGhoucd0IRS+RETkkmcYBl3qdcE0TYoc53YJsdBRCCZ0rde1UjvbFxQUcOTIEQ4dOsSGDRt45plnGDx4MDfddFO5LTwvvvgiH374ITt27GDnzp188sknREdHExYWBrj6OH333XccOXKkVJg6VXh4OJGRkbz55pvs3r2bZcuWMWnSJI9lRowYQXR0NEOGDGH16tXs3buXefPm8dNPP7n3lZiYSEJCAsePH6egoIC+ffvSvn17Ro4cyYYNG1izZg133XUXvXv3dvfDOlfLly9n4MCBTJgwgWHDhnHkyBGOHDlSbhgEePzxx5k/fz67d+9m69atLFiwwN1Bf+TIkdSpU4fBgwfzww8/kJiYyIoVK5gwYQIHDx50H9OmTZv47bffOH78OEVFF3aZWeFLREQEaBXRipjgGPZn7cc0zTMua5omB7IOEBMcQ8uIlpVax6JFi6hfvz5xcXH079+f5cuXM23aNObPn1/uHYDBwcE899xzdOvWjcsuu4x9+/bxzTffYLG4PuZfeOEFlixZQkxMDJ07dy533xaLhY8++oj169fTrl07Jk6cyPPPP++xjK+vL99++y1169blxhtvpH379kydOtVd27Bhw+jfvz/XXHMNUVFRfPjhhxiGwfz58wkPD6dXr1707duXJk2aMHfu3Aqfn3fffZfc3FymTJlC/fr13a8//OEP5a7j6+vL5MmT6dChA7169cJqtfLRRx8BEBAQwPfff0/jxo35wx/+QOvWrRk7diz5+fmEhIQAcO+999KyZUu6detGVFQUq1evrnDdpzLMs73DKllmZiahoaFkZGS4D0pERKSiyvs8yc/PJzEx8YxjRZWnZIT743nHaRzc2DWcxGkKHYUcyDpAHf863Nn6TmJCYsrYklxqKvK+U4d7ERGR3zUOacwdre9wP9sRwzWchNWw4jAdpBWkgQmNgxszrPkwBS85LwpfIiIip2gc0pgHOj3Ab6m/sf7oepKykihyFGG1WGkX2Y6u9brSMqIldmvlPdpHLi0KXyIiIqexW+10iOpA+zrtyXfkU+Qswsfig5/Vr0pHspdLg8KXiIhIOQzDwN/mjz9VO3q9XFp0t6OIiNRKXr6fTC5xFXm/KXyJiEit4uPjGm0+Nze3miuRS0nJ+63k/XcmuuwoIiK1itVqJSwsjJSUFMA1jpP6aUlVMU2T3NxcUlJSCAsLK3cstlMpfImISK0THR0N4A5gIlUtLCzM/b47G4UvERGpdQzDoH79+tStW/eCHwUjcjY+Pj7n1OJVQuFLRERqLavVWqEPRRFvUId7ERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIoUvERERES9S+BIRERHxIlt1F3AxySkoJrugGAMI8rMR4KvTIyKXoKJ8yE8H0wTfALCHgGFUd1UitcYlny5SsvLZlJTBlsMZHM3Mp7DYCYCvzUK9ED/aNwylQ6MwooLt1VypiEgVykuDw7+6XhkHXQEME6y+EFgH6rWHRl0hNEZBTOQCGaZpmt7cYWZmJqGhoWRkZBASEuLNXXvIL3KwfEcKK3ceIzWnkABfK0F2G3YfKwAFRQ6yC4rJK3IQHuDLNS2j6N2yLn6/zxcRqRUcxbDve9jxNWQdBZvd1dLl4w8Y4CiAgmwozHJNj7saWt8EfqHVXflF83kiUlGXZMvXiewC5vxygC2H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abpau7KSXcu3GQyt/w9sZ/7iKiJlu+QuO54qKTWXZTtS2Ho4g8z8YgzAx2rBxKS42MQEQvxttGsYyrWt6tIoPKBa6xURqRLZx2DXt5C0xnUHI7jGAjMMcBQBpmt4iqjW0OIGqNu6WsstcTF9nohUxCUdvkocycgn8XgORzLySM0pBAMiA+3UC/GjSVQg9UI0pISIXAJyU+HYb64WruyjrtHw/cIgpAGEx7leF1HL/8X4eSJyLi65y45liQ71IzpUAUtELnEBERDbvbqrEKn1LrkO9yIiIiLVSeFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIsUvkRERES8SOFLRERExIts1V2A1A6maZKeW8Sx7ALyCh1YDIOwAB+igu34+Viruzy5VDiKIPso5BwH0wFWOwTVg4BIsOi7pohcHBS+5ILkFTrYdDCdNYmpJKXlklPgwGE6AQM/m4UQPx86xITSpXE48XUCMQyjukuW2ijjICSthaRfIC8NinJd0w0L+AZBcDTEXQUNu4JfaPXWKiKXPMM0TdObO8zMzCQ0NJSMjAxCQkK8uWupZLtTsvgy4TC7UrKxWQ0iAnwJtNvwsVowTZO8IgdZ+cWk5RYRZLdydfMorm9TjyC7Mr9UkuIC2L0UflsEeangFw7+oeAT4ApezmIozIbcVCjOg7A4aDcUGnQB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PoIuseH4nG04AJGKcjoh+VfYt9p1KbIgm5MDpxqu1i3/MGh0OcRdBeFx1VerVCp9nkhNpfAllSKnoJjD6XmkZBWQV+jAYoFQf1/qhdhpEOqv/l1S9UouK2YlQ84JMB2uAVmD6rnGBtNgqrWOPk+kpqryZzvKpSHQbqN5vWCa1ws++8IiVcEwIKSB6yUichHTNSARERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEihS8RERERL1L4EhEREfEiW3UXILVDVn4RB9PyOJZVQF6RA4thEBbgQ71gPxqG+2O1GNVdotR2pgmZhyAzGXKPg9MBNjsE1YXQGAiIqO4KRUQAhS+5QEcy8vlp7wnW708lLacQh+mabgAm4O9joXFEIFc0iaBbbAS+NjW2SiVzOuDQBtj3AxzfCYU5nvMNA/zCoGFXiLsaIptWS5kiIiUUvuS8OJ0mP+45wcItyRzLKiAi0Je4yEBs1pPhyjRNcgsdJB7PYVdKFglJ6Qzu1JCGYf7VWLnUKjknYMuncOBn189B9SC0sStwlXA6IC8Vdi+BpDXQsj807wc23+qpWUQueQpfUmEOp8mCTYdZsu0ofjYrraKDMYzSlxUNwyDQbiPebiO/yMGmpAyOZRVwV/c44usEVkPlUqtkHYFf3oRjOyA8DuzBZS9nsUJgFATUgeyj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=11\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB270lEQVR4nO3dd3hUZf7+8feZmWTSKwmhhCT03i2gFBUFBb7AoiKiArZVYVFYd5X97eqqu4K6lsWC6CqIiqKioiggSBMsNENHWoBQA6T3ZOb8/hgzMCQBAsmEhPt1XXNBTv2cw5C55znPeY5hmqaJiIiIiHiFpboLEBEREbmUKHyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJiIiIeJHCl4iIiIgXKXyJ1/zzn//EMAyPafHx8YwaNcqrdcyYMQPDMNi7d69X9yvnRv8+IlLbKXxVs6SkJMaOHUvz5s0JCAggICCA1q1bM2bMGDZu3Fjd5V2S9u7di2EY5/QqLyDEx8djGAZ9+vQpc/7bb7/t3sbatWur8GjOz9nOweTJk6u7xEvKrFmzeOWVV6q7DBGpJLbqLuBSNm/ePIYNG4bNZmPEiBF06NABi8XC9u3b+fzzz5k6dSpJSUnExcVVd6lV5rfffsNiubi+A0RFRfH+++97THvxxRc5cOAAL7/8cqlly+Pn58fSpUs5cuQIMTExHvM+/PBD/Pz8yM/Pr7zCq8Dw4cO56aabSk3v1KlTle3zzjvv5LbbbsNut1fZPmqaWbNmsXnzZh555JHqLkVEKoHCVzXZvXs3t912G3FxcXz//ffUq1fPY/5zzz3HG2+8cdEFk1Pl5OQQGBh4Qdu4GD9gAwMDueOOOzymffzxx6SlpZWafiZXXXUVa9asYfbs2Tz88MPu6QcOHOCHH35gyJAhzJkzp9LqrgqdO3eu0DFXBqvVitVqPeMypmmSn5+Pv7+/l6oSEak8F+8ney33/PPPk5OTw/Tp00sFLwCbzca4ceOIjY31mL59+3ZuvvlmIiIi8PPzo2vXrnz11Vcey5T0mVm1ahUTJkwgKiqKwMBAhgwZwrFjx0rta/78+fTo0YPAwECCg4Pp378/W7Zs8Vhm1KhRBAUFsXv3bm666SaCg4MZMWIEAD/88AO33HILjRo1wm63Exsby/jx48nLyzvreTi9z9e5XuI7l/MAsGXLFq699lr8/f1p2LAh//rXv3A6nWetqzL4+fnxhz/8gVmzZnlM/+ijjwgPD6dv376l1tm4cSOjRo2icePG+Pn5ERMTw913382JEyfcy5ztkuCpfvnlF/r160doaCgBAQH06tWLVatWVepxxsfHM2DAAFauXMnll1+On58fjRs3ZubMme5l1q5di2EYvPfee6XWX7hwIYZhMG/ePKDsPl8l+1i4cCFdu3bF39+fadOmAbBnzx5uueUWIiIiCAgI4Morr+Sbb77x2MeyZcswDINPPvmEf//73zRs2BA/Pz+uu+46du3a5bFs7969adu2LRs3bqRXr14EBATQtGlTPvvsMwCWL1/OFVdcgb+/Py1atGDx4sWljungwYPcfffd1K1bF7vdTps2bXj33XfPq6bevXvzzTffsG/fPve/cXx8/Dn8y4jIxUotX9Vk3rx5NG3alCuuuOKc19myZQtXXXUVDRo04PHHHycwMJBPPvmEwYMHM2fOHIYMGeKx/J/+9CfCw8N58skn2bt3L6+88gpjx45l9uzZ7mXef/99Ro4cSd++fXnuuefIzc1l6tSpXH311fz6668ev+SLi4vp27cvV199Nf/5z38ICAgA4NNPPyU3N5cHH3yQyMhIVq9ezauvvsqBAwf49NNPK3ReTr/cB/D3v/+dlJQUgoKCKnQejhw5wjXXXENxcbF7ubfeesurrSW33347N9xwA7t376ZJkyaA6xLSzTffjI+PT6nlFy1axJ49exg9ejQxMTFs2bKFt956iy1btvDzzz9jGEaZl0WLiooYP348vr6+7mlLlizhxhtvpEuXLjz55JNYLBamT5/Otddeyw8//MDll19+1vpzc3M5fvx4qelhYWHYbCd/fezatYubb76Ze+65h5EjR/Luu+8yatQounTpQps2bejatSuNGzfmk08+YeTIkR7bmj17drlh9FS//fYbw4cP549//CP33XcfLVq04OjRo3Tv3p3c3FzGjRtHZGQk7733Hv/3f//HZ599Vur/xOTJk7FYLDz66KNkZGTw/PPPM2LECH755ReP5dLS0hgwYAC33XYbt9xyC1OnTuW2227jww8/5JFHHuGBBx7g9ttv54UXXuDmm28mOTmZ4OBgAI4ePcqVV16JYRiMHTuWqKgo5s+fzz333ENmZmapS4dnq+n//b//R0ZGhsdl75L/CyJSQ5nidRkZGSZgDh48uNS8tLQ089ixY+5Xbm6ue951111ntmvXzszPz3dPczqdZvfu3c1mzZq5p02fPt0EzD59+phOp9M9ffz48abVajXT09NN0zTNrKwsMywszLzvvvs8ajhy5IgZGhrqMX3kyJEmYD7++OOlaj61xhKTJk0yDcMw9+3b55725JNPmqe/5eLi4syRI0eWWr/E888/bwLmzJkzK3weHnnkERMwf/nlF/e0lJQUMzQ01ATMpKSkcvd7uv79+5txcXHnvHxcXJzZv39/s7i42IyJiTGfeeYZ0zRNc+vWrSZgLl++3P3vtGbNGvd6ZZ3Ljz76yATMFStWlLu/hx56yLRareaSJUtM03Sdj2bNmpl9+/b1eA/k5uaaCQkJ5vXXX3/G+pOSkkyg3NdPP/3kcayn15eSkmLa7Xbzz3/+s3vaxIkTTR8fHzM1NdU9raCgwAwLCzPvvvtu97SS83Lqv0/JPhYsWOBRZ8m/8Q8//OCelpWVZSYkJJjx8fGmw+EwTdM0ly5dagJmq1atzIKCAvey//3vf03A3LRpk3tar169TMCcNWuWe9r27dtNwLRYLObPP//snr5w4UITMKdPn+6eds8995j16tUzjx8/7lHrbbfdZoaGhrr/jStSU0XffyJycdNlx2qQmZkJlP3ttXfv3kRFRblfr7/+OgCpqaksWbKEW2+9laysLI4fP87x48c5ceIEffv2ZefOnRw8eNBjW/fff7/HZagePXrgcDjYt28f4GplSU9PZ/jw4e7tHT9+HKvVyhVXXMHSpUtL1ffggw+WmnZqS1JOTg7Hjx+ne/fumKbJr7/+eh5nyGXp0qVMnDiRP/3pT9x5550VPg/ffvstV155pUcLT1RUlPtyqTdYrVZuvfVWPvroI8DV0T42NpYePXqUufyp5zI/P5/jx49z5ZVXArB+/foy15k5cyZvvPEGzz//PNdccw0AiYmJ7Ny5k9tvv50TJ064z1NOTg7XXXcdK1asOKfLr/fffz+LFi0q9WrdurXHcq1bt/Y4pqioKFq0aMGePXvc04YNG0ZRURGff/65e9p3331Heno6w4YNO2stCQkJpVrHvv32Wy6//HKuvvpq97SgoCDuv/9+9u7dy9atWz2WHz16tEfrYEnNp9ZZso3bbrvN/XOLFi0ICwujVatWHq3VJX8vWd80TebMmcPAgQMxTdPj/1Xfvn3JyMgo9e94rjWJSO2hy47VoOTyRHZ2dql506ZNIysri6NHj3p0dN61axemafKPf/yDf/zjH2VuNyUlhQYNGrh/btSokcf88PBwwHVJBWDnzp0AXHvttWVuLyQkxONnm81Gw4YNSy23f/9+nnjiCb766iv3tktkZGSUue2zOXDgAMOGDeOqq67ipZdeck+vyHnYt29fmZd1W7RocV41nS4jI8OjX5uvry8RERGllrv99tuZMmUKGzZsYNasWdx2222l+maVSE1N5amnnuLjjz8mJSWl1P5Ol5iYyAMPPMDw4cOZMGGCe3rJv+3pl/hO317Je6I8zZo1K3e4jFOd/l4D1/vt1PdDhw4daNmyJbNnz+aee+4BXJcc69SpU+578FQJCQmlppX3b9yqVSv3/LZt25Zb5+n/J0o0bNiw1L9RaGhoqT6YoaGhHusfO3aM9PR03nrrLd56660yj+P0f9dzrUlEag+Fr2oQGhpKvXr12Lx5c6l5JR8kp48fVdJK8eijj5bbN6Zp06YeP5d3x5hpmh7bfP/990sNhQB49OkB152Jp9996XA4uP7660lNTeWxxx6jZcuWBAYGcvDgQUaNGnVendsLCwu5+eabsdvtfPLJJx51nM95qCoPP/ywRwfyXr16sWzZslLLXXHFFTRp0oRHHnmEpKQkbr/99nK3eeutt/Ljjz/yl7/8hY4dOxIUFITT6aRfv36lzmVaWhpDhw6lefPm/O9///OYV7LsCy+8QMeOHcvcV2X2Gzrbe63EsGHD+Pe//83x48cJDg7mq6++Yvjw4aXea2WpjL5651pnecud6/+pO+64o9zg2759+/OqSURqD4WvatK/f3/+97//sXr16nPq+Ny4cWMAfHx8zqkl4lyUdACPjo4+721u2rSJHTt28N5773HXXXe5py9atOi86xo3bhyJiYmsWLGCunXresyryHmIi4tztwCd6rfffjvv2k7117/+1aN18kytSMOHD+df//oXrVq1KjcMpaWl8f333/PUU0/xxBNPuKeXdQxOp5MRI0aQnp7O4sWL3Tc/lCj5tw0JCam090tlGDZsGE899RRz5syhbt26ZGZmelzeq6i4uLgy/z23b9/unu9NUVFRBAcH43A4KvW8l9dSKiI1k/p8VZO//vWvBAQEcPfdd3P06NFS80//1hsdHU3v3r2ZNm0ahw8fLrV8WUNInE3fvn0JCQnh2Wefpaio6Ly2WfKt/dR6TdPkv//9b4XrAZg+fTrTpk3j9ddfLzOUVuQ83HTTTfz888+sXr3aY/6HH354XrWdrnXr1vTp08f96tKlS7nL3nvvvTz55JO8+OKL5S5T1rkEyhzZ/KmnnmLhwoV89NFHZV6O69KlC02aNOE///lPmZe3z+f9UhlatWpFu3btmD17NrNnz6ZevXr07NnzvLd30003sXr1an766Sf3tJycHN566y3i4+NL9U2ralarlaFDhzJnzpwyW7bP97wHBgae9yV8Ebn4qOWrmjRr1oxZs2YxfPhwWrRo4R7h3jRNkpKSmDVrFhaLxaOP1euvv87VV19Nu3btuO+++2jcuDFHjx7lp59+4sCBA2zYsKFCNYSEhDB16lTuvPNOOnfuzG233UZUVBT79+/nm2++4aqrruK111474zZatmxJkyZNePTRRzl48CAhISHMmTPnvPqrHD9+nIceeojWrVtjt9v54IMPPOYPGTKEwMDAcz4Pf/3rX3n//ffp168fDz/8sHuoibi4OK8/uikuLo5//vOfZ1wmJCSEnj178vzzz1NUVESDBg347rvvSEpK8lhu06ZNPPPMM/Ts2ZOUlJRS5+mOO+7AYrHwv//9jxtvvJE2bdowevRoGjRowMGDB1m6dCkhISF8/fXXZ617/fr1pbYPrpa1bt26nf3AyzBs2DCeeOIJ/Pz8uOeeey5oIOHHH3+cjz76iBtvvJFx48YRERHBe++9R1JSEnPmzKmWQYonT57M0qVLueKKK7jvvvto3bo1qamprF+/nsWLF5OamlrhbXbp0oXZs2czYcIELrvsMoKCghg4cGAVVC8i3qDwVY0GDRrEpk2bePHFF/nuu+949913MQyDuLg4+vfvzwMPPECHDh3cy7du3Zq1a9fy1FNPMWPGDE6cOEF0dDSdOnXyuExVEbfffjv169dn8uTJvPDCCxQUFNCgQQN69OjB6NGjz7q+j48PX3/9NePGjWPSpEn4+fkxZMgQxo4d61H7ucjOziY/P5+tW7e67248VVJSEoGBged8HurVq8fSpUv505/+xOTJk4mMjOSBBx6gfv367g7fF5tZs2bxpz/9iddffx3TNLnhhhuYP38+9evXdy9z4sQJTNNk+fLlLF++vNQ2Si6F9u7dm59++olnnnmG1157jezsbGJiYrjiiiv44x//eE71fPTRR+47NU81cuTICwpff//738nNzT2nuxzPpG7duvz444889thjvPrqq+Tn59O+fXu+/vpr+vfvf0HbvpCaVq9ezdNPP83nn3/OG2+8QWRkJG3atOG55547r20+9NBDJCYmMn36dF5++WXi4uIUvkRqMMNUr04RERERr1GfLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKvj/PldDo5dOgQwcHBemSGiIicN9M0ycrKon79+tUyoK7I+fJ6+Dp06BCxsbHe3q2IiNRSycnJHk8DEbnYeT18BQcHA67/LCEhId7evYiI1BKZmZnExsa6P1dEagqvh6+SS40hISEKXyIicsHUhUVqGl0kFxEREfEihS8RERERL1L4EhEREfEir/f5EhER8RaHw0FRUVF1lyG1nI+PD1ar9ZyXV/gSEZFaxzRNjhw5Qnp6enWXIpeIsLAwYmJizukGEIUvERGpdUqCV3R0NAEBAbojUqqMaZrk5uaSkpICQL169c66jsKXiIjUKg6Hwx28IiMjq7scuQT4+/sDkJKSQnR09FkvQarDvYiI1ColfbwCAgKquRK5lJS8386lj6HCl4iI1Eq61CjeVJH3m8KXiIiIiBcpfImIiIh4kcKXiIjIaQoLCy9o/oU6cuQIf/rTn2jcuDF2u53Y2FgGDhzI999/X6X7Fe9Q+BIRETnF7NmzadeuHcnJyWXOT05Opl27dsyePbtK9r937166dOnCkiVLeOGFF9i0aRMLFizgmmuuYcyYMVWyT/EuhS8REZHfFRYW8sQTT7Bjxw569+5dKoAlJyfTu3dvduzYwRNPPFElLWAPPfQQhmGwevVqhg4dSvPmzWnTpg0TJkzg559/Zu/evRiGQWJionud9PR0DMNg2bJl7mmbN2/mxhtvJCgoiLp163LnnXdy/PjxSq9XKk7hS0RE5He+vr4sXryYxo0bs2fPHo8AVhK89uzZQ+PGjVm8eDG+vr6Vuv/U1FQWLFjAmDFjCAwMLDU/LCzsnLaTnp7OtddeS6dOnVi7di0LFizg6NGj3HrrrZVar5wfhS8REZFTxMbGsmzZMo8A9uOPP3oEr2XLlhEbG1vp+961axemadKyZcsL2s5rr71Gp06dePbZZ2nZsiWd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RYsW4e/vT79+/dy1AnzzzTc0aNDAYz273X7O+6htFL5ERER+FxICFsu5BTCLxbV8VZo8eTIdO3akRYsW7mmdO3dm69atNG3atMx1WrRoQXFxMb/++itdunQBXC1Qp949uW7dOpxOJy+++CIWi6v79yeffOKxHV9fXxwOx1lr7N69O7GxscyePZv58+dzyy234OPjA0Dr1q2x2+3s37+fXr16VezgazGFLxERkd/5+8OgQa67Gk/vbH8qm821XFW1epVo164dI0aMYMqUKe5pjz32GFdeeSVjx47l3nvvJTAwkK1bt7Jo0SJee+01WrZsSZ8+fbj//vuZOnUqPj4+/PnPf8bf3989VljTpk0pKiri1VdfZeDAgaxatYo3T7uFMz4+nuzsbL7//ns6dOhAQEBAuS1it99+O2+++SY7duxg6dKl7unBwcE8+uijjB8/HqfTydVXX01GRgarVq0iJCSEkSNHVsFZu/jpbkcREZFTTJgAZ2vwcThg/Hjv1PP000/jPKUprn379ixfvpwdO3bQo0cPOnXqxBNPPEH9+vXdy8ycOZO6devSs2dPhgwZwn333UdwcDB+fn4AdOjQgZdeeonnnnuOtm3b8uGHH5Ya2qJ79+488MADDBs2jKioKJ5//vlyaxwxYgRbt26lQYMGXHXVVR7znnnmGf7xj38wadIkWrVqRb9+/fjmm29ISEiojNNTIxmmaZre3GFmZiahoaFkZGQQUtXttSIiUmuV93mSn59PUlISCQkJ7rBRUW++6RpOwmr1bAGz2VzB64034IEHLvQIvOfAgQPExsayePFirrvuuuoup1aqyPtOLV8iIiKneeAB+OEH16XF37tEYbG4fv7hh4s/eC1ZsoSvvvqKpKQkfvzxR2677Tbi4+Pp2bNndZcmqM+XiIhIma66yvXKy3Pd1RgSUvV9vCpLUVERf/vb39izZw/BwcF0796dDz/80N0RXqqXwpeIiMgZ+PvXnNBVom/fvvTt27e6y5By6LKjiIiIiBcpfImIiIh4kcKXiIiIiBcpfImIiIh4kcKXiIiIiBfpbkcRERFgX+Y+copyKrxeoE8gcSFxVVCR1FYKXyIicsnbl7mPAV8MOO/15w2ZpwAm50yXHUVE5JJ3Pi1elbn+6X766SesViv9+/ev1O2eq71792IYBomJidWy/9pO4UtEROQi88477/Cn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zz+nYcOGPP300xw+fJjDhw9f0LmtTupwLyIil7z8Iif7TuQQHuBTofXCA3zYdyKH/CIn/r6Vc/fjvHnzCAoKori4mIKCAiwWC6+99hoABQUFPPvssyxevJhu3boB0LhxY1auXMm0adPo1asXvXv35p133sHhcLB582Z8fX0ZNmwYy5Yto1+/fixbtoxevXq593f33Xe7/964cWOmTJnCZZddRnZ2NkFBQe55Tz/9NNdffz0A2dnZvPPOO3zwwQdcd911ALz33ns0bNjwjMe2f/9+/vKXv9CyZUsAmjVr5p43adIkRowYwSOPPOKeN2XKFHr16sXUqVOJiIjAarW6W+hqMrV8iYjIJa/Q4cThNLFZK/axaLUYOJwmhQ5npdVyzTXXkJiYyC+//MLIkSMZPXo0Q4cOBWDXrl3k5uZy/fXXExQU5H7NnDmT3bt3A9CjRw+ysrL49ddfWb58uTuQlbSGLV++nN69e7v3t27dOgYOHEijRo0IDg52B7P9+/d71NW1a1f333fv3k1hYSFXXHGFe1pERAQtWrQ447FNmDCBe++9lz59+jB58mR3zeC6JDljxgyP4+rbty9Op5OkpKSKn8iLmFq+RETkkudrtWC1GBRXMESVjP/lW8HQdiaBgYHuS4LvvvsuHTp04J133uGee+5x99v65ptvaNCggcd6drsdgLCwMDp06MCyZcv46aefuP766+nZsyfDhg1jx44d7Ny50x2wcnJy6Nu3L3379uXDDz8kKiqK/fv307dvXwoLC0vVdaH++c9/cvvtt/PNN98wf/58nnzyST7++GOGDBlCdnY2f/zjHxk3blyp9Ro1anTB+76YqOVLREQueX4+FuIiA0nLLarQemm5RcRFBuLnUzUfpxaLhb/97W/8/e9/Jy8vj9atW2O329m/fz9Nmzb1eMXGxrrX69WrF0uXLmXFihX07t2biIgIWrVqxb///W/q1atH8+bNAdi+fTsnTpxg8uTJ9OjRg5YtW3p0ti9PkyZN8PHx4ZdffnFPS0tLY8eOHWddt3nz5owfP57vvvuOP/zhD0yfPh2Azp07s3Xr1lLH1bRpU3efN19fXxyOyr27tDoofImIyCXPMAwuS4jAxKSw+NxavwqLnZiYXJ4QUaV33t1yyy1YrVZef/11goODefTRRxk/fjzvvfceu3fvZv369bz66qu899577nV6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kCEYhuH+uaSF6n//+5/Hw6AXLFjA1VdfTVhYGJGRkQwYMIDdu3d71HjgwAGGDx9OREQEgYGBdO3alV9++YUZM2bw1FNPsWHDBncLXknN+/fvZ9CgQQQFBRESEsKtt97K0aNH3dssr57T/e1vf+OZZ56he/fuNGnShIcffph+/frx+eefl3tO09LSGDFiBFFRUfj7+9OsWTOmT5/unp+cnMytt95KWFgYERERDBo0iL1797rreu+995g7d677mJYtW3amf8KzUp8vERG55Jmmyfqj612X+8pp8Tqdr9UXDFh3dB3t6rSr0rsgr732Wjp06MDnn3/OvffeW2r+lClT+Oqrr/jkk09o1KgRycnJJCcnA7BmzRqio6OZPn06/fr1w2o9+QSNXbt2MWfOHD7//HP39JycHCZMmED79u3Jzs7miSeeYMiQISQmJmKxWMjOzqZXr140aNCAr776ipiYGNavX4/T6WTYsGFs3ryZBQsWsHjxYgBCQ0NxOp3u4LV8+XKKi4sZM2YMw4YN8wgyZdVzLjIyMmjVqlW58//xj3+wdetW5s+fT506ddi1axd5eXkAFBUV0bdvX7p168YPP/yAzWbjX//6F/369WPjxo08+uijbNu2jczMTHdgi4iIOOfayqLwJSIil7x8Rz7JWcmE2cMqtF64PZzkrGTyHfn42/yrprjftWzZko0bN5Y5b//+/TRr1oyrr74awzCIi4tzz4uKigIgLCyMmJgYj/UKCwuZOXOmexmAoUOHeizz7rvvEhUVxdatW2nbti2zZs3i2LFjrFmzxh1CmjZt6l4+KCgIm83msa9FixaxadMmkpKSiI2NBWDmzJm0adOGNWvWcNlll5Vbz9l88sknrFmzhmnTppW7zP79++nUqRNdu3YFTrYGAsyePRun08n//vc/d4CePn06YWFhLFu2jBtuuAF/f38KCgpKnb/zpcuOIiJyyStyFuFwOrAZFWuTsBpWHE4HRc6iKqrsJNM0y21dGzVqFImJibRo0YJx48bx3XffndM24+LiSgWdnTt3Mnz4cBo3bkxISIg7qOzf77q5IDExkU6dOlWo9Wfbtm3Exsa6gxdA69atCQsLY9u2bWes50yWLl3K6NGjefvtt2nTpk25yz344IN8/PHHdOzYkb/+9a/8+OOP7nkbNmxg165dBAcHExQURFBQEBEREeTn55e6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TLXW0eeJ1FS67CiVItBuo1ndYJrVDT77wiJVwTAgpL7rJSJyEdM1IBEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SKFLxEREREvUvgSERER8SJbdRcgtUNWfhEH0vI4llVAXpEDi2EQFuBD3WA/GoT7Y7UY1V2i1HamCZkHIfMw5B4HpwNsdgiKhtBYCIio7gpFRACFL7lARzLy+WnPCdbtSyUtpxCH6ZpuACbg72OhUUQgVzSOoGtcBL42NbZKJXM64OB62PsDHN8BhTme8w0D/MKgQReIvxoim1RLmSIiJRS+5Lw4nSY/7j7B/M2HOZZVQESgL/GRgdisJ8OVaZrkFjpIOp7DzpQsEpPTGdSxAQ3C/KuxcqlVck7A5s9g/8+un4PqQmgjV+Aq4XRAXirsWgTJq6FFP2jWF2y+1VOziFzyLtnwtS9zHzlFOWdf8DSBPoHEhcRVQUU1h8NpMm/jIRZtPYqfzUrLmGAMo/RlRcMwCLTbSLDbyC9ysDE5g2NZBdzVLZ6EOoHVULnUKllH4Je34Nh2CI8He3DZy1msEBgFAXUg+yhs/ASyjkLnO12XJUVEvOySDF/7Mvcx4IsB573+vCHzLukA9sPOY3y35SiRQb6EB5xb64Gfj5Vm0UHsPpbNrF/28UCvJkQG6YNPzlNhLqydDid2QHQr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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=12\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M033+SKK64gIiKCtWvX8uKLL5YYw0subQpfIiIi1ciePXv497//TUpKCg0bNuQvf/kLkyZNquqypBwUvkRE5LIX4BVQpeuXxyuvvMIrr7zisf1JxVP4EhGRy15McAwLBy8kuzD73AufIcArgJjgmEqoSmoqhS8RERFQgBKP0VATIiIiIh6k8CUiIiLiQbrsKCIiUgbTNMkrdFBgd+BtteDrZXGNJC9yoRS+REREzpBXaGdHUgbrE1I4eDIbu8PEajGIiQjgirhwWtUNxtfLWtVlSjWl8CUiInKaAyeymbshkYMnszEwCPP3wtvbSpHdwZbD6Ww+nEZMRABDu0QTW8tzQ0xUB71796ZDhw68+uqrVV3KJU19vkRERP5w4EQ2M9YmcPBENjHhATSpHUhEoA8hfl5EBPrQpHYgMeEBHPxjuQMnyj80xdmMHDkSwzAwDAMvLy/i4uL429/+Rl5eXoXup7qKjY2tEcFO4UtERATnpca5GxI5nplPk9qBeNtK/4j0tlloUjuQ45n5zN2QSF6hvULr6NevH0lJSezfv59XXnmF6dOn89RTT1XoPi6GaZoUFRVVdRnVmsKXiIgIsCMpg4Mns4mJCDhnp3rDcPb/Ongym51JGRVah4+PD1FRUURHRzNo0CD69OnD0qVLXfMdDgeTJ08mLi4OPz8/2rdvz+eff+6a36VLF/773/+6vh80aBBeXl5kZWUBcPjwYQzDYO/evQB8+OGHdOnShaCgIKKiorjrrrtITk52rb9y5UoMw2DRokV07twZHx8f1qxZQ3Z2Nvfeey+BgYHUrVuXl1566ZzHtnnzZq699lqCgoIIDg6mc+fObNiwwTV/zZo19OjRAz8/P6Kjoxk3bhzZ2c7Wxd69e3Pw4EEmTJjgah2srhS+RETksmeaJusTUjAwymzxOpO3zYKBwbqEFEzTrJS6tm3bxo8//oi3t7dr2uTJk5k1axZvvfUW27dvZ8KECdx9992sWrUKgF69erFy5UrAeVw//PADoaGhrFmzBoBVq1ZRv359mjRpAkBhYSHPPvssmzdv5ssvv+TAgQOMHDmyRC1PPPEEU6ZMYefOnbRr146//vWvrFq1igULFvDdd9+xcuVKNm3adNbjGT58OA0aNGD9+vVs3LiRJ554Ai8vLwD27dtHv379GDJkCFu2bGHu3LmsWbPG9dDw+fPn06BBA5555hmSkpJISkq6qHNbldThXkRELnt5hQ4OnswmzN+rXOuF+Xtx8GQ2eYUO/Lwr5u7HhQsXEhgYSFFREfn5+VgsFl5//XUA8vPzee6551i2bBldu3YFoFGjRqxZs4bp06fTq1cvevfuzXvvvYfdbmfbtm14e3szdOhQVq5cSb9+/Vi5ciW9evVy7e++++5z/btRo0ZMnTqVK664gqysLAIDA13znnnmGW644QYAsrKyeO+99/joo4+4/vrrAfjggw9o0KDBWY/t0KFD/PWvf6VFixYANG3a1DVv8uTJDB8+nPHjx7vmTZ06lV69ejFt2jTCw8OxWq2uFrrqTC1fIiJy2SuwO7A7TGzW8n0sWi0GdodJgd1RYbVce+21xMfH88svvzBixAhGjRrFkCFDANi7dy85OTnccMMNBAYGul6zZs1i3759APTo0YPMzEx+/fVXVq1a5Qpkxa1hq1atonfv3q79bdy4kQEDBtCwYUOCgoJcwezQoUNudXXp0sX173379lFQUMBVV13lmhYeHk7z5s3PemwTJ07k/vvvp0+fPkyZMsVVMzgvSc6cOdPtuPr27YvD4SAhIaH8J/ISppYvERG57HlbLVgtBkXlDFHF4395lzO0nU1AQIDrkuD7779P+/btee+99xg9erSr39Y333xD/fr13dbz8fEBIDQ0lPbt27Ny5Up++uknbrjhBnr27MnQoUPZvXs3e/bscQWs7Oxs+vbtS9++ffn444+JjIzk0KFD9O3bl4KCghJ1Xax//etf3HXXXXzzzTcsWrSIp556ijlz5jB48GCysrL405/+xLhx40qs17Bhw4ve96VELV8iInLZ8/WyEBMRQGpOYbnWS80pJCYiAF+vyvk4tVgs/P3vf+cf//gHubm5tGrVCh8fHw4dOkSTJk3cXtHR0a71evXqxYoVK1i9ejW9e/cmPDycli1b8p///Ie6devSrFkzAHbt2sXJkyeZMmUKPXr0oEWLFm6d7cvSuHFjvLy8+OWXX1zTUlNT2b179znXbdasGRMmTOC7777j1ltvZcaMGQB06tSJHTt2lDiuJk2auPq8eXt7Y7dX7N2lVUHhS0RELnuGYXBFXDgmJgVF59f6VVDkwMTkyrjwSr3z7vbbb8dqtfLGG28QFBTEY489xoQJE/jggw/Yt28fmzZt4rXXXuODDz5wrdO7d2+WLFmCzWZz9a/q3bs3H3/8sVt/r4YNG+Lt7c1rr73G/v37+eqrr3j22WfPWVNgYCCjR4/mr3/9K8uXL2fbtm2MHDkSi6XsWJGbm8vYsWNZuXIlBw8eZO3ataxfv56WLVsC8Pjjj/Pjjz8yduxY4uPj2bNnDwsWLHB1uAfnOF+rV6/myJEjnDhxotzn8lKh8CUiIgK0qhvsGj7iXHcvmqbpGpaiZd3gSq3LZrMxduxYXnjhBbKzs3n22Wf55z//yeTJk2nZsiX9+vXjm2++IS4uzrVOjx49cDgcbkGrd+/e2O12t/5ekZGRzJw5k88++4xWrVoxZcoUt2EqzubFF1+kR48eDBgwgD59+nDNNdfQuXPnMpe3Wq2cPHmSe++9l2bNmnHHHXdw00038fTTTwPQrl07Vq1axe7du+nRowcdO3bkySefpF69eq5tPPPMMxw4cIDGjRsTGRl5vqfwkmOYlXV/bBkyMjIICQkhPT2d4ODKfcOKiEjNVdbnSV5eHgkJCcTFxeHr61uubRaPcH88M5+YiIBSh50oKHLeGRkZ5MN918QRE6FHDEn53nfqcC8iIvKH2FoBjOoeV+LZjsV3NabmFGJiElMrgDuviFbwkgui8CUiInKa2FoBPHp9U3YmZbAuIYWDJ7MpLHRgtRi0axDClXHhtKwbjK9XxYzrJZcfhS+RS0BqXio7U3ZyOPMwhzMPk2/Px2axUS+wHtFB0TQPa06dgDpVXabIZcPXy0rHhmF0iA4lr9BBgd2Bt9WCr5elWj/WRi4NCl8iVSirIIuViSvZcGwDaflp2AwbfjY/rBYruUW5/Jr8K+uPrifYO5g2tdrQJ6YP4b7hVV22yGXDMAz8vK34oVYuqTgKXyJV5GDGQb7Y8wUHMg4Q7htOk9AmWIySnXtN0yQtP421v68lIT2BAY0H0CqiVRVULCIiFUFDTYhUgUMZh5i9czaHMg/RKKQRtfxqlRq8wPmXd5hvGE1Cm5CSl8LcXXPZfnK7hysWEZGKovAl4mHZhdl8sfcLjucep1FII2yW82uAthpWGgY1JM+ex4K9CziRW30HGBQRuZwpfIl42OrDq9mftp+Y4Bi31q6iwqKzrldUWIRhGEQHRXMs+xjfHfjunANBishFMk0oyIHcNOdX/Z+TClCu8DVt2jTatWtHcHAwwcHBdO3alUWLFlVWbSI1Tnp+OhuObiDcNxwvi5dr+sYlG/nP7f8h9WhqqeulHk3lP7f/h41LNmIxLNQNqMv2k9s5knXEU6WLXF4K8yBxPfz4Giz5O3z3T+fXH19zTi/Mq+oKpRorV/hq0KABU6ZMYePGjWzYsIHrrruOgQMHsn27+p+InI/dqbtJyUsh3O/UHYtFhUUsnLaQ5IPJvPrAqyUCWOrRVF594FWSDyazcNpCigqLCPIOIrswm50nd3r6EERqvpP7YNUU+Ol1OLIJDAt4+Tu/HtnknL5qinO5KmQYBl9++WWV1iAXplzha8CAAdx88800bdqUZs2a8Z///IfAwEB+/vnnyqpPpEY5knUEwzCwGqduW7d52Rj31jhqNajFicMn3AJYcfA6cfgEtRrUYtxb47B52TAMA1+rLwczDlbVoYjUTCf3wS9vQUoChDeCyOYQEAl+oc6vkc2d01MSnMtVcAAbOXIkhmFgGAZeXl7UqVOHG264gffffx+Hw/2B30lJSdx0003ntV1PBrV//etfdOjQodK2n5eXx8iRI2nbti02m41BgwZV2r6KVfQxXXCfL7vdzpw5c8jOzqZr164VVpBITXYk8wh+Nr8S08Oiwhj/zni3ALY/fr9b8Br/znjCosJc6/h7+XM0+yiFjkJPHoJIzVWYB79+CFnJUKs5WL1LX87q7ZyflexcvoIvQfbr14+kpCQOHDjAokWLuPbaa3n00Ue55ZZbKCo61Tc0KioKHx+fCttvQUFBhW2rIpRVj91ux8/Pj3HjxtGnTx8PV1Uxyh2+tm7dSmBgID4+Pjz00EN88cUXtGpV9phD+fn5ZGRkuL1ELlf59ny3Vq/TnRnAXhr1UpnBC5x3P9pNO0WOs3fUF5HzdHTrqRavc41ibxgQFudc/ti2Ci3Dx8eHqKgo6tevT6dOnfj73//OggULWLRoETNnzjythFOtWQUFBYwdO5a6devi6+tLTEwMkydPBiA2NhaAwYMHYxiG6/vi1px3333X7WHQixcv5pprriE0NJSIiAhuueUW9u1zb+E7fPgww4YNIzw8nICAALp06cIvv/zCzJkzefrpp9m8ebOrBa+45kOHDjFw4EACAwMJDg7mjjvu4NixY65tllXPmQICApg2bRoPPPAAUVFR53VOz3Z+ANLS0rj//vuJjIwkODiY6667js2bNwOc9ZguVLkHWW3evDnx8fGkp6fz+eefM2LECFatWlVmAJs8eTJPP/30RRUpUlP4WH2wm/Yy54dFhTHi2RG8NOol17QRz44oEbwA7KYdq2E976EqROQsTBMO/QQYZbd4ncnm41z+4I9Qv/O5A9tFuO6662jfvj3z58/n/vvvLzF/6tSpfPXVV3z66ac0bNiQxMREEhMTAVi/fj21a9dmxowZ9OvXD6v11B+Ae/fuZd68ecyfP981PTs7m4kTJ9KuXTuysrJ48sknGTx4MPHx8VgsFrKysujVqxf169fnq6++Iioqik2bNuFwOBg6dCjbtm1j8eLFLFu2DICQkBAcDocreK1atYqioiLGjBnD0KFDWbly5VnrqQhnOz8At99+O35+fixatIiQkBCmT5/O9ddfz+7du8s8potR7t/a3t7eNGnSBIDOnTuzfv16/ve//zF9+vRSl580aRITJ050fZ+RkUF0dPQFlitSvdUPqs++9LL7iKQeTeWDf37gNu2Df35QastXTmEOjUIbud01KSIXqDAXUvaDfzkf3+Uf7lyvMBe8/Suntj+0aNGCLVu2lDrv0KFDNG3alGuuuQbDMIiJiXHNi4yMBCA0NLRES1FBQQGzZs1yLQMwZMgQt2Xef/99IiMj2bFjB23atGH27NkcP36c9evXEx7uPF/FuQAgMDAQm83mtq+lS5eydetWEhISXBlg1qxZtG7dmvXr13PFFVeUWU9FONv5WbNmDevWrSM5Odl1Gfe///0vX375JZ9//jkPPvhgqcd0MS56nC+Hw0F+fn6Z8318fFxDUxS/RC5XdQPqYppmqa1fZ3au/8uMv5TaCR+cjxzKK8ojNjjWg9WL1GD2AnDYobx/zFhszvXsld9fyjTNMh/qPXLkSOLj42nevDnjxo3ju+++O69txsTElAg6e/bsYdiwYTRq1Ijg4GDXZcpDhw4BEB8fT8eOHV3B63zs3LmT6Ohot8aXVq1aERoays6dp+7aLq2einC287N582aysrKIiIggMDDQ9UpISChxubWilKvla9KkSdx00000bNiQzMxMZs+ezcqVK1myZEmlFCdS07QIb0GoTygpuSlE+p/6BXNm8Cpu6Rr/znjX9FcfeNU1PaswC38vf1pGtKzCoxGpQazeYLFCeW9gcRQ51zvfS5UXYefOncTFxZU6r1OnTiQkJLBo0SKWLVvGHXfcQZ8+ffj888/Pus2AgIAS0wYMGEBMTAzvvPMO9erVw+Fw0KZNG1cHeD+/kjcNVZTS6qkIZzs/WVlZ1K1b1+3yZ7HQ0NBKqadcLV/Jycnce++9NG/enOuvv57169ezZMkSbrjhhkopTqSmCfEJoXOdzqTkpbg6yhcVFjH1oamldq4/sxP+1IemUlBQQFJ2Ei0jWtIgsEFVHo5IzeHl5+xon5NSvvVyUpzreVVeIAFYvnw5W7duLXFJ8HTBwcEMHTqUd955h7lz5zJv3jxSUpzH4+Xlhd1edn/TYidPnuS3337jH//4B9dffz0tW7YkNdV97MF27doRHx/v2vaZvL29S+yrZcuWJfpZ7dixg7S0tLPetFeRyjo/nTp14ujRo9hsNpo0aeL2qlWrVpnHdDHK1fL13nvvVdiORS5XvaN7szdtLwczDjqf7ehl45aHb2HhtIWMe2tcib5dxQFs6kNT6f9Qf47mHSXSL5K+sX3LvAQhIuVkGNCwKxzZ6LyEeD4tWUX5gAkx3Sq0s31+fj5Hjx7Fbrdz7NgxFi9ezOTJk7nlllu49957S13n5Zdfpm7dunTs2BGLxcJnn31GVFSUq+UmNjaW77//nu7du+Pj40NYWMmbeADCwsKIiIjg7bffpm7duhw6dIgnnnjCbZlhw4bx3HPPMWjQICZPnkzdunX59ddfqVevHl27diU2NpaEhATi4+Np0KABQUFB9OnTh7Zt2zJ8+HBeffVVioqKeOSRR+jVqxddunQp9znasWMHBQUFpKSkkJmZSXx8PECZY3Gd7fz06dOHrl27MmjQIF544QWaNWvG77//zjfffMPgwYPp0qVLqcd0McN86NmOIh4W6B3IwCYDCfcNZ3/6fuwOO537dub/ffb/Sr2rEZwBbNKnk6jdrTZeVi8GNB5Abf/aHq5cpIaLagvhcc4O9Od6hqNpQmqCc/k6bSq0jMWLF1O3bl1iY2Pp168fK1asYOrUqSxYsKDMOwCDgoJ44YUX6NKlC1dccQUHDhzg22+/xWJxfsy/9NJLLF26lOjoaDp27Fjmvi0WC3PmzGHjxo20adOGCRMm8OKLL7ot4+3tzXfffUft2rW5+eabadu2LVOmTHHVNmTIEPr168e1115LZGQkn3zyCYZhsGDBAsLCwujZsyd9+vShUaNGzJ0794LO0c0330zHjh35+uuvWblyJR07djzrcZ3t/BiGwbfffkvPnj0ZNWoUzZo148477+TgwYPUqVOnzGO6GIbp4SfzZmRkEBISQnp6ujrfy2Vtf/p+vtzzJQczDxLpF0moT6jbg7aLmaZJRkEGx3KOUdu/NgMaDaBtZNsqqFjk0lLW50leXh4JCQlnHSuqTMUj3GclO8fxspXSulGU7wxegbXh6oedlx3lslee950GCBKpIo1CGnF/u/tZfmg5vx77lb1pe/GyeOFn88NmseEwHeQU5pBvzyfIO4gro67kxtgbqeVXq6pLF6m5IhrDVQ85R65PSQAM53ASFpuzc31OCmA6W7w63avgJRdE4UukCgV7BzOoySCuqX8NO0/u5FDmIQ5nHqbQUYi31ZtGIY2IDoqmRXgLogKi1MdLxBMiGkOvJ5wj1x/88dQ4XhYr1O/k7ONVpw14lbNVTeQPCl8il4BafrXo0aAH4LzM6DAdWAyLwpZIVfHyhQZdnCPXF+ae6oTv5VepI9nL5UHhS+QSYxhGmc9/FBEPM4w/Rq6v3NHr5fKiux1FREREPEjhS0RERMSDFL5EREREPEh9vkRERMpgmiZ59jwKHYV4WbzwtfrqRhi5aApfIiIiZ8i357MrZRebjm0iMTMRu8OO1WIlOiiaTnU60SK8BT7WC3+8jFzeFL5EREROcyjjEPP3zCcxMxHDMAj1CcXb5k2RWcT2k9vZdmIb0UHR3Nr0VhoGN6yyOg3D4IsvvmDQoEFVVoNcGPX5EhER+cOhjEN8tPMjDmUeomFQQxqFNCLcN5xgn2DCfcNpFNKIhkENOZT5x3IZhyp0/yNHjsQwDAzDwMvLizp16nDDDTfw/vvv43A43JZNSkripptuOq/tGobBl19+WaG1luVf//pXmQ+4rggrV65k4MCB1K1bl4CAADp06MDHH39cafsD58+lIkOuwpeIiAjOS43z98znRO4JGoc0xsvqVepyXlYvGoc05kTuCebvmU++Pb9C6+jXrx9JSUkcOHCARYsWce211/Loo49yyy23UFRU5FouKioKH5+Ku/RZUFBQYduqCGXV8+OPP9KuXTvmzZvHli1bGDVqFPfeey8LFy70cIUXTuFLREQE2JWyi8TMRGKCYs7Zqd4wDBoGNSQxM5HfUn6r0Dp8fHyIioqifv36dOrUib///e8sWLCARYsWMXPmTLcailuzCgoKGDt2LHXr1sXX15eYmBgmT54MQGxsLACDBw/GMAzX98UtVO+++67bw6AXL17MNddcQ2hoKBEREdxyyy3s27fPrcbDhw8zbNgwwsPDCQgIoEuXLvzyyy/MnDmTp59+ms2bN7ta8IprPnToEAMHDiQwMJDg4GDuuOMOjh075tpmWfWc6e9//zvPPvss3bp1o3Hjxjz66KP069eP+fPnl3lOU1NTGT58OJGRkfj5+dG0aVNmzJjhmp+YmMgdd9xBaGgo4eHhDBw4kAMHDrjq+uCDD1iwYIHrmFauXHm2H+E5qc+XiIhc9kzTZNOxTc7LfWW0eJ3J2+oNBmw8tpG2tdpW6l2Q1113He3bt2f+/Pncf//9JeZPnTqVr776ik8//ZSGDRuSmJhIYmIiAOvXr6d27drMmDGDfv36YbWeeoLG3r17mTdvHvPnz3dNz87OZuLEibRr146srCyefPJJBg8eTHx8PBaLhaysLHr16kX9+vX56quviIqKYtOmTTgcDoYOHcq2bdtYvHgxy5YtAyAkJASHw+EKXqtWraKoqIgxY8YwdOhQtyBTWj3nIz09nZYtW5Y5/5///Cc7duxg0aJF1KpVi71795KbmwtAYWEhffv2pWvXrvzwww/YbDb+/e9/069fP7Zs2cJjjz3Gzp07ycjIcAW28PDw866tNApfIiJy2cuz55GYmUioT2i51gvzCSMxM5E8ex5+Nr/KKe4PLVq0YMuWLaXOO3ToEE2bNuWaa67BMAxiYmJc8yIjIwEIDQ0lKirKbb2CggJmzZrlWgZgyJAhbsu8//77REZGsmPHDtq0acPs2bM5fvw469evd4WQJk2auJYPDAzEZrO57Wvp0qVs3bqVhIQEoqOjAZg1axatW7dm/fr1XHHFFWXWcy6ffvop69evZ/r06WUuc+jQITp27EiXLl2AU62BAHPnzsXhcPDuu++6AvSMGTMIDQ1l5cqV3Hjjjfj5+ZGfn1/i/F0oXXYUEZHLXqGjELvDjs0oX5uE1bBid9gpdBRWUmWnmKZZZuvayJEjiY+Pp3nz5owbN47vvvvuvLYZExNTIujs2bOHYcOG0ahRI4KDg11B5dAh580F8fHxdOzYsVytPzt37iQ6OtoVvABatWpFaGgoO3fuPGs9Z7NixQpGjRrFO++8Q+vWrctc7uGHH2bOnDl06NCBv/3tb/z444+ueZs3b2bv3r0EBQURGBhIYGAg4eHh5OXllbjcWlHU8iUiIpc9L4sXVouVIrPo3Aufxm46x//yspzfpcqLsXPnTuLi4kqd16lTJxISEli0aBHLli3jjjvuoE+fPnz++edn3WZAQECJaQMGDCAmJoZ33nmHevXq4XA4aNOmjasDvJ9f5bXwlVZPWVatWsWAAQN45ZVXuPfee8+67E033cTBgwf59ttvWbp0Kddffz1jxozhv//9L1lZWXTu3LnUOybLEwTLQy1fIiJy2fO1+hIdFE1aflq51kvNTyU6KBpfa+mdwyvK8uXL2bp1a4lLgqcLDg5m6NChvPPOO8ydO5d58+aRkpICgJeXF3a7/Zz7OXnyJL/99hv/+Mc/uP7662nZsiWpqaluy7Rr1474+HjXts/k7e1dYl8tW7Z064cGsGPHDtLS0mjVqtU56zrTypUr6d+/P88//zwPPvjgea0TGRnJiBEj+Oijj3j11Vd5++23AWdw3bNnD7Vr16ZJkyZur5CQkDKP6WIofImIyGXPMAw61emEaZoU2s/vEmKBvQBM6Fync4V2ts/Pz+fo0aMcOXKETZs28dxzzzFw4EBuueWWMlt4Xn75ZT755BN27drF7t27+eyzz4iKiiI0NBRw9nH6/vvvOXr0aIkwdbqwsDAiIiJ4++232bt3L8uXL2fixIluywwbNoyoqCgGDRrE2rVr2b9/P/PmzeOnn35y7SshIYH4+HhOnDhBfn4+ffr0oW3btgwfPpxNmzaxbt067r33Xnr16uXqh3W+VqxYQf/+/Rk3bhxDhgzh6NGjHD16tMwwCPDkk0+yYMEC9u7dy/bt21m4cKGrg/7w4cOpVasWAwcO5IcffiAhIYGVK1cybtw4Dh8+7DqmLVu28Ntvv3HixAkKCy/uMrPCl4iICNAivAXRQdEczDyIaZpnXdY0TQ5lHiI6KJrm4c0rtI7FixdTt25dYmNj6devHytWrGDq1KksWLCgzDsAg4KCeOGFF+jSpQtXXHEFBw4c4Ntvv8VicX7Mv/TSSyxdupTo6Gg6duxY5r4tFgtz5sxh48aNtGnThgkTJvDiiy+6LePt7c13331H7dq1ufnmm2nbti1Tpkxx1TZkyBD69evHtddeS2RkJJ988gmGYbBgwQLCwsLo2bMnffr0oVGjRsydO7fc5+eDDz4gJyeHyZMnU7duXdfr1ltvLXMdb29vJk2aRLt27ejZsydWq5U5c+YA4O/vz+rVq2nYsCG33norLVu2ZPTo0eTl5REcHAzAAw88QPPmzenSpQuRkZGsXbu23HWfzjDP9Q6rYBkZGYSEhJCenu46KBERkfIq6/MkLy+PhISEs44VVZbiEe5P5J6gYVBD53ASZyiwF3Ao8xC1/GpxT8t7iA6OLmVLcrkpz/tOHe5FRET+0DC4IXe3vNv1bEcM53ASVsOK3bSTmp8KJjQMasiQpkMUvOSCKHyJiIicpmFwQx7u8DC/pfzGxmMbScxMpNBeiNVipU1EGzrX6Uzz8Ob4WCvu0T5yeVH4EhEROYOP1Yd2ke1oW6stefY8Ch2FeFm88LX6VupI9nJ5UPgSEREpg2EY+Nn88KNyR6+Xy4vudhQRkRrJw/eTyWWuPO83hS8REalRvLyco83n5ORUcSVyOSl+vxW//85Glx1FRKRGsVqthIaGkpycDDjHcVI/LakspmmSk5NDcnIyoaGhZY7FdjqFLxERqXGioqIAXAFMpLKFhoa63nfnovAlIiI1jmEY1K1bl9q1a1/0o2BEzsXLy+u8WryKKXyJiEiNZbVay/WhKOIJ6nAvIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIepPAlIiIi4kEKXyIiIiIeZKvqAi4l2flFZOUXYQCBvjb8vXV6ROQyVJgHeWlgmuDtDz7BYBhVXZVIjXHZp4vkzDy2JKaz7fd0jmXkUVDkAMDbZqFOsC9t64fQrkEokUE+VVypiEglyk2F3391vtIPOwMYJli9IaAW1GkLDTpDSLSCmMhFMkzTND25w4yMDEJCQkhPTyc4ONiTu3aTV2hnxa5kVu0+Tkp2Af7eVgJ9bPh4WQHIL7STlV9EbqGdMH9vrm0eSa/mtfH9Y76ISI1gL4IDq2HXN5B5DGw+zpYuLz/AAHs+5GdBQaZzeuw10PIW8A2p6sovmc8TkfK6LFu+TmblM/uXQ2z7PZ3wAG9aRAVhnPGXXKCPjYhAHxymyYnMfL749Qh7krMZflVDwgK8q6hyEZEKVJANmz6EQz+BVwBEtgDLmX9gBoJ/hPMSZG4K/PYtnNwDnUdBWEyVlC1S3V12He4z8gqZ9dNBth5JJ65WALWDfEsEr9NZDIPawb7E1gpgy+E0Zv10gMy8Qg9WLCJSCYoKYOMHcOAHCGkAodGlBK/TGIYzhEW2gJP7YN3bkJHkuXpFapDLKnyZpsmirUnsTMqgSe1AfGzOXzRFhQVnXa+osAAfm5XGkYFs/z2DJduP4uGrtSIiFWvfcmeLV1gceAcCUFBYdNZVCgqLwGKDWs0h9QBs/Qzs+mNUpLwuq/C162gmP+07Sd0QX7yszkP/deW3vPinAaQml/4XXGpyEi/+aQC/rvwWb5uFqBBf1u49wZ7kLE+WLiJScTKSnJcPfUPBOwCAuSu20Hb0VBKT00pdJTE5jbajpzJ3xRZnC1lYIziyERJ/8VzdIjVEucLX5MmTueKKKwgKCqJ27doMGjSI3377rbJqq3AbDqSQX+Qg1N/ZZ6uosIDFs/7H8cMHePOv95QIYKnJSbz513s4fvgAi2f9j6LCAsL8vckrdLD+QEpVHIKIyMU7sgFyTkJQXcDZovXkjGXsPnyC3hPeLRHAEpPT6D3hXXYfPsGTM5Y5W8C8/Z2tYAfWgMNeBQchUn2VK3ytWrWKMWPG8PPPP7N06VIKCwu58cYbyc7Orqz6KkxaTgHbf88g4rTO8jYvbx6aMpOIutGcTEp0C2DFwetkUiIRdaN5aMpMbF7OdcMDvNl2JJ0M9f0SkerGYYdDP7uN3eXtZWPZf++jUd1w9ieluAWw4uC1PymFRnXDWfbf+/D2+uNeraAoZ/+vtINVdDAi1VO5wtfixYsZOXIkrVu3pn379sycOZNDhw6xcePGyqqvwhzLyCczr4hgPy+36WG16/LIix+6BbCE7ZvcgtcjL35IWO26rnWCfb3IyisiOSPP04chInJxsk84x/Q6Y6iI6NqhrHzlfrcA9uO2g27Ba+Ur9xNdO/TUSl4BUJQLmUc9ewwi1dxF9flKT08HIDw8vMxl8vPzycjIcHtVhZTsAhym6errdbozA9hrE4aVGbzAOQBrkcMkJVstXyJSzeSchIIcV1+v050ZwLqPm1528II/Ws4M5zZF5LxdcPhyOByMHz+e7t2706ZNmzKXmzx5MiEhIa5XdHT0he7yopzr7sSw2nW5628vuE27628vlAhep7M7dMejiFQzpgNwgFH6r//o2qF8OOl2t2kfTrq9ZPA6tUH1+RIppwsOX2PGjGHbtm3MmTPnrMtNmjSJ9PR01ysxMfFCd3lRfLwsmGbZISw1OYnZL/zNbdrsF/5W6l2Qxdvw8bqsbhYVkZrA5gsWL7CXPsROYnIa90z+zG3aPZM/K/MuSDCc2xSR83ZB6WHs2LEsXLiQFStW0KBBg7Mu6+PjQ3BwsNurKkQG+uLrZSGv0FFi3pmd6//8yieldsIvllNgx9fLSm0971FEqpvA2s5LjgUlb5Q6s3P92ql/KrUTvovD7rz0GFTHM7WL1BDlCl+maTJ27Fi++OILli9fTlxcXGXVVeFqB/sQHuBNSo77X3tnBq9HXvyQuNadSnTCPz2ApeYUUCvQm9pB+mtPRKoZnyDnY4Fy3IfLOTN4rXzlfrq1iSnRCd8tgOWmODvuh1RNdxKR6qpc4WvMmDF89NFHzJ49m6CgII4ePcrRo0fJzc2trPoqjK+XlaviwsnILcTxR1+tosIC3npiZKmd68/shP/WEyMpKizA7jDJyi/iqrgIvG267Cgi1YxhQMNuYBa5Lj0WFBbR57H3S+1cf2Yn/D6Pve8c58s0ISsZ6nWGgFpVeEAi1U+50sO0adNIT0+nd+/e1K1b1/WaO3duZdVXoTrHhlMv1I/Dac6waPPypt+9jxLZILbUuxqLA1hkg1j63fsoNi9vDqfmUD/Uj04xYVVxCCIiF69eB+cjglISwDTx9rLxzKg+NGtQq9S7GosDWLMGtXhmVB/nOF9Zx8AvFOJ6VMURiFRrhunhhxRmZGQQEhJCenp6lfT/+mX/ST76+SCh/t6EB5wa6b54ANXSFM8/mZVPRl4R93SN4YrYsofXEBG55CXvgh9fc/47xNl3t6Cw6NQAqqVwzc/PgPTD0O4OaDnAE9WWqqo/T0Qu1GV33eyK2HD6to4iJbuAo+l5mKZ51uAFYLV5kZSeS1puIf1aR9FFrV4iUt3VbuEMT46iP1rAHGcNXuAcCZ/s487g1fg6aNrXQ8WK1Cxn/59WA1ksBje3rUugj43F24+y+1gWtYN9CPXzwvjjURvFTNMkLaeQY5l5hPt7c3uXaHo0qVViORGRaimuJ3j5wbZ5kLwDAiKdrzPHADNNZ2tXZpJz+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=13\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=14\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=15\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=16\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=17\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=18\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Time t=19\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAl8AAAHWCAYAAABJ6OyQAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAB1O0lEQVR4nO3dd3hUZf7+8feZmfSeEAglJKH3bgGkqCgo8gVERUQFRF0VFoF1V9nfrq66K6hrWSyIDURFUEFRFBCkCRaaoSMtQMBAgPSezJzfH2MGhiRAIJmQcL+ua66QUz/nZMjcec5znmOYpmkiIiIiIh5hqeoCRERERC4nCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl8iIiIiHqTwJSIiIuJBCl/iMf/6178wDMNtWmxsLCNHjvRoHTNnzsQwDA4cOODR/cr50c9HRGo6ha8qlpCQwNixY2nWrBn+/v74+/vTqlUrxowZw5YtW6q6vMvSgQMHMAzjvF5lBYTY2FgMw6BPnz6lzn/nnXdc29iwYUMlHs2FOdc5mDJlSlWXeFmZPXs2r776alWXISIVxFbVBVzOFi5cyNChQ7HZbAwfPpz27dtjsVjYtWsX8+fPZ9q0aSQkJBATE1PVpVaa3377DYvl0vobIDIykg8//NBt2ksvvcThw4d55ZVXSixbFl9fX1asWMHRo0eJiopym/fxxx/j6+tLXl5exRVeCYYNG8bNN99cYnrHjh0rbZ/33HMPd955Jz4+PpW2j+pm9uzZbNu2jfHjx1d1KSJSARS+qsi+ffu48847iYmJ4fvvv6du3bpu859//nnefPPNSy6YnC47O5uAgICL2sal+AEbEBDA3Xff7TZtzpw5pKamlph+Nt27d2f9+vXMnTuXRx991DX98OHD/PDDDwwePJh58+ZVWN2VoVOnTuU65opgtVqxWq1nXcY0TfLy8vDz8/NQVSIiFefS/WSv4V544QWys7OZMWNGieAFYLPZGDduHNHR0W7Td+3axW233UZ4eDi+vr506dKFr776ym2Z4j4za9euZeLEiURGRhIQEMDgwYM5fvx4iX0tWrSIHj16EBAQQFBQEP3792f79u1uy4wcOZLAwED27dvHzTffTFBQEMOHDwfghx9+4Pbbb6dhw4b4+PgQHR3NhAkTyM3NPed5OLPP1/le4juf8wCwfft2rrvuOvz8/GjQoAH//ve/cTgc56yrIvj6+nLrrbcye/Zst+mffPIJYWFh9O3bt8Q6W7ZsYeTIkTRq1AhfX1+ioqK47777OHnypGuZc10SPN0vv/xCv379CAkJwd/fn169erF27doKPc7Y2FhuueUW1qxZw5VXXomvry+NGjVi1qxZrmU2bNiAYRh88MEHJdZfsmQJhmGwcOFCoPQ+X8X7WLJkCV26dMHPz4/p06cDsH//fm6//XbCw8Px9/fn6quv5ptvvnHbx8qVKzEMg08//ZT//Oc/NGjQAF9fX66//nr27t3rtmzv3r1p06YNW7ZsoVevXvj7+9OkSRM+//xzAFatWsVVV12Fn58fzZs3Z9myZSWO6ciRI9x3333UqVMHHx8fWrduzfvvv39BNfXu3ZtvvvmGgwcPun7GsbGx5/GTEZFLlVq+qsjChQtp0qQJV1111Xmvs337drp37079+vV54oknCAgI4NNPP2XQoEHMmzePwYMHuy3/5z//mbCwMJ566ikOHDjAq6++ytixY5k7d65rmQ8//JARI0bQt29fnn/+eXJycpg2bRrXXHMNv/76q9sv+aKiIvr27cs111zDf//7X/z9/QH47LPPyMnJ4eGHHyYiIoJ169bx2muvcfjwYT777LNynZczL/cB/OMf/yA5OZnAwMBynYejR49y7bXXUlRU5Fru7bff9mhryV133cWNN97Ivn37aNy4MeC8hHTbbbfh5eVVYvmlS5eyf/9+Ro0aRVRUFNu3b+ftt99m+/bt/PzzzxiGUepl0cLCQiZMmIC3t7dr2vLly7npppvo3LkzTz31FBaLhRkzZnDdddfxww8/cOWVV56z/pycHE6cOFFiemhoKDbbqV8fe/fu5bbbbmP06NGMGDGC999/n5EjR9K5c2dat25Nly5daNSoEZ9++ikjRoxw29bcuXPLDKOn++233xg2bBh/+tOfeOCBB2jevDnHjh2jW7du5OTkMG7cOCIiIvjggw/4v//7Pz7//PMS/yemTJmCxWLhscceIz09nRdeeIHhw4fzyy+/uC2XmprKLbfcwp133sntt9/OtGnTuPPOO/n4448ZP348Dz30EHfddRcvvvgit912G4mJiQQFBQFw7Ngxrr76agzDYOzYsURGRrJo0SJGjx5NRkZGiUuH56rp//2//0d6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++yzvP7662RlZREVFcVVV13Fn/70p/Oq55NPPnHdqXm6ESNGXFT4+sc//kFOTs553eV4NnXq1OHHH3/k8ccf57XXXiMvL4927drx9ddf079//4va9sXUtG7dOp555hnmz5/Pm2++SUREBK1bt+b555+/oG0+8sgjxMfHM2PGDF555RViYmIUvkSqMcNUr04RERERj1GfLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCPj/PlcDj4/fffCQoK0iMzRETkgpmmSWZmJvXq1auSAXVFLpTHw9fvv/9OdHS0p3crIiI1VGJiotvTQEQudR4PX0FBQYDzP0twcLCndy8iIjVERkYG0dHRrs8VkerC4+Gr+FJjcHCwwpeIiFw0dWGR6kYXyUVEREQ8SOFLRERExIMUvkREREQ8yON9vkRERDzFbrdTWFhY1WVIDefl5YXVaj3v5RW+RESkxjFNk6NHj5KWllbVpchlIjQ0lKioqPO6AUThS0REapzi4FW7dm38/f11R6RUGtM0ycnJITk5GYC6deuecx2FLxERqVHsdrsreEVERFR1OXIZ8PPzAyA5OZnatWuf8xKkOtyLiEiNUtzHy9/fv4orkctJ8fvtfPoYKnyJiEiNpEuN4knleb8pfImIiIh4kMKXiIiIiAcpfImIiJyhoKDgouZfrKNHj/LnP/+ZRo0a4ePjQ3R0NAMGDOD777+v1P2KZyh8iYiInGbu3Lm0bduWxMTEUucnJibStm1b5s6dWyn7P3DgAJ07d2b58uW8+OKLbN26lcWLF3PttdcyZsyYStmneJbCl4iIyB8KCgp48skn2b17N7179y4RwBITE+nduze7d+/mySefrJQWsEceeQTDMFi3bh1DhgyhWbNmtG7dmokTJ/Lzzz9z4MABDMMgPj7etU5aWhqGYbBy5UrXtG3btnHTTTcRGBhInTp1uOeeezhx4kSF1yvlp/AlIiLyB29vb5YtW0ajRo3Yv3+/WwArDl779++nUaNGLFu2DG9v7wrdf0pKCosXL2bMmDEEBASUmB8aGnpe20lLS+O6666jY8eObNiwgcWLF3Ps2DHuuOOOCq1XLozCl4iIyGmio6NZuXKlWwD78ccf3YLXypUriY6OrvB97927F9M0adGixUVt5/XXX6djx44899xztGjRgo4dO/L+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Xz9XrQDffPMN9evXd1vPx8fnvPdR0yh8iYiI/CE4GCyW8wtgFotz+co0ZcoUOnToQPPmzV3TOnXqxI4dO2jSpEmp6zRv3pyioiJ+/fVXOnfuDDhboE6/e3Ljxo04HA5eeuklLBZn9+9PP/3UbTve3t7Y7fZz1titWzeio6OZO3cuixYt4vbbb8fLywuAVq1a4ePjw6FDh+jVq1f5Dr4GU/gSERH5g58fDBzovKvxzM72p7PZnMtVVqtXsbZt2zJ8+HCmTp3qmvb4449z9dVXM3bsWO6//34CAgLYsWMHS5cu5fXXX6dFixb06dOHBx98kGnTpuHl5cVf/vIX/Pz8XGOFNWnShMLCQl577TUGDBjA2rVreeuMWzhjY2PJysri+++/p3379vj7+5fZInbXXXfx1ltvsXv3blasWOGaHhQUxGOPPcaECRNwOBxcc801pKens3btWoKDgxkxYkQlnLVLn+52FBEROc3EiXCuBh+7HSZM8Ew9zzzzDI7TmuLatWvHqlWr2L17Nz169KBjx448+eST1KtXz7XMrFmzqFOnDj179mTw4ME88MADBAUF4evrC0D79u15+eWXef7552nTpg0ff/xxiaEtunXrxkMPPcTQoUOJjIzkhRdeKLPG4cOHs2PHDurXr0/37t3d5j377LP885//ZPLkybRs2ZJ+/frxzTffEBcXVxGnp1oyTNM0PbnDjIwMQkJCSE9PJ7iy22tFRKTGKuvzJC8vj4SEBOLi4lxho7zeess5nITV6t4CZrM5g9ebb8JDD13sEXjO4cOHiY6OZtmyZVx//fVVXU6NVJ73nVq+REREzvDQQ/DDD85Li390icJicX7/ww+XfvBavnw5X331FQkJCfz444/ceeedxMbG0rNnz6ouTVCfLxERkVJ17+585eY672oMDq78Pl4VpbCwkL///e/s37+foKAgunXrxscff+zqCC9VS+FLRETkLPz8qk/oKta3b1/69u1b1WVIGXTZUURERMSDFL5EREREPEjhS0RERMSDFL5EREREPEjhS0RERMSDdLejiIgIcDDjINmF2eVeL8ArgJjgmEqoSGoqhS8REbnsHcw4yC1f3HLB6y8cvFABTM6bLjuKiMhl70JavCpy/TP99NNPWK1W+vfvX6HbPV8HDhzAMAzi4+OrZP81ncKXiIjIJea9997jz3/+M6tXr+b333+v6nKkgil8iYiIXEKysrKYO3cuDz/8MP3792fmzJlu87/66iuaNm2Kr68v1157LR988AGGYZCWluZaZs2aNfTo0QM/Pz+io6MZN24c2dmnWudiY2N57rnnuO+++wgKCqJhw4a8/fbbrvlxcXEAdOzYEcMw6N27d2Ue8mVH4UtEROQS8umnn9KiRQuaN2/O3Xffzfvvv49pmgAkJCRw2223MWjQIDZv3syf/vQn/t//+39u6+/bt49+/foxZMgQtmzZwty5c1mzZg1jx451W+6ll16iS5cu/PrrrzzyyCM8/PDD/PbbbwCsW7cOgGXLlpGUlMT8+fM9cOSXD4UvERGRS8h7773H3XffDUC/fv1IT09n1apVAEyfPp3mzZvz4osv0rx5c+68805Gjhzptv7kyZMZPnw448ePp2nTpnTr1o2pU6cya9Ys8vLyXMvdfPPNPPLIIzRp0oTHH3+cWrVqsWLFCgAiIyMBiIiIICoqivDwcA8c+eVD4UtEROQS8dtvv7Fu3TqGDRsGgM1mY+jQobz33nuu+VdccYXbOldeeaXb95s3b2bmzJkEBga6Xn379sXhcJCQkOBarl27dq5/G4ZBVFQUycnJlXVochoNNSEiInKJeO+99ygqKqJevXquaaZp4uPjw+uvv35e28jKyuJPf/oT48aNKzGvYcOGrn97eXm5zTMMA4fDcYGVS3kofImIiFwCioqKmDVrFi+99BI33nij27xBgwbxySef0Lx5c7799lu3eevXr3f7vlOnTuzYsYMmTZpccC3e3t4A2O32C96GlE3hS0RE5BKwcOFCUlNTGT16NCEhIW7zhgwZwnvvvcenn37Kyy+/zOOPP87o0aOJj4933Q1pGAYAjz/+OFdffTVjx47l/vvvJyAggB07drB06dLzbj2rXbs2fn5+LF68mAYNGuDr61uiJrlw6vMlIiJyCXjvvffo06dPqSFnyJAhbNiwgczMTD7//HPmz59Pu3btmDZtmutuRx8fH8DZl2vVqlXs3r2bHj160LFjR5588km3S5nnYrPZmDp1KtOnT6devXoMHDiwYg5SADDM4vtXPSQjI4OQkBDS09MJDg725K5FRKQGKevzJC8vj4SEBOLi4vD19T2vbe04uYOhC4decC1zb5lLq4hWF7z+xfjPf/7DW2+9RWJiYpXsX5zK877TZUcREZFq5M03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+VYDoeX/ge3sf7iKSOkuu8uOp0tMyWH5rmS2/55ORl4RBuBltWBiUlRkYgLBfjba1A/huha1aRDmX6X1iohUiqzjsOc7SFznvIMRnGOBGQbYCwHTOTxFZEtodiPUblml5Ra7lD5PRMrjsg5fxY6m55FwIpuj6bmkZBeAAREBPtQJ9qVRZAB1gjWkhIhcBnJS4PhvzhaurGPO0fB9QyG4HoTFOl+XUMv/pfh5InI+LrvLjqWJCvElKkQBS0Quc/7hENO1qqsQqfEuuw73IiIiIlVJ4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg2xVXYDUDKZpkpZTyPGsfHIL7FgMg1B/LyKDfPD1slZ1eXK5sBdC1jHIPgGmHaw+EFgH/CPAor81ReTSoPAlFyW3wM6Ww2msS0ghMTWH7Hw7dtMBGPjaLAT7etEuOoRODcOIqxWAYRhVXbLUROmHIXE9JP4CualQmOOcbljAOxCCoiC2O9TvDL4hVVuriFz2DNM0TU/uMCMjg5CQENLT0wkODvbkrqWC7U3O5Kv439mTnIXNahDu702Ajw0vqwXTNMkttJOZV0RqTiGBPlauaRrJDa3qEOijzC8VpCgf9i6D3xZDbgr4hoFfCHj5O4OXowgKsiAnBYpyITQW2gyGep1AfwhUe/o8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6PNEqitddpQKEeBjo2mdIJrWCTr3wiKVwTAguJ7zJSJyCdM1IBEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SCFLxEREREPUvgSERER8SBbVRcgNUNmXiGHU3M5nplPbqEdi2EQ6u9FnSBf6of5YbUYVV2i1HSmCRlHICMJck6Aww42HwisDSHR4B9e1RWKiAAKX3KRjqbn8dP+k2w8mEJqdgF20zndAEzAz8tCw/AArmoUTpeYcLxtamyVCuaww5FNcOAHOLEbCrLd5xsG+IZC/c4Qew1ENK6SMkVEiil8yQVxOEx+3HeSRduSOJ6ZT3iAN7ERAdisp8KVaZrkFNhJOJHNnuRM4hPTGNihPvVD/aqwcqlRsk/Cts/h0M/O7wPrQEhDZ+Aq5rBDbgrsXQqJ66B5P2jaF2zeVVOziFz2FL6k3OwOk4VbfmfB9s3YrAXUivDBwCDNDtjPWNiAoGAoKLLz46ED7E7dxe2dGtM9pmVVlC41SeZR+OVtOL4LwmLBJ6j05SxWCIgE/1qQdQy2fAqZx6DTPc7LkiIiHqbwJeX2w57jLNi2mfX2x6EIyC/Hyhnw/Ur46Mb5tK/btJIqlBqvIAc2zICTu6F2S7Ccx68yw4CgKPAOgP0rwTsQ2g91byUTEfEAdcCRcjmcmsOSbUfx8iq4qO18t+sg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Wq1VWKFIzaA+Xzh/WXfu3Jnvv//eNc3hcPD999+rr4h4jGmajB07li+++ILly5cTFxdX1SXVCA6Hg/z8/Kouo1q4/vrr2bp1K/Hx8a5Xly5dGD58OPHx8QpeIhVELV9/mDhxIiNGjKBLly5ceeWVvPrqq2RnZzNq1KiqLq3ayMrKYu/eva7vExISiI+PJzw8nIYNG1ZhZdXDmDFjmD17NgsWLCAoKIijR48CEBISgp+fXxVXVz1MmjSJm266iYYNG5KZmcns2bNZuXIlS5YsqerSqoWgoKASfQwDAgKIiIhQ30ORCqTw9YehQ4dy/PhxnnzySY4ePUqHDh1YvHhxiU74UrYNGzZw7bXXur6fOHEiACNGjGDmzJlVVFX1MW3aNAB69+7tNn3GjBmMHDnS8wVVQ8nJydx7770kJSUREhJCu3btWLJkCTfccENVlyYi4qJxvkREREQ8SH2+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEgxS+RERERDxI4UtERETEg/4/+edRtXMhqoYAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "ims = []\n", + "for t in range(T): \n", + " print(f'Time t={t}')\n", + " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", + " ims.append(render(env_info, env_state))\n", + "ims = [np.array(i)[:,:,:3] for i in ims]" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "
\n", + "
T-maze
" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import mediapy\n", + "\n", + "with mediapy.set_show_save_dir(\".\"):\n", + " mediapy.show_videos({\"T-maze\": ims}, fps=2, codec='gif')" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "hackathon", + "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.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/envs/graph_worlds_demo.ipynb b/examples/envs/graph_worlds_demo.ipynb new file mode 100644 index 00000000..aacd9475 --- /dev/null +++ b/examples/envs/graph_worlds_demo.ipynb @@ -0,0 +1,250 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Graph worlds\n", + "\n", + "This environment demonstrates agents that can navigate a graph and find an object. Object is only visible when agent is at the same location as the object." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Start by generating a graph of locations" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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AD5l//796tChg5599lk98sgjRscBauRyubRhw4aqSeS+ffvUvHlzxcfHy2azaeDAgWrUqJHRMYF6R6EE4HOSkpK0YsUK7du3r943bAbqqqKiQmlpaXI4HFq0aJEOHjyo1q1ba/jw4RoxYoT69u2rkJAQo2MCDYpCCcDn7N69W126dNGbb76pP/7xj0bHAVRaWqrVq1fL4XBoyZIlys/PV/v27au297n22mtlsViMjgkYhkIJwCfddttt+vrrr7Vr1y5DrggCFBYWavny5XI4HFq+fLmKiorUuXNnjRgxQiNGjNDll1/OHpHAf1EoAfikb775RldccYU++OAD3X777UbHQZDIy8vT0qVL5XA4tGrVKpWVlemKK66omkReeOGFRkcEfBKFEoDPGjx4sH744Qdt3bqVSRDqzY8//qhFixbJ4XDo008/lcvlUs+ePTVixAglJCQoNjbW6IiAz6NQAvBZ6enp6t27t5YuXaqhQ4caHQcBZO/evUpJSdHChQv1xRdfyGq1Ki4uTjabTcOGDdM555xjdETAr1AoAfi066+/Xi6XS59//jlTSpwxt9utb7/9tmp7ny1btig8PFw33nijbDabhg4dqpYtWxodE/BbFEoAPm358uW66aab9Omnn6pPnz5Gx4Efcbvd+vrrr6tK5K5du9S4cWMNHTpUNptNgwcPVuPGjY2OCQQECiUAn+Z2u3X55ZerdevW+vjjj42OAx9XWVmpzz//vKpE7t+/X1FRURo2bJhsNptuuOEGhYeHGx0TCDgUSgA+b/78+Ro1apS++uorXXnllUbHgY8pLy9XamqqFi5cqEWLFunw4cNq06aNEhISZLPZ1Lt3b7aeAuoZhRKAz6usrFSXLl106aWXasGCBUbHgQ8oKSnRxx9/LIfDoaVLl+r48eM6//zzNWLECNlsNl1zzTUym81GxwSCBoUSgF9455139Mc//lHffvutunTpYnQcGOD48eNatmyZHA6HVqxYoRMnTujiiy+WzWbTiBEj1K1bNxZuAQahUALwC2VlZerQoYMGDBigmTNnGh0HDeTw4cNavHixHA6H1qxZo4qKCl1zzTWy2WxKSEhQp06djI4IQBRKAH7k5Zdf1mOPPaY9e/YoJibG6DioJ/v371dKSoocDofS09MlSb169aoqke3atTM4IYDfolAC8BtFRUWKjY3V6NGj9eqr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XK1bt04XXHCB0ZHgA5xOp1atWiW73a4lS5bIbDYrISFBiYmJ6t+/P1dKguEolADgIwoKCtS/f3/t3btXaWlp6tq1q9GR4INyc3OrFvJ8++23iomJ0T333KO7775bsbGxRsdDkKJQAoAPKC4u1uDBg7Vt2zalpqbq8ssvNzoSfJzb7daXX34pu92uefPmqaioSDfccIMSExOVkJDAxvdoUBRKADBYaWmpbr75Zn3xxRdavXq1rr32WqMjwc8UFxdrwYIFstvtSk9PV4sWLXTHHXcoMTGRX07QICiUAGCgiooKjRgxQqtXr9aKFSvUt29foyPBz+3evVszZ87Ue++9p4MHD+ryyy9XYmKi7rjjDvYxRb2hUAKAQZxOp0aPHq1FixZpyZIlGjRokNGREECcTqdWrlwpu92uZcuWyWKxKCEhQUlJSerXrx8LeeBVFEoAMIDL5dI999yjOXPmaMGCBRo+fLjRkRDADh06pFmzZslut+v7779X+/btdc899+iee+5RTEyM0fEQACiUANDA3G63/vSnP+nf//635syZo9tvv93oSAgSbrdbGzZskN1u1/z581VcXKz+/fsrKSlJw4cPV1hYmNER4acolADQgNxutyZOnKiXXnpJdrtdiYmJRkdCkCoqKtKHH36o5ORkffbZZ2rZsqXuuOMOJSUl6dJLLzU6HvwMhRIAGtCTTz6pp59+Wq+99prGjRtndBxAkrRr166qhTw//fSTrrjiCiUlJen2229nIQ9qhUIJAA3k+eef1+OPP67nnntOkyZNMjoO8DsVFRVasWKFkpOTtWzZMoWEhMhmsykxMVFxcXEs5EG1KJQA0ABee+01PfTQQ/rrX/+q6dOnGx0HOK2ffvpJ77//vpKTk7Vr1y6dd955VVfkadeundHx4GMolABQz+x2u+6991498sgj+sc//iGTyWR0JKDW3G631q9fr+TkZM2fP18lJSUaOHCgkpKSFB8fz0IeSKJQAkC9+uCDDzRmzBjdf//9ev311ymT8GuFhYX68MMPZbfbtX79ekVFRWnMmDFKTEzUJZdcYnQ8GIhCCQD1JCUlRbfeeqvGjBmj5ORkzj9DQPn++++VnJys9957T7m5ubrqqquUmJio22+/Xc2bNzc6HhoYhRIA6sHKlSsVHx+vhIQEffDBB7JYLEZHAupFRUWFli9fLrvdruXLlysk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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import networkx as nx\n", + "from pymdp.jax.envs import GraphEnv\n", + "from pymdp.jax.envs.graph_worlds import generate_connected_clusters\n", + "\n", + "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", + "nx.draw(graph, with_labels=True, font_weight=\"bold\")" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we can create a GraphEnv given this graph. We specify two object locations and two agent locations. This will effectively create the environment with a batch size of 2." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "env = GraphEnv(graph, object_locations=[3, 5], agent_locations=[0, 1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To create an Agent, we reuse the environment's A and B tensors, but give the agent a uniform initial belief about the object location, and a preference to find (see) the object." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.agent import Agent\n", + "\n", + "A = [a.copy() for a in env.params[\"A\"]]\n", + "B = [b.copy() for b in env.params[\"B\"]]\n", + "A_dependencies = env.dependencies[\"A\"]\n", + "B_dependencies = env.dependencies[\"B\"]\n", + "\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "C[1] = C[1].at[1].set(1.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", + "\n", + "agent = Agent(A, B, C, D, A_dependencies=A_dependencies, B_dependencies=B_dependencies, policy_len=2, apply_batch=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Using the rollout function, we can easily simulate two agents in parallel for 10 timesteps..." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.envs.rollout import rollout\n", + "\n", + "last, result, env = rollout(agent, env, 10, key)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The result dict contains the executed actions, observations, environment state and beliefs over states and policies." + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dict_keys(['action', 'env', 'observation', 'qpi', 'qs'])" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "result.keys()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The beliefs result is an array for each state factor, and the shape is [batch_size x time x factor_size]" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2\n", + "(2, 10, 7)\n" + ] + } + ], + "source": [ + "print(len(result[\"qs\"]))\n", + "print(result[\"qs\"][0].shape)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can plot the agent's beliefs over time." + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 11, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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0qqurpbL5ar35zbrasmPskAgoO+++04Oh0M2my2qj+31euV2u1VRUSGn0xnVx8blWO/4Yr3jjzWPL9a7bpZlqbq6Wh07dlRKSv3vlMf9DD0lJUWdOnWK6XM4nU7+MsQR6x1frHf8sebxxXpf7kpn5hfxoTgAAAxA0AEAMIBRQbfb7crPz5fdbk/0KM0C6x1frHf8sebxxXo3Ttw/FAcAAKLPqDN0AACaK4IOAIABCDoAAAYg6AAAGICgAwBgAGOCvmTJEnXt2lVpaWkaNGiQdu7cmeiRjFVQUKDbbrtNDodDmZmZmjBhgr788stEj9VszJ8/XzabTTNmzEj0KMb69ttvNWnSJLVr107p6enq06ePdu3aleixjOX3+/Xss8+qW7duSk9P1/XXX6/nnnvuqr+MBKGMCPqbb76pmTNnKj8/X2VlZerXr59Gjx6tY8eOJXo0I23ZskV5eXnasWOHNm7cqPPnz2vUqFGqqalJ9GjGKykp0SuvvKK+ffsmehRjff/99xo6dKhatmyp999/X/v379eLL76oNm3aJHo0Yy1YsECFhYVavHixPv/8cy1YsEB//etf9dJLLyV6tKRixHXogwYN0m233abFixdLuvALYNxut5544gnNmjUrwdOZ7/jx48rMzNSWLVv4LXoxdObMGfXv318vv/yynn/+ed1yyy1atGhRoscyzqxZs/Tpp5/q3//+d6JHaTbGjRun9u3b69VXXw3u++Uvf6n09HStWrUqgZMll6Q/Qz937pxKS0s1cuTI4L6UlBSNHDlS27dvT+BkzYfH45EktW3bNsGTmC0vL09jx44N+buO6Fu3bp1ycnL04IMPKjMzU7feequWL1+e6LGMNmTIEG3atEkHDhyQJO3Zs0effPKJxowZk+DJkkvcf9tatJ04cUJ+v1/t27cP2d++fXt98cUXCZqq+QgEApoxY4aGDh2q3r17J3ocYxUXF6usrEwlJSWJHsV4X3/9tQoLCzVz5kz9+c9/VklJiZ588km1atVKubm5iR7PSLNmzZLX61XPnj2Vmpoqv9+vuXPnauLEiYkeLakkfdCRWHl5edq7d68++eSTRI9irIqKCk2fPl0bN25UWlpaoscxXiAQUE5OjubNmydJuvXWW7V3714tXbqUoMfIP//5TxUVFWn16tXq1auXdu/erRkzZqhjx46seRiSPujXXXedUlNTdfTo0ZD9R48eVYcOHRI0VfMwbdo0vffee9q6dWvMf8d9c1ZaWqpjx46pf//+wX1+v19bt27V4sWL5fP5lJqamsAJzZKVlaXs7OyQfTfffLPefvvtBE1kvj/+8Y+aNWuWfvWrX0mS+vTpo8OHD6ugoICghyHp30Nv1aqVBgwYoE2bNgX3BQIBbdq0SYMHD07gZOayLEvTpk3T2rVrtXnzZnXr1i3RIxltxIgR+uyzz7R79+7glpOTo4kTJ2r37t3EPMqGDh162WWYBw4cUJcuXRI0kfl++OEHpaSE5ig1NVWBQCBBEyWnpD9Dl6SZM2cqNzdXOTk5GjhwoBYtWqSamhpNmTIl0aMZKS8vT6tXr9a7774rh8OhqqoqSZLL5VJ6enqCpzOPw+G47PMJrVu3Vrt27fjcQgw89dRTGjJkiObNm6eHHnpIO3fu1LJly7Rs2bJEj2as8ePHa+7cuercubN69eql//znP1q4cKEee+yxRI+WXCxDvPTSS1bnzp2tVq1aWQMHDrR27NiR6JGMJanObcWKFYkerdm46667rOnTpyd6DGOtX7/e6t27t2W3262ePXtay5YtS/RIRvN6vdb06dOtzp07W2lpaVb37t2tZ555xvL5fIkeLakYcR06AADNXdK/hw4AAAg6AABGIOgAABiAoAMAYACCDgCAAQg6AAAGIOgAABiAoAMAYACCDgCAAQg6AAAGIOgAABjg/wFnGIwE3fLWPQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "agent_idx = 0\n", + "\n", + "import matplotlib.pyplot as plt\n", + "fig, ax = plt.subplots()\n", + "ax.title.set_text(\"Agent 1\")\n", + "\n", + "# we plot the agent location belief as blue dots\n", + "T = result[\"qs\"][0].shape[1]\n", + "locations = [jnp.argmax(result[\"qs\"][0][agent_idx, t, :]) for t in range(T)]\n", + "ax.scatter(\n", + " jnp.arange(T), locations, c=\"tab:blue\"\n", + ")\n", + "# and object location beliefs as greyscale intensity\n", + "ax.imshow(result[\"qs\"][1][agent_idx, :, :].T, cmap=\"gray_r\", vmin=0.0, vmax=1.0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/envs/knapsack_demo.ipynb b/examples/envs/knapsack_demo.ipynb new file mode 100644 index 00000000..c8e876ab --- /dev/null +++ b/examples/envs/knapsack_demo.ipynb @@ -0,0 +1,334 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Demo: Knapsack Problem\n", + "\n", + "In this notebook, we demonstrate how to solve the knapsack problem, a classic Operations Research problem. In this problem, we have a knapsack with fixed weight capacity and a set of items each associated with a weight and a value. We want fit items into the knapsack in a way such as the total value of all fitted items is as high as possible, however, the sum of item weights cannot exceed the knapsack weight capacity. \n", + "\n", + "While is problem is traditionally solved with linear programming, we can convert it into a contextual bandit problem (a simplified 1-stage Markov decision problem) and solve it using pymdp.\n", + "\n", + "Let us define our actions `a_i` as whether to include an item or not for each item i. The state `s_i` of the system is defined as whether an item is included or not, i.e., copying the action variables over to the corresponding state variables. We also need another state variable `z` which represents whether the knapsack capacity is exceeded. If an item is included, i.e., `s_i = 1`, we get a reward `r_i`, otherwise, we get a reward of 0 when `s_i = 0`. We can thus define our preference of including valueable items to be proportional to the expnenital of reward: `C[s_i] = softmax([0, r_i])`. Our preference on the capacity constraint variable `z` is to never violate it, i.e., `C[z] = [1, 0]`. Since the system is fully observable, we will set all observation matrices to diagonal." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from jax import numpy as jnp\n", + "from jax import tree_util as jtu\n", + "import jax.nn as nn\n", + "\n", + "from pymdp.jax.agent import Agent\n", + "from pymdp.jax import distribution" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Specify model structure" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "item rewards [0.64589411 0.43758721 0.891773 0.96366276 0.38344152]\n", + "item weights [6.74406752 7.57594683 7.01381688 6.72441591 6.118274 ]\n", + "item weight sum 34.17652114353595\n" + ] + } + ], + "source": [ + "# knapsack problem setup\n", + "np.random.seed(0)\n", + "num_items = 5\n", + "max_capacity = 20\n", + "item_weights = max_capacity / num_items + np.random.uniform(0, 5, size=(num_items,))\n", + "rewards = np.random.uniform(0, 1, size=(num_items,))\n", + "\n", + "print(\"item rewards\", rewards)\n", + "print(\"item weights\", item_weights)\n", + "print(\"item weight sum\", item_weights.sum())\n", + "\n", + "# mdp config\n", + "state_config = {\n", + " f\"s_{i}\": {\"elements\": [\"not enclude\", \"include\"], \"depends_on\": [f\"s_{i}\"], \"controlled_by\": [f\"a_{i}\"]} \n", + " for i in range(num_items)\n", + "}\n", + "state_config[\"z\"] = {\n", + " \"elements\": [\"not violated\", \"violated\"], \"depends_on\": [\"z\"], \"controlled_by\": [f\"a_{i}\" for i in range(num_items)]\n", + "} \n", + "\n", + "obs_config = {\n", + " k: {\"elements\": v[\"elements\"], \"depends_on\": [k]} for k, v in state_config.items()\n", + "}\n", + "\n", + "act_config = {\n", + " f\"a_{i}\": {\"elements\": [\"not enclude\", \"include\"]} \n", + " for i in range(num_items)\n", + "}\n", + "\n", + "model = {\n", + " \"observations\": obs_config,\n", + " \"controls\": act_config,\n", + " \"states\": state_config,\n", + "}" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Specify model parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A shapes [(2, 2), (2, 2), (2, 2), (2, 2), (2, 2), (2, 2)]\n", + "B shapes [(2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2, 2, 2, 2, 2)]\n" + ] + } + ], + "source": [ + "As, Bs = distribution.compile_model(model)\n", + "\n", + "print(\"A shapes\", [a.data.shape for a in As])\n", + "print(\"B shapes\", [a.data.shape for a in Bs])" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "A shapes [(2, 2), (2, 2), (2, 2), (2, 2), (2, 2), (2, 2)]\n", + "B shapes [(2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2), (2, 2, 2, 2, 2, 2, 2)]\n", + "A normalized [True, True, True, True, True, True]\n", + "B normalized [True, True, True, True, True, True]\n", + "C normalized [True, True, True, True, True, True]\n" + ] + } + ], + "source": [ + "def create_identity_transition_factor(mat):\n", + " for i in range(mat.shape[1]):\n", + " mat[:, i] = np.eye(len(mat))\n", + " return mat\n", + "\n", + "def create_constraint_factor_z_greater_than(act_dim, maximum, num_items, weights):\n", + " # Create an array of shape (2, act_dim, act_dim, ..., act_dim)\n", + " tensor_shape = (2,) + (act_dim,) * num_items\n", + " \n", + " # Create an array with indices from 0 to act_dim - 1 along each dimension\n", + " indices = np.indices(tensor_shape[1:])\n", + "\n", + " # Reshape weights to fit indices shape\n", + " weights_reshaped = np.array(weights).reshape((-1,) + (1,) * (indices.ndim - 1))\n", + " # Multiply weights with matrix that conforms to constraint\n", + " result = np.array(indices == (act_dim - 1)) * weights_reshaped\n", + "\n", + " # Calculate the total for each combination of actions\n", + " total = np.sum(result, axis=0)\n", + " \n", + " # Create the tensor based on the total hours condition\n", + " tensor = np.where(total > maximum, 1, 0)\n", + "\n", + " # Stack the tensor along the first axis to create the final tensor\n", + " tensor = np.stack((1 - tensor, tensor), axis=0)\n", + "\n", + " # make a copy for self state \n", + " tensor = np.stack([tensor, tensor], axis=1)\n", + " return tensor\n", + "\n", + "# update A tensor\n", + "for i in range(len(As)):\n", + " As[i].data = np.eye(len(As[i].data))\n", + "\n", + "# update B tensors\n", + "for i in range(num_items):\n", + " Bs[i].data = create_identity_transition_factor(Bs[i].data)\n", + "\n", + "Bs[-1].data = create_constraint_factor_z_greater_than(2, max_capacity, num_items, item_weights)\n", + "\n", + "# create C tensors\n", + "preferences = nn.softmax(np.stack([np.zeros_like(rewards), rewards], axis=-1), axis=-1)\n", + "Cs = [None for _ in range(len(As))]\n", + "for i in range(len(As)):\n", + " Cs[i] = preferences[i]\n", + " \n", + "Cs[-1] = np.array([1., 0]) # capacity constraint cannot be violated\n", + "\n", + "print(\"A shapes\", [a.data.shape for a in As])\n", + "print(\"B shapes\", [a.data.shape for a in Bs])\n", + "\n", + "print(\"A normalized\", [np.isclose(a.data.sum(0), 1.).all() for a in As])\n", + "print(\"B normalized\", [np.isclose(a.data.sum(0), 1.).all() for a in As])\n", + "print(\"C normalized\", [np.isclose(a.sum(0), 1.).all() for a in Cs])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Run agent" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "B_action_dependencies = [\n", + " [list(model[\"controls\"].keys()).index(i) for i in s[\"controlled_by\"]] \n", + " for s in model[\"states\"].values()\n", + "]\n", + "num_controls = [len(c[\"elements\"]) for c in model[\"controls\"].values()]\n", + "\n", + "agent = Agent(\n", + " As, Bs, Cs,\n", + " B_action_dependencies=B_action_dependencies,\n", + " num_controls=num_controls,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "qs = jtu.tree_map(lambda x: jnp.expand_dims(x, axis=0), agent.D)\n", + "q_pi, G = agent.infer_policies(qs)\n", + "action = agent.sample_action(q_pi)\n", + "action_multi = agent.decode_multi_actions(action)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "best action [[0 0 1 1 1 7]]\n", + "best action multi [[0 0 1 1 1]]\n", + "item weights\n", + "[6.74406752 7.57594683 7.01381688 6.72441591 6.118274 ]\n", + "item rewards\n", + "[0.64589411 0.43758721 0.891773 0.96366276 0.38344152]\n" + ] + } + ], + "source": [ + "print(\"best action\", action)\n", + "print(\"best action multi\", action_multi)\n", + "print(\"item weights\")\n", + "print(item_weights)\n", + "print(\"item rewards\")\n", + "print(rewards)" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "action [0 0 1 1 1 7]\n", + "action multi [0, 0, 1, 1, 1]\n", + "efe: 3.76, reward: 2.24\n", + "\n", + "action [ 1 0 0 1 1 19]\n", + "action multi [1, 0, 0, 1, 1]\n", + "efe: 3.66, reward: 1.99\n", + "\n", + "action [ 1 0 1 0 1 21]\n", + "action multi [1, 0, 1, 0, 1]\n", + "efe: 3.63, reward: 1.92\n", + "\n", + "action [0 0 1 1 0 6]\n", + "action multi [0, 0, 1, 1, 0]\n", + "efe: 3.57, reward: 1.86\n", + "\n", + "action [ 1 0 0 1 0 18]\n", + "action multi [1, 0, 0, 1, 0]\n", + "efe: 3.47, reward: 1.61\n", + "\n", + "action [ 1 0 1 0 0 20]\n", + "action multi [1, 0, 1, 0, 0]\n", + "efe: 3.44, reward: 1.54\n" + ] + } + ], + "source": [ + "# compare actions\n", + "from pymdp import utils\n", + "for i, idx in enumerate(np.argsort(q_pi[0])[::-1]):\n", + " action_multi_f = utils.index_to_combination(agent.policies[idx, 0][-1].tolist(), agent.num_controls_multi)\n", + " print(\"\\naction\", agent.policies[idx, 0])\n", + " print(\"action multi\", action_multi_f)\n", + " print(\"efe: {:.2f}, reward: {:.2f}\".format(G[0, idx], np.sum(rewards * action_multi_f)))\n", + " if i == 5:\n", + " break" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pymdp", + "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.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/envs/tmaze_demo.ipynb b/examples/envs/tmaze_demo.ipynb new file mode 100644 index 00000000..a8c9f829 --- /dev/null +++ b/examples/envs/tmaze_demo.ipynb @@ -0,0 +1,233 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "batch_size = 1" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.envs import TMaze\n", + "\n", + "env = TMaze(batch_size=batch_size)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 1 + batch_size)\n", + "key = keys[0]\n", + "o, env = env.reset(keys[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(o)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "plt.imshow(env.params[\"A\"][0][0, ...])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.imshow(env.params[\"A\"][1][0, 0, ...])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.imshow(env.params[\"A\"][1][0, 2, ...])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.imshow(env.params[\"A\"][1][0, 1, ...])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "o, env = env.step(keys[1:], jnp.array([[3, 0]]))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "print(o)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "o, env = env.step(keys[1:], jnp.array([[2, 0]]))\n", + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "o, env = env.step(keys[1:], jnp.array([[1, 0]]))\n", + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "o, env = env.step(keys[1:], jnp.array([[0, 0]]))\n", + "env.render()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "img = env.render(mode=\"rgb_array\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "img.shape" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.imshow(img)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/inductive_inference_example.ipynb b/examples/inductive_inference/inductive_inference_example.ipynb similarity index 100% rename from examples/inductive_inference_example.ipynb rename to examples/inductive_inference/inductive_inference_example.ipynb diff --git a/examples/inductive_inference_gridworld.ipynb b/examples/inductive_inference/inductive_inference_gridworld.ipynb similarity index 100% rename from examples/inductive_inference_gridworld.ipynb rename to examples/inductive_inference/inductive_inference_gridworld.ipynb diff --git a/examples/inference_and_learning/inference_methods_comparison.ipynb b/examples/inference_and_learning/inference_methods_comparison.ipynb index ca21e4dd..55a673cd 100644 --- a/examples/inference_and_learning/inference_methods_comparison.ipynb +++ b/examples/inference_and_learning/inference_methods_comparison.ipynb @@ -92,7 +92,8 @@ " action_selection=\"deterministic\",\n", " sampling_mode=\"full\",\n", " inference_algo=\"ovf\",\n", - " num_iter=16\n", + " num_iter=16,\n", + " apply_batch=False\n", ")" ] }, @@ -127,23 +128,15 @@ " if t < len(obs[0]) - 1:\n", " action_hist.append(actions)\n", "\n", - "v_jso = jit(vmap(smoothing_ovf), backend='gpu')\n", + "v_jso = jit(vmap(smoothing_ovf), backend='cpu')\n", "actions_seq = jnp.stack(action_hist, 1)" ] }, { "cell_type": "code", - "execution_count": 5, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "66 µs ± 1.06 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)\n" - ] - } - ], + "outputs": [], "source": [ "smoothed_beliefs = v_jso(beliefs, agents.B, actions_seq)\n", "%timeit v_jso(beliefs, agents.B, actions_seq)[0][0].block_until_ready()" @@ -158,17 +151,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "104 µs ± 11.8 µs per loop (mean ± std. dev. of 7 runs, 10,000 loops each)\n" - ] - } - ], + "outputs": [], "source": [ "sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b, n_batch=1), agents.B)\n", "\n", @@ -185,30 +170,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Filtered beliefs')" - ] - }, - "execution_count": 15, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQMAAAKqCAYAAACO80jyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqcklEQVR4nO3de5CV9X348c9ZLisibJOAC3glGAPeMN0oXkawohI7NSFjxdhpC16CNkhr0DRhfmnQZEZ0NJISvCAdxdhfmphGaNpJyiiCxvxoUSjGXBTbaMyogBQDdcWj7D6/P/Jzf9nIZZ+9cHb5vF4z5499zjnPfh7m2eXLm3OeUymKoggAAAAA4IBXV+sBAAAAAID9QwwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwE9ujFF1+MSqUSS5cubdt2ww03RKVSqd1QJXV03rPPPjtOOOGEbv3eRx99dMyYMaPt69WrV0elUonVq1d3an9PPvlknHHGGTF48OCoVCqxYcOGbpkTAACAPMRASGzp0qVRqVR2e/vCF77Q4f3cdNNNsXz58p4blHjnnXfi4osvjm3btsWCBQvigQceiKOOOqrWYwEAANDH9K/1AEDtffnLX47Ro0e323bCCSfEUUcdFTt37owBAwbs9fk33XRT/PEf/3FMnTq1B6fs+yZOnBg7d+6MgQMHln7uf/3Xf8Uvf/nLWLJkSVx55ZU9MB0AAAAZiIFAXHDBBfHRj350t/cddNBB+3ma33jrrbdi4MCBUVd34LyAua6urtN/nlu2bImIiN/7vd/rxokAAADI5sD5VzbQ7XZ3zcDfValUorm5Oe6///62txj/9nXyXn755bj88sujsbEx6uvr4/jjj49777233T7evZbet771rfjiF78Yhx12WBx88MGxY8eOiIj493//9/jYxz4WDQ0NcfDBB8ekSZPiRz/60XtmeeKJJ+KUU06Jgw46KMaMGROLFy8ufczr1q2LM844IwYNGhSjR4+Ou++++z2PqVarMW/evDjmmGOivr4+jjjiiPjrv/7rqFare933nq4ZuK/jmzFjRkyaNCkiIi6++OKoVCpx9tlnR0TEpk2b4rLLLovDDz886uvrY+TIkfGJT3wiXnzxxdLHDgAAwIHPKwOB2L59e2zdurXdtmHDhnXouQ888EBceeWVceqpp8bMmTMjImLMmDEREbF58+Y47bTTolKpxDXXXBPDhw+PH/zgB3HFFVfEjh074tprr223r6985SsxcODAuP7666NarcbAgQPj0UcfjQsuuCCamppi3rx5UVdXF/fdd1+cc8458cMf/jBOPfXUiIh45pln4vzzz4/hw4fHDTfcELt27Yp58+ZFY2Njh/8cXn/99fjDP/zDmDZtWlx66aXx4IMPxl/8xV/EwIED4/LLL4+IiNbW1vj4xz8eTzzxRMycOTPGjRsXzzzzTCxYsCA2btxY+tqJHTm+q666Kg477LC46aab4i//8i/jlFNOaTuuiy66KH7605/G7Nmz4+ijj44tW7bEww8/HC+99FIcffTRpWYBAAAggQJI67777isiYre3oiiKF154oYiI4r777mt7zrx584rf/dUxePDgYvr06e/Z/xVXXFGMHDmy2Lp1a7vtn/rUp4qGhobizTffLIqiKFatWlVERPHBD36wbVtRFEVra2vxoQ99qJgyZUrR2tratv3NN98sRo8eXZx33nlt26ZOnVocdNBBxS9/+cu2bT/72c+Kfv36vWfe3Zk0aVIREcVXv/rVtm3VarU4+eSTi0MPPbR4++23i6IoigceeKCoq6srfvjDH7Z7/t13311ERPGjH/2obdtRRx3V7s/l3eNctWpV6eN797nf+c532ra9/vrrRUQUt9566z6PDwAAAIqiKLxNGIg77rgjHn744Xa3riqKIr773e/GhRdeGEVRxNatW9tuU6ZMie3bt8f69evbPWf69OkxaNCgtq83bNgQzz//fPzJn/xJ/Pd//3fb85ubm2Py5Mnx+OOPR2tra7S0tMSKFSti6tSpceSRR7Y9f9y4cTFlypQOz9y/f/+46qqr2r4eOHBgXHXVVbFly5ZYt25dRER85zvfiXHjxsXYsWPbHdM555wTERGrVq3q8Pfr6PHtyaBBg2LgwIGxevXqeP311zv8fQEAAMjL24SBOPXUU/f4ASKd9dprr8Wvf/3ruOeee+Kee+7Z7WPe/VCMd/3uJxo///zzEfGbSLgn27dvj2q1Gjt37owPfehD77n/wx/+cHz/+9/v0MyjRo2KwYMHt9t27LHHRsRvrp942mmnxfPPPx8///nPY/jw4bvdx+8e09509Pje97737fa++vr6uOWWW+K6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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "# with dense matrices\n", "fig, axes = plt.subplots(2, 2, figsize=(16, 8), sharex=True)\n", @@ -224,30 +188,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "Text(0.5, 1.0, 'Filtered beliefs')" - ] - }, - "execution_count": 16, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQMAAAKqCAYAAACO80jyAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAqcklEQVR4nO3de5CV9X348c9ZLisibJOAC3glGAPeMN0oXkawohI7NSFjxdhpC16CNkhr0DRhfmnQZEZ0NJISvCAdxdhfmphGaNpJyiiCxvxoUSjGXBTbaMyogBQDdcWj7D6/P/Jzf9nIZZ+9cHb5vF4z5499zjnPfh7m2eXLm3OeUymKoggAAAAA4IBXV+sBAAAAAID9QwwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwEAAAAgCTEQAAAAABIQgwE9ujFF1+MSqUSS5cubdt2ww03RKVSqd1QJXV03rPPPjtOOOGEbv3eRx99dMyYMaPt69WrV0elUonVq1d3an9PPvlknHHGGTF48OCoVCqxYcOGbpkTAACAPMRASGzp0qVRqVR2e/vCF77Q4f3cdNNNsXz58p4blHjnnXfi4osvjm3btsWCBQvigQceiKOOOqrWYwEAANDH9K/1AEDtffnLX47Ro0e323bCCSfEUUcdFTt37owBAwbs9fk33XRT/PEf/3FMnTq1B6fs+yZOnBg7d+6MgQMHln7uf/3Xf8Uvf/nLWLJkSVx55ZU9MB0AAAAZiIFAXHDBBfHRj350t/cddNBB+3ma33jrrbdi4MCBUVd34LyAua6urtN/nlu2bImIiN/7vd/rxokAAADI5sD5VzbQ7XZ3zcDfValUorm5Oe6///62txj/9nXyXn755bj88sujsbEx6uvr4/jjj49777233T7evZbet771rfjiF78Yhx12WBx88MGxY8eOiIj493//9/jYxz4WDQ0NcfDBB8ekSZPiRz/60XtmeeKJJ+KUU06Jgw46KMaMGROLFy8ufczr1q2LM844IwYNGhSjR4+Ou++++z2PqVarMW/evDjmmGOivr4+jjjiiPjrv/7rqFare933nq4ZuK/jmzFjRkyaNCkiIi6++OKoVCpx9tlnR0TEpk2b4rLLLovDDz886uvrY+TIkfGJT3wiXnzxxdLHDgAAwIHPKwOB2L59e2zdurXdtmHDhnXouQ888EBceeWVceqpp8bMmTMjImLMmDEREbF58+Y47bTTolKpxDXXXBPDhw+PH/zgB3HFFVfEjh074tprr223r6985SsxcODAuP7666NarcbAgQPj0UcfjQsuuCCamppi3rx5UVdXF/fdd1+cc8458cMf/jBOPfXUiIh45pln4vzzz4/hw4fHDTfcELt27Yp58+ZFY2Njh/8cXn/99fjDP/zDmDZtWlx66aXx4IMPxl/8xV/EwIED4/LLL4+IiNbW1vj4xz8eTzzxRMycOTPGjRsXzzzzTCxYsCA2btxY+tqJHTm+q666Kg477LC46aab4i//8i/jlFNOaTuuiy66KH7605/G7Nmz4+ijj44tW7bEww8/HC+99FIcffTRpWYBAAAggQJI67777isiYre3oiiKF154oYiI4r777mt7zrx584rf/dUxePDgYvr06e/Z/xVXXFGMHDmy2Lp1a7vtn/rUp4qGhobizTffLIqiKFatWlVERPHBD36wbVtRFEVra2vxoQ99qJgyZUrR2tratv3NN98sRo8eXZx33nlt26ZOnVocdNBBxS9/+cu2bT/72c+Kfv36vWfe3Zk0aVIREcVXv/rVtm3VarU4+eSTi0MPPbR4++23i6IoigceeKCoq6srfvjDH7Z7/t13311ERPGjH/2obdtRRx3V7s/l3eNctWpV6eN797nf+c532ra9/vrrRUQUt9566z6PDwAAAIqiKLxNGIg77rgjHn744Xa3riqKIr773e/GhRdeGEVRxNatW9tuU6ZMie3bt8f69evbPWf69OkxaNCgtq83bNgQzz//fPzJn/xJ/Pd//3fb85ubm2Py5Mnx+OOPR2tra7S0tMSKFSti6tSpceSRR7Y9f9y4cTFlypQOz9y/f/+46qqr2r4eOHBgXHXVVbFly5ZYt25dRER85zvfiXHjxsXYsWPbHdM555wTERGrVq3q8Pfr6PHtyaBBg2LgwIGxevXqeP311zv8fQEAAMjL24SBOPXUU/f4ASKd9dprr8Wvf/3ruOeee+Kee+7Z7WPe/VCMd/3uJxo///zzEfGbSLgn27dvj2q1Gjt37owPfehD77n/wx/+cHz/+9/v0MyjRo2KwYMHt9t27LHHRsRvrp942mmnxfPPPx8///nPY/jw4bvdx+8e09509Pje97737fa++vr6uOWWW+K6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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "#with sparse matrices\n", "fig, axes = plt.subplots(2, 2, figsize=(16, 8), sharex=True)\n", @@ -270,20 +213,9 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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yLIsy/baa6/s2GOPzfvd9dutt3bt2qx79+7ZkUcembceEVm9evWyl19+OW995MiRWS6Xy55//vmatY8++ihr0aJFFhHZm2++WbPep0+frE+fPjU/z5s3L4uIrFu3bllVVVXN+vjx47OIyF588cVNzpllWVZRUZHlcrns7bffrlm7/PLLsy0dRj3//PNZRGTTp0/f7HYRkZWUlOQ9hxtvvDGLiKxdu3bZqlWratbLy8vznu/atWuzNm3aZN27d8/WrFlTs93MmTOziMguu+yymrUDDzwwa9OmTfbRRx/VrL3wwgtZvXr1sjPOOKNm7eqrr97gNf36rLvsskv2+uuv5+0jIrKJEyfWrJ199tlZ+/btsxUrVuT9/sknn5yVlpbWvM7XXXddFhHZvffeW7PN6tWrs86dO2cRkc2bN2+zr936P4eBAwfmrZ9//vlZRGQvvPBClmVZ9tZbb2X169fPrrzyyrztXnzxxaxBgwZ562eeeWa21157bfC8L7/88oKf3/rfHT58eN52PXr02ODvCADAN8XHhAGAgg0ZMiTWrFkTM2fOjL/97W8xc+bMTX5EOCKicePGNf/98ccfR2VlZfTu3TsWL168wbZ9+vSJfffdN2/t0UcfjV69esWBBx5Ys9aiRYs47bTTtnrmYcOG5V1LsHfv3hER8cYbb2x0ztWrV8eKFSvikEMOiSzL4vnnn9/qx4qImjP/Zs+eHZ999tlmtz3qqKOiY8eONT8ffPDBERFx4oknRrNmzTZYXz/zwoULY/ny5XH++edHo0aNarY79thjo2vXrvFf//VfERHx/vvvx5IlS2Lo0KHRokWLmu0OOOCA6NevXzzyyCNb/bz69u0be++9d94+mjdvXjNTlmVx3333xXHHHRdZlsWKFStqbv3794/KysqaP/dHHnkk2rdvHz/5yU9q9tekSZM477zztnqeiKg5o3K9kSNH1uw/IuL++++P6urqGDJkSN487dq1i3322SfmzZu31Y9VyPPblN122y1efvnleO211wp6ngAAtcHHhAGAgrVu3Tr69u0b06ZNi88++yzWrVuXF3T+3syZM+OKK66IJUuW5F0Pbv011L6uU6dOG6y9/fbb0atXrw3WO3fuvNUz77nnnnk/f+c734mIr+Lkeu+8805cdtll8dBDD+WtR0Tedf62RqdOneKiiy6KX//613HXXXdF7969Y+DAgXH66afnfUR4Y7Otv3+PPfbY6Pr62d5+++2IiPjud7+7weN37do1nn766S1u161bt5g9e3asXr06mjZtusXn9fezRnz1Wq6f6cMPP4xPPvkkbrrpprjppps2uo/ly5fXzNW5c+cN3gcbm3Nz9tlnn7yf995776hXr17NtQ5fe+21yLJsg+3Wa9iw4VY/ViHPb1N++ctfxvHHHx9dunSJ7t27x9FHHx0//elP44ADDtjqOQAAtpUYCABsk1NPPTXOPffc+OCDD2LAgAGbvObaU089FQMHDoyysrKYPHlytG/fPho2bBi33XZbTJs2bYPtv352Xm2qX7/+RtezLIuIiHXr1kW/fv1i5cqVcckll0TXrl2jadOmsXTp0hg6dGhUV1cX/Jj/+Z//GUOHDo3f//738dhjj8UFF1xQc127Dh06bHG2Lc1cDFuaaf3rdPrpp8eZZ5650W13dPT6+7hYXV0duVwuZs2atdH5d911163ed208v7Kysvi///u/mvfFzTffHNdee21MmTIlzjnnnK2eBQBgW4iBAMA2OeGEE+Kf/umf4tlnn4177rlnk9vdd9990ahRo5g9e3beF37cdtttW/1Ye+211wbf/BsRG13bVi+++GK8+uqrcccdd+R92cP2fsPr/vvvH/vvv3/827/9WzzzzDNx6KGHxpQpU+KKK67Y3pFjr732ioiIV155JY488si8+1555ZWa+7++3d/7y1/+Eq1atao5K3BjZ2sWonXr1tGsWbNYt25d9O3bd4vzv/TSS5FlWd7jbmzOzXnttdfyzih9/fXXo7q6uuaj13vvvXdkWRadOnWKLl26FLTvv1fI89ucFi1axLBhw2LYsGHx6aefRllZWYwZM0YMBAB2ONcMBAC2ya677ho33HBDjBkzJo477rhNble/fv3I5XKxbt26mrW33norHnzwwa1+rP79+8f8+fNjyZIlNWsrV66Mu+66a1tG3+ScEfln3WVZFuPHj9+m/a1atSq+/PLLvLX9998/6tWrl/dR6e3xve99L9q0aRNTpkzJ2+esWbPiz3/+c803Nbdv3z4OPPDAuOOOO+KTTz6p2e6ll16Kxx57LI455piatfVR8OvbFaJ+/fpx4oknxn333RcvvfTSBvd/+OGHNf99zDHHxF//+teYMWNGzdpnn322yY/fbsr111+f9/PEiRMjImq+7frHP/5x1K9fP8aOHbvBWZVZlsVHH3201Y9VyPPblL9/vF133TU6d+5ca+8LAIDNcWYgALDNNvUxya879thj49e//nUcffTRceqpp8by5cvj+uuvj86dO8ef/vSnrXqcn//853HnnXdGv379YuTIkdG0adO4+eabY88994yVK1du99lsEV9dY2/vvfeO0aNHx9KlS6N58+Zx3333bXDtwK01d+7cGDFiRAwePDi6dOkSX375ZUydOrUmJtWGhg0bxlVXXRXDhg2LPn36xCmnnBLLli2L8ePHR8eOHWPUqFE121599dUxYMCA6NWrV5x99tmxZs2amDhxYpSWlsaYMWNqtuvZs2dERPzrv/5rnHzyydGwYcM47rjjtup6guuNGzcu5s2bFwcffHCce+65se+++8bKlStj8eLF8fjjj8fKlSsjIuLcc8+NSZMmxRlnnBGLFi2K9u3bx9SpU6NJkyYFvQ5vvvlmDBw4MI4++uiYP39+3HnnnXHqqadGjx49IuKrMwOvuOKKKC8vj7feeisGDRoUzZo1izfffDMeeOCBOO+882L06NG1/vw2Zd99943DDz88evbsGS1atIiFCxfGjBkzYsSIEQU9bwCAbSEGAgA71JFHHhm33HJLjBs3Li688MLo1KlTXHXVVfHWW29tdQzcY489Yt68eXHBBRfEf/zHf0Tr1q1j+PDh0bRp07jgggvyvkl3WzVs2DAefvjhmuv6NWrUKE444YQYMWJETVQqRI8ePaJ///7x8MMPx9KlS6NJkybRo0ePmDVrVvzgBz/Y7nnXGzp0aDRp0iTGjRsXl1xySTRt2jROOOGEuOqqq/Ku49i3b9949NFH4/LLL4/LLrssGjZsGH369Imrrroq7yO2Bx10UPz7v/97TJkyJR599NGorq6ON998s6AY2LZt21iwYEH88pe/jPvvvz8mT54cLVu2jP322y+uuuqqmu2aNGkSc+bMiZEjR8bEiROjSZMmcdppp8WAAQPi6KOP3urHu+eee+Kyyy6LSy+9NBo0aBAjRoyIq6++Om+bSy+9NLp06RLXXnttjB07NiK+el/98Ic/jIEDB271YxXy/DblggsuiIceeigee+yxqKqqir322iuuuOKKuPjiiwuaAwBgW+SyYl6BGgBgO1x44YVx4403xqeffrrJL7YAAAD+P9cMBADqhDVr1uT9/NFHH8XUqVPjsMMOEwIBAGAr+ZgwAFAn9OrVKw4//PDo1q1bLFu2LG655ZZYtWpV/OIXvyj2aAAAUGeIgQBAnXDMMcfEjBkz4qabbopcLhf/+I//GLfcckuUlZUVezQAAKgzXDMQAAAAABLhmoEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEhEg2IPsF6/eoOLPQLwLTf7ry8UewTqkP679yj2CNQxf6ieXuwR2E6ORymUYwsK5fiCQvl3hkLVa/fqlrf5BuYAAAAAAHYCYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARDQr9hRUrVsStt94a8+fPjw8++CAiItq1axeHHHJIDB06NFq3bl3rQwIAAAAA26+gMwOfe+656NKlS0yYMCFKS0ujrKwsysrKorS0NCZMmBBdu3aNhQsXbnE/VVVVsWrVqrxbdbZum58EAAAAALBlBZ0ZOHLkyBg8eHBMmTIlcrlc3n1ZlsXPfvazGDlyZMyfP3+z+6moqIixY8fmrXWKbrF37FfIOAAAAABAAQo6M/CFF16IUaNGbRACIyJyuVyMGjUqlixZssX9lJeXR2VlZd6tU3QtZBQAAAAAoEAFnRnYrl27WLBgQXTtuvFwt2DBgmjbtu0W91NSUhIlJSV5a/Vy9QsZBQAAAAAoUEExcPTo0XHeeefFokWL4qijjqoJf8uWLYs5c+bEb37zm7jmmmt2yKAAAAAAwPYpKAYOHz48WrVqFddee21Mnjw51q376ks/6tevHz179ozbb789hgwZskMGBQAAAAC2T0ExMCLipJNOipNOOim++OKLWLFiRUREtGrVKho2bFjrwwEAAAAAtafgGLhew4YNo3379rU5CwAAAACwAxX0bcIAAAAAQN0lBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJCIBsUeAAAACrFixYq49dZbY/78+fHBBx9ERES7du3ikEMOiaFDh0br1q2LPCEAwM7LmYEAANQZzz33XHTp0iUmTJgQpaWlUVZWFmVlZVFaWhoTJkyIrl27xsKFC7e4n6qqqli1alXerTpb9w08AwCA4nJmIAAAdcbIkSNj8ODBMWXKlMjlcnn3ZVkWP/vZz2LkyJExf/78ze6noqIixo4dm7fWKbrF3rFfrc8MALAzcWYgAAB1xgsvvBCjRo3aIARGRORyuRg1alQsWbJki/spLy+PysrKvFun6LoDJgYA2Lk4MxAAgDqjXbt2sWDBgujadePhbsGCBdG2bdst7qekpCRKSkry1url6tfKjAAAOzMxEACAOmP06NFx3nnnxaJFi+Koo46qCX/Lli2LOXPmxG9+85u45pprijwlAMDOSwwEAKDOGD58eLRq1SquvfbamDx5cqxb99WXftSvXz969uwZt99+ewwZMqTIUwIA7LzEQAAA6pSTTjopTjrppPjiiy9ixYoVERHRqlWraNiwYZEnAwDY+YmBAADUSQ0bNoz27dsXewwAgDrFtwkDAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiWhQ7AFgW83+6wvFHoE6pv/uPYo9AgAAABSVMwMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBG1HgPffffdOOussza7TVVVVaxatSrvVp2tq+1RAAAAAICvaVDbO1y5cmXccccdceutt25ym4qKihg7dmzeWqfoFnvHfrU9DgAAbJXZf32h2CNQx/TfvUexR6CO8e8MhfLvDIX6Q/WWtyk4Bj700EObvf+NN97Y4j7Ky8vjoosuyls7oXRooaMAAAAAAAUoOAYOGjQocrlcZFm2yW1yudxm91FSUhIlJSV5a/Vy9QsdBQAAAAAoQMHXDGzfvn3cf//9UV1dvdHb4sWLd8ScAAAAAMB2KjgG9uzZMxYtWrTJ+7d01iAAAAAAUBwFf0z44osvjtWrV2/y/s6dO8e8efO2aygAAAAAoPYVHAN79+692fubNm0affr02eaBAAAAAIAdo+CPCQMAAAAAdZMYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARDQo9gDrzf7rC8UegTqm/+49ij0C8C3m/0sAAMC3kTMDAQAAACARYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAwLfKu+++G2edddZmt6mqqopVq1bl3aqqqr+hCQEAikcMBADgW2XlypVxxx13bHabioqKKC0tzbuNm/jxNzQhAEDxNCj2AAAAUIiHHnpos/e/8cYbW9xHeXl5XHTRRXlrDT/+x+2aCwCgLhADAQCoUwYNGhS5XC6yLNvkNrlcbrP7KCkpiZKSkry16s98aAYA+PZzxAMAQJ3Svn37uP/++6O6unqjt8WLFxd7RACAnZYYCABAndKzZ89YtGjRJu/f0lmDAAAp8zFhAADqlIsvvjhWr169yfs7d+4c8+bN+wYnAgCoO8RAAADqlN69e2/2/qZNm0afPn2+oWkAAOoWHxMGAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJCIgmPgmjVr4umnn47//d//3eC+zz//PH77299ucR9VVVWxatWqvFtVVXWhowAAAAAABSgoBr766qvRrVu3KCsri/333z/69OkT77//fs39lZWVMWzYsC3up6KiIkpLS/Nu4yZ+XPj0AAAAAMBWKygGXnLJJdG9e/dYvnx5vPLKK9GsWbM49NBD45133inoQcvLy6OysjLvdunI7xS0DwAAAACgMA0K2fiZZ56Jxx9/PFq1ahWtWrWKhx9+OM4///zo3bt3zJs3L5o2bbpV+ykpKYmSkpK8terPXL4QAAAAAHakggrcmjVrokGD/98Pc7lc3HDDDXHcccdFnz594tVXX631AQEAAACA2lHQmYFdu3aNhQsXRrdu3fLWJ02aFBERAwcOrL3JAAAAAIBaVdCZgSeccELcfffdG71v0qRJccopp0SWZbUyGAAAAABQuwqKgeXl5fHII49s8v7JkydHdXX1dg8FAAAAANQ+39oBAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARYiAAAAAAJEIMBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEiEGAgAAAAAiRADAQAAACARYiAAAAAAJEIMBAAAAIBE5LIsy4o9BBtXVVUVFRUVUV5eHiUlJcUehzrAe4ZCec9QKO8ZSI+/9xTC+4VCec9QKO+Z7ScG7sRWrVoVpaWlUVlZGc2bNy/2ONQB3jMUynuGQnnPQHr8vacQ3i8UynuGQnnPbD8fEwYAAACARIiBAAAAAJAIMRAAAAAAEiEG7sRKSkri8ssvd0FMtpr3DIXynqFQ3jOQHn/vKYT3C4XynqFQ3jPbzxeIAAAAAEAinBkIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMXAndv3110fHjh2jUaNGcfDBB8eCBQuKPRI7qT/+8Y9x3HHHxe677x65XC4efPDBYo/ETq6ioiIOOuigaNasWbRp0yYGDRoUr7zySrHHYid2ww03xAEHHBDNmzeP5s2bR69evWLWrFnFHgvYwRyPUgjHpBTC8SiFcjxae8TAndQ999wTF110UVx++eWxePHi6NGjR/Tv3z+WL19e7NHYCa1evTp69OgR119/fbFHoY548sknY/jw4fHss8/GH/7wh/jiiy/ihz/8YaxevbrYo7GT6tChQ4wbNy4WLVoUCxcujCOPPDKOP/74ePnll4s9GrCDOB6lUI5JKYTjUQrleLT25LIsy4o9BBs6+OCD46CDDopJkyZFRER1dXXsscceMXLkyLj00kuLPB07s1wuFw888EAMGjSo2KNQh3z44YfRpk2bePLJJ6OsrKzY41BHtGjRIq6++uo4++yziz0KsAM4HmV7OCalUI5H2RaOR7eNMwN3QmvXro1FixZF3759a9bq1asXffv2jfnz5xdxMuDbqrKyMiK++p8pbMm6devid7/7XaxevTp69epV7HGAHcDxKPBNczxKIRyPbp8GxR6ADa1YsSLWrVsXbdu2zVtv27Zt/OUvfynSVMC3VXV1dVx44YVx6KGHRvfu3Ys9DjuxF198MXr16hWff/557LrrrvHAAw/EvvvuW+yxgB3A8SjwTXI8ytZyPFo7xECAxA0fPjxeeumlePrpp4s9Cju57373u7FkyZKorKyMGTNmxJlnnhlPPvmkAzAAYLs4HmVrOR6tHWLgTqhVq1ZRv379WLZsWd76smXLol27dkWaCvg2GjFiRMycOTP++Mc/RocOHYo9Dju5XXbZJTp37hwRET179oznnnsuxo8fHzfeeGORJwNqm+NR4JvieJRCOB6tHa4ZuBPaZZddomfPnjFnzpyaterq6pgzZ47PwgO1IsuyGDFiRDzwwAMxd+7c6NSpU7FHog6qrq6OqqqqYo8B7ACOR4EdzfEotcHx6LZxZuBO6qKLLoozzzwzvve978X3v//9uO6662L16tUxbNiwYo/GTujTTz+N119/vebnN998M5YsWRItWrSIPffcs4iTsbMaPnx4TJs2LX7/+99Hs2bN4oMPPoiIiNLS0mjcuHGRp2NnVF5eHgMGDIg999wz/va3v8W0adPiiSeeiNmzZxd7NGAHcTxKoRyTUgjHoxTK8WjtyWVZlhV7CDZu0qRJcfXVV8cHH3wQBx54YEyYMCEOPvjgYo/FTuiJJ56II444YoP1M888M26//fZvfiB2erlcbqPrt912WwwdOvSbHYY64eyzz445c+bE+++/H6WlpXHAAQfEJZdcEv369Sv2aMAO5HiUQjgmpRCORymU49HaIwYCAAAAQCJcMxAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAAACQCDEQAAAAABIhBgIAAABAIsRAAAAAAEjE/wNyswhV/yxGqAAAAABJRU5ErkJggg==", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "mmp_agents = agents = Agent(\n", " A=A,\n", @@ -299,7 +231,8 @@ " action_selection=\"deterministic\",\n", " sampling_mode=\"full\",\n", " inference_algo=\"mmp\",\n", - " num_iter=16\n", + " num_iter=16,\n", + " apply_batch=False\n", ")\n", "\n", "mmp_obs = [jnp.moveaxis(obs[0], 0, 1)]\n", @@ -323,20 +256,9 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABQMAAAGHCAYAAAAEKUSHAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8g+/7EAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAkh0lEQVR4nO3deZCU9Z348U9zDQg4iJzRCBouDYjJKIRbxYhEw2IqHhFLxphVN4AlFkTRUsA1kl11RUTF6CrGCBo1XqsGEPGIskFw0UjWK8KqiVweoKOMyDy/P1LMLx3OloGe8ft6VXVZ832efvrTYwNPvevp7lyWZVkAAAAAAF959Yo9AAAAAACwZ4iBAAAAAJAIMRAAAAAAEiEGAgAAAEAixEAAAAAASIQYCAAAAACJEAMBAAAAIBFiIAAAAAAkQgwEAAAAgESIgQAAX3Hl5eXRrFmzPfJYHTt2jPLy8u3us2LFisjlcnH11VfX2OM+9dRTkcvl4qmnnqpeKy8vj44dO37pY1511VVx0EEHRf369eOwww7b5RkBAGoDMRAA2GOGDRsWe+21V3z88cfb3GfEiBHRqFGjeP/99yMiIpfLRS6Xi5/85Cdb3f+SSy6p3mft2rXV6+Xl5dXruVwu9t577+jZs2dcc801UVlZWbNPrBb49NNPY9KkSXkxjC9v7ty58bOf/Sz69esXt99+e1x55ZXFHgkAoEY0KPYAAEA6RowYEY888kg88MADccYZZ2yx/dNPP42HHnoojjvuuNh3332r1xs3bhz3339/3HjjjdGoUaO8+8yePTsaN24cGzZs2OJ4JSUlceutt0ZExEcffRT3339/jBs3Ll544YW4++67a/jZFdenn34akydPjoiII488srjD1BK33HJLVFVVfan7Pvnkk1GvXr34z//8zy1ecwAAdZkrAwGAPWbYsGHRvHnzmDVr1la3P/TQQ1FRUREjRozIWz/uuONi/fr18fjjj+etP//887F8+fI4/vjjt3q8Bg0axOmnnx6nn356jB49OubPnx+HH3543HPPPfHXv/61Zp4UtVbDhg2jpKTkS9139erV0aRJEyEQAPjKEQMBgD2mSZMm8YMf/CDmz58fq1ev3mL7rFmzonnz5jFs2LC89f322y8GDhy4RUS86667okePHtG9e/edevx69epVXzW3YsWKbe63cePGmDx5cnTu3DkaN24c++67b/Tv3z/mzZtXvc/mz+F7++2344QTTohmzZrFfvvtFzfccENERPzxj3+Mo48+Opo2bRodOnTYagB966234qSTToqWLVvGXnvtFd/5znfi0Ucf3WK/1atXx1lnnRVt27aNxo0bR8+ePeOOO+6o3r5ixYpo3bp1RERMnjy5+q3RkyZNyjvOX/7ylxg+fHg0a9YsWrduHePGjYtNmzbl7VNVVRVTp06Nb37zm9G4ceNo27ZtnHPOOfHhhx/m7ZdlWVxxxRWx//77x1577RVHHXVULFu2bJu/02259tpro0OHDtGkSZMYNGhQvPLKK1vs8+qrr8YPf/jDaNmyZTRu3DgOP/zwePjhh3d47K19ZuDOPL9cLhe33357VFRUVP8uZ86cGRER8+bNi/79+0eLFi2iWbNm0bVr17j44osLft4AAMUiBgIAe9SIESPiiy++iN/85jd56x988EHMmTMnTjzxxGjSpMkW9zvttNPikUceiU8++SQiIr744ou4995747TTTivo8f/85z9HROS9DfkfTZo0KSZPnhxHHXVUTJ8+PS655JI44IAD4sUXX8zbb9OmTTF06ND4+te/Hv/+7/8eHTt2jNGjR8fMmTPjuOOOi8MPPzz+7d/+LZo3bx5nnHFGLF++vPq+q1atir59+8acOXPipz/9afz85z+PDRs2xLBhw+KBBx6o3u+zzz6LI488Mu68884YMWJEXHXVVVFaWhrl5eVx3XXXRURE69at46abboqIiBNPPDHuvPPOuPPOO+MHP/hB3qxDhgyJfffdN66++uoYNGhQXHPNNfHLX/4y7zmdc845MX78+OjXr19cd911ceaZZ8Zdd90VQ4YMiY0bN1bvd9lll8Wll14aPXv2rP6ijWOPPTYqKip2+v/Fr371q5g2bVqMGjUqJkyYEK+88kocffTRsWrVqup9li1bFt/5znfif//3f+Oiiy6Ka665Jpo2bRrDhw/P+z3trJ15fnfeeWcMGDAgSkpKqn+XAwcOjGXLlsUJJ5wQlZWVcfnll8c111wTw4YNi+eee67gOQAAiiYDANiDvvjii6x9+/ZZnz598tZnzJiRRUQ2Z86cvPWIyEaNGpV98MEHWaNGjbI777wzy7Ise/TRR7NcLpetWLEimzhxYhYR2Zo1a6rvN3LkyKxp06bZmjVrsjVr1mRvvvlmduWVV2a5XC479NBDtztjz549s+OPP367+4wcOTKLiOzKK6+sXvvwww+zJk2aZLlcLrv77rur11999dUsIrKJEydWr51//vlZRGTPPvts9drHH3+cHXjggVnHjh2zTZs2ZVmWZVOnTs0iIvv1r39dvd/nn3+e9enTJ2vWrFm2fv36LMuybM2aNVs8xj/Oevnll+etf+tb38rKysqqf3722WeziMjuuuuuvP1+97vf5a2vXr06a9SoUXb88cdnVVVV1ftdfPHFWURkI0eO3O7vbvny5VlEZE2aNMnefffd6vU//OEPWURkY8eOrV4bPHhw1qNHj2zDhg3Va1VVVVnfvn2zzp07V68tWLAgi4hswYIFec+7Q4cOBT+/zfdt2rRp3n7XXnvtFq8zAIC6xpWBAMAeVb9+/Tj11FNj4cKFeW/VnTVrVrRt2zYGDx681fvts88+cdxxx8Xs2bOr9+/bt2906NBhm49VUVERrVu3jtatW0enTp3i4osvjj59+uzwirIWLVrEsmXL4o033tjh8/n7bzlu0aJFdO3aNZo2bRonn3xy9XrXrl2jRYsW8dZbb1WvPfbYY9GrV6/o379/9VqzZs3i7LPPjhUrVsSf/vSn6v3atWsXP/rRj6r3a9iwYZx33nnxySefxNNPP73DGTc799xz834eMGBA3kz33ntvlJaWxne/+91Yu3Zt9a2srCyaNWsWCxYsiIiIJ554Ij7//PMYM2ZM5HK56vuff/75Oz1LRMTw4cNjv/32q/65V69e0bt373jsscci4m9Xiz755JNx8sknx8cff1w9z/vvvx9DhgyJN954I/7yl7/s9OPt7PPblhYtWkTE3z7b8st+MQkAQLGJgQDAHrf5C0I2f47eu+++G88++2yceuqpUb9+/W3e77TTTot58+bF22+/HQ8++OAO3yLcuHHjmDdvXsybNy+eeeaZeOedd+K5556Lgw46aLv3u/zyy+Ojjz6KLl26RI8ePWL8+PHx8ssvb/X4mz+rb7PS0tLYf//98yLZ5vW//1y6//u//4uuXbtuccyDDz64evvm/3bu3Dnq1au33f12ZGuz7rPPPnkzvfHGG7Fu3bpo06ZNdUTdfPvkk0+qP+dx82N27tw573itW7eOffbZZ6fm2dr9IyK6dOlSHYnffPPNyLIsLr300i3mmThxYkTEVj97clt29vltyymnnBL9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RERZWVm88MILcd1118XNN99c5MmAmuZ8FNhTnI9SCOejNcNnBtZCjRo1irKyspg/f371WlVVVcyfP9974YEakWVZjB49Oh544IF48skn48ADDyz2SNRBVVVVUVlZWewxgN3A+SiwuzkfpSY4H/1yXBlYS11wwQUxcuTIOPzww6NXr14xderUqKioiDPPPLPYo1ELffLJJ/Hmm29W/7x8+fJYunRptGzZMg444IAiTkZtNWrUqJg1a1Y89NBD0bx581i5cmVERJSWlkaTJk2KPB210YQJE2Lo0KFxwAEHxMcffxyzZs2Kp556KubMmVPs0YDdxPkohXJOSiGcj1Io56M1J5dlWVbsIdi66dOnx1VXXRUrV66Mww47LKZNmxa9e/cu9ljUQk899VQcddRRW6yPHDkyZs6cuecHotbL5XJbXb/99tujvLx8zw5DnXDWWWfF/Pnz47333ovS0tI49NBD48ILL4zvfve7xR4N2I2cj1II56QUwvkohXI+WnPEQAAAAABIhM8MBAAAAIBEiIEAAAAAkAgxEAAAAAASIQYCAAAAQCLEQAAAAABIhBgIAAAAAIkQAwEAAAAgEWIgAAAAACRCDAQAAACARIiBAAAAAJAIMRAAAAAAEvH/AIQkWF9ePsqIAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "vmp_agents = agents = Agent(\n", " A=A,\n", @@ -352,7 +274,8 @@ " action_selection=\"deterministic\",\n", " sampling_mode=\"full\",\n", " inference_algo=\"vmp\",\n", - " num_iter=16\n", + " num_iter=16,\n", + " apply_batch=False\n", ")\n", "\n", "vmp_obs = [jnp.moveaxis(obs[0], 0, 1)]\n", diff --git a/examples/learning/learning_gridworld.ipynb b/examples/learning/learning_gridworld.ipynb index 2c2a964d..ab3d2ec3 100644 --- a/examples/learning/learning_gridworld.ipynb +++ b/examples/learning/learning_gridworld.ipynb @@ -20,7 +20,7 @@ "import numpy as np\n", "\n", "from pymdp.envs import GridWorldEnv\n", - "from pymdp.jax.task import PyMDPEnv\n", + "from pymdp.jax.task import Env\n", "from pymdp.jax.agent import Agent as AIFAgent\n", "\n", "import matplotlib.pyplot as plt\n", @@ -38,17 +38,9 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "2024-07-03 19:51:39.344953: W external/xla/xla/service/gpu/nvptx_compiler.cc:760] The NVIDIA driver's CUDA version is 12.4 which is older than the ptxas CUDA version (12.5.40). Because the driver is older than the ptxas version, XLA is disabling parallel compilation, which may slow down compilation. You should update your NVIDIA driver or use the NVIDIA-provided CUDA forward compatibility packages.\n" - ] - } - ], + "outputs": [], "source": [ "num_rows, num_columns = 7, 7\n", "num_states = [num_rows * num_columns] # number of states equals the number of grid locations\n", @@ -94,7 +86,7 @@ " 'B': [[0]]\n", "}\n", "\n", - "grid_world = PyMDPEnv(params, dependencies=dependencies)" + "grid_world = Env(params, dependencies=dependencies)" ] }, { @@ -123,7 +115,7 @@ " ----------\n", " agent: ``Agent``\n", " Agent to interact with the environment\n", - " env: ``PyMDPEnv`\n", + " env: ``Env`\n", " Environment to interact with\n", " num_timesteps: ``int``\n", " Number of timesteps to rollout for\n", @@ -136,7 +128,7 @@ " Carry dictionary from the last timestep\n", " info: ``dict``\n", " Dictionary containing information about the rollout, i.e. executed actions, observations, beliefs, etc.\n", - " env: ``PyMDPEnv``\n", + " env: ``Env``\n", " Environment state after the rollout\n", " \"\"\"\n", " # get the batch_size of the agent\n", @@ -295,20 +287,9 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Sby+DXx3qp2iqOheDqIAV4vhVHz6Ki5Vy+TZsY2UR8aIXHeX8a2kLDEXQgghhBDiYPL973+fOXPmYFkWixYt4sEHH3zZtjfddBOnnXYa+XyefD7PkiVLdmkfRRFXXnklvb29xONxlixZwrp161raFAoFPvzhD5PJZMjlclxwwQXUaq2rc5944glOO+00LMuiv7+fa665Zpd4br/9dhYsWIBlWSxcuJC77757r8eydu1azjjjDLq7u7Esi8MOO4wrrrgCz9u3E5H6Ph39T9iTZO/ee+/d5dj73/9+3v/+9++DiPYvbUmTWYfNZ/3wKPVEmkRzmMi2MJ0Srt411S4Z9VKNxtEjHb+pkHeSxBybqh7x6PYB3jajF/Ml77wbsdYl5jtmvoUQQgghhBBAGEJz11Wjr6t4G6h7Nk962223sWLFCm644QYWLVrEddddx9KlS1m7di1dXV27tL/33nv54Ac/yKmnnoplWXzzm9/kne98J08//TQzZswA4JprruF73/seP/3pT5k7dy5f+tKXWLp0Kc888wyWZQHw4Q9/mKGhIe655x48z+NjH/sYn/rUp7jlllsAqFQqvPOd72TJkiXccMMNPPnkk3z84x8nl8vxqU99CoA//vGPfPCDH+Tqq6/mPe95D7fccgvLli3jkUcemZpc3RuxGIbBeeedxwknnEAul+Pxxx/nk5/8JGEY8o1vfOPP+Id6ZUp0iE1zVioVstks5XJ5vy+qFoYRj20b51d33U5muETf0Ebc8SyBMpNi57Etbcf1Z0joNooWkci5JGZabO1I0V30eeeCRcw+6QSUl/wHWy3YNKsuVsog0x5/PW9NCCGEEEKI/Y5t22zatIm5c+diBTX41rzpDehzGyDZsUdNFy1axMknn8z1118PTG7J3N/fz0UXXcTll1/+J/sHQUA+n+f666/nvPPOI4oi+vr6+MxnPsNnP/tZAMrlMt3d3dx888184AMf4Nlnn+Xoo4/moYce4qSTTgJg5cqVvPvd72bbtm309fXxwx/+kL/7u79jeHgY0zQBuPzyy7njjjt47rnnADj33HOp1+vceeedU/GccsopHHfccdxwww17LZbdWbFiBQ899BD/+7//u9vzLd+JF5L7HfY0t9wvqpeL3VNVha50klxfL/VkDFdNopgVTHsMzW7dDizp9xJGHp6q4FUiMnUNU9GpKzbP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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(1, 1, figsize=(10, 5), sharex=True, sharey=True)\n", "for i in range(len(agents)):\n", @@ -323,20 +304,9 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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5557Tt/85jdb9w0CaLP86JtE4wDkBhoHwCovfeNzKoCgsXYNxz1UAHzhZeY2HA4rHA479rndrvrZZ5+publZ3bt3d+zv3r273n33XddzX3bZZfrss890zjnnKBqN6l//+pd+/OMf62c/+1nS4wOAf+dH3yQaByA30DgAVnn918V8TgUQJNau4YKxXDiAwNkfzU96q6ysVHFxsWOrrKxMyzjWrFmj22+/Xffdd582btyo//3f/9Wzzz7LI+sApCxX+ibROADpR+MAWOWlb3xOBRA0udI3KT2N406LgItfePv+7S8lHHN1r3MyNRwgJhJN/naziooKlZeXO/a5ze527dpV+fn52rlzp2P/zp071aNHD9dzz507V5dffrl++MMfSpJOP/10NTY26kc/+pF+/vOfKy+PuVvJfdHtSW//w/E6vjdAW+VH36S21bj4hbddF4mNW0gWQGbQOHvcerpnZZ+EfR0mbM3EcICs8dI3ic+puWjDsMRHz9+y9dWEffO+cmbCPsA6a9dwVBCALyLKS3orKipSp06dHJtbLAsLCzV8+HCtXr265X0iEa1evVqjR492HcfevXsTYpifny9JikajafyOAbQVfvRNonEAcgONA2CVl77xORVA0Fi7huNOCwC+aPb4r1iSVV5ermnTpmnEiBE666yztHDhQjU2Nmr69OmSpNLSUp100kmx29omTpyoBQsW6Ktf/apGjhypzZs3a+7cuZo4cWIsmADghV99k2gcgOyjcQCsom8ALLPWOCYtAPjC6623yZoyZYo+/fRT3XTTTaqvr9ewYcO0cuXK2IJA27dvd8zm3njjjQqFQrrxxhv18ccf6/jjj9fEiRN12223+TI+APb51TeJxgHIPhoHwCr6BsAya40LRXPwvrML8qckd2A0cuRjQkk8AcvlPHlF7RL2RcL7khnVkbmNKZnvJUXxz4m+s9/pGX3/pGT4v0lOiP+e3b7fLP93WRV5POWvvXbj1KSP/c0Zv0/5fYLItXFJ/L6GXGajo83N6RhSUq55f3PCvupTT0080Prf3XRJpgF+vZff75fMGHLgz0mqjaNvh3fhUd9zvI5GXC41k/j9j19XR5JWDD7e83nSir9LwWX99y7u3Kual6V8Khp3aEl/To2XzHV+sn8e0vXnyOXvxJ4/Ote56HDRltTObV22O5wLPYuX4TFl4hpOonGu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/PnzFQqFNGvWrNi++vp6XX755erRo4eOOeYYnXHGGXryySdbO04AQRONJr8BQJDQNwCW0TgAVnnpG40DEDTG+pbynRavvvqq7r//fg0dOtSxv7S0VF988YWefvppde3aVUuWLNF3v/tdvfbaa/rqV7/a6gEDCIaosRleADiIvgGwjMYBsIq+AbDMWuNSutNiz549mjp1qh544AEdd9xxjl9bt26drr32Wp111ln6yle+ohtvvFHHHnusamoSb4EBYJixGV4AiKFvACyjcQCs4k4LAJYZ61tKkxZlZWW6+OKLNW7cuIRfGzNmjJYtW6bPP/9ckUhES5cu1b59+zR27NjWjhVAkDQ3J795VFVVpd69e6tdu3YaOXKkXnnllcMe//jjj2vgwIFq166dTj/9dD333HOpflcActCdfQcnbKV1OxzbpLf/kbClzMe+STQOyHUrBnVxbNe8vzlh81P5KaMTtj1/7OPYWoXGAcgh1f37JWwp89I3PqcCSLN5fYYnbPGfW0vrdqT+Bsau4TxPWixdulQbN25UZWWl668/9thj2r9/v7p06aKioiJdffXVWr58ufr1a8X/sAAInGgkmvTmxbJly1ReXq558+Zp48aNKikp0fjx47Vr1y7X49etW6fvf//7uvLKK/X6669r8uTJmjx5st566610fJsA2iC/+ibROADZR+MAWOWlb3xOBRA01q7hQtFo8veE7NixQyNGjNCqVatia1mMHTtWw4YN08KFCyVJ1157rV555RXdfvvt6tq1q5566inddddd+stf/qLTTz894ZzhcFjhcNix79vH/kB5ofwjDyiaxLO6QknMy7icJ6+oXcK+SHjfkc+VDLcxJfO9pEu2399NLo7Jb/Hfs9v3m+X/Lqsij6f8tRce9b2kj/2//UuTPnbkyJE688wzde+990qSIpGITj75ZF177bWaM2dOwvFTpkxRY2Ojnnnmmdi+UaNGadiwYVq0aFHS75uqpBuXxO9rKD+xi9EUZ8jTpi3+3U2XZBrg13v5/X7JjMHn94//FyoNze0Tjpkx8IWUzu1X3yQbjbuk85WOxrleFKf6+5/hP0dHfP9cGAPNTY6Pv3dud1a4/ktgH3/v9qzs63i9/sL5KZ+Lxh3Qqs+p8ZK5zk/2z0O6/hyl+DkZyn6Hc+F/i+JleEypfk710jeJz6muUv05XLq+Ltlz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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -436,20 +406,9 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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q5dfeumlfOQjH2HSpEmUSiVuv/12/vmf/5n777+fD3/4w5x//vncd9993HrrraRSKS688EIAHnnkEWDsX+CsWbPo7e3lqquuYmBggDPPPJMvfOELfO973wPG/gUedthhLFq0iM9//vM88MADfOlLX2Lp0qXMnz8fGPsXuHDhQv71X/+Vo48+muuuu4677rqL559/vvGu9+7msif25erlW2VzeX5/+7342VEOaR0mvfEVhh8cpRppZ83Bnwbt1arg/dH/YkJ1ACIpgkM+RseRcMBkk/KadVTXP4PqBPi9B2B3HEBLezutkVZe/svTGIMhB044kAmTatRwGFR6sQYHmdgSQ+npo1gGRVVon5BAURUAhop1BvtH0Ac2MbkzRXT6oSiKstP7yFUcXsnVUBSY1pXA0rWdxgohhBBCCAHNlaot02paCBoPkbjR+P/Du7O7jkyvdcEFF/DXv/61aWHx7//+73n00Uf54x//uEdj7kmXp7er49S2HnroIU488URyudx2dble6ze/+Q2nnHIKtm1jGNt3QHorqpfru5zBXjY0NMRZZ53F5s2bSafTHH744Y2EG+Daa69FVVVOPfVUbNtm/vz53HTTTY3rNU3j3nvv5fzzz2fu3LnE43EWLlzIt7/97UbM1KlTWbp0KRdffDHXX389EydO5Mc//nEj4QY47bTTGB4e5vLLL2dgYIBZs2axbNmypuJqu5vL/qIlkybemaFUKpJzY3S06xiREN23SZY2Usoc0IiN+ZOo6ZuI+D5a/iVGBw7gwMkmZnsr9qYEbj1H0q1SKuUoJWNMa5vIxvYk9uAwxVyeVFuatvaQbL1KPZakXK+TLmXRjHZ8L8CueUTiY7/4HUmLXCaFMzTAcKHKxGIRLZ3e+X3ETXJVh4rt05+vM7U9vtefnRBCCCGE2H/UKy4//eofx3UOn7/6WKJJc7dxWzsyXXrppY1jr+3I9Frvf//7+cUvfsFjjz3G0UcfzUsvvcR9993HmWeeucdj7q7L0zHHHLPTjlPnn38+zz77LO9973t32nHqoosuesP3tyey2Sy//OUvef/737/DhPutMq5J909+8pNdno9EItx4443ceOONO42ZPHky99133y7HOeGEE3jqqad2GXPBBRdwwQUXvKm57A8URaFnUi/FTSNU3Rq+rmJ1WTgbqqRK65uS7rQzgcGIzkTbI8hv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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(1, 1, figsize=(10, 5), sharex=True, sharey=True)\n", "for i in range(len(agents)):\n", @@ -464,20 +423,9 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABi0AAAMWCAYAAACN+sUqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADz3ElEQVR4nOzde3hU5b33/88kkAEVokABMUAQLAgUUBAEraKiiFwoaisqlYOWWg0K5Fc3pIpoPQSrRaxysFQOtqUgUiwViw+i4IOASjCKewtWBAJqQLY1CMhAM+v3Bw8TZ2aBM8msOXzzfu1rXdeelZU1d2z79g43s26f4ziOAAAAAAAAAAAAUiwr1QMAAAAAAAAAAACQWLQAAAAAAAAAAABpgkULAAAAAAAAAACQFli0AAAAAAAAAAAAaYFFCwAAAAAAAAAAkBZYtAAAAAAAAAAAAGmBRQsAAAAAAAAAAJAWWLQAAAAAAAAAAABpgUULAAAAAAAAAACQFli0MOiBBx6Qz+fT3r17Uz0UrVq1Sj6fTy+++GKqhwLAAPoGwDIaB8AyGgfAKvoGJB6LFvhe06dP19y5c1M9jON65513dOedd6p79+6qW7eufD5fqocEIEOkc9+CwaDmzp2rq6++Wi1bttTJJ5+szp076+GHH9ahQ4dSPTwAGSCdGydJs2bN0sUXX6xmzZrJ7/erTZs2GjlypLZv357qoQHIAOneuO86cuSIOnbsKJ/PpyeeeCLVwwGQ5tK9byNGjJDP54s6OnTokOqhwZA6qR4A0t/06dPVpEkTjRgxItVDcfXKK6/oj3/8o7p06aIzzzxTH3/8caqHBCBDpHPfDh48qJEjR+r888/XL3/5SzVt2lTr1q3TpEmTtHLlSr3++uss0gI4oXRunCS99957atOmja6++mqddtpp2rZtm2bNmqWXX35Z77//vlq0aJHqIQJIY+neuO96+umnVVZWluphAMgQmdA3v9+vP/7xj2HncnNzUzQaWMSiBTLeHXfcofHjx6t+/foaPXo0ixYATMjJydFbb72lPn36hM6NGjVK+fn5oYWLfv36pXCEAFAz06dPjzo3ePBg9ejRQ88//7wmTJiQglEBQGLt2bNHv/nNbzR+/Hjdf//9qR4OACREnTp19LOf/SzVw4BhPB7KsL179+qGG25Qw4YN1bhxY40ZMybskSJz5szRpZdeqqZNm8rv96tjx46aMWNG2D3y8/P13//931q9enXo4159+/YNff3rr7/WuHHjlJ+fL7/fr7y8PA0bNizqOX7BYFCPPPKI8vLyVK9ePV122WX65JNPEvJzNmvWTPXr10/IvQBkhtrQt5ycnLAFi2OuvfZaSdJHH31U4/cAkJ5qQ+OOJz8/PzQ+ADbVtsZNmDBB7du35w/3gFqgtvWtsrJS+/btS+g9gWP4pIVhN9xwg/Lz81VcXKz169fr97//vf7973/r+eeflyTNmDFDnTp10tVXX606deroH//4h+68804Fg0EVFBRIkqZOnaq77rpLp5xyiu69915JRxcJJGn//v368Y9/rI8++ki33nqrzj33XO3du1dLly7Vrl271KRJk9BYJk+erKysLP3qV79SRUWFfvvb32ro0KF6++23Q9ccPHhQBw8e/N6fKzs7W6eddlrC/jkByDy1uW/l5eWSFDYGALbUtsb97//+ryorK1VWVqbf/OY3kqTLLrusmv/0AKS72tS4d955R/PmzdOaNWt4rCdQC9Smvh08eFANGzbUwYMHddppp+mmm27SY489plNOOaVm/xCBYxyYM2nSJEeSc/XVV4edv/POOx1Jzvvvv+84juMcPHgw6nv79+/vnHnmmWHnOnXq5Fx88cVR195///2OJOdvf/tb1NeCwaDjOI7zxhtvOJKcs88+2wkEAqGvP/XUU44kZ9OmTVHj/r6jdevWx/3ZCwoKHP5rDdhVm/t2TL9+/ZyGDRs6//73v7/3WgCZpbY2zu/3h65p3Lix8/vf/979HxCAjFbbGhcMBp2ePXs6N910k+M4jrNt2zZHkvP444+f4J8SgExU2/o2YcIEZ/z48c7ChQudv/71r87w4cMdSc4FF1zgHDly5MT/sIAY8UkLw46t0h5z1113afr06XrllVfUpUuXsEcqVVRU6MiRI7r44ov16quvqqKi4ns30Fm8eLG6du0aelTJd0X+LZKRI0cqJycn9PrHP/6xJOnTTz9V586dJUnDhg3ThRde+L0/F4+CAlBb+/boo4/qtdde0/Tp03Xqqad+7/0AZKba1rh//vOfOnTokD766CP9+c9/1oEDB773XgAyV21p3Ny5c7Vp0ya9+OKL3/u9AGyoLX0rLi4Oe33jjTfqhz/8oe699169+OKLuvHGG7/3nsD3YdHCsLPOOivsddu2bZWVlaXt27dLkt566y1NmjRJ69ati/o4WCyx3Lp1q66//vqYxtKqVauw18c+Vvbvf/87dO7MM8/UmWeeGdP9ANRutbFvCxcu1H333afbbrtNd9xxR43uBSC91bbGXXLJJZKkAQMG6JprrlHnzp11yimnaPTo0dW+J4D0VRsat2/fPhUVFemee+5Ry5Yt4/peAJmrNvTteMaNG6eJEyfqtddeY9ECCcGiRS3y3VXXrVu36rLLLlOHDh00ZcoUtWzZUjk5OXrllVf05JNPKhgMJvS9s7OzXc87jhP6//fv36/9+/fHdK8f/OAHCRsbgMxnvW8rVqzQsGHDNHDgQM2cObP6gwWQkaw37rvatm2rc845R3/5y19YtABqCYuNe+KJJ3T48GENGTIk9IeVu3btknT0Dwy3b9+uFi1ahP0taAD2WOzb8dSvX1+NGzfWV199Fd9AgeNg0cKwf/3rX2rTpk3o9SeffKJgMKj8/Hz94x//UCAQ0NKlS8NWX994442o+xxvw7C2bdvqww8/TNh4n3jiCT344IPfe13r1q1DEz8AtVNt6tvbb7+ta6+9Vj169NALL7ygOnX4VzdgXW1qnJtvv/1WgUAgASMDkI5qQ+PKysr073//W506dYq67tFHH9Wjjz6q9957T926dUvYOAGkXm3o2/F888032rt3L3/JGAnDn3wYNm3aNF1xxRWh108//bSkox+9f/PNNyWFr7BWVFRozpw5Ufc5+eST9fXXX0edv/766/Wb3/xGS5YsiXqenuM4x43s8bCnBYBY1Za+ffTRRxo4cKDy8/P18ssv0z+glqgNjfvPf/6jb775JvSogmPeeecdbdq0STfffHNcYwCQOWpD4+6++24NHjw47Ot79uzR7bffrhEjRuiaa64J+4NNADbUhr4dOnRIR44cUYMGDcKueeihh+Q4jq688sq4xgAcD4sWhm3btk1XX321rrzySq1bt05//vOfdfPNN6tr166qV6+ecnJyNGjQIN1+++3av3+/Zs2apaZNm+qLL74Iu0/37t01Y8YMPfzww2rXrp2aNm2qSy+9VPfcc49efPFF/fSnP9Wtt96q7t2766uvvtLSpUs1c+ZMde3aNa7xVvdZejt27NCf/vQnSdKGDRskSQ8//LCko6vBt9xyS9z3BJDeakPfvvnmG/Xv31///ve/dc8992jZsmVhX2/b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HA3IfF6u8E6bNk35+fmqV6+eevXqpXfeeeeE10+dOlXt27dX/fr11bJlS40bN06HDh2q7o8WFxoH2OP132ChcQBSiTncUfQNsIc5XBUaB9hjbQ6X8D0tnn76aU2cOFF33nmn9uzZoxYtWuj222/X/fffn+i3SrrIjbdn71wTdY3bBrdAbeTVyu3ChQtVWFiomTNnqlevXpo6dar69++vLVu2qGnTplHXz58/XxMmTNDs2bPVp08fffzxxxoxYoR8Pp+mTJniyRgzkduGjbPKwhvntrktUBt5+TdTaJw3Ihv31I61UdeMad0nWcMB0hpzuMziNoeL3JybjbmBo5jDZZ7Ijbef2fFW1DWjW9M4QLI3h0v4T9OgQQNNnTpVO3bs0LfffqutW7fq4YcfVk5OTqLfCkAaO+Jkx3zEY8qUKRo1apRGjhypjh07aubMmTrppJM0e/Zs1+vXrl2rCy64QDfffLPy8/N1xRVX6KabbvreVWEAOB6v+ibROACpxxwOgFXM4QBYZm0OlxkPsQKQcSqdrJiPQCCgffv2hR2BQCDqnocPH1ZJSYn69esXOpeVlaV+/fpp3bp1ruPo06ePSkpKQnH89NNP9corr+iqq67y5gcHYJ4XfZNoHID0wBwOgFXM4QBYZm0Ox6IFAE8EHV/MR3FxsXJzc8OO4uLiqHvu3btXlZWVatasWdj5Zs2aqby83HUcN998s37zm9/owgsvVN26ddW2bVv17dtXv/71rz35uQHY50XfJBoHID0whwNgFXM4AJZZm8MlfE+L2sRt/4opO8JXmQpb907WcIC0UhnHmuj9RUUqLCwMO+f3+xMyjlWrVunRRx/V9OnT1atXL33yyScaM2aMHnroIU2cODEh72FV5B4WC3ZFr6LfmEfjUPukS98kGlddbvtXPLb97ahz4/N7JWM4QFpJl8bRt+qL3MPi2bLovRgj92sEaoN06ZtE46rLbf8K9psFjkqXxiWqbyxaAPBE0PHFfK3f748pjk2aNFF2drZ2794ddn737t1q3ry56/dMnDhRt9xyi37+859Lkn70ox/pwIED+sUvfqF7771XWVl84AxAfLzom0TjAKQH5nAArGIOB8Aya3M4KgjAE0FlxXzEKicnR927d9fKlSur3icY1MqVK9W7t/vf+D948GBUELOzj2465DhONX4yALWdF32TaByA9MAc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uugip3Pnzk63bt2cDz74oFnXHwqFnBUrVjgzZ850rrvuOue6665zZs6c6Tz11FNOKBRq1thfFA6HnVdffdV57LHHnN///vfO4cOHkxpnz549zqWXXuoEAgHn7LPPdoYNG+YMGzbMOfvss51AIOBceumlzp49e5K+zttuu835/PPPHcdxnIMHDzoTJkxw0tLSnEAg4KSlpTmXX3555PVkvfHGG05paakze/ZsZ/bs2U5paanzxhtvNGvMWD744APnj3/8o7Nt27ZmjePmz7wlft5Inpt9cxz3G+e3vjmO//+80bcG9M37mMPFh8Y1oHENaJy3MYeLD31r0FJ9c5zUNM7vP280D3O4+NC4BszhGtA493lm0SIrK8v561//2uTrf/3rX52srKykxg4EApH/I5w0aZKTl5fn7Nu3z3Ecx/n888+d/Px85/rrr09qbMdxnL/97W/OV77yFScrK8u57LLLnGuvvda59tprncsuu8zJyspy+vTp4/ztb39LauwxY8ZErvWf//ynM3z4cCcQCDinnXaak5aW5vTr18/Zu3dvwuNOmDDBGTFihLN9+/ZGr23fvt3Jy8tzvv3tbyd1zY7jOGlpaZGfeVFRkXPmmWc6r776qlNXV+e8/vrrzjnnnOPMnj07qbH9Gh03f+Zu/rzRfG72zXHcbZwf++Y4/v3zRt8ao2/exxwuNhrXGI1rjMZ5G3O42OhbY379R4F+/XkjNZjDxUbjGmMO1xiNc59nFi169erlLFu2rMnXly1b5px99tlJjf3FWH7lK19x/vjHP0a9/pe//MU566yzkhrbcRwnPz/fufrqq53a2tpGr9XW1jpXX321c+WVVyY19hev/bbbbnP69+8fWY3evXu3M3ToUOcHP/hBwuO2b9/e2bp1a5Ovb9myxWnfvn1S1+w40dc9cOBAZ/ny5VGvP/fcc85Xv/rVpMb2a3Tc/Jm7+fNG87nZN8dxt3F+7Jvj+PfPG31rjL55H3O42GhcYzSuMRrnbczhYqNvjfn1HwX69eeN1GAOFxuNa4w5XGM0zn2eWbRYuHChEwwGnR/+8IfOc88952zcuNHZuHGj89xzzzk//OEPnZNOOskpKytLauxAIBBZBe3Ro0ej24t27drVrH8hc9JJJ53wlqW3337bOemkk5Ia+4t/CPr27es899xzUa+/8sorTu/evRMet0uXLs7a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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -560,20 +508,9 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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5Su4rrv/G/Q6kNAtgJkxH90LkljRXioVHXM6Q7cfRFV1DN0h7U1R62unaWEPK7p6SNptFPMKOycmGbVrhKZKDJSqxOMBPN9jcHyEPfk92N7M9Pv7Dd71ucHa6O5GMQ1828Z+2ayJQgghhBBCiAMzTZOVK1eyfv362W2e57F+/XpWr159wONuvPFG/u7v/o777rtvzlhogIGBATo6OubUWSwWefTRR2frXL16Nfl8no0bN86WefDBB/E8j1WrVs2W+fWvfz1nWa4HHniApUuXknpxWOnq1avnnGdvmb3neb3asj+e52HbNt5hjp9/LWRMt5gVTmk4zQb1aopKZYpIZhA1tYpAPMNgpsSO/G6a+5bSH19OXoFtu12G8tMklSroRbp9n8WdIYYiXUxXskznCtS8Gp2RThKBxGzwnh3jPVkj0RbCDM58DBVNw+ztpbFrF26pjDM1hd7aOs93RQghhBBCvCWFmmbGVM93Gw7TunXruOyyyzj99NM588wzuemmm6hUKnzkIx8B4NJLL6W7u5sbbrgBgH/8x3/kuuuu44477qC/v3923HM0GiUajaIoCldddRV///d/z5IlSxgYGODLX/4yXV1dXHTRRQAsX76cd73rXXz84x/nlltuwbZtrrzySt7//vfPzhb+wQ9+kL/927/l8ssv55prrmHTpk185zvf4dvf/vZs2z/zmc9w3nnn8a1vfYsLL7yQO++8kyeeeGJ2WbHXqy233347hmFw4oknEggEeOKJJ/jiF7/IJZdcgmEYr/33dAgSugUws2TYrsxuyvUijVgSs1JAzxQIJodYsvwEirVtZMo1nhrfzrn9yzl19YlMeh7ZMZ0txSyRVIDRkUG6HJeOriCBSBeZagY77DBSHqHYKNIZ7URX9YMGbzUUwujqwh4dw56YRAmF0aKReb47QgghhBDiLUdVD2sSs2PFJZdcwtTUFNdddx3pdJpTTjmF++67b3bysaGhIdSXLc/7/e9/H8uyeN/73jennuuvv56vfOUrAHz+85+nUqnwiU98gnw+zznnnMN99903Z9z37bffzpVXXskFF1yAqqpcfPHFfPe7353dn0gkuP/++7niiitYuXIlLS0tXHfddXPWzz777LO54447uPbaa/nSl77EkiVL+OlPf8oJJ5wwW+b1aIuu6/zjP/4j27Ztw/d9FixYwJVXXsnVV1/9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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(1, 1, figsize=(10, 5), sharex=True, sharey=True)\n", "for i in range(len(agents)):\n", @@ -588,20 +525,9 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABi0AAAMWCAYAAACN+sUqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXxU5d3///dMQsIiBAEBETBsshZQEARtRUWp9YtL7S1VK4jWWgVF8quVVBG1arRaRCuLpUXtYsGlWCveeCOK3gqIbAoti2wGl4CohD2QmfP7g5ukZ66DzEzOmeXK6+ljHg/PxTXnXJkk71yTK+f6hBzHcQQAAAAAAAAAAJBm4XQPAAAAAAAAAAAAQGLRAgAAAAAAAAAAZAgWLQAAAAAAAAAAQEZg0QIAAAAAAAAAAGQEFi0AAAAAAAAAAEBGYNECAAAAAAAAAABkBBYtAAAAAAAAAABARmDRAgAAAAAAAAAAZAQWLQAAAAAAAAAAQEZg0cJC99xzj0KhkHbs2JHuoWjBggUKhUJ68cUX0z0UABYg3wDYjIwDYDMyDoCtyDfAfyxa4JimTJmiZ555Jt3DOKolS5bo5ptvVp8+fVSnTh2FQqF0DwlAlsjkfItGo3rmmWd08cUXq02bNmrQoIF69Oih+++/XwcOHEj38ABkgUzOOEmaPn26zj77bLVo0UL5+flq166dRo4cqS1btqR7aACyQKZn3H86dOiQunXrplAopEcffTTdwwGQ4TI936699lqFQiHj0aVLl3QPDRbJTfcAkPmmTJmiZs2a6dprr033UDy99tpr+sMf/qCePXuqffv2Wr9+fbqHBCBLZHK+7du3TyNHjtQZZ5yhn//852revLkWLVqkCRMmaP78+XrzzTdZpAXwrTI54yRpxYoVateunS6++GIdf/zx2rx5s6ZPn65XX31VH374oVq1apXuIQLIYJmecf/pd7/7nUpLS9M9DABZIhvyLT8/X3/4wx9cbQUFBWkaDWzEogWy3k033aQ77rhD9erV0+jRo1m0AGCFvLw8vffeexo4cGBV2w033KDCwsKqhYvBgwencYQAUDNTpkwx2i699FL17dtXf/rTnzRu3Lg0jAoA/LV9+3bdd999uuOOO3T33XenezgA4Ivc3Fz95Cc/SfcwYDG2h7LYjh07dMUVV6hRo0Zq2rSpxowZ49pS5Omnn9a5556r5s2bKz8/X926ddPUqVNd5ygsLNS//vUvvf3221W3ew0aNKjq33fu3KmxY8eqsLBQ+fn5at26tYYPH27s4xeNRvXAAw+odevWqlu3rs477zxt2LDBl4+zRYsWqlevni/nApAdakO+5eXluRYsjrjsssskSWvWrKnxNQBkptqQcUdTWFhYNT4AdqptGTdu3Dh17tyZX+4BtUBty7dIJKJdu3b5ek7gCO60sNgVV1yhwsJClZSUaPHixXriiSf0zTff6E9/+pMkaerUqerevbsuvvhi5ebm6p///KduvvlmRaNRjRo1SpI0adIk3XLLLTruuON05513Sjq8SCBJe/bs0Xe/+12tWbNG1113nU477TTt2LFDr7zyij799FM1a9asaiwPPfSQwuGwfvGLX6i8vFy/+c1vdPXVV+v999+v6rNv3z7t27fvmB9XTk6Ojj/+eN9eJwDZpzbnW1lZmSS5xgDALrUt47766itFIhGVlpbqvvvukySdd955Sb56ADJdbcq4JUuW6Nlnn9W7777Ltp5ALVCb8m3fvn1q1KiR9u3bp+OPP15XXnmlHn74YR133HE1exGBIxxYZ8KECY4k5+KLL3a133zzzY4k58MPP3Qcx3H27dtnPHfIkCFO+/btXW3du3d3zj77bKPv3Xff7Uhy/v73vxv/Fo1GHcdxnLfeesuR5HTt2tWpqKio+vfHH3/ckeSsWrXKGPexHieffPJRP/ZRo0Y5fFkD9qrN+XbE4MGDnUaNGjnffPPNMfsCyC61NePy8/Or+jRt2tR54oknvF8gAFmttmVcNBp1+vXr51x55ZWO4zjO5s2bHUnOI4888i2vEoBsVNvybdy4cc4dd9zhzJo1y/nb3/7mjBgxwpHknHnmmc6hQ4e+/cUC4sSdFhY7skp7xC233KIpU6botddeU8+ePV1bKpWXl+vQoUM6++yz9frrr6u8vPyYBXReeukl9erVq2qrkv8U+1ckI0eOVF5eXtXxd7/7XUnSpk2b1KNHD0nS8OHDddZZZx3z42IrKAC1Nd8efPBBvfHGG5oyZYoaN258zPMByE61LeP++7//WwcOHNCaNWv0l7/8RXv37j3muQBkr9qScc8884xWrVqlF1988ZjPBWCH2pJvJSUlruMf//jHOuWUU3TnnXfqxRdf1I9//ONjnhM4FhYtLNapUyfXcYcOHRQOh7VlyxZJ0nvvvacJEyZo0aJFxu1g8YTlxo0bdfnll8c1lrZt27qOj9xW9s0331S1tW/fXu3bt4/rfABqt9qYb7NmzdJdd92l66+/XjfddFONzgUgs9W2jDvnnHMkSRdeeKEuueQS9ejRQ8cdd5xGjx6d9DkBZK7akHG7du1ScXGxbr/9drVp0yah5wLIXrUh345m7NixGj9+vN544w0WLeALFi1qkf9cdd24caPOO+88denSRRMnTlSbNm2Ul5en1157TY899pii0aiv187JyfFsdxyn6v/37NmjPXv2xHWuE044wbexAch+tufbvHnzNHz4cF100UWaNm1a8oMFkJVsz7j/1KFDB5166qn661//yqIFUEvYmHGPPvqoDh48qGHDhlX9svLTTz+VdPgXhlu2bFGrVq1cfwUNwD425tvR1KtXT02bNtXXX3+d2ECBo2DRwmIff/yx2rVrV3W8YcMGRaNRFRYW6p///KcqKir0yiuvuFZf33rrLeM8RysY1qFDB61evdq38T766KO69957j9nv5JNPrpr4AaidalO+vf/++7rsssvUt29fPf/888rN5Uc3YLvalHFe9u/fr4qKCh9GBiAT1YaMKy0t1TfffKPu3bsb/R588EE9+OCDWrFihXr37u3bOAGkX23It6PZvXu3duzYwR8Zwzf85sNikydP1gUXXFB1/Lvf/U7S4Vvv33nnHUnuFdby8nI9/fTTxnkaNGignTt3Gu2XX3657rvvPs2ePdvYT89xnKOG7NFQ0wJAvGpLvq1Zs0YXXXSRCgsL9eqrr5J/QC1RGzKusrJSu3fvrtqq4IglS5Zo1apVuuqqqxIaA4DsURsy7tZbb9Wll17q+vft27frxhtv1LXXXqtLLrnE9YtNAHaoDfl24MABHTp0SA0bNnT1+fWvfy3HcfT9738/oTEAR8OihcU2b96siy++WN///ve1aNEi/eUvf9FVV12lXr16qW7dusrLy9PQoUN14403as+ePZo+fbqaN2+uL774wnWePn36aOrUqbr//vvVsWNHNW/eXOeee65uv/12vfjii/qv//ovXXfdderTp4++/vprvfLKK5o2bZp69eqV0HiT3Uvvk08+0Z///GdJ0tKlSyVJ999/v6TDq8HXXHNNwucEkNlqQ77t3r1bQ4YM0TfffKPbb79dc+bMcf17hw4dNGDAgITOCSA71IaM27Nnj9q0aaNhw4ape/fuatCggVatWqWnn35aBQUFGj9+fELnA5A9akPGnXbaaTrttNNcbUf+Srl79+7GggYAO9SGfCsrK9Opp56qK6+8Ul26dJEkvf7663rttdf0/e9/X5dccklC5wOOyoF1JkyY4Ehy/v3vfzs/+tGPnIYNGzrHH3+8M3r0aGf//v1V/V555RWnZ8+eTt26dZ3CwkLn4YcfdmbMmOFIcjZv3lzVr6yszLnooouchg0bOpKcs88+u+rfvvrqK2f06NHOSSed5OTl5TmtW7d2RowY4ezYscNxHMd56623HEnOCy+84Brj5s2bHUnO008/XeOP98g1vB7/OVYA2a825duR8xztMWLEiBqdH0DmqU0ZV1FR4YwZM8bp2bOn06hRI6dOnTrOySef7Fx//fWujwGAPWpTxnk5cu5HHnnE93MDSK/alG/ffPON85Of/MTp2LGjU79+fSc/P9/p3r278+CDDzoHDx6s0bmB/xRynP+4LwkAAAAAAAAAACBNwukeAAAAAAAAAAAAgMSiBQAAAAAAAAAAyBAsWgAAAAAAAAAAgIzAogWArPLOO+9o6NChatWqlUKhkF5++eVjPmfBggU67bTTlJ+fr44dO+qZZ54JfJwAkCjyDYDNyDgANiPjANgqXfkW2KLF5MmTVVhYqLp166p///5asmRJUJcCUIvs3btXvXr10uTJk+Pqv3nzZl100UU655xztHLlSt1222366U9/qtdffz3gkQJAYsg3ADYj4wDYjIwDYKt05VvIcRwnmQF/m1mzZmn48OGaNm2a+vfvr0mTJumFF17QunXr1Lx5c78vB6CWCoVCmj17ti699NKj9rnjjjs0Z84crV69uqrtxz/+sXbu3Km5c+emYJQAkDjyDYDNyDgANiPjANgqlfkWyJ0WEydO1A033KCRI0eqW7dumjZtmurXr68ZM2YEcTkAWa6iokK7du1yPSoqKnw596JFizR48GBX25AhQ7Ro0SJfzg8A34Z8A2AzMg6ArYLMN4mMA5Be2TCHy/VlNP/h4MGDWrZsmYqLi6vawuGwBg8eHPfg2v3ut0ZbxzGLkxtQyGNdxokG9zzAIvOiLyT93GjZKXH3LZl2le69915X24QJE3TPPfckff0jysrK1KJFC1dbixYttGvXLu3fv1/16tWr8TUSdd6gB4228Dsr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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -691,18 +617,7 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABKUAAAHqCAYAAADVi/1VAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOzdeXwV1f3/8dfM3C0JJKxJWMKiWCEKUkFCrAvU1Kjor1T8FtQKImilQIW4ABVBqRXFDSwgFatoCwVtrVVRkEbBWqJQkIpUKCCIFcMiJIEkd5uZ3x+BK5cESDAQDO/n43Efcs985syZm7QMn3vO5xiu67qIiIiIiIiIiIicRGZdD0BERERERERERE4/SkqJiIiIiIiIiMhJp6SUiIiIiIiIiIicdEpKiYiIiIiIiIjISaeklIiIiIiIiIiInHRKSomIiIiIiIiIyEmnpJSIiIiIiIiIiJx0SkqJiIiIiIiIiMhJp6SUiIiIiIiIiIicdEpKiYjUI4ZhcP/999f1MEREREROCD3riNQvSkqJyGlp5syZGIZBVlZWXQ+lSsuXL+f++++nqKiorociIiIi3xFz5szBMIy4V2pqKr179+att96q6+HF0bOOiAB46noAIiJ1Ye7cubRr144VK1awadMmOnToUNdDirN8+XIeeOABbr75Zho1alTt88rLy/F49H/tIiIip7NJkybRvn17XNdlx44dzJkzh6uuuorXX3+dq6++uq6HB+hZR0QqaKaUiJx2tmzZwvLly3niiSdo3rw5c+fOreshfSuO4xAMBgEIBAJ6UBMRETnNXXnllfzsZz/jpptu4q677uIf//gHXq+XP/3pT3U9tOOiZx2R+ktJKRE57cydO5fGjRvTp08frrvuuholpdq1a8fVV1/N0qVL6d69OwkJCXTu3JmlS5cC8Morr9C5c2cCgQDdunXjo48+ijv/448/5uabb+aMM84gEAiQnp7OLbfcwtdffx2Luf/++7n77rsBaN++fWz6/datW4GKWgojRoxg7ty5nHPOOfj9fhYtWhQ7drDOQnl5OR07dqRjx46Ul5fH+t+zZw8tWrTgwgsvxLbtmn58IiIi8h3TqFEjEhISqpXM0bOOiJxMSjGLyGln7ty5XHvttfh8Pq6//nqefvppVq5cyQUXXFCt8zdt2sQNN9zAz3/+c372s5/x2GOPcc011zBr1ix+9atf8Ytf/AKAyZMn89Of/pQNGzZgmhXfASxZsoTPPvuMwYMHk56ezrp163jmmWdYt24dH3zwAYZhcO211/Lf//6XP/3pTzz55JM0a9YMgObNm8fG8M477/DSSy8xYsQImjVrRrt27SqNMyEhgRdeeIEf/OAH3HvvvTzxxBMADB8+nOLiYubMmYNlWd/moxQREZFTUHFxMbt378Z1XXbu3Mlvf/tb9u/fz89+9rNqna9nHRE5aVwRkdPIv/71LxdwlyxZ4rqu6zqO47Zu3dq94447qnV+27ZtXcBdvnx5rG3x4sUu4CYkJLiff/55rP13v/udC7jvvvturK2srKxSn3/6059cwH3vvfdibY8++qgLuFu2bKkUD7imabrr1q2r8tjEiRPj2saNG+eapum+99577ssvv+wC7tSpU6t1vyIiIvLd8fzzz7tApZff73fnzJlTrT70rCMiJ5OW74nIaWXu3LmkpaXRu3dvoGIKeP/+/Zk/f361p3dnZmaSnZ0de39wB78f/vCHtGnTplL7Z599FmtLSEiI/TkYDLJ792569uwJwOrVq6t9H5deeimZmZnVir3//vs555xzGDRoEL/4xS+49NJL+eUvf1nta4mIiMh3y4wZM1iyZAlLlizhj3/8I71792bo0KG88sor1TpfzzoicrIoKSUipw3btpk/fz69e/dmy5YtbNq0iU2bNpGVlcWOHTvIz8+vVj+HPowBpKSkAJCRkVFl+969e2Nte/bs4Y477iAtLY2EhASaN29O+/btgYqp9tV18Jzq8Pl8PPfcc2zZsoV9+/bx/PPPYxhGtc8XETmRtm7dypAhQ2jfvj0JCQmceeaZTJw4kXA4XK3zXdflyiuvxDAMXn311Spjvv76a1q3bo1hGJW2n58xYwadOnUiISGBs88+mxdffDHu+CuvvEL37t1p1KgRSUlJdO3alT/84Q+VrvHpp5/y//7f/yMlJYWkpCQuuOACtm3bFjv+zDPP0KtXL5KTk6scR3UVFRUxfPhwWrRogd/v53vf+x5vvvnmcfUl9VePHj3IyckhJyeHG2+8kYULF5KZmcmIESOq9b8tPeuIyMmimlIictp45513+Oqrr5g/fz7z58+vdHzu3Llcfvnlx+znSLUJjtTuum7szz/96U9Zvnw5d999N127dqVBgwY4jsMVV1yB4zjVvJP4byGrY/HixUDFN5YbN26s0YOeiEht6NWrFzfffDM333xzXPv69etxHIff/e53dOjQgU8++YRbb72V0tJSHnvssWP2O3Xq1GP+43PIkCF06dKFL7/8Mq796aefZty4ccyePZsLLriAFStWcOutt9K4cWOuueYaAJo0acK9995Lx44d8fl8vPHGGwwePJjU1FRyc3MB2Lx5MxdddBFDhgzhgQceIDk5mXXr1hEIBGLXKisr44orruCKK65g3Lhx1fnIKgmHw/zoRz8iNTWVP//5z7Rq1YrPP/+cRo0aHVd/cvowTZPevXszbdo0Nm7cyDnnnHPUeD3riMjJoqSUiJw25s6dS2pqKjNmzKh07JVXXuGvf/0rs2bNqvFDUHXt3buX/Px8HnjgASZMmBBr37hxY6XY2vx27+OPP2bSpEkMHjyYNWvWMHToUNauXRv7dlNEpC4dTNQcdMYZZ7BhwwaefvrpYyal1qxZw+OPP86//vUvWrRoUWXM008/TVFRERMmTOCtt96KO/aHP/yBn//85/Tv3z927ZUrV/LII4/EklK9evWKO+eOO+7ghRde4P33348lpe69916uuuoqpkyZEos788wz484bNWoUQGwHs6p88cUX3Hnnnbz99tuYpsnFF1/MtGnTYgWen3vuOfbs2cPy5cvxer0AVRZ/FqlKNBoFYP/+/SfsGnrWEZGa0vI9ETktlJeX88orr3D11Vdz3XXXVXqNGDGCffv28dprr52wMRz8dvHQbxOh4lv+wyUlJQEc9/KOgyKRCDfffDMtW7Zk2rRpzJkzhx07djB69Ohv1a+IyIlUXFxMkyZNjhpTVlbGDTfcwIwZM0hPT68y5j//+Q+TJk3ixRdfjO0MdqhQKBQ3mwkqZmesWLGCSCRSKd51XfLz89mwYQOXXHIJAI7jsHDhQr73ve+Rm5tLamoqWVlZR1xKeCSRSITc3FwaNmzIP/7xD/75z3/SoEEDrrjiithyq9dee43s7GyGDx9OWloa5557Lg899JC2vJdjikQivP322/h8Pjp16nTCrqNnHRGpKc2UEpHTwmuvvca+ffv4f//v/1V5vGfPnjRv3py5c+fGvjGvbcnJyVxyySVMmTKFSCRCq1atePvtt9myZUul2G7dugEV374PGDAAr9fLNddcE3uAq64HH3yQNWvWkJ+fT8OGDenSpQsTJkxg/PjxXHfddVx11VW1cm8iIrVl06ZN/Pa3vz3mLKnRo0dz4YUX8uMf/7jK46FQiOuvv55HH32UNm3axBViPig3N5dnn32Wvn37cv7557Nq1SqeffZZIpEIu3fvjs2+Ki4uplWrVoRCISzLYubMmfzoRz8CYOfOnezfv5+HH36YBx98kEceeYRFixZx7bXX8u6773LppZdW674XLFiA4zg8++yzsRkkzz//PI0aNWLp0qVcfvnlfPbZZ7zzzjvceOONvPnmm2zatIlf/OIXRCIRJk6cWK3ryOnhrbfeYv369UDF7+i8efPYuHEjY8eOJTk5+YRdV886IlJTSkqJyGlh7ty5BAKB2D8iDmeaJn369GHu3Ll8/fXXNG3a9ISMY968eYwcOZIZM2bgui6XX345b731Fi1btoyLu+CCC/j1r3/NrFmzWLRoEY7jsGXLlho9qK1evZqHHnqIESNGxHYbBBg7dix/+9vfuPXWW1m3bp1qkYjICfHQQw/x0EMPxd6Xl5fzwQcfMGLEiFjbf/7zn7iCyl9++SVXXHEF//d//8ett956xL5fe+013nnnHT766KMjxowbN45OnTrxs5/97Igx9913H4WFhfTs2RPXdUlLS2PQoEFMmTIlbmZVw4YNWbNmDfv37yc/P5+8vDzOOOMMevXqFauR8+Mf/zg2M6Nr164sX76cWbNmVTsp9e9//5tNmzbRsGHDuPZgMMjmzZuBillZqampPPPMM1iWRbdu3fjyyy959NFHlZSSOIcunQsEAnTs2JGnn36an//85yf82nrWEZGaMNzD51aKiIiIiHxLe/bsYc+ePbH3N954I/369ePaa6+NtbVr1w6Pp+I70u3bt9OrVy969uzJnDlzqlxud9CoUaN46qmn4mJs247VYVq6dCldu3Zl7dq1sVlHruviOA6WZXHvvffywAMPxM6NRCLs2LGDFi1a8MwzzzBmzBiKioqOOIahQ4fyxRdfsHjxYsLhMElJSUycOJHx48fHYsaMGcP777/PP//5z7hzly5dSu/evdm7d2/cP5SHDRvG6tWrmTt3bqXrNW/enJSUFC699FK8Xi9///vfY8feeustrrrqKkKhED6f74ifmYiIyKlIM6VEREREpNY1adIkri5UQkICqampdOjQoVLsl19+Se/evenWrRvPP//8URNSUDELYujQoXFtnTt35sknn4wVKP/L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3EA9cPjvxKFO5PPAqaC+35+IiIgcW3WfBzwncUxyApXsL2VfcSk+vLiuq0LnIiJ1aG9ZmG4P/r3Orr9qfA5NG/iPGRcOh1m1ahXjxo2LtZmmSU5ODgUFBVWeU1BQQF5eXlxbbm4ur7766rcas4iIiIicfrR8r57YsXsre/btoqR0P64LbljL90RE5Oh2796NbdukpaXFtaelpVFYWFjlOYWFhTWKFxERERE5Es2UqifsbTuxdkYIGVZFUko1pURERERERETkFKaZUvVEJBomakcJRcIVSaloBJULExGRo2nWrBmWZbFjx4649h07dpB+hLqE6enpNYoXERERETkSzZSqJ8KWQxSbUCSKYzvgsSAaBa+3rocmInLaaZzoY9X4nDq9fnX4fD66detGfn4+ffv2BSoKnefn5zNixIgqz8nOziY/P59Ro0bF2pYsWUJ2dva3HbaIiIiInGZOmZlSDz/8MIZhxD3kBoNBhg8fTtOmTWnQoAH9+vWr9O3stm3b6NOnD4mJiaSmpnL33XcTPazI99KlSzn//PPx+/106NCBOXPmVLr+jBkzaNeuHYFAgKysLFasWBF3vDpjqUuOEQEnghMJ45gViSgt4RMRqRumadC0gb/OXtXdeQ8gLy+P2bNn88ILL/Dpp58ybNgwSktLGTx4MAADBw6MK4R+xx13sGjRIh5//HHWr1/P/fffz7/+9a8jJrFERERERI7klEhKrVy5kt/97nd06dIlrn306NG8/vrrvPzyyyxbtozt27dz7bXXxo7btk2fPn0Ih8MsX76cF154gTlz5jBhwoRYzJYtW+jTpw+9e/dmzZo1jBo1iqFDh7J48eJYzIIFC8jLy2PixImsXr2a8847j9zcXHbu3FntsdS1qKccx4hg2xFcKv4xoqSUiIgcS//+/XnssceYMGECXbt2Zc2aNSxatChWzHzbtm189dVXsfgLL7yQefPm8cwzz3Deeefx5z//mVdffZVzzz23rm5BRERERL6jDLeOCw/t37+f888/n5kzZ/Lggw/StWtXpk6dSnFxMc2bN2fevHlcd911AKxfv55OnTpRUFBAz549eeutt7j66qvZvn177OF51qxZjBkzhl27duHz+RgzZgwLFy7kk08+iV1zwIABFBUVsWjRIgCysrK44IILmD59OlCxdCEjI4ORI0cyduzYao2lOkpKSkhJ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QnJycmIxKSkpZGVlUVBQwIABAygoKKBRo0axJBBATk4Opmny4Ycf8pOf/ISCggIuueSSWEIKIDc3l0ceeYS9e/fSuHFjCgoKyMvLixtPbm4ur776aq2O5XCbNm1i0aJFXHvttdX6jERERESkalq+Vw+0292F1PIeYLUEoylmtCER24EDeSjVlRIRkars3r0b27ZJS0uLa09LS6OwsLBafYwZM4aWLVvGEj8Hzztan4WFhaSmpsYd93g8NGnSJC6mqj4OvcaRYg49XhtjOejCCy8kEAhw1llncfHFFzNp0qQjfzAiIiIickxKStUDrTaeS6p9Bfhbg7cRpp1AaWkIw+utCFBSSkREToCHH36Y+fPn89e//rXSErX6aMGCBaxevZp58+axcOFCHnvssboekoiIiMh3mpJS9YAbjS9Ga2JRsr84lpTSTCkREalKs2bNsCyLHTt2xLXv2LGD9PT0o5772GOP8fDDD/P222/TpUuXWPvB847WZ3p6eqVC6tFolD179sTFVNXHodc4Usyhx2tjLAdlZGSQmZnJ9ddfz8MPP8z999+PbdtVf0AiIiIickyqKVUPNN5TStD7zXt/xMuekiKM1JZAmZJSIiInW0KTirpOdXn9avD5fHTr1o38/Hz69u0LVBQ6z8/PZ8SIEUc8b8qUKfzmN79h8eLFcbWYANq3b096ejr5+fl07doVqCh0+eGHHzJs2DAAsrOzKSoqYtWqVXTr1g2Ad955B8dxyMrKisXce++9RCIRvAe+ZFmyZAlnn302jRs3jsXk5+czatSo2PWXLFlCdnZ2rY6lKo7jEIlEcBwHy7KO+jmLiIiISNWUlKoHkvaXEWz8zXvT9VBUUoLhbQtoppSIyElnmtUqNH4qyMvLY9CgQXTv3p0ePXowdepUSktLGTx4MAADBw6kVatWTJ48GYBHHnmECRMmMG/ePNq1axeru9SgQQMaNGiAYRiMGjWKBx98kLPOOov27dtz33330bJly1jiq1OnTlxxxRXceuutzJo1i0gkwogRIxgwYEBst7sbbriBBx54gCFDhjBmzBg++eQTpk2bxpNPPhkb+x133MGll17K448/Tp8+fZg/fz7/+te/eOaZZwBqbSxz587F6/XSuXNn/H4///rXvxg3bhz9+/ePJcxEREREpOaUlKoHTCMY32B42FtUjOHT8j0RETm6/v37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nuDWW29l8ODBZGZmMmvWLBITE3nuueeOeI5t29x444088MADnHHGGVXG+P1+0tPTY6+Dux2KiIiI1LY6TUo9/fTTdOnSheTkZJKTk8nOzuatt96KHe/Vq1elKeS33357XB/btm2jT58+JCYmkpqayt133000Gp+cWbp0Keeffz5+v58OHTowZ86cSmM51vT3YDDI8OHDadq0KQ0aNKBfv37s2LGj9j6Mb8mT7MF04oudm1hQbhOyg9ixpFS4qtNFRETkOyQcDrNq1SpycnJibaZpkpOTQ0FBwRHPmzRpEqmpqQwZMuSIMUuXLiU1NZWzzz6bYcOG8fXXXx91LKFQiJKSkriXiIiISHXUaVKqdevWPPzww6xatYp//etf/PCHP+THP/4x69ati8XceuutcVPIp0yZEjtm2zZ9+vQhHA6zfPlyXnjhBebMmcOECRNiMVu2bKFPnz707t2bNWvWMGrUKIYOHcrixYtjMdWZ/j569Ghef/11Xn75ZZYtW8b27du59tprT/AnVH2hhAQMN34WlOV6sSIQskNED/yoNVNKRETku2/37t3Yth3bJfGgtLQ0CgsLqzzn/fff5/e//z2zZ88+Yr9XXHEFL774Ivn5+TzyyCMsW7aMK6+8Etu2j3jO5MmTSUlJib0yMjKO76ZERETktOM5dsiJc80118S9/81vfsPTTz/NBx98wDnnnANAYmIi6enpVZ7/9ttv85///Ie///3vpKWl0bVrV379618zZswY7r//fnw+H7NmzaJ9+/Y8/vjjAHTq1In333+fJ598ktzcXCB++jvArFmzWLhwIc899xxjx46luLiY3//+98ybN48f/vCHADz//PN06tSJDz74gJ49e56Qz6cm7EQPphM6rNXCDBtEbYdSIiSipJSIiMjpaN++fdx0003Mnj2bZs2aHTFuwIABsT937tyZLl26cOaZZ7J06VIuu+yyKs8ZN24ceXl5sfclJSVKTImIiEi1nDI1pWzbZv78+ZSWlpKdnR1rnzt3Ls2aNePcc89l3LhxlJWVxY4VFBTQuXPnuG8Jc3NzKSkpic22KigoiJvafjDm4NT26kx/X7VqFZFIJC6mY8eOtGnT5qhT5E/mdPaEhsl4ooclpQwvRhhCUZtS58CyPVeJKRERke+6Zs2aYVlWpVICO3bsqPLLvM2bN7N161auueYaPB4PHo+HF198kddeew2Px8PmzZurvM4ZZ5xBs2bN2LRp0xHH4vf7Y6UYDr5EREREqqNOZ0oBrF27luzsbILBIA0aNOCvf/0rmZmZANxwww20bduWli1b8vHHHzNmzBg2bNjAK6+8AkBhYWGV09YPHjtaTElJCeXl5ezdu/eI09/Xr18f68Pn89GoUaNKMUeaIg8V09kfeOCBGn4ixyfQsBGGffgDpQW2Q7g8yv5oOYbXixuJ4EYiGF7vSRmXiIiI1D6fz0e3bt3Iz8+nb9++ADiOQ35+PiNGjKgU37FjR9auXRvXNn78ePbt28e0adOOOLPpf//7H19//TUtWrSo9XsQERERqfOk1Nlnn82aNWsoLi7mz3/+M4MGDWLZsmVkZmZy2223xeI6d+5MixYtuOyyy9i8eTNnnnlmHY66ek7mdPY9YRPTKTus1cKwbSIhl9JwOYa3YSwpJSIiIt9teXl5DBo0iO7du9OjRw+mTp1KaWlprBzBwIEDadWqFZMnTyYQCHDuuefGnX/wy7aD7fv37+eBBx6gX79+pKens3nzZu655x46dOgQK3kgIiIiUpvqPCnl8/no0KEDAN26dWPlypVMmzaN3/3ud5Vis7KyANi0aRNnnnkm6enplXbJOziN/eDU9fT09CqnticnJ5OQkIBlWcec/p6enk44HKaoqChuttSRpsgf5Pf78fv91fkYvrWAPwGrqqRU1MEORdkXKsNo2ATKtHxPRESkPujfvz+7du1iwoQJFBYW0rVrVxYtWhSb/b1t2zZMs/qVGizL4uOPP+aFF16gqKiIli1bcvnll/PrX//6pD3PiIiIyOnllKkpdZDjOIRChxfsrrBmzRqA2BTy7Oxs1q5dG7dL3pIlS0hOTo4tAczOziY/Pz+unyVLlsTqVh06/f3QMeTn58diunXrhtfrjYvZsGED27Zti6t/VZcSEhvidfbHN1omrgNmeZi9wf2xJXtKSomIyKFmzJhBu3btCAQCZGVlVfrC53BFRUUMHz6cFi1a4Pf7+d73vsebb75Zoz6DwSDDhw+nadOmNGjQgH79+lX6gmjbtm306dOHxMREUlNTufvuu4lGo3ExS5cu5fzzz8fv99OhQwfmzJlT4/t75pln6NWrF8nJyRiGQVFR0TE+sVPHiBEj+PzzzwmFQnz44YexL/Cg4rOp6vM4aM6cObz66qux9wkJCSxevJidO3cSDofZunUrzzzzTKUSByIiIiK1pU6TUuPGjeO9995j69atrF27lnHjxrF06VJuvPFGNm/ezK9//WtWrVrF1q1bee211xg4cCCXXHIJXbp0AeDyyy8nMzOTm266iX//+98sXryY8ePHM3z48Ng3erfffjufffYZ99xzD+vXr2fmzJm89NJLjB49OjaOvLw8Zs+ezQsvvMCnn37KsGHD4qa/p6SkMGTIEPLy8nj33XdZtWoVgwcPJjs7+5TYeQ9gbxBMpzS+0fTiYuIpi7IvVI7rsQAlpURE5BsLFiwgLy+PiRMnsnr1as477zxyc3PjvvA5VDgc5kc/+hFbt27lz3/+Mxs2bGD27Nm0atWqRn2OHj2a119/nZdffplly5axfft2rr322thx27bp06cP4XCY5cuX88ILLzBnzhwmTJgQi9myZQt9+vShd+/erFmzhlGjRjF06FAWL15co7GUlZVxxRVX8Ktf/apWPlMRERERqSa3Dt1yyy1u27ZtXZ/P5zZv3ty97LLL3Lffftt1Xdfdtm2be8kll7hNmjRx/X6/26FDB/fuu+92i4uL4/rYunWre+WVV7oJCQlus2bN3DvvvNONRCJxMe+++67btWtX1+fzuWeccYb7/PPPVxrLb3/7W7dNmzauz+dze/To4X7wwQdxx8vLy91f/OIXbuPGjd3ExET3Jz/5ifvVV1/V6H6Li4tdoNI91IZ/fb7D/fM1g93pP8+Pez3y84fcB6ZNcR977xV339c73bK1n7jBjRtr/foiIqez8vJy9z//+Y9bXl7uuq7rOrbtRr7+us5ejm1Xe+w9evRwhw8fHntv27bbsmVLd/LkyVXGP/300+4ZZ5zhhsPh4+6zqKjI9Xq97ssvvxyL+fTTT13ALSgocF3Xdd98803XNE23sLAw7trJycluKBRyXdd177nnHvecc86Ju3b//v3d3Nzc47q/d9991wXcvXv3HvHequvw34lDncjngVNBfb8/ERERObbqPg/UaU2p3//+90c8lpGRwbJly47ZR9u2bSstGThcr169+Oijj44aM2LEiCp3qzkoEAgwY8YMZsyYccwx1YWAx4trloLrgPHNBDgDL96wSygapRSHZMAJhgh99hneli0xA4G6G7SISD1lFxWx8cIf1Nn1z1r+TzxNmhwzLhwOs2rVKsaNGxdrM02TnJwcCgoK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JQBFRERERERERI7FcI9z67RwOMymTZvYv38/mZmZNGjQ4FsPZteuXaSmprJs2bJY3apevXrRtWtXpk6dWuU5b731FldffTXbt28nLS0NgFmzZjFmzBh27dqFz+djzJgxLFy4kE8++SR23oABAygqKmLRokUAZGVlccEFFzB9+nQAHMchIyODkSNHMnbsWIqLi2nevDnz5s3juuuuA2D9+vV06tSJgoICevbsecz7KykpISUlheLiYpKTk4/7c6ouNxJh44IX+XTZv9hbdgalgXPAG4gdL2MtTduX06FDN7Z/ncyOpFJo+T86llpcfOb3SeyUedT+w//7H3ZRMd70NDzNmp3o2xEREakXTvbzwMlW3+9PREREjq26zwM1nil1kM/nIzMzkx49etRKQgqguLgYgCZNmsS1z507l2bNmnHuuecybtw4ysrKYscKCgro3LlzLCEFkJubS0lJCevWrYvF5OTkxPWZm5tLQUEBUJFgW7VqVVyMaZrk5OTEYlatWkUkEomL6dixI23atInFnHIsC19SIoZlVBSNcuNnSnmcRKLRCKbXxjIczKhBGBPbcbAjYVzHOULHFQzzYKHzo8eJiIiIiIiIiBzOU9MTfvKTn2AYRqV2wzAIBAJ06NCBG264gbPPPrtG/TqOw6hRo/jBD37AueeeG2u/4YYbaNu2LS1btuTjjz9mzJgxbNiwgVdeeQWAwsLCuIQUEHtfWFh41JiSkhLKy8vZu3cvtm1XGbN+/fpYHz6fj0aNGlWKOXidw4VCIUKhUOx9SUlJdT+OWmGYJt6ERAyPgWM5WG6UQ6s/eexEImEb14ris8B0LMJRkwhRoo6NG4lg+P1HvoB14NfH1vI9EREREREREamZGs+USklJ4Z133mH16tWxwuMfffQR77zzDtFolAULFnDeeefxz3/+s0b9Dh8+nE8++YT58+fHtd92223k5ubSuXNnbrzxRl588UX++te/snnz5poO/aSbPHkyKSkpsVdGRsZJH4MZCOAJeLHcaKVC5yZJlEcjRKNlJFhRTMckEoKoZRJ1osesK6VC5yIiIiIiIiJyvGqclEpPT+eGG27gs88+4y9/+Qt/+ctf2Lx5Mz/72c8488wz+fTTTxk0aBBjxoypdp8jRozgjTfe4N1336V169ZHjc3KygJg06ZNsfEcvgPewffp6elHjUlOTiYhIYFm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+Y6AJjrf7w0aNAjXdT+28saWLVsYNmxYTL3qvebMmcOTTz7Jb37zG0aOHFk+PmzYMPL5PM3Nzd3a63f48tasWcPWrVs57rjj8DwPz/NYuXIld911F57nMXToUMV+Hxk+fDhHHXVUt2Njx45l06ZNAOX46u+fve+qq67immuu4bzzzmPcuHFccMEFzJ07l0WLFgGKfaXsSZyHDRv2sYm2i8Ui27dv12+xFynfqSzlO5WnfCc+ynfio3ynZ4g731FRaj+XSCSYOHEiDQ0N5WNhGNLQ0EBdXV2MPetdrLXMmTOHX/3qVzz77LOMGTOm2/mJEyfi+36332HDhg1s2rRJv8OXdMopp/CHP/yBV155pbxNmjSJGTNmlF8r9vvGlClTPrYU+BtvvMHBBx8MwJgxYxg2bFi32Le2tvLCCy8o9l9SJpPBcbr/L9p1XcIwBBT7StmTONfV1dHc3MyaNWvKbZ599lnCMGTy5MkV73NvpXynMpTvxEf5TnyU78RH+U7PEHu+86WmSZce4eGHH7bJZNLef//99rXXXrOXXHKJra2ttU1NTXF3rde47LLLbE1NjV2xYoV9//33y1smkym3ufTSS+3o0aPts88+a1966SVbV1dn6+rqYux177XrajTWKvb7yosvvmg9z7O33HKL3bhxo33ooYdsnz597L/927+V2yxevNjW1tba//qv/7Kvvvqq/fa3v23HjBljOzs7Y+z5/m/mzJn2oIMOsk8++aR9++237X/+53/aQYMG2auvvrrcRrHfO9ra2uzLL79sX375ZQvYf/iHf7Avv/yyfeedd6y1exbn0047zR577LH2hRdesM8995w9/PDD7fTp0+O6pV5L+c6+p3ynZ1G+UxnKd+KjfKdyenK+o6JUL3H33Xfb0aNH20QiYU844QS7atWquLvUqwCfuP385z8vt+ns7LTf//73bf/+/W2fPn3sX/3VX9n3338/vk73Yh9N0hT7feeJJ56wX/va12wymbRHHnmk/ed//udu58MwtNdff70dOnSoTSaT9pRTTrEbNmyIqbe9R2trq73iiivs6NGjbSqVsl/5ylfsddddZ3O5XLmNYr93/OY3v/nEv99nzpxprd2zOG/bts1Onz7dVlVV2erqanvRRRfZtra2GO6m91O+s28p3+lZlO9UjvKdeCjfqZyenO8Ya639cmOtREREREREREREPh/NKSUiIiIiIiIiIhWnopSIiIiIiIiIiFScilIiIiIiIiIiIlJxKkqJiIiIiIiIiEjFqSglIiIiIiIiIiIVp6KUiIiIiIiIiIhUnIpSIiIiIiIiIiJScSpKiYiIiIiIiIhIxakoJSKyH1ixYgXGGJqbm+PuioiIiMhep1xH5MCkopSIiIiIiIiIiFScilIiIiIiIiIiIlJxKkqJiOyBMAxZtGgRY8aMIZ1OM2HCBP793/8d2DncfNmyZYwfP55UKsWJJ57I2rVru13jP/7jPzj66KNJJpMccsgh3HHHHd3O53I55s+fz6hRo0gmkxx22GH867/+a7c2a9asYdKkSfTp04eTTjqJDRs27NsbFxERkQOCch0RiYOKUiIie2DRokU8+OCDLF26lHXr1jF37lzOP/98Vq5cWW5z1VVXcccdd7B69WoGDx7MGWecQaFQAKIE65xzzuG8887jD3/4AzfddBPXX389999/f/nzF154Ib/85S+56667WL9+PT/96U+pqqrq1o/rrruOO+64g5deegnP85g1a1ZF7l9ERER6N+U6IhIHY621cXdCRKQny+VyDBgwgGeeeYa6urry8e9973tkMhkuueQSvvGNb/Dwww9z7rnnArB9+3ZGjhzJ/fffzznnnMOMGTP44IMP+N///d/y56+++mqWLVvGunXreOONNzjiiCNYvnw5U6dO/VgfVqxYwTe+8Q2eeeYZTjnlFAB+/etfM23aNDo7O0mlUvs4CiIiItJbKdcRkbhopJSIyGd48803yWQyfOtb36Kqqqq8Pfjgg7z11lvldrsmcQMGDOCII45g/fr1AKxfv54pU6Z0u+6UKVPYuHEjQRDwyiuv4LouX//61z+1L+PHjy+/Hj58OABbt2790vcoIiIiBy7lOiISFy/uDoiI9HTt7e0ALFu2jIMOOqjbuWQy2S1Z+6LS6fQetfN9v/zaGANEc0CIiIiIfFHKdUQkLhopJSLyGY466iiSySSbNm3isMMO67aNGjWq3G7VqlXl1zt27OCNN95g7NixAIwdO5bnn3++23Wff/55vvrVr+K6LuPGjSMMw27zNoiIiIhUgnIdEYmLRkqJiHyGfv368YMf/IC5c+cShiEnn3wyLS0tPP/881RXV3PwwQcDcPPNVvWEcgAAAZFJREFUNzNw4ECGDh3Kddddx6BBgzjzzDMB+Nu//VuOP/54Fi5cyLnnnktjYyNLlizhJz/5CQCHHHIIM2fOZNasWdx1111MmDCBd955h61bt3LOOefEdesiIiJyAFCuIyJxUVFKRGQPLFy4kMGDB7No0SL++Mc/Ultby3HHHceCBQvKQ8oXL17MFVdcwcaNGznmmGN44oknSCQSABx33HE8+uij3HDDDSxcuJDhw4dz8803893vfrf8Hffeey8LFizg+9//Ptu2bWP06NEsWLAgjtsVERGRA4xyHRGJg1bfExH5krpWi9mxYwe1tbVxd0dERERkr1KuIyL7iuaUEhERERERERGRilNRSkREREREREREKk6P74mIiIiIiIiISMVppJSIiIiIiIiIiFScilIiIiIiIiIiIlJxKkqJiIiIiIiIiEjFqSglIiIiIiIiIiIVp6KUiIiIiIiIiIhUnIpSIiIiIiIiIiJScSpKiYiIiIiIiIhIxakoJSIiIiIiIiIiFaeilIiIiIiIiIiIVNz/B+b5AIxjyiayAAAAAElFTkSuQmCC", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(1, 2, figsize=(12, 5), sharex=True, sharey=False)\n", "for i in range(len(agents)):\n", @@ -725,18 +640,7 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAABi0AAAMWCAYAAACN+sUqAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAADjmUlEQVR4nOzde3hU9b33/c9MQiaIEE4FRKBBsCAgIKAUtIqagpQLpdJbqlQOWmtrUCBP3ZCtiK2HYGsRrRFaKmAPFDwUS8VCEQVvCxYJYqFVrIjS3RqQbQ0QZAgz6/mDO5NOMwlzWsysb96v51rXdbOyZs1v0sf3/iW/rLV8juM4AgAAAAAAAAAAyDB/pgcAAAAAAAAAAAAgsWgBAAAAAAAAAACyBIsWAAAAAAAAAAAgK7BoAQAAAAAAAAAAsgKLFgAAAAAAAAAAICuwaAEAAAAAAAAAALICixYAAAAAAAAAACArsGgBAAAAAAAAAACyAosWAAAAAAAAAAAgK7BoYdC9994rn8+ngwcPZnoo2rhxo3w+n5599tlMDwWAAfQNgGU0DoBlNA6AVfQNSD8WLXBKTzzxhJYtW5bpYTRo69atuu222zR48GA1a9ZMPp8v00MC4BHZ3LdwOKxly5bp6quvVteuXdWiRQv169dP999/v44dO5bp4QHwgGxunCQtXrxYl112mTp27KhAIKDu3btr6tSp+uCDDzI9NAAekO2N+3c1NTXq06ePfD6fHn744UwPB0CWy/a+TZkyRT6fr97Wu3fvTA8NhuRmegDIfk888YTat2+vKVOmZHooMb344ov62c9+pv79++ucc87Ru+++m+khAfCIbO7b0aNHNXXqVH3xi1/Ut7/9bXXo0EFbtmzR3LlztWHDBr388sss0gJoVDY3TpLefPNNde/eXVdffbXatGmjvXv3avHixXrhhRf01ltvqXPnzpkeIoAslu2N+3c//vGPtW/fvkwPA4BHeKFvgUBAP/vZz6L2FRQUZGg0sIhFC3jed77zHc2aNUvNmzfXtGnTWLQAYEJeXp7++Mc/avjw4ZF9t9xyiwoLCyMLF0VFRRkcIQCk5oknnqi3b9y4cRoyZIh+/vOfa/bs2RkYFQCk14EDB/T9739fs2bN0j333JPp4QBAWuTm5uob3/hGpocBw7g9lGEHDx7Uddddp1atWqldu3aaPn161C1Fli5dqiuuuEIdOnRQIBBQnz59tHDhwqhzFBYW6i9/+Ys2bdoUudxrxIgRka9/+umnmjlzpgoLCxUIBNSlSxdNmjSp3n38wuGwHnjgAXXp0kX5+fm68sor9d5776Xlc3bs2FHNmzdPy7kAeENT6FteXl7UgkWtr371q5Kkt99+O+X3AJCdmkLjGlJYWBgZHwCbmlrjZs+erV69evHLPaAJaGp9C4VCOnToUFrPCdTiSgvDrrvuOhUWFqqsrEyvv/66HnvsMf3rX//Sz3/+c0nSwoUL1bdvX1199dXKzc3V7373O912220Kh8MqLi6WJC1YsEC33367zjzzTN11112STi4SSNKRI0f0pS99SW+//bZuuukmDRo0SAcPHtTq1av1P//zP2rfvn1kLPPmzZPf79d3v/tdVVVV6Qc/+IEmTpyoP/3pT5Fjjh49qqNHj57yc+Xk5KhNmzZp+z4B8J6m3LfKykpJihoDAFuaWuP+93//V6FQSPv27dP3v/99SdKVV16Z5HcPQLZrSo3bunWrnnrqKb322mvc1hNoAppS344ePapWrVrp6NGjatOmja6//no99NBDOvPMM1P7JgK1HJgzd+5cR5Jz9dVXR+2/7bbbHEnOW2+95TiO4xw9erTea0eNGuWcc845Ufv69u3rXHbZZfWOveeeexxJzm9+85t6XwuHw47jOM4rr7ziSHLOO+88JxgMRr7+6KOPOpKcnTt31hv3qbbPf/7zDX724uJih//fGrCrKfetVlFRkdOqVSvnX//61ymPBeAtTbVxgUAgcky7du2cxx57LPY3CICnNbXGhcNh56KLLnKuv/56x3EcZ+/evY4k54c//GEj3yUAXtTU+jZ79mxn1qxZzsqVK51f//rXzuTJkx1JzsUXX+zU1NQ0/s0C4sSVFobVrtLWuv322/XEE0/oxRdfVP/+/aNuqVRVVaWamhpddtllWrdunaqqqk75AJ3nnntOAwYMiNyq5N/951+RTJ06VXl5eZF/f+lLX5Ikvf/+++rXr58kadKkSbrkkktO+bm4FRSAptq3Bx98UC+99JKeeOIJtW7d+pTnA+BNTa1xv//973Xs2DG9/fbb+uUvf6nq6upTnguAdzWVxi1btkw7d+7Us88+e8rXArChqfStrKws6t9f//rX9YUvfEF33XWXnn32WX39618/5TmBU2HRwrBzzz036t89evSQ3+/XBx98IEn64x//qLlz52rLli31LgeLJ5Z79uzR+PHj4xpLt27dov5de1nZv/71r8i+c845R+ecc05c5wPQtDXFvq1cuVJ33323br75Zn3nO99J6VwAsltTa9zll18uSRo9erSuueYa9evXT2eeeaamTZuW9DkBZK+m0LhDhw6ptLRUd955p7p27ZrQawF4V1PoW0NmzpypOXPm6KWXXmLRAmnBokUT8u+rrnv27NGVV16p3r17a/78+eratavy8vL04osv6pFHHlE4HE7re+fk5MTc7zhO5P995MgRHTlyJK5zfe5zn0vb2AB4n/W+rV+/XpMmTdKYMWO0aNGi5AcLwJOsN+7f9ejRQxdccIF+9atfsWgBNBEWG/fwww/r+PHjmjBhQuSXlf/zP/8j6eQvDD/44AN17tw56q+gAdhjsW8Nad68udq1a6dPPvkksYECDWDRwrC//e1v6t69e+Tf7733nsLhsAoLC/W73/1OwWBQq1evjlp9feWVV+qdp6EHhvXo0UO7du1K23gffvhhfe973zvlcZ///OcjEz8ATVNT6tuf/vQnffWrX9WQIUP09NNPKzeX/9MNWNeUGhfLZ599pmAwmIaRAchGTaFx+/bt07/+9S/17du33nEPPvigHnzwQb355psaOHBg2sYJIPOaQt8acvjwYR08eJA/Mkba8JsPw8rLyzVy5MjIv3/84x9LOnnp/auvviopeoW1qqpKS5curXeeFi1a6NNPP623f/z48fr+97+vVatW1bufnuM4DUa2ITzTAkC8mkrf3n77bY0ZM0aFhYV64YUX6B/QRDSFxp04cUKHDx+O3Kqg1tatW7Vz507dcMMNCY0BgHc0hcbdcccdGjduXNTXDxw4oFtvvVVTpkzRNddcE/WLTQA2NIW+HTt2TDU1NWrZsmXUMffdd58cx9FVV12V0BiAhrBoYdjevXt19dVX66qrrtKWLVv0y1/+UjfccIMGDBig/Px85eXlaezYsbr11lt15MgRLV68WB06dNBHH30UdZ7Bgwdr4cKFuv/++9WzZ0916NBBV1xxhe688049++yz+j//5//opptu0uDBg/XJJ59o9erVWrRokQYMGJDQeJO9l96HH36oX/ziF5Kkbdu2SZLuv/9+SSdXg2+88caEzwkguzWFvh0+fFijRo3Sv/71L915551as2ZN1Nd7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HO4k+gbYwxyuDo0D7LE2h0v7My1+/OMfa86cObrtttt04MABde7cWbfeeqvuueee+E/i88aKD4CGubVyu3LlSpWUlGjRokUaOnSoFixYoFGjRmn37t3q0KFDveOXL1+u2bNna8mSJRo+fLjeffddTZkyRT6fT/Pnz3dljKdE4wBPc/MvU2gcgExjDteIHH6hB3gZc7hTyE37rwgBnEbW5nBp/zQtW7bUggUL9OGHH+qzzz7Tnj17dP/99ysvLy/dbwUgi9U4OXFviZg/f75uueUWTZ06VX369NGiRYt0xhlnaMmSJTGP37x5sy6++GLdcMMNKiws1MiRI3X99defclUYABriVt8kGgcg85jDAbCKORwAy6zN4fhTOACuCDn+uLdgMKhDhw5FbcFgsN45jx8/roqKChUVFUX2+f1+FRUVacuWLTHHMXz4cFVUVETi+P777+vFF1/UV77yFXc+OADz3OibROMAZAfmcACsYg4HwDJrczgWLQC4Iuz44t7KyspUUFAQtZWVldU758GDBxUKhdSxY8eo/R07dlRlZWXMcdxwww36/ve/r0suuUTNmjVTjx49NGLECP33f/+3K58bgH1u9E2icQCyA3M4AFYxhwNgmbU5XHbesM6f3EOPAGSPUAJroveUlqqkpCRqXyAQSMs4Nm7cqAcffFBPPPGEhg4dqvfee0/Tp0/Xfffdpzlz5qTlPQA0LdnSNylLG8c8DvC0bGlcNvbNx/3eAU/Llr5J2dk4OU5m3hdAWmRL49LVN2ZdAFwRduL/pVUgEIgrju3bt1dOTo72798ftX///v3q1KlTzNfMmTNHN954o775zW9Kks4//3xVV1frW9/6lu666y75/VxwBiAxbvRNonEAsgNzOABWMYcDYJm1ORwVBOCKsPxxb/HKy8vT4MGDtWHDhrr3CYe1YcMGDRs2LOZrjh49Wi+IOTknHzrk8JckAJLgRt8kGgcgOzCHA2AVczgAllmbw3GlBQBX1ITdWRMtKSnR5MmTNWTIEF100UVasGCBqqurNXXqVEnSpEmTdPbZZ0fuxTd27FjNnz9fF1xwQeSytDlz5mjs2LGRaAJAItzqm0TjAGQeczgAVjGHA2CZtTkcixYAXBF23InlhAkT9PHHH+uee+5RZWWlBg4cqLVr10YeCrRv376oFd27775bPp9Pd999t/7xj3/oc5/7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O3euRo8eHblm7dq1uuOOO/TWW28pPT1dAwcO1OrVq9W6deuUThxINR56llrWdngBP+OhZ6lF3wBvYQ2XWjQO8JZv9os1XPLoG+AtrOFSy1rjEtq0OO200zRv3jydffbZchxHTzzxhK666iq988476tu3r9auXat/+7d/U0FBgX7/+98rIyND7777rtLS0tyaPwCPCoSN1RIA/h/6BsAyGgfAKvoGwDJrjUto02Ls2LFRf7733nu1aNEirVu3Tn379tWsWbN06623avbs2ZFrevXqlZqZAvAXW60EgDr0DYBlNA6AVfQNgGXGGpf0RyBqa2u1fPly1dTUaNiwYdq9e7feeustde7cWbm5ucrJydHw4cP15ptvpnK+AHwiEI7/AAA/oW8ALKNxAKyibwAss9a4hB/EvWnTJg0bNkyHDh3SiSeeqJUrV6pPnz5at26dJOmuu+7S/fffr4EDB+qPf/yjRo4cqc2bN+vss89O+eQBt3H/0EYwtsMLWMP9QxuBvgGexxquEWgc4Gms4RqBvgGexxquEYw1LuFNi169eqmyslLV1dV6+umnNXnyZL3xxhsKh49u09x8882aMmWKJOm8885TWVmZlixZoqKiopjjhUIhhUKhqHNhp1ZpgfREpwbAQ6w9AChZNA6wh77VoXGAPTTuKPoG2EPf6tA4wB5rjUv49lCZmZnq2bOnBg0apKKiIg0YMEAPPvigTjnlFElSnz59oq4/55xztHPnzgbHKyoqUnZ2dtSxXVsSnRYAr3Gc+A/DaBxgEH2LoHGAQTROEn0DTKJvETQOMMhY45J+psUx4XBYoVBI3bt3V9euXbV169ao17dt26Yzzjijwa8vKChQdXV11NFDvRs7LQDNzNq99JJF4wB76FsdGgfYQ+OOom+APfStDo0D7LHWuIRuD1VQUKDRo0erW7du2r9/v5YtW6by8nKtXr1agUBAt912mwoLCzVgwAANHDhQTzzxhLZs2aKnn366wTGDwaCCwWDUOT6OBviftY+lJYvGAfbQtzo0DrCHxh1F3wB76FsdGgfYY61xCW1a7N69W5MmTdI//vEPZWdnq3///lq9erW+973vSZJmzpypQ4cOadasWfryyy81YMAAlZaW6qyzznJl8kBT46FnCfDJx80A1OGhZ3Gib4DvxLOGa+i6FofGAb7DGi5O9A3wHdZwCTDWuIQ2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W7dulST16dNHn3zySdTrL7/8ctT3kQi/Rqehn3koFFKrVq0a9TN38+eN1HCrb5K7jfNj3yR3G0ff6qNvYA0XG42LRuPqo3HexxouNvoWza+/FEjfwBouNhoXjTVcfTTOfQHHcZzmnoQF9913nx588EFVVVVFdggdx1GXLl00c+ZM/fKXv0xq3ClTpkT9efTo0VE73b/85S/13nvvadWqVUmNv2/fPlVUVKiqqkqS1KVLFw0aNCgSILd8/PHHyszM1GmnnZbw14ZCIc2cOVNLlixpMPILFixIapd3xIgRkb8/SZo4caJ+8pOfRP58zz336NVXX1V5eXnCYx+zb98+bdiwQbt27ZIk5eTkaPDgwa78zB3HUSAQaNTPG/Br36TmaRx9o2/wFxqXGBpH4+Af9C0xXu2b5H7j6Bv8iMYlxquNYw2HhrBpkWLbt2+Pik6PHj1cfb+amhqlp6crKyvL1ffxIr9FviGZmZl69913dc4556RszKYYGy0PfWs69K15x0bLROOaDo1r3rHR8tC3puPHXwqMhb7BT2hc02EN17xjtzRsWjSBTz/9VIWFhVqyZImnxv7qq69UUVGhDh06qE+fPlGvHTp0SE8++aQmTZqU9NzcHP/999/XunXrNGzYMPXu3VtbtmzRgw8+qFAopB/96Ee67LLLkp73sbFzc3PVq1evlI2dn58f8/yDDz6oH/3oR5H7Oc6fP99TYwPH49W+Se42iL5Fo2+wisbROInGwSb65q++fX38VDaOvsEqGuevxrGGQ0xN/+zvlqeystJJS0vz1Nhbt251zjjjDCcQCDhpaWnOJZdc4nz22WeR16uqqho151jjf/755ykZ/69//auTmZnpdOjQwcnKynL++te/OieffLKTl5fnXHbZZU56erpTVlbmubEDgYAzcOBAZ8SIEVFHIBBwLrjgAmfEiBHOpZde6rmxgePxYt8cx93G0bf66BusonE0znFoHGyib/7pm5vj0zdYReP80zjWcGgIn7RIgRdeeOG4r3/88cf6xS9+odraWs+M/f3vf19HjhzR0qVLtXfvXs2cOVP/8z//o/LycnXr1k27du1S165dk5qz2+Pn5ubqsssu0z333KPly5fr5z//uW655Rbde++9kqSCggJVVFTolVde8dTY8+bN0yOPPKI//OEPUbvErVq10rvvvltvF9wrY6Nl82PfJHcbRN/qo2/wKxrXtGPTuKYdGy0bfWvasd1skJvj0zf4FY1r2rFZwzXt2Ph/mnvXxIJju5iBQKDBI9ndTLfG7ty5s/Pee+9F/hwOh52f/exnTrdu3ZyPPvqo0Z+0cHP8du3aOR988IHjOI5TW1vrZGRkOBs3boy8vmnTJicnJ8dzYzuO46xfv975zne+4/ziF79wDh8+7DiO42RkZDj//d//nfSYTTE2Wi4/9s1x3G0QfYuNvsGPaFzTjk3jmn5stFz0rWnHdrtBbo5P3+BHNK5px2YN1/Rjw3HSmnvTxIJTTjlFzz77rMLhcMxj48aNnhv7q6++UkZGRuTPgUBAixYt0tixYzV8+HBt27Yt6Tk3xfiBQECSlJaWpqysLGVnZ0dea9u2raqrqz059gUXXKCKigp98cUXGjx4sDZv3hx5v8Zyc2y0XH7sm+Rug+hbbPQNfkTjmnbsY+NJNK6pxkbLRd+aduxj40nuNMjN8ekb/IjGNe3Yx8aTWMM11diQ2LRIgUGDBqmioqLB1wOBgJwk78Ll1ti9e/fWhg0b6p1fuHChrrrqKl155ZUJj9lU43fv3l0ffPBB5M9r165Vt27dIn/euXOnTjnlFM+NfcyJJ56oJ554QgUFBcrLy0v6FlxNPTZaJj/2TXK3QfStYfQNfkPjmnZsGtc8Y6Nlom9NO7bbDXJ7fPoGv6FxTTs2a7jmGbulY9MiBW677Tbl5uY2+HrPnj31+uuve2rs73//+/rP//zPmK8tXLhQ1113XdIRdnv8W265JSoC/fr1i9pN/utf/xp1PzmvjP1N1157rTZs2KBnn31WZ5xxRkrGbIqx0bL4sW+Suw2ib9+OvsEvaFzTjk3jmndstCz0rWnHdrtBTdU4+ga/oHFNOzZruOYdu6XiQdwAAAAAAAAAAMAT+KQFAAAAAAAAAADwBDYtAAAAAAAAAACAJ7BpAQAAAAAAAAAAPIFNCwAAAAAAAAAA4AlsWgAAAAAAAAAAAE9g0wIAAAAAAAAAAHgCmxYAAAAAAAAAAMAT2LQAAAAAAAAAAACe8P8DloocTQY4wpMAAAAASUVORK5CYII=", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -754,18 +658,7 @@ "cell_type": "code", "execution_count": null, "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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Ki4u1qZNm9qdx4svvqiioiKVl5eroKBAgwYN0kMPPaRIJOLZdwdgmxd9k2gcgPRA4wBY5aZv/E4F4DfWzuFcLVqsXbtWt956qy677DINGTJEy5Yt0549e1RbWytJamxs1FNPPaUFCxboG9/4hoYPH66nn35aGzdu1BtvvOHmowD4nJsV3lAopLy8vLgtFAq1GXP//v2KRCIqKCiI219QUKCGhoZ257F79249//zzikQievnllzV37lw9/PDD+ulPf+rJ9wZgnxd9k2gcgPRA4wBY5fZKC36nAvATa+dwp/RMi8bGRklSjx49JEm1tbU6fvx43MrLgAED1LdvX23atElf/epXT+XjAPiIE038crPKykpVVFTE7QsGgymZRzQaVX5+vn79618rMzNTw4cP14cffqhf/OIXmjdvXko+A8CZJV36JtE4AKlH4wBY5aZvEr9TAfiLtXO4pBctotGoZs6cqSuvvFKDBg2SJDU0NCg7O7vNQzVOtvICwCgXDwAKBoMJxbFXr17KzMxs85ycvXv3qnfv3u2+55xzzlGnTp2UmZkZ23fppZeqoaFBx44dU3Z2duITBQDJk75JNA5AmqBxAKxy+ZBafqcC8BVj53Cubg/1j8rLy7Vjxw6tWLEi2SEktX8PrajDPfwAv/PiAUDZ2dkaPny4ampqYvui0ahqampUVFTU7nuuvPJKvfPOO4pGo7F9O3fu1DnnnHNaTgRpHGCPVw84o3EA0gGNa0bfAHu8ehC33/om0TjAImvncEktWkybNk0vvfSSXn31VZ133nmx/b1799axY8d04MCBuONPtvLS3j20dn++I5lpAUgnjovNhYqKCi1ZskTPPPOM/va3v+lHP/qRmpqaVFZWJkkqLS1VZWVl7Pgf/ehH+vTTTzVjxgzt3LlTa9as0UMPPaTy8vJT/44JoHGAQR71TaJxANIAjZNE3wCT3PSN36kA/MbYOZyr20M5jqPp06dr1apVWr9+vS644IK414cPH65OnTqppqZGEydOlCTV19drz549J1x5ae8eWhPz73QzLQBpyO3KbaImTZqkTz75RPfee68aGho0dOhQrV27NvZAoD179igjo3U99vzzz9e6des0a9YsDR48WOeee65mzJih2bNnezK/f0bjAHu86ptE4wB0PBrXjL4B9tC3VjQOsMda4wKO4yS8vvKv//qvWr58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OE5WVlb0PS8tLXWOP/545+WXX3aqqqqc119/3enUqZMzderUpMYOanS8fM+9fL9Rf172zXG8bVwQ++Y4wf19o2+10Tf/4xwuPhpXG42rjcb5G+dw8dG32oL6R4FBfb+RGpzDxUfjauMcrjYa5z3fTFp06NDBWbhwYZ2PL1y40DnxxBOTGvu7sfzBD37g/O1vf4t5/B//+IdzwgknJDW24zhOUVGRM2LECKeysrLWY5WVlc6IESOc888/P6mxv3vs119/vdOtW7fobPSnn37q9OnTx7nuuutcj9u0aVNn/fr1dT6+bt06p2nTpkkds+PEHnePHj2cRYsWxTz+zDPPOCeffHJSYwc1Ol6+516+36g/L/vmON42Loh9c5zg/r7Rt9rom/9xDhcfjauNxtVG4/yNc7j46FttQf2jwKC+30gNzuHio3G1cQ5XG43znm8mLe6//34nLy/Puemmm5xnnnnGWbt2rbN27VrnmWeecW666SancePGzpw5c5IaOxQKRWdBjz322FqXF3388cf1+guZxo0bH/GSpXfffddp3LhxUmN/95egS5cuzjPPPBPz+EsvveR07NjR9bitWrVyVq1aVefjr7zyitOqVSvX49b47nveunVrZ9OmTTGPf/zxx0m/J0GNjpfvuZfvN+rPy745jreNC2LfHCe4v2/0rTb65n+cw8VH42qjcbXROH/jHC4++lZbUP8oMKjvN1KDc7j4aFxtnMPVRuO8l5PpNTVqFBcXq3Xr1po1a5YeeOABVVdXS5Kys7PVp08fPfroo7r00kuTHn/IkCHKycnRnj17tGXLlpgFUT755JN6LQDUokULffzxx3UusvLxxx+rRYsWSY8fCoUkSf/7v/+rTp06xTzWuXNnff75567HHD16tMaPH69Zs2ZpyJAhat68uSRpz549WrlypUpKSjRmzJikj1mSpk2bpqOOOkpZWVn6/PPP1b179+hj//73v9WkSZOkxs3Ly9OePXvqfPyrr75SXl5eUmNLh97viooK9ezZM+axXr166dNPP01qXK/fc6/eb9Sf132TvGtcEPsmBff3jb7FR9/8jXO4utG4WDQuPhrnX5zD1Y2+xfK6b5I3jQvq+43U4ByubjQuFudw8dE4b/lm0kI6+D+m0aNH68CBA9q1a5ckqXXr1mrUqFG9xp0+fXrM102bNo35+q9//at++MMf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", - "text/plain": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "outputs": [], "source": [ "fig, axes = plt.subplots(3, 5, figsize=(16, 8), sharex=True, sharey=True)\n", "\n", @@ -822,87 +715,9 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": null, "metadata": {}, - "outputs": [ - { - "ename": "KeyboardInterrupt", - "evalue": "", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)", - "Cell \u001b[0;32mIn[27], line 21\u001b[0m\n\u001b[1;32m 18\u001b[0m actions \u001b[38;5;241m=\u001b[39m info[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mactions\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[1;32m 19\u001b[0m outcomes \u001b[38;5;241m=\u001b[39m info[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mobservations\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m---> 21\u001b[0m agents[i] \u001b[38;5;241m=\u001b[39m \u001b[43magent\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minfer_parameters\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbeliefs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moutcomes\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mactions\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 22\u001b[0m divs1[i]\u001b[38;5;241m.\u001b[39mappend(kl_div_dirichelt(agents[i]\u001b[38;5;241m.\u001b[39mpA[\u001b[38;5;241m0\u001b[39m], pA0)\u001b[38;5;241m.\u001b[39mmean(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 23\u001b[0m divs2[i]\u001b[38;5;241m.\u001b[39mappend(kl_div_dirichelt(agents[i]\u001b[38;5;241m.\u001b[39mpB[\u001b[38;5;241m0\u001b[39m], pB0)\u001b[38;5;241m.\u001b[39msum(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m)\u001b[38;5;241m.\u001b[39mmean(\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/projects/pymdp/pymdp/jax/agent.py:262\u001b[0m, in \u001b[0;36mAgent.infer_parameters\u001b[0;34m(self, beliefs_A, outcomes, actions, beliefs_B, lr_pA, lr_pB, **kwargs)\u001b[0m\n\u001b[1;32m 260\u001b[0m beliefs_B \u001b[38;5;241m=\u001b[39m beliefs_A \u001b[38;5;28;01mif\u001b[39;00m beliefs_B \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m beliefs_B\n\u001b[1;32m 261\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39minference_algo \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124movf\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[0;32m--> 262\u001b[0m smoothed_marginals_and_joints \u001b[38;5;241m=\u001b[39m \u001b[43mvmap\u001b[49m\u001b[43m(\u001b[49m\u001b[43minference\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msmoothing_ovf\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbeliefs_A\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mB\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mactions\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 263\u001b[0m marginal_beliefs \u001b[38;5;241m=\u001b[39m smoothed_marginals_and_joints[\u001b[38;5;241m0\u001b[39m]\n\u001b[1;32m 264\u001b[0m joint_beliefs \u001b[38;5;241m=\u001b[39m smoothed_marginals_and_joints[\u001b[38;5;241m1\u001b[39m]\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/api.py:1214\u001b[0m, in \u001b[0;36mvmap..vmap_f\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1211\u001b[0m in_axes_flat \u001b[38;5;241m=\u001b[39m flatten_axes(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvmap in_axes\u001b[39m\u001b[38;5;124m\"\u001b[39m, in_tree, (in_axes, \u001b[38;5;241m0\u001b[39m), kws\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\n\u001b[1;32m 1212\u001b[0m axis_size_ \u001b[38;5;241m=\u001b[39m (axis_size \u001b[38;5;28;01mif\u001b[39;00m axis_size \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m\n\u001b[1;32m 1213\u001b[0m _mapped_axis_size(fun, in_tree, args_flat, in_axes_flat, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvmap\u001b[39m\u001b[38;5;124m\"\u001b[39m))\n\u001b[0;32m-> 1214\u001b[0m out_flat \u001b[38;5;241m=\u001b[39m \u001b[43mbatching\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbatch\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1215\u001b[0m \u001b[43m \u001b[49m\u001b[43mflat_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43maxis_size_\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_axes_flat\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1216\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mlambda\u001b[39;49;00m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mflatten_axes\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mvmap out_axes\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_tree\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_axes\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1217\u001b[0m \u001b[43m \u001b[49m\u001b[43mspmd_axis_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mspmd_axis_name\u001b[49m\n\u001b[1;32m 1218\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_wrapped\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs_flat\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1219\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m tree_unflatten(out_tree(), out_flat)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/linear_util.py:192\u001b[0m, in \u001b[0;36mWrappedFun.call_wrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 189\u001b[0m gen \u001b[38;5;241m=\u001b[39m gen_static_args \u001b[38;5;241m=\u001b[39m out_store \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 192\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m:\n\u001b[1;32m 194\u001b[0m \u001b[38;5;66;03m# Some transformations yield from inside context managers, so we have to\u001b[39;00m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;66;03m# interrupt them before reraising the exception. Otherwise they will only\u001b[39;00m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;66;03m# get garbage-collected at some later time, running their cleanup tasks\u001b[39;00m\n\u001b[1;32m 197\u001b[0m \u001b[38;5;66;03m# only after this exception is handled, which can corrupt the global\u001b[39;00m\n\u001b[1;32m 198\u001b[0m \u001b[38;5;66;03m# state.\u001b[39;00m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m stack:\n", - "File \u001b[0;32m~/projects/pymdp/pymdp/jax/inference.py:111\u001b[0m, in \u001b[0;36msmoothing_ovf\u001b[0;34m(filtered_post, B, past_actions)\u001b[0m\n\u001b[1;32m 109\u001b[0m marginals_and_joints \u001b[38;5;241m=\u001b[39m ([], [])\n\u001b[1;32m 110\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m b, qs, f \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(B, filtered_post, \u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mrange\u001b[39m(nf))):\n\u001b[0;32m--> 111\u001b[0m marginals, joints \u001b[38;5;241m=\u001b[39m \u001b[43mjoint\u001b[49m\u001b[43m(\u001b[49m\u001b[43mb\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mqs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 112\u001b[0m marginals_and_joints[\u001b[38;5;241m0\u001b[39m]\u001b[38;5;241m.\u001b[39mappend(marginals)\n\u001b[1;32m 113\u001b[0m marginals_and_joints[\u001b[38;5;241m1\u001b[39m]\u001b[38;5;241m.\u001b[39mappend(joints)\n", - "File \u001b[0;32m~/projects/pymdp/pymdp/jax/inference.py:107\u001b[0m, in \u001b[0;36msmoothing_ovf..\u001b[0;34m(b, qs, f)\u001b[0m\n\u001b[1;32m 104\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(filtered_post) \u001b[38;5;241m==\u001b[39m \u001b[38;5;28mlen\u001b[39m(B)\n\u001b[1;32m 105\u001b[0m nf \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(B) \u001b[38;5;66;03m# number of factors\u001b[39;00m\n\u001b[0;32m--> 107\u001b[0m joint \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mlambda\u001b[39;00m b, qs, f: \u001b[43mjoint_dist_factor\u001b[49m\u001b[43m(\u001b[49m\u001b[43mb\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mqs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mpast_actions\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 109\u001b[0m marginals_and_joints \u001b[38;5;241m=\u001b[39m ([], [])\n\u001b[1;32m 110\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m b, qs, f \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(B, filtered_post, \u001b[38;5;28mlist\u001b[39m(\u001b[38;5;28mrange\u001b[39m(nf))):\n", - "File \u001b[0;32m~/projects/pymdp/pymdp/jax/inference.py:86\u001b[0m, in \u001b[0;36mjoint_dist_factor\u001b[0;34m(b, filtered_qs, actions)\u001b[0m\n\u001b[1;32m 83\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m qs_smooth, (qs_smooth, qs_joint)\n\u001b[1;32m 85\u001b[0m \u001b[38;5;66;03m# seq_qs will contain a sequence of smoothed marginals and joints\u001b[39;00m\n\u001b[0;32m---> 86\u001b[0m _, seq_qs \u001b[38;5;241m=\u001b[39m \u001b[43mlax\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mscan\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 87\u001b[0m \u001b[43m \u001b[49m\u001b[43mstep_fn\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 88\u001b[0m \u001b[43m \u001b[49m\u001b[43mqs_last\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 89\u001b[0m \u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mqs_filter\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mactions\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 90\u001b[0m \u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 91\u001b[0m \u001b[43m \u001b[49m\u001b[43munroll\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m2\u001b[39;49m\n\u001b[1;32m 92\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 94\u001b[0m \u001b[38;5;66;03m# we add the last filtered belief to smoothed beliefs\u001b[39;00m\n\u001b[1;32m 96\u001b[0m qs_smooth_all \u001b[38;5;241m=\u001b[39m jnp\u001b[38;5;241m.\u001b[39mconcatenate([seq_qs[\u001b[38;5;241m0\u001b[39m], jnp\u001b[38;5;241m.\u001b[39mexpand_dims(qs_last, \u001b[38;5;241m0\u001b[39m)], \u001b[38;5;241m0\u001b[39m)\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:288\u001b[0m, in \u001b[0;36mscan\u001b[0;34m(f, init, xs, length, reverse, unroll, _split_transpose)\u001b[0m\n\u001b[1;32m 286\u001b[0m in_flat \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m*\u001b[39min_state, \u001b[38;5;241m*\u001b[39min_carry, \u001b[38;5;241m*\u001b[39min_ext]\n\u001b[1;32m 287\u001b[0m num_carry \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlen\u001b[39m(attrs_tracked)\n\u001b[0;32m--> 288\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mscan_p\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43min_flat\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 289\u001b[0m \u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreverse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlength\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlength\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 290\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_consts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mconsts\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_carry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_carry\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 291\u001b[0m \u001b[43m \u001b[49m\u001b[43mlinear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mconsts\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m+\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43min_flat\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 292\u001b[0m \u001b[43m \u001b[49m\u001b[43munroll\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43munroll\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 293\u001b[0m \u001b[43m \u001b[49m\u001b[43m_split_transpose\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_split_transpose\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 294\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m attrs_tracked:\n\u001b[1;32m 295\u001b[0m out_state, out \u001b[38;5;241m=\u001b[39m split_list(out, [\u001b[38;5;28mlen\u001b[39m(attrs_tracked)])\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:1280\u001b[0m, in \u001b[0;36mscan_bind\u001b[0;34m(*args, **params)\u001b[0m\n\u001b[1;32m 1278\u001b[0m _scan_typecheck(\u001b[38;5;28;01mTrue\u001b[39;00m, \u001b[38;5;241m*\u001b[39min_atoms, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams)\n\u001b[1;32m 1279\u001b[0m core\u001b[38;5;241m.\u001b[39mcheck_jaxpr(params[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mjaxpr\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mjaxpr)\n\u001b[0;32m-> 1280\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcore\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mAxisPrimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[43mscan_p\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:2789\u001b[0m, in \u001b[0;36mAxisPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 2785\u001b[0m axis_main \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m((axis_frame(a)\u001b[38;5;241m.\u001b[39mmain_trace \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m used_axis_names(\u001b[38;5;28mself\u001b[39m, params)),\n\u001b[1;32m 2786\u001b[0m default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[38;5;28mgetattr\u001b[39m(t, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 2787\u001b[0m top_trace \u001b[38;5;241m=\u001b[39m (top_trace \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis_main \u001b[38;5;129;01mor\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mlevel \u001b[38;5;241m<\u001b[39m top_trace\u001b[38;5;241m.\u001b[39mlevel\n\u001b[1;32m 2788\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mwith_cur_sublevel())\n\u001b[0;32m-> 2789\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtop_trace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:391\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pop_level(trace\u001b[38;5;241m.\u001b[39mlevel):\n\u001b[0;32m--> 391\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 392\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/batching.py:433\u001b[0m, in \u001b[0;36mBatchTrace.process_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 431\u001b[0m frame \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_frame(vals_in, dims_in)\n\u001b[1;32m 432\u001b[0m batched_primitive \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_primitive_batcher(primitive, frame)\n\u001b[0;32m--> 433\u001b[0m val_out, dim_out \u001b[38;5;241m=\u001b[39m \u001b[43mbatched_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvals_in\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdims_in\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 434\u001b[0m src \u001b[38;5;241m=\u001b[39m source_info_util\u001b[38;5;241m.\u001b[39mcurrent()\n\u001b[1;32m 435\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m primitive\u001b[38;5;241m.\u001b[39mmultiple_results:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:975\u001b[0m, in \u001b[0;36m_scan_batching_rule\u001b[0;34m(spmd_axis_name, axis_size, axis_name, main_type, args, dims, reverse, length, jaxpr, num_consts, num_carry, linear, unroll, _split_transpose)\u001b[0m\n\u001b[1;32m 971\u001b[0m new_xs \u001b[38;5;241m=\u001b[39m [batching\u001b[38;5;241m.\u001b[39mmoveaxis(x, d, \u001b[38;5;241m1\u001b[39m) \u001b[38;5;28;01mif\u001b[39;00m d \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m batching\u001b[38;5;241m.\u001b[39mnot_mapped \u001b[38;5;129;01mand\u001b[39;00m d \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m1\u001b[39m\n\u001b[1;32m 972\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m x \u001b[38;5;28;01mfor\u001b[39;00m x, d \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(xs, xs_bdims)]\n\u001b[1;32m 973\u001b[0m new_args \u001b[38;5;241m=\u001b[39m new_consts \u001b[38;5;241m+\u001b[39m new_init \u001b[38;5;241m+\u001b[39m new_xs\n\u001b[0;32m--> 975\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43mscan_p\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 976\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mnew_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreverse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlength\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlength\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr_batched\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 977\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_consts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_consts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_carry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_carry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlinear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43munroll\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43munroll\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 978\u001b[0m \u001b[43m \u001b[49m\u001b[43m_split_transpose\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m_split_transpose\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 979\u001b[0m carry_bdims \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m0\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m b \u001b[38;5;28;01melse\u001b[39;00m batching\u001b[38;5;241m.\u001b[39mnot_mapped \u001b[38;5;28;01mfor\u001b[39;00m b \u001b[38;5;129;01min\u001b[39;00m carry_batched]\n\u001b[1;32m 980\u001b[0m ys_bdims \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m1\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m b \u001b[38;5;28;01melse\u001b[39;00m batching\u001b[38;5;241m.\u001b[39mnot_mapped \u001b[38;5;28;01mfor\u001b[39;00m b \u001b[38;5;129;01min\u001b[39;00m ys_batched]\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:1280\u001b[0m, in \u001b[0;36mscan_bind\u001b[0;34m(*args, **params)\u001b[0m\n\u001b[1;32m 1278\u001b[0m _scan_typecheck(\u001b[38;5;28;01mTrue\u001b[39;00m, \u001b[38;5;241m*\u001b[39min_atoms, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams)\n\u001b[1;32m 1279\u001b[0m core\u001b[38;5;241m.\u001b[39mcheck_jaxpr(params[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mjaxpr\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mjaxpr)\n\u001b[0;32m-> 1280\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mcore\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mAxisPrimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[43mscan_p\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:2789\u001b[0m, in \u001b[0;36mAxisPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 2785\u001b[0m axis_main \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m((axis_frame(a)\u001b[38;5;241m.\u001b[39mmain_trace \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m used_axis_names(\u001b[38;5;28mself\u001b[39m, params)),\n\u001b[1;32m 2786\u001b[0m default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[38;5;28mgetattr\u001b[39m(t, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 2787\u001b[0m top_trace \u001b[38;5;241m=\u001b[39m (top_trace \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis_main \u001b[38;5;129;01mor\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mlevel \u001b[38;5;241m<\u001b[39m top_trace\u001b[38;5;241m.\u001b[39mlevel\n\u001b[1;32m 2788\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mwith_cur_sublevel())\n\u001b[0;32m-> 2789\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtop_trace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:391\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pop_level(trace\u001b[38;5;241m.\u001b[39mlevel):\n\u001b[0;32m--> 391\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 392\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:879\u001b[0m, in \u001b[0;36mEvalTrace.process_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 877\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m call_impl_with_key_reuse_checks(primitive, primitive\u001b[38;5;241m.\u001b[39mimpl, \u001b[38;5;241m*\u001b[39mtracers, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams)\n\u001b[1;32m 878\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 879\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mprimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mimpl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mtracers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/dispatch.py:86\u001b[0m, in \u001b[0;36mapply_primitive\u001b[0;34m(prim, *args, **params)\u001b[0m\n\u001b[1;32m 84\u001b[0m prev \u001b[38;5;241m=\u001b[39m lib\u001b[38;5;241m.\u001b[39mjax_jit\u001b[38;5;241m.\u001b[39mswap_thread_local_state_disable_jit(\u001b[38;5;28;01mFalse\u001b[39;00m)\n\u001b[1;32m 85\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m---> 86\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43mfun\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 87\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 88\u001b[0m lib\u001b[38;5;241m.\u001b[39mjax_jit\u001b[38;5;241m.\u001b[39mswap_thread_local_state_disable_jit(prev)\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:304\u001b[0m, in \u001b[0;36m_cpp_pjit..cache_miss\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 302\u001b[0m \u001b[38;5;129m@api_boundary\u001b[39m\n\u001b[1;32m 303\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcache_miss\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m--> 304\u001b[0m outs, out_flat, out_tree, args_flat, jaxpr, attrs_tracked \u001b[38;5;241m=\u001b[39m \u001b[43m_python_pjit_helper\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 305\u001b[0m \u001b[43m \u001b[49m\u001b[43mjit_info\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 306\u001b[0m executable \u001b[38;5;241m=\u001b[39m _read_most_recent_pjit_call_executable(jaxpr)\n\u001b[1;32m 307\u001b[0m maybe_fastpath_data \u001b[38;5;241m=\u001b[39m _get_fastpath_data(\n\u001b[1;32m 308\u001b[0m executable, out_tree, args_flat, out_flat, attrs_tracked, jaxpr\u001b[38;5;241m.\u001b[39meffects,\n\u001b[1;32m 309\u001b[0m jaxpr\u001b[38;5;241m.\u001b[39mconsts, jit_info\u001b[38;5;241m.\u001b[39mabstracted_axes)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:181\u001b[0m, in \u001b[0;36m_python_pjit_helper\u001b[0;34m(jit_info, *args, **kwargs)\u001b[0m\n\u001b[1;32m 178\u001b[0m args_flat \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m*\u001b[39minit_states, \u001b[38;5;241m*\u001b[39margs_flat]\n\u001b[1;32m 180\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 181\u001b[0m out_flat \u001b[38;5;241m=\u001b[39m \u001b[43mpjit_p\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs_flat\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 182\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m pxla\u001b[38;5;241m.\u001b[39mDeviceAssignmentMismatchError \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[1;32m 183\u001b[0m fails, \u001b[38;5;241m=\u001b[39m e\u001b[38;5;241m.\u001b[39margs\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:2789\u001b[0m, in \u001b[0;36mAxisPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 2785\u001b[0m axis_main \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmax\u001b[39m((axis_frame(a)\u001b[38;5;241m.\u001b[39mmain_trace \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m used_axis_names(\u001b[38;5;28mself\u001b[39m, params)),\n\u001b[1;32m 2786\u001b[0m default\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, key\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mlambda\u001b[39;00m t: \u001b[38;5;28mgetattr\u001b[39m(t, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlevel\u001b[39m\u001b[38;5;124m'\u001b[39m, \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m))\n\u001b[1;32m 2787\u001b[0m top_trace \u001b[38;5;241m=\u001b[39m (top_trace \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis_main \u001b[38;5;129;01mor\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mlevel \u001b[38;5;241m<\u001b[39m top_trace\u001b[38;5;241m.\u001b[39mlevel\n\u001b[1;32m 2788\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m axis_main\u001b[38;5;241m.\u001b[39mwith_cur_sublevel())\n\u001b[0;32m-> 2789\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mtop_trace\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:391\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pop_level(trace\u001b[38;5;241m.\u001b[39mlevel):\n\u001b[0;32m--> 391\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprocess_primitive\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 392\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:879\u001b[0m, in \u001b[0;36mEvalTrace.process_primitive\u001b[0;34m(self, primitive, tracers, params)\u001b[0m\n\u001b[1;32m 877\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m call_impl_with_key_reuse_checks(primitive, primitive\u001b[38;5;241m.\u001b[39mimpl, \u001b[38;5;241m*\u001b[39mtracers, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams)\n\u001b[1;32m 878\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 879\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mprimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mimpl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mtracers\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1525\u001b[0m, in \u001b[0;36m_pjit_call_impl\u001b[0;34m(jaxpr, in_shardings, out_shardings, in_layouts, out_layouts, resource_env, donated_invars, name, keep_unused, inline, *args)\u001b[0m\n\u001b[1;32m 1522\u001b[0m donated_argnums \u001b[38;5;241m=\u001b[39m [i \u001b[38;5;28;01mfor\u001b[39;00m i, d \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28menumerate\u001b[39m(donated_invars) \u001b[38;5;28;01mif\u001b[39;00m d]\n\u001b[1;32m 1523\u001b[0m has_explicit_sharding \u001b[38;5;241m=\u001b[39m _pjit_explicit_sharding(\n\u001b[1;32m 1524\u001b[0m in_shardings, out_shardings, \u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[0;32m-> 1525\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mxc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_xla\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpjit\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1526\u001b[0m \u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcall_impl_cache_miss\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdonated_argnums\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1527\u001b[0m \u001b[43m \u001b[49m\u001b[43mtree_util\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdispatch_registry\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1528\u001b[0m \u001b[43m \u001b[49m\u001b[43mpxla\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mshard_arg\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;66;43;03m# type: ignore\u001b[39;49;00m\n\u001b[1;32m 1529\u001b[0m \u001b[43m \u001b[49m\u001b[43m_get_cpp_global_cache\u001b[49m\u001b[43m(\u001b[49m\u001b[43mhas_explicit_sharding\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1508\u001b[0m, in \u001b[0;36m_pjit_call_impl..call_impl_cache_miss\u001b[0;34m(*args_, **kwargs_)\u001b[0m\n\u001b[1;32m 1507\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcall_impl_cache_miss\u001b[39m(\u001b[38;5;241m*\u001b[39margs_, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs_):\n\u001b[0;32m-> 1508\u001b[0m out_flat, compiled \u001b[38;5;241m=\u001b[39m \u001b[43m_pjit_call_impl_python\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1509\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1510\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1511\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mresource_env\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresource_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1512\u001b[0m \u001b[43m \u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_unused\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_unused\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1513\u001b[0m \u001b[43m \u001b[49m\u001b[43minline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minline\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1514\u001b[0m fastpath_data \u001b[38;5;241m=\u001b[39m _get_fastpath_data(\n\u001b[1;32m 1515\u001b[0m compiled, tree_structure(out_flat), args, out_flat, [], jaxpr\u001b[38;5;241m.\u001b[39meffects,\n\u001b[1;32m 1516\u001b[0m jaxpr\u001b[38;5;241m.\u001b[39mconsts, \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 1517\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m out_flat, fastpath_data\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1434\u001b[0m, in \u001b[0;36m_pjit_call_impl_python\u001b[0;34m(jaxpr, in_shardings, out_shardings, in_layouts, out_layouts, resource_env, donated_invars, name, keep_unused, inline, *args)\u001b[0m\n\u001b[1;32m 1429\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_pjit_call_impl_python\u001b[39m(\n\u001b[1;32m 1430\u001b[0m \u001b[38;5;241m*\u001b[39margs, jaxpr, in_shardings, out_shardings, in_layouts, out_layouts,\n\u001b[1;32m 1431\u001b[0m resource_env, donated_invars, name, keep_unused, inline):\n\u001b[1;32m 1432\u001b[0m \u001b[38;5;28;01mglobal\u001b[39;00m _most_recent_pjit_call_executable\n\u001b[0;32m-> 1434\u001b[0m compiled \u001b[38;5;241m=\u001b[39m \u001b[43m_resolve_and_lower\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1435\u001b[0m \u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1436\u001b[0m \u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mresource_env\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresource_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1437\u001b[0m \u001b[43m \u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_unused\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_unused\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1438\u001b[0m \u001b[43m \u001b[49m\u001b[43minline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minline\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmlir\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mLoweringParameters\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39mcompile()\n\u001b[1;32m 1440\u001b[0m _most_recent_pjit_call_executable\u001b[38;5;241m.\u001b[39mweak_key_dict[jaxpr] \u001b[38;5;241m=\u001b[39m compiled\n\u001b[1;32m 1441\u001b[0m \u001b[38;5;66;03m# This check is expensive so only do it if enable_checks is on.\u001b[39;00m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1422\u001b[0m, in \u001b[0;36m_resolve_and_lower\u001b[0;34m(args, jaxpr, in_shardings, out_shardings, in_layouts, out_layouts, resource_env, donated_invars, name, keep_unused, inline, lowering_parameters)\u001b[0m\n\u001b[1;32m 1417\u001b[0m in_shardings \u001b[38;5;241m=\u001b[39m _resolve_in_shardings(\n\u001b[1;32m 1418\u001b[0m args, in_shardings, out_shardings,\n\u001b[1;32m 1419\u001b[0m resource_env\u001b[38;5;241m.\u001b[39mphysical_mesh \u001b[38;5;28;01mif\u001b[39;00m resource_env \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m)\n\u001b[1;32m 1420\u001b[0m in_layouts \u001b[38;5;241m=\u001b[39m _resolve_in_layouts(args, in_layouts, in_shardings,\n\u001b[1;32m 1421\u001b[0m jaxpr\u001b[38;5;241m.\u001b[39min_avals)\n\u001b[0;32m-> 1422\u001b[0m lowered \u001b[38;5;241m=\u001b[39m \u001b[43m_pjit_lower\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1423\u001b[0m \u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mresource_env\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1424\u001b[0m \u001b[43m \u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_unused\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minline\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1425\u001b[0m \u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1426\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m lowered\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1535\u001b[0m, in \u001b[0;36m_pjit_lower\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 1534\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_pjit_lower\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m-> 1535\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43m_pjit_lower_cached\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/pjit.py:1572\u001b[0m, in \u001b[0;36m_pjit_lower_cached\u001b[0;34m(jaxpr, in_shardings, out_shardings, in_layouts, out_layouts, resource_env, donated_invars, name, keep_unused, inline, lowering_parameters)\u001b[0m\n\u001b[1;32m 1566\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m pxla\u001b[38;5;241m.\u001b[39mlower_mesh_computation(\n\u001b[1;32m 1567\u001b[0m jaxpr, api_name, name, mesh,\n\u001b[1;32m 1568\u001b[0m in_shardings, out_shardings, donated_invars,\n\u001b[1;32m 1569\u001b[0m \u001b[38;5;28;01mTrue\u001b[39;00m, jaxpr\u001b[38;5;241m.\u001b[39min_avals, tiling_method\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m,\n\u001b[1;32m 1570\u001b[0m lowering_parameters\u001b[38;5;241m=\u001b[39mlowering_parameters)\n\u001b[1;32m 1571\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1572\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mpxla\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlower_sharding_computation\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1573\u001b[0m \u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mapi_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1574\u001b[0m \u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1575\u001b[0m \u001b[43m \u001b[49m\u001b[43mkeep_unused\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_unused\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minline\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minline\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1576\u001b[0m \u001b[43m \u001b[49m\u001b[43mdevices_from_context\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1577\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mmesh\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mmesh\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mempty\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43mlist\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mmesh\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdevices\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mflat\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1578\u001b[0m \u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/profiler.py:335\u001b[0m, in \u001b[0;36mannotate_function..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 333\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 334\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m TraceAnnotation(name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdecorator_kwargs):\n\u001b[0;32m--> 335\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m wrapper\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/pxla.py:2129\u001b[0m, in \u001b[0;36mlower_sharding_computation\u001b[0;34m(closed_jaxpr, api_name, fun_name, in_shardings, out_shardings, in_layouts, out_layouts, donated_invars, keep_unused, inline, devices_from_context, lowering_parameters)\u001b[0m\n\u001b[1;32m 2124\u001b[0m semantic_out_shardings \u001b[38;5;241m=\u001b[39m SemanticallyEqualShardings(\n\u001b[1;32m 2125\u001b[0m out_shardings, global_out_avals) \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 2126\u001b[0m prim_requires_devices \u001b[38;5;241m=\u001b[39m dispatch\u001b[38;5;241m.\u001b[39mjaxpr_has_prim_requiring_devices(jaxpr)\n\u001b[1;32m 2128\u001b[0m (module, keepalive, host_callbacks, unordered_effects, ordered_effects,\n\u001b[0;32m-> 2129\u001b[0m nreps, tuple_args, shape_poly_state) \u001b[38;5;241m=\u001b[39m \u001b[43m_cached_lowering_to_hlo\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2130\u001b[0m \u001b[43m \u001b[49m\u001b[43mclosed_jaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mapi_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mfun_name\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbackend\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43msemantic_in_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2131\u001b[0m \u001b[43m \u001b[49m\u001b[43msemantic_out_shardings\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mlen\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mda_object\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2132\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;28;43mtuple\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mda_object\u001b[49m\u001b[43m)\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mprim_requires_devices\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2133\u001b[0m \u001b[43m \u001b[49m\u001b[43mname_stack\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mall_default_mem_kind\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minout_aliases\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2134\u001b[0m \u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2136\u001b[0m \u001b[38;5;66;03m# backend and device_assignment is passed through to MeshExecutable because\u001b[39;00m\n\u001b[1;32m 2137\u001b[0m \u001b[38;5;66;03m# if keep_unused=False and all in_shardings are pruned, then there is no way\u001b[39;00m\n\u001b[1;32m 2138\u001b[0m \u001b[38;5;66;03m# to get the device_assignment and backend. So pass it to MeshExecutable\u001b[39;00m\n\u001b[1;32m 2139\u001b[0m \u001b[38;5;66;03m# because we calculate the device_assignment and backend before in_shardings,\u001b[39;00m\n\u001b[1;32m 2140\u001b[0m \u001b[38;5;66;03m# etc are pruned.\u001b[39;00m\n\u001b[1;32m 2141\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m MeshComputation(\n\u001b[1;32m 2142\u001b[0m \u001b[38;5;28mstr\u001b[39m(name_stack),\n\u001b[1;32m 2143\u001b[0m module,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 2165\u001b[0m all_default_mem_kind\u001b[38;5;241m=\u001b[39mall_default_mem_kind,\n\u001b[1;32m 2166\u001b[0m all_args_info\u001b[38;5;241m=\u001b[39mall_args_info)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/pxla.py:1941\u001b[0m, in \u001b[0;36m_cached_lowering_to_hlo\u001b[0;34m(closed_jaxpr, api_name, fun_name, backend, semantic_in_shardings, semantic_out_shardings, in_layouts, out_layouts, num_devices, device_assignment, donated_invars, name_stack, all_default_mem_kind, inout_aliases, lowering_parameters)\u001b[0m\n\u001b[1;32m 1936\u001b[0m ordered_effects \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(effects\u001b[38;5;241m.\u001b[39mordered_effects\u001b[38;5;241m.\u001b[39mfilter_in(closed_jaxpr\u001b[38;5;241m.\u001b[39meffects))\n\u001b[1;32m 1938\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m dispatch\u001b[38;5;241m.\u001b[39mlog_elapsed_time(\n\u001b[1;32m 1939\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mFinished jaxpr to MLIR module conversion \u001b[39m\u001b[38;5;132;01m{fun_name}\u001b[39;00m\u001b[38;5;124m in \u001b[39m\u001b[38;5;132;01m{elapsed_time}\u001b[39;00m\u001b[38;5;124m sec\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m 1940\u001b[0m fun_name\u001b[38;5;241m=\u001b[39m\u001b[38;5;28mstr\u001b[39m(name_stack), event\u001b[38;5;241m=\u001b[39mdispatch\u001b[38;5;241m.\u001b[39mJAXPR_TO_MLIR_MODULE_EVENT):\n\u001b[0;32m-> 1941\u001b[0m lowering_result \u001b[38;5;241m=\u001b[39m \u001b[43mmlir\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mlower_jaxpr_to_module\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1942\u001b[0m \u001b[43m \u001b[49m\u001b[43mmodule_name\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1943\u001b[0m \u001b[43m \u001b[49m\u001b[43mclosed_jaxpr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1944\u001b[0m \u001b[43m \u001b[49m\u001b[43mordered_effects\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mordered_effects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1945\u001b[0m \u001b[43m \u001b[49m\u001b[43mbackend_or_name\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbackend\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1946\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;66;43;03m# Optionally, override the lowering platform\u001b[39;49;00m\n\u001b[1;32m 1947\u001b[0m \u001b[43m \u001b[49m\u001b[43mplatforms\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplatforms\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mor\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[43mbackend\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mplatform\u001b[49m\u001b[43m,\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1948\u001b[0m \u001b[43m \u001b[49m\u001b[43maxis_context\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43maxis_ctx\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1949\u001b[0m \u001b[43m \u001b[49m\u001b[43mname_stack\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname_stack\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1950\u001b[0m \u001b[43m \u001b[49m\u001b[43mdonated_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdonated_invars\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1951\u001b[0m \u001b[43m \u001b[49m\u001b[43mreplicated_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreplicated_args\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1952\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_mlir_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1953\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_mlir_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1954\u001b[0m \u001b[43m \u001b[49m\u001b[43min_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1955\u001b[0m \u001b[43m \u001b[49m\u001b[43mout_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_layouts\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1956\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_names\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mand\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43marg_names\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1957\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_names\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mand\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mresult_paths\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1958\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_replicas\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnreps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1959\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_partitions\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_partitions\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1960\u001b[0m \u001b[43m \u001b[49m\u001b[43mall_default_mem_kind\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mall_default_mem_kind\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1961\u001b[0m \u001b[43m \u001b[49m\u001b[43minput_output_aliases\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minout_aliases\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1962\u001b[0m \u001b[43m \u001b[49m\u001b[43mlowering_parameters\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlowering_parameters\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1963\u001b[0m tuple_args \u001b[38;5;241m=\u001b[39m dispatch\u001b[38;5;241m.\u001b[39mshould_tuple_args(\u001b[38;5;28mlen\u001b[39m(global_in_avals), backend\u001b[38;5;241m.\u001b[39mplatform)\n\u001b[1;32m 1964\u001b[0m unordered_effects \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mlist\u001b[39m(\n\u001b[1;32m 1965\u001b[0m effects\u001b[38;5;241m.\u001b[39mordered_effects\u001b[38;5;241m.\u001b[39mfilter_not_in(closed_jaxpr\u001b[38;5;241m.\u001b[39meffects))\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:974\u001b[0m, in \u001b[0;36mlower_jaxpr_to_module\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 972\u001b[0m attrs[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmhlo.num_partitions\u001b[39m\u001b[38;5;124m\"\u001b[39m] \u001b[38;5;241m=\u001b[39m i32_attr(num_partitions)\n\u001b[1;32m 973\u001b[0m replace_tokens_with_dummy \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[0;32m--> 974\u001b[0m \u001b[43mlower_jaxpr_to_fun\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 975\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmain\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mordered_effects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 976\u001b[0m \u001b[43m \u001b[49m\u001b[43mname_stack\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mname_stack\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 977\u001b[0m \u001b[43m \u001b[49m\u001b[43mpublic\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m,\u001b[49m\n\u001b[1;32m 978\u001b[0m \u001b[43m \u001b[49m\u001b[43mcreate_tokens\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreplace_tokens_with_dummy\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 979\u001b[0m \u001b[43m \u001b[49m\u001b[43mreplace_tokens_with_dummy\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreplace_tokens_with_dummy\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 980\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_output_tokens\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m,\u001b[49m\n\u001b[1;32m 981\u001b[0m \u001b[43m \u001b[49m\u001b[43mreplicated_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreplicated_args\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 982\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marg_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 983\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_shardings\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresult_shardings\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 984\u001b[0m \u001b[43m \u001b[49m\u001b[43minput_output_aliases\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43minput_output_aliases\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 985\u001b[0m \u001b[43m \u001b[49m\u001b[43mxla_donated_args\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mxla_donated_args\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 986\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_names\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marg_names\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 987\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_names\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresult_names\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 988\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_memory_kinds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43marg_memory_kinds\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 989\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_memory_kinds\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresult_memory_kinds\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 990\u001b[0m \u001b[43m \u001b[49m\u001b[43marg_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43min_layouts\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 991\u001b[0m \u001b[43m \u001b[49m\u001b[43mresult_layouts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mout_layouts\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 993\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 994\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m ctx\u001b[38;5;241m.\u001b[39mmodule\u001b[38;5;241m.\u001b[39moperation\u001b[38;5;241m.\u001b[39mverify():\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:1438\u001b[0m, in \u001b[0;36mlower_jaxpr_to_fun\u001b[0;34m(ctx, name, jaxpr, effects, name_stack, create_tokens, public, replace_tokens_with_dummy, replicated_args, arg_shardings, result_shardings, use_sharding_annotations, input_output_aliases, xla_donated_args, num_output_tokens, api_name, arg_names, result_names, arg_memory_kinds, result_memory_kinds, arg_layouts, result_layouts)\u001b[0m\n\u001b[1;32m 1436\u001b[0m callee_name_stack \u001b[38;5;241m=\u001b[39m name_stack\u001b[38;5;241m.\u001b[39mextend(util\u001b[38;5;241m.\u001b[39mwrap_name(name, api_name))\n\u001b[1;32m 1437\u001b[0m consts \u001b[38;5;241m=\u001b[39m [ir_constants(xla\u001b[38;5;241m.\u001b[39mcanonicalize_dtype(x)) \u001b[38;5;28;01mfor\u001b[39;00m x \u001b[38;5;129;01min\u001b[39;00m jaxpr\u001b[38;5;241m.\u001b[39mconsts]\n\u001b[0;32m-> 1438\u001b[0m out_vals, tokens_out \u001b[38;5;241m=\u001b[39m \u001b[43mjaxpr_subcomp\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1439\u001b[0m \u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mjaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mcallee_name_stack\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtokens_in\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1440\u001b[0m \u001b[43m \u001b[49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdim_var_values\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdim_var_values\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1441\u001b[0m outs \u001b[38;5;241m=\u001b[39m []\n\u001b[1;32m 1442\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m create_tokens:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:1622\u001b[0m, in \u001b[0;36mjaxpr_subcomp\u001b[0;34m(ctx, jaxpr, name_stack, tokens, consts, dim_var_values, *args)\u001b[0m\n\u001b[1;32m 1619\u001b[0m rule_ctx \u001b[38;5;241m=\u001b[39m rule_ctx\u001b[38;5;241m.\u001b[39mreplace(axis_size_env\u001b[38;5;241m=\u001b[39maxis_size_env)\n\u001b[1;32m 1621\u001b[0m rule_inputs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmap\u001b[39m(_unwrap_singleton_ir_values, in_nodes)\n\u001b[0;32m-> 1622\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[43mlower_per_platform\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrule_ctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprimitive\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1623\u001b[0m \u001b[43m \u001b[49m\u001b[43mplatform_rules\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdefault_rule\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1624\u001b[0m \u001b[43m \u001b[49m\u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43meffects\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 1625\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mrule_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1627\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m effects:\n\u001b[1;32m 1628\u001b[0m \u001b[38;5;66;03m# If there were ordered effects in the primitive, there should be output\u001b[39;00m\n\u001b[1;32m 1629\u001b[0m \u001b[38;5;66;03m# tokens we need for subsequent ordered effects.\u001b[39;00m\n\u001b[1;32m 1630\u001b[0m tokens_out \u001b[38;5;241m=\u001b[39m rule_ctx\u001b[38;5;241m.\u001b[39mtokens_out\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:1730\u001b[0m, in \u001b[0;36mlower_per_platform\u001b[0;34m(ctx, description, platform_rules, default_rule, effects, *rule_args, **rule_kwargs)\u001b[0m\n\u001b[1;32m 1728\u001b[0m \u001b[38;5;66;03m# If there is a single rule left just apply the rule, without conditionals.\u001b[39;00m\n\u001b[1;32m 1729\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(kept_rules) \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m-> 1730\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mkept_rules\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m(\u001b[49m\u001b[43mctx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mrule_args\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mrule_kwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1732\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(platforms) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(kept_rules) \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m2\u001b[39m, (platforms, kept_rules)\n\u001b[1;32m 1733\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(ctx\u001b[38;5;241m.\u001b[39mdim_var_values) \u001b[38;5;241m>\u001b[39m\u001b[38;5;241m=\u001b[39m \u001b[38;5;241m1\u001b[39m, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mMust have a platform_index variable\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/mlir.py:1814\u001b[0m, in \u001b[0;36mlower_fun..f_lowered\u001b[0;34m(ctx, *args, **params)\u001b[0m\n\u001b[1;32m 1812\u001b[0m jaxpr, _, consts \u001b[38;5;241m=\u001b[39m pe\u001b[38;5;241m.\u001b[39mtrace_to_jaxpr_dynamic2(wrapped_fun)\n\u001b[1;32m 1813\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 1814\u001b[0m jaxpr, _, consts, () \u001b[38;5;241m=\u001b[39m \u001b[43mpe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrace_to_jaxpr_dynamic\u001b[49m\u001b[43m(\u001b[49m\u001b[43mwrapped_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mctx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mavals_in\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1815\u001b[0m \u001b[38;5;66;03m# TODO(frostig,mattjj): check ctx.avals_out against jaxpr avals out?\u001b[39;00m\n\u001b[1;32m 1817\u001b[0m out, tokens \u001b[38;5;241m=\u001b[39m jaxpr_subcomp(\n\u001b[1;32m 1818\u001b[0m ctx\u001b[38;5;241m.\u001b[39mmodule_context, jaxpr, ctx\u001b[38;5;241m.\u001b[39mname_stack, ctx\u001b[38;5;241m.\u001b[39mtokens_in,\n\u001b[1;32m 1819\u001b[0m _ir_consts(consts), \u001b[38;5;241m*\u001b[39m\u001b[38;5;28mmap\u001b[39m(wrap_singleton_ir_values, args),\n\u001b[1;32m 1820\u001b[0m dim_var_values\u001b[38;5;241m=\u001b[39mctx\u001b[38;5;241m.\u001b[39mdim_var_values)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/profiler.py:335\u001b[0m, in \u001b[0;36mannotate_function..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 333\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 334\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m TraceAnnotation(name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdecorator_kwargs):\n\u001b[0;32m--> 335\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m wrapper\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:2326\u001b[0m, in \u001b[0;36mtrace_to_jaxpr_dynamic\u001b[0;34m(fun, in_avals, debug_info, keep_inputs)\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m core\u001b[38;5;241m.\u001b[39mnew_main(DynamicJaxprTrace, dynamic\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m main: \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 2325\u001b[0m main\u001b[38;5;241m.\u001b[39mjaxpr_stack \u001b[38;5;241m=\u001b[39m () \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[0;32m-> 2326\u001b[0m jaxpr, out_avals, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m \u001b[43mtrace_to_subjaxpr_dynamic\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2327\u001b[0m \u001b[43m \u001b[49m\u001b[43mfun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmain\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_inputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdebug_info\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2328\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m main, fun\n\u001b[1;32m 2329\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m jaxpr, out_avals, consts, attrs_tracked\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:2348\u001b[0m, in \u001b[0;36mtrace_to_subjaxpr_dynamic\u001b[0;34m(fun, main, in_avals, keep_inputs, debug_info)\u001b[0m\n\u001b[1;32m 2346\u001b[0m in_tracers \u001b[38;5;241m=\u001b[39m _input_type_to_tracers(trace\u001b[38;5;241m.\u001b[39mnew_arg, in_avals)\n\u001b[1;32m 2347\u001b[0m in_tracers_ \u001b[38;5;241m=\u001b[39m [t \u001b[38;5;28;01mfor\u001b[39;00m t, keep \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(in_tracers, keep_inputs) \u001b[38;5;28;01mif\u001b[39;00m keep]\n\u001b[0;32m-> 2348\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[43mfun\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_wrapped\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43min_tracers_\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2349\u001b[0m out_tracers \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmap\u001b[39m(trace\u001b[38;5;241m.\u001b[39mfull_raise, ans)\n\u001b[1;32m 2350\u001b[0m jaxpr, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m frame\u001b[38;5;241m.\u001b[39mto_jaxpr(out_tracers)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/linear_util.py:192\u001b[0m, in \u001b[0;36mWrappedFun.call_wrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 189\u001b[0m gen \u001b[38;5;241m=\u001b[39m gen_static_args \u001b[38;5;241m=\u001b[39m out_store \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 192\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m:\n\u001b[1;32m 194\u001b[0m \u001b[38;5;66;03m# Some transformations yield from inside context managers, so we have to\u001b[39;00m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;66;03m# interrupt them before reraising the exception. Otherwise they will only\u001b[39;00m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;66;03m# get garbage-collected at some later time, running their cleanup tasks\u001b[39;00m\n\u001b[1;32m 197\u001b[0m \u001b[38;5;66;03m# only after this exception is handled, which can corrupt the global\u001b[39;00m\n\u001b[1;32m 198\u001b[0m \u001b[38;5;66;03m# state.\u001b[39;00m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m stack:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:476\u001b[0m, in \u001b[0;36m_scan_impl\u001b[0;34m(***failed resolving arguments***)\u001b[0m\n\u001b[1;32m 473\u001b[0m split \u001b[38;5;241m=\u001b[39m partial(_split_leading_dim, length_div)\n\u001b[1;32m 474\u001b[0m xs, xs_rem \u001b[38;5;241m=\u001b[39m unzip2(_map(split, x_avals, xs))\n\u001b[0;32m--> 476\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43m_scan_impl_block_unrolled\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 477\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43minit\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mxs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreverse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlength\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlength_div\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 478\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_consts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_consts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_carry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_carry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlinear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 479\u001b[0m \u001b[43m \u001b[49m\u001b[43mblock_length\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43munroll\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mf_impl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mf_impl\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mx_avals\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mx_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_avals\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43my_avals\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 481\u001b[0m carry, ys \u001b[38;5;241m=\u001b[39m split_list(outs, [num_carry])\n\u001b[1;32m 483\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rem \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0\u001b[39m:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:441\u001b[0m, in \u001b[0;36m_scan_impl_block_unrolled\u001b[0;34m(reverse, length, num_consts, num_carry, linear, block_length, f_impl, x_avals, y_avals, *args)\u001b[0m\n\u001b[1;32m 434\u001b[0m y_block_avals \u001b[38;5;241m=\u001b[39m _map(prepend_aval, y_avals)\n\u001b[1;32m 436\u001b[0m f_impl_block \u001b[38;5;241m=\u001b[39m partial(\n\u001b[1;32m 437\u001b[0m _scan_impl_unrolled, reverse\u001b[38;5;241m=\u001b[39mreverse, length\u001b[38;5;241m=\u001b[39mblock_length,\n\u001b[1;32m 438\u001b[0m num_consts\u001b[38;5;241m=\u001b[39mnum_consts, num_carry\u001b[38;5;241m=\u001b[39mnum_carry, linear\u001b[38;5;241m=\u001b[39mlinear,\n\u001b[1;32m 439\u001b[0m f_impl\u001b[38;5;241m=\u001b[39mf_impl, x_avals\u001b[38;5;241m=\u001b[39mx_avals, y_avals\u001b[38;5;241m=\u001b[39my_avals)\n\u001b[0;32m--> 441\u001b[0m outs \u001b[38;5;241m=\u001b[39m \u001b[43m_scan_impl_loop\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 442\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43minit\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mxs_block\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mreverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mreverse\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlength\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_blocks\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 443\u001b[0m \u001b[43m \u001b[49m\u001b[43mnum_consts\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_consts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnum_carry\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mnum_carry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlinear\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlinear\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 444\u001b[0m \u001b[43m \u001b[49m\u001b[43mf_impl\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mf_impl_block\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mx_avals\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mx_block_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43my_avals\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43my_block_avals\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 446\u001b[0m carry, ys_blocks \u001b[38;5;241m=\u001b[39m split_list(outs, [num_carry])\n\u001b[1;32m 447\u001b[0m combine \u001b[38;5;241m=\u001b[39m partial(_combine_leading, num_blocks, block_length)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:419\u001b[0m, in \u001b[0;36m_scan_impl_loop\u001b[0;34m(reverse, length, num_consts, num_carry, linear, f_impl, x_avals, y_avals, *args)\u001b[0m\n\u001b[1;32m 417\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 418\u001b[0m init_val \u001b[38;5;241m=\u001b[39m [lax\u001b[38;5;241m.\u001b[39m_const(length, \u001b[38;5;241m0\u001b[39m)] \u001b[38;5;241m+\u001b[39m init \u001b[38;5;241m+\u001b[39m ys_init\n\u001b[0;32m--> 419\u001b[0m _, \u001b[38;5;241m*\u001b[39mouts \u001b[38;5;241m=\u001b[39m \u001b[43mwhile_loop\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcond_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbody_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minit_val\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 420\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m outs\n", - " \u001b[0;31m[... skipping hidden 1 frame]\u001b[0m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:1393\u001b[0m, in \u001b[0;36mwhile_loop\u001b[0;34m(cond_fun, body_fun, init_val)\u001b[0m\n\u001b[1;32m 1386\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m init_vals, init_avals, body_jaxpr, in_tree, cond_jaxpr, cond_consts, body_consts, body_tree\n\u001b[1;32m 1388\u001b[0m \u001b[38;5;66;03m# The body input and output avals must match exactly. However, we want to account for\u001b[39;00m\n\u001b[1;32m 1389\u001b[0m \u001b[38;5;66;03m# the case when init contains weakly-typed values (e.g. Python scalars), with avals that\u001b[39;00m\n\u001b[1;32m 1390\u001b[0m \u001b[38;5;66;03m# may not match the output despite being compatible by virtue of their weak type.\u001b[39;00m\n\u001b[1;32m 1391\u001b[0m \u001b[38;5;66;03m# To do this, we compute the jaxpr in two passes: first with the raw inputs, and if\u001b[39;00m\n\u001b[1;32m 1392\u001b[0m \u001b[38;5;66;03m# necessary, a second time with modified init values.\u001b[39;00m\n\u001b[0;32m-> 1393\u001b[0m init_vals, init_avals, body_jaxpr, in_tree, \u001b[38;5;241m*\u001b[39mrest \u001b[38;5;241m=\u001b[39m \u001b[43m_create_jaxpr\u001b[49m\u001b[43m(\u001b[49m\u001b[43minit_val\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1394\u001b[0m new_init_vals, changed \u001b[38;5;241m=\u001b[39m _promote_weak_typed_inputs(init_vals, init_avals, body_jaxpr\u001b[38;5;241m.\u001b[39mout_avals)\n\u001b[1;32m 1395\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m changed:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:1376\u001b[0m, in \u001b[0;36mwhile_loop.._create_jaxpr\u001b[0;34m(init_val)\u001b[0m\n\u001b[1;32m 1373\u001b[0m init_avals \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mtuple\u001b[39m(_map(_abstractify, init_vals))\n\u001b[1;32m 1374\u001b[0m cond_jaxpr, cond_consts, cond_tree \u001b[38;5;241m=\u001b[39m _initial_style_jaxpr(\n\u001b[1;32m 1375\u001b[0m cond_fun, in_tree, init_avals, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwhile_cond\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m-> 1376\u001b[0m body_jaxpr, body_consts, body_tree \u001b[38;5;241m=\u001b[39m \u001b[43m_initial_style_jaxpr\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 1377\u001b[0m \u001b[43m \u001b[49m\u001b[43mbody_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_tree\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43minit_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mwhile_loop\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1378\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m treedef_is_leaf(cond_tree) \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(cond_jaxpr\u001b[38;5;241m.\u001b[39mout_avals) \u001b[38;5;241m!=\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[1;32m 1379\u001b[0m msg \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcond_fun must return a boolean scalar, but got pytree \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/common.py:67\u001b[0m, in \u001b[0;36m_initial_style_jaxpr\u001b[0;34m(fun, in_tree, in_avals, primitive_name)\u001b[0m\n\u001b[1;32m 64\u001b[0m \u001b[38;5;129m@weakref_lru_cache\u001b[39m\n\u001b[1;32m 65\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21m_initial_style_jaxpr\u001b[39m(fun: Callable, in_tree, in_avals,\n\u001b[1;32m 66\u001b[0m primitive_name: \u001b[38;5;28mstr\u001b[39m \u001b[38;5;241m|\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m):\n\u001b[0;32m---> 67\u001b[0m jaxpr, consts, out_tree, () \u001b[38;5;241m=\u001b[39m \u001b[43m_initial_style_open_jaxpr\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 68\u001b[0m \u001b[43m \u001b[49m\u001b[43mfun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_tree\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mprimitive_name\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 69\u001b[0m closed_jaxpr \u001b[38;5;241m=\u001b[39m pe\u001b[38;5;241m.\u001b[39mclose_jaxpr(pe\u001b[38;5;241m.\u001b[39mconvert_constvars_jaxpr(jaxpr))\n\u001b[1;32m 70\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m closed_jaxpr, consts, out_tree\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/common.py:60\u001b[0m, in \u001b[0;36m_initial_style_open_jaxpr\u001b[0;34m(fun, in_tree, in_avals, primitive_name)\u001b[0m\n\u001b[1;32m 57\u001b[0m wrapped_fun, out_tree \u001b[38;5;241m=\u001b[39m flatten_fun_nokwargs(lu\u001b[38;5;241m.\u001b[39mwrap_init(fun), in_tree)\n\u001b[1;32m 58\u001b[0m debug \u001b[38;5;241m=\u001b[39m pe\u001b[38;5;241m.\u001b[39mdebug_info(fun, in_tree, out_tree, \u001b[38;5;28;01mFalse\u001b[39;00m,\n\u001b[1;32m 59\u001b[0m primitive_name \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 60\u001b[0m jaxpr, _, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m \u001b[43mpe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrace_to_jaxpr_dynamic\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 61\u001b[0m \u001b[43m \u001b[49m\u001b[43mwrapped_fun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdebug\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 62\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m jaxpr, consts, out_tree(), attrs_tracked\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/profiler.py:335\u001b[0m, in \u001b[0;36mannotate_function..wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 332\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(func)\n\u001b[1;32m 333\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrapper\u001b[39m(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m 334\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m TraceAnnotation(name, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mdecorator_kwargs):\n\u001b[0;32m--> 335\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 336\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m wrapper\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:2326\u001b[0m, in \u001b[0;36mtrace_to_jaxpr_dynamic\u001b[0;34m(fun, in_avals, debug_info, keep_inputs)\u001b[0m\n\u001b[1;32m 2324\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m core\u001b[38;5;241m.\u001b[39mnew_main(DynamicJaxprTrace, dynamic\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m) \u001b[38;5;28;01mas\u001b[39;00m main: \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[1;32m 2325\u001b[0m main\u001b[38;5;241m.\u001b[39mjaxpr_stack \u001b[38;5;241m=\u001b[39m () \u001b[38;5;66;03m# type: ignore\u001b[39;00m\n\u001b[0;32m-> 2326\u001b[0m jaxpr, out_avals, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m \u001b[43mtrace_to_subjaxpr_dynamic\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2327\u001b[0m \u001b[43m \u001b[49m\u001b[43mfun\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmain\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43min_avals\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeep_inputs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mkeep_inputs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdebug_info\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdebug_info\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2328\u001b[0m \u001b[38;5;28;01mdel\u001b[39;00m main, fun\n\u001b[1;32m 2329\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m jaxpr, out_avals, consts, attrs_tracked\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:2348\u001b[0m, in \u001b[0;36mtrace_to_subjaxpr_dynamic\u001b[0;34m(fun, main, in_avals, keep_inputs, debug_info)\u001b[0m\n\u001b[1;32m 2346\u001b[0m in_tracers \u001b[38;5;241m=\u001b[39m _input_type_to_tracers(trace\u001b[38;5;241m.\u001b[39mnew_arg, in_avals)\n\u001b[1;32m 2347\u001b[0m in_tracers_ \u001b[38;5;241m=\u001b[39m [t \u001b[38;5;28;01mfor\u001b[39;00m t, keep \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(in_tracers, keep_inputs) \u001b[38;5;28;01mif\u001b[39;00m keep]\n\u001b[0;32m-> 2348\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[43mfun\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcall_wrapped\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43min_tracers_\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2349\u001b[0m out_tracers \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mmap\u001b[39m(trace\u001b[38;5;241m.\u001b[39mfull_raise, ans)\n\u001b[1;32m 2350\u001b[0m jaxpr, consts, attrs_tracked \u001b[38;5;241m=\u001b[39m frame\u001b[38;5;241m.\u001b[39mto_jaxpr(out_tracers)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/linear_util.py:192\u001b[0m, in \u001b[0;36mWrappedFun.call_wrapped\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 189\u001b[0m gen \u001b[38;5;241m=\u001b[39m gen_static_args \u001b[38;5;241m=\u001b[39m out_store \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 191\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m--> 192\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mdict\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 193\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m:\n\u001b[1;32m 194\u001b[0m \u001b[38;5;66;03m# Some transformations yield from inside context managers, so we have to\u001b[39;00m\n\u001b[1;32m 195\u001b[0m \u001b[38;5;66;03m# interrupt them before reraising the exception. Otherwise they will only\u001b[39;00m\n\u001b[1;32m 196\u001b[0m \u001b[38;5;66;03m# get garbage-collected at some later time, running their cleanup tasks\u001b[39;00m\n\u001b[1;32m 197\u001b[0m \u001b[38;5;66;03m# only after this exception is handled, which can corrupt the global\u001b[39;00m\n\u001b[1;32m 198\u001b[0m \u001b[38;5;66;03m# state.\u001b[39;00m\n\u001b[1;32m 199\u001b[0m \u001b[38;5;28;01mwhile\u001b[39;00m stack:\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:407\u001b[0m, in \u001b[0;36m_scan_impl_loop..body_fun\u001b[0;34m(vals)\u001b[0m\n\u001b[1;32m 405\u001b[0m xs_unconsumed \u001b[38;5;241m=\u001b[39m _map(jax\u001b[38;5;241m.\u001b[39mrandom\u001b[38;5;241m.\u001b[39mclone, xs)\n\u001b[1;32m 406\u001b[0m x \u001b[38;5;241m=\u001b[39m _map(partial(_dynamic_index_array, i_), x_avals, xs_unconsumed)\n\u001b[0;32m--> 407\u001b[0m out_flat \u001b[38;5;241m=\u001b[39m \u001b[43mf_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcarry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 408\u001b[0m carry_out, y_updates \u001b[38;5;241m=\u001b[39m split_list(out_flat, [num_carry])\n\u001b[1;32m 409\u001b[0m ys_out \u001b[38;5;241m=\u001b[39m _map(partial(_update_array, i_), y_avals, ys, y_updates)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/lax/control_flow/loops.py:383\u001b[0m, in \u001b[0;36m_scan_impl_unrolled\u001b[0;34m(reverse, length, num_consts, num_carry, linear, f_impl, x_avals, y_avals, *args)\u001b[0m\n\u001b[1;32m 381\u001b[0m i_ \u001b[38;5;241m=\u001b[39m length \u001b[38;5;241m-\u001b[39m i \u001b[38;5;241m-\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m reverse \u001b[38;5;28;01melse\u001b[39;00m i\n\u001b[1;32m 382\u001b[0m x \u001b[38;5;241m=\u001b[39m _map(partial(_index_array, i_), x_avals, xs)\n\u001b[0;32m--> 383\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mf_impl\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mcarry\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 384\u001b[0m carry, y \u001b[38;5;241m=\u001b[39m split_list(out, [num_carry])\n\u001b[1;32m 385\u001b[0m ys\u001b[38;5;241m.\u001b[39mappend(y)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:259\u001b[0m, in \u001b[0;36mjaxpr_as_fun\u001b[0;34m(closed_jaxpr, *args)\u001b[0m\n\u001b[1;32m 257\u001b[0m \u001b[38;5;129m@curry\u001b[39m\n\u001b[1;32m 258\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mjaxpr_as_fun\u001b[39m(closed_jaxpr: ClosedJaxpr, \u001b[38;5;241m*\u001b[39margs):\n\u001b[0;32m--> 259\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43meval_jaxpr\u001b[49m\u001b[43m(\u001b[49m\u001b[43mclosed_jaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mjaxpr\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mclosed_jaxpr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconsts\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:456\u001b[0m, in \u001b[0;36meval_jaxpr\u001b[0;34m(jaxpr, consts, propagate_source_info, *args)\u001b[0m\n\u001b[1;32m 454\u001b[0m traceback \u001b[38;5;241m=\u001b[39m eqn\u001b[38;5;241m.\u001b[39msource_info\u001b[38;5;241m.\u001b[39mtraceback \u001b[38;5;28;01mif\u001b[39;00m propagate_source_info \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[1;32m 455\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m source_info_util\u001b[38;5;241m.\u001b[39muser_context(traceback, name_stack\u001b[38;5;241m=\u001b[39mname_stack):\n\u001b[0;32m--> 456\u001b[0m ans \u001b[38;5;241m=\u001b[39m \u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprimitive\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43msubfuns\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mread\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43meqn\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43minvars\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mbind_params\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 457\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m eqn\u001b[38;5;241m.\u001b[39mprimitive\u001b[38;5;241m.\u001b[39mmultiple_results:\n\u001b[1;32m 458\u001b[0m \u001b[38;5;28mmap\u001b[39m(write, eqn\u001b[38;5;241m.\u001b[39moutvars, ans)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:387\u001b[0m, in \u001b[0;36mPrimitive.bind\u001b[0;34m(self, *args, **params)\u001b[0m\n\u001b[1;32m 384\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mparams):\n\u001b[1;32m 385\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m (\u001b[38;5;129;01mnot\u001b[39;00m config\u001b[38;5;241m.\u001b[39menable_checks\u001b[38;5;241m.\u001b[39mvalue \u001b[38;5;129;01mor\u001b[39;00m\n\u001b[1;32m 386\u001b[0m \u001b[38;5;28mall\u001b[39m(\u001b[38;5;28misinstance\u001b[39m(arg, Tracer) \u001b[38;5;129;01mor\u001b[39;00m valid_jaxtype(arg) \u001b[38;5;28;01mfor\u001b[39;00m arg \u001b[38;5;129;01min\u001b[39;00m args)), args\n\u001b[0;32m--> 387\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbind_with_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfind_top_trace\u001b[49m\u001b[43m(\u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m)\u001b[49m\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:391\u001b[0m, in \u001b[0;36mPrimitive.bind_with_trace\u001b[0;34m(self, trace, args, params)\u001b[0m\n\u001b[1;32m 389\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbind_with_trace\u001b[39m(\u001b[38;5;28mself\u001b[39m, trace, args, params):\n\u001b[1;32m 390\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m pop_level(trace\u001b[38;5;241m.\u001b[39mlevel):\n\u001b[0;32m--> 391\u001b[0m out \u001b[38;5;241m=\u001b[39m trace\u001b[38;5;241m.\u001b[39mprocess_primitive(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mtrace\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfull_raise\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\u001b[49m, params)\n\u001b[1;32m 392\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mmap\u001b[39m(full_lower, out) \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mmultiple_results \u001b[38;5;28;01melse\u001b[39;00m full_lower(out)\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/core.py:490\u001b[0m, in \u001b[0;36mTrace.full_raise\u001b[0;34m(self, val)\u001b[0m\n\u001b[1;32m 488\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpure(val)\n\u001b[1;32m 489\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 490\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mpure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mval\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 491\u001b[0m val\u001b[38;5;241m.\u001b[39m_assert_live()\n\u001b[1;32m 492\u001b[0m level \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mlevel\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:1962\u001b[0m, in \u001b[0;36mDynamicJaxprTrace.new_const\u001b[0;34m(self, c)\u001b[0m\n\u001b[1;32m 1960\u001b[0m aval \u001b[38;5;241m=\u001b[39m raise_to_shaped(get_aval(c), weak_type\u001b[38;5;241m=\u001b[39mdtypes\u001b[38;5;241m.\u001b[39mis_weakly_typed(c))\n\u001b[1;32m 1961\u001b[0m aval \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_lift_tracers_in_aval(aval)\n\u001b[0;32m-> 1962\u001b[0m tracer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_new_const\u001b[49m\u001b[43m(\u001b[49m\u001b[43maval\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mc\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1963\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m tracer\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:1970\u001b[0m, in \u001b[0;36mDynamicJaxprTrace._new_const\u001b[0;34m(self, aval, c)\u001b[0m\n\u001b[1;32m 1968\u001b[0m tracer \u001b[38;5;241m=\u001b[39m DynamicJaxprTracer(\u001b[38;5;28mself\u001b[39m, aval, source_info_util\u001b[38;5;241m.\u001b[39mcurrent())\n\u001b[1;32m 1969\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mframe\u001b[38;5;241m.\u001b[39mtracers\u001b[38;5;241m.\u001b[39mappend(tracer)\n\u001b[0;32m-> 1970\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mframe\u001b[38;5;241m.\u001b[39mtracer_to_var[\u001b[38;5;28mid\u001b[39m(tracer)] \u001b[38;5;241m=\u001b[39m var \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mframe\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnewvar\u001b[49m\u001b[43m(\u001b[49m\u001b[43maval\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1971\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mframe\u001b[38;5;241m.\u001b[39mconstid_to_tracer[\u001b[38;5;28mid\u001b[39m(c)] \u001b[38;5;241m=\u001b[39m tracer\n\u001b[1;32m 1972\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mframe\u001b[38;5;241m.\u001b[39mconstvar_to_val[var] \u001b[38;5;241m=\u001b[39m c\n", - "File \u001b[0;32m~/miniforge3/envs/pymdp/lib/python3.12/site-packages/jax/_src/interpreters/partial_eval.py:1820\u001b[0m, in \u001b[0;36mJaxprStackFrame.newvar\u001b[0;34m(self, aval)\u001b[0m\n\u001b[1;32m 1817\u001b[0m config\u001b[38;5;241m.\u001b[39menable_checks\u001b[38;5;241m.\u001b[39mvalue \u001b[38;5;129;01mand\u001b[39;00m core\u001b[38;5;241m.\u001b[39mcheck_jaxpr(jaxpr)\n\u001b[1;32m 1818\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m jaxpr, out_type, constvals\n\u001b[0;32m-> 1820\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mnewvar\u001b[39m(\u001b[38;5;28mself\u001b[39m, aval):\n\u001b[1;32m 1821\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(aval, DShapedArray):\n\u001b[1;32m 1822\u001b[0m \u001b[38;5;66;03m# this aval may have tracers in it, so we replace those with variables\u001b[39;00m\n\u001b[1;32m 1823\u001b[0m new_shape \u001b[38;5;241m=\u001b[39m [\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtracer_to_var[\u001b[38;5;28mid\u001b[39m(d)] \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28misinstance\u001b[39m(d, Tracer) \u001b[38;5;28;01melse\u001b[39;00m d\n\u001b[1;32m 1824\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m d \u001b[38;5;129;01min\u001b[39;00m aval\u001b[38;5;241m.\u001b[39mshape]\n", - "\u001b[0;31mKeyboardInterrupt\u001b[0m: " - ] - } - ], + "outputs": [], "source": [ "pA0 = 1e4 * A[0] + 1e-4\n", "pB0 = 1e4 * B[0] + 1e-4\n", diff --git a/examples/agent_demo.ipynb b/examples/legacy/agent_demo.ipynb similarity index 100% rename from examples/agent_demo.ipynb rename to examples/legacy/agent_demo.ipynb diff --git a/examples/free_energy_calculation.ipynb b/examples/legacy/free_energy_calculation.ipynb similarity index 100% rename from examples/free_energy_calculation.ipynb rename to examples/legacy/free_energy_calculation.ipynb diff --git a/examples/gridworld_tutorial_1.ipynb b/examples/legacy/gridworld_tutorial_1.ipynb similarity index 100% rename from examples/gridworld_tutorial_1.ipynb rename to examples/legacy/gridworld_tutorial_1.ipynb diff --git a/examples/gridworld_tutorial_2.ipynb b/examples/legacy/gridworld_tutorial_2.ipynb similarity index 100% rename from examples/gridworld_tutorial_2.ipynb rename to examples/legacy/gridworld_tutorial_2.ipynb diff --git a/examples/tmaze_demo.ipynb b/examples/legacy/tmaze_demo.ipynb similarity index 100% rename from examples/tmaze_demo.ipynb rename to examples/legacy/tmaze_demo.ipynb diff --git a/examples/tmaze_learning_demo.ipynb b/examples/legacy/tmaze_learning_demo.ipynb similarity index 100% rename from examples/tmaze_learning_demo.ipynb rename to examples/legacy/tmaze_learning_demo.ipynb diff --git a/examples/mcts/graph_worlds_demo.ipynb b/examples/mcts/graph_worlds_demo.ipynb new file mode 100644 index 00000000..97003cf5 --- /dev/null +++ b/examples/mcts/graph_worlds_demo.ipynb @@ -0,0 +1,1147 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from jax import random as jr, lax, nn\n", + "import jax.tree_util as jtu\n", + "from pymdp.jax.agent import Agent\n", + "from typing import Sequence, Optional\n", + "\n", + "import mctx\n", + "import jax.numpy as jnp\n", + "import chex\n", + "import pygraphviz\n", + "\n", + "from IPython.display import SVG" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Utility function to convert and display the MCTX output to an SVG visualization of the search tree." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "def convert_tree_to_graph(\n", + " tree: mctx.Tree,\n", + " action_labels: Optional[Sequence[str]] = None,\n", + " batch_index: int = 0\n", + ") -> pygraphviz.AGraph:\n", + " \"\"\"Converts a search tree into a Graphviz graph.\n", + "\n", + " Args:\n", + " tree: A `Tree` containing a batch of search data.\n", + " action_labels: Optional labels for edges, defaults to the action index.\n", + " batch_index: Index of the batch element to plot.\n", + "\n", + " Returns:\n", + " A Graphviz graph representation of `tree`.\n", + " \"\"\"\n", + " chex.assert_rank(tree.node_values, 2)\n", + " batch_size = tree.node_values.shape[0]\n", + " if action_labels is None:\n", + " action_labels = range(tree.num_actions)\n", + " elif len(action_labels) != tree.num_actions:\n", + " raise ValueError(\n", + " f\"action_labels {action_labels} has the wrong number of actions \"\n", + " f\"({len(action_labels)}). \"\n", + " f\"Expecting {tree.num_actions}.\")\n", + "\n", + " def node_to_str(node_i, reward=0, discount=1):\n", + " return (f\"{node_i}\\n\"\n", + " f\"Reward: {reward:.2f}\\n\"\n", + " f\"Discount: {discount:.2f}\\n\"\n", + " f\"Value: {tree.node_values[batch_index, node_i]:.2f}\\n\"\n", + " f\"Visits: {tree.node_visits[batch_index, node_i]}\\n\")\n", + "\n", + " def edge_to_str(node_i, a_i):\n", + " node_index = jnp.full([batch_size], node_i)\n", + " probs = nn.softmax(tree.children_prior_logits[batch_index, node_i])\n", + " return (f\"{action_labels[a_i]}\\n\"\n", + " f\"Q: {tree.qvalues(node_index)[batch_index, a_i]:.2f}\\n\" # pytype: disable=unsupported-operands # always-use-return-annotations\n", + " f\"p: {probs[a_i]:.2f}\\n\")\n", + "\n", + " graph = pygraphviz.AGraph(directed=True)\n", + "\n", + " # Add root\n", + " graph.add_node(0, label=node_to_str(node_i=0), color=\"green\")\n", + " # Add all other nodes and connect them up.\n", + " for node_i in range(tree.num_simulations):\n", + " for a_i in range(tree.num_actions):\n", + " # Index of children, or -1 if not expanded\n", + " children_i = tree.children_index[batch_index, node_i, a_i]\n", + " if children_i >= 0:\n", + " graph.add_node(\n", + " children_i,\n", + " label=node_to_str(\n", + " node_i=children_i,\n", + " reward=tree.children_rewards[batch_index, node_i, a_i],\n", + " discount=tree.children_discounts[batch_index, node_i, a_i]),\n", + " color=\"red\")\n", + " graph.add_edge(node_i, children_i, label=edge_to_str(node_i, a_i))\n", + "\n", + " return graph" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's test it on the graph world example as well." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import networkx as nx\n", + "from pymdp.jax.envs import GraphEnv\n", + "from pymdp.jax.envs.graph_worlds import generate_connected_clusters\n", + "\n", + "graph, _ = generate_connected_clusters(cluster_size=1, connections=2)\n", + "env = GraphEnv(graph, object_locations=[2], agent_locations=[1])\n", + "\n", + "\n", + "nx.draw(graph, with_labels=True)" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [], + "source": [ + "A = [a for a in env.params[\"A\"]]\n", + "B = [b for b in env.params[\"B\"]]\n", + "A_dependencies = env.dependencies[\"A\"]\n", + "B_dependencies = env.dependencies[\"B\"]\n", + "\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "C[1] = C[1].at[:, 1].set(1.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "D[0] = D[0].at[0, 1].set(100.0)\n", + "D[1] = D[1].at[0, 2].set(10.0)\n", + "D = jtu.tree_map(lambda x: x / x.sum(), D)\n", + "\n", + "\n", + "batch_size = A[0].shape[0]\n", + "\n", + "agent = Agent(\n", + " A,\n", + " B,\n", + " C,\n", + " D,\n", + " None,\n", + " None,\n", + " None,\n", + " A_dependencies=A_dependencies,\n", + " B_dependencies=B_dependencies,\n", + " onehot_obs=False,\n", + " apply_batch=False\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "(RecurrentFnOutput(reward=Array([0.42654815], dtype=float32), discount=Array([0.90730643], dtype=float32), prior_logits=Array([[-1.0986123, -1.0986123, -1.0986123]], dtype=float32), value=Array([0.], dtype=float32)), [Array([[1.0000000e+00, 2.4699928e-33, 1.9837584e-31]], dtype=float32), Array([[1.850374e-17, 8.333333e-02, 8.333333e-01, 8.333333e-02]], dtype=float32)])\n" + ] + } + ], + "source": [ + "import mctx\n", + "from pymdp.jax.planning.mcts import make_aif_recurrent_fn\n", + "\n", + "recurrent_fn = make_aif_recurrent_fn()\n", + "action = jnp.zeros(1, dtype=jnp.int8)\n", + "rng_key = jr.PRNGKey(111)\n", + "\n", + "print(recurrent_fn(agent, rng_key, action, agent.D))" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.00186435 0.00165571 0.9964799 ]]\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "0\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 1.39\n", + "Visits: 33\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "2\n", + "Reward: 0.43\n", + "Discount: 0.91\n", + "Value: 0.03\n", + "Visits: 13\n", + "\n", + "\n", + "\n", + "0->2\n", + "\n", + "\n", + "0\n", + "Q: 0.45\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "3\n", + "Reward: 0.35\n", + "Discount: 0.08\n", + "Value: 0.80\n", + "Visits: 5\n", + "\n", + "\n", + "\n", + "0->3\n", + "\n", + "\n", + "1\n", + "Q: 0.41\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "1\n", + "Reward: 1.37\n", + "Discount: 0.75\n", + "Value: 1.79\n", + "Visits: 14\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "2\n", + "Q: 2.71\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "5\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.03\n", + "Visits: 12\n", + "\n", + "\n", + "\n", + "2->5\n", + "\n", + "\n", + "0\n", + "Q: 0.03\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "6\n", + "\n", + "6\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "3->6\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "9\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.33\n", + "Visits: 3\n", + "\n", + "\n", + "\n", + "3->9\n", + "\n", + "\n", + "1\n", + "Q: 1.33\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "4\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.92\n", + "Visits: 13\n", + "\n", + "\n", + "\n", + "1->4\n", + "\n", + "\n", + "0\n", + "Q: 1.92\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "8\n", + "\n", + "8\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 10\n", + "\n", + "\n", + "\n", + "5->8\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "31\n", + "\n", + "31\n", + "Reward: 0.37\n", + "Discount: 0.08\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "5->31\n", + "\n", + "\n", + "1\n", + "Q: 0.37\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "12\n", + "\n", + "12\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "9->12\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "15\n", + "\n", + "15\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "9->15\n", + "\n", + "\n", + "1\n", + "Q: 1.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "7\n", + "\n", + "7\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 12\n", + "\n", + "\n", + "\n", + "4->7\n", + "\n", + "\n", + "0\n", + "Q: 1.00\n", + "p: 0.33\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 23, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# %%timeit\n", + "root = mctx.RootFnOutput(\n", + " prior_logits=jnp.log(agent.E),\n", + " value=jnp.zeros((batch_size)),\n", + " embedding=agent.D,\n", + ")\n", + "\n", + "policy_output = mctx.gumbel_muzero_policy(\n", + " agent,\n", + " rng_key,\n", + " root,\n", + " recurrent_fn,\n", + " num_simulations=32,\n", + " max_depth=3\n", + ")\n", + "\n", + "tree_gumbel = policy_output.search_tree\n", + "print(policy_output.action_weights)\n", + "\n", + "graph = convert_tree_to_graph(tree_gumbel)\n", + "svg = graph.draw(format='svg', prog='dot').decode(graph.encoding)\n", + "SVG(svg)" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0.05859375 0.01171875 0.9296875 ]]\n" + ] + }, + { + "data": { + "image/svg+xml": [ + "\n", + "\n", + "\n", + "\n", + "\n", + "0\n", + "\n", + "0\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 1.65\n", + "Visits: 1025\n", + "\n", + "\n", + "\n", + "14\n", + "\n", + "14\n", + "Reward: 0.43\n", + "Discount: 0.91\n", + "Value: 1.22\n", + "Visits: 60\n", + "\n", + "\n", + "\n", + "0->14\n", + "\n", + "\n", + "0\n", + "Q: 1.53\n", + "p: 0.26\n", + "\n", + "\n", + "\n", + "10\n", + "\n", + "10\n", + "Reward: 0.35\n", + "Discount: 0.92\n", + "Value: 0.61\n", + "Visits: 12\n", + "\n", + "\n", + "\n", + "0->10\n", + "\n", + "\n", + "1\n", + "Q: 0.91\n", + "p: 0.31\n", + "\n", + "\n", + "\n", + "1\n", + "\n", + "1\n", + "Reward: 1.37\n", + "Discount: 0.24\n", + "Value: 1.28\n", + "Visits: 952\n", + "\n", + "\n", + "\n", + "0->1\n", + "\n", + "\n", + "2\n", + "Q: 1.67\n", + "p: 0.43\n", + "\n", + "\n", + "\n", + "101\n", + "\n", + "101\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 3\n", + "\n", + "\n", + "\n", + "14->101\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "46\n", + "\n", + "46\n", + "Reward: 0.37\n", + "Discount: 0.92\n", + "Value: 1.10\n", + "Visits: 53\n", + "\n", + "\n", + "\n", + "14->46\n", + "\n", + "\n", + "1\n", + "Q: 1.38\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "104\n", + "\n", + "104\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 3\n", + "\n", + "\n", + "\n", + "14->104\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "33\n", + "\n", + "33\n", + "Reward: 0.37\n", + "Discount: 0.92\n", + "Value: 0.00\n", + "Visits: 7\n", + "\n", + "\n", + "\n", + "10->33\n", + "\n", + "\n", + "0\n", + "Q: 0.37\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "547\n", + "\n", + "547\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "10->547\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "666\n", + "\n", + "666\n", + "Reward: 1.28\n", + "Discount: 0.83\n", + "Value: 0.33\n", + "Visits: 3\n", + "\n", + "\n", + "\n", + "10->666\n", + "\n", + "\n", + "2\n", + "Q: 1.56\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "2\n", + "\n", + "2\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.75\n", + "Visits: 13\n", + "\n", + "\n", + "\n", + "1->2\n", + "\n", + "\n", + "0\n", + "Q: 0.75\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "3\n", + "\n", + "3\n", + "Reward: 0.97\n", + "Discount: 0.33\n", + "Value: 0.97\n", + "Visits: 925\n", + "\n", + "\n", + "\n", + "1->3\n", + "\n", + "\n", + "1\n", + "Q: 1.29\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "9\n", + "\n", + "9\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.75\n", + "Visits: 13\n", + "\n", + "\n", + "\n", + "1->9\n", + "\n", + "\n", + "2\n", + "Q: 0.75\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "397\n", + "\n", + "397\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "101->397\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "203\n", + "\n", + "203\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "46->203\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "280\n", + "\n", + "280\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "46->280\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "95\n", + "\n", + "95\n", + "Reward: 1.21\n", + "Discount: 0.91\n", + "Value: 0.00\n", + "Visits: 48\n", + "\n", + "\n", + "\n", + "46->95\n", + "\n", + "\n", + "2\n", + "Q: 1.21\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "398\n", + "\n", + "398\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 2\n", + "\n", + "\n", + "\n", + "104->398\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "69\n", + "\n", + "69\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 6\n", + "\n", + "\n", + "\n", + "33->69\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "944\n", + "\n", + "944\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "666->944\n", + "\n", + "\n", + "0\n", + "Q: 1.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "794\n", + "\n", + "794\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "666->794\n", + "\n", + "\n", + "1\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "31\n", + "\n", + "31\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "2->31\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "63\n", + "\n", + "63\n", + "Reward: 0.97\n", + "Discount: 0.33\n", + "Value: 0.00\n", + "Visits: 10\n", + "\n", + "\n", + "\n", + "2->63\n", + "\n", + "\n", + "1\n", + "Q: 0.97\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "507\n", + "\n", + "507\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "2->507\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "4\n", + "\n", + "4\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 12\n", + "\n", + "\n", + "\n", + "3->4\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "5\n", + "\n", + "5\n", + "Reward: 1.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 900\n", + "\n", + "\n", + "\n", + "3->5\n", + "\n", + "\n", + "1\n", + "Q: 1.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "13\n", + "\n", + "13\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 12\n", + "\n", + "\n", + "\n", + "3->13\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "32\n", + "\n", + "32\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "9->32\n", + "\n", + "\n", + "0\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "64\n", + "\n", + "64\n", + "Reward: 0.97\n", + "Discount: 0.67\n", + "Value: 0.00\n", + "Visits: 10\n", + "\n", + "\n", + "\n", + "9->64\n", + "\n", + "\n", + "1\n", + "Q: 0.97\n", + "p: 0.33\n", + "\n", + "\n", + "\n", + "508\n", + "\n", + "508\n", + "Reward: 0.00\n", + "Discount: 1.00\n", + "Value: 0.00\n", + "Visits: 1\n", + "\n", + "\n", + "\n", + "9->508\n", + "\n", + "\n", + "2\n", + "Q: 0.00\n", + "p: 0.33\n", + "\n", + "\n", + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# %%timeit\n", + "root = mctx.RootFnOutput(\n", + " prior_logits=jnp.log(agent.E),\n", + " value=jnp.zeros((batch_size)),\n", + " embedding=agent.D,\n", + ")\n", + "\n", + "policy_output = mctx.muzero_policy(\n", + " agent,\n", + " rng_key,\n", + " root,\n", + " recurrent_fn=recurrent_fn,\n", + " num_simulations=1024,\n", + " max_depth=3\n", + ")\n", + "\n", + "tree = policy_output.search_tree\n", + "print(policy_output.action_weights)\n", + "\n", + "graph = convert_tree_to_graph(tree)\n", + "svg = graph.draw(format='svg', prog='dot').decode(graph.encoding)\n", + "SVG(svg)" + ] + }, + { + "cell_type": "code", + "execution_count": 25, + "metadata": {}, + "outputs": [], + "source": [ + "root = mctx.RootFnOutput(\n", + " prior_logits=jnp.log(agent.E),\n", + " value=jnp.zeros((batch_size)),\n", + " embedding=agent.D,\n", + ")\n", + "\n", + "n_pi = len(agent.policies)\n", + "\n", + "# TODO stochastic muzero policy requires decision_recurrent_fn and chance_recurrent_fn\n", + "# mctx.stochastic_muzero_policy(\n", + "# agent,\n", + "# rng_key,\n", + "# root,\n", + "# num_simulations=512,\n", + "# max_depth=3\n", + "# )" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/mcts/grid_world_demo.ipynb b/examples/mcts/grid_world_demo.ipynb new file mode 100644 index 00000000..63fb2301 --- /dev/null +++ b/examples/mcts/grid_world_demo.ipynb @@ -0,0 +1,1099 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Sofisticated inference\n", + "\n", + "In sofisticated inference the choice probability is computed in an iteartive way, using the following recursive relation for expected free energy \n", + "\n", + "\\begin{equation}\n", + "\\begin{split}\n", + " G(u_\\tau| o_{\\leq\\tau}, u_{<\\tau}) &= - \\ln p(u_{\\tau}|u_{<\\tau}) + E_{Q(o_{\\tau+1}, s_{\\tau+1}|u_{\\leq\\tau}. o_{<\\tau})} \\left[ \\ln \\frac{Q(s_{\\tau+1}|u_{\\leq\\tau}, o_{<\\tau})}{P(o_{\\tau+1}, s_{\\tau+1})} \\right] \\\\ \n", + " &\\:\\:\\: + E_{Q(o_{\\tau+1}|u_{\\leq\\tau}, o_{\\leq\\tau}) Q(u_{\\tau+1}|u_{< \\tau + 1}, o_{\\leq\\tau+1})}\\left[G(u_{\\tau + 1}|o_{\\leq \\tau+1}, u_{<\\tau+1} ) \\right]\\\\ \n", + " Q(u_{\\tau}|o_{\\leq\\tau}, u_{<\\tau}) &= \\text{softmax}(- G(u_{\\tau}|o_{\\leq\\tau}, u_{<\\tau})) \\\\ \n", + " G(u_T|o_{\\leq T}, u_{< T}) &= - \\ln p(u_{T}|u_{< T}) + E_{Q(o_{T+1}, s_{T+1}|u_{\\leq T}, o_{< T})} \\left[ \\ln \\frac{Q(s_{T+1}|u_{\\leq T}, o_{< T})}{P(o_{T + 1}, s_{T + 1})} \\right]\n", + "\\end{split}\n", + "\\end{equation}\n", + "\n", + "where we use subscript $" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def get_maze_matrix(size='small'):\n", + " if size == 'small':\n", + " M = np.zeros((3, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + "\n", + " # Set the initial position\n", + " M[2,3] = 1\n", + " \n", + " elif size == 'medium':\n", + " M = np.zeros((5, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[4,1] = 10\n", + " M[4,3] = 11\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[3,2] = 9\n", + "\n", + " # Set the initial position\n", + " M[2,2] = 1\n", + " \n", + " elif size == 'large':\n", + " M = np.zeros((7, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[5,1] = 10\n", + " M[6,1] = 11\n", + " M[5,3] = 13\n", + " M[6,3] = 14\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[4,0] = 9\n", + " M[4,4] = 12\n", + "\n", + " # Set the initial position\n", + " M[3,2] = 1\n", + " \n", + " else:\n", + " M = np.zeros((10, 10))\n", + " # Set the reward locations\n", + " M[8,8] = 4\n", + " M[8,7] = 5\n", + " M[7,8] = 7\n", + " M[6,8] = 8\n", + " M[8,6] = 10\n", + " M[7,7] = 11\n", + " M[7,6] = 13\n", + " M[6,7] = 14\n", + " M[8,5] = 16\n", + " M[5,8] = 17\n", + " M[6,6] = 19\n", + " M[6,5] = 20\n", + " M[5,6] = 22\n", + " M[5,7] = 23\n", + " M[5,5] = 25\n", + " M[5,4] = 26\n", + " M[6,0] = 28\n", + " M[5,1] = 29\n", + " # Set the cue locations\n", + " M[2,6] = 3\n", + " M[2,7] = 6\n", + " M[2,8] = 9\n", + " M[1,3] = 12\n", + " M[1,7] = 15\n", + " M[1,4] = 18\n", + " M[1,5] = 21\n", + " M[1,6] = 24\n", + " M[5,0] = 27\n", + " # Set the initial position\n", + " M[0,0] = 1\n", + "\n", + " return M\n", + "\n", + "M = get_maze_matrix('medium')\n", + "env_info_m = parse_maze(M)\n", + "tmaze_env_m = GeneralizedTMazeEnv(env_info_m, batch_size=5)\n", + "\n", + "render(env_info_m, tmaze_env_m);" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "#### Create the agent. \n", + "\n", + "The PyMDPEnv class consists of a params dict that contains the A, B, and D vectors of the environment. We initialize our agent using the same parameters. This means that the agent has full knowledge about the environment transitions, and likelihoods. We initialize the agent with a flat prior, i.e. it does not know where it, or the reward is. Finally, we set the C vector to have a preference only over the rewarding observation of cue-reward pair 1 (i.e. C[-1] = [0, 1, -2] and zero for all other modalities). " + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def make_aif_agent(tmaze_env):\n", + " A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", + " B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", + " A_dependencies = tmaze_env.dependencies[\"A\"]\n", + " B_dependencies = tmaze_env.dependencies[\"B\"]\n", + "\n", + " # [position], [cue], [reward]\n", + " C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "\n", + " rewarding_modality = -1 # 2 + env_info[\"num_cues\"]\n", + "\n", + " C[rewarding_modality] = C[rewarding_modality].at[:, 1].set(1.0)\n", + " C[rewarding_modality] = C[rewarding_modality].at[:, 2].set(-2.0)\n", + "\n", + " # uncomment to normalize C. For now this changes the behaviour of the agent. \n", + " # C = jtu.tree_map(lambda x: x - logsumexp(x, -1, keepdims=True), C)\n", + "\n", + " D = [jnp.ones(b.shape[:2]) / b.shape[1] for b in B]\n", + "\n", + " agent = AIFAgent(\n", + " A, B, C, D, \n", + " E=None,\n", + " pA=None,\n", + " pB=None,\n", + " policy_len=1,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies,\n", + " use_utility=True,\n", + " use_states_info_gain=True,\n", + " sampling_mode='full',\n", + " apply_batch=False\n", + " )\n", + "\n", + " return agent" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### MCTS based policy search\n", + "\n", + "Here we defined the sofisticated active inference monte-carlo tree search policies using the [mctx](https://github.com/google-deepmind/mctx) package for google deep mind. Although other algorithms are provided in mctx package here we will use only Gumbel based planning algorithm intoroduced in [Policy improvement by planning with Gumbel](https://openreview.net/forum?id=bERaNdoegnO)." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Run active inference" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "images = [render(env_info_m, tmaze_env_m)]\n", + "\n", + "timesteps = 10\n", + "key = jr.PRNGKey(0)\n", + "agent = make_aif_agent(tmaze_env_m)\n", + "_, info, _ = rollout(agent, tmaze_env_m, num_timesteps=timesteps, rng_key=key, policy_search=mcts_policy_search(max_depth=5, num_simulations=4096))\n", + "\n", + "for t in range(timesteps):\n", + " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", + " plt.figure()\n", + " images.append( np.array(render(env_info_m, env_state, show_img=False)) )" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABP8AAAGyCAYAAACbYGFOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5U0lEQVR4nO3df7RVdZ34/9e5V7iYJlrED/EH/sioUbFACE1d5U3W5FjOrDEyJwxLvzromLdM6IdXcuW1powpUdNG7ceo1Kx0VSrGUNRypIWiWJb4C40WI6ifCgz1ovfs7x8tqZsg98Le99zzfj8ea50/3Pfc/d6Hgufa7/Pee9eKoigCAAAAAEhOS6MPAAAAAACohsk/AAAAAEiUyT8AAAAASJTJPwAAAABIlMk/AAAAAEiUyT8AAAAASJTJPwAAAABIlMk/AAAAAEiUyT8AAAAASJTJPwAAAABIlMk/gMT8/Oc/jxNOOCH23HPPqNVqccstt2zzd5YsWRJve9vboq2tLQ488MC4/vrrKz9OAOgLXQMgJY3omsk/gMRs3LgxJkyYEPPnz+/T+x9//PE4/vjj453vfGesWLEiPvaxj8VHP/rRuOOOOyo+UgDYNl0DICWN6FqtKIpiew8YgMGtVqvFzTffHCeeeOJW33PBBRfErbfeGg888MDmbR/4wAfij3/8YyxcuHAAjhIA+kbXAEjJQHXNyj+AJtDd3R0bNmzo9eru7i5l30uXLo329vZe26ZNmxZLly4tZf8A8Ld0DYBUVNm0iHK6tlNpR7OD3t1yUqMPASAW1b9X2r7qaw8qbV9dV30w5s6d22tbZ2dnXHTRRTu877Vr18aoUaN6bRs1alRs2LAhnn/++dh55513eIzcaBowWJTVtTKbFqFrzUbXgMFiMHatyqZFlNO1QTP5B8DWzZkzJzo6Onpta2tra9DRAMCO0TUAUtEMTTP5B1CRetRL21dbW1tlARk9enSsW7eu17Z169bFbrvtZnUEABFRbtMidA2AxmqWc7WIcrpm8g+gIj1FeUGp8h/rqVOnxm233dZr26JFi2Lq1KkVjgpAMymzaRG6BkBjNcu5WkQ5XfPAD4DE/OlPf4oVK1bEihUrIuLPj4ZfsWJFrF69OiL+vCx9xowZm99/5plnxqpVq+KTn/xkrFy5Mq644or47ne/G+edd14jDh8AetE1AFLSiK5Z+QdQkXoUDRn3nnvuiXe+852b//vl+0+ceuqpcf3118eTTz65OSwREfvtt1/ceuutcd5558V//Md/xF577RXf+MY3Ytq0aQN+7AAMTo1qWoSuAVC+3LpWK4qicZ/4r3iCFDAYlPm0341P7lvavnYZ89vS9kX1NA0YLMrqWplNi9C1ZqNrwGAxGLvWDE1z2S8AAAAAJMplvwAV6RkcC6sBYIdpGgApya1rJv8AKtLI+0gAQJk0DYCU5NY1l/0CAAAAQKKs/AOoSE9m3yYBkC5NAyAluXXN5B9ARXJbSg5AujQNgJTk1jWX/QIAAABAoqz8A6hIbk+QAiBdmgZASnLrmsk/gIrUG30AAFASTQMgJbl1zWW/AAAAAJAoK/8AKpLbE6QASJemAZCS3Lpm8g+gIj159QSAhGkaACnJrWsu+wUAAACARFn5B1CR3G4iC0C6NA2AlOTWNZN/ABXpiVqjDwEASqFpAKQkt6657BcAAAAAEmXlH0BF6pndRBaAdGkaACnJrWsm/wAqkttScgDSpWkApCS3rrnsFwAAAAASZeUfQEVy+zYJgHRpGgApya1rJv8AKlIv8goKAOnSNABSklvXXPYLAAAAAImy8g+gIrktJQcgXZoGQEpy65rJP4CK9FhcDUAiNA2AlOTWtbw+LQAAAABkxMo/gIrkdhNZANKlaQCkJLeumfwDqEhu95EAIF2aBkBKcuuay34BAAAAIFFW/gFUpKfw/QoAadA0AFKSW9f6Pfn3zDPPxLXXXhtLly6NtWvXRkTE6NGj44gjjogPf/jD8YY3vKH0gwRoRnWLq5uCrgFsm6Y1B00D6JvcutavT3v33XfHQQcdFF/96ldj+PDhcfTRR8fRRx8dw4cPj69+9asxfvz4uOeee6o6VgAola4BkApNA2Br+rXy75xzzomTTjoprrrqqqjVet8csSiKOPPMM+Occ86JpUuXvup+uru7o7u7u9e2etETLbXW/hwOwKCW201km1EZXdM0IAeaNvg5VwPou9y61q+Vf/fff3+cd955r4hJREStVovzzjsvVqxYsc39dHV1xfDhw3u9Ho+V/TkUgEGvp2gp7UU1yuiapgE5KLNpulYN52oAfZdb0/p1lKNHj45ly5Zt9efLli2LUaNGbXM/c+bMifXr1/d67Rfj+3MoALDDyuiapgEwGDhXA2Br+nXZ7yc+8Yk444wzYvny5XHsscdujse6deti8eLFcc0118SXvvSlbe6nra0t2traem2zjBxITT2zpeTNqIyuaRqQA00b/JyrAfRdbl3r1+TfrFmzYsSIEfGVr3wlrrjiiujp6YmIiNbW1pg4cWJcf/318f73v7+SAwVoNj2ZPUGqGekaQN9o2uCnaQB9l1vX+jX5FxExffr0mD59erz44ovxzDPPRETEiBEjYsiQIaUfHABUTdcASIWmAbAl/Z78e9mQIUNizJgxZR4LQFKa5eav/JmuAWydpjUXTQN4dbl1bbsn/wB4dfXMlpIDkC5NAyAluXUtr08LAAAAABmx8g+gIj1FXk+QAiBdmgZASnLrmsk/gIrk9gQpANKlaQCkJLeu5fVpAQAAACAjVv4BVKSe2ROkAEiXpgGQkty6ZvIPoCK5LSUHIF2aBkBKcutaXp8WAAAAADJi5R9ARXJ7ghQA6dI0AFKSW9dM/gFUpG5xNQCJ0DQAUpJb1/L6tAAAAACQESv/ACrSk9kTpABIl6YBkJLcumbyD6Ai9cjrPhIApEvTAEhJbl3La6oTAAAAADJi5R9ARXJbSg5AujQNgJTk1jWTfwAV6bG4GoBEaBoAKcmta3l9WgAAAADIiJV/ABWpF3ndRBaAdGkaACnJrWsm/wAqkttScgDSpWkApCS3ruX1aQEAAAAgI1b+AVSkntkTpABIl6YBkJLcumbyD6AiPZHXfSQASJemAZCS3LqW11QnAAAAAGTEyj+AiuS2lByAdGkaACnJrWsm/wAqkttScgDSpWkApCS3ruU11QkAAAAAGbHyD6AiuS0lByBdmgZASnLrmsk/gIr0ZBYUANKlaQCkJLeu5fVpATIyf/78GDduXAwbNiymTJkSy5Yte9X3z5s3L970pjfFzjvvHHvvvXecd9558cILLwzQ0QLA1mkaACkZ6K5Z+QdQkXoDbyK7YMGC6OjoiKuuuiqmTJkS8+bNi2nTpsVDDz0UI0eOfMX7b7jhhpg9e3Zce+21ccQRR8TDDz8cH/7wh6NWq8Vll13WgE8AwGCiaQCkJLeuWfkHUJGeoqW0V39ddtllcfrpp8fMmTPjLW95S1x11VXxmte8Jq699totvv+uu+6KI488Mj74wQ/GuHHj4rjjjouTTz55m99AAZCHMpvW365pGgBly+1czeQfQBPo7u6ODRs29Hp1d3dv8b2bNm2K5cuXR3t7++ZtLS0t0d7eHkuXLt3i7xxxxBGxfPnyzQFZtWpV3HbbbfGe97yn/A8DQPb62jVNA2Cwa4ZztUFz2e8d/3f/gI954Hf/vwEf84CP/WLAx3zsK1MHfMyoFQM/ZkRE0biluwOqUX++A63J//esl3j8XV1dMXfu3F7bOjs746KLLnrFe5955pno6emJUaNG9do+atSoWLly5Rb3/8EPfjCeeeaZeMc73hFFUcRLL70UZ555ZnzqU58q7TPkpBFNi8ioa/PePuBjNvu/R4NeLl1rYmU2LaLvXdO0wcG5WrWy6Vou/9b7s20KuZ2rWfkHUJGeaCntNWfOnFi/fn2v15w5c0o71iVLlsQll1wSV1xxRdx7773x/e9/P2699da4+OKLSxsDgOZVZtOq7pqmAbAtzdK0iHK6NmhW/gGwdW1tbdHW1tan944YMSJaW1tj3bp1vbavW7cuRo8evcXf+exnPxsf+tCH4qMf/WhERBxyyCGxcePGOOOMM+LTn/50tLT4rgiA8vS1a5oGwGDXDOdqygdQkXpRK+3VH0OHDo2JEyfG4sWL/3Is9XosXrw4pk7d8m0AnnvuuVdEo7W1NSIiisJlBAC5K7Np/emapgFQhdzO1az8A6hIvYHfr3R0dMSpp54akyZNismTJ8e8efNi48aNMXPmzIiImDFjRowdOza6uroiIuKEE06Iyy67LN761rfGlClT4tFHH43PfvazccIJJ2wOCwD50jQAUpJb10z+ASRo+vTp8fTTT8eFF14Ya9eujcMOOywWLly4+cayq1ev7vXt0Wc+85mo1Wrxmc98JtasWRNveMMb4oQTTojPf/7zjfoIABARmgZAWhrRtVoxSNa+19ceNOBj5vIEKU/7TVAuT3NqwP+eq87tKG1f5634QGn7+sphN5W2L6rXiKZFZNS1XJ6KmJNcutYAq/7t46Xsp8ymRehas3GuVq1supbLv/X+bCs1GLvWDE2z8g+gImU+Ph4AGknTAEhJbl3zwA8AAAAASJSVfwAVqRe+XwEgDZoGQEpy61penxYAAAAAMmLlH0BFeiKv+0gAkC5NAyAluXXN5B9ARXK7iSwA6dI0AFKSW9dc9gsAAAAAibLyD6Aiud1EFoB0aRoAKcmtayb/ACpSz+w+EgCkS9MASEluXctrqhMAAAAAMmLlH0BFejK7iSwA6dI0AFKSW9dM/gFUJLf7SACQLk0DICW5dS2vTwsAAAAAGbHyD6Ai9cyWkgOQLk0DICW5dc3kH0BFcnuCFADp0jQAUpJb11z2CwAAAACJsvIPoCK5LSUHIF2aBkBKcuuayT+AiuT2BCkA0qVpAKQkt67l9WkBAAAAICNW/gFUJLel5ACkS9MASEluXTP5B1CR3J4gBUC6NA2AlOTWNZf9AgAAAECirPwDqEhuS8kBSJemAZCS3Lpm8g+gIrkFBYB0aRoAKcmtay77BQAAAIBEWfkHUJHcvk0CIF2aBkBKcuuayT+AiuQWFADSpWkApCS3rrnsFwAAAAASZeUfQEXqkde3SQCkS9MASEluXTP5B1CR3JaSA5AuTQMgJbl1rfTLfn/3u9/FaaedVvZuAWDAaRoAKdE1gDyVPvn3+9//Pr75zW++6nu6u7tjw4YNvV7d3fWyDwWgoepFrbQXjaFpAH9WZtN0rXF0DeDPcmtavy/7/cEPfvCqP1+1atU299HV1RVz587tte3Cj78uOj/x+v4eDsCg1SwhyJmmAfSNpjUHXQPom9y61u/JvxNPPDFqtVoURbHV99Rqr/6HOGfOnOjo6Oi1bcgf3tbfQwGAHaJpAKRE1wDYkn5f9jtmzJj4/ve/H/V6fYuve++9d5v7aGtri912263Xq62t9CuQARoqt6XkzUjTAPrGZb/NQdcA+ia3pvX7X/GJEyfG8uXLt/rzbX3TBJCLoqiV9qIamgbQN2U2Tdeqo2sAfZNb0/p92e/5558fGzdu3OrPDzzwwPjpT3+6QwcFAANB0wBIia4BsCX9nvw76qijXvXnu+yySxxzzDHbfUAAqahHc3wLlDNNA+gbTWsOugbQN7l1rd+TfwD0TbPc/wEAtkXTAEhJbl1z51YAAAAASJSVfwAVaZabvwLAtmgaACnJrWsm/wAqkttScgDSpWkApCS3rrnsFwAAAAASZeUfQEVyW0oOQLo0DYCU5NY1k38AFcltKTkA6dI0AFKSW9dc9gsAAAAAibLyD6AiRdHoIwCAcmgaACnJrWsm/wAqUo+8lpIDkC5NAyAluXXNZb8AAAAAkCgr/wAqktsTpABIl6YBkJLcumbyD6AiuT1BCoB0aRoAKcmtay77BQAAAIBEWfkHUJHcniAFQLo0DYCU5NY1k38AFcntPhIApEvTAEhJbl1z2S8AAAAAJMrKP4CK5PZtEgDp0jQAUpJb10z+AVQktydIAZAuTQMgJbl1zWW/AAAAAJAoK/8AKpLbE6QASJemAZCS3Lpm8g+gIrndRwKAdGkaACnJrWsu+wUAAACARFn5B1CR3L5NAiBdmgZASnLrmsk/gIpkdhsJABKmaQCkJLeuuewXAAAAABJl5R9ARXJbSg5AujQNgJTk1jWTfwBVyW0tOQDp0jQAUpJZ11z2C5Co+fPnx7hx42LYsGExZcqUWLZs2au+/49//GPMmjUrxowZE21tbXHQQQfFbbfdNkBHCwBbp2kApGSgu2blH0BFGrmUfMGCBdHR0RFXXXVVTJkyJebNmxfTpk2Lhx56KEaOHPmK92/atCne/e53x8iRI+O///u/Y+zYsfHb3/42dt9994E/eAAGHU0DICW5dc3kH0BFigYuJb/sssvi9NNPj5kzZ0ZExFVXXRW33nprXHvttTF79uxXvP/aa6+N3//+93HXXXfFkCFDIiJi3LhxA3nIAAximgZASnLrmst+AZpAd3d3bNiwoderu7t7i+/dtGlTLF++PNrb2zdva2lpifb29li6dOkWf+cHP/hBTJ06NWbNmhWjRo2Kgw8+OC655JLo6emp5PMAkLe+dk3TABjsmuFcbdCs/Ju254SBH/QrA7/M847/u3/Ax5y254APCc3r3PJ2VeZS8q6urpg7d26vbZ2dnXHRRRe94r3PPPNM9PT0xKhRo3ptHzVqVKxcuXKL+1+1alX85Cc/iVNOOSVuu+22ePTRR+Nf//Vf48UXX4zOzs7SPkcuGtK0CF0DXunfytlN2ZdH9bVrmjY4OFerlq5BPwzCrjXDudqgmfwDSE6JQZkzZ050dHT02tbW1lba/uv1eowcOTKuvvrqaG1tjYkTJ8aaNWvi3//9350oAVBq0yKq7ZqmAbBNmZ2rmfwDaAJtbW19DsiIESOitbU11q1b12v7unXrYvTo0Vv8nTFjxsSQIUOitbV187Y3v/nNsXbt2ti0aVMMHTp0+w8eAP5GX7umaQAMds1wruaefwAVKYryXv0xdOjQmDhxYixevHjztnq9HosXL46pU6du8XeOPPLIePTRR6Ner2/e9vDDD8eYMWOcJAFQatP60zVNA6AKuZ2rmfwDqEpR4qufOjo64pprrolvfvOb8eCDD8ZZZ50VGzdu3PxEqRkzZsScOXM2v/+ss86K3//+93HuuefGww8/HLfeemtccsklMWvWrO377ACkpcym9bNrmgZA6TI7V3PZL0CCpk+fHk8//XRceOGFsXbt2jjssMNi4cKFm28su3r16mhp+cv3P3vvvXfccccdcd5558Whhx4aY8eOjXPPPTcuuOCCRn0EAIgITQMgLY3omsk/gIqU/WTE/jr77LPj7LPP3uLPlixZ8optU6dOjV/84hcVHxUAzUjTAEhJbl0z+QdQle1YAg4Ag5KmAZCSzLrmnn8AAAAAkCgr/wAq0uil5ABQFk0DICW5dc3kH0BVMltKDkDCNA2AlGTWNZf9AgAAAECirPwDqExeS8kBSJmmAZCSvLpm8g+gKpktJQcgYZoGQEoy65rLfgEAAAAgUVb+AVQls2+TAEiYpgGQksy6ZvIPoCqZPT4egIRpGgApyaxrLvsFAAAAgERZ+QdQkSKzpeQApEvTAEhJbl0z+QdQlcyCAkDCNA2AlGTWNZf9AgAAAECirPwDqEpmN5EFIGGaBkBKMuuayT+AitQyW0oOQLo0DYCU5NY1l/0CAAAAQKKs/AOoSmbfJgGQME0DICWZdc3kH0BVMruPBAAJ0zQAUpJZ11z2CwAAAACJsvIPoCqZLSUHIGGaBkBKMuuayT+AqmQWFAASpmkApCSzrrnsFwAAAAASZeUfQFUy+zYJgIRpGgApyaxrJv8AqpLZE6QASJimAZCSzLrmsl8AAAAASJSVfwAVqWW2lByAdGkaACnJrWsm/wCqkllQAEiYpgGQksy65rJfAAAAAEiUyT8AAAAASFS/J/+ef/75uPPOO+M3v/nNK372wgsvxLe+9a1SDgyg2dWK8l5UR9cAtq3MpuladTQNoG9ya1q/Jv8efvjhePOb3xxHH310HHLIIXHMMcfEk08+ufnn69evj5kzZ25zP93d3bFhw4Zer3rR0/+jB4AdUEbXNA2AwcC5GgBb06/JvwsuuCAOPvjgeOqpp+Khhx6K1772tXHkkUfG6tWr+zVoV1dXDB8+vNfr8VjZr30ADHpFrbwXlSija5oGZKHMpulaJZyrAfRDZk3r1+TfXXfdFV1dXTFixIg48MAD44c//GFMmzYtjjrqqFi1alWf9zNnzpxYv359r9d+Mb7fBw8wqBUlvqhEGV3TNCALZTZN1yrhXA2gHzJrWr8m/55//vnYaaedNv93rVaLK6+8Mk444YQ45phj4uGHH+7Tftra2mK33Xbr9WqptfbvyAFgB5XRNU0DYDBwrgbA1uy07bf8xfjx4+Oee+6JN7/5zb22X3755RER8d73vre8IwNodk3yLVDOdA2gjzRt0NM0gH7IrGv9Wvn3j//4j3HjjTdu8WeXX355nHzyyVEUmf0JAmxFbk+Qaka6BtA3nvY7+GkaQN/l1rR+Tf7NmTMnbrvttq3+/Iorroh6vb7DBwUAA0HXAEiFpgGwNf267BeAfmiSb4EAYJs0DYCUZNY1k38AVcksKAAkTNMASElmXevXZb8AAAAAQPOw8g+gIs1y81cA2BZNAyAluXXN5B9AVYpao48AAMqhaQCkJLOuuewXAAAAABJl5R9AVTJbSg5AwjQNgJRk1jWTfwAVye0+EgCkS9MASEluXXPZLwAAAAAkyso/gKpk9m0SAAnTNABSklnXTP4BVCS3peQApEvTAEhJbl1z2S8AAAAAJMrKP4CqZPZtEgAJ0zQAUpJZ10z+AVQls6AAkDBNAyAlmXXNZb8AAAAAkCgr/wAqkttNZAFIl6YBkJLcumblHwAAAAAkyuQfAAAAACTKZb8AVclsKTkACdM0AFKSWddM/gFUJLf7SACQLk0DICW5dc1lvwAAAACQKCv/AKqS2bdJACRM0wBISWZdM/kHUJXMggJAwjQNgJRk1jWX/QIAAABAoqz8A6hIbjeRBSBdmgZASnLrmsk/gKpkFhQAEqZpAKQks6657BcAAAAAEmXlH0BFcltKDkC6NA2AlOTWNSv/AKpSlPjaDvPnz49x48bFsGHDYsqUKbFs2bI+/d5NN90UtVotTjzxxO0bGID0lNm07eiapgFQqszO1Uz+ASRowYIF0dHREZ2dnXHvvffGhAkTYtq0afHUU0+96u898cQT8YlPfCKOOuqoATpSAHh1mgZAShrRNZN/AFVp4LdJl112WZx++ukxc+bMeMtb3hJXXXVVvOY1r4lrr712q7/T09MTp5xySsydOzf233///g8KQLoauPJP0wAoXWbnaib/ACpSK8p7dXd3x4YNG3q9uru7tzjupk2bYvny5dHe3r55W0tLS7S3t8fSpUu3eryf+9znYuTIkfGRj3yk9D8LAJpbmU3rT9c0DYAq5HaulvUDPw44b+t/sFWZdt6EAR8TaH5dXV0xd+7cXts6OzvjoosuesV7n3nmmejp6YlRo0b12j5q1KhYuXLlFvd/5513xn/+53/GihUryjpkGkDXgGbR165pWr40DWgWzXCulvXkH0CltvPmr1syZ86c6Ojo6LWtra2tlH0/++yz8aEPfSiuueaaGDFiRCn7BCAxJTYtorquaRoAfZLZuZrJP4CqlBiUtra2PgdkxIgR0draGuvWreu1fd26dTF69OhXvP+xxx6LJ554Ik444YTN2+r1ekRE7LTTTvHQQw/FAQccsANHD0DTK3nyr69d0zQAKpHZuZp7/gEkZujQoTFx4sRYvHjx5m31ej0WL14cU6dOfcX7x48fH7/61a9ixYoVm1/vfe97453vfGesWLEi9t5774E8fADYTNMASEmjumblH0BFaiWvkuiPjo6OOPXUU2PSpEkxefLkmDdvXmzcuDFmzpwZEREzZsyIsWPHRldXVwwbNiwOPvjgXr+/++67R0S8YjsAedI0AFKSW9dM/gFUpYFBmT59ejz99NNx4YUXxtq1a+Owww6LhQsXbr6x7OrVq6OlxeJvAPpI0wBISWZdqxVF0cCP/Bfvbjmp0YcAEIvq3yttXwef/5XS9vXAv59X2r6onqYBg0VZXSuzaRG61mx0DRgsBmPXmqFpVv4BVKSRS8kBoEyaBkBKcuuayT+AqmQWFAASpmkApCSzrrk5BgAAAAAkyso/gKpk9m0SAAnTNABSklnXTP4BVKTW6AMAgJJoGgApya1rLvsFAAAAgERZ+QdQlcyWkgOQME0DICWZdc3kH0BFcnt8PADp0jQAUpJb11z2CwAAAACJsvIPoCqZfZsEQMI0DYCUZNY1k38AVcksKAAkTNMASElmXXPZLwAAAAAkyso/gIrkdhNZANKlaQCkJLeumfwDqEpmQQEgYZoGQEoy65rLfgEAAAAgUVb+AVQkt6XkAKRL0wBISW5dM/kHUJXMggJAwjQNgJRk1jWX/QIAAABAoqz8A6hIbkvJAUiXpgGQkty6ZvIPoCqZBQWAhGkaACnJrGsu+wUAAACARFn5B1CVzL5NAiBhmgZASjLrmsk/gIrkdh8JANKlaQCkJLeuuewXAAAAABJl5R9AVTL7NgmAhGkaACnJrGsm/wAqUisyKwoAydI0AFKSW9dc9gsAAAAAibLyD6AqeX2ZBEDKNA2AlGTWNZN/ABXJ7QlSAKRL0wBISW5dc9kvAAAAACSq35N/Dz74YFx33XWxcuXKiIhYuXJlnHXWWXHaaafFT37yk9IPEKBpFSW+qIyuAfRBmU3TtcpoGkAfZda0fl32u3Dhwnjf+94Xu+66azz33HNx8803x4wZM2LChAlRr9fjuOOOix//+Mfxrne961X3093dHd3d3b221YueaKm19v8TAAxSuS0lb0ZldE3TgBxo2uDnXA2g73LrWr9W/n3uc5+L888/P/7f//t/cd1118UHP/jBOP3002PRokWxePHiOP/88+PSSy/d5n66urpi+PDhvV6Px8rt/hAAsD3K6JqmATAYOFcDYGtqRVH0eb5z+PDhsXz58jjwwAOjXq9HW1tbLFu2LN761rdGRMQDDzwQ7e3tsXbt2lfdz5a+TfrH4R/2bRLQcIvq3yttX5NPvay0fS37Zkdp++IvyuiapgGDWVldK7NpEbpWBedqQA4GY9eaoWn9ftpvrVaLiIiWlpYYNmxYDB8+fPPPXvva18b69eu3uY+2trZoa2vrtU1MgNTktpS8We1o1zQNyIGmNQfnagB9k1vX+nXZ77hx4+KRRx7Z/N9Lly6NffbZZ/N/r169OsaMGVPe0QFAhXQNgFRoGgBb06+Vf2eddVb09PRs/u+DDz64189vv/32bd5AFiAbmX2b1Ix0DaCPNG3Q0zSAfsisa/2a/DvzzDNf9eeXXHLJDh0MQEpyW0rejHQNoG80bfDTNIC+y61r/brsFwAAAABoHv1+4AcAfdT3h6kDwOCmaQCkJLOuWfkHAAAAAImy8g+gIrndRwKAdGkaACnJrWsm/wCqkllQAEiYpgGQksy65rJfAAAAAEiUlX8AFanVG30EAFAOTQMgJbl1zeQfQFUyW0oOQMI0DYCUZNY1l/0CAAAAQKKs/AOoSG5PkAIgXZoGQEpy65rJP4CqFJkVBYB0aRoAKcmsay77BQAAAIBEWfkHUJHclpIDkC5NAyAluXXN5B9AVTILCgAJ0zQAUpJZ11z2CwAAAACJsvIPoCK5LSUHIF2aBkBKcuuayT+AqmT2BCkAEqZpAKQks6657BcAAAAAEmXlH0BFcltKDkC6NA2AlOTWNZN/AFXJLCgAJEzTAEhJZl1z2S8AAAAAJMrKP4CK5LaUHIB0aRoAKcmtayb/AKpSz6woAKRL0wBISWZdc9kvAAAAACTKyj+AquT1ZRIAKdM0AFKSWddM/gFUJLf7SACQLk0DICW5dc1lvwAAAACQKCv/AKpSZPZ1EgDp0jQAUpJZ16z8A6hIrSjvtT3mz58f48aNi2HDhsWUKVNi2bJlW33vNddcE0cddVTssccesccee0R7e/urvh+AvJTZtO3pmqYBUKbcztVM/gEkaMGCBdHR0RGdnZ1x7733xoQJE2LatGnx1FNPbfH9S5YsiZNPPjl++tOfxtKlS2PvvfeO4447LtasWTPARw4AvWkaAClpRNdqRTE41jq+u+WkRh8CQCyqf6+0fb3zuC+Utq+f/viCfr1/ypQpcfjhh8fll18eERH1ej323nvvOOecc2L27Nnb/P2enp7YY4894vLLL48ZM2Zs1zHnTNOAwaKsrpXZtIj+dU3TGk/XgMFiMHatGc7V3PMPoCK1Er9b6e7uju7u7l7b2traoq2t7RXv3bRpUyxfvjzmzJmzeVtLS0u0t7fH0qVL+zTec889Fy+++GK87nWv27EDByAJZTYtou9d0zQAqpDbuZrJvww8Nu/tAz9oURv4MSPyeV53o/58B1ou/3v2QVdXV8ydO7fXts7Ozrjooote8d5nnnkmenp6YtSoUb22jxo1KlauXNmn8S644ILYc889o729fbuPGary2FemDvyg/j2qVi5dY7O+dk3TyEE2Xcvl33p/ttlphnM1k38AVamXt6s5c+ZER0dHr21b+iapDJdeemncdNNNsWTJkhg2bFglYwDQZEpsWsTAdU3TANiizM7VTP4BVKTMpeRbWza+JSNGjIjW1tZYt25dr+3r1q2L0aNHv+rvfulLX4pLL700/ud//icOPfTQ7T5eANJS9mW/fe2apgFQhdzO1TztFyAxQ4cOjYkTJ8bixYs3b6vX67F48eKYOnXrl5V88YtfjIsvvjgWLlwYkyZNGohDBYBXpWkApKRRXbPyD6AqDbxFWEdHR5x66qkxadKkmDx5csybNy82btwYM2fOjIiIGTNmxNixY6OrqysiIr7whS/EhRdeGDfccEOMGzcu1q5dGxERu+66a+y6664N+xwADBKaBkBKMuuayT+AqpR8iVR/TJ8+PZ5++um48MILY+3atXHYYYfFwoULN99YdvXq1dHS8pfF31deeWVs2rQp/vmf/7nXfrZ2o1oAMqNpAKQks66Z/ANI1Nlnnx1nn332Fn+2ZMmSXv/9xBNPVH9AALCdNA2AlAx010z+AVSk1sCl5ABQJk0DICW5dc3kH0BVGriUHABKpWkApCSzrnnaLwAAAAAkyso/gIrU6o0+AgAoh6YBkJLcumbyD6AqmS0lByBhmgZASjLrmst+AQAAACBRVv4BVCWvL5MASJmmAZCSzLpm8g+gIrXMlpIDkC5NAyAluXXNZb8AAAAAkCgr/wCqktm3SQAkTNMASElmXTP5B1CVzB4fD0DCNA2AlGTWNZf9AgAAAECirPwDqEhuN5EFIF2aBkBKcuuayT+AqmQWFAASpmkApCSzrrnsFwAAAAASZeUfQFUy+zYJgIRpGgApyaxrJv8AqpLZE6QASJimAZCSzLrmsl8AAAAASJSVfwAVye0JUgCkS9MASEluXTP5B1CVzIICQMI0DYCUZNY1l/0CAAAAQKKs/AOoSmbfJgGQME0DICWZdc3kH0BVMgsKAAnTNABSklnXXPYLAAAAAImy8g+gKvVGHwAAlETTAEhJZl0z+QdQkdweHw9AujQNgJTk1jWX/QIAAABAoqz8A6hKZt8mAZAwTQMgJZl1rZTJv6IoolarlbErgHTU8wpKKjQNYAs0rWnpGsAWZNa1Ui77bWtriwcffLCMXQFAQ2kaACnRNQD6tfKvo6Nji9t7enri0ksvjde//vUREXHZZZft+JEBNLvMlpI3G00D6AdNG/R0DaAfMutavyb/5s2bFxMmTIjdd9+91/aiKOLBBx+MXXbZpU9Lyru7u6O7u7vXtnrREy211v4cDsDglllQmo2mAfSDpg16ugbQD5l1rV+Tf5dccklcffXV8eUvfzne9a53bd4+ZMiQuP766+Mtb3lLn/bT1dUVc+fO7bVtv3hzHBB/15/DAYDtpmkApETXANiaft3zb/bs2bFgwYI466yz4hOf+ES8+OKL2zXonDlzYv369b1e+8X47doXwKBVFOW9KJ2mAfRDmU3TtUroGkA/ZNa0fj/w4/DDD4/ly5fH008/HZMmTYoHHnig30+Pamtri912263XyzJyIDn1orwXldA0gD4qs2m6VhldA+ijzJrWr8t+X7brrrvGN7/5zbjpppuivb09enp6yj4uABgQmgZASnQNgL+1XZN/L/vABz4Q73jHO2L58uWx7777lnVMAGko6o0+AvpB0wBehaY1HV0DeBWZdW2HJv8iIvbaa6/Ya6+9yjgWgLQ0yf0f+AtNA9gKTWtKugawFZl1rd/3/AMAAAAAmsMOr/wDYCua5OavALBNmgZASjLrmsk/gKpktpQcgIRpGgApyaxrLvsFAAAAgERZ+QdQlcy+TQIgYZoGQEoy65rJP4CqZBYUABKmaQCkJLOuuewXAAAAABJl5R9AVer1Rh8BAJRD0wBISWZdM/kHUJXMlpIDkDBNAyAlmXXNZb8AAAAAkCgr/wCqktm3SQAkTNMASElmXTP5B1CVel5BASBhmgZASjLrmst+AQAAACBRVv4BVKQo8nqCFADp0jQAUpJb10z+AVQls6XkACRM0wBISWZdc9kvAAAAACTKyj+AqmT2BCkAEqZpAKQks66Z/AOoSj2v+0gAkDBNAyAlmXXNZb8AAAAAkCgr/wCqktlScgASpmkApCSzrpn8A6hIkdlScgDSpWkApCS3rrnsFwAAAAASZeUfQFUyW0oOQMI0DYCUZNY1k38AVannFRQAEqZpAKQks6657BcAAAAAEmXlH0BVirxuIgtAwjQNgJRk1jWTfwAVKTJbSg5AujQNgJTk1jWX/QIAAABAokz+AVSlqJf32g7z58+PcePGxbBhw2LKlCmxbNmyV33/9773vRg/fnwMGzYsDjnkkLjtttu2a1wAElRm07aja5oGQKkyO1cz+QdQkaJelPbqrwULFkRHR0d0dnbGvffeGxMmTIhp06bFU089tcX333XXXXHyySfHRz7ykbjvvvvixBNPjBNPPDEeeOCBHf1jACABZTatv13TNADKltu5Wq0oikFxofO7W05q9CEk67F5bx/4QYvawI8ZEVEbFP93rl6j/nwHWgP+91z1bx8vbV/vbp1e2r4W9Szo1/unTJkShx9+eFx++eUREVGv12PvvfeOc845J2bPnv2K90+fPj02btwYP/rRjzZve/vb3x6HHXZYXHXVVTt28BnStGo99pWpAz9oLn1plFy61gCrzu0oZT9lNi2if13TtMbTtWpl07Vc/q33Z1upwdi1ZjhXs/IPoColLiXv7u6ODRs29Hp1d3dvcdhNmzbF8uXLo729ffO2lpaWaG9vj6VLl27xd5YuXdrr/RER06ZN2+r7AchMyZf99rVrmgZAJXI7Vyua2AsvvFB0dnYWL7zwQtJjNmpcY6Y1ZqPGzWXMqnV2dhYR0evV2dm5xfeuWbOmiIjirrvu6rX9/PPPLyZPnrzF3xkyZEhxww039No2f/78YuTIkaUcP32Ty9+XXMZs1LjGTGvMRo5bpb52TdOaWy5/T42Z1piNGteYzasZztWaevJv/fr1RUQU69evT3rMRo1rzLTGbNS4uYxZtRdeeKFYv359r9fWgulEqXnl8vcllzEbNa4x0xqzkeNWqa9d07TmlsvfU2OmNWajxjVm82qGc7Wd+r5GEIBGaWtri7a2tj69d8SIEdHa2hrr1q3rtX3dunUxevToLf7O6NGj+/V+ANgRfe2apgEw2DXDuZp7/gEkZujQoTFx4sRYvHjx5m31ej0WL14cU6du+YbSU6dO7fX+iIhFixZt9f0AMBA0DYCUNKprVv4BJKijoyNOPfXUmDRpUkyePDnmzZsXGzdujJkzZ0ZExIwZM2Ls2LHR1dUVERHnnntuHHPMMfHlL385jj/++LjpppvinnvuiauvvrqRHwMANA2ApDSia009+dfW1hadnZ19Xl7ZrGM2alxjpjVmo8bNZczBZvr06fH000/HhRdeGGvXro3DDjssFi5cGKNGjYqIiNWrV0dLy18Wfx9xxBFxww03xGc+85n41Kc+FW984xvjlltuiYMPPrhRHyFLufx9yWXMRo1rzLTGbOS4g4WmNa9c/p4aM60xGzWuMfPRiK7ViqIoSv8kAAAAAEDDuecfAAAAACTK5B8AAAAAJMrkHwAAAAAkyuQfAAAAACSqqSf/5s+fH+PGjYthw4bFlClTYtmyZZWO9/Of/zxOOOGE2HPPPaNWq8Utt9xS6XhdXV1x+OGHx2tf+9oYOXJknHjiifHQQw9VOmZExJVXXhmHHnpo7LbbbrHbbrvF1KlT4/bbb6983JddeumlUavV4mMf+1il41x00UVRq9V6vcaPH1/pmBERa9asiX/5l3+J17/+9bHzzjvHIYccEvfcc09l440bN+4Vn7NWq8WsWbMqG7Onpyc++9nPxn777Rc777xzHHDAAXHxxRdH1c8XevbZZ+NjH/tY7LvvvrHzzjvHEUccEXfffXelY0JZUm9aRGO61uimReha2XRN12gOulaNXLqWS9MidE3XBkbTTv4tWLAgOjo6orOzM+69996YMGFCTJs2LZ566qnKxty4cWNMmDAh5s+fX9kYf+1nP/tZzJo1K37xi1/EokWL4sUXX4zjjjsuNm7cWOm4e+21V1x66aWxfPnyuOeee+Jd73pXvO9974tf//rXlY4bEXH33XfH17/+9Tj00EMrHysi4u/+7u/iySef3Py68847Kx3vD3/4Qxx55JExZMiQuP322+M3v/lNfPnLX4499tijsjHvvvvuXp9x0aJFERFx0kknVTbmF77whbjyyivj8ssvjwcffDC+8IUvxBe/+MX42te+VtmYEREf/ehHY9GiRfHtb387fvWrX8Vxxx0X7e3tsWbNmkrHhR2VQ9MiGtO1RjYtQteqoGu6xuCna7pWhhyaFqFrujZAiiY1efLkYtasWZv/u6enp9hzzz2Lrq6uARk/Ioqbb755QMZ62VNPPVVERPGzn/1sQMctiqLYY489im984xuVjvHss88Wb3zjG4tFixYVxxxzTHHuuedWOl5nZ2cxYcKESsf4WxdccEHxjne8Y0DH/FvnnntuccABBxT1er2yMY4//vjitNNO67Xtn/7pn4pTTjmlsjGfe+65orW1tfjRj37Ua/vb3va24tOf/nRl40IZcmxaUTSuawPRtKLQtYGiazD46Jqu7ahcm1YUukY1mnLl36ZNm2L58uXR3t6+eVtLS0u0t7fH0qVLG3hk1Vq/fn1ERLzuda8bsDF7enripptuio0bN8bUqVMrHWvWrFlx/PHH9/rftWqPPPJI7LnnnrH//vvHKaecEqtXr650vB/84AcxadKkOOmkk2LkyJHx1re+Na655ppKx/xrmzZtiu985ztx2mmnRa1Wq2ycI444IhYvXhwPP/xwRETcf//9ceedd8bf//3fVzbmSy+9FD09PTFs2LBe23feeefKvyWEHZFr0yIGvmsD2bQIXRsIugaDj67pWllya1qErlGhRs8+bo81a9YUEVHcddddvbaff/75xeTJkwfkGGKAv03q6ekpjj/++OLII48ckPF++ctfFrvsskvR2tpaDB8+vLj11lsrHe/GG28sDj744OL5558viqIYkBUSt912W/Hd7363uP/++4uFCxcWU6dOLfbZZ59iw4YNlY3Z1tZWtLW1FXPmzCnuvffe4utf/3oxbNiw4vrrr69szL+2YMGCorW1tVizZk2l4/T09BQXXHBBUavVip122qmo1WrFJZdcUumYRVEUU6dOLY455phizZo1xUsvvVR8+9vfLlpaWoqDDjqo8rFhe+XYtKIY2K4NdNOKQtd0rRy6RjPSNV0rQ45NKwpdozom/7bTQAflzDPPLPbdd9/id7/73YCM193dXTzyyCPFPffcU8yePbsYMWJE8etf/7qSsVavXl2MHDmyuP/++zdvG4iTpL/1hz/8odhtt90qXTI/ZMiQYurUqb22nXPOOcXb3/72ysb8a8cdd1zxD//wD5WPc+ONNxZ77bVXceONNxa//OUvi29961vF6173usrD+eijjxZHH310ERFFa2trcfjhhxennHJKMX78+ErHhR2RY9OKYmC7NpBNKwpd07Xy6BrNSNd0rQo5NK0odI3qNOXkX3d3d9Ha2vqKf9BnzJhRvPe97x2QYxjIoMyaNavYa6+9ilWrVg3IeFty7LHHFmeccUYl+7755ps3/+V/+RURRa1WK1pbW4uXXnqpknG3ZNKkScXs2bMr2/8+++xTfOQjH+m17Yorrij23HPPysZ82RNPPFG0tLQUt9xyS+Vj7bXXXsXll1/ea9vFF19cvOlNb6p87KIoij/96U/F//3f/xVFURTvf//7i/e85z0DMi5sj9yaVhSN71qVTSsKXdO18ukazUTXBl4uXUu5aUWha1SrKe/5N3To0Jg4cWIsXrx487Z6vR6LFy8ekHsdDJSiKOLss8+Om2++OX7yk5/Efvvt17Bjqdfr0d3dXcm+jz322PjVr34VK1as2PyaNGlSnHLKKbFixYpobW2tZNy/9ac//Skee+yxGDNmTGVjHHnkkfHQQw/12vbwww/HvvvuW9mYL7vuuuti5MiRcfzxx1c+1nPPPRctLb3/eWltbY16vV752BERu+yyS4wZMyb+8Ic/xB133BHve9/7BmRc2B65NC1i8HStyqZF6JqulU/XaCa6NvBy6FrqTYvQNSrW4MnH7XbTTTcVbW1txfXXX1/85je/Kc4444xi9913L9auXVvZmM8++2xx3333Fffdd18REcVll11W3HfffcVvf/vbSsY766yziuHDhxdLliwpnnzyyc2v5557rpLxXjZ79uziZz/7WfH4448Xv/zlL4vZs2cXtVqt+PGPf1zpuH9tIJaRf/zjHy+WLFlSPP7448X//u//Fu3t7cWIESOKp556qrIxly1bVuy0007F5z//+eKRRx4p/uu//qt4zWteU3znO9+pbMyi+PM9HfbZZ5/iggsuqHScl5166qnF2LFjix/96EfF448/Xnz/+98vRowYUXzyk5+sdNyFCxcWt99+e7Fq1arixz/+cTFhwoRiypQpxaZNmyodF3ZUDk0risZ0bTA0rSh0rWy6pmsMbrqmazsqp6YVha7pWvWadvKvKIria1/7WrHPPvsUQ4cOLSZPnlz84he/qHS8n/70p0VEvOJ16qmnVjLelsaKiOK6666rZLyXnXbaacW+++5bDB06tHjDG95QHHvsscnFpCiKYvr06cWYMWOKoUOHFmPHji2mT59ePProo5WOWRRF8cMf/rA4+OCDi7a2tmL8+PHF1VdfXfmYd9xxRxERxUMPPVT5WEVRFBs2bCjOPffcYp999imGDRtW7L///sWnP/3poru7u9JxFyxYUOy///7F0KFDi9GjRxezZs0q/vjHP1Y6JpQl9aYVRWO6NhiaVhS6VjZdg8FP16qRS9dyalpR6BrVqxVFUVS4sBAAAAAAaJCmvOcfAAAAALBtJv8AAAAAIFEm/wAAAAAgUSb/AAAAACBRJv8AAAAAIFEm/wAAAAAgUSb/AAAAACBRJv8AAAAAIFEm/wAAAAAgUSb/AAAAACBRJv8AAAAAIFEm/wAAAAAgUf8/mUbE/lMqQ8IAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot q(u_t) for each time step\n", + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qpi'][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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1fbMEgAAB9A0AICX0DUAQEfEvBhYXFwsyzr2kulNN92km266Ke5JAYDnGPZNk1vQNACIE11LSXQNAOJkWNccfZswAOALpl12DgDwNroGAPAS07rm2AtEAAAAAAAAAKQWrgz8irG5X/82LQCIy9fcsgPYjaYBcBRdQ4LRNQCOMqxrXBkIAAAAAAAAGCLmxcD169ervLxcubm58vl8WrZsWcTnBw4c0LRp09SnTx9lZmbqnHPO0fz58+2aLwC4ks+yd4M9aBoAxIempSa6BgDxMa1rMS8GtrS0qLCwUNXV1VE/r6ys1MqVK/XUU0/prbfe0vTp0zVt2jQtX778uCcLAK5l2bzBFjQNAOJE01ISXQOAOBnWtZifGVhWVqaysrKjfv7yyy9rypQpKi4ulvTFq+t/9atfafPmzbrsssvinigAAHajaQAAL6FrAICOsP2ZgSNHjtTy5cu1Z88eWZalNWvWaMeOHSotLbV7KABwDV/Y3g2JQdMAIDqa5k50DQCiM61rtr9N+Je//KVuuukm9enTR506dVJaWpoee+wxjR492u6hAMA9XHK5OCLRNAA4CrrmSnQNAI7CsK45shi4adMmLV++XH379tX69etVUVGh3NxclZSUtDs+FAopFApF7AtbrUrzpds9NQAAYhJr0yS6BgBIXXQNACDZvBj497//XXfeeaeWLl2qcePGSZIGDRqkuro6/exnP4samGAwqLvvvjtiX76+of4aYOfUACCp3PJWKXwpnqZJdA2AGeia+9A1ADg607pm6zMDDx8+rMOHDystLfK06enpCoej3zhdVVWlpqamiC1fBXZOCwCSz7Ls3eC4eJom0TUAhqBprkPXAOAYDOtazFcGHjhwQLt27Wr7uaGhQXV1dcrOzlZeXp4uuOAC3X777crMzFTfvn21bt06/frXv9acOXOins/v98vv90fs45JzAEAi2N00ia4BAJKHrgEAOiLmxcDa2lqNGTOm7efKykpJ0pQpU7Rw4UItXrxYVVVVmjRpkj766CP17dtX9957r37wgx/YN2sAcBnTLjt3C5oGAPGha6mJrgFAfEzrWsyLgcXFxbKOcdljz549tWDBguOaFAB4jmFxcQuaBgBxomspia4BQJwM65qtzwwEAAAAAAAAkLpsfZswACA60y47BwB4G10DAHiJaV1jMRAAEsElb5UCAKBD6BoA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TjRNomsAzGBa12JaDKyoqNCiRYv03HPPKSsrS42NjZKkQCCgzMxMSVJjY6MaGxu1a9cuSdKbb76prKws5eXl8fBaAOYyLC5uQdcAIE50LeXQNAA4DoZ1LabbhOfNm6empiYVFxerV69ebduSJUvajpk/f74GDx6sG2+8UZI0evRoDR48WMuXL7d35gAAHCe6BgDwCpoGAOiomG8T/jqzZ8/W7Nmz450PAHiTYd80uQVdA4A40bWUQ9MA4DgY1rWYFgMBAHEyLC4AAI+jawAALzGsa3G9TRgAAAAAAACA+3BlYJKtev/1hI85Nrcw4WMCblUTtulEdp0HSGHJaJpE14BY0DWg4/i3GpD66Fp8WAwEgAQw7VX1AABvo2sAAC8xrWsx3SYcDAY1bNgwZWVlKScnRxMmTFB9fX3b5x999JFuvvlmnX322crMzFReXp5uueUWNTU12T5xAACOF10DAHgJXQMAdERMi4Hr1q1TRUWFNm3apJqaGh0+fFilpaVqaWmRJL3//vt6//339bOf/Uzbtm3TwoULtXLlSl1//fWOTB4AXMOy7N1gC7oGAHGiaSmJrgFAnAzrWky3Ca9cuTLi54ULFyonJ0dbtmzR6NGjNXDgQP3+979v+7x///6699579f3vf1+ff/65OnXirmQAhgq7IwqmoWsAECe6lpLoGgDEybCuHdfbhI9cTp6dnX3MY7p06UJYAAApj64BALyErgEAoon7v/jhcFjTp0/XqFGjNHDgwKjH7N+/X/fcc49uuummuCcIAJ7gksvFTUbXACAGdC3l0TUAiIFhXYt7MbCiokLbtm3Thg0bon7e3NyscePG6ZxzztHs2bOPep5QKKRQKBSxL2y1Ks2XHu/UACD1GBYXN6JrABADupby6BoAxMCwrsV1m/C0adO0YsUKrVmzRn369Gn3+aeffqqLL75YWVlZWrp0qU444YSjnisYDCoQCERsDdoez7QAAIgLXQMAeAldAwAcS0yLgZZladq0aVq6dKleeukl5efntzumublZpaWl6ty5s5YvX66MjIxjnrOqqkpNTU0RW74KYvstACDV8TbhlETXACBONC0l0TUAiJNhXYvpNuGKigotWrRIzz33nLKystTY2ChJCgQCyszMbAvLwYMH9dRTT6m5uVnNzc2SpO7duys9vf2l5H6/X36/P2Ifl5wD8BzD3k7l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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot beliefs over locations for each time steps\n", + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qs'][0][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ani = animate(images)\n", + "\n", + "HTML(ani.to_html5_video())" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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stQLFy44X4WFhc55t99+u9qpUye1uLjYOc1ut6t9+vRRW7Vq5Zw2b948FVAHDx6s2u125/QZM2aoWq1Wzc7OVlVVVfPy8lR/f3/1scceK1NDWlqa6ufnV2b6pEmTVEB97rnnytV8eY2lZs2apSqKop4+fdo57aWXXlKv/HVERUWpkyZNKrd+qTfffFMF1IULF1b7fZg+fboKqNu3b3dOS09PV/38/FRATUpKqnS/V7r77rvVqKioKi8fFRWl3n333arValXDwsLUV199VVVVVT106JAKqJs3b3b+nnbu3Olcr6L38osvvlAB9ccff6x0f0899ZSq1WrVjRs3qqrqeD9atWqlDhkypMzfQGFhoRoTE6PecccdV60/KSlJBSp9/fzzz2WO9cr60tPTVaPRqP7xj390Tnv++edVvV6vZmZmOqeVlJSo/v7+6sMPP+ycVvq+XP77Kd3H2rVry9RZ+jvesmWLc1peXp4aExOjRkdHqzabTVVVVd20aZMKqO3atVNLSkqcy/773/9WAXX//v3OaQMGDFABdfHixc5pR44cUQFVo9Gov/zyi3P6999/rwLqvHnznNMeeeQRNTw8XM3IyChT6/3336/6+fk5f8fVqam6f39CNEZu1wyem5sLVPzteODAgYSEhDhf7733HgCZmZls3LiRMWPGkJeXR0ZGBhkZGVy8eJEhQ4Zw/Phxzp49W2Zbjz/+eJlm0X79+mGz2Th9+jTgOIvLzs5m3Lhxzu1lZGSg1Wrp3bs3mzZtKlffk08+WW7a5WeqBQUFZGRk0KdPH1RV5ddff63BO+SwadMmnn/+ef7whz8wYcKEar8P3333HTfffHOZM8iQkBBn83190Gq1jBkzhi+++AJwdCyLiIigX79+FS5/+XtZXFxMRkYGN998MwB79uypcJ2FCxfy3//+lzfffJNBgwYBkJCQwPHjx3nggQe4ePGi830qKCjg9ttv58cff6zS5YDHH3+cdevWlXu1b9++zHLt27cvc0whISG0adOGkydPOqeNHTsWi8XCihUrnNN++OEHsrOzGTt27DVriYmJKXf2/d1333HTTTfRt29f5zRvb28ef/xxTp06xaFDh8os/9BDD5VpfSit+fI6S7dx//33O39u06YN/v7+tGvXrkxrWOl/l66vqirLly9n+PDhqKpa5t/VkCFDyMnJKfd7rGpNQlzv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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "M = get_maze_matrix('large')\n", + "env_info_l = parse_maze(M)\n", + "tmaze_env_l = GeneralizedTMazeEnv(env_info_l, batch_size=5)\n", + "render(env_info_l, tmaze_env_l);" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "%%capture\n", + "images = [render(env_info_l, tmaze_env_l)]\n", + "\n", + "timesteps = 10\n", + "key = jr.PRNGKey(0)\n", + "agent = make_aif_agent(tmaze_env_l)\n", + "_, info, _ = rollout(agent, tmaze_env_l, num_timesteps=timesteps, rng_key=key, policy_search=mcts_policy_search(max_depth=6, num_simulations=4096))\n", + "\n", + "for t in range(timesteps):\n", + " env_state = jtu.tree_map(lambda x: x[:, t], info['env'])\n", + " plt.figure()\n", + " images.append( np.array(render(env_info_l, env_state, show_img=False)))" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAABP8AAAGyCAYAAACbYGFOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5W0lEQVR4nO3df5RVdb34/9eZEQZ/JFrED/EH/qjQq2KBEJq6ykk+N6/lvSsj84Zh6VdDlzk3k+mHI7lyrFvELVHSrtovlborXZWKcSlqeaWFomg/xB+p0SJBvRUY6qBz9vePltwmQebA2XPmvN+Px1r7D/acOe99dOHT/T7vvXelKIoiAAAAAIDktDT6AAAAAACAcpj8AwAAAIBEmfwDAAAAgESZ/AMAAACARJn8AwAAAIBEmfwDAAAAgESZ/AMAAACARJn8AwAAAIBEmfwDAAAAgESZ/AMAAACARJn8A0jMz3/+8zjppJNir732ikqlErfccss2f2fp0qXxlre8Jdra2uKggw6K66+/vvTjBID+0DUAUtKIrpn8A0jMxo0bY8KECTF//vx+vf7xxx+PE088Md7+9rfHypUr42Mf+1h85CMfiTvuuKPkIwWAbdM1AFLSiK5ViqIotveAARjcKpVK3HzzzXHyySdv9TUXXXRR3HrrrfGrX/1q8773v//98ec//zkWLVo0AEcJAP2jawCkZKC6ZuUfQBPo6emJDRs29Nl6enrq8t7Lli2L9vb2PvumTZsWy5Ytq8v7A8Df0zUAUlFm0yLq07Wd6nY0O+idLac0+hAAYnH1e3V7r+raN9btvboXfCDmzJnTZ19XV1dccsklO/zea9eujVGjRvXZN2rUqNiwYUM8//zzsfPOO+/wGLlpVNP+98yjBnzM111z14CPCfRfvbpWz6ZF6FqzaUTXGtG0e+ZcNeBjRkRM22tCQ8aFZjQYu1Zm0yLq07VBM/kHwNZ1dnZGR0dHn31tbW0NOhoA2DG6BkAqmqFpJv8ASlKNat3eq62trbSAjB49OtatW9dn37p162L33Xe3OgKAiKhv0yJ0DYDGapZztYj6dM3kH0BJeov6BaXM/1hPnTo1brvttj77Fi9eHFOnTi1xVACaST2bFqFrADRWs5yrRdSnax74AZCYv/zlL7Fy5cpYuXJlRPz10fArV66M1atXR8Rfl6XPmDFj8+vPPvvseOyxx+ITn/hErFq1Kq688sr47ne/GxdccEEjDh8A+tA1AFLSiK5Z+QdQkmoUDRn3nnvuibe//e2b//zy/SdOP/30uP766+PJJ5/cHJaIiP333z9uvfXWuOCCC+I//uM/Yu+9946vf/3rMW3atAE/dgAGp0Y1LULXAKi/3LpWKYqicZ/4b3jaLzAY1PNpvxuf3K9u77XrmN/V7b0on6f9AoNFvbpWz6ZF6Fqz8bTfcnnaL/TfYOxaMzTNZb8AAAAAkCiX/QKUpHdwLKwGgB2maQCkJLeumfwDKEkj7yMBAPWkaQCkJLeuuewXAAAAABJl5R9ASXoz+zYJgHRpGgApya1rJv8ASpLbUnIA0qVpAKQkt6657BcAAAAAEmXlH0BJcnuCFADp0jQAUpJb10z+AZSk2ugDAIA60TQAUpJb11z2CwAAAACJsvIPoCS5PUEKgHRpGgApya1rJv8AStKbV08ASJimAZCS3Lrmsl8AAAAASJSVfwAlye0msgCkS9MASEluXTP5B1CS3qg0+hAAoC40DYCU5NY1l/0CAAAAQKKs/AMoSTWzm8gCkC5NAyAluXXN5B9ASXJbSg5AujQNgJTk1jWX/QIAAABAoqz8AyhJbt8mAZAuTQMgJbl1zeQfQEmqRV5BASBdmgZASnLrmst+AQAAACBRVv4BlCS3peQApEvTAEhJbl0z+QdQkl6LqwFIhKYBkJLcupbXpwUAAACAjFj5B1CS3G4iC0C6NA2AlOTWNZN/ACXJ7T4SAKRL0wBISW5dc9kvAAAAACTKyj+AkvQWvl8BIA2aBkBKcutazZN/zzzzTFx77bWxbNmyWLt2bUREjB49Oo466qj40Ic+FK9//evrfpAAzahqcXVT0DWAbdO05qBpAP2TW9dq+rR33313vPGNb4yvfOUrMXz48Dj22GPj2GOPjeHDh8dXvvKVGD9+fNxzzz1lHSsA1JWuAZAKTQNga2pa+XfeeefFKaecEgsWLIhKpe/NEYuiiLPPPjvOO++8WLZs2au+T09PT/T09PTZVy16o6XSWsvhAAxqud1EthnVo2uaBuRA0wY/52oA/Zdb12pa+Xf//ffHBRdc8IqYRERUKpW44IILYuXKldt8n+7u7hg+fHif7fFYVcuhAAx6vUVL3TbKUY+uaRqQg3o2TdfK4VwNoP9ya1pNRzl69OhYvnz5Vn++fPnyGDVq1Dbfp7OzM9avX99n2z/G13IoALDD6tE1TQNgMHCuBsDW1HTZ78c//vE466yzYsWKFXH88cdvjse6detiyZIlcc0118QXv/jFbb5PW1tbtLW19dlnGTmQmmpmS8mbUT26pmlADjRt8HOuBtB/uXWtpsm/WbNmxYgRI+LLX/5yXHnlldHb2xsREa2trTFx4sS4/vrr433ve18pBwrQbHoze4JUM9I1gP7RtMFP0wD6L7eu1TT5FxExffr0mD59erz44ovxzDPPRETEiBEjYsiQIXU/OAAom64BkApNA2BLap78e9mQIUNizJgx9TwWgKQ0y81f+StdA9g6TWsumgbw6nLr2nZP/gHw6qqZLSUHIF2aBkBKcutaXp8WAAAAADJi5R9ASXqLvJ4gBUC6NA2AlOTWNZN/ACXJ7QlSAKRL0wBISW5dy+vTAgAAAEBGrPwDKEk1sydIAZAuTQMgJbl1zeQfQElyW0oOQLo0DYCU5Na1vD4tAAAAAGTEyj+AkuT2BCkA0qVpAKQkt66Z/AMoSdXiagASoWkApCS3ruX1aQEAAAAgI1b+AZSkN7MnSAGQLk0DICW5dc3kH0BJqpHXfSQASJemAZCS3LqW11QnAAAAAGTEyj+AkuS2lByAdGkaACnJrWsm/wBK0mtxNQCJ0DQAUpJb1/L6tAAAAACQESv/AEpSLfK6iSwA6dI0AFKSW9dM/gGUJLel5ACkS9MASEluXcvr0wIAAABARqz8AyhJNbMnSAGQLk0DICW5dc3kH0BJeiOv+0gAkC5NAyAluXUtr6lOAAAAAMiIlX8AJcltKTkA6dI0AFKSW9dM/gGUJLel5ACkS9MASEluXctrqhMAAAAAMmLlH0BJcltKDkC6NA2AlOTWNZN/ACXpzSwoAKRL0wBISW5dy+vTAmRk/vz5MW7cuBg2bFhMmTIlli9f/qqvnzdvXrzpTW+KnXfeOfbZZ5+44IIL4oUXXhigowWArdM0AFIy0F2z8g+gJNUG3kR24cKF0dHREQsWLIgpU6bEvHnzYtq0afHQQw/FyJEjX/H6G264IWbPnh3XXnttHHXUUfHwww/Hhz70oahUKjF37twGfAIABhNNAyAluXXNyj+AkvQWLXXbajV37tw488wzY+bMmXHIIYfEggULYpdddolrr712i6+/66674uijj44PfOADMW7cuDjhhBPi1FNP3eY3UADkoZ5Nq7VrmgZAveV2rmbyD6AJ9PT0xIYNG/psPT09W3ztpk2bYsWKFdHe3r55X0tLS7S3t8eyZcu2+DtHHXVUrFixYnNAHnvssbjtttviXe96V/0/DADZ62/XNA2Awa4ZztWyvuz3jj/c3+hDGBDT9prQ6EOALFWL+i0l7+7ujjlz5vTZ19XVFZdccskrXvvMM89Eb29vjBo1qs/+UaNGxapVq7b4/h/4wAfimWeeibe97W1RFEW89NJLcfbZZ8cnP/nJun0Gyve6a+5q9CEMiEb0+6CFZw/4mI9OXzDgY/p/Bramnk2L6H/XNC1fjWjatGsa89/Aa1bfOeBj7rvTawZ8zIO++/8N+JgHfuwXAz4mzSG3czUr/wBK0hstdds6Oztj/fr1fbbOzs66HevSpUvjsssuiyuvvDLuvffe+P73vx+33nprXHrppXUbA4DmVc+mld01TQNgW5qlaRH16VrWK/8AmkVbW1u0tbX167UjRoyI1tbWWLduXZ/969ati9GjR2/xdz7zmc/EBz/4wfjIRz4SERGHHXZYbNy4Mc4666z41Kc+FS0tvisCoH762zVNA2Cwa4ZzNeUDKEm1qNRtq8XQoUNj4sSJsWTJkv87lmo1lixZElOnTt3i7zz33HOviEZra2tERBRFUeMnByA19WxaLV3TNADKkNu5mpV/ACWpNvD7lY6Ojjj99NNj0qRJMXny5Jg3b15s3LgxZs6cGRERM2bMiLFjx0Z3d3dERJx00kkxd+7cePOb3xxTpkyJRx99ND7zmc/ESSedtDksAORL0wBISW5dM/kHkKDp06fH008/HRdffHGsXbs2jjjiiFi0aNHmG8uuXr26z7dHn/70p6NSqcSnP/3pWLNmTbz+9a+Pk046KT73uc816iMAQERoGgBpaUTXKsUgWfv+zpZTBnxMT/sF/t7i6vfq9l4XrHx/3d7ry0fcVLf3onyNaFpOPO23PP6fIT316lo9mxaha81G18rlab/l8bTf9AzGrjVD06z8AyhJPR8fDwCNpGkApCS3rnngBwAAAAAkyso/gJJUC9+vAJAGTQMgJbl1La9PCwAAAAAZsfIPoCS9kdd9JABIl6YBkJLcumbyD6Akud1EFoB0aRoAKcmtay77BQAAAIBEWfkHUJLcbiILQLo0DYCU5NY1k38AJalmdh8JANKlaQCkJLeu5TXVCQAAAAAZsfIPoCS9md1EFoB0aRoAKcmtayb/AEqS230kAEiXpgGQkty6ltenBQAAAICMWPkHUJJqZkvJAUiXpgGQkty6ZvIPoCS5PUEKgHRpGgApya1rLvsFAAAAgERZ+QdQktyWkgOQLk0DICW5dc3kH0BJcnuCFADp0jQAUpJb1/L6tAAAAACQESv/AEqS21JyANKlaQCkJLeumfwDKEluT5ACIF2aBkBKcuuay34BAAAAIFFW/gGUJLel5ACkS9MASEluXTP5B1CS3IICQLo0DYCU5NY1l/0CAAAAQKKs/AMoSW7fJgGQLk0DICW5dc3kH0BJcgsKAOnSNABSklvXXPYLAAAAAImy8g+gJNXI69skANKlaQCkJLeumfwDKEluS8kBSJemAZCS3LpW98t+f//738cZZ5xR77cFgAGnaQCkRNcA8lT3yb8//vGP8Y1vfONVX9PT0xMbNmzos1WL3nofCkBDVYtK3TYaQ9MA/qqeTdO1xtE1gL/KrWk1X/b7gx/84FV//thjj23zPbq7u2POnDl99u0fB8eB8Q+1Hg7AoNUsIciZpgH0j6Y1B10D6J/culbz5N/JJ58clUoliqLY6msqlVf/h9jZ2RkdHR199v3z8A/VeigAsEM0DYCU6BoAW1LzZb9jxoyJ73//+1GtVre43Xvvvdt8j7a2tth99937bC2V1u36AACDVW5LyZuRpgH0j8t+m4OuAfRPbk2refJv4sSJsWLFiq3+fFvfNAHkoigqddsoh6YB9E89m6Zr5dE1gP7JrWk1X/Z74YUXxsaNG7f684MOOih++tOf7tBBAcBA0DQAUqJrAGxJzZN/xxxzzKv+fNddd43jjjtuuw8IIBXVaI5vgXKmaQD9o2nNQdcA+ie3rtU8+QdA/zTL/R8AYFs0DYCU5Na1mu/5BwAAAAA0Byv/AErSLDd/BYBt0TQAUpJb10z+AZQkt6XkAKRL0wBISW5dc9kvAAAAACTKyj+AkuS2lByAdGkaACnJrWsm/wBKkttScgDSpWkApCS3rrnsFwAAAAASZeUfQEmKotFHAAD1oWkApCS3rpn8AyhJNfJaSg5AujQNgJTk1jWX/QIAAABAoqz8AyhJbk+QAiBdmgZASnLrmsk/gJLk9gQpANKlaQCkJLeuuewXAAAAABJl5R9ASXJ7ghQA6dI0AFKSW9dM/gGUJLf7SACQLk0DICW5dc1lvwAAAACQKCv/AEqS27dJAKRL0wBISW5dM/kHUJLcniAFQLo0DYCU5NY1l/0CAAAAQKKs/AMoSW5PkAIgXZoGQEpy65rJP4CS5HYfCQDSpWkApCS3rrnsFwAAAAASZeUfQEly+zYJgHRpGgApya1rJv8ASpLZbSQASJimAZCS3Lrmsl8AAAAASJSVfwAlyW0pOQDp0jQAUpJb10z+AZQlt7XkAKRL0wBISWZdc9kvQKLmz58f48aNi2HDhsWUKVNi+fLlr/r6P//5zzFr1qwYM2ZMtLW1xRvf+Ma47bbbBuhoAWDrNA2AlAx016z8AyhJI5eSL1y4MDo6OmLBggUxZcqUmDdvXkybNi0eeuihGDly5Ctev2nTpnjnO98ZI0eOjP/6r/+KsWPHxu9+97vYY489Bv7gARh0NA2AlOTWNZN/ACUpGriUfO7cuXHmmWfGzJkzIyJiwYIFceutt8a1114bs2fPfsXrr7322vjjH/8Yd911VwwZMiQiIsaNGzeQhwzAIKZpAKQkt6657BegCfT09MSGDRv6bD09PVt87aZNm2LFihXR3t6+eV9LS0u0t7fHsmXLtvg7P/jBD2Lq1Kkxa9asGDVqVBx66KFx2WWXRW9vbymfB4C89bdrmgbAYNcM52qDZuVfzz9NHvAxp+014EMCGannUvLu7u6YM2dOn31dXV1xySWXvOK1zzzzTPT29saoUaP67B81alSsWrVqi+//2GOPxU9+8pM47bTT4rbbbotHH300PvrRj8aLL74YXV1ddfscuWhE0yIi2n706vcKScW0vSYM/KDzBv7r4YZ8TtiKel8e1d+uadrg0Iiu5dK0iIgz931bow9hYHx54C+zvOMP9w/4mPrdHHI7Vxs0k38AyaljUDo7O6Ojo6PPvra2trq9f7VajZEjR8bVV18dra2tMXHixFizZk38+7//uxMlAOratIhyu6ZpAGxTZudqJv8AmkBbW1u/AzJixIhobW2NdevW9dm/bt26GD169BZ/Z8yYMTFkyJBobW3dvO/ggw+OtWvXxqZNm2Lo0KHbf/AA8Hf62zVNA2Cwa4ZzNff8AyhJUdRvq8XQoUNj4sSJsWTJks37qtVqLFmyJKZOnbrF3zn66KPj0UcfjWq1unnfww8/HGPGjHGSBEBdm1ZL1zQNgDLkdq5m8g+gLEUdtxp1dHTENddcE9/4xjfiwQcfjHPOOSc2bty4+YlSM2bMiM7Ozs2vP+ecc+KPf/xjnH/++fHwww/HrbfeGpdddlnMmjVr+z47AGmpZ9Nq7JqmAVB3mZ2ruewXIEHTp0+Pp59+Oi6++OJYu3ZtHHHEEbFo0aLNN5ZdvXp1tLT83/c/++yzT9xxxx1xwQUXxOGHHx5jx46N888/Py666KJGfQQAiAhNAyAtjeiayT+AktT7yYi1Ovfcc+Pcc8/d4s+WLl36in1Tp06NX/ziFyUfFQDNSNMASEluXTP5B1CW7VgCDgCDkqYBkJLMuuaefwAAAACQKCv/AErS6KXkAFAvmgZASnLrmsk/gLJktpQcgIRpGgApyaxrLvsFAAAAgERZ+QdQmryWkgOQMk0DICV5dc3kH0BZMltKDkDCNA2AlGTWNZf9AgAAAECirPwDKEtm3yYBkDBNAyAlmXXN5B9AWTJ7fDwACdM0AFKSWddc9gsAAAAAibLyD6AkRWZLyQFIl6YBkJLcumbyD6AsmQUFgIRpGgApyaxrLvsFAAAAgERZ+QdQlsxuIgtAwjQNgJRk1jWTfwAlqWS2lByAdGkaACnJrWsu+wUAAACARFn5B1CWzL5NAiBhmgZASjLrmsk/gLJkdh8JABKmaQCkJLOuuewXAAAAABJl5R9AWTJbSg5AwjQNgJRk1jWTfwBlySwoACRM0wBISWZdc9kvAAAAACTKyj+AsmT2bRIACdM0AFKSWddM/gGUJbMnSAGQME0DICWZdc1lvwAAAACQKCv/AEpSyWwpOQDp0jQAUpJb10z+AZQls6AAkDBNAyAlmXXNZb8AAAAAkCiTfwAAAACQqJon/55//vm488474ze/+c0rfvbCCy/EN7/5zbocGECzqxT12yiPrgFsWz2bpmvl0TSA/smtaTVN/j388MNx8MEHx7HHHhuHHXZYHHfccfHkk09u/vn69etj5syZ23yfnp6e2LBhQ5+t2vtS7UcPADugHl3TNAAGA+dqAGxNTZN/F110URx66KHx1FNPxUMPPRSvec1r4uijj47Vq1fXNGh3d3cMHz68z/b7R39S03sADHpFpX4bpahH1zQNyEI9m6ZrpXCuBlCDzJpW0+TfXXfdFd3d3TFixIg46KCD4oc//GFMmzYtjjnmmHjsscf6/T6dnZ2xfv36Pts+B72j5oMHGNSKOm6Uoh5d0zQgC/Vsmq6VwrkaQA0ya1pNk3/PP/987LTTTpv/XKlU4qqrroqTTjopjjvuuHj44Yf79T5tbW2x++6799laWnfa9i8CQB3Vo2uaBsBg4FwNgK2p6b/i48ePj3vuuScOPvjgPvuvuOKKiIh497vfXb8jA2h2TfItUM50DaCfNG3Q0zSAGmTWtZpW/v3zP/9z3HjjjVv82RVXXBGnnnpqFEVm/wQBtiK3J0g1I10D6B9P+x38NA2g/3JrWk2Tf52dnXHbbbdt9edXXnllVKvVHT4oABgIugZAKjQNgK1x8waAsjTJt0AAsE2aBkBKMuuayT+AsmQWFAASpmkApCSzrtV02S8AAAAA0Dys/AMoSbPc/BUAtkXTAEhJbl0z+QdQlqLS6CMAgPrQNABSklnXXPYLAAAAAImy8g+gLJktJQcgYZoGQEoy65rJP4CS5HYfCQDSpWkApCS3rrnsFwAAAAASZeUfQFky+zYJgIRpGgApyaxrJv8ASpLbUnIA0qVpAKQkt6657BcAAAAAEmXlH0BZMvs2CYCEaRoAKcmsayb/AMqSWVAASJimAZCSzLrmsl8AAAAASJSVfwAlye0msgCkS9MASEluXbPyDwAAAAASZfIPAAAAABLlsl+AsmS2lByAhGkaACnJrGsm/wBKktt9JABIl6YBkJLcuuayXwAAAABIlJV/AGXJ7NskABKmaQCkJLOumfwDKEtmQQEgYZoGQEoy65rLfgEAAAAgUVb+AZQkt5vIApAuTQMgJbl1zeQfQFkyCwoACdM0AFKSWddc9gsAAAAAibLyD6AkuS0lByBdmgZASnLrmpV/AGUp6rhth/nz58e4ceNi2LBhMWXKlFi+fHm/fu+mm26KSqUSJ5988vYNDEB66tm07eiapgFQV5mdq5n8A0jQwoULo6OjI7q6uuLee++NCRMmxLRp0+Kpp5561d974okn4uMf/3gcc8wxA3SkAPDqNA2AlDSiayb/AMrSwG+T5s6dG2eeeWbMnDkzDjnkkFiwYEHssssuce211271d3p7e+O0006LOXPmxAEHHFD7oACkq4Er/zQNgLrL7FzN5B9ASSpF/baenp7YsGFDn62np2eL427atClWrFgR7e3tm/e1tLREe3t7LFu2bKvH+9nPfjZGjhwZH/7wh+v+zwKA5lbPptXSNU0DoAy5nasNmgd+HNL1wICP+dsfDfiQANulu7s75syZ02dfV1dXXHLJJa947TPPPBO9vb0xatSoPvtHjRoVq1at2uL733nnnfGf//mfsXLlynodctYa0bSIiPvPPXDAx1y36vUDPuaBH/tFFmNCyvrbNU0bHBrRtUY0bbf/99sBHzMiovW1ew74mL1//NOAj3ngBVuf2CjLtAsmDPiY5KcZztUGzeQfQHK28+avW9LZ2RkdHR199rW1tdXlvZ999tn44Ac/GNdcc02MGDGiLu8JQGLq2LSI8rqmaQD0S2bnaib/AMpSx6C0tbX1OyAjRoyI1tbWWLduXZ/969ati9GjR7/i9b/97W/jiSeeiJNOOmnzvmq1GhERO+20Uzz00ENx4IED/+07AINInSf/+ts1TQOgFJmdq7nnH0Bihg4dGhMnTowlS5Zs3letVmPJkiUxderUV7x+/Pjx8ctf/jJWrly5eXv3u98db3/722PlypWxzz77DOThA8BmmgZAShrVNSv/AEpSqfMqiVp0dHTE6aefHpMmTYrJkyfHvHnzYuPGjTFz5syIiJgxY0aMHTs2uru7Y9iwYXHooYf2+f099tgjIuIV+wHIk6YBkJLcumbyD6AsDQzK9OnT4+mnn46LL7441q5dG0cccUQsWrRo841lV69eHS0tFn8D0E+aBkBKMuuayT+ARJ177rlx7rnnbvFnS5cufdXfvf766+t/QACwnTQNgJQMdNdM/gGUpJFLyQGgnjQNgJTk1jWTfwBlySwoACRM0wBISWZdc3MMAAAAAEiUlX8AZcns2yQAEqZpAKQks66Z/AMoSaXRBwAAdaJpAKQkt6657BcAAAAAEmXlH0BZMltKDkDCNA2AlGTWNZN/ACXJ7fHxAKRL0wBISW5dc9kvAAAAACTKyj+AsmT2bRIACdM0AFKSWddM/gGUJbOgAJAwTQMgJZl1zWW/AAAAAJAoK/8ASpLbTWQBSJemAZCS3Lpm8g+gLJkFBYCEaRoAKcmsay77BQAAAIBEWfkHUJLclpIDkC5NAyAluXXN5B9AWTILCgAJ0zQAUpJZ11z2CwAAAACJsvIPoCS5LSUHIF2aBkBKcuuayT+AsmQWFAASpmkApCSzrrnsFwAAAAASZeUfQFky+zYJgIRpGgApyaxrJv8ASpLbfSQASJemAZCS3Lrmsl8AAAAASJSVfwBlyezbJAASpmkApCSzrpn8AyhJpcisKAAkS9MASEluXXPZLwAAAAAkyso/gLLk9WUSACnTNABSklnXTP4BlCS3J0gBkC5NAyAluXXNZb8AAAAAkKiaJ/8efPDBuO6662LVqlUREbFq1ao455xz4owzzoif/OQndT9AgKZV1HGjNLoG0A/1bJqulUbTAPops6bVdNnvokWL4j3veU/stttu8dxzz8XNN98cM2bMiAkTJkS1Wo0TTjghfvzjH8c73vGOV32fnp6e6Onp6bOvd1NvtA5trf0TAAxSuS0lb0b16JqmATnQtMHPuRpA/+XWtZpW/n32s5+NCy+8MP73f/83rrvuuvjABz4QZ555ZixevDiWLFkSF154YVx++eXbfJ/u7u4YPnx4n+2+63613R8CALZHPbqmaQAMBs7VANiamib/fv3rX8eHPvShiIh43/veF88++2y8973v3fzz0047LR544IFtvk9nZ2esX7++z/bmmYfWduQAg11mS8mbUT26pmlAFlz2O+g5VwOoQWZNq/lpv5VKJSIiWlpaYtiwYTF8+PDNP3vNa14T69ev3+Z7tLW1RVtbW599lpEDqcltKXmz2tGuaRqQA01rDs7VAPont67VtPJv3Lhx8cgjj2z+87Jly2Lffffd/OfVq1fHmDFj6nd0AFAiXQMgFZoGwNbUtPLvnHPOid7e3s1/PvTQvsu/b7/99m3eQBYgG5l9m9SMdA2gnzRt0NM0gBpk1rWaJv/OPvvsV/35ZZddtkMHA5CS3JaSNyNdA+gfTRv8NA2g/3LrWk2X/QIAAAAAzaPmB34A0E9FZl8nAZAuTQMgJZl1zco/AAAAAEiUlX8AJcntPhIApEvTAEhJbl0z+QdQlsyCAkDCNA2AlGTWNZf9AgAAAECirPwDKEml2ugjAID60DQAUpJb10z+AZQls6XkACRM0wBISWZdc9kvAAAAACTKyj+AkuT2BCkA0qVpAKQkt66Z/AMoS5FZUQBIl6YBkJLMuuayXwAAAABIlJV/ACXJbSk5AOnSNABSklvXTP4BlCWzoACQME0DICWZdc1lvwAAAACQKCv/AEqS21JyANKlaQCkJLeumfwDKEtmT5ACIGGaBkBKMuuay34BAAAAIFFW/gGUJLel5ACkS9MASEluXTP5B1CWzIICQMI0DYCUZNY1l/0CAAAAQKKs/AMoSW5LyQFIl6YBkJLcumbyD6As1cyKAkC6NA2AlGTWNZf9AgAAAECirPwDKEteXyYBkDJNAyAlmXXN5B9ASXK7jwQA6dI0AFKSW9dc9gsAAAAAibLyD6AsRWZfJwGQLk0DICWZdc3KP4CSVIr6bdtj/vz5MW7cuBg2bFhMmTIlli9fvtXXXnPNNXHMMcfEnnvuGXvuuWe0t7e/6usByEs9m7Y9XdM0AOopt3M1k38ACVq4cGF0dHREV1dX3HvvvTFhwoSYNm1aPPXUU1t8/dKlS+PUU0+Nn/70p7Fs2bLYZ5994oQTTog1a9YM8JEDQF+aBkBKGtE1k38AZSnquNVo7ty5ceaZZ8bMmTPjkEMOiQULFsQuu+wS11577RZf/53vfCc++tGPxhFHHBHjx4+Pr3/961GtVmPJkiW1Dw5AeurZtBq7pmkA1F1m52ru+QdQkkod7yPR09MTPT09ffa1tbVFW1vbK167adOmWLFiRXR2dm7e19LSEu3t7bFs2bJ+jffcc8/Fiy++GK997Wt37MABSEI9mxbR/65pGgBlyO1cbdBM/v32yBcafQjJuuMP9zf6EIAd1N3dHXPmzOmzr6urKy655JJXvPaZZ56J3t7eGDVqVJ/9o0aNilWrVvVrvIsuuij22muvaG9v3+5jzlmjmrZb/HbAx1z35ZEDPibl8f8MDJT+dk3TBodGdK0RTWuU3j/+qdGHQB1paX6a4Vxt0Ez+ASSnWr+36uzsjI6Ojj77tvRNUj1cfvnlcdNNN8XSpUtj2LBhpYwBQJOpY9MiBq5rmgbAFmV2rmbyD6Ak9VxKvrVl41syYsSIaG1tjXXr1vXZv27duhg9evSr/u4Xv/jFuPzyy+O///u/4/DDD9/u4wUgLfW+7Le/XdM0AMqQ27maB34AJGbo0KExceLEPjeAffmGsFOnTt3q733hC1+ISy+9NBYtWhSTJk0aiEMFgFelaQCkpFFds/IPoCz1XSRRk46Ojjj99NNj0qRJMXny5Jg3b15s3LgxZs6cGRERM2bMiLFjx0Z3d3dERHz+85+Piy++OG644YYYN25crF27NiIidtttt9htt90a9jkAGCQ0DYCUZNY1k38AZanzJVK1mD59ejz99NNx8cUXx9q1a+OII46IRYsWbb6x7OrVq6Ol5f8Wf1911VWxadOmeO9739vnfbZ2o1oAMqNpAKQks66Z/ANI1LnnnhvnnnvuFn+2dOnSPn9+4oknyj8gANhOmgZASga6ayb/AEpSaeBScgCoJ00DICW5dc3kH0BZGriUHADqStMASElmXfO0XwAAAABIlJV/ACWpVBt9BABQH5oGQEpy65rJP4CyZLaUHICEaRoAKcmsay77BQAAAIBEWfkHUJa8vkwCIGWaBkBKMuuayT+AklQyW0oOQLo0DYCU5NY1l/0CAAAAQKKs/AMoS2bfJgGQME0DICWZdc3kH0BZMnt8PAAJ0zQAUpJZ11z2CwAAAACJsvIPoCS53UQWgHRpGgApya1rJv8AypJZUABImKYBkJLMuuayXwAAAABIlJV/AGXJ7NskABKmaQCkJLOumfwDKEtmT5ACIGGaBkBKMuuay34BAAAAIFFW/gGUJLcnSAGQLk0DICW5dc3kH0BZMgsKAAnTNABSklnXXPYLAAAAAImy8g+gLJl9mwRAwjQNgJRk1jWTfwBlySwoACRM0wBISWZdc9kvAAAAACTKyj+AslQbfQAAUCeaBkBKMuuayT+AkuT2+HgA0qVpAKQkt6657BcAAAAAEmXlH0BZMvs2CYCEaRoAKcmsa3WZ/CuKIiqVSj3eCiAd1byCkgpNA9gCTWtaugawBZl1rS6X/ba1tcWDDz5Yj7cCgIbSNABSomsA1LTyr6OjY4v7e3t74/LLL4/Xve51ERExd+7cHT8ygGaX2VLyZqNpADXQtEFP1wBqkFnXapr8mzdvXkyYMCH22GOPPvuLoogHH3wwdt11134tKe/p6Ymenp4++6pFb7RUWms5HIDBLbOgNBtNA6iBpg16ugZQg8y6VtPk32WXXRZXX311fOlLX4p3vOMdm/cPGTIkrr/++jjkkEP69T7d3d0xZ86cPvv2j4PjwPiHWg4HALabpgGQEl0DYGtquuff7NmzY+HChXHOOefExz/+8XjxxRe3a9DOzs5Yv359n23/GL9d7wUwaBVF/TbqTtMAalDPpulaKXQNoAaZNa3mB34ceeSRsWLFinj66adj0qRJ8atf/armp0e1tbXF7rvv3mezjBxITrWo30YpNA2gn+rZNF0rja4B9FNmTavpst+X7bbbbvGNb3wjbrrppmhvb4/e3t56HxcADAhNAyAlugbA39uuyb+Xvf/974+3ve1tsWLFithvv/3qdUwAaSiqjT4CaqBpAK9C05qOrgG8isy6tkOTfxERe++9d+y99971OBaAtDTJ/R/4P5oGsBWa1pR0DWArMutazff8AwAAAACaww6v/ANgK5rk5q8AsE2aBkBKMuuayT+AsmS2lByAhGkaACnJrGsu+wUAAACARFn5B1CWzL5NAiBhmgZASjLrmsk/gLJkFhQAEqZpAKQks6657BcAAAAAEmXlH0BZqtVGHwEA1IemAZCSzLpm8g+gLJktJQcgYZoGQEoy65rLfgEAAAAgUVb+AZQls2+TAEiYpgGQksy6ZvIPoCzVvIICQMI0DYCUZNY1l/0CAAAAQKKs/AMoSVHk9QQpANKlaQCkJLeumfwDKEtmS8kBSJimAZCSzLrmsl8AAAAASJSVfwBlyewJUgAkTNMASElmXTP5B1CWal73kQAgYZoGQEoy65rLfgEAAAAgUVb+AZQls6XkACRM0wBISWZdM/kHUJIis6XkAKRL0wBISW5dc9kvAAAAACTKyj+AsmS2lByAhGkaACnJrGsm/wDKUs0rKAAkTNMASElmXXPZLwAAAAAkyso/gLIUed1EFoCEaRoAKcmsayb/AEpSZLaUHIB0aRoAKcmtay77BQAAAIBEmfwDKEtRrd+2HebPnx/jxo2LYcOGxZQpU2L58uWv+vrvfe97MX78+Bg2bFgcdthhcdttt23XuAAkqJ5N246uaRoAdZXZuZrJP4CSFNWiblutFi5cGB0dHdHV1RX33ntvTJgwIaZNmxZPPfXUFl9/1113xamnnhof/vCH47777ouTTz45Tj755PjVr361o/8YAEhAPZtWa9c0DYB6y+1crVIUxaC40PmdLac0+hCSdccf7m/0IUDTaBn9cN3e652t0+v2Xot7F9b0+ilTpsSRRx4ZV1xxRUREVKvV2GeffeK8886L2bNnv+L106dPj40bN8aPfvSjzfve+ta3xhFHHBELFizYsYPPUE5N++2Xpw74mAdesGzAx8yF/2dIT726Vs+mRdTWNU1rvJy6BjtKS8s1GLvWDOdqVv4BlKWOS8l7enpiw4YNfbaenp4tDrtp06ZYsWJFtLe3b97X0tIS7e3tsWzZlidNli1b1uf1ERHTpk3b6usByEydL/vtb9c0DYBS5HauVjSxF154oejq6ipeeOGFpMds1LjGTGvMRo2by5hl6+rqKiKiz9bV1bXF165Zs6aIiOKuu+7qs//CCy8sJk+evMXfGTJkSHHDDTf02Td//vxi5MiRdTl++ieXvy+5jNmocY2Z1piNHLdM/e2apjW3XP6eGjOtMRs1rjGbVzOcqzX15N/69euLiCjWr1+f9JiNGteYaY3ZqHFzGbNsL7zwQrF+/fo+29aC6USpeeXy9yWXMRs1rjHTGrOR45apv13TtOaWy99TY6Y1ZqPGNWbzaoZztZ36v0YQgEZpa2uLtra2fr12xIgR0draGuvWreuzf926dTF69Ogt/s7o0aNrej0A7Ij+dk3TABjsmuFczT3/ABIzdOjQmDhxYixZsmTzvmq1GkuWLImpU7f8cIapU6f2eX1ExOLFi7f6egAYCJoGQEoa1TUr/wAS1NHREaeffnpMmjQpJk+eHPPmzYuNGzfGzJkzIyJixowZMXbs2Oju7o6IiPPPPz+OO+64+NKXvhQnnnhi3HTTTXHPPffE1Vdf3ciPAQCaBkBSGtG1pp78a2tri66urn4vr2zWMRs1rjHTGrNR4+Yy5mAzffr0ePrpp+Piiy+OtWvXxhFHHBGLFi2KUaNGRUTE6tWro6Xl/xZ/H3XUUXHDDTfEpz/96fjkJz8Zb3jDG+KWW26JQw89tFEfIUu5/H3JZcxGjWvMtMZs5LiDhaY1r1z+nhozrTEbNa4x89GIrlWKoijq/kkAAAAAgIZzzz8AAAAASJTJPwAAAABIlMk/AAAAAEiUyT8AAAAASFRTT/7Nnz8/xo0bF8OGDYspU6bE8uXLSx3v5z//eZx00kmx1157RaVSiVtuuaXU8bq7u+PII4+M17zmNTFy5Mg4+eST46GHHip1zIiIq666Kg4//PDYfffdY/fdd4+pU6fG7bffXvq4L7v88sujUqnExz72sVLHueSSS6JSqfTZxo8fX+qYERFr1qyJf/3Xf43Xve51sfPOO8dhhx0W99xzT2njjRs37hWfs1KpxKxZs0obs7e3Nz7zmc/E/vvvHzvvvHMceOCBcemll0bZzxd69tln42Mf+1jst99+sfPOO8dRRx0Vd999d6ljQr2k3rSIxnSt0U2L0LV60zVdoznoWjly6VouTYvQNV0bGE07+bdw4cLo6OiIrq6uuPfee2PChAkxbdq0eOqpp0obc+PGjTFhwoSYP39+aWP8rZ/97Gcxa9as+MUvfhGLFy+OF198MU444YTYuHFjqePuvffecfnll8eKFSvinnvuiXe84x3xnve8J37961+XOm5ExN133x1f+9rX4vDDDy99rIiIf/iHf4gnn3xy83bnnXeWOt6f/vSnOProo2PIkCFx++23x29+85v40pe+FHvuuWdpY9599919PuPixYsjIuKUU04pbczPf/7zcdVVV8UVV1wRDz74YHz+85+PL3zhC/HVr361tDEjIj7ykY/E4sWL41vf+lb88pe/jBNOOCHa29tjzZo1pY4LOyqHpkU0pmuNbFqErpVB13SNwU/XdK0ecmhahK7p2gApmtTkyZOLWbNmbf5zb29vsddeexXd3d0DMn5EFDfffPOAjPWyp556qoiI4mc/+9mAjlsURbHnnnsWX//610sd49lnny3e8IY3FIsXLy6OO+644vzzzy91vK6urmLChAmljvH3LrroouJtb3vbgI75984///ziwAMPLKrVamljnHjiicUZZ5zRZ9+//Mu/FKeddlppYz733HNFa2tr8aMf/ajP/re85S3Fpz71qdLGhXrIsWlF0biuDUTTikLXBoquweCja7q2o3JtWlHoGuVoypV/mzZtihUrVkR7e/vmfS0tLdHe3h7Lli1r4JGVa/369RER8drXvnbAxuzt7Y2bbropNm7cGFOnTi11rFmzZsWJJ57Y599r2R555JHYa6+94oADDojTTjstVq9eXep4P/jBD2LSpElxyimnxMiRI+PNb35zXHPNNaWO+bc2bdoU3/72t+OMM86ISqVS2jhHHXVULFmyJB5++OGIiLj//vvjzjvvjH/8x38sbcyXXnopent7Y9iwYX3277zzzqV/Swg7ItemRQx81wayaRG6NhB0DQYfXdO1esmtaRG6RokaPfu4PdasWVNERHHXXXf12X/hhRcWkydPHpBjiAH+Nqm3t7c48cQTi6OPPnpAxnvggQeKXXfdtWhtbS2GDx9e3HrrraWOd+ONNxaHHnpo8fzzzxdFUQzIConbbrut+O53v1vcf//9xaJFi4qpU6cW++67b7Fhw4bSxmxrayva2tqKzs7O4t577y2+9rWvFcOGDSuuv/760sb8WwsXLixaW1uLNWvWlDpOb29vcdFFFxWVSqXYaaedikqlUlx22WWljlkURTF16tTiuOOOK9asWVO89NJLxbe+9a2ipaWleOMb31j62LC9cmxaUQxs1wa6aUWha7pWH7pGM9I1XauHHJtWFLpGeUz+baeBDsrZZ59d7LfffsXvf//7ARmvp6eneOSRR4p77rmnmD17djFixIji17/+dSljrV69uhg5cmRx//33b943ECdJf+9Pf/pTsfvuu5e6ZH7IkCHF1KlT++w777zzire+9a2ljfm3TjjhhOKf/umfSh/nxhtvLPbee+/ixhtvLB544IHim9/8ZvHa17629HA++uijxbHHHltERNHa2loceeSRxWmnnVaMHz++1HFhR+TYtKIY2K4NZNOKQtd0rX50jWaka7pWhhyaVhS6RnmacvKvp6enaG1tfcV/0GfMmFG8+93vHpBjGMigzJo1q9h7772Lxx57bEDG25Ljjz++OOuss0p575tvvnnzX/6Xt4goKpVK0draWrz00kuljLslkyZNKmbPnl3a+++7777Fhz/84T77rrzyymKvvfYqbcyXPfHEE0VLS0txyy23lD7W3nvvXVxxxRV99l166aXFm970ptLHLoqi+Mtf/lL84Q9/KIqiKN73vvcV73rXuwZkXNgeuTWtKBrftTKbVhS6pmv1p2s0E10beLl0LeWmFYWuUa6mvOff0KFDY+LEibFkyZLN+6rVaixZsmRA7nUwUIqiiHPPPTduvvnm+MlPfhL7779/w46lWq1GT09PKe99/PHHxy9/+ctYuXLl5m3SpElx2mmnxcqVK6O1tbWUcf/eX/7yl/jtb38bY8aMKW2Mo48+Oh566KE++x5++OHYb7/9ShvzZdddd12MHDkyTjzxxNLHeu6556Klpe9/XlpbW6NarZY+dkTErrvuGmPGjIk//elPcccdd8R73vOeARkXtkcuTYsYPF0rs2kRuqZr9adrNBNdG3g5dC31pkXoGiVr8OTjdrvpppuKtra24vrrry9+85vfFGeddVaxxx57FGvXri1tzGeffba47777ivvuu6+IiGLu3LnFfffdV/zud78rZbxzzjmnGD58eLF06dLiySef3Lw999xzpYz3stmzZxc/+9nPiscff7x44IEHitmzZxeVSqX48Y9/XOq4f2sglpH/27/9W7F06dLi8ccfL/7nf/6naG9vL0aMGFE89dRTpY25fPnyYqeddio+97nPFY888kjxne98p9hll12Kb3/726WNWRR/vafDvvvuW1x00UWljvOy008/vRg7dmzxox/9qHj88ceL73//+8WIESOKT3ziE6WOu2jRouL2228vHnvsseLHP/5xMWHChGLKlCnFpk2bSh0XdlQOTSuKxnRtMDStKHSt3nRN1xjcdE3XdlROTSsKXdO18jXt5F9RFMVXv/rVYt999y2GDh1aTJ48ufjFL35R6ng//elPi4h4xXb66aeXMt6WxoqI4rrrritlvJedccYZxX777VcMHTq0eP3rX18cf/zxycWkKIpi+vTpxZgxY4qhQ4cWY8eOLaZPn148+uijpY5ZFEXxwx/+sDj00EOLtra2Yvz48cXVV19d+ph33HFHERHFQw89VPpYRVEUGzZsKM4///xi3333LYYNG1YccMABxac+9amip6en1HEXLlxYHHDAAcXQoUOL0aNHF7NmzSr+/Oc/lzom1EvqTSuKxnRtMDStKHSt3nQNBj9dK0cuXcupaUWha5SvUhRFUeLCQgAAAACgQZrynn8AAAAAwLaZ/AMAAACARJn8AwAAAIBEmfwDAAAAgESZ/AMAAACARJn8AwAAAIBEmfwDAAAAgESZ/AMAAACARJn8AwAAAIBEmfwDAAAAgESZ/AMAAACARJn8AwAAAIBE/f9C6yf88ktECAAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot q(u_t) for each time step\n", + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qpi'][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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8MILateuXaXHiUajatCgQdKWFkl3MxQASHkJRTzb3Jo9e7YKCgo0YcIErV27Vp06dVJ+fr4OHDhQ7tf/5S9/0fjx4zVhwgRt2rRJ//Ef/6HZs2fr17/+9en+Z0hpXnSNpgGwgZdNc9s1muYM12oA4Jxt12qubvt98MEH1aNHD+Xl5alr1656+OGHtXz5cuXk5GjLli166623NHfuXDeHBIDQqsml5I888ohuuukmjRgxQpI0bdo0vfrqq5o+fbrGjx9/0tevXLlSPXr00HXXXSdJat26tQYPHqy33367Wsdd3egaADhD01IfTQMA52zrmquftlmzZlq3bp1yc3O1cOFCGWO0atUqLV68WOecc47efPNNXXHFFW4OCQBwoLyHb8disXK/9sSJE1qzZo369OlTti8tLU19+vRRcXFxud9z4YUXas2aNWXLzbdv36758+eH/u90ugYANcNp12iaczQNAGpGEK7VXK38k6QzzzxTkyZN0qRJk9x+KwBYJWHcLwGvSHkP354wYYLuvffek7720KFDisfjatKkSdL+Jk2aaPPmzeUe/7rrrtOhQ4d00UUXyRijr776Srfcckvob5GS6BoAOOFl0yTnXaNp7tA0AHDGtms1u15vAgDVKK40z7byHr5dWFjo2ViXL1+uBx54QE888YTWrl2rOXPm6NVXX9V9993n2TkAAMHlZdP87hpNAwBUJihNk7zpmuuVfwCA6heNRhWNRh19bWZmptLT07V///6k/fv371fTpk3L/Z67775bv/jFL3TjjTdKkjp27KgjR47o5ptv1l133aW0NH5XBADwjtOu0TQAQKoLwrUa5QMAnyRMxLPNjYyMDHXp0kVLly79x1gSCS1dulS5ubnlfs/Ro0dPikZ6+tdv9jPGuPzJAQBh42XT3HSNpgEA/GDbtRor/wDAJ4ka/P1KQUGBhg0bpq5du6pbt2567LHHdOTIkbI3Sg0dOlTNmzdXUVGRJKlfv3565JFHdP7556t79+764IMPdPfdd6tfv35lYQEA2IumAQDCxLauMfkHACE0aNAgHTx4UPfcc4/27dunzp07a+HChWUPlt21a1fSb49+85vfKBKJ6De/+Y12796ts88+W/369dP9999fUz8CAACSaBoAIFxqomsRkyJr3y9Lu6amhwAAWpJ40bNjjVn/M8+O9WjnWZ4dC/6jaQBS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1qhPnz5l+9LS0tSnTx8VFxfX4Mj8VVJSIkk666yzqu2c8Xhcs2bN0pEjR5Sbm+vruUaNGqUrr7wy6X9Xv23btk3NmjXTueeeqyFDhmjXrl2+nm/evHnq2rWrrrnmGjVu3Fjnn3++nn76aV/P+c9OnDihP//5z7r++usViUR8O8+FF16opUuXauvWrZKkDRs2aMWKFbr88st9O+dXX32leDyuOnXqJO2vW7eu778lBE6HrU2Tqr9r1dk0ia5VB7oGpB66Rte8YlvTJLoGH9X07GNV7N6920gyK1euTNo/duxY061bt2oZg6r5t0nxeNxceeWVpkePHtVyvnfffdfUq1fPpKenm4YNG5pXX33V1/PNnDnTdOjQwRw7dswYY6plhcT8+fPNCy+8YDZs2GAWLlxocnNzTcuWLU1paalv54xGoyYajZrCwkKzdu1a8+STT5o6deqYZ555xrdz/rPZs2eb9PR0s3v3bl/PE4/Hzbhx40wkEjG1atUykUjEPPDAA76e0xhjcnNzTV5entm9e7f56quvzPPPP2/S0tLM97//fd/PDVSVjU0zpnq7Vt1NM4au0TVv0DUEEV2ja16wsWnG0DX4h8m/KqruoNxyyy2mVatW5uOPP66W88ViMbNt2zazevVqM378eJOZmWnef/99X861a9cu07hxY7Nhw4ayfdVxkfRtn332mWnQoIGvS+Zr165tcnNzk/bddttt5sc//rFv5/xnffv2NT/5yU98P8/MmTPNOeecY2bOnGneffdd89xzz5mzzjrL93B+8MEHplevXkaSSU9PNxdccIEZMmSIyc7O9vW8wOmwsWnGVG/XqrNpxtA1uuYduoYgomt0zQ82NM0Yugb/BHLyLxaLmfT09JP+Qh86dKjp379/tYyhOoMyatQoc84555jt27dXy/nKc+mll5qbb77Zl2PPnTu37P/832ySTCQSMenp6earr77y5bzl6dq1qxk/frxvx2/ZsqW54YYbkvY98cQTplmzZr6d8xs7d+40aWlp5qWXXvL9XOecc46ZPHly0r777rvPnHfeeb6f2xhjvvjiC7Nnzx5jjDHXXnutueKKK6rlvEBV2NY0Y2q+a342zRi6Rte8R9cQJHSt+tnStTA3zRi6Bn8F8pl/GRkZ6tKli5YuXVq2L5FIaOnSpdXyrIPqYozRL3/5S82dO1evv/662rRpU2NjSSQSisVivhz70ksv1d///netX7++bOvatauGDBmi9evXKz093ZfzftsXX3yhDz/8UFlZWb6do0ePHtqyZUvSvq1bt6pVq1a+nfMbM2bMUOPGjXXllVf6fq6jR48qLS35r5f09HQlEgnfzy1J9erVU1ZWlj777DMtWrRIV111VbWcF6gKW5ompU7X/GyaRNfomvfoGoKErlU/G7oW9qZJdA0+q+HJxyqbNWuWiUaj5plnnjEbN240N998sznzzDPNvn37fDvn4cOHzbp168y6deuMJPPII4+YdevWmY8++siX840cOdI0bNjQLF++3Ozdu7dsO3r0qC/n+8b48ePN3/72N7Njxw7z7rvvmvHjx5tIJGIWL17s63n/WXUsI//Vr35lli9fbnbs2GHefPNN06dPH5OZmWkOHDjg2zlXrVplatWqZe6//36zbds285//+Z/mO9/5jvnzn//s2zmN+fqZDi1btjTjxo3z9TzfGDZsmGnevLl55ZVXzI4dO8ycOXNMZmamufPOO30978KFC82CBQvM9u3bzeLFi02nTp1M9+7dzYkTJ3w9L3C6bGiaMTXTtVRomjF0zWt0ja4htdE1una6bGqaMXSNrvkvsJN/xhjzpz/9ybRs2dJkZGSYbt26mbfeesvX8y1btsxIOmkbNmyYL+cr71ySzIwZM3w53zeuv/5606pVK5ORkWHOPvtsc+mll4YuJsYYM2jQIJOVlWUyMjJM8+bNzaBBg8wHH3zg6zmNMebll182HTp0MNFo1GRnZ5unnnrK93MuWrTISDJbtmzx/VzGGFNaWmpuv/1207JlS1OnTh1z7rnnmrvuusvEYjFfzzt79mxz7rnnmoyMDNO0aVMzatQo8/nnn/t6TsArYW+aMTXTtVRomjF0zWt0DUh9dM0ftnTNpqYZQ9fgv4gxxvi4sBAAAAAAAABADQnkM/8AAAAAAAAAVI7JPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCkmPwDAAAAAAAAQorJPwAAAAAAACCk/j/He3gOUcSs5QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# plot beliefs over locations for each time step\n", + "fig, axes = plt.subplots(1, 3, figsize=(16, 5))\n", + "for i in range(3):\n", + " sns.heatmap(info['qs'][0][i].T, cmap='viridis', ax=axes[i])" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "ani = animate(images)\n", + "HTML(ani.to_html5_video())" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "atari_env", + "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.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/model_inversion.ipynb b/examples/model_fitting/model_inversion.ipynb similarity index 100% rename from examples/model_inversion.ipynb rename to examples/model_fitting/model_inversion.ipynb diff --git a/examples/si/sophisticated_demo.ipynb b/examples/si/sophisticated_demo.ipynb new file mode 100644 index 00000000..006d7548 --- /dev/null +++ b/examples/si/sophisticated_demo.ipynb @@ -0,0 +1,236 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sophisticated inference\n", + "\n", + "This notebook demonstrates tree searching policies." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "import jax.tree_util as jtu\n", + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "from pymdp.jax.envs import GraphEnv\n", + "from pymdp.jax.envs.graph_worlds import generate_connected_clusters\n", + "\n", + "graph, _ = generate_connected_clusters(cluster_size=3, connections=2)\n", + "env = GraphEnv(graph, object_locations=[4], agent_locations=[0])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Let's create an agent, we give the agent a prior on the object location to showcase the planning depth and pruning." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.agent import Agent\n", + "\n", + "A = [a.copy() for a in env.params[\"A\"]]\n", + "B = [b.copy() for b in env.params[\"B\"]]\n", + "A_dependencies = env.dependencies[\"A\"]\n", + "B_dependencies = env.dependencies[\"B\"]\n", + "\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "C[1] = C[1].at[1].set(1.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "D[0] = D[0].at[0, 0].set(100.0)\n", + "D[1] = D[1].at[0, 4].set(10.0)\n", + "D = jtu.tree_map(lambda x: x / x.sum(), D)\n", + "\n", + "agent = Agent(A, B, C, D, A_dependencies=A_dependencies, B_dependencies=B_dependencies, policy_len=1, apply_batch=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "obs, env = env.step(keys[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "empirical_prior = agent.D\n", + "\n", + "qs = agent.infer_states(\n", + " observations=obs,\n", + " past_actions=None,\n", + " empirical_prior=empirical_prior,\n", + " qs_hist=None,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.planning.si import tree_search\n", + "\n", + "tree = tree_search(agent, qs, 4)" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "\n", + "def plot_plan_tree(\n", + " tree,\n", + " font_size=12,\n", + "):\n", + " root_node = tree.root()\n", + " print(root_node[\"n\"])\n", + "\n", + " colormap = plt.cm.Blues\n", + " colormap_policy = plt.cm.Reds\n", + "\n", + " # create graph\n", + " count = 0\n", + " G = nx.Graph()\n", + " to_visit = [(root_node, 0)]\n", + " labels = {}\n", + " colors = []\n", + "\n", + " G.add_node(count)\n", + " labels[0] = \"\"\n", + " colors.append((0.0, 0.0, 0.0, 1.0))\n", + " count += 1\n", + "\n", + " # visit children\n", + " while len(to_visit) > 0:\n", + " node, id = to_visit.pop()\n", + " for child in node[\"children\"]:\n", + " G.add_node(count)\n", + " G.add_edge(id, count)\n", + "\n", + " cm = colormap\n", + " if \"policy\" in child.keys():\n", + " labels[count] = child[\"policy\"][0]\n", + " cm = colormap_policy\n", + " elif \"observation\" in child.keys():\n", + " o = child[\"observation\"]\n", + " labels[count] = str(o[0][0]) + \" \" + str(o[1][0])\n", + " else:\n", + " labels[count] = \"\"\n", + "\n", + " r, g, b, a = cm(child.get(\"prob\", 0))\n", + " colors.append((r, g, b, a))\n", + "\n", + " to_visit.append((child, count))\n", + " count += 1.0\n", + "\n", + " # from networkx.drawing.nx_pydot import graphviz_layout\n", + "\n", + " # pos = graphviz_layout(G, prog=\"dot\")\n", + " nx.draw(\n", + " G,\n", + " with_labels=True,\n", + " font_size=font_size,\n", + " labels=labels,\n", + " node_color=colors,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_plan_tree(tree)" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.envs.rollout import rollout\n", + "from pymdp.jax.planning.si import si_policy_search\n", + "\n", + "# TODO we cannot yet use this with rollout as it cannot be jit-ed\n", + "# last, result, env = rollout(agent, env, 10, key, policy_search=si_policy_search(max_depth=3))" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/si/sophisticated_tmaze.ipynb b/examples/si/sophisticated_tmaze.ipynb new file mode 100644 index 00000000..eebaf54d --- /dev/null +++ b/examples/si/sophisticated_tmaze.ipynb @@ -0,0 +1,303 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sophisticated inference\n", + "\n", + "This notebook demonstrates tree searching policies." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "The autoreload extension is already loaded. To reload it, use:\n", + " %reload_ext autoreload\n" + ] + } + ], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2\n", + "\n", + "from pymdp.jax.envs.generalized_tmaze import (\n", + " GeneralizedTMazeEnv, parse_maze, render \n", + ")\n", + "from pymdp.jax.agent import Agent\n", + "\n", + "import numpy as np \n", + "import jax.numpy as jnp" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "[[0], [1], [2]]\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnYAAAEzCAYAAAC8KU67AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy80BEi2AAAACXBIWXMAAA9hAAAPYQGoP6dpAABkh0lEQVR4nO3deVxU9frA8c+ZAYZ1QJBNRUBxw33L1FQsCsy86bXCpRQzy9JMbfX+urbYDdMsW0ztlltXy8pMs9LcwFxyx30X11hEBGSHmfP7Y2J0BBSUYZme9+t1XjLnfM85zzmMzDPf7SiqqqoIIYQQQohaT1PdAQghhBBCiMohiZ0QQgghhI2QxE4IIYQQwkZIYieEEEIIYSMksRNCCCGEsBGS2AkhhBBC2AhJ7IQQQgghbIQkdkIIIYQQNkISOyGEEEIIGyGJnbAZb775JoqiWKwLCgoiOjq6SuNYsGABiqJw5syZKj2vKB/5/QghbJkkdjYuISGBsWPH0rRpU5ydnXF2diY0NJQxY8awf//+6g7vb+nMmTMoilKupazkIygoCEVRCA8PL3X7f//7X/Mxdu3aZcWruT23ugdTp06t7hD/VpYsWcLMmTOrOwwhRCWwq+4AhPWsWrWKqKgo7OzsGDp0KG3btkWj0XD06FF++OEHZs+eTUJCAoGBgdUdqtUcO3YMjaZmfX/x9vbmq6++slg3Y8YMLly4wIcffliibFkcHR3ZuHEjSUlJ+Pn5WWxbvHgxjo6O5OXlVV7gVjB48GAefPDBEuvbt29vtXM+8cQTDBo0CJ1OZ7Vz1DZLlizh4MGDjB8/vrpDEULcIUnsbNSpU6cYNGgQgYGBrF+/Hn9/f4vt7733Hp999lmNS3qul52djYuLyx0doyZ+eLu4uPD4449brPvmm2+4cuVKifU30717d3bu3MnSpUt54YUXzOsvXLjA77//zoABA1i2bFmlxW0NHTp0qNA1VwatVotWq71pGVVVycvLw8nJqYqiEkKIylFzP9XFHZk2bRrZ2dnMnz+/RFIHYGdnx7hx4wgICLBYf/ToUR555BE8PT1xdHSkU6dOrFy50qJMcR+lLVu2MHHiRLy9vXFxcWHAgAFcunSpxLl+/fVXevTogYuLC25ubvTt25dDhw5ZlImOjsbV1ZVTp07x4IMP4ubmxtChQwH4/fffefTRR2nYsCE6nY6AgAAmTJhAbm7uLe/DjX3sytvsWZ77AHDo0CHuvfdenJycaNCgAe+88w5Go/GWcVUGR0dH/vnPf7JkyRKL9V9//TV16tQhIiKixD779+8nOjqaRo0a4ejoiJ+fH08++SSXL182l7lVM+n1tm/fTmRkJO7u7jg7O9OrVy+2bNlSqdcZFBTEQw89xObNm7nrrrtwdHSkUaNGLFq0yFxm165dKIrCwoULS+y/Zs0aFEVh1apVQOl97IrPsWbNGjp16oSTkxNz584F4PTp0zz66KN4enri7OzM3Xffzc8//2xxjtjYWBRF4dtvv+U///kPDRo0wNHRkfvuu4+TJ09alA0LC6NVq1bs37+fXr164ezsTEhICN9//z0AcXFxdOnSBScnJ5o1a8a6detKXNPFixd58skn8fX1RafT0bJlS+bNm3dbMYWFhfHzzz9z9uxZ8+84KCioHL8ZIURNJDV2NmrVqlWEhITQpUuXcu9z6NAhunfvTv369XnttddwcXHh22+/pX///ixbtowBAwZYlH/++eepU6cOb7zxBmfOnGHmzJmMHTuWpUuXmst89dVXDB8+nIiICN577z1ycnKYPXs299xzD3v37rX4ACkqKiIiIoJ77rmH999/H2dnZwC+++47cnJyePbZZ/Hy8mLHjh188sknXLhwge+++65C9+XGJlCA119/nZSUFFxdXSt0H5KSkujduzdFRUXmcp9//nmV1vIMGTKEBx54gFOnTtG4cWPA1Kz2yCOPYG9vX6L82rVrOX36NCNGjMDPz49Dhw7x+eefc+jQIf744w8URSm1qbiwsJAJEybg4OBgXrdhwwb69OlDx44deeONN9BoNMyfP597772X33//nbvuuuuW8efk5JCamlpivYeHB3Z21/48nTx5kkceeYSRI0cyfPhw5s2bR3R0NB07dqRly5Z06tSJRo0a8e233zJ8+HCLYy1durTMRPd6x44dY/DgwTzzzDOMGjWKZs2akZycTLdu3cjJyWHcuHF4eXmxcOFC/vGPf/D999+X+D8xdepUNBoNL730EhkZGUybNo2hQ4eyfft2i3JXrlzhoYceYtCgQTz66KPMnj2bQYMGsXjxYsaPH8/o0aMZMmQI06dP55FHHuH8+fO4ubkBkJyczN13342iKIwdOxZvb29+/fVXRo4cSWZmZonm1FvF9H//939kZGRYdAUo/r8ghKiFVGFzMjIyVEDt379/iW1XrlxRL126ZF5ycnLM2+677z61devWal5ennmd0WhUu3XrpjZp0sS8bv78+SqghoeHq0aj0bx+woQJqlarVdPT01VVVdWrV6+qHh4e6qhRoyxiSEpKUt3d3S3WDx8+XAXU1157rUTM18dYLCYmRlUURT179qx53RtvvKHe+JYODAxUhw8fXmL/YtOmTVMBddGiRRW+D+PHj1cBdfv27eZ1KSkpqru7uwqoCQkJZZ73Rn379lUDAwPLXT4wMFDt27evWlRUpPr5+alTpkxRVVVVDx8+rAJqXFyc+fe0c+dO836l3cuvv/5aBdRNmzaVeb7nnntO1Wq16oYNG1RVNd2PJk2aqBERERbvgZycHDU4OFi9//77bxp/QkKCCpS5bNu2zeJab4wvJSVF1el06osvvmheN2nSJNXe3l5NS0szr8vPz1c9PDzUJ5980ryu+L5c//spPsfq1ast4iz+Hf/+++/mdVevXlWDg4PVoKAg1WAwqKqqqhs3blQBtUWLFmp+fr657EcffaQC6oEDB8zrevXqpQLqkiVLzOuOHj2qAqpGo1H/+OMP8/o1a9aogDp//nzzupEjR6r+/v5qamqqRayDBg1S3d3dzb/jisRU0fefEKLmkqZYG5SZmQmU/q07LCwMb29v8zJr1iwA0tLS2LBhA4899hhXr14lNTWV1NRULl++TEREBCdOnODixYsWx3r66actmuZ69OiBwWDg7NmzgKl2KD09ncGDB5uPl5qailarpUuXLmzcuLFEfM8++2yJddfXgGVnZ5Oamkq3bt1QVZW9e/fexh0y2bhxI5MmTeL555/niSeeqPB9+OWXX7j77rstaqa8vb3NTchVQavV8thjj/H1118DpkETAQEB9OjRo9Ty19/LvLw8UlNTufvuuwHYs2dPqfssWrSIzz77jGnTptG7d28A4uPjOXHiBEOGDOHy5cvm+5Sdnc19993Hpk2bytUk/fTTT7N27doSS2hoqEW50NBQi2vy9vamWbNmnD592rwuKiqKwsJCfvjhB/O63377jfT0dKKiom4ZS3BwcIlavV9++YW77rqLe+65x7zO1dWVp59+mjNnznD48GGL8iNGjLCo1SyO+fo4i48xaNAg8+tmzZrh4eFBixYtLGrZi38u3l9VVZYtW0a/fv1QVdXi/1VERAQZ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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "def get_maze_matrix(small=False):\n", + " if small:\n", + " M = np.zeros((3, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + "\n", + " # Set the initial position\n", + " M[2,3] = 1\n", + " else:\n", + "\n", + " M = np.zeros((5, 5))\n", + "\n", + " # Set the reward locations\n", + " M[0,1] = 4\n", + " M[1,1] = 5\n", + " M[1,3] = 7\n", + " M[0,3] = 8\n", + " M[4,1] = 10\n", + " M[4,3] = 11\n", + "\n", + " # Set the cue locations\n", + " M[2,0] = 3\n", + " M[2,4] = 6\n", + " M[3,2] = 9\n", + "\n", + " # Set the initial position\n", + " M[2,2] = 1\n", + " return M\n", + "\n", + "M = get_maze_matrix(small=True)\n", + "env_info = parse_maze(M)\n", + "tmaze_env = GeneralizedTMazeEnv(env_info)\n", + "_ = render(env_info, tmaze_env)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "A = [a.copy() for a in tmaze_env.params[\"A\"]]\n", + "B = [b.copy() for b in tmaze_env.params[\"B\"]]\n", + "A_dependencies = tmaze_env.dependencies[\"A\"]\n", + "B_dependencies = tmaze_env.dependencies[\"B\"]\n", + "\n", + "# [position], [cue], [reward]\n", + "C = [jnp.zeros(a.shape[:2]) for a in A]\n", + "\n", + "rewarding_modality = 2 + env_info[\"num_cues\"]\n", + "#rewarding_modality = -1\n", + "\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,1].set(2.0)\n", + "C[rewarding_modality] = C[rewarding_modality].at[:,2].set(-3.0)\n", + "\n", + "D = [jnp.ones(b.shape[:2]) for b in B]\n", + "D[0] = tmaze_env.params[\"D\"][0].copy()\n", + "\n", + "agent = Agent(\n", + " A, B, C, D, \n", + " None, None, None, \n", + " policy_len=1,\n", + " A_dependencies=A_dependencies, \n", + " B_dependencies=B_dependencies,\n", + " apply_batch=False\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from jax import random as jr\n", + "\n", + "key = jr.PRNGKey(0)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "keys = jr.split(key, 2)\n", + "key = keys[0]\n", + "obs, tmaze_env = tmaze_env.step(keys[1:])" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "qs = agent.infer_states(\n", + " observations=obs,\n", + " past_actions=None,\n", + " empirical_prior=agent.D,\n", + " qs_hist=None,\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import networkx as nx\n", + "import matplotlib.pyplot as plt\n", + "\n", + "\n", + "def plot_plan_tree(\n", + " tree,\n", + " font_size=12,\n", + "):\n", + " root_node = tree.root()\n", + " print(root_node[\"n\"])\n", + "\n", + " colormap = plt.cm.Blues\n", + " colormap_policy = plt.cm.Reds\n", + "\n", + " # create graph\n", + " count = 0\n", + " G = nx.Graph()\n", + " to_visit = [(root_node, 0)]\n", + " labels = {}\n", + " colors = []\n", + "\n", + " G.add_node(count)\n", + " labels[0] = \"\"\n", + " colors.append((0.0, 0.0, 0.0, 1.0))\n", + " count += 1\n", + "\n", + " # visit children\n", + " while len(to_visit) > 0:\n", + " node, id = to_visit.pop()\n", + " for child in node[\"children\"]:\n", + " G.add_node(count)\n", + " G.add_edge(id, count)\n", + "\n", + " cm = colormap\n", + " if \"policy\" in child.keys():\n", + " labels[count] = child[\"policy\"][0]\n", + " cm = colormap_policy\n", + " elif \"observation\" in child.keys():\n", + " o = child[\"observation\"]\n", + " labels[count] = str(o[0][0])\n", + " else:\n", + " labels[count] = \"\"\n", + "\n", + " r, g, b, a = cm(child.get(\"prob\", 0))\n", + " a *= 0.5\n", + " colors.append((r, g, b, a))\n", + "\n", + " to_visit.append((child, count))\n", + " count += 1.0\n", + "\n", + " # from networkx.drawing.nx_pydot import graphviz_layout\n", + "\n", + " # pos = graphviz_layout(G, prog=\"dot\")\n", + " nx.draw(\n", + " G,\n", + " with_labels=True,\n", + " font_size=font_size,\n", + " labels=labels,\n", + " node_color=colors,\n", + " )" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "from pymdp.jax.planning.si import tree_search\n", + "\n", + "tree = tree_search(agent, qs, 3, entropy_prune_threshold=0.0)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plot_plan_tree(tree)" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.9" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/sparse/sparse_benchmark.ipynb b/examples/sparse/sparse_benchmark.ipynb new file mode 100644 index 00000000..32cd71c3 --- /dev/null +++ b/examples/sparse/sparse_benchmark.ipynb @@ -0,0 +1,298 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Sparse Array Benchmarking" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "%load_ext autoreload\n", + "%autoreload 2" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import jax.numpy as jnp\n", + "from jax import tree_util as jtu, nn, vmap, lax\n", + "from jax.experimental import sparse\n", + "from pymdp.jax.agent import Agent\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "import time\n", + "import sys\n", + "\n", + "from pymdp.jax.inference import smoothing_ovf\n", + "import numpy as np\n", + "import jax.profiler \n", + "\n", + "import tracemalloc\n", + "import matplotlib.pyplot as plt" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "def sizeof(x):\n", + " return np.prod(x.shape)\n", + "\n", + "\n", + "def sizeof_sparse(x):\n", + " return np.prod(x.data.shape) + np.prod(x.indices.shape)\n", + "\n", + "\n", + "def get_matrices(n_batch, num_obs, n_states):\n", + "\n", + " A_1 = jnp.ones((num_obs[0], n_states[0]))\n", + " A_1 = A_1.at[-1, :-1].set(0)\n", + " A_2 = jnp.ones((num_obs[0], n_states[1]))\n", + " A_2 = A_2.at[-1, 1:].set(0)\n", + "\n", + " A_tensor = A_1[..., None] * A_2[:, None]\n", + " A_tensor /= A_tensor.sum(0)\n", + "\n", + " A = [jnp.broadcast_to(A_tensor, (n_batch, *A_tensor.shape))]\n", + "\n", + " # create two transition matrices, one for each state factor\n", + " B_1 = jnp.eye(n_states[0])\n", + " B_1 = B_1.at[:, 1:].set(B_1[:, :-1])\n", + " B_1 = B_1.at[:, 0].set(0)\n", + " B_1 = B_1.at[-1, 0].set(1)\n", + " B_1 = jnp.broadcast_to(B_1, (n_batch, n_states[0], n_states[0]))\n", + "\n", + " B_2 = jnp.eye(n_states[1])\n", + " B_2 = B_2.at[:, 1:].set(B_2[:, :-1])\n", + " B_2 = B_2.at[:, 0].set(0)\n", + " B_2 = B_2.at[-1, 0].set(1)\n", + " B_2 = jnp.broadcast_to(B_2, (n_batch, n_states[1], n_states[1]))\n", + "\n", + " B = [B_1[..., None], B_2[..., None]]\n", + " C = [jnp.zeros((n_batch, num_obs[0]))] # flat preferences\n", + " D = [jnp.ones((n_batch, n_states[0])) / n_states[0], jnp.ones((n_batch, n_states[1])) / n_states[1]] # flat prior\n", + " E = jnp.ones((n_batch, 1))\n", + "\n", + " return A, B, C, D, E" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def profile(fun, *args): \n", + " tracemalloc.start()\n", + " tracemalloc.reset_peak()\n", + " bt = time.time()\n", + " res = fun(*args)\n", + " et = time.time()\n", + " size, peak = tracemalloc.get_traced_memory()\n", + "\n", + " stats = {'time': et - bt}\n", + " return res, stats\n", + "\n", + "def experiment(n_states):\n", + " results = {}\n", + "\n", + " n_batch = 1\n", + " num_obs = [2]\n", + "\n", + " A, B, C, D, E = get_matrices(n_batch=n_batch, num_obs=num_obs, n_states=n_states)\n", + "\n", + " # for the single modality, a sequence over time of observations (one hot vectors)\n", + " obs = [\n", + " jnp.broadcast_to(\n", + " jnp.array(\n", + " [\n", + " [1.0, 0.0], # observation 0 is ambiguous with respect state factors\n", + " [1.0, 0], # observation 0 is ambiguous with respect state factors\n", + " [1.0, 0], # observation 0 is ambiguous with respect state factors\n", + " [0.0, 1.0],\n", + " ]\n", + " )[:, None],\n", + " (4, n_batch, num_obs[0]),\n", + " )\n", + " ] # observation 1 provides information about exact state of both factors\n", + "\n", + " agents = Agent(\n", + " A=A,\n", + " B=B,\n", + " C=C,\n", + " D=D,\n", + " E=E,\n", + " pA=None,\n", + " pB=None,\n", + " policy_len=3,\n", + " control_fac_idx=None,\n", + " policies=None,\n", + " gamma=16.0,\n", + " alpha=16.0,\n", + " use_utility=True,\n", + " onehot_obs=True,\n", + " action_selection=\"deterministic\",\n", + " sampling_mode=\"full\",\n", + " inference_algo=\"ovf\",\n", + " num_iter=16,\n", + " learn_A=False,\n", + " learn_B=False,\n", + " apply_batch=False\n", + " )\n", + "\n", + " sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b, n_batch=n_batch), agents.B)\n", + "\n", + "\n", + " prior = agents.D\n", + " qs_hist = None\n", + " action_hist = []\n", + " for t in range(len(obs[0])):\n", + " first_obs = jtu.tree_map(lambda x: jnp.moveaxis(x[:t+1], 0, 1), obs)\n", + " beliefs = agents.infer_states(first_obs, past_actions=None, empirical_prior=prior, qs_hist=qs_hist)\n", + " actions = jnp.broadcast_to(agents.policies[0, 0], (n_batch, 2))\n", + " prior, qs_hist = agents.update_empirical_prior(actions, beliefs)\n", + " action_hist.append(actions)\n", + "\n", + " beliefs = jtu.tree_map(lambda x, y: jnp.concatenate([x[:, None], y], 1), agents.D, beliefs)\n", + "\n", + " take_first = lambda pytree: jtu.tree_map(lambda leaf: leaf[0], pytree)\n", + " beliefs_single = take_first(beliefs)\n", + "\n", + " # ======\n", + " # Dense implementation\n", + " smoothed_beliefs_dense, run_stats = profile(\n", + " smoothing_ovf, *(beliefs_single, take_first(agents.B), jnp.stack(action_hist, 1)[0])\n", + " )\n", + " results.update({k+'_dense': v for k, v in run_stats.items()})\n", + " results[\"size_dense\"] = sum([sizeof(sB) for sB in agents.B])\n", + " # ======\n", + "\n", + " sparse_B_single = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b[0]), agents.B)\n", + " actions_single = jnp.stack(action_hist, 1)[0]\n", + "\n", + " # ======\n", + " # Sparse implementation\n", + " smoothed_beliefs_sparse, run_stats = profile(\n", + " smoothing_ovf, *(beliefs_single, sparse_B_single, actions_single)\n", + " )\n", + " results.update({k+'_sparse': v for k, v in run_stats.items()})\n", + " results[\"size_sparse\"] = sum([sizeof_sparse(sB) for sB in sparse_B_single])\n", + " # ======\n", + "\n", + " return results, [beliefs_single, smoothed_beliefs_dense, smoothed_beliefs_sparse]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Running the experiment and visualizing the results" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "res, (beliefs, smoothed_dense, smoothed_sparse) = experiment([2, 3])\n", + "\n", + "fig, axes = plt.subplots(2, 3, figsize=(8, 4), sharex=True)\n", + "\n", + "sns.heatmap(beliefs[0].mT, ax=axes[0, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(beliefs[1].mT, ax=axes[1, 0], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "sns.heatmap(smoothed_dense[0][0].mT, ax=axes[0, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_dense[0][1].mT, ax=axes[1, 1], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "sns.heatmap(smoothed_sparse[0][0].mT, ax=axes[0, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "sns.heatmap(smoothed_sparse[0][1].mT, ax=axes[1, 2], cbar=False, vmax=1., vmin=0., cmap='viridis')\n", + "\n", + "axes[0, 0].set_title('Filtered beliefs')\n", + "axes[0, 1].set_title('smoothed beliefs dense')\n", + "axes[0, 2].set_title('smoothed beliefs sparse')\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Benchmarking runtime and memory performance" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "n_steps = 10\n", + "\n", + "res = []\n", + "for i in range(1, n_steps):\n", + " print(f\"Step {i}\")\n", + " num_states = [1000 * i, 3000 * i]\n", + " print('\\t', num_states)\n", + " results, bel = experiment(num_states)\n", + " res += [results]\n", + " print('\\t', res[-1])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "keys = list(set(r.replace(\"_dense\", \"\").replace(\"_sparse\", \"\") for r in res[0].keys())) \n", + "n_plots = len(keys)\n", + "\n", + "fig, ax = plt.subplots(n_plots, 1, figsize=(6, 3 * n_plots))\n", + "for i, a in enumerate(ax.flatten()):\n", + " k = keys[i]\n", + " a.plot([r[k + \"_dense\"] for r in res], label=f\"{k.replace('_', ' ').capitalize()} dense\")\n", + " a.plot([r[k + \"_sparse\"] for r in res], label=f\"{k} sparse\")\n", + " a.set_xticks(list(range(0, len(res))))\n", + " a.set_xticklabels([f\"[{1000*i}, {3000*i}]\" for i in range(1, n_steps)], rotation=45)\n", + " m = max([r[k + \"_dense\"] for r in res] + [r[k + \"_sparse\"] for r in res]) * 1.05\n", + " a.set_ylim([0, m])\n", + "\n", + "plt.tight_layout()\n", + "[a.legend() for a in ax.flatten()]\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "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.12.3" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/examples/tmp_dir/my_a_matrix.xlsx b/examples/tmp_dir/my_a_matrix.xlsx deleted file mode 100644 index 29108dcb..00000000 Binary files a/examples/tmp_dir/my_a_matrix.xlsx and /dev/null differ diff --git a/pymdp/__init__.py b/pymdp/__init__.py index 8692e691..e69de29b 100644 --- a/pymdp/__init__.py +++ b/pymdp/__init__.py @@ -1,10 +0,0 @@ -from . import agent -from . import envs -from . import utils -from . import maths -from . import control -from . import inference -from . import learning -from . import algos -from . import default_models -from . import jax diff --git a/pymdp/agent.py b/pymdp/agent.py index de8363c8..7ee1029b 100644 --- a/pymdp/agent.py +++ b/pymdp/agent.py @@ -1,20 +1,26 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -""" Agent Class +""" Agent Class implementation in Jax -__author__: Conor Heins, Alexander Tschantz, Daphne Demekas, Brennan Klein +__author__: Conor Heins, Dimitrije Markovic, Alexander Tschantz, Daphne Demekas, Brennan Klein """ -import warnings -import numpy as np -from pymdp import inference, control, learning -from pymdp import utils, maths -import copy +import math as pymath +import jax.numpy as jnp +import jax.tree_util as jtu +from jax import nn, vmap, random +from pymdp import inference, control, learning, utils, maths +from pymdp.distribution import Distribution, get_dependencies +from equinox import Module, field, tree_at -class Agent(object): - """ +from typing import List, Optional, Union +from jaxtyping import Array +from functools import partial + +class Agent(Module): + """ The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. The basic usage is as follows: @@ -22,7 +28,7 @@ class Agent(object): >>> my_agent = Agent(A = A, B = C, ) >>> observation = env.step(initial_action) >>> qs = my_agent.infer_states(observation) - >>> q_pi, G = my_agent.infer_policies() + >>> q_pi, G = my_agent.infer_policies(qs) >>> next_action = my_agent.sample_action() >>> next_observation = env.step(next_action) @@ -30,589 +36,401 @@ class Agent(object): observations and takes actions as inputs, would entail a dynamic agent-environment interaction. """ + A: List[Array] + B: List[Array] + C: List[Array] + D: List[Array] + E: Array + pA: List[Array] + pB: List[Array] + gamma: Array + alpha: Array + + # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) + policies: Array + + # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) + inductive_threshold: Array + # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) + inductive_epsilon: Array + # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints + H: List[Array] + # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` + I: List[Array] + # static parameters not leaves of the PyTree + A_dependencies: Optional[List] = field(static=True) + B_dependencies: Optional[List] = field(static=True) + B_action_dependencies: Optional[List] = field(static=True) + # mapping from multi action dependencies to flat action dependencies for each B + action_maps: List[dict] = field(static=True) + batch_size: int = field(static=True) + num_iter: int = field(static=True) + num_obs: List[int] = field(static=True) + num_modalities: int = field(static=True) + num_states: List[int] = field(static=True) + num_factors: int = field(static=True) + num_controls: List[int] = field(static=True) + # Used to store original action dimensions in case there are multiple action dependencies per state + num_controls_multi: List[int] = field(static=True) + control_fac_idx: Optional[List[int]] = field(static=True) + # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) + policy_len: int = field(static=True) + # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) + inductive_depth: int = field(static=True) + # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy + use_utility: bool = field(static=True) + # flag for whether to use state information gain ("salience") when computing expected free energy + use_states_info_gain: bool = field(static=True) + # flag for whether to use parameter information gain ("novelty") when computing expected free energy + use_param_info_gain: bool = field(static=True) + # flag for whether to use inductive inference ("intentional inference") when computing expected free energy + use_inductive: bool = field(static=True) + onehot_obs: bool = field(static=True) + # determinstic or stochastic action selection + action_selection: str = field(static=True) + # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + sampling_mode: str = field(static=True) + # fpi, vmp, mmp, ovf + inference_algo: str = field(static=True) + + learn_A: bool = field(static=True) + learn_B: bool = field(static=True) + learn_C: bool = field(static=True) + learn_D: bool = field(static=True) + learn_E: bool = field(static=True) + def __init__( self, - A, - B, - C=None, - D=None, - E=None, - H=None, + A: Union[List[Array], List[Distribution]], + B: Union[List[Array], List[Distribution]], + C: Optional[List[Array]] = None, + D: Optional[List[Array]] = None, + E: Optional[Array] = None, pA=None, pB=None, - pD=None, + H=None, + I=None, + A_dependencies=None, + B_dependencies=None, + B_action_dependencies=None, num_controls=None, - policy_len=1, - inference_horizon=1, control_fac_idx=None, + policy_len=1, policies=None, - gamma=16.0, - alpha=16.0, + gamma=1.0, + alpha=1.0, + inductive_depth=1, + inductive_threshold=0.1, + inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, + use_inductive=False, + onehot_obs=False, action_selection="deterministic", - sampling_mode = "marginal", # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") - inference_algo="VANILLA", - inference_params=None, - modalities_to_learn="all", - lr_pA=1.0, - factors_to_learn="all", - lr_pB=1.0, - lr_pD=1.0, - use_BMA=True, - policy_sep_prior=False, - save_belief_hist=False, - A_factor_list=None, - B_factor_list=None, - sophisticated=False, - si_horizon=3, - si_policy_prune_threshold=1/16, - si_state_prune_threshold=1/16, - si_prune_penalty=512, - ii_depth=10, - ii_threshold=1/16, + sampling_mode="full", + inference_algo="fpi", + num_iter=16, + apply_batch=True, + learn_A=True, + learn_B=True, + learn_C=False, + learn_D=True, + learn_E=False, ): + if B_action_dependencies is not None: + assert num_controls is not None, "Please specify num_controls for complex action dependencies" + + # extract high level variables + self.num_modalities = len(A) + self.num_factors = len(B) + self.num_controls = num_controls + self.num_controls_multi = num_controls + + # extract dependencies for A and B matrices + ( + self.A_dependencies, + self.B_dependencies, + self.B_action_dependencies, + ) = self._construct_dependencies(A_dependencies, B_dependencies, B_action_dependencies, A, B) + + # extract A, B, C and D tensors from optional Distributions + A = [jnp.array(a.data) if isinstance(a, Distribution) else a for a in A] + B = [jnp.array(b.data) if isinstance(b, Distribution) else b for b in B] + if C is not None: + C = [jnp.array(c.data) if isinstance(c, Distribution) else c for c in C] + if D is not None: + D = [jnp.array(d.data) if isinstance(d, Distribution) else d for d in D] + if E is not None: + E = jnp.array(E.data) if isinstance(E, Distribution) else E + if H is not None: + H = [jnp.array(h.data) if isinstance(h, Distribution) else h for h in H] + + self.batch_size = A[0].shape[0] if not apply_batch else 1 + + # flatten B action dims for multiple action dependencies + self.action_maps = None + self.num_controls_multi = num_controls + if ( + B_action_dependencies is not None + ): # note, this only works when B_action_dependencies is not the trivial case of [[0], [1], ...., [num_factors-1]] + policies_multi = control.construct_policies( + self.num_controls_multi, + self.num_controls_multi, + policy_len, + control_fac_idx, + ) + B, pB, self.action_maps = self._flatten_B_action_dims(B, pB, self.B_action_dependencies) + policies = self._construct_flattend_policies(policies_multi, self.action_maps) + self.sampling_mode = "full" + + # extract shapes from A and B + batch_dim_fn = lambda x: x.shape[0] if apply_batch else x.shape[1] + self.num_states = jtu.tree_map(batch_dim_fn, B) + self.num_obs = jtu.tree_map(batch_dim_fn, A) + self.num_controls = [B[f].shape[-1] for f in range(self.num_factors)] - ### Constant parameters ### + # static parameters + self.num_iter = num_iter + self.inference_algo = inference_algo + self.inductive_depth = inductive_depth # policy parameters self.policy_len = policy_len - self.gamma = gamma - self.alpha = alpha self.action_selection = action_selection self.sampling_mode = sampling_mode self.use_utility = use_utility self.use_states_info_gain = use_states_info_gain self.use_param_info_gain = use_param_info_gain + self.use_inductive = use_inductive # learning parameters - self.modalities_to_learn = modalities_to_learn - self.lr_pA = lr_pA - self.factors_to_learn = factors_to_learn - self.lr_pB = lr_pB - self.lr_pD = lr_pD - - # sophisticated inference parameters - self.sophisticated = sophisticated - if self.sophisticated: - assert self.policy_len == 1, "Sophisticated inference only works with policy_len = 1" - self.si_horizon = si_horizon - self.si_policy_prune_threshold = si_policy_prune_threshold - self.si_state_prune_threshold = si_state_prune_threshold - self.si_prune_penalty = si_prune_penalty - - # Initialise observation model (A matrices) - if not isinstance(A, np.ndarray): - raise TypeError( - 'A matrix must be a numpy array' - ) - - self.A = utils.to_obj_array(A) - - assert utils.is_normalized(self.A), "A matrix is not normalized (i.e. A[m].sum(axis = 0) must all equal 1.0 for all modalities)" - - # Determine number of observation modalities and their respective dimensions - self.num_obs = [self.A[m].shape[0] for m in range(len(self.A))] - self.num_modalities = len(self.num_obs) + self.learn_A = learn_A + self.learn_B = learn_B + self.learn_C = learn_C + self.learn_D = learn_D + self.learn_E = learn_E - # Assigning prior parameters on observation model (pA matrices) - self.pA = pA - - # Initialise transition model (B matrices) - if not isinstance(B, np.ndarray): - raise TypeError( - 'B matrix must be a numpy array' - ) - - self.B = utils.to_obj_array(B) - - assert utils.is_normalized(self.B), "B matrix is not normalized (i.e. B[f].sum(axis = 0) must all equal 1.0 for all factors)" - - # Determine number of hidden state factors and their dimensionalities - self.num_states = [self.B[f].shape[0] for f in range(len(self.B))] - self.num_factors = len(self.num_states) - - # Assigning prior parameters on transition model (pB matrices) - self.pB = pB - - # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices - if num_controls == None: - self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - else: - inferred_num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - assert num_controls == inferred_num_controls, "num_controls must be consistent with the shapes of the input B matrices" - self.num_controls = num_controls - - # checking that `A_factor_list` and `B_factor_list` are consistent with `num_factors`, `num_states`, and lagging dimensions of `A` and `B` tensors - self.factorized = False - if A_factor_list == None: - self.A_factor_list = self.num_modalities * [list(range(self.num_factors))] # defaults to having all modalities depend on all factors - for m in range(self.num_modalities): - factor_dims = tuple([self.num_states[f] for f in self.A_factor_list[m]]) - assert self.A[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of A{m}..." - if self.pA is not None: - assert self.pA[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of pA{m}..." - else: - self.factorized = True - for m in range(self.num_modalities): - assert max(A_factor_list[m]) <= (self.num_factors - 1), f"Check modality {m} of A_factor_list - must be consistent with `num_states` and `num_factors`..." - factor_dims = tuple([self.num_states[f] for f in A_factor_list[m]]) - assert self.A[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of A{m}..." - if self.pA is not None: - assert self.pA[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of pA{m}..." - self.A_factor_list = A_factor_list - - # generate a list of the modalities that depend on each factor - A_modality_list = [] - for f in range(self.num_factors): - A_modality_list.append( [m for m in range(self.num_modalities) if f in self.A_factor_list[m]] ) - - # Store thee `A_factor_list` and the `A_modality_list` in a Markov blanket dictionary - self.mb_dict = { - 'A_factor_list': self.A_factor_list, - 'A_modality_list': A_modality_list - } - - if B_factor_list == None: - self.B_factor_list = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves - for f in range(self.num_factors): - factor_dims = tuple([self.num_states[f] for f in self.B_factor_list[f]]) - assert self.B[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B{f}..." - if self.pB is not None: - assert self.pB[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB{f}..." - else: - self.factorized = True - for f in range(self.num_factors): - assert max(B_factor_list[f]) <= (self.num_factors - 1), f"Check factor {f} of B_factor_list - must be consistent with `num_states` and `num_factors`..." - factor_dims = tuple([self.num_states[f] for f in B_factor_list[f]]) - assert self.B[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of B{f}..." - if self.pB is not None: - assert self.pB[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of pB{f}..." - self.B_factor_list = B_factor_list - - # Users have the option to make only certain factors controllable. - # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` + # construct control factor indices if control_fac_idx == None: self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] else: - - assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + msg = "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + assert max(control_fac_idx) <= (self.num_factors - 1), msg self.control_fac_idx = control_fac_idx - for factor_idx in self.control_fac_idx: - assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" - - # Again, the use can specify a set of possible policies, or - # all possible combinations of actions and timesteps will be considered + # construct policies if policies is None: - policies = self._construct_policies() - self.policies = policies - - assert all([len(self.num_controls) == policy.shape[1] for policy in self.policies]), "Number of control states is not consistent with policy dimensionalities" - - all_policies = np.vstack(self.policies) - - assert all([n_c >= max_action for (n_c, max_action) in zip(self.num_controls, list(np.max(all_policies, axis =0)+1))]), "Maximum number of actions is not consistent with `num_controls`" - - # Construct prior preferences (uniform if not specified) - - if C is not None: - if not isinstance(C, np.ndarray): - raise TypeError( - 'C vector must be a numpy array' - ) - self.C = utils.to_obj_array(C) - - assert len(self.C) == self.num_modalities, f"Check C vector: number of sub-arrays must be equal to number of observation modalities: {self.num_modalities}" - - for modality, c_m in enumerate(self.C): - assert c_m.shape[0] == self.num_obs[modality], f"Check C vector: number of rows of C vector for modality {modality} should be equal to {self.num_obs[modality]}" - else: - self.C = self._construct_C_prior() - - # Construct prior over hidden states (uniform if not specified) - - if D is not None: - if not isinstance(D, np.ndarray): - raise TypeError( - 'D vector must be a numpy array' - ) - self.D = utils.to_obj_array(D) - - assert len(self.D) == self.num_factors, f"Check D vector: number of sub-arrays must be equal to number of hidden state factors: {self.num_factors}" - - for f, d_f in enumerate(self.D): - assert d_f.shape[0] == self.num_states[f], f"Check D vector: number of entries of D vector for factor {f} should be equal to {self.num_states[f]}" + self.policies = control.construct_policies( + self.num_states, + self.num_controls, + self.policy_len, + self.control_fac_idx, + ) else: - if pD is not None: - self.D = utils.norm_dist_obj_arr(pD) - else: - self.D = self._construct_D_prior() - - assert utils.is_normalized(self.D), "D vector is not normalized (i.e. D[f].sum() must all equal 1.0 for all factors)" + self.policies = policies + + # setup pytree leaves A, B, C, D, E, pA, pB, H, I + if apply_batch: + A = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), A) + B = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), B) + + if pA is not None and apply_batch: + pA = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pA) + + if pB is not None and apply_batch: + pB = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), pB) + + if C is None: + C = [jnp.ones((self.batch_size, self.num_obs[m])) / self.num_obs[m] for m in range(self.num_modalities)] + elif apply_batch: + C = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), C) + + if D is None: + D = [jnp.ones((self.batch_size, self.num_states[f])) / self.num_states[f] for f in range(self.num_factors)] + elif apply_batch: + D = jtu.tree_map(lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), D) + + if E is None: + E = jnp.ones((self.batch_size, len(self.policies))) / len(self.policies) + elif apply_batch: + E = jnp.broadcast_to(E, (self.batch_size,) + E.shape) + + if H is not None and apply_batch: + H = jtu.tree_map( + lambda x: jnp.broadcast_to(x, (self.batch_size,) + x.shape), + H, + ) - # Assigning prior parameters on initial hidden states (pD vectors) - self.pD = pD + self.A = A + self.B = B + self.C = C + self.D = D + self.E = E + self.H = H + self.I = I + self.pA = pA + self.pB = pB - # Construct prior over policies (uniform if not specified) - if E is not None: - if not isinstance(E, np.ndarray): - raise TypeError( - 'E vector must be a numpy array' - ) - self.E = E + self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) + self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) - assert len(self.E) == len(self.policies), f"Check E vector: length of E must be equal to number of policies: {len(self.policies)}" + self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) + self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) - else: - self.E = self._construct_E_prior() - - # Construct I for backwards induction (if H specified) - if H is not None: - self.H = H - self.I = control.backwards_induction(H, B, B_factor_list, threshold=ii_threshold, depth=ii_depth) - else: - self.H = None - self.I = None - - self.edge_handling_params = {} - self.edge_handling_params['use_BMA'] = use_BMA # creates a 'D-like' moving prior - self.edge_handling_params['policy_sep_prior'] = policy_sep_prior # carries forward last timesteps posterior, in a policy-conditioned way - - # use_BMA and policy_sep_prior can both be False, but both cannot be simultaneously be True. If one of them is True, the other must be False - if policy_sep_prior: - if use_BMA: - warnings.warn( - "Inconsistent choice of `policy_sep_prior` and `use_BMA`.\ - You have set `policy_sep_prior` to True, so we are setting `use_BMA` to False" + if self.use_inductive and H is not None: + I = vmap( + partial( + control.generate_I_matrix, + depth=self.inductive_depth, ) - self.edge_handling_params['use_BMA'] = False - - if inference_algo == None: - self.inference_algo = "VANILLA" - self.inference_params = self._get_default_params() - if inference_horizon > 1: - warnings.warn( - "If `inference_algo` is VANILLA, then inference_horizon must be 1\n. \ - Setting inference_horizon to default value of 1...\n" - ) - self.inference_horizon = 1 - else: - self.inference_horizon = 1 - else: - self.inference_algo = inference_algo - self.inference_params = self._get_default_params() - self.inference_horizon = inference_horizon - - if save_belief_hist: - self.qs_hist = [] - self.q_pi_hist = [] - - self.prev_obs = [] - self.reset() - - self.action = None - self.prev_actions = None - - def _construct_C_prior(self): - - C = utils.obj_array_zeros(self.num_obs) - - return C - - def _construct_D_prior(self): - - D = utils.obj_array_uniform(self.num_states) - - return D - - def _construct_policies(self): - - policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx - ) - - return policies - - def _construct_num_controls(self): - num_controls = control.get_num_controls_from_policies( - self.policies - ) - - return num_controls - - def _construct_E_prior(self): - E = np.ones(len(self.policies)) / len(self.policies) - return E - - def reset(self, init_qs=None): - """ - Resets the posterior beliefs about hidden states of the agent to a uniform distribution, and resets time to first timestep of the simulation's temporal horizon. - Returns the posterior beliefs about hidden states. - - Returns - --------- - qs: ``numpy.ndarray`` of dtype object - Initialized posterior over hidden states. Depending on the inference algorithm chosen and other parameters (such as the parameters stored within ``edge_handling_paramss), - the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `, the indexing structure of ``qs`` is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` - at timepoint ``t_idx``. In this case, the returned ``qs`` will only have entries filled out for the first timestep, i.e. for ``q[p_idx][0]``, for all - policy-indices ``p_idx``. Subsequent entries ``q[:][1, 2, ...]`` will be initialized to empty ``numpy.ndarray`` objects. - """ - - self.curr_timestep = 0 - - if init_qs is None: - if self.inference_algo == 'VANILLA': - self.qs = utils.obj_array_uniform(self.num_states) - else: # in the case you're doing MMP (i.e. you have an inference_horizon > 1), we have to account for policy- and timestep-conditioned posterior beliefs - self.qs = utils.obj_array(len(self.policies)) - for p_i, _ in enumerate(self.policies): - self.qs[p_i] = utils.obj_array(self.inference_horizon + self.policy_len + 1) # + 1 to include belief about current timestep - self.qs[p_i][0] = utils.obj_array_uniform(self.num_states) - - first_belief = utils.obj_array(len(self.policies)) - for p_i, _ in enumerate(self.policies): - first_belief[p_i] = copy.deepcopy(self.D) - - if self.edge_handling_params['policy_sep_prior']: - self.set_latest_beliefs(last_belief = first_belief) - else: - self.set_latest_beliefs(last_belief = self.D) - + )(H, B, self.inductive_threshold) + elif self.use_inductive and I is not None: + I = I else: - self.qs = init_qs - - if self.pA is not None: - self.A = utils.norm_dist_obj_arr(self.pA) - - if self.pB is not None: - self.B = utils.norm_dist_obj_arr(self.pB) + I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), D) - return self.qs + self.onehot_obs = onehot_obs - def step_time(self): - """ - Advances time by one step. This involves updating the ``self.prev_actions``, and in the case of a moving - inference horizon, this also shifts the history of post-dictive beliefs forward in time (using ``self.set_latest_beliefs()``), - so that the penultimate belief before the beginning of the horizon is correctly indexed. + # validate model + self._validate() - Returns - --------- - curr_timestep: ``int`` - The index in absolute simulation time of the current timestep. - """ + @property + def unique_multiactions(self): + size = pymath.prod(self.num_controls) + return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) - if self.prev_actions is None: - self.prev_actions = [self.action] + def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): + agent = self + beliefs_B = beliefs_A if beliefs_B is None else beliefs_B + if self.inference_algo == 'ovf': + smoothed_marginals_and_joints = vmap(inference.smoothing_ovf)(beliefs_A, self.B, actions) + marginal_beliefs = smoothed_marginals_and_joints[0] + joint_beliefs = smoothed_marginals_and_joints[1] else: - self.prev_actions.append(self.action) - - self.curr_timestep += 1 - - if self.inference_algo == "MMP" and (self.curr_timestep - self.inference_horizon) >= 0: - self.set_latest_beliefs() - - return self.curr_timestep - - def set_latest_beliefs(self,last_belief=None): - """ - Both sets and returns the penultimate belief before the first timestep of the backwards inference horizon. - In the case that the inference horizon includes the first timestep of the simulation, then the ``latest_belief`` is - simply the first belief of the whole simulation, or the prior (``self.D``). The particular structure of the ``latest_belief`` - depends on the value of ``self.edge_handling_params['use_BMA']``. - - Returns - --------- - latest_belief: ``numpy.ndarray`` of dtype object - Penultimate posterior beliefs over hidden states at the timestep just before the first timestep of the inference horizon. - Depending on the value of ``self.edge_handling_params['use_BMA']``, the shape of this output array will differ. - If ``self.edge_handling_params['use_BMA'] == True``, then ``latest_belief`` will be a Bayesian model average - of beliefs about hidden states, where the average is taken with respect to posterior beliefs about policies. - Otherwise, `latest_belief`` will be the full, policy-conditioned belief about hidden states, and will have indexing structure - policies->factors, such that ``latest_belief[p_idx][f_idx]`` refers to the penultimate belief about marginal factor ``f_idx`` - under policy ``p_idx``. - """ - - if last_belief is None: - last_belief = utils.obj_array(len(self.policies)) - for p_i, _ in enumerate(self.policies): - last_belief[p_i] = copy.deepcopy(self.qs[p_i][0]) + marginal_beliefs = beliefs_A + if self.learn_B: + nf = len(beliefs_B) + joint_fn = lambda f: [beliefs_B[f][:, 1:]] + [beliefs_B[f_idx][:, :-1] for f_idx in self.B_dependencies[f]] + joint_beliefs = jtu.tree_map(joint_fn, list(range(nf))) + + if self.learn_A: + update_A = partial( + learning.update_obs_likelihood_dirichlet, + A_dependencies=self.A_dependencies, + num_obs=self.num_obs, + onehot_obs=self.onehot_obs, + ) + + lr = jnp.broadcast_to(lr_pA, (self.batch_size,)) + qA, E_qA = vmap(update_A)( + self.pA, + self.A, + outcomes, + marginal_beliefs, + lr=lr, + ) + + agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) + + if self.learn_B: + assert beliefs_B[0].shape[1] == actions.shape[1] + 1 + update_B = partial( + learning.update_state_transition_dirichlet, + num_controls=self.num_controls + ) - begin_horizon_step = self.curr_timestep - self.inference_horizon - if self.edge_handling_params['use_BMA'] and (begin_horizon_step >= 0): - if hasattr(self, "q_pi_hist"): - self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi_hist[begin_horizon_step]) # average the earliest marginals together using contemporaneous posterior over policies (`self.q_pi_hist[0]`) + lr = jnp.broadcast_to(lr_pB, (self.batch_size,)) + qB, E_qB = vmap(update_B)( + self.pB, + joint_beliefs, + actions, + lr=lr + ) + + # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece + if self.use_inductive and self.H is not None: + I_updated = vmap(control.generate_I_matrix)(self.H, E_qB, self.inductive_threshold, self.inductive_depth) + agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) else: - self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi) # average the earliest marginals together using posterior over policies (`self.q_pi`) - else: - self.latest_belief = last_belief + agent = tree_at(lambda x: (x.B, x.pB), agent, (E_qB, qB)) - return self.latest_belief + return agent - def get_future_qs(self): - """ - Returns the last ``self.policy_len`` timesteps of each policy-conditioned belief - over hidden states. This is a step of pre-processing that needs to be done before computing - the expected free energy of policies. We do this to avoid computing the expected free energy of - policies using beliefs about hidden states in the past (so-called "post-dictive" beliefs). - - Returns - --------- - future_qs_seq: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states under a policy, in the future. This is a nested ``numpy.ndarray`` object array, with one - sub-array ``future_qs_seq[p_idx]`` for each policy. The indexing structure is policy->timepoint-->factor, so that - ``future_qs_seq[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` - at future timepoint ``t_idx``, relative to the current timestep. - """ - - future_qs_seq = utils.obj_array(len(self.qs)) - for p_idx in range(len(self.qs)): - future_qs_seq[p_idx] = self.qs[p_idx][-(self.policy_len+1):] # this grabs only the last `policy_len`+1 beliefs about hidden states, under each policy - - return future_qs_seq - - - def infer_states(self, observation, distr_obs=False): + def infer_states(self, observations, empirical_prior, *, past_actions=None, qs_hist=None, mask=None): """ Update approximate posterior over hidden states by solving variational inference problem, given an observation. Parameters ---------- - observation: ``list`` or ``tuple`` of ints - The observation input. Each entry ``observation[m]`` stores the index of the discrete - observation for modality ``m``. - distr_obs: ``bool`` - Whether the observation is a distribution over possible observations, rather than a single observation. - + observations: ``list`` or ``tuple`` of ints + The observation input. Each entry ``observation[m]`` stores one-hot vectors representing the observations for modality ``m``. + past_actions: ``list`` or ``tuple`` of ints + The action input. Each entry ``past_actions[f]`` stores indices (or one-hots?) representing the actions for control factor ``f``. + empirical_prior: ``list`` or ``tuple`` of ``jax.numpy.ndarray`` of dtype object + Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) + of additional dimensions to encode extra conditioning variables like timepoint and policy. Returns --------- qs: ``numpy.ndarray`` of dtype object Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` at timepoint ``t_idx``. """ - observation = tuple(observation) if not distr_obs else observation - - if not hasattr(self, "qs"): - self.reset() - - if self.inference_algo == "VANILLA": - if self.action is not None: - empirical_prior = control.get_expected_states_interactions( - self.qs, self.B, self.B_factor_list, self.action.reshape(1, -1) - )[0] - else: - empirical_prior = self.D - qs = inference.update_posterior_states_factorized( - self.A, - observation, - self.num_obs, - self.num_states, - self.mb_dict, - empirical_prior, - **self.inference_params - ) - elif self.inference_algo == "MMP": - - self.prev_obs.append(observation) - if len(self.prev_obs) > self.inference_horizon: - latest_obs = self.prev_obs[-self.inference_horizon:] - latest_actions = self.prev_actions[-(self.inference_horizon-1):] - else: - latest_obs = self.prev_obs - latest_actions = self.prev_actions - - qs, F = inference.update_posterior_states_full_factorized( - self.A, - self.mb_dict, - self.B, - self.B_factor_list, - latest_obs, - self.policies, - latest_actions, - prior = self.latest_belief, - policy_sep_prior = self.edge_handling_params['policy_sep_prior'], - **self.inference_params - ) - - self.F = F # variational free energy of each policy - - if hasattr(self, "qs_hist"): - self.qs_hist.append(qs) - self.qs = qs - - return qs - - def _infer_states_test(self, observation, distr_obs=False): - """ - Test version of ``infer_states()`` that additionally returns intermediate variables of MMP, such as - the prediction errors and intermediate beliefs from the optimization. Used for benchmarking against SPM outputs. - """ - observation = tuple(observation) if not distr_obs else observation - - if not hasattr(self, "qs"): - self.reset() - - if self.inference_algo == "VANILLA": - if self.action is not None: - empirical_prior = control.get_expected_states( - self.qs, self.B, self.action.reshape(1, -1) - )[0] - else: - empirical_prior = self.D - qs = inference.update_posterior_states( - self.A, - observation, - empirical_prior, - **self.inference_params - ) - elif self.inference_algo == "MMP": - - self.prev_obs.append(observation) - if len(self.prev_obs) > self.inference_horizon: - latest_obs = self.prev_obs[-self.inference_horizon:] - latest_actions = self.prev_actions[-(self.inference_horizon-1):] - else: - latest_obs = self.prev_obs - latest_actions = self.prev_actions - - qs, F, xn, vn = inference._update_posterior_states_full_test( - self.A, - self.B, - latest_obs, - self.policies, - latest_actions, - prior = self.latest_belief, - policy_sep_prior = self.edge_handling_params['policy_sep_prior'], - **self.inference_params - ) - - self.F = F # variational free energy of each policy + # TODO: infer this from shapes + if not self.onehot_obs: + o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] + else: + o_vec = observations + + A = self.A + if mask is not None: + for i, m in enumerate(mask): + o_vec[i] = m * o_vec[i] + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] + A[i] = m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] + + infer_states = partial( + inference.update_posterior_states, + A_dependencies=self.A_dependencies, + B_dependencies=self.B_dependencies, + num_iter=self.num_iter, + method=self.inference_algo, + ) + + output = vmap(infer_states)( + A, + self.B, + o_vec, + past_actions, + prior=empirical_prior, + qs_hist=qs_hist + ) - if hasattr(self, "qs_hist"): - self.qs_hist.append(qs) + return output - self.qs = qs + def update_empirical_prior(self, action, qs): + # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - if self.inference_algo == "MMP": - return qs, xn, vn + # this computation of the predictive prior is correct only for fully factorised Bs. + if self.inference_algo in ['mmp', 'vmp']: + # in the case of the 'mmp' or 'vmp' we have to use D as prior parameter for infer states + pred = self.D else: - return qs - - def infer_policies(self): + qs_last = jtu.tree_map( lambda x: x[:, -1], qs) + propagate_beliefs = partial(control.compute_expected_state, B_dependencies=self.B_dependencies) + pred = vmap(propagate_beliefs)(qs_last, self.B, action) + + return (pred, qs) + + def infer_policies(self, qs: List): """ Perform policy inference by optimizing a posterior (categorical) distribution over policies. This distribution is computed as the softmax of ``G * gamma + lnE`` where ``G`` is the negative expected free energy of policies, ``gamma`` is a policy precision and ``lnE`` is the (log) prior probability of policies. This function returns the posterior over policies as well as the negative expected free energy of each policy. - In this version of the function, the expected free energy of policies is computed using known factorized structure - in the model, which speeds up computation (particular the state information gain calculations). Returns ---------- @@ -622,311 +440,196 @@ def infer_policies(self): Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. """ - if self.inference_algo == "VANILLA": - if self.sophisticated: - q_pi, G = control.sophisticated_inference_search( - self.qs, - self.policies, - self.A, - self.B, - self.C, - self.A_factor_list, - self.B_factor_list, - self.I, - self.si_horizon, - self.si_policy_prune_threshold, - self.si_state_prune_threshold, - self.si_prune_penalty, - 1.0, - self.inference_params, - n=0 - ) - else: - q_pi, G = control.update_posterior_policies_factorized( - self.qs, - self.A, - self.B, - self.C, - self.A_factor_list, - self.B_factor_list, - self.policies, - self.use_utility, - self.use_states_info_gain, - self.use_param_info_gain, - self.pA, - self.pB, - E = self.E, - I = self.I, - gamma = self.gamma - ) - elif self.inference_algo == "MMP": - - future_qs_seq = self.get_future_qs() - - q_pi, G = control.update_posterior_policies_full_factorized( - future_qs_seq, - self.A, - self.B, - self.C, - self.A_factor_list, - self.B_factor_list, - self.policies, - self.use_utility, - self.use_states_info_gain, - self.use_param_info_gain, - self.latest_belief, - self.pA, - self.pB, - F=self.F, - E=self.E, - I=self.I, - gamma=self.gamma - ) + latest_belief = jtu.tree_map(lambda x: x[:, -1], qs) # only get the posterior belief held at the current timepoint + infer_policies = partial( + control.update_posterior_policies_inductive, + self.policies, + A_dependencies=self.A_dependencies, + B_dependencies=self.B_dependencies, + use_utility=self.use_utility, + use_states_info_gain=self.use_states_info_gain, + use_param_info_gain=self.use_param_info_gain, + use_inductive=self.use_inductive + ) - if hasattr(self, "q_pi_hist"): - self.q_pi_hist.append(q_pi) - if len(self.q_pi_hist) > self.inference_horizon: - self.q_pi_hist = self.q_pi_hist[-(self.inference_horizon-1):] + q_pi, G = vmap(infer_policies)( + latest_belief, + self.A, + self.B, + self.C, + self.E, + self.pA, + self.pB, + I = self.I, + gamma=self.gamma, + inductive_epsilon=self.inductive_epsilon + ) - self.q_pi = q_pi - self.G = G return q_pi, G - - def sample_action(self): + + def multiaction_probabilities(self, q_pi: Array): """ - Sample or select a discrete action from the posterior over control states. - This function both sets or cachés the action as an internal variable with the agent and returns it. - This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) - using ``self.step_time()``. + Compute probabilities of unique multi-actions from the posterior over policies. + + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - Returns ---------- - action: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor + multi-action: 1D ``jax.numpy.ndarray`` + Vector containing probabilities of possible multi-actions for different factors """ if self.sampling_mode == "marginal": - action = control.sample_action( - self.q_pi, self.policies, self.num_controls, action_selection = self.action_selection, alpha = self.alpha - ) - elif self.sampling_mode == "full": - action = control.sample_policy(self.q_pi, self.policies, self.num_controls, - action_selection=self.action_selection, alpha=self.alpha) + get_marginals = partial(control.get_marginals, policies=self.policies, num_controls=self.num_controls) + marginals = get_marginals(q_pi) + outer = lambda a, b: jnp.outer(a, b).reshape(-1) + marginals = jtu.tree_reduce(outer, marginals) - self.action = action + elif self.sampling_mode == "full": + locs = jnp.all( + self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), + -1, + ) + get_marginals = lambda x: jnp.where(locs, x, 0.).sum(-1) + marginals = vmap(get_marginals)(q_pi) - self.step_time() + return marginals - return action - - def _sample_action_test(self): + def sample_action(self, q_pi: Array, rng_key=None): """ Sample or select a discrete action from the posterior over control states. - This function both sets or cachés the action as an internal variable with the agent and returns it. - This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) - using ``self.step_time()``. Returns ---------- - action: 1D ``numpy.ndarray`` + action: 1D ``jax.numpy.ndarray`` Vector containing the indices of the actions for each control factor + action_probs: 2D ``jax.numpy.ndarray`` + Array of action probabilities """ + if (rng_key is None) and (self.action_selection == "stochastic"): + raise ValueError("Please provide a random number generator key to sample actions stochastically") if self.sampling_mode == "marginal": - action, p_dist = control._sample_action_test(self.q_pi, self.policies, self.num_controls, - action_selection=self.action_selection, alpha=self.alpha) + sample_action = partial(control.sample_action, self.policies, self.num_controls, action_selection=self.action_selection) + action = vmap(sample_action)(q_pi, alpha=self.alpha, rng_key=rng_key) elif self.sampling_mode == "full": - action, p_dist = control._sample_policy_test(self.q_pi, self.policies, self.num_controls, - action_selection=self.action_selection, alpha=self.alpha) - - self.action = action + sample_policy = partial(control.sample_policy, self.policies, action_selection=self.action_selection) + action = vmap(sample_policy)(q_pi, alpha=self.alpha, rng_key=rng_key) - self.step_time() - - return action, p_dist - - def update_A(self, obs): - """ - Update approximate posterior beliefs about Dirichlet parameters that parameterise the observation likelihood or ``A`` array. - - Parameters - ---------- - observation: ``list`` or ``tuple`` of ints - The observation input. Each entry ``observation[m]`` stores the index of the discrete - observation for modality ``m``. - - Returns - ----------- - qA: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. - """ - - qA = learning.update_obs_likelihood_dirichlet_factorized( - self.pA, - self.A, - obs, - self.qs, - self.A_factor_list, - self.lr_pA, - self.modalities_to_learn - ) - - self.pA = qA # set new prior to posterior - self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array - - return qA - - def _update_A_old(self, obs): - """ - Update approximate posterior beliefs about Dirichlet parameters that parameterise the observation likelihood or ``A`` array. - - Parameters - ---------- - observation: ``list`` or ``tuple`` of ints - The observation input. Each entry ``observation[m]`` stores the index of the discrete - observation for modality ``m``. - - Returns - ----------- - qA: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. - """ - - qA = learning.update_obs_likelihood_dirichlet( - self.pA, - self.A, - obs, - self.qs, - self.lr_pA, - self.modalities_to_learn - ) - - self.pA = qA # set new prior to posterior - self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array - - return qA - - def update_B(self, qs_prev): - """ - Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood - - Parameters - ----------- - qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at previous timepoint. - - Returns - ----------- - qB: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. - """ - - qB = learning.update_state_likelihood_dirichlet_interactions( - self.pB, - self.B, - self.action, - self.qs, - qs_prev, - self.B_factor_list, - self.lr_pB, - self.factors_to_learn - ) - - self.pB = qB # set new prior to posterior - self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array - - return qB - - def _update_B_old(self, qs_prev): - """ - Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood - - Parameters - ----------- - qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at previous timepoint. + return action - Returns - ----------- - qB: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. - """ - - qB = learning.update_state_likelihood_dirichlet( - self.pB, - self.B, - self.action, - self.qs, - qs_prev, - self.lr_pB, - self.factors_to_learn - ) - - self.pB = qB # set new prior to posterior - self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + def decode_multi_actions(self, action): + """Decode flattened actions to multiple actions""" + if self.action_maps is None: + return action + + action_multi = jnp.zeros((self.batch_size, len(self.num_controls_multi))).astype(action.dtype) + for f, action_map in enumerate(self.action_maps): + if action_map["multi_dependency"] == []: + continue + + action_multi_f = utils.index_to_combination(action[..., f], action_map["multi_dims"]) + action_multi = action_multi.at[..., action_map["multi_dependency"]].set(action_multi_f) + return action_multi + + def encode_multi_actions(self, action_multi): + """Encode multiple actions to flattened actions""" + if self.action_maps is None: + return action_multi + + action = jnp.zeros((self.batch_size, len(self.num_controls))).astype(action_multi.dtype) + for f, action_map in enumerate(self.action_maps): + if action_map["multi_dependency"] == []: + action = action.at[..., f].set(jnp.zeros_like(action_multi[..., 0])) + continue + + action_f = utils.get_combination_index( + action_multi[..., action_map["multi_dependency"]], + action_map["multi_dims"], + ) + action = action.at[..., f].set(action_f) + return action - return qB - - def update_D(self, qs_t0 = None): - """ - Update Dirichlet parameters of the initial hidden state distribution - (prior beliefs about hidden states at the beginning of the inference window). + def _construct_dependencies(self, A_dependencies, B_dependencies, B_action_dependencies, A, B): + if A_dependencies is not None: + A_dependencies = A_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + A_dependencies, _ = get_dependencies(A, B) + else: + A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] - Parameters - ----------- - qs_t0: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, or ``None`` - Marginal posterior beliefs over hidden states at current timepoint. If ``None``, the - value of ``qs_t0`` is set to ``self.qs_hist[0]`` (i.e. the initial hidden state beliefs at the first timepoint). - If ``self.inference_algo == "MMP"``, then ``qs_t0`` is set to be the Bayesian model average of beliefs about hidden states - at the first timestep of the backwards inference horizon, where the average is taken with respect to posterior beliefs about policies. - - Returns - ----------- - qD: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs_t0``), after having updated it with state beliefs. - """ - - if self.inference_algo == "VANILLA": - - if qs_t0 is None: - - try: - qs_t0 = self.qs_hist[0] - except ValueError: - print("qs_t0 must either be passed as argument to `update_D` or `save_belief_hist` must be set to True!") - - elif self.inference_algo == "MMP": - - if self.edge_handling_params['use_BMA']: - qs_t0 = self.latest_belief - elif self.edge_handling_params['policy_sep_prior']: - - qs_pi_t0 = self.latest_belief - - # get beliefs about policies at the time at the beginning of the inference horizon - if hasattr(self, "q_pi_hist"): - begin_horizon_step = max(0, self.curr_timestep - self.inference_horizon) - q_pi_t0 = np.copy(self.q_pi_hist[begin_horizon_step]) - else: - q_pi_t0 = np.copy(self.q_pi) - - qs_t0 = inference.average_states_over_policies(qs_pi_t0,q_pi_t0) # beliefs about hidden states at the first timestep of the inference horizon - - qD = learning.update_state_prior_dirichlet(self.pD, qs_t0, self.lr_pD, factors = self.factors_to_learn) - - self.pD = qD # set new prior to posterior - self.D = utils.norm_dist_obj_arr(qD) # take expected value of posterior Dirichlet parameters to calculate posterior over D array + if B_dependencies is not None: + B_dependencies = B_dependencies + elif isinstance(A[0], Distribution) and isinstance(B[0], Distribution): + _, B_dependencies = get_dependencies(A, B) + else: + B_dependencies = [[f] for f in range(self.num_factors)] - return qD + """TODO: check B action shape""" + if B_action_dependencies is not None: + B_action_dependencies = B_action_dependencies + else: + B_action_dependencies = [[f] for f in range(self.num_factors)] + return A_dependencies, B_dependencies, B_action_dependencies + + def _flatten_B_action_dims(self, B, pB, B_action_dependencies): + assert hasattr(B[0], "shape"), "Elements of B must be tensors and have attribute shape" + action_maps = [] # mapping from multi action dependencies to flat action dependencies for each B + B_flat = [] + pB_flat = [] + for i, (B_f, action_dependency) in enumerate(zip(B, B_action_dependencies)): + if action_dependency == []: + B_flat.append(jnp.expand_dims(B_f, axis=-1)) + if pB is not None: + pB_flat.append(jnp.expand_dims(pB[i], axis=-1)) + action_maps.append( + {"multi_dependency": [], "multi_dims": [], "flat_dependency": [i], "flat_dims": [1]} + ) + continue + + dims = [self.num_controls_multi[d] for d in action_dependency] + target_shape = list(B_f.shape)[: -len(action_dependency)] + [pymath.prod(dims)] + B_flat.append(B_f.reshape(target_shape)) + if pB is not None: + pB_flat.append(pB[i].reshape(target_shape)) + action_maps.append( + { + "multi_dependency": action_dependency, + "multi_dims": dims, + "flat_dependency": [i], + "flat_dims": [pymath.prod(dims)], + } + ) + if pB is None: + pB_flat = None + return B_flat, pB_flat, action_maps + + def _construct_flattend_policies(self, policies, action_maps): + policies_flat = [] + for action_map in action_maps: + if action_map["multi_dependency"] == []: + policies_flat.append(jnp.zeros_like(policies[..., 0])) + continue + + policies_flat.append( + utils.get_combination_index( + policies[..., action_map["multi_dependency"]], + action_map["multi_dims"], + ) + ) + policies_flat = jnp.stack(policies_flat, axis=-1) + return policies_flat def _get_default_params(self): method = self.inference_algo default_params = None if method == "VANILLA": - default_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": True} + default_params = {"num_iter": 8, "dF": 1.0, "dF_tol": 0.001} elif method == "MMP": - default_params = {"num_iter": 10, "grad_descent": True, "tau": 0.25} + raise NotImplementedError("MMP is not implemented") elif method == "VMP": raise NotImplementedError("VMP is not implemented") elif method == "BP": @@ -938,5 +641,34 @@ def _get_default_params(self): return default_params - - + def _validate(self): + for m in range(self.num_modalities): + factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) + assert ( + self.A[m].shape[2:] == factor_dims + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." + if self.pA != None: + assert ( + self.pA[m].shape[2:] == factor_dims if self.pA[m] is not None else True, + ), f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." + assert max(self.A_dependencies[m]) <= ( + self.num_factors - 1 + ), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." + + for f in range(self.num_factors): + factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) + assert ( + self.B[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." + if self.pB != None: + assert ( + self.pB[f].shape[2:-1] == factor_dims + ), f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." + assert max(self.B_dependencies[f]) <= ( + self.num_factors - 1 + ), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." + + for factor_idx in self.control_fac_idx: + assert ( + self.num_controls[factor_idx] > 1 + ), "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" \ No newline at end of file diff --git a/pymdp/jax/algos.py b/pymdp/algos.py similarity index 98% rename from pymdp/jax/algos.py rename to pymdp/algos.py index 754d10ce..c76ab02c 100644 --- a/pymdp/jax/algos.py +++ b/pymdp/algos.py @@ -5,7 +5,7 @@ # from jax.config import config # config.update("jax_enable_x64", True) -from .maths import compute_log_likelihood, compute_log_likelihood_per_modality, log_stable, MINVAL, factor_dot, factor_dot_flex +from pymdp.maths import compute_log_likelihood, compute_log_likelihood_per_modality, log_stable, MINVAL, factor_dot, factor_dot_flex from typing import Any, List def add(x, y): diff --git a/pymdp/control.py b/pymdp/control.py index ba7a218f..f6966807 100644 --- a/pymdp/control.py +++ b/pymdp/control.py @@ -4,1272 +4,380 @@ # pylint: disable=not-an-iterable import itertools -import numpy as np -from pymdp.maths import softmax, softmax_obj_arr, spm_dot, spm_wnorm, spm_MDP_G, spm_log_single, kl_div, entropy -from pymdp.inference import update_posterior_states_factorized, average_states_over_policies -from pymdp import utils -import copy - -def update_posterior_policies_full( - qs_seq_pi, - A, - B, - C, - policies, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - prior=None, - pA=None, - pB=None, - F=None, - E=None, - I=None, - gamma=16.0 -): - """ - Update posterior beliefs about policies by computing expected free energy of each policy and integrating that - with the variational free energy of policies ``F`` and prior over policies ``E``. This is intended to be used in conjunction - with the ``update_posterior_states_full`` method of ``inference.py``, since the full posterior over future timesteps, under all policies, is - assumed to be provided in the input array ``qs_seq_pi``. - - Parameters - ---------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - use_utility: ``Bool``, default ``True`` - Boolean flag that determines whether expected utility should be incorporated into computation of EFE. - use_states_info_gain: ``Bool``, default ``True`` - Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. - use_param_info_gain: ``Bool``, default ``False`` - Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. - prior: ``numpy.ndarray`` of dtype object, default ``None`` - If provided, this is a ``numpy`` object array with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - pA: ``numpy.ndarray`` of dtype object, default ``None`` - Dirichlet parameters over observation model (same shape as ``A``) - pB: ``numpy.ndarray`` of dtype object, default ``None`` - Dirichlet parameters over transition model (same shape as ``B``) - F: 1D ``numpy.ndarray``, default ``None`` - Vector of variational free energies for each policy - E: 1D ``numpy.ndarray``, default ``None`` - Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits"). If ``None``, this defaults to a flat (uninformative) prior over policies. - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - gamma: ``float``, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies - - Returns - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - horizon = len(qs_seq_pi[0]) - num_policies = len(qs_seq_pi) - - qo_seq = utils.obj_array(horizon) - for t in range(horizon): - qo_seq[t] = utils.obj_array_zeros(num_obs) - - # initialise expected observations - qo_seq_pi = utils.obj_array(num_policies) - - # initialize (negative) expected free energies for all policies - G = np.zeros(num_policies) - - if F is None: - F = spm_log_single(np.ones(num_policies) / num_policies) - - if E is None: - lnE = spm_log_single(np.ones(num_policies) / num_policies) - else: - lnE = spm_log_single(E) - - if I is not None: - init_qs_all_pi = [qs_seq_pi[p][0] for p in range(num_policies)] - qs_bma = average_states_over_policies(init_qs_all_pi, softmax(E)) - - for p_idx, policy in enumerate(policies): - - qo_seq_pi[p_idx] = get_expected_obs(qs_seq_pi[p_idx], A) +import jax.numpy as jnp +import jax.tree_util as jtu +from typing import List, Tuple, Optional +from functools import partial +from jax.scipy.special import xlogy +from jax import lax, jit, vmap, nn +from jax import random as jr +from itertools import chain +from jaxtyping import Array - if use_utility: - G[p_idx] += calc_expected_utility(qo_seq_pi[p_idx], C) - - if use_states_info_gain: - G[p_idx] += calc_states_info_gain(A, qs_seq_pi[p_idx]) - - if use_param_info_gain: - if pA is not None: - G[p_idx] += calc_pA_info_gain(pA, qo_seq_pi[p_idx], qs_seq_pi[p_idx]) - if pB is not None: - G[p_idx] += calc_pB_info_gain(pB, qs_seq_pi[p_idx], prior, policy) - - if I is not None: - G[p_idx] += calc_inductive_cost(qs_bma, qs_seq_pi[p_idx], I) +from pymdp.maths import * +# import pymdp.jax.utils as utils - q_pi = softmax(G * gamma - F + lnE) - - return q_pi, G - -def update_posterior_policies_full_factorized( - qs_seq_pi, - A, - B, - C, - A_factor_list, - B_factor_list, - policies, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - prior=None, - pA=None, - pB=None, - F=None, - E=None, - I=None, - gamma=16.0 -): +def get_marginals(q_pi, policies, num_controls): """ - Update posterior beliefs about policies by computing expected free energy of each policy and integrating that - with the variational free energy of policies ``F`` and prior over policies ``E``. This is intended to be used in conjunction - with the ``update_posterior_states_full`` method of ``inference.py``, since the full posterior over future timesteps, under all policies, is - assumed to be provided in the input array ``qs_seq_pi``. + Computes the marginal posterior(s) over actions by integrating their posterior probability under the policies that they appear within. Parameters ---------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. - A_factor_list: ``list`` of ``list``s of ``int`` - ``list`` that stores the indices of the hidden state factor indices that each observation modality depends on. For example, if ``A_factor_list[m] = [0, 1]``, then - observation modality ``m`` depends on hidden state factors 0 and 1. - B_factor_list: ``list`` of ``list``s of ``int`` - ``list`` that stores the indices of the hidden state factor indices that each hidden state factor depends on. For example, if ``B_factor_list[f] = [0, 1]``, then - the transitions in hidden state factor ``f`` depend on hidden state factors 0 and 1. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - use_utility: ``Bool``, default ``True`` - Boolean flag that determines whether expected utility should be incorporated into computation of EFE. - use_states_info_gain: ``Bool``, default ``True`` - Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. - use_param_info_gain: ``Bool``, default ``False`` - Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. - prior: ``numpy.ndarray`` of dtype object, default ``None`` - If provided, this is a ``numpy`` object array with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - pA: ``numpy.ndarray`` of dtype object, default ``None`` - Dirichlet parameters over observation model (same shape as ``A``) - pB: ``numpy.ndarray`` of dtype object, default ``None`` - Dirichlet parameters over transition model (same shape as ``B``) - F: 1D ``numpy.ndarray``, default ``None`` - Vector of variational free energies for each policy - E: 1D ``numpy.ndarray``, default ``None`` - Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits"). If ``None``, this defaults to a flat (uninformative) prior over policies. - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - gamma: ``float``, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies - - Returns - ---------- q_pi: 1D ``numpy.ndarray`` Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - horizon = len(qs_seq_pi[0]) - num_policies = len(qs_seq_pi) - - qo_seq = utils.obj_array(horizon) - for t in range(horizon): - qo_seq[t] = utils.obj_array_zeros(num_obs) - - # initialise expected observations - qo_seq_pi = utils.obj_array(num_policies) - - # initialize (negative) expected free energies for all policies - G = np.zeros(num_policies) - - if F is None: - F = spm_log_single(np.ones(num_policies) / num_policies) - - if E is None: - lnE = spm_log_single(np.ones(num_policies) / num_policies) - else: - lnE = spm_log_single(E) - - if I is not None: - init_qs_all_pi = [qs_seq_pi[p][0] for p in range(num_policies)] - qs_bma = average_states_over_policies(init_qs_all_pi, softmax(E)) - - for p_idx, policy in enumerate(policies): - - qo_seq_pi[p_idx] = get_expected_obs_factorized(qs_seq_pi[p_idx], A, A_factor_list) - - if use_utility: - G[p_idx] += calc_expected_utility(qo_seq_pi[p_idx], C) - - if use_states_info_gain: - G[p_idx] += calc_states_info_gain_factorized(A, qs_seq_pi[p_idx], A_factor_list) - - if use_param_info_gain: - if pA is not None: - G[p_idx] += calc_pA_info_gain_factorized(pA, qo_seq_pi[p_idx], qs_seq_pi[p_idx], A_factor_list) - if pB is not None: - G[p_idx] += calc_pB_info_gain_interactions(pB, qs_seq_pi[p_idx], qs_seq_pi[p_idx], B_factor_list, policy) - - if I is not None: - G[p_idx] += calc_inductive_cost(qs_bma, qs_seq_pi[p_idx], I) - - q_pi = softmax(G * gamma - F + lnE) - - return q_pi, G - - -def update_posterior_policies( - qs, - A, - B, - C, - policies, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - pA=None, - pB=None, - E=None, - I=None, - gamma=16.0 -): - """ - Update posterior beliefs about policies by computing expected free energy of each policy and integrating that - with the prior over policies ``E``. This is intended to be used in conjunction - with the ``update_posterior_states`` method of the ``inference`` module, since only the posterior about the hidden states at the current timestep - ``qs`` is assumed to be provided, unconditional on policies. The predictive posterior over hidden states under all policies Q(s, pi) is computed - using the starting posterior about states at the current timestep ``qs`` and the generative model (e.g. ``A``, ``B``, ``C``) - - Parameters - ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint (unconditioned on policies) - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - use_utility: ``Bool``, default ``True`` - Boolean flag that determines whether expected utility should be incorporated into computation of EFE. - use_states_info_gain: ``Bool``, default ``True`` - Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. - use_param_info_gain: ``Bool``, default ``False`` - Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. - pA: ``numpy.ndarray`` of dtype object, optional - Dirichlet parameters over observation model (same shape as ``A``) - pB: ``numpy.ndarray`` of dtype object, optional - Dirichlet parameters over transition model (same shape as ``B``) - E: 1D ``numpy.ndarray``, optional - Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits") - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - gamma: float, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies - + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + Returns ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + action_marginals: ``list`` of ``jax.numpy.ndarrays`` + List of arrays corresponding to marginal probability of each action possible action """ + num_factors = len(num_controls) - n_policies = len(policies) - G = np.zeros(n_policies) - q_pi = np.zeros((n_policies, 1)) - - if E is None: - lnE = spm_log_single(np.ones(n_policies) / n_policies) - else: - lnE = spm_log_single(E) - - for idx, policy in enumerate(policies): - qs_pi = get_expected_states(qs, B, policy) - qo_pi = get_expected_obs(qs_pi, A) - - if use_utility: - G[idx] += calc_expected_utility(qo_pi, C) - - if use_states_info_gain: - G[idx] += calc_states_info_gain(A, qs_pi) + action_marginals = [] + for factor_i in range(num_factors): + actions = jnp.arange(num_controls[factor_i])[:, None] + action_marginals.append(jnp.where(actions==policies[:, 0, factor_i], q_pi, 0).sum(-1)) + + return action_marginals - if use_param_info_gain: - if pA is not None: - G[idx] += calc_pA_info_gain(pA, qo_pi, qs_pi).item() - if pB is not None: - G[idx] += calc_pB_info_gain(pB, qs_pi, qs, policy).item() - - if I is not None: - G[idx] += calc_inductive_cost(qs, qs_pi, I) - - q_pi = softmax(G * gamma + lnE) - - return q_pi, G - -def update_posterior_policies_factorized( - qs, - A, - B, - C, - A_factor_list, - B_factor_list, - policies, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - pA=None, - pB=None, - E=None, - I=None, - gamma=16.0 -): +def sample_action(policies, num_controls, q_pi, action_selection="deterministic", alpha=16.0, rng_key=None): """ - Update posterior beliefs about policies by computing expected free energy of each policy and integrating that - with the prior over policies ``E``. This is intended to be used in conjunction - with the ``update_posterior_states`` method of the ``inference`` module, since only the posterior about the hidden states at the current timestep - ``qs`` is assumed to be provided, unconditional on policies. The predictive posterior over hidden states under all policies Q(s, pi) is computed - using the starting posterior about states at the current timestep ``qs`` and the generative model (e.g. ``A``, ``B``, ``C``) + Samples an action from posterior marginals, one action per control factor. Parameters ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint (unconditioned on policies) - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. - A_factor_list: ``list`` of ``list``s of ``int`` - ``list`` that stores the indices of the hidden state factor indices that each observation modality depends on. For example, if ``A_factor_list[m] = [0, 1]``, then - observation modality ``m`` depends on hidden state factors 0 and 1. - B_factor_list: ``list`` of ``list``s of ``int`` - ``list`` that stores the indices of the hidden state factor indices that each hidden state factor depends on. For example, if ``B_factor_list[f] = [0, 1]``, then - the transitions in hidden state factor ``f`` depend on hidden state factors 0 and 1. + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - use_utility: ``Bool``, default ``True`` - Boolean flag that determines whether expected utility should be incorporated into computation of EFE. - use_states_info_gain: ``Bool``, default ``True`` - Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. - use_param_info_gain: ``Bool``, default ``False`` - Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. - pA: ``numpy.ndarray`` of dtype object, optional - Dirichlet parameters over observation model (same shape as ``A``) - pB: ``numpy.ndarray`` of dtype object, optional - Dirichlet parameters over transition model (same shape as ``B``) - E: 1D ``numpy.ndarray``, optional - Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits") - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - gamma: float, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: string, default "deterministic" + String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, + or whether it's sampled from the posterior marginal over actions + alpha: float, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" Returns ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor """ - n_policies = len(policies) - G = np.zeros(n_policies) - q_pi = np.zeros((n_policies, 1)) - - if E is None: - lnE = spm_log_single(np.ones(n_policies) / n_policies) + marginal = get_marginals(q_pi, policies, num_controls) + + if action_selection == 'deterministic': + selected_policy = jtu.tree_map(lambda x: jnp.argmax(x, -1), marginal) + elif action_selection == 'stochastic': + logits = lambda x: alpha * log_stable(x) + selected_policy = jtu.tree_map(lambda x: jr.categorical(rng_key, logits(x)), marginal) else: - lnE = spm_log_single(E) + raise NotImplementedError - for idx, policy in enumerate(policies): - qs_pi = get_expected_states_interactions(qs, B, B_factor_list, policy) - qo_pi = get_expected_obs_factorized(qs_pi, A, A_factor_list) + return jnp.array(selected_policy) - if use_utility: - G[idx] += calc_expected_utility(qo_pi, C) - - if use_states_info_gain: - G[idx] += calc_states_info_gain_factorized(A, qs_pi, A_factor_list) - - if use_param_info_gain: - if pA is not None: - G[idx] += calc_pA_info_gain_factorized(pA, qo_pi, qs_pi, A_factor_list).item() - if pB is not None: - G[idx] += calc_pB_info_gain_interactions(pB, qs_pi, qs, B_factor_list, policy).item() - - if I is not None: - G[idx] += calc_inductive_cost(qs, qs_pi, I) +def sample_policy(policies, q_pi, action_selection="deterministic", alpha = 16.0, rng_key=None): - q_pi = softmax(G * gamma + lnE) + if action_selection == "deterministic": + policy_idx = jnp.argmax(q_pi) + elif action_selection == "stochastic": + log_p_policies = log_stable(q_pi) * alpha + policy_idx = jr.categorical(rng_key, log_p_policies) - return q_pi, G + selected_multiaction = policies[policy_idx, 0] + return selected_multiaction -def get_expected_states(qs, B, policy): +def construct_policies(num_states, num_controls = None, policy_len=1, control_fac_idx=None): """ - Compute the expected states under a policy, also known as the posterior predictive density over states + Generate a ``list`` of policies. The returned array ``policies`` is a ``list`` that stores one policy per entry. + A particular policy (``policies[i]``) has shape ``(num_timesteps, num_factors)`` + where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. Parameters ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at a given timepoint. - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - policy: 2D ``numpy.ndarray`` - Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. + num_states: ``list`` of ``int`` + ``list`` of the dimensionalities of each hidden state factor + num_controls: ``list`` of ``int``, default ``None`` + ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable + policy_len: ``int``, default 1 + temporal depth ("planning horizon") of policies + control_fac_idx: ``list`` of ``int`` + ``list`` of indices of the hidden state factors that are controllable (i.e. those state factors ``i`` where ``num_controls[i] > 1``) Returns - ------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - """ - n_steps = policy.shape[0] - n_factors = policy.shape[1] - - # initialise posterior predictive density as a list of beliefs over time, including current posterior beliefs about hidden states as the first element - qs_pi = [qs] + [utils.obj_array(n_factors) for t in range(n_steps)] - - # get expected states over time - for t in range(n_steps): - for control_factor, action in enumerate(policy[t,:]): - qs_pi[t+1][control_factor] = B[control_factor][:,:,int(action)].dot(qs_pi[t][control_factor]) - - return qs_pi[1:] - -def get_expected_states_interactions(qs, B, B_factor_list, policy): - """ - Compute the expected states under a policy, also known as the posterior predictive density over states - - Parameters ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at a given timepoint. - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. - policy: 2D ``numpy.ndarray`` - Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - - Returns - ------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` """ - n_steps = policy.shape[0] - n_factors = policy.shape[1] - # initialise posterior predictive density as a list of beliefs over time, including current posterior beliefs about hidden states as the first element - qs_pi = [qs] + [utils.obj_array(n_factors) for t in range(n_steps)] - - # get expected states over time - for t in range(n_steps): - for control_factor, action in enumerate(policy[t,:]): - factor_idx = B_factor_list[control_factor] # list of the hidden state factor indices that the dynamics of `qs[control_factor]` depend on - qs_pi[t+1][control_factor] = spm_dot(B[control_factor][...,int(action)], qs_pi[t][factor_idx]) - - return qs_pi[1:] - -def get_expected_obs(qs_pi, A): - """ - Compute the expected observations under a policy, also known as the posterior predictive density over observations + num_factors = len(num_states) + if control_fac_idx is None: + if num_controls is not None: + control_fac_idx = [f for f, n_c in enumerate(num_controls) if n_c > 1] + else: + control_fac_idx = list(range(num_factors)) - Parameters - ---------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + if num_controls is None: + num_controls = [num_states[c_idx] if c_idx in control_fac_idx else 1 for c_idx in range(num_factors)] + + x = num_controls * policy_len + policies = list(itertools.product(*[list(range(i)) for i in x])) + + for pol_i in range(len(policies)): + policies[pol_i] = jnp.array(policies[pol_i]).reshape(policy_len, num_factors) - Returns - ------- - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` - """ + return jnp.stack(policies) - n_steps = len(qs_pi) # each element of the list is the PPD at a different timestep - # initialise expected observations - qo_pi = [] +def update_posterior_policies(policy_matrix, qs_init, A, B, C, E, pA, pB, A_dependencies, B_dependencies, gamma=16.0, use_utility=True, use_states_info_gain=True, use_param_info_gain=False): + # policy --> n_levels_factor_f x 1 + # factor --> n_levels_factor_f x n_policies + ## vmap across policies + compute_G_fixed_states = partial(compute_G_policy, qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, + use_utility=use_utility, use_states_info_gain=use_states_info_gain, use_param_info_gain=use_param_info_gain) - for t in range(n_steps): - qo_pi_t = utils.obj_array(len(A)) - qo_pi.append(qo_pi_t) + # only in the case of policy-dependent qs_inits + # in_axes_list = (1,) * n_factors + # all_efe_of_policies = vmap(compute_G_policy, in_axes=(in_axes_list, 0))(qs_init_pi, policy_matrix) - # compute expected observations over time - for t in range(n_steps): - for modality, A_m in enumerate(A): - qo_pi[t][modality] = spm_dot(A_m, qs_pi[t]) + # policies needs to be an NDarray of shape (n_policies, n_timepoints, n_control_factors) + neg_efe_all_policies = vmap(compute_G_fixed_states)(policy_matrix) - return qo_pi + return nn.softmax(gamma * neg_efe_all_policies + log_stable(E)), neg_efe_all_policies -def get_expected_obs_factorized(qs_pi, A, A_factor_list): +def compute_expected_state(qs_prior, B, u_t, B_dependencies=None): """ - Compute the expected observations under a policy, also known as the posterior predictive density over observations - - Parameters - ---------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factor indices that each observation modality depends on. Each element ``A_factor_list[i]`` is a list of the factor indices that modality i's observation model depends on. - Returns - ------- - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` + Compute posterior over next state, given belief about previous state, transition model and action... """ + #Note: this algorithm is only correct if each factor depends only on itself. For any interactions, + # we will have empirical priors with codependent factors. + assert len(u_t) == len(B) + qs_next = [] + for B_f, u_f, deps in zip(B, u_t, B_dependencies): + relevant_factors = [qs_prior[idx] for idx in deps] + qs_next_f = factor_dot(B_f[...,u_f], relevant_factors, keep_dims=(0,)) + qs_next.append(qs_next_f) + + # P(s'|s, u) = \sum_{s, u} P(s'|s) P(s|u) P(u|pi)P(pi) because u pi + return qs_next - n_steps = len(qs_pi) # each element of the list is the PPD at a different timestep - - # initialise expected observations - qo_pi = [] - - for t in range(n_steps): - qo_pi_t = utils.obj_array(len(A)) - qo_pi.append(qo_pi_t) - - # compute expected observations over time - for t in range(n_steps): - for modality, A_m in enumerate(A): - factor_idx = A_factor_list[modality] # list of the hidden state factor indices that observation modality with the index `modality` depends on - qo_pi[t][modality] = spm_dot(A_m, qs_pi[t][factor_idx]) - - return qo_pi - -def calc_expected_utility(qo_pi, C): +def compute_expected_state_and_Bs(qs_prior, B, u_t): """ - Computes the expected utility of a policy, using the observation distribution expected under that policy and a prior preference vector. - - Parameters - ---------- - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility. - - Returns - ------- - expected_util: float - Utility (reward) expected under the policy in question + Compute posterior over next state, given belief about previous state, transition model and action... """ - n_steps = len(qo_pi) + assert len(u_t) == len(B) + qs_next = [] + Bs = [] + for qs_f, B_f, u_f in zip(qs_prior, B, u_t): + qs_next.append( B_f[..., u_f].dot(qs_f) ) + Bs.append(B_f[..., u_f]) - # initialise expected utility - expected_util = 0 - - # loop over time points and modalities - num_modalities = len(C) - - # reformat C to be tiled across timesteps, if it's not already - modalities_to_tile = [modality_i for modality_i in range(num_modalities) if C[modality_i].ndim == 1] - - # make a deepcopy of C where it has been tiled across timesteps - C_tiled = copy.deepcopy(C) - for modality in modalities_to_tile: - C_tiled[modality] = np.tile(C[modality][:,None], (1, n_steps) ) - - C_prob = softmax_obj_arr(C_tiled) # convert relative log probabilities into proper probability distribution - - for t in range(n_steps): - for modality in range(num_modalities): - - lnC = spm_log_single(C_prob[modality][:, t]) - expected_util += qo_pi[t][modality].dot(lnC) - - return expected_util - - -def calc_states_info_gain(A, qs_pi): - """ - Computes the Bayesian surprise or information gain about states of a policy, - using the observation model and the hidden state distribution expected under that policy. - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - - Returns - ------- - states_surprise: float - Bayesian surprise (about states) or salience expected under the policy in question - """ - - n_steps = len(qs_pi) - - states_surprise = 0 - for t in range(n_steps): - states_surprise += spm_MDP_G(A, qs_pi[t]) + return qs_next, Bs - return states_surprise - -def calc_states_info_gain_factorized(A, qs_pi, A_factor_list): +def compute_expected_obs(qs, A, A_dependencies): """ - Computes the Bayesian surprise or information gain about states of a policy, - using the observation model and the hidden state distribution expected under that policy. - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on - - Returns - ------- - states_surprise: float - Bayesian surprise (about states) or salience expected under the policy in question + New version of expected observation (computation of Q(o|pi)) that takes into account sparse dependencies between observation + modalities and hidden state factors """ + + def compute_expected_obs_modality(A_m, m): + deps = A_dependencies[m] + relevant_factors = [qs[idx] for idx in deps] + return factor_dot(A_m, relevant_factors, keep_dims=(0,)) - n_steps = len(qs_pi) - - states_surprise = 0 - for t in range(n_steps): - for m, A_m in enumerate(A): - factor_idx = A_factor_list[m] # list of the hidden state factor indices that observation modality with the index `m` depends on - states_surprise += spm_MDP_G(A_m, qs_pi[t][factor_idx]) - - return states_surprise - + return jtu.tree_map(compute_expected_obs_modality, A, list(range(len(A)))) -def calc_pA_info_gain(pA, qo_pi, qs_pi): +def compute_info_gain(qs, qo, A, A_dependencies): """ - Compute expected Dirichlet information gain about parameters ``pA`` under a policy - - Parameters - ---------- - pA: ``numpy.ndarray`` of dtype object - Dirichlet parameters over observation model (same shape as ``A``) - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - - Returns - ------- - infogain_pA: float - Surprise (about Dirichlet parameters) expected under the policy in question + New version of expected information gain that takes into account sparse dependencies between observation modalities and hidden state factors. """ - n_steps = len(qo_pi) + def compute_info_gain_for_modality(qo_m, A_m, m): + H_qo = stable_entropy(qo_m) + H_A_m = - stable_xlogx(A_m).sum(0) + deps = A_dependencies[m] + relevant_factors = [qs[idx] for idx in deps] + qs_H_A_m = factor_dot(H_A_m, relevant_factors) + return H_qo - qs_H_A_m - num_modalities = len(pA) - wA = utils.obj_array(num_modalities) - for modality, pA_m in enumerate(pA): - wA[modality] = spm_wnorm(pA[modality]) + info_gains_per_modality = jtu.tree_map(compute_info_gain_for_modality, qo, A, list(range(len(A)))) + + return jtu.tree_reduce(lambda x,y: x+y, info_gains_per_modality) - pA_infogain = 0 +def compute_expected_utility(qo, C, t=0): - for modality in range(num_modalities): - wA_modality = wA[modality] * (pA[modality] > 0).astype("float") - for t in range(n_steps): - pA_infogain -= qo_pi[t][modality].dot(spm_dot(wA_modality, qs_pi[t])[:, np.newaxis]) - - return pA_infogain + util = 0. + for o_m, C_m in zip(qo, C): + if C_m.ndim > 1: + util += (o_m * C_m[t]).sum() + else: + util += (o_m * C_m).sum() + + return util -def calc_pA_info_gain_factorized(pA, qo_pi, qs_pi, A_factor_list): +def calc_pA_info_gain(pA, qo, qs, A_dependencies): """ - Compute expected Dirichlet information gain about parameters ``pA`` under a policy. - In this version of the function, we assume that the observation model is factorized, i.e. that each observation modality depends on a subset of the hidden state factors. + Compute expected Dirichlet information gain about parameters ``pA`` for a given posterior predictive distribution over observations ``qo`` and states ``qs``. Parameters ---------- pA: ``numpy.ndarray`` of dtype object Dirichlet parameters over observation model (same shape as ``A``) - qo_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about - observations expected under the policy at time ``t`` - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + qo: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations; stores the beliefs about + observations expected under the policy at some arbitrary time ``t`` + qs: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states, stores the beliefs about + hidden states expected under the policy at some arbitrary time ``t`` Returns ------- infogain_pA: float - Surprise (about Dirichlet parameters) expected under the policy in question + Surprise (about Dirichlet parameters) expected for the pair of posterior predictive distributions ``qo`` and ``qs`` """ - n_steps = len(qo_pi) - - num_modalities = len(pA) - wA = utils.obj_array(num_modalities) - for modality, pA_m in enumerate(pA): - wA[modality] = spm_wnorm(pA[modality]) + def infogain_per_modality(pa_m, qo_m, m): + wa_m = spm_wnorm(pa_m) * (pa_m > 0.) + fd = factor_dot(wa_m, [s for f, s in enumerate(qs) if f in A_dependencies[m]], keep_dims=(0,))[..., None] + return qo_m.dot(fd) - pA_infogain = 0 + pA_infogain_per_modality = jtu.tree_map( + infogain_per_modality, pA, qo, list(range(len(qo))) + ) - for modality in range(num_modalities): - wA_modality = wA[modality] * (pA[modality] > 0).astype("float") - factor_idx = A_factor_list[modality] - for t in range(n_steps): - pA_infogain -= qo_pi[t][modality].dot(spm_dot(wA_modality, qs_pi[t][factor_idx])[:, np.newaxis]) - - return pA_infogain + infogain_pA = jtu.tree_reduce(lambda x, y: x + y, pA_infogain_per_modality) + return infogain_pA.squeeze(-1) -def calc_pB_info_gain(pB, qs_pi, qs_prev, policy): +def calc_pB_info_gain(pB, qs_t, qs_t_minus_1, B_dependencies, u_t_minus_1): """ Compute expected Dirichlet information gain about parameters ``pB`` under a given policy Parameters ---------- - pB: ``numpy.ndarray`` of dtype object + pB: ``Array`` of dtype object Dirichlet parameters over transition model (same shape as ``B``) - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - qs_prev: ``numpy.ndarray`` of dtype object - Posterior over hidden states at beginning of trajectory (before receiving observations) - policy: 2D ``numpy.ndarray`` - Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - - Returns - ------- - infogain_pB: float - Surprise (about dirichlet parameters) expected under the policy in question - """ - - n_steps = len(qs_pi) - - num_factors = len(pB) - wB = utils.obj_array(num_factors) - for factor, pB_f in enumerate(pB): - wB[factor] = spm_wnorm(pB_f) - - pB_infogain = 0 - - for t in range(n_steps): - # the 'past posterior' used for the information gain about pB here is the posterior - # over expected states at the timestep previous to the one under consideration - # if we're on the first timestep, we just use the latest posterior in the - # entire action-perception cycle as the previous posterior - if t == 0: - previous_qs = qs_prev - # otherwise, we use the expected states for the timestep previous to the timestep under consideration - else: - previous_qs = qs_pi[t - 1] - - # get the list of action-indices for the current timestep - policy_t = policy[t, :] - for factor, a_i in enumerate(policy_t): - wB_factor_t = wB[factor][:, :, int(a_i)] * (pB[factor][:, :, int(a_i)] > 0).astype("float") - pB_infogain -= qs_pi[t][factor].dot(wB_factor_t.dot(previous_qs[factor])) - - return pB_infogain + qs_t: ``list`` of ``Array`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy at time ``t`` + qs_t_minus_1: ``list`` of ``Array`` of dtype object + Posterior over hidden states at time ``t-1`` (before receiving observations) + u_t_minus_1: "Array" + Actions in time step t-1 for each factor -def calc_pB_info_gain_interactions(pB, qs_pi, qs_prev, B_factor_list, policy): - """ - Compute expected Dirichlet information gain about parameters ``pB`` under a given policy - - Parameters - ---------- - pB: ``numpy.ndarray`` of dtype object - Dirichlet parameters over transition model (same shape as ``B``) - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - qs_prev: ``numpy.ndarray`` of dtype object - Posterior over hidden states at beginning of trajectory (before receiving observations) - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``B_factor_list[f]`` is a list of the hidden state factor indices that hidden state factor with the index ``f`` depends on - policy: 2D ``numpy.ndarray`` - Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - Returns ------- infogain_pB: float - Surprise (about dirichlet parameters) expected under the policy in question - """ - - n_steps = len(qs_pi) - - num_factors = len(pB) - wB = utils.obj_array(num_factors) - for factor, pB_f in enumerate(pB): - wB[factor] = spm_wnorm(pB_f) - - pB_infogain = 0 - - for t in range(n_steps): - # the 'past posterior' used for the information gain about pB here is the posterior - # over expected states at the timestep previous to the one under consideration - # if we're on the first timestep, we just use the latest posterior in the - # entire action-perception cycle as the previous posterior - if t == 0: - previous_qs = qs_prev - # otherwise, we use the expected states for the timestep previous to the timestep under consideration - else: - previous_qs = qs_pi[t - 1] - - # get the list of action-indices for the current timestep - policy_t = policy[t, :] - for factor, a_i in enumerate(policy_t): - wB_factor_t = wB[factor][...,int(a_i)] * (pB[factor][...,int(a_i)] > 0).astype("float") - f_idx = B_factor_list[factor] - pB_infogain -= qs_pi[t][factor].dot(spm_dot(wB_factor_t, previous_qs[f_idx])) - - return pB_infogain - -def calc_inductive_cost(qs, qs_pi, I, epsilon=1e-3): - """ - Computes the inductive cost of a state. - - Parameters - ---------- - qs: ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at a given timepoint. - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - states expected under the policy at time ``t`` - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - - Returns - ------- - inductive_cost: float - Cost of visited this state using backwards induction under the policy in question - """ - n_steps = len(qs_pi) - - # initialise inductive cost - inductive_cost = 0 - - # loop over time points and modalities - num_factors = len(I) - - for t in range(n_steps): - for factor in range(num_factors): - # we also assume precise beliefs here?! - idx = np.argmax(qs[factor]) - # m = arg max_n p_n < sup p - # i.e. find first I idx equals 1 and m is the index before - m = np.where(I[factor][:, idx] == 1)[0] - # we might find no path to goal (i.e. when no goal specified) - if len(m) > 0: - m = max(m[0]-1, 0) - I_m = (1-I[factor][m, :]) * np.log(epsilon) - inductive_cost += I_m.dot(qs_pi[t][factor]) - - return inductive_cost - -def construct_policies(num_states, num_controls = None, policy_len=1, control_fac_idx=None): - """ - Generate a ``list`` of policies. The returned array ``policies`` is a ``list`` that stores one policy per entry. - A particular policy (``policies[i]``) has shape ``(num_timesteps, num_factors)`` - where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - - Parameters - ---------- - num_states: ``list`` of ``int`` - ``list`` of the dimensionalities of each hidden state factor - num_controls: ``list`` of ``int``, default ``None`` - ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable - policy_len: ``int``, default 1 - temporal depth ("planning horizon") of policies - control_fac_idx: ``list`` of ``int`` - ``list`` of indices of the hidden state factors that are controllable (i.e. those state factors ``i`` where ``num_controls[i] > 1``) - - Returns - ---------- - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - """ - - num_factors = len(num_states) - if control_fac_idx is None: - if num_controls is not None: - control_fac_idx = [f for f, n_c in enumerate(num_controls) if n_c > 1] - else: - control_fac_idx = list(range(num_factors)) - - if num_controls is None: - num_controls = [num_states[c_idx] if c_idx in control_fac_idx else 1 for c_idx in range(num_factors)] - - x = num_controls * policy_len - policies = list(itertools.product(*[list(range(i)) for i in x])) - for pol_i in range(len(policies)): - policies[pol_i] = np.array(policies[pol_i]).reshape(policy_len, num_factors) - - return policies - -def get_num_controls_from_policies(policies): - """ - Calculates the ``list`` of dimensionalities of control factors (``num_controls``) - from the ``list`` or array of policies. This assumes a policy space such that for each control factor, there is at least - one policy that entails taking the action with the maximum index along that control factor. - - Parameters - ---------- - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - - Returns - ---------- - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor, computed here automatically from a ``list`` of policies. + Surprise (about Dirichlet parameters) expected under the policy in question """ - - return list(np.max(np.vstack(policies), axis = 0) + 1) - -def sample_action(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0): - """ - Computes the marginal posterior over actions and then samples an action from it, one action per control factor. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: ``str``, default "deterministic" - String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, - or whether it's sampled from the posterior marginal over actions - alpha: ``float``, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" - - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor - """ - - num_factors = len(num_controls) - - action_marginals = utils.obj_array_zeros(num_controls) - - # weight each action according to its integrated posterior probability under all policies at the current timestep - for pol_idx, policy in enumerate(policies): - for factor_i, action_i in enumerate(policy[0, :]): - action_marginals[factor_i][action_i] += q_pi[pol_idx] + wB = lambda pb: spm_wnorm(pb) * (pb > 0.) + fd = lambda x, i: factor_dot(x, [s for f, s in enumerate(qs_t_minus_1) if f in B_dependencies[i]], keep_dims=(0,))[..., None] - action_marginals = utils.norm_dist_obj_arr(action_marginals) - - selected_policy = np.zeros(num_factors) - for factor_i in range(num_factors): + pB_infogain_per_factor = jtu.tree_map(lambda pb, qs, f: qs.dot(fd(wB(pb[..., u_t_minus_1[f]]), f)), pB, qs_t, list(range(len(qs_t)))) + infogain_pB = jtu.tree_reduce(lambda x, y: x + y, pB_infogain_per_factor)[0] + return infogain_pB - # Either you do this: - if action_selection == 'deterministic': - selected_policy[factor_i] = select_highest(action_marginals[factor_i]) - elif action_selection == 'stochastic': - log_marginal_f = spm_log_single(action_marginals[factor_i]) - p_actions = softmax(log_marginal_f * alpha) - selected_policy[factor_i] = utils.sample(p_actions) +def compute_G_policy(qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, policy_i, use_utility=True, use_states_info_gain=True, use_param_info_gain=False): + """ Write a version of compute_G_policy that does the same computations as `compute_G_policy` but using `lax.scan` instead of a for loop. """ - return selected_policy + def scan_body(carry, t): -def _sample_action_test(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0, seed=None): - """ - Computes the marginal posterior over actions and then samples an action from it, one action per control factor. - Internal testing version that returns the marginal posterior over actions, and also has a seed argument for reproducibility. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: ``str``, default "deterministic" - String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, - or whether it's sampled from the posterior marginal over actions - alpha: float, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" - seed: ``int``, default None - The seed can be set to control the random sampling that occurs when ``action_selection`` is "deterministic" but there are more than one actions with the same maximum posterior probability. + qs, neg_G = carry + qs_next = compute_expected_state(qs, B, policy_i[t], B_dependencies) - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor - p_actions: ``numpy.ndarray`` of dtype object - Marginal posteriors over actions, after softmaxing and scaling with action precision. This distribution will be used to sample actions, - if``action_selection`` argument is "stochastic" - """ + qo = compute_expected_obs(qs_next, A, A_dependencies) - num_factors = len(num_controls) + info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - action_marginals = utils.obj_array_zeros(num_controls) - - # weight each action according to its integrated posterior probability under all policies at the current timestep - for pol_idx, policy in enumerate(policies): - for factor_i, action_i in enumerate(policy[0, :]): - action_marginals[factor_i][action_i] += q_pi[pol_idx] - - action_marginals = utils.norm_dist_obj_arr(action_marginals) + utility = compute_expected_utility(qo, C, t) if use_utility else 0. - selected_policy = np.zeros(num_factors) - p_actions = utils.obj_array_zeros(num_controls) - for factor_i in range(num_factors): - if action_selection == 'deterministic': - p_actions[factor_i] = action_marginals[factor_i] - selected_policy[factor_i] = _select_highest_test(p_actions[factor_i], seed=seed) - elif action_selection == 'stochastic': - log_marginal_f = spm_log_single(action_marginals[factor_i]) - p_actions[factor_i] = softmax(log_marginal_f * alpha) - selected_policy[factor_i] = utils.sample(p_actions[factor_i]) + param_info_gain = calc_pA_info_gain(pA, qo, qs_next, A_dependencies) if use_param_info_gain else 0. + param_info_gain += calc_pB_info_gain(pB, qs_next, qs, B_dependencies, policy_i[t]) if use_param_info_gain else 0. - return selected_policy, p_actions + neg_G += info_gain + utility + param_info_gain -def sample_policy(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0): - """ - Samples a policy from the posterior over policies, taking the action (per control factor) entailed by the first timestep of the selected policy. + return (qs_next, neg_G), None - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: string, default "deterministic" - String indicating whether whether the selected policy is chosen as the maximum of the posterior over policies, - or whether it's sampled from the posterior over policies. - alpha: float, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - policy posterior before sampling. This is only used if ``action_selection`` argument is "stochastic" + qs = qs_init + neg_G = 0. + final_state, _ = lax.scan(scan_body, (qs, neg_G), jnp.arange(policy_i.shape[0])) + qs_final, neg_G = final_state + return neg_G - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor +def compute_G_policy_inductive(qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, I, policy_i, inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, use_inductive=False): + """ + Write a version of compute_G_policy that does the same computations as `compute_G_policy` but using `lax.scan` instead of a for loop. + This one further adds computations used for inductive planning. """ - num_factors = len(num_controls) - - if action_selection == "deterministic": - policy_idx = select_highest(q_pi) - elif action_selection == "stochastic": - log_qpi = spm_log_single(q_pi) - p_policies = softmax(log_qpi * alpha) - policy_idx = utils.sample(p_policies) + def scan_body(carry, t): - selected_policy = np.zeros(num_factors) - for factor_i in range(num_factors): - selected_policy[factor_i] = policies[policy_idx][0, factor_i] - - return selected_policy - -def _sample_policy_test(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0, seed=None): - """ - Test version of sampling a policy from the posterior over policies, taking the action (per control factor) entailed by the first timestep of the selected policy. - This test version also returns the probability distribution over policies, and also has a seed argument for reproducibility. - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: string, default "deterministic" - String indicating whether whether the selected policy is chosen as the maximum of the posterior over policies, - or whether it's sampled from the posterior over policies. - alpha: float, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - policy posterior before sampling. This is only used if ``action_selection`` argument is "stochastic" - seed: ``int``, default None - The seed can be set to control the random sampling that occurs when ``action_selection`` is "deterministic" but there are more than one actions with the same maximum posterior probability. + qs, neg_G = carry - - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor - """ + qs_next = compute_expected_state(qs, B, policy_i[t], B_dependencies) - num_factors = len(num_controls) + qo = compute_expected_obs(qs_next, A, A_dependencies) - if action_selection == "deterministic": - p_policies = q_pi - policy_idx = _select_highest_test(p_policies, seed=seed) - elif action_selection == "stochastic": - log_qpi = spm_log_single(q_pi) - p_policies = softmax(log_qpi * alpha) - policy_idx = utils.sample(p_policies) + info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - selected_policy = np.zeros(num_factors) - for factor_i in range(num_factors): - selected_policy[factor_i] = policies[policy_idx][0, factor_i] + utility = compute_expected_utility(qo, C, t) if use_utility else 0. - return selected_policy, p_policies + inductive_value = calc_inductive_value_t(qs_init, qs_next, I, epsilon=inductive_epsilon) if use_inductive else 0. + param_info_gain = 0. + if pA is not None: + param_info_gain += calc_pA_info_gain(pA, qo, qs_next, A_dependencies) if use_param_info_gain else 0. + if pB is not None: + param_info_gain += calc_pB_info_gain(pB, qs_next, qs, B_dependencies, policy_i[t]) if use_param_info_gain else 0. -def select_highest(options_array): - """ - Selects the highest value among the provided ones. If the higher value is more than once and they're closer than 1e-5, a random choice is made. - Parameters - ---------- - options_array: ``numpy.ndarray`` - The array to examine + neg_G += info_gain + utility - param_info_gain + inductive_value - Returns - ------- - The highest value in the given list - """ - options_with_idx = np.array(list(enumerate(options_array))) - same_prob = options_with_idx[ - abs(options_with_idx[:, 1] - np.amax(options_with_idx[:, 1])) <= 1e-8][:, 0] - if len(same_prob) > 1: - # If some of the most likely actions have nearly equal probability, sample from this subset of actions, instead of using argmax - return int(same_prob[np.random.choice(len(same_prob))]) + return (qs_next, neg_G), None - return int(same_prob[0]) + qs = qs_init + neg_G = 0. + final_state, _ = lax.scan(scan_body, (qs, neg_G), jnp.arange(policy_i.shape[0])) + _, neg_G = final_state + return neg_G -def _select_highest_test(options_array, seed=None): - """ - (Test version with seed argument for reproducibility) Selects the highest value among the provided ones. If the higher value is more than once and they're closer than 1e-8, a random choice is made. - Parameters - ---------- - options_array: ``numpy.ndarray`` - The array to examine +def update_posterior_policies_inductive(policy_matrix, qs_init, A, B, C, E, pA, pB, A_dependencies, B_dependencies, I, gamma=16.0, inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, use_inductive=True): + # policy --> n_levels_factor_f x 1 + # factor --> n_levels_factor_f x n_policies + ## vmap across policies + compute_G_fixed_states = partial(compute_G_policy_inductive, qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, I, inductive_epsilon=inductive_epsilon, + use_utility=use_utility, use_states_info_gain=use_states_info_gain, use_param_info_gain=use_param_info_gain, use_inductive=use_inductive) - Returns - ------- - The highest value in the given list - """ - options_with_idx = np.array(list(enumerate(options_array))) - same_prob = options_with_idx[ - abs(options_with_idx[:, 1] - np.amax(options_with_idx[:, 1])) <= 1e-8][:, 0] - if len(same_prob) > 1: - # If some of the most likely actions have nearly equal probability, sample from this subset of actions, instead of using argmax - rng = np.random.default_rng(seed) - return int(same_prob[rng.choice(len(same_prob))]) + # only in the case of policy-dependent qs_inits + # in_axes_list = (1,) * n_factors + # all_efe_of_policies = vmap(compute_G_policy, in_axes=(in_axes_list, 0))(qs_init_pi, policy_matrix) - return int(same_prob[0]) + # policies needs to be an NDarray of shape (n_policies, n_timepoints, n_control_factors) + neg_efe_all_policies = vmap(compute_G_fixed_states)(policy_matrix) + return nn.softmax(gamma * neg_efe_all_policies + log_stable(E)), neg_efe_all_policies -def backwards_induction(H, B, B_factor_list, threshold, depth): - """ - Runs backwards induction of reaching a goal state H given a transition model B. - +def generate_I_matrix(H: List[Array], B: List[Array], threshold: float, depth: int): + """ + Generates the `I` matrices used in inductive planning. These matrices stores the probability of reaching the goal state backwards from state j (columns) after i (rows) steps. Parameters ---------- - H: ``numpy.ndarray`` of dtype object - Prior over states - B: ``numpy.ndarray`` of dtype object + H: ``list`` of ``jax.numpy.ndarray`` + Constraints over desired states (1 if you want to reach that state, 0 otherwise) + B: ``list`` of ``jax.numpy.ndarray`` Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. threshold: ``float`` The threshold for pruning transitions that are below a certain probability depth: ``int`` @@ -1281,186 +389,88 @@ def backwards_induction(H, B, B_factor_list, threshold, depth): For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability of reaching the goal state backwards from state j after i steps. """ - # TODO can this be done with arbitrary B_factor_list? num_factors = len(H) - I = utils.obj_array(num_factors) - for factor in range(num_factors): - I[factor] = np.zeros((depth, H[factor].shape[0])) - I[factor][0, :] = H[factor] - - bf = factor - if B_factor_list is not None: - if len(B_factor_list[factor]) > 1: - raise ValueError("Backwards induction with factorized transition model not yet implemented") - bf = B_factor_list[factor][0] - - num_states, _, _ = B[bf].shape - b = np.zeros((num_states, num_states)) - - for state in range(num_states): - for next_state in range(num_states): - # If there exists an action that allows transitioning - # from state to next_state, with probability larger than threshold - # set b[state, next_state] to 1 - if np.any(B[bf][next_state, state, :] > threshold): - b[next_state, state] = 1 - - for i in range(1, depth): - I[factor][i, :] = np.dot(b, I[factor][i-1, :]) - I[factor][i, :] = np.where(I[factor][i, :] > 0.1, 1.0, 0.0) - # TODO stop when all 1s? + I = [] + for f in range(num_factors): + """ + For each factor, we need to compute the probability of reaching the goal state + """ + + # If there exists an action that allows transitioning + # from state to next_state, with probability larger than threshold + # set b_reachable[current_state, previous_state] to 1 + b_reachable = jnp.where(B[f] > threshold, 1.0, 0.0).sum(axis=-1) + b_reachable = jnp.where(b_reachable > 0., 1.0, 0.0) + + def step_fn(carry, i): + I_prev = carry + I_next = jnp.dot(b_reachable, I_prev) + I_next = jnp.where(I_next > 0.1, 1.0, 0.0) # clamp I_next to 1.0 if it's above 0.1, 0 otherwise + return I_next, I_next + + _, I_f = lax.scan(step_fn, H[f], jnp.arange(depth-1)) + I_f = jnp.concatenate([H[f][None,...], I_f], axis=0) + I.append(I_f) + return I -def calc_ambiguity_factorized(qs_pi, A, A_factor_list): - """ - Computes the Ambiguity term. - - Parameters - ---------- - qs_pi: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about - hidden states expected under the policy at time ``t`` - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on - - Returns - ------- - ambiguity: float - """ - - n_steps = len(qs_pi) - - ambiguity = 0 - # TODO check if we do this correctly! - H = entropy(A) - for t in range(n_steps): - for m, H_m in enumerate(H): - factor_idx = A_factor_list[m] - # TODO why does spm_dot return an array here? - # joint_x = maths.spm_cross(qs_pi[t][factor_idx]) - # ambiguity += (H_m * joint_x).sum() - ambiguity += np.sum(spm_dot(H_m, qs_pi[t][factor_idx])) - - return ambiguity - - -def sophisticated_inference_search(qs, policies, A, B, C, A_factor_list, B_factor_list, I=None, horizon=1, - policy_prune_threshold=1/16, state_prune_threshold=1/16, prune_penalty=512, gamma=16, - inference_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": False}, n=0): +def calc_inductive_value_t(qs, qs_next, I, epsilon=1e-3): """ - Performs sophisticated inference to find the optimal policy for a given generative model and prior preferences. + Computes the inductive value of a state at a particular time (translation of @tverbele's `numpy` implementation of inductive planning, formerly + called `calc_inductive_cost`). Parameters ---------- - qs: ``numpy.ndarray`` of dtype object + qs: ``list`` of ``jax.numpy.ndarray`` Marginal posterior beliefs over hidden states at a given timepoint. - policies: ``list`` of 1D ``numpy.ndarray`` inference_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": False} - - ``list`` that stores each policy as a 1D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_factors)`` where ``num_factors`` is the number of control factors. - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - C: ``numpy.ndarray`` of dtype object - Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. - This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + qs_next: ```list`` of ``jax.numpy.ndarray`` + Predictive posterior beliefs over hidden states expected under the policy. I: ``numpy.ndarray`` of dtype object For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability of reaching the goal state backwards from state j after i steps. - horizon: ``int`` - The temporal depth of the policy - policy_prune_threshold: ``float`` - The threshold for pruning policies that are below a certain probability - state_prune_threshold: ``float`` - The threshold for pruning states in the expectation that are below a certain probability - prune_penalty: ``float`` - Penalty to add to the EFE when a policy is pruned - gamma: ``float``, default 16.0 - Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies - n: ``int`` - timestep in the future we are calculating - + epsilon: ``float`` + Value that tunes the strength of the inductive value (how much it contributes to the expected free energy of policies) + Returns - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + ------- + inductive_val: float + Value (negative inductive cost) of visiting this state using backwards induction under the policy in question """ - - n_policies = len(policies) - G = np.zeros(n_policies) - q_pi = np.zeros((n_policies, 1)) - qs_pi = utils.obj_array(n_policies) - qo_pi = utils.obj_array(n_policies) - - for idx, policy in enumerate(policies): - qs_pi[idx] = get_expected_states_interactions(qs, B, B_factor_list, policy) - qo_pi[idx] = get_expected_obs_factorized(qs_pi[idx], A, A_factor_list) - - G[idx] += calc_expected_utility(qo_pi[idx], C) - G[idx] += calc_states_info_gain_factorized(A, qs_pi[idx], A_factor_list) - - if I is not None: - G[idx] += calc_inductive_cost(qs, qs_pi[idx], I) - - q_pi = softmax(G * gamma) - - if n < horizon - 1: - # ignore low probability actions in the search tree - # TODO shouldnt we have to add extra penalty for branches no longer considered? - # or assume these are already low EFE (high NEFE) anyway? - policies_to_consider = list(np.where(q_pi >= policy_prune_threshold)[0]) - for idx in range(n_policies): - if idx not in policies_to_consider: - G[idx] -= prune_penalty - else : - # average over outcomes - qo_next = qo_pi[idx][0] - for k in itertools.product(*[range(s.shape[0]) for s in qo_next]): - prob = 1.0 - for i in range(len(k)): - prob *= qo_pi[idx][0][i][k[i]] - - # ignore low probability states in the search tree - if prob < state_prune_threshold: - continue - - qo_one_hot = utils.obj_array(len(qo_next)) - for i in range(len(qo_one_hot)): - qo_one_hot[i] = utils.onehot(k[i], qo_next[i].shape[0]) - - num_obs = [A[m].shape[0] for m in range(len(A))] - num_states = [B[f].shape[0] for f in range(len(B))] - A_modality_list = [] - for f in range(len(B)): - A_modality_list.append( [m for m in range(len(A)) if f in A_factor_list[m]] ) - mb_dict = { - 'A_factor_list': A_factor_list, - 'A_modality_list': A_modality_list - } - qs_next = update_posterior_states_factorized(A, qo_one_hot, num_obs, num_states, mb_dict, qs_pi[idx][0], **inference_params) - q_pi_next, G_next = sophisticated_inference_search(qs_next, policies, A, B, C, A_factor_list, B_factor_list, I, - horizon, policy_prune_threshold, state_prune_threshold, - prune_penalty, gamma, inference_params, n+1) - G_weighted = np.dot(q_pi_next, G_next) * prob - G[idx] += G_weighted - - q_pi = softmax(G * gamma) - return q_pi, G \ No newline at end of file + + # initialise inductive value + inductive_val = 0. + + log_eps = log_stable(epsilon) + for f in range(len(qs)): + # we also assume precise beliefs here?! + idx = jnp.argmax(qs[f]) + # m = arg max_n p_n < sup p + + # i.e. find first entry at which I_idx equals 1, and then m is the index before that + m = jnp.maximum(jnp.argmax(I[f][:, idx])-1, 0) + I_m = (1. - I[f][m, :]) * log_eps + path_available = jnp.clip(I[f][:, idx].sum(0), min=0, max=1) # if there are any 1's at all in that column of I, then this == 1, otherwise 0 + inductive_val += path_available * I_m.dot(qs_next[f]) # scaling by path_available will nullify the addition of inductive value in the case we find no path to goal (i.e. when no goal specified) + + return inductive_val + +# if __name__ == '__main__': + +# from jax import random as jr +# key = jr.PRNGKey(1) +# num_obs = [3, 4] + +# A = [jr.uniform(key, shape = (no, 2, 2)) for no in num_obs] +# B = [jr.uniform(key, shape = (2, 2, 2)), jr.uniform(key, shape = (2, 2, 2))] +# C = [log_stable(jnp.array([0.8, 0.1, 0.1])), log_stable(jnp.ones(4)/4)] +# policy_1 = jnp.array([[0, 1], +# [1, 1]]) +# policy_2 = jnp.array([[1, 0], +# [0, 0]]) +# policy_matrix = jnp.stack([policy_1, policy_2]) # 2 x 2 x 2 tensor + +# qs_init = [jnp.ones(2)/2, jnp.ones(2)/2] +# neg_G_all_policies = jit(update_posterior_policies)(policy_matrix, qs_init, A, B, C) +# print(neg_G_all_policies) diff --git a/pymdp/distribution.py b/pymdp/distribution.py new file mode 100644 index 00000000..e38a6ce2 --- /dev/null +++ b/pymdp/distribution.py @@ -0,0 +1,393 @@ +import numpy as np +from pymdp.utils import norm_dist + + +class Distribution: + + def __init__(self, event: dict, batch: dict = {}, data: np.ndarray = None): + self.event = event + self.batch = batch + + self.event_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in event.items() + } + self.batch_indices = { + key: {v: i for i, v in enumerate(values)} + for key, values in batch.items() + } + + if data is not None: + self.data = data + else: + shape = [] + for v in event.values(): + shape.append(len(v)) + for v in batch.values(): + shape.append(len(v)) + self.data = np.zeros(shape) + + def get(self, batch=None, event=None): + event_slices = self._get_slices(event, self.event_indices, self.event) + batch_slices = self._get_slices(batch, self.batch_indices, self.batch) + + slices = event_slices + batch_slices + return self.data[tuple(slices)] + + def set(self, batch=None, event=None, values=None): + event_slices = self._get_slices(event, self.event_indices, self.event) + batch_slices = self._get_slices(batch, self.batch_indices, self.batch) + + slices = event_slices + batch_slices + self.data[tuple(slices)] = values + + def _get_slices(self, keys, indices, full_indices): + slices = [] + if keys is None: + return [slice(None)] * len(full_indices) + for key in full_indices: + if key in keys: + if isinstance(keys[key], list): + slices.append( + [self._get_index(v, indices[key]) for v in keys[key]] + ) + else: + slices.append(self._get_index(keys[key], indices[key])) + else: + slices.append(slice(None)) + return slices + + def _get_index(self, key, index_map): + if isinstance(key, int): + return key + else: + return index_map[key] + + def _get_index_from_axis(self, axis, element): + if isinstance(element, slice): + return slice(None) + if axis < len(self.event): + key = list(self.event.keys())[axis] + index_map = self.event_indices[key] + else: + key = list(self.batch.keys())[axis - len(self.event)] + index_map = self.batch_indices[key] + return self._get_index(element, index_map) + + def __getitem__(self, indices): + if not isinstance(indices, tuple): + indices = (indices,) + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] + return self.data[tuple(index_list)] + + def __setitem__(self, indices, value): + if not isinstance(indices, tuple): + indices = (indices,) + index_list = [ + self._get_index_from_axis(i, idx) for i, idx in enumerate(indices) + ] + self.data[tuple(index_list)] = value + + def normalize(self): + self.data = norm_dist(self.data) + + def __repr__(self): + return f"Distribution({self.event}, {self.batch})\n {self.data}" + + +class DistributionIndexer(dict): + """ + Helper class to allow for indexing of distributions by their event keys. + Acts as a list otherwise ... + """ + + def __init__(self, distributions: list[Distribution]): + super().__init__() + self.distributions = distributions + for d in distributions: + for key in d.event: + self[key] = d + + def __getitem__(self, key): + if isinstance(key, int): + return self.distributions[key] + else: + if key not in self.keys(): + raise KeyError( + f"Key {key} not found in " + str([k for k in self.keys()]) + ) + return super().__getitem__(key) + + def __iter__(self): + return iter(self.distributions) + + +class Model(dict): + + def __init__( + self, + likelihoods: list[Distribution], + transitions: list[Distribution], + preferred_outcomes: list[Distribution], + priors: list[Distribution], + preferred_states: list[Distribution], + ): + super().__init__() + super().__setitem__("A", likelihoods) + super().__setitem__("B", transitions) + super().__setitem__("C", preferred_outcomes) + super().__setitem__("D", priors) + super().__setitem__("H", preferred_states) + + def __getattr__(self, key): + if key in ["A", "B", "C", "D", "H"]: + return DistributionIndexer(self[key]) + raise AttributeError("Model only supports attributes A,B,C and D") + + +def compile_model(config): + """Compile a model from a config. + + Takes a model description dictionary and builds the corresponding + Likelihood and Transition tensors. The tensors are filled with only + zeros and need to be filled in later by the caller of this function. + --- + The config should consist of three top-level keys: + * observations + * controls + * states + where each entry consists of another dictionary with the name of the + modality as key and the modality description. + + The modality description should consist out of either a `size` or `elements` + field indicating the named elements or the size of the integer array. + In the case of an observation the `depends_on` field needs to be present to + indicate what state factor links to this observation. In the case of states + the `depends_on` and `controlled_by` fields are needed. + --- + example config: + { "observations": { + "observation_1": {"size": 10, "depends_on": ["factor_1"]}, + "observation_2": { + "elements": ["A", "B"], + "depends_on": ["factor_1"], + }, + }, + "controls": { + "control_1": {"size": 2}, + "control_2": {"elements": ["X", "Y"]}, + }, + "states": { + "factor_1": { + "elements": ["II", "JJ", "KK"], + "depends_on": ["factor_1", "factor_2"], + "controlled_by": ["control_1", "control_2"], + }, + "factor_2": { + "elements": ["foo", "bar"], + "depends_on": ["factor_2"], + "controlled_by": ["control_2"], + }, + }} + """ + # these are needed to get the ordering of the dimensions correct for pymdp + state_dependencies = dict() + control_dependencies = dict() + likelihood_dependencies = dict() + transition_events = dict() + likelihood_events = dict() + labels = dict() + shape = dict() + for mod in config: + for k, v in config[mod].items(): + for keyword in v: + match keyword: + case "elements": + shape[k] = len(v[keyword]) + labels[k] = [name for name in v[keyword]] + case "size": + shape[k] = v[keyword] + labels[k] = list(range(v[keyword])) + case "depends_on": + if mod == "states": + state_dependencies[k] = [ + name for name in v[keyword] + ] + if k in v[keyword]: + transition_events[k] = labels[k] + else: + likelihood_dependencies[k] = [ + name for name in v[keyword] + ] + likelihood_events[k] = labels[k] + case "controlled_by": + control_dependencies[k] = [name for name in v[keyword]] + + transitions = [] + for event, description in transition_events.items(): + arr_shape = [len(description)] + batch_descr = dict() + event_descr = {event: description} + for dep in state_dependencies[event]: + arr_shape.append(shape[dep]) + batch_descr[dep] = labels[dep] + for dep in control_dependencies[event]: + arr_shape.append(shape[dep]) + batch_descr[dep] = labels[dep] + arr = np.zeros(arr_shape) + transitions.append(Distribution(event_descr, batch_descr, arr)) + + priors = [] + for event, description in transition_events.items(): + arr_shape = [len(description)] + arr = np.ones(arr_shape) / len(description) + event_descr = {event: description} + priors.append(Distribution(event_descr, data=arr)) + + likelihoods = [] + for event, description in likelihood_events.items(): + arr_shape = [len(description)] + batch_descr = dict() + event_descr = {event: description} + for dep in likelihood_dependencies[event]: + arr_shape.append(shape[dep]) + batch_descr[dep] = labels[dep] + arr = np.zeros(arr_shape) + likelihoods.append(Distribution(event_descr, batch_descr, arr)) + + preferred_outcomes = [] + for event, description in likelihood_events.items(): + arr_shape = [len(description)] + arr = np.zeros(arr_shape) + event_descr = {event: description} + preferred_outcomes.append(Distribution(event_descr, data=arr)) + + preferred_states = [] + for event, description in transition_events.items(): + arr_shape = [len(description)] + arr = np.ones(arr_shape) / len(description) + event_descr = {event: description} + preferred_states.append(Distribution(event_descr, data=arr)) + + return Model( + likelihoods, transitions, preferred_outcomes, priors, preferred_states + ) + + +def get_dependencies(likelihoods, transitions): + likelihood_dependencies = dict() + transition_dependencies = dict() + states = [list(trans.event.keys())[0] for trans in transitions] + for like in likelihoods: + likelihood_dependencies[list(like.event.keys())[0]] = [ + states.index(name) for name in like.batch.keys() + ] + for trans in transitions: + transition_dependencies[list(trans.event.keys())[0]] = [ + states.index(name) for name in trans.batch.keys() if name in states + ] + return list(likelihood_dependencies.values()), list( + transition_dependencies.values() + ) + + +if __name__ == "__main__": + controls = ["up", "down"] + locations = ["A", "B", "C", "D"] + + data = np.zeros((len(locations), len(locations), len(controls))) + transition = Distribution( + {"location": locations}, + {"location": locations, "control": controls}, + data, + ) + + assert transition["A", "B", "up"] == 0.0 + assert transition[:, "B", "up"].shape == (4,) + assert transition["A", "B", :].shape == (2,) + assert transition[:, "B", :].shape == (4, 2) + assert transition[:, :, :].shape == (4, 4, 2) + assert transition[0, "B", 0] == 0.0 + assert transition[:, "B", 0].shape == (4,) + + transition["A", "B", "up"] = 0.5 + assert transition["A", "B", "up"] == 0.5 + transition[:, "B", "up"] = np.ones(4) + assert np.all(transition[:, "B", "up"] == 1.0) + + assert transition.get({"location": "A"}, {"location": "B"}).shape == (2,) + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.0 + ) + assert transition.get({"control": "up"}).shape == (4, 4) + + transition.set({"location": "A", "control": "up"}, {"location": "B"}, 0.5) + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.5 + ) + transition.set({"location": 0, "control": "up"}, {"location": "B"}, 0.7) + assert ( + transition.get({"location": "A", "control": "up"}, {"location": "B"}) + == 0.7 + ) + transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) + assert np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) + + model_example = { + "observations": { + "observation_1": {"size": 10, "depends_on": ["factor_1"]}, + "observation_2": { + "elements": ["A", "B"], + "depends_on": ["factor_2"], + }, + }, + "controls": { + "control_1": {"size": 2}, + "control_2": {"elements": ["X", "Y"]}, + }, + "states": { + "factor_1": { + "elements": ["II", "JJ", "KK"], + "depends_on": ["factor_1", "factor_2"], + "controlled_by": ["control_1", "control_2"], + }, + "factor_2": { + "elements": ["foo", "bar"], + "depends_on": ["factor_2"], + "controlled_by": ["control_2"], + }, + }, + } + model = compile_model(model_example) + like = model.A + trans = model.B + assert len(trans) == 2 + assert len(like) == 2 + assert trans[0].data.shape == (3, 3, 2, 2, 2) + assert trans[1].data.shape == (2, 2, 2) + assert like[0].data.shape == (10, 3) + assert like[1].data.shape == (2, 2) + assert like["observation_1"][:, "II"] is not None + assert like["observation_2"][1, :] is not None + A_deps, B_deps = get_dependencies(like, trans) + print(A_deps, B_deps) + + model_description = { + "observations": { + "o1": {"elements": ["A", "B", "C", "D"], "depends_on": ["s1"]}, + }, + "controls": {"c1": {"elements": ["up", "down"]}}, + "states": { + "s1": { + "elements": ["A", "B", "C", "D"], + "depends_on": ["s1"], + "controlled_by": ["c1"], + }, + }, + } + + model = compile_model(model_description) diff --git a/pymdp/envs/__init__.py b/pymdp/envs/__init__.py index e461e569..3c70cf1f 100644 --- a/pymdp/envs/__init__.py +++ b/pymdp/envs/__init__.py @@ -1,4 +1 @@ -from .env import Env -from .grid_worlds import GridWorldEnv, DGridWorldEnv -from .visual_foraging import VisualForagingEnv, SceneConstruction, RandomDotMotion, initialize_scene_construction_GM, initialize_RDM_GM -from .tmaze import TMazeEnv, TMazeEnvNullOutcome +from .tmaze import TMaze diff --git a/pymdp/envs/assets/cheese.png b/pymdp/envs/assets/cheese.png new file mode 100644 index 00000000..929c5233 Binary files /dev/null and b/pymdp/envs/assets/cheese.png differ diff --git a/pymdp/envs/assets/mouse.png b/pymdp/envs/assets/mouse.png new file mode 100644 index 00000000..02dc90b6 Binary files /dev/null and b/pymdp/envs/assets/mouse.png differ diff --git a/pymdp/envs/assets/shock.png b/pymdp/envs/assets/shock.png new file mode 100644 index 00000000..059ccf5b Binary files /dev/null and b/pymdp/envs/assets/shock.png differ diff --git a/pymdp/envs/env.py b/pymdp/envs/env.py index 635e4e98..4354b55b 100644 --- a/pymdp/envs/env.py +++ b/pymdp/envs/env.py @@ -1,87 +1,95 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- +from typing import Optional, List, Dict +from jaxtyping import Array, PRNGKeyArray +from functools import partial -""" Environment Base Class +from equinox import Module, field, tree_at +from jax import vmap, random as jr, tree_util as jtu +import jax.numpy as jnp -__author__: Conor Heins, Alexander Tschantz, Brennan Klein -""" +def select_probs(positions, matrix, dependency_list, actions=None): + args = tuple(p for i, p in enumerate(positions) if i in dependency_list) + args += () if actions is None else (actions,) + return matrix[..., *args] -class Env(object): - """ - The Env base class, loosely-inspired by the analogous ``env`` class of the OpenAIGym framework. - A typical workflow is as follows: +def cat_sample(key, p): + a = jnp.arange(p.shape[-1]) + if p.ndim > 1: + choice = lambda key, p: jr.choice(key, a, p=p) + keys = jr.split(key, len(p)) + print(keys.shape) + return vmap(choice)(keys, p) - >>> my_env = MyCustomEnv() - >>> initial_observation = my_env.reset(initial_state) - >>> my_agent.infer_states(initial_observation) - >>> my_agent.infer_policies() - >>> next_action = my_agent.sample_action() - >>> next_observation = my_env.step(next_action) + return jr.choice(key, a, p=p) - This would be the first step of an active inference process, where a sub-class of ``Env``, ``MyCustomEnv`` is initialized, - an initial observation is produced, and these observations are fed into an instance of ``Agent`` in order to produce an action, - that can then be fed back into the the ``Env`` instance. - """ +class Env(Module): + params: Dict + state: List[Array] + current_obs: List[Array] + dependencies: Dict = field(static=True) - def reset(self, state=None): - """ - Resets the initial state of the environment. Depending on case, it may be common to return an initial observation as well. - """ - raise NotImplementedError + def __init__(self, params: Dict, dependencies: Dict): + self.params = params + self.dependencies = dependencies - def step(self, action): - """ - Steps the environment forward using an action. + self.state = jtu.tree_map(lambda x: jnp.zeros([x.shape[0]]), self.params["D"]) + self.current_obs = jtu.tree_map(lambda x: jnp.zeros([x.shape[0], x.shape[1]]), self.params["A"]) - Parameters - ---------- - action - The action, the type/format of which depends on the implementation. + @vmap + def reset(self, key: Optional[PRNGKeyArray], state: Optional[List[Array]] = None): + if state is None: + probs = self.params["D"] + keys = list(jr.split(key, len(probs) + 1)) + key = keys[0] + state = jtu.tree_map(cat_sample, keys[1:], probs) - Returns - --------- - observation - Sensory observations for an agent, the type/format of which depends on the implementation of ``step`` and the observation space of the agent. - """ - raise NotImplementedError + env = tree_at(lambda x: x.state, self, state) - def render(self): - """ - Rendering function, that typically creates a visual representation of the state of the environment at the current timestep. + new_obs = self._sample_obs(key, state) + env = tree_at(lambda x: x.current_obs, env, new_obs) + return new_obs, env + + def render(self, mode="human"): """ - pass - def sample_action(self): + Returns + ---- + if mode == "human": + returns None, renders the environment using MPL inside the function + elif mode == "rgb_array": + A (H, W, 3) uint8 jax.numpy array, with values between 0 and 255 + """ pass - def get_likelihood_dist(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) - - def get_transition_dist(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) - - def get_uniform_posterior(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) - - def get_rand_likelihood_dist(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) - - def get_rand_transition_dist(self): - raise ValueError( - "<{}> does not provide a model specification".format(type(self).__name__) - ) - - def __str__(self): - return "<{} instance>".format(type(self).__name__) + @vmap + def step(self, rng_key: PRNGKeyArray, actions: Optional[Array] = None): + # return a list of random observations and states + key_state, key_obs = jr.split(rng_key) + state = self.state + if actions is not None: + actions = list(actions) + _select_probs = partial(select_probs, state) + state_probs = jtu.tree_map(_select_probs, self.params["B"], self.dependencies["B"], actions) + + keys = list(jr.split(key_state, len(state_probs))) + new_state = jtu.tree_map(cat_sample, keys, state_probs) + else: + new_state = state + + new_obs = self._sample_obs(key_obs, new_state) + + env = tree_at(lambda x: (x.state), self, new_state) + env = tree_at(lambda x: x.current_obs, env, new_obs) + return new_obs, env + + def _sample_obs(self, key, state): + _select_probs = partial(select_probs, state) + obs_probs = jtu.tree_map(_select_probs, self.params["A"], self.dependencies["A"]) + + keys = list(jr.split(key, len(obs_probs))) + new_obs = jtu.tree_map(cat_sample, keys, obs_probs) + new_obs = jtu.tree_map(lambda x: jnp.expand_dims(x, -1), new_obs) + return new_obs diff --git a/pymdp/envs/generalized_tmaze.py b/pymdp/envs/generalized_tmaze.py new file mode 100644 index 00000000..6a8c4ee6 --- /dev/null +++ b/pymdp/envs/generalized_tmaze.py @@ -0,0 +1,548 @@ +from .env import Env +import numpy as np +import jax.numpy as jnp + +import matplotlib.pyplot as plt +import io +import PIL.Image + +import jax.numpy as jnp +import jax.tree_util as jtu +from jax import random as jr +from jaxtyping import Array, PRNGKeyArray +from matplotlib.lines import Line2D + +def parse_maze(maze, rng_key: PRNGKeyArray): + """ + Parameters + ---------- + maze + a matrix representation of the environment + where indices have particular meaning: + 0: Empty space + 1: The initial position of the agent + 2: Walls + 3 + i: Cue for reward i + 4 + i: Potential reward location i 1 + 4 + i: Potential reward location i 2 + Returns + ---------- + env_info + a dictionary containing the environment information needed for + constructing the agent/environment matrices and visualization + purposes + """ + + rows, cols = maze.shape + + num_cues = int((jnp.max(maze) - 2) // 3) + + cue_positions = [] + reward_1_positions = [] + reward_2_positions = [] + for i in range(num_cues): + cue_positions.append(tuple(jnp.argwhere(maze == 3 + 3 * i)[0])) + reward_1_positions.append(tuple(jnp.argwhere(maze == 4 + 3 * i)[0])) + reward_2_positions.append(tuple(jnp.argwhere(maze == 5 + 3 * i)[0])) + + # Initialize agent's starting position (can be customized if required) + initial_position = tuple(jnp.argwhere(maze == 1)[0]) + + # Actions: up, down, left, right + actions = [(-1, 0), (1, 0), (0, -1), (0, 1)] + + # Set reward location randomly + reward_locations = jr.choice(rng_key, 2, shape=(num_cues,)) + reward_indices = [] + no_reward_indices = [] + + for i in range(num_cues): + if reward_locations[i] == 0: + reward_indices += [jnp.ravel_multi_index(jnp.array(reward_1_positions[i]), maze.shape).item()] + no_reward_indices += [jnp.ravel_multi_index(jnp.array(reward_2_positions[i]), maze.shape).item()] + else: + reward_indices += [jnp.ravel_multi_index(jnp.array(reward_2_positions[i]), maze.shape).item()] + no_reward_indices += [jnp.ravel_multi_index(jnp.array(reward_1_positions[i]), maze.shape).item()] + + return { + "maze": maze, + "actions": actions, + "num_cues": num_cues, + "cue_positions": cue_positions, + "reward_indices": reward_indices, + "no_reward_indices": no_reward_indices, + "initial_position": initial_position, + "reward_1_positions": reward_1_positions, + "reward_2_positions": reward_2_positions, + "reward_locations": reward_locations, + } + + +def generate_A(maze_info): + """ + Parameters + ---------- + maze_info: + info dict returned from `parse_maze` which contains the information + about the reward locations, initial positions, etc. + Returns + ---------- + A matrix: + The likelihood mapping for the generalized T-maze. Maps the observations + of (position, *cue_i, *reward_i) to states (position, reward) + A dependencies: + The state dependencies that generate observation for modality i + """ + # Positional observation likelihood + maze = maze_info["maze"] + rows, cols = maze.shape + num_cues = maze_info["num_cues"] + cue_positions = maze_info["cue_positions"] + reward_1_positions = maze_info["reward_1_positions"] + reward_2_positions = maze_info["reward_2_positions"] + + num_states = rows * cols + position_likelihood = np.zeros((num_states, num_states)) + for i in range(num_states): + # Agent can be certain about its position regardless of reward state + position_likelihood[i, i] = 1 + + cue_likelihoods = [] + for i in range(num_cues): + # Cue observation likelihood, cue_position = (11, 5) + # obs (nothing, left location, right location) + # state: (current position, reward i position) + cue_likelihood = np.zeros((3, num_states, 2)) + cue_likelihood[0, :, :] = 1 # Default: no info about reward + + cue_state_idx = jnp.ravel_multi_index(jnp.array(cue_positions[i]), maze.shape) + reward_1_state_idx = jnp.ravel_multi_index(jnp.array(reward_1_positions[i]), maze.shape) + reward_2_state_idx = jnp.ravel_multi_index(jnp.array(reward_2_positions[i]), maze.shape) + + cue_likelihood[:, cue_state_idx, 0] = [0, 1, 0] # Reward in r1 + cue_likelihood[:, cue_state_idx, 1] = [0, 0, 1] # Reward in r2 + cue_likelihoods.append(cue_likelihood) + + # Reward observation likelihood, r1 = (4, 7), r2 = (8, 7) + reward_likelihoods = [] + + for i in range(num_cues): + # observation (nothing, no reward, reward) + reward_likelihood = np.zeros((3, num_states, 2)) + reward_likelihood[0, :, :] = 1 # Default: no reward + + reward_1_state_idx = jnp.ravel_multi_index(jnp.array(reward_1_positions[i]), maze.shape) + reward_2_state_idx = jnp.ravel_multi_index(jnp.array(reward_2_positions[i]), maze.shape) + + # Reward in (8,4) if reward state is 0 + reward_likelihood[:, reward_1_state_idx, 0] = [0, 1, 0] + # Reward in (8,8) if reward state is 0 + reward_likelihood[:, reward_2_state_idx, 0] = [0, 0, 1] + # Reward in (8,4) if reward state is 0 + reward_likelihood[:, reward_1_state_idx, 1] = [0, 0, 1] + # Reward in (8,8) if reward state is 0 + reward_likelihood[:, reward_2_state_idx, 1] = [0, 1, 0] + reward_likelihoods.append(reward_likelihood) + + combined_likelihood = np.empty(1 + 2 * num_cues, dtype=object) + combined_likelihood[0] = position_likelihood + for j, cue_likelihood in enumerate(cue_likelihoods): + combined_likelihood[1 + j] = cue_likelihood + for j, reward_likelihood in enumerate(reward_likelihoods): + combined_likelihood[1 + num_cues + j] = reward_likelihood + + likelihood_dependencies = ( + [[0]] + + [[0, 1 + i] for i in range(num_cues)] + + [[0, 1 + i] for i in range(num_cues)] + ) + + return combined_likelihood, likelihood_dependencies + + +def generate_B(maze_info): + """ + Parameters + ---------- + maze_info: + info dict returned from `parse_maze` which contains the information + about the reward locations, initial positions, etc. + Returns + ---------- + B matrix: + The transition matrix for the generalized T-maze. The position state + is transitioned according to the maze layout, for the other states + the transition matrix is the identity. + B dependencies: + The state dependencies that generate transition for state i + """ + + maze = maze_info["maze"] + actions = maze_info["actions"] + num_cues = maze_info["num_cues"] + + rows, cols = maze.shape + num_states = rows * cols + num_actions = len(actions) + + P = np.zeros((num_states, num_actions), dtype=int) + + for s in range(num_states): + row, col = divmod(s, cols) + + for a in range(num_actions): + ns_row, ns_col = row + actions[a][0], col + actions[a][1] + + if ( + ns_row < 0 + or ns_row >= rows + or ns_col < 0 + or ns_col >= cols + or maze[ns_row, ns_col] == 2 + ): + P[s, a] = s + else: + P[s, a] = jnp.ravel_multi_index(jnp.array((ns_row, ns_col)), maze.shape) + + B = np.zeros((num_states, num_states, num_actions)) + for s in range(num_states): + for a in range(num_actions): + ns = P[s, a] + B[ns, s, a] = 1 + + # add do nothing action + B = np.concatenate([B, np.eye(num_states)[..., None]], -1) + + assert np.all(np.logical_or(B == 0, B == 1)) + assert np.allclose(B.sum(axis=0), 1) + + reward_transitions = [] + for i in range(num_cues): + reward_transition = np.eye(2).reshape(2, 2, 1) + reward_transitions.append(reward_transition) + + combined_transition = np.empty(1 + num_cues, dtype=object) + combined_transition[0] = B + for i, reward_transition in enumerate(reward_transitions): + combined_transition[1 + i] = reward_transition + + transition_dependencies = [[0]] + [[i + 1] for i in range(num_cues)] + + return combined_transition, transition_dependencies + + +def generate_D(maze_info): + """ + Parameters + ---------- + maze_info: + info dict returned from `parse_maze` which contains the information + about the reward locations, initial positions, etc. + Returns + ---------- + D vector: + The initial state for the environment, i.e. each state is a one hot + based on the environment initial conditions. + """ + maze = maze_info["maze"] + rows, cols = maze.shape + num_cues = maze_info["num_cues"] + reward_locations = maze_info["reward_locations"] + initial_position = maze_info["initial_position"] + + D = [None for _ in range(1 + num_cues)] + + D[0] = np.zeros(cols * rows) + # Position of the agent when starting the environment + D[0][jnp.ravel_multi_index(jnp.array(initial_position), maze.shape)] = 1 + + # Cue state i.e. where is the reward + for i in range(num_cues): + r1 = reward_locations[i] + D[1 + i] = np.zeros(2) + D[1 + i][r1] = 1 + + return D + + +def render(maze_info, env_state, show_img=True): + """ + Plots and returns the rendered environment. + Parameters + ---------- + maze_info: + info dict returned from `parse_maze` which contains the information + about the reward locations, initial positions, etc. + env_state: + The environment state as a GeneralizedTMazeEnv instance + Returns + ---------- + image: + A render of the environment. + """ + maze = maze_info["maze"].copy() + num_cues = maze_info["num_cues"] + cue_positions = maze_info["cue_positions"] + reward_1_positions = maze_info["reward_1_positions"] + reward_2_positions = maze_info["reward_2_positions"] + + current_position = env_state.state[0] + current_position = jnp.unravel_index(current_position, maze.shape) + + # Set all states not in [1] to be 0 (accessible state) + mask = np.isin(maze, [2], invert=True) + maze[mask] = 0 + + plt.figure() + plt.imshow(maze, cmap="gray_r", origin="lower") + + cmap = plt.get_cmap("tab10") + plt.scatter( + [ci[1] for ci in cue_positions], + [ci[0] for ci in cue_positions], + color=[cmap(i) for i in range(len(cue_positions))], + s=200, + alpha=0.5, + ) + plt.scatter( + [ci[1] for ci in cue_positions], + [ci[0] for ci in cue_positions], + color="black", + s=50, + label="Cue", + marker="x", + ) + + plt.scatter( + [ri[1] for ri in reward_1_positions], + [ri[0] for ri in reward_1_positions], + color=[cmap(i) for i in range(len(cue_positions))], + s=200, + alpha=0.5, + ) + + plt.scatter( + [ri[1] for ri in reward_2_positions], + [ri[0] for ri in reward_2_positions], + color=[cmap(i) for i in range(len(cue_positions))], + s=200, + alpha=0.5, + ) + + plt.scatter( + [ri[1] for ri in reward_1_positions[-1:]], + [ri[0] for ri in reward_1_positions[-1:]], + marker="o", + color="red", + s=50, + label="Positive", + ) + + plt.scatter( + [ri[1] for ri in reward_2_positions[-1:]], + [ri[0] for ri in reward_2_positions[-1:]], + marker="o", + color="blue", + s=50, + label="Negative", + ) + + plt.scatter( + current_position[1], + current_position[0], + c="tab:green", + marker="s", + s=100, + label="Agent", + ) + + plt.title("Generalized T-Maze Environment") + + handles, labels = plt.gca().get_legend_handles_labels() + for i in range(num_cues): + if i == num_cues - 1: + label = "Reward set" + else: + label = f"Distractor {i + 1} set" + patch = Line2D( + [0], + [0], + marker="o", + markersize=10, + markerfacecolor=cmap(i), + markeredgecolor=cmap(i), + label=label, + alpha=0.5, + linestyle="", + ) + handles.append(patch) + + plt.legend( + handles=handles, loc="upper left", bbox_to_anchor=(1, 1), fancybox=True + ) + #plt.axis("off") + plt.tight_layout() + + # Capture the current figure as an image + buf = io.BytesIO() + plt.savefig(buf, format="png") + buf.seek(0) + image = PIL.Image.open(buf) + + if show_img: + plt.show() + + return image + + +class GeneralizedTMazeEnv(Env): + """ + Extended version of the T-Maze in which there are multiple cues and reward pairs + similar to the original T-maze. + """ + + def __init__(self, env_info, batch_size=1): + A, A_dependencies = generate_A(env_info) + B, B_dependencies = generate_B(env_info) + D = generate_D(env_info) + expand_to_batch = lambda x: jnp.broadcast_to(jnp.array(x), (batch_size,) + x.shape) + params = { + "A": jtu.tree_map(expand_to_batch, list(A)), + "B": jtu.tree_map(expand_to_batch, list(B)), + "D": jtu.tree_map(expand_to_batch, list(D)), + } + dependencies = {"A": A_dependencies, "B": B_dependencies} + + Env.__init__(self, params, dependencies) + + def render(self, mode="human"): + """ + Renders the environment + Parameters + ---------- + mode: str, optional + The mode to render with ("human" or "rgb_array") + Returns + ---------- + if mode == "human": + returns None, renders the environment using matplotlib inside the function + elif mode == "rgb_array": + A (H, W, 3) jax.numpy array that can act as input to functions like plt.imshow, with values between 0 and 255 + """ + pass + # maze = maze_info["maze"] + # num_cues = maze_info["num_cues"] + # cue_positions = maze_info["cue_positions"] + # reward_1_positions = maze_info["reward_1_positions"] + # reward_2_positions = maze_info["reward_2_positions"] + + # current_position = env_state.state[0] + # current_position = jnp.unravel_index(current_position, maze.shape) + + # # Set all states not in [1] to be 0 (accessible state) + # mask = np.isin(maze, [2], invert=True) + # maze[mask] = 0 + + # plt.figure() + # plt.imshow(maze, cmap="gray_r", origin="lower") + + # cmap = plt.get_cmap("tab10") + # plt.scatter( + # [ci[1] for ci in cue_positions], + # [ci[0] for ci in cue_positions], + # color=[cmap(i) for i in range(len(cue_positions))], + # s=200, + # alpha=0.5, + # ) + # plt.scatter( + # [ci[1] for ci in cue_positions], + # [ci[0] for ci in cue_positions], + # color="black", + # s=50, + # label="Cue", + # marker="x", + # ) + + # plt.scatter( + # [ri[1] for ri in reward_1_positions], + # [ri[0] for ri in reward_1_positions], + # color=[cmap(i) for i in range(len(cue_positions))], + # s=200, + # alpha=0.5, + # ) + + # plt.scatter( + # [ri[1] for ri in reward_2_positions], + # [ri[0] for ri in reward_2_positions], + # color=[cmap(i) for i in range(len(cue_positions))], + # s=200, + # alpha=0.5, + # ) + + # plt.scatter( + # [ri[1] for ri in reward_1_positions[-1:]], + # [ri[0] for ri in reward_1_positions[-1:]], + # marker="o", + # color="red", + # s=50, + # label="Positive", + # ) + + # plt.scatter( + # [ri[1] for ri in reward_2_positions[-1:]], + # [ri[0] for ri in reward_2_positions[-1:]], + # marker="o", + # color="blue", + # s=50, + # label="Negative", + # ) + + # plt.scatter( + # current_position[1], + # current_position[0], + # c="tab:green", + # marker="s", + # s=100, + # label="Agent", + # ) + + # plt.title("Generalized T-Maze Environment") + + # handles, labels = plt.gca().get_legend_handles_labels() + # for i in range(num_cues): + # if i == num_cues - 1: + # label = "Reward set" + # else: + # label = f"Distractor {i + 1} set" + # patch = Line2D( + # [0], + # [0], + # marker="o", + # markersize=10, + # markerfacecolor=cmap(i), + # markeredgecolor=cmap(i), + # label=label, + # alpha=0.5, + # linestyle="", + # ) + # handles.append(patch) + + # plt.legend( + # handles=handles, loc="upper left", bbox_to_anchor=(1, 1), fancybox=True + # ) + # #plt.axis("off") + # plt.tight_layout() + + # # Capture the current figure as an image + # buf = io.BytesIO() + # plt.savefig(buf, format="png") + # buf.seek(0) + # image = PIL.Image.open(buf) + + # if show_img: + # plt.show() + + # return image + + + diff --git a/pymdp/envs/graph_worlds.py b/pymdp/envs/graph_worlds.py new file mode 100644 index 00000000..78b81dfb --- /dev/null +++ b/pymdp/envs/graph_worlds.py @@ -0,0 +1,126 @@ +import networkx as nx +import jax.numpy as jnp + +from .env import Env + + +def generate_connected_clusters(cluster_size=2, connections=2): + edges = [] + connecting_node = 0 + while connecting_node < connections * cluster_size: + edges += [(connecting_node, a) for a in range(connecting_node + 1, connecting_node + cluster_size + 1)] + connecting_node = len(edges) + graph = nx.Graph() + graph.add_edges_from(edges) + return graph, { + "locations": [ + (f"hallway {i}" if len(list(graph.neighbors(loc))) > 1 else f"room {i}") + for i, loc in enumerate(graph.nodes) + ] + } + + +class GraphEnv(Env): + """ + A simple environment where an agent can move around a graph and search an object. + The agent observes its own location, as well as whether the object is at its location. + """ + + def __init__(self, graph: nx.Graph, object_locations: list[int], agent_locations: list[int]): + batch_size = len(object_locations) + + A, A_dependencies = self.generate_A(graph) + A = [jnp.broadcast_to(a, (batch_size,) + a.shape) for a in A] + B, B_dependencies = self.generate_B(graph) + B = [jnp.broadcast_to(b, (batch_size,) + b.shape) for b in B] + D = self.generate_D(graph, object_locations, agent_locations) + + params = { + "A": A, + "B": B, + "D": D, + } + + dependencies = { + "A": A_dependencies, + "B": B_dependencies, + } + + super().__init__(params, dependencies) + + def generate_A(self, graph: nx.Graph): + A = [] + A_dependencies = [] + + num_locations = len(graph.nodes) + num_object_locations = num_locations + 1 # +1 for "not here" + p = 1.0 # probability of seeing object if it is at the same location as the agent + + # agent location modality + A.append(jnp.eye(num_locations)) + A_dependencies.append([0]) + + # object visibility modality + A.append(jnp.zeros((2, num_locations, num_object_locations))) + + for agent_loc in range(num_locations): + for object_loc in range(num_locations): + if agent_loc == object_loc: + # object seen + A[1] = A[1].at[0, agent_loc, object_loc].set(1 - p) + A[1] = A[1].at[1, agent_loc, object_loc].set(p) + else: + A[1] = A[1].at[0, agent_loc, object_loc].set(p) + A[1] = A[1].at[1, agent_loc, object_loc].set(1.0 - p) + + # object not here, we can't see it anywhere + A[1] = A[1].at[0, :, -1].set(1.0) + A[1] = A[1].at[1, :, -1].set(0.0) + + A_dependencies.append([0, 1]) + return A, A_dependencies + + def generate_B(self, graph: nx.Graph): + B = [] + B_dependencies = [] + + num_locations = len(graph.nodes) + num_object_locations = num_locations + 1 + + # agent location transitions, based on graph connectivity + B.append(jnp.zeros((num_locations, num_locations, num_locations))) + for action in range(num_locations): + for from_loc in range(num_locations): + for to_loc in range(num_locations): + if action == to_loc: + # we transition if connected in graph + if graph.has_edge(from_loc, to_loc): + B[0] = B[0].at[to_loc, from_loc, action].set(1.0) + else: + B[0] = B[0].at[from_loc, from_loc, action].set(1.0) + + B_dependencies.append([0]) + + # objects don't move + B.append(jnp.zeros((num_object_locations, num_object_locations, 1))) + B[1] = B[1].at[:, :, 0].set(jnp.eye(num_object_locations)) + B_dependencies.append([1]) + + return B, B_dependencies + + def generate_D(self, graph: nx.Graph, object_locations: list[int], agent_locations: list[int]): + batch_size = len(object_locations) + num_locations = len(graph.nodes) + num_object_locations = num_locations + 1 + + states = [num_locations, num_object_locations] + D = [] + for s in states: + D.append(jnp.zeros((batch_size, s))) + + # set the start locations + for i in range(batch_size): + D[0] = D[0].at[i, agent_locations[i]].set(1.0) + D[1] = D[1].at[i, object_locations[i]].set(1.0) + + return D diff --git a/pymdp/envs/rollout.py b/pymdp/envs/rollout.py new file mode 100644 index 00000000..6c39de58 --- /dev/null +++ b/pymdp/envs/rollout.py @@ -0,0 +1,124 @@ +import jax.numpy as jnp +import jax.random as jr +import jax.tree_util as jtu +import jax.lax + +from pymdp.agent import Agent +from pymdp.envs.env import Env + + +def rollout(agent: Agent, env: Env, num_timesteps: int, rng_key: jr.PRNGKey, policy_search=None): + """ + Rollout an agent in an environment for a number of timesteps. + + Parameters + ---------- + agent: ``Agent`` + Agent to interact with the environment + env: ``Env` + Environment to interact with + num_timesteps: ``int`` + Number of timesteps to rollout for + rng_key: ``PRNGKey`` + Random key to use for sampling actions + policy_search: ``callable`` + Function to use for policy search (optional) + Calls policy_search(agent, beliefs, rng_key) and expects q_pi, info back. + If none, agent.infer_policies will be used. + + Returns + ---------- + last: ``dict`` + Carry dictionary from the last timestep + info: ``dict`` + Dictionary containing information about the rollout, i.e. executed actions, observations, beliefs, etc. + env: ``Env`` + Environment state after the rollout + """ + # get the batch_size of the agent + batch_size = agent.batch_size + + if policy_search is None: + + def default_policy_search(agent, qs, rng_key): + qpi, _ = agent.infer_policies(qs) + return qpi, None + + policy_search = default_policy_search + + def step_fn(carry, x): + action_t = carry["action_t"] + observation_t = carry["observation_t"] + qs = carry["qs"] + empirical_prior = carry["empirical_prior"] + env = carry["env"] + rng_key = carry["rng_key"] + + # We infer the posterior using FPI + # so we don't need past actions or qs_hist + qs = agent.infer_states( + observations=observation_t, + empirical_prior=empirical_prior, + ) + + rng_key, key = jr.split(rng_key) + qpi, _ = policy_search(agent, qs, key) + + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + action_t = agent.sample_action(qpi, rng_key=keys[1:]) + + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + observation_t, env = env.step(rng_key=keys[1:], actions=action_t) + + empirical_prior, qs = agent.update_empirical_prior(action_t, qs) + + carry = { + "action_t": action_t, + "observation_t": observation_t, + "qs": jtu.tree_map(lambda x: x[:, -1:, ...], qs), + "empirical_prior": empirical_prior, + "env": env, + "rng_key": rng_key, + } + info = { + "qpi": qpi, + "qs": jtu.tree_map(lambda x: x[:, 0, ...], qs), + "env": env, + "observation": observation_t, + "action": action_t, + } + + return carry, info + + # generate initial observation + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + observation_0, env = env.step(keys[1:]) + + # initial belief + qs_0 = jtu.tree_map(lambda x: jnp.expand_dims(x, -2), agent.D) + + # infer initial action to get the right shape + qpi_0, _ = agent.infer_policies(qs_0) + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + action_t = agent.sample_action(qpi_0, rng_key=keys[1:]) + # but set it to zeros + action_t *= 0 + + initial_carry = { + "qs": qs_0, + "action_t": action_t, + "observation_t": observation_0, + "empirical_prior": agent.D, + "env": env, + "rng_key": rng_key, + } + + # Scan over time dimension (axis 1) + last, info = jax.lax.scan(step_fn, initial_carry, jnp.arange(num_timesteps)) + + info = jtu.tree_map(lambda x: jnp.swapaxes(x, 0, 1), info) + return last, info, env diff --git a/pymdp/envs/tmaze.py b/pymdp/envs/tmaze.py index 6fadb0d8..ca274558 100644 --- a/pymdp/envs/tmaze.py +++ b/pymdp/envs/tmaze.py @@ -1,346 +1,305 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" T Maze Environment (Factorized) - -__author__: Conor Heins, Alexander Tschantz, Brennan Klein - -""" - -from pymdp.envs import Env -from pymdp import utils, maths -import numpy as np - -LOCATION_FACTOR_ID = 0 -TRIAL_FACTOR_ID = 1 - -LOCATION_MODALITY_ID = 0 -REWARD_MODALITY_ID = 1 -CUE_MODALITY_ID = 2 - -REWARD_IDX = 1 -LOSS_IDX = 2 - - -class TMazeEnv(Env): - """ Implementation of the 3-arm T-Maze environment """ - def __init__(self, reward_probs=None): - - if reward_probs is None: - a = 0.98 - b = 1.0 - a - self.reward_probs = [a, b] - else: - if sum(reward_probs) != 1: - raise ValueError("Reward probabilities must sum to 1!") - elif len(reward_probs) != 2: - raise ValueError("Only two reward conditions currently supported...") - else: - self.reward_probs = reward_probs - - self.num_states = [4, 2] - self.num_locations = self.num_states[LOCATION_FACTOR_ID] - self.num_controls = [self.num_locations, 1] - self.num_reward_conditions = self.num_states[TRIAL_FACTOR_ID] - self.num_cues = self.num_reward_conditions - self.num_obs = [self.num_locations, self.num_reward_conditions + 1, self.num_cues] - self.num_factors = len(self.num_states) - self.num_modalities = len(self.num_obs) - - self._transition_dist = self._construct_transition_dist() - self._likelihood_dist = self._construct_likelihood_dist() - - self._reward_condition = None - self._state = None - - def reset(self, state=None): - if state is None: - loc_state = utils.onehot(0, self.num_locations) - - self._reward_condition = np.random.randint(self.num_reward_conditions) # randomly select a reward condition - reward_condition = utils.onehot(self._reward_condition, self.num_reward_conditions) - - full_state = utils.obj_array(self.num_factors) - full_state[LOCATION_FACTOR_ID] = loc_state - full_state[TRIAL_FACTOR_ID] = reward_condition - self._state = full_state - else: - self._state = state - return self._get_observation() - - def step(self, actions): - prob_states = utils.obj_array(self.num_factors) - for factor, state in enumerate(self._state): - prob_states[factor] = self._transition_dist[factor][:, :, int(actions[factor])].dot(state) - state = [utils.sample(ps_i) for ps_i in prob_states] - self._state = self._construct_state(state) - return self._get_observation() - - def render(self): - pass - - def sample_action(self): - return [np.random.randint(self.num_controls[i]) for i in range(self.num_factors)] - - def get_likelihood_dist(self): - return self._likelihood_dist - - def get_transition_dist(self): - return self._transition_dist - - - def get_rand_likelihood_dist(self): - pass - - def get_rand_transition_dist(self): - pass - - def _get_observation(self): - - prob_obs = [maths.spm_dot(A_m, self._state) for A_m in self._likelihood_dist] - - obs = [utils.sample(po_i) for po_i in prob_obs] - return obs - - def _construct_transition_dist(self): - B_locs = np.eye(self.num_locations) - B_locs = B_locs.reshape(self.num_locations, self.num_locations, 1) - B_locs = np.tile(B_locs, (1, 1, self.num_locations)) - B_locs = B_locs.transpose(1, 2, 0) - - B = utils.obj_array(self.num_factors) - - B[LOCATION_FACTOR_ID] = B_locs - B[TRIAL_FACTOR_ID] = np.eye(self.num_reward_conditions).reshape( - self.num_reward_conditions, self.num_reward_conditions, 1 - ) - return B - - def _construct_likelihood_dist(self): - - A = utils.obj_array_zeros([ [obs_dim] + self.num_states for obs_dim in self.num_obs] ) - - for loc in range(self.num_states[LOCATION_FACTOR_ID]): - for reward_condition in range(self.num_states[TRIAL_FACTOR_ID]): - - # The case when the agent is in the centre location +import os +import math +import jax.numpy as jnp + +import io +import matplotlib.pyplot as plt +import matplotlib.patches as patches +from matplotlib.offsetbox import OffsetImage, AnnotationBbox +import scipy.ndimage as ndimage +from pymdp.utils import fig2img + +from equinox import field + +from .env import Env + +# load assets +assets_dir = os.path.join(os.path.dirname(os.path.realpath(__file__)), "assets") +mouse_img = plt.imread(os.path.join(assets_dir, "mouse.png")) +right_mouse_img = jnp.clip(ndimage.rotate(mouse_img, 90, reshape=True), 0.0, 1.0) +left_mouse_img = jnp.clip(ndimage.rotate(mouse_img, -90, reshape=True), 0.0, 1.0) +up_mouse_img = jnp.clip(ndimage.rotate(mouse_img, 180, reshape=True), 0.0, 1.0) +cheese_img = plt.imread(os.path.join(assets_dir, "cheese.png")) +shock_img = plt.imread(os.path.join(assets_dir, "shock.png")) + + +class TMaze(Env): + """ + Implementation of the 3-arm T-Maze environment. + """ + + reward_probability: float = field(static=True) + + def __init__(self, batch_size=1, reward_probability=0.98, reward_condition=None): + self.reward_probability = reward_probability + + A, A_dependencies = self.generate_A() + A = [jnp.broadcast_to(a, (batch_size,) + a.shape) for a in A] + B, B_dependencies = self.generate_B() + B = [jnp.broadcast_to(b, (batch_size,) + b.shape) for b in B] + D = self.generate_D(reward_condition) + D = [jnp.broadcast_to(d, (batch_size,) + d.shape) for d in D] + + params = { + "A": A, + "B": B, + "D": D, + } + + dependencies = { + "A": A_dependencies, + "B": B_dependencies, + } + + super().__init__(params, dependencies) + + def generate_A(self): + """ + T-maze has 3 observation modalities: + location: [center, left, right, cue], + reward [no reward, reward, punishment] + and cue [no clue, left arm, right arm], + and 2 state factors: agent location [center, left, right, cue] and reward location [left, right] + """ + A = [] + A.append(jnp.eye(4)) + A.append(jnp.zeros([3, 4, 2])) + A.append(jnp.zeros([3, 4, 2])) + + A_dependencies = [[0], [0, 1], [0, 1]] + + # 4 locations : [center, left, right, cue] + for loc in range(4): + # 2 reward conditions: [left, right] + for reward_condition in range(2): + # start location if loc == 0: # When in the centre location, reward observation is always 'no reward' # or the outcome with index 0 - A[REWARD_MODALITY_ID][0, loc, reward_condition] = 1.0 + A[1] = A[1].at[0, loc, reward_condition].set(1.0) - # When in the centre location, cue is totally ambiguous with respect to the reward condition - A[CUE_MODALITY_ID][:, loc, reward_condition] = 1.0 / self.num_obs[2] + # When in the centre location, cue is absent + A[2] = A[2].at[0, loc, reward_condition].set(1.0) # The case when loc == 3, or the cue location ('bottom arm') elif loc == 3: # When in the cue location, reward observation is always 'no reward' # or the outcome with index 0 - A[REWARD_MODALITY_ID][0, loc, reward_condition] = 1.0 + A[1] = A[1].at[0, loc, reward_condition].set(1.0) # When in the cue location, the cue indicates the reward condition umambiguously # signals where the reward is located - A[CUE_MODALITY_ID][reward_condition, loc, reward_condition] = 1.0 + A[2] = A[2].at[reward_condition + 1, loc, reward_condition].set(1.0) - # The case when the agent is in one of the (potentially-) rewarding armS + # The case when the agent is in one of the (potentially) rewarding arms else: # When location is consistent with reward condition if loc == (reward_condition + 1): # Means highest probability is concentrated over reward outcome - high_prob_idx = REWARD_IDX + high_prob_idx = 1 # Lower probability on loss outcome - low_prob_idx = LOSS_IDX + low_prob_idx = 2 else: # Means highest probability is concentrated over loss outcome - high_prob_idx = LOSS_IDX + high_prob_idx = 2 # Lower probability on reward outcome - low_prob_idx = REWARD_IDX - - reward_probs = self.reward_probs[0] - A[REWARD_MODALITY_ID][high_prob_idx, loc, reward_condition] = reward_probs - - reward_probs = self.reward_probs[1] - A[REWARD_MODALITY_ID][low_prob_idx, loc, reward_condition] = reward_probs - - # Cue is ambiguous when in the reward location - A[CUE_MODALITY_ID][:, loc, reward_condition] = 1.0 / self.num_obs[2] - - # The agent always observes its location, regardless of the reward condition - A[LOCATION_MODALITY_ID][loc, loc, reward_condition] = 1.0 - - return A - - def _construct_state(self, state_tuple): - - state = utils.obj_array(self.num_factors) - for f, ns in enumerate(self.num_states): - state[f] = utils.onehot(state_tuple[f], ns) - - return state - - @property - def state(self): - return self._state - - @property - def reward_condition(self): - return self._reward_condition - - -class TMazeEnvNullOutcome(Env): - """ Implementation of the 3-arm T-Maze environment where there is an additional null outcome within the cue modality, so that the agent - doesn't get a random cue observation, but a null one, when it visits non-cue locations""" - - def __init__(self, reward_probs=None): - - if reward_probs is None: - a = 0.98 - b = 1.0 - a - self.reward_probs = [a, b] + low_prob_idx = 1 + + A[1] = A[1].at[high_prob_idx, loc, reward_condition].set(self.reward_probability) + A[1] = A[1].at[low_prob_idx, loc, reward_condition].set(1 - self.reward_probability) + + # Cue is absent here + A[2] = A[2].at[0, loc, reward_condition].set(1.0) + + return A, A_dependencies + + def generate_B(self): + """ + T-maze has 2 state factors: + agent location [center, left, right, cue] and reward location [left, right] + agent can move between locations by teleporting, reward location stays fixed + """ + B = [] + + # agent can teleport to any location + B_loc = jnp.eye(4) + B_loc = B_loc.reshape(4, 4, 1) + B_loc = jnp.tile(B_loc, (1, 1, 4)) + B_loc = B_loc.transpose(1, 2, 0) + B.append(B_loc) + + # reward condition stays fixed + B_reward = jnp.eye(2).reshape(2, 2, 1) + B.append(B_reward) + + B_dependencies = [[0], [1]] + + return B, B_dependencies + + def generate_D(self, reward_condition=None): + """ + Agent starts at center + Reward condition can be set or randomly sampled + """ + D = [] + D_loc = jnp.zeros([4]) + D_loc = D_loc.at[0].set(1.0) + D.append(D_loc) + + if reward_condition is None: + D_reward = jnp.ones(2) * 0.5 else: - if sum(reward_probs) != 1: - raise ValueError("Reward probabilities must sum to 1!") - elif len(reward_probs) != 2: - raise ValueError("Only two reward conditions currently supported...") + D_reward = jnp.zeros(2) + D_reward = D_reward.at[reward_condition].set(1.0) + D.append(D_reward) + return D + + def render(self, mode="human"): + batch_size = self.params["A"][0].shape[0] + + # Create n x n subplots for the batch_size + n = math.ceil(math.sqrt(batch_size)) + + # Create the subplots + fig, axes = plt.subplots(n, n, figsize=(6, 6)) + + # Loop through the batch_size and plot on each subplot + for i in range(batch_size): + row = i // n + col = i % n + if batch_size == 1: + ax = axes else: - self.reward_probs = reward_probs - - self.num_states = [4, 2] - self.num_locations = self.num_states[LOCATION_FACTOR_ID] - self.num_controls = [self.num_locations, 1] - self.num_reward_conditions = self.num_states[TRIAL_FACTOR_ID] - self.num_cues = self.num_reward_conditions - self.num_obs = [self.num_locations, self.num_reward_conditions + 1, self.num_cues + 1] - self.num_factors = len(self.num_states) - self.num_modalities = len(self.num_obs) - - self._transition_dist = self._construct_transition_dist() - self._likelihood_dist = self._construct_likelihood_dist() - - self._reward_condition = None - self._state = None - - def reset(self, state=None): - if state is None: - loc_state = utils.onehot(0, self.num_locations) - - self._reward_condition = np.random.randint(self.num_reward_conditions) # randomly select a reward condition - reward_condition = utils.onehot(self._reward_condition, self.num_reward_conditions) - - full_state = utils.obj_array(self.num_factors) - full_state[LOCATION_FACTOR_ID] = loc_state - full_state[TRIAL_FACTOR_ID] = reward_condition - self._state = full_state - else: - self._state = state - return self._get_observation() - - def step(self, actions): - prob_states = utils.obj_array(self.num_factors) - for factor, state in enumerate(self._state): - prob_states[factor] = self._transition_dist[factor][:, :, int(actions[factor])].dot(state) - state = [utils.sample(ps_i) for ps_i in prob_states] - self._state = self._construct_state(state) - return self._get_observation() - - - def sample_action(self): - return [np.random.randint(self.num_controls[i]) for i in range(self.num_factors)] - - def get_likelihood_dist(self): - return self._likelihood_dist.copy() - - def get_transition_dist(self): - return self._transition_dist.copy() - - def _get_observation(self): - - prob_obs = [maths.spm_dot(A_m, self._state) for A_m in self._likelihood_dist] - - obs = [utils.sample(po_i) for po_i in prob_obs] - return obs - - def _construct_transition_dist(self): - B_locs = np.eye(self.num_locations) - B_locs = B_locs.reshape(self.num_locations, self.num_locations, 1) - B_locs = np.tile(B_locs, (1, 1, self.num_locations)) - B_locs = B_locs.transpose(1, 2, 0) - - B = utils.obj_array(self.num_factors) - - B[LOCATION_FACTOR_ID] = B_locs - B[TRIAL_FACTOR_ID] = np.eye(self.num_reward_conditions).reshape( - self.num_reward_conditions, self.num_reward_conditions, 1 - ) - return B - - def _construct_likelihood_dist(self): - - A = utils.obj_array_zeros([ [obs_dim] + self.num_states for _, obs_dim in enumerate(self.num_obs)] ) - - for loc in range(self.num_states[LOCATION_FACTOR_ID]): - for reward_condition in range(self.num_states[TRIAL_FACTOR_ID]): - - if loc == 0: # the case when the agent is in the centre location - # When in the centre location, reward observation is always 'no reward', or the outcome with index 0 - A[REWARD_MODALITY_ID][0, loc, reward_condition] = 1.0 - - # When in the center location, cue observation is always 'no cue', or the outcome with index 0 - A[CUE_MODALITY_ID][0, loc, reward_condition] = 1.0 - - # The case when loc == 3, or the cue location ('bottom arm') - elif loc == 3: - - # When in the cue location, reward observation is always 'no reward', or the outcome with index 0 - A[REWARD_MODALITY_ID][0, loc, reward_condition] = 1.0 - - # When in the cue location, the cue indicates the reward condition umambiguously - # signals where the reward is located - A[CUE_MODALITY_ID][reward_condition + 1, loc, reward_condition] = 1.0 - - # The case when the agent is in one of the (potentially-) rewarding arms - else: - - # When location is consistent with reward condition - if loc == (reward_condition + 1): - # Means highest probability is concentrated over reward outcome - high_prob_idx = REWARD_IDX - # Lower probability on loss outcome - low_prob_idx = LOSS_IDX # - else: - # Means highest probability is concentrated over loss outcome - high_prob_idx = LOSS_IDX - # Lower probability on reward outcome - low_prob_idx = REWARD_IDX - - reward_probs = self.reward_probs[0] - A[REWARD_MODALITY_ID][high_prob_idx, loc, reward_condition] = reward_probs - reward_probs = self.reward_probs[1] - A[REWARD_MODALITY_ID][low_prob_idx, loc, reward_condition] = reward_probs - - # When in the one of the rewarding arms, cue observation is always 'no cue', or the outcome with index 0 - A[CUE_MODALITY_ID][0, loc, reward_condition] = 1.0 - - # The agent always observes its location, regardless of the reward condition - A[LOCATION_MODALITY_ID][loc, loc, reward_condition] = 1.0 - - return A - - def _construct_state(self, state_tuple): - - state = utils.obj_array(self.num_factors) - - for f, ns in enumerate(self.num_states): - state[f] = utils.onehot(state_tuple[f], ns) - - return state - - @property - def state(self): - return self._state - - @property - def reward_condition(self): - return self._reward_condition + ax = axes[row, col] + + grid_dims = [3, 3] + X, Y = jnp.meshgrid(jnp.arange(grid_dims[1] + 1), jnp.arange(grid_dims[0] + 1)) + h = ax.pcolormesh( + X, Y, jnp.ones(grid_dims), edgecolors="none", vmin=0, vmax=30, linewidth=5, cmap="coolwarm", snap=True + ) + ax.invert_yaxis() + ax.axis("off") + ax.set_aspect("equal") + + edge_left = ax.add_patch( + patches.Rectangle( + (0, 1), + 1.0, + 2.0, + linewidth=0, + facecolor=[1.0, 1.0, 1.0], + ) + ) + + edge_right = ax.add_patch( + patches.Rectangle( + (2, 1), + 1.0, + 2.0, + linewidth=0, + facecolor=[1.0, 1.0, 1.0], + ) + ) + + arm_left = ax.add_patch( + patches.Rectangle( + (0, 0), + 1.0, + 1.0, + linewidth=0, + facecolor="tab:orange", + ) + ) + + arm_right = ax.add_patch( + patches.Rectangle( + (2, 0), + 1.0, + 1.0, + linewidth=0, + facecolor="tab:purple", + ) + ) + + # show the cue + cue = self.current_obs[2][i, 0] + if cue == 0: + cue_color = "tab:gray" + elif cue == 1: + # left + cue_color = "tab:orange" + elif cue == 2: + # right + cue_color = "tab:purple" + + cue = ax.add_patch( + patches.Circle( + (1.5, 2.5), + 0.3, + linewidth=0, + facecolor=cue_color, + ) + ) + + # show the reward + loc = self.current_obs[0][i, 0] + + reward = self.current_obs[1][i, 0] + + if loc == 1: + coords = (0.5, 0.5) + elif loc == 2: + coords = (2.5, 0.5) + + if reward == 1: + # cheese + cheese_im = OffsetImage(cheese_img, zoom=0.025 / n) + ab_cheese = AnnotationBbox(cheese_im, coords, xycoords="data", frameon=False) + an_cheese = ax.add_artist(ab_cheese) + an_cheese.set_zorder(2) + + elif reward == 2: + # shock + shock_im = OffsetImage(shock_img, zoom=0.1 / n) + ab_shock = AnnotationBbox(shock_im, coords, xycoords="data", frameon=False) + ab_shock = ax.add_artist(ab_shock) + ab_shock.set_zorder(2) + + # show the mouse + if loc == 0: + # center + up_mouse_im = OffsetImage(up_mouse_img, zoom=0.04 / n) + ab_mouse = AnnotationBbox(up_mouse_im, (1.5, 1.5), xycoords="data", frameon=False) + ab_mouse = ax.add_artist(ab_mouse) + ab_mouse.set_zorder(3) + elif loc == 1: + # left + left_mouse_im = OffsetImage(left_mouse_img, zoom=0.04 / n) + ab_mouse = AnnotationBbox(left_mouse_im, (0.75, 0.5), xycoords="data", frameon=False) + ab_mouse = ax.add_artist(ab_mouse) + ab_mouse.set_zorder(3) + elif loc == 2: + # right + right_mouse_im = OffsetImage(right_mouse_img, zoom=0.04 / n) + ab_mouse = AnnotationBbox(right_mouse_im, (2.25, 0.5), xycoords="data", frameon=False) + ab_mouse = ax.add_artist(ab_mouse) + ab_mouse.set_zorder(3) + elif loc == 3: + # bottom + down_mouse_im = OffsetImage(mouse_img, zoom=0.04 / n) + ab_mouse = AnnotationBbox(down_mouse_im, (1.5, 2.25), xycoords="data", frameon=False) + ab_mouse = ax.add_artist(ab_mouse) + ab_mouse.set_zorder(3) + + # Hide any extra subplots if batch_size isn't a perfect square + for i in range(batch_size, n * n): + fig.delaxes(axes.flatten()[i]) + + plt.tight_layout() + + if mode == "human": + plt.show() + elif mode == "rgb_array": + return fig2img(fig) diff --git a/pymdp/inference.py b/pymdp/inference.py index 1b5296b5..d122757f 100644 --- a/pymdp/inference.py +++ b/pymdp/inference.py @@ -2,370 +2,141 @@ # -*- coding: utf-8 -*- # pylint: disable=no-member -import numpy as np +import jax.numpy as jnp +from pymdp.algos import run_factorized_fpi, run_mmp, run_vmp +from jax import tree_util as jtu, lax +from jax.experimental.sparse._base import JAXSparse +from jax.experimental import sparse +from jaxtyping import Array, ArrayLike -from pymdp import utils -from pymdp.maths import get_joint_likelihood_seq, get_joint_likelihood_seq_by_modality -from pymdp.algos import run_vanilla_fpi, run_vanilla_fpi_factorized, run_mmp, run_mmp_factorized, _run_mmp_testing +eps = jnp.finfo('float').eps -VANILLA = "VANILLA" -VMP = "VMP" -MMP = "MMP" -BP = "BP" -EP = "EP" -CV = "CV" - -def update_posterior_states_full( +def update_posterior_states( A, B, - prev_obs, - policies, - prev_actions=None, + obs, + past_actions, prior=None, - policy_sep_prior = True, - **kwargs, + qs_hist=None, + A_dependencies=None, + B_dependencies=None, + num_iter=16, + method="fpi", ): - """ - Update posterior over hidden states using marginal message passing - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - prev_obs: ``list`` - List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. - policies: ``list`` of 2D ``numpy.ndarray`` - List that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - prior: ``numpy.ndarray`` of dtype object, default ``None`` - If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - policy_sep_prior: ``Bool``, default ``True`` - Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. - **kwargs: keyword arguments - Optional keyword arguments for the function ``algos.mmp.run_mmp`` - - Returns - --------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - F: 1D ``numpy.ndarray`` - Vector of variational free energies for each policy - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - - prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) - - lh_seq = get_joint_likelihood_seq(A, prev_obs, num_states) - - if prev_actions is not None: - prev_actions = np.stack(prev_actions,0) - - qs_seq_pi = utils.obj_array(len(policies)) - F = np.zeros(len(policies)) # variational free energy of policies - - for p_idx, policy in enumerate(policies): - # get sequence and the free energy for policy - qs_seq_pi[p_idx], F[p_idx] = run_mmp( - lh_seq, + if method == "fpi" or method == "ovf": + # format obs to select only last observation + curr_obs = jtu.tree_map(lambda x: x[-1], obs) + qs = run_factorized_fpi(A, curr_obs, prior, A_dependencies, num_iter=num_iter) + else: + # format B matrices using action sequences here + # TODO: past_actions can be None + if past_actions is not None: + nf = len(B) + actions_tree = [past_actions[:, i] for i in range(nf)] + + # move time steps to the leading axis (leftmost) + # this assumes that a policy is always specified as the rightmost axis of Bs + B = jtu.tree_map( + lambda b, a_idx: jnp.moveaxis(b[..., a_idx], -1, 0), B, - policy, - prev_actions=prev_actions, - prior= prior[p_idx] if policy_sep_prior else prior, - **kwargs + actions_tree, ) + else: + B = None - return qs_seq_pi, F - -def update_posterior_states_full_factorized( - A, - mb_dict, - B, - B_factor_list, - prev_obs, - policies, - prev_actions=None, - prior=None, - policy_sep_prior = True, - **kwargs, -): - """ - Update posterior over hidden states using marginal message passing - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - mb_dict: ``Dict`` - Dictionary with two keys (``A_factor_list`` and ``A_modality_list``), that stores the factor indices that influence each modality (``A_factor_list``) - and the modality indices influenced by each factor (``A_modality_list``). - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - B_factor_list: ``list`` of ``list`` of ``int`` - List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. - prev_obs: ``list`` - List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. - policies: ``list`` of 2D ``numpy.ndarray`` - List that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - prior: ``numpy.ndarray`` of dtype object, default ``None`` - If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - policy_sep_prior: ``Bool``, default ``True`` - Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. - **kwargs: keyword arguments - Optional keyword arguments for the function ``algos.mmp.run_mmp`` - - Returns - --------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - F: 1D ``numpy.ndarray`` - Vector of variational free energies for each policy - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - - prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) - - lh_seq = get_joint_likelihood_seq_by_modality(A, prev_obs, num_states) - - if prev_actions is not None: - prev_actions = np.stack(prev_actions,0) - - qs_seq_pi = utils.obj_array(len(policies)) - F = np.zeros(len(policies)) # variational free energy of policies - - for p_idx, policy in enumerate(policies): - - # get sequence and the free energy for policy - qs_seq_pi[p_idx], F[p_idx] = run_mmp_factorized( - lh_seq, - mb_dict, + # outputs of both VMP and MMP should be a list of hidden state factors, where each qs[f].shape = (T, batch_dim, num_states_f) + if method == "vmp": + qs = run_vmp( + A, B, - B_factor_list, - policy, - prev_actions=prev_actions, - prior= prior[p_idx] if policy_sep_prior else prior, - **kwargs + obs, + prior, + A_dependencies, + B_dependencies, + num_iter=num_iter, ) - - return qs_seq_pi, F - -def _update_posterior_states_full_test( - A, - B, - prev_obs, - policies, - prev_actions=None, - prior=None, - policy_sep_prior = True, - **kwargs, -): - """ - Update posterior over hidden states using marginal message passing (TEST VERSION, with extra returns for benchmarking). - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - prev_obs: list - List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. - prior: ``numpy.ndarray`` of dtype object, default None - If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. - If ``None``, this defaults to a flat (uninformative) prior over hidden states. - policy_sep_prior: Bool, default True - Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. - **kwargs: keyword arguments - Optional keyword arguments for the function ``algos.mmp.run_mmp`` - - Returns - -------- - qs_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, - where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. - F: 1D ``numpy.ndarray`` - Vector of variational free energies for each policy - xn_seq_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy, for each iteration of marginal message passing. - Nesting structure is policy, iteration, factor, so ``xn_seq_p[p][itr][f]`` stores the ``num_states x infer_len`` - array of beliefs about hidden states at different time points of inference horizon. - vn_seq_pi: `numpy.ndarray`` of dtype object - Prediction errors over hidden states for each policy, for each iteration of marginal message passing. - Nesting structure is policy, iteration, factor, so ``vn_seq_p[p][itr][f]`` stores the ``num_states x infer_len`` - array of beliefs about hidden states at different time points of inference horizon. - """ - - num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) - - prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) - - lh_seq = get_joint_likelihood_seq(A, prev_obs, num_states) - - if prev_actions is not None: - prev_actions = np.stack(prev_actions,0) - - qs_seq_pi = utils.obj_array(len(policies)) - xn_seq_pi = utils.obj_array(len(policies)) - vn_seq_pi = utils.obj_array(len(policies)) - F = np.zeros(len(policies)) # variational free energy of policies - - for p_idx, policy in enumerate(policies): - - # get sequence and the free energy for policy - qs_seq_pi[p_idx], F[p_idx], xn_seq_pi[p_idx], vn_seq_pi[p_idx] = _run_mmp_testing( - lh_seq, + if method == "mmp": + qs = run_mmp( + A, B, - policy, - prev_actions=prev_actions, - prior=prior[p_idx] if policy_sep_prior else prior, - **kwargs + obs, + prior, + A_dependencies, + B_dependencies, + num_iter=num_iter, ) - return qs_seq_pi, F, xn_seq_pi, vn_seq_pi - -def average_states_over_policies(qs_pi, q_pi): - """ - This function computes a expected posterior over hidden states with respect to the posterior over policies, - also known as the 'Bayesian model average of states with respect to policies'. - - Parameters - ---------- - qs_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states for each policy. Nesting structure is policies, factors, - where e.g. ``qs_pi[p][f]`` stores the marginal belief about factor ``f`` under policy ``p``. - q_pi: ``numpy.ndarray`` of dtype object - Posterior beliefs about policies where ``len(q_pi) = num_policies`` - - Returns - --------- - qs_bma: ``numpy.ndarray`` of dtype object - Marginal posterior over hidden states for the current timepoint, - averaged across policies according to their posterior probability given by ``q_pi`` - """ - - num_factors = len(qs_pi[0]) # get the number of hidden state factors using the shape of the first-policy-conditioned posterior - num_states = [qs_f.shape[0] for qs_f in qs_pi[0]] # get the dimensionalities of each hidden state factor - - qs_bma = utils.obj_array(num_factors) - for f in range(num_factors): - qs_bma[f] = np.zeros(num_states[f]) - - for p_idx, policy_weight in enumerate(q_pi): - - for f in range(num_factors): - - qs_bma[f] += qs_pi[p_idx][f] * policy_weight - - return qs_bma - -def update_posterior_states(A, obs, prior=None, **kwargs): - """ - Update marginal posterior over hidden states using mean-field fixed point iteration - FPI or Fixed point iteration. - - See the following links for details: - http://www.cs.cmu.edu/~guestrin/Class/10708/recitations/r9/VI-view.pdf, slides 13- 18, and http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.221&rep=rep1&type=pdf, slides 24 - 38. - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, int or tuple - The observation (generated by the environment). If single modality, this can be a 1D ``np.ndarray`` - (one-hot vector representation) or an ``int`` (observation index) - If multi-modality, this can be ``np.ndarray`` of dtype object whose entries are 1D one-hot vectors, - or a tuple (of ``int``) - prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None - Prior beliefs about hidden states, to be integrated with the marginal likelihood to obtain - a posterior distribution. If not provided, prior is set to be equal to a flat categorical distribution (at the level of - the individual inference functions). - **kwargs: keyword arguments - List of keyword/parameter arguments corresponding to parameter values for the fixed-point iteration - algorithm ``algos.fpi.run_vanilla_fpi.py`` - - Returns - ---------- - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint - """ - - num_obs, num_states, num_modalities, _ = utils.get_model_dimensions(A = A) - - obs = utils.process_observation(obs, num_modalities, num_obs) - - if prior is not None: - prior = utils.to_obj_array(prior) - - return run_vanilla_fpi(A, obs, num_obs, num_states, prior, **kwargs) - -def update_posterior_states_factorized(A, obs, num_obs, num_states, mb_dict, prior=None, **kwargs): - """ - Update marginal posterior over hidden states using mean-field fixed point iteration - FPI or Fixed point iteration. This version identifies the Markov blanket of each factor using `A_factor_list` + if qs_hist is not None: + if method == "fpi" or method == "ovf": + qs_hist = jtu.tree_map( + lambda x, y: jnp.concatenate([x, jnp.expand_dims(y, 0)], 0), + qs_hist, + qs, + ) + else: + # TODO: return entire history of beliefs + qs_hist = qs + else: + if method == "fpi" or method == "ovf": + qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), qs) + else: + qs_hist = qs + + return qs_hist + +def joint_dist_factor(b: ArrayLike, filtered_qs: list[Array], actions: Array): + qs_last = filtered_qs[-1] + qs_filter = filtered_qs[:-1] + + def step_fn(qs_smooth, xs): + qs_f, action = xs + time_b = b[..., action] + qs_j = time_b * qs_f + norm = qs_j.sum(-1, keepdims=True) + if isinstance(norm, JAXSparse): + norm = sparse.todense(norm) + norm = jnp.where(norm == 0, eps, norm) + qs_backward_cond = qs_j / norm + qs_joint = qs_backward_cond * jnp.expand_dims(qs_smooth, -1) + qs_smooth = qs_joint.sum(-2) + if isinstance(qs_smooth, JAXSparse): + qs_smooth = sparse.todense(qs_smooth) + + # returns q(s_t), (q(s_t), q(s_t, s_t+1)) + return qs_smooth, (qs_smooth, qs_joint) + + # seq_qs will contain a sequence of smoothed marginals and joints + _, seq_qs = lax.scan( + step_fn, + qs_last, + (qs_filter, actions), + reverse=True, + unroll=2 + ) + + # we add the last filtered belief to smoothed beliefs + + qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) + qs_joint_all = seq_qs[1] + if isinstance(qs_joint_all, JAXSparse): + qs_joint_all.shape = (len(actions),) + qs_joint_all.shape + return qs_smooth_all, qs_joint_all + + +def smoothing_ovf(filtered_post, B, past_actions): + assert len(filtered_post) == len(B) + nf = len(B) # number of factors + + joint = lambda b, qs, f: joint_dist_factor(b, qs, past_actions[..., f]) + + marginals_and_joints = ([], []) + for b, qs, f in zip(B, filtered_post, list(range(nf))): + marginals, joints = joint(b, qs, f) + marginals_and_joints[0].append(marginals) + marginals_and_joints[1].append(joints) + + return marginals_and_joints - See the following links for details: - http://www.cs.cmu.edu/~guestrin/Class/10708/recitations/r9/VI-view.pdf, slides 13- 18, and http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.221&rep=rep1&type=pdf, slides 24 - 38. - - Parameters - ---------- - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, int or tuple - The observation (generated by the environment). If single modality, this can be a 1D ``np.ndarray`` - (one-hot vector representation) or an ``int`` (observation index) - If multi-modality, this can be ``np.ndarray`` of dtype object whose entries are 1D one-hot vectors, - or a tuple (of ``int``) - num_obs: ``list`` of ``int`` - List of dimensionalities of each observation modality - num_states: ``list`` of ``int`` - List of dimensionalities of each hidden state factor - mb_dict: ``Dict`` - Dictionary with two keys (``A_factor_list`` and ``A_modality_list``), that stores the factor indices that influence each modality (``A_factor_list``) - and the modality indices influenced by each factor (``A_modality_list``). - prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None - Prior beliefs about hidden states, to be integrated with the marginal likelihood to obtain - a posterior distribution. If not provided, prior is set to be equal to a flat categorical distribution (at the level of - the individual inference functions). - **kwargs: keyword arguments - List of keyword/parameter arguments corresponding to parameter values for the fixed-point iteration - algorithm ``algos.fpi.run_vanilla_fpi.py`` - Returns - ---------- - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint - """ - num_modalities = len(num_obs) - - obs = utils.process_observation(obs, num_modalities, num_obs) - - if prior is not None: - prior = utils.to_obj_array(prior) - - return run_vanilla_fpi_factorized(A, obs, num_obs, num_states, mb_dict, prior, **kwargs) diff --git a/pymdp/jax/__init__.py b/pymdp/jax/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/pymdp/jax/agent.py b/pymdp/jax/agent.py deleted file mode 100644 index 9ab23a05..00000000 --- a/pymdp/jax/agent.py +++ /dev/null @@ -1,495 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" Agent Class implementation in Jax - -__author__: Conor Heins, Dimitrije Markovic, Alexander Tschantz, Daphne Demekas, Brennan Klein - -""" - -import math as pymath -import jax.numpy as jnp -import jax.tree_util as jtu -from jax import nn, vmap, random -from . import inference, control, learning, utils, maths -from equinox import Module, field, tree_at - -from typing import List, Optional -from jaxtyping import Array -from functools import partial - -class Agent(Module): - """ - The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. - - The basic usage is as follows: - - >>> my_agent = Agent(A = A, B = C, ) - >>> observation = env.step(initial_action) - >>> qs = my_agent.infer_states(observation) - >>> q_pi, G = my_agent.infer_policies() - >>> next_action = my_agent.sample_action() - >>> next_observation = env.step(next_action) - - This represents one timestep of an active inference process. Wrapping this step in a loop with an ``Env()`` class that returns - observations and takes actions as inputs, would entail a dynamic agent-environment interaction. - """ - - A: List[Array] - B: List[Array] - C: List[Array] - D: List[Array] - E: Array - # empirical_prior: List - gamma: Array - alpha: Array - qs: Optional[List[Array]] - q_pi: Optional[List[Array]] - - # parameters used for inductive inference - inductive_threshold: Array # threshold for inductive inference (the threshold for pruning transitions that are below a certain probability) - inductive_epsilon: Array # epsilon for inductive inference (trade-off/weight for how much inductive value contributes to EFE of policies) - - H: List[Array] # H vectors (one per hidden state factor) used for inductive inference -- these encode goal states or constraints - I: List[Array] # I matrices (one per hidden state factor) used for inductive inference -- these encode the 'reachability' matrices of goal states encoded in `self.H` - - pA: List[Array] - pB: List[Array] - - policies: Array # matrix of all possible policies (each row is a policy of shape (num_controls[0], num_controls[1], ..., num_controls[num_control_factors-1]) - - # static parameters not leaves of the PyTree - A_dependencies: Optional[List[int]] = field(static=True) - B_dependencies: Optional[List[int]] = field(static=True) - batch_size: int = field(static=True) - num_iter: int = field(static=True) - num_obs: List[int] = field(static=True) - num_modalities: int = field(static=True) - num_states: List[int] = field(static=True) - num_factors: int = field(static=True) - num_controls: List[int] = field(static=True) - control_fac_idx: Optional[List[int]] = field(static=True) - policy_len: int = field(static=True) # depth of planning during roll-outs (i.e. number of timesteps to look ahead when computing expected free energy of policies) - inductive_depth: int = field(static=True) # depth of inductive inference (i.e. number of future timesteps to use when computing inductive `I` matrix) - use_utility: bool = field(static=True) # flag for whether to use expected utility ("reward" or "preference satisfaction") when computing expected free energy - use_states_info_gain: bool = field(static=True) # flag for whether to use state information gain ("salience") when computing expected free energy - use_param_info_gain: bool = field(static=True) # flag for whether to use parameter information gain ("novelty") when computing expected free energy - use_inductive: bool = field(static=True) # flag for whether to use inductive inference ("intentional inference") when computing expected free energy - onehot_obs: bool = field(static=True) - action_selection: str = field(static=True) # determinstic or stochastic action selection - sampling_mode : str = field(static=True) # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") - inference_algo: str = field(static=True) # fpi, vmp, mmp, ovf - - learn_A: bool = field(static=True) - learn_B: bool = field(static=True) - learn_C: bool = field(static=True) - learn_D: bool = field(static=True) - learn_E: bool = field(static=True) - - def __init__( - self, - A, - B, - C, - D, - E, - pA, - pB, - A_dependencies=None, - B_dependencies=None, - qs=None, - q_pi=None, - H=None, - I=None, - policy_len=1, - control_fac_idx=None, - policies=None, - gamma=1.0, - alpha=1.0, - inductive_depth=1, - inductive_threshold=0.1, - inductive_epsilon=1e-3, - use_utility=True, - use_states_info_gain=True, - use_param_info_gain=False, - use_inductive=False, - onehot_obs=False, - action_selection="deterministic", - sampling_mode="full", - inference_algo="fpi", - num_iter=16, - learn_A=True, - learn_B=True, - learn_C=False, - learn_D=True, - learn_E=False - ): - ### PyTree leaves - self.A = A - self.B = B - self.C = C - self.D = D - # self.empirical_prior = D - self.H = H - self.pA = pA - self.pB = pB - self.qs = qs - self.q_pi = q_pi - - self.onehot_obs = onehot_obs - - element_size = lambda x: x.shape[1] - self.num_factors = len(self.B) - self.num_states = jtu.tree_map(element_size, self.B) - - self.num_modalities = len(self.A) - self.num_obs = jtu.tree_map(element_size, self.A) - - # Ensure consistency of A_dependencies with num_states and num_factors - if A_dependencies is not None: - self.A_dependencies = A_dependencies - else: - # assume full dependence of A matrices and state factors - self.A_dependencies = [list(range(self.num_factors)) for _ in range(self.num_modalities)] - - for m in range(self.num_modalities): - factor_dims = tuple([self.num_states[f] for f in self.A_dependencies[m]]) - assert self.A[m].shape[2:] == factor_dims, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of A[{m}]..." - if self.pA != None: - assert self.pA[m].shape[2:] == factor_dims if self.pA[m] is not None else True, f"Please input an `A_dependencies` whose {m}-th indices correspond to the hidden state factors that line up with lagging dimensions of pA[{m}]..." - assert max(self.A_dependencies[m]) <= (self.num_factors - 1), f"Check modality {m} of `A_dependencies` - must be consistent with `num_states` and `num_factors`..." - - # Ensure consistency of B_dependencies with num_states and num_factors - if B_dependencies is not None: - self.B_dependencies = B_dependencies - else: - self.B_dependencies = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves - - for f in range(self.num_factors): - factor_dims = tuple([self.num_states[f] for f in self.B_dependencies[f]]) - assert self.B[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B[{f}]..." - if self.pB != None: - assert self.pB[f].shape[2:-1] == factor_dims, f"Please input a `B_dependencies` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB[{f}]..." - assert max(self.B_dependencies[f]) <= (self.num_factors - 1), f"Check factor {f} of `B_dependencies` - must be consistent with `num_states` and `num_factors`..." - - self.batch_size = self.A[0].shape[0] - - self.gamma = jnp.broadcast_to(gamma, (self.batch_size,)) - self.alpha = jnp.broadcast_to(alpha, (self.batch_size,)) - self.inductive_threshold = jnp.broadcast_to(inductive_threshold, (self.batch_size,)) - self.inductive_epsilon = jnp.broadcast_to(inductive_epsilon, (self.batch_size,)) - - ### Static parameters ### - self.num_iter = num_iter - self.inference_algo = inference_algo - self.inductive_depth = inductive_depth - - # policy parameters - self.policy_len = policy_len - self.action_selection = action_selection - self.sampling_mode = sampling_mode - self.use_utility = use_utility - self.use_states_info_gain = use_states_info_gain - self.use_param_info_gain = use_param_info_gain - self.use_inductive = use_inductive - - if self.use_inductive and self.H is not None: - # print("Using inductive inference...") - self.I = self._construct_I() - elif self.use_inductive and I is not None: - self.I = I - else: - self.I = jtu.tree_map(lambda x: jnp.expand_dims(jnp.zeros_like(x), 1), self.D) - - # learning parameters - self.learn_A = learn_A - self.learn_B = learn_B - self.learn_C = learn_C - self.learn_D = learn_D - self.learn_E = learn_E - - """ Determine number of observation modalities and their respective dimensions """ - self.num_obs = [self.A[m].shape[1] for m in range(len(self.A))] - self.num_modalities = len(self.num_obs) - - # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices - self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] - - # Users have the option to make only certain factors controllable. - # default behaviour is to make all hidden state factors controllable - # (i.e. self.num_states == self.num_controls) - # Users have the option to make only certain factors controllable. - # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` - if control_fac_idx == None: - self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] - else: - assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." - self.control_fac_idx = control_fac_idx - - for factor_idx in self.control_fac_idx: - assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" - - if policies is not None: - self.policies = policies - else: - self._construct_policies() - - # set E to uniform/uninformative prior over policies if not given - if E is None: - self.E = jnp.ones((self.batch_size, len(self.policies)))/ len(self.policies) - else: - self.E = E - - def _construct_policies(self): - - self.policies = control.construct_policies( - self.num_states, self.num_controls, self.policy_len, self.control_fac_idx - ) - - @vmap - def _construct_I(self): - return control.generate_I_matrix(self.H, self.B, self.inductive_threshold, self.inductive_depth) - - @property - def unique_multiactions(self): - size = pymath.prod(self.num_controls) - return jnp.unique(self.policies[:, 0], axis=0, size=size, fill_value=-1) - - def infer_parameters(self, beliefs_A, outcomes, actions, beliefs_B=None, lr_pA=1., lr_pB=1., **kwargs): - agent = self - beliefs_B = beliefs_A if beliefs_B is None else beliefs_B - if self.inference_algo == 'ovf': - smoothed_marginals_and_joints = vmap(inference.smoothing_ovf)(beliefs_A, self.B, actions) - marginal_beliefs = smoothed_marginals_and_joints[0] - joint_beliefs = smoothed_marginals_and_joints[1] - else: - marginal_beliefs = beliefs_A - if self.learn_B: - nf = len(beliefs_B) - joint_fn = lambda f: [beliefs_B[f][:, 1:]] + [beliefs_B[f_idx][:, :-1] for f_idx in self.B_dependencies[f]] - joint_beliefs = jtu.tree_map(joint_fn, list(range(nf))) - - if self.learn_A: - update_A = partial( - learning.update_obs_likelihood_dirichlet, - A_dependencies=self.A_dependencies, - num_obs=self.num_obs, - onehot_obs=self.onehot_obs, - ) - - lr = jnp.broadcast_to(lr_pA, (self.batch_size,)) - qA, E_qA = vmap(update_A)( - self.pA, - self.A, - outcomes, - marginal_beliefs, - lr=lr, - ) - - agent = tree_at(lambda x: (x.A, x.pA), agent, (E_qA, qA)) - - if self.learn_B: - assert beliefs_B[0].shape[1] == actions.shape[1] + 1 - update_B = partial( - learning.update_state_transition_dirichlet, - num_controls=self.num_controls - ) - - lr = jnp.broadcast_to(lr_pB, (self.batch_size,)) - qB, E_qB = vmap(update_B)( - self.pB, - joint_beliefs, - actions, - lr=lr - ) - - # if you have updated your beliefs about transitions, you need to re-compute the I matrix used for inductive inferenece - if self.use_inductive and self.H is not None: - I_updated = vmap(control.generate_I_matrix)(self.H, E_qB, self.inductive_threshold, self.inductive_depth) - else: - I_updated = self.I - - agent = tree_at(lambda x: (x.B, x.pB, x.I), agent, (E_qB, qB, I_updated)) - - return agent - - def infer_states(self, observations, empirical_prior, *, past_actions=None, qs_hist=None, mask=None): - """ - Update approximate posterior over hidden states by solving variational inference problem, given an observation. - - Parameters - ---------- - observations: ``list`` or ``tuple`` of ints - The observation input. Each entry ``observation[m]`` stores one-hot vectors representing the observations for modality ``m``. - past_actions: ``list`` or ``tuple`` of ints - The action input. Each entry ``past_actions[f]`` stores indices (or one-hots?) representing the actions for control factor ``f``. - empirical_prior: ``list`` or ``tuple`` of ``jax.numpy.ndarray`` of dtype object - Empirical prior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``empirical_prior`` variable may be a matrix (or list of matrices) - of additional dimensions to encode extra conditioning variables like timepoint and policy. - Returns - --------- - qs: ``numpy.ndarray`` of dtype object - Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether - beliefs are additionally conditioned on timepoint and policy. - For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that - ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` - at timepoint ``t_idx``. - """ - if not self.onehot_obs: - o_vec = [nn.one_hot(o, self.num_obs[m]) for m, o in enumerate(observations)] - else: - o_vec = observations - - A = self.A - if mask is not None: - for i, m in enumerate(mask): - o_vec[i] = m * o_vec[i] + (1 - m) * jnp.ones_like(o_vec[i]) / self.num_obs[i] - A[i] = m * A[i] + (1 - m) * jnp.ones_like(A[i]) / self.num_obs[i] - - infer_states = partial( - inference.update_posterior_states, - A_dependencies=self.A_dependencies, - B_dependencies=self.B_dependencies, - num_iter=self.num_iter, - method=self.inference_algo - ) - - output = vmap(infer_states)( - A, - self.B, - o_vec, - past_actions, - prior=empirical_prior, - qs_hist=qs_hist - ) - - return output - - def update_empirical_prior(self, action, qs): - # return empirical_prior, and the history of posterior beliefs (filtering distributions) held about hidden states at times 1, 2 ... t - - # this computation of the predictive prior is correct only for fully factorised Bs. - if self.inference_algo in ['mmp', 'vmp']: - # in the case of the 'mmp' or 'vmp' we have to use D as prior parameter for infer states - pred = self.D - else: - qs_last = jtu.tree_map( lambda x: x[:, -1], qs) - propagate_beliefs = partial(control.compute_expected_state, B_dependencies=self.B_dependencies) - pred = vmap(propagate_beliefs)(qs_last, self.B, action) - - return (pred, qs) - - def infer_policies(self, qs: List): - """ - Perform policy inference by optimizing a posterior (categorical) distribution over policies. - This distribution is computed as the softmax of ``G * gamma + lnE`` where ``G`` is the negative expected - free energy of policies, ``gamma`` is a policy precision and ``lnE`` is the (log) prior probability of policies. - This function returns the posterior over policies as well as the negative expected free energy of each policy. - - Returns - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - G: 1D ``numpy.ndarray`` - Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. - """ - - latest_belief = jtu.tree_map(lambda x: x[:, -1], qs) # only get the posterior belief held at the current timepoint - infer_policies = partial( - control.update_posterior_policies_inductive, - self.policies, - A_dependencies=self.A_dependencies, - B_dependencies=self.B_dependencies, - use_utility=self.use_utility, - use_states_info_gain=self.use_states_info_gain, - use_param_info_gain=self.use_param_info_gain, - use_inductive=self.use_inductive - ) - - q_pi, G = vmap(infer_policies)( - latest_belief, - self.A, - self.B, - self.C, - self.E, - self.pA, - self.pB, - I = self.I, - gamma=self.gamma, - inductive_epsilon=self.inductive_epsilon - ) - - return q_pi, G - - def multiaction_probabilities(self, q_pi: Array): - """ - Compute probabilities of unique multi-actions from the posterior over policies. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - - Returns - ---------- - multi-action: 1D ``jax.numpy.ndarray`` - Vector containing probabilities of possible multi-actions for different factors - """ - - if self.sampling_mode == "marginal": - get_marginals = partial(control.get_marginals, policies=self.policies, num_controls=self.num_controls) - marginals = get_marginals(q_pi) - outer = lambda a, b: jnp.outer(a, b).reshape(-1) - marginals = jtu.tree_reduce(outer, marginals) - - elif self.sampling_mode == "full": - locs = jnp.all( - self.policies[:, 0] == jnp.expand_dims(self.unique_multiactions, -2), - -1 - ) - get_marginals = lambda x: jnp.where(locs, x, 0.).sum(-1) - marginals = vmap(get_marginals)(q_pi) - - return marginals - - def sample_action(self, q_pi: Array, rng_key=None): - """ - Sample or select a discrete action from the posterior over control states. - - Returns - ---------- - action: 1D ``jax.numpy.ndarray`` - Vector containing the indices of the actions for each control factor - action_probs: 2D ``jax.numpy.ndarray`` - Array of action probabilities - """ - - if (rng_key is None) and (self.action_selection == "stochastic"): - raise ValueError("Please provide a random number generator key to sample actions stochastically") - - if self.sampling_mode == "marginal": - sample_action = partial(control.sample_action, self.policies, self.num_controls, action_selection=self.action_selection) - action = vmap(sample_action)(q_pi, alpha=self.alpha, rng_key=rng_key) - elif self.sampling_mode == "full": - sample_policy = partial(control.sample_policy, self.policies, action_selection=self.action_selection) - action = vmap(sample_policy)(q_pi, alpha=self.alpha, rng_key=rng_key) - - return action - - def _get_default_params(self): - method = self.inference_algo - default_params = None - if method == "VANILLA": - default_params = {"num_iter": 8, "dF": 1.0, "dF_tol": 0.001} - elif method == "MMP": - raise NotImplementedError("MMP is not implemented") - elif method == "VMP": - raise NotImplementedError("VMP is not implemented") - elif method == "BP": - raise NotImplementedError("BP is not implemented") - elif method == "EP": - raise NotImplementedError("EP is not implemented") - elif method == "CV": - raise NotImplementedError("CV is not implemented") - - return default_params \ No newline at end of file diff --git a/pymdp/jax/control.py b/pymdp/jax/control.py deleted file mode 100644 index 3f42ca9f..00000000 --- a/pymdp/jax/control.py +++ /dev/null @@ -1,476 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# pylint: disable=no-member -# pylint: disable=not-an-iterable - -import itertools -import jax.numpy as jnp -import jax.tree_util as jtu -from typing import List, Tuple, Optional -from functools import partial -from jax.scipy.special import xlogy -from jax import lax, jit, vmap, nn -from jax import random as jr -from itertools import chain -from jaxtyping import Array - -from pymdp.jax.maths import * -# import pymdp.jax.utils as utils - -def get_marginals(q_pi, policies, num_controls): - """ - Computes the marginal posterior(s) over actions by integrating their posterior probability under the policies that they appear within. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - - Returns - ---------- - action_marginals: ``list`` of ``jax.numpy.ndarrays`` - List of arrays corresponding to marginal probability of each action possible action - """ - num_factors = len(num_controls) - - action_marginals = [] - for factor_i in range(num_factors): - actions = jnp.arange(num_controls[factor_i])[:, None] - action_marginals.append(jnp.where(actions==policies[:, 0, factor_i], q_pi, 0).sum(-1)) - - return action_marginals - -def sample_action(policies, num_controls, q_pi, action_selection="deterministic", alpha=16.0, rng_key=None): - """ - Samples an action from posterior marginals, one action per control factor. - - Parameters - ---------- - q_pi: 1D ``numpy.ndarray`` - Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - num_controls: ``list`` of ``int`` - ``list`` of the dimensionalities of each control state factor. - action_selection: string, default "deterministic" - String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, - or whether it's sampled from the posterior marginal over actions - alpha: float, default 16.0 - Action selection precision -- the inverse temperature of the softmax that is used to scale the - action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" - - Returns - ---------- - selected_policy: 1D ``numpy.ndarray`` - Vector containing the indices of the actions for each control factor - """ - - marginal = get_marginals(q_pi, policies, num_controls) - - if action_selection == 'deterministic': - selected_policy = jtu.tree_map(lambda x: jnp.argmax(x, -1), marginal) - elif action_selection == 'stochastic': - logits = lambda x: alpha * log_stable(x) - selected_policy = jtu.tree_map(lambda x: jr.categorical(rng_key, logits(x)), marginal) - else: - raise NotImplementedError - - return jnp.array(selected_policy) - -def sample_policy(policies, q_pi, action_selection="deterministic", alpha = 16.0, rng_key=None): - - if action_selection == "deterministic": - policy_idx = jnp.argmax(q_pi) - elif action_selection == "stochastic": - log_p_policies = log_stable(q_pi) * alpha - policy_idx = jr.categorical(rng_key, log_p_policies) - - selected_multiaction = policies[policy_idx, 0] - return selected_multiaction - -def construct_policies(num_states, num_controls = None, policy_len=1, control_fac_idx=None): - """ - Generate a ``list`` of policies. The returned array ``policies`` is a ``list`` that stores one policy per entry. - A particular policy (``policies[i]``) has shape ``(num_timesteps, num_factors)`` - where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. - - Parameters - ---------- - num_states: ``list`` of ``int`` - ``list`` of the dimensionalities of each hidden state factor - num_controls: ``list`` of ``int``, default ``None`` - ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable - policy_len: ``int``, default 1 - temporal depth ("planning horizon") of policies - control_fac_idx: ``list`` of ``int`` - ``list`` of indices of the hidden state factors that are controllable (i.e. those state factors ``i`` where ``num_controls[i] > 1``) - - Returns - ---------- - policies: ``list`` of 2D ``numpy.ndarray`` - ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` - is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal - depth of the policy and ``num_factors`` is the number of control factors. - """ - - num_factors = len(num_states) - if control_fac_idx is None: - if num_controls is not None: - control_fac_idx = [f for f, n_c in enumerate(num_controls) if n_c > 1] - else: - control_fac_idx = list(range(num_factors)) - - if num_controls is None: - num_controls = [num_states[c_idx] if c_idx in control_fac_idx else 1 for c_idx in range(num_factors)] - - x = num_controls * policy_len - policies = list(itertools.product(*[list(range(i)) for i in x])) - - for pol_i in range(len(policies)): - policies[pol_i] = jnp.array(policies[pol_i]).reshape(policy_len, num_factors) - - return jnp.stack(policies) - - -def update_posterior_policies(policy_matrix, qs_init, A, B, C, E, pA, pB, A_dependencies, B_dependencies, gamma=16.0, use_utility=True, use_states_info_gain=True, use_param_info_gain=False): - # policy --> n_levels_factor_f x 1 - # factor --> n_levels_factor_f x n_policies - ## vmap across policies - compute_G_fixed_states = partial(compute_G_policy, qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, - use_utility=use_utility, use_states_info_gain=use_states_info_gain, use_param_info_gain=use_param_info_gain) - - # only in the case of policy-dependent qs_inits - # in_axes_list = (1,) * n_factors - # all_efe_of_policies = vmap(compute_G_policy, in_axes=(in_axes_list, 0))(qs_init_pi, policy_matrix) - - # policies needs to be an NDarray of shape (n_policies, n_timepoints, n_control_factors) - neg_efe_all_policies = vmap(compute_G_fixed_states)(policy_matrix) - - return nn.softmax(gamma * neg_efe_all_policies + log_stable(E)), neg_efe_all_policies - -def compute_expected_state(qs_prior, B, u_t, B_dependencies=None): - """ - Compute posterior over next state, given belief about previous state, transition model and action... - """ - #Note: this algorithm is only correct if each factor depends only on itself. For any interactions, - # we will have empirical priors with codependent factors. - assert len(u_t) == len(B) - qs_next = [] - for B_f, u_f, deps in zip(B, u_t, B_dependencies): - relevant_factors = [qs_prior[idx] for idx in deps] - qs_next_f = factor_dot(B_f[...,u_f], relevant_factors, keep_dims=(0,)) - qs_next.append(qs_next_f) - - # P(s'|s, u) = \sum_{s, u} P(s'|s) P(s|u) P(u|pi)P(pi) because u pi - return qs_next - -def compute_expected_state_and_Bs(qs_prior, B, u_t): - """ - Compute posterior over next state, given belief about previous state, transition model and action... - """ - assert len(u_t) == len(B) - qs_next = [] - Bs = [] - for qs_f, B_f, u_f in zip(qs_prior, B, u_t): - qs_next.append( B_f[..., u_f].dot(qs_f) ) - Bs.append(B_f[..., u_f]) - - return qs_next, Bs - -def compute_expected_obs(qs, A, A_dependencies): - """ - New version of expected observation (computation of Q(o|pi)) that takes into account sparse dependencies between observation - modalities and hidden state factors - """ - - def compute_expected_obs_modality(A_m, m): - deps = A_dependencies[m] - relevant_factors = [qs[idx] for idx in deps] - return factor_dot(A_m, relevant_factors, keep_dims=(0,)) - - return jtu.tree_map(compute_expected_obs_modality, A, list(range(len(A)))) - -def compute_info_gain(qs, qo, A, A_dependencies): - """ - New version of expected information gain that takes into account sparse dependencies between observation modalities and hidden state factors. - """ - - def compute_info_gain_for_modality(qo_m, A_m, m): - H_qo = stable_entropy(qo_m) - H_A_m = - stable_xlogx(A_m).sum(0) - deps = A_dependencies[m] - relevant_factors = [qs[idx] for idx in deps] - qs_H_A_m = factor_dot(H_A_m, relevant_factors) - return H_qo - qs_H_A_m - - info_gains_per_modality = jtu.tree_map(compute_info_gain_for_modality, qo, A, list(range(len(A)))) - - return jtu.tree_reduce(lambda x,y: x+y, info_gains_per_modality) - -def compute_expected_utility(t, qo, C): - - util = 0. - for o_m, C_m in zip(qo, C): - if C_m.ndim > 1: - util += (o_m * C_m[t]).sum() - else: - util += (o_m * C_m).sum() - - return util - -def calc_pA_info_gain(pA, qo, qs, A_dependencies): - """ - Compute expected Dirichlet information gain about parameters ``pA`` for a given posterior predictive distribution over observations ``qo`` and states ``qs``. - - Parameters - ---------- - pA: ``numpy.ndarray`` of dtype object - Dirichlet parameters over observation model (same shape as ``A``) - qo: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over observations; stores the beliefs about - observations expected under the policy at some arbitrary time ``t`` - qs: ``list`` of ``numpy.ndarray`` of dtype object - Predictive posterior beliefs over hidden states, stores the beliefs about - hidden states expected under the policy at some arbitrary time ``t`` - - Returns - ------- - infogain_pA: float - Surprise (about Dirichlet parameters) expected for the pair of posterior predictive distributions ``qo`` and ``qs`` - """ - - def infogain_per_modality(pa_m, qo_m, m): - wa_m = spm_wnorm(pa_m) * (pa_m > 0.) - fd = factor_dot(wa_m, [s for f, s in enumerate(qs) if f in A_dependencies[m]], keep_dims=(0,))[..., None] - return qo_m.dot(fd) - - pA_infogain_per_modality = jtu.tree_map( - infogain_per_modality, pA, qo, list(range(len(qo))) - ) - - infogain_pA = jtu.tree_reduce(lambda x, y: x + y, pA_infogain_per_modality) - return infogain_pA.squeeze(-1) - -def calc_pB_info_gain(pB, qs_t, qs_t_minus_1, B_dependencies, u_t_minus_1): - """ - Compute expected Dirichlet information gain about parameters ``pB`` under a given policy - - Parameters - ---------- - pB: ``Array`` of dtype object - Dirichlet parameters over transition model (same shape as ``B``) - qs_t: ``list`` of ``Array`` of dtype object - Predictive posterior beliefs over hidden states expected under the policy at time ``t`` - qs_t_minus_1: ``list`` of ``Array`` of dtype object - Posterior over hidden states at time ``t-1`` (before receiving observations) - u_t_minus_1: "Array" - Actions in time step t-1 for each factor - - Returns - ------- - infogain_pB: float - Surprise (about Dirichlet parameters) expected under the policy in question - """ - - wB = lambda pb: spm_wnorm(pb) * (pb > 0.) - fd = lambda x, i: factor_dot(x, [s for f, s in enumerate(qs_t_minus_1) if f in B_dependencies[i]], keep_dims=(0,))[..., None] - - pB_infogain_per_factor = jtu.tree_map(lambda pb, qs, f: qs.dot(fd(wB(pb[..., u_t_minus_1[f]]), f)), pB, qs_t, list(range(len(qs_t)))) - infogain_pB = jtu.tree_reduce(lambda x, y: x + y, pB_infogain_per_factor)[0] - return infogain_pB - -def compute_G_policy(qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, policy_i, use_utility=True, use_states_info_gain=True, use_param_info_gain=False): - """ Write a version of compute_G_policy that does the same computations as `compute_G_policy` but using `lax.scan` instead of a for loop. """ - - def scan_body(carry, t): - - qs, neg_G = carry - - qs_next = compute_expected_state(qs, B, policy_i[t], B_dependencies) - - qo = compute_expected_obs(qs_next, A, A_dependencies) - - info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - - utility = compute_expected_utility(qo, C) if use_utility else 0. - - param_info_gain = calc_pA_info_gain(pA, qo, qs_next) if use_param_info_gain else 0. - param_info_gain += calc_pB_info_gain(pB, qs_next, qs, policy_i[t]) if use_param_info_gain else 0. - - neg_G += info_gain + utility + param_info_gain - - return (qs_next, neg_G), None - - qs = qs_init - neg_G = 0. - final_state, _ = lax.scan(scan_body, (qs, neg_G), jnp.arange(policy_i.shape[0])) - qs_final, neg_G = final_state - return neg_G - -def compute_G_policy_inductive(qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, I, policy_i, inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, use_inductive=False): - """ - Write a version of compute_G_policy that does the same computations as `compute_G_policy` but using `lax.scan` instead of a for loop. - This one further adds computations used for inductive planning. - """ - - def scan_body(carry, t): - - qs, neg_G = carry - - qs_next = compute_expected_state(qs, B, policy_i[t], B_dependencies) - - qo = compute_expected_obs(qs_next, A, A_dependencies) - - info_gain = compute_info_gain(qs_next, qo, A, A_dependencies) if use_states_info_gain else 0. - - utility = compute_expected_utility(t, qo, C) if use_utility else 0. - - inductive_value = calc_inductive_value_t(qs_init, qs_next, I, epsilon=inductive_epsilon) if use_inductive else 0. - - param_info_gain = 0. - if pA is not None: - param_info_gain += calc_pA_info_gain(pA, qo, qs_next, A_dependencies) if use_param_info_gain else 0. - if pB is not None: - param_info_gain += calc_pB_info_gain(pB, qs_next, qs, B_dependencies, policy_i[t]) if use_param_info_gain else 0. - - neg_G += info_gain + utility - param_info_gain + inductive_value - - return (qs_next, neg_G), None - - qs = qs_init - neg_G = 0. - final_state, _ = lax.scan(scan_body, (qs, neg_G), jnp.arange(policy_i.shape[0])) - _, neg_G = final_state - return neg_G - -def update_posterior_policies_inductive(policy_matrix, qs_init, A, B, C, E, pA, pB, A_dependencies, B_dependencies, I, gamma=16.0, inductive_epsilon=1e-3, use_utility=True, use_states_info_gain=True, use_param_info_gain=False, use_inductive=True): - # policy --> n_levels_factor_f x 1 - # factor --> n_levels_factor_f x n_policies - ## vmap across policies - compute_G_fixed_states = partial(compute_G_policy_inductive, qs_init, A, B, C, pA, pB, A_dependencies, B_dependencies, I, inductive_epsilon=inductive_epsilon, - use_utility=use_utility, use_states_info_gain=use_states_info_gain, use_param_info_gain=use_param_info_gain, use_inductive=use_inductive) - - # only in the case of policy-dependent qs_inits - # in_axes_list = (1,) * n_factors - # all_efe_of_policies = vmap(compute_G_policy, in_axes=(in_axes_list, 0))(qs_init_pi, policy_matrix) - - # policies needs to be an NDarray of shape (n_policies, n_timepoints, n_control_factors) - neg_efe_all_policies = vmap(compute_G_fixed_states)(policy_matrix) - - return nn.softmax(gamma * neg_efe_all_policies + log_stable(E)), neg_efe_all_policies - -def generate_I_matrix(H: List[Array], B: List[Array], threshold: float, depth: int): - """ - Generates the `I` matrices used in inductive planning. These matrices stores the probability of reaching the goal state backwards from state j (columns) after i (rows) steps. - Parameters - ---------- - H: ``list`` of ``jax.numpy.ndarray`` - Constraints over desired states (1 if you want to reach that state, 0 otherwise) - B: ``list`` of ``jax.numpy.ndarray`` - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - threshold: ``float`` - The threshold for pruning transitions that are below a certain probability - depth: ``int`` - The temporal depth of the backward induction - - Returns - ---------- - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - """ - - num_factors = len(H) - I = [] - for f in range(num_factors): - """ - For each factor, we need to compute the probability of reaching the goal state - """ - - # If there exists an action that allows transitioning - # from state to next_state, with probability larger than threshold - # set b_reachable[current_state, previous_state] to 1 - b_reachable = jnp.where(B[f] > threshold, 1.0, 0.0).sum(axis=-1) - b_reachable = jnp.where(b_reachable > 0., 1.0, 0.0) - - def step_fn(carry, i): - I_prev = carry - I_next = jnp.dot(b_reachable, I_prev) - I_next = jnp.where(I_next > 0.1, 1.0, 0.0) # clamp I_next to 1.0 if it's above 0.1, 0 otherwise - return I_next, I_next - - _, I_f = lax.scan(step_fn, H[f], jnp.arange(depth-1)) - I_f = jnp.concatenate([H[f][None,...], I_f], axis=0) - - I.append(I_f) - - return I - -def calc_inductive_value_t(qs, qs_next, I, epsilon=1e-3): - """ - Computes the inductive value of a state at a particular time (translation of @tverbele's `numpy` implementation of inductive planning, formerly - called `calc_inductive_cost`). - - Parameters - ---------- - qs: ``list`` of ``jax.numpy.ndarray`` - Marginal posterior beliefs over hidden states at a given timepoint. - qs_next: ```list`` of ``jax.numpy.ndarray`` - Predictive posterior beliefs over hidden states expected under the policy. - I: ``numpy.ndarray`` of dtype object - For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability - of reaching the goal state backwards from state j after i steps. - epsilon: ``float`` - Value that tunes the strength of the inductive value (how much it contributes to the expected free energy of policies) - - Returns - ------- - inductive_val: float - Value (negative inductive cost) of visiting this state using backwards induction under the policy in question - """ - - # initialise inductive value - inductive_val = 0. - - log_eps = log_stable(epsilon) - for f in range(len(qs)): - # we also assume precise beliefs here?! - idx = jnp.argmax(qs[f]) - # m = arg max_n p_n < sup p - - # i.e. find first entry at which I_idx equals 1, and then m is the index before that - m = jnp.maximum(jnp.argmax(I[f][:, idx])-1, 0) - I_m = (1. - I[f][m, :]) * log_eps - path_available = jnp.clip(I[f][:, idx].sum(0), min=0, max=1) # if there are any 1's at all in that column of I, then this == 1, otherwise 0 - inductive_val += path_available * I_m.dot(qs_next[f]) # scaling by path_available will nullify the addition of inductive value in the case we find no path to goal (i.e. when no goal specified) - - return inductive_val - -# if __name__ == '__main__': - -# from jax import random as jr -# key = jr.PRNGKey(1) -# num_obs = [3, 4] - -# A = [jr.uniform(key, shape = (no, 2, 2)) for no in num_obs] -# B = [jr.uniform(key, shape = (2, 2, 2)), jr.uniform(key, shape = (2, 2, 2))] -# C = [log_stable(jnp.array([0.8, 0.1, 0.1])), log_stable(jnp.ones(4)/4)] -# policy_1 = jnp.array([[0, 1], -# [1, 1]]) -# policy_2 = jnp.array([[1, 0], -# [0, 0]]) -# policy_matrix = jnp.stack([policy_1, policy_2]) # 2 x 2 x 2 tensor - -# qs_init = [jnp.ones(2)/2, jnp.ones(2)/2] -# neg_G_all_policies = jit(update_posterior_policies)(policy_matrix, qs_init, A, B, C) -# print(neg_G_all_policies) diff --git a/pymdp/jax/inference.py b/pymdp/jax/inference.py deleted file mode 100644 index 4edd48d5..00000000 --- a/pymdp/jax/inference.py +++ /dev/null @@ -1,118 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# pylint: disable=no-member - -import jax.numpy as jnp -from .algos import run_factorized_fpi, run_mmp, run_vmp -from jax import tree_util as jtu, lax -from jax.experimental.sparse._base import JAXSparse -from jax.experimental import sparse -from jaxtyping import Array, ArrayLike - -eps = jnp.finfo('float').eps - -def update_posterior_states( - A, - B, - obs, - past_actions, - prior=None, - qs_hist=None, - A_dependencies=None, - B_dependencies=None, - num_iter=16, - method='fpi' - ): - - if method == 'fpi' or method == "ovf": - # format obs to select only last observation - curr_obs = jtu.tree_map(lambda x: x[-1], obs) - qs = run_factorized_fpi(A, curr_obs, prior, A_dependencies, num_iter=num_iter) - else: - # format B matrices using action sequences here - # TODO: past_actions can be None - if past_actions is not None: - nf = len(B) - actions_tree = [past_actions[:, i] for i in range(nf)] - - # move time steps to the leading axis (leftmost) - # this assumes that a policy is always specified as the rightmost axis of Bs - B = jtu.tree_map(lambda b, a_idx: jnp.moveaxis(b[..., a_idx], -1, 0), B, actions_tree) - else: - B = None - - # outputs of both VMP and MMP should be a list of hidden state factors, where each qs[f].shape = (T, batch_dim, num_states_f) - if method == 'vmp': - qs = run_vmp(A, B, obs, prior, A_dependencies, B_dependencies, num_iter=num_iter) - if method == 'mmp': - qs = run_mmp(A, B, obs, prior, A_dependencies, B_dependencies, num_iter=num_iter) - - if qs_hist is not None: - if method == 'fpi' or method == "ovf": - qs_hist = jtu.tree_map(lambda x, y: jnp.concatenate([x, jnp.expand_dims(y, 0)], 0), qs_hist, qs) - else: - #TODO: return entire history of beliefs - qs_hist = qs - else: - if method == 'fpi' or method == "ovf": - qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), qs) - else: - qs_hist = qs - - return qs_hist - -def joint_dist_factor(b: ArrayLike, filtered_qs: list[Array], actions: Array): - qs_last = filtered_qs[-1] - qs_filter = filtered_qs[:-1] - - def step_fn(qs_smooth, xs): - qs_f, action = xs - time_b = b[..., action] - qs_j = time_b * qs_f - norm = qs_j.sum(-1, keepdims=True) - if isinstance(norm, JAXSparse): - norm = sparse.todense(norm) - norm = jnp.where(norm == 0, eps, norm) - qs_backward_cond = qs_j / norm - qs_joint = qs_backward_cond * jnp.expand_dims(qs_smooth, -1) - qs_smooth = qs_joint.sum(-2) - if isinstance(qs_smooth, JAXSparse): - qs_smooth = sparse.todense(qs_smooth) - - # returns q(s_t), (q(s_t), q(s_t, s_t+1)) - return qs_smooth, (qs_smooth, qs_joint) - - # seq_qs will contain a sequence of smoothed marginals and joints - _, seq_qs = lax.scan( - step_fn, - qs_last, - (qs_filter, actions), - reverse=True, - unroll=2 - ) - - # we add the last filtered belief to smoothed beliefs - - qs_smooth_all = jnp.concatenate([seq_qs[0], jnp.expand_dims(qs_last, 0)], 0) - qs_joint_all = seq_qs[1] - if isinstance(qs_joint_all, JAXSparse): - qs_joint_all.shape = (len(actions),) + qs_joint_all.shape - return qs_smooth_all, qs_joint_all - - -def smoothing_ovf(filtered_post, B, past_actions): - assert len(filtered_post) == len(B) - nf = len(B) # number of factors - - joint = lambda b, qs, f: joint_dist_factor(b, qs, past_actions[..., f]) - - marginals_and_joints = ([], []) - for b, qs, f in zip(B, filtered_post, list(range(nf))): - marginals, joints = joint(b, qs, f) - marginals_and_joints[0].append(marginals) - marginals_and_joints[1].append(joints) - - return marginals_and_joints - - - \ No newline at end of file diff --git a/pymdp/jax/learning.py b/pymdp/jax/learning.py deleted file mode 100644 index 499b94a3..00000000 --- a/pymdp/jax/learning.py +++ /dev/null @@ -1,339 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# pylint: disable=no-member - -from .maths import multidimensional_outer, dirichlet_expected_value -from jax.tree_util import tree_map -from jaxtyping import Array -from jax import vmap, nn - -def update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=1.0): - """ JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet_m`` """ - # pA_m - parameters of the dirichlet from the prior - # pA_m.shape = (no_m x num_states[k] x num_states[j] x ... x num_states[n]) where (k, j, n) are indices of the hidden state factors that are parents of modality m - - # \alpha^{*} = \alpha_{0} + \kappa * \sum_{t=t_begin}^{t=T} o_{m,t} \otimes \mathbf{s}_{f \in parents(m), t} - - # \alpha^{*} is the VFE-minimizing solution for the parameters of q(A) - # \alpha_{0} are the Dirichlet parameters of p(A) - # o_{m,t} = observation (one-hot vector) of modality m at time t - # \mathbf{s}_{f \in parents(m), t} = categorical parameters of marginal posteriors over hidden state factors that are parents of modality m, at time t - # \otimes is a multidimensional outer product, not just a outer product of two vectors - # \kappa is an optional learning rate - - relevant_factors = tree_map(lambda f_idx: qs[f_idx], dependencies_m) - - dfda = vmap(multidimensional_outer)([obs_m] + relevant_factors).sum(axis=0) - - new_pA_m = pA_m + lr * dfda - A_m = dirichlet_expected_value(new_pA_m) - - return new_pA_m, A_m - -def update_obs_likelihood_dirichlet(pA, A, obs, qs, *, A_dependencies, onehot_obs, num_obs, lr): - """ JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet`` """ - - obs_m = lambda o, dim: nn.one_hot(o, dim) if not onehot_obs else o - update_A_fn = lambda pA_m, o_m, dim, dependencies_m: update_obs_likelihood_dirichlet_m( - pA_m, obs_m(o_m, dim), qs, dependencies_m, lr=lr - ) - result = tree_map(update_A_fn, pA, obs, num_obs, A_dependencies) - qA = [] - E_qA = [] - for i, r in enumerate(result): - if r is None: - qA.append(r) - E_qA.append(A[i]) - else: - qA.append(r[0]) - E_qA.append(r[1]) - - return qA, E_qA - -def update_state_transition_dirichlet_f(pB_f, actions_f, joint_qs_f, lr=1.0): - """ JAX version of ``pymdp.learning.update_state_likelihood_dirichlet_f`` """ - # pB_f - parameters of the dirichlet from the prior - # pB_f.shape = (num_states[f] x num_states[f] x num_actions[f]) where f is the index of the hidden state factor - - # \alpha^{*} = \alpha_{0} + \kappa * \sum_{t=t_begin}^{t=T} \mathbf{s}_{f, t} \otimes \mathbf{s}_{f, t-1} \otimes \mathbf{a}_{f, t-1} - - # \alpha^{*} is the VFE-minimizing solution for the parameters of q(B) - # \alpha_{0} are the Dirichlet parameters of p(B) - # \mathbf{s}_{f, t} = categorical parameters of marginal posteriors over hidden state factor f, at time t - # \mathbf{a}_{f, t-1} = categorical parameters of marginal posteriors over control factor f, at time t-1 - # \otimes is a multidimensional outer product, not just a outer product of two vectors - # \kappa is an optional learning rate - - joint_qs_f = [joint_qs_f] if isinstance(joint_qs_f, Array) else joint_qs_f - dfdb = vmap(multidimensional_outer)(joint_qs_f + [actions_f]).sum(axis=0) - qB_f = pB_f + lr * dfdb - - return qB_f, dirichlet_expected_value(qB_f) - -def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr): - - nf = len(pB) - actions_onehot_fn = lambda f, dim: nn.one_hot(actions[..., f], dim, axis=-1) - update_B_f_fn = lambda pB_f, joint_qs_f, f, na: update_state_transition_dirichlet_f( - pB_f, actions_onehot_fn(f, na), joint_qs_f, lr=lr - ) - result = tree_map( - update_B_f_fn, pB, joint_beliefs, list(range(nf)), num_controls - ) - - qB = [] - E_qB = [] - for r in result: - qB.append(r[0]) - E_qB.append(r[1]) - - return qB, E_qB - -# def update_state_prior_dirichlet( -# pD, qs, lr=1.0, factors="all" -# ): -# """ -# Update Dirichlet parameters of the initial hidden state distribution -# (prior beliefs about hidden states at the beginning of the inference window). - -# Parameters -# ----------- -# pD: ``numpy.ndarray`` of dtype object -# Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) -# qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object -# Marginal posterior beliefs over hidden states at current timepoint -# lr: float, default ``1.0`` -# Learning rate, scale of the Dirichlet pseudo-count update. -# factors: ``list``, default "all" -# Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include -# in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` -# are all updated using the corresponding hidden state distributions. - -# Returns -# ----------- -# qD: ``numpy.ndarray`` of dtype object -# Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. -# """ - -# num_factors = len(pD) - -# qD = copy.deepcopy(pD) - -# if factors == "all": -# factors = list(range(num_factors)) - -# for factor in factors: -# idx = pD[factor] > 0 # only update those state level indices that have some prior probability -# qD[factor][idx] += (lr * qs[factor][idx]) - -# return qD - -# def _prune_prior(prior, levels_to_remove, dirichlet = False): -# """ -# Function for pruning a prior Categorical distribution (e.g. C, D) - -# Parameters -# ----------- -# prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object -# The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). -# levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` -# A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, -# then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality -# dirichlet: ``Bool``, default ``False`` -# A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. -# @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels - -# Returns -# ----------- -# reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object -# The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` -# """ - -# if utils.is_obj_array(prior): # in case of multiple hidden state factors - -# assert all([type(levels) == list for levels in levels_to_remove]) - -# num_factors = len(prior) - -# reduced_prior = utils.obj_array(num_factors) - -# factors_to_remove = [] -# for f, s_i in enumerate(prior): # loop over factors (or modalities) - -# ns = len(s_i) -# levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) -# if len(levels_to_keep) == 0: -# print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') -# factors_to_remove.append(f) -# else: -# if not dirichlet: -# reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) - - -# if len(factors_to_remove) > 0: -# factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) -# reduced_prior = reduced_prior[factors_to_keep] - -# else: # in case of one hidden state factor - -# assert all([type(level_i) == int for level_i in levels_to_remove]) - -# ns = len(prior) -# levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) - -# if not dirichlet: -# reduced_prior = utils.norm_dist(prior[levels_to_keep]) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) - -# return reduced_prior - -# def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): -# """ -# Function for pruning a observation likelihood model (with potentially multiple hidden state factors) -# :meta private: -# Parameters -# ----------- -# A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object -# Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of -# stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store -# the probability of observation level ``i`` given hidden state levels ``j, k, ...`` -# obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: -# A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, -# then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels -# to remove for a particular observation modality -# state_levels_to_prune: ``list`` of ``int`` -# A ``list`` of the hidden state levels to remove (this will be the same across modalities) -# dirichlet: ``Bool``, default ``False`` -# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. -# @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns - -# Returns -# ----------- -# reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object -# The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` -# """ - -# columns_to_keep_list = [] -# if utils.is_obj_array(A): -# num_states = A[0].shape[1:] -# for f, ns in enumerate(num_states): -# indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) -# columns_to_keep_list.append(indices_f) -# else: -# num_states = A.shape[1] -# indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) -# columns_to_keep_list.append(indices) - -# if utils.is_obj_array(A): # in case of multiple observation modality - -# assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) - -# num_modalities = len(A) - -# reduced_A = utils.obj_array(num_modalities) - -# for m, A_i in enumerate(A): # loop over modalities - -# no = A_i.shape[0] -# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) - -# reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] -# if not dirichlet: -# reduced_A = utils.norm_dist_obj_arr(reduced_A) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) -# else: # in case of one observation modality - -# assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) - -# no = A.shape[0] -# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) - -# reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] - -# if not dirichlet: -# reduced_A = utils.norm_dist(reduced_A) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - -# return reduced_A - -# def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): -# """ -# Function for pruning a transition likelihood model (with potentially multiple hidden state factors) - -# Parameters -# ----------- -# B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object -# Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. -# Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability -# of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. -# state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` -# A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, -# then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels -# to remove for a particular hidden state factor -# action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` -# A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, -# then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels -# to remove for a particular control state factor -# dirichlet: ``Bool``, default ``False`` -# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. -# @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns - -# Returns -# ----------- -# reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object -# The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` -# """ - -# slices_to_keep_list = [] - -# if utils.is_obj_array(B): - -# num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] - -# for c, nc in enumerate(num_controls): -# indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) -# slices_to_keep_list.append(indices_c) -# else: -# num_controls = B.shape[2] -# slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) - -# if utils.is_obj_array(B): # in case of multiple hidden state factors - -# assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) - -# num_factors = len(B) - -# reduced_B = utils.obj_array(num_factors) - -# for f, B_f in enumerate(B): # loop over modalities - -# ns = B_f.shape[0] -# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) - -# reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] - -# if not dirichlet: -# reduced_B = utils.norm_dist_obj_arr(reduced_B) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - -# else: # in case of one hidden state factor - -# assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) - -# ns = B.shape[0] -# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) - -# reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] - -# if not dirichlet: -# reduced_B = utils.norm_dist(reduced_B) -# else: -# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - -# return reduced_B \ No newline at end of file diff --git a/pymdp/jax/maths.py b/pymdp/jax/maths.py deleted file mode 100644 index dc41144b..00000000 --- a/pymdp/jax/maths.py +++ /dev/null @@ -1,157 +0,0 @@ -import jax.numpy as jnp - -from functools import partial -from typing import Optional, Tuple, List -from jax import tree_util, nn, jit, vmap, lax -from jax.scipy.special import xlogy -from opt_einsum import contract - -MINVAL = jnp.finfo(float).eps - -def stable_xlogx(x): - return xlogy(x, jnp.clip(x, MINVAL)) - -def stable_entropy(x): - return - stable_xlogx(x).sum() - -def stable_cross_entropy(x, y): - return - xlogy(x, y).sum() - -def log_stable(x): - return jnp.log(jnp.clip(x, min=MINVAL)) - -@partial(jit, static_argnames=['keep_dims']) -def factor_dot(M, xs, keep_dims: Optional[Tuple[int]] = None): - """ Dot product of a multidimensional array with `x`. - - Parameters - ---------- - - `qs` [list of 1D numpy.ndarray] - list of jnp.ndarrays - - Returns - ------- - - `Y` [1D numpy.ndarray] - the result of the dot product - """ - d = len(keep_dims) if keep_dims is not None else 0 - assert M.ndim == len(xs) + d - keep_dims = () if keep_dims is None else keep_dims - dims = tuple((i,) for i in range(M.ndim) if i not in keep_dims) - return factor_dot_flex(M, xs, dims, keep_dims=keep_dims) - -@partial(jit, static_argnames=['dims', 'keep_dims']) -def factor_dot_flex(M, xs, dims: List[Tuple[int]], keep_dims: Optional[Tuple[int]] = None): - """ Dot product of a multidimensional array with `x`. - - Parameters - ---------- - - `M` [numpy.ndarray] - tensor - - 'xs' [list of numpyr.ndarray] - list of tensors - - 'dims' [list of tuples] - list of dimensions of xs tensors in tensor M - - 'keep_dims' [tuple] - tuple of integers denoting dimesions to keep - Returns - ------- - - `Y` [1D numpy.ndarray] - the result of the dot product - """ - all_dims = tuple(range(M.ndim)) - matrix = [[xs[f], dims[f]] for f in range(len(xs))] - args = [M, all_dims] - for row in matrix: - args.extend(row) - - args += [keep_dims] - return contract(*args, backend='jax') - -def get_likelihood_single_modality(o_m, A_m, distr_obs=True): - """Return observation likelihood for a single observation modality m""" - if distr_obs: - expanded_obs = jnp.expand_dims(o_m, tuple(range(1, A_m.ndim))) - likelihood = (expanded_obs * A_m).sum(axis=0) - else: - likelihood = A_m[o_m] - - return likelihood - -def compute_log_likelihood_single_modality(o_m, A_m, distr_obs=True): - """Compute observation log-likelihood for a single modality""" - return log_stable(get_likelihood_single_modality(o_m, A_m, distr_obs=distr_obs)) - -def compute_log_likelihood(obs, A, distr_obs=True): - """ Compute likelihood over hidden states across observations from different modalities """ - result = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) - ll = jnp.sum(jnp.stack(result), 0) - - return ll - -def compute_log_likelihood_per_modality(obs, A, distr_obs=True): - """ Compute likelihood over hidden states across observations from different modalities, and return them per modality """ - ll_all = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) - - return ll_all - -def compute_accuracy(qs, obs, A): - """ Compute the accuracy portion of the variational free energy (expected log likelihood under the variational posterior) """ - - log_likelihood = compute_log_likelihood(obs, A) - - x = qs[0] - for q in qs[1:]: - x = jnp.expand_dims(x, -1) * q - - joint = log_likelihood * x - return joint.sum() - -def compute_free_energy(qs, prior, obs, A): - """ - Calculate variational free energy by breaking its computation down into three steps: - 1. computation of the negative entropy of the posterior -H[Q(s)] - 2. computation of the cross entropy of the posterior with the prior H_{Q(s)}[P(s)] - 3. computation of the accuracy E_{Q(s)}[lnP(o|s)] - - Then add them all together -- except subtract the accuracy - """ - - vfe = 0.0 # initialize variational free energy - for q, p in zip(qs, prior): - negH_qs = - stable_entropy(q) - xH_qp = stable_cross_entropy(q, p) - vfe += (negH_qs + xH_qp) - - vfe -= compute_accuracy(qs, obs, A) - - return vfe - -def multidimensional_outer(arrs): - """ Compute the outer product of a list of arrays by iteratively expanding the first array and multiplying it with the next array """ - - x = arrs[0] - for q in arrs[1:]: - x = jnp.expand_dims(x, -1) * q - - return x - -def spm_wnorm(A): - """ - Returns Expectation of logarithm of Dirichlet parameters over a set of - Categorical distributions, stored in the columns of A. - """ - norm = 1. / A.sum(axis=0) - avg = 1. / (A + MINVAL) - wA = norm - avg - return wA - -def dirichlet_expected_value(dir_arr): - """ - Returns Expectation of Dirichlet parameters over a set of - Categorical distributions, stored in the columns of A. - """ - dir_arr = jnp.clip(dir_arr, min=MINVAL) - expected_val = jnp.divide(dir_arr, dir_arr.sum(axis=0, keepdims=True)) - return expected_val - -if __name__ == '__main__': - obs = [0, 1, 2] - obs_vec = [ nn.one_hot(o, 3) for o in obs] - A = [jnp.ones((3, 2)) / 3] * 3 - res = jit(compute_log_likelihood)(obs_vec, A) - - print(res) \ No newline at end of file diff --git a/pymdp/jax/task.py b/pymdp/jax/task.py deleted file mode 100644 index 2cf9eb0f..00000000 --- a/pymdp/jax/task.py +++ /dev/null @@ -1,76 +0,0 @@ -# Task environmnet -from typing import Optional, List, Dict -from jaxtyping import Array, PRNGKeyArray -from functools import partial - -from equinox import Module, field, tree_at -from jax import vmap, random as jr, tree_util as jtu -import jax.numpy as jnp - -def select_probs(positions, matrix, dependency_list, actions=None): - args = tuple(p for i, p in enumerate(positions) if i in dependency_list) - args += () if actions is None else (actions,) - - return matrix[..., *args] - -def cat_sample(key, p): - a = jnp.arange(p.shape[-1]) - if p.ndim > 1: - choice = lambda key, p: jr.choice(key, a, p=p) - keys = jr.split(key, len(p)) - return vmap(choice)(keys, p) - - return jr.choice(key, a, p=p) - -class PyMDPEnv(Module): - params: Dict - states: List[List[Array]] - dependencies: Dict = field(static=True) - - def __init__( - self, params: Dict, dependencies: Dict, init_state: List[Array] = None - ): - self.params = params - self.dependencies = dependencies - - if init_state is None: - init_state = jtu.tree_map(lambda x: jnp.argmax(x, -1), self.params["D"]) - - self.states = [init_state] - - def reset(self, key: Optional[PRNGKeyArray] = None): - if key is None: - states = [self.states[0]] - else: - probs = self.params["D"] - keys = list(jr.split(key, len(probs))) - states = [jtu.tree_map(cat_sample, keys, probs)] - - return tree_at(lambda x: x.states, self, states) - - @vmap - def step(self, key: PRNGKeyArray, actions: Optional[Array] = None): - # return a list of random observations and states - key_state, key_obs = jr.split(key) - states = self.states - if actions is not None: - actions = list(actions) - _select_probs = partial(select_probs, states[-1]) - state_probs = jtu.tree_map( - _select_probs, self.params["B"], self.dependencies["B"], actions - ) - - keys = list(jr.split(key_state, len(state_probs))) - new_states = jtu.tree_map(cat_sample, keys, state_probs) - else: - new_states = states[-1] - - _select_probs = partial(select_probs, new_states) - obs_probs = jtu.tree_map( - _select_probs, self.params["A"], self.dependencies["A"] - ) - - keys = list(jr.split(key_obs, len(obs_probs))) - new_obs = jtu.tree_map(cat_sample, keys, obs_probs) - - return new_obs, tree_at(lambda x: (x.states), self, [new_states]) \ No newline at end of file diff --git a/pymdp/jax/utils.py b/pymdp/jax/utils.py deleted file mode 100644 index 12bbc461..00000000 --- a/pymdp/jax/utils.py +++ /dev/null @@ -1,596 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- - -""" Utility functions - -__author__: Conor Heins, Alexander Tschantz, Brennan Klein -""" - -import jax.numpy as jnp - -from typing import (Any, Callable, List, NamedTuple, Optional, Sequence, Union, Tuple) - -Tensor = Any # maybe jnp.ndarray, but typing seems not to be well defined for jax -Vector = List[Tensor] -Shape = Sequence[int] -ShapeList = list[Shape] - -def norm_dist(dist: Tensor) -> Tensor: - """ Normalizes a Categorical probability distribution""" - return dist/dist.sum(0) - -def list_array_uniform(shape_list: ShapeList) -> Vector: - """ - Creates a list of jax arrays representing uniform Categorical - distributions with shapes given by shape_list[i]. The shapes (elements of shape_list) - can either be tuples or lists. - """ - arr = [] - for shape in shape_list: - arr.append( norm_dist(jnp.ones(shape)) ) - return arr - -def list_array_zeros(shape_list: ShapeList) -> Vector: - """ - Creates a list of 1-D jax arrays filled with zeros, with shapes given by shape_list[i] - """ - arr = [] - for shape in shape_list: - arr.append( jnp.zeros(shape) ) - return arr - -def list_array_scaled(shape_list: ShapeList, scale: float=1.0) -> Vector: - """ - Creates a list of 1-D jax arrays filled with scale, with shapes given by shape_list[i] - """ - arr = [] - for shape in shape_list: - arr.append( scale * jnp.ones(shape) ) - - return arr - -# def onehot(value, num_values): -# arr = np.zeros(num_values) -# arr[value] = 1.0 -# return arr - -# def random_A_matrix(num_obs, num_states): -# if type(num_obs) is int: -# num_obs = [num_obs] -# if type(num_states) is int: -# num_states = [num_states] -# num_modalities = len(num_obs) - -# A = obj_array(num_modalities) -# for modality, modality_obs in enumerate(num_obs): -# modality_shape = [modality_obs] + num_states -# modality_dist = np.random.rand(*modality_shape) -# A[modality] = norm_dist(modality_dist) -# return A - -# def random_B_matrix(num_states, num_controls): -# if type(num_states) is int: -# num_states = [num_states] -# if type(num_controls) is int: -# num_controls = [num_controls] -# num_factors = len(num_states) -# assert len(num_controls) == len(num_states) - -# B = obj_array(num_factors) -# for factor in range(num_factors): -# factor_shape = (num_states[factor], num_states[factor], num_controls[factor]) -# factor_dist = np.random.rand(*factor_shape) -# B[factor] = norm_dist(factor_dist) -# return B - -# def random_single_categorical(shape_list): -# """ -# Creates a random 1-D categorical distribution (or set of 1-D categoricals, e.g. multiple marginals of different factors) and returns them in an object array -# """ - -# num_sub_arrays = len(shape_list) - -# out = obj_array(num_sub_arrays) - -# for arr_idx, shape_i in enumerate(shape_list): -# out[arr_idx] = norm_dist(np.random.rand(shape_i)) - -# return out - -# def construct_controllable_B(num_states, num_controls): -# """ -# Generates a fully controllable transition likelihood array, where each -# action (control state) corresponds to a move to the n-th state from any -# other state, for each control factor -# """ - -# num_factors = len(num_states) - -# B = obj_array(num_factors) -# for factor, c_dim in enumerate(num_controls): -# tmp = np.eye(c_dim)[:, :, np.newaxis] -# tmp = np.tile(tmp, (1, 1, c_dim)) -# B[factor] = tmp.transpose(1, 2, 0) - -# return B - -# def dirichlet_like(template_categorical, scale = 1.0): -# """ -# Helper function to construct a Dirichlet distribution based on an existing Categorical distribution -# """ - -# if not is_obj_array(template_categorical): -# warnings.warn( -# "Input array is not an object array...\ -# Casting the input to an object array" -# ) -# template_categorical = to_obj_array(template_categorical) - -# n_sub_arrays = len(template_categorical) - -# dirichlet_out = obj_array(n_sub_arrays) - -# for i, arr in enumerate(template_categorical): -# dirichlet_out[i] = scale * arr - -# return dirichlet_out - -# def get_model_dimensions(A=None, B=None): - -# if A is None and B is None: -# raise ValueError( -# "Must provide either `A` or `B`" -# ) - -# if A is not None: -# num_obs = [a.shape[0] for a in A] if is_obj_array(A) else [A.shape[0]] -# num_modalities = len(num_obs) -# else: -# num_obs, num_modalities = None, None - -# if B is not None: -# num_states = [b.shape[0] for b in B] if is_obj_array(B) else [B.shape[0]] -# num_factors = len(num_states) -# else: -# if A is not None: -# num_states = list(A[0].shape[1:]) if is_obj_array(A) else list(A.shape[1:]) -# num_factors = len(num_states) -# else: -# num_states, num_factors = None, None - -# return num_obs, num_states, num_modalities, num_factors - -# def get_model_dimensions_from_labels(model_labels): - -# modalities = model_labels['observations'] -# num_modalities = len(modalities.keys()) -# num_obs = [len(modalities[modality]) for modality in modalities.keys()] - -# factors = model_labels['states'] -# num_factors = len(factors.keys()) -# num_states = [len(factors[factor]) for factor in factors.keys()] - -# if 'actions' in model_labels.keys(): - -# controls = model_labels['actions'] -# num_control_fac = len(controls.keys()) -# num_controls = [len(controls[cfac]) for cfac in controls.keys()] - -# return num_obs, num_modalities, num_states, num_factors, num_controls, num_control_fac -# else: -# return num_obs, num_modalities, num_states, num_factors - - - - -# def norm_dist_obj_arr(obj_arr): - -# normed_obj_array = obj_array(len(obj_arr)) -# for i, arr in enumerate(obj_arr): -# normed_obj_array[i] = norm_dist(arr) - -# return normed_obj_array - -# def is_normalized(dist): -# """ -# Utility function for checking whether a single distribution or set of conditional categorical distributions is normalized. -# Returns True if all distributions integrate to 1.0 -# """ - -# if is_obj_array(dist): -# normed_arrays = [] -# for i, arr in enumerate(dist): -# column_sums = arr.sum(axis=0) -# normed_arrays.append(np.allclose(column_sums, np.ones_like(column_sums))) -# out = all(normed_arrays) -# else: -# column_sums = dist.sum(axis=0) -# out = np.allclose(column_sums, np.ones_like(column_sums)) - -# return out - -# def is_obj_array(arr): -# return arr.dtype == "object" - -# def to_obj_array(arr): -# if is_obj_array(arr): -# return arr -# obj_array_out = obj_array(1) -# obj_array_out[0] = arr.squeeze() -# return obj_array_out - -# def obj_array_from_list(list_input): -# """ -# Takes a list of `numpy.ndarray` and converts them to a `numpy.ndarray` of `dtype = object` -# """ -# return np.array(list_input, dtype = object) - -# def process_observation_seq(obs_seq, n_modalities, n_observations): -# """ -# Helper function for formatting observations - -# Observations can either be `int` (converted to one-hot) -# or `tuple` (obs for each modality), or `list` (obs for each modality) -# If list, the entries could be object arrays of one-hots, in which -# case this function returns `obs_seq` as is. -# """ -# proc_obs_seq = obj_array(len(obs_seq)) -# for t, obs_t in enumerate(obs_seq): -# proc_obs_seq[t] = process_observation(obs_t, n_modalities, n_observations) -# return proc_obs_seq - -# def process_observation(obs, num_modalities, num_observations): -# """ -# Helper function for formatting observations -# USAGE NOTES: -# - If `obs` is a 1D numpy array, it must be a one-hot vector, where one entry (the entry of the observation) is 1.0 -# and all other entries are 0. This therefore assumes it's a single modality observation. If these conditions are met, then -# this function will return `obs` unchanged. Otherwise, it'll throw an error. -# - If `obs` is an int, it assumes this is a single modality observation, whose observation index is given by the value of `obs`. This function will convert -# it to be a one hot vector. -# - If `obs` is a list, it assumes this is a multiple modality observation, whose len is equal to the number of observation modalities, -# and where each entry `obs[m]` is the index of the observation, for that modality. This function will convert it into an object array -# of one-hot vectors. -# - If `obs` is a tuple, same logic as applies for list (see above). -# - if `obs` is a numpy object array (array of arrays), this function will return `obs` unchanged. -# """ - -# if isinstance(obs, np.ndarray) and not is_obj_array(obs): -# assert num_modalities == 1, "If `obs` is a 1D numpy array, `num_modalities` must be equal to 1" -# assert len(np.where(obs)[0]) == 1, "If `obs` is a 1D numpy array, it must be a one hot vector (e.g. np.array([0.0, 1.0, 0.0, ....]))" - -# if isinstance(obs, (int, np.integer)): -# obs = onehot(obs, num_observations[0]) - -# if isinstance(obs, tuple) or isinstance(obs,list): -# obs_arr_arr = obj_array(num_modalities) -# for m in range(num_modalities): -# obs_arr_arr[m] = onehot(obs[m], num_observations[m]) -# obs = obs_arr_arr - -# return obs - -# def convert_observation_array(obs, num_obs): -# """ -# Converts from SPM-style observation array to infer-actively one-hot object arrays. - -# Parameters -# ---------- -# - 'obs' [numpy 2-D nd.array]: -# SPM-style observation arrays are of shape (num_modalities, T), where each row -# contains observation indices for a different modality, and columns indicate -# different timepoints. Entries store the indices of the discrete observations -# within each modality. - -# - 'num_obs' [list]: -# List of the dimensionalities of the observation modalities. `num_modalities` -# is calculated as `len(num_obs)` in the function to determine whether we're -# dealing with a single- or multi-modality -# case. - -# Returns -# ---------- -# - `obs_t`[list]: -# A list with length equal to T, where each entry of the list is either a) an object -# array (in the case of multiple modalities) where each sub-array is a one-hot vector -# with the observation for the correspond modality, or b) a 1D numpy array (in the case -# of one modality) that is a single one-hot vector encoding the observation for the -# single modality. -# """ - -# T = obs.shape[1] -# num_modalities = len(num_obs) - -# # Initialise the output -# obs_t = [] -# # Case of one modality -# if num_modalities == 1: -# for t in range(T): -# obs_t.append(onehot(obs[0, t] - 1, num_obs[0])) -# else: -# for t in range(T): -# obs_AoA = obj_array(num_modalities) -# for g in range(num_modalities): -# # Subtract obs[g,t] by 1 to account for MATLAB vs. Python indexing -# # (MATLAB is 1-indexed) -# obs_AoA[g] = onehot(obs[g, t] - 1, num_obs[g]) -# obs_t.append(obs_AoA) - -# return obs_t - -# def insert_multiple(s, indices, items): -# for idx in range(len(items)): -# s.insert(indices[idx], items[idx]) -# return s - -# def reduce_a_matrix(A): -# """ -# Utility function for throwing away dimensions (lagging dimensions, hidden state factors) -# of a particular A matrix that are independent of the observation. -# Parameters: -# ========== -# - `A` [np.ndarray]: -# The A matrix or likelihood array that encodes probabilistic relationship -# of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) -# and observations (leading dimension, rows). -# Returns: -# ========= -# - `A_reduced` [np.ndarray]: -# The reduced A matrix, missing the lagging dimensions that correspond to hidden state factors -# that are statistically independent of observations -# - `original_factor_idx` [list]: -# List of the indices (in terms of the original dimensionality) of the hidden state factors -# that are maintained in the A matrix (and thus have an informative / non-degenerate relationship to observations -# """ - -# o_dim, num_states = A.shape[0], A.shape[1:] -# idx_vec_s = [slice(0, o_dim)] + [slice(ns) for _, ns in enumerate(num_states)] - -# original_factor_idx = [] -# excluded_factor_idx = [] # the indices of the hidden state factors that are independent of the observation and thus marginalized away -# for factor_i, ns in enumerate(num_states): - -# level_counter = 0 -# break_flag = False -# while level_counter < ns and break_flag is False: -# idx_vec_i = idx_vec_s.copy() -# idx_vec_i[factor_i+1] = slice(level_counter,level_counter+1,None) -# if not np.isclose(A.mean(axis=factor_i+1), A[tuple(idx_vec_i)].squeeze()).all(): -# break_flag = True # this means they're not independent -# original_factor_idx.append(factor_i) -# else: -# level_counter += 1 - -# if break_flag is False: -# excluded_factor_idx.append(factor_i+1) - -# A_reduced = A.mean(axis=tuple(excluded_factor_idx)).squeeze() - -# return A_reduced, original_factor_idx - -# def construct_full_a(A_reduced, original_factor_idx, num_states): -# """ -# Utility function for reconstruction a full A matrix from a reduced A matrix, using known factor indices -# to tile out the reduced A matrix along the 'non-informative' dimensions -# Parameters: -# ========== -# - `A_reduced` [np.ndarray]: -# The reduced A matrix or likelihood array that encodes probabilistic relationship -# of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) -# and observations (leading dimension, rows). -# - `original_factor_idx` [list]: -# List of hidden state indices in terms of the full hidden state factor list, that comprise -# the lagging dimensions of `A_reduced` -# - `num_states` [list]: -# The list of all the dimensionalities of hidden state factors in the full generative model. -# `A_reduced.shape[1:]` should be equal to `num_states[original_factor_idx]` -# Returns: -# ========= -# - `A` [np.ndarray]: -# The full A matrix, containing all the lagging dimensions that correspond to hidden state factors, including -# those that are statistically independent of observations - -# @ NOTE: This is the "inverse" of the reduce_a_matrix function, -# i.e. `reduce_a_matrix(construct_full_a(A_reduced, original_factor_idx, num_states)) == A_reduced, original_factor_idx` -# """ - -# o_dim = A_reduced.shape[0] # dimensionality of the support of the likelihood distribution (i.e. the number of observation levels) -# full_dimensionality = [o_dim] + num_states # full dimensionality of the output (`A`) -# fill_indices = [0] + [f+1 for f in original_factor_idx] # these are the indices of the dimensions we need to fill for this modality -# fill_dimensions = np.delete(full_dimensionality, fill_indices) - -# original_factor_dims = [num_states[f] for f in original_factor_idx] # dimensionalities of the relevant factors -# prefilled_slices = [slice(0, o_dim)] + [slice(0, ns) for ns in original_factor_dims] # these are the slices that are filled out by the provided `A_reduced` - -# A = np.zeros(full_dimensionality) - -# for item in itertools.product(*[list(range(d)) for d in fill_dimensions]): -# slice_ = list(item) -# A_indices = insert_multiple(slice_, fill_indices, prefilled_slices) #here we insert the correct values for the fill indices for this slice -# A[tuple(A_indices)] = A_reduced - -# return A - -# def create_A_matrix_stub(model_labels): - -# num_obs, _, num_states, _= get_model_dimensions_from_labels(model_labels) - -# obs_labels, state_labels = model_labels['observations'], model_labels['states'] - -# state_combinations = pd.MultiIndex.from_product(list(state_labels.values()), names=list(state_labels.keys())) -# num_state_combos = np.prod(num_states) -# # num_rows = (np.array(num_obs) * num_state_combos).sum() -# num_rows = sum(num_obs) - -# cell_values = np.zeros((num_rows, len(state_combinations))) - -# obs_combinations = [] -# for modality in obs_labels.keys(): -# levels_to_combine = [[modality]] + [obs_labels[modality]] -# # obs_combinations += num_state_combos * list(itertools.product(*levels_to_combine)) -# obs_combinations += list(itertools.product(*levels_to_combine)) - - -# obs_combinations = pd.MultiIndex.from_tuples(obs_combinations, names = ["Modality", "Level"]) - -# A_matrix = pd.DataFrame(cell_values, index = obs_combinations, columns=state_combinations) - -# return A_matrix - -# def create_B_matrix_stubs(model_labels): - -# _, _, num_states, _, num_controls, _ = get_model_dimensions_from_labels(model_labels) - -# state_labels = model_labels['states'] -# action_labels = model_labels['actions'] - -# B_matrices = {} - -# for f_idx, factor in enumerate(state_labels.keys()): - -# control_fac_name = list(action_labels)[f_idx] -# factor_list = [state_labels[factor]] + [action_labels[control_fac_name]] - -# prev_state_action_combos = pd.MultiIndex.from_product(factor_list, names=[factor, list(action_labels.keys())[f_idx]]) - -# num_state_action_combos = num_states[f_idx] * num_controls[f_idx] - -# num_rows = num_states[f_idx] - -# cell_values = np.zeros((num_rows, num_state_action_combos)) - -# next_state_list = state_labels[factor] - -# B_matrix_f = pd.DataFrame(cell_values, index = next_state_list, columns=prev_state_action_combos) - -# B_matrices[factor] = B_matrix_f - -# return B_matrices - -# def read_A_matrix(path, num_hidden_state_factors): -# raw_table = pd.read_excel(path, header=None) -# level_counts = { -# "index": raw_table.iloc[0, :].dropna().index[0] + 1, -# "header": raw_table.iloc[0, :].dropna().index[0] + num_hidden_state_factors - 1, -# } -# return pd.read_excel( -# path, -# index_col=list(range(level_counts["index"])), -# header=list(range(level_counts["header"])) -# ).astype(np.float64) - -# def read_B_matrices(path): - -# all_sheets = pd.read_excel(path, sheet_name = None, header=None) - -# level_counts = {} -# for sheet_name, raw_table in all_sheets.items(): - -# level_counts[sheet_name] = { -# "index": raw_table.iloc[0, :].dropna().index[0]+1, -# "header": raw_table.iloc[0, :].dropna().index[0]+2, -# } - -# stub_dict = {} -# for sheet_name, level_counts_sheet in level_counts.items(): -# sheet_f = pd.read_excel( -# path, -# sheet_name = sheet_name, -# index_col=list(range(level_counts_sheet["index"])), -# header=list(range(level_counts_sheet["header"])) -# ).astype(np.float64) -# stub_dict[sheet_name] = sheet_f - -# return stub_dict - -# def convert_A_stub_to_ndarray(A_stub, model_labels): -# """ -# This function converts a multi-index pandas dataframe `A_stub` into an object array of different -# A matrices, one per observation modality. -# """ - -# num_obs, num_modalities, num_states, num_factors = get_model_dimensions_from_labels(model_labels) - -# A = obj_array(num_modalities) - -# for g, modality_name in enumerate(model_labels['observations'].keys()): -# A[g] = A_stub.loc[modality_name].to_numpy().reshape(num_obs[g], *num_states) -# assert (A[g].sum(axis=0) == 1.0).all(), 'A matrix not normalized! Check your initialization....\n' - -# return A - -# def convert_B_stubs_to_ndarray(B_stubs, model_labels): -# """ -# This function converts a list of multi-index pandas dataframes `B_stubs` into an object array -# of different B matrices, one per hidden state factor -# """ - -# _, _, num_states, num_factors, num_controls, num_control_fac = get_model_dimensions_from_labels(model_labels) - -# B = obj_array(num_factors) - -# for f, factor_name in enumerate(B_stubs.keys()): - -# B[f] = B_stubs[factor_name].to_numpy().reshape(num_states[f], num_states[f], num_controls[f]) -# assert (B[f].sum(axis=0) == 1.0).all(), 'B matrix not normalized! Check your initialization....\n' - -# return B - -# def build_belief_array(qx): - -# """ -# This function constructs array-ified (not nested) versions -# of the posterior belief arrays, that are separated -# by policy, timepoint, and hidden state factor -# """ - -# num_policies = len(qx) -# num_timesteps = len(qx[0]) -# num_factors = len(qx[0][0]) - -# if num_factors > 1: -# belief_array = utils.obj_array(num_factors) -# for factor in range(num_factors): -# belief_array[factor] = np.zeros( (num_policies, qx[0][0][factor].shape[0], num_timesteps) ) -# for policy_i in range(num_policies): -# for timestep in range(num_timesteps): -# for factor in range(num_factors): -# belief_array[factor][policy_i, :, timestep] = qx[policy_i][timestep][factor] -# else: -# num_states = qx[0][0][0].shape[0] -# belief_array = np.zeros( (num_policies, num_states, num_timesteps) ) -# for policy_i in range(num_policies): -# for timestep in range(num_timesteps): -# belief_array[policy_i, :, timestep] = qx[policy_i][timestep][0] - -# return belief_array - -# def build_xn_vn_array(xn): - -# """ -# This function constructs array-ified (not nested) versions -# of the posterior xn (beliefs) or vn (prediction error) arrays, that are separated -# by iteration, hidden state factor, timepoint, and policy -# """ - -# num_policies = len(xn) -# num_itr = len(xn[0]) -# num_factors = len(xn[0][0]) - -# if num_factors > 1: -# xn_array = utils.obj_array(num_factors) -# for factor in range(num_factors): -# num_states, infer_len = xn[0][0][f].shape -# xn_array[factor] = np.zeros( (num_itr, num_states, infer_len, num_policies) ) -# for policy_i in range(num_policies): -# for itr in range(num_itr): -# for factor in range(num_factors): -# xn_array[factor][itr,:,:,policy_i] = xn[policy_i][itr][factor] -# else: -# num_states, infer_len = xn[0][0][0].shape -# xn_array = np.zeros( (num_itr, num_states, infer_len, num_policies) ) -# for policy_i in range(num_policies): -# for itr in range(num_itr): -# xn_array[itr,:,:,policy_i] = xn[policy_i][itr][0] - -# return xn_array diff --git a/pymdp/learning.py b/pymdp/learning.py index 1c21568a..f9a8f0c5 100644 --- a/pymdp/learning.py +++ b/pymdp/learning.py @@ -2,458 +2,335 @@ # -*- coding: utf-8 -*- # pylint: disable=no-member -import numpy as np -from pymdp import utils, maths -import copy - -def update_obs_likelihood_dirichlet(pA, A, obs, qs, lr=1.0, modalities="all"): - """ - Update Dirichlet parameters of the observation likelihood distribution. - - Parameters - ----------- - pA: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over observation model (same shape as ``A``) - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, ``int`` or ``tuple`` - The observation (generated by the environment). If single modality, this can be a 1D ``numpy.ndarray`` - (one-hot vector representation) or an ``int`` (observation index) - If multi-modality, this can be ``numpy.ndarray`` of dtype object whose entries are 1D one-hot vectors, - or a ``tuple`` (of ``int``) - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None - Marginal posterior beliefs over hidden states at current timepoint. - lr: float, default 1.0 - Learning rate, scale of the Dirichlet pseudo-count update. - modalities: ``list``, default "all" - Indices (ranging from 0 to ``n_modalities - 1``) of the observation modalities to include - in learning. Defaults to "all", meaning that modality-specific sub-arrays of ``pA`` - are all updated using the corresponding observations. - - Returns - ----------- - qA: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. - """ - - - num_modalities = len(pA) - num_observations = [pA[modality].shape[0] for modality in range(num_modalities)] +from pymdp.maths import multidimensional_outer, dirichlet_expected_value +from jax.tree_util import tree_map +from jaxtyping import Array +from jax import vmap, nn - obs_processed = utils.process_observation(obs, num_modalities, num_observations) - obs = utils.to_obj_array(obs_processed) +def update_obs_likelihood_dirichlet_m(pA_m, obs_m, qs, dependencies_m, lr=1.0): + """JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet_m``""" + # pA_m - parameters of the dirichlet from the prior + # pA_m.shape = (no_m x num_states[k] x num_states[j] x ... x num_states[n]) where (k, j, n) are indices of the hidden state factors that are parents of modality m - if modalities == "all": - modalities = list(range(num_modalities)) + # \alpha^{*} = \alpha_{0} + \kappa * \sum_{t=t_begin}^{t=T} o_{m,t} \otimes \mathbf{s}_{f \in parents(m), t} - qA = copy.deepcopy(pA) - - for modality in modalities: - dfda = maths.spm_cross(obs[modality], qs) - dfda = dfda * (A[modality] > 0).astype("float") - qA[modality] = qA[modality] + (lr * dfda) - - return qA - -def update_obs_likelihood_dirichlet_factorized(pA, A, obs, qs, A_factor_list, lr=1.0, modalities="all"): - """ - Update Dirichlet parameters of the observation likelihood distribution, in a case where the observation model is reduced (factorized) and only represents - the conditional dependencies between the observation modalities and particular hidden state factors (whose indices are specified in each modality-specific entry of ``A_factor_list``) - - Parameters - ----------- - pA: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over observation model (same shape as ``A``) - A: ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, ``int`` or ``tuple`` - The observation (generated by the environment). If single modality, this can be a 1D ``numpy.ndarray`` - (one-hot vector representation) or an ``int`` (observation index) - If multi-modality, this can be ``numpy.ndarray`` of dtype object whose entries are 1D one-hot vectors, - or a ``tuple`` (of ``int``) - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None - Marginal posterior beliefs over hidden states at current timepoint. - A_factor_list: ``list`` of ``list`` of ``int`` - List of lists, where each list with index `m` contains the indices of the hidden states that observation modality `m` depends on. - lr: float, default 1.0 - Learning rate, scale of the Dirichlet pseudo-count update. - modalities: ``list``, default "all" - Indices (ranging from 0 to ``n_modalities - 1``) of the observation modalities to include - in learning. Defaults to "all", meaning that modality-specific sub-arrays of ``pA`` - are all updated using the corresponding observations. - - Returns - ----------- - qA: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. - """ + # \alpha^{*} is the VFE-minimizing solution for the parameters of q(A) + # \alpha_{0} are the Dirichlet parameters of p(A) + # o_{m,t} = observation (one-hot vector) of modality m at time t + # \mathbf{s}_{f \in parents(m), t} = categorical parameters of marginal posteriors over hidden state factors that are parents of modality m, at time t + # \otimes is a multidimensional outer product, not just a outer product of two vectors + # \kappa is an optional learning rate - num_modalities = len(pA) - num_observations = [pA[modality].shape[0] for modality in range(num_modalities)] + relevant_factors = tree_map(lambda f_idx: qs[f_idx], dependencies_m) - obs_processed = utils.process_observation(obs, num_modalities, num_observations) - obs = utils.to_obj_array(obs_processed) + dfda = vmap(multidimensional_outer)([obs_m] + relevant_factors).sum(axis=0) - if modalities == "all": - modalities = list(range(num_modalities)) + new_pA_m = pA_m + lr * dfda + A_m = dirichlet_expected_value(new_pA_m) - qA = copy.deepcopy(pA) - - for modality in modalities: - dfda = maths.spm_cross(obs[modality], qs[A_factor_list[modality]]) - dfda = dfda * (A[modality] > 0).astype("float") - qA[modality] = qA[modality] + (lr * dfda) + return new_pA_m, A_m + +def update_obs_likelihood_dirichlet(pA, A, obs, qs, *, A_dependencies, onehot_obs, num_obs, lr): + """ JAX version of ``pymdp.learning.update_obs_likelihood_dirichlet`` """ + + obs_m = lambda o, dim: nn.one_hot(o, dim) if not onehot_obs else o + update_A_fn = lambda pA_m, o_m, dim, dependencies_m: update_obs_likelihood_dirichlet_m( + pA_m, obs_m(o_m, dim), qs, dependencies_m, lr=lr + ) + result = tree_map(update_A_fn, pA, obs, num_obs, A_dependencies) + qA = [] + E_qA = [] + for i, r in enumerate(result): + if r is None: + qA.append(r) + E_qA.append(A[i]) + else: + qA.append(r[0]) + E_qA.append(r[1]) - return qA + return qA, E_qA -def update_state_likelihood_dirichlet( - pB, B, actions, qs, qs_prev, lr=1.0, factors="all" -): - """ - Update Dirichlet parameters of the transition distribution. - - Parameters - ----------- - pB: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over transition model (same shape as ``B``) - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - actions: 1D ``numpy.ndarray`` - A vector with length equal to the number of control factors, where each element contains the index of the action (for that control factor) performed at - a given timestep. - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint. - qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at previous timepoint. - lr: float, default ``1.0`` - Learning rate, scale of the Dirichlet pseudo-count update. - factors: ``list``, default "all" - Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include - in learning. Defaults to "all", meaning that factor-specific sub-arrays of ``pB`` - are all updated using the corresponding hidden state distributions and actions. - - Returns - ----------- - qB: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. - """ +def update_state_transition_dirichlet_f(pB_f, actions_f, joint_qs_f, lr=1.0): + """ JAX version of ``pymdp.learning.update_state_likelihood_dirichlet_f`` """ + # pB_f - parameters of the dirichlet from the prior + # pB_f.shape = (num_states[f] x num_states[f] x num_actions[f]) where f is the index of the hidden state factor - num_factors = len(pB) + # \alpha^{*} = \alpha_{0} + \kappa * \sum_{t=t_begin}^{t=T} \mathbf{s}_{f, t} \otimes \mathbf{s}_{f, t-1} \otimes \mathbf{a}_{f, t-1} - qB = copy.deepcopy(pB) - - if factors == "all": - factors = list(range(num_factors)) + # \alpha^{*} is the VFE-minimizing solution for the parameters of q(B) + # \alpha_{0} are the Dirichlet parameters of p(B) + # \mathbf{s}_{f, t} = categorical parameters of marginal posteriors over hidden state factor f, at time t + # \mathbf{a}_{f, t-1} = categorical parameters of marginal posteriors over control factor f, at time t-1 + # \otimes is a multidimensional outer product, not just a outer product of two vectors + # \kappa is an optional learning rate - for factor in factors: - dfdb = maths.spm_cross(qs[factor], qs_prev[factor]) - dfdb *= (B[factor][:, :, int(actions[factor])] > 0).astype("float") - qB[factor][:,:,int(actions[factor])] += (lr*dfdb) + joint_qs_f = [joint_qs_f] if isinstance(joint_qs_f, Array) else joint_qs_f + dfdb = vmap(multidimensional_outer)(joint_qs_f + [actions_f]).sum(axis=0) + qB_f = pB_f + lr * dfdb - return qB + return qB_f, dirichlet_expected_value(qB_f) -def update_state_likelihood_dirichlet_interactions( - pB, B, actions, qs, qs_prev, B_factor_list, lr=1.0, factors="all" -): - """ - Update Dirichlet parameters of the transition distribution, in the case when 'interacting' hidden state factors are present, i.e. - the dynamics of a given hidden state factor `f` are no longer independent of the dynamics of other hidden state factors. - - Parameters - ----------- - pB: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over transition model (same shape as ``B``) - B: ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. - Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability - of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. - actions: 1D ``numpy.ndarray`` - A vector with length equal to the number of control factors, where each element contains the index of the action (for that control factor) performed at - a given timestep. - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint. - qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at previous timepoint. - B_factor_list: ``list`` of ``list`` of ``int`` - A list of lists, where each element ``B_factor_list[f]`` is a list of indices of hidden state factors that that are needed to predict the dynamics of hidden state factor ``f``. - lr: float, default ``1.0`` - Learning rate, scale of the Dirichlet pseudo-count update. - factors: ``list``, default "all" - Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include - in learning. Defaults to "all", meaning that factor-specific sub-arrays of ``pB`` - are all updated using the corresponding hidden state distributions and actions. - - Returns - ----------- - qB: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. +def update_state_transition_dirichlet(pB, joint_beliefs, actions, *, num_controls, lr, factors_to_update='all'): + """" + Update posterior Diriichlet parameters of the state transition likelihood model (B) given the joint beliefs over hidden states and actions. """ + nf = len(pB) - num_factors = len(pB) + if factors_to_update == 'all': + factors_to_update = list(range(nf)) + qB = [pb_f for pb_f in pB] + E_qB = [dirichlet_expected_value(qb_f) for qb_f in qB] - qB = copy.deepcopy(pB) - - if factors == "all": - factors = list(range(num_factors)) - - for factor in factors: - dfdb = maths.spm_cross(qs[factor], qs_prev[B_factor_list[factor]]) - dfdb *= (B[factor][...,int(actions[factor])] > 0).astype("float") - qB[factor][...,int(actions[factor])] += (lr*dfdb) + for f in factors_to_update: + qB[f], E_qB[f] = update_state_transition_dirichlet_f(pB[f], nn.one_hot(actions[..., f], num_controls[f], axis=-1), joint_beliefs[f], lr=lr) - return qB - -def update_state_prior_dirichlet( - pD, qs, lr=1.0, factors="all" -): - """ - Update Dirichlet parameters of the initial hidden state distribution - (prior beliefs about hidden states at the beginning of the inference window). - - Parameters - ----------- - pD: ``numpy.ndarray`` of dtype object - Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) - qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - Marginal posterior beliefs over hidden states at current timepoint - lr: float, default ``1.0`` - Learning rate, scale of the Dirichlet pseudo-count update. - factors: ``list``, default "all" - Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include - in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` - are all updated using the corresponding hidden state distributions. + return qB, E_qB - Returns - ----------- - qD: ``numpy.ndarray`` of dtype object - Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. - """ +# def update_state_prior_dirichlet( +# pD, qs, lr=1.0, factors="all" +# ): +# """ +# Update Dirichlet parameters of the initial hidden state distribution +# (prior beliefs about hidden states at the beginning of the inference window). + +# Parameters +# ----------- +# pD: ``numpy.ndarray`` of dtype object +# Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) +# qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object +# Marginal posterior beliefs over hidden states at current timepoint +# lr: float, default ``1.0`` +# Learning rate, scale of the Dirichlet pseudo-count update. +# factors: ``list``, default "all" +# Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include +# in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` +# are all updated using the corresponding hidden state distributions. + +# Returns +# ----------- +# qD: ``numpy.ndarray`` of dtype object +# Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. +# """ - num_factors = len(pD) +# num_factors = len(pD) - qD = copy.deepcopy(pD) +# qD = copy.deepcopy(pD) - if factors == "all": - factors = list(range(num_factors)) +# if factors == "all": +# factors = list(range(num_factors)) - for factor in factors: - idx = pD[factor] > 0 # only update those state level indices that have some prior probability - qD[factor][idx] += (lr * qs[factor][idx]) +# for factor in factors: +# idx = pD[factor] > 0 # only update those state level indices that have some prior probability +# qD[factor][idx] += (lr * qs[factor][idx]) - return qD - -def _prune_prior(prior, levels_to_remove, dirichlet = False): - """ - Function for pruning a prior Categorical distribution (e.g. C, D) - - Parameters - ----------- - prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). - levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` - A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, - then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality - dirichlet: ``Bool``, default ``False`` - A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. - @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels - - Returns - ----------- - reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object - The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` - """ +# return qD - if utils.is_obj_array(prior): # in case of multiple hidden state factors +# def _prune_prior(prior, levels_to_remove, dirichlet = False): +# """ +# Function for pruning a prior Categorical distribution (e.g. C, D) - assert all([type(levels) == list for levels in levels_to_remove]) +# Parameters +# ----------- +# prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object +# The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). +# levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` +# A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, +# then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality +# dirichlet: ``Bool``, default ``False`` +# A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. +# @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels - num_factors = len(prior) +# Returns +# ----------- +# reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object +# The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` +# """ - reduced_prior = utils.obj_array(num_factors) - - factors_to_remove = [] - for f, s_i in enumerate(prior): # loop over factors (or modalities) - - ns = len(s_i) - levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) - if len(levels_to_keep) == 0: - print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') - factors_to_remove.append(f) - else: - if not dirichlet: - reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) +# if utils.is_obj_array(prior): # in case of multiple hidden state factors +# assert all([type(levels) == list for levels in levels_to_remove]) - if len(factors_to_remove) > 0: - factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) - reduced_prior = reduced_prior[factors_to_keep] +# num_factors = len(prior) - else: # in case of one hidden state factor +# reduced_prior = utils.obj_array(num_factors) - assert all([type(level_i) == int for level_i in levels_to_remove]) - - ns = len(prior) - levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) - - if not dirichlet: - reduced_prior = utils.norm_dist(prior[levels_to_keep]) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) - - return reduced_prior - -def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): - """ - Function for pruning a observation likelihood model (with potentially multiple hidden state factors) - :meta private: - Parameters - ----------- - A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object - Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of - stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store - the probability of observation level ``i`` given hidden state levels ``j, k, ...`` - obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: - A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, - then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels - to remove for a particular observation modality - state_levels_to_prune: ``list`` of ``int`` - A ``list`` of the hidden state levels to remove (this will be the same across modalities) - dirichlet: ``Bool``, default ``False`` - A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. - @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns - - Returns - ----------- - reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object - The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` - """ - - columns_to_keep_list = [] - if utils.is_obj_array(A): - num_states = A[0].shape[1:] - for f, ns in enumerate(num_states): - indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) - columns_to_keep_list.append(indices_f) - else: - num_states = A.shape[1] - indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) - columns_to_keep_list.append(indices) - - if utils.is_obj_array(A): # in case of multiple observation modality - - assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) - - num_modalities = len(A) - - reduced_A = utils.obj_array(num_modalities) +# factors_to_remove = [] +# for f, s_i in enumerate(prior): # loop over factors (or modalities) + +# ns = len(s_i) +# levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) +# if len(levels_to_keep) == 0: +# print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') +# factors_to_remove.append(f) +# else: +# if not dirichlet: +# reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + + +# if len(factors_to_remove) > 0: +# factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) +# reduced_prior = reduced_prior[factors_to_keep] + +# else: # in case of one hidden state factor + +# assert all([type(level_i) == int for level_i in levels_to_remove]) + +# ns = len(prior) +# levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) + +# if not dirichlet: +# reduced_prior = utils.norm_dist(prior[levels_to_keep]) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + +# return reduced_prior + +# def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): +# """ +# Function for pruning a observation likelihood model (with potentially multiple hidden state factors) +# :meta private: +# Parameters +# ----------- +# A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object +# Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of +# stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store +# the probability of observation level ``i`` given hidden state levels ``j, k, ...`` +# obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: +# A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, +# then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels +# to remove for a particular observation modality +# state_levels_to_prune: ``list`` of ``int`` +# A ``list`` of the hidden state levels to remove (this will be the same across modalities) +# dirichlet: ``Bool``, default ``False`` +# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. +# @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns + +# Returns +# ----------- +# reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object +# The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` +# """ + +# columns_to_keep_list = [] +# if utils.is_obj_array(A): +# num_states = A[0].shape[1:] +# for f, ns in enumerate(num_states): +# indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) +# columns_to_keep_list.append(indices_f) +# else: +# num_states = A.shape[1] +# indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) +# columns_to_keep_list.append(indices) + +# if utils.is_obj_array(A): # in case of multiple observation modality + +# assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) + +# num_modalities = len(A) + +# reduced_A = utils.obj_array(num_modalities) - for m, A_i in enumerate(A): # loop over modalities +# for m, A_i in enumerate(A): # loop over modalities - no = A_i.shape[0] - rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) +# no = A_i.shape[0] +# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) - reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] - if not dirichlet: - reduced_A = utils.norm_dist_obj_arr(reduced_A) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - else: # in case of one observation modality +# reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] +# if not dirichlet: +# reduced_A = utils.norm_dist_obj_arr(reduced_A) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) +# else: # in case of one observation modality - assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) +# assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) - no = A.shape[0] - rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) +# no = A.shape[0] +# rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) - reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] - - if not dirichlet: - reduced_A = utils.norm_dist(reduced_A) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - - return reduced_A - -def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): - """ - Function for pruning a transition likelihood model (with potentially multiple hidden state factors) - - Parameters - ----------- - B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object - Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. - Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability - of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. - state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` - A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, - then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels - to remove for a particular hidden state factor - action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` - A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, - then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels - to remove for a particular control state factor - dirichlet: ``Bool``, default ``False`` - A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. - @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns - - Returns - ----------- - reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object - The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` - """ - - slices_to_keep_list = [] - - if utils.is_obj_array(B): - - num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] - - for c, nc in enumerate(num_controls): - indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) - slices_to_keep_list.append(indices_c) - else: - num_controls = B.shape[2] - slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) - - if utils.is_obj_array(B): # in case of multiple hidden state factors - - assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) - - num_factors = len(B) - - reduced_B = utils.obj_array(num_factors) +# reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] + +# if not dirichlet: +# reduced_A = utils.norm_dist(reduced_A) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + +# return reduced_A + +# def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): +# """ +# Function for pruning a transition likelihood model (with potentially multiple hidden state factors) + +# Parameters +# ----------- +# B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object +# Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. +# Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability +# of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. +# state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` +# A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, +# then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels +# to remove for a particular hidden state factor +# action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` +# A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, +# then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels +# to remove for a particular control state factor +# dirichlet: ``Bool``, default ``False`` +# A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. +# @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns + +# Returns +# ----------- +# reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object +# The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` +# """ + +# slices_to_keep_list = [] + +# if utils.is_obj_array(B): + +# num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] + +# for c, nc in enumerate(num_controls): +# indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) +# slices_to_keep_list.append(indices_c) +# else: +# num_controls = B.shape[2] +# slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) + +# if utils.is_obj_array(B): # in case of multiple hidden state factors + +# assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) + +# num_factors = len(B) + +# reduced_B = utils.obj_array(num_factors) - for f, B_f in enumerate(B): # loop over modalities +# for f, B_f in enumerate(B): # loop over modalities - ns = B_f.shape[0] - states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) +# ns = B_f.shape[0] +# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) - reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] +# reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] - if not dirichlet: - reduced_B = utils.norm_dist_obj_arr(reduced_B) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) +# if not dirichlet: +# reduced_B = utils.norm_dist_obj_arr(reduced_B) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - else: # in case of one hidden state factor +# else: # in case of one hidden state factor - assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) +# assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) - ns = B.shape[0] - states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) +# ns = B.shape[0] +# states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) - reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] +# reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] - if not dirichlet: - reduced_B = utils.norm_dist(reduced_B) - else: - raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) +# if not dirichlet: +# reduced_B = utils.norm_dist(reduced_B) +# else: +# raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) - return reduced_B +# return reduced_B diff --git a/pymdp/legacy/__init__.py b/pymdp/legacy/__init__.py new file mode 100644 index 00000000..52606d70 --- /dev/null +++ b/pymdp/legacy/__init__.py @@ -0,0 +1,9 @@ +from . import agent +from . import envs +from . import utils +from . import maths +from . import control +from . import inference +from . import learning +from . import algos +from . import default_models diff --git a/pymdp/legacy/agent.py b/pymdp/legacy/agent.py new file mode 100644 index 00000000..87fb3964 --- /dev/null +++ b/pymdp/legacy/agent.py @@ -0,0 +1,941 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Agent Class + +__author__: Conor Heins, Alexander Tschantz, Daphne Demekas, Brennan Klein + +""" + +import warnings +import numpy as np +from pymdp.legacy import inference, control, learning +from pymdp.legacy import utils, maths +import copy + +class Agent(object): + """ + The Agent class, the highest-level API that wraps together processes for action, perception, and learning under active inference. + + The basic usage is as follows: + + >>> my_agent = Agent(A = A, B = C, ) + >>> observation = env.step(initial_action) + >>> qs = my_agent.infer_states(observation) + >>> q_pi, G = my_agent.infer_policies() + >>> next_action = my_agent.sample_action() + >>> next_observation = env.step(next_action) + + This represents one timestep of an active inference process. Wrapping this step in a loop with an ``Env()`` class that returns + observations and takes actions as inputs, would entail a dynamic agent-environment interaction. + """ + + def __init__( + self, + A, + B, + C=None, + D=None, + E=None, + H=None, + pA=None, + pB=None, + pD=None, + num_controls=None, + policy_len=1, + inference_horizon=1, + control_fac_idx=None, + policies=None, + gamma=16.0, + alpha=16.0, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + action_selection="deterministic", + sampling_mode = "marginal", # whether to sample from full posterior over policies ("full") or from marginal posterior over actions ("marginal") + inference_algo="VANILLA", + inference_params=None, + modalities_to_learn="all", + lr_pA=1.0, + factors_to_learn="all", + lr_pB=1.0, + lr_pD=1.0, + use_BMA=True, + policy_sep_prior=False, + save_belief_hist=False, + A_factor_list=None, + B_factor_list=None, + sophisticated=False, + si_horizon=3, + si_policy_prune_threshold=1/16, + si_state_prune_threshold=1/16, + si_prune_penalty=512, + ii_depth=10, + ii_threshold=1/16, + ): + + ### Constant parameters ### + + # policy parameters + self.policy_len = policy_len + self.gamma = gamma + self.alpha = alpha + self.action_selection = action_selection + self.sampling_mode = sampling_mode + self.use_utility = use_utility + self.use_states_info_gain = use_states_info_gain + self.use_param_info_gain = use_param_info_gain + + # learning parameters + self.modalities_to_learn = modalities_to_learn + self.lr_pA = lr_pA + self.factors_to_learn = factors_to_learn + self.lr_pB = lr_pB + self.lr_pD = lr_pD + + # sophisticated inference parameters + self.sophisticated = sophisticated + if self.sophisticated: + assert self.policy_len == 1, "Sophisticated inference only works with policy_len = 1" + self.si_horizon = si_horizon + self.si_policy_prune_threshold = si_policy_prune_threshold + self.si_state_prune_threshold = si_state_prune_threshold + self.si_prune_penalty = si_prune_penalty + + # Initialise observation model (A matrices) + if not isinstance(A, np.ndarray): + raise TypeError( + 'A matrix must be a numpy array' + ) + + self.A = utils.to_obj_array(A) + + assert utils.is_normalized(self.A), "A matrix is not normalized (i.e. A[m].sum(axis = 0) must all equal 1.0 for all modalities)" + + # Determine number of observation modalities and their respective dimensions + self.num_obs = [self.A[m].shape[0] for m in range(len(self.A))] + self.num_modalities = len(self.num_obs) + + # Assigning prior parameters on observation model (pA matrices) + self.pA = pA + + # Initialise transition model (B matrices) + if not isinstance(B, np.ndarray): + raise TypeError( + 'B matrix must be a numpy array' + ) + + self.B = utils.to_obj_array(B) + + assert utils.is_normalized(self.B), "B matrix is not normalized (i.e. B[f].sum(axis = 0) must all equal 1.0 for all factors)" + + # Determine number of hidden state factors and their dimensionalities + self.num_states = [self.B[f].shape[0] for f in range(len(self.B))] + self.num_factors = len(self.num_states) + + # Assigning prior parameters on transition model (pB matrices) + self.pB = pB + + # If no `num_controls` are given, then this is inferred from the shapes of the input B matrices + if num_controls == None: + self.num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] + else: + inferred_num_controls = [self.B[f].shape[-1] for f in range(self.num_factors)] + assert num_controls == inferred_num_controls, "num_controls must be consistent with the shapes of the input B matrices" + self.num_controls = num_controls + + # checking that `A_factor_list` and `B_factor_list` are consistent with `num_factors`, `num_states`, and lagging dimensions of `A` and `B` tensors + self.factorized = False + if A_factor_list == None: + self.A_factor_list = self.num_modalities * [list(range(self.num_factors))] # defaults to having all modalities depend on all factors + for m in range(self.num_modalities): + factor_dims = tuple([self.num_states[f] for f in self.A_factor_list[m]]) + assert self.A[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of A{m}..." + if self.pA is not None: + assert self.pA[m].shape[1:] == factor_dims, f"Please input an `A_factor_list` whose {m}-th indices pick out the hidden state factors that line up with lagging dimensions of pA{m}..." + else: + self.factorized = True + for m in range(self.num_modalities): + assert max(A_factor_list[m]) <= (self.num_factors - 1), f"Check modality {m} of A_factor_list - must be consistent with `num_states` and `num_factors`..." + factor_dims = tuple([self.num_states[f] for f in A_factor_list[m]]) + assert self.A[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of A{m}..." + if self.pA is not None: + assert self.pA[m].shape[1:] == factor_dims, f"Check modality {m} of A_factor_list. It must coincide with lagging dimensions of pA{m}..." + self.A_factor_list = A_factor_list + + # generate a list of the modalities that depend on each factor + A_modality_list = [] + for f in range(self.num_factors): + A_modality_list.append( [m for m in range(self.num_modalities) if f in self.A_factor_list[m]] ) + + # Store thee `A_factor_list` and the `A_modality_list` in a Markov blanket dictionary + self.mb_dict = { + 'A_factor_list': self.A_factor_list, + 'A_modality_list': A_modality_list + } + + if B_factor_list == None: + self.B_factor_list = [[f] for f in range(self.num_factors)] # defaults to having all factors depend only on themselves + for f in range(self.num_factors): + factor_dims = tuple([self.num_states[f] for f in self.B_factor_list[f]]) + assert self.B[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of B{f}..." + if self.pB is not None: + assert self.pB[f].shape[1:-1] == factor_dims, f"Please input a `B_factor_list` whose {f}-th indices pick out the hidden state factors that line up with the all-but-final lagging dimensions of pB{f}..." + else: + self.factorized = True + for f in range(self.num_factors): + assert max(B_factor_list[f]) <= (self.num_factors - 1), f"Check factor {f} of B_factor_list - must be consistent with `num_states` and `num_factors`..." + factor_dims = tuple([self.num_states[f] for f in B_factor_list[f]]) + assert self.B[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of B{f}..." + if self.pB is not None: + assert self.pB[f].shape[1:-1] == factor_dims, f"Check factor {f} of B_factor_list. It must coincide with all-but-final lagging dimensions of pB{f}..." + self.B_factor_list = B_factor_list + + # Users have the option to make only certain factors controllable. + # default behaviour is to make all hidden state factors controllable, i.e. `self.num_factors == len(self.num_controls)` + if control_fac_idx == None: + self.control_fac_idx = [f for f in range(self.num_factors) if self.num_controls[f] > 1] + else: + + assert max(control_fac_idx) <= (self.num_factors - 1), "Check control_fac_idx - must be consistent with `num_states` and `num_factors`..." + self.control_fac_idx = control_fac_idx + + for factor_idx in self.control_fac_idx: + assert self.num_controls[factor_idx] > 1, "Control factor (and B matrix) dimensions are not consistent with user-given control_fac_idx" + + # Again, the use can specify a set of possible policies, or + # all possible combinations of actions and timesteps will be considered + if policies is None: + policies = self._construct_policies() + self.policies = policies + + assert all([len(self.num_controls) == policy.shape[1] for policy in self.policies]), "Number of control states is not consistent with policy dimensionalities" + + all_policies = np.vstack(self.policies) + + assert all([n_c >= max_action for (n_c, max_action) in zip(self.num_controls, list(np.max(all_policies, axis =0)+1))]), "Maximum number of actions is not consistent with `num_controls`" + + # Construct prior preferences (uniform if not specified) + + if C is not None: + if not isinstance(C, np.ndarray): + raise TypeError( + 'C vector must be a numpy array' + ) + self.C = utils.to_obj_array(C) + + assert len(self.C) == self.num_modalities, f"Check C vector: number of sub-arrays must be equal to number of observation modalities: {self.num_modalities}" + + for modality, c_m in enumerate(self.C): + assert c_m.shape[0] == self.num_obs[modality], f"Check C vector: number of rows of C vector for modality {modality} should be equal to {self.num_obs[modality]}" + else: + self.C = self._construct_C_prior() + + # Construct prior over hidden states (uniform if not specified) + + if D is not None: + if not isinstance(D, np.ndarray): + raise TypeError( + 'D vector must be a numpy array' + ) + self.D = utils.to_obj_array(D) + + assert len(self.D) == self.num_factors, f"Check D vector: number of sub-arrays must be equal to number of hidden state factors: {self.num_factors}" + + for f, d_f in enumerate(self.D): + assert d_f.shape[0] == self.num_states[f], f"Check D vector: number of entries of D vector for factor {f} should be equal to {self.num_states[f]}" + else: + if pD is not None: + self.D = utils.norm_dist_obj_arr(pD) + else: + self.D = self._construct_D_prior() + + assert utils.is_normalized(self.D), "D vector is not normalized (i.e. D[f].sum() must all equal 1.0 for all factors)" + + # Assigning prior parameters on initial hidden states (pD vectors) + self.pD = pD + + # Construct prior over policies (uniform if not specified) + if E is not None: + if not isinstance(E, np.ndarray): + raise TypeError( + 'E vector must be a numpy array' + ) + self.E = E + + assert len(self.E) == len(self.policies), f"Check E vector: length of E must be equal to number of policies: {len(self.policies)}" + + else: + self.E = self._construct_E_prior() + + # Construct I for backwards induction (if H specified) + if H is not None: + self.H = H + self.I = control.backwards_induction(H, B, B_factor_list, threshold=ii_threshold, depth=ii_depth) + else: + self.H = None + self.I = None + + self.edge_handling_params = {} + self.edge_handling_params['use_BMA'] = use_BMA # creates a 'D-like' moving prior + self.edge_handling_params['policy_sep_prior'] = policy_sep_prior # carries forward last timesteps posterior, in a policy-conditioned way + + # use_BMA and policy_sep_prior can both be False, but both cannot be simultaneously be True. If one of them is True, the other must be False + if policy_sep_prior: + if use_BMA: + warnings.warn( + "Inconsistent choice of `policy_sep_prior` and `use_BMA`.\ + You have set `policy_sep_prior` to True, so we are setting `use_BMA` to False" + ) + self.edge_handling_params['use_BMA'] = False + + if inference_algo == None: + self.inference_algo = "VANILLA" + self.inference_params = self._get_default_params() + if inference_horizon > 1: + warnings.warn( + "If `inference_algo` is VANILLA, then inference_horizon must be 1\n. \ + Setting inference_horizon to default value of 1...\n" + ) + self.inference_horizon = 1 + else: + self.inference_horizon = 1 + else: + self.inference_algo = inference_algo + self.inference_params = self._get_default_params() + self.inference_horizon = inference_horizon + + if save_belief_hist: + self.qs_hist = [] + self.q_pi_hist = [] + + self.prev_obs = [] + self.reset() + + self.action = None + self.prev_actions = None + + def _construct_C_prior(self): + + C = utils.obj_array_zeros(self.num_obs) + + return C + + def _construct_D_prior(self): + + D = utils.obj_array_uniform(self.num_states) + + return D + + def _construct_policies(self): + + policies = control.construct_policies( + self.num_states, self.num_controls, self.policy_len, self.control_fac_idx + ) + + return policies + + def _construct_num_controls(self): + num_controls = control.get_num_controls_from_policies( + self.policies + ) + + return num_controls + + def _construct_E_prior(self): + E = np.ones(len(self.policies)) / len(self.policies) + return E + + def reset(self, init_qs=None): + """ + Resets the posterior beliefs about hidden states of the agent to a uniform distribution, and resets time to first timestep of the simulation's temporal horizon. + Returns the posterior beliefs about hidden states. + + Returns + --------- + qs: ``numpy.ndarray`` of dtype object + Initialized posterior over hidden states. Depending on the inference algorithm chosen and other parameters (such as the parameters stored within ``edge_handling_paramss), + the resulting ``qs`` variable will have additional sub-structure to reflect whether beliefs are additionally conditioned on timepoint and policy. + For example, in case the ``self.inference_algo == 'MMP' `, the indexing structure of ``qs`` is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + at timepoint ``t_idx``. In this case, the returned ``qs`` will only have entries filled out for the first timestep, i.e. for ``q[p_idx][0]``, for all + policy-indices ``p_idx``. Subsequent entries ``q[:][1, 2, ...]`` will be initialized to empty ``numpy.ndarray`` objects. + """ + + self.curr_timestep = 0 + + if init_qs is None: + if self.inference_algo == 'VANILLA': + self.qs = utils.obj_array_uniform(self.num_states) + else: # in the case you're doing MMP (i.e. you have an inference_horizon > 1), we have to account for policy- and timestep-conditioned posterior beliefs + self.qs = utils.obj_array(len(self.policies)) + for p_i, _ in enumerate(self.policies): + self.qs[p_i] = utils.obj_array(self.inference_horizon + self.policy_len + 1) # + 1 to include belief about current timestep + self.qs[p_i][0] = utils.obj_array_uniform(self.num_states) + + first_belief = utils.obj_array(len(self.policies)) + for p_i, _ in enumerate(self.policies): + first_belief[p_i] = copy.deepcopy(self.D) + + if self.edge_handling_params['policy_sep_prior']: + self.set_latest_beliefs(last_belief = first_belief) + else: + self.set_latest_beliefs(last_belief = self.D) + + else: + self.qs = init_qs + + if self.pA is not None: + self.A = utils.norm_dist_obj_arr(self.pA) + + if self.pB is not None: + self.B = utils.norm_dist_obj_arr(self.pB) + + return self.qs + + def step_time(self): + """ + Advances time by one step. This involves updating the ``self.prev_actions``, and in the case of a moving + inference horizon, this also shifts the history of post-dictive beliefs forward in time (using ``self.set_latest_beliefs()``), + so that the penultimate belief before the beginning of the horizon is correctly indexed. + + Returns + --------- + curr_timestep: ``int`` + The index in absolute simulation time of the current timestep. + """ + + if self.prev_actions is None: + self.prev_actions = [self.action] + else: + self.prev_actions.append(self.action) + + self.curr_timestep += 1 + + if self.inference_algo == "MMP" and (self.curr_timestep - self.inference_horizon) >= 0: + self.set_latest_beliefs() + + return self.curr_timestep + + def set_latest_beliefs(self,last_belief=None): + """ + Both sets and returns the penultimate belief before the first timestep of the backwards inference horizon. + In the case that the inference horizon includes the first timestep of the simulation, then the ``latest_belief`` is + simply the first belief of the whole simulation, or the prior (``self.D``). The particular structure of the ``latest_belief`` + depends on the value of ``self.edge_handling_params['use_BMA']``. + + Returns + --------- + latest_belief: ``numpy.ndarray`` of dtype object + Penultimate posterior beliefs over hidden states at the timestep just before the first timestep of the inference horizon. + Depending on the value of ``self.edge_handling_params['use_BMA']``, the shape of this output array will differ. + If ``self.edge_handling_params['use_BMA'] == True``, then ``latest_belief`` will be a Bayesian model average + of beliefs about hidden states, where the average is taken with respect to posterior beliefs about policies. + Otherwise, `latest_belief`` will be the full, policy-conditioned belief about hidden states, and will have indexing structure + policies->factors, such that ``latest_belief[p_idx][f_idx]`` refers to the penultimate belief about marginal factor ``f_idx`` + under policy ``p_idx``. + """ + + if last_belief is None: + last_belief = utils.obj_array(len(self.policies)) + for p_i, _ in enumerate(self.policies): + last_belief[p_i] = copy.deepcopy(self.qs[p_i][0]) + + begin_horizon_step = self.curr_timestep - self.inference_horizon + if self.edge_handling_params['use_BMA'] and (begin_horizon_step >= 0): + if hasattr(self, "q_pi_hist"): + self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi_hist[begin_horizon_step]) # average the earliest marginals together using contemporaneous posterior over policies (`self.q_pi_hist[0]`) + else: + self.latest_belief = inference.average_states_over_policies(last_belief, self.q_pi) # average the earliest marginals together using posterior over policies (`self.q_pi`) + else: + self.latest_belief = last_belief + + return self.latest_belief + + def get_future_qs(self): + """ + Returns the last ``self.policy_len`` timesteps of each policy-conditioned belief + over hidden states. This is a step of pre-processing that needs to be done before computing + the expected free energy of policies. We do this to avoid computing the expected free energy of + policies using beliefs about hidden states in the past (so-called "post-dictive" beliefs). + + Returns + --------- + future_qs_seq: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states under a policy, in the future. This is a nested ``numpy.ndarray`` object array, with one + sub-array ``future_qs_seq[p_idx]`` for each policy. The indexing structure is policy->timepoint-->factor, so that + ``future_qs_seq[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + at future timepoint ``t_idx``, relative to the current timestep. + """ + + future_qs_seq = utils.obj_array(len(self.qs)) + for p_idx in range(len(self.qs)): + future_qs_seq[p_idx] = self.qs[p_idx][-(self.policy_len+1):] # this grabs only the last `policy_len`+1 beliefs about hidden states, under each policy + + return future_qs_seq + + + def infer_states(self, observation, distr_obs=False): + """ + Update approximate posterior over hidden states by solving variational inference problem, given an observation. + + Parameters + ---------- + observation: ``list`` or ``tuple`` of ints + The observation input. Each entry ``observation[m]`` stores the index of the discrete + observation for modality ``m``. + distr_obs: ``bool`` + Whether the observation is a distribution over possible observations, rather than a single observation. + + Returns + --------- + qs: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states. Depending on the inference algorithm chosen, the resulting ``qs`` variable will have additional sub-structure to reflect whether + beliefs are additionally conditioned on timepoint and policy. + For example, in case the ``self.inference_algo == 'MMP' `` indexing structure is policy->timepoint-->factor, so that + ``qs[p_idx][t_idx][f_idx]`` refers to beliefs about marginal factor ``f_idx`` expected under policy ``p_idx`` + at timepoint ``t_idx``. + """ + + observation = tuple(observation) if not distr_obs else observation + + if not hasattr(self, "qs"): + self.reset() + + if self.inference_algo == "VANILLA": + if self.action is not None: + empirical_prior = control.get_expected_states_interactions( + self.qs, self.B, self.B_factor_list, self.action.reshape(1, -1) + )[0] + else: + empirical_prior = self.D + qs = inference.update_posterior_states_factorized( + self.A, + observation, + self.num_obs, + self.num_states, + self.mb_dict, + empirical_prior, + **self.inference_params + ) + elif self.inference_algo == "MMP": + + self.prev_obs.append(observation) + if len(self.prev_obs) > self.inference_horizon: + latest_obs = self.prev_obs[-self.inference_horizon:] + latest_actions = self.prev_actions[-(self.inference_horizon-1):] + else: + latest_obs = self.prev_obs + latest_actions = self.prev_actions + + qs, F = inference.update_posterior_states_full_factorized( + self.A, + self.mb_dict, + self.B, + self.B_factor_list, + latest_obs, + self.policies, + latest_actions, + prior = self.latest_belief, + policy_sep_prior = self.edge_handling_params['policy_sep_prior'], + **self.inference_params + ) + + self.F = F # variational free energy of each policy + + if hasattr(self, "qs_hist"): + self.qs_hist.append(qs) + self.qs = qs + + return qs + + def _infer_states_test(self, observation, distr_obs=False): + """ + Test version of ``infer_states()`` that additionally returns intermediate variables of MMP, such as + the prediction errors and intermediate beliefs from the optimization. Used for benchmarking against SPM outputs. + """ + observation = tuple(observation) if not distr_obs else observation + + if not hasattr(self, "qs"): + self.reset() + + if self.inference_algo == "VANILLA": + if self.action is not None: + empirical_prior = control.get_expected_states( + self.qs, self.B, self.action.reshape(1, -1) + )[0] + else: + empirical_prior = self.D + qs = inference.update_posterior_states( + self.A, + observation, + empirical_prior, + **self.inference_params + ) + elif self.inference_algo == "MMP": + + self.prev_obs.append(observation) + if len(self.prev_obs) > self.inference_horizon: + latest_obs = self.prev_obs[-self.inference_horizon:] + latest_actions = self.prev_actions[-(self.inference_horizon-1):] + else: + latest_obs = self.prev_obs + latest_actions = self.prev_actions + + qs, F, xn, vn = inference._update_posterior_states_full_test( + self.A, + self.B, + latest_obs, + self.policies, + latest_actions, + prior = self.latest_belief, + policy_sep_prior = self.edge_handling_params['policy_sep_prior'], + **self.inference_params + ) + + self.F = F # variational free energy of each policy + + if hasattr(self, "qs_hist"): + self.qs_hist.append(qs) + + self.qs = qs + + if self.inference_algo == "MMP": + return qs, xn, vn + else: + return qs + + def infer_policies(self): + """ + Perform policy inference by optimizing a posterior (categorical) distribution over policies. + This distribution is computed as the softmax of ``G * gamma + lnE`` where ``G`` is the negative expected + free energy of policies, ``gamma`` is a policy precision and ``lnE`` is the (log) prior probability of policies. + This function returns the posterior over policies as well as the negative expected free energy of each policy. + In this version of the function, the expected free energy of policies is computed using known factorized structure + in the model, which speeds up computation (particular the state information gain calculations). + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + if self.inference_algo == "VANILLA": + if self.sophisticated: + q_pi, G = control.sophisticated_inference_search( + self.qs, + self.policies, + self.A, + self.B, + self.C, + self.A_factor_list, + self.B_factor_list, + self.I, + self.si_horizon, + self.si_policy_prune_threshold, + self.si_state_prune_threshold, + self.si_prune_penalty, + 1.0, + self.inference_params, + n=0 + ) + else: + q_pi, G = control.update_posterior_policies_factorized( + self.qs, + self.A, + self.B, + self.C, + self.A_factor_list, + self.B_factor_list, + self.policies, + self.use_utility, + self.use_states_info_gain, + self.use_param_info_gain, + self.pA, + self.pB, + E = self.E, + I = self.I, + gamma = self.gamma + ) + elif self.inference_algo == "MMP": + + future_qs_seq = self.get_future_qs() + + q_pi, G = control.update_posterior_policies_full_factorized( + future_qs_seq, + self.A, + self.B, + self.C, + self.A_factor_list, + self.B_factor_list, + self.policies, + self.use_utility, + self.use_states_info_gain, + self.use_param_info_gain, + self.latest_belief, + self.pA, + self.pB, + F=self.F, + E=self.E, + I=self.I, + gamma=self.gamma + ) + + if hasattr(self, "q_pi_hist"): + self.q_pi_hist.append(q_pi) + if len(self.q_pi_hist) > self.inference_horizon: + self.q_pi_hist = self.q_pi_hist[-(self.inference_horizon-1):] + + self.q_pi = q_pi + self.G = G + return q_pi, G + + def sample_action(self): + """ + Sample or select a discrete action from the posterior over control states. + This function both sets or cachés the action as an internal variable with the agent and returns it. + This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) + using ``self.step_time()``. + + + Returns + ---------- + action: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + if self.sampling_mode == "marginal": + action = control.sample_action( + self.q_pi, self.policies, self.num_controls, action_selection = self.action_selection, alpha = self.alpha + ) + elif self.sampling_mode == "full": + action = control.sample_policy(self.q_pi, self.policies, self.num_controls, + action_selection=self.action_selection, alpha=self.alpha) + + self.action = action + + self.step_time() + + return action + + def _sample_action_test(self): + """ + Sample or select a discrete action from the posterior over control states. + This function both sets or cachés the action as an internal variable with the agent and returns it. + This function also updates time variable (and thus manages consequences of updating the moving reference frame of beliefs) + using ``self.step_time()``. + + Returns + ---------- + action: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + if self.sampling_mode == "marginal": + action, p_dist = control._sample_action_test(self.q_pi, self.policies, self.num_controls, + action_selection=self.action_selection, alpha=self.alpha) + elif self.sampling_mode == "full": + action, p_dist = control._sample_policy_test(self.q_pi, self.policies, self.num_controls, + action_selection=self.action_selection, alpha=self.alpha) + + self.action = action + + self.step_time() + + return action, p_dist + + def update_A(self, obs): + """ + Update approximate posterior beliefs about Dirichlet parameters that parameterise the observation likelihood or ``A`` array. + + Parameters + ---------- + observation: ``list`` or ``tuple`` of ints + The observation input. Each entry ``observation[m]`` stores the index of the discrete + observation for modality ``m``. + + Returns + ----------- + qA: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. + """ + + qA = learning.update_obs_likelihood_dirichlet_factorized( + self.pA, + self.A, + obs, + self.qs, + self.A_factor_list, + self.lr_pA, + self.modalities_to_learn + ) + + self.pA = qA # set new prior to posterior + self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array + + return qA + + def _update_A_old(self, obs): + """ + Update approximate posterior beliefs about Dirichlet parameters that parameterise the observation likelihood or ``A`` array. + + Parameters + ---------- + observation: ``list`` or ``tuple`` of ints + The observation input. Each entry ``observation[m]`` stores the index of the discrete + observation for modality ``m``. + + Returns + ----------- + qA: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. + """ + + qA = learning.update_obs_likelihood_dirichlet( + self.pA, + self.A, + obs, + self.qs, + self.lr_pA, + self.modalities_to_learn + ) + + self.pA = qA # set new prior to posterior + self.A = utils.norm_dist_obj_arr(qA) # take expected value of posterior Dirichlet parameters to calculate posterior over A array + + return qA + + def update_B(self, qs_prev): + """ + Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood + + Parameters + ----------- + qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at previous timepoint. + + Returns + ----------- + qB: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. + """ + + qB = learning.update_state_likelihood_dirichlet_interactions( + self.pB, + self.B, + self.action, + self.qs, + qs_prev, + self.B_factor_list, + self.lr_pB, + self.factors_to_learn + ) + + self.pB = qB # set new prior to posterior + self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + + return qB + + def _update_B_old(self, qs_prev): + """ + Update posterior beliefs about Dirichlet parameters that parameterise the transition likelihood + + Parameters + ----------- + qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at previous timepoint. + + Returns + ----------- + qB: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. + """ + + qB = learning.update_state_likelihood_dirichlet( + self.pB, + self.B, + self.action, + self.qs, + qs_prev, + self.lr_pB, + self.factors_to_learn + ) + + self.pB = qB # set new prior to posterior + self.B = utils.norm_dist_obj_arr(qB) # take expected value of posterior Dirichlet parameters to calculate posterior over B array + + return qB + + def update_D(self, qs_t0 = None): + """ + Update Dirichlet parameters of the initial hidden state distribution + (prior beliefs about hidden states at the beginning of the inference window). + + Parameters + ----------- + qs_t0: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, or ``None`` + Marginal posterior beliefs over hidden states at current timepoint. If ``None``, the + value of ``qs_t0`` is set to ``self.qs_hist[0]`` (i.e. the initial hidden state beliefs at the first timepoint). + If ``self.inference_algo == "MMP"``, then ``qs_t0`` is set to be the Bayesian model average of beliefs about hidden states + at the first timestep of the backwards inference horizon, where the average is taken with respect to posterior beliefs about policies. + + Returns + ----------- + qD: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs_t0``), after having updated it with state beliefs. + """ + + if self.inference_algo == "VANILLA": + + if qs_t0 is None: + + try: + qs_t0 = self.qs_hist[0] + except ValueError: + print("qs_t0 must either be passed as argument to `update_D` or `save_belief_hist` must be set to True!") + + elif self.inference_algo == "MMP": + + if self.edge_handling_params['use_BMA']: + qs_t0 = self.latest_belief + elif self.edge_handling_params['policy_sep_prior']: + + qs_pi_t0 = self.latest_belief + + # get beliefs about policies at the time at the beginning of the inference horizon + if hasattr(self, "q_pi_hist"): + begin_horizon_step = max(0, self.curr_timestep - self.inference_horizon) + q_pi_t0 = np.copy(self.q_pi_hist[begin_horizon_step]) + else: + q_pi_t0 = np.copy(self.q_pi) + + qs_t0 = inference.average_states_over_policies(qs_pi_t0,q_pi_t0) # beliefs about hidden states at the first timestep of the inference horizon + + qD = learning.update_state_prior_dirichlet(self.pD, qs_t0, self.lr_pD, factors = self.factors_to_learn) + + self.pD = qD # set new prior to posterior + self.D = utils.norm_dist_obj_arr(qD) # take expected value of posterior Dirichlet parameters to calculate posterior over D array + + return qD + + def _get_default_params(self): + method = self.inference_algo + default_params = None + if method == "VANILLA": + default_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": True} + elif method == "MMP": + default_params = {"num_iter": 10, "grad_descent": True, "tau": 0.25} + elif method == "VMP": + raise NotImplementedError("VMP is not implemented") + elif method == "BP": + raise NotImplementedError("BP is not implemented") + elif method == "EP": + raise NotImplementedError("EP is not implemented") + elif method == "CV": + raise NotImplementedError("CV is not implemented") + + return default_params + + \ No newline at end of file diff --git a/pymdp/algos/__init__.py b/pymdp/legacy/algos/__init__.py similarity index 100% rename from pymdp/algos/__init__.py rename to pymdp/legacy/algos/__init__.py diff --git a/pymdp/algos/fpi.py b/pymdp/legacy/algos/fpi.py similarity index 99% rename from pymdp/algos/fpi.py rename to pymdp/legacy/algos/fpi.py index e007d9a9..61e45d20 100644 --- a/pymdp/algos/fpi.py +++ b/pymdp/legacy/algos/fpi.py @@ -3,8 +3,8 @@ # pylint: disable=no-member import numpy as np -from pymdp.maths import spm_dot, dot_likelihood, get_joint_likelihood, softmax, calc_free_energy, spm_log_single, spm_log_obj_array -from pymdp.utils import to_obj_array, obj_array, obj_array_uniform +from pymdp.legacy.maths import spm_dot, dot_likelihood, get_joint_likelihood, softmax, calc_free_energy, spm_log_single, spm_log_obj_array +from pymdp.legacy.utils import to_obj_array, obj_array, obj_array_uniform from itertools import chain from copy import deepcopy diff --git a/pymdp/algos/mmp.py b/pymdp/legacy/algos/mmp.py similarity index 99% rename from pymdp/algos/mmp.py rename to pymdp/legacy/algos/mmp.py index 019e81df..87089da3 100644 --- a/pymdp/algos/mmp.py +++ b/pymdp/legacy/algos/mmp.py @@ -3,8 +3,8 @@ import numpy as np -from pymdp.utils import to_obj_array, get_model_dimensions, obj_array, obj_array_zeros, obj_array_uniform -from pymdp.maths import spm_dot, spm_norm, softmax, calc_free_energy, spm_log_single, factor_dot_flex +from pymdp.legacy.utils import to_obj_array, get_model_dimensions, obj_array, obj_array_zeros, obj_array_uniform +from pymdp.legacy.maths import spm_dot, spm_norm, softmax, calc_free_energy, spm_log_single, factor_dot_flex import copy def run_mmp( diff --git a/pymdp/algos/mmp_old.py b/pymdp/legacy/algos/mmp_old.py similarity index 99% rename from pymdp/algos/mmp_old.py rename to pymdp/legacy/algos/mmp_old.py index e9363608..3a564b01 100644 --- a/pymdp/algos/mmp_old.py +++ b/pymdp/legacy/algos/mmp_old.py @@ -6,8 +6,8 @@ import sys import pathlib -from pymdp.maths import spm_dot, get_joint_likelihood, spm_norm, softmax, calc_free_energy -from pymdp import utils +from pymdp.legacy.maths import spm_dot, get_joint_likelihood, spm_norm, softmax, calc_free_energy +from pymdp.legacy import utils def run_mmp_old( diff --git a/pymdp/legacy/control.py b/pymdp/legacy/control.py new file mode 100644 index 00000000..3a27895d --- /dev/null +++ b/pymdp/legacy/control.py @@ -0,0 +1,1466 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# pylint: disable=no-member +# pylint: disable=not-an-iterable + +import itertools +import numpy as np +from pymdp.legacy.maths import softmax, softmax_obj_arr, spm_dot, spm_wnorm, spm_MDP_G, spm_log_single, kl_div, entropy +from pymdp.legacy.inference import update_posterior_states_factorized, average_states_over_policies +from pymdp.legacy import utils +import copy + +def update_posterior_policies_full( + qs_seq_pi, + A, + B, + C, + policies, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + prior=None, + pA=None, + pB=None, + F=None, + E=None, + I=None, + gamma=16.0 +): + """ + Update posterior beliefs about policies by computing expected free energy of each policy and integrating that + with the variational free energy of policies ``F`` and prior over policies ``E``. This is intended to be used in conjunction + with the ``update_posterior_states_full`` method of ``inference.py``, since the full posterior over future timesteps, under all policies, is + assumed to be provided in the input array ``qs_seq_pi``. + + Parameters + ---------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + use_utility: ``Bool``, default ``True`` + Boolean flag that determines whether expected utility should be incorporated into computation of EFE. + use_states_info_gain: ``Bool``, default ``True`` + Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. + use_param_info_gain: ``Bool``, default ``False`` + Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. + prior: ``numpy.ndarray`` of dtype object, default ``None`` + If provided, this is a ``numpy`` object array with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + pA: ``numpy.ndarray`` of dtype object, default ``None`` + Dirichlet parameters over observation model (same shape as ``A``) + pB: ``numpy.ndarray`` of dtype object, default ``None`` + Dirichlet parameters over transition model (same shape as ``B``) + F: 1D ``numpy.ndarray``, default ``None`` + Vector of variational free energies for each policy + E: 1D ``numpy.ndarray``, default ``None`` + Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits"). If ``None``, this defaults to a flat (uninformative) prior over policies. + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + gamma: ``float``, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + horizon = len(qs_seq_pi[0]) + num_policies = len(qs_seq_pi) + + qo_seq = utils.obj_array(horizon) + for t in range(horizon): + qo_seq[t] = utils.obj_array_zeros(num_obs) + + # initialise expected observations + qo_seq_pi = utils.obj_array(num_policies) + + # initialize (negative) expected free energies for all policies + G = np.zeros(num_policies) + + if F is None: + F = spm_log_single(np.ones(num_policies) / num_policies) + + if E is None: + lnE = spm_log_single(np.ones(num_policies) / num_policies) + else: + lnE = spm_log_single(E) + + if I is not None: + init_qs_all_pi = [qs_seq_pi[p][0] for p in range(num_policies)] + qs_bma = average_states_over_policies(init_qs_all_pi, softmax(E)) + + for p_idx, policy in enumerate(policies): + + qo_seq_pi[p_idx] = get_expected_obs(qs_seq_pi[p_idx], A) + + if use_utility: + G[p_idx] += calc_expected_utility(qo_seq_pi[p_idx], C) + + if use_states_info_gain: + G[p_idx] += calc_states_info_gain(A, qs_seq_pi[p_idx]) + + if use_param_info_gain: + if pA is not None: + G[p_idx] += calc_pA_info_gain(pA, qo_seq_pi[p_idx], qs_seq_pi[p_idx]) + if pB is not None: + G[p_idx] += calc_pB_info_gain(pB, qs_seq_pi[p_idx], prior, policy) + + if I is not None: + G[p_idx] += calc_inductive_cost(qs_bma, qs_seq_pi[p_idx], I) + + q_pi = softmax(G * gamma - F + lnE) + + return q_pi, G + +def update_posterior_policies_full_factorized( + qs_seq_pi, + A, + B, + C, + A_factor_list, + B_factor_list, + policies, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + prior=None, + pA=None, + pB=None, + F=None, + E=None, + I=None, + gamma=16.0 +): + """ + Update posterior beliefs about policies by computing expected free energy of each policy and integrating that + with the variational free energy of policies ``F`` and prior over policies ``E``. This is intended to be used in conjunction + with the ``update_posterior_states_full`` method of ``inference.py``, since the full posterior over future timesteps, under all policies, is + assumed to be provided in the input array ``qs_seq_pi``. + + Parameters + ---------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + A_factor_list: ``list`` of ``list``s of ``int`` + ``list`` that stores the indices of the hidden state factor indices that each observation modality depends on. For example, if ``A_factor_list[m] = [0, 1]``, then + observation modality ``m`` depends on hidden state factors 0 and 1. + B_factor_list: ``list`` of ``list``s of ``int`` + ``list`` that stores the indices of the hidden state factor indices that each hidden state factor depends on. For example, if ``B_factor_list[f] = [0, 1]``, then + the transitions in hidden state factor ``f`` depend on hidden state factors 0 and 1. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + use_utility: ``Bool``, default ``True`` + Boolean flag that determines whether expected utility should be incorporated into computation of EFE. + use_states_info_gain: ``Bool``, default ``True`` + Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. + use_param_info_gain: ``Bool``, default ``False`` + Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. + prior: ``numpy.ndarray`` of dtype object, default ``None`` + If provided, this is a ``numpy`` object array with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + pA: ``numpy.ndarray`` of dtype object, default ``None`` + Dirichlet parameters over observation model (same shape as ``A``) + pB: ``numpy.ndarray`` of dtype object, default ``None`` + Dirichlet parameters over transition model (same shape as ``B``) + F: 1D ``numpy.ndarray``, default ``None`` + Vector of variational free energies for each policy + E: 1D ``numpy.ndarray``, default ``None`` + Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits"). If ``None``, this defaults to a flat (uninformative) prior over policies. + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + gamma: ``float``, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + horizon = len(qs_seq_pi[0]) + num_policies = len(qs_seq_pi) + + qo_seq = utils.obj_array(horizon) + for t in range(horizon): + qo_seq[t] = utils.obj_array_zeros(num_obs) + + # initialise expected observations + qo_seq_pi = utils.obj_array(num_policies) + + # initialize (negative) expected free energies for all policies + G = np.zeros(num_policies) + + if F is None: + F = spm_log_single(np.ones(num_policies) / num_policies) + + if E is None: + lnE = spm_log_single(np.ones(num_policies) / num_policies) + else: + lnE = spm_log_single(E) + + if I is not None: + init_qs_all_pi = [qs_seq_pi[p][0] for p in range(num_policies)] + qs_bma = average_states_over_policies(init_qs_all_pi, softmax(E)) + + for p_idx, policy in enumerate(policies): + + qo_seq_pi[p_idx] = get_expected_obs_factorized(qs_seq_pi[p_idx], A, A_factor_list) + + if use_utility: + G[p_idx] += calc_expected_utility(qo_seq_pi[p_idx], C) + + if use_states_info_gain: + G[p_idx] += calc_states_info_gain_factorized(A, qs_seq_pi[p_idx], A_factor_list) + + if use_param_info_gain: + if pA is not None: + G[p_idx] += calc_pA_info_gain_factorized(pA, qo_seq_pi[p_idx], qs_seq_pi[p_idx], A_factor_list) + if pB is not None: + G[p_idx] += calc_pB_info_gain_interactions(pB, qs_seq_pi[p_idx], qs_seq_pi[p_idx], B_factor_list, policy) + + if I is not None: + G[p_idx] += calc_inductive_cost(qs_bma, qs_seq_pi[p_idx], I) + + q_pi = softmax(G * gamma - F + lnE) + + return q_pi, G + + +def update_posterior_policies( + qs, + A, + B, + C, + policies, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + pA=None, + pB=None, + E=None, + I=None, + gamma=16.0 +): + """ + Update posterior beliefs about policies by computing expected free energy of each policy and integrating that + with the prior over policies ``E``. This is intended to be used in conjunction + with the ``update_posterior_states`` method of the ``inference`` module, since only the posterior about the hidden states at the current timestep + ``qs`` is assumed to be provided, unconditional on policies. The predictive posterior over hidden states under all policies Q(s, pi) is computed + using the starting posterior about states at the current timestep ``qs`` and the generative model (e.g. ``A``, ``B``, ``C``) + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint (unconditioned on policies) + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + use_utility: ``Bool``, default ``True`` + Boolean flag that determines whether expected utility should be incorporated into computation of EFE. + use_states_info_gain: ``Bool``, default ``True`` + Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. + use_param_info_gain: ``Bool``, default ``False`` + Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. + pA: ``numpy.ndarray`` of dtype object, optional + Dirichlet parameters over observation model (same shape as ``A``) + pB: ``numpy.ndarray`` of dtype object, optional + Dirichlet parameters over transition model (same shape as ``B``) + E: 1D ``numpy.ndarray``, optional + Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits") + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + gamma: float, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + n_policies = len(policies) + G = np.zeros(n_policies) + q_pi = np.zeros((n_policies, 1)) + + if E is None: + lnE = spm_log_single(np.ones(n_policies) / n_policies) + else: + lnE = spm_log_single(E) + + for idx, policy in enumerate(policies): + qs_pi = get_expected_states(qs, B, policy) + qo_pi = get_expected_obs(qs_pi, A) + + if use_utility: + G[idx] += calc_expected_utility(qo_pi, C) + + if use_states_info_gain: + G[idx] += calc_states_info_gain(A, qs_pi) + + if use_param_info_gain: + if pA is not None: + G[idx] += calc_pA_info_gain(pA, qo_pi, qs_pi).item() + if pB is not None: + G[idx] += calc_pB_info_gain(pB, qs_pi, qs, policy).item() + + if I is not None: + G[idx] += calc_inductive_cost(qs, qs_pi, I) + + q_pi = softmax(G * gamma + lnE) + + return q_pi, G + +def update_posterior_policies_factorized( + qs, + A, + B, + C, + A_factor_list, + B_factor_list, + policies, + use_utility=True, + use_states_info_gain=True, + use_param_info_gain=False, + pA=None, + pB=None, + E=None, + I=None, + gamma=16.0 +): + """ + Update posterior beliefs about policies by computing expected free energy of each policy and integrating that + with the prior over policies ``E``. This is intended to be used in conjunction + with the ``update_posterior_states`` method of the ``inference`` module, since only the posterior about the hidden states at the current timestep + ``qs`` is assumed to be provided, unconditional on policies. The predictive posterior over hidden states under all policies Q(s, pi) is computed + using the starting posterior about states at the current timestep ``qs`` and the generative model (e.g. ``A``, ``B``, ``C``) + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint (unconditioned on policies) + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + A_factor_list: ``list`` of ``list``s of ``int`` + ``list`` that stores the indices of the hidden state factor indices that each observation modality depends on. For example, if ``A_factor_list[m] = [0, 1]``, then + observation modality ``m`` depends on hidden state factors 0 and 1. + B_factor_list: ``list`` of ``list``s of ``int`` + ``list`` that stores the indices of the hidden state factor indices that each hidden state factor depends on. For example, if ``B_factor_list[f] = [0, 1]``, then + the transitions in hidden state factor ``f`` depend on hidden state factors 0 and 1. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + use_utility: ``Bool``, default ``True`` + Boolean flag that determines whether expected utility should be incorporated into computation of EFE. + use_states_info_gain: ``Bool``, default ``True`` + Boolean flag that determines whether state epistemic value (info gain about hidden states) should be incorporated into computation of EFE. + use_param_info_gain: ``Bool``, default ``False`` + Boolean flag that determines whether parameter epistemic value (info gain about generative model parameters) should be incorporated into computation of EFE. + pA: ``numpy.ndarray`` of dtype object, optional + Dirichlet parameters over observation model (same shape as ``A``) + pB: ``numpy.ndarray`` of dtype object, optional + Dirichlet parameters over transition model (same shape as ``B``) + E: 1D ``numpy.ndarray``, optional + Vector of prior probabilities of each policy (what's referred to in the active inference literature as "habits") + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + gamma: float, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + n_policies = len(policies) + G = np.zeros(n_policies) + q_pi = np.zeros((n_policies, 1)) + + if E is None: + lnE = spm_log_single(np.ones(n_policies) / n_policies) + else: + lnE = spm_log_single(E) + + for idx, policy in enumerate(policies): + qs_pi = get_expected_states_interactions(qs, B, B_factor_list, policy) + qo_pi = get_expected_obs_factorized(qs_pi, A, A_factor_list) + + if use_utility: + G[idx] += calc_expected_utility(qo_pi, C) + + if use_states_info_gain: + G[idx] += calc_states_info_gain_factorized(A, qs_pi, A_factor_list) + + if use_param_info_gain: + if pA is not None: + G[idx] += calc_pA_info_gain_factorized(pA, qo_pi, qs_pi, A_factor_list).item() + if pB is not None: + G[idx] += calc_pB_info_gain_interactions(pB, qs_pi, qs, B_factor_list, policy).item() + + if I is not None: + G[idx] += calc_inductive_cost(qs, qs_pi, I) + + q_pi = softmax(G * gamma + lnE) + + return q_pi, G + +def get_expected_states(qs, B, policy): + """ + Compute the expected states under a policy, also known as the posterior predictive density over states + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at a given timepoint. + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + policy: 2D ``numpy.ndarray`` + Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + """ + n_steps = policy.shape[0] + n_factors = policy.shape[1] + + # initialise posterior predictive density as a list of beliefs over time, including current posterior beliefs about hidden states as the first element + qs_pi = [qs] + [utils.obj_array(n_factors) for t in range(n_steps)] + + # get expected states over time + for t in range(n_steps): + for control_factor, action in enumerate(policy[t,:]): + qs_pi[t+1][control_factor] = B[control_factor][:,:,int(action)].dot(qs_pi[t][control_factor]) + + return qs_pi[1:] + +def get_expected_states_interactions(qs, B, B_factor_list, policy): + """ + Compute the expected states under a policy, also known as the posterior predictive density over states + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at a given timepoint. + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + policy: 2D ``numpy.ndarray`` + Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + """ + n_steps = policy.shape[0] + n_factors = policy.shape[1] + + # initialise posterior predictive density as a list of beliefs over time, including current posterior beliefs about hidden states as the first element + qs_pi = [qs] + [utils.obj_array(n_factors) for t in range(n_steps)] + + # get expected states over time + for t in range(n_steps): + for control_factor, action in enumerate(policy[t,:]): + factor_idx = B_factor_list[control_factor] # list of the hidden state factor indices that the dynamics of `qs[control_factor]` depend on + qs_pi[t+1][control_factor] = spm_dot(B[control_factor][...,int(action)], qs_pi[t][factor_idx]) + + return qs_pi[1:] + +def get_expected_obs(qs_pi, A): + """ + Compute the expected observations under a policy, also known as the posterior predictive density over observations + + Parameters + ---------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + + Returns + ------- + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + """ + + n_steps = len(qs_pi) # each element of the list is the PPD at a different timestep + + # initialise expected observations + qo_pi = [] + + for t in range(n_steps): + qo_pi_t = utils.obj_array(len(A)) + qo_pi.append(qo_pi_t) + + # compute expected observations over time + for t in range(n_steps): + for modality, A_m in enumerate(A): + qo_pi[t][modality] = spm_dot(A_m, qs_pi[t]) + + return qo_pi + +def get_expected_obs_factorized(qs_pi, A, A_factor_list): + """ + Compute the expected observations under a policy, also known as the posterior predictive density over observations + + Parameters + ---------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factor indices that each observation modality depends on. Each element ``A_factor_list[i]`` is a list of the factor indices that modality i's observation model depends on. + Returns + ------- + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + """ + + n_steps = len(qs_pi) # each element of the list is the PPD at a different timestep + + # initialise expected observations + qo_pi = [] + + for t in range(n_steps): + qo_pi_t = utils.obj_array(len(A)) + qo_pi.append(qo_pi_t) + + # compute expected observations over time + for t in range(n_steps): + for modality, A_m in enumerate(A): + factor_idx = A_factor_list[modality] # list of the hidden state factor indices that observation modality with the index `modality` depends on + qo_pi[t][modality] = spm_dot(A_m, qs_pi[t][factor_idx]) + + return qo_pi + +def calc_expected_utility(qo_pi, C): + """ + Computes the expected utility of a policy, using the observation distribution expected under that policy and a prior preference vector. + + Parameters + ---------- + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility. + + Returns + ------- + expected_util: float + Utility (reward) expected under the policy in question + """ + n_steps = len(qo_pi) + + # initialise expected utility + expected_util = 0 + + # loop over time points and modalities + num_modalities = len(C) + + # reformat C to be tiled across timesteps, if it's not already + modalities_to_tile = [modality_i for modality_i in range(num_modalities) if C[modality_i].ndim == 1] + + # make a deepcopy of C where it has been tiled across timesteps + C_tiled = copy.deepcopy(C) + for modality in modalities_to_tile: + C_tiled[modality] = np.tile(C[modality][:,None], (1, n_steps) ) + + C_prob = softmax_obj_arr(C_tiled) # convert relative log probabilities into proper probability distribution + + for t in range(n_steps): + for modality in range(num_modalities): + + lnC = spm_log_single(C_prob[modality][:, t]) + expected_util += qo_pi[t][modality].dot(lnC) + + return expected_util + + +def calc_states_info_gain(A, qs_pi): + """ + Computes the Bayesian surprise or information gain about states of a policy, + using the observation model and the hidden state distribution expected under that policy. + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + + Returns + ------- + states_surprise: float + Bayesian surprise (about states) or salience expected under the policy in question + """ + + n_steps = len(qs_pi) + + states_surprise = 0 + for t in range(n_steps): + states_surprise += spm_MDP_G(A, qs_pi[t]) + + return states_surprise + +def calc_states_info_gain_factorized(A, qs_pi, A_factor_list): + """ + Computes the Bayesian surprise or information gain about states of a policy, + using the observation model and the hidden state distribution expected under that policy. + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + + Returns + ------- + states_surprise: float + Bayesian surprise (about states) or salience expected under the policy in question + """ + + n_steps = len(qs_pi) + + states_surprise = 0 + for t in range(n_steps): + for m, A_m in enumerate(A): + factor_idx = A_factor_list[m] # list of the hidden state factor indices that observation modality with the index `m` depends on + states_surprise += spm_MDP_G(A_m, qs_pi[t][factor_idx]) + + return states_surprise + + +def calc_pA_info_gain(pA, qo_pi, qs_pi): + """ + Compute expected Dirichlet information gain about parameters ``pA`` under a policy + + Parameters + ---------- + pA: ``numpy.ndarray`` of dtype object + Dirichlet parameters over observation model (same shape as ``A``) + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + + Returns + ------- + infogain_pA: float + Surprise (about Dirichlet parameters) expected under the policy in question + """ + + n_steps = len(qo_pi) + + num_modalities = len(pA) + wA = utils.obj_array(num_modalities) + for modality, pA_m in enumerate(pA): + wA[modality] = spm_wnorm(pA[modality]) + + pA_infogain = 0 + + for modality in range(num_modalities): + wA_modality = wA[modality] * (pA[modality] > 0).astype("float") + for t in range(n_steps): + pA_infogain -= qo_pi[t][modality].dot(spm_dot(wA_modality, qs_pi[t])[:, np.newaxis]) + + return pA_infogain + +def calc_pA_info_gain_factorized(pA, qo_pi, qs_pi, A_factor_list): + """ + Compute expected Dirichlet information gain about parameters ``pA`` under a policy. + In this version of the function, we assume that the observation model is factorized, i.e. that each observation modality depends on a subset of the hidden state factors. + + Parameters + ---------- + pA: ``numpy.ndarray`` of dtype object + Dirichlet parameters over observation model (same shape as ``A``) + qo_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over observations expected under the policy, where ``qo_pi[t]`` stores the beliefs about + observations expected under the policy at time ``t`` + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + + Returns + ------- + infogain_pA: float + Surprise (about Dirichlet parameters) expected under the policy in question + """ + + n_steps = len(qo_pi) + + num_modalities = len(pA) + wA = utils.obj_array(num_modalities) + for modality, pA_m in enumerate(pA): + wA[modality] = spm_wnorm(pA[modality]) + + pA_infogain = 0 + + for modality in range(num_modalities): + wA_modality = wA[modality] * (pA[modality] > 0).astype("float") + factor_idx = A_factor_list[modality] + for t in range(n_steps): + pA_infogain -= qo_pi[t][modality].dot(spm_dot(wA_modality, qs_pi[t][factor_idx])[:, np.newaxis]) + + return pA_infogain + +def calc_pB_info_gain(pB, qs_pi, qs_prev, policy): + """ + Compute expected Dirichlet information gain about parameters ``pB`` under a given policy + + Parameters + ---------- + pB: ``numpy.ndarray`` of dtype object + Dirichlet parameters over transition model (same shape as ``B``) + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + qs_prev: ``numpy.ndarray`` of dtype object + Posterior over hidden states at beginning of trajectory (before receiving observations) + policy: 2D ``numpy.ndarray`` + Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ------- + infogain_pB: float + Surprise (about dirichlet parameters) expected under the policy in question + """ + + n_steps = len(qs_pi) + + num_factors = len(pB) + wB = utils.obj_array(num_factors) + for factor, pB_f in enumerate(pB): + wB[factor] = spm_wnorm(pB_f) + + pB_infogain = 0 + + for t in range(n_steps): + # the 'past posterior' used for the information gain about pB here is the posterior + # over expected states at the timestep previous to the one under consideration + # if we're on the first timestep, we just use the latest posterior in the + # entire action-perception cycle as the previous posterior + if t == 0: + previous_qs = qs_prev + # otherwise, we use the expected states for the timestep previous to the timestep under consideration + else: + previous_qs = qs_pi[t - 1] + + # get the list of action-indices for the current timestep + policy_t = policy[t, :] + for factor, a_i in enumerate(policy_t): + wB_factor_t = wB[factor][:, :, int(a_i)] * (pB[factor][:, :, int(a_i)] > 0).astype("float") + pB_infogain -= qs_pi[t][factor].dot(wB_factor_t.dot(previous_qs[factor])) + + return pB_infogain + +def calc_pB_info_gain_interactions(pB, qs_pi, qs_prev, B_factor_list, policy): + """ + Compute expected Dirichlet information gain about parameters ``pB`` under a given policy + + Parameters + ---------- + pB: ``numpy.ndarray`` of dtype object + Dirichlet parameters over transition model (same shape as ``B``) + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + qs_prev: ``numpy.ndarray`` of dtype object + Posterior over hidden states at beginning of trajectory (before receiving observations) + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``B_factor_list[f]`` is a list of the hidden state factor indices that hidden state factor with the index ``f`` depends on + policy: 2D ``numpy.ndarray`` + Array that stores actions entailed by a policy over time. Shape is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ------- + infogain_pB: float + Surprise (about dirichlet parameters) expected under the policy in question + """ + + n_steps = len(qs_pi) + + num_factors = len(pB) + wB = utils.obj_array(num_factors) + for factor, pB_f in enumerate(pB): + wB[factor] = spm_wnorm(pB_f) + + pB_infogain = 0 + + for t in range(n_steps): + # the 'past posterior' used for the information gain about pB here is the posterior + # over expected states at the timestep previous to the one under consideration + # if we're on the first timestep, we just use the latest posterior in the + # entire action-perception cycle as the previous posterior + if t == 0: + previous_qs = qs_prev + # otherwise, we use the expected states for the timestep previous to the timestep under consideration + else: + previous_qs = qs_pi[t - 1] + + # get the list of action-indices for the current timestep + policy_t = policy[t, :] + for factor, a_i in enumerate(policy_t): + wB_factor_t = wB[factor][...,int(a_i)] * (pB[factor][...,int(a_i)] > 0).astype("float") + f_idx = B_factor_list[factor] + pB_infogain -= qs_pi[t][factor].dot(spm_dot(wB_factor_t, previous_qs[f_idx])) + + return pB_infogain + +def calc_inductive_cost(qs, qs_pi, I, epsilon=1e-3): + """ + Computes the inductive cost of a state. + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at a given timepoint. + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + states expected under the policy at time ``t`` + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + + Returns + ------- + inductive_cost: float + Cost of visited this state using backwards induction under the policy in question + """ + n_steps = len(qs_pi) + + # initialise inductive cost + inductive_cost = 0 + + # loop over time points and modalities + num_factors = len(I) + + for t in range(n_steps): + for factor in range(num_factors): + # we also assume precise beliefs here?! + idx = np.argmax(qs[factor]) + # m = arg max_n p_n < sup p + # i.e. find first I idx equals 1 and m is the index before + m = np.where(I[factor][:, idx] == 1)[0] + # we might find no path to goal (i.e. when no goal specified) + if len(m) > 0: + m = max(m[0]-1, 0) + I_m = (1-I[factor][m, :]) * np.log(epsilon) + inductive_cost += I_m.dot(qs_pi[t][factor]) + + return inductive_cost + +def construct_policies(num_states, num_controls = None, policy_len=1, control_fac_idx=None): + """ + Generate a ``list`` of policies. The returned array ``policies`` is a ``list`` that stores one policy per entry. + A particular policy (``policies[i]``) has shape ``(num_timesteps, num_factors)`` + where ``num_timesteps`` is the temporal depth of the policy and ``num_factors`` is the number of control factors. + + Parameters + ---------- + num_states: ``list`` of ``int`` + ``list`` of the dimensionalities of each hidden state factor + num_controls: ``list`` of ``int``, default ``None`` + ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable + policy_len: ``int``, default 1 + temporal depth ("planning horizon") of policies + control_fac_idx: ``list`` of ``int`` + ``list`` of indices of the hidden state factors that are controllable (i.e. those state factors ``i`` where ``num_controls[i] > 1``) + + Returns + ---------- + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + """ + + num_factors = len(num_states) + if control_fac_idx is None: + if num_controls is not None: + control_fac_idx = [f for f, n_c in enumerate(num_controls) if n_c > 1] + else: + control_fac_idx = list(range(num_factors)) + + if num_controls is None: + num_controls = [num_states[c_idx] if c_idx in control_fac_idx else 1 for c_idx in range(num_factors)] + + x = num_controls * policy_len + policies = list(itertools.product(*[list(range(i)) for i in x])) + for pol_i in range(len(policies)): + policies[pol_i] = np.array(policies[pol_i]).reshape(policy_len, num_factors) + + return policies + +def get_num_controls_from_policies(policies): + """ + Calculates the ``list`` of dimensionalities of control factors (``num_controls``) + from the ``list`` or array of policies. This assumes a policy space such that for each control factor, there is at least + one policy that entails taking the action with the maximum index along that control factor. + + Parameters + ---------- + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + + Returns + ---------- + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor, computed here automatically from a ``list`` of policies. + """ + + return list(np.max(np.vstack(policies), axis = 0) + 1) + + +def sample_action(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0): + """ + Computes the marginal posterior over actions and then samples an action from it, one action per control factor. + + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: ``str``, default "deterministic" + String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, + or whether it's sampled from the posterior marginal over actions + alpha: ``float``, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" + + Returns + ---------- + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + num_factors = len(num_controls) + + action_marginals = utils.obj_array_zeros(num_controls) + + # weight each action according to its integrated posterior probability under all policies at the current timestep + for pol_idx, policy in enumerate(policies): + for factor_i, action_i in enumerate(policy[0, :]): + action_marginals[factor_i][action_i] += q_pi[pol_idx] + + action_marginals = utils.norm_dist_obj_arr(action_marginals) + + selected_policy = np.zeros(num_factors) + for factor_i in range(num_factors): + + # Either you do this: + if action_selection == 'deterministic': + selected_policy[factor_i] = select_highest(action_marginals[factor_i]) + elif action_selection == 'stochastic': + log_marginal_f = spm_log_single(action_marginals[factor_i]) + p_actions = softmax(log_marginal_f * alpha) + selected_policy[factor_i] = utils.sample(p_actions) + + return selected_policy + +def _sample_action_test(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0, seed=None): + """ + Computes the marginal posterior over actions and then samples an action from it, one action per control factor. + Internal testing version that returns the marginal posterior over actions, and also has a seed argument for reproducibility. + + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: ``str``, default "deterministic" + String indicating whether whether the selected action is chosen as the maximum of the posterior over actions, + or whether it's sampled from the posterior marginal over actions + alpha: float, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + action marginals before sampling. This is only used if ``action_selection`` argument is "stochastic" + seed: ``int``, default None + The seed can be set to control the random sampling that occurs when ``action_selection`` is "deterministic" but there are more than one actions with the same maximum posterior probability. + + + Returns + ---------- + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + p_actions: ``numpy.ndarray`` of dtype object + Marginal posteriors over actions, after softmaxing and scaling with action precision. This distribution will be used to sample actions, + if``action_selection`` argument is "stochastic" + """ + + num_factors = len(num_controls) + + action_marginals = utils.obj_array_zeros(num_controls) + + # weight each action according to its integrated posterior probability under all policies at the current timestep + for pol_idx, policy in enumerate(policies): + for factor_i, action_i in enumerate(policy[0, :]): + action_marginals[factor_i][action_i] += q_pi[pol_idx] + + action_marginals = utils.norm_dist_obj_arr(action_marginals) + + selected_policy = np.zeros(num_factors) + p_actions = utils.obj_array_zeros(num_controls) + for factor_i in range(num_factors): + if action_selection == 'deterministic': + p_actions[factor_i] = action_marginals[factor_i] + selected_policy[factor_i] = _select_highest_test(p_actions[factor_i], seed=seed) + elif action_selection == 'stochastic': + log_marginal_f = spm_log_single(action_marginals[factor_i]) + p_actions[factor_i] = softmax(log_marginal_f * alpha) + selected_policy[factor_i] = utils.sample(p_actions[factor_i]) + + return selected_policy, p_actions + +def sample_policy(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0): + """ + Samples a policy from the posterior over policies, taking the action (per control factor) entailed by the first timestep of the selected policy. + + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: string, default "deterministic" + String indicating whether whether the selected policy is chosen as the maximum of the posterior over policies, + or whether it's sampled from the posterior over policies. + alpha: float, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + policy posterior before sampling. This is only used if ``action_selection`` argument is "stochastic" + + Returns + ---------- + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + num_factors = len(num_controls) + + if action_selection == "deterministic": + policy_idx = select_highest(q_pi) + elif action_selection == "stochastic": + log_qpi = spm_log_single(q_pi) + p_policies = softmax(log_qpi * alpha) + policy_idx = utils.sample(p_policies) + + selected_policy = np.zeros(num_factors) + for factor_i in range(num_factors): + selected_policy[factor_i] = policies[policy_idx][0, factor_i] + + return selected_policy + +def _sample_policy_test(q_pi, policies, num_controls, action_selection="deterministic", alpha = 16.0, seed=None): + """ + Test version of sampling a policy from the posterior over policies, taking the action (per control factor) entailed by the first timestep of the selected policy. + This test version also returns the probability distribution over policies, and also has a seed argument for reproducibility. + Parameters + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + policies: ``list`` of 2D ``numpy.ndarray`` + ``list`` that stores each policy as a 2D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_timesteps, num_factors)`` where ``num_timesteps`` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + num_controls: ``list`` of ``int`` + ``list`` of the dimensionalities of each control state factor. + action_selection: string, default "deterministic" + String indicating whether whether the selected policy is chosen as the maximum of the posterior over policies, + or whether it's sampled from the posterior over policies. + alpha: float, default 16.0 + Action selection precision -- the inverse temperature of the softmax that is used to scale the + policy posterior before sampling. This is only used if ``action_selection`` argument is "stochastic" + seed: ``int``, default None + The seed can be set to control the random sampling that occurs when ``action_selection`` is "deterministic" but there are more than one actions with the same maximum posterior probability. + + + Returns + ---------- + selected_policy: 1D ``numpy.ndarray`` + Vector containing the indices of the actions for each control factor + """ + + num_factors = len(num_controls) + + if action_selection == "deterministic": + p_policies = q_pi + policy_idx = _select_highest_test(p_policies, seed=seed) + elif action_selection == "stochastic": + log_qpi = spm_log_single(q_pi) + p_policies = softmax(log_qpi * alpha) + policy_idx = utils.sample(p_policies) + + selected_policy = np.zeros(num_factors) + for factor_i in range(num_factors): + selected_policy[factor_i] = policies[policy_idx][0, factor_i] + + return selected_policy, p_policies + + +def select_highest(options_array): + """ + Selects the highest value among the provided ones. If the higher value is more than once and they're closer than 1e-5, a random choice is made. + Parameters + ---------- + options_array: ``numpy.ndarray`` + The array to examine + + Returns + ------- + The highest value in the given list + """ + options_with_idx = np.array(list(enumerate(options_array))) + same_prob = options_with_idx[ + abs(options_with_idx[:, 1] - np.amax(options_with_idx[:, 1])) <= 1e-8][:, 0] + if len(same_prob) > 1: + # If some of the most likely actions have nearly equal probability, sample from this subset of actions, instead of using argmax + return int(same_prob[np.random.choice(len(same_prob))]) + + return int(same_prob[0]) + +def _select_highest_test(options_array, seed=None): + """ + (Test version with seed argument for reproducibility) Selects the highest value among the provided ones. If the higher value is more than once and they're closer than 1e-8, a random choice is made. + Parameters + ---------- + options_array: ``numpy.ndarray`` + The array to examine + + Returns + ------- + The highest value in the given list + """ + options_with_idx = np.array(list(enumerate(options_array))) + same_prob = options_with_idx[ + abs(options_with_idx[:, 1] - np.amax(options_with_idx[:, 1])) <= 1e-8][:, 0] + if len(same_prob) > 1: + # If some of the most likely actions have nearly equal probability, sample from this subset of actions, instead of using argmax + rng = np.random.default_rng(seed) + return int(same_prob[rng.choice(len(same_prob))]) + + return int(same_prob[0]) + + +def backwards_induction(H, B, B_factor_list, threshold, depth): + """ + Runs backwards induction of reaching a goal state H given a transition model B. + + Parameters + ---------- + H: ``numpy.ndarray`` of dtype object + Prior over states + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + threshold: ``float`` + The threshold for pruning transitions that are below a certain probability + depth: ``int`` + The temporal depth of the backward induction + + Returns + ---------- + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + """ + # TODO can this be done with arbitrary B_factor_list? + + num_factors = len(H) + I = utils.obj_array(num_factors) + for factor in range(num_factors): + I[factor] = np.zeros((depth, H[factor].shape[0])) + I[factor][0, :] = H[factor] + + bf = factor + if B_factor_list is not None: + if len(B_factor_list[factor]) > 1: + raise ValueError("Backwards induction with factorized transition model not yet implemented") + bf = B_factor_list[factor][0] + + num_states, _, _ = B[bf].shape + b = np.zeros((num_states, num_states)) + + for state in range(num_states): + for next_state in range(num_states): + # If there exists an action that allows transitioning + # from state to next_state, with probability larger than threshold + # set b[state, next_state] to 1 + if np.any(B[bf][next_state, state, :] > threshold): + b[next_state, state] = 1 + + for i in range(1, depth): + I[factor][i, :] = np.dot(b, I[factor][i-1, :]) + I[factor][i, :] = np.where(I[factor][i, :] > 0.1, 1.0, 0.0) + # TODO stop when all 1s? + + return I + +def calc_ambiguity_factorized(qs_pi, A, A_factor_list): + """ + Computes the Ambiguity term. + + Parameters + ---------- + qs_pi: ``list`` of ``numpy.ndarray`` of dtype object + Predictive posterior beliefs over hidden states expected under the policy, where ``qs_pi[t]`` stores the beliefs about + hidden states expected under the policy at time ``t`` + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + + Returns + ------- + ambiguity: float + """ + + n_steps = len(qs_pi) + + ambiguity = 0 + # TODO check if we do this correctly! + H = entropy(A) + for t in range(n_steps): + for m, H_m in enumerate(H): + factor_idx = A_factor_list[m] + # TODO why does spm_dot return an array here? + # joint_x = maths.spm_cross(qs_pi[t][factor_idx]) + # ambiguity += (H_m * joint_x).sum() + ambiguity += np.sum(spm_dot(H_m, qs_pi[t][factor_idx])) + + return ambiguity + + +def sophisticated_inference_search(qs, policies, A, B, C, A_factor_list, B_factor_list, I=None, horizon=1, + policy_prune_threshold=1/16, state_prune_threshold=1/16, prune_penalty=512, gamma=16, + inference_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": False}, n=0): + """ + Performs sophisticated inference to find the optimal policy for a given generative model and prior preferences. + + Parameters + ---------- + qs: ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at a given timepoint. + policies: ``list`` of 1D ``numpy.ndarray`` inference_params = {"num_iter": 10, "dF": 1.0, "dF_tol": 0.001, "compute_vfe": False} + + ``list`` that stores each policy as a 1D array in ``policies[p_idx]``. Shape of ``policies[p_idx]`` + is ``(num_factors)`` where ``num_factors`` is the number of control factors. + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + C: ``numpy.ndarray`` of dtype object + Prior over observations or 'prior preferences', storing the "value" of each outcome in terms of relative log probabilities. + This is softmaxed to form a proper probability distribution before being used to compute the expected utility term of the expected free energy. + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where ``A_factor_list[m]`` is a list of the hidden state factor indices that observation modality with the index ``m`` depends on + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + I: ``numpy.ndarray`` of dtype object + For each state factor, contains a 2D ``numpy.ndarray`` whose element i,j yields the probability + of reaching the goal state backwards from state j after i steps. + horizon: ``int`` + The temporal depth of the policy + policy_prune_threshold: ``float`` + The threshold for pruning policies that are below a certain probability + state_prune_threshold: ``float`` + The threshold for pruning states in the expectation that are below a certain probability + prune_penalty: ``float`` + Penalty to add to the EFE when a policy is pruned + gamma: ``float``, default 16.0 + Prior precision over policies, scales the contribution of the expected free energy to the posterior over policies + n: ``int`` + timestep in the future we are calculating + + Returns + ---------- + q_pi: 1D ``numpy.ndarray`` + Posterior beliefs over policies, i.e. a vector containing one posterior probability per policy. + + G: 1D ``numpy.ndarray`` + Negative expected free energies of each policy, i.e. a vector containing one negative expected free energy per policy. + """ + + n_policies = len(policies) + G = np.zeros(n_policies) + q_pi = np.zeros((n_policies, 1)) + qs_pi = utils.obj_array(n_policies) + qo_pi = utils.obj_array(n_policies) + + for idx, policy in enumerate(policies): + qs_pi[idx] = get_expected_states_interactions(qs, B, B_factor_list, policy) + qo_pi[idx] = get_expected_obs_factorized(qs_pi[idx], A, A_factor_list) + + G[idx] += calc_expected_utility(qo_pi[idx], C) + G[idx] += calc_states_info_gain_factorized(A, qs_pi[idx], A_factor_list) + + if I is not None: + G[idx] += calc_inductive_cost(qs, qs_pi[idx], I) + + q_pi = softmax(G * gamma) + + if n < horizon - 1: + # ignore low probability actions in the search tree + # TODO shouldnt we have to add extra penalty for branches no longer considered? + # or assume these are already low EFE (high NEFE) anyway? + policies_to_consider = list(np.where(q_pi >= policy_prune_threshold)[0]) + for idx in range(n_policies): + if idx not in policies_to_consider: + G[idx] -= prune_penalty + else : + # average over outcomes + qo_next = qo_pi[idx][0] + for k in itertools.product(*[range(s.shape[0]) for s in qo_next]): + prob = 1.0 + for i in range(len(k)): + prob *= qo_pi[idx][0][i][k[i]] + + # ignore low probability states in the search tree + if prob < state_prune_threshold: + continue + + qo_one_hot = utils.obj_array(len(qo_next)) + for i in range(len(qo_one_hot)): + qo_one_hot[i] = utils.onehot(k[i], qo_next[i].shape[0]) + + num_obs = [A[m].shape[0] for m in range(len(A))] + num_states = [B[f].shape[0] for f in range(len(B))] + A_modality_list = [] + for f in range(len(B)): + A_modality_list.append( [m for m in range(len(A)) if f in A_factor_list[m]] ) + mb_dict = { + 'A_factor_list': A_factor_list, + 'A_modality_list': A_modality_list + } + qs_next = update_posterior_states_factorized(A, qo_one_hot, num_obs, num_states, mb_dict, qs_pi[idx][0], **inference_params) + q_pi_next, G_next = sophisticated_inference_search(qs_next, policies, A, B, C, A_factor_list, B_factor_list, I, + horizon, policy_prune_threshold, state_prune_threshold, + prune_penalty, gamma, inference_params, n+1) + G_weighted = np.dot(q_pi_next, G_next) * prob + G[idx] += G_weighted + + q_pi = softmax(G * gamma) + return q_pi, G \ No newline at end of file diff --git a/pymdp/default_models.py b/pymdp/legacy/default_models.py similarity index 99% rename from pymdp/default_models.py rename to pymdp/legacy/default_models.py index bd93bf93..cc6885c4 100644 --- a/pymdp/default_models.py +++ b/pymdp/legacy/default_models.py @@ -1,6 +1,6 @@ import numpy as np -from pymdp import utils, maths +from pymdp.legacy import utils, maths def generate_epistemic_MAB_model(): ''' diff --git a/pymdp/legacy/envs/__init__.py b/pymdp/legacy/envs/__init__.py new file mode 100644 index 00000000..6d97928f --- /dev/null +++ b/pymdp/legacy/envs/__init__.py @@ -0,0 +1,4 @@ +from .env import Env +from .grid_worlds import GridWorldEnv, DGridWorldEnv +from .visual_foraging import SceneConstruction, RandomDotMotion, initialize_scene_construction_GM, initialize_RDM_GM +from .tmaze import TMazeEnv, TMazeEnvNullOutcome diff --git a/pymdp/legacy/envs/env.py b/pymdp/legacy/envs/env.py new file mode 100644 index 00000000..635e4e98 --- /dev/null +++ b/pymdp/legacy/envs/env.py @@ -0,0 +1,87 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Environment Base Class + +__author__: Conor Heins, Alexander Tschantz, Brennan Klein + +""" + + +class Env(object): + """ + The Env base class, loosely-inspired by the analogous ``env`` class of the OpenAIGym framework. + + A typical workflow is as follows: + + >>> my_env = MyCustomEnv() + >>> initial_observation = my_env.reset(initial_state) + >>> my_agent.infer_states(initial_observation) + >>> my_agent.infer_policies() + >>> next_action = my_agent.sample_action() + >>> next_observation = my_env.step(next_action) + + This would be the first step of an active inference process, where a sub-class of ``Env``, ``MyCustomEnv`` is initialized, + an initial observation is produced, and these observations are fed into an instance of ``Agent`` in order to produce an action, + that can then be fed back into the the ``Env`` instance. + + """ + + def reset(self, state=None): + """ + Resets the initial state of the environment. Depending on case, it may be common to return an initial observation as well. + """ + raise NotImplementedError + + def step(self, action): + """ + Steps the environment forward using an action. + + Parameters + ---------- + action + The action, the type/format of which depends on the implementation. + + Returns + --------- + observation + Sensory observations for an agent, the type/format of which depends on the implementation of ``step`` and the observation space of the agent. + """ + raise NotImplementedError + + def render(self): + """ + Rendering function, that typically creates a visual representation of the state of the environment at the current timestep. + """ + pass + + def sample_action(self): + pass + + def get_likelihood_dist(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def get_transition_dist(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def get_uniform_posterior(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def get_rand_likelihood_dist(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def get_rand_transition_dist(self): + raise ValueError( + "<{}> does not provide a model specification".format(type(self).__name__) + ) + + def __str__(self): + return "<{} instance>".format(type(self).__name__) diff --git a/pymdp/envs/grid_worlds.py b/pymdp/legacy/envs/grid_worlds.py similarity index 99% rename from pymdp/envs/grid_worlds.py rename to pymdp/legacy/envs/grid_worlds.py index f27be9d4..15f6b57b 100644 --- a/pymdp/envs/grid_worlds.py +++ b/pymdp/legacy/envs/grid_worlds.py @@ -12,7 +12,7 @@ import seaborn as sns -from pymdp.envs import Env +from pymdp.legacy.envs import Env class GridWorldEnv(Env): diff --git a/pymdp/legacy/envs/tmaze.py b/pymdp/legacy/envs/tmaze.py new file mode 100644 index 00000000..7377c281 --- /dev/null +++ b/pymdp/legacy/envs/tmaze.py @@ -0,0 +1,346 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" T Maze Environment (Factorized) + +__author__: Conor Heins, Alexander Tschantz, Brennan Klein + +""" + +from pymdp.legacy.envs import Env +from pymdp.legacy import utils, maths +import numpy as np + +LOCATION_FACTOR_ID = 0 +TRIAL_FACTOR_ID = 1 + +LOCATION_MODALITY_ID = 0 +REWARD_MODALITY_ID = 1 +CUE_MODALITY_ID = 2 + +REWARD_IDX = 1 +LOSS_IDX = 2 + + +class TMazeEnv(Env): + """ Implementation of the 3-arm T-Maze environment """ + def __init__(self, reward_probs=None): + + if reward_probs is None: + a = 0.98 + b = 1.0 - a + self.reward_probs = [a, b] + else: + if sum(reward_probs) != 1: + raise ValueError("Reward probabilities must sum to 1!") + elif len(reward_probs) != 2: + raise ValueError("Only two reward conditions currently supported...") + else: + self.reward_probs = reward_probs + + self.num_states = [4, 2] + self.num_locations = self.num_states[LOCATION_FACTOR_ID] + self.num_controls = [self.num_locations, 1] + self.num_reward_conditions = self.num_states[TRIAL_FACTOR_ID] + self.num_cues = self.num_reward_conditions + self.num_obs = [self.num_locations, self.num_reward_conditions + 1, self.num_cues] + self.num_factors = len(self.num_states) + self.num_modalities = len(self.num_obs) + + self._transition_dist = self._construct_transition_dist() + self._likelihood_dist = self._construct_likelihood_dist() + + self._reward_condition = None + self._state = None + + def reset(self, state=None): + if state is None: + loc_state = utils.onehot(0, self.num_locations) + + self._reward_condition = np.random.randint(self.num_reward_conditions) # randomly select a reward condition + reward_condition = utils.onehot(self._reward_condition, self.num_reward_conditions) + + full_state = utils.obj_array(self.num_factors) + full_state[LOCATION_FACTOR_ID] = loc_state + full_state[TRIAL_FACTOR_ID] = reward_condition + self._state = full_state + else: + self._state = state + return self._get_observation() + + def step(self, actions): + prob_states = utils.obj_array(self.num_factors) + for factor, state in enumerate(self._state): + prob_states[factor] = self._transition_dist[factor][:, :, int(actions[factor])].dot(state) + state = [utils.sample(ps_i) for ps_i in prob_states] + self._state = self._construct_state(state) + return self._get_observation() + + def render(self): + pass + + def sample_action(self): + return [np.random.randint(self.num_controls[i]) for i in range(self.num_factors)] + + def get_likelihood_dist(self): + return self._likelihood_dist + + def get_transition_dist(self): + return self._transition_dist + + + def get_rand_likelihood_dist(self): + pass + + def get_rand_transition_dist(self): + pass + + def _get_observation(self): + + prob_obs = [maths.spm_dot(A_m, self._state) for A_m in self._likelihood_dist] + + obs = [utils.sample(po_i) for po_i in prob_obs] + return obs + + def _construct_transition_dist(self): + B_locs = np.eye(self.num_locations) + B_locs = B_locs.reshape(self.num_locations, self.num_locations, 1) + B_locs = np.tile(B_locs, (1, 1, self.num_locations)) + B_locs = B_locs.transpose(1, 2, 0) + + B = utils.obj_array(self.num_factors) + + B[LOCATION_FACTOR_ID] = B_locs + B[TRIAL_FACTOR_ID] = np.eye(self.num_reward_conditions).reshape( + self.num_reward_conditions, self.num_reward_conditions, 1 + ) + return B + + def _construct_likelihood_dist(self): + + A = utils.obj_array_zeros([ [obs_dim] + self.num_states for obs_dim in self.num_obs] ) + + for loc in range(self.num_states[LOCATION_FACTOR_ID]): + for reward_condition in range(self.num_states[TRIAL_FACTOR_ID]): + + # The case when the agent is in the centre location + if loc == 0: + # When in the centre location, reward observation is always 'no reward' + # or the outcome with index 0 + A[REWARD_MODALITY_ID][0, loc, reward_condition] = 1.0 + + # When in the centre location, cue is totally ambiguous with respect to the reward condition + A[CUE_MODALITY_ID][:, loc, reward_condition] = 1.0 / self.num_obs[2] + + # The case when loc == 3, or the cue location ('bottom arm') + elif loc == 3: + + # When in the cue location, reward observation is always 'no reward' + # or the outcome with index 0 + A[REWARD_MODALITY_ID][0, loc, reward_condition] = 1.0 + + # When in the cue location, the cue indicates the reward condition umambiguously + # signals where the reward is located + A[CUE_MODALITY_ID][reward_condition, loc, reward_condition] = 1.0 + + # The case when the agent is in one of the (potentially-) rewarding armS + else: + + # When location is consistent with reward condition + if loc == (reward_condition + 1): + # Means highest probability is concentrated over reward outcome + high_prob_idx = REWARD_IDX + # Lower probability on loss outcome + low_prob_idx = LOSS_IDX + else: + # Means highest probability is concentrated over loss outcome + high_prob_idx = LOSS_IDX + # Lower probability on reward outcome + low_prob_idx = REWARD_IDX + + reward_probs = self.reward_probs[0] + A[REWARD_MODALITY_ID][high_prob_idx, loc, reward_condition] = reward_probs + + reward_probs = self.reward_probs[1] + A[REWARD_MODALITY_ID][low_prob_idx, loc, reward_condition] = reward_probs + + # Cue is ambiguous when in the reward location + A[CUE_MODALITY_ID][:, loc, reward_condition] = 1.0 / self.num_obs[2] + + # The agent always observes its location, regardless of the reward condition + A[LOCATION_MODALITY_ID][loc, loc, reward_condition] = 1.0 + + return A + + def _construct_state(self, state_tuple): + + state = utils.obj_array(self.num_factors) + for f, ns in enumerate(self.num_states): + state[f] = utils.onehot(state_tuple[f], ns) + + return state + + @property + def state(self): + return self._state + + @property + def reward_condition(self): + return self._reward_condition + + +class TMazeEnvNullOutcome(Env): + """ Implementation of the 3-arm T-Maze environment where there is an additional null outcome within the cue modality, so that the agent + doesn't get a random cue observation, but a null one, when it visits non-cue locations""" + + def __init__(self, reward_probs=None): + + if reward_probs is None: + a = 0.98 + b = 1.0 - a + self.reward_probs = [a, b] + else: + if sum(reward_probs) != 1: + raise ValueError("Reward probabilities must sum to 1!") + elif len(reward_probs) != 2: + raise ValueError("Only two reward conditions currently supported...") + else: + self.reward_probs = reward_probs + + self.num_states = [4, 2] + self.num_locations = self.num_states[LOCATION_FACTOR_ID] + self.num_controls = [self.num_locations, 1] + self.num_reward_conditions = self.num_states[TRIAL_FACTOR_ID] + self.num_cues = self.num_reward_conditions + self.num_obs = [self.num_locations, self.num_reward_conditions + 1, self.num_cues + 1] + self.num_factors = len(self.num_states) + self.num_modalities = len(self.num_obs) + + self._transition_dist = self._construct_transition_dist() + self._likelihood_dist = self._construct_likelihood_dist() + + self._reward_condition = None + self._state = None + + def reset(self, state=None): + if state is None: + loc_state = utils.onehot(0, self.num_locations) + + self._reward_condition = np.random.randint(self.num_reward_conditions) # randomly select a reward condition + reward_condition = utils.onehot(self._reward_condition, self.num_reward_conditions) + + full_state = utils.obj_array(self.num_factors) + full_state[LOCATION_FACTOR_ID] = loc_state + full_state[TRIAL_FACTOR_ID] = reward_condition + self._state = full_state + else: + self._state = state + return self._get_observation() + + def step(self, actions): + prob_states = utils.obj_array(self.num_factors) + for factor, state in enumerate(self._state): + prob_states[factor] = self._transition_dist[factor][:, :, int(actions[factor])].dot(state) + state = [utils.sample(ps_i) for ps_i in prob_states] + self._state = self._construct_state(state) + return self._get_observation() + + + def sample_action(self): + return [np.random.randint(self.num_controls[i]) for i in range(self.num_factors)] + + def get_likelihood_dist(self): + return self._likelihood_dist.copy() + + def get_transition_dist(self): + return self._transition_dist.copy() + + def _get_observation(self): + + prob_obs = [maths.spm_dot(A_m, self._state) for A_m in self._likelihood_dist] + + obs = [utils.sample(po_i) for po_i in prob_obs] + return obs + + def _construct_transition_dist(self): + B_locs = np.eye(self.num_locations) + B_locs = B_locs.reshape(self.num_locations, self.num_locations, 1) + B_locs = np.tile(B_locs, (1, 1, self.num_locations)) + B_locs = B_locs.transpose(1, 2, 0) + + B = utils.obj_array(self.num_factors) + + B[LOCATION_FACTOR_ID] = B_locs + B[TRIAL_FACTOR_ID] = np.eye(self.num_reward_conditions).reshape( + self.num_reward_conditions, self.num_reward_conditions, 1 + ) + return B + + def _construct_likelihood_dist(self): + + A = utils.obj_array_zeros([ [obs_dim] + self.num_states for _, obs_dim in enumerate(self.num_obs)] ) + + for loc in range(self.num_states[LOCATION_FACTOR_ID]): + for reward_condition in range(self.num_states[TRIAL_FACTOR_ID]): + + if loc == 0: # the case when the agent is in the centre location + # When in the centre location, reward observation is always 'no reward', or the outcome with index 0 + A[REWARD_MODALITY_ID][0, loc, reward_condition] = 1.0 + + # When in the center location, cue observation is always 'no cue', or the outcome with index 0 + A[CUE_MODALITY_ID][0, loc, reward_condition] = 1.0 + + # The case when loc == 3, or the cue location ('bottom arm') + elif loc == 3: + + # When in the cue location, reward observation is always 'no reward', or the outcome with index 0 + A[REWARD_MODALITY_ID][0, loc, reward_condition] = 1.0 + + # When in the cue location, the cue indicates the reward condition umambiguously + # signals where the reward is located + A[CUE_MODALITY_ID][reward_condition + 1, loc, reward_condition] = 1.0 + + # The case when the agent is in one of the (potentially-) rewarding arms + else: + + # When location is consistent with reward condition + if loc == (reward_condition + 1): + # Means highest probability is concentrated over reward outcome + high_prob_idx = REWARD_IDX + # Lower probability on loss outcome + low_prob_idx = LOSS_IDX # + else: + # Means highest probability is concentrated over loss outcome + high_prob_idx = LOSS_IDX + # Lower probability on reward outcome + low_prob_idx = REWARD_IDX + + reward_probs = self.reward_probs[0] + A[REWARD_MODALITY_ID][high_prob_idx, loc, reward_condition] = reward_probs + reward_probs = self.reward_probs[1] + A[REWARD_MODALITY_ID][low_prob_idx, loc, reward_condition] = reward_probs + + # When in the one of the rewarding arms, cue observation is always 'no cue', or the outcome with index 0 + A[CUE_MODALITY_ID][0, loc, reward_condition] = 1.0 + + # The agent always observes its location, regardless of the reward condition + A[LOCATION_MODALITY_ID][loc, loc, reward_condition] = 1.0 + + return A + + def _construct_state(self, state_tuple): + + state = utils.obj_array(self.num_factors) + + for f, ns in enumerate(self.num_states): + state[f] = utils.onehot(state_tuple[f], ns) + + return state + + @property + def state(self): + return self._state + + @property + def reward_condition(self): + return self._reward_condition diff --git a/pymdp/envs/visual_foraging.py b/pymdp/legacy/envs/visual_foraging.py similarity index 74% rename from pymdp/envs/visual_foraging.py rename to pymdp/legacy/envs/visual_foraging.py index 4b670371..0ecfa820 100644 --- a/pymdp/envs/visual_foraging.py +++ b/pymdp/legacy/envs/visual_foraging.py @@ -7,147 +7,14 @@ """ -from pymdp.envs import Env -from pymdp import utils, maths +from pymdp.legacy.envs import Env +from pymdp.legacy import utils, maths import numpy as np from itertools import permutations, product LOCATION_ID = 0 SCENE_ID = 1 -class VisualForagingEnv(Env): - """ Implementation of the visual foraging environment used for scene construction simulations """ - - def __init__(self, scenes=None, n_features=2): - if scenes is None: - self.scenes = self._construct_default_scenes() - else: - self.scenes = scenes - - self.n_scenes = len(self.scenes) - self.n_features = n_features + 1 - self.n_states = [np.prod(self.scenes[0].shape) + 1, self.scenes.shape[0]] - self.n_locations = self.n_states[LOCATION_ID] - self.n_control = [self.n_locations, 1] - self.n_observations = [self.n_locations, self.n_features] - self.n_factors = len(self.n_states) - self.n_modalities = len(self.n_observations) - - self._transition_dist = self._construct_transition_dist() - self._likelihood_dist = self._construct_likelihood_dist() - self._true_scene = None - self._state = None - - def reset(self, state=None): - if state is None: - loc_state = np.zeros(self.n_locations) - loc_state[0] = 1.0 - scene_state = np.zeros(self.n_scenes) - self._true_scene = np.random.randint(self.n_scenes) - scene_state[self._true_scene] = 1.0 - full_state = np.empty(self.n_factors, dtype=object) - full_state[LOCATION_ID] = loc_state - full_state[SCENE_ID] = scene_state - self._state = Categorical(values=full_state) - else: - self._state = Categorical(values=state) - return self._get_observation() - - def step(self, actions): - prob_states = np.empty(self.n_factors, dtype=object) - for f in range(self.n_factors): - prob_states[f] = ( - self._transition_dist[f][:, :, actions[f]] - .dot(self._state[f], return_numpy=True) - .flatten() - ) - state = Categorical(values=prob_states).sample() - self._state = self._construct_state(state) - return self._get_observation() - - def render(self): - pass - - def sample_action(self): - return [np.random.randint(self.n_control[i]) for i in range(self.n_factors)] - - def get_likelihood_dist(self): - return self._likelihood_dist.copy() - - def get_transition_dist(self): - return self._transition_dist.copy() - - def get_uniform_posterior(self): - values = np.array( - [ - np.ones(self.n_states[f]) / self.n_states[f] - for f in range(self.n_factors) - ] - ) - return Categorical(values=values) - - def get_rand_likelihood_dist(self): - pass - - def get_rand_transition_dist(self): - pass - - def _get_observation(self): - prob_obs = self._likelihood_dist.dot(self._state) - return prob_obs.sample() - - def _construct_transition_dist(self): - B_locs = np.eye(self.n_locations) - B_locs = B_locs.reshape(self.n_locations, self.n_locations, 1) - B_locs = np.tile(B_locs, (1, 1, self.n_locations)) - B_locs = B_locs.transpose(1, 2, 0) - - B = np.empty(self.n_factors, dtype=object) - B[LOCATION_ID] = B_locs - B[SCENE_ID] = np.eye(self.n_scenes).reshape(self.n_scenes, self.n_scenes, 1) - return Categorical(values=B) - - def _construct_likelihood_dist(self): - A = np.empty(self.n_modalities, dtype=object) - for g in range(self.n_modalities): - A[g] = np.zeros([self.n_observations[g]] + self.n_states) - - for loc in range(self.n_states[LOCATION_ID]): - for scene_id in range(self.n_states[SCENE_ID]): - scene = self.scenes[scene_id] - feat_loc_ids = np.ravel_multi_index(np.where(scene), scene.shape) - if loc in feat_loc_ids + 1: - feat_ids = np.unravel_index( - feat_loc_ids[loc == (feat_loc_ids + 1)], scene.shape - ) - feats = scene[feat_ids] - A[SCENE_ID][int(feats), loc, scene_id] = 1.0 - else: - A[SCENE_ID][0, loc, scene_id] = 1.0 - - A[LOCATION_ID][loc, loc, scene_id] = 1.0 - return Categorical(values=A) - - def _construct_default_scenes(self): - scene_one = [[2, 2], [2, 2]] - scene_two = [[1, 1], [1, 1]] - scenes = np.array([scene_one, scene_two]) - return scenes - - def _construct_state(self, state_tuple): - state = np.empty(self.n_factors, dtype=object) - for f in range(self.n_factors): - state[f] = np.eye(self.n_states[f])[state_tuple[f]] - return Categorical(values=state) - - @property - def state(self): - return self._state - - @property - def true_scene(self): - return self._true_scene - scene_names = ["UP_RIGHT", "RIGHT_DOWN", "DOWN_LEFT", "LEFT_UP"] # possible scenes quadrant_names = ['1','2','3','4'] choice_names = ['choose_UP_RIGHT','choose_RIGHT_DOWN','choose_DOWN_LEFT', 'choose_LEFT_UP'] # possible choices diff --git a/pymdp/legacy/inference.py b/pymdp/legacy/inference.py new file mode 100644 index 00000000..c180c0c6 --- /dev/null +++ b/pymdp/legacy/inference.py @@ -0,0 +1,371 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# pylint: disable=no-member + +import numpy as np + +from pymdp.legacy import utils +from pymdp.legacy.maths import get_joint_likelihood_seq, get_joint_likelihood_seq_by_modality +from pymdp.legacy.algos import run_vanilla_fpi, run_vanilla_fpi_factorized, run_mmp, run_mmp_factorized, _run_mmp_testing + +VANILLA = "VANILLA" +VMP = "VMP" +MMP = "MMP" +BP = "BP" +EP = "EP" +CV = "CV" + +def update_posterior_states_full( + A, + B, + prev_obs, + policies, + prev_actions=None, + prior=None, + policy_sep_prior = True, + **kwargs, +): + """ + Update posterior over hidden states using marginal message passing + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + prev_obs: ``list`` + List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. + policies: ``list`` of 2D ``numpy.ndarray`` + List that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + prior: ``numpy.ndarray`` of dtype object, default ``None`` + If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + policy_sep_prior: ``Bool``, default ``True`` + Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. + **kwargs: keyword arguments + Optional keyword arguments for the function ``algos.mmp.run_mmp`` + + Returns + --------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + F: 1D ``numpy.ndarray`` + Vector of variational free energies for each policy + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + + prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) + + lh_seq = get_joint_likelihood_seq(A, prev_obs, num_states) + + if prev_actions is not None: + prev_actions = np.stack(prev_actions,0) + + qs_seq_pi = utils.obj_array(len(policies)) + F = np.zeros(len(policies)) # variational free energy of policies + + for p_idx, policy in enumerate(policies): + + # get sequence and the free energy for policy + qs_seq_pi[p_idx], F[p_idx] = run_mmp( + lh_seq, + B, + policy, + prev_actions=prev_actions, + prior= prior[p_idx] if policy_sep_prior else prior, + **kwargs + ) + + return qs_seq_pi, F + +def update_posterior_states_full_factorized( + A, + mb_dict, + B, + B_factor_list, + prev_obs, + policies, + prev_actions=None, + prior=None, + policy_sep_prior = True, + **kwargs, +): + """ + Update posterior over hidden states using marginal message passing + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + mb_dict: ``Dict`` + Dictionary with two keys (``A_factor_list`` and ``A_modality_list``), that stores the factor indices that influence each modality (``A_factor_list``) + and the modality indices influenced by each factor (``A_modality_list``). + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + B_factor_list: ``list`` of ``list`` of ``int`` + List of lists of hidden state factors each hidden state factor depends on. Each element ``B_factor_list[i]`` is a list of the factor indices that factor i's dynamics depend on. + prev_obs: ``list`` + List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. + policies: ``list`` of 2D ``numpy.ndarray`` + List that stores each policy in ``policies[p_idx]``. Shape of ``policies[p_idx]`` is ``(num_timesteps, num_factors)`` where `num_timesteps` is the temporal + depth of the policy and ``num_factors`` is the number of control factors. + prior: ``numpy.ndarray`` of dtype object, default ``None`` + If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + policy_sep_prior: ``Bool``, default ``True`` + Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. + **kwargs: keyword arguments + Optional keyword arguments for the function ``algos.mmp.run_mmp`` + + Returns + --------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + F: 1D ``numpy.ndarray`` + Vector of variational free energies for each policy + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + + prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) + + lh_seq = get_joint_likelihood_seq_by_modality(A, prev_obs, num_states) + + if prev_actions is not None: + prev_actions = np.stack(prev_actions,0) + + qs_seq_pi = utils.obj_array(len(policies)) + F = np.zeros(len(policies)) # variational free energy of policies + + for p_idx, policy in enumerate(policies): + + # get sequence and the free energy for policy + qs_seq_pi[p_idx], F[p_idx] = run_mmp_factorized( + lh_seq, + mb_dict, + B, + B_factor_list, + policy, + prev_actions=prev_actions, + prior= prior[p_idx] if policy_sep_prior else prior, + **kwargs + ) + + return qs_seq_pi, F + +def _update_posterior_states_full_test( + A, + B, + prev_obs, + policies, + prev_actions=None, + prior=None, + policy_sep_prior = True, + **kwargs, +): + """ + Update posterior over hidden states using marginal message passing (TEST VERSION, with extra returns for benchmarking). + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + prev_obs: list + List of observations over time. Each observation in the list can be an ``int``, a ``list`` of ints, a ``tuple`` of ints, a one-hot vector or an object array of one-hot vectors. + prior: ``numpy.ndarray`` of dtype object, default None + If provided, this a ``numpy.ndarray`` of dtype object, with one sub-array per hidden state factor, that stores the prior beliefs about initial states. + If ``None``, this defaults to a flat (uninformative) prior over hidden states. + policy_sep_prior: Bool, default True + Flag determining whether the prior beliefs from the past are unconditioned on policy, or separated by /conditioned on the policy variable. + **kwargs: keyword arguments + Optional keyword arguments for the function ``algos.mmp.run_mmp`` + + Returns + -------- + qs_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, timepoints, factors, + where e.g. ``qs_seq_pi[p][t][f]`` stores the marginal belief about factor ``f`` at timepoint ``t`` under policy ``p``. + F: 1D ``numpy.ndarray`` + Vector of variational free energies for each policy + xn_seq_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy, for each iteration of marginal message passing. + Nesting structure is policy, iteration, factor, so ``xn_seq_p[p][itr][f]`` stores the ``num_states x infer_len`` + array of beliefs about hidden states at different time points of inference horizon. + vn_seq_pi: `numpy.ndarray`` of dtype object + Prediction errors over hidden states for each policy, for each iteration of marginal message passing. + Nesting structure is policy, iteration, factor, so ``vn_seq_p[p][itr][f]`` stores the ``num_states x infer_len`` + array of beliefs about hidden states at different time points of inference horizon. + """ + + num_obs, num_states, num_modalities, num_factors = utils.get_model_dimensions(A, B) + + prev_obs = utils.process_observation_seq(prev_obs, num_modalities, num_obs) + + lh_seq = get_joint_likelihood_seq(A, prev_obs, num_states) + + if prev_actions is not None: + prev_actions = np.stack(prev_actions,0) + + qs_seq_pi = utils.obj_array(len(policies)) + xn_seq_pi = utils.obj_array(len(policies)) + vn_seq_pi = utils.obj_array(len(policies)) + F = np.zeros(len(policies)) # variational free energy of policies + + for p_idx, policy in enumerate(policies): + + # get sequence and the free energy for policy + qs_seq_pi[p_idx], F[p_idx], xn_seq_pi[p_idx], vn_seq_pi[p_idx] = _run_mmp_testing( + lh_seq, + B, + policy, + prev_actions=prev_actions, + prior=prior[p_idx] if policy_sep_prior else prior, + **kwargs + ) + + return qs_seq_pi, F, xn_seq_pi, vn_seq_pi + +def average_states_over_policies(qs_pi, q_pi): + """ + This function computes a expected posterior over hidden states with respect to the posterior over policies, + also known as the 'Bayesian model average of states with respect to policies'. + + Parameters + ---------- + qs_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs over hidden states for each policy. Nesting structure is policies, factors, + where e.g. ``qs_pi[p][f]`` stores the marginal belief about factor ``f`` under policy ``p``. + q_pi: ``numpy.ndarray`` of dtype object + Posterior beliefs about policies where ``len(q_pi) = num_policies`` + + Returns + --------- + qs_bma: ``numpy.ndarray`` of dtype object + Marginal posterior over hidden states for the current timepoint, + averaged across policies according to their posterior probability given by ``q_pi`` + """ + + num_factors = len(qs_pi[0]) # get the number of hidden state factors using the shape of the first-policy-conditioned posterior + num_states = [qs_f.shape[0] for qs_f in qs_pi[0]] # get the dimensionalities of each hidden state factor + + qs_bma = utils.obj_array(num_factors) + for f in range(num_factors): + qs_bma[f] = np.zeros(num_states[f]) + + for p_idx, policy_weight in enumerate(q_pi): + + for f in range(num_factors): + + qs_bma[f] += qs_pi[p_idx][f] * policy_weight + + return qs_bma + +def update_posterior_states(A, obs, prior=None, **kwargs): + """ + Update marginal posterior over hidden states using mean-field fixed point iteration + FPI or Fixed point iteration. + + See the following links for details: + http://www.cs.cmu.edu/~guestrin/Class/10708/recitations/r9/VI-view.pdf, slides 13- 18, and http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.221&rep=rep1&type=pdf, slides 24 - 38. + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, int or tuple + The observation (generated by the environment). If single modality, this can be a 1D ``np.ndarray`` + (one-hot vector representation) or an ``int`` (observation index) + If multi-modality, this can be ``np.ndarray`` of dtype object whose entries are 1D one-hot vectors, + or a tuple (of ``int``) + prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None + Prior beliefs about hidden states, to be integrated with the marginal likelihood to obtain + a posterior distribution. If not provided, prior is set to be equal to a flat categorical distribution (at the level of + the individual inference functions). + **kwargs: keyword arguments + List of keyword/parameter arguments corresponding to parameter values for the fixed-point iteration + algorithm ``algos.fpi.run_vanilla_fpi.py`` + + Returns + ---------- + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint + """ + + num_obs, num_states, num_modalities, _ = utils.get_model_dimensions(A = A) + + obs = utils.process_observation(obs, num_modalities, num_obs) + + if prior is not None: + prior = utils.to_obj_array(prior) + + return run_vanilla_fpi(A, obs, num_obs, num_states, prior, **kwargs) + +def update_posterior_states_factorized(A, obs, num_obs, num_states, mb_dict, prior=None, **kwargs): + """ + Update marginal posterior over hidden states using mean-field fixed point iteration + FPI or Fixed point iteration. This version identifies the Markov blanket of each factor using `A_factor_list` + + See the following links for details: + http://www.cs.cmu.edu/~guestrin/Class/10708/recitations/r9/VI-view.pdf, slides 13- 18, and http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.137.221&rep=rep1&type=pdf, slides 24 - 38. + + Parameters + ---------- + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``np.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, int or tuple + The observation (generated by the environment). If single modality, this can be a 1D ``np.ndarray`` + (one-hot vector representation) or an ``int`` (observation index) + If multi-modality, this can be ``np.ndarray`` of dtype object whose entries are 1D one-hot vectors, + or a tuple (of ``int``) + num_obs: ``list`` of ``int`` + List of dimensionalities of each observation modality + num_states: ``list`` of ``int`` + List of dimensionalities of each hidden state factor + mb_dict: ``Dict`` + Dictionary with two keys (``A_factor_list`` and ``A_modality_list``), that stores the factor indices that influence each modality (``A_factor_list``) + and the modality indices influenced by each factor (``A_modality_list``). + prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None + Prior beliefs about hidden states, to be integrated with the marginal likelihood to obtain + a posterior distribution. If not provided, prior is set to be equal to a flat categorical distribution (at the level of + the individual inference functions). + **kwargs: keyword arguments + List of keyword/parameter arguments corresponding to parameter values for the fixed-point iteration + algorithm ``algos.fpi.run_vanilla_fpi.py`` + + Returns + ---------- + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint + """ + + num_modalities = len(num_obs) + + obs = utils.process_observation(obs, num_modalities, num_obs) + + if prior is not None: + prior = utils.to_obj_array(prior) + + return run_vanilla_fpi_factorized(A, obs, num_obs, num_states, mb_dict, prior, **kwargs) diff --git a/pymdp/legacy/learning.py b/pymdp/legacy/learning.py new file mode 100644 index 00000000..c8abf2af --- /dev/null +++ b/pymdp/legacy/learning.py @@ -0,0 +1,459 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# pylint: disable=no-member + +import numpy as np +from pymdp.legacy import utils, maths +import copy + +def update_obs_likelihood_dirichlet(pA, A, obs, qs, lr=1.0, modalities="all"): + """ + Update Dirichlet parameters of the observation likelihood distribution. + + Parameters + ----------- + pA: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over observation model (same shape as ``A``) + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, ``int`` or ``tuple`` + The observation (generated by the environment). If single modality, this can be a 1D ``numpy.ndarray`` + (one-hot vector representation) or an ``int`` (observation index) + If multi-modality, this can be ``numpy.ndarray`` of dtype object whose entries are 1D one-hot vectors, + or a ``tuple`` (of ``int``) + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None + Marginal posterior beliefs over hidden states at current timepoint. + lr: float, default 1.0 + Learning rate, scale of the Dirichlet pseudo-count update. + modalities: ``list``, default "all" + Indices (ranging from 0 to ``n_modalities - 1``) of the observation modalities to include + in learning. Defaults to "all", meaning that modality-specific sub-arrays of ``pA`` + are all updated using the corresponding observations. + + Returns + ----------- + qA: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. + """ + + + num_modalities = len(pA) + num_observations = [pA[modality].shape[0] for modality in range(num_modalities)] + + obs_processed = utils.process_observation(obs, num_modalities, num_observations) + obs = utils.to_obj_array(obs_processed) + + if modalities == "all": + modalities = list(range(num_modalities)) + + qA = copy.deepcopy(pA) + + for modality in modalities: + dfda = maths.spm_cross(obs[modality], qs) + dfda = dfda * (A[modality] > 0).astype("float") + qA[modality] = qA[modality] + (lr * dfda) + + return qA + +def update_obs_likelihood_dirichlet_factorized(pA, A, obs, qs, A_factor_list, lr=1.0, modalities="all"): + """ + Update Dirichlet parameters of the observation likelihood distribution, in a case where the observation model is reduced (factorized) and only represents + the conditional dependencies between the observation modalities and particular hidden state factors (whose indices are specified in each modality-specific entry of ``A_factor_list``) + + Parameters + ----------- + pA: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over observation model (same shape as ``A``) + A: ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs: 1D ``numpy.ndarray``, ``numpy.ndarray`` of dtype object, ``int`` or ``tuple`` + The observation (generated by the environment). If single modality, this can be a 1D ``numpy.ndarray`` + (one-hot vector representation) or an ``int`` (observation index) + If multi-modality, this can be ``numpy.ndarray`` of dtype object whose entries are 1D one-hot vectors, + or a ``tuple`` (of ``int``) + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object, default None + Marginal posterior beliefs over hidden states at current timepoint. + A_factor_list: ``list`` of ``list`` of ``int`` + List of lists, where each list with index `m` contains the indices of the hidden states that observation modality `m` depends on. + lr: float, default 1.0 + Learning rate, scale of the Dirichlet pseudo-count update. + modalities: ``list``, default "all" + Indices (ranging from 0 to ``n_modalities - 1``) of the observation modalities to include + in learning. Defaults to "all", meaning that modality-specific sub-arrays of ``pA`` + are all updated using the corresponding observations. + + Returns + ----------- + qA: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over observation model (same shape as ``A``), after having updated it with observations. + """ + + num_modalities = len(pA) + num_observations = [pA[modality].shape[0] for modality in range(num_modalities)] + + obs_processed = utils.process_observation(obs, num_modalities, num_observations) + obs = utils.to_obj_array(obs_processed) + + if modalities == "all": + modalities = list(range(num_modalities)) + + qA = copy.deepcopy(pA) + + for modality in modalities: + dfda = maths.spm_cross(obs[modality], qs[A_factor_list[modality]]) + dfda = dfda * (A[modality] > 0).astype("float") + qA[modality] = qA[modality] + (lr * dfda) + + return qA + +def update_state_likelihood_dirichlet( + pB, B, actions, qs, qs_prev, lr=1.0, factors="all" +): + """ + Update Dirichlet parameters of the transition distribution. + + Parameters + ----------- + pB: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over transition model (same shape as ``B``) + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + actions: 1D ``numpy.ndarray`` + A vector with length equal to the number of control factors, where each element contains the index of the action (for that control factor) performed at + a given timestep. + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint. + qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at previous timepoint. + lr: float, default ``1.0`` + Learning rate, scale of the Dirichlet pseudo-count update. + factors: ``list``, default "all" + Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include + in learning. Defaults to "all", meaning that factor-specific sub-arrays of ``pB`` + are all updated using the corresponding hidden state distributions and actions. + + Returns + ----------- + qB: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. + """ + + num_factors = len(pB) + + qB = copy.deepcopy(pB) + + if factors == "all": + factors = list(range(num_factors)) + + for factor in factors: + dfdb = maths.spm_cross(qs[factor], qs_prev[factor]) + dfdb *= (B[factor][:, :, int(actions[factor])] > 0).astype("float") + qB[factor][:,:,int(actions[factor])] += (lr*dfdb) + + return qB + +def update_state_likelihood_dirichlet_interactions( + pB, B, actions, qs, qs_prev, B_factor_list, lr=1.0, factors="all" +): + """ + Update Dirichlet parameters of the transition distribution, in the case when 'interacting' hidden state factors are present, i.e. + the dynamics of a given hidden state factor `f` are no longer independent of the dynamics of other hidden state factors. + + Parameters + ----------- + pB: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over transition model (same shape as ``B``) + B: ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at ``t`` to hidden states at ``t+1``, given some control state ``u``. + Each element ``B[f]`` of this object array stores a 3-D tensor for hidden state factor ``f``, whose entries ``B[f][s, v, u]`` store the probability + of hidden state level ``s`` at the current time, given hidden state level ``v`` and action ``u`` at the previous time. + actions: 1D ``numpy.ndarray`` + A vector with length equal to the number of control factors, where each element contains the index of the action (for that control factor) performed at + a given timestep. + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint. + qs_prev: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at previous timepoint. + B_factor_list: ``list`` of ``list`` of ``int`` + A list of lists, where each element ``B_factor_list[f]`` is a list of indices of hidden state factors that that are needed to predict the dynamics of hidden state factor ``f``. + lr: float, default ``1.0`` + Learning rate, scale of the Dirichlet pseudo-count update. + factors: ``list``, default "all" + Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include + in learning. Defaults to "all", meaning that factor-specific sub-arrays of ``pB`` + are all updated using the corresponding hidden state distributions and actions. + + Returns + ----------- + qB: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over transition model (same shape as ``B``), after having updated it with state beliefs and actions. + """ + + num_factors = len(pB) + + qB = copy.deepcopy(pB) + + if factors == "all": + factors = list(range(num_factors)) + + for factor in factors: + dfdb = maths.spm_cross(qs[factor], qs_prev[B_factor_list[factor]]) + dfdb *= (B[factor][...,int(actions[factor])] > 0).astype("float") + qB[factor][...,int(actions[factor])] += (lr*dfdb) + + return qB + +def update_state_prior_dirichlet( + pD, qs, lr=1.0, factors="all" +): + """ + Update Dirichlet parameters of the initial hidden state distribution + (prior beliefs about hidden states at the beginning of the inference window). + + Parameters + ----------- + pD: ``numpy.ndarray`` of dtype object + Prior Dirichlet parameters over initial hidden state prior (same shape as ``qs``) + qs: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + Marginal posterior beliefs over hidden states at current timepoint + lr: float, default ``1.0`` + Learning rate, scale of the Dirichlet pseudo-count update. + factors: ``list``, default "all" + Indices (ranging from 0 to ``n_factors - 1``) of the hidden state factors to include + in learning. Defaults to "all", meaning that factor-specific sub-vectors of ``pD`` + are all updated using the corresponding hidden state distributions. + + Returns + ----------- + qD: ``numpy.ndarray`` of dtype object + Posterior Dirichlet parameters over initial hidden state prior (same shape as ``qs``), after having updated it with state beliefs. + """ + + num_factors = len(pD) + + qD = copy.deepcopy(pD) + + if factors == "all": + factors = list(range(num_factors)) + + for factor in factors: + idx = pD[factor] > 0 # only update those state level indices that have some prior probability + qD[factor][idx] += (lr * qs[factor][idx]) + + return qD + +def _prune_prior(prior, levels_to_remove, dirichlet = False): + """ + Function for pruning a prior Categorical distribution (e.g. C, D) + + Parameters + ----------- + prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + The vector(s) containing the priors over hidden states of a generative model, e.g. the prior over hidden states (``D`` vector). + levels_to_remove: ``list`` of ``int``, ``list`` of ``list`` + A ``list`` of the levels (indices of the support) to remove. If the prior in question has multiple hidden state factors / multiple observation modalities, + then this will be a ``list`` of ``list``, where each sub-list within ``levels_to_remove`` will contain the levels to prune for a particular hidden state factor or modality + dirichlet: ``Bool``, default ``False`` + A Boolean flag indicating whether the input vector(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. + @TODO: Instead, the dirichlet parameters from the pruned levels should somehow be re-distributed among the remaining levels + + Returns + ----------- + reduced_prior: 1D ``numpy.ndarray`` or ``numpy.ndarray`` of dtype object + The prior vector(s), after pruning, that lacks the hidden state or modality levels indexed by ``levels_to_remove`` + """ + + if utils.is_obj_array(prior): # in case of multiple hidden state factors + + assert all([type(levels) == list for levels in levels_to_remove]) + + num_factors = len(prior) + + reduced_prior = utils.obj_array(num_factors) + + factors_to_remove = [] + for f, s_i in enumerate(prior): # loop over factors (or modalities) + + ns = len(s_i) + levels_to_keep = list(set(range(ns)) - set(levels_to_remove[f])) + if len(levels_to_keep) == 0: + print(f'Warning... removing ALL levels of factor {f} - i.e. the whole hidden state factor is being removed\n') + factors_to_remove.append(f) + else: + if not dirichlet: + reduced_prior[f] = utils.norm_dist(s_i[levels_to_keep]) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + + + if len(factors_to_remove) > 0: + factors_to_keep = list(set(range(num_factors)) - set(factors_to_remove)) + reduced_prior = reduced_prior[factors_to_keep] + + else: # in case of one hidden state factor + + assert all([type(level_i) == int for level_i in levels_to_remove]) + + ns = len(prior) + levels_to_keep = list(set(range(ns)) - set(levels_to_remove)) + + if not dirichlet: + reduced_prior = utils.norm_dist(prior[levels_to_keep]) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned levels, across remaining levels")) + + return reduced_prior + +def _prune_A(A, obs_levels_to_prune, state_levels_to_prune, dirichlet = False): + """ + Function for pruning a observation likelihood model (with potentially multiple hidden state factors) + :meta private: + Parameters + ----------- + A: ``numpy.ndarray`` with ``ndim >= 2``, or ``numpy.ndarray`` of dtype object + Sensory likelihood mapping or 'observation model', mapping from hidden states to observations. Each element ``A[m]`` of + stores an ``numpy.ndarray`` multidimensional array for observation modality ``m``, whose entries ``A[m][i, j, k, ...]`` store + the probability of observation level ``i`` given hidden state levels ``j, k, ...`` + obs_levels_to_prune: ``list`` of int or ``list`` of ``list``: + A ``list`` of the observation levels to remove. If the likelihood in question has multiple observation modalities, + then this will be a ``list`` of ``list``, where each sub-list within ``obs_levels_to_prune`` will contain the observation levels + to remove for a particular observation modality + state_levels_to_prune: ``list`` of ``int`` + A ``list`` of the hidden state levels to remove (this will be the same across modalities) + dirichlet: ``Bool``, default ``False`` + A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. + @TODO: Instead, the dirichlet parameters from the pruned columns should somehow be re-distributed among the remaining columns + + Returns + ----------- + reduced_A: ``numpy.ndarray`` with ndim >= 2, or ``numpy.ndarray ``of dtype object + The observation model, after pruning, which lacks the observation or hidden state levels given by the arguments ``obs_levels_to_prune`` and ``state_levels_to_prune`` + """ + + columns_to_keep_list = [] + if utils.is_obj_array(A): + num_states = A[0].shape[1:] + for f, ns in enumerate(num_states): + indices_f = np.array( list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) + columns_to_keep_list.append(indices_f) + else: + num_states = A.shape[1] + indices = np.array( list(set(range(num_states)) - set(state_levels_to_prune)), dtype = np.intp ) + columns_to_keep_list.append(indices) + + if utils.is_obj_array(A): # in case of multiple observation modality + + assert all([type(o_m_levels) == list for o_m_levels in obs_levels_to_prune]) + + num_modalities = len(A) + + reduced_A = utils.obj_array(num_modalities) + + for m, A_i in enumerate(A): # loop over modalities + + no = A_i.shape[0] + rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune[m])), dtype = np.intp) + + reduced_A[m] = A_i[np.ix_(rows_to_keep, *columns_to_keep_list)] + if not dirichlet: + reduced_A = utils.norm_dist_obj_arr(reduced_A) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + else: # in case of one observation modality + + assert all([type(o_levels_i) == int for o_levels_i in obs_levels_to_prune]) + + no = A.shape[0] + rows_to_keep = np.array(list(set(range(no)) - set(obs_levels_to_prune)), dtype = np.intp) + + reduced_A = A[np.ix_(rows_to_keep, *columns_to_keep_list)] + + if not dirichlet: + reduced_A = utils.norm_dist(reduced_A) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + + return reduced_A + +def _prune_B(B, state_levels_to_prune, action_levels_to_prune, dirichlet = False): + """ + Function for pruning a transition likelihood model (with potentially multiple hidden state factors) + + Parameters + ----------- + B: ``numpy.ndarray`` of ``ndim == 3`` or ``numpy.ndarray`` of dtype object + Dynamics likelihood mapping or 'transition model', mapping from hidden states at `t` to hidden states at `t+1`, given some control state `u`. + Each element B[f] of this object array stores a 3-D tensor for hidden state factor `f`, whose entries `B[f][s, v, u] store the probability + of hidden state level `s` at the current time, given hidden state level `v` and action `u` at the previous time. + state_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` + A ``list`` of the state levels to remove. If the likelihood in question has multiple hidden state factors, + then this will be a ``list`` of ``list``, where each sub-list within ``state_levels_to_prune`` will contain the state levels + to remove for a particular hidden state factor + action_levels_to_prune: ``list`` of ``int`` or ``list`` of ``list`` + A ``list`` of the control state or action levels to remove. If the likelihood in question has multiple control state factors, + then this will be a ``list`` of ``list``, where each sub-list within ``action_levels_to_prune`` will contain the control state levels + to remove for a particular control state factor + dirichlet: ``Bool``, default ``False`` + A Boolean flag indicating whether the input array(s) is/are a Dirichlet distribution, and therefore should not be normalized at the end. + @TODO: Instead, the dirichlet parameters from the pruned rows/columns should somehow be re-distributed among the remaining rows/columns + + Returns + ----------- + reduced_B: ``numpy.ndarray`` of `ndim == 3` or ``numpy.ndarray`` of dtype object + The transition model, after pruning, which lacks the hidden state levels/action levels given by the arguments ``state_levels_to_prune`` and ``action_levels_to_prune`` + """ + + slices_to_keep_list = [] + + if utils.is_obj_array(B): + + num_controls = [B_arr.shape[2] for _, B_arr in enumerate(B)] + + for c, nc in enumerate(num_controls): + indices_c = np.array( list(set(range(nc)) - set(action_levels_to_prune[c])), dtype = np.intp) + slices_to_keep_list.append(indices_c) + else: + num_controls = B.shape[2] + slices_to_keep = np.array( list(set(range(num_controls)) - set(action_levels_to_prune)), dtype = np.intp ) + + if utils.is_obj_array(B): # in case of multiple hidden state factors + + assert all([type(ns_f_levels) == list for ns_f_levels in state_levels_to_prune]) + + num_factors = len(B) + + reduced_B = utils.obj_array(num_factors) + + for f, B_f in enumerate(B): # loop over modalities + + ns = B_f.shape[0] + states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune[f])), dtype = np.intp) + + reduced_B[f] = B_f[np.ix_(states_to_keep, states_to_keep, slices_to_keep_list[f])] + + if not dirichlet: + reduced_B = utils.norm_dist_obj_arr(reduced_B) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + + else: # in case of one hidden state factor + + assert all([type(state_level_i) == int for state_level_i in state_levels_to_prune]) + + ns = B.shape[0] + states_to_keep = np.array(list(set(range(ns)) - set(state_levels_to_prune)), dtype = np.intp) + + reduced_B = B[np.ix_(states_to_keep, states_to_keep, slices_to_keep)] + + if not dirichlet: + reduced_B = utils.norm_dist(reduced_B) + else: + raise(NotImplementedError("Need to figure out how to re-distribute concentration parameters from pruned rows/columns, across remaining rows/columns")) + + return reduced_B diff --git a/pymdp/legacy/maths.py b/pymdp/legacy/maths.py new file mode 100644 index 00000000..eff968f6 --- /dev/null +++ b/pymdp/legacy/maths.py @@ -0,0 +1,608 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# pylint: disable=no-member +# pylint: disable=not-an-iterable + +""" Functions + +__author__: Conor Heins, Alexander Tschantz, Brennan Klein +""" + +import numpy as np +from scipy import special +from pymdp.legacy import utils +from itertools import chain +from opt_einsum import contract + +EPS_VAL = 1e-16 # global constant for use in spm_log() function + +def spm_dot(X, x, dims_to_omit=None): + """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` + will not be summed across during the dot product + + Parameters + ---------- + - `x` [1D numpy.ndarray] - either vector or array of arrays + The alternative array to perform the dot product with + - `dims_to_omit` [list :: int] (optional) + Which dimensions to omit + + Returns + ------- + - `Y` [1D numpy.ndarray] - the result of the dot product + """ + + # Construct dims to perform dot product on + if utils.is_obj_array(x): + # dims = list((np.arange(0, len(x)) + X.ndim - len(x)).astype(int)) + dims = list(range(X.ndim - len(x),len(x)+X.ndim - len(x))) + # dims = list(range(X.ndim)) + else: + dims = [1] + x = utils.to_obj_array(x) + + if dims_to_omit is not None: + arg_list = [X, list(range(X.ndim))] + list(chain(*([x[xdim_i],[dims[xdim_i]]] for xdim_i in range(len(x)) if xdim_i not in dims_to_omit))) + [dims_to_omit] + else: + arg_list = [X, list(range(X.ndim))] + list(chain(*([x[xdim_i],[dims[xdim_i]]] for xdim_i in range(len(x))))) + [[0]] + + Y = np.einsum(*arg_list) + + # check to see if `Y` is a scalar + if np.prod(Y.shape) <= 1.0: + Y = Y.item() + Y = np.array([Y]).astype("float64") + + return Y + + +def spm_dot_classic(X, x, dims_to_omit=None): + """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` + will not be summed across during the dot product + + Parameters + ---------- + - `x` [1D numpy.ndarray] - either vector or array of arrays + The alternative array to perform the dot product with + - `dims_to_omit` [list :: int] (optional) + Which dimensions to omit + + Returns + ------- + - `Y` [1D numpy.ndarray] - the result of the dot product + """ + + # Construct dims to perform dot product on + if utils.is_obj_array(x): + dims = (np.arange(0, len(x)) + X.ndim - len(x)).astype(int) + else: + dims = np.array([1], dtype=int) + x = utils.to_obj_array(x) + + # delete ignored dims + if dims_to_omit is not None: + if not isinstance(dims_to_omit, list): + raise ValueError("`dims_to_omit` must be a `list` of `int`") + dims = np.delete(dims, dims_to_omit) + if len(x) == 1: + x = np.empty([0], dtype=object) + else: + x = np.delete(x, dims_to_omit) + + # compute dot product + for d in range(len(x)): + s = np.ones(np.ndim(X), dtype=int) + s[dims[d]] = np.shape(x[d])[0] + X = X * x[d].reshape(tuple(s)) + # X = np.sum(X, axis=dims[d], keepdims=True) + + Y = np.sum(X, axis=tuple(dims.astype(int))).squeeze() + # Y = np.squeeze(X) + + # check to see if `Y` is a scalar + if np.prod(Y.shape) <= 1.0: + Y = Y.item() + Y = np.array([Y]).astype("float64") + + return Y + +def factor_dot_flex(M, xs, dims, keep_dims=None): + """ Dot product of a multidimensional array with `x`. + + Parameters + ---------- + - `M` [numpy.ndarray] - tensor + - 'xs' [list of numpyr.ndarray] - list of tensors + - 'dims' [list of tuples] - list of dimensions of xs tensors in tensor M + - 'keep_dims' [tuple] - tuple of integers denoting dimesions to keep + Returns + ------- + - `Y` [1D numpy.ndarray] - the result of the dot product + """ + all_dims = tuple(range(M.ndim)) + matrix = [[xs[f], dims[f]] for f in range(len(xs))] + args = [M, all_dims] + for row in matrix: + args.extend(row) + + args += [keep_dims] + return contract(*args, backend='numpy') + +def spm_dot_old(X, x, dims_to_omit=None, obs_mode=False): + """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` + will not be summed across during the dot product + + #TODO: we should look for an alternative to obs_mode + + Parameters + ---------- + - `x` [1D numpy.ndarray] - either vector or array of arrays + The alternative array to perform the dot product with + - `dims_to_omit` [list :: int] (optional) + Which dimensions to omit + + Returns + ------- + - `Y` [1D numpy.ndarray] - the result of the dot product + """ + + # Construct dims to perform dot product on + if utils.is_obj_array(x): + dims = (np.arange(0, len(x)) + X.ndim - len(x)).astype(int) + else: + if obs_mode is True: + """ + @NOTE Case when you're getting the likelihood of an observation under + the generative model. Equivalent to something like self.values[np.where(x),:] + when `x` is a discrete 'one-hot' observation vector + """ + dims = np.array([0], dtype=int) + else: + """ + @NOTE Case when `x` leading dimension matches the lagging dimension of `values` + E.g. a more 'classical' dot product of a likelihood with hidden states + """ + dims = np.array([1], dtype=int) + + x = utils.to_obj_array(x) + + # delete ignored dims + if dims_to_omit is not None: + if not isinstance(dims_to_omit, list): + raise ValueError("`dims_to_omit` must be a `list` of `int`") + dims = np.delete(dims, dims_to_omit) + if len(x) == 1: + x = np.empty([0], dtype=object) + else: + x = np.delete(x, dims_to_omit) + + # compute dot product + for d in range(len(x)): + s = np.ones(np.ndim(X), dtype=int) + s[dims[d]] = np.shape(x[d])[0] + X = X * x[d].reshape(tuple(s)) + # X = np.sum(X, axis=dims[d], keepdims=True) + + Y = np.sum(X, axis=tuple(dims.astype(int))).squeeze() + # Y = np.squeeze(X) + + # check to see if `Y` is a scalar + if np.prod(Y.shape) <= 1.0: + Y = Y.item() + Y = np.array([Y]).astype("float64") + + return Y + + +def spm_cross(x, y=None, *args): + """ Multi-dimensional outer product + + Parameters + ---------- + - `x` [np.ndarray] || [Categorical] (optional) + The values to perfrom the outer-product with. If empty, then the outer-product + is taken between x and itself. If y is not empty, then outer product is taken + between x and the various dimensions of y. + - `args` [np.ndarray] || [Categorical] (optional) + Remaining arrays to perform outer-product with. These extra arrays are recursively + multiplied with the 'initial' outer product (that between X and x). + + Returns + ------- + - `z` [np.ndarray] || [Categorical] + The result of the outer-product + """ + + if len(args) == 0 and y is None: + if utils.is_obj_array(x): + z = spm_cross(*list(x)) + elif np.issubdtype(x.dtype, np.number): + z = x + else: + raise ValueError(f"Invalid input to spm_cross ({x})") + return z + + if utils.is_obj_array(x): + x = spm_cross(*list(x)) + + if y is not None and utils.is_obj_array(y): + y = spm_cross(*list(y)) + + A = np.expand_dims(x, tuple(range(-y.ndim, 0))) + B = np.expand_dims(y, tuple(range(x.ndim))) + z = A * B + + for x in args: + z = spm_cross(z, x) + return z + +def dot_likelihood(A,obs): + + s = np.ones(np.ndim(A), dtype = int) + s[0] = obs.shape[0] + X = A * obs.reshape(tuple(s)) + X = np.sum(X, axis=0, keepdims=True) + LL = np.squeeze(X) + + # check to see if `LL` is a scalar + if np.prod(LL.shape) <= 1.0: + LL = LL.item() + LL = np.array([LL]).astype("float64") + + return LL + + +def get_joint_likelihood(A, obs, num_states): + # deal with single modality case + if type(num_states) is int: + num_states = [num_states] + A = utils.to_obj_array(A) + obs = utils.to_obj_array(obs) + ll = np.ones(tuple(num_states)) + for modality in range(len(A)): + ll = ll * dot_likelihood(A[modality], obs[modality]) + return ll + + +def get_joint_likelihood_seq(A, obs, num_states): + ll_seq = utils.obj_array(len(obs)) + for t, obs_t in enumerate(obs): + ll_seq[t] = get_joint_likelihood(A, obs_t, num_states) + return ll_seq + +def get_joint_likelihood_seq_by_modality(A, obs, num_states): + """ + Returns joint likelihoods for each modality separately + """ + + ll_seq = utils.obj_array(len(obs)) + n_modalities = len(A) + + for t, obs_t in enumerate(obs): + likelihood = utils.obj_array(n_modalities) + obs_t_obj = utils.to_obj_array(obs_t) + for (m, A_m) in enumerate(A): + likelihood[m] = dot_likelihood(A_m, obs_t_obj[m]) + ll_seq[t] = likelihood + + return ll_seq + + +def spm_norm(A): + """ + Returns normalization of Categorical distribution, + stored in the columns of A. + """ + A = A + EPS_VAL + normed_A = np.divide(A, A.sum(axis=0)) + return normed_A + +def spm_log_single(arr): + """ + Adds small epsilon value to an array before natural logging it + """ + return np.log(arr + EPS_VAL) + +def spm_log_obj_array(obj_arr): + """ + Applies `spm_log_single` to multiple elements of a numpy object array + """ + + obj_arr_logged = utils.obj_array(len(obj_arr)) + for idx, arr in enumerate(obj_arr): + obj_arr_logged[idx] = spm_log_single(arr) + + return obj_arr_logged + +def spm_wnorm(A): + """ + Returns Expectation of logarithm of Dirichlet parameters over a set of + Categorical distributions, stored in the columns of A. + """ + A = A + EPS_VAL + norm = np.divide(1.0, np.sum(A, axis=0)) + avg = np.divide(1.0, A) + wA = norm - avg + return wA + + +def spm_betaln(z): + """ Log of the multivariate beta function of a vector. + @NOTE this function computes across columns if `z` is a matrix + """ + return special.gammaln(z).sum(axis=0) - special.gammaln(z.sum(axis=0)) + +def dirichlet_log_evidence(q_dir, p_dir, r_dir): + """ + Bayesian model reduction and log evidence calculations for Dirichlet hyperparameters + This is a NumPY translation of the MATLAB function `spm_MDP_log_evidence.m` from the + DEM package of spm. + + Description (adapted from MATLAB docstring) + This function computes the negative log evidence of a reduced model of a + Categorical distribution parameterised in terms of Dirichlet hyperparameters + (i.e., concentration parameters encoding probabilities). It uses Bayesian model reduction + to evaluate the evidence for models with and without a particular parameter. + Arguments: + =========== + `q_dir` [1D np.ndarray]: sufficient statistics of posterior of full model + `p_dir` [1D np.ndarray]: sufficient statistics of prior of full model + `r_dir` [1D np.ndarray]: sufficient statistics of prior of reduced model + Returns: + ========== + `F` [float]: free energy or (negative) log evidence of reduced model + `s_dir` [1D np.ndarray]: sufficient statistics of reduced posterior + """ + + # change in free energy or log model evidence + s_dir = q_dir + r_dir - p_dir + F = spm_betaln(q_dir) + spm_betaln(r_dir) - spm_betaln(p_dir) - spm_betaln(s_dir) + + return F, s_dir + +def softmax(dist): + """ + Computes the softmax function on a set of values + """ + + output = dist - dist.max(axis=0) + output = np.exp(output) + output = output / np.sum(output, axis=0) + return output + +def softmax_obj_arr(arr): + + output = utils.obj_array(len(arr)) + + for i, arr_i in enumerate(arr): + output[i] = softmax(arr_i) + + return output + +def compute_accuracy(log_likelihood, qs): + """ + Function that computes the accuracy term of the variational free energy. This is essentially a stripped down version of `spm_dot` above, + with fewer conditions / dimension handling in the beginning. + """ + + ndims_ll, n_factors = log_likelihood.ndim, len(qs) + + dims = list(range(ndims_ll - n_factors,n_factors+ndims_ll - n_factors)) + arg_list = [log_likelihood, list(range(ndims_ll))] + list(chain(*([qs[xdim_i],[dims[xdim_i]]] for xdim_i in range(n_factors)))) + + return np.einsum(*arg_list) + + +def calc_free_energy(qs, prior, n_factors, likelihood=None): + """ Calculate variational free energy + @TODO Primarily used in FPI algorithm, needs to be made general + """ + free_energy = 0 + for factor in range(n_factors): + # Neg-entropy of posterior marginal H(q[f]) + negH_qs = qs[factor].dot(np.log(qs[factor][:, np.newaxis] + 1e-16)) + # Cross entropy of posterior marginal with prior marginal H(q[f],p[f]) + xH_qp = -qs[factor].dot(prior[factor][:, np.newaxis]) + free_energy += negH_qs + xH_qp + + if likelihood is not None: + free_energy -= compute_accuracy(likelihood, qs) + return free_energy + +def spm_calc_qo_entropy(A, x): + """ + Function that just calculates the entropy part of the state information gain, using the same method used in + spm_MDP_G.m in the original matlab code. + + Parameters + ---------- + A (numpy ndarray or array-object): + array assigning likelihoods of observations/outcomes under the various + hidden state configurations + + x (numpy ndarray or array-object): + Categorical distribution presenting probabilities of hidden states + (this can also be interpreted as the predictive density over hidden + states/causes if you're calculating the expected Bayesian surprise) + + Returns + ------- + H (float): + the entropy of the marginal distribution over observations/outcomes + """ + + num_modalities = len(A) + + # Probability distribution over the hidden causes: i.e., Q(x) + qx = spm_cross(x) + qo = 0 + idx = np.array(np.where(qx > np.exp(-16))).T + + if utils.is_obj_array(A): + # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] + for i in idx: + # Probability over outcomes for this combination of causes + po = np.ones(1) + for modality_idx, A_m in enumerate(A): + index_vector = [slice(0, A_m.shape[0])] + list(i) + po = spm_cross(po, A_m[tuple(index_vector)]) + po = po.ravel() + qo += qx[tuple(i)] * po + else: + for i in idx: + po = np.ones(1) + index_vector = [slice(0, A.shape[0])] + list(i) + po = spm_cross(po, A[tuple(index_vector)]) + po = po.ravel() + qo += qx[tuple(i)] * po + + # Compute entropy of expectations: i.e., -E_{Q(o)}[lnQ(o)] + H = - qo.dot(spm_log_single(qo)) + + return H + +def spm_calc_neg_ambig(A, x): + """ + Function that just calculates the negativity ambiguity part of the state information gain, using the same method used in + spm_MDP_G.m in the original matlab code. + + Parameters + ---------- + A (numpy ndarray or array-object): + array assigning likelihoods of observations/outcomes under the various + hidden state configurations + + x (numpy ndarray or array-object): + Categorical distribution presenting probabilities of hidden states + (this can also be interpreted as the predictive density over hidden + states/causes if you're calculating the expected Bayesian surprise) + + Returns + ------- + G (float): + the negative ambiguity (negative entropy of the likelihood of observations given hidden states, expected under current posterior over hidden states) + """ + + num_modalities = len(A) + + # Probability distribution over the hidden causes: i.e., Q(x) + qx = spm_cross(x) + G = 0 + qo = 0 + idx = np.array(np.where(qx > np.exp(-16))).T + + if utils.is_obj_array(A): + # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] + for i in idx: + # Probability over outcomes for this combination of causes + po = np.ones(1) + for modality_idx, A_m in enumerate(A): + index_vector = [slice(0, A_m.shape[0])] + list(i) + po = spm_cross(po, A_m[tuple(index_vector)]) + + po = po.ravel() + qo += qx[tuple(i)] * po + G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) + else: + for i in idx: + po = np.ones(1) + index_vector = [slice(0, A.shape[0])] + list(i) + po = spm_cross(po, A[tuple(index_vector)]) + po = po.ravel() + qo += qx[tuple(i)] * po + G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) + + return G + +def spm_MDP_G(A, x): + """ + Calculates the Bayesian surprise in the same way as spm_MDP_G.m does in + the original matlab code. + + Parameters + ---------- + A (numpy ndarray or array-object): + array assigning likelihoods of observations/outcomes under the various + hidden state configurations + + x (numpy ndarray or array-object): + Categorical distribution presenting probabilities of hidden states + (this can also be interpreted as the predictive density over hidden + states/causes if you're calculating the expected Bayesian surprise) + + Returns + ------- + G (float): + the (expected or not) Bayesian surprise under the density specified by x -- + namely, this scores how much an expected observation would update beliefs + about hidden states x, were it to be observed. + """ + + num_modalities = len(A) + + # Probability distribution over the hidden causes: i.e., Q(x) + qx = spm_cross(x) + G = 0 + qo = 0 + idx = np.array(np.where(qx > np.exp(-16))).T + + if utils.is_obj_array(A): + # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] + for i in idx: + # Probability over outcomes for this combination of causes + po = np.ones(1) + for modality_idx, A_m in enumerate(A): + index_vector = [slice(0, A_m.shape[0])] + list(i) + po = spm_cross(po, A_m[tuple(index_vector)]) + + po = po.ravel() + qo += qx[tuple(i)] * po + G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) + else: + for i in idx: + po = np.ones(1) + index_vector = [slice(0, A.shape[0])] + list(i) + po = spm_cross(po, A[tuple(index_vector)]) + po = po.ravel() + qo += qx[tuple(i)] * po + G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) + + # Subtract negative entropy of expectations: i.e., E_{Q(o)}[lnQ(o)] + G = G - qo.dot(spm_log_single(qo)) # type: ignore + + return G + +def kl_div(P,Q): + """ + Parameters + ---------- + P : Categorical probability distribution + Q : Categorical probability distribution + + Returns + ------- + The KL-divergence of P and Q + + """ + dkl = 0 + for i in range(len(P)): + dkl += np.dot(P[i], np.log(P[i] + EPS_VAL) - np.log(Q[i] + EPS_VAL)) + return(dkl) + +def entropy(A): + """ + Compute the entropy term H of the likelihood matrix, + i.e. one entropy value per column + """ + entropies = np.empty(len(A), dtype=object) + for i in range(len(A)): + if len(A[i].shape) > 2: + obs_dim = A[i].shape[0] + s_dim = A[i].size // obs_dim + A_merged = A[i].reshape(obs_dim, s_dim) + else: + A_merged = A[i] + + H = - np.diag(np.matmul(A_merged.T, np.log(A_merged + EPS_VAL))) + entropies[i] = H.reshape(*A[i].shape[1:]) + return entropies \ No newline at end of file diff --git a/pymdp/legacy/utils.py b/pymdp/legacy/utils.py new file mode 100644 index 00000000..4d01ffd9 --- /dev/null +++ b/pymdp/legacy/utils.py @@ -0,0 +1,647 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Utility functions + +__author__: Conor Heins, Alexander Tschantz, Brennan Klein +""" + +import numpy as np +import seaborn as sns +import matplotlib.pyplot as plt + +import warnings +import itertools + +EPS_VAL = 1e-16 # global constant for use in norm_dist() + +class Dimensions(object): + """ + The Dimensions class stores all data related to the size and shape of a model. + """ + def __init__( + self, + num_observations=None, + num_observation_modalities=0, + num_states=None, + num_state_factors=0, + num_controls=None, + num_control_factors=0, + ): + self.num_observations=num_observations + self.num_observation_modalities=num_observation_modalities + self.num_states=num_states + self.num_state_factors=num_state_factors + self.num_controls=num_controls + self.num_control_factors=num_control_factors + + +def sample(probabilities): + probabilities = probabilities.squeeze() if len(probabilities) > 1 else probabilities + sample_onehot = np.random.multinomial(1, probabilities) + return np.where(sample_onehot == 1)[0][0] + +def sample_obj_array(arr): + """ + Sample from set of Categorical distributions, stored in the sub-arrays of an object array + """ + + samples = [sample(arr_i) for arr_i in arr] + + return samples + +def obj_array(num_arr): + """ + Creates a generic object array with the desired number of sub-arrays, given by `num_arr` + """ + return np.empty(num_arr, dtype=object) + +def obj_array_zeros(shape_list): + """ + Creates a numpy object array whose sub-arrays are 1-D vectors + filled with zeros, with shapes given by shape_list[i] + """ + arr = obj_array(len(shape_list)) + for i, shape in enumerate(shape_list): + arr[i] = np.zeros(shape) + return arr + +def initialize_empty_A(num_obs, num_states): + """ + Initializes an empty observation likelihood array or `A` array using a list of observation-modality dimensions (`num_obs`) + and hidden state factor dimensions (`num_states`) + """ + + A_shape_list = [ [no] + num_states for no in num_obs] + return obj_array_zeros(A_shape_list) + +def initialize_empty_B(num_states, num_controls): + """ + Initializes an empty (controllable) transition likelihood array or `B` array using a list of hidden state factor dimensions (`num_states`) + and control factor dimensions (`num_controls) + """ + + B_shape_list = [ [ns, ns, num_controls[f]] for f, ns in enumerate(num_states)] + return obj_array_zeros(B_shape_list) + +def obj_array_uniform(shape_list): + """ + Creates a numpy object array whose sub-arrays are uniform Categorical + distributions with shapes given by shape_list[i]. The shapes (elements of shape_list) + can either be tuples or lists. + """ + arr = obj_array(len(shape_list)) + for i, shape in enumerate(shape_list): + arr[i] = norm_dist(np.ones(shape)) + return arr + +def obj_array_ones(shape_list, scale = 1.0): + arr = obj_array(len(shape_list)) + for i, shape in enumerate(shape_list): + arr[i] = scale * np.ones(shape) + + return arr + +def onehot(value, num_values): + arr = np.zeros(num_values) + arr[value] = 1.0 + return arr + +def random_A_matrix(num_obs, num_states, A_factor_list=None): + if type(num_obs) is int: + num_obs = [num_obs] + if type(num_states) is int: + num_states = [num_states] + num_modalities = len(num_obs) + + if A_factor_list is None: + num_factors = len(num_states) + A_factor_list = [list(range(num_factors))] * num_modalities + + A = obj_array(num_modalities) + for modality, modality_obs in enumerate(num_obs): + # lagging_dimensions = [ns for i, ns in enumerate(num_states) if i in A_factor_list[modality]] # enforces sortedness of A_factor_list + lagging_dimensions = [num_states[idx] for idx in A_factor_list[modality]] + modality_shape = [modality_obs] + lagging_dimensions + modality_dist = np.random.rand(*modality_shape) + A[modality] = norm_dist(modality_dist) + return A + +def random_B_matrix(num_states, num_controls, B_factor_list=None, B_factor_control_list=None): + """ + Generate random B object array + + Parameters + ---------- + num_states: ``list`` of ``int`` + ``list`` of the dimensionalities of each hidden state factor + num_controls: ``list`` of ``int``, default ``None`` + ``list`` of the dimensionalities of each control state factor. If ``None``, then is automatically computed as the dimensionality of each hidden state factor that is controllable + B_factor_list: ``list`` of ``list`` of ``int``, default ``None`` + ``list`` of ``list`` of states that each state depends on. If ``None``, then the dependencies are set so that each state only depends on itself + B_factor_control_list: ``list`` of ``list`` of ``int``, default ``None`` + ``list`` of ``list`` of actions that each state depends on. If ``None``, then the dependencies are set so that each state only depends on action of the same index + + Returns + ---------- + B: ``obj_array`` of ``numpy.ndarray`` + A set of ``numpy.ndarray`` transition matrices stored in an ``obj_array`` + """ + if type(num_states) is int: + num_states = [num_states] + if type(num_controls) is int: + num_controls = [num_controls] + num_factors = len(num_states) + + if B_factor_list is None: + B_factor_list = [[f] for f in range(num_factors)] + + if B_factor_control_list is None: + assert len(num_controls) == len(num_states) + B_factor_control_list = [[f] for f in range(num_factors)] + else: + unique_controls = list(set(sum(B_factor_control_list, []))) + assert unique_controls == list(range(len(num_controls))) + + B = obj_array(num_factors) + for factor in range(num_factors): + lagging_shape = [ns for i, ns in enumerate(num_states) if i in B_factor_list[factor]] + control_shape = [na for i, na in enumerate(num_controls) if i in B_factor_control_list[factor]] + factor_shape = [num_states[factor]] + lagging_shape + control_shape + factor_dist = np.random.rand(*factor_shape) + B[factor] = norm_dist(factor_dist) + return B + +def get_combination_index(x, dims): + """ + Find the index of an array of categorical values in an array of categorical dimensions + + Parameters + ---------- + x: ``numpy.ndarray`` or ``list`` of ``int`` + ``numpy.ndarray`` or ``list`` of ``int`` of categorical values to be converted into combination index + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion + + Returns + ---------- + index: ``int`` + ``int`` index of the combination + """ + assert len(x) == len(dims) + index = 0 + product = 1 + for i in reversed(range(len(dims))): + index += x[i] * product + product *= dims[i] + return index + +def index_to_combination(index, dims): + """ + Convert the combination index according to an array of categorical dimensions back to an array of categorical values + + Parameters + ---------- + index: ``int`` + ``int`` index of the combination + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion + + Returns + ---------- + x: ``list`` of ``int`` + ```list`` of ``int`` of categorical values to be converted into combination index + """ + x = [] + for base in reversed(dims): + x.append(index % base) + index //= base + return list(reversed(x)) + +def random_single_categorical(shape_list): + """ + Creates a random 1-D categorical distribution (or set of 1-D categoricals, e.g. multiple marginals of different factors) and returns them in an object array + """ + + num_sub_arrays = len(shape_list) + + out = obj_array(num_sub_arrays) + + for arr_idx, shape_i in enumerate(shape_list): + out[arr_idx] = norm_dist(np.random.rand(shape_i)) + + return out + +def construct_controllable_B(num_states, num_controls): + """ + Generates a fully controllable transition likelihood array, where each + action (control state) corresponds to a move to the n-th state from any + other state, for each control factor + """ + + num_factors = len(num_states) + + B = obj_array(num_factors) + for factor, c_dim in enumerate(num_controls): + tmp = np.eye(c_dim)[:, :, np.newaxis] + tmp = np.tile(tmp, (1, 1, c_dim)) + B[factor] = tmp.transpose(1, 2, 0) + + return B + +def dirichlet_like(template_categorical, scale = 1.0): + """ + Helper function to construct a Dirichlet distribution based on an existing Categorical distribution + """ + + if not is_obj_array(template_categorical): + warnings.warn( + "Input array is not an object array...\ + Casting the input to an object array" + ) + template_categorical = to_obj_array(template_categorical) + + n_sub_arrays = len(template_categorical) + + dirichlet_out = obj_array(n_sub_arrays) + + for i, arr in enumerate(template_categorical): + dirichlet_out[i] = scale * arr + + return dirichlet_out + +def get_model_dimensions(A=None, B=None, factorized=False): + + if A is None and B is None: + raise ValueError( + "Must provide either `A` or `B`" + ) + + if A is not None: + num_obs = [a.shape[0] for a in A] if is_obj_array(A) else [A.shape[0]] + num_modalities = len(num_obs) + else: + num_obs, num_modalities = None, None + + if B is not None: + num_states = [b.shape[0] for b in B] if is_obj_array(B) else [B.shape[0]] + num_factors = len(num_states) + else: + if A is not None: + if not factorized: + num_states = list(A[0].shape[1:]) if is_obj_array(A) else list(A.shape[1:]) + num_factors = len(num_states) + else: + raise ValueError( + "`A` array is factorized and cannot be used to infer `num_states`" + ) + else: + num_states, num_factors = None, None + + return num_obs, num_states, num_modalities, num_factors + +def get_model_dimensions_from_labels(model_labels): + + modalities = model_labels['observations'] + factors = model_labels['states'] + + res = Dimensions( + num_observations=[len(modalities[modality]) for modality in modalities.keys()], + num_observation_modalities=len(modalities.keys()), + num_states=[len(factors[factor]) for factor in factors.keys()], + num_state_factors=len(factors.keys()), + ) + + if 'actions' in model_labels.keys(): + controls = model_labels['actions'] + res.num_controls=[len(controls[cfac]) for cfac in controls.keys()] + res.num_control_factors=len(controls.keys()) + + return res + + + +def norm_dist(dist): + """ Normalizes a Categorical probability distribution (or set of them) assuming sufficient statistics are stored in leading dimension""" + return np.divide(dist, dist.sum(axis=0)) + +def norm_dist_obj_arr(obj_arr): + """ Normalizes a multi-factor or -modality collection of Categorical probability distributions, assuming sufficient statistics of each conditional distribution + are stored in the leading dimension""" + normed_obj_array = obj_array(len(obj_arr)) + for i, arr in enumerate(obj_arr): + normed_obj_array[i] = norm_dist(arr) + + return normed_obj_array + +def is_normalized(dist): + """ + Utility function for checking whether a single distribution or set of conditional categorical distributions is normalized. + Returns True if all distributions integrate to 1.0 + """ + + if is_obj_array(dist): + normed_arrays = [] + for i, arr in enumerate(dist): + column_sums = arr.sum(axis=0) + normed_arrays.append(np.allclose(column_sums, np.ones_like(column_sums))) + out = all(normed_arrays) + else: + column_sums = dist.sum(axis=0) + out = np.allclose(column_sums, np.ones_like(column_sums)) + + return out + +def is_obj_array(arr): + return arr.dtype == "object" + +def to_obj_array(arr): + if is_obj_array(arr): + return arr + obj_array_out = obj_array(1) + obj_array_out[0] = arr.squeeze() + return obj_array_out + +def obj_array_from_list(list_input): + """ + Takes a list of `numpy.ndarray` and converts them to a `numpy.ndarray` of `dtype = object` + """ + arr = obj_array(len(list_input)) + for i, item in enumerate(list_input): + arr[i] = item + return arr + +def process_observation_seq(obs_seq, n_modalities, n_observations): + """ + Helper function for formatting observations + + Observations can either be `int` (converted to one-hot) + or `tuple` (obs for each modality), or `list` (obs for each modality) + If list, the entries could be object arrays of one-hots, in which + case this function returns `obs_seq` as is. + """ + proc_obs_seq = obj_array(len(obs_seq)) + for t, obs_t in enumerate(obs_seq): + proc_obs_seq[t] = process_observation(obs_t, n_modalities, n_observations) + return proc_obs_seq + +def process_observation(obs, num_modalities, num_observations): + """ + Helper function for formatting observations + USAGE NOTES: + - If `obs` is a 1D numpy array, it must be a one-hot vector, where one entry (the entry of the observation) is 1.0 + and all other entries are 0. This therefore assumes it's a single modality observation. If these conditions are met, then + this function will return `obs` unchanged. Otherwise, it'll throw an error. + - If `obs` is an int, it assumes this is a single modality observation, whose observation index is given by the value of `obs`. This function will convert + it to be a one hot vector. + - If `obs` is a list, it assumes this is a multiple modality observation, whose len is equal to the number of observation modalities, + and where each entry `obs[m]` is the index of the observation, for that modality. This function will convert it into an object array + of one-hot vectors. + - If `obs` is a tuple, same logic as applies for list (see above). + - if `obs` is a numpy object array (array of arrays), this function will return `obs` unchanged. + """ + + if isinstance(obs, np.ndarray) and not is_obj_array(obs): + assert num_modalities == 1, "If `obs` is a 1D numpy array, `num_modalities` must be equal to 1" + assert len(np.where(obs)[0]) == 1, "If `obs` is a 1D numpy array, it must be a one hot vector (e.g. np.array([0.0, 1.0, 0.0, ....]))" + + if isinstance(obs, (int, np.integer)): + obs = onehot(obs, num_observations[0]) + + if isinstance(obs, tuple) or isinstance(obs,list): + obs_arr_arr = obj_array(num_modalities) + for m in range(num_modalities): + obs_arr_arr[m] = onehot(obs[m], num_observations[m]) + obs = obs_arr_arr + + return obs + +def convert_observation_array(obs, num_obs): + """ + Converts from SPM-style observation array to infer-actively one-hot object arrays. + + Parameters + ---------- + - 'obs' [numpy 2-D nd.array]: + SPM-style observation arrays are of shape (num_modalities, T), where each row + contains observation indices for a different modality, and columns indicate + different timepoints. Entries store the indices of the discrete observations + within each modality. + + - 'num_obs' [list]: + List of the dimensionalities of the observation modalities. `num_modalities` + is calculated as `len(num_obs)` in the function to determine whether we're + dealing with a single- or multi-modality + case. + + Returns + ---------- + - `obs_t`[list]: + A list with length equal to T, where each entry of the list is either a) an object + array (in the case of multiple modalities) where each sub-array is a one-hot vector + with the observation for the correspond modality, or b) a 1D numpy array (in the case + of one modality) that is a single one-hot vector encoding the observation for the + single modality. + """ + + T = obs.shape[1] + num_modalities = len(num_obs) + + # Initialise the output + obs_t = [] + # Case of one modality + if num_modalities == 1: + for t in range(T): + obs_t.append(onehot(obs[0, t] - 1, num_obs[0])) + else: + for t in range(T): + obs_AoA = obj_array(num_modalities) + for g in range(num_modalities): + # Subtract obs[g,t] by 1 to account for MATLAB vs. Python indexing + # (MATLAB is 1-indexed) + obs_AoA[g] = onehot(obs[g, t] - 1, num_obs[g]) + obs_t.append(obs_AoA) + + return obs_t + +def insert_multiple(s, indices, items): + for idx in range(len(items)): + s.insert(indices[idx], items[idx]) + return s + +def reduce_a_matrix(A): + """ + Utility function for throwing away dimensions (lagging dimensions, hidden state factors) + of a particular A matrix that are independent of the observation. + Parameters: + ========== + - `A` [np.ndarray]: + The A matrix or likelihood array that encodes probabilistic relationship + of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) + and observations (leading dimension, rows). + Returns: + ========= + - `A_reduced` [np.ndarray]: + The reduced A matrix, missing the lagging dimensions that correspond to hidden state factors + that are statistically independent of observations + - `original_factor_idx` [list]: + List of the indices (in terms of the original dimensionality) of the hidden state factors + that are maintained in the A matrix (and thus have an informative / non-degenerate relationship to observations + """ + + o_dim, num_states = A.shape[0], A.shape[1:] + idx_vec_s = [slice(0, o_dim)] + [slice(ns) for _, ns in enumerate(num_states)] + + original_factor_idx = [] + excluded_factor_idx = [] # the indices of the hidden state factors that are independent of the observation and thus marginalized away + for factor_i, ns in enumerate(num_states): + + level_counter = 0 + break_flag = False + while level_counter < ns and break_flag is False: + idx_vec_i = idx_vec_s.copy() + idx_vec_i[factor_i+1] = slice(level_counter,level_counter+1,None) + if not np.isclose(A.mean(axis=factor_i+1), A[tuple(idx_vec_i)].squeeze()).all(): + break_flag = True # this means they're not independent + original_factor_idx.append(factor_i) + else: + level_counter += 1 + + if break_flag is False: + excluded_factor_idx.append(factor_i+1) + + A_reduced = A.mean(axis=tuple(excluded_factor_idx)).squeeze() + + return A_reduced, original_factor_idx + +def construct_full_a(A_reduced, original_factor_idx, num_states): + """ + Utility function for reconstruction a full A matrix from a reduced A matrix, using known factor indices + to tile out the reduced A matrix along the 'non-informative' dimensions + Parameters: + ========== + - `A_reduced` [np.ndarray]: + The reduced A matrix or likelihood array that encodes probabilistic relationship + of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) + and observations (leading dimension, rows). + - `original_factor_idx` [list]: + List of hidden state indices in terms of the full hidden state factor list, that comprise + the lagging dimensions of `A_reduced` + - `num_states` [list]: + The list of all the dimensionalities of hidden state factors in the full generative model. + `A_reduced.shape[1:]` should be equal to `num_states[original_factor_idx]` + Returns: + ========= + - `A` [np.ndarray]: + The full A matrix, containing all the lagging dimensions that correspond to hidden state factors, including + those that are statistically independent of observations + + @ NOTE: This is the "inverse" of the reduce_a_matrix function, + i.e. `reduce_a_matrix(construct_full_a(A_reduced, original_factor_idx, num_states)) == A_reduced, original_factor_idx` + """ + + o_dim = A_reduced.shape[0] # dimensionality of the support of the likelihood distribution (i.e. the number of observation levels) + full_dimensionality = [o_dim] + num_states # full dimensionality of the output (`A`) + fill_indices = [0] + [f+1 for f in original_factor_idx] # these are the indices of the dimensions we need to fill for this modality + fill_dimensions = np.delete(full_dimensionality, fill_indices) + + original_factor_dims = [num_states[f] for f in original_factor_idx] # dimensionalities of the relevant factors + prefilled_slices = [slice(0, o_dim)] + [slice(0, ns) for ns in original_factor_dims] # these are the slices that are filled out by the provided `A_reduced` + + A = np.zeros(full_dimensionality) + + for item in itertools.product(*[list(range(d)) for d in fill_dimensions]): + slice_ = list(item) + A_indices = insert_multiple(slice_, fill_indices, prefilled_slices) #here we insert the correct values for the fill indices for this slice + A[tuple(A_indices)] = A_reduced + + return A + +# def build_belief_array(qx): + +# """ +# This function constructs array-ified (not nested) versions +# of the posterior belief arrays, that are separated +# by policy, timepoint, and hidden state factor +# """ + +# num_policies = len(qx) +# num_timesteps = len(qx[0]) +# num_factors = len(qx[0][0]) + +# if num_factors > 1: +# belief_array = obj_array(num_factors) +# for factor in range(num_factors): +# belief_array[factor] = np.zeros( (num_policies, qx[0][0][factor].shape[0], num_timesteps) ) +# for policy_i in range(num_policies): +# for timestep in range(num_timesteps): +# for factor in range(num_factors): +# belief_array[factor][policy_i, :, timestep] = qx[policy_i][timestep][factor] +# else: +# num_states = qx[0][0][0].shape[0] +# belief_array = np.zeros( (num_policies, num_states, num_timesteps) ) +# for policy_i in range(num_policies): +# for timestep in range(num_timesteps): +# belief_array[policy_i, :, timestep] = qx[policy_i][timestep][0] + +# return belief_array + +def build_xn_vn_array(xn): + + """ + This function constructs array-ified (not nested) versions + of the posterior xn (beliefs) or vn (prediction error) arrays, that are separated + by iteration, hidden state factor, timepoint, and policy + """ + + num_policies = len(xn) + num_itr = len(xn[0]) + num_factors = len(xn[0][0]) + + if num_factors > 1: + xn_array = obj_array(num_factors) + for factor in range(num_factors): + num_states, infer_len = xn[0][0][factor].shape + xn_array[factor] = np.zeros( (num_itr, num_states, infer_len, num_policies) ) + for policy_i in range(num_policies): + for itr in range(num_itr): + for factor in range(num_factors): + xn_array[factor][itr,:,:,policy_i] = xn[policy_i][itr][factor] + else: + num_states, infer_len = xn[0][0][0].shape + xn_array = np.zeros( (num_itr, num_states, infer_len, num_policies) ) + for policy_i in range(num_policies): + for itr in range(num_itr): + xn_array[itr,:,:,policy_i] = xn[policy_i][itr][0] + + return xn_array + +def plot_beliefs(belief_dist, title=""): + """ + Utility function that plots a bar chart of a categorical probability distribution, + with each bar height corresponding to the probability of one of the elements of the categorical + probability vector. + """ + + plt.grid(zorder=0) + plt.bar(range(belief_dist.shape[0]), belief_dist, color='r', zorder=3) + plt.xticks(range(belief_dist.shape[0])) + plt.title(title) + plt.show() + +def plot_likelihood(A, title=""): + """ + Utility function that shows a heatmap of a 2-D likelihood (hidden causes in the columns, observations in the rows), + with hotter colors indicating higher probability. + """ + + ax = sns.heatmap(A, cmap="OrRd", linewidth=2.5) + plt.xticks(range(A.shape[1]+1)) + plt.yticks(range(A.shape[0]+1)) + plt.title(title) + plt.show() + + + + + diff --git a/pymdp/jax/likelihoods.py b/pymdp/likelihoods.py similarity index 100% rename from pymdp/jax/likelihoods.py rename to pymdp/likelihoods.py diff --git a/pymdp/maths.py b/pymdp/maths.py index 1d5e9e4d..0bf77cf0 100644 --- a/pymdp/maths.py +++ b/pymdp/maths.py @@ -1,121 +1,91 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# pylint: disable=no-member -# pylint: disable=not-an-iterable +import jax.numpy as jnp -""" Functions +from functools import partial +from typing import Optional, Tuple, List +from jax import tree_util, nn, jit, vmap, lax +from jax.scipy.special import xlogy +from opt_einsum import contract +from multimethod import multimethod +from jaxtyping import ArrayLike +from jax.experimental import sparse +from jax.experimental.sparse._base import JAXSparse -__author__: Conor Heins, Alexander Tschantz, Brennan Klein -""" +MINVAL = jnp.finfo(float).eps -import numpy as np -from scipy import special -from pymdp import utils -from itertools import chain -from opt_einsum import contract +def stable_xlogx(x): + return xlogy(x, jnp.clip(x, MINVAL)) -EPS_VAL = 1e-16 # global constant for use in spm_log() function +def stable_entropy(x): + return - stable_xlogx(x).sum() -def spm_dot(X, x, dims_to_omit=None): - """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` - will not be summed across during the dot product - +def stable_cross_entropy(x, y): + return - xlogy(x, y).sum() + +def log_stable(x): + return jnp.log(jnp.clip(x, min=MINVAL)) + + +@multimethod +@partial(jit, static_argnames=["keep_dims"]) +def factor_dot(M: ArrayLike, xs: list[ArrayLike], keep_dims: Optional[tuple[int]] = None): + """Dot product of a multidimensional array with `x`. Parameters ---------- - - `x` [1D numpy.ndarray] - either vector or array of arrays - The alternative array to perform the dot product with - - `dims_to_omit` [list :: int] (optional) - Which dimensions to omit - - Returns + - `qs` [list of 1D numpy.ndarray] - list of jnp.ndarrays + + Returns ------- - `Y` [1D numpy.ndarray] - the result of the dot product """ + d = len(keep_dims) if keep_dims is not None else 0 + assert M.ndim == len(xs) + d + keep_dims = () if keep_dims is None else keep_dims + dims = tuple((i,) for i in range(M.ndim) if i not in keep_dims) + return factor_dot_flex(M, xs, dims, keep_dims=keep_dims) - # Construct dims to perform dot product on - if utils.is_obj_array(x): - # dims = list((np.arange(0, len(x)) + X.ndim - len(x)).astype(int)) - dims = list(range(X.ndim - len(x),len(x)+X.ndim - len(x))) - # dims = list(range(X.ndim)) - else: - dims = [1] - x = utils.to_obj_array(x) - if dims_to_omit is not None: - arg_list = [X, list(range(X.ndim))] + list(chain(*([x[xdim_i],[dims[xdim_i]]] for xdim_i in range(len(x)) if xdim_i not in dims_to_omit))) + [dims_to_omit] - else: - arg_list = [X, list(range(X.ndim))] + list(chain(*([x[xdim_i],[dims[xdim_i]]] for xdim_i in range(len(x))))) + [[0]] +@multimethod +def factor_dot(M: JAXSparse, xs: List[ArrayLike], keep_dims: Optional[Tuple[int]] = None): + d = len(keep_dims) if keep_dims is not None else 0 + assert M.ndim == len(xs) + d + keep_dims = () if keep_dims is None else keep_dims + dims = tuple((i,) for i in range(M.ndim) if i not in keep_dims) + return spm_dot_sparse(M, xs, dims, keep_dims=keep_dims) - Y = np.einsum(*arg_list) - - # check to see if `Y` is a scalar - if np.prod(Y.shape) <= 1.0: - Y = Y.item() - Y = np.array([Y]).astype("float64") - - return Y +def spm_dot_sparse( + X: JAXSparse, x: List[ArrayLike], dims: Optional[List[Tuple[int]]], keep_dims: Optional[List[Tuple[int]]] +): + if dims is None: + dims = (jnp.arange(0, len(x)) + X.ndim - len(x)).astype(int) + dims = jnp.array(dims).flatten() -def spm_dot_classic(X, x, dims_to_omit=None): - """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` - will not be summed across during the dot product - - Parameters - ---------- - - `x` [1D numpy.ndarray] - either vector or array of arrays - The alternative array to perform the dot product with - - `dims_to_omit` [list :: int] (optional) - Which dimensions to omit - - Returns - ------- - - `Y` [1D numpy.ndarray] - the result of the dot product - """ + if keep_dims is not None: + for d in keep_dims: + if d in dims: + dims = jnp.delete(dims, jnp.argwhere(dims == d)) - # Construct dims to perform dot product on - if utils.is_obj_array(x): - dims = (np.arange(0, len(x)) + X.ndim - len(x)).astype(int) - else: - dims = np.array([1], dtype=int) - x = utils.to_obj_array(x) - - # delete ignored dims - if dims_to_omit is not None: - if not isinstance(dims_to_omit, list): - raise ValueError("`dims_to_omit` must be a `list` of `int`") - dims = np.delete(dims, dims_to_omit) - if len(x) == 1: - x = np.empty([0], dtype=object) - else: - x = np.delete(x, dims_to_omit) - - # compute dot product for d in range(len(x)): - s = np.ones(np.ndim(X), dtype=int) - s[dims[d]] = np.shape(x[d])[0] + s = jnp.ones(jnp.ndim(X), dtype=int) + s = s.at[dims[d]].set(jnp.shape(x[d])[0]) X = X * x[d].reshape(tuple(s)) - # X = np.sum(X, axis=dims[d], keepdims=True) - Y = np.sum(X, axis=tuple(dims.astype(int))).squeeze() - # Y = np.squeeze(X) + sparse_sum = sparse.sparsify(jnp.sum) + Y = sparse_sum(X, axis=tuple(dims)) + return Y - # check to see if `Y` is a scalar - if np.prod(Y.shape) <= 1.0: - Y = Y.item() - Y = np.array([Y]).astype("float64") - return Y +@partial(jit, static_argnames=["dims", "keep_dims"]) +def factor_dot_flex(M, xs, dims: List[Tuple[int]], keep_dims: Optional[Tuple[int]] = None): + """Dot product of a multidimensional array with `x`. -def factor_dot_flex(M, xs, dims, keep_dims=None): - """ Dot product of a multidimensional array with `x`. - Parameters ---------- - `M` [numpy.ndarray] - tensor - 'xs' [list of numpyr.ndarray] - list of tensors - 'dims' [list of tuples] - list of dimensions of xs tensors in tensor M - 'keep_dims' [tuple] - tuple of integers denoting dimesions to keep - Returns + Returns ------- - `Y` [1D numpy.ndarray] - the result of the dot product """ @@ -126,483 +96,108 @@ def factor_dot_flex(M, xs, dims, keep_dims=None): args.extend(row) args += [keep_dims] - return contract(*args, backend='numpy') + return contract(*args, backend="jax") -def spm_dot_old(X, x, dims_to_omit=None, obs_mode=False): - """ Dot product of a multidimensional array with `x`. The dimensions in `dims_to_omit` - will not be summed across during the dot product - #TODO: we should look for an alternative to obs_mode - - Parameters - ---------- - - `x` [1D numpy.ndarray] - either vector or array of arrays - The alternative array to perform the dot product with - - `dims_to_omit` [list :: int] (optional) - Which dimensions to omit - - Returns - ------- - - `Y` [1D numpy.ndarray] - the result of the dot product - """ - - # Construct dims to perform dot product on - if utils.is_obj_array(x): - dims = (np.arange(0, len(x)) + X.ndim - len(x)).astype(int) +def get_likelihood_single_modality(o_m, A_m, distr_obs=True): + """Return observation likelihood for a single observation modality m""" + if distr_obs: + expanded_obs = jnp.expand_dims(o_m, tuple(range(1, A_m.ndim))) + likelihood = (expanded_obs * A_m).sum(axis=0) else: - if obs_mode is True: - """ - @NOTE Case when you're getting the likelihood of an observation under - the generative model. Equivalent to something like self.values[np.where(x),:] - when `x` is a discrete 'one-hot' observation vector - """ - dims = np.array([0], dtype=int) - else: - """ - @NOTE Case when `x` leading dimension matches the lagging dimension of `values` - E.g. a more 'classical' dot product of a likelihood with hidden states - """ - dims = np.array([1], dtype=int) - - x = utils.to_obj_array(x) - - # delete ignored dims - if dims_to_omit is not None: - if not isinstance(dims_to_omit, list): - raise ValueError("`dims_to_omit` must be a `list` of `int`") - dims = np.delete(dims, dims_to_omit) - if len(x) == 1: - x = np.empty([0], dtype=object) - else: - x = np.delete(x, dims_to_omit) - - # compute dot product - for d in range(len(x)): - s = np.ones(np.ndim(X), dtype=int) - s[dims[d]] = np.shape(x[d])[0] - X = X * x[d].reshape(tuple(s)) - # X = np.sum(X, axis=dims[d], keepdims=True) + likelihood = A_m[o_m] - Y = np.sum(X, axis=tuple(dims.astype(int))).squeeze() - # Y = np.squeeze(X) + return likelihood - # check to see if `Y` is a scalar - if np.prod(Y.shape) <= 1.0: - Y = Y.item() - Y = np.array([Y]).astype("float64") +def compute_log_likelihood_single_modality(o_m, A_m, distr_obs=True): + """Compute observation log-likelihood for a single modality""" + return log_stable(get_likelihood_single_modality(o_m, A_m, distr_obs=distr_obs)) - return Y +def compute_log_likelihood(obs, A, distr_obs=True): + """Compute likelihood over hidden states across observations from different modalities""" + result = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) + ll = jnp.sum(jnp.stack(result), 0) -def spm_cross(x, y=None, *args): - """ Multi-dimensional outer product - - Parameters - ---------- - - `x` [np.ndarray] || [Categorical] (optional) - The values to perfrom the outer-product with. If empty, then the outer-product - is taken between x and itself. If y is not empty, then outer product is taken - between x and the various dimensions of y. - - `args` [np.ndarray] || [Categorical] (optional) - Remaining arrays to perform outer-product with. These extra arrays are recursively - multiplied with the 'initial' outer product (that between X and x). - - Returns - ------- - - `z` [np.ndarray] || [Categorical] - The result of the outer-product - """ - - if len(args) == 0 and y is None: - if utils.is_obj_array(x): - z = spm_cross(*list(x)) - elif np.issubdtype(x.dtype, np.number): - z = x - else: - raise ValueError(f"Invalid input to spm_cross ({x})") - return z - - if utils.is_obj_array(x): - x = spm_cross(*list(x)) - - if y is not None and utils.is_obj_array(y): - y = spm_cross(*list(y)) - - A = np.expand_dims(x, tuple(range(-y.ndim, 0))) - B = np.expand_dims(y, tuple(range(x.ndim))) - z = A * B - - for x in args: - z = spm_cross(z, x) - return z - -def dot_likelihood(A,obs): - - s = np.ones(np.ndim(A), dtype = int) - s[0] = obs.shape[0] - X = A * obs.reshape(tuple(s)) - X = np.sum(X, axis=0, keepdims=True) - LL = np.squeeze(X) - - # check to see if `LL` is a scalar - if np.prod(LL.shape) <= 1.0: - LL = LL.item() - LL = np.array([LL]).astype("float64") - - return LL - - -def get_joint_likelihood(A, obs, num_states): - # deal with single modality case - if type(num_states) is int: - num_states = [num_states] - A = utils.to_obj_array(A) - obs = utils.to_obj_array(obs) - ll = np.ones(tuple(num_states)) - for modality in range(len(A)): - ll = ll * dot_likelihood(A[modality], obs[modality]) return ll -def get_joint_likelihood_seq(A, obs, num_states): - ll_seq = utils.obj_array(len(obs)) - for t, obs_t in enumerate(obs): - ll_seq[t] = get_joint_likelihood(A, obs_t, num_states) - return ll_seq +def compute_log_likelihood_per_modality(obs, A, distr_obs=True): + """Compute likelihood over hidden states across observations from different modalities, and return them per modality""" + ll_all = tree_util.tree_map(lambda o, a: compute_log_likelihood_single_modality(o, a, distr_obs=distr_obs), obs, A) -def get_joint_likelihood_seq_by_modality(A, obs, num_states): - """ - Returns joint likelihoods for each modality separately - """ + return ll_all - ll_seq = utils.obj_array(len(obs)) - n_modalities = len(A) - for t, obs_t in enumerate(obs): - likelihood = utils.obj_array(n_modalities) - obs_t_obj = utils.to_obj_array(obs_t) - for (m, A_m) in enumerate(A): - likelihood[m] = dot_likelihood(A_m, obs_t_obj[m]) - ll_seq[t] = likelihood - - return ll_seq +def compute_accuracy(qs, obs, A): + """Compute the accuracy portion of the variational free energy (expected log likelihood under the variational posterior)""" + log_likelihood = compute_log_likelihood(obs, A) -def spm_norm(A): - """ - Returns normalization of Categorical distribution, - stored in the columns of A. - """ - A = A + EPS_VAL - normed_A = np.divide(A, A.sum(axis=0)) - return normed_A - -def spm_log_single(arr): - """ - Adds small epsilon value to an array before natural logging it - """ - return np.log(arr + EPS_VAL) - -def spm_log_obj_array(obj_arr): - """ - Applies `spm_log_single` to multiple elements of a numpy object array - """ + x = qs[0] + for q in qs[1:]: + x = jnp.expand_dims(x, -1) * q - obj_arr_logged = utils.obj_array(len(obj_arr)) - for idx, arr in enumerate(obj_arr): - obj_arr_logged[idx] = spm_log_single(arr) + joint = ll * x + return joint.sum() - return obj_arr_logged -def spm_wnorm(A): - """ - Returns Expectation of logarithm of Dirichlet parameters over a set of - Categorical distributions, stored in the columns of A. - """ - A = A + EPS_VAL - norm = np.divide(1.0, np.sum(A, axis=0)) - avg = np.divide(1.0, A) - wA = norm - avg - return wA - - -def spm_betaln(z): - """ Log of the multivariate beta function of a vector. - @NOTE this function computes across columns if `z` is a matrix +def compute_free_energy(qs, prior, obs, A): """ - return special.gammaln(z).sum(axis=0) - special.gammaln(z.sum(axis=0)) + Calculate variational free energy by breaking its computation down into three steps: + 1. computation of the negative entropy of the posterior -H[Q(s)] + 2. computation of the cross entropy of the posterior with the prior H_{Q(s)}[P(s)] + 3. computation of the accuracy E_{Q(s)}[lnP(o|s)] -def dirichlet_log_evidence(q_dir, p_dir, r_dir): + Then add them all together -- except subtract the accuracy """ - Bayesian model reduction and log evidence calculations for Dirichlet hyperparameters - This is a NumPY translation of the MATLAB function `spm_MDP_log_evidence.m` from the - DEM package of spm. - - Description (adapted from MATLAB docstring) - This function computes the negative log evidence of a reduced model of a - Categorical distribution parameterised in terms of Dirichlet hyperparameters - (i.e., concentration parameters encoding probabilities). It uses Bayesian model reduction - to evaluate the evidence for models with and without a particular parameter. - Arguments: - =========== - `q_dir` [1D np.ndarray]: sufficient statistics of posterior of full model - `p_dir` [1D np.ndarray]: sufficient statistics of prior of full model - `r_dir` [1D np.ndarray]: sufficient statistics of prior of reduced model - Returns: - ========== - `F` [float]: free energy or (negative) log evidence of reduced model - `s_dir` [1D np.ndarray]: sufficient statistics of reduced posterior - """ - - # change in free energy or log model evidence - s_dir = q_dir + r_dir - p_dir - F = spm_betaln(q_dir) + spm_betaln(r_dir) - spm_betaln(p_dir) - spm_betaln(s_dir) - - return F, s_dir - -def softmax(dist): - """ - Computes the softmax function on a set of values - """ - - output = dist - dist.max(axis=0) - output = np.exp(output) - output = output / np.sum(output, axis=0) - return output - -def softmax_obj_arr(arr): - output = utils.obj_array(len(arr)) - - for i, arr_i in enumerate(arr): - output[i] = softmax(arr_i) + vfe = 0.0 # initialize variational free energy + for q, p in zip(qs, prior): + negH_qs = - stable_entropy(q) + xH_qp = stable_cross_entropy(q, p) + vfe += (negH_qs + xH_qp) - return output + vfe -= compute_accuracy(qs, obs, A) -def compute_accuracy(log_likelihood, qs): - """ - Function that computes the accuracy term of the variational free energy. This is essentially a stripped down version of `spm_dot` above, - with fewer conditions / dimension handling in the beginning. - """ + return vfe - ndims_ll, n_factors = log_likelihood.ndim, len(qs) - dims = list(range(ndims_ll - n_factors,n_factors+ndims_ll - n_factors)) - arg_list = [log_likelihood, list(range(ndims_ll))] + list(chain(*([qs[xdim_i],[dims[xdim_i]]] for xdim_i in range(n_factors)))) +def multidimensional_outer(arrs): + """Compute the outer product of a list of arrays by iteratively expanding the first array and multiplying it with the next array""" - return np.einsum(*arg_list) + x = arrs[0] + for q in arrs[1:]: + x = jnp.expand_dims(x, -1) * q + return x -def calc_free_energy(qs, prior, n_factors, likelihood=None): - """ Calculate variational free energy - @TODO Primarily used in FPI algorithm, needs to be made general - """ - free_energy = 0 - for factor in range(n_factors): - # Neg-entropy of posterior marginal H(q[f]) - negH_qs = qs[factor].dot(np.log(qs[factor][:, np.newaxis] + 1e-16)) - # Cross entropy of posterior marginal with prior marginal H(q[f],p[f]) - xH_qp = -qs[factor].dot(prior[factor][:, np.newaxis]) - free_energy += negH_qs + xH_qp - - if likelihood is not None: - free_energy -= compute_accuracy(likelihood, qs) - return free_energy - -def spm_calc_qo_entropy(A, x): - """ - Function that just calculates the entropy part of the state information gain, using the same method used in - spm_MDP_G.m in the original matlab code. - Parameters - ---------- - A (numpy ndarray or array-object): - array assigning likelihoods of observations/outcomes under the various - hidden state configurations - - x (numpy ndarray or array-object): - Categorical distribution presenting probabilities of hidden states - (this can also be interpreted as the predictive density over hidden - states/causes if you're calculating the expected Bayesian surprise) - - Returns - ------- - H (float): - the entropy of the marginal distribution over observations/outcomes - """ - - num_modalities = len(A) - - # Probability distribution over the hidden causes: i.e., Q(x) - qx = spm_cross(x) - qo = 0 - idx = np.array(np.where(qx > np.exp(-16))).T - - if utils.is_obj_array(A): - # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] - for i in idx: - # Probability over outcomes for this combination of causes - po = np.ones(1) - for modality_idx, A_m in enumerate(A): - index_vector = [slice(0, A_m.shape[0])] + list(i) - po = spm_cross(po, A_m[tuple(index_vector)]) - po = po.ravel() - qo += qx[tuple(i)] * po - else: - for i in idx: - po = np.ones(1) - index_vector = [slice(0, A.shape[0])] + list(i) - po = spm_cross(po, A[tuple(index_vector)]) - po = po.ravel() - qo += qx[tuple(i)] * po - - # Compute entropy of expectations: i.e., -E_{Q(o)}[lnQ(o)] - H = - qo.dot(spm_log_single(qo)) - - return H - -def spm_calc_neg_ambig(A, x): +def spm_wnorm(A): """ - Function that just calculates the negativity ambiguity part of the state information gain, using the same method used in - spm_MDP_G.m in the original matlab code. - - Parameters - ---------- - A (numpy ndarray or array-object): - array assigning likelihoods of observations/outcomes under the various - hidden state configurations - - x (numpy ndarray or array-object): - Categorical distribution presenting probabilities of hidden states - (this can also be interpreted as the predictive density over hidden - states/causes if you're calculating the expected Bayesian surprise) - - Returns - ------- - G (float): - the negative ambiguity (negative entropy of the likelihood of observations given hidden states, expected under current posterior over hidden states) + Returns Expectation of logarithm of Dirichlet parameters over a set of + Categorical distributions, stored in the columns of A. """ + norm = 1. / A.sum(axis=0) + avg = 1. / (A + MINVAL) + wA = norm - avg + return wA - num_modalities = len(A) - - # Probability distribution over the hidden causes: i.e., Q(x) - qx = spm_cross(x) - G = 0 - qo = 0 - idx = np.array(np.where(qx > np.exp(-16))).T - - if utils.is_obj_array(A): - # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] - for i in idx: - # Probability over outcomes for this combination of causes - po = np.ones(1) - for modality_idx, A_m in enumerate(A): - index_vector = [slice(0, A_m.shape[0])] + list(i) - po = spm_cross(po, A_m[tuple(index_vector)]) - - po = po.ravel() - qo += qx[tuple(i)] * po - G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) - else: - for i in idx: - po = np.ones(1) - index_vector = [slice(0, A.shape[0])] + list(i) - po = spm_cross(po, A[tuple(index_vector)]) - po = po.ravel() - qo += qx[tuple(i)] * po - G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) - - return G -def spm_MDP_G(A, x): +def dirichlet_expected_value(dir_arr): """ - Calculates the Bayesian surprise in the same way as spm_MDP_G.m does in - the original matlab code. - - Parameters - ---------- - A (numpy ndarray or array-object): - array assigning likelihoods of observations/outcomes under the various - hidden state configurations - - x (numpy ndarray or array-object): - Categorical distribution presenting probabilities of hidden states - (this can also be interpreted as the predictive density over hidden - states/causes if you're calculating the expected Bayesian surprise) - - Returns - ------- - G (float): - the (expected or not) Bayesian surprise under the density specified by x -- - namely, this scores how much an expected observation would update beliefs - about hidden states x, were it to be observed. + Returns Expectation of Dirichlet parameters over a set of + Categorical distributions, stored in the columns of A. """ + dir_arr = jnp.clip(dir_arr, min=MINVAL) + expected_val = jnp.divide(dir_arr, dir_arr.sum(axis=0, keepdims=True)) + return expected_val - num_modalities = len(A) - - # Probability distribution over the hidden causes: i.e., Q(x) - qx = spm_cross(x) - G = 0 - qo = 0 - idx = np.array(np.where(qx > np.exp(-16))).T - - if utils.is_obj_array(A): - # Accumulate expectation of entropy: i.e., E_{Q(o, x)}[lnP(o|x)] = E_{P(o|x)Q(x)}[lnP(o|x)] = E_{Q(x)}[P(o|x)lnP(o|x)] = E_{Q(x)}[H[P(o|x)]] - for i in idx: - # Probability over outcomes for this combination of causes - po = np.ones(1) - for modality_idx, A_m in enumerate(A): - index_vector = [slice(0, A_m.shape[0])] + list(i) - po = spm_cross(po, A_m[tuple(index_vector)]) - - po = po.ravel() - qo += qx[tuple(i)] * po - G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) - else: - for i in idx: - po = np.ones(1) - index_vector = [slice(0, A.shape[0])] + list(i) - po = spm_cross(po, A[tuple(index_vector)]) - po = po.ravel() - qo += qx[tuple(i)] * po - G += qx[tuple(i)] * po.dot(np.log(po + np.exp(-16))) - - # Subtract negative entropy of expectations: i.e., E_{Q(o)}[lnQ(o)] - G = G - qo.dot(spm_log_single(qo)) # type: ignore - - return G - -def kl_div(P,Q): - """ - Parameters - ---------- - P : Categorical probability distribution - Q : Categorical probability distribution - Returns - ------- - The KL-divergence of P and Q - - """ - dkl = 0 - for i in range(len(P)): - dkl += np.dot(P[i], np.log(P[i] + EPS_VAL) - np.log(Q[i] + EPS_VAL)) - return(dkl) +if __name__ == "__main__": + obs = [0, 1, 2] + obs_vec = [nn.one_hot(o, 3) for o in obs] + A = [jnp.ones((3, 2)) / 3] * 3 + res = jit(compute_log_likelihood)(obs_vec, A) -def entropy(A): - """ - Compute the entropy term H of the likelihood matrix, - i.e. one entropy value per column - """ - entropies = np.empty(len(A), dtype=object) - for i in range(len(A)): - if len(A[i].shape) > 2: - obs_dim = A[i].shape[0] - s_dim = A[i].size // obs_dim - A_merged = A[i].reshape(obs_dim, s_dim) - else: - A_merged = A[i] - - H = - np.diag(np.matmul(A_merged.T, np.log(A_merged + EPS_VAL))) - entropies[i] = H.reshape(*A[i].shape[1:]) - return entropies \ No newline at end of file + print(res) diff --git a/pymdp/planning/mcts.py b/pymdp/planning/mcts.py new file mode 100644 index 00000000..8eddc458 --- /dev/null +++ b/pymdp/planning/mcts.py @@ -0,0 +1,156 @@ +from functools import partial +from jax import vmap, nn, random as jr, tree_util as jtu, lax +from pymdp.jax.control import compute_expected_state, compute_expected_obs, compute_info_gain, compute_expected_utility + +import mctx +import jax.numpy as jnp + + +def mcts_policy_search(search_algo=mctx.muzero_policy, max_depth=6, num_simulations=4096): + + def si_policy(agent, beliefs, rng_key): + + # remove time dimension + embedding = jtu.tree_map(lambda x: x[:, 0], beliefs) + root = mctx.RootFnOutput( + prior_logits=jnp.log(agent.E), + value=jnp.zeros((agent.batch_size)), + embedding=embedding, + ) + + recurrent_fn = make_aif_recurrent_fn() + + policy_output = search_algo( + agent, + rng_key, + root, + recurrent_fn, + num_simulations=num_simulations, + max_depth=max_depth, + ) + + return policy_output.action_weights, policy_output + + return si_policy + + +@vmap +def compute_neg_efe(agent, qs, action): + qs_next_pi = compute_expected_state(qs, agent.B, action, B_dependencies=agent.B_dependencies) + qo_next_pi = compute_expected_obs(qs_next_pi, agent.A, agent.A_dependencies) + if agent.use_states_info_gain: + exp_info_gain = compute_info_gain(qs_next_pi, qo_next_pi, agent.A, agent.A_dependencies) + else: + exp_info_gain = 0.0 + + if agent.use_utility: + exp_utility = compute_expected_utility(qo_next_pi, agent.C) + else: + exp_utility = 0.0 + + return exp_utility + exp_info_gain, qs_next_pi, qo_next_pi + + +@partial(vmap, in_axes=(0, 0, None)) +def get_prob_single_modality(o_m, po_m, distr_obs): + """Compute observation likelihood for a single modality (observation and likelihood)""" + return jnp.inner(o_m, po_m) if distr_obs else po_m[o_m] + + +def make_aif_recurrent_fn(): + """Returns a recurrent_fn for an AIF agent.""" + + def recurrent_fn(agent, rng_key, action, embedding): + multi_action = agent.policies[action, 0] + qs = embedding + neg_efe, qs_next_pi, qo_next_pi = compute_neg_efe(agent, qs, multi_action) + + # recursively branch the policy + outcome tree + choice = lambda key, po: jr.categorical(key, logits=jnp.log(po)) + if agent.onehot_obs: + sample = lambda key, po, no: nn.one_hot(choice(key, po), no) + else: + sample = lambda key, po, no: choice(key, po) + + # set discount to outcome probabilities + discount = 1.0 + obs = [] + for no_m, qo_m in zip(agent.num_obs, qo_next_pi): + rng_key, key = jr.split(rng_key) + o_m = sample(key, qo_m, no_m) + discount *= get_prob_single_modality(o_m, qo_m, agent.onehot_obs) + obs.append(jnp.expand_dims(o_m, 1)) + + qs_next_posterior = agent.infer_states(obs, qs_next_pi) + # remove time dimension + # TODO: update infer_states to not expand along time dimension when needed + qs_next_posterior = jtu.tree_map(lambda x: x.squeeze(1), qs_next_posterior) + recurrent_fn_output = mctx.RecurrentFnOutput( + reward=neg_efe, discount=discount, prior_logits=jnp.log(agent.E), value=jnp.zeros_like(neg_efe) + ) + + return recurrent_fn_output, qs_next_posterior + + return recurrent_fn + + +# custom rollout function for mcts +def rollout(policy_search, agent, env, num_timesteps, rng_key): + # get the batch_size of the agent + batch_size = agent.batch_size + + def step_fn(carry, x): + observation_t = carry["observation_t"] + prior = carry["empirical_prior"] + env = carry["env"] + rng_key = carry["rng_key"] + + # We infer the posterior using FPI + # so we don't need past actions or qs_hist + qs = agent.infer_states(observation_t, prior) + rng_key, key = jr.split(rng_key) + qpi, _ = policy_search(key, agent, qs) + + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + action_t = agent.sample_action(qpi, rng_key=keys[1:]) + + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + observation_t, env = env.step(rng_key=keys[1:], actions=action_t) + + prior, _ = agent.infer_empirical_prior(action_t, qs) + + carry = { + "observation_t": observation_t, + "empirical_prior": prior, + "env": env, + "rng_key": rng_key, + } + info = { + "qpi": qpi, + "qs": jtu.tree_map(lambda x: x[:, 0], qs), + "env": env, + "observation": observation_t, + "action": action_t, + } + + return carry, info + + # generate initial observation + keys = jr.split(rng_key, batch_size + 1) + rng_key = keys[0] + observation_0, env = env.step(keys[1:]) + + initial_carry = { + "observation_t": observation_0, + "empirical_prior": agent.D, + "env": env, + "rng_key": rng_key, + } + + # Scan over time dimension (axis 1) + last, info = lax.scan(step_fn, initial_carry, jnp.arange(num_timesteps)) + + info = jtu.tree_map(lambda x: jnp.swapaxes(x, 0, 1), info) + return last, info, env diff --git a/pymdp/planning/si.py b/pymdp/planning/si.py new file mode 100644 index 00000000..d87cc193 --- /dev/null +++ b/pymdp/planning/si.py @@ -0,0 +1,270 @@ +import itertools +import jax +import jax.numpy as jnp +import jax.tree_util as jtu +from jax import nn +from jax import vmap + +import pymdp +from pymdp.jax.control import ( + compute_info_gain, + compute_expected_utility, + compute_expected_state, + compute_expected_obs, + calc_inductive_value_t, +) + + +def si_policy_search( + max_depth, + policy_prune_threshold=1 / 16, + policy_prune_topk=-1, + observation_prune_threshold=1 / 16, + entropy_prune_threshold=0.5, + prune_penalty=512, + gamma=1, +): + + def search_fn(agent, qs, rng_key): + tree = tree_search( + agent, + qs, + max_depth, + policy_prune_threshold=policy_prune_threshold, + policy_prune_topk=policy_prune_topk, + observation_prune_threshold=observation_prune_threshold, + entropy_prune_threshold=entropy_prune_threshold, + prune_penalty=prune_penalty, + gamma=gamma, + ) + return tree.root()["q_pi"], tree + + return search_fn + + +class Tree: + def __init__(self, root): + self.nodes = [root] + + def root(self): + return self.nodes[0] + + def children(self, node): + return node["children"] + + def parent(self, node): + return node["parent"] + + def leaves(self): + return [node for node in self.nodes if "qs" in node.keys() and len(node["children"]) == 0] + + def append(self, node): + self.nodes.append(node) + + +def step(agent, qs, policies): + def _step(a, b, c, q, policy): + qs = compute_expected_state(q, b, policy, agent.B_dependencies) + qo = compute_expected_obs(qs, a, agent.A_dependencies) + u = compute_expected_utility(qo, c) + ig = compute_info_gain(qs, qo, a, agent.A_dependencies) + return qs, qo, u, ig + + qs, qo, u, ig = vmap(lambda policy: vmap(_step)(agent.A, agent.B, agent.C, qs, policy))(policies) + G = u + ig + return qs, qo, G + + +def tree_search( + agent, + qs, + horizon, + policy_prune_threshold=1 / 16, + policy_prune_topk=-1, + observation_prune_threshold=1 / 16, + entropy_prune_threshold=0.5, + prune_penalty=512, + gamma=1, + step_fn=step, +): + root_node = { + "qs": jtu.tree_map(lambda x: x[:, -1, ...], qs), + "G_t": 0.0, + "parent": None, + "children": [], + "n": 0, + } + tree = Tree(root_node) + + for _ in range(horizon): + leaves = tree.leaves() + qs_leaves = stack_leaves([leaf["qs"] for leaf in leaves]) + qs_pi, qo_pi, G = vmap(lambda leaf: step_fn(agent, leaf, agent.policies))(qs_leaves) + q_pi = nn.softmax(G * gamma, axis=1) + + for l, node in enumerate(leaves): + tree = expand_node( + agent, + node, + tree, + jtu.tree_map(lambda x: x[l, ...], qs_pi), + jtu.tree_map(lambda x: x[l, ...], qo_pi), + q_pi[l], + G[l], + policy_prune_threshold, + policy_prune_topk, + observation_prune_threshold, + prune_penalty, + gamma, + ) + + if policy_entropy(tree.root()) < entropy_prune_threshold: + break + + return tree + + +def expand_node( + agent, + node, + tree, + qs_pi, + qo_pi, + q_pi, + G, + policy_prune_threshold=1 / 16, + policy_prune_topk=-1, + observation_prune_threshold=1 / 16, + prune_penalty=512, + gamma=1, +): + policies = agent.policies + + node["policies"] = policies + node["q_pi"] = q_pi[:, 0] + node["G"] = jnp.array([jnp.dot(q_pi[:, 0], G[:, 0])]) + node["children"] = [] + + ordered = jnp.argsort(q_pi[:, 0])[::-1] + policies_to_consider = [] + for idx in ordered: + if policy_prune_topk > 0 and len(policies_to_consider) >= policy_prune_topk: + break + if q_pi[idx] >= policy_prune_threshold: + policies_to_consider.append(idx) + else: + break + + observations, qs_priors, probs, policy_nodes = [], [], [], [] + for idx in range(len(policies)): + policy_node = { + "policy": policies[idx, 0], + "prob": q_pi[idx, 0], + "G_t": G[idx], + "parent": node, + "children": [], + "n": node["n"] + 1, + } + node["children"].append(policy_node) + + if idx in policies_to_consider: + tree.append(policy_node) + + if idx in policies_to_consider: + # branch over possible observations + qo_next = jtu.tree_map(lambda x: x[idx][0], qo_pi) + qs_prior = jtu.tree_map(lambda x: x[idx], qs_pi) + + # TODO: wip + # shapes = [s.shape[0] for s in qo_next] + # combinations = jnp.array(list(itertools.product(*[jnp.arange(s) for s in shapes]))) + + # def calculate_prob(combination): + # return jnp.prod(jnp.array([qo_next[i][combination[i]] for i in range(len(combination))])) + + # prob = jax.vmap(calculate_prob)(combinations) + + # valid_indices = prob >= observation_prune_threshold + # valid_combinations = combinations[valid_indices] + # observation = [jnp.array([[k[i]] for k in valid_combinations]) for i in range(len(qo_next))] + + # observations.append(observation) + # qs_priors.append(qs_prior) + # probs.append(prob[valid_indices]) + # policy_nodes.append(policy_node) + + for k in itertools.product(*[range(s.shape[0]) for s in qo_next]): + prob = 1.0 + for i in range(len(k)): + prob *= qo_next[i][k[i]] + + # ignore low probability observations in the search tree + if prob < observation_prune_threshold: + continue + + # qo_one_hot = [] + observation = [] + for i in range(len(qo_next)): + observation.append(jnp.array([[k[i]]])) + + observations.append(observation) + qs_priors.append(qs_prior) + probs.append(prob) + policy_nodes.append(policy_node) + + stacked_observations = stack_leaves(observations) + stacked_qs_priors = stack_leaves(qs_priors) + qs_next = vmap(agent.infer_states)(stacked_observations, stacked_qs_priors) + + for idx, observation in enumerate(observations): + observation_node = { + "observation": observation, + "prob": probs[idx], + "qs": jtu.tree_map(lambda x: x[idx, :, 0, ...], qs_next), + "G": jnp.zeros((1)), + "parent": policy_nodes[idx], + "children": [], + "n": node["n"] + 1, + } + policy_nodes[idx]["children"].append(observation_node) + tree.append(observation_node) + + tree_backward(node, prune_penalty, gamma) + return tree + + +def tree_backward(node, prune_penalty=512, gamma=1): + while node["parent"] is not None: + parent = node["parent"]["parent"] + G_children = jnp.zeros(len(node["children"])) + + for idx, n in enumerate(parent["children"]): + # iterate over policy nodes + G_children = G_children.at[idx].add(n["G_t"][0]) + + if len(n["children"]) == 0: + # add penalty to pruned nodes + G_children = G_children.at[idx].add(-prune_penalty) + else: + # sum over all likely observations + for o in n["children"]: + prob = o["prob"] + G_children = G_children.at[idx].add(o["G"][0] * prob) + + # update parent node + q_pi = nn.softmax(G_children * gamma) + G = jnp.array([jnp.dot(q_pi, G_children)]) + parent["G"] = G + parent["q_pi"] = q_pi + + for idx, c in enumerate(parent["children"]): + c["prob"] = q_pi[idx] + node = parent + + +def policy_entropy(node): + return -jnp.dot(node["q_pi"], jnp.log(node["q_pi"] + pymdp.maths.EPS_VAL)) + + +def stack_leaves(data): + return [jnp.stack([d[i] for d in data]) for i in range(len(data[0]))] diff --git a/pymdp/utils.py b/pymdp/utils.py index b371f553..cc5d2b56 100644 --- a/pymdp/utils.py +++ b/pymdp/utils.py @@ -6,572 +6,130 @@ __author__: Conor Heins, Alexander Tschantz, Brennan Klein """ +import jax +import jax.numpy as jnp +import jax.tree_util as jtu import numpy as np -import pandas as pd -import seaborn as sns -import matplotlib.pyplot as plt - -import warnings -import itertools - -EPS_VAL = 1e-16 # global constant for use in norm_dist() - -class Dimensions(object): - """ - The Dimensions class stores all data related to the size and shape of a model. - """ - def __init__( - self, - num_observations=None, - num_observation_modalities=0, - num_states=None, - num_state_factors=0, - num_controls=None, - num_control_factors=0, - ): - self.num_observations=num_observations - self.num_observation_modalities=num_observation_modalities - self.num_states=num_states - self.num_state_factors=num_state_factors - self.num_controls=num_controls - self.num_control_factors=num_control_factors - -def sample(probabilities): - probabilities = probabilities.squeeze() if len(probabilities) > 1 else probabilities - sample_onehot = np.random.multinomial(1, probabilities) - return np.where(sample_onehot == 1)[0][0] - -def sample_obj_array(arr): - """ - Sample from set of Categorical distributions, stored in the sub-arrays of an object array - """ - - samples = [sample(arr_i) for arr_i in arr] +import io +import matplotlib.pyplot as plt - return samples +from typing import ( + Any, + Callable, + List, + NamedTuple, + Optional, + Sequence, + Union, + Tuple, +) -def obj_array(num_arr): - """ - Creates a generic object array with the desired number of sub-arrays, given by `num_arr` - """ - return np.empty(num_arr, dtype=object) +Tensor = Any # maybe jnp.ndarray, but typing seems not to be well defined for jax +Vector = List[Tensor] +Shape = Sequence[int] +ShapeList = list[Shape] -def obj_array_zeros(shape_list): - """ - Creates a numpy object array whose sub-arrays are 1-D vectors - filled with zeros, with shapes given by shape_list[i] - """ - arr = obj_array(len(shape_list)) - for i, shape in enumerate(shape_list): - arr[i] = np.zeros(shape) - return arr -def initialize_empty_A(num_obs, num_states): - """ - Initializes an empty observation likelihood array or `A` array using a list of observation-modality dimensions (`num_obs`) - and hidden state factor dimensions (`num_states`) - """ +def norm_dist(dist: Tensor) -> Tensor: + """Normalizes a Categorical probability distribution""" + return dist / dist.sum(0) - A_shape_list = [ [no] + num_states for no in num_obs] - return obj_array_zeros(A_shape_list) -def initialize_empty_B(num_states, num_controls): - """ - Initializes an empty (controllable) transition likelihood array or `B` array using a list of hidden state factor dimensions (`num_states`) - and control factor dimensions (`num_controls) +def list_array_uniform(shape_list: ShapeList) -> Vector: """ - - B_shape_list = [ [ns, ns, num_controls[f]] for f, ns in enumerate(num_states)] - return obj_array_zeros(B_shape_list) - -def obj_array_uniform(shape_list): - """ - Creates a numpy object array whose sub-arrays are uniform Categorical + Creates a list of jax arrays representing uniform Categorical distributions with shapes given by shape_list[i]. The shapes (elements of shape_list) can either be tuples or lists. """ - arr = obj_array(len(shape_list)) - for i, shape in enumerate(shape_list): - arr[i] = norm_dist(np.ones(shape)) - return arr - -def obj_array_ones(shape_list, scale = 1.0): - arr = obj_array(len(shape_list)) - for i, shape in enumerate(shape_list): - arr[i] = scale * np.ones(shape) - + arr = [] + for shape in shape_list: + arr.append(norm_dist(jnp.ones(shape))) return arr -def onehot(value, num_values): - arr = np.zeros(num_values) - arr[value] = 1.0 - return arr - -def random_A_matrix(num_obs, num_states, A_factor_list=None): - if type(num_obs) is int: - num_obs = [num_obs] - if type(num_states) is int: - num_states = [num_states] - num_modalities = len(num_obs) - - if A_factor_list is None: - num_factors = len(num_states) - A_factor_list = [list(range(num_factors))] * num_modalities - - A = obj_array(num_modalities) - for modality, modality_obs in enumerate(num_obs): - # lagging_dimensions = [ns for i, ns in enumerate(num_states) if i in A_factor_list[modality]] # enforces sortedness of A_factor_list - lagging_dimensions = [num_states[idx] for idx in A_factor_list[modality]] - modality_shape = [modality_obs] + lagging_dimensions - modality_dist = np.random.rand(*modality_shape) - A[modality] = norm_dist(modality_dist) - return A - -def random_B_matrix(num_states, num_controls, B_factor_list=None): - if type(num_states) is int: - num_states = [num_states] - if type(num_controls) is int: - num_controls = [num_controls] - num_factors = len(num_states) - assert len(num_controls) == len(num_states) - - if B_factor_list is None: - B_factor_list = [[f] for f in range(num_factors)] - B = obj_array(num_factors) - for factor in range(num_factors): - lagging_shape = [ns for i, ns in enumerate(num_states) if i in B_factor_list[factor]] - factor_shape = [num_states[factor]] + lagging_shape + [num_controls[factor]] - # factor_shape = (num_states[factor], num_states[factor], num_controls[factor]) - factor_dist = np.random.rand(*factor_shape) - B[factor] = norm_dist(factor_dist) - return B - -def random_single_categorical(shape_list): - """ - Creates a random 1-D categorical distribution (or set of 1-D categoricals, e.g. multiple marginals of different factors) and returns them in an object array - """ - - num_sub_arrays = len(shape_list) - - out = obj_array(num_sub_arrays) - - for arr_idx, shape_i in enumerate(shape_list): - out[arr_idx] = norm_dist(np.random.rand(shape_i)) - - return out - -def construct_controllable_B(num_states, num_controls): +def list_array_zeros(shape_list: ShapeList) -> Vector: """ - Generates a fully controllable transition likelihood array, where each - action (control state) corresponds to a move to the n-th state from any - other state, for each control factor + Creates a list of 1-D jax arrays filled with zeros, with shapes given by shape_list[i] """ + arr = [] + for shape in shape_list: + arr.append(jnp.zeros(shape)) + return arr - num_factors = len(num_states) - - B = obj_array(num_factors) - for factor, c_dim in enumerate(num_controls): - tmp = np.eye(c_dim)[:, :, np.newaxis] - tmp = np.tile(tmp, (1, 1, c_dim)) - B[factor] = tmp.transpose(1, 2, 0) - - return B - -def dirichlet_like(template_categorical, scale = 1.0): - """ - Helper function to construct a Dirichlet distribution based on an existing Categorical distribution - """ - - if not is_obj_array(template_categorical): - warnings.warn( - "Input array is not an object array...\ - Casting the input to an object array" - ) - template_categorical = to_obj_array(template_categorical) - - n_sub_arrays = len(template_categorical) - - dirichlet_out = obj_array(n_sub_arrays) - - for i, arr in enumerate(template_categorical): - dirichlet_out[i] = scale * arr - - return dirichlet_out - -def get_model_dimensions(A=None, B=None, factorized=False): - - if A is None and B is None: - raise ValueError( - "Must provide either `A` or `B`" - ) - - if A is not None: - num_obs = [a.shape[0] for a in A] if is_obj_array(A) else [A.shape[0]] - num_modalities = len(num_obs) - else: - num_obs, num_modalities = None, None - - if B is not None: - num_states = [b.shape[0] for b in B] if is_obj_array(B) else [B.shape[0]] - num_factors = len(num_states) - else: - if A is not None: - if not factorized: - num_states = list(A[0].shape[1:]) if is_obj_array(A) else list(A.shape[1:]) - num_factors = len(num_states) - else: - raise ValueError( - "`A` array is factorized and cannot be used to infer `num_states`" - ) - else: - num_states, num_factors = None, None - - return num_obs, num_states, num_modalities, num_factors - -def get_model_dimensions_from_labels(model_labels): - - modalities = model_labels['observations'] - factors = model_labels['states'] - - res = Dimensions( - num_observations=[len(modalities[modality]) for modality in modalities.keys()], - num_observation_modalities=len(modalities.keys()), - num_states=[len(factors[factor]) for factor in factors.keys()], - num_state_factors=len(factors.keys()), - ) - - if 'actions' in model_labels.keys(): - controls = model_labels['actions'] - res.num_controls=[len(controls[cfac]) for cfac in controls.keys()] - res.num_control_factors=len(controls.keys()) - - return res - - - -def norm_dist(dist): - """ Normalizes a Categorical probability distribution (or set of them) assuming sufficient statistics are stored in leading dimension""" - return np.divide(dist, dist.sum(axis=0)) - -def norm_dist_obj_arr(obj_arr): - """ Normalizes a multi-factor or -modality collection of Categorical probability distributions, assuming sufficient statistics of each conditional distribution - are stored in the leading dimension""" - normed_obj_array = obj_array(len(obj_arr)) - for i, arr in enumerate(obj_arr): - normed_obj_array[i] = norm_dist(arr) - - return normed_obj_array -def is_normalized(dist): +def list_array_scaled(shape_list: ShapeList, scale: float = 1.0) -> Vector: """ - Utility function for checking whether a single distribution or set of conditional categorical distributions is normalized. - Returns True if all distributions integrate to 1.0 + Creates a list of 1-D jax arrays filled with scale, with shapes given by shape_list[i] """ + arr = [] + for shape in shape_list: + arr.append(scale * jnp.ones(shape)) - if is_obj_array(dist): - normed_arrays = [] - for i, arr in enumerate(dist): - column_sums = arr.sum(axis=0) - normed_arrays.append(np.allclose(column_sums, np.ones_like(column_sums))) - out = all(normed_arrays) - else: - column_sums = dist.sum(axis=0) - out = np.allclose(column_sums, np.ones_like(column_sums)) - - return out - -def is_obj_array(arr): - return arr.dtype == "object" - -def to_obj_array(arr): - if is_obj_array(arr): - return arr - obj_array_out = obj_array(1) - obj_array_out[0] = arr.squeeze() - return obj_array_out - -def obj_array_from_list(list_input): - """ - Takes a list of `numpy.ndarray` and converts them to a `numpy.ndarray` of `dtype = object` - """ - arr = obj_array(len(list_input)) - for i, item in enumerate(list_input): - arr[i] = item return arr -def process_observation_seq(obs_seq, n_modalities, n_observations): - """ - Helper function for formatting observations - - Observations can either be `int` (converted to one-hot) - or `tuple` (obs for each modality), or `list` (obs for each modality) - If list, the entries could be object arrays of one-hots, in which - case this function returns `obs_seq` as is. - """ - proc_obs_seq = obj_array(len(obs_seq)) - for t, obs_t in enumerate(obs_seq): - proc_obs_seq[t] = process_observation(obs_t, n_modalities, n_observations) - return proc_obs_seq -def process_observation(obs, num_modalities, num_observations): - """ - Helper function for formatting observations - USAGE NOTES: - - If `obs` is a 1D numpy array, it must be a one-hot vector, where one entry (the entry of the observation) is 1.0 - and all other entries are 0. This therefore assumes it's a single modality observation. If these conditions are met, then - this function will return `obs` unchanged. Otherwise, it'll throw an error. - - If `obs` is an int, it assumes this is a single modality observation, whose observation index is given by the value of `obs`. This function will convert - it to be a one hot vector. - - If `obs` is a list, it assumes this is a multiple modality observation, whose len is equal to the number of observation modalities, - and where each entry `obs[m]` is the index of the observation, for that modality. This function will convert it into an object array - of one-hot vectors. - - If `obs` is a tuple, same logic as applies for list (see above). - - if `obs` is a numpy object array (array of arrays), this function will return `obs` unchanged. +def get_combination_index(x, dims): """ + Find the index of an array of categorical values in an array of categorical dimensions - if isinstance(obs, np.ndarray) and not is_obj_array(obs): - assert num_modalities == 1, "If `obs` is a 1D numpy array, `num_modalities` must be equal to 1" - assert len(np.where(obs)[0]) == 1, "If `obs` is a 1D numpy array, it must be a one hot vector (e.g. np.array([0.0, 1.0, 0.0, ....]))" - - if isinstance(obs, (int, np.integer)): - obs = onehot(obs, num_observations[0]) - - if isinstance(obs, tuple) or isinstance(obs,list): - obs_arr_arr = obj_array(num_modalities) - for m in range(num_modalities): - obs_arr_arr[m] = onehot(obs[m], num_observations[m]) - obs = obs_arr_arr - - return obs - -def convert_observation_array(obs, num_obs): - """ - Converts from SPM-style observation array to infer-actively one-hot object arrays. - Parameters ---------- - - 'obs' [numpy 2-D nd.array]: - SPM-style observation arrays are of shape (num_modalities, T), where each row - contains observation indices for a different modality, and columns indicate - different timepoints. Entries store the indices of the discrete observations - within each modality. - - - 'num_obs' [list]: - List of the dimensionalities of the observation modalities. `num_modalities` - is calculated as `len(num_obs)` in the function to determine whether we're - dealing with a single- or multi-modality - case. + x: ``numpy.ndarray`` or ``jax.Array`` of shape `(batch_size, act_dims)` + ``numpy.ndarray`` or ``jax.Array`` of categorical values to be converted into combination index + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion Returns ---------- - - `obs_t`[list]: - A list with length equal to T, where each entry of the list is either a) an object - array (in the case of multiple modalities) where each sub-array is a one-hot vector - with the observation for the correspond modality, or b) a 1D numpy array (in the case - of one modality) that is a single one-hot vector encoding the observation for the - single modality. - """ - - T = obs.shape[1] - num_modalities = len(num_obs) - - # Initialise the output - obs_t = [] - # Case of one modality - if num_modalities == 1: - for t in range(T): - obs_t.append(onehot(obs[0, t] - 1, num_obs[0])) - else: - for t in range(T): - obs_AoA = obj_array(num_modalities) - for g in range(num_modalities): - # Subtract obs[g,t] by 1 to account for MATLAB vs. Python indexing - # (MATLAB is 1-indexed) - obs_AoA[g] = onehot(obs[g, t] - 1, num_obs[g]) - obs_t.append(obs_AoA) - - return obs_t - -def insert_multiple(s, indices, items): - for idx in range(len(items)): - s.insert(indices[idx], items[idx]) - return s - -def reduce_a_matrix(A): + index: ``np.ndarray`` or `jax.Array` of shape `(batch_size)` + ``np.ndarray`` or `jax.Array` index of the combination """ - Utility function for throwing away dimensions (lagging dimensions, hidden state factors) - of a particular A matrix that are independent of the observation. - Parameters: - ========== - - `A` [np.ndarray]: - The A matrix or likelihood array that encodes probabilistic relationship - of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) - and observations (leading dimension, rows). - Returns: - ========= - - `A_reduced` [np.ndarray]: - The reduced A matrix, missing the lagging dimensions that correspond to hidden state factors - that are statistically independent of observations - - `original_factor_idx` [list]: - List of the indices (in terms of the original dimensionality) of the hidden state factors - that are maintained in the A matrix (and thus have an informative / non-degenerate relationship to observations - """ - - o_dim, num_states = A.shape[0], A.shape[1:] - idx_vec_s = [slice(0, o_dim)] + [slice(ns) for _, ns in enumerate(num_states)] - - original_factor_idx = [] - excluded_factor_idx = [] # the indices of the hidden state factors that are independent of the observation and thus marginalized away - for factor_i, ns in enumerate(num_states): + assert isinstance(x, jax.Array) or isinstance(x, np.ndarray) + assert x.shape[-1] == len(dims) - level_counter = 0 - break_flag = False - while level_counter < ns and break_flag is False: - idx_vec_i = idx_vec_s.copy() - idx_vec_i[factor_i+1] = slice(level_counter,level_counter+1,None) - if not np.isclose(A.mean(axis=factor_i+1), A[tuple(idx_vec_i)].squeeze()).all(): - break_flag = True # this means they're not independent - original_factor_idx.append(factor_i) - else: - level_counter += 1 - - if break_flag is False: - excluded_factor_idx.append(factor_i+1) - - A_reduced = A.mean(axis=tuple(excluded_factor_idx)).squeeze() + index = 0 + product = 1 + for i in reversed(range(len(dims))): + index += x[..., i] * product + product *= dims[i] + return index - return A_reduced, original_factor_idx -def construct_full_a(A_reduced, original_factor_idx, num_states): +def index_to_combination(index, dims): """ - Utility function for reconstruction a full A matrix from a reduced A matrix, using known factor indices - to tile out the reduced A matrix along the 'non-informative' dimensions - Parameters: - ========== - - `A_reduced` [np.ndarray]: - The reduced A matrix or likelihood array that encodes probabilistic relationship - of the generative model between hidden state factors (lagging dimensions, columns, slices, etc...) - and observations (leading dimension, rows). - - `original_factor_idx` [list]: - List of hidden state indices in terms of the full hidden state factor list, that comprise - the lagging dimensions of `A_reduced` - - `num_states` [list]: - The list of all the dimensionalities of hidden state factors in the full generative model. - `A_reduced.shape[1:]` should be equal to `num_states[original_factor_idx]` - Returns: - ========= - - `A` [np.ndarray]: - The full A matrix, containing all the lagging dimensions that correspond to hidden state factors, including - those that are statistically independent of observations - - @ NOTE: This is the "inverse" of the reduce_a_matrix function, - i.e. `reduce_a_matrix(construct_full_a(A_reduced, original_factor_idx, num_states)) == A_reduced, original_factor_idx` - """ - - o_dim = A_reduced.shape[0] # dimensionality of the support of the likelihood distribution (i.e. the number of observation levels) - full_dimensionality = [o_dim] + num_states # full dimensionality of the output (`A`) - fill_indices = [0] + [f+1 for f in original_factor_idx] # these are the indices of the dimensions we need to fill for this modality - fill_dimensions = np.delete(full_dimensionality, fill_indices) - - original_factor_dims = [num_states[f] for f in original_factor_idx] # dimensionalities of the relevant factors - prefilled_slices = [slice(0, o_dim)] + [slice(0, ns) for ns in original_factor_dims] # these are the slices that are filled out by the provided `A_reduced` - - A = np.zeros(full_dimensionality) - - for item in itertools.product(*[list(range(d)) for d in fill_dimensions]): - slice_ = list(item) - A_indices = insert_multiple(slice_, fill_indices, prefilled_slices) #here we insert the correct values for the fill indices for this slice - A[tuple(A_indices)] = A_reduced - - return A - -# def build_belief_array(qx): - -# """ -# This function constructs array-ified (not nested) versions -# of the posterior belief arrays, that are separated -# by policy, timepoint, and hidden state factor -# """ - -# num_policies = len(qx) -# num_timesteps = len(qx[0]) -# num_factors = len(qx[0][0]) - -# if num_factors > 1: -# belief_array = obj_array(num_factors) -# for factor in range(num_factors): -# belief_array[factor] = np.zeros( (num_policies, qx[0][0][factor].shape[0], num_timesteps) ) -# for policy_i in range(num_policies): -# for timestep in range(num_timesteps): -# for factor in range(num_factors): -# belief_array[factor][policy_i, :, timestep] = qx[policy_i][timestep][factor] -# else: -# num_states = qx[0][0][0].shape[0] -# belief_array = np.zeros( (num_policies, num_states, num_timesteps) ) -# for policy_i in range(num_policies): -# for timestep in range(num_timesteps): -# belief_array[policy_i, :, timestep] = qx[policy_i][timestep][0] - -# return belief_array + Convert the combination index according to an array of categorical dimensions back to an array of categorical values -def build_xn_vn_array(xn): + Parameters + ---------- + index: ``np.ndarray`` or `jax.Array` of shape `(batch_size)` + ``np.ndarray`` or `jax.Array` index of the combination + dims: ``list`` of ``int`` + ``list`` of ``int`` of categorical dimensions used for conversion + Returns + ---------- + x: ``numpy.ndarray`` or ``jax.Array`` of shape `(batch_size, act_dims)` + ``numpy.ndarray`` or ``jax.Array`` of categorical values to be converted into combination index """ - This function constructs array-ified (not nested) versions - of the posterior xn (beliefs) or vn (prediction error) arrays, that are separated - by iteration, hidden state factor, timepoint, and policy - """ - - num_policies = len(xn) - num_itr = len(xn[0]) - num_factors = len(xn[0][0]) + x = [] + for base in reversed(dims): + x.append(index % base) + index = index // base - if num_factors > 1: - xn_array = obj_array(num_factors) - for factor in range(num_factors): - num_states, infer_len = xn[0][0][factor].shape - xn_array[factor] = np.zeros( (num_itr, num_states, infer_len, num_policies) ) - for policy_i in range(num_policies): - for itr in range(num_itr): - for factor in range(num_factors): - xn_array[factor][itr,:,:,policy_i] = xn[policy_i][itr][factor] - else: - num_states, infer_len = xn[0][0][0].shape - xn_array = np.zeros( (num_itr, num_states, infer_len, num_policies) ) - for policy_i in range(num_policies): - for itr in range(num_itr): - xn_array[itr,:,:,policy_i] = xn[policy_i][itr][0] - - return xn_array + x = np.flip(np.stack(x, axis=-1), axis=-1) + return x -def plot_beliefs(belief_dist, title=""): - """ - Utility function that plots a bar chart of a categorical probability distribution, - with each bar height corresponding to the probability of one of the elements of the categorical - probability vector. - """ - plt.grid(zorder=0) - plt.bar(range(belief_dist.shape[0]), belief_dist, color='r', zorder=3) - plt.xticks(range(belief_dist.shape[0])) - plt.title(title) - plt.show() - -def plot_likelihood(A, title=""): +def fig2img(fig): """ - Utility function that shows a heatmap of a 2-D likelihood (hidden causes in the columns, observations in the rows), - with hotter colors indicating higher probability. + Utility function that converts a matplotlib figure to a numpy array """ - - ax = sns.heatmap(A, cmap="OrRd", linewidth=2.5) - plt.xticks(range(A.shape[1]+1)) - plt.yticks(range(A.shape[0]+1)) - plt.title(title) - plt.show() - - - - - + with io.BytesIO() as buff: + fig.savefig(buff, facecolor="white", format="raw") + buff.seek(0) + data = np.frombuffer(buff.getvalue(), dtype=np.uint8) + w, h = fig.canvas.get_width_height() + im = data.reshape((int(h), int(w), -1)) + plt.close(fig) + return im[:, :, :3] diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 00000000..0061898a --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,63 @@ +[build-system] +requires = ["setuptools"] +build-backend = "setuptools.build_meta" + +[project] +name = "inferactively-pymdp" +version = "1.0.0" +description = "A Python package for solving Markov Decision Processes with Active Inference" +authors = [ + { name = "Conor Heins", email="conor.heins@gmail.com"}, + { name = "Alexander Tschantz", email="tschantz.alec@gmail.com"}, + { name = "Tim Verbelen", email="verbelen.tim@gmail.com"}, + { name = "Dimitrije Markovic", email="dimitrije.markovic@tu-dresden.de"} +] +readme = "README.md" +license = {file = "LICENSE"} +classifiers=[ + 'Development Status :: 4 - Beta', + 'Intended Audience :: Developers', + 'Topic :: Scientific/Engineering :: Artificial Intelligence', + 'License :: OSI Approved :: MIT License', + 'Programming Language :: Python :: 3', +] +requires-python = ">=3.10" +dependencies = [ + 'numpy>=1.19.5', + 'jax>=0.3.4', + 'jaxlib>=0.3.4', + 'equinox>=0.9', + 'multimethod>=1.11', + 'matplotlib>=3.1.3', + 'seaborn>=0.11.1', + 'mctx>=0.0.5', + 'networkx>=3.3', + 'pytest>=6.2.1', +] + +[project.optional-dependencies] +gpu = [ + 'jax[cuda12]>=0.3.4', + 'jaxlib[cuda12]>=0.3.4', +] + +[project.urls] +Documentation = "https://pymdp-rtd.readthedocs.io/en/stable/" +Repository = "https://github.com/infer-actively/pymdp" + +[tool.setuptools] +packages = [ + 'pymdp', + 'pymdp.envs', + 'pymdp.envs.assets', + 'pymdp.planning', + 'pymdp.legacy', + 'pymdp.legacy.algos', + 'pymdp.legacy.envs', +] + +[tool.setuptools.package-data] +pymdp = ['envs/assets/*'] + +[tool.black] +line-length = 120 diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 99a4adb8..00000000 --- a/requirements.txt +++ /dev/null @@ -1,32 +0,0 @@ -attrs>=20.3.0 -cycler>=0.10.0 -iniconfig>=1.1.1 -kiwisolver>=1.3.1 -matplotlib>=3.1.3 -nose>=1.3.7 -numpy>=1.19.5 -openpyxl>=3.0.7 -packaging>=20.8 -Pillow>=8.2.0 -pluggy>=0.13.1 -py>=1.10.0 -pyparsing>=2.4.7 -pytest>=6.2.1 -python-dateutil>=2.8.1 -pytz>=2020.5 -scipy>=1.6.0 -seaborn>=0.11.1 -six>=1.15.0 -toml>=0.10.2 -typing-extensions>=3.7.4.3 -xlsxwriter>=1.4.3 -sphinx-rtd-theme>=0.4 -myst-nb>=0.13.1 -autograd>=1.3 -jax>=0.3.4 -jaxlib>=0.3.4 -equinox>=0.9 -numpyro>=0.1 -arviz>=0.13 -optax>=0.1 -multimethod>=1.11 \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 00000000..d90d92a3 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,52 @@ +[metadata] +name = inferactively-pymdp +version = 1.0.0 +description = A Python package for solving Markov Decision Processes with Active Inference +long_description = file: README.md +long_description_content_type = text/markdown +author = Conor Heins, Alexander Tschantz, Tim Verbelen, Dimitrije Markovic +author_email = conor.heins@gmail.com, tschantz.alec@gmail.com, verbelen.tim@gmail.com, dimitrije.markovic@tu-dresden.de +license = MIT +license_file = LICENSE +classifiers = + Development Status :: 4 - Beta + Intended Audience :: Developers + Topic :: Scientific/Engineering :: Artificial Intelligence + License :: OSI Approved :: MIT License + Programming Language :: Python :: 3 +python_requires = >=3.10 +project_urls = + Documentation = https://pymdp-rtd.readthedocs.io/en/stable/ + Repository = https://github.com/infer-actively/pymdp + +[options] +packages = find: +install_requires = + numpy>=1.19.5 + jax>=0.3.4 + jaxlib>=0.3.4 + equinox>=0.9 + multimethod>=1.11 + matplotlib>=3.1.3 + seaborn>=0.11.1 + mctx>=0.0.5 + networkx>=3.3 + pytest>=6.2.1 +include_package_data = True + +[options.extras_require] +gpu = + jax[cuda12]>=0.3.4 + jaxlib[cuda12]>=0.3.4 + +[options.package_data] +pymdp = envs/assets/* + +[options.packages.find] +where = . + +[tool:pytest] +minversion = 6.2.1 + +[flake8] +max-line-length = 120 diff --git a/setup.py b/setup.py deleted file mode 100644 index 03e2cbae..00000000 --- a/setup.py +++ /dev/null @@ -1,78 +0,0 @@ -import setuptools - -with open("README.md", "r", encoding="utf-8") as fh: - long_description = fh.read() - -setuptools.setup( - name="inferactively-pymdp", - version="0.0.7.1", - author="infer-actively", - author_email="conor.heins@gmail.com", - description= ("A Python package for solving Markov Decision Processes with Active Inference"), - long_description=long_description, - long_description_content_type="text/markdown", - license='MIT', - url="https://github.com/infer-actively/pymdp", - python_requires='>3.7', - install_requires =[ - 'attrs>=20.3.0', - 'cycler>=0.10.0', - 'iniconfig>=1.1.1', - 'kiwisolver>=1.3.1', - 'matplotlib>=3.1.3', - 'nose>=1.3.7', - 'numpy>=1.19.5', - 'openpyxl>=3.0.7', - 'packaging>=20.8', - 'pandas>=1.2.4', - 'Pillow>=8.2.0', - 'pluggy>=0.13.1', - 'py>=1.10.0', - 'pyparsing>=2.4.7', - 'pytest>=6.2.1', - 'python-dateutil>=2.8.1', - 'pytz>=2020.5', - 'scipy>=1.6.0', - 'seaborn>=0.11.1', - 'six>=1.15.0', - 'toml>=0.10.2', - 'typing-extensions>=3.7.4.3', - 'xlsxwriter>=1.4.3', - 'sphinx-rtd-theme>=0.4', - 'myst-nb>=0.13.1', - 'autograd>=1.3', - 'jax>=0.3.4', - 'jaxlib>=0.3.4', - 'equinox>=0.9', - 'numpyro>=0.1', - 'arviz>=0.13', - 'optax>=0.1' - ], - packages=[ - "pymdp", - "pymdp.envs", - "pymdp.algos", - "pymdp.jax" - ], - include_package_data=True, - keywords=[ - "artificial intelligence", - "active inference", - "free energy principle" - "information theory", - "decision-making", - "MDP", - "Markov Decision Process", - "Bayesian inference", - "variational inference", - "reinforcement learning" - ], - classifiers=[ - 'Development Status :: 4 - Beta', - 'Intended Audience :: Developers', - 'Topic :: Scientific/Engineering :: Artificial Intelligence', - 'License :: OSI Approved :: MIT License', - 'Programming Language :: Python :: 3.7', - ], -) - diff --git a/test/test_SPM_validation.py b/test/test_SPM_validation.py index ee386378..17308f22 100644 --- a/test/test_SPM_validation.py +++ b/test/test_SPM_validation.py @@ -4,9 +4,9 @@ import numpy as np from scipy.io import loadmat -from pymdp.agent import Agent -from pymdp.utils import to_obj_array, build_xn_vn_array, get_model_dimensions, convert_observation_array -from pymdp.maths import dirichlet_log_evidence +from pymdp.legacy.agent import Agent +from pymdp.legacy.utils import to_obj_array, build_xn_vn_array, get_model_dimensions, convert_observation_array +from pymdp.legacy.maths import dirichlet_log_evidence DATA_PATH = "test/matlab_crossval/output/" diff --git a/test/test_agent.py b/test/test_agent.py index 161bca56..64e3086c 100644 --- a/test/test_agent.py +++ b/test/test_agent.py @@ -13,10 +13,10 @@ import numpy as np from copy import deepcopy -from pymdp.agent import Agent -from pymdp import utils, maths -from pymdp import inference, control, learning -from pymdp.default_models import generate_grid_world_transitions +from pymdp.legacy.agent import Agent +from pymdp.legacy import utils, maths +from pymdp.legacy import inference, control, learning +from pymdp.legacy.default_models import generate_grid_world_transitions class TestAgent(unittest.TestCase): diff --git a/test/test_agent_jax.py b/test/test_agent_jax.py index ad3d85d8..53a77d02 100644 --- a/test/test_agent_jax.py +++ b/test/test_agent_jax.py @@ -13,8 +13,10 @@ from jax import vmap, nn, random import jax.tree_util as jtu -from pymdp.jax.maths import compute_log_likelihood_single_modality -from pymdp.jax.utils import norm_dist +from pymdp.legacy import utils +from pymdp.agent import Agent +from pymdp.maths import compute_log_likelihood_single_modality +from pymdp.utils import norm_dist from equinox import Module from typing import Any, List @@ -58,6 +60,47 @@ def infer_states(self, obs): validation_qs = nn.softmax(compute_log_likelihood_single_modality(all_obs[id_to_check], all_A[id_to_check])) self.assertTrue(jnp.allclose(validation_qs, all_qs[id_to_check])) + def test_agent_complex_action(self): + """ + Test that an instance of the `Agent` class can be initialized and run with complex action dependency + """ + np.random.seed(1) + num_obs = [5, 4, 4] + num_states = [2, 3, 1] + num_controls = [2, 3, 2] + + A_factor_list = [[0], [0, 1], [0, 1, 2]] + B_factor_list = [[0], [0, 1], [1, 2]] + B_factor_control_list = [[], [0, 1], [0, 2]] + A = utils.random_A_matrix(num_obs, num_states, A_factor_list=A_factor_list) + B = utils.random_B_matrix(num_states, num_controls, B_factor_list=B_factor_list, B_factor_control_list=B_factor_control_list) + + agent = Agent( + A, B, + A_dependencies=A_factor_list, + B_dependencies=B_factor_list, + B_action_dependencies=B_factor_control_list, + num_controls=num_controls, + sampling_mode="full", + ) + + # dummy history + action = agent.policies[np.random.randint(0, len(agent.policies))] + observation = [np.random.randint(0, d, size=(1, 1)) for d in agent.num_obs] + qs_hist = jtu.tree_map(lambda x: jnp.expand_dims(x, 0), agent.D) + + prior, _ = agent.update_empirical_prior(action, qs_hist) + qs = agent.infer_states(observation, prior) + + q_pi, G = agent.infer_policies(qs) + action = agent.sample_action(q_pi) + action_multi = agent.decode_multi_actions(action) + action_reconstruct = agent.encode_multi_actions(action_multi) + + self.assertTrue(action_multi.shape[-1] == len(agent.num_controls)) + self.assertTrue(jnp.allclose(action, action_reconstruct)) + + if __name__ == "__main__": unittest.main() diff --git a/test/test_control.py b/test/test_control.py index 14b09938..eff71875 100644 --- a/test/test_control.py +++ b/test/test_control.py @@ -10,8 +10,8 @@ import numpy as np -from pymdp import utils, maths -from pymdp import control +from pymdp.legacy import utils, maths +from pymdp.legacy import control class TestControl(unittest.TestCase): diff --git a/test/test_control_jax.py b/test/test_control_jax.py index 75de6912..052c568b 100644 --- a/test/test_control_jax.py +++ b/test/test_control_jax.py @@ -14,11 +14,10 @@ import jax.random as jr import jax.tree_util as jtu -import pymdp.jax.control as ctl_jax -import pymdp.control as ctl_np +import pymdp.control as ctl_jax +import pymdp.legacy.control as ctl_np -from pymdp.jax.maths import factor_dot -from pymdp import utils +from pymdp.legacy import utils cfg = {"source_key": 0, "num_models": 4} diff --git a/test/test_demos.py b/test/test_demos.py index d29d3eb4..8e4b9b61 100644 --- a/test/test_demos.py +++ b/test/test_demos.py @@ -4,11 +4,12 @@ import seaborn as sns import matplotlib.pyplot as plt -from pymdp.agent import Agent -from pymdp.utils import plot_beliefs, plot_likelihood -from pymdp import utils, maths, default_models -from pymdp import control -from pymdp.envs import TMazeEnv, TMazeEnvNullOutcome +from pymdp.legacy.agent import Agent +from pymdp.legacy import utils, maths, default_models +from pymdp.legacy import control +from pymdp.legacy.envs import TMazeEnv, TMazeEnvNullOutcome +from pymdp.legacy.maths import spm_log_single as log_stable + from copy import deepcopy class TestDemos(unittest.TestCase): @@ -258,7 +259,6 @@ def test_gridworld_activeinference(self): This unit test runs the a concise version of the code in the `gridworld_tutorial_1.ipynb` tutorial notebook to make sure it works if things are changed """ - from pymdp.maths import spm_log_single as log_stable # @NOTE: we use the `spm_log_single` helper function from the `maths` sub-library of pymdp. This is a numerically stable version of np.log() state_mapping = {0: (0,0), 1: (1,0), 2: (2,0), 3: (0,1), 4: (1,1), 5:(2,1), 6: (0,2), 7:(1,2), 8:(2,2)} diff --git a/test/test_distribution.py b/test/test_distribution.py new file mode 100644 index 00000000..ef8b44bc --- /dev/null +++ b/test/test_distribution.py @@ -0,0 +1,109 @@ +import unittest +from pymdp import distribution +import numpy as np +class TestDists(unittest.TestCase): + + def test_distribution_slice(self): + controls = ["up", "down"] + locations = ["A", "B", "C", "D"] + + data = np.zeros((len(locations), len(locations), len(controls))) + transition = distribution.Distribution( + {"location": locations}, + {"location": locations, "control": controls}, + data, + ) + self.assertEqual(transition["A", "B", "up"], 0.0) + self.assertEqual(transition[:, "B", "up"].shape, (4,)) + self.assertEqual(transition["A", "B", :].shape, (2,)) + self.assertEqual(transition[:, "B", :].shape, (4, 2)) + self.assertEqual(transition[:, :, :].shape, (4, 4, 2)) + self.assertEqual(transition[0, "B", 0], 0.0) + self.assertEqual(transition[:, "B", 0].shape, (4,)) + + transition["A", "B", "up"] = 0.5 + self.assertEqual(transition["A", "B", "up"], 0.5) + transition[:, "B", "up"] = np.ones(4) + self.assertTrue(np.all(transition[:, "B", "up"] == 1.0)) + + def test_distribution_get_set(self): + controls = ["up", "down"] + locations = ["A", "B", "C", "D"] + + data = np.zeros((len(locations), len(locations), len(controls))) + transition = distribution.Distribution( + {"location": locations}, + {"location": locations, "control": controls}, + data, + ) + + self.assertEqual( + transition.get({"location": "A"}, {"location": "B"}).shape, (2,) + ) + self.assertEqual( + transition.get( + {"location": "A", "control": "up"}, {"location": "B"} + ), + 0.0, + ) + self.assertEqual(transition.get({"control": "up"}).shape, (4, 4)) + + transition.set( + {"location": "A", "control": "up"}, {"location": "B"}, 0.5 + ) + self.assertEqual( + transition.get( + {"location": "A", "control": "up"}, {"location": "B"} + ), + 0.5, + ) + transition.set( + {"location": 0, "control": "up"}, {"location": "B"}, 0.7 + ) + self.assertEqual( + transition.get( + {"location": "A", "control": "up"}, {"location": "B"} + ), + 0.7, + ) + transition.set({"location": "A"}, {"location": "B"}, np.ones(2)) + self.assertTrue( + np.all(transition.get({"location": "A"}, {"location": "B"}) == 1.0) + ) + + def test_agent_compile(self): + model_example = { + "observations": { + "observation_1": {"size": 10, "depends_on": ["factor_1"]}, + "observation_2": { + "elements": ["A", "B"], + "depends_on": ["factor_1"], + }, + }, + "controls": { + "control_1": {"size": 2}, + "control_2": {"elements": ["X", "Y"]}, + }, + "states": { + "factor_1": { + "elements": ["II", "JJ", "KK"], + "depends_on": ["factor_1", "factor_2"], + "controlled_by": ["control_1", "control_2"], + }, + "factor_2": { + "elements": ["foo", "bar"], + "depends_on": ["factor_2"], + "controlled_by": ["control_2"], + }, + }, + } + model = distribution.compile_model(model_example) + self.assertEqual(len(model.B), 2) + self.assertEqual(len(model.A), 2) + self.assertEqual(model.B[0].data.shape, (3, 3, 2, 2, 2)) + self.assertEqual(model.B[1].data.shape, (2, 2, 2)) + self.assertEqual(model.A[0].data.shape, (10, 3)) + self.assertEqual(model.A[1].data.shape, (2, 3)) + self.assertIsNotNone + self.assertIsNotNone(model.A[0][:, "II"]) + self.assertIsNotNone(model.A[1][1, :]) diff --git a/test/test_fpi.py b/test/test_fpi.py index d60f944e..68ae1eea 100644 --- a/test/test_fpi.py +++ b/test/test_fpi.py @@ -10,8 +10,8 @@ import numpy as np -from pymdp import utils, maths -from pymdp.algos import run_vanilla_fpi, run_vanilla_fpi_factorized +from pymdp.legacy import utils, maths +from pymdp.legacy.algos import run_vanilla_fpi, run_vanilla_fpi_factorized class TestFPI(unittest.TestCase): diff --git a/test/test_inference.py b/test/test_inference.py index 6528ab6d..91ff6d9f 100644 --- a/test/test_inference.py +++ b/test/test_inference.py @@ -10,8 +10,8 @@ import numpy as np -from pymdp import utils, maths -from pymdp import inference +from pymdp.legacy import utils, maths +from pymdp.legacy import inference class TestInference(unittest.TestCase): diff --git a/test/test_inference_jax.py b/test/test_inference_jax.py index e426c870..f1b20c5f 100644 --- a/test/test_inference_jax.py +++ b/test/test_inference_jax.py @@ -11,9 +11,9 @@ import numpy as np import jax.numpy as jnp -from pymdp.jax.algos import run_vanilla_fpi as fpi_jax -from pymdp.algos import run_vanilla_fpi as fpi_numpy -from pymdp import utils, maths +from pymdp.algos import run_vanilla_fpi as fpi_jax +from pymdp.legacy.algos import run_vanilla_fpi as fpi_numpy +from pymdp.legacy import utils, maths class TestInferenceJax(unittest.TestCase): diff --git a/test/test_jax_sparse_backend.py b/test/test_jax_sparse_backend.py new file mode 100644 index 00000000..46da88b8 --- /dev/null +++ b/test/test_jax_sparse_backend.py @@ -0,0 +1,187 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" Unit Tests +__author__: Conor Heins, Toon Van de Maele, Ozan Catal +""" + +import os +import unittest +from functools import partial + +import copy + +import numpy as np +import jax.numpy as jnp +import jax.tree_util as jtu +from jax import vmap, nn +from jax import random as jr + +from pymdp.inference import smoothing_ovf +from pymdp.legacy import utils, maths +from pymdp.legacy.control import construct_policies + +from jax.experimental import sparse + +from typing import Any, List, Dict + +def make_model_configs(source_seed=0, num_models=4) -> Dict: + """ + This creates a bunch of model configurations (random amounts of num states, num obs, num controls, etc.) + that will be looped over and used as inputs for each unit test. This is intended to test each function on a variety of + differently-dimensioned generative models + """ + "" + rng_keys = jr.split(jr.PRNGKey(source_seed), num_models) + num_factors_list = [ + jr.randint(key, (1,), 1, 7)[0].item() for key in rng_keys + ] # list of total numbers of hidden state factors per model + num_states_list = [jr.randint(key, (nf,), 2, 5).tolist() for nf, key in zip(num_factors_list, rng_keys)] + num_controls_list = [jr.randint(key, (nf,), 1, 3).tolist() for nf, key in zip(num_factors_list, rng_keys)] + + rng_keys = jr.split(rng_keys[-1], num_models) + num_modalities_list = [jr.randint(key, (1,), 1, 10)[0].item() for key in rng_keys] + num_obs_list = [jr.randint(key, (nm,), 1, 5).tolist() for nm, key in zip(num_modalities_list, rng_keys)] + + rng_keys = jr.split(rng_keys[-1], num_models) + A_deps_list, B_deps_list = [], [] + for nf, nm, model_key in zip(num_factors_list, num_modalities_list, rng_keys): + modality_keys_model_i = jr.split(model_key, nm) + num_f_per_modality = [ + jr.randint(key, shape=(), minval=1, maxval=nf + 1).item() for key in modality_keys_model_i + ] # this is the number of factors that each modality depends on + A_deps_model_i = [ + sorted(jr.choice(key, a=nf, shape=(num_f_m,), replace=False).tolist()) + for key, num_f_m in zip(modality_keys_model_i, num_f_per_modality) + ] + A_deps_list.append(A_deps_model_i) + + factor_keys_model_i = jr.split(modality_keys_model_i[-1], nf) + num_f_per_factor = [ + jr.randint(key, shape=(), minval=1, maxval=nf + 1).item() for key in factor_keys_model_i + ] # this is the number of factors that each factor depends on + B_deps_model_i = [ + sorted(jr.choice(key, a=nf, shape=(num_f_f,), replace=False).tolist()) + for key, num_f_f in zip(factor_keys_model_i, num_f_per_factor) + ] + B_deps_list.append(B_deps_model_i) + + return { + "nf_list": num_factors_list, + "ns_list": num_states_list, + "nc_list": num_controls_list, + "nm_list": num_modalities_list, + "no_list": num_obs_list, + "A_deps_list": A_deps_list, + "B_deps_list": B_deps_list, + } + + +def make_A_full( + A_reduced: List[np.ndarray], + A_dependencies: List[List[int]], + num_obs: List[int], + num_states: List[int], +) -> np.ndarray: + """ + Given a reduced A matrix, `A_reduced`, and a list of dependencies between hidden state factors and observation modalities, `A_dependencies`, + return a full A matrix, `A_full`, where `A_full[m]` is the full A matrix for modality `m`. This means all redundant conditional independencies + between observation modalities `m` and all hidden state factors (i.e. `range(len(num_states))`) are represented as lagging dimensions in `A_full`. + """ + A_full = utils.initialize_empty_A( + num_obs, num_states + ) # initialize the full likelihood tensor (ALL modalities might depend on ALL factors) + all_factors = range(len(num_states)) # indices of all hidden state factors + for m, A_m in enumerate(A_full): + + # Step 1. Extract the list of the factors that modality `m` does NOT depend on + non_dependent_factors = list(set(all_factors) - set(A_dependencies[m])) + + # Step 2. broadcast or tile the reduced A matrix (`A_reduced`) along the dimensions of corresponding to + # `non_dependent_factors`, to give it the full shape of `(num_obs[m], *num_states)` + expanded_dims = [num_obs[m]] + [1 if f in non_dependent_factors else ns for (f, ns) in enumerate(num_states)] + tile_dims = [1] + [ns if f in non_dependent_factors else 1 for (f, ns) in enumerate(num_states)] + A_full[m] = np.tile(A_reduced[m].reshape(expanded_dims), tile_dims) + + return A_full + + +class TestJaxSparseOperations(unittest.TestCase): + + def test_sparse_smoothing(self): + cfg = {"source_seed": 1, "num_models": 4} + gm_params = make_model_configs(**cfg) + num_states_list, num_obs_list = ( + gm_params["ns_list"], + gm_params["no_list"], + ) + num_controls_list, B_deps_list = ( + gm_params["nc_list"], + gm_params["B_deps_list"], + ) + + num_states_list = num_states_list + + n_time = 8 + n_batch = 1 + + for num_states, num_obs, num_controls in zip(num_states_list, num_obs_list, num_controls_list): + + # Randomly create a B matrix that contains a lot of zeros + B = utils.random_B_matrix(num_states, num_controls) + B = [jnp.array(x.astype(np.float32)) for x in B] + # Map all values below the mean to 0 to create a B tensor with zeros + B = jtu.tree_map( + lambda x: jnp.array(utils.norm_dist(jnp.clip((x - x.mean()), 0, 1))), + B, + ) + + # Create a sparse array B + sparse_B = jtu.tree_map(lambda b: sparse.BCOO.fromdense(b), B) + + # Construct a random list of actions + policies = construct_policies(num_states, num_controls, policy_len=1) + acs = [None for _ in range(n_time - 1)] + for t in range(n_time - 1): + pol = policies[np.random.randint(len(policies))] + # Get rid of the policy length index, and insert batch dim + pol = jnp.expand_dims(pol[0], 0) + # Broadcast to add in the batch dim + pol = jnp.broadcast_to(pol, (n_batch, 1, len(num_controls))) + acs[t] = pol + action_hist = jnp.concatenate(acs, axis=1) + + # Construct a random list of beliefs + beliefs = [None for _ in range(len(num_states))] + for m, ns in enumerate(num_states): + beliefs[m] = np.random.uniform(0, 1, size=(n_batch, n_time, ns)) + beliefs[m] /= beliefs[m].sum(axis=-1, keepdims=True) + beliefs[m] = jnp.array(beliefs[m]) + + # Take the ith element from the pytree (not testing batched here) + take_i = lambda pytree, i: jtu.tree_map(lambda leaf: leaf[i], pytree) + + for i in range(n_batch): + smoothed_beliefs_dense = smoothing_ovf(take_i(beliefs, i), B, action_hist[i]) + dense_marginals, dense_joints = smoothed_beliefs_dense + + # sparse jax version + smoothed_beliefs_sparse = smoothing_ovf(take_i(beliefs, i), sparse_B, action_hist[i]) + sparse_marginals, sparse_joints = smoothed_beliefs_sparse + + # test equality of marginal distributions from dense and sparse versions of smoothing + for f, (dense_out, sparse_out) in enumerate(zip(dense_marginals, sparse_marginals)): + + self.assertTrue(np.allclose(dense_out, sparse_out)) + + # test equality of joint distributions from dense and sparse versions of smoothing + for f, (dense_out, sparse_out) in enumerate(zip(dense_joints, sparse_joints)): + + # Densify + qs_joint_sparse = jnp.array([i.todense() for i in sparse_out]) + + self.assertTrue(np.allclose(dense_out, qs_joint_sparse)) + + +if __name__ == "__main__": + unittest.main() diff --git a/test/test_learning.py b/test/test_learning.py index c839704c..91fd0af9 100644 --- a/test/test_learning.py +++ b/test/test_learning.py @@ -1,7 +1,7 @@ import unittest import numpy as np -from pymdp import utils, maths, learning +from pymdp.legacy import utils, maths, learning from copy import deepcopy diff --git a/test/test_learning_jax.py b/test/test_learning_jax.py index 6b943932..8f855b49 100644 --- a/test/test_learning_jax.py +++ b/test/test_learning_jax.py @@ -10,11 +10,19 @@ import numpy as np import jax.numpy as jnp import jax.tree_util as jtu +from jax import nn + +from pymdp.legacy.learning import update_obs_likelihood_dirichlet as update_pA_numpy +from pymdp.legacy.learning import update_obs_likelihood_dirichlet_factorized as update_pA_numpy_factorized +from pymdp.learning import update_obs_likelihood_dirichlet as update_pA_jax +from pymdp.legacy import utils + +from pymdp.legacy.learning import update_state_likelihood_dirichlet as update_pB_numpy +from pymdp.legacy.learning import update_state_likelihood_dirichlet_interactions as update_pB_interactions_numpy + +from pymdp.learning import update_obs_likelihood_dirichlet as update_pA_jax +from pymdp.learning import update_state_transition_dirichlet as update_pB_jax -from pymdp.learning import update_obs_likelihood_dirichlet as update_pA_numpy -from pymdp.learning import update_obs_likelihood_dirichlet_factorized as update_pA_numpy_factorized -from pymdp.jax.learning import update_obs_likelihood_dirichlet as update_pA_jax -from pymdp import utils class TestLearningJax(unittest.TestCase): @@ -26,31 +34,19 @@ def test_update_observation_likelihood_fullyconnected(self): This is the so-called 'fully-connected' version where all hidden state factors drive each modality (i.e. A_dependencies is a list of lists of hidden state factors) """ - num_obs_list = [ [5], - [10, 3, 2], - [2, 4, 4, 2], - [10] - ] - num_states_list = [ [2,3,4], - [2], - [4,5], - [3] - ] - - A_dependencies_list = [ [ [0,1,2] ], - [ [0], [0], [0] ], - [ [0,1], [0,1], [0,1], [0,1] ], - [ [0] ] - ] - - for (num_obs, num_states, A_dependencies) in zip(num_obs_list, num_states_list, A_dependencies_list): + num_obs_list = [[5], [10, 3, 2], [2, 4, 4, 2], [10]] + num_states_list = [[2, 3, 4], [2], [4, 5], [3]] + + A_dependencies_list = [[[0, 1, 2]], [[0], [0], [0]], [[0, 1], [0, 1], [0, 1], [0, 1]], [[0]]] + + for num_obs, num_states, A_dependencies in zip(num_obs_list, num_states_list, A_dependencies_list): # create numpy arrays to test numpy version of learning # create A matrix initialization (expected initial value of P(o|s, A)) and prior over A (pA) A_np = utils.random_A_matrix(num_obs, num_states) - pA_np = utils.dirichlet_like(A_np, scale = 3.0) + pA_np = utils.dirichlet_like(A_np, scale=3.0) - # create random observations + # create random observations obs_np = utils.obj_array(len(num_obs)) for m, obs_dim in enumerate(num_obs): obs_np[m] = utils.onehot(np.random.randint(obs_dim), obs_dim) @@ -90,31 +86,19 @@ def test_update_observation_likelihood_factorized(self): This is the factorized version where only some hidden state factors drive each modality (i.e. A_dependencies is a list of lists of hidden state factors) """ - num_obs_list = [ [5], - [10, 3, 2], - [2, 4, 4, 2], - [10] - ] - num_states_list = [ [2,3,4], - [2, 5, 2], - [4,5], - [3] - ] - - A_dependencies_list = [ [ [0,1] ], - [ [0, 1], [1], [1, 2] ], - [ [0,1], [0], [0,1], [1] ], - [ [0] ] - ] - - for (num_obs, num_states, A_dependencies) in zip(num_obs_list, num_states_list, A_dependencies_list): + num_obs_list = [[5], [10, 3, 2], [2, 4, 4, 2], [10]] + num_states_list = [[2, 3, 4], [2, 5, 2], [4, 5], [3]] + + A_dependencies_list = [[[0, 1]], [[0, 1], [1], [1, 2]], [[0, 1], [0], [0, 1], [1]], [[0]]] + + for num_obs, num_states, A_dependencies in zip(num_obs_list, num_states_list, A_dependencies_list): # create numpy arrays to test numpy version of learning # create A matrix initialization (expected initial value of P(o|s, A)) and prior over A (pA) A_np = utils.random_A_matrix(num_obs, num_states, A_factor_list=A_dependencies) - pA_np = utils.dirichlet_like(A_np, scale = 3.0) + pA_np = utils.dirichlet_like(A_np, scale=3.0) - # create random observations + # create random observations obs_np = utils.obj_array(len(num_obs)) for m, obs_dim in enumerate(num_obs): obs_np[m] = utils.onehot(np.random.randint(obs_dim), obs_dim) @@ -144,7 +128,297 @@ def test_update_observation_likelihood_factorized(self): ) for modality, obs_dim in enumerate(num_obs): - self.assertTrue(np.allclose(qA_jax_test[modality],qA_np_test[modality])) + self.assertTrue(np.allclose(qA_jax_test[modality], qA_np_test[modality])) + + def test_update_state_likelihood_single_factor_no_actions(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)] + """ + + num_states = [3] + num_controls = [1] + + l_rate = 1.0 + + # Create random variables to run the update on + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") + + pB_jax = [jnp.array(b) for b in pB] + + action_jax = jnp.array([action]) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_single_factor_with_actions(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)] + """ + + num_states = [3] + num_controls = [3] + + l_rate = 1.0 + + # Create random variables to run the update on + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") + + action_jax = jnp.array([action]) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_multi_factor_all_factors_no_actions(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ + """ + + num_states = [3, 4] + num_controls = [1, 1] + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + l_rate = 1.0 + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") + + action_jax = jnp.array([action]) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_multi_factor_all_factors_with_actions(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ + """ + num_states = [3, 4] + num_controls = [3, 5] + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + l_rate = 1.0 + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors="all") + + action_jax = jnp.array([action]) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_multi_factor_some_factors_no_action(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ + """ + + num_states = [3, 4, 2] + num_controls = [3, 5, 5] + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + l_rate = 1.0 + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + + action = list(np.array([np.random.randint(c_dim) for c_dim in num_controls])) + + factors_to_update = np.random.choice(list(range(len(B))), replace=False, size=(2,)).tolist() + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors=factors_to_update) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + action_jax = jnp.array([action]) + + # Method to apply the selective update without using the implemented way + pB_jax_update = [pB_jax[f] for f in factors_to_update] + belief_jax_update = [belief_jax[f] for f in factors_to_update] + action_jax_update = jnp.concatenate([action_jax[..., f : f + 1] for f in factors_to_update], axis=-1) + num_controls_update = [num_controls[f] for f in factors_to_update] + + pB_updated_jax_factors, _ = update_pB_jax( + pB_jax_update, belief_jax_update, action_jax_update, num_controls=num_controls_update, lr=l_rate + ) + + pB_updated_jax = [] + for f, _ in enumerate(num_states): + if f in factors_to_update: + pB_updated_jax.append(pB_updated_jax_factors[factors_to_update.index(f)]) + else: + pB_updated_jax.append(pB_jax[f]) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_multi_factor_some_factors_no_action_2(self): + """ + Testing the JAXified version of updating Dirichlet posterior over transition likelihood parameters. + qB is the posterior, pB is the prior and B is the expectation of the likelihood wrt the + current posterior over B, i.e. $B = E_Q(B)[P(s_t | s_{t-1}, u_{t-1}, B)]$ + """ + + num_states = [3, 4, 2] + num_controls = [3, 5, 5] + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + l_rate = 1.0 + + B = utils.random_B_matrix(num_states, num_controls) + pB = utils.obj_array_ones([B_f.shape for B_f in B]) + + action = list(np.array([np.random.randint(c_dim) for c_dim in num_controls])) + + factors_to_update = np.random.choice(list(range(len(B))), replace=False, size=(2,)).tolist() + + pB_updated_numpy = update_pB_numpy(pB, B, action, qs, qs_prev, lr=l_rate, factors=factors_to_update) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = jnp.array([qs_prev[..., f].tolist()]) + belief_jax.append([q_f, q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + action_jax = jnp.array([action]) + + pB_updated_jax_factors, _ = update_pB_jax( + pB_jax, belief_jax, action_jax, num_controls=num_controls, lr=l_rate, factors_to_update=factors_to_update + ) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax_factors): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + + def test_update_state_likelihood_with_interactions(self): + """ + Test for `learning.update_state_likelihood_dirichlet_factorized`, which is the learning function updating prior + Dirichlet parameters over the transition likelihood (pB) in the case that there are allowable interactions + between hidden state factors, i.e. the dynamics of factor `f` may depend on more than just its control factor + and its own state. + """ + + """ Test version with interactions """ + num_states = [3, 4, 5] + num_controls = [2, 1, 1] + B_factor_list = [[0, 1], [0, 1, 2], [1, 2]] + + qs_prev = utils.random_single_categorical(num_states) + qs = utils.random_single_categorical(num_states) + + B = utils.random_B_matrix(num_states, num_controls, B_factor_list=B_factor_list) + pB = utils.dirichlet_like(B, scale=1.0) + l_rate = np.random.rand() # sample some positive learning rate + + action = np.array([np.random.randint(c_dim) for c_dim in num_controls]) + + pB_updated_numpy = update_pB_interactions_numpy( + pB, B, action, qs, qs_prev, B_factor_list, lr=l_rate, factors="all" + ) + + action_jax = jnp.array([action]) + + belief_jax = [] + for f in range(len(num_states)): + # Extract factor + q_f = jnp.array([qs[..., f].tolist()]) + q_prev_f = [jnp.array([qs_prev[..., fi].tolist()]) for fi in B_factor_list[f]] + belief_jax.append([q_f, *q_prev_f]) + + pB_jax = [jnp.array(b) for b in pB] + + pB_updated_jax, _ = update_pB_jax(pB_jax, belief_jax, action_jax, lr=l_rate, num_controls=num_controls) + + for pB_np, pB_jax in zip(pB_updated_numpy, pB_updated_jax): + self.assertTrue(pB_np.shape == pB_jax.shape) + self.assertTrue(np.allclose(pB_np, pB_jax)) + if __name__ == "__main__": - unittest.main() \ No newline at end of file + unittest.main() diff --git a/test/test_message_passing_jax.py b/test/test_message_passing_jax.py index 4a86a67c..b604750d 100644 --- a/test/test_message_passing_jax.py +++ b/test/test_message_passing_jax.py @@ -15,18 +15,17 @@ from jax import vmap, nn from jax import random as jr -from pymdp.jax.algos import run_vanilla_fpi as fpi_jax -from pymdp.jax.algos import run_factorized_fpi as fpi_jax_factorized -from pymdp.jax.algos import update_variational_filtering as ovf_jax -from pymdp.algos import run_vanilla_fpi as fpi_numpy -from pymdp.algos import run_mmp as mmp_numpy -from pymdp.jax.algos import run_mmp as mmp_jax -from pymdp.jax.algos import run_vmp as vmp_jax -from pymdp import utils, maths +from pymdp.algos import run_vanilla_fpi as fpi_jax +from pymdp.algos import run_factorized_fpi as fpi_jax_factorized +from pymdp.algos import update_variational_filtering as ovf_jax +from pymdp.legacy.algos import run_vanilla_fpi as fpi_numpy +from pymdp.legacy.algos import run_mmp as mmp_numpy +from pymdp.algos import run_mmp as mmp_jax +from pymdp.algos import run_vmp as vmp_jax +from pymdp.legacy import utils, maths from typing import Any, List, Dict - def make_model_configs(source_seed=0, num_models=4) -> Dict: rng_keys = jr.split(jr.PRNGKey(source_seed), num_models) num_factors_list = [ jr.randint(key, (1,), 1, 7)[0].item() for key in rng_keys ] # list of total numbers of hidden state factors per model diff --git a/test/test_mmp.py b/test/test_mmp.py index 61ad575c..ecdba18b 100644 --- a/test/test_mmp.py +++ b/test/test_mmp.py @@ -13,9 +13,9 @@ import numpy as np from scipy.io import loadmat -from pymdp.utils import get_model_dimensions, convert_observation_array -from pymdp.algos import run_mmp -from pymdp.maths import get_joint_likelihood_seq +from pymdp.legacy.utils import get_model_dimensions, convert_observation_array +from pymdp.legacy.algos import run_mmp +from pymdp.legacy.maths import get_joint_likelihood_seq DATA_PATH = "test/matlab_crossval/output/" diff --git a/test/test_utils.py b/test/test_utils.py index 033dd8f6..cfc0903a 100644 --- a/test/test_utils.py +++ b/test/test_utils.py @@ -8,10 +8,11 @@ """ import unittest - +import itertools import numpy as np -from pymdp import utils +from pymdp.legacy import utils +from pymdp import utils as jax_utils class TestUtils(unittest.TestCase): def test_obj_array_from_list(self): @@ -23,6 +24,46 @@ def test_obj_array_from_list(self): obs_arrs = utils.obj_array_from_list(arrs) self.assertTrue(all([np.all(a == b) for a, b in zip(arrs, obs_arrs)])) + + def test_get_combination_index(self): + """ + Test `get_combination_index` + """ + num_controls = [10, 20] + act = [5, 1] + + # make all combinations from itertools and find correct index + action_map = list(itertools.product(*[list(range(i)) for i in num_controls])) + true_act_flat = action_map.index(tuple(act)) + + batch_size = 10 + act_vec = np.array(act) + act_vec = np.broadcast_to(act_vec, (batch_size,) + act_vec.shape) + + # find flat index without itertools + act_flat = jax_utils.get_combination_index(act_vec, num_controls) + + self.assertTrue(np.allclose(act_flat, true_act_flat)) + + def test_index_to_combination(self): + """ + Test `index_to_combination` + """ + num_controls = [10, 20] + act = [5, 1] + + # make all combinations from itertools and find correct index + action_map = list(itertools.product(*[list(range(i)) for i in num_controls])) + act_flat = action_map.index(tuple(act)) + + batch_size = 10 + act_flat_vec = np.array([act_flat]) + act_flat_vec = np.broadcast_to(act_flat_vec, (batch_size,)) + + # reconstruct categorical actions from flat index + act_reconstruct = jax_utils.index_to_combination(act_flat_vec, num_controls) + + self.assertTrue(np.allclose(act_reconstruct - np.array([act]), 0)) if __name__ == "__main__": unittest.main() \ No newline at end of file diff --git a/test/test_wrappers.py b/test/test_wrappers.py index cf405e56..f43d2e8a 100644 --- a/test/test_wrappers.py +++ b/test/test_wrappers.py @@ -1,7 +1,7 @@ import os import unittest from pathlib import Path -from pymdp.utils import Dimensions, get_model_dimensions_from_labels +from pymdp.legacy.utils import Dimensions, get_model_dimensions_from_labels class TestWrappers(unittest.TestCase):