{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# QuTiP Example: Clifford Group Elements" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "[Christopher Granade](http://www.cgranade.com/)
\n", "University of Sydney\n", "$\\newcommand{\\ket}[1]{\\left|#1\\right\\rangle}$\n", "$\\newcommand{\\bra}[1]{\\left\\langle#1\\right|}$\n", "$\\newcommand{\\cnot}{{\\scriptstyle \\rm CNOT}}$\n", "$\\newcommand{\\Tr}{\\operatorname{Tr}}$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Introduction" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook, we will demonstrate the ``qubit_clifford_group`` generator, which yields each element of the Clifford group on a single qubit." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Preamble" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Features" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We enable a few features such that this notebook runs in both Python 2 and 3." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from __future__ import division, print_function" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Imports" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import qutip as qt\n", "\n", "from qutip.ipynbtools import version_table\n", "from IPython.display import display" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plotting Support" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Settings" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "qt.settings.colorblind_safe = True" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Clifford Group ##" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The Clifford group $\\mathcal{C}_n$ on $n$ qubits is the group of automorphisms of the Pauli group $\\mathcal{P}_n$, $\\mathcal{C}_n = \\{U | \\forall P \\in \\mathcal{P}_n: U P U^\\dagger \\in \\mathcal{P}_n\\}$, and is generated by the CNOT, Hadamard and phase gates. The Clifford group is very useful in a number of different contexts in quantum information such as error correction and randomized benchmarking. In particular, the Clifford group is often of interest because the Gottesman-Knill theorem gives that a circuit made up only of Clifford gates, Pauli preparations and Pauli measurements can be efficiently simulated with classical resources. This simulation proceeds by representing Clifford group elements by their action on a generating set for the Pauli group--- this representation requires only polynomially many classical bits with the number of qubits.\n", "\n", "At times, however, we will need representations of Clifford group elements as unitary operators on the full Hilbert space. This is useful, for instance, in reasoning about how *imperfect* Clifford group elements behave. QuTiP provides a generator, ``qubit_clifford_group``, that iterates over the elements of the Clifford group on a single qubit." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "cliffords = list(qt.qubit_clifford_group())" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This generator works by using the decomposition exploited by [Ross and Selinger](https://hackage.haskell.org/package/newsynth) in their circuit synthesis package. In particular, they use that the single-qubit Clifford group can be characterized as\n", "\\begin{equation}\n", " \\mathcal{C}_1 = \\left\\{\n", " \\omega^i E^j X^k S^\\ell |\n", " i \\in \\operatorname{range}(8),\\ \n", " j \\in \\operatorname{range}(3),\\ \n", " k \\in \\operatorname{range}(2),\\ \n", " \\ell \\in \\operatorname{range}(4)\n", " \\right\\},\n", "\\end{equation}\n", "where $\\omega = \\mathrm{e}^{2\\pi \\mathrm{i} / 8}$, $S$ is the $\\pi / 2$ phase gate, $E = \\omega^3 H S^3$, $H$ is the Hadamard gate and $X$ is the familiar Pauli matrix. The function ``qubit_clifford_group`` yields this characterization, save for the iteration over powers of ``\\omega``." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'S'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0\\\\0.0 & 1.0j\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\n", "Qobj data =\n", "[[ 1.+0.j 0.+0.j]\n", " [ 0.+0.j 0.+1.j]]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'X'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True\\begin{equation*}\\left(\\begin{array}{*{11}c}0.0 & 1.0\\\\1.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = True\n", "Qobj data =\n", "[[ 0. 1.]\n", " [ 1. 0.]]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/plain": [ "'E'" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "text/latex": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\\begin{equation*}\\left(\\begin{array}{*{11}c}(-0.500+0.500j) & (0.500+0.500j)\\\\(-0.500+0.500j) & (-0.500-0.500j)\\\\\\end{array}\\right)\\end{equation*}" ], "text/plain": [ "Quantum object: dims = [[2], [2]], shape = (2, 2), type = oper, isherm = False\n", "Qobj data =\n", "[[-0.5+0.5j 0.5+0.5j]\n", " [-0.5+0.5j -0.5-0.5j]]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "display(\"S\", cliffords[1])\n", "display(\"X\", cliffords[4])\n", "display(\"E\", cliffords[8])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These three gates can be understood in terms of their actions on the Pauli group. To demonstrate, we plot the superoperator representations for each of $S$, $X$ and $E$ in the Pauli basis as Hinton diagrams." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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\nFNWsfNp9MaAAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\nAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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\napgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "qt.visualization.hinton(qt.to_super(cliffords[1]));\n", "qt.visualization.hinton(qt.to_super(cliffords[4]));\n", "qt.visualization.hinton(qt.to_super(cliffords[8]));" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Epilouge" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
SoftwareVersion
QuTiP4.2.0
Numpy1.13.1
SciPy0.19.1
matplotlib2.0.2
Cython0.25.2
Number of CPUs2
BLAS InfoINTEL MKL
IPython6.1.0
Python3.6.1 |Anaconda custom (x86_64)| (default, May 11 2017, 13:04:09) \n", "[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)]
OSposix [darwin]
Wed Jul 19 22:10:30 2017 MDT
" ], "text/plain": [ "" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "version_table()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "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.6.1" } }, "nbformat": 4, "nbformat_minor": 1 }