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)
Basi: BackendV2
Generico BackendV2 con un costruttore configurabile. Questa classe restituirà un'istanza BackendV2 che gira su un simulatore locale (nello spirito dei falsi backend) e contiene tutte le informazioni necessarie per testare i componenti di interfaccia con i backend, come il transpiler. A GenericBackendV2 può essere costruita a partire da un numero limitato di num_qubits, ma gli utenti possono configurare in aggiunta le porte di base, la mappa di accoppiamento, la capacità di eseguire circuiti dinamici (istruzioni di flusso di controllo) e il dtm. Le restanti proprietà del backend sono generate con un campionamento casuale da intervalli predefiniti estratti dai dati storici del backend IBM. Il seme per questa generazione casuale può essere fissato per garantire la riproducibilità dell'output del backend. Questo backend supporta solo le porte della libreria standard; se si ha bisogno di un backend più flessibile, c'è sempre la possibilità di istanziare direttamente un oggetto Target da usare per la trasposizione.
Parametri
-
num_qubits (int) – Numero di qubit che verranno utilizzati per costruire il target del backend. Si noti che, sebbene non vi sia alcun limite nella dimensione dell'obiettivo che può essere costruito, questo backend funziona su simulatori locali rumorosi, che potrebbero presentare limitazioni nel numero di qubit che possono essere simulati.
-
basis_gates (list[str] | None) – Elenco dei nomi dei gate di base che devono essere supportati dalla destinazione. Questi devono far parte della libreria di circuiti standard di qiskit. L'insieme predefinito di porte base è
["id", "rz", "sx", "x", "cx"]Le istruzioni"reset","delay"e"measure"sono sempre supportate per impostazione predefinita, anche se non specificate tramitebasis_gates. -
coupling_map (list[list[int]] | CouplingMap | None) –
Mappa di accoppiamento opzionale per il backend. Sono supportati diversi formati:
CouplingMapistanza- Elenco, deve essere fornito come un elenco di bordi che rappresenta le interazioni tra due qubit supportate dal backend, ad esempio:
[[0, 1], [0, 3], [1, 2], [1, 5], [2, 5], [4, 1], [5, 3]]
Se viene specificato
coupling_map, deve corrispondere al numero di qubit specificato innum_qubits. Secoupling_mapnon è specificato, verrà generata una mappa di accoppiamento completamente connessa connum_qubitsqubit. -
control_flow (bool) – Flag per abilitare le direttive del flusso di controllo sulla destinazione (valore predefinito False).
-
dtm (float | None) – Risoluzione temporale del sistema dei segnali di uscita in nanosecondi. Nessuna per impostazione predefinita.
-
dt (float | None) – Risoluzione temporale del sistema dei segnali di ingresso in nanosecondi. Nessuna per impostazione predefinita.
-
seed (int | None) – Seme opzionale per la generazione di valori predefiniti.
-
noise_info (bool) – Se vero, associa le porte e i qubit con informazioni predefinite sul rumore.
Attributi
coupling_map
Restituire l'oggetto CouplingMap oggetto
dt
Restituzione della risoluzione temporale del sistema dei segnali di ingresso
È necessario implementare questa funzione se il backend supporta la programmazione degli impulsi.
Risultati
Il passo temporale del segnale di ingresso in secondi. Se il backend non definisce dt, verrà restituito None .
dtm
Restituzione della risoluzione temporale del sistema dei segnali di uscita
instruction_durations
Restituire l'oggetto InstructionDurations oggetto.
instructions
Un elenco di tuple di istruzioni nel backend del modulo (instruction, (qubits))
max_circuits
meas_map
num_qubits
Restituisce il numero di qubit di cui dispone il backend.
operation_names
Un elenco di nomi di istruzioni supportate dal backend.
operations
Un elenco di Instruction che il backend supporta.
options
Restituisce le opzioni per il backend
Le opzioni di un backend sono i parametri dinamici che definiscono le modalità di utilizzo del backend. Questi vengono utilizzati per controllare il run() metodo.
provider
Restituisce il fornitore di backend.
Risultati
il provider responsabile del backend.
Tipo di restituzione
target
version
Valore predefinito: 2
name
Nome del backend.
description
Descrizione facoltativa leggibile dall'uomo.
online_date
Data in cui il backend è stato messo online.
backend_version
Versione del backend fornito. Non è la stessa cosa di BackendV2.versionche è la versione dell'interfaccia Backend dell'interfaccia astratta.
Metodi
qubit_properties
qubit_properties(qubit)
Restituisce QubitProperties per un dato qubit.
Se non sono stati definiti o se il backend non supporta l'interrogazione di questi dettagli, questo metodo non deve essere implementato.
Parametri
qubit (int |list[int]) – Il qubit a cui QubitProperties destinare l'oggetto. Può trattarsi di un singolo numero intero corrispondente a 1 qubit oppure di un elenco di qubit; verrà restituito un elenco di QubitProperties oggetti nello stesso ordine
Risultati
L'oggetto QubitProperties per il qubit specificato. Se viene fornito un elenco di qubit, verrà restituito un elenco. Se mancano delle proprietà per un qubit, questo può essere None.
Aumenti
NotImplementedError - se il backend non supporta l'interrogazione delle proprietà dei qubit
Tipo di restituzione
run
run(run_input, **options)
Eseguire sul backend utilizzando un simulatore.
Questo metodo esegue i lavori del circuito (uno singolo o un elenco di QuantumCircuit ) utilizzando BasicSimulator il simulatore Aer e restituisce un Job oggetto.
Se qiskit-aer è installato, i lavori verranno eseguiti utilizzando il modello AerSimulator with noise del backend. Altrimenti, i lavori verranno eseguiti utilizzando il simulatore BasicSimulator senza rumore.
Parametri
- run_input (QuantumCircuit orlist) – Un singolo oggetto o un elenco di
QuantumCircuitoggetti da eseguire sul backend. - options - Qualsiasi opzione kwarg da passare al backend per l'esecuzione della configurazione. Se una chiave è presente anche nell'attributo/oggetto options, ci si aspetta che il valore specificato venga usato al posto di quello impostato nell'oggetto options.
Risultati
L'oggetto lavoro per la corsa
Tipo di restituzione
Aumenti
- QiskitError – Se l'input non
QuantumCircuitè o una lista di - QuantumCircuit –
set_options
set_options(**fields)
Impostare i campi delle opzioni per il backend
Questo metodo viene utilizzato per aggiornare le opzioni di un backend. Se è necessario modificare una qualsiasi opzione prima dell'esecuzione, è sufficiente passare il kwarg con il nuovo valore delle opzioni.
Parametri
campi - I campi per aggiornare le opzioni
Aumenti
AttributeError - Se il campo inserito non fa parte delle opzioni