mindquantum.core.operators.QubitExcitationOperator

查看源文件
class mindquantum.core.operators.QubitExcitationOperator(term=None, coefficient=1.0)[源代码]

量子比特激发算子定义为: \(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门比相应的费米子激发算子少得多。

参数:
  • terms (Union[str, tuple]) - 量子比特激发算子的输入项。默认值: None

  • coefficient (Union[numbers.Number, str, ParameterResolver]) - 相应单个运算符的系数。默认值: 1.0

样例:

>>> from mindquantum.algorithm.nisq import Transform
>>> from mindquantum.core.operators import QubitExcitationOperator
>>> op = QubitExcitationOperator(((4, 1), (1, 0), (0, 0)), 2.5)
>>> op
5/2 [Q4^ Q1 Q0]
>>> op.fermion_operator
5/2 [4^ 1 0]
>>> op.to_qubit_operator()
5/16 [X0 X1 X4] +
(-0.3125j) [X0 X1 Y4] +
(5/16j) [X0 Y1 X4] +
5/16 [X0 Y1 Y4] +
(5/16j) [Y0 X1 X4] +
5/16 [Y0 X1 Y4] +
-0.3125 [Y0 Y1 X4] +
(5/16j) [Y0 Y1 Y4]
>>> Transform(op.fermion_operator).jordan_wigner()
5/16 [X0 X1 Z2 Z3 X4] +
(-0.3125j) [X0 X1 Z2 Z3 Y4] +
(5/16j) [X0 Y1 Z2 Z3 X4] +
5/16 [X0 Y1 Z2 Z3 Y4] +
(5/16j) [Y0 X1 Z2 Z3 X4] +
5/16 [Y0 X1 Z2 Z3 Y4] +
-0.3125 [Y0 Y1 Z2 Z3 X4] +
(5/16j) [Y0 Y1 Z2 Z3 Y4]
hermitian()[源代码]

返回量子比特激发算子的厄米共轭。

property imag

该算符的虚部。

返回:

QubitExcitationOperator,保留原始算符虚部的量子比特激发算符。

样例:

>>> from mindquantum.core.operators import QubitExcitationOperator
>>> f = QubitExcitationOperator(((1, 0),), 1 + 2j)
>>> f += QubitExcitationOperator(((1, 1),), 'a')
>>> f.imag.compress()
2 [Q1]
normal_ordered()[源代码]

按照比特序号由小到大排列量子比特激发算符。

说明

与费米子不同,玻色子交换不需要乘系数-1。

返回:

QubitExcitationOperator,正规排序后的量子比特激发算符。

样例:

>>> from mindquantum.core.operators import QubitExcitationOperator
>>> op = QubitExcitationOperator("7 1^")
>>> op
1 [Q7 Q1^]
>>> op.normal_ordered()
1 [Q1^ Q7]
property real

该算符的实部。

返回:

QubitExcitationOperator,保留原始算符实部的量子比特激发算符。

样例:

>>> from mindquantum.core.operators import QubitExcitationOperator
>>> f = QubitExcitationOperator(((1, 0),), 1 + 2j)
>>> f += QubitExcitationOperator(((1, 1),), 'a')
>>> f.real.compress()
1 [Q1] +
a [Q1^]
to_qubit_operator()[源代码]

将量子比特激发算子转化为泡利算符。

返回:

QubitOperator,根据量子比特激发算符定义相对应的泡利算符。

样例:

>>> from mindquantum.core.operators import QubitExcitationOperator
>>> op = QubitExcitationOperator("7^ 1")
>>> op.to_qubit_operator()
1/4 [X1 X7] +
(-1/4j) [X1 Y7] +
(1/4j) [Y1 X7] +
1/4 [Y1 Y7]