qiskit_noise_learning.experiment_builder.Experiment
class qiskit_noise_learning.experiment_builder.Experiment(*, fidelity_model: LinearMap[Hashable, FidelityIndex] | ModelGateSet | None = None, paths: list[Path] | None = None, instruction_sequences: list[InstructionSequence] | None = None, relations: set[tuple[int, int]] | None = None, shots: int = 20, randomizations: int = 50, randomization_multipliers: list[int] | None = None, validate: bool = True)
Basi: object
Specifiche di un esperimento didattico.
An raccoglie Experiment tutti i dati necessari per definire un esperimento di apprendimento del rumore: un modello di fedeltà, percorsi di analisi, sequenze di istruzioni, le loro relazioni e i parametri di esecuzione (tiri e randomizzazioni).
Tutti i campi sono facoltativi e possono essere compilati progressivamente tramite le ExperimentBuilderStage istanze.
Parametri
- fidelity_model – Un modello di fedeltà o un insieme di gate del modello (racchiuso in un
IdentityFidelityModel). - percorsi – Percorsi da analizzare.
- sequenze_di_istruzioni – Sequenze di istruzioni (possono includere sia istruzioni vincolate che non vincolate).
- relazioni – Insieme di tuple
(path_idx, sequence_idx)che indicano quali percorsi vengono percorsi da quali sequenze di istruzioni. - colpi – Numero totale di colpi (impostazione predefinita: 20).
- randomizzazioni – Numero totale di randomizzazioni (valore predefinito: 50).
- randomization_multipliers – Moltiplicatore di randomizzazione per sequenza (parallelo a instruction_sequences).
- convalida – Se (
Trueimpostazione predefinita), applica gli stessi controlli di convalida di (replace()sostituzione reciproca, coerenza della lunghezza, limiti delle relazioni).
__init__
__init__(*, fidelity_model: LinearMap[Hashable, FidelityIndex] | ModelGateSet | None = None, paths: list[Path] | None = None, instruction_sequences: list[InstructionSequence] | None = None, relations: set[tuple[int, int]] | None = None, shots: int = 20, randomizations: int = 50, randomization_multipliers: list[int] | None = None, validate: bool = True)
Metodi
Rubrica 1 | Rubrica 2 |
|---|---|
__init__(*[, fidelity_model, paths, ...]) | |
replace(*[, validate]) | Restituisce una copia superficiale in cui i campi specificati vengono sovrascritti. |
Attributi
Rubrica 1 | Rubrica 2 |
|---|---|
design_matrix | La matrice di progettazione, calcolata in modo differito a partire dal modello di fedeltà e dai percorsi. |
fidelity_model | Il modello di fedeltà. |
gate_set | Il set di cancelli in miniatura. |
instruction_sequences | Le sequenze di istruzioni. |
is_executable | Se questo esperimento disponga di tutte le informazioni necessarie per essere eseguito. |
paths | I percorsi di analisi. |
randomization_multipliers | Moltiplicatori di randomizzazione per sequenza. |
randomizations | Numero complessivo di randomizzazioni. |
relations | L'insieme delle relazioni di percorso e di sequenza. |
shots | Numero totale di dosi somministrate. |
fidelity_model
Tipo: LinearMap[Hashable, FidelityIndex] | None
Il modello di fedeltà.
gate_set
Tipo: ModelGateSet | None
Il set di cancelli in miniatura.
paths
instruction_sequences
Tipo: list[InstructionSequence] | None
Le sequenze di istruzioni.
relations
shots
Tipo: int
Numero totale di dosi somministrate.
randomizations
Tipo: int
Numero complessivo di randomizzazioni.
randomization_multipliers
design_matrix
Tipo: IndexedMatrix
La matrice di progettazione, calcolata in modo differito a partire dal modello di fedeltà e dai percorsi.
Aumenti
ValueError : se o fidelity_model paths è None.
is_executable
Tipo: bool
Se questo esperimento disponga di tutte le informazioni necessarie per essere eseguito.
Requisiti: instruction_sequences sia definito, tutte le sequenze siano determinate e complete e randomization_multipliers sia definito.
replace
replace(*, validate: bool = True, **kwargs) → Experiment
Restituisce una copia superficiale in cui i campi specificati vengono sovrascritti.
Quando validate=True (impostazione predefinita), vengono applicati i seguenti controlli:
- Sostituzione congiunta :
instruction_sequenceserandomization_multipliersdevono sempre essere entrambiNoneoppure entrambi nonNone-. La sostituzione di uno dei due senza l'altro è consentita solo se preserva questa invariante. - Coerenza della lunghezza :
randomization_multipliersdeve avere la stessa lunghezza diinstruction_sequences. - Limiti delle relazioni : l'impostazione richiede
relationsinstruction_sequencesla presenza di epaths, e tutti gli indici devono rientrare nei limiti. - Invalidazione soft : la sostituzione di
pathsoinstruction_sequencessenza specificare un nuovorelationsimposteràrelationssuNonecon un avviso.
Parametri
- convalida – Se
True, applica i controlli sopra indicati. In tal casoFalse, i campi vengono impostati così come sono, senza alcuna verifica. - **kwargs – Nomi dei campi e relativi nuovi valori.
Aumenti
- TypeError : se viene specificato un nome di campo non riconosciuto.
- ValueError : se viene violato un vincolo di convalida.