Skip to main content
IBM Quantum Platform

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)

GitHub

Basen: BackendV2

Generische BackendV2 implementierung mit einem konfigurierbaren Konstruktor. Diese Klasse gibt eine BackendV2 instanz zurück, die auf einem lokalen Simulator läuft (im Sinne von Fake-Backends) und alle notwendigen Informationen enthält, um Backend-anschließende Komponenten, wie den Transpiler, zu testen. A GenericBackendV2 instanz kann bereits ab einer bestimmten num_qubits aufgebaut werden, aber die Benutzer können zusätzlich die Basisgatter, die Kopplungskarte, die Fähigkeit zur Ausführung dynamischer Schaltungen (Kontrollflussanweisungen) und dtm konfigurieren. Die übrigen Backend-Eigenschaften werden durch Zufallsstichproben aus Standardbereichen generiert, die aus historischen IBM Backend-Daten extrahiert wurden. Der Seed für diese Zufallsgenerierung kann festgelegt werden, um die Reproduzierbarkeit der Backend-Ausgabe zu gewährleisten. Dieses Backend unterstützt nur Gates in der Standardbibliothek. Wenn Sie ein flexibleres Backend benötigen, gibt es immer die Möglichkeit, direkt ein Target objekt zu instanziieren, das für die Transpilierung verwendet wird.

Parameter

  • num_qubits (int) – Anzahl der Qubits, die verwendet werden, um das Ziel des Backends zu konstruieren. Es ist zu beachten, dass es zwar keine Begrenzung für die Größe des Ziels gibt, das konstruiert werden kann, aber dieses Backend läuft auf lokalen, verrauschten Simulatoren, und diese können Einschränkungen bei der Anzahl der simulierbaren Qubits aufweisen.

  • basis_gates (list[str] | None) – Liste der Basis-Gate-Namen, die vom Target unterstützt werden sollen. Diese müssen Teil der standardmäßigen qiskit-Schaltkreisbibliothek sein. Der Standardsatz von Basisgattern ist ["id", "rz", "sx", "x", "cx"] . Die Anweisungen "reset", "delay" und "measure" werden standardmäßig immer unterstützt, auch wenn sie nicht über basis_gates angegeben werden.

  • coupling_map (list[list[int]] | CouplingMap | None) –

    Optionale Kopplungskarte für das Backend. Es werden mehrere Formate unterstützt:

    1. CouplingMap instanz
    2. Liste, muss als Kantenliste angegeben werden, die z. B. die beiden vom Backend unterstützten Qubit-Interaktionen darstellt: [[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]

    Wenn coupling_map angegeben ist, muss die Anzahl der Qubits mit der in num_qubits angegebenen Anzahl übereinstimmen. Wenn coupling_map nicht angegeben wird, wird eine vollständig verbundene Kopplungskarte mit num_qubits qubits erzeugt.

  • control_flow (bool) – Kennzeichen zur Aktivierung von Kontrollflussdirektiven auf dem Ziel (Standardwert: False).

  • dtm (float | None) – Systemzeitauflösung der Ausgangssignale in Nanosekunden. Standardmäßig keine.

  • dt (float | None) – Systemzeitauflösung der Eingangssignale in Nanosekunden. Standardmäßig keine.

  • seed (int | None) – Optionaler Seed für die Generierung von Standardwerten.

  • noise_info (bool) – Wenn "true", werden Gates und Qubits mit Standard-Rauschinformationen verknüpft.


Attribute

coupling_map

Geben Sie das CouplingMap objekt

dt

Rückgabe der Systemzeitauflösung der Eingangssignale

Dies muss implementiert werden, wenn das Backend die Impulsplanung unterstützt.

Rückgabe

Der Zeitschritt des Eingangssignals in Sekunden. Wenn das Backend nicht dt definiert, wird None zurückgegeben.

dtm

Rückgabe der Systemzeitauflösung der Ausgangssignale

instruction_durations

Geben Sie das InstructionDurations objekt.

instructions

Eine Liste von Befehlstupeln auf der Backend-Seite des Formulars (instruction, (qubits))

max_circuits

meas_map

num_qubits

Gibt die Anzahl der Qubits zurück, die das Backend hat.

operation_names

Eine Liste von Befehlsnamen, die das Backend unterstützt.

operations

Eine Liste von Instruction instanzen, die das Backend unterstützt.

options

Rückgabe der Optionen für das Backend

Die Optionen eines Backends sind die dynamischen Parameter, die festlegen, wie das Backend verwendet wird. Diese werden zur Steuerung der run() methode.

provider

Rückgabe des Backend-Anbieters.

Rückgabe

der für das Backend zuständige Anbieter.

Rückgabetyp

Anbieter

target

version

Standardwert: 2

name

Name des Backends.

description

Optionale, von Menschen lesbare Beschreibung.

online_date

Datum, an dem das Backend online ging.

backend_version

Version des bereitgestellten Backends. Dies ist nicht dasselbe wie BackendV2.versiondie die Version der Backend abstrakten Schnittstelle ist.


Methoden

qubit_properties

qubit_properties(qubit)

GitHub

Rückgabe QubitProperties für ein gegebenes Qubit.

Wenn keine Details definiert sind oder das Backend die Abfrage dieser Details nicht unterstützt, muss diese Methode nicht implementiert werden.

Parameter

qubit (int |list[int]) – Das Qubit, für das das QubitProperties Objekt benötigt wird. Dies kann eine einzelne Ganzzahl für 1 Qubit sein oder eine Liste von Qubits; eine Liste von QubitProperties Objekten wird in derselben Reihenfolge zurückgegeben

Rückgabe

Das QubitProperties objekt für das angegebene Qubit. Wenn eine Liste von Qubits angegeben wird, wird eine Liste zurückgegeben. Wenn Eigenschaften für ein Qubit fehlen, kann dies None sein.

Erhöht

NotImplementedError - wenn das Backend die Abfrage der Qubit-Eigenschaften nicht unterstützt

Rückgabetyp

QubitProperties | Liste [ QubitProperties ]

run

run(run_input, **options)

GitHub

Ausführung im Backend mit Hilfe eines Simulators.

Diese Methode führt Schaltkreisaufträge (einen einzelnen oder eine Liste von QuantumCircuit ) mithilfe von BasicSimulator oder dem Aer-Simulator aus und gibt ein Job -Objekt zurück.

Wenn qiskit-aer installiert ist, werden die Aufträge unter Verwendung des AerSimulator with noise-Modells des Backends ausgeführt. Andernfalls werden die Aufträge unter Verwendung des BasicSimulator Simulators ohne Rauschen ausgeführt.

Parameter

  • run_input (QuantumCircuit orlist) – Ein einzelnes Objekt oder eine Liste von QuantumCircuit Objekten, die im Backend ausgeführt werden sollen.
  • options - Beliebige kwarg-Optionen, die an das Backend zur Ausführung der Konfiguration übergeben werden. Wenn ein Schlüssel auch im Options-Attribut/Objekt vorhanden ist, wird erwartet, dass der angegebene Wert anstelle des im Options-Objekt eingestellten Wertes verwendet wird.

Rückgabe

Das Auftragsobjekt für den Lauf

Rückgabetyp

job

Erhöht

set_options

set_options(**fields)

GitHub

Einstellen der Optionsfelder für das Backend

Diese Methode wird verwendet, um die Optionen eines Backends zu aktualisieren. Wenn Sie eine der Optionen vor der Ausführung ändern müssen, geben Sie einfach den kwarg mit den neuen Werten für die Optionen ein.

Parameter

fields - Die Felder zur Aktualisierung der Optionen

Erhöht

AttributeError - Wenn das übergebene Feld nicht Teil der Optionen ist

War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.