paddle_quantum.ansatz.layer

量子电路模板的功能实现。

class Layer

基类: paddle_quantum.ansatz.container.Sequential

量子电路层。

参数:
  • qubits_idx (Union[Iterable[int], str]) – 作用的量子比特的编号。

  • num_qubits (int) – 量子比特的总数。

  • depth (int) – 电路层的数量,默认为 1

备注

一个 Circuit 实例需要拓展为一个 Layer 实例以应用于电路中。

property gate_history

量子门的插入信息。

返回:

量子门的插入历史。

返回类型:

List[Dict[str, Union[str, List[int], paddle.Tensor]]]

class SuperpositionLayer

基类: paddle_quantum.ansatz.layer.Layer

由 Hadamard 门组成的电路层。

参数:
  • qubits_idx (Union[Iterable[int], str]) – 作用的量子比特的编号,默认为 None,即作用在所有量子比特上。

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

  • depth (int) – 电路层的深度,默认为 1

class WeakSuperpositionLayer

基类: paddle_quantum.ansatz.layer.Layer

由旋转角为 \(\pi/4\) 的 Ry 门组成的电路层。

参数:
  • qubits_idx (Union[Iterable[int], str]) – 作用的量子比特的编号,默认为 None,即作用在所有量子比特上。

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

  • depth (int) – 电路层的深度,默认为 1

class LinearEntangledLayer

基类: paddle_quantum.ansatz.layer.Layer

由 Ry 门, Rz 门,和 CNOT 门组成的线性纠缠电路层。

参数:
  • qubits_idx (Union[Iterable[int], str]) – 作用的量子比特的编号,默认为 None,即作用在所有量子比特上。

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

  • depth (int) – 电路层的深度,默认为 1

class RealEntangledLayer

基类: paddle_quantum.ansatz.layer.Layer

由 Ry 门和 CNOT 门组成的强纠缠电路层。

备注

本电路层的数学表示是一个实值的酉矩阵。此电路层来源于论文 https://arxiv.org/pdf/1905.10876.pdf

参数:
  • qubits_idx (Union[Iterable[int], str]) – 作用的量子比特的编号,默认为 None,即作用在所有量子比特上。

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

  • depth (int) – 电路层的深度,默认为 1

class ComplexEntangledLayer

基类: paddle_quantum.ansatz.layer.Layer

由单量子比特旋转门和 CNOT 门组成的强纠缠电路层。

备注

本电路层的数学表示是一个复值的酉矩阵。此电路层来源于论文 https://arxiv.org/abs/1804.00633

参数:
  • qubits_idx (Union[Iterable[int], str]) – 作用的量子比特的编号,默认为 None,即作用在所有量子比特上。

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

  • depth (int) – 电路层的深度,默认为 1

class RealBlockLayer

基类: paddle_quantum.ansatz.layer.Layer

由 Ry 门和 CNOT 门组成的弱纠缠电路层。

备注

本电路层的数学表示是一个实值的酉矩阵。

参数:
  • qubits_idx (Union[Iterable[int], str]) – 作用的量子比特的编号,默认为 None,即作用在所有量子比特上。

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

  • depth (int) – 电路层的深度,默认为 1

class ComplexBlockLayer

基类: paddle_quantum.ansatz.layer.Layer

由单量子比特旋转门和 CNOT 门组成的弱纠缠电路层。

备注

本电路层的数学表示是一个复值的酉矩阵。

参数:
  • qubits_idx (Union[Iterable[int], str]) – 作用的量子比特的编号,默认为 None,即作用在所有量子比特上。

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

  • depth (int) – 电路层的深度,默认为 1

class QAOALayer

基类: paddle_quantum.ansatz.layer.Layer

QAOA 驱动层。

备注

仅支持MAXCUT问题。

参数:
  • edges (Iterable) – 图的边。

  • nodes (Iterable) – 图的节点。

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

class QAOALayerWeighted

基类: paddle_quantum.ansatz.layer.Layer

带权重的 QAOA 驱动层。

参数:
  • edges (Dict[Tuple[int, int], float]) – 带权重的图的边。

  • nodes (Dict[int, float]) – 带权重的图的节点。

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