Skip to main content
IBM Quantum Platform

qiskit.circuit.library.efficient_su2

qiskit.circuit.library.efficient_su2(num_qubits, su2_gates=None, entanglement='reverse_linear', reps=3, skip_unentangled_qubits=False, skip_final_rotation_layer=False, parameter_prefix='θ', insert_barriers=False, name='EfficientSU2')

GitHub

Il circuito 2-locale SU(2)SU(2) efficiente dal punto di vista hardware.

Il circuito efficient_su2 è costituito da strati di operazioni a singolo qubit attraversati da SU(2)SU(2) e da entanglement CX. Si tratta di un modello euristico che può essere utilizzato per preparare funzioni d'onda di prova per algoritmi quantistici variazionali o circuiti di classificazione per l'apprendimento automatico.

SU(2)SU(2) è il gruppo unitario speciale di grado 2, i suoi elementi sono 2×22 \times 2 matrici unitarie con determinante 1, come le porte di rotazione di Pauli.

Con 3 qubit e utilizzando le rotazioni di Pauli YY e ZZ come porte a singolo qubit, questo circuito è rappresentato da:

┌──────────┐┌──────────┐ ░            ░       ░ ┌───────────┐┌───────────┐
RY(θ[0]) ├┤ RZ(θ[3]) ├─░────────■───░─ ... ─░─┤ RY(θ[12]) ├┤ RZ(θ[15])
├──────────┤├──────────┤ ░      ┌─┴─┐ ░       ░ ├───────────┤├───────────┤
RY(θ[1]) ├┤ RZ(θ[4]) ├─░───■──┤ X ├─░─ ... ─░─┤ RY(θ[13]) ├┤ RZ(θ[16])
├──────────┤├──────────┤ ░ ┌─┴─┐└───┘ ░       ░ ├───────────┤├───────────┤
RY(θ[2]) ├┤ RZ(θ[5]) ├─░─┤ X ├──────░─ ... ─░─┤ RY(θ[14]) ├┤ RZ(θ[17])
└──────────┘└──────────┘ ░ └───┘      ░       ░ └───────────┘└───────────┘

Esempi:

Per impostazione predefinita, viene utilizzato l'entanglement "reverse_linear" , che, nel caso delle porte CX, equivale a un entanglement "all-to-all":

from qiskit.circuit.library import efficient_su2

circuit = efficient_su2(3, reps=1)
circuit.draw("mpl")
Schema del circuito prodotto dal codice precedente.

Per specificare quali porte SU(2) devono essere utilizzate nello strato di rotazione, si può impostare l'argomento su2_gates . Inoltre, possiamo modificare la struttura dell'entanglement. Ad esempio:

circuit = efficient_su2(4, su2_gates=["rx", "y"], entanglement="circular", reps=1)
circuit.draw("mpl")
Schema del circuito prodotto dal codice precedente.

Parametri

  • num_qubits (int) – Il numero di qubit.
  • su2_gates (str |Gate |Iterable[str |Gate] | None) – SU(2)SU(2) a i gate a singolo qubit da applicare nei livelli di gate a singolo qubit. Se è disponibile un solo gate, lo stesso gate viene applicato a ciascun qubit. Se viene fornito un elenco di porte, tutte le porte vengono applicate a ciascun qubit nell'ordine fornito.
  • reps (int) – Specifica la frequenza con cui viene ripetuta la struttura di uno strato di rotazione seguito da uno strato di entanglement.
  • entanglement (str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]] | Callable[[int], str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]]]) – Gli indici che specificano su quali qubit agiscono i blocchi di input. Per informazioni n_local() dettagliate, consultare.
  • skip_final_rotation_layer (bool) – Se viene aggiunto al circuito uno strato di rotazione finale.
  • skip_unentangled_qubits (bool) – Se True, le porte di rotazione agiscono solo sui qubit che sono entangled. Se False, le porte di rotazione agiscono su tutti i qubit.
  • parameter_prefix (str) – Il nome dei parametri liberi.
  • insert_barriers (bool) – Se Vero, le barriere vengono inserite tra ogni strato. Se Falso, non vengono inserite barriere.
  • name (str) – Il nome del circuito.

Risultati

Un circuito efficiente-SU(2).

Tipo di restituzione

QuantumCircuit

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.