qiskit Pacchetto

Interoperabilità qiskit per l'ecosistema Q#.

Questo modulo fornisce back-end Qiskit supportati dal simulatore Q# locale e NeutralAtomDevice, consentendo l'esecuzione dei circuiti Qiskit in locale senza alcuna connessione cloud.

Back-end disponibili:

  • QSharpBackend Esegue qualsiasi qiskit QuantumCircuit usando il simulatore Q#. Supporta la simulazione senza rumore tramite l'esportazione QASM e la compilazione QIR.

  • NeutralAtomBackend Esegue circuiti Qiskit nel simulatore NeutralAtomDevice locale. Scompone le porte al set di gate nativo {Rz, SX, CZ} e, facoltativamente, modella il rumore per ogni gate (inclusa la perdita di qubit). Gli scatti di perdita vengono esposti separatamente dai colpi accettati nel risultato del processo.

  • ResourceEstimatorBackend Stima le risorse quantistiche (qubit, T-gates e così via) per un circuito Qiskit senza eseguire una simulazione completa.

  • estimate Funzione di praticità che esegue la stima delle risorse in un circuito Qiskit e restituisce un oggetto EstimatorResult direttamente, senza dover costruire manualmente un back-end o un processo.

Utilizzo:

from qiskit import QuantumCircuit
from qdk.qiskit import NeutralAtomBackend
from qdk.simulation import NoiseConfig


circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure([0, 1], [0, 1])


noise = NoiseConfig()
noise.rz.loss = 0.05  # 5% qubit loss per Rz gate


backend = NeutralAtomBackend()
job = backend.run(circuit, shots=1000, noise=noise, seed=42)
result = job.result()
print(result.results[0].data.counts)      # accepted shots only
print(result.results[0].data.raw_counts)  # includes loss shots

Pacchetti

backends

Interoperabilità qiskit per l'ecosistema Q#.

Questo modulo fornisce back-end Qiskit supportati dal simulatore Q# locale e NeutralAtomDevice, consentendo l'esecuzione dei circuiti Qiskit in locale senza alcuna connessione cloud.

Back-end disponibili:

  • QSharpBackend Esegue qualsiasi qiskit QuantumCircuit usando il simulatore Q#. Supporta la simulazione senza rumore tramite l'esportazione QASM e la compilazione QIR.

  • NeutralAtomBackend Esegue circuiti Qiskit nel simulatore NeutralAtomDevice locale. Scompone le porte al set di gate nativo {Rz, SX, CZ} e, facoltativamente, modella il rumore per ogni gate (inclusa la perdita di qubit). Gli scatti di perdita vengono esposti separatamente dai colpi accettati nel risultato del processo.

  • ResourceEstimatorBackend Stima le risorse quantistiche (qubit, T-gates e così via) per un circuito Qiskit senza eseguire una simulazione completa.

  • estimate Funzione di praticità che esegue la stima delle risorse in un circuito Qiskit e restituisce un oggetto EstimatorResult direttamente, senza dover costruire manualmente un back-end o un processo.

Utilizzo:

from qiskit import QuantumCircuit
from qdk.qiskit import NeutralAtomBackend
from qdk.simulation import NoiseConfig


circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure([0, 1], [0, 1])


noise = NoiseConfig()
noise.rz.loss = 0.05  # 5% qubit loss per Rz gate


backend = NeutralAtomBackend()
job = backend.run(circuit, shots=1000, noise=noise, seed=42)
result = job.result()
print(result.results[0].data.counts)      # accepted shots only
print(result.results[0].data.raw_counts)  # includes loss shots
execution

Interoperabilità qiskit per l'ecosistema Q#.

Questo modulo fornisce back-end Qiskit supportati dal simulatore Q# locale e NeutralAtomDevice, consentendo l'esecuzione dei circuiti Qiskit in locale senza alcuna connessione cloud.

Back-end disponibili:

  • QSharpBackend Esegue qualsiasi qiskit QuantumCircuit usando il simulatore Q#. Supporta la simulazione senza rumore tramite l'esportazione QASM e la compilazione QIR.

  • NeutralAtomBackend Esegue circuiti Qiskit nel simulatore NeutralAtomDevice locale. Scompone le porte al set di gate nativo {Rz, SX, CZ} e, facoltativamente, modella il rumore per ogni gate (inclusa la perdita di qubit). Gli scatti di perdita vengono esposti separatamente dai colpi accettati nel risultato del processo.

  • ResourceEstimatorBackend Stima le risorse quantistiche (qubit, T-gates e così via) per un circuito Qiskit senza eseguire una simulazione completa.

  • estimate Funzione di praticità che esegue la stima delle risorse in un circuito Qiskit e restituisce un oggetto EstimatorResult direttamente, senza dover costruire manualmente un back-end o un processo.

