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')
Il circuito 2-locale efficiente dal punto di vista hardware.
Il circuito efficient_su2 è costituito da strati di operazioni a singolo qubit attraversati da 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.
è il gruppo unitario speciale di grado 2, i suoi elementi sono matrici unitarie con determinante 1, come le porte di rotazione di Pauli.
Con 3 qubit e utilizzando le rotazioni di Pauli e 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")
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")
Parametri
- num_qubits (int) – Il numero di qubit.
- su2_gates (str |Gate |Iterable[str |Gate] | None) – 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. SeFalse, 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