mindquantum.algorithm.compiler.BasicDecompose
- class mindquantum.algorithm.compiler.BasicDecompose(prefer_u3=False)[源代码]
将量子线路编译成简单的量子门。
本编译规则可编译多控制的量子门、自定义量子门和多泡利旋转门。
- 参数:
prefer_u3 (bool) - 是否优先选择
U3
来进行分解。默认值:False
。
样例:
>>> from mindquantum.algorithm.compiler import BasicDecompose, DAGCircuit >>> from mindquantum.core import gates as G >>> from mindquantum.core.circuit import Circuit >>> circ = Circuit([G.Rxx('a').on([0, 1]), G.X(0, [1, 2])]) >>> circ ┏━━━━━━━━┓ ┏━━━┓ q0: ──┨ ┠─┨╺╋╸┠─── ┃ ┃ ┗━┳━┛ ┃ Rxx(a) ┃ ┃ q1: ──┨ ┠───■───── ┗━━━━━━━━┛ ┃ ┃ q2: ───────────────■───── >>> dag_circ = DAGCircuit(circ) >>> compiler = BasicDecompose() >>> compiler.do(dag_circ) >>> dag_circ.to_circuit() ┏━━━┓ ┏━━━┓ ┏━━━┓ ┏━━━┓ ┏━━━━┓ ┏━━━┓ ┏━━━┓ ┏━━━┓ ┏━━━━┓ q0: ──┨ H ┠───■───────────────■───┨ H ┠─┨ H ┠─┨╺╋╸┠─┨ T† ┠─┨╺╋╸┠─┨ T ┠─┨╺╋╸┠─┨ T† ┠─↯─ ┗━━━┛ ┃ ┃ ┗━━━┛ ┗━━━┛ ┗━┳━┛ ┗━━━━┛ ┗━┳━┛ ┗━━━┛ ┗━┳━┛ ┗━━━━┛ ┏━━━┓ ┏━┻━┓ ┏━━━━━━━┓ ┏━┻━┓ ┏━━━┓ ┃ ┃ ┃ q1: ──┨ H ┠─┨╺╋╸┠─┨ RZ(a) ┠─┨╺╋╸┠─┨ H ┠─────────■────────────╂───────────■──────────↯─ ┗━━━┛ ┗━━━┛ ┗━━━━━━━┛ ┗━━━┛ ┗━━━┛ ┃ ┃ q2: ─────────────────────────────────────────────────────────■──────────────────────↯─ ┏━━━┓ ┏━━━┓ ┏━━━┓ q0: ──┨╺╋╸┠─┨ T ┠─┨ H ┠──────────────── ┗━┳━┛ ┗━━━┛ ┗━━━┛ ┃ ┏━━━┓ ┏━━━┓ ┏━━━━┓ ┏━━━┓ q1: ────╂───┨ T ┠─┨╺╋╸┠─┨ T† ┠─┨╺╋╸┠─── ┃ ┗━━━┛ ┗━┳━┛ ┗━━━━┛ ┗━┳━┛ ┃ ┃ ┏━━━┓ ┃ q2: ────■───────────■───┨ T ┠────■───── ┗━━━┛
- do(dag_circuit: DAGCircuit)[源代码]
原位的将该多控制和自定义量子门编译规则运用到
DAGCircuit
上。- 参数:
dag_circuit (
DAGCircuit
) - 量子线路的 DAG 图。