如何在Python中可视化多量子比特系统?

3
我正在尝试在一个3量子比特系统中,通过可视化展示某种算法/门作用前后的差异。
例如,在进行Hadamard门操作前后的3量子比特系统。
psi =   1|000> + 1|001> 

哈达玛三量子比特矩阵

H =     [[ 0.3536  0.3536  0.3536  0.3536  0.3536  0.3536  0.3536  0.3536]
        [ 0.3536 -0.3536  0.3536 -0.3536  0.3536 -0.3536  0.3536 -0.3536]
        [ 0.3536  0.3536 -0.3536 -0.3536  0.3536  0.3536 -0.3536 -0.3536]
        [ 0.3536 -0.3536 -0.3536  0.3536  0.3536 -0.3536 -0.3536  0.3536]
        [ 0.3536  0.3536  0.3536  0.3536 -0.3536 -0.3536 -0.3536 -0.3536]
        [ 0.3536 -0.3536  0.3536 -0.3536 -0.3536  0.3536 -0.3536  0.3536]
        [ 0.3536  0.3536 -0.3536 -0.3536 -0.3536 -0.3536  0.3536  0.3536]
        [ 0.3536 -0.3536 -0.3536  0.3536 -0.3536  0.3536  0.3536 -0.3536]]


output = psi*H =    [[ 0.7071]
                     [ 0.    ]
                     [ 0.7071]
                     [ 0.    ]
                     [ 0.7071]
                     [ 0.    ]
                     [ 0.7071]
                     [ 0.    ]]

这可以用凯特符号表示为:

0.70711|000> + 0.70711|010> + 0.70711|100> + 0.70711|110>

我最初想使用布洛赫球,但很快意识到布洛赫球只适用于单量子位系统。

我发现了Python的量子工具箱QuTiP,尤其是关于可视化的这个页面(http://qutip.org/docs/2.2.0/guide/guide-visualization.html),但我不太清楚它如何适用于我要实现的内容,或者这些可视化图表对该系统有哪些显示作用?

在这个例子中,我的问题是什么方法最适合展示Hadamard门应用前后量子系统所发生的变化?

我在量子计算/量子位方面还是一个初学者,欢迎任何建议!

1个回答

4
事实上,对于多量子比特系统,很难以几何方式进行可视化。原因是Bloch球面图像的等效物在一般情况下对于多量子比特系统非常复杂。你问题中的链接提供了一种使用状态密度矩阵得到的概率分布来可视化状态的方法。如果你有兴趣查看如何在固定基础上进行测量时概率变化,这是一个不错的方式来查看多量子比特系统。
另外,你可以查看这个量子电路可视化工具。它展示了应用电路后各个基础上振幅如何变化。如果系统只有少量的量子比特,那么它能够很好地工作。

你明白我在问题中展示的内容如何转换成密度矩阵吗?我尝试了以下代码,但目前它对我来说还没有起作用:fig, axes = subplots(1, 3, figsize=(12,3)) bar0 = axes[0].bar(arange(0, number_of_qubits)-.5, output.diag()) lbl0 = axes[0].set_title("Hadamard 3-qubit output") - Catherine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接