GenericBackendV2
class qiskit.providers.fake_provider.GenericBackendV2(num_qubits, basis_gates=None, *, coupling_map=None, control_flow=False, dtm=None, dt=None, seed=None, noise_info=True)
Bases : BackendV2
Générique BackendV2 avec un constructeur configurable. Cette classe renvoie une instance de BackendV2 qui s'exécute sur un simulateur local (dans l'esprit des faux backends) et contient toutes les informations nécessaires pour tester les composants d'interface avec le backend, tels que le transpileur. A GenericBackendV2 peut être construite à partir d'une simple adresse num_qubits, mais les utilisateurs peuvent également configurer les portes de base, la carte de couplage, la capacité d'exécuter des circuits dynamiques (instructions de flux de contrôle) et le dtm. Les autres propriétés du backend sont générées par échantillonnage aléatoire à partir de plages de valeurs par défaut extraites des données historiques du backend IBM. La graine de cette génération aléatoire peut être fixée pour garantir la reproductibilité de la sortie du backend. Ce backend ne supporte que les portes de la bibliothèque standard, si vous avez besoin d'un backend plus flexible, il y a toujours la possibilité d'instancier directement un objet Target à utiliser pour la transpilation.
Paramètres
-
num_qubits (int) – Nombre de qubits qui seront utilisés pour construire la cible du backend. Notez que, bien qu'il n'y ait pas de limite à la taille de la cible qui peut être construite, ce backend fonctionne sur des simulateurs locaux bruyants, et ceux-ci peuvent présenter des limitations dans le nombre de qubits qui peuvent être simulés.
-
basis_gates (list[str] | None) – Liste des noms de portes de base devant être prises en charge par la cible. Ceux-ci doivent faire partie de la bibliothèque de circuits standard de qiskit. Le jeu de portes de base par défaut est
["id", "rz", "sx", "x", "cx"]. Les instructions"reset","delay"et"measure"sont toujours prises en charge par défaut, même si elles ne sont pas spécifiées viabasis_gates. -
coupling_map (list[list[int]] | CouplingMap | None) –
Carte de couplage facultative pour le backend. Plusieurs formats sont pris en charge :
CouplingMapinstance- List, doit être donnée sous la forme d'une liste de bords représentant les interactions de deux qubits prises en charge par le backend, par exemple :
[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]
Si
coupling_mapest spécifié, il doit correspondre au nombre de qubits spécifié dansnum_qubits. Sicoupling_mapn'est pas spécifié, une carte de couplage entièrement connectée sera générée avecnum_qubitsqubits. -
control_flow (bool) – Indicateur permettant d'activer les directives de flux de contrôle sur la cible (valeur par défaut : False).
-
dtm (float | None) – Résolution temporelle du système des signaux de sortie en nanosecondes. Aucun par défaut.
-
dt (float | None) – Résolution temporelle du système des signaux d'entrée en nanosecondes. Aucun par défaut.
-
seed (int | None) – Semence facultative pour la génération de valeurs par défaut.
-
noise_info (bool) – Si vrai, associe les portes et les qubits aux informations de bruit par défaut.
Attributs
coupling_map
Renvoyer l CouplingMap objet
dt
Renvoi de la résolution temporelle du système des signaux d'entrée
Cette fonction doit être mise en œuvre si le backend prend en charge la planification de Pulse.
Retours
Le pas de temps du signal d'entrée en secondes. Si le backend ne définit pas dt, None sera renvoyé.
dtm
Renvoi de la résolution temporelle du système des signaux de sortie
instruction_durations
Renvoyer l'objet InstructionDurations objet.
instructions
Une liste de tuples d'instructions dans la partie arrière du formulaire (instruction, (qubits))
max_circuits
meas_map
num_qubits
Retourne le nombre de qubits que possède le backend.
operation_names
Une liste de noms d'instructions prises en charge par le backend.
operations
Une liste d'instances Instruction instances prises en charge par le backend.
options
Retourne les options pour le backend
Les options d'un backend sont les paramètres dynamiques qui définissent la manière dont le backend est utilisé. Ils sont utilisés pour contrôler la run() méthode.
provider
Renvoyer le fournisseur d'accès.
Retours
le fournisseur responsable du backend.
Type de retour
target
version
Valeur par défaut : 2
name
Nom du backend.
description
Description facultative lisible par l'homme.
online_date
Date à laquelle le backend a été mis en ligne.
backend_version
Version du backend fournie. Ce n'est pas la même chose que BackendV2.versionqui est la version de l'interface abstraite Backend interface abstraite.
Méthodes
qubit_properties
qubit_properties(qubit)
Retourne QubitProperties pour un qubit donné.
Si aucun détail n'est défini ou si le backend ne permet pas d'interroger ces détails, il n'est pas nécessaire de mettre en œuvre cette méthode.
Paramètres
qubit (int |list[int]) – Le qubit destiné à récupérer QubitProperties l'objet. Il peut s'agir d'un simple entier pour 1 qubit ou d'une liste de qubits; une liste QubitProperties d'objets sera renvoyée dans le même ordre
Retours
L'objet QubitProperties pour le qubit spécifié. Si une liste de qubits est fournie, une liste sera renvoyée. Si des propriétés sont manquantes pour un qubit, cela peut être None.
Augmentations
NotImplementedError - si le backend ne permet pas d'interroger les propriétés des qubits
Type de retour
run
run(run_input, **options)
Exécuter sur le backend à l'aide d'un simulateur.
Cette méthode exécute des tâches de circuit (une seule ou une liste de QuantumCircuit ) à l'aide de BasicSimulator ou du simulateur Aer, et renvoie un Job objet.
Si qiskit-aer est installé, les travaux seront exécutés en utilisant le modèle AerSimulator with noise du backend. Dans le cas contraire, les travaux seront exécutés à l'aide du simulateur BasicSimulator sans bruit.
Paramètres
- run_input (QuantumCircuit orlist) – Un élément ou une liste
QuantumCircuitd'objets à exécuter sur le backend. - options - Toutes les options kwarg à passer au backend pour exécuter la configuration. Si une clé est également présente dans l'attribut/objet options, on s'attend à ce que la valeur spécifiée soit utilisée à la place de celle définie dans l'objet options.
Retours
L'objet du travail pour l'exécution
Type de retour
Augmentations
- QiskitError – Si l'entrée n'est pas
QuantumCircuitou une liste de - QuantumCircuit –
set_options
set_options(**fields)
Définir les champs d'options pour le backend
Cette méthode est utilisée pour mettre à jour les options d'un backend. Si vous devez modifier l'une des options avant l'exécution, il vous suffit de passer le kwarg avec la nouvelle valeur des options.
Paramètres
champs - Les champs pour mettre à jour les options
Augmentations
AttributeError - Si le champ transmis ne fait pas partie des options