Utilizzo:

from qiskit import QuantumCircuit
from qdk.qiskit import NeutralAtomBackend
from qdk.simulation import NoiseConfig


circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure([0, 1], [0, 1])


noise = NoiseConfig()
noise.rz.loss = 0.05  # 5% qubit loss per Rz gate


backend = NeutralAtomBackend()
job = backend.run(circuit, shots=1000, noise=noise, seed=42)
result = job.result()
print(result.results[0].data.counts)      # accepted shots only
print(result.results[0].data.raw_counts)  # includes loss shots
jobs

Interoperabilità qiskit per l'ecosistema Q#.

Questo modulo fornisce back-end Qiskit supportati dal simulatore Q# locale e NeutralAtomDevice, consentendo l'esecuzione dei circuiti Qiskit in locale senza alcuna connessione cloud.

Back-end disponibili:

  • QSharpBackend Esegue qualsiasi qiskit QuantumCircuit usando il simulatore Q#. Supporta la simulazione senza rumore tramite l'esportazione QASM e la compilazione QIR.

  • NeutralAtomBackend Esegue circuiti Qiskit nel simulatore NeutralAtomDevice locale. Scompone le porte al set di gate nativo {Rz, SX, CZ} e, facoltativamente, modella il rumore per ogni gate (inclusa la perdita di qubit). Gli scatti di perdita vengono esposti separatamente dai colpi accettati nel risultato del processo.

  • ResourceEstimatorBackend Stima le risorse quantistiche (qubit, T-gates e così via) per un circuito Qiskit senza eseguire una simulazione completa.

  • estimate Funzione di praticità che esegue la stima delle risorse in un circuito Qiskit e restituisce un oggetto EstimatorResult direttamente, senza dover costruire manualmente un back-end o un processo.

Utilizzo:

from qiskit import QuantumCircuit
from qdk.qiskit import NeutralAtomBackend
from qdk.simulation import NoiseConfig


circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure([0, 1], [0, 1])


noise = NoiseConfig()
noise.rz.loss = 0.05  # 5% qubit loss per Rz gate


backend = NeutralAtomBackend()
job = backend.run(circuit, shots=1000, noise=noise, seed=42)
result = job.result()
print(result.results[0].data.counts)      # accepted shots only
print(result.results[0].data.raw_counts)  # includes loss shots
passes

Interoperabilità qiskit per l'ecosistema Q#.

Questo modulo fornisce back-end Qiskit supportati dal simulatore Q# locale e NeutralAtomDevice, consentendo l'esecuzione dei circuiti Qiskit in locale senza alcuna connessione cloud.

Back-end disponibili:

  • QSharpBackend Esegue qualsiasi qiskit QuantumCircuit usando il simulatore Q#. Supporta la simulazione senza rumore tramite l'esportazione QASM e la compilazione QIR.

  • NeutralAtomBackend Esegue circuiti Qiskit nel simulatore NeutralAtomDevice locale. Scompone le porte al set di gate nativo {Rz, SX, CZ} e, facoltativamente, modella il rumore per ogni gate (inclusa la perdita di qubit). Gli scatti di perdita vengono esposti separatamente dai colpi accettati nel risultato del processo.

  • ResourceEstimatorBackend Stima le risorse quantistiche (qubit, T-gates e così via) per un circuito Qiskit senza eseguire una simulazione completa.

  • estimate Funzione di praticità che esegue la stima delle risorse in un circuito Qiskit e restituisce un oggetto EstimatorResult direttamente, senza dover costruire manualmente un back-end o un processo.

Utilizzo:

from qiskit import QuantumCircuit
from qdk.qiskit import NeutralAtomBackend
from qdk.simulation import NoiseConfig


circuit = QuantumCircuit(2, 2)
circuit.h(0)
circuit.cx(0, 1)
circuit.measure([0, 1], [0, 1])


noise = NoiseConfig()
noise.rz.loss = 0.05  # 5% qubit loss per Rz gate


backend = NeutralAtomBackend()
job = backend.run(circuit, shots=1000, noise=noise, seed=42)
result = job.result()
print(result.results[0].data.counts)      # accepted shots only
print(result.results[0].data.raw_counts)  # includes loss shots

Classi

EstimatorParams

Parametri di input di primo livello per l'Microsoft Strumento di stima delle risorse.

Estende EstimatorInputParamsItem con il supporto per l'invio in batch: passare num_items per creare un processo di invio in batch in cui ogni elemento può eseguire l'override dei parametri di primo livello.

EstimatorResult

