作为变分算法的一部分,我想构造一个量子电路(最好是使用pyQuil),该电路模拟以下形式的哈密顿量:
说到最后一项,问题是pyQuil引发以下错误:
TypeError: PauliTerm coefficient must be real
我开始研究文学,这似乎是一个不平凡的问题。我遇到了有关通用量子哈密顿量的本文,其中讨论了复数到实数编码以及局部编码。但是,我仍然不清楚如何实际实现这样的功能。谁能给我一些解决该问题的实用建议?
作为变分算法的一部分,我想构造一个量子电路(最好是使用pyQuil),该电路模拟以下形式的哈密顿量:
说到最后一项,问题是pyQuil引发以下错误:
TypeError: PauliTerm coefficient must be real
我开始研究文学,这似乎是一个不平凡的问题。我遇到了有关通用量子哈密顿量的本文,其中讨论了复数到实数编码以及局部编码。但是,我仍然不清楚如何实际实现这样的功能。谁能给我一些解决该问题的实用建议?
Answers:
传统的哈密顿量是埃尔米特数。因此,如果它包含非Hermitian项,则它也必须包含Hermitian共轭作为另一个项,或者权重为0。在这种特殊情况下,由于为埃尔米特本身,系数必须是0。所以,如果你谈论的是传统的汉密尔顿,你可能在你的计算犯了一个错误。请注意,如果该术语的Hermitian共轭不存在,则不能简单地通过添加它来解决问题。它会给您完全不同的结果。
另一方面,您可能想要实现非埃尔米特哈密顿量。这些东西确实存在,通常是为了描述噪声过程,但并没有那么广泛。您需要明确地包含“非Hermitian”术语,否则每个人都只会认为您在做什么是错误的,因为它不是Hermitian,而Hamiltonian应该是Hermitian。我对各种模拟器提供的功能不是很熟悉,但是如果它们内置了非Hermiticity,我会感到惊讶。
但是,您可以以不确定的实现为代价来对其进行仿真。将会有比这更复杂的方法(请参阅此答案中的链接),但是让我描述一个特别简单的方法:我将假设只有一个非赫米特分量,即(Paulis的张量积)。 )。我将其称为Paulis K的张量积。哈密顿的其余部分是^ h。您想创建演化 e − i H t + K t 我们首先对演化进行小跑, e − i H t + K t = N
z=[1 0 ; 0 -1];
x=[0 1; 1 0];
y=[0 -1i; 1i 0];
z1 = kron(z,eye(4));
y2 = kron(kron(eye(2),y),eye(2));
x3 = kron(eye(4),x);
H=0.12*1i*z1*y2*x3
输出为H:
0 0 0 0.12 0 0 0 0
0 0 0.12 0 0 0 0 0
0 -0.12 0 0 0 0 0 0
-0.12 0 0 0 0 0 0 0
0 0 0 0 0 0 0 -0.12
0 0 0 0 0 0 -0.12 0
0 0 0 0 0 0.12 0 0
0 0 0 0 0.12 0 0 0
因为它是一个实矩阵,所以埃尔米特表示对称,但这不是对称的,因此不是埃尔米特。右上三角形不等于右下三角形。
但是,右上角三角形是右下角三角形的负数,因此它是反赫米特形的。
因此,按照AHussain的建议添加共轭转置,结果为0。只需运行以下命令:
H + H'
您将获得一个0的8x8矩阵。
因此,当您通过添加共轭转置来制作哈密顿量时,该项的值为0,因此不需要任何虚系数。