{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# How to create leakage-robust single-qubit gates\n",
    "**Design pulses that minimize leakage to unwanted states**\n",
    "\n",
    "Boulder Opal exposes a highly-flexible [optimization engine](https://docs.q-ctrl.com/references/boulder-opal/boulderopal/graph/run_optimization) for general-purpose gradient-based optimization. It allows one to define the physical problem in a higher dimensional quantum system while retaining the ability to optimize for a target operation in a particular subspace. In this notebook we demonstrate the optimization of a single-qubit gate in a superconducting transmon system with three levels.\n",
    "\n",
    "## Summary workflow\n",
    "### 1. Define optimization subspace in the graph\n",
    "The flexible Boulder Opal optimization engine expresses all optimization problems as [data flow graphs](https://docs.q-ctrl.com/boulder-opal/toolkit/design/calculate-with-graphs/get-an-introduction-to-graphs-in-boulder-opal), which describe how optimization variables (variables that can be tuned by the optimizer) are transformed into the cost function (the objective that the optimizer attempts to minimize). For an optimal control problem, the cost is typically given by the gate infidelity with respect to a user-defined `target` operation. You can restrict this target operation to a subspace of your full quantum system by multiplying it by the appropriate subspace projector. This ensures that the projected target treats population outside the desired subspace as leakage error. For example, the qubit projector in a three-dimensional space is \n",
    "$$ P_{\\rm{qubit}} = \\begin{pmatrix}\n",
    "1 & 0 & 0\\\\\n",
    "0 & 1 & 0 \\\\\n",
    "0 & 0 & 0 \n",
    "\\end{pmatrix}  .$$\n",
    "\n",
    "The target operator is defined using the `graph.target` graph operation:\n",
    "```python\n",
    "target_operator = graph.target(\n",
    "    full_target.dot(qubit_projector), filter_function_projector=qubit_projector\n",
    ")\n",
    "```\n",
    "where `full_target` is your original target operator in the full space. The `filter_function_projector` parameter is optional and should be used when you also want to add [robustness to noise](https://docs.q-ctrl.com/boulder-opal/toolkit/design/design-error-robust-quantum-logic-gates/how-to-create-dephasing-and-amplitude-robust-single-qubit-gates) in that subspace.   \n",
    "\n",
    "Once this is defined, we calculate the infidelity by passing this operator to the `graph.infidelity_pwc` graph operation\n",
    "```python\n",
    "infidelity = graph.infidelity_pwc(\n",
    "    hamiltonian=hamiltonian, target=target_operator, name=\"infidelity\"\n",
    ")\n",
    "```\n",
    "### 2. Execute graph-based optimization\n",
    "\n",
    "With the graph object created, an optimization can be run using the `boulderopal.run_optimization` function. The cost, the outputs, and the graph must be provided. The function returns the results of the optimization. "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Example: Optimize single-qubit Hadamard in a qutrit system\n",
    "\n",
    "In this example, we consider a qutrit system in which we effect a single-qubit gate robust against control noise while simultaneously minimizing leakage out of the computational subspace. The system is described by the following Hamiltonian:\n",
    "$$\n",
    "H(t) = \\frac{\\chi}{2} (a^\\dagger)^2 a^2 + (1+\\beta(t))\\left(\\gamma(t) a + \\gamma^*(t) a^\\dagger \\right) + \\frac{\\alpha(t)}{2} a^\\dagger a , \n",
    "$$\n",
    "where $\\chi$ is the anharmonicity, $\\gamma(t)$ and $\\alpha(t)$ are, respectively, complex and real time-dependent pulses, $\\beta(t)$ is a small, slowly-varying stochastic amplitude noise process, and $a = |0 \\rangle \\langle 1 | + \\sqrt{2} |1 \\rangle \\langle 2 |$."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "import qctrlvisualizer as qv\n",
    "import boulderopal as bo"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We start by defining the operators and physical parameters:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [],
   "source": [
    "# Define target and projector matrices\n",
    "hadamard = np.array(\n",
    "    [[1.0, 1.0, 0], [1.0, -1.0, 0], [0, 0, np.sqrt(2)]], dtype=complex\n",
    ") / np.sqrt(2)\n",
    "qubit_projector = np.pad(np.eye(2), ((0, 1), (0, 1)), mode=\"constant\")\n",
    "\n",
    "# Define physical constants and parameters\n",
    "transmon_levels = 3\n",
    "chi = 2 * np.pi * -300.0 * 1e6  # Hz\n",
    "gamma_max = 2 * np.pi * 30e6  # Hz\n",
    "alpha_max = 2 * np.pi * 30e6  # Hz\n",
    "segment_count = 50\n",
    "duration = 100e-9  # s\n",
    "sinc_cutoff_frequency = 300e6"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Below we show how to create a data flow graph for optimizing the system described above. Note that we are using a filter to produce smooth pulses as explained in our [How to add smoothing and band-limits to optimized controls](https://docs.q-ctrl.com/boulder-opal/toolkit/design/design-model-based-controls/how-to-add-smoothing-and-band-limits-to-optimized-controls) user guide. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [],
   "source": [
    "# Create graph object\n",
    "graph = bo.Graph()\n",
    "\n",
    "# Define standard matrices\n",
    "a = graph.annihilation_operator(transmon_levels)\n",
    "ad = graph.creation_operator(transmon_levels)\n",
    "ada = graph.number_operator(transmon_levels)\n",
    "ad2a2 = ada @ ada - ada\n",
    "\n",
    "# Create the complex optimizable gamma(t) signal\n",
    "gamma = graph.complex_optimizable_pwc_signal(\n",
    "    segment_count=segment_count, maximum=gamma_max, duration=duration\n",
    ")\n",
    "\n",
    "# Create the optimizable alpha(t) signal\n",
    "alpha = graph.real_optimizable_pwc_signal(\n",
    "    segment_count=segment_count,\n",
    "    minimum=-alpha_max,\n",
    "    maximum=alpha_max,\n",
    "    duration=duration,\n",
    ")\n",
    "\n",
    "# Create filtered signals\n",
    "sinc_kernel = graph.sinc_convolution_kernel(sinc_cutoff_frequency)\n",
    "rediscretized_gamma = graph.filter_and_resample_pwc(\n",
    "    pwc=gamma, kernel=sinc_kernel, segment_count=256, name=\"gamma\"\n",
    ")\n",
    "rediscretized_alpha = graph.filter_and_resample_pwc(\n",
    "    pwc=alpha, kernel=sinc_kernel, segment_count=256, name=\"alpha\"\n",
    ")\n",
    "\n",
    "# Create Hamiltonian terms\n",
    "anharmonicity = ad2a2 * chi / 2\n",
    "drive = graph.hermitian_part(2 * rediscretized_gamma * a)\n",
    "shift = rediscretized_alpha * ada / 2\n",
    "hamiltonian = anharmonicity + drive + shift\n",
    "\n",
    "# Create the target operator in the qubit subspace\n",
    "target_operator = graph.target(\n",
    "    hadamard.dot(qubit_projector), filter_function_projector=qubit_projector\n",
    ")\n",
    "\n",
    "infidelity = graph.infidelity_pwc(\n",
    "    hamiltonian=hamiltonian,\n",
    "    target=target_operator,\n",
    "    noise_operators=[drive],\n",
    "    name=\"infidelity\",\n",
    ")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "We can now run the optimization and plot the resulting control pulses:"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "pycharm": {
     "is_executing": true
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Your task (action_id=\"1828094\") has started.\n",
      "Your task (action_id=\"1828094\") has completed.\n",
      "\n",
      "Optimized cost:\t5.782e-10\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 720x540 with 3 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Run the optimization\n",
    "optimization_result = bo.run_optimization(\n",
    "    cost_node_name=\"infidelity\",\n",
    "    output_node_names=[\"alpha\", \"gamma\"],\n",
    "    graph=graph,\n",
    "    optimization_count=4,\n",
    ")\n",
    "\n",
    "print(f\"\\nOptimized cost:\\t{optimization_result['cost']:.3e}\")\n",
    "\n",
    "# Plot the optimized controls\n",
    "qv.plot_controls(\n",
    "    {\n",
    "        \"$\\\\alpha$\": optimization_result[\"output\"][\"alpha\"],\n",
    "        \"$\\\\gamma$\": optimization_result[\"output\"][\"gamma\"],\n",
    "    },\n",
    "    polar=False,\n",
    ")"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
