qml.fermi

概述

该模块包含用于创建和操作费米子算符的函数和类。

函数

bravyi_kitaev(fermi_operator, n[, ps, ...])

使用Bravyi-Kitaev映射将费米子算子转换为量子比特算子。

from_string(fermi_string)

从字符串表示返回一个费米子算子对象。

jordan_wigner(费米算子[, ps, ...])

使用乔丹-维格纳映射将费米子算符转换为量子比特算符。

parity_transform(fermi_operator, n[, ps, ...])

使用奇偶映射将费米子算符转换为量子位算符。

FermiA(轨道)

费米子湮灭算符 \(a\)

FermiC(轨道)

费米子产生算符 \(a^{\dagger}\)

FermiSentence(操作符)

不可变字典,用于表示费米句子,即费米词的线性组合,键为FermiWord实例,值对应于系数。

FermiWord(操作符)

不可变字典用于表示费米词,费米产生和湮灭算子的乘积,可以从标准字典构建。

费米C和费米A

费米子创造和湮灭算符分别使用 FermiCFermiA 构造。我们传入算符作用的轨道索引。例如,作用于 \(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()函数映射到量子比特基。这个函数可以用于映射FermiCFermiA算子,以及费米词和费米句。

>>> 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)
)

费米词和费米句

费米词和费米句也可以直接通过 FermiWordFermiSentence 构造,方法是传递定义费米子算符的字典。

对于费米词,字典项定义了费米子创造和湮灭算符。字典的键是两个整数的元组。第一个整数表示创造/湮灭算符在费米词中的位置,第二个整数表示它作用的轨道。字典的值是 '+''-' 符号,分别表示创造和湮灭算符。因此,可以构造算符\(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)