Microsoft risultato dello strumento di stima delle risorse.

La classe rappresenta i risultati di stima delle risorse semplici, nonché l'invio in batch dei risultati della stima delle risorse. Quest'ultimo può essere indicizzato da un indice integer per accedere a un singolo risultato dal risultato dell'invio in batch.

NeutralAtomBackend

Back-end Qiskit che simula i circuiti usando la pipeline NeutralAtomDevice.

I circuiti vengono transpilati in OpenQASM 3 usando il set di gate nativo del dispositivo (Rz, SX, DLL), compilato in QIR tramite il compilatore Q#, quindi eseguito attraverso la pipeline di compilazione e simulazione NeutralAtomDevice. Il dispositivo gestisce l'ottimizzazione del gate a qubit singolo e la pianificazione dello spostamento di qubit. È possibile applicare un modello di disturbo facoltativo al comportamento realistico del dispositivo.

La destinazione del set di gate nativo garantisce che il transpiler di Qiskit scompone tutti i cancelli non nativi prima della simulazione, quindi il rumore configurato sui cancelli nativi (noise.rz, noise.sx, noise.cz, noise.mresetz) si comporta come previsto.

Il back-end del simulatore (Clifford, stato completo della CPU o stato completo gpu) viene selezionato automaticamente, a meno che non venga sottoposto a override tramite l'opzione simulator_type .

Esempio:


   from qiskit import QuantumCircuit
   from qdk.qiskit import NeutralAtomBackend
   from qdk.simulation import NoiseConfig

   qc = QuantumCircuit(2)
   qc.h(0)
   qc.cx(0, 1)
   qc.measure_all()

   # Noiseless simulation
   backend = NeutralAtomBackend()
   job = backend.run(qc, shots=1000)
   print(job.result().get_counts())

   # Noisy simulation
   noise = NoiseConfig()
   noise.cz.set_depolarizing(1e-3)
   noise.mresetz.set_bitflip(1e-3)

   job = backend.run(qc, shots=1000, noise=noise, seed=42)
   print(job.result().get_counts())
QSharpBackend

Back-end virtuale per l'esecuzione di circuiti Qiskit tramite il simulatore Q#.

QasmError

Errore restituito dal parser OpenQASM.

QirTarget

Factory per le istanze di Qiskit Target compatibili con QIR.

QsJob

Classe base astratta per i processi Q# Qiskit.

Gestisce l'esecuzione asincrona di un circuito quantistico tramite un invio chiamabile a un pool di thread. Le sottoclassi concrete devono implementare result e <xref:qdk.qiskit.QsJob._submit_duration>.

QsJobSet

Set di processi Qiskit che esegue più circuiti quantistici contemporaneamente.

Ogni circuito in run_input viene inviato come singolo utente QsSimJob ed eseguito in un pool di thread. result blocca fino al completamento di tutti i processi costitutivi e aggrega i relativi qiskit.result.Result oggetti in un unico risultato combinato.

QsSimJob

Processo Qiskit che esegue un circuito quantistico nel simulatore Q#.

Invia il circuito per la simulazione e restituisce un oggetto qiskit.result.Result contenente risultati di misurazione a livello di tiro.

ReJob

Processo Qiskit che esegue lo strumento di stima delle risorse Q#.

Invia il circuito allo strumento di stima delle risorse e restituisce un oggetto EstimatorResult con le stime delle risorse calcolate.

ResourceEstimatorBackend

Back-end virtuale per la stima delle risorse che stimano i circuiti Qiskit levaraging delle funzionalità di stima delle risorse Q#.

Funzioni

estimate

Stima le risorse per Qiskit QuantumCircuit.

estimate(circuit: QuantumCircuit, params: Dict[str, Any] | List | EstimatorParams | None = None, **options) -> EstimatorResult

Parametri

Nome Descrizione
circuit
Necessario

Oggetto QuantumCircuit di input.

params
EstimatorParams oppure dict oppure list

Parametri per configurare la stima fisica.

Valore predefinito: None
**options
Necessario

Opzioni aggiuntive per il transpiler, l'utilità di esportazione o Qiskit supera la configurazione. L'impostazione predefinita è valori di configurazione back-end. Opzioni comuni:

  • optimization_level (int): livello di ottimizzazione transpiler.

  • basis_gates (elenco): cancelli di base per la transpilazione.

  • includes (elenco): includere percorsi per la risoluzione QASM.

  • search_path (str): percorso di ricerca per la risoluzione dei riferimenti ai file.

Valori restituiti

Tipo Descrizione

Risorse stimate.

Eccezioni

Tipo Descrizione

Se si verifica un errore durante la generazione o l'analisi di QASM.