mindquantum.core.operators

目录

mindquantum.core.operators#

MindQuantum算子库。算子由一个或多个基本门的组合而成。

包含以下类的表示:

  • Qubit算子

  • Fermion算子

  • 时间演化算子

Class#

接口名

概述

FermionOperator([...])

费米子算子,如FermionOperator(‘9 4^ 3 3^’)表示 \(a_9 a_4^\dagger a_3 a_3^\dagger\)。 这些是描述费米子系统的基本运算符,如分子系统。 FermionOperator遵循反交换关系。

Hamiltonian(...)

QubitOperator哈密顿量的包装器。

InteractionOperator(...)

存储用于配置费米子分子哈密顿量的“交互算子”的类。哈密顿量包括存储了自旋和奇偶性的单体项和双体项。在这个模块中,存储的系数可以通过费米子算子表示为分子的哈密顿量。

PolynomialTensor([...])

以张量形式存储费米梯算子系数的类。 例如,在粒子数守恒的分子哈密顿量(4级多项式)中,只有三种项,即常数项、 单激励 \(a^\dagger_p a_q\) 和双激励项 \(a^\dagger_p a^\dagger_q a_r a_s\),它们对应的系数可以存储在标量、 请注意,由于奇偶性守恒,每个张量必须具有偶数维数。 这个类的大部分功能与FermionOperator的功能相似。

Projector(proj)

投影算子。

QubitExcitationOperator([...])

量子比特激发算子定义为: \(Q^{\dagger}_{n} = \frac{1}{2} (X_{n} - iY_{n})\)\(Q_{n} = \frac{1}{2} (X_{n} + iY_{n})\) 。 与费米子激发算子相比,量子比特激发算子是某种“局部化”的,即费米子激发算子 \(a^{\dagger}_{7} a_{0}\) 涉及到JW变换下从0到7的量子比特, 而量子比特激发 \(Q^{\dagger}_{7} Q_{0}\) 只会影响第0和第7个量子比特。 此外,用量子比特激发算子描述双激发所使用的CNOT门比相应的费米子激发算子少得多。

QubitOperator([...])

作用于量子比特的项的总和,例如 0.5 * ‘X1 X5’ + 0.3 * ‘Z1 Z2’。 项是一个作用于n个量子比特的运算符,可以表示为:coefficient * local_operator[0] x … x local_operator[n-1],其中x是张量乘积。 本地运算符是作用于一个量子比特的泡利运算符(’I’,’X’,’Y’或者’Z’)。 在数学符号中,一个QubitOperator是例如0.5 * ‘X1 X5’的项,它意味着X运算符作用于量子比特1和5,而恒等运算符作用于其余所有量子比特。

TimeEvolution(ops)

可以生成对应线路的时间演化算子。

Function#

接口名

概述

commutator(...)

计算两个算子的对易。

count_qubits(operator)

计算未使用的量子比特被删除之前的量子比特数目。

down_index(index)

索引顺序,默认情况下,我们将无自旋轨道设置为偶数-奇数-偶数-奇数(0,1,2,3,…)。自旋向下的轨道(β轨道)索引是奇数。

get_fermion_operator(...)

将张量(多项式张量)转换为费米子运算符。

ground_state_of_sum_zz(ops)

计算只有泡利 \(Z\) 项的哈密顿量的基态能量。

hermitian_conjugated(...)

返回FermionOperator或QubitOperator的厄米共轭。

normal_ordered(...)

计算并返回FermionOperator的规范顺序。 根据惯例,规范顺序意味着项从最高模式索引(左侧)到最低(右侧)排序。 此外,创建运算符首先出现,然后跟随湮灭运算符。 例如 ‘3 4^’ \(\rightarrow\) ‘- 4^ 3’ 。

number_operator([...])

返回 reverse_jordan_wigner 变换的费米数运算符。

sz_operator(...)

返回sz运算符。

up_index(index)

索引顺序,默认情况下,我们将无自旋轨道设置为偶数-奇数-偶数-奇数(0,1,2,3,…)。 自旋向上的自旋轨道(α轨道)索引为偶数。