{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Optimization of Dissipative Qubit Reset" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.374878Z", "start_time": "2019-02-12T04:47:25.200533Z" }, "attributes": { "classes": [], "id": "", "n": "1" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:54.000597Z", "iopub.status.busy": "2021-01-13T19:13:53.999148Z", "iopub.status.idle": "2021-01-13T19:13:55.246682Z", "shell.execute_reply": "2021-01-13T19:13:55.247246Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.7.6\n", "IPython version : 7.19.0\n", "\n", "scipy : 1.3.1\n", "matplotlib: 3.3.3\n", "qutip : 4.5.0\n", "krotov : 1.2.1\n", "numpy : 1.17.2\n", "\n" ] } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "%load_ext watermark\n", "import qutip\n", "import numpy as np\n", "import scipy\n", "import matplotlib\n", "import matplotlib.pylab as plt\n", "import krotov\n", "\n", "%watermark -v --iversions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$\\newcommand{tr}[0]{\\operatorname{tr}}\n", "\\newcommand{diag}[0]{\\operatorname{diag}}\n", "\\newcommand{abs}[0]{\\operatorname{abs}}\n", "\\newcommand{pop}[0]{\\operatorname{pop}}\n", "\\newcommand{aux}[0]{\\text{aux}}\n", "\\newcommand{int}[0]{\\text{int}}\n", "\\newcommand{opt}[0]{\\text{opt}}\n", "\\newcommand{tgt}[0]{\\text{tgt}}\n", "\\newcommand{init}[0]{\\text{init}}\n", "\\newcommand{lab}[0]{\\text{lab}}\n", "\\newcommand{rwa}[0]{\\text{rwa}}\n", "\\newcommand{bra}[1]{\\langle#1\\vert}\n", "\\newcommand{ket}[1]{\\vert#1\\rangle}\n", "\\newcommand{Bra}[1]{\\left\\langle#1\\right\\vert}\n", "\\newcommand{Ket}[1]{\\left\\vert#1\\right\\rangle}\n", "\\newcommand{Braket}[2]{\\left\\langle #1\\vphantom{#2} \\mid\n", "#2\\vphantom{#1}\\right\\rangle}\n", "\\newcommand{op}[1]{\\hat{#1}}\n", "\\newcommand{Op}[1]{\\hat{#1}}\n", "\\newcommand{dd}[0]{\\,\\text{d}}\n", "\\newcommand{Liouville}[0]{\\mathcal{L}}\n", "\\newcommand{DynMap}[0]{\\mathcal{E}}\n", "\\newcommand{identity}[0]{\\mathbf{1}}\n", "\\newcommand{Norm}[1]{\\lVert#1\\rVert}\n", "\\newcommand{Abs}[1]{\\left\\vert#1\\right\\vert}\n", "\\newcommand{avg}[1]{\\langle#1\\rangle}\n", "\\newcommand{Avg}[1]{\\left\\langle#1\\right\\rangle}\n", "\\newcommand{AbsSq}[1]{\\left\\vert#1\\right\\vert^2}\n", "\\newcommand{Re}[0]{\\operatorname{Re}}\n", "\\newcommand{Im}[0]{\\operatorname{Im}}$\n", "\n", "This example illustrates an optimization in an *open* quantum system,\n", "where the dynamics is governed by the Liouville-von Neumann equation. Hence,\n", "states are represented by density matrices $\\op{\\rho}(t)$ and the time-evolution\n", "operator is given by a general dynamical map $\\DynMap$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define parameters\n", "\n", "The system consists of a qubit with Hamiltonian\n", "$\\op{H}_{q}(t) = - \\frac{\\omega_{q}}{2} \\op{\\sigma}_{z} - \\frac{\\epsilon(t)}{2} \\op{\\sigma}_{z}$,\n", "where $\\omega_{q}$ is an energy level splitting that can be dynamically adjusted\n", "by the control $\\epsilon(t)$. This qubit couples strongly to another two-level\n", "system (TLS) with Hamiltonian $\\op{H}_{t} = - \\frac{\\omega_{t}}{2} \\op{\\sigma}_{z}$ with\n", "static energy level splitting $\\omega_{t}$. The coupling strength between both\n", "systems is given by $J$ with the interaction Hamiltonian given by $\\op{H}_{\\int}\n", "= J \\op{\\sigma}_{x} \\otimes \\op{\\sigma}_{x}$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Hamiltonian for the system of qubit and TLS is\n", "\n", "$$\n", " \\op{H}(t)\n", " = \\op{H}_{q}(t) \\otimes \\identity_{t}\n", " + \\identity_{q} \\otimes \\op{H}_{t} + \\op{H}_{\\int}.\n", "$$\n", "\n", "In addition, the TLS is embedded in a heat bath with inverse temperature\n", "$\\beta$. The TLS couples to the bath with rate $\\kappa$. In order to simulate\n", "the dissipation arising from this coupling, we consider the two Lindblad\n", "operators\n", "\n", "$$\n", "\\begin{split}\n", "\\op{L}_{1} &= \\sqrt{\\kappa (N_{th}+1)} \\identity_{q} \\otimes \\ket{0}\\bra{1} \\\\\n", "\\op{L}_{2} &= \\sqrt{\\kappa N_{th}} \\identity_{q} \\otimes \\ket{1}\\bra{0}\n", "\\end{split}\n", "$$\n", "\n", "with $N_{th} = 1/(e^{\\beta \\omega_{t}} - 1)$." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.385786Z", "start_time": "2019-02-12T04:47:26.379865Z" }, "attributes": { "classes": [], "id": "", "n": "2" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.253398Z", "iopub.status.busy": "2021-01-13T19:13:55.252178Z", "iopub.status.idle": "2021-01-13T19:13:55.255443Z", "shell.execute_reply": "2021-01-13T19:13:55.256084Z" } }, "outputs": [], "source": [ "omega_q = 1.0 # qubit level splitting\n", "omega_T = 3.0 # TLS level splitting\n", "J = 0.1 # qubit-TLS coupling\n", "kappa = 0.04 # TLS decay rate\n", "beta = 1.0 # inverse bath temperature\n", "T = 25.0 # final time\n", "nt = 2500 # number of time steps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define the Liouvillian\n", "\n", "The dynamics of the qubit-TLS system state $\\op{\\rho}(t)$ is governed by the\n", "Liouville-von Neumann equation\n", "\n", "$$\n", "\\begin{split}\n", " \\frac{\\partial}{\\partial t} \\op{\\rho}(t)\n", " &= \\Liouville(t) \\op{\\rho}(t) \\\\\n", " &= - i \\left[\\op{H}(t), \\op{\\rho}(t)\\right]\n", " + \\sum_{k=1,2} \\left(\n", " \\op{L}_{k} \\op{\\rho}(t) \\op{L}_{k}^\\dagger\n", " - \\frac{1}{2}\n", " \\op{L}_{k}^\\dagger\n", " \\op{L}_{k} \\op{\\rho}(t)\n", " - \\frac{1}{2} \\op{\\rho}(t)\n", " \\op{L}_{k}^\\dagger\n", " \\op{L}_{k}\n", " \\right)\\,.\n", "\\end{split}\n", "$$" ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "execution": { "iopub.execute_input": "2021-01-13T19:13:55.272494Z", "iopub.status.busy": "2021-01-13T19:13:55.271335Z", "iopub.status.idle": "2021-01-13T19:13:55.273976Z", "shell.execute_reply": "2021-01-13T19:13:55.274547Z" } }, "outputs": [], "source": [ "def liouvillian(omega_q, omega_T, J, kappa, beta):\n", " \"\"\"Liouvillian for the coupled system of qubit and TLS\"\"\"\n", "\n", " # drift qubit Hamiltonian\n", " H0_q = 0.5 * omega_q * np.diag([-1, 1])\n", " # drive qubit Hamiltonian\n", " H1_q = 0.5 * np.diag([-1, 1])\n", "\n", " # drift TLS Hamiltonian\n", " H0_T = 0.5 * omega_T * np.diag([-1, 1])\n", "\n", " # Lift Hamiltonians to joint system operators\n", " H0 = np.kron(H0_q, np.identity(2)) + np.kron(np.identity(2), H0_T)\n", " H1 = np.kron(H1_q, np.identity(2))\n", "\n", " # qubit-TLS interaction\n", " H_int = J * np.fliplr(np.diag([0, 1, 1, 0]))\n", "\n", " # convert Hamiltonians to QuTiP objects\n", " H0 = qutip.Qobj(H0 + H_int)\n", " H1 = qutip.Qobj(H1)\n", "\n", " # Define Lindblad operators\n", " N = 1.0 / (np.exp(beta * omega_T) - 1.0)\n", " # Cooling on TLS\n", " L1 = np.sqrt(kappa * (N + 1)) * np.kron(\n", " np.identity(2), np.array([[0, 1], [0, 0]])\n", " )\n", " # Heating on TLS\n", " L2 = np.sqrt(kappa * N) * np.kron(\n", " np.identity(2), np.array([[0, 0], [1, 0]])\n", " )\n", "\n", " # convert Lindblad operators to QuTiP objects\n", " L1 = qutip.Qobj(L1)\n", " L2 = qutip.Qobj(L2)\n", "\n", " # generate the Liouvillian\n", " L0 = qutip.liouvillian(H=H0, c_ops=[L1, L2])\n", " L1 = qutip.liouvillian(H=H1)\n", "\n", " # Shift the qubit and TLS into resonance by default\n", " eps0 = lambda t, args: omega_T - omega_q\n", "\n", " return [L0, [L1, eps0]]\n", "\n", "\n", "L = liouvillian(omega_q=omega_q, omega_T=omega_T, J=J, kappa=kappa, beta=beta)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Define the optimization target" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The initial state of qubit and TLS are assumed to be in thermal equilibrium with\n", "the heat bath (although only the TLS is directly interacting with the bath).\n", "Both states are given by\n", "\n", "$$\n", " \\op{\\rho}_{\\alpha}^{th} =\n", "\\frac{e^{x_{\\alpha}} \\ket{0}\\bra{0} + e^{-x_{\\alpha}} \\ket{1}\\bra{1}}{2\n", "\\cosh(x_{\\alpha})},\n", " \\qquad\n", " x_{\\alpha} = \\frac{\\omega_{\\alpha} \\beta}{2},\n", "$$\n", "\n", "with $\\alpha = q,t$. The initial state of the bipartite system\n", "of qubit and TLS is given by the thermal state\n", "$\\op{\\rho}_{th} = \\op{\\rho}_{q}^{th} \\otimes \\op{\\rho}_{t}^{th}$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.466604Z", "start_time": "2019-02-12T04:47:26.457181Z" }, "attributes": { "classes": [], "id": "", "n": "6" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.282565Z", "iopub.status.busy": "2021-01-13T19:13:55.281437Z", "iopub.status.idle": "2021-01-13T19:13:55.284371Z", "shell.execute_reply": "2021-01-13T19:13:55.284997Z" } }, "outputs": [], "source": [ "x_q = omega_q * beta / 2.0\n", "rho_q_th = np.diag([np.exp(x_q), np.exp(-x_q)]) / (2 * np.cosh(x_q))\n", "\n", "x_T = omega_T * beta / 2.0\n", "rho_T_th = np.diag([np.exp(x_T), np.exp(-x_T)]) / (2 * np.cosh(x_T))\n", "\n", "rho_th = qutip.Qobj(np.kron(rho_q_th, rho_T_th))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Since we are ultimately only interested in the state of the qubit, we define\n", "`trace_TLS`. It returns the reduced state of the qubit\n", "$\\op{\\rho}_{q} = \\tr_{t}\\{\\op{\\rho}\\}$ when passed\n", "the state $\\op{\\rho}$ of the bipartite system." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.482459Z", "start_time": "2019-02-12T04:47:26.472974Z" }, "attributes": { "classes": [], "id": "", "n": "7" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.292755Z", "iopub.status.busy": "2021-01-13T19:13:55.291635Z", "iopub.status.idle": "2021-01-13T19:13:55.294325Z", "shell.execute_reply": "2021-01-13T19:13:55.294902Z" } }, "outputs": [], "source": [ "def trace_TLS(rho):\n", " \"\"\"Partial trace over the TLS degrees of freedom\"\"\"\n", " rho_q = np.zeros(shape=(2, 2), dtype=np.complex_)\n", " rho_q[0, 0] = rho[0, 0] + rho[1, 1]\n", " rho_q[0, 1] = rho[0, 2] + rho[1, 3]\n", " rho_q[1, 0] = rho[2, 0] + rho[3, 1]\n", " rho_q[1, 1] = rho[2, 2] + rho[3, 3]\n", " return qutip.Qobj(rho_q)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The target state is (temporarily) the ground state of the bipartite system,\n", "i.e., $\\op{\\rho}_{\\tgt} = \\ket{00}\\bra{00}$. Note that in the end we will only\n", "optimize the reduced state of the qubit." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.496869Z", "start_time": "2019-02-12T04:47:26.485940Z" }, "attributes": { "classes": [], "id": "", "n": "8" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.301955Z", "iopub.status.busy": "2021-01-13T19:13:55.300835Z", "iopub.status.idle": "2021-01-13T19:13:55.303713Z", "shell.execute_reply": "2021-01-13T19:13:55.304439Z" } }, "outputs": [], "source": [ "rho_q_trg = np.diag([1, 0])\n", "rho_T_trg = np.diag([1, 0])\n", "rho_trg = np.kron(rho_q_trg, rho_T_trg)\n", "rho_trg = qutip.Qobj(rho_trg)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Next, the list of `objectives` is defined, which contains the initial and target\n", "state and the Liouvillian $\\Liouville(t)$ that determines the system dynamics." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.506011Z", "start_time": "2019-02-12T04:47:26.501241Z" }, "attributes": { "classes": [], "id": "", "n": "9" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.313240Z", "iopub.status.busy": "2021-01-13T19:13:55.312059Z", "iopub.status.idle": "2021-01-13T19:13:55.316524Z", "shell.execute_reply": "2021-01-13T19:13:55.317069Z" } }, "outputs": [ { "data": { "text/plain": [ "[Objective[Ļā‚€[4,4] to Ļā‚[4,4] via [š“›ā‚€[[4,4],[4,4]], [š“›ā‚[[4,4],[4,4]], uā‚(t)]]]]" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "objectives = [krotov.Objective(initial_state=rho_th, target=rho_trg, H=L)]\n", "objectives" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the following, we define the shape function $S(t)$, which we use in order to\n", "ensure a smooth switch on and off in the beginning and end. Note that at times\n", "$t$ where $S(t)$ vanishes, the updates of the field is suppressed." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.514731Z", "start_time": "2019-02-12T04:47:26.508936Z" }, "attributes": { "classes": [], "id": "", "n": "10" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.323325Z", "iopub.status.busy": "2021-01-13T19:13:55.322016Z", "iopub.status.idle": "2021-01-13T19:13:55.325074Z", "shell.execute_reply": "2021-01-13T19:13:55.326617Z" } }, "outputs": [], "source": [ "def S(t):\n", " \"\"\"Shape function for the field update\"\"\"\n", " return krotov.shapes.flattop(\n", " t, t_start=0, t_stop=T, t_rise=0.05 * T, t_fall=0.05 * T, func='sinsq'\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We re-use this function to also shape the guess control $\\epsilon_{0}(t)$ to be\n", "zero at $t=0$ and $t=T$. This is on top of the originally defined constant\n", "value shifting the qubit and TLS into resonance." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.524627Z", "start_time": "2019-02-12T04:47:26.517577Z" }, "attributes": { "classes": [], "id": "", "n": "11" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.333805Z", "iopub.status.busy": "2021-01-13T19:13:55.332125Z", "iopub.status.idle": "2021-01-13T19:13:55.335953Z", "shell.execute_reply": "2021-01-13T19:13:55.337013Z" } }, "outputs": [], "source": [ "def shape_field(eps0):\n", " \"\"\"Applies the shape function S(t) to the guess field\"\"\"\n", " eps0_shaped = lambda t, args: eps0(t, args) * S(t)\n", " return eps0_shaped\n", "\n", "\n", "L[1][1] = shape_field(L[1][1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "At last, before heading to the actual optimization below, we assign the shape\n", "function $S(t)$ to the OCT parameters of the control and choose `lambda_a`, a\n", "numerical parameter that controls the field update magnitude in each iteration." ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "execution": { "iopub.execute_input": "2021-01-13T19:13:55.347116Z", "iopub.status.busy": "2021-01-13T19:13:55.345675Z", "iopub.status.idle": "2021-01-13T19:13:55.349148Z", "shell.execute_reply": "2021-01-13T19:13:55.350269Z" } }, "outputs": [], "source": [ "pulse_options = {L[1][1]: dict(lambda_a=0.1, update_shape=S)}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulate the dynamics of the guess field\n" ] }, { "cell_type": "code", "execution_count": 11, "metadata": { "execution": { "iopub.execute_input": "2021-01-13T19:13:55.356408Z", "iopub.status.busy": "2021-01-13T19:13:55.355039Z", "iopub.status.idle": "2021-01-13T19:13:55.358138Z", "shell.execute_reply": "2021-01-13T19:13:55.358743Z" } }, "outputs": [], "source": [ "tlist = np.linspace(0, T, nt)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.545108Z", "start_time": "2019-02-12T04:47:26.537953Z" }, "attributes": { "classes": [], "id": "", "n": "13" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.365115Z", "iopub.status.busy": "2021-01-13T19:13:55.364116Z", "iopub.status.idle": "2021-01-13T19:13:55.366998Z", "shell.execute_reply": "2021-01-13T19:13:55.367634Z" } }, "outputs": [], "source": [ "def plot_pulse(pulse, tlist):\n", " fig, ax = plt.subplots()\n", " if callable(pulse):\n", " pulse = np.array([pulse(t, args=None) for t in tlist])\n", " ax.plot(tlist, pulse)\n", " ax.set_xlabel('time')\n", " ax.set_ylabel('pulse amplitude')\n", " plt.show(fig)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following plot shows the guess field $\\epsilon_{0}(t)$ as a constant that\n", "puts qubit and TLS into resonance, but with a smooth switch-on and switch-off." ] }, { "cell_type": "code", "execution_count": 13, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.773279Z", "start_time": "2019-02-12T04:47:26.547926Z" }, "attributes": { "classes": [], "id": "", "n": "14" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.423219Z", "iopub.status.busy": "2021-01-13T19:13:55.386360Z", "iopub.status.idle": "2021-01-13T19:13:55.564683Z", "shell.execute_reply": "2021-01-13T19:13:55.565305Z" } }, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEGCAYAAAB/+QKOAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/Il7ecAAAACXBIWXMAAAsTAAALEwEAmpwYAAAixklEQVR4nO3de5Skd13n8fenu/p+mfuEYa4BohKRXGgDq1kNLokJBwmuwibegguOBxJFXVwD6yFsXM5hxUUPisKgc5J4MNGA0VGDIUcCURGYHhJyg5BhcpshyfRMz0xfZvpS3d/9o57qKTrVMzU9/Vy6+/M6p07X83vqqedbU8nzrd/l+f0UEZiZmc3WlHcAZmZWTE4QZmZWlxOEmZnV5QRhZmZ1OUGYmVldpbwDWEhr166Nbdu25R2GmdmisWfPnkMRsa7eviWVILZt20Z/f3/eYZiZLRqSnp5rn5uYzMysLicIMzOrywnCzMzqcoIwM7O6nCDMzKyu1BKEpM2S7pP0mKRHJb2nzmsk6WOS9kp6SNLFNfuuk/RE8rgurTjNzKy+NIe5loH/ERFfl9QD7JF0b0Q8VvOaq4DzksdrgT8DXitpNXAT0AdEcuyuiDiSYrxmZlYjtQQREc8BzyXPhyV9E9gI1CaIq4HbojLn+FckrZS0AbgMuDciBgEk3QtcCdyeVrzzdd/jB3ngmaNQlGnTpbwjAKAYUVQU5J8EFeRfpTj/HsVQlH+Pi7es4kdesTbvML5HJjfKSdoGXAR8ddaujcCzNdv7k7K5yuu993ZgO8CWLVsWJuAGfWdghP9+y24iivEfWVFylJmduVKTuO+9l7F5dWfeocxIPUFI6gY+C/xGRAwt9PtHxA5gB0BfX1+ml8jP7NlPs8SX3/8TrO9pz/LU1qCiLIhVkDAoSBjF+V7yDiDx3NExfuwj97HrG9/l+te/Iu9wZqSaICS1UEkOn46Iv63zkgPA5prtTUnZASrNTLXlX0wnyvn72pODXLh5pZNDgakIVTuKUcMsFv+D1NqyppPvO6ebrz45yPWvzzuak9IcxSTgL4BvRsRH53jZLuCXktFMrwOOJX0X9wBXSFolaRVwRVJWGBPlaR4+cIyLt67KOxQzWwL6tq3mgWeOFKZ2BenWIH4U+EXgYUkPJmXvB7YARMQngLuBNwJ7gePALyf7BiX9HrA7Oe7maod1UTwzOMpEeZrzN/TmHYqZLQHft76b4bEyA8PjrO8tRqtEmqOY/o3T1COT0UvXz7FvJ7AzhdAWxL6BUQDOXduVcyRmthS8Yn0PAHsPjhQmQfhO6nl68lAlQWxzgjCzBfCK9d0A7B0YyTmSk5wg5unJQ6Os7W5lRUdL3qGY2RJwTm8bHS3NPH34eN6hzHCCmKf9R06waVVxxiub2eImiQ0r2nnu2Im8Q5nhBDFPzw+N8ZKCtBOa2dKwYWU73z06lncYM5wg5umFY2O8ZIUThJktnA0rOlyDWOxGx8sMj5c5xzUIM1tAG1a0c3B4nMmp6bxDAZwg5uWFoUoV8JzetpwjMbOlZMOKDiLg4PB43qEAThDz8nySINwHYWYLacPKyjXluaPFaGZygpiHmRqE+yDMbAGt6660Shwamcg5kgoniHl4/lil+uc+CDNbSGu6WwE4POompkVrYHicztZmutsyWU7DzJaJ1V2VBDHoGsTideT4xMwXaWa2UNpKzfS0lzg86gSxaA2OOkGYWTrWdrdxaMRNTIvWkeMTrOp0gjCzhbe6q5XDbmJavAZHJ1jjGoSZpWBNVyuDbmJavI6MTrDKCcLMUrCmu23pj2KStFPSQUmPzLH/tyU9mDwekTQlaXWy7ylJDyf7+tOKcT7GJqcYnZhyH4SZpWJtd6UGMT2d/9KjadYgbgGunGtnRHwkIi6MiAuB9wFfmrWs6OuT/X0pxnjGjh6fBHAfhJmlYnVXK9MBR09M5h1KegkiIu4HGl1H+lrg9rRiWUjVqt/qLi8UZGYLr/rj8+jx/Pshcu+DkNRJpabx2ZriAD4vaY+k7ac5frukfkn9AwMDaYYKwJFR1yDMLD3VVSqXdA3iDPwU8O+zmpcujYiLgauA6yX92FwHR8SOiOiLiL5169alHSuDSVZ3H4SZpWFFZyVBHHOCAOAaZjUvRcSB5O9B4C7gkhziqutIMvzMo5jMLA3VGsSx48s8QUhaAfw48Pc1ZV2SeqrPgSuAuiOh8lAdn7yyw30QZrbwqteWItQgUpttTtLtwGXAWkn7gZuAFoCI+ETysp8GPh8RozWHngPcJaka319FxD+nFeeZGhqbpKe9RKm5CJUvM1tqZvogClCDSC1BRMS1DbzmFirDYWvL9gEXpBPV2Rs6Uaa33bUHM0tHqbmJ7rZSIWoQ/hl8hobGJul185KZpWhFRwtHT3iY66IzdGKS3navA2Fm6VnR0cKQaxCLz9BY2TUIM0vVys6WQvRBOEGcoaETlU5qM7O0rOhocR/EYjQ0NulOajNL1crOFt9JvdhMTwcj425iMrN09SY1iIh8Z3R1gjgDw+NlInAntZmlamVHKxPlacYmp3ONwwniDFRHFbgGYWZp6u2o/AgdGsu3mckJ4gxUvyz3QZhZmrrbKglieKycaxxOEGdg6ETly6pmdzOzNFR/hA67BrF4uAZhZlmoDqV3DWIRqfZBrHAfhJmlqDtJECPjThCLRvXGFdcgzCxNPW5iWnyGkupet4e5mlmK3Em9CA2dmKSnrURzk/IOxcyWsGqCGHKCWDw81beZZaG5SXS3lRhZqglC0k5JByXVXS5U0mWSjkl6MHl8oGbflZIel7RX0o1pxXimhk6UPVGfmWWiu620pPsgbgGuPM1r/jUiLkweNwNIagY+DlwFnA9cK+n8FONs2LAn6jOzjPS0l5ZuH0RE3A8MzuPQS4C9EbEvIiaAO4CrFzS4eRqdKNPV1px3GGa2DPS0l5b9MNf/JOkbkj4n6QeTso3AszWv2Z+U1SVpu6R+Sf0DAwNpxsrIWJlu1yDMLAPd7S1LuonpdL4ObI2IC4A/Bv5uPm8SETsioi8i+tatW7eQ8b3IyPgU3a5BmFkGlnQT0+lExFBEjCTP7wZaJK0FDgCba166KSnL3eh4eWb4mZlZmnrbSwwv1yYmSS+RpOT5JUksh4HdwHmSzpXUClwD7Morzqry1DQnJqfocoIwswwUYRRTalc7SbcDlwFrJe0HbgJaACLiE8DPAu+SVAZOANdEZfmksqQbgHuAZmBnRDyaVpyNGp2YAnANwswy0dPewtjkNJNT07Q05/NbPrWrXURce5r9fwL8yRz77gbuTiOu+RpNqnpOEGaWheo9VyNjZVZ1teYSQ96jmBaN6nAzNzGZWRaKMB+TE0SDRlyDMLMMVWd0zXPZUSeIBs00MXmqDTPLQG8B1oRwgmhQddKsrlYnCDNLX3cBVpVzgmiQm5jMLEvV/s7jEwVOEJK+T9K/VGdllfRqSb+bfmjF4iYmM8tStbWi6E1MnwLeB0wCRMRDVG5eW1ZOjmLyVBtmlr7qtWa04AmiMyK+Nqss3/u/czAyPkVLs2grOUGYWfpO1iCmcouhkQRxSNLLgQCQ9LPAc6lGVUCeh8nMstTUJDpbm3OtQTRyxbse2AH8gKQDwJPAL6QaVQGNjJd9k5yZZaqrrVTsBBER+4A3SOoCmiJiOP2wimfENQgzy1h3W76LBs15xZP0W3OUAxARH00ppkIaGXOCMLNsdbUVt4mpJ/n7/cAPc3LK7Z8CZndaL3mjE2VWdeYzYZaZLU9drSVGc+yknjNBRMT/BpB0P3BxtWlJ0geBf8okugIZGS+zeXVn3mGY2TLS3VbiuWNjuZ2/kVFM5wATNdsTSdmyMjJWptvTbJhZhrraSozmeCd1I1e824CvSbor2X4LcOvpDpK0E3gTcDAiXlVn/88DvwMIGAbeFRHfSPY9lZRNAeWI6GsgzlSNehSTmWVsMYxi+pCkzwH/OSn65Yh4oIH3voXKgkC3zbH/SeDHI+KIpKuoDKV9bc3+10fEoQbOk7rp6WB0YsrTbJhZprrbmos5iqlK0hbgEHBXbVlEPHOq4yLifknbTrH/yzWbXwE2nTbanFSreN2eZsPMMtTVVmJscpry1DSlHJYdbeQn8T+R3EUNdADnAo8DP7iAcbwD+FzNdgCflxTAJyNix1wHStoObAfYsmXLAoZ0UnUUgZuYzCxL1aH1oxNTrOgoYIKIiB+q3ZZ0MfDuhQpA0uupJIhLa4ovjYgDktYD90r6VkTcP0d8O6g0T9HX1xf1XnO2PNW3meWhs/XklN8rOloyP/8Zp6SI+Drf21cwb5JeDfw5cHVEHK45x4Hk70EqTVuXLMT55ssJwszykPeMro30QdTeUd0EXAx892xPnPRt/C3wixHx7ZrymSk9kudXADef7fnOxujMVN9OEGaWneqP0rxmdG3kitdT87xMpU/is6c7SNLtwGXAWkn7gZuAFoCI+ATwAWAN8KfJ9B3V4aznAHclZSXgryLinxv8PKlwDcLM8lD9UVrYGgTwWETcWVsg6a3AnXO8HoCIuPY0+98JvLNO+T7gggbiykx1PWonCDPL0skaRD4JopE+iPc1WLZkVYe5uonJzLJU2BpEcvPaG4GNkj5Ws6uXZbaiXDV79/hGOTPLUJE7qb8L9ANvBvbUlA8Dv5lmUEUzMlamuUm0lbIfh2xmy1dhO6mTeZG+IenTEbGsagyzjY6X6WptnlkLw8wsCx0tzTSpgDUISX8TEW8DHkjuaP4eEfHqVCMrkJHxKXras79JxcyWN0l0tea3qtypmpjek/x9UxaBFNnI+ORMW6CZWZbynNH1VE1MzyV/n84unGIaHZ/yEFczy0VXW3Nua0KcqolpmJOT9EFl3Yao/o2I3pRjK4zh8TK9HsFkZjnobisVspO6Z659y83oeJmXrmjPOwwzW4YK2cRUK5nB9VIqNYh/a3DBoCXjuFeTM7OcdLWVGBw9nsu5TzuwX9IHqCwxugZYC9wi6XfTDqxIRpJhrmZmWetqLWAfRI2fBy6IiDEASR8GHgT+T4pxFUZEZblR1yDMLA+VJqZ8+iAauTX4u0BtA3wbcCCdcIpnvDzN1HQ4QZhZLiqd1MWtQRwDHpV0L5U+iMuBr1XnZ4qIX08xvtyNeqpvM8tRV1uJifI0k1PTtGS8LnUjV727kkfVF9MJpZiqVbtO90GYWQ5qZ3Rd2dma6bkbWZP61iwCKSovFmRmeepOZnEYySFBNDKK6U2SHpA0KGlI0rCkoUbeXNJOSQclPTLHfkn6mKS9kh5KhtNW910n6YnkcV3jH2lheS0IM8vTyRpE9h3VjTRo/RFwHbAmInojoucM7qK+BbjyFPuvAs5LHtuBPwOQtJrKEqWvBS4BbpK0qsFzLiivR21meerKcVW5RhLEs8AjEfGiGV1PJyLuBwZP8ZKrgdui4ivASkkbgJ8E7o2IwYg4AtzLqRNNaqpZ201MZpaH7hxXlWvkqvc/gbslfQkYrxZGxEcX4PwbqSSgqv1J2VzlLyJpO5XaB1u2bFmAkL5X9UtxJ7WZ5aGrNb8E0UgN4kPAcSr3QvTUPAohInZERF9E9K1bt27B39+d1GaWp+4cm5gaueq9NCJeldL5DwCba7Y3JWUHgMtmlX8xpRhO6bg7qc0sR3muS91IDeJuSVekdP5dwC8lo5leBxxL1qG4B7hC0qqkc/qKpCxzI+NTtDY30er1qM0sBzOjmCayH8XUyM/idwHvlTQOTHIG60FIup1KTWCtpP1URia1UHmDTwB3A28E9lJpxvrlZN+gpN8DdidvdXNEnKqzOzWj42U6vZqcmeWkrdRES7OK2cR0NutCRMS1p9kfwPVz7NsJ7JzvuRfK6Hh5ppPIzCxrknJbE6LR9SBWUblXYWbSvmQI65I3OlF2B7WZ5aqrtcTIWAEThKR3Au+h0lH8IPA64D+An0g1soIYHZ+a6SQyM8tDXjO6NtLz+h7gh4GnI+L1wEXA0TSDKpIRryZnZjnrastn0aBGEsRYzWJBbRHxLeD70w2rONwHYWZ562orMZLDXEyNXPn2S1oJ/B1wr6QjwNNpBlUkx72anJnlrLutxHPHxjI/byOjmH46efpBSfcBK4B/TjWqAhkZL89Mt2tmlodCj2KqiogvpRVIEUVEpYnJNQgzy1GRO6mXrfHyNGWvR21mOetOahDzmFT7rDhBnMLx5Nb2Ls/kamY56morMR0wNjmd6XkbShCStkp6Q/K8Q1JhZnNNkxcLMrMiqF12NEuNLDn6K8BngE8mRZuojGha8jzVt5kVQVdOiwY1UoO4HvhRYAggIp4A1qcZVFG4BmFmRZDXsqONJIjxiJiobkgqAdn2lORkZCZBuA/CzPKT16JBjSSIL0l6P9Ah6XLgTuAf0g2rGGY6qV2DMLMcFbmJ6UZgAHgY+FUqazj8bppBFcVMDcJTbZhZjvLqpG7kTupp4FPApyStBjZF1oNxczLqTmozK4CTNYhs52NqZBTTFyX1JslhD5VE8YeNvLmkKyU9LmmvpBvr7P9DSQ8mj29LOlqzb6pm364z+EwLxp3UZlYE3Tk1MTVy5VsREUPJuhC3RcRNkh463UGSmoGPA5cD+4HdknZFxGPV10TEb9a8/teoTCVedSIiLmzwc6RidGKKlmZ5PWozy1W1mbuIndQlSRuAtwH/eAbvfQmwNyL2JaOg7gCuPsXrrwVuP4P3T53nYTKzImhqEp2tzYXspL4ZuIfKxX63pJcBTzRw3Ebg2Zrt/UnZi0jaCpwLfKGmuF1Sv6SvSHrLXCeRtD15Xf/AwEADYTVuxGtBmFlBdLWVMl80qJFO6jupDG2tbu8DfmaB47gG+ExE1PbAbI2IA0lC+oKkhyPiO3Xi2wHsAOjr61vQzvPRca9HbWbF0J3DokFzXv0k/TGnuCEuIn79NO99ANhcs70pKavnGip3bNe+/4Hk7z5JX6TSP/GiBJGm4xNTdPomOTMrgK627JuYTvXzuP8s33s3cJ6kc6kkhmuAn5v9Ikk/AKwC/qOmbBVwPCLGJa2lMtXH759lPGdsxDUIMyuIrtYSI2MFSRARcevZvHFElCXdQKX/ohnYGRGPSroZ6I+I6tDVa4A7Zt1b8Urgk5KmqfSTfLh29FNWRsfLnNPTnvVpzcxeJI9lR0/78zhZZvRFTU0R8ROnOzYi7qZy53Vt2QdmbX+wznFfBn7odO+fttFxr0dtZsVQyE5q4L01z9updFBnv/ZdDkYnvB61mRVDHutSNzKKac+son+X9LWU4imU0fEyna5BmFkB9LRnvy51I01Mq2s2m4DXACtSi6ggxstTTE6FO6nNrBC6WkuMTU5Tnpqm1JzN7A6NXP32UOmDEJWmpSeBd6QZVBFUJ8XyetRmVgTVdWlGJ6ZY0VGQBBER52YRSNF4oj4zK5LaCftWdLRkcs5GmpjagXcDl1KpSfwr8ImIyHa8VcaGk/HGPe3ZfBFmZqeSx6JBjfw8vg0YBv442f454C+Bt6YVVBFUO4N62l2DMLP85bHsaCNXv1dFxPk12/dJyvymtawNj00CXizIzIohj0WDGunp+Lqk11U3JL2Ws5+Go/BcgzCzIumaWXZ0MrNzNnL1ew3wZUnPJNtbgMclPQxERLw6tehyNJT0QXQ7QZhZAZxsYsquBtHI1e/K1KMooOqkWD1t7qQ2s/zlsexoI8Ncn84ikKIZGZ+k1CTaW7zcqJnlryuHTmpf/eYwPFamu72EpLxDMTOjrdREqUmZ1iCcIOYwMua1IMysOCRlPmGfE8QchsfLvknOzAol62VHU00Qkq6U9LikvZJurLP/7ZIGJD2YPN5Zs+86SU8kj+vSjLOe4bFJelyDMLMCyXrZ0dSugJKagY8DlwP7gd2SdtVZGe6vI+KGWceuBm4C+qhM77EnOfZIWvHONjJeZr1XkzOzAsl60aA0axCXAHsjYl9ETAB3AFc3eOxPAvdGxGCSFO4l4+G2I2Nl3yRnZoXS3VaamScuC2kmiI3AszXb+5Oy2X5G0kOSPiNp8xkei6Ttkvol9Q8MDCxE3EAyislNTGZWIL3tLctqmOs/ANuSu7HvBW490zeIiB0R0RcRfevWrVuwwNxJbWZF09NeYuhEdlNtpJkgDgCba7Y3JWUzIuJwRIwnm39OZVqPho5N03h5ionytJuYzKxQejtaGBpbGgliN3CepHMltQLXALtqXyBpQ83mm4FvJs/vAa6QtErSKuCKpCwT1Wk23MRkZkXS215ZdnSiPJ3J+VK7AkZEWdINVC7szcDOiHhU0s1Af0TsAn5d0pupLGU6CLw9OXZQ0u9RSTIAN0fEYFqxzuaZXM2siKrN3sNjk6zpbkv9fKleASPibuDuWWUfqHn+PuB9cxy7E9iZZnxzGXYNwswKqLejck0aGitnkiDy7qQupGFP9W1mBdRbU4PIghNEHdUmpl6PYjKzAqk2MQ2dyGaoqxNEHV5u1MyK6GQTk2sQuanWINzEZGZF0jtTg3CCyE31H9+jmMysSKrXpKym23CCqOPYiUnaW5poKzXnHYqZ2Yyu1hJNchNTro6dmGRFhzuozaxYmppET3uLm5jy5ARhZkXV25HdjK5OEHU4QZhZUfW0ZTcfkxNEHcdOlJ0gzKyQejtKvg8iT0MnJul1gjCzAuptdw0iV25iMrOi6mlvcR9EXspT04yMu4nJzIqp0sTkGkQuhpLM7ARhZkXU297C8HiZqelI/VxOELMcSzKzE4SZFdHKzsq16VgGtQgniFmcIMysyFZ3tQJw5PhE6udKNUFIulLS45L2Srqxzv7fkvSYpIck/YukrTX7piQ9mDx2zT42LU4QZlZkKzuTBDGafoJIbTY6Sc3Ax4HLgf3Abkm7IuKxmpc9APRFxHFJ7wJ+H/hvyb4TEXFhWvHNxQnCzIpsdTVBHF/cTUyXAHsjYl9ETAB3AFfXviAi7ouI48nmV4BNKcbTECcIMyuyah9EFjWINBPERuDZmu39Sdlc3gF8rma7XVK/pK9IestcB0nanryuf2Bg4KwChpP/6NVqnJlZkWTZB1GIBQ8k/QLQB/x4TfHWiDgg6WXAFyQ9HBHfmX1sROwAdgD09fWd9bivwdEJetpLtJbcf29mxdPZ2kxrc9Oib2I6AGyu2d6UlH0PSW8A/hfw5ogYr5ZHxIHk7z7gi8BFKcY64/DoBGu6XHsws2KSxMrOlkXfxLQbOE/SuZJagWuA7xmNJOki4JNUksPBmvJVktqS52uBHwVqO7dTMzg6PlOFMzMrotVdrYu7iSkiypJuAO4BmoGdEfGopJuB/ojYBXwE6AbulATwTES8GXgl8ElJ01SS2IdnjX5KzeGRCTat6sziVGZm87Kys2VxJwiAiLgbuHtW2Qdqnr9hjuO+DPxQmrHNZXB0ggs2rczj1GZmDVnd1cq3XxhJ/Tzuia0RERw5PsHqbjcxmVlxrexs5ehiv5N6sRkaKzM5Fe6kNrNCW93ZypHjk6lP2OcEUWMwGRXgTmozK7L1vW1MTcfMNSstThA1Bkcro2ydIMysyNb3tAFwcHgs1fM4QdQYGK4kiLXdbTlHYmY2t/W97QAcHBo/zSvPjhNEjeePVbLxS1a05xyJmdncqjWIF4Zcg8jM80PjtDY3zcyWaGZWROtmmphcg8jM88dOsL63jaYm5R2Kmdmc2krNrOpscQ0iS88PjfGSXjcvmVnxre9pdw0iS88fG3P/g5ktCut72zjoGkQ2IsI1CDNbNDau7ODA0ROpnsMJInFoZIKxyWk2rurIOxQzs9PauqaLQyMTDI+lty6EE0TiyUOjAJy7tivnSMzMTm/bmsqs008fPn6aV86fE0TiqSRBvGxtd86RmJmd3rbkx+xTh0dTO4cTRGLfoVFamsVLV7oPwsyKb2tSg6j+uE2DE0TiW88P8bK13ZSa/U9iZsXX2Vpi48oOvvn8cGrnSPVqKOlKSY9L2ivpxjr72yT9dbL/q5K21ex7X1L+uKSfTDPOiOCBZ45y0ZaVaZ7GzGxBXbhlJQ8+czS1908tQUhqBj4OXAWcD1wr6fxZL3sHcCQiXgH8IfB/k2PPp7KG9Q8CVwJ/mrxfKh797hDHTkxy8dZVaZ3CzGzB9W1dxYGjJ9h7MJ3V5dKsQVwC7I2IfRExAdwBXD3rNVcDtybPPwP8F1UWp74auCMixiPiSWBv8n4Lbmhskvfe+Q1aS01c/spz0jiFmVkq3vTql1JqEu/+9J5UFg9KM0FsBJ6t2d6flNV9TUSUgWPAmgaPBUDSdkn9kvoHBgbOOMiethI/8JIePnbNRazyOhBmtois62njD956Aa/ZuormFOaQKy34O2YsInYAOwD6+vrOOIVK4o+uuWjB4zIzy8JbLtrIWy6q+/v5rKVZgzgAbK7Z3pSU1X2NpBKwAjjc4LFmZpaiNBPEbuA8SedKaqXS6bxr1mt2Adclz38W+EJERFJ+TTLK6VzgPOBrKcZqZmazpNbEFBFlSTcA9wDNwM6IeFTSzUB/ROwC/gL4S0l7gUEqSYTkdX8DPAaUgesjYiqtWM3M7MVU+cG+NPT19UV/f3/eYZiZLRqS9kREX719vm3YzMzqcoIwM7O6nCDMzKwuJwgzM6trSXVSSxoAnp7n4WuBQwsYzmLgz7z0LbfPC/7MZ2prRKyrt2NJJYizIal/rp78pcqfeelbbp8X/JkXkpuYzMysLicIMzOrywnipB15B5ADf+alb7l9XvBnXjDugzAzs7pcgzAzs7qcIMzMrK5lnyAkXSnpcUl7Jd2YdzxZkPSUpIclPShpSc5uKGmnpIOSHqkpWy3pXklPJH+X1CLkc3zmD0o6kHzXD0p6Y54xLjRJmyXdJ+kxSY9Kek9SvmS/61N85gX/rpd1H4SkZuDbwOVUljXdDVwbEY/lGljKJD0F9EXEkr2ZSNKPASPAbRHxqqTs94HBiPhw8mNgVUT8Tp5xLqQ5PvMHgZGI+IM8Y0uLpA3Ahoj4uqQeYA/wFuDtLNHv+hSf+W0s8He93GsQlwB7I2JfREwAdwBX5xyTLYCIuJ/KGiO1rgZuTZ7fSuV/qiVjjs+8pEXEcxHx9eT5MPBNKuvXL9nv+hSfecEt9wSxEXi2Zns/Kf1DF0wAn5e0R9L2vIPJ0DkR8Vzy/HngnDyDydANkh5KmqCWTFPLbJK2ARcBX2WZfNezPjMs8He93BPEcnVpRFwMXAVcnzRNLCvJ0rbLoX31z4CXAxcCzwH/L9doUiKpG/gs8BsRMVS7b6l+13U+84J/18s9QRwANtdsb0rKlrSIOJD8PQjcRaWpbTl4IWm/rbbjHsw5ntRFxAsRMRUR08CnWILftaQWKhfKT0fE3ybFS/q7rveZ0/iul3uC2A2cJ+lcSa1U1sTelXNMqZLUlXRsIakLuAJ45NRHLRm7gOuS59cBf59jLJmoXiQTP80S+64licra9t+MiI/W7Fqy3/VcnzmN73pZj2ICSIaC/RHQDOyMiA/lG1G6JL2MSq0BoAT81VL8zJJuBy6jMg3yC8BNwN8BfwNsoTIt/NsiYsl06s7xmS+j0uQQwFPAr9a0zS96ki4F/hV4GJhOit9PpU1+SX7Xp/jM17LA3/WyTxBmZlbfcm9iMjOzOThBmJlZXU4QZmZWlxOEmZnV5QRhZmZ1OUGYzZOklZLenTx/qaTP5B2T2ULyMFezeUrmwfnH6sypZktNKe8AzBaxDwMvl/Qg8ATwyoh4laS3U5k9tAs4D/gDoBX4RWAceGNEDEp6OfBxYB1wHPiViPhW1h/CbC5uYjKbvxuB70TEhcBvz9r3KuC/Aj8MfAg4HhEXAf8B/FLymh3Ar0XEa4D3An+aRdBmjXINwiwd9yVz9Q9LOgb8Q1L+MPDqZCbOHwHurEytA0Bb9mGazc0Jwiwd4zXPp2u2p6n8f9cEHE1qH2aF5CYms/kbBnrmc2Ayf/+Tkt4KlRk6JV2wkMGZnS0nCLN5iojDwL9LegT4yDze4ueBd0j6BvAoXu7WCsbDXM3MrC7XIMzMrC4nCDMzq8sJwszM6nKCMDOzupwgzMysLicIMzOrywnCzMzq+v+zZZTMkShxNAAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_pulse(L[1][1], tlist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We solve the equation of motion for this guess field, storing the expectation\n", "values for the population in the bipartite levels:\n" ] }, { "cell_type": "code", "execution_count": 14, "metadata": { "execution": { "iopub.execute_input": "2021-01-13T19:13:55.576807Z", "iopub.status.busy": "2021-01-13T19:13:55.575830Z", "iopub.status.idle": "2021-01-13T19:13:55.579508Z", "shell.execute_reply": "2021-01-13T19:13:55.578709Z" } }, "outputs": [], "source": [ "psi00 = qutip.Qobj(np.kron(np.array([1,0]), np.array([1,0])))\n", "psi01 = qutip.Qobj(np.kron(np.array([1,0]), np.array([0,1])))\n", "psi10 = qutip.Qobj(np.kron(np.array([0,1]), np.array([1,0])))\n", "psi11 = qutip.Qobj(np.kron(np.array([0,1]), np.array([0,1])))\n", "proj_00 = qutip.ket2dm(psi00)\n", "proj_01 = qutip.ket2dm(psi01)\n", "proj_10 = qutip.ket2dm(psi10)\n", "proj_11 = qutip.ket2dm(psi11)" ] }, { "cell_type": "code", "execution_count": 15, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:26.872504Z", "start_time": "2019-02-12T04:47:26.775372Z" }, "attributes": { "classes": [], "id": "", "n": "15" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.593928Z", "iopub.status.busy": "2021-01-13T19:13:55.585531Z", "iopub.status.idle": "2021-01-13T19:13:55.674242Z", "shell.execute_reply": "2021-01-13T19:13:55.675147Z" } }, "outputs": [], "source": [ "guess_dynamics = objectives[0].mesolve(\n", " tlist, e_ops=[proj_00, proj_01, proj_10, proj_11]\n", ")" ] }, { "cell_type": "code", "execution_count": 16, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:27.116092Z", "start_time": "2019-02-12T04:47:26.874340Z" }, "attributes": { "classes": [], "id": "", "n": "16" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.704115Z", "iopub.status.busy": "2021-01-13T19:13:55.699550Z", "iopub.status.idle": "2021-01-13T19:13:55.911880Z", "shell.execute_reply": "2021-01-13T19:13:55.912550Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "def plot_population(result):\n", " fig, ax = plt.subplots()\n", " ax.plot(\n", " result.times,\n", " np.array(result.expect[0]) + np.array(result.expect[1]),\n", " label='qubit 0',\n", " )\n", " ax.plot(\n", " result.times,\n", " np.array(result.expect[0]) + np.array(result.expect[2]),\n", " label='TLS 0',\n", " )\n", " p0_TLS_init = np.array(result.expect[0][0]) + np.array(result.expect[2][0])\n", " ax.legend()\n", " ax.axhline(p0_TLS_init, ls=\":\", c='gray')\n", " ax.set_xlabel('time')\n", " ax.set_ylabel('population')\n", " plt.show(fig)\n", "\n", "\n", "plot_population(guess_dynamics)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The population dynamics of qubit and TLS ground state show that\n", "both are oscillating and especially the qubit's ground state population reaches\n", "a maximal value at intermediate times $t < T$. This maximum is indeed the\n", "maximum that is physically possible. It corresponds to a perfect swap of\n", "the initial qubit and TLS purities. However, we want to reach this maximum at\n", "final time $T$ (not before), so the guess control is not yet working as desired." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Optimize" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Our optimization target is the ground state $\\ket{\\Psi_{q}^{\\tgt}}\n", "= \\ket{0}$ of the qubit, irrespective of the state of the TLS. Thus, our\n", "optimization functional reads\n", "\n", "$$\n", " J_T = 1 -\n", "\\Braket{\\Psi_{q}^{\\tgt}}{\\tr_{t}\\{\\op{\\rho}(T)\\} \\,|\\; \\Psi_{q}^{\\tgt}}\\,,\n", "$$\n", "\n", "and we first define `print_qubit_error`, which prints out the\n", "above functional after each iteration.\n" ] }, { "cell_type": "code", "execution_count": 17, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:27.124250Z", "start_time": "2019-02-12T04:47:27.118668Z" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.919056Z", "iopub.status.busy": "2021-01-13T19:13:55.917945Z", "iopub.status.idle": "2021-01-13T19:13:55.920951Z", "shell.execute_reply": "2021-01-13T19:13:55.921875Z" } }, "outputs": [], "source": [ "def print_qubit_error(**args):\n", " \"\"\"Utility function writing the qubit error to screen\"\"\"\n", " taus = []\n", " for state_T in args['fw_states_T']:\n", " state_q_T = trace_TLS(state_T)\n", " taus.append(state_q_T[0, 0].real)\n", " J_T = 1 - np.average(taus)\n", " print(\" qubit error: %.1e\" % J_T)\n", " return J_T" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In order to minimize the above functional, we need to provide the correct\n", "`chi_constructor` for the Krotov optimization. This is the only place where the\n", "functional (implicitly) enters the optimization.\n", "Given our bipartite system and choice of $J_T$, the equation for\n", "$\\op{\\chi}(T)$ reads\n", "\n", "$$\n", " \\op{\\chi}(T)\n", " =\n", " \\frac{1}{2} \\ket{\\Psi_{q}^{\\tgt}} \\bra{\\Psi_{q}^{\\tgt}} \\otimes \\op{1}_{2}\n", " =\n", " \\frac{1}{2} \\ket{00}\\bra{00} + \\frac{1}{2} \\ket{01}\\bra{01}.\n", "$$" ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "ExecuteTime": { "end_time": "2019-02-12T04:47:27.144420Z", "start_time": "2019-02-12T04:47:27.132277Z" }, "attributes": { "classes": [], "id": "", "n": "18" }, "execution": { "iopub.execute_input": "2021-01-13T19:13:55.928593Z", "iopub.status.busy": "2021-01-13T19:13:55.927549Z", "iopub.status.idle": "2021-01-13T19:13:55.930100Z", "shell.execute_reply": "2021-01-13T19:13:55.930818Z" } }, "outputs": [], "source": [ "def chis_qubit(fw_states_T, objectives, tau_vals):\n", " \"\"\"Calculate chis for the chosen functional\"\"\"\n", " chis = []\n", " for state_i_T in fw_states_T:\n", " chi_i = qutip.Qobj(np.kron(rho_q_trg, np.diag([1, 1])))\n", " chis.append(chi_i)\n", " return chis" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now carry out the optimization for five iterations." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "execution": { "iopub.execute_input": "2021-01-13T19:13:55.937640Z", "iopub.status.busy": "2021-01-13T19:13:55.936329Z", "iopub.status.idle": "2021-01-13T19:14:10.609017Z", "shell.execute_reply": "2021-01-13T19:14:10.608164Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration 0\n", " objectives:\n", " 1:Ļā‚€[4,4] to Ļā‚[4,4] via [š“›ā‚€[[4,4],[4,4]], [š“›ā‚[[4,4],[4,4]], uā‚‚(t)]]\n", " adjoint objectives:\n", " 1:Ļā‚‚[4,4] to Ļā‚ƒ[4,4] via [š“›ā‚‚[[4,4],[4,4]], [š“›ā‚ƒ[[4,4],[4,4]], uā‚‚(t)]]\n", " chi_constructor: chis_qubit\n", " mu: derivative_wrt_pulse\n", " S(t) (ranges): [0.000000, 1.000000]\n", " iter_start: 0\n", " iter_stop: 5\n", " duration: 0.4 secs (started at 2021-01-13 14:13:55)\n", " optimized pulses (ranges): [0.00, 2.00]\n", " āˆ«gā‚(t)dt: 0.00e+00\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): None, None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.97e-01:0.00Ļ€)\n", " qubit error: 1.1e-01\n", "Iteration 1\n", " duration: 2.6 secs (started at 2021-01-13 14:13:56)\n", " optimized pulses (ranges): [0.00, 2.06]\n", " āˆ«gā‚(t)dt: 8.55e-02\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.3 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.98e-01:0.00Ļ€)\n", " qubit error: 1.0e-01\n", "Iteration 2\n", " duration: 2.8 secs (started at 2021-01-13 14:13:58)\n", " optimized pulses (ranges): [0.00, 2.36]\n", " āˆ«gā‚(t)dt: 4.72e-01\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.3 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.92e-01:0.00Ļ€)\n", " qubit error: 5.5e-02\n", "Iteration 3\n", " duration: 2.9 secs (started at 2021-01-13 14:14:01)\n", " optimized pulses (ranges): [0.00, 2.44]\n", " āˆ«gā‚(t)dt: 6.86e-02\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.3 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.76e-01:0.00Ļ€)\n", " qubit error: 4.8e-02\n", "Iteration 4\n", " duration: 2.9 secs (started at 2021-01-13 14:14:04)\n", " optimized pulses (ranges): [0.00, 2.42]\n", " āˆ«gā‚(t)dt: 7.32e-03\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.3 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.82e-01:0.00Ļ€)\n", " qubit error: 4.8e-02\n", "Iteration 5\n", " duration: 3.0 secs (started at 2021-01-13 14:14:07)\n", " optimized pulses (ranges): [0.00, 2.43]\n", " āˆ«gā‚(t)dt: 1.23e-03\n", " Ī»ā‚: 1.00e-01\n", " storage (bw, fw, fw0): [1 * ndarray(2500)] (1.3 MB), None, None\n", " fw_states_T norm: 1.000000\n", " Ļ„: (7.80e-01:0.00Ļ€)\n", " qubit error: 4.7e-02\n" ] } ], "source": [ "# NBVAL_IGNORE_OUTPUT\n", "# the DensityMatrixODEPropagator is not sufficiently exact to guarantee that\n", "# you won't get slightly different results in the optimization when\n", "# running this on different systems\n", "opt_result = krotov.optimize_pulses(\n", " objectives,\n", " pulse_options,\n", " tlist,\n", " propagator=krotov.propagators.DensityMatrixODEPropagator(\n", " atol=1e-10, rtol=1e-8\n", " ),\n", " chi_constructor=chis_qubit,\n", " info_hook=krotov.info_hooks.chain(\n", " krotov.info_hooks.print_debug_information, print_qubit_error\n", " ),\n", " check_convergence=krotov.convergence.check_monotonic_error,\n", " iter_stop=5,\n", ")" ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "attributes": { "classes": [], "id": "", "n": "20" }, "execution": { "iopub.execute_input": "2021-01-13T19:14:10.616479Z", "iopub.status.busy": "2021-01-13T19:14:10.615417Z", "iopub.status.idle": "2021-01-13T19:14:10.619513Z", "shell.execute_reply": "2021-01-13T19:14:10.620412Z" } }, "outputs": [ { "data": { "text/plain": [ "Krotov Optimization Result\n", "--------------------------\n", "- Started at 2021-01-13 14:13:55\n", "- Number of objectives: 1\n", "- Number of iterations: 5\n", "- Reason for termination: Reached 5 iterations\n", "- Ended at 2021-01-13 14:14:10 (0:00:15)" ] }, "execution_count": 1, "metadata": {}, "output_type": "execute_result" } ], "source": [ "opt_result" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Simulate the dynamics of the optimized field" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The plot of the optimized field shows that the optimization slightly shifts\n", "the field such that qubit and TLS are no longer perfectly in resonance." ] }, { "cell_type": "code", "execution_count": 21, "metadata": { "attributes": { "classes": [], "id": "", "n": "21" }, "execution": { "iopub.execute_input": "2021-01-13T19:14:10.670111Z", "iopub.status.busy": "2021-01-13T19:14:10.648908Z", "iopub.status.idle": "2021-01-13T19:14:10.788895Z", "shell.execute_reply": "2021-01-13T19:14:10.789607Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_pulse(opt_result.optimized_controls[0], tlist)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This slight shift of qubit and TLS out of resonance delays the population\n", "oscillations between qubit and TLS ground state such that the qubit ground\n", "state is maximally populated at final time $T$." ] }, { "cell_type": "code", "execution_count": 22, "metadata": { "attributes": { "classes": [], "id": "", "n": "22" }, "execution": { "iopub.execute_input": "2021-01-13T19:14:10.995290Z", "iopub.status.busy": "2021-01-13T19:14:10.795428Z", "iopub.status.idle": "2021-01-13T19:14:11.458968Z", "shell.execute_reply": "2021-01-13T19:14:11.460492Z" } }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "optimized_dynamics = opt_result.optimized_objectives[0].mesolve(\n", " tlist, e_ops=[proj_00, proj_01, proj_10, proj_11]\n", ")\n", "\n", "plot_population(optimized_dynamics)" ] } ], "metadata": { "hide_input": false, "jupytext": { "formats": "" }, "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 2 }