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')
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' . 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")
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. SiFalse, aucune barrière n'est insérée. La valeur par défaut estFalse. - name (str) – Le nom du circuit.
Retours
Un circuit de conception Pauli 2.
Type de retour
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