Skip to content

Instantly share code, notes, and snippets.

@cgranade
Created December 1, 2014 06:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cgranade/14670f05bc384dc2df01 to your computer and use it in GitHub Desktop.
Save cgranade/14670f05bc384dc2df01 to your computer and use it in GitHub Desktop.
QuTiP Example: Superoperators, Pauli Basis and Channel Contraction
{
"metadata": {
"name": "",
"signature": "sha256:d7454350e8574bbb2d317221e2bcdea00fd12b8579a7168fea3b30a93785dc20"
},
"nbformat": 3,
"nbformat_minor": 0,
"worksheets": [
{
"cells": [
{
"cell_type": "heading",
"level": 1,
"metadata": {},
"source": [
"QuTiP Example: Superoperators, Pauli Basis and Channel Contraction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"[Christopher Granade](http://www.cgranade.com/) <br>\n",
"Institute for Quantum Computing"
]
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Preamble"
]
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Features"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"from __future__ import print_function"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 1
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Imports"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"import numpy as np\n",
"\n",
"import qutip as qt\n",
"from qutip.ipynbtools import version_table\n",
"from qutip.superop_reps import _pauli_basis\n",
"\n",
"import itertools as it"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 2
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"Plotting Support"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"%matplotlib inline\n",
"import matplotlib.pyplot as plt\n",
"from mpltools.special import hinton"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 3
},
{
"cell_type": "heading",
"level": 3,
"metadata": {},
"source": [
"TeX Macros"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"$\\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": "heading",
"level": 2,
"metadata": {},
"source": [
"Superoperator Representations and Plotting"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"For this example, we show superoperators as matrices in the *Pauli basis*, such that any Hermicity-preserving map is represented by a real-valued matrix."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def to_super_pauli(qobj):\n",
" nq = int(np.log2(qobj.shape[0]) / 2)\n",
" if 4**nq != qobj.shape[0]:\n",
" raise ValueError(\"Wrong dimension; not a power of 2.\")\n",
"\n",
" B = _pauli_basis(nq) / np.sqrt(2**nq)\n",
" # Try and force the dims.\n",
" if B.shape == qobj.shape:\n",
" B.dims = qobj.dims\n",
"\n",
" return B.dag() * qt.to_super(qobj) * B"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 4
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This representation is especially useful, as it allows us to effectively plot maps using *Hinton diagrams*."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"def plot_paulisuper_hinton(qobj):\n",
" nq = int(np.log2(qobj.shape[0]) / 2)\n",
" plot_data = qobj.data.todense()\n",
" f = hinton(plot_data)\n",
" labels = list(it.imap(\"\".join, it.product('IXYZ', repeat=nq)))\n",
" plt.xticks(range(len(labels)), labels)\n",
" plt.gca().xaxis.tick_top()\n",
" plt.yticks(range(len(labels)), labels)\n",
" return f"
],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 5
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As an example, conjugation by $\\sigma_z$ leaves $\\mathbb{1}$ and $\\sigma_z$ invariant, but flips the sign of $\\sigma_x$ and $\\sigma_y$. This is indicated in Hinton diagrams by a black square for the sign change and a white square for a +1 sign."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot_paulisuper_hinton(to_super_pauli(qt.to_super(qt.sigmaz())))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nRK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x7fbe05087f10>"
]
}
],
"prompt_number": 6
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As a couple more examples, we also consider the supermatrix for a Hadamard transform and for $\\sigma_z \\otimes H$."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot_paulisuper_hinton(to_super_pauli(qt.to_super(qt.hadamard_transform())))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\n7nBWqssAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x7fbe05068050>"
]
}
],
"prompt_number": 7
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot_paulisuper_hinton(to_super_pauli(qt.to_super(qt.tensor(qt.sigmaz(), qt.hadamard_transform()))))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\ngzwc+7kAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x7fbe04f0b690>"
]
}
],
"prompt_number": 8
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Reduced Channels"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As an example of tensor contraction, we now consider the map $S(\\rho) = \\Tr_2[\\cnot (\\rho \\otimes \\ket{0}\\bra{0}) \\cnot^\\dagger]$.\n",
"This should give us a completely dephasing map. The channel on both qubits is just the superunitary $\\cnot$ channel:"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot_paulisuper_hinton(to_super_pauli(qt.to_super(qt.cnot())))"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "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\nAAAAAElFTkSuQmCC\n",
"text": [
"<matplotlib.figure.Figure at 0x7fbe04dd4050>"
]
}
],
"prompt_number": 9
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The following is a bit of a hack to dot the tensor by the vectorization of $\\ket{0}\\bra{0}$."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"s_prep = qt.Qobj(reduce(np.kron, [np.eye(2), [[1], [0]]]*2), dims=[[[2, 2], [2, 2]], [[2], [2]]])\n",
"s_prep"
],
"language": "python",
"metadata": {},
"outputs": [
{
"latex": [
"Quantum object: dims = [[[2, 2], [2, 2]], [[2], [2]]], shape = [16, 4], type = other\\begin{equation*}\\left(\\begin{array}{*{11}c}1.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 1.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 1.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 1.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\0.0 & 0.0 & 0.0 & 0.0\\\\\\end{array}\\right)\\end{equation*}"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 10,
"text": [
"Quantum object: dims = [[[2, 2], [2, 2]], [[2], [2]]], shape = [16, 4], type = other\n",
"Qobj data =\n",
"[[ 1. 0. 0. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 1. 0. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 1. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 1.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0.]\n",
" [ 0. 0. 0. 0.]]"
]
}
],
"prompt_number": 10
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"We now complete by multiplying the superunitary $\\cnot$ by the preparation channel above, then applying the partial trace channel by contracting the second and fourth index indices. As expected, this gives us a dephasing map."
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"plot_paulisuper_hinton(qt.tensor_contract(qt.to_super(qt.cnot()), (1, 3)) * s_prep)"
],
"language": "python",
"metadata": {},
"outputs": [
{
"metadata": {},
"output_type": "display_data",
"png": "iVBORw0KGgoAAAANSUhEUgAAAPcAAAD7CAYAAAC2TgIoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAByFJREFUeJzt3U1opAcdx/FfZJcFqcIeemzJXApFCksVpMJigpW2xx4K\nepaWIoKiaHuRTSjVioK32vVSBJFCDx48LB7KJLTgxVKkKOihCVpKr9IXLLUbD5O+7G7qTJJ58mx+\nfD7wwMzk4Zn/sHzneeZl50kAAAAAAACAm8jbYw8wgNuSvJbk/P718/vXbx9touVaSfJikvs/cdtD\nSa6MM87SPZjkleuWD5LcN+ZQp9FbYw8wkB8mubx/+XKSx0acZQhfSPK3JOeS3JLkH0kmo040nEeS\nTMccYGXMOz+Gt5J8buwhBnAmyctJnk3yrSQXMnv2b/KzJO9kFve/kzw57jiDuCPJC0nuSfL6yLOc\nOq177mR2GHc1ydfGHmQgn03y9yR/SXJ25FmGcDbJnzN7yTGqM2MPwA0eSPJGkrsye/Zv826S5zJ7\ngn5/5FmG8ESSV5M8P/Yg4r65XEhyb2aHcy9lFsGbo040jKtJ9sYeYgBrmb2xdvfIc5xqjYflK0n+\nlI8Px7+T5LfjjTOoS0l+MPYQS3Y+yU6SL489yIc+M/YAR9T4rP9wkt18fCj+dJI7k1wca6CBtf0b\nPprk1iTP5NqPw0Z/7Q0AAAAAABzLxYsX9zL7aMNisZz8spUDLOs/juzt7e0taVPzbWxsZGNj48Tu\nL0k2NzdP7L6m02nW19dP7P5Omse3XPst3NDyaf0SCzCHuKHUqYx7bW1t7BEGtbq6OvYIg/L4Toa4\nb0KTSeuPk8x4fCfjVMYNzCduKCVuKCVuKCVuKCVuKCVuKCVuKCVuKCVuKCVuKCVuKCVuKCVuKCVu\nKCVuKCVuKHWUuN9e+hTA0h0l7pP7DWPgyByWQylxQylxQ6kzy9rQJ0/vs7a2Vv/zwzCWnZ2d7O7u\nzl1vkLiB4Uwmk2t+G317e/vA9bxbDqWOEvfnlz4FsHTeUINS4oZS4oZS4oZS4oZS4oZS4oZS4oZS\n4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4l7Ae++9N/YIcGhL\nO53Q5ubmsjYFLIE9N5QSN5QSN5QSN5QSN5QSN5QSN5QSN5QSN5QSN5QSN5QSN5QSN5QSN5QSN5QS\nN5QSN5QSN5QSN5QSN5QSN5QSN5SaF/dtSV5Lcn7/+vn967cPORRwfPPi/leSXyV5av/6U0kuJ/nn\nkEMBx7fISQl+meTlJN9L8pUk3x50ImApFon7v0l+lORKkq8n+WDQiYClWPR0Qg8keSPJXUleOGiF\n6XT60eXV1dVMJpNjDwfcaGdnJ7u7u3PXWyTuC0nuTXJPkpeSPJfkzetXWl9fP9yEwJFMJpNrdp7b\n29sHrjfvDbWVzN5Q+25mb679PMkvljMiMKR5cT+cZDcfH4o/neTOJBcHnAlYgnmH5b/eXz50NckX\nhxsHWBbfUINS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS\n4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS\n4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS8+JeSfJikvs/cdtDSa4MNhGwFGfm/H0v\nyaNJnk8yTXI2yZNJ7ht4LuCY5sWdJH9N8ockjyW5JclvkuwMORRwfIvEnSSbSV5J8p8kXxpuHGBZ\nFo373STPJXkryfsHrTCdTj+6vLq6mslkcuzhgBvt7Oxkd3d37nqLxp0kVzN7DX6g9fX1Q2wKOKrJ\nZHLNznN7e/vA9XwUBqUOG/en7rmBm8thDss3B5sCWDqH5VBK3FBK3FBK3FBK3FBK3FBK3FBK3FBK\n3FBK3FBK3FBK3FBK3FBK3FBK3FBK3FBK3FBK3FBK3FBK3FBK3FBK3FBK3FDqML9bDqfS448/nnPn\nzo09xmA2NjYOvN2em3rNYf8/4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS\n4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZS4oZSi8T9YJJXrls+SHLfgHMBx7TISQl+v7986JEk30zy\nx0EmApbisGccuSPJj5PcM8AswBId5jX32SS/S/L9JK8PMw6wLIfZcz+R5NUkzx/0x+l0+tHl1dXV\nTCaT400GHGhraytbW1tz11tZcHtrSS4nuTvJOwf8fe/TTkYGY7t06dLYIwxqZWUlOaDlRfbc55M8\nm+QbOThs4Ca0SNyPJrk1yTPX3f6TfMohOjC+ReL+6f4CnCK+oQalxA2lxA2lxA2lxA2lxA2lxA2l\nxA2lxA2lxA2lxA2lxA2lxA2lxA2lxA2lxA2lxA2lxA2lxA2lxA2lxA2lxA2lxA2lFj2d0DxbSb66\npG0Bh7Od2Sm/AAAAAACAa/wPKsawRXbUKdcAAAAASUVORK5CYII=\n",
"text": [
"<matplotlib.figure.Figure at 0x7fbe04d74310>"
]
}
],
"prompt_number": 11
},
{
"cell_type": "heading",
"level": 2,
"metadata": {},
"source": [
"Epilouge"
]
},
{
"cell_type": "code",
"collapsed": false,
"input": [
"version_table()"
],
"language": "python",
"metadata": {},
"outputs": [
{
"html": [
"<table><tr><th>Software</th><th>Version</th></tr><tr><td>Cython</td><td>0.20.2</td></tr><tr><td>SciPy</td><td>0.14.0</td></tr><tr><td>QuTiP</td><td>3.1.0.dev-8ed9953</td></tr><tr><td>Python</td><td>2.7.8 (default, Oct 20 2014, 15:05:19) \n",
"[GCC 4.9.1]</td></tr><tr><td>IPython</td><td>2.3.0</td></tr><tr><td>OS</td><td>posix [linux2]</td></tr><tr><td>Numpy</td><td>1.8.2</td></tr><tr><td>matplotlib</td><td>1.3.1</td></tr><tr><td colspan='2'>Mon Dec 01 01:38:46 2014 EST</td></tr></table>"
],
"metadata": {},
"output_type": "pyout",
"prompt_number": 12,
"text": [
"<IPython.core.display.HTML at 0x7fbe04e5c950>"
]
}
],
"prompt_number": 12
},
{
"cell_type": "code",
"collapsed": false,
"input": [],
"language": "python",
"metadata": {},
"outputs": [],
"prompt_number": 12
}
],
"metadata": {}
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment