Skip to main content
IBM Quantum Platform

PauliTwoDesign

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

GitHub

Basi: TwoLocal

Il surrogato di Pauli a due disegni.

Questa classe implementa una particolare forma di circuito di tipo 2 [1], spesso oggetto di studio nella letteratura sul machine learning quantistico, come ad esempio nell'analisi dei plateau sterili negli algoritmi variazionali [2].

Il circuito è costituito da strati alternati di rotazione e di entanglement, con uno strato iniziale di porte di tipo « H=RY(π/4)\sqrt{H} = RY(\pi/4) ». Gli strati di rotazione contengono rotazioni di Pauli su un singolo qubit, in cui l'asse viene scelto in modo casuale e uniforme tra X, Y o Z. Gli strati di entanglement sono costituiti da porte CZ a coppie con una profondità totale di 2.

Ad esempio, il circuito potrebbe avere questo aspetto (ma si noti che scegliendo un seme diverso si ottengono rotazioni di Pauli diverse).

     ┌─────────┐┌──────────┐       ░ ┌──────────┐       ░  ┌──────────┐
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]) ├
     └─────────┘└──────────┘       ░ └──────────┘       ░ └───────────┘

Esempi

from qiskit.circuit.library import PauliTwoDesign
circuit = PauliTwoDesign(4, reps=2, seed=5, insert_barriers=True)
circuit.draw('mpl')
Schema del circuito prodotto dal codice precedente.
Vedi anche

La funzione pauli_two_design() costruisce lo stesso circuito funzionale, ma in modo più veloce.

Riferimenti

[1] : Nakata et al, Disegni unitari a 2 da unitari casuali delle diagonali X e Z.

arXiv:1502.07514

[2] : McClean et al., Altopiani sterili nei paesaggi di addestramento delle reti neurali quantistiche.

arXiv:1803.11173

Deprecato dalla versione 2.1

La classe qiskit.circuit.library.n_local.pauli_two_design.PauliTwoDesign è deprecata a partire da Qiskit 2.1. Verrà rimosso in Qiskit 3.0. Utilizzare invece la funzione qiskit.circuit.library.pauli_two_design.

Parametri

  • num_qubits (int | None) – Il numero di qubit del circuito Pauli Two-Design.
  • reps (int) – Specifica la frequenza con cui viene ripetuto un blocco composto da uno strato di rotazione e uno strato di entanglement.
  • seed (int | None) – Il seme per la scelta casuale degli assi delle rotazioni Pauli.
  • insert_barriers (bool) – Se True, tra ogni strato vengono inserite delle barriere. Se False, non vengono inserite barriere. L'impostazione predefinita è False.
  • name (str) – Il nome da utilizzare per il circuito generato.

Attributi

num_parameters_settable

Restituisce il numero di parametri impostabili.

Risultati

Il numero di parametri eventualmente distinti.

name

Tipo: str

Un nome leggibile per il circuito.

Esempio

from qiskit import QuantumCircuit

qc = QuantumCircuit(2, 2, name="my_circuit")
print(qc.name)
my_circuit
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.