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 图。