Skip to main content
IBM Quantum Platform

qiskit.circuit.library.pauli_two_design

qiskit.circuit.library.pauli_two_design(num_qubits, reps=3, seed=None, insert_barriers=False, parameter_prefix='θ', name='PauliTwoDesign')

GitHub

Construire un ansatz de conception de Pauli à deux niveaux.

Cette classe met en œuvre une forme particulière d'un circuit à deux conceptions [1], qui est fréquemment étudié dans la littérature sur l'apprentissage des machines quantiques, comme, par exemple, l'étude des plateaux de Barren dans les algorithmes variationnels [2.]

Le circuit est constitué de couches alternées de rotation et d'intrication, avec une couche initiale de portes d' H=RY(π/4)\sqrt{H} = RY(\pi/4). Les couches de rotation contiennent des rotations de Pauli à un seul qubit, dont l'axe est choisi de manière aléatoire et uniforme parmi les axes X, Y ou Z. Les couches d'intrication sont constituées de portes CZ par paires d'une profondeur totale de 2.

Par exemple, le circuit pourrait ressembler à ceci :

     ┌─────────┐┌──────────┐       ░ ┌──────────┐       ░  ┌──────────┐
q_0:RY/4) ├┤ RZ(θ[0]) ├─■─────░─┤ RY(θ[4]) ├─■─────░──┤ RZ(θ[8])
     ├─────────┤├──────────┤ │     ░ ├──────────┤ │     ░  ├──────────┤
q_1:RY/4) ├┤ RZ(θ[1]) ├─■──■──░─┤ RY(θ[5]) ├─■──■──░──┤ RX(θ[9])
     ├─────────┤├──────────┤    │  ░ ├──────────┤    │  ░ ┌┴──────────┤
q_2:RY/4) ├┤ RX(θ[2]) ├─■──■──░─┤ RY(θ[6]) ├─■──■──░─┤ RX(θ[10])
     ├─────────┤├──────────┤ │     ░ ├──────────┤ │     ░ ├───────────┤
q_3:RY/4) ├┤ RZ(θ[3]) ├─■─────░─┤ RX(θ[7]) ├─■─────░─┤ RY(θ[11])
     └─────────┘└──────────┘       ░ └──────────┘       ░ └───────────┘

Exemples :

from qiskit.circuit.library import pauli_two_design
circuit = pauli_two_design(4, reps=2, seed=5, insert_barriers=True)
circuit.draw("mpl")
Schéma de circuit produit par le code précédent.

Paramètres

  • num_qubits (int) – Le nombre de qubits du circuit de Pauli à double conception.
  • reps (int) – Spécifie la fréquence de répétition d'un bloc composé d'une couche de rotation et d'une couche d'enchevêtrement.
  • seed (int | None) – La graine pour le choix aléatoire des axes des rotations de Pauli.
  • parameter_prefix (str) – Le préfixe utilisé pour les paramètres de rotation.
  • insert_barriers (bool) – Si True, des barrières sont insérées entre chaque couche. Si False, aucune barrière n'est insérée. La valeur par défaut est False.
  • name (str) – Le nom du circuit.

Retours

Un circuit de conception Pauli 2.

Type de retour

QuantumCircuit

Références :

[1] Nakata et al, Dessins unitaires à deux niveaux à partir d'unités diagonales X et Z aléatoires. arXiv:1502.07514

[2] McClean et al, Plateaux stériles dans les paysages de formation des réseaux neuronaux quantiques. arXiv:1803.11173

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.