paddle_quantum.channel.common

常用的量子信道的功能实现。

class BitFlip(prob, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

比特反转信道。

其 Kraus 算符为:

E0=1pI,E1=pX.
参数:
  • prob (Union[paddle.Tensor, float]) – 发生比特反转的概率,其值应该在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

class PhaseFlip(prob, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

相位反转信道。

其 Kraus 算符为:

E0=1pI,E1=pZ.
参数:
  • prob (Union[paddle.Tensor, float]) – 发生相位反转的概率,其值应该在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

class BitPhaseFlip(prob, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

比特相位反转信道。

其 Kraus 算符为:

E0=1pI,E1=pY.
参数:
  • prob (Union[paddle.Tensor, float]) – 发生比特相位反转的概率,其值应该在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

class AmplitudeDamping(gamma, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

振幅阻尼信道。

其 Kraus 算符为:

E0=[1001γ],E1=[0γ00].
参数:
  • gamma (Union[paddle.Tensor, float]) – 减振概率,其值应该在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

class GeneralizedAmplitudeDamping(gamma, prob, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

广义振幅阻尼信道。

其 Kraus 算符为:

E0=p[1001γ],E1=p[0γ00],E2=1p[1γ001],E3=1p[00γ0].
参数:
  • gamma (Union[paddle.Tensor, float]) – 减振概率,其值应该在 [0,1] 区间内。

  • prob (Union[paddle.Tensor, float]) – 激发概率,其值应该在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

class PhaseDamping(gamma, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

相位阻尼信道。

其 Kraus 算符为:

E0=[1001γ],E1=[000γ].
参数:
  • gamma (Union[paddle.Tensor, float]) – 该信道的参数,其值应该在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

class Depolarizing(prob, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

去极化信道。

其 Kraus 算符为:

E0=13p/4I,E1=p/4X,E2=p/4Y,E3=p/4Z.
参数:
  • prob (Union[paddle.Tensor, float]) – 该信道的参数,其值应该在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

备注

该功能的实现逻辑已更新。 当前版本请参考 M.A.Nielsen and I.L.Chuang 所著 Quantum Computation and Quantum Information 第10版中的 (8.102) 式。 参考文献: Nielsen, M., & Chuang, I. (2010). Quantum Computation and Quantum Information: 10th Anniversary Edition. Cambridge: Cambridge University Press. doi:10.1017/CBO9780511976667

class GeneralizedDepolarizing(prob, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

广义去极化信道。

其 Kraus 算符为:

E0=1(D1)p/DI, where D=4n,Ek=p/Dσk, for 0<k<D.
参数:
  • prob (Union[paddle.Tensor, float]) – 该信道的参数 p,其值应该在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 长度为 n 的作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

class PauliChannel(prob, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

泡利信道。

参数:
  • prob (Union[paddle.Tensor, Iterable[float]]) – 泡利算符 X、Y、Z 对应的概率,各值均应在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

备注

三个输入的概率加起来需要小于等于 1。

class ResetChannel(prob, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

重置信道。

该信道以 p 的概率将量子态重置为 |0,并以 q 的概率重置为 |1。其 Kraus 算符为:

E0=[p000],E1=[0p00],E2=[00q0],E3=[000q],E4=1pqI.
参数:
  • prob (Union[paddle.Tensor, Iterable[float]]) – 重置为 |0 和重置为 |1 的概率,各值均应在 [0,1] 区间内。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

备注

两个输入的概率加起来需要小于等于 1。

class ThermalRelaxation(const_t, exec_time, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

热弛豫信道。

该信道模拟超导硬件上的 T1 和 T2 混合过程。

参数:
  • const_t (Union[paddle.Tensor, Iterable[float]]) – T1T2 过程的弛豫时间常数,单位是微秒。

  • exec_time (Union[paddle.Tensor, float]) – 弛豫过程中量子门的执行时间,单位是纳秒。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

备注

时间常数必须满足 T2T1,见参考文献 https://arxiv.org/abs/2101.02109

class MixedUnitaryChannel(num_unitary, qubits_idx='full', num_qubits=None)

基类:paddle_quantum.channel.base.Channel

混合酉矩阵信道。

参数:
  • num_unitary (int) – 用于构成信道的酉矩阵数量。

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 'full'

  • num_qubits (int, optional) – 总的量子比特个数,默认为 None

class ReplacementChannel(prob, qubits_idx=None, num_qubits=None)

基类:paddle_quantum.channel.base.Channel

量子置换信道的合集。

对于一个量子态 σ,其对应的替换信道 R 定义为

R(ρ)=tr(ρ)σ
参数:
  • sigma (State) – 输入的量子态 σ

  • qubits_idx (Union[Iterable[int], int, str], optional) – 作用在的量子比特的编号,默认为 None

  • num_qubits (int) – 总的量子比特个数,默认为 None