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')
L'ansatz heuristique de la fonction d'onde préservant l'excitation.
Le circuit excitation_preserving préserve le rapport entre les états , et . À cette fin, ce circuit utilise des interactions à deux qubits de la forme
pour le mode "fsim" ou avec pour le mode "iswap".
Notez que d'autres fonctions d'onde, telles que les UCC-ansatzes, préservent également l'excitation. Cependant, ces circuits peuvent devenir rapidement complexes, alors que ce circuit heuristiquement motivé suit un schéma plus simple.
Cette fonction d'onde d'essai est constituée de couches de rotations de type « » associées à des intriques à deux qubits. L'intrication est créée à l'aide de rotations de type « » et, éventuellement, d'une porte à phase contrôlée pour le mode "fsim".
Exemples :
Avec un enchevêtrement linéaire, ce circuit est donné par :
from qiskit.circuit.library import excitation_preserving
ansatz = excitation_preserving(3, reps=1, insert_barriers=True, entanglement="linear")
ansatz.draw("mpl")
La structure de l'enchevêtrement peut être spécifiée explicitement avec l'argument entanglement . Le mode "fsim" comprend une fonction supplémentaire paramétrée CPhaseGate dans chaque bloc :
ansatz = excitation_preserving(3, reps=1, mode="fsim", entanglement=[[0, 2]])
ansatz.draw("mpl")

Paramètres
- num_qubits (int) – Le nombre de qubits.
- mode (str) – Choisissez le mode d'enchevêtrement, qui peut être "iswap" ou "fsim".
- reps (int) – Spécifie la fréquence de répétition de la structure d'une couche de rotation suivie d'une couche d'enchevêtrement.
- entanglement (str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]] | Callable[[int], str |Iterable[Iterable[int]] | Iterable[str |Iterable[Iterable[int]]]]) – Les indices spécifiant sur quels qubits agissent les blocs d'entrée. Voir
n_local()pour plus d'informations. - skip_final_rotation_layer (bool) – Si une couche de rotation finale est ajoutée au circuit.
- skip_unentangled_qubits (bool) – Si
True, les portes de rotation n'agissent que sur les qubits qui sont intriqués. SiFalse, les portes de rotation agissent sur tous les qubits. - parameter_prefix (str) – Le nom des paramètres libres.
- insert_barriers (bool) – Si Vrai, des barrières sont insérées entre chaque couche. Si Faux, aucune barrière n'est insérée.
- name (str) – Le nom du circuit.
Retours
Un circuit préservant l'excitation.
Type de retour