qml.fermi¶
概述¶
该模块包含用于创建和操作费米子算符的函数和类。
函数¶
|
使用Bravyi-Kitaev映射将费米子算子转换为量子比特算子。 |
|
从字符串表示返回一个费米子算子对象。 |
|
使用乔丹-维格纳映射将费米子算符转换为量子比特算符。 |
|
使用奇偶映射将费米子算符转换为量子位算符。 |
类¶
|
费米子湮灭算符 \(a\) |
|
费米子产生算符 \(a^{\dagger}\) |
|
不可变字典,用于表示费米句子,即费米词的线性组合,键为FermiWord实例,值对应于系数。 |
|
不可变字典用于表示费米词,费米产生和湮灭算子的乘积,可以从标准字典构建。 |
费米C和费米A¶
费米子创造和湮灭算符分别使用 FermiC 和 FermiA 构造。我们传入算符作用的轨道索引。例如,作用于 \(0\text{th}\) 和 \(3\text{rd}\) 轨道的算符 \(a^{\dagger}_0\) 和 \(a_3\) 被构造为
>>> qml.FermiC(0)
a⁺(0)
>>> qml.FermiA(3)
a(3)
这些运算符可以相互相乘以创建\(n\)-轨道费米子运算符,如\(a^{\dagger}_0 a_0 a^{\dagger}_3 a_3\)。我们称这些\(n\)-轨道费米子运算符为费米字。
>>> qml.FermiC(0) * qml.FermiA(0) * qml.FermiC(3) * qml.FermiA(3)
a⁺(0) a(0) a⁺(3) a(3)
费米词可以线性组合以创建我们称之为费米句子的费米算符。例如,可以从费米词构造出这样的费米汉密尔顿量\(H = 1.2 a^{\dagger}_0 a_0 + 2.3 a^{\dagger}_3 a_3\)
>>> h = 1.2 * qml.FermiC(0) * qml.FermiA(0) + 2.3 * qml.FermiC(3) * qml.FermiA(3)
>>> h
1.2 * a⁺(0) a(0)
+ 2.3 * a⁺(3) a(3)
映射到量子比特算符¶
费米子算子可以通过使用jordan_wigner()函数映射到量子比特基。这个函数可以用于映射FermiC和FermiA算子,以及费米词和费米句。
>>> qml.jordan_wigner(qml.FermiA(1))
0.5 * (Z(0) @ X(1)) + 0.5j * (Z(0) @ Y(1))
>>> qml.jordan_wigner(qml.FermiC(1) * qml.FermiA(1))
(0.5+0j) * I(1) + (-0.5+0j) * Z(1)
>>> f = 0.5 * qml.FermiC(1) * qml.FermiA(1) + 0.75 * qml.FermiC(2) * qml.FermiA(2)
>>> qml.jordan_wigner(f)
(
(0.625+0j) * I(1)
+ (-0.25+0j) * Z(1)
+ (-0.375+0j) * Z(2)
)
费米词和费米句¶
费米词和费米句也可以直接通过
FermiWord 和 FermiSentence 构造,方法是传递定义费米子算符的字典。
对于费米词,字典项定义了费米子创造和湮灭算符。字典的键是两个整数的元组。第一个整数表示创造/湮灭算符在费米词中的位置,第二个整数表示它作用的轨道。字典的值是 '+' 或 '-' 符号,分别表示创造和湮灭算符。因此,可以构造算符\(a^{\dagger}_0 a_3 a^{\dagger}_1\)。
>>> qml.FermiWord({(0, 0): '+', (1, 3): '-', (2, 1): '+'})
a⁺(0) a(3) a⁺(1)
费米句子可以通过将费米词及其对应系数的字典直接传递给 FermiSentence 类来构建。例如,费米句子 \(1.2 a^{\dagger}_0 a_0 + 2.3 a^{\dagger}_3 a_3\) 可以构建为
>>> fw1 = qml.FermiWord({(0, 0): '+', (1, 0): '-'})
>>> fw2 = qml.FermiWord({(0, 3): '+', (1, 3): '-'})
>>> qml.FermiSentence({fw1: 1.2, fw2: 2.3})
1.2 * a⁺(0) a(0)
+ 2.3 * a⁺(3) a(3)