Skip to main content
IBM Quantum Platform

BasicSimulator

class qiskit.providers.basic_provider.BasicSimulator(provider=None, target=None, **fields)

GitHub

Bases : BackendV2

Python la mise en œuvre d'un simulateur quantique de base (non efficace).

Le simulateur prend en charge jusqu'à 24 qubits pour la simulation par vecteur d'état et jusqu'à 2 048 qubits pour la simulation par opérateurs de Clifford/stabilisateurs.

Paramètres

  • provider - Une référence optionnelle vers l'arrière à l'objet provider dont provient le backend.
  • target (Target | None) – Une cible optionnelle pour configurer le simulateur.
  • fields - kwargs pour les valeurs à utiliser pour remplacer les options par défaut.

Augmentations

AttributeError - Si un champ est spécifié en dehors des options du backend.


Attributs

MAX_QUBITS_CLIFFORD

Valeur par défaut : 2048

MAX_QUBITS_STATEVECTOR

Valeur par défaut : 24

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

Retours

Le pas de temps du signal de sortie en secondes.

Augmentations

NotImplementedError - si le backend ne permet pas d'interroger le signal de sortie timetep

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

Retourne le regroupement des mesures qui sont multiplexées

Cette fonction doit être mise en œuvre si le backend prend en charge la planification de Pulse.

Retours

Le regroupement des mesures qui sont multiplexées

Augmentations

NotImplementedError - si le backend ne permet pas d'interroger la cartographie des mesures

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é. Ceux-ci 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

fournisseur

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)

GitHub

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

QubitProperties | liste [ QubitProperties ]

run

run(run_input, **run_options)

GitHub

Exécuter sur le backend.

Paramètres

  • run_input (QuantumCircuit orlist) – l' QuantumCircuit (ou la liste des objets de type « QuantumCircuit ») à exécuter
  • run_options (kwargs) – options supplémentaires du backend d'exécution

Retours

dérivé de BaseJob

Type de retour

BasicProviderJob

Renseignements supplémentaires :

  • les options kwarg spécifiées dans run_options remplacent temporairement toutes les options set du même nom pour l'exécution en cours. Il peut s'agir de

    • "Initial_statevector" : vectoriel. L'option "initial_statevector" spécifie un vecteur d'état initial personnalisé à utiliser à la place de l'état entièrement nul. La taille de ce vecteur doit correspondre au nombre de qubits de l'argument run_input .
    • "Semence_simulateur" : int. Il s'agit de la semence interne pour la génération d'échantillons.
    • "shots" : int. Nombre de tirs utilisés dans la simulation.
    • "memory" : bool. S'il est vrai, le résultat contiendra les résultats de chaque simulation de tir.
    • « use_clifford_optimization » : booléen. Si la valeur est True, cela active l'optimisation des circuits de Clifford à l'aide du formalisme des stabilisateurs. Valeur par défaut : False.

Exemple :

backend.run(
    circuit_2q,
    initial_statevector = np.array([1, 0, 0, 1j]) / math.sqrt(2)
)

set_options

set_options(**fields)

GitHub

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

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