Skip to main content
IBM Quantum Platform

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, /)

GitHub

Déterminez les indices des qubits correspondant aux indices de bits ou aux instructions de circuit fournis.

Attention

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

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

int | liste [ int ]

generate_noise_model_paulis

generate_noise_model_paulis(instructions, coupling_map=None, circuit=None)

GitHub

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 erreurs X sur 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 None lorsque est coupling_map également None.

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)

GitHub

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.

Remarque

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

tuple [ bool, float ]

iter_circuit

iter_circuit(circuit, *, reverse=False, log_process=True)

GitHub

Parcourt les instructions d'un circuit.

Remarque

Cette fonction effectue une récursion dans les instructions BoxOp .

Remarque

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)

GitHub

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

dict [ str, str ]

remove_measure

remove_measure(circuit)

GitHub

Supprimez toutes les opérations Measure du circuit fourni.

Remarque

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

QuantumCircuit

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.