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) ┠─── ┗━━━━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┗━━━┛ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