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)
Bases : object
Spécification d'une expérience d'apprentissage.
An Experiment rassemble toutes les données nécessaires à la définition d'une expérience d'apprentissage du bruit : un modèle de fidélité, des chemins d'analyse, des séquences d'instructions, leurs relations et les paramètres d'exécution (tentatives et randomisations).
Tous les champs sont facultatifs et peuvent être renseignés progressivement via des instances ExperimentBuilderStage .
Paramètres
- fidelity_model – Un modèle de fidélité ou un ensemble de portes de modèle (encapsulé dans un
IdentityFidelityModel). - chemins – Chemins à analyser.
- instruction_sequences – Séquences d’instructions (pouvant inclure à la fois des instructions liées et non liées).
- relations – Ensemble de tuples
(path_idx, sequence_idx)indiquant quels chemins sont parcourus par quelles séquences d'instructions. - tirs – Nombre total de tirs (valeur par défaut : 20).
- randomisations – Nombre total de randomisations (valeur par défaut : 50).
- randomization_multipliers – Multiplicateur de randomisation par séquence (en parallèle avec instruction_sequences).
- valider – Si (
Truepar défaut), appliquer les mêmes contrôles de validation que (replace()remplacement conjoint, cohérence de la longueur, limites des relations).
__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)
Méthodes
Chronique « 1 » | Chronique « 2 » |
|---|---|
__init__(*[, fidelity_model, paths, ...]) | |
replace(*[, validate]) | Renvoie une copie superficielle dans laquelle les champs indiqués sont remplacés. |
Attributs
Chronique « 1 » | Chronique « 2 » |
|---|---|
design_matrix | La matrice de conception, calculée de manière différée à partir du modèle de fidélité et des chemins. |
fidelity_model | Le modèle de fidélité. |
gate_set | Le kit de portail miniature. |
instruction_sequences | Les séquences d'instructions. |
is_executable | Cette expérience dispose-t-elle de toutes les informations nécessaires à son exécution? |
paths | Les pistes d'analyse. |
randomization_multipliers | Multiplicateurs de randomisation par séquence. |
randomizations | Nombre total de randomisations. |
relations | L'ensemble des relations de chemin et de séquence. |
shots | Nombre total de tirs. |
fidelity_model
Type : LinearMap[Hashable, FidelityIndex] | None
Le modèle de fidélité.
gate_set
Type : ModelGateSet | None
Le kit de portail miniature.
paths
instruction_sequences
Type : list[InstructionSequence] | None
Les séquences d'instructions.
relations
shots
Type : int
Nombre total de tirs.
randomizations
Type : int
Nombre total de randomisations.
randomization_multipliers
design_matrix
Type : IndexedMatrix
La matrice de conception, calculée de manière différée à partir du modèle de fidélité et des chemins.
Augmentations
ValueError : si ou fidelity_model paths est égal à None.
is_executable
Type : bool
Cette expérience dispose-t-elle de toutes les informations nécessaires à son exécution?
Conditions requises : instruction_sequences est défini, toutes les séquences sont liées et complètes, et randomization_multipliers est défini.
replace
replace(*, validate: bool = True, **kwargs) → Experiment
Renvoie une copie superficielle dans laquelle les champs indiqués sont remplacés.
Lorsque ( validate=True par défaut), les vérifications suivantes sont appliquées :
- Co-remplacement :
instruction_sequencesetrandomization_multipliersdoivent toujours être tous les deuxNoneou tous les deux nonNone-. Le remplacement de l'un sans l'autre n'est autorisé que s'il préserve cet invariant. - Cohérence de longueur :
randomization_multipliersdoit avoir la même longueur queinstruction_sequences. - Limites des relations : la configuration nécessite
relationsla présenceinstruction_sequencesde etpaths; tous les indices doivent se situer dans les limites autorisées. - Invalidation souple : le remplacement de
pathsouinstruction_sequencessans fournir de nouvelle valeur pour définirarelationssurNoneet générerarelationsun avertissement.
Paramètres
- valider – Si
True, appliquer les vérifications ci-dessus. Dans ce casFalse, les champs sont renseignés tels quels, sans validation. - **kwargs – Noms des champs et leurs nouvelles valeurs.
Augmentations
- TypeError : si un nom de champ non reconnu est fourni.
- ValueError : en cas de violation d'une contrainte de validation.