mindquantum.core.operators.TimeEvolution

查看源文件
class mindquantum.core.operators.TimeEvolution(ops: QubitOperator, time=None)[源代码]

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

时间演化算子将执行以下演化:

\[\left|\varphi(t)\right> = e^{-iHt}\left|\varphi(0)\right>\]

说明

哈密顿量应该是参数化或非参数化 QubitOperator。 如果 QubitOperator 有多项,则将使用一阶Trotter分解。

参数:
  • ops (QubitOperator) - 量子算子哈密顿量,可以参数化,也可以非参数化。

  • time (Union[numbers.Number, dict, ParameterResolver]) - 演化时间,可以是数字或参数解析器。如果是 None,时间将设置为1。默认值: None

样例:

>>> from mindquantum.core.operators import TimeEvolution, QubitOperator
>>> q1 = QubitOperator('Z0 Y1', 'a')
>>> q2 = QubitOperator('X0 Z1', 'b')
>>> ops1 = q1 + q2
>>> ops2 = q2 + q1
>>> TimeEvolution(ops1).circuit
                                          ┏━━━┓                                ┏━━━┓
q0: ────────────────■─────────────────■───┨ H ┠──────────■─────────────────■───┨ H ┠───
                    ┃                 ┃   ┗━━━┛          ┃                 ┃   ┗━━━┛
      ┏━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━┓ ┏━┻━┓
q1: ──┨ RX(π/2) ┠─┨╺╋╸┠─┨ RZ(2*a) ┠─┨╺╋╸┠─┨ RX(7π/2) ┠─┨╺╋╸┠─┨ RZ(2*b) ┠─┨╺╋╸┠─────────
      ┗━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━┛ ┗━━━┛
>>> TimeEvolution(ops2).circuit
      ┏━━━┓                         ┏━━━┓
q0: ──┨ H ┠───■─────────────────■───┨ H ┠─────────■─────────────────■──────────────────
      ┗━━━┛   ┃                 ┃   ┗━━━┛         ┃                 ┃
            ┏━┻━┓ ┏━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━━┓
q1: ────────┨╺╋╸┠─┨ RZ(2*b) ┠─┨╺╋╸┠─┨ RX(π/2) ┠─┨╺╋╸┠─┨ RZ(2*a) ┠─┨╺╋╸┠─┨ RX(7π/2) ┠───
            ┗━━━┛ ┗━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━━┛
property circuit

返回时间演化算符的一阶Trotter分解线路。