mindquantum.algorithm.compiler.abc_decompose

查看源文件
mindquantum.algorithm.compiler.abc_decompose(gate: QuantumGate, return_u3: bool = True)[源代码]

通过abc分解来分解量子门。

参数:
  • gate (QuantumGate) - 只有一个控制为的单比特量子门。

  • return_u3 (bool) - 如果为 True,则返回 U3 形式的分解,否则返回 UnivMathGate 形式的分解。默认值: True

返回:

Circuit,由单比特门和CNOT门构成的量子线路。

样例:

>>> import mindquantum as mq
>>> from mindquantum.algorithm.compiler.decompose import abc_decompose
>>> from scipy.stats import unitary_group
>>> g = mq.UnivMathGate('U', unitary_group.rvs(2, random_state=123)).on(1, 0)
>>> print(mq.Circuit() + g)
q0: ────■─────

      ┏━┻━┓
q1: ──┨ U ┠───
      ┗━━━┛
>>> circ_decomposed = abc_decompose(g)
>>> print(circ_decomposed)
                                                                  ┏━━━━━━━━━━━━┓
q0: ───────────────────■──────────────────────────────────────■───┨ RZ(1.1469) ┠────────────────────
                       ┃                                      ┃   ┗━━━━━━━━━━━━┛
      ┏━━━━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┏━┻━┓ ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
q1: ──┨ RZ(2.6016) ┠─┨╺╋╸┠─┨ U3(θ=1.1043, φ=π, λ=-0.6572) ┠─┨╺╋╸┠─┨ U3(θ=1.1043, φ=-5.086, λ=0) ┠───
      ┗━━━━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