Created
April 28, 2025 12:44
-
-
Save aleksejalex/4174f885a11f62ccceb5fb46221b4949 to your computer and use it in GitHub Desktop.
rat_in_box_ver4.ipynb
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "id": "view-in-github", | |
| "colab_type": "text" | |
| }, | |
| "source": [ | |
| "<a href=\"https://colab.research.google.com/gist/aleksejalex/4174f885a11f62ccceb5fb46221b4949/rat_in_box_ver4.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "82943693-f6ed-46ef-b79e-8a8398622be4", | |
| "metadata": { | |
| "id": "82943693-f6ed-46ef-b79e-8a8398622be4" | |
| }, | |
| "source": [ | |
| "# Quantum Model of a Rat in a Maze\n", | |
| "*(Aleksej Gaj, Miroslav Karny)*\n", | |
| "\n", | |
| "This is jupyter notebok with simulation, for further info please proceed to\n", | |
| "[the project webpage](https://aleksejgaj.cz/Projects/rat)." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 30, | |
| "id": "fed6c047-89ce-42c3-bb41-b263dc487d42", | |
| "metadata": { | |
| "id": "fed6c047-89ce-42c3-bb41-b263dc487d42" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "import numpy as np\n", | |
| "import matplotlib.pyplot as plt\n", | |
| "from scipy.linalg import expm # Import expm from scipy\n", | |
| "import pandas as pd" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "af90bc71-bc2c-4d23-87f4-7b214ddc2449", | |
| "metadata": { | |
| "id": "af90bc71-bc2c-4d23-87f4-7b214ddc2449" | |
| }, | |
| "source": [ | |
| "## Representation of state\n", | |
| "\n", | |
| "Since there are 5 possible positions the rat can be in (5 rooms in maze), $\\text{dim}\\left(\\mathcal{H}\\right) = 5$, where\n", | |
| "$$\n", | |
| " \\mathcal{H} = \\text{span}\n", | |
| " \\left\\{\n", | |
| " \\begin{pmatrix}\n", | |
| " 1 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 0\n", | |
| " \\end{pmatrix},\n", | |
| " \\begin{pmatrix}\n", | |
| " 0 \\\\ 1 \\\\ 0 \\\\ 0 \\\\ 0\n", | |
| " \\end{pmatrix},\n", | |
| " \\begin{pmatrix}\n", | |
| " 0 \\\\ 0 \\\\ 1 \\\\ 0 \\\\ 0\n", | |
| " \\end{pmatrix},\n", | |
| " \\begin{pmatrix}\n", | |
| " 0 \\\\ 0 \\\\ 0 \\\\ 1 \\\\ 0\n", | |
| " \\end{pmatrix},\n", | |
| " \\begin{pmatrix}\n", | |
| " 0 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 1\n", | |
| " \\end{pmatrix}\n", | |
| " \\right\\} .\n", | |
| "$$\n", | |
| "\n", | |
| "State of the system (rat-in-the-box) is represented by state vector $\\ket{\\psi (t)}$ which is element of Hilbert space $\\mathcal{H}$.\n", | |
| "$$\n", | |
| " \\ket{\\psi(t)} = c_1\n", | |
| " \\begin{pmatrix}\n", | |
| " 1 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 0\n", | |
| " \\end{pmatrix}\n", | |
| " + c_2\n", | |
| " \\begin{pmatrix}\n", | |
| " 0 \\\\ 1 \\\\ 0 \\\\ 0 \\\\ 0\n", | |
| " \\end{pmatrix}\n", | |
| " + c_3\n", | |
| " \\begin{pmatrix}\n", | |
| " 0 \\\\ 0 \\\\ 1 \\\\ 0 \\\\ 0\n", | |
| " \\end{pmatrix}\n", | |
| " + c_4\n", | |
| " \\begin{pmatrix}\n", | |
| " 0 \\\\ 0 \\\\ 0 \\\\ 1 \\\\ 0\n", | |
| " \\end{pmatrix}\n", | |
| " + c_5\n", | |
| " \\begin{pmatrix}\n", | |
| " 0 \\\\ 0 \\\\ 0 \\\\ 0 \\\\ 1\n", | |
| " \\end{pmatrix}\n", | |
| " =\n", | |
| " \\begin{pmatrix}\n", | |
| " c_1 \\\\ c_2 \\\\ c_3 \\\\ c_4 \\\\ c_5\n", | |
| " \\end{pmatrix} .\n", | |
| "$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 31, | |
| "id": "65e5b252-97ff-46d6-8f04-8aa33519d086", | |
| "metadata": { | |
| "id": "65e5b252-97ff-46d6-8f04-8aa33519d086" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Define the number of rooms (Hilbert space dimension)\n", | |
| "dim = 5\n", | |
| "\n", | |
| "# Initialize the rat's quantum state (starting in room 0)\n", | |
| "psi_0 = np.zeros(dim, dtype=complex)\n", | |
| "psi_0[0] = 1 # The rat starts in room 0" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 32, | |
| "id": "aef1e7b1-5af2-4ebb-96ff-82375326ea01", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "aef1e7b1-5af2-4ebb-96ff-82375326ea01", | |
| "outputId": "5599675a-7747-45fb-cea0-f834e1aa95d9" | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": [ | |
| "array([1.+0.j, 0.+0.j, 0.+0.j, 0.+0.j, 0.+0.j])" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "execution_count": 32 | |
| } | |
| ], | |
| "source": [ | |
| "psi_0" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "76b0e3b7-777f-46b1-b61b-928af011a38b", | |
| "metadata": { | |
| "id": "76b0e3b7-777f-46b1-b61b-928af011a38b" | |
| }, | |
| "source": [ | |
| "## Definition of Hamiltonian operator (matrix).\n", | |
| "\n", | |
| "For instance, $H_{1,2}= −1$ indicates that there is a connection between room 1 and room 2, and the negative sign suggests that moving from room 1 to room 2 is energetically favorable." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 33, | |
| "id": "bb7e7c04-229a-4369-86bb-bf9bf0aa4679", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "bb7e7c04-229a-4369-86bb-bf9bf0aa4679", | |
| "outputId": "0c1f343e-eacf-449a-e308-6a2c6d192b31" | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": [ | |
| "array([[ 3.+0.j, -20.+0.j, 0.+0.j, 0.+0.j, 0.+0.j],\n", | |
| " [-20.+0.j, 2.+0.j, -20.+0.j, -20.+0.j, 0.+0.j],\n", | |
| " [ 0.+0.j, -20.+0.j, 2.+0.j, 0.+0.j, -20.+0.j],\n", | |
| " [ 0.+0.j, -20.+0.j, 0.+0.j, 1.+0.j, -20.+0.j],\n", | |
| " [ 0.+0.j, 0.+0.j, -20.+0.j, -20.+0.j, 0.+0.j]])" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "execution_count": 33 | |
| } | |
| ], | |
| "source": [ | |
| "# This represents nearest-neighbor hopping between connected rooms\n", | |
| "H1 = np.array([\n", | |
| " [0, 1, 0, 0, 0],\n", | |
| " [1, 0, 1, 0, 0],\n", | |
| " [0, 1, 0, 1, 0],\n", | |
| " [0, 0, 1, 0, 1],\n", | |
| " [0, 0, 0, 1, 0]\n", | |
| "], dtype=complex)\n", | |
| "\n", | |
| "# Hamiltionian: 1D random walk with NO preferences\n", | |
| "H2 = np.array([\n", | |
| " [1, 1, 0, 0, 0],\n", | |
| " [1, 1, 1, 0, 0],\n", | |
| " [0, 1, 1, 1, 0],\n", | |
| " [0, 0, 1, 1, 1],\n", | |
| " [0, 0, 0, 1, 1]\n", | |
| "], dtype=complex)\n", | |
| "\n", | |
| "# Hamiltionian: 1D random walk with preferences\n", | |
| "H3 = np.array([\n", | |
| " [3, 1, 0, 0, 0],\n", | |
| " [1, 2, 1, 0, 0],\n", | |
| " [0, 1, 2, 1, 0],\n", | |
| " [0, 0, 1, 1, 1],\n", | |
| " [0, 0, 0, 1, 0]\n", | |
| "], dtype=complex)\n", | |
| "\n", | |
| "# Hamiltionian: 1D random walk with preferences\n", | |
| "a = -20 # coupling coefficient (encoding that rat can go from room i to room j in one step)\n", | |
| "H4 = np.array([\n", | |
| " [3, a, 0, 0, 0],\n", | |
| " [a, 2, a, a, 0],\n", | |
| " [0, a, 2, 0, a],\n", | |
| " [0, a, 0, 1, a],\n", | |
| " [0, 0, a, a, 0]\n", | |
| "], dtype=complex)\n", | |
| "\n", | |
| "H = H4\n", | |
| "H" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "fb438775-9813-4937-9cb4-199b88c99c5b", | |
| "metadata": { | |
| "id": "fb438775-9813-4937-9cb4-199b88c99c5b" | |
| }, | |
| "source": [ | |
| "Firstly, discrete time step should be defined (just computational representation of real continuous time line):" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 34, | |
| "id": "453d8e5d-77f6-4d02-af9a-829f16c60341", | |
| "metadata": { | |
| "id": "453d8e5d-77f6-4d02-af9a-829f16c60341" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Define time step for evolution\n", | |
| "delta_t = 0.1" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "fd542fcb-d2bf-4bac-b1b1-62b98d36f4eb", | |
| "metadata": { | |
| "id": "fd542fcb-d2bf-4bac-b1b1-62b98d36f4eb" | |
| }, | |
| "source": [ | |
| "## Unitary time evolution\n", | |
| "\n", | |
| "Generally state evolves in time according to\n", | |
| "$$\n", | |
| " \\left\\{\n", | |
| " \\begin{aligned}\n", | |
| " \\ket{\\psi(t)} &= \\hat{\\mathrm{U}}(t) \\ket{\\psi(0)} \\\\\n", | |
| " \\ket{\\psi(0)} &= \\ket{\\psi_0} ,\n", | |
| " \\end{aligned}\n", | |
| " \\right. \n", | |
| "$$\n", | |
| "where:\n", | |
| "$$\n", | |
| "\\hat{\\mathrm{U}}(t) = \\exp(- i t \\frac{1}{\\hbar} \\hat{\\mathrm{H}} ) .\n", | |
| "$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 35, | |
| "id": "ac0858ba-c8a4-4e3c-a4a5-1a1376b93268", | |
| "metadata": { | |
| "id": "ac0858ba-c8a4-4e3c-a4a5-1a1376b93268" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Compute the unitary evolution operator U = exp(-iH * delta_t)\n", | |
| "U = expm(-1j * H * 1)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 36, | |
| "id": "81a4d2d1-b6c0-4183-8264-729f20e92f94", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "81a4d2d1-b6c0-4183-8264-729f20e92f94", | |
| "outputId": "9a3a7ec9-5568-4866-a6b3-37a7f21ddb2f" | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "execute_result", | |
| "data": { | |
| "text/plain": [ | |
| "array([[-0.14568939-0.68275734j, 0.08025803-0.1113912j ,\n", | |
| " 0.08687641+0.09973867j, 0.06955711+0.10195825j,\n", | |
| " -0.67497213+0.07383289j],\n", | |
| " [ 0.08025803-0.1113912j , 0.01475703-0.48662998j,\n", | |
| " -0.59037028-0.03257137j, -0.58775839-0.02736248j,\n", | |
| " 0.05518771+0.21277185j],\n", | |
| " [ 0.08687641+0.09973867j, -0.59037028-0.03257137j,\n", | |
| " 0.03011629-0.68456612j, -0.04704796+0.31096932j,\n", | |
| " -0.24633674-0.06141457j],\n", | |
| " [ 0.06955711+0.10195825j, -0.58775839-0.02736248j,\n", | |
| " -0.04704796+0.31096932j, 0.01804766-0.68815382j,\n", | |
| " -0.25130103-0.05107499j],\n", | |
| " [-0.67497213+0.07383289j, 0.05518771+0.21277185j,\n", | |
| " -0.24633674-0.06141457j, -0.25130103-0.05107499j,\n", | |
| " -0.09675305-0.59251011j]])" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "execution_count": 36 | |
| } | |
| ], | |
| "source": [ | |
| "U" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "e866f7d0-7cc6-42c5-a422-9850cd4e8716", | |
| "metadata": { | |
| "id": "e866f7d0-7cc6-42c5-a422-9850cd4e8716" | |
| }, | |
| "source": [ | |
| "## Measurement: obtaining value and state collapse\n", | |
| "\n", | |
| "Following function represents measurement: observing current position of the rat in the maze.\n", | |
| "\n", | |
| "The function `measure(psi)`:\n", | |
| " - get the 'probability distribution' as $P(\\text{rat in j-th room} | \\ket{\\psi(t)}) = |c_j|^2$\n", | |
| " - make a random sample from the distribution (via `np.random.choice()`)\n", | |
| " - collapse state into obtained value (set $c_j = 1$ for room where rat is observed and $c_j=0$ for all other rooms)\n", | |
| " - return the values" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 37, | |
| "id": "5c8727af-7a6e-4c6d-9867-fa085906a0ab", | |
| "metadata": { | |
| "id": "5c8727af-7a6e-4c6d-9867-fa085906a0ab" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Function to simulate a quantum measurement (collapse of wavefunction)\n", | |
| "def measure(psi):\n", | |
| " probabilities = np.abs(psi) ** 2 # Compute probability distribution\n", | |
| " #print(probabilities)\n", | |
| " result = np.random.choice(len(psi), p=probabilities) # Random collapse\n", | |
| " psi = np.zeros_like(psi) # Reset state\n", | |
| " psi[result] = 1 # Collapse to measured state\n", | |
| " return result, psi" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "10d82905-fd60-4250-891c-c315f1f2432b", | |
| "metadata": { | |
| "id": "10d82905-fd60-4250-891c-c315f1f2432b" | |
| }, | |
| "source": [ | |
| "## Simulation\n", | |
| "The simulation consists of:\n", | |
| " - continuous unitary evolution of the system\n", | |
| " - regular observations which cause discontinuous change of system's state\n", | |
| "\n", | |
| "**Observer's perspective:** observer receives only information via observing rat's position (shown in graph). What happens between the two observed values, observer could never know. \\\n", | |
| "**Simulation's perspective:** obviously simulation has to 'know' everything, i.e. state of the system in every time step $\\Delta t$. It cannot be visualised though, as the state vector consists of 5 complex values at each time.\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 38, | |
| "id": "58b409c7-6600-44f9-a24b-b40f748d80ac", | |
| "metadata": { | |
| "id": "58b409c7-6600-44f9-a24b-b40f748d80ac" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Define simulation parameters\n", | |
| "num_steps = 5000 # Total number of time steps\n", | |
| "measurement_interval = 50 # Measure every 50 steps\n", | |
| "positions = [] # Store measurement results\n", | |
| "times = [] # Store corresponding times" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 39, | |
| "id": "d1b4985d-ad61-45de-8147-d3757e442cb1", | |
| "metadata": { | |
| "id": "d1b4985d-ad61-45de-8147-d3757e442cb1" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# Run the simulation\n", | |
| "t = 0 # Initialize total elapsed time\n", | |
| "for step in range(num_steps):\n", | |
| " t = t + delta_t # Update total elapsed time\n", | |
| " U = expm(-1j * H * t) # Compute total unitary evolution\n", | |
| " psi = U @ psi_0 # Apply unitary evolution\n", | |
| "\n", | |
| " if step % measurement_interval == 0: # Perform measurement at intervals\n", | |
| " position, psi = measure(psi)\n", | |
| " positions.append(position)\n", | |
| " times.append(t) # only time epoque when measurement was performed" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "41ed098a-3da6-4b80-844b-dbc313bf54ad", | |
| "metadata": { | |
| "id": "41ed098a-3da6-4b80-844b-dbc313bf54ad" | |
| }, | |
| "source": [ | |
| "## Visualisation of results\n", | |
| "(from Observer's perspective only)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "source": [ | |
| "!mkdir imgs" | |
| ], | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "-R-46vO3213k", | |
| "outputId": "e320d562-e840-4756-a0e2-9d76448f965a" | |
| }, | |
| "id": "-R-46vO3213k", | |
| "execution_count": 40, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "mkdir: cannot create directory ‘imgs’: File exists\n" | |
| ] | |
| } | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 41, | |
| "id": "b1a6b529-28cd-47be-8746-f97221ffde48", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 363 | |
| }, | |
| "id": "b1a6b529-28cd-47be-8746-f97221ffde48", | |
| "outputId": "9a9bb837-85f4-4273-8e9f-fc4199462825" | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 550x330 with 1 Axes>" | |
| ], | |
| "image/png": "iVBORw0KGgoAAAANSUhEUgAAAekAAAFaCAYAAAA6kKVMAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAQ6wAAEOsBUJTofAAAyaBJREFUeJztfXeYVcX9/ntu28oWkLJ0QQFRFKKCkihYsKOIDY0GCyrRqIklPzX2rt+IGo0xdqPGhoq9iyixYI2IGEVRaQrC7lKW3dvm98fdOWfOnJlT59x70fM+Dw9725k5c2bmM5/30zRCCEGECBEiRIgQoewQK3UHIkSIECFChAhiREI6QoQIESJEKFNEQjpChAgRIkQoU0RCOkKECBEiRChTREI6QoQIESJEKFNEQjpChAgRIkQoU0RCOkKECBEiRChTREI6QoQIESJEKFNEQjpChAgRIkQoU0RCOkKECBEiRChTREI6QmgYOHAgxo8f7/r7l1xyCTRNw7fffhtanyJsWjj22GOhaVqpuxEhQskQCWkOb7zxBjRNM/2rrq7GiBEjcNlll2Hjxo2Brj9r1ixccsklws/uvfde5UKKv5eKigoMGjQIJ598MpYtW6asHbe49957ceONNxa93QgRguCSSy7BrFmzSt2NCD5ACMGDDz6I3/72txg6dChqamrQ1NSE3XbbDU8++SRk5Ss+/fRTTJw4EY2NjaipqcFOO+1UkjmgRQU2zHjjjTew22674dBDD8VBBx0EAFi1ahUeffRRvPvuu9h7773x4osv+r7+sccei/vuu084Me69914cd9xxWLx4MQYOHOi7DRaapmHrrbfGueeeCwBobW3F7Nmz8fjjj6NPnz7473//i27duilpi0dHRwc0TUMqldLfGz9+PL799lvhQSSbzSKbzaKioiLSniIAsF8vxYSmaZg6dSruvffekvYjgne0t7ejqqoK2267Lfbff38MHjwYP/30E+666y589dVX+P3vf49bb73V9Jv//ve/+M1vfoOKigr88Y9/xGabbYYHHngA//nPf3DPPffg2GOPLd4NkAgmzJ49mwAgl19+uen9bDZLfvWrXxEA5IMPPvB9/alTpxLZsN9zzz0EAFm8eLHv6/MAQPbYYw/L+6eccgoBQK677jplbbnBuHHjyIABA4raZoTiobW1Ven17NZLMQGATJ06tdTdiOADmUyGvP7665b3169fT7bccksCgHz22Wemz3bZZReiaRp5//339ffS6TQZNWoUaWhoUD7P7RDR3S4Rj8ex2267AQC++uor02ePPPIIJk2ahAEDBqCyshJdu3bFPvvsg7lz55q+N3DgQNx3330AzDS03em8ubkZ55xzDrbccktUVVWhsbERI0aMwB//+MdA97PvvvsCABYtWqS/99577+GAAw5A165dUVlZiWHDhuHyyy9HOp321SfeJq1pGubMmYPvvvvOdP9vvPEGALlNetmyZZg2bRr69OmDVCqFvn374qSTTsKKFStM36OminvvvRf3338/tt12W1RWVqJPnz44//zzkcvlAo2ZDGy7t99+O4YPH47KykoMGTIE//rXv/R7mDJlCrp164aamhpMmjQJP/zwg+Va6XQa1113HbbddltUVVWhrq4Oe+65J958803Ld//xj39g7733Rt++fZFKpdCjRw8ccsgh+OyzzyzffffddzFx4kT07t0bFRUVOt3H0nd2PgHjx4+3sDv0+X766afYf//90djYiPr6ev3zH3/8EaeddhoGDhyIVCqFnj174uijjxZe/8cff8TUqVP18fn1r3+N2bNnS0ZcjhdffBG77bYb6urqUFVVhZEjR+Lvf/+7RRMX3Q+Fpmm6pkSfLQDcd999pnnL4tNPP8WRRx6J3r17I5VKoU+fPjjooIPw4Ycfmr7ndo3RZ7Fw4UKcffbZ6NOnD6qrqzF27FjMmzcPAPCf//wH48ePR21tLbp3744zzzwT2WzWcj9un0NHRwcuv/xyDB8+HDU1Nairq8PQoUNx/PHH+zbz5fN5XHXVVRg/fjyampr0sZk6dSq+//57X9f0ikQioe/dLGpqanDAAQcAAObPn6+//+233+Ktt97CuHHjsMMOO+jvJ5NJnH766WhpacHTTz8dfsc7kShaSz8DfP311wBgoYdvueUWNDY2Ytq0aWhqasKSJUtw1113YbfddsOcOXMwduxYAMCNN96IGTNm4K233sL999+v/55+LsLhhx+O2bNn46STTsLIkSORTqfx9ddf49VXXw10L19++SUAoHv37gAKm9uBBx6Iuro6nHLKKejVqxeef/55XHTRRXj77bfx3HPPIRaLBerT/fffjyuvvBI//fQTbrjhBv39rbbaSvqbZcuWYccdd8TKlSsxbdo0bLfddvjvf/+LO+64Ay+++CLef/999OzZ0/Sbf/7zn7pg7969O5544glcffXVqKur02n/MHDrrbdi1apVmDZtGurq6nDHHXdg6tSpSCaTOO+887DLLrvgiiuuwBdffIG///3vmDp1Kl566SX999lsFvvttx/mzJmDI488EtOnT0dbWxseeOAB7L777pg1a5a+qQDAddddhzFjxuDUU0/FZptthq+++gp33nknXnnlFXz88ccYPHgwgMKz3mOPPdCjRw+ccsop6N27N3766Sd8+OGHeOeddzBp0iTf97xkyRKMGzcOBx98MK6++mr94LFkyRKMHTsW69evxwknnIAhQ4Zg2bJl+Mc//oGXX34ZH3zwAfr37w8AWLt2LXbZZRcsWrQIU6dOxejRo7FgwQIccMAB+j24wV133YUTTzwR/fv3xznnnIPa2lrMnDkTf/jDH/Df//4Xt99+u+f722qrrXD//ffjmGOOwS677IKTTjrJ8p0XXngBBx98MFKpFE444QQMGzYMq1evxpw5c/D2229j++23B+BtjVFMnToVlZWV+POf/4wNGzbgr3/9KyZMmID7778fxx57LKZNm4YpU6bghRdewA033IDu3bvjvPPOMz0ft8/hD3/4A+6880789re/xemnnw4AWLx4MZ599lls2LABVVVVnscvnU7j2muvxeTJk7H//vujvr4en376Ke6++2689tpr+PTTT9G1a1f9++vXr0d7e7ura8fjcTQ2NnruEwvql8PuIe+99x4A8b5M35s3bx6OPvroQG27RtF09k0ElO4+77zzyKpVq8iqVavI559/Ti688EICgAwYMIB0dHSYfrN+/XrLdVasWEG6detG9ttvP9P7Xui7lpYWAoBMnz7d9/0AILvuuqt+L19//TW54447SF1dHUkmk+Szzz4j2WyWDBw4kFRVVZGvvvrK9PvjjjuOACD333+/5z4NGDCAjBs3zvSeHd198cUXW+j+Y445hgAgDz74oOm79913HwFATjjhBP09+ux69epF1qxZo7+fy+XIVlttRZqamhz77Aeydn/44QdSUVFBNE0j1157rek3Z5xxBgFA/ve//+nv3XjjjQQAeeKJJ0zfpTTb5ptvbnpfNO8+++wzkkwmySmnnKK/d9NNNxEA5N1337W9D9H4U4ie24ABAwgA8o9//MPy/UmTJpHGxkby9ddfm95fvHgxqa2tJccee6z+Hl1bN9xwg+m7Dz30EAHgar20tLSQ2tpa0tTURFatWqW/n8lkyIQJEwgA8tZbb9neDwUE1LboPUII2bBhA+nevTupr6+33CshhblHCPG0xggxnsW+++6rX4MQQp588kkCgMTjccvzHDlypGWOe3kOjY2NZJ999hGMiH/k83myYcMGy/uvvPKK0NxG90c3/4KazT788EOSSCTIFltsQdLptP7+X//6VwKA3HrrrZbfbNiwgQAgBx98cKC2vSAS0hzohiv6t9dee1kWGI+1a9eSn376iaxatYrst99+pFu3bqbPvQjpjo4OUllZSUaNGiXcANxAdi9bbrklefHFFwkhhMybN48AICeddJLl99999x0BQCZNmuS5T0GFdC6XI126dCFDhw61fDefz5PBgweTxsZGks/nCSHGszv//PMt3//DH/5AAJB169bZ9tkP7NrddtttSSwWIxs3bjS9/8QTTxAA5JlnntHf23777cnAgQP1AxX7j44NK9Qp8vk8aW1t1b+7zTbbkO23317/nB5ozj33XNLW1ia9Dz9CumvXriSbzZreb2lpIbFYjPz2t78V3suee+5pEibDhw8nDQ0NlsMvIUS3GTrh0UcfJQDIVVddZflszpw5BAD54x//aHs/FF6ENBWaF198sW3/vKwxQoxn8fLLL5u+u2bNGgKAjB071nKd008/3TTHvT6HzTffnPTr14988skntvfiF7lcjjQ3N+vt19fXk0MOOcT0nQULFpBXXnnF1b+5c+f67svy5ctJ//79SUVFheWwc9lllxEA5K677hLeAwCy9957+27bKyK6W4Jjjz0Wv/3tb5HNZvG///0P1157LZYuXSqkfD799FNcdNFFeP3117Fu3TrTZ0G8lFOpFP72t7/htNNOw+DBgzFkyBDssssu2G+//XDQQQchHo+7us6oUaNw3XXX6dfs27cvBg0apH/+zTffAABGjBhh+W3//v1RV1enU/2q+uQGq1atwrp167DNNttYPqNe608//TSam5tNlBl7bxTURLF69WrU1tZK21y/fj3Wr19veq++vt4V1Sdqt7GxEb1790ZlZaXlfdofioULF6KtrU03QYjw448/YsiQIQCAN998E5dddhnefvtti81w88031/+eMmUKHnroIVxzzTW44YYbMHr0aOy6666YMmWKcGy9YPDgwZZn/uWXXyKfz+PBBx/Egw8+KPwdS+t+/fXXGDFihCkKgGL48OEWHxAR7OYwfY/OYZWgZqNf/epXtt/zssZY8HOKzhvZXAOMOe71Odx000045phjMHLkSPTv3x+77LIL9t57bxx22GGW+esFs2bNwnXXXYcPP/zQYntfs2aN6fXw4cMxfPhwz22k02nLtaqqqkw+EhQ//PAD9thjD/zwww949NFHMWbMGNPn1dXVAAo2eh6UiqffKQYiIS3B4MGDseeeewIA9tlnH+y1114YNWoUpkyZgjfffFMXvkuXLsVvfvMb1NbW4rzzzsOwYcNQU1ODWCyGq6++Gq+//nqgfpx44ok48MAD8cILL+DNN9/Eq6++irvuugujR4/GnDlzXC2erl276vfiB/xBQ0WfwoTdQYE4hPL89a9/xaWXXmp6z23Ihaxdt/3J5/MYOnQobrnlFun3qVD98MMPsccee2DQoEG48sorMWjQIFRXV0PTNJxxxhnYsGGD/ptUKoUXXngBH330EV566SXMnTsXN9xwA6666ir83//9H8466ywA9gdKkUMSIN6s8vk8gILvwoknnii9Zikhu1fZfYYNWX+CzCmvz2HixIn49ttv8dJLL+GNN97AG2+8gQcffBCXXnop3nnnHdvDowxPPfUUDj74YOywww6YMWMG+vfvrx94p0yZoveRorW11bWTWjwe1/v09ttvW5zDRCFzy5cvx+67745vv/0WM2fOxMSJEy3X7du3L4DC3s6Dvke/UwxEQtolttpqK5xxxhm47rrr8NBDD+Goo44CADzxxBNYt24dZs2ahd133930m7/85S+W6/jRrHv27Iljjz0Wxx57LAghOP/883HNNdfg4YcfVhKvR51zFixYYPlsyZIlaG1ttTjw+O2Tl/vv3r07unTpIuwXIQQLFixAY2NjYOcRFr/73e/wm9/8xvTe1ltvrez6dhgyZAiWLFmC8ePHI5GwX5oPPvggstksXnjhBYtWtXr1auFB6Ve/+pWu8TU3N2Ps2LE4//zzcdpppyGVSulsxJo1ayyez998841Q0xVhiy22QCwWw8aNG10dDgcPHoxFixYhnU5b2vj8889dtcnOYda5DoDu7c7O4a5du1o8rwFD43ULymp8/PHHOPDAA131j4dsjQWF1+cAAA0NDTjiiCNwxBFHAABuu+02/P73v8ff//53aRImO9x3332orKzEnDlzTAe6DRs2oLm52fL9M844Q4+AccKAAQN0D/XtttsOr7zyiunz3r17m14vXboUu+++O5YsWYJZs2Zhn332EV539OjRAIB33nnH8hl9j36nGIhCsDzgz3/+M2pra3HJJZfoJ256ouU1tBdeeEEPlWBBqVaemhGhra0NbW1tpvc0TdM3WpYqDYJRo0Zh4MCBuP/++/Hdd9+ZPrvssssAAIcccoiSPtXW1qK5udlVcopYLIZJkybhiy++wMyZM02fPfjgg/j6668xefJkpYlPBg0ahD333NP0r6mpSdn17fC73/0Ozc3NuPLKK4Wf//jjj/rfsnl32223mb4HAD/99JPlWo2NjRg0aBDS6bRuohk6dCgAWLz0H3jgAUu4mx26deuG/fbbD88995w0jIrt4+TJk9HS0mJJKPHwww+7oroBYMKECaitrcUtt9xi2vxzuZw+nnQOA4V7XbdunWWN/t///Z/w+rW1tcI1u9dee6F79+648cYbhaFlVFP0ssZUwctzyOVyQqFJPdP97jXxeByaplk05ssvv9zyHlDYY1955RVX/1gKv7Gx0bJuWdqcHn6XLVuGZ555RiqggYKp6Ne//jXeeOMN00Eum83ib3/7G+rr64UaeFiINGkP6NatG/7whz/gmmuuwb/+9S8cf/zx2HfffVFTU4NjjjlGD4X56KOP8OCDD2LEiBGm+DsA2GmnnXDLLbfglFNOwf77749kMokxY8aYbIgUX375JXbddVdMmjQJW2+9Nbp3745vvvkGt912G7p06YLJkycrua94PI5//OMfOPDAA7Hjjjti+vTp6NGjB1544QU8//zz2HvvvXXmIGifdtppJzz77LP4wx/+gLFjxyIej2P33XdHjx49hN+/6qqr8Oqrr+LII4/E7NmzMWLECD0Eq1+/flKBtinijDPOwGuvvYZLLrkEb775Jvbaay907doVS5Yswdtvv41vvvlG1/QmT56MGTNmYN9998VJJ52E6upqzJ07Fy+99BIGDx5som2vuOIKvPjiizjggAOw+eabI5FIYM6cOXj++edxwAEH6PZ6urFdeOGFWLlyJbbcckt88MEHePrpp7HFFlsgk8m4vpfbbrsNv/nNbzBhwgQcddRR2HHHHRGLxfDdd9/h+eefxw477KBTkWeffTYeeughnHnmmfj000+x44474vPPP8fdd98tXEMi1NfX48Ybb8SJJ56IHXbYAccffzxqamowc+ZM/Oc//8GJJ55oYkhOPvlkXH/99Zg0aRLOOOMMVFdX47nnnkNra6vw+jvttBNeffVVXHvttejfvz80TcOUKVNQXV2Ne+65B5MnT8Z2222nh2A1Nzdjzpw52HfffXHaaad5WmMq4fY5rFu3Dk1NTZg4cSJGjhyJpqYmLF++HHfccQcSiQR++9vf6tekmREvvvhiR+36sMMOw8yZMzFu3DiddXvppZfw+eefY7PNNrN8369N2g7r1q3D+PHj8c0332DatGn44Ycf8MADD5i+M3bsWBMj9be//Q277ror9t57b/zpT3/CZptthvvvvx8fffQR7rrrLqGtOzQUzUVtE4Es4xjFqlWrSG1tLRk4cKDujTp37lyy6667krq6OtKlSxey++67k7lz5wo9uXO5HDnrrLNInz59SCwWIwDIPffcI2zrp59+In/605/IqFGjSGNjI6moqCADBgwgxx57LFm4cKGr+4Ek45gI77zzDtlvv/1IQ0MDSaVSZMiQIeSyyy4zed166ZPIu3vDhg3k+OOPJz169NDvf/bs2YQQuXfxkiVLyAknnECamppIIpEgvXv3JieeeCJZvny56Xv02YnG085zOSjs2pV5Ect+k81mya233krGjBlDamtrSWVlJRk4cCCZPHkyeeSRR0zfffrpp8kOO+xAqqurSWNjI5k4cSJZsGCBpc3Zs2eTI444Qg8BqqurI9tuuy259tprLd7eixYtIvvttx+pqakhXbp0Ifvttx9ZuHCh1Lubf74s1qxZQ84991wybNgwUlFRQbp06UKGDRtGTjzxRItH7fLly8nRRx9NGhsbSVVVFRk7dix5/fXXPWcce/7558m4ceNIbW0tqaioINtuuy25+eab9QgAFi+99BLZfvvtSSqVIt27dyfTp0/XQwx5T+4vv/ySTJgwgXTp0kUYFvbhhx+SQw45hHTv3p0kk0nSu3dvcvDBB5MPP/zQ9D03a4wQ+/kq6p/db9w8h46ODnLeeeeRMWPGkM0224ykUinSt29fcuihh5L33nvPdL2//e1vBAC5/fbbLX0Q4a677iLbbLMNqaysJN27dydHHXUUWbJkieP8UYXFixc7hnOJ1u4nn3xC9t9/f1JfX0+qqqrI6NGjyeOPPx56f3lEubsjRIgQIYJr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2+jSpQt+97vf4corr0Qq5S1lW6mTmQCFeLxCyMEyrFrfga7VKfTrWo0la9rw04YOaASFIyg0dKsxPlvTlkb32gpMGtUHB430nz2KbZu/nl3f1rSlLa+D9MepLae+qWzb6VrFHBe+vR/XtdvOiWL2xc29/1zmiOq+qUaQOaK6b173Fbv2gz7DUv9eBTa5ZCYqUQ5COkKECBEiRJBhk0tmEiFChAgRIkSwIhLSESJEiBAhQpkiEtIRIkSIECFCmaK83NgUIJstlNArZXrQCBEiRIgQQQYqn6i8ssPPTkivWrUKADB69OgS9yRChAgRIkSQY9WqVRg4cKDtd3523t3t7e2YP38+unfvjkQi2BlkxYoVGD16NObNm1fSTGabGqJx84do3PwjGjt/iMbNH4KOWzabxapVqzBixAhUVtrHw//sNOnKykrsuOOOSq/Z1NQUhXP5QDRu/hCNm39EY+cP0bj5Q5Bxc9KgKSLHsQgRIkSIEKFMEQnpCBEiRIgQoUwRCWkb1NXV4eKLL0ZdXV2pu7JJIRo3f4jGzT+isfOHaNz8oZjj9rNzHIsQIUKECBF+Log06QgRIkSIEKFMEQnpCBEiRIgQoUwRCekIESJEiBChTBEJ6QgRIkSIEKFMEQlpAb744gtMmDABNTU16NWrF/785z8jnU6Xulslw6JFizB9+nSMHDkSiUQC22yzjfB7d911F4YMGYLKykpst912ePbZZy3faW1txQknnICuXbuiS5cuOPTQQ3+2edYfe+wxHHTQQejbty9qamowcuRI3H333eB9NaNxM+P555/HuHHj0L17d1RUVGDQoEE488wz0draavreM888g+222w6VlZUYMmQI7rnnHsu10uk0zjnnHPTq1Qs1NTWYMGEC/ve//xXrVkqK9evXo2/fvtA0DR988IHps2jOmXHvvfdC0zTLv3PPPdf0vZKMG4lgwpo1a0hTUxPZddddyYsvvkjuuusuUl9fT0499dRSd61kmDVrFunbty855JBDyIgRI8jWW29t+c5DDz1ENE0jF1xwAXn99dfJySefTBKJBHnnnXdM39t7771J3759ySOPPEKeeuopss0225DtttuOZDKZYt1O0bDTTjuRKVOmkIcffpi89tpr5NxzzyWxWIxccskl+neicbPi/vvvJ+eccw6ZOXMmmT17Nrn55ptJt27dyIQJE/TvvPXWWyQej5OTTz6ZvP766+SCCy4gmqaRxx57zHStk08+mdTX15O77rqLvPjii2SXXXYhffr0IS0tLcW+raLjz3/+M+nZsycBQN5//339/WjOWXHPPfcQAOTFF18k77zzjv7v+++/179TqnGLhDSHq666itTU1JDVq1fr7/3zn/8k8XicLFu2rIQ9Kx1yuZz+99SpU4VCesiQIeTII480vbfzzjuTfffdV3/99ttvEwDkpZde0t/74osviKZp5JFHHgmh56XFqlWrLO+deOKJpK6uTh/TaNzc4fbbbycA9DW41157kbFjx5q+c+SRR5KtttpKf71kyRISj8fJP//5T/291atXk5qaGnLttdcWp+MlwsKFC0lNTQ257bbbLEI6mnNWUCEtWrMUpRq3iO7m8MILL2DPPfdE165d9fcOP/xw5PN5vPzyyyXsWekQi9lPk2+++QZffvklDj/8cNP7U6ZMwWuvvYaOjg4AhbFtaGjAhAkT9O8MHToUI0eOxPPPP6++4yXGZpttZnlv1KhRWLt2LTZs2BCNmwd069YNQIG+7ujowOzZs3HYYYeZvjNlyhQsXLgQ3377LQDg5ZdfRj6fN32va9eu2GuvvX7243baaadh+vTpGDp0qOn9aM75QynHLRLSHL744gsMGzbM9F5DQwOamprwxRdflKhX5Q06Lvy4bbXVVkin01i8eLH+vaFDh0LTNMv3filjO3fuXPTp0wddunSJxs0BuVwO7e3t+Oijj3DZZZfhwAMPxMCBA/H1118jk8kIxw0w5uMXX3yBHj16oLGx0fK9n/O4zZw5E/Pnz8dFF11k+Syac/bYeuutEY/HMWjQIFx99dXI5XIASjtuP7sqWEHR3NyMhoYGy/uNjY1Ys2ZN8Tu0CaC5uRkALONGN0c6br/0sZ07dy4efvhhXH/99QCicXPCgAEDsGzZMgDAPvvsg3//+98AonGzQ1tbG84880xcddVVwpSV0diJ0dTUhEsvvRRjxoyBpml4+umnccEFF2DZsmW45ZZbSjpukZCOEKEIWLp0KY444gjstttuOP3000vdnU0Czz//PDZs2IAFCxbgiiuuwMSJE/HKK6+UultljSuuuAI9e/bEcccdV+qubFLYe++9sffee+uv99prL1RVVeGGG27AX/7ylxL2LKK7LWhsbLSEegCFExJrp45ggJ4m+XGjp086br/UsW1pacG+++6Lbt264fHHH9dt/NG42WPbbbfFzjvvjGnTpuGpp57C7Nmz8eSTT0bjJsF3332H66+/HpdeeilaW1vR0tKC9evXAyiEY61fvz4aOw84/PDDkcvl8Mknn5R03CIhzWHYsGEW20FraytWrFhhsUdEKICOCz9uX3zxBVKpFAYNGqR/73//+58lTljkB/BzwcaNG3HAAQegtbUVL7zwAurr6/XPonFzj2233RbJZBKLFi3C4MGDkUwmheMGGOM6bNgw/Pjjj/pGyn7v5zhuixcvRjqdxv7774/GxkY0NjZi4sSJAIDddtsNe+65ZzTnfKKk4+bLJ/xnjKuuuorU1taS5uZm/b077rjjFx2CxcIuBOu3v/2t6b1f//rXwvCEV155RX/vf//73882rCOTyZADDjiAdO3alSxYsED4nWjc3OGdd94hAPT73WuvvchvfvMb03d++9vfCkOw7rjjDv29NWvWkNra2p9lCFZzczOZPXu26d8NN9xAAJDbbruNfPjhh4SQaM65xZlnnkni8ThZsWIFIaR04xYJaQ40mcm4cePISy+9RO6++27S0NDwi05msmHDBvLYY4+Rxx57jIwfP57069dPf71y5UpCCCH//ve/iaZp5KKLLiKzZ88m06dPJ4lEgrz99tuma+29996kX79+5NFHHyVPP/00GTFixM82QcKJJ55IAJDrr7/elCDhnXfeIe3t7YSQaNxEOPjgg8mVV15JnnnmGfLqq6+S66+/nvTq1Ytsu+22pKOjgxBiJDP5/e9/T2bPnk0uuugiomkaefTRR03XOvnkk0lDQwO5++67yUsvvUTGjRv3i0lmQgghs2fPtsRJR3POir322otcc8015LnnniPPPfccOfnkk4mmaeSPf/yj/p1SjVskpAX4/PPPyR577EGqqqpIjx49yNlnn61vDr9ELF68mAAQ/ps9e7b+vTvvvJNsscUWJJVKkREjRpBnnnnGcq2WlhZy/PHHk4aGBlJbW0smT578s2UoBgwYIB23xYsX69+Lxs2Mq6++mowcOZJ06dKF1NTUkK233ppceOGFpLW11fS9p556iowYMYKkUimyxRZbkLvuustyrfb2dnLWWWeRHj16kKqqKrLnnnuShQsXFutWSg6RkCYkmnM8Tj/9dLLllluSqqoqUlFRQUaMGEFuuukmks/nTd8rxbhphHDkeYQIESJEiBChLBA5jkWIECFChAhlikhIR4gQIUKECGWKSEhHiBAhQoQIZYpISEeIECFChAhlikhIR4gQIUKECGWKSEhHiBAhQoQIZYpISEeIECFChAhlikhIR4gQIUKECGWKSEhH+FnikksugaZp6NOnD/L5vOXzX//619A0Dccee2zxO/cLwxtvvIGrrrqq1N3whEsuuQS1tbWl7kaECJGQjvDzRTKZxE8//YQ333zT9P53332Hd955J9qEi4RNUUhHiFAuiIR0hJ8tUqkU9t13Xzz00EOm9x9++GFsvfXWGDx4cIl65h8bN24sdRciKED0HCO4RSSkI/ysceSRR2LmzJnIZDL6e//+979x1FFHCb+/cOFCHHTQQaivr0dNTQ32339/fP3116bvXH/99dhxxx1RX1+PHj164IADDsCXX35p+s6CBQuw3377oVu3bqiursbQoUNx3XXX6Z+PHz8eBxxwgOk3n3zyCTRNwxtvvKG/p2karrnmGvy///f/0KtXL/To0QMAQAjBX//6VwwZMgQVFRUYNGgQbrjhBtP1KGX78ccfY+edd0ZVVRV+9atf4eOPP0Z7ezt+//vfo7GxEX379sWNN95oGYt33nkHu+++O2pqalBfX4+jjjoKK1eu1D//9ttvoWkaHnjgAfzhD39AY2MjmpqacPbZZyObzep9uPTSS7FhwwZomgZN0zB+/Hjh2APAsccei2222QZvvPEGRo0ahZqaGowePRoffvihpd2ZM2eafvvHP/4RAwcO1F/fe++90DQNH3zwAfbaay/9Obz66qvI5/O44IIL0LNnT/Ts2RPnnXee0Czy/vvvY/To0aisrMRWW22FZ5991vKd5557DmPGjEFVVRW6d++O3//+99iwYYP++RtvvAFN0/Dcc8/h0EMPRV1dHQ477DDpGESIwCIS0hF+1pg4cSI6Ojrw8ssvAwA+//xzfPrpp5gyZYrlu9988w3Gjh2LNWvW4N5778W///1vrFq1CnvssQc6Ojr07y1duhR/+MMf8NRTT+HOO+9EPp/Xf8e229zcjLvuugvPPfcczj77bNPG7QU33XQTvvzyS9x111144IEHAABnnHEGLrroIkydOhXPPfccjj32WPy///f/cNttt5l+m8lkMHXqVJx00kl4/PHHkclkMHnyZEybNg1VVVV49NFHMWnSJPzpT3/C22+/rf/unXfewfjx41FfX49HHnkEt99+O95//30cdNBBlv795S9/QSwWw6OPPorp06fj+uuvx5133gkAmDZtGk444QRUVVXhnXfewTvvvINbb73V9n5/+OEHnH766TjnnHPw6KOPor29HQcffLDpoOUFv/vd73DAAQfgySefRO/evTF58mScccYZWLJkCf71r3/h1FNPxTXXXIOHH37YMnZHHHEEpk6diieeeAJbbLEFDj74YMyfP1//zsyZM3HggQdixIgRePLJJ3HdddfhiSeewAknnGDpx0knnYTBgwfjySefxNlnn+3rXiL8AuG7flaECGWMiy++mNTU1BBCCDnqqKPI0UcfTQgh5IILLiA777wzIYSQ7bbbjkydOlX/ze9+9zsyaNAgsnHjRv29lStXktraWvL3v/9d2E42myVtbW2ktraW/POf/ySEELJq1SoCgDz99NPS/o0bN47sv//+pvc+/vhjS/lPAGT48OGmknmLFi0imqbp7VH8v//3/0ivXr1ILpfTxwAAef755/XvPPPMMwQAOeKII0z30KNHD1Pt3F133ZWMHTvW1O6CBQuIpmnkueeeI4QYJUwPO+wwy73tscce+mv2WThh6tSpRNM08tlnn+nv0XKLb731lqndxx57zPTbM844gwwYMEB/fc899xAA5NZbb9Xfmz9/PgFAdtppJ9Nvt99+ezJp0iRTnwGYyl9ms1my+eabkylTphBCCMnn82TAgAHkyCOPNF3rhRdeMN0D7f/06dNdjUGECCwiTTrCzx5HHnkknnrqKWzcuBEPP/wwjjzySOH3Xn75ZRx44IFIJBLIZrPIZrNobGzEqFGj8P777+vfe/fddzFhwgR069YNiUQC1dXVWL9+vU55d+vWDQMGDMB5552H++67D0uXLg3U/3333ReapumvX331VQDAIYccovczm81izz33xA8//IAlS5bo343FYthjjz3010OGDAEA7Lnnnvp78XgcgwcP1n/X1taG//znPzjssMOQy+X06w8ZMgT9+vUzjQUA7LXXXqbXw4cPD3TPvXv3xtZbb226HgDf15wwYYL+N71/dkzo++y4URx88MH63/F4HJMmTcJ7770HAPjyyy/x3Xff4fDDDzc9h3HjxiEWi+GDDz4wXWv//ff31f8Iv2xEQjrCzx577703kskkLrroIixevBiHH3648Hs//fQTbrzxRiSTSdO/t956S9/Av//+e+y1117I5XL45z//if/85z94//330aNHD7S3twMo2JFffvllbLXVVjj11FPRr18/7LDDDhYvc7fo2bOnpZ+EEGy22WamflJhxAqbqqoqpFIp/TX9u6GhwXTNVCql97+5uRm5XA5/+tOfLGPx/fffW4SZ3bX8QHQ9AL6vyV7Pzf1TJJNJNDY2mt7r2bMnVqxYAaDwHICCIGfHqLq6GrlczjJO/HOMEMENEqXuQIQIYSOZTOKQQw7BjBkzsMcee0g3y65du2L//ffHKaecYvmsS5cuAIAXX3wR69evxxNPPKFv9Nls1mSPBgqa2WOPPYZMJoO3334b559/PiZOnIhly5ahtrYWlZWVSKfTpt80NzcL+8Vq0bSfmqZh7ty5JgFMMXToUPFAuERDQwM0TcP555+PSZMmWT7fbLPNAl0/KCorKwHA9fj5RSaTQXNzs0lQ//jjj2hqagJQeA4AcMstt2DMmDGW3/fu3dv0mn+OESK4QSSkI/wiMG3aNKxcuRInnnii9Dt77rknPvvsM4waNQrxeFz4nY0bN0LTNCSTSf29Rx99VPdm5pFMJjFu3Dice+65OPDAA7F8+XIMGTIEffv2xSuvvAJCiL55U+c2J1CqdvXq1Zg4caKr33hBTU0Ndt55ZyxcuBBXXHFF4OulUimT411Q9OjRA8lkEgsXLtTfS6fTmDNnjrI2KJ588kkcf/zxAIBcLodZs2bpAnnYsGHo27cvvvnmG5x66qnK244QAYiEdIRfCEaPHo1Zs2bZfufSSy/FjjvuiL333hsnnXQSevbsiR9++AFz5szBLrvsgiOPPBK77747AOC4447DySefjAULFuD666830aeffvopzjrrLBxxxBEYPHgwWltbcfXVV2PgwIF6bPahhx6Ku+66C6eddhomTZqEt99+2xJSJMOQIUNw6qmn4phjjsE555yDMWPGIJPJ4Msvv8Ts2bMd79MN/u///g+77747jjjiCEyZMgWNjY1YunQpXnnlFRx33HG2YVQ8ttpqK2SzWdx0000YO3Ys6urqAmn7sVgMkydPxi233IItttgCm222GW655RbTgUcFUqkUrrjiCrS3t2PzzTfHrbfeiiVLlujjq2kaZsyYgaOOOgobNmzA/vvvj5qaGnz33Xd47rnncNVVV+k28AgR/CIS0hEidGKLLbbAvHnzcMEFF+CUU07B+vXr0dTUhF133RXbbrstAGDEiBG49957cckll+CAAw7AyJEjMXPmTFPca69evdCrVy9cffXVWLZsGerr67HLLrvggQce0DX0ffbZB9dddx1uvvlm3Hvvvdhvv/1w2223mRy67PC3v/0NQ4cOxT//+U9cdtllqK2txdChQ5XF344dOxZz587FxRdfjOOOOw7pdBp9+/bFHnvsgS222MLTtSZOnIhTTjkFV199NVauXIldd93VFAvuBzfffDNOOukknH766ejSpQvOOeccDB06VMkBhSKZTOKhhx7Cqaeeivnz52PzzTfH448/rs8FADjssMPQ0NCAK6+8Ug+PGzhwIPbZZ5/IBh1BCTRCCCl1JyJEiBAhQoQIVkTe3REiRIgQIUKZIhLSESJEiBAhQpkiEtIRIkSIECFCmSIS0hEiRIgQIUKZIhLSESJEiBAhQpkiEtIRIkSIECFCmSIS0hEiRIgQIUKZIhLSESJEiBAhQpkiEtIRIkSIECFCmSIS0hEiRIgQIUKZIhLSESJEiBAhQpkiEtIRIkSIECFCmSIS0hEiRIgQIUKZ4v8DGqYRDgUsPnEAAAAASUVORK5CYII=\n" | |
| }, | |
| "metadata": {} | |
| } | |
| ], | |
| "source": [ | |
| "# Plot the results\n", | |
| "plt.figure(figsize=(5,3), dpi=110)\n", | |
| "plt.plot(times, positions, \"o-\")\n", | |
| "plt.xlabel(\"Measurement number\")\n", | |
| "plt.ylabel(\"Room index\")\n", | |
| "plt.title(f\"Rat's Position - measured outcomes, a={a}\")\n", | |
| "plt.savefig(f\"imgs/rat_position_a_{a}_trj_samples_{num_steps}.png\", dpi=130, bbox_inches='tight')\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 56, | |
| "id": "b9a4a831-a213-4425-9e0f-b164431decd2", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/", | |
| "height": 363 | |
| }, | |
| "id": "b9a4a831-a213-4425-9e0f-b164431decd2", | |
| "outputId": "7aeb437a-d22a-47a9-e1f1-b477c861c775" | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "display_data", | |
| "data": { | |
| "text/plain": [ | |
| "<Figure size 440x330 with 1 Axes>" | |
| ], | |
| "image/png": "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\n" | |
| }, | |
| "metadata": {} | |
| } | |
| ], | |
| "source": [ | |
| "plt.figure(figsize=(4,3), dpi=110)\n", | |
| "plt.hist(positions)\n", | |
| "plt.xlabel(\"Room number\")\n", | |
| "plt.title(f\"Rat's Position with a={a}, N={num_steps}\")\n", | |
| "#plt.title(f\"Rat's Position with a={a} (histogram)\")\n", | |
| "plt.savefig(f\"imgs/rat_position_a_{a}_hist_samples_{num_steps}.png\", dpi=130, bbox_inches='tight')\n", | |
| "plt.show()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 42, | |
| "id": "4d6e4d70-3b03-43c5-8544-5e9a82460bf8", | |
| "metadata": { | |
| "id": "4d6e4d70-3b03-43c5-8544-5e9a82460bf8" | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 42, | |
| "id": "db7dd5c5-9c2b-4cc9-9039-f58d59f6135a", | |
| "metadata": { | |
| "id": "db7dd5c5-9c2b-4cc9-9039-f58d59f6135a" | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 43, | |
| "id": "cbb06b10-c69b-4cdf-87b4-22704572a4a1", | |
| "metadata": { | |
| "colab": { | |
| "base_uri": "https://localhost:8080/" | |
| }, | |
| "id": "cbb06b10-c69b-4cdf-87b4-22704572a4a1", | |
| "outputId": "27ab277b-b875-45dc-cd65-942ce38c5464" | |
| }, | |
| "outputs": [ | |
| { | |
| "output_type": "stream", | |
| "name": "stdout", | |
| "text": [ | |
| "Variable Type Data/Info\n", | |
| "--------------------------------------------\n", | |
| "H ndarray 5x5: 25 elems, type `complex128`, 400 bytes\n", | |
| "H1 ndarray 5x5: 25 elems, type `complex128`, 400 bytes\n", | |
| "H2 ndarray 5x5: 25 elems, type `complex128`, 400 bytes\n", | |
| "H3 ndarray 5x5: 25 elems, type `complex128`, 400 bytes\n", | |
| "H4 ndarray 5x5: 25 elems, type `complex128`, 400 bytes\n", | |
| "U ndarray 5x5: 25 elems, type `complex128`, 400 bytes\n", | |
| "a int -20\n", | |
| "delta_t float 0.1\n", | |
| "dim int 5\n", | |
| "expm function <function expm at 0x7c4b2f7c3b00>\n", | |
| "measure function <function measure at 0x7c4b18a88860>\n", | |
| "measurement_interval int 50\n", | |
| "np module <module 'numpy' from '/us<...>kages/numpy/__init__.py'>\n", | |
| "num_steps int 5000\n", | |
| "pd module <module 'pandas' from '/u<...>ages/pandas/__init__.py'>\n", | |
| "plt module <module 'matplotlib.pyplo<...>es/matplotlib/pyplot.py'>\n", | |
| "position int 4\n", | |
| "positions list n=100\n", | |
| "psi ndarray 5: 5 elems, type `complex128`, 80 bytes\n", | |
| "psi_0 ndarray 5: 5 elems, type `complex128`, 80 bytes\n", | |
| "simulation function <function simulation at 0x7c4b18cebce0>\n", | |
| "step int 4999\n", | |
| "t float 500.0000000000452\n", | |
| "times list n=100\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "whos" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 43, | |
| "id": "410e1972-60ac-4bd9-bf8e-da3fdfcd483e", | |
| "metadata": { | |
| "id": "410e1972-60ac-4bd9-bf8e-da3fdfcd483e" | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "e422f6ed-bb0a-479d-b512-c456f775ba55", | |
| "metadata": { | |
| "id": "e422f6ed-bb0a-479d-b512-c456f775ba55" | |
| }, | |
| "source": [ | |
| "## Result 1.\n", | |
| "I observed that:\n", | |
| " - ratio `num_steps` to `measurement_interval` is quite important. Th emore we observe, the less quick the rat is (by performing the measurements we slow her down)\n", | |
| " - if rat starts at Room1 and H is\n", | |
| "$$\n", | |
| "\\mathbf{H} = \\begin{pmatrix}\n", | |
| " 3 & a & 0 & 0 & 0 \\\\\n", | |
| " a & 2 & a & a & 0 \\\\\n", | |
| " 0 & a & 1 & 0 & a \\\\\n", | |
| " 0 & a & 0 & 1 & a \\\\\n", | |
| " 0 & 0 & a & a & 0\n", | |
| "\\end{pmatrix} ,\n", | |
| "$$\n", | |
| "rat prefers to stay around Room1, since $a=0.3$ is too small to make it worth to go somewhere.\n", | |
| "When $a=2$ is set, the rat can be found in Room5 much more frequently (with other variables fixed at same values).\n", | |
| "\n", | |
| "\n" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "id": "552a6a0a-27d1-41f1-aca7-734eaa7f583d", | |
| "metadata": { | |
| "id": "552a6a0a-27d1-41f1-aca7-734eaa7f583d" | |
| }, | |
| "source": [ | |
| "## Result 2.\n", | |
| "there was found a recommendation that off-diagonal elements, representing coupling, should be included in the Hamiltonian with minus sign, i.e. $a=-2$ should be chosen.\n", | |
| "\n", | |
| "The resulting histogram shows a parabolic shape: rat is found in Room1 in most cases, and Room5 is second the most popular." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 43, | |
| "id": "cbe3172c-2242-4365-a533-3bf457839bed", | |
| "metadata": { | |
| "id": "cbe3172c-2242-4365-a533-3bf457839bed" | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 44, | |
| "id": "f2db39b4-fc52-4d25-99df-158c08c14b28", | |
| "metadata": { | |
| "id": "f2db39b4-fc52-4d25-99df-158c08c14b28" | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# function for stochastic testing\n", | |
| "\n", | |
| "def simulation(hamiltonian, num_steps:int=50, measurement_interval:int=10, delta_t=0.1, savefig=True, savedf=True):\n", | |
| " \"\"\"\n", | |
| " This function basically runs simulation with given parameters.\n", | |
| " Output:\n", | |
| " - positions [where rat was observed by the observer]\n", | |
| " - times [at which the observer made his observations]\n", | |
| " - df [dataframe containing all inputs, all outputs AND all psi-s from current run]\n", | |
| " \"\"\"\n", | |
| " #todo\n", | |
| " positions = [] # Store measurement results\n", | |
| " times = [] # Store corresponding times\n", | |
| " df = pd.DataFrame()\n", | |
| "\n", | |
| " # Run the simulation\n", | |
| " t = 0 # Initialize total elapsed time\n", | |
| " for step in range(num_steps):\n", | |
| " t = t + delta_t # Update total elapsed time\n", | |
| " U = expm(-1j * H * t) # Compute total unitary evolution\n", | |
| " psi = U @ psi_0 # Apply unitary evolution\n", | |
| " if step % measurement_interval == 0: # Perform measurement at intervals\n", | |
| " position, psi = measure(psi)\n", | |
| " positions.append(position)\n", | |
| " times.append(t) # only time epoque when measurement was performed\n", | |
| "\n", | |
| " # Plot the results\n", | |
| " plt.figure(figsize=(5,3), dpi=110)\n", | |
| " plt.subplot(121)\n", | |
| " plt.plot(times, positions, \"o-\")\n", | |
| " plt.xlabel(\"Measurement number\")\n", | |
| " plt.ylabel(\"Room index\")\n", | |
| " plt.title(f\"Rat's Position - measured outcomes, a={a}\")\n", | |
| " plt.savefig(f\"imgs/rat_position_a_{a}_trj_samples_{num_steps}.png\", dpi=130, bbox_inches='tight')\n", | |
| " plt.show()\n", | |
| " plt.subplot(122)\n", | |
| " plt.hist(positions)\n", | |
| " plt.xlabel(\"Room index\")\n", | |
| " plt.title(f\"Rat's Position with a={a} - histogram\")\n", | |
| " plt.savefig(f\"imgs/rat_position_a_{a}_hist_samples_{num_steps}.png\", dpi=130, bbox_inches='tight')\n", | |
| " plt.show()\n", | |
| "\n", | |
| " return positions, times, df" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 44, | |
| "id": "6154995e-299f-4406-bfc5-58a508461747", | |
| "metadata": { | |
| "id": "6154995e-299f-4406-bfc5-58a508461747" | |
| }, | |
| "outputs": [], | |
| "source": [] | |
| } | |
| ], | |
| "metadata": { | |
| "kernelspec": { | |
| "display_name": "Python 3 (ipykernel)", | |
| "language": "python", | |
| "name": "python3" | |
| }, | |
| "language_info": { | |
| "codemirror_mode": { | |
| "name": "ipython", | |
| "version": 3 | |
| }, | |
| "file_extension": ".py", | |
| "mimetype": "text/x-python", | |
| "name": "python", | |
| "nbconvert_exporter": "python", | |
| "pygments_lexer": "ipython3", | |
| "version": "3.12.1" | |
| }, | |
| "colab": { | |
| "provenance": [], | |
| "include_colab_link": true | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 5 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment