Utilitaires
qiskit_addon_slc.utils
Divers utilitaires.
Ce module propose plusieurs fonctions utilitaires. Certaines d'entre elles n'existent que temporairement afin de contourner des problèmes non résolus de l' Qiskit SDK. Dans ce cas, elles sont signalées comme telles et peuvent être supprimées sans préavis ni notification supplémentaire.
find_indices
find_indices(circuit, bits_or_instruction, /)
Déterminez les indices des qubits correspondant aux indices de bits ou aux instructions de circuit fournis.
Cette fonction n'est pas considérée comme faisant partie de l'API stable! Elle sera supprimée sans avertissement préalable ni période de transition dès lors que cette fonctionnalité sera prise en charge de manière native par l' Qiskit SDK. Pour plus de détails, consultez ce numéro.
Paramètres
- circuit (QuantumCircuit) – le circuit quantique dont il faut déterminer les indices des qubits.
- bits_or_instruction (Bit |CircuitInstruction |Sequence[Bit]) – les bits dont il faut déterminer les indices. S'il s'agit d'un
CircuitInstruction, les qubits sur lesquels porte cette instruction sont utilisés.
Retours
Les indices des bits interrogés dans les registres du circuit. Si un objet à un seul bit a été fourni, un seul int est renvoyé pour son index. Sinon, le type de retour sera un list[int] dont la longueur correspondra au nombre de bits fournis.
Augmentations
TypeError – lorsqu'un type inattendu est bits_or_instruction fourni.
Type de retour
generate_noise_model_paulis
generate_noise_model_paulis(instructions, coupling_map=None, circuit=None)
Générez les termes de Pauli de poids 1 et 2 pour chacune des boîtes de couche d' 2q s uniques fournies.
Paramètres
- instructions (list[CircuitInstruction]) – le résultat de
find_unique_box_instructions(). On part du principe que chacune des instructions fournies se compose exclusivement de portes de mesure ou correspond à une couche d'instructions de portes à 2 qubits. Dans le premier cas, le modèle de bruit généré ne contiendra que des erreursXsur un seul qubit; dans le second, toutes les erreurs de Pauli de poids 1 et 2 sur la carte de couplage réduite seront incluses. - coupling_map (CouplingMap | None) – la carte de couplage du backend sur laquelle les instructions ont été disposées. Dans ce cas
None, on suppose qu'il s'agit d'une chaîne de qubits de type « 1d ». - circuit (QuantumCircuit | None) – le circuit transpilé qui a été disposé sur la carte de couplage fournie. Cela ne peut être le cas que
Nonelorsque estcoupling_mapégalementNone.
Retours
Un dictionnaire qui met en correspondance les attributs ref de l'annotation InjectNoise de chaque Box unique avec les termes de Pauli de poids 1 et 2 dont les erreurs ont été apprises pour cette Box.
Type de retour
dict [ str, QubitSparsePauliList ]
get_extremal_eigenvalue
get_extremal_eigenvalue(spo, **kwargs)
Calcule la valeur propre extrême de l'opérateur fourni.
Cette fonction convertit l'opérateur fourni en une matrice creuse dont on cherche la valeur propre minimale.
L'implémentation actuelle n'est clairement pas optimisée en termes de performances.
Paramètres
-
spo (SparsePauliOp) – l'opérateur dont il faut déterminer la valeur propre minimale.
-
kwargs –
arguments de mots-clés supplémentaires pour
davidson1(). Sauf indication contraire, les valeurs par défaut suivantes seront utilisées :- tol : 1e-6
- max_cycle : 500
- max_space : 12
- lindep : 1e-11
- max_memory : 2000
Les autres valeurs prendront par défaut les valeurs par défaut d' PySCF’s.
Retours
Un couple indiquant si l'algorithme de Davidson a convergé et la valeur propre minimale obtenue.
Type de retour
iter_circuit
iter_circuit(circuit, *, reverse=False, log_process=True)
Parcourt les instructions d'un circuit.
Cette fonction effectue une récursion dans les instructions BoxOp .
Les barrières présentes dans le circuit ne sont pas prises en compte.
Paramètres
- circuit (QuantumCircuit) – le circuit à parcourir.
- reverse (bool) – s'il faut parcourir le circuit dans l'ordre inverse.
- log_process (bool) – s'il faut consigner le processus.
Rendements
Tuples de longueur quatre, composés de l'instruction de circuit rencontrée, des indices canoniques des qubits (c'est-à-dire les indices entiers des qubits sur lesquels l'action porte dans le contexte de l'entrée circuit), et des attributs InjectNoise : modifier_ref et ref. Ces deux derniers éléments pourraient None indiquer une instruction de circuit qui ne faisait pas partie d'un « unrolled BoxOp».
Type de retour
Générateur [ tuple [ InstructionDeCircuit, liste [ int ], chaîne | None, chaîne | None]]
map_modifier_ref_to_ref
map_modifier_ref_to_ref(circuit)
Parcourir un circuit et cartographier les références des annotations InjectNoise .
Paramètres
circuit (QuantumCircuit) – le circuit à parcourir.
Retours
Un dictionnaire associant chaque élément InjectNoise.modifier_ref à son correspondant InjectNoise.ref.
Type de retour
remove_measure
remove_measure(circuit)
Supprimez toutes les opérations Measure du circuit fourni.
Cette fonction effectue une récursion dans les instructions BoxOp .
Paramètres
circuit (QuantumCircuit) – le circuit dont il faut supprimer les mesures.
Retours
Le circuit ne comportant aucune opération de mesure.
Type de retour