paddle_quantum.gate.multi_qubit_gate

多量子比特门的类的功能实现。

class CNOT(qubits_idx='cycle', num_qubits=None, depth=1)

基类:paddle_quantum.gate.base.Gate

CNOT 门。

对于两量子比特的量子电路,当 qubits_idx[0, 1] 时,其矩阵形式为:

CNOT=|00|I+|11|X=[1000010000010010]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

class CX(qubits_idx='cycle', num_qubits=None, depth=1)

基类:paddle_quantum.gate.base.Gate

同 CNOT。

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

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

  • depth (int, optional) – 层数,默认为 1

class CY(qubits_idx='cycle', num_qubits=None, depth=1)

基类:paddle_quantum.gate.base.Gate

受控 Y 门。

对于两量子比特的量子电路,当 qubits_idx[0, 1] 时,其矩阵形式为:

CY=|00|I+|11|Y=[10000100000i00i0]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

class CZ(qubits_idx='cycle', num_qubits=None, depth=1)

基类:paddle_quantum.gate.base.Gate

受控 Z 门。

对于两量子比特的量子电路,当 qubits_idx[0, 1] 时,其矩阵形式为:

CZ=|00|I+|11|Z=[1000010000100001]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

class SWAP(qubits_idx='cycle', num_qubits=None, depth=1)

基类:paddle_quantum.gate.base.Gate

SWAP 门。

其矩阵形式为:

SWAP=[1000001001000001]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

class CP(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

受控 P 门。

对于两量子比特的量子电路,当 qubits_idx[0, 1] 时,其矩阵形式为:

CP=[100001000010000eiθ]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat

class CRX(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

关于 x 轴的受控单量子比特旋转门。

对于两量子比特的量子电路,当 qubits_idx[0, 1] 时,其矩阵形式为:

CRX=|00|I+|11|RX=[1000010000cosθ2isinθ200isinθ2cosθ2]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat

class CRY(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

关于 y 轴的受控单量子比特旋转门。

对于两量子比特的量子电路,当 qubits_idx[0, 1] 时,其矩阵形式为:

CRY=|00|I+|11|RY=[1000010000cosθ2sinθ200sinθ2cosθ2]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat

class CRZ(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

关于 z 轴的受控单量子比特旋转门。

对于两量子比特的量子电路,当 qubits_idx[0, 1] 时,其矩阵形式为:

CRZ=|00|I+|11|RZ=[100001000010000eiθ]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat

class CU(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

受控单量子比特旋转门。

对于两量子比特的量子电路,当 qubits_idx[0, 1] 时,其矩阵形式为:

CU=[1000010000cosθ2eiλsinθ200eiϕsinθ2ei(ϕ+λ)cosθ2]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat

class RXX(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

RXX 门。

其矩阵形式为:

RXX(θ)=[cosθ200isinθ20cosθ2isinθ200isinθ2cosθ20isinθ200cosθ2]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat

class RYY(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

RYY 门。

其矩阵形式为:

RYY(θ)=[cosθ200isinθ20cosθ2isinθ200isinθ2cosθ20isinθ200cosθ2]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat

class RZZ(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

RZZ 门。

其矩阵形式为:

RZZ(θ)=[eiθ20000eiθ20000eiθ20000eiθ2]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat

class MS(qubits_idx='cycle', num_qubits=None, depth=1)

基类:paddle_quantum.gate.base.Gate

用于离子阱设备的 Mølmer-Sørensen (MS) 门。

其矩阵形式为:

MS=RXX(π2)=12[100i01i00i10i001]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

class CSWAP(qubits_idx='cycle', num_qubits=None, depth=1)

基类:paddle_quantum.gate.base.Gate

CSWAP (Fredkin) 门。

其矩阵形式为:

CSWAP=[1000000001000000001000000001000000001000000000100000010000000001]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

class Toffoli(qubits_idx='cycle', num_qubits=None, depth=1)

基类:paddle_quantum.gate.base.Gate

Toffoli 门。

其矩阵形式为:

Toffoli=[1000000001000000001000000001000000001000000001000000000100000010]
参数:
  • qubits_idx (Union[Iterable, str], optional) – 作用在的量子比特的编号,默认为 'cycle'

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

  • depth (int, optional) – 层数,默认为 1

class UniversalTwoQubits(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

两量子比特通用门,该通用门需要 15 个参数。

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

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat

class UniversalThreeQubits(qubits_idx='cycle', num_qubits=None, depth=1, param=None, param_sharing=False)

基类:paddle_quantum.gate.base.ParamGate

三量子比特通用门,该通用门需要 81 个参数。

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

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

  • depth (int, optional) – 层数,默认为 1

  • param (Union[paddle.Tensor, float], optional) – 量子门参数,默认为 None

  • param_sharing (bool, optional) – 同一层中的量子门是否共享参数,默认为 False

抛出:

ValueErrorparam 须为 paddle.Tensorfloat