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)
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 überbasis_gatesangegeben werden. -
coupling_map (list[list[int]] | CouplingMap | None) –
Optionale Kopplungskarte für das Backend. Es werden mehrere Formate unterstützt:
CouplingMapinstanz- 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_mapangegeben ist, muss die Anzahl der Qubits mit der innum_qubitsangegebenen Anzahl übereinstimmen. Wenncoupling_mapnicht angegeben wird, wird eine vollständig verbundene Kopplungskarte mitnum_qubitsqubits 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
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)
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
run
run(run_input, **options)
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
QuantumCircuitObjekten, 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
Erhöht
- QiskitError – Wenn die Eingabe nicht
QuantumCircuitoder eine Liste von - QuantumCircuit –
set_options
set_options(**fields)
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