mindquantum.algorithm.compiler.GateReplacer
- class mindquantum.algorithm.compiler.GateReplacer(ori_example_gate: BasicGate, wanted_example_circ: Circuit)[源代码]
将给定的量子门替换成给定的量子线路。
- 参数:
样例:
>>> from mindquantum.algorithm.compiler import GateReplacer, compile_circuit >>> from mindquantum.core.circuit import Circuit >>> from mindquantum.core.gates import X >>> circ = Circuit().x(1, 0).h(1).x(1, 2) >>> circ q0: ────■───────────────── ┃ ┏━┻━┓ ┏━━━┓ ┏━━━┓ q1: ──┨╺╋╸┠─┨ H ┠─┨╺╋╸┠─── ┗━━━┛ ┗━━━┛ ┗━┳━┛ ┃ q2: ────────────────■───── >>> equivalent_cnot = Circuit().h(0).z(0, 1).h(0) >>> equivalent_cnot ┏━━━┓ ┏━━━┓ ┏━━━┓ q0: ──┨ H ┠─┨ Z ┠─┨ H ┠─── ┗━━━┛ ┗━┳━┛ ┗━━━┛ ┃ q1: ──────────■─────────── >>> compiler = GateReplacer(X.on(0, 1), equivalent_cnot) >>> compiler GateReplacer< ┏━━━┓ q0: ──┨╺╋╸┠─── ┗━┳━┛ ┃ q1: ────■───── -> ┏━━━┓ ┏━━━┓ ┏━━━┓ q0: ──┨ H ┠─┨ Z ┠─┨ H ┠─── ┗━━━┛ ┗━┳━┛ ┗━━━┛ ┃ q1: ──────────■─────────── > >>> compile_circuit(compiler, circ) q0: ──────────■─────────────────────────────────── ┃ ┏━━━┓ ┏━┻━┓ ┏━━━┓ ┏━━━┓ ┏━━━┓ ┏━━━┓ ┏━━━┓ q1: ──┨ H ┠─┨ Z ┠─┨ H ┠─┨ H ┠─┨ H ┠─┨ Z ┠─┨ H ┠─── ┗━━━┛ ┗━━━┛ ┗━━━┛ ┗━━━┛ ┗━━━┛ ┗━┳━┛ ┗━━━┛ ┃ q2: ──────────────────────────────────■───────────
- do(dag_circuit: DAGCircuit)[源代码]
执行门替换规则。
- 参数:
dag_circuit (
DAGCircuit
) - 想要编译的量子线路的 DAG 图。