将稳定器状态转换为图状态
stabgraph的Python项目详细描述
稳定图
每一个稳定状态都可以通过一个局部的
克利福德·尤尼安。stabGraph包含函数convert
,给定
稳定态,它发现这样一个图态和局部clifford酉
将稳定器状态转换为图形状态。这个函数如下
文章[1]中描述的步骤。
[1]手稿正在准备中。
安装
使用pip安装:
python -m pip install --upgrade pip python -m pip install stabgraph
根据需要用python3
替换python
。
用法
importstabgraphG,c,t,z,R=stabgraph.convert(stabs,control=None,target=None,shuffle=False)
输入
stabs
包含定义稳定状态n的n个稳定算子
量子位。这是一个n个字符串“pppp…”的列表,每个稳定器一个
接线员。每个字符串都有集合“i”、“x”、“y”中的n个元素“p”,
“z”,表示泡利矩阵的集合。
可选输入
control
是控制量子位的列表。提供将一些量子位设置为
控制量子位。量子位的标记范围是从0到n-1。这是一份由
违约。
target
是目标量子位的列表。提供将一些量子位设置为
目标量子位。量子位的标记范围是从0到n-1。这是一张空名单
违约。
shuffle
可以设置为true。对于给定的稳定状态,有多个
局部clifford等价图状态
程序。如果shuffle=true,则输出图是所选图之一
随机。shuffle默认为false。
输出
G
定义图状态的底层图的邻接矩阵。它是
由0和1组成的nxn numpy数组。
c
标记为0到n-1的控制量子位列表。程序完成
作为输入给定的控制量子位列表。
t
标记从0到n-1的目标量子位列表。程序完成
作为输入给定的目标量子位的列表。阿达玛门应用于
每一个目标量子位。
z
标记为0到n-1的控制量子位列表,其中pi/2z旋转为
应用。
R
表示稳定剂复合的可逆二元矩阵
执行以获得图形状态的稳定器。它是一个nxn
由0和1组成的numpy数组。
示例
铃对
>>> stabs = ['XX','ZZ']
>>> G , c , t , z , R = stabgraph.convert(stabs)
>>> G
np.array([[0,1],[1,0]])
>>> c
[0]
>>> t
[1]
>>> z
[]
>>> R
np.array([[1,0],[0,1]])
GHz状态固定0作为控制量子位,1作为目标量子位
>>> stabs = ['XXX','ZZI','IZZ']
>>> G , c , t , z , R = stabgraph.convert(stabs,[0],[1])
>>> c
[0]
>>> t
[1,2]
逻辑状态下的steane代码。
可以得到多个图,因此将shuffle=True
放入其中一个随机选择的图中。
结果与控制和目标量子位的选择有关
>>> stabs = ['XXXXIII','IXXIXXI','IIXXIXX','ZZZZIII','IZZIZZI','IIZZIZZ','ZZZZZZZ']
>>> G , c , t , z , R = stabgraph.convert(stabs, control = [0], shuffle=True)
>>> c
[0,1,2]
>>> G , c , t , z , R = stabgraph.convert(stabs, control = [2, 5], shuffle=True)
>>> c
[2,5,6]
引文
@misc{amaro2019,
author = "David Amaro",
title = "StabGraph",
year = "2019",
month = "July",
publisher = {GitHub},
journal = {GitHub repository},
howpublished = {\url{https://github.com/davamaro/stabgraph}}
}