要操纵输入状态,我们需要应用量子计算的基本操作。这些被称为量子门。在这里,我们将介绍您在Circuit作曲器和Qasm中找到的所有门。我们将要看到的大多数门仅作用于单个量子位。这意味着可以从布洛赫(Bloch)领域了解他们的行为。
最简单的量子门是Paulis:,ÿ和ž。它们的作用是使Bloch球绕x,y和z轴旋转一半。因此,它们具有类似于经典“非”门或位翻转的效果。具体来说,X门对状态|的作用。0〉和|1〉是XXÿYžZXX| 0〉|0〉| 1〉|1〉
X | 0 〉 = | 1 〉 ,X | 1 〉 = | 0 〉 。X|0〉=|1〉,X|1〉=|0〉.
该门对美国类似的效果|+〉和|-〉:žZ| +〉|+〉| -〉|−〉
Z | + 〉 = | - 〉 ,Z | - 〉 = | + 〉 。Z|+〉=|−〉,Z|−〉=|+〉.
为了在Qasm中实现这些门,我们使用
x q[0]; // x on qubit 0
y q[0]; // y on qubit 0
z q[0]; // z on qubit 0
这些门的矩阵表示已在上一节中显示。
X = (01个1个0)Y = (0− 我一世0)Z = (100− 1)X=(0110)Y=(0−ii0)Z=(100−1)
在那里,他们的工作是帮助我们进行有关测量的计算。但是由于这些矩阵是一元的,因此定义了可逆的量子运算,因此将它们作为门的这种附加解释也是可能的。
请注意,在这里我们提到了这些门为,ÿ和ž和,和,这取决于我们是否在谈论他们的矩阵represetation或都写在Qasm的方式。通常,我们将使用的风格X,ÿ和ž当提到以文本或方程门,和,和写Qasm代码时。XXÿYžZx
y
z
XXÿYžZx
y
z
Hadamard门是我们已经使用过的门。这是执行x测量的关键组成部分:
// x measurement of qubit 0
h q[0];
measure q[0] -> c[0];
与宝利斯一样,哈达玛(Hadamard)也是布洛赫(Bloch)球的一半旋转。不同之处在于它绕着位于x和z之间一半的轴旋转。这赋予了将沿z轴指向的状态旋转为沿x指向的状态的效果,反之亦然。
H | 0 〉 = | + 〉 ,H | 1 〉 = | - 〉 ,H | + 〉 = | 0 〉 ,H | - 〉 = | 1 〉 。H|0〉=|+〉,H|1〉=|−〉,H|+〉=|0〉,H|−〉=|1〉.
由于量子计算背后的硬件通常只允许直接执行z测量,因此这种效果使其成为进行x测量的必要部分。通过将x基础信息移动到z基础,它可以间接测量x。
H | 0 〉 = | + 〉H|0〉=|+〉
ħ = 1 √ 2(11个1个− 1)。H=12(111−1).
小号SS †S†
s q[0]; // s gate on qubit 0
sdg q[0]; // s† on qubit 1
žZ
S = (100一世),S † =(100− 我)。S=(100i),S†=(100−i).
这些门的作用是在x和y基的状态之间旋转。
S | + 〉 = | ↻ 〉 ,S | - 〉 = | ↺ 〉 ,S † | ↻〉= | +〉,S † | ↺〉= | -〉。S|+〉=|↻〉,S|−〉=|↺〉,S†|↻〉=|+〉,S†|↺〉=|−〉.
因此,它们被用作y测量的一部分。
// y measurement of qubit 0
h q[0];
sdg q[0];
measure q[0] -> c[0];
的,和栅极,与Paulis一起,形成用于单量子位的所谓“克利福组”(如本指南后面讨论。它们是在制造和操纵叠加很多任务是非常有用的,以及促进不同类型的测量,但是要释放量子比特的全部潜力,我们需要下一组门。HH小号SS †S†
我们已经看过,和门,它们是围绕x,y和z轴旋转特定角度的。更一般而言,我们可以将此概念扩展到任意角度旋转。这给了我们门,和。角度以弧度表示,因此Pauli门对应于。它们的平方根需要这个角度的一半,,依此类推。XXÿYžZθθR x(θ)Rx(θ)ř ÿ(θ)Ry(θ)R z(θ)Rz(θ)θ = πθ=πθ = ± π / 2θ=±π/2
在Qasm中,这些旋转可以使用,和实施rx
,如下所示。ry
rz
rx(theta) q[0]; // rx rotation on qubit 0
ry(theta) q[0]; // ry rotation on qubit 0
rz(theta) q[0]; // rz rotation on qubit 0
两个特定示例都有自己的名称:。这些是平方根,被称为和。R z(θ)Rz(θ)θ = ± π / 4θ=±π/4小号SŤTŤ †T†
t q[0]; // t gate on qubit 0
tdg q[0]; // t† on qubit 1
他们的矩阵形式是
T = (100ë 我π / 4),T † =(100ë - 我π / 4)。T=(100eiπ/4),T†=(100e−iπ/4).
在实际硬件上运行之前,所有单量子位操作都会向下编译为称为,和门。因此,它们有时被称为物理门。让我们更详细地了解它们。最一般的是ü 1U1ü 2U2ü 3U3
U 3(θ,ϕ,λ)=(cos(θ / 2 )- Ë 我λ罪(θ / 2 )Ë 我φ罪(θ / 2 )Ë 我λ + 我φ COS(θ / 2 ))。U3(θ,ϕ,λ)=(cos(θ/2)−eiλsin(θ/2)eiϕsin(θ/2)eiλ+iϕcos(θ/2)).
这具有将初始状态的量子位旋转为具有任意叠加和相对相位的量子位的效果:| 0〉|0〉
U 3 | 0〉=COS(θ / 2 )| 0 〉 + 罪(θ / 2 )e i ϕ | 1 〉 。U3|0〉=cos(θ/2)|0〉+sin(θ/2)eiϕ|1〉.
的栅极被称为相位栅极和基本上相同。它与关系及其矩阵形式为ü 1U1R z(λ)Rz(λ)ü 3U3
ù 1(λ)= Ü 3(0,0,λ)=(100È 我λ)。U1(λ)=U3(0,0,λ)=(100eiλ).
在IBM Q硬件中,此门实现为框架更改,并且花费零时间。
第二个门是,其形式为ü 2U2
û 2(φ,λ)= Ü 3(π / 2,φ,λ)= 1 √ 2(1- Ë 我λË 我φË 我λ + 我φ)。U2(ϕ,λ)=U3(π/2,ϕ,λ)=12(1−eiλeiϕeiλ+iϕ).
从该门开始,Hadamard由。在IBM Q硬件中,这是通过前后更改和脉冲来实现的。H = U 2(0 ,π )H=U2(0,π)X π / 2Xπ/2
要创建击败传统量子算法的量子算法,我们不仅需要隔离的量子位。我们需要他们互动的方式。这是通过多量子位门完成的。
最显着的多量子位门是两个量子位的CNOT和三个量子位的Toffoli。这些已在“计算的原子”中介绍。它们本质上分别执行经典XOR和AND门的可逆版本。
cx q[0],q[1]; // CNOT controlled on qubit 0 with qubit 1 as target
ccx q[0],q[1],q[0]; // Toffoli controlled on qubits 0 and 1 with qubit 2 as target
请注意,CNOT在Qasm中称为cx
。
我们也可以将CNOT解释为对其目标qubit 执行,但仅当其控制qubit处于状态时才执行,而当控件处于状态时不执行任何操作。我们可以类似地定义以相同方式工作的门,但是根据控件的和状态在目标量子位上执行或XX| 1〉|1〉| 0〉|0〉ÿYžZ| 0〉|0〉| 1〉|1〉
cy q[0],q[1]; // controlled-Y, controlled on qubit 0 with qubit 1 as target
cz q[0],q[1]; // controlled-Z, controlled on qubit 0 with qubit 1 as target
Toffoli门可以用类似的方式解释,除了它有一对控制量子位。仅当两者都处于状态时,才会应用于目标。| 1〉|1〉X