mindquantum.core.circuit.QubitIDConstrain

查看源文件
class mindquantum.core.circuit.QubitIDConstrain(qubit_ids: Union[int, List[int]], add_after: bool = True)[源代码]

只将噪声信道作用在给定比特序号的量子门上。

参数:
  • qubit_ids (Union[int, List[int]]) - 想要选择的比特序号的列表。

  • add_after (bool) - 在量子门前面或者后面添加量子信道。默认值: True

样例:

>>> from mindquantum.core.circuit import MixerAdder, BitFlipAdder, QubitIDConstrain, Circuit
>>> circ = Circuit().h(0).h(1).h(2).x(1, 0).x(2, 1)
>>> circ
      ┏━━━┓
q0: ──┨ H ┠───■───────────
      ┗━━━┛   ┃
      ┏━━━┓ ┏━┻━┓
q1: ──┨ H ┠─┨╺╋╸┠───■─────
      ┗━━━┛ ┗━━━┛   ┃
      ┏━━━┓       ┏━┻━┓
q2: ──┨ H ┠───────┨╺╋╸┠───
      ┗━━━┛       ┗━━━┛
>>> adder = MixerAdder([
...     QubitIDConstrain([0, 1]),
...     BitFlipAdder(0.1),
... ])
>>> adder(circ)
      ┏━━━┓ ╔═════════════╗       ╔═════════════╗
q0: ──┨ H ┠─╢ BFC(p=1/10) ╟───■───╢ BFC(p=1/10) ╟─────────
      ┗━━━┛ ╚═════════════╝   ┃   ╚═════════════╝
      ┏━━━┓ ╔═════════════╗ ┏━┻━┓ ╔═════════════╗
q1: ──┨ H ┠─╢ BFC(p=1/10) ╟─┨╺╋╸┠─╢ BFC(p=1/10) ╟───■─────
      ┗━━━┛ ╚═════════════╝ ┗━━━┛ ╚═════════════╝   ┃
      ┏━━━┓                                       ┏━┻━┓
q2: ──┨ H ┠───────────────────────────────────────┨╺╋╸┠───
      ┗━━━┛                                       ┗━━━┛