qiskit.circuit.library.excitation_preserving
qiskit.circuit.library.excitation_preserving(num_qubits, mode='iswap', entanglement='full', reps=3, skip_unentangled_qubits=False, skip_final_rotation_layer=False, parameter_prefix='θ', insert_barriers=False, name='ExcitationPreserving')
Il surrogato euristico della funzione d'onda che preserva l'eccitazione.
Il circuito excitation_preserving conserva il rapporto tra gli stati , e . A tal fine, questo circuito utilizza interazioni a due qubit della forma
per la modalità "fsim" o con per la modalità "iswap".
Si noti che anche altre funzioni d'onda, come le UCC-ansatzes, conservano l'eccitazione. Tuttavia, questi possono diventare rapidamente complessi, mentre questo circuito euristicamente motivato segue uno schema più semplice.
Questa funzione d'onda di prova è costituita da strati di rotazioni di tipo « » con intrecci a 2 qubit. L'entanglement viene creato utilizzando rotazioni di tipo « » e, facoltativamente, un gate a fase controllata per la modalità "fsim".
Esempi:
Con l'entanglement lineare, questo circuito è dato da:
from qiskit.circuit.library import excitation_preserving
ansatz = excitation_preserving(3, reps=1, insert_barriers=True, entanglement="linear")
ansatz.draw("mpl")
La struttura di entanglement può essere specificata esplicitamente con l'argomento entanglement . La modalità "fsim" comprende un'ulteriore parametrizzazione CPhaseGate in ogni blocco:
ansatz = excitation_preserving(3, reps=1, mode="fsim", entanglement=[[0, 2]])
ansatz.draw("mpl")

Parametri
- num_qubits (int) – Il numero di qubit.
- mode (str) – Scegliere la modalità di entangler, che può essere "iswap" o "fsim".
- 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 che preserva l'eccitazione.
Tipo di restituzione