MitigationTask (qiskit_mitigation.mitigation_task)
MitigationTask
class MitigationTask
Bases : object
Calcule les valeurs attendues des observables à l'aide de l'exécuteur.
Cette classe est la classe de base de toutes les méthodes d'atténuation. Il permet de préparer une « QuantumProgram » pouvant être exécutée sur du matériel à l’aide de l’Executor, puis de traiter les résultats afin de calculer les valeurs attendues d’observables données.
Les paramètres de la tâche doivent être fournis en entrée à la fonction prepare, et les variables pertinentes nécessaires au post-traitement sont enregistrées en interne :
task = MitigationTask()
program = task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values)
job = executor.run(program)
results = job.result()
mitigated_result = task.postprocess(results)Pour calculer les valeurs attendues du résultat d'un travail chargé, il est possible de créer une tâche à partir des résultats du travail, en incluant toutes les variables internes nécessaires au post-traitement. Il est également possible de fournir directement les variables nécessaires au post-traitement en paramètre à la méthode statique compute_expectation_value . Exemple d'exécution d'un post-traitement sur un résultat chargé :
task = MitigationTask()
program = task.prepare(circuit=circuit,
observables=observables,
parameters=parameter_values)
job_id = executor.run(program).job_id
job = service.job(job_id)
results = job.result()
task = load_tasks_from_result(results)[0]
mitigated_result = task.postprocess(results)Instancier un objet de type « MitigationTask ».
Méthodes
find_unique_layers
find_unique_layers(circuit, custom_boxing_options=None)
Renvoie les couches « boxed » uniques du circuit donné en utilisant les options de « boxing » indiquées.
Paramètres
- circuit (QuantumCircuit) – Le circuit qui lui confère ses couches uniques.
- custom_boxing_options (dict | None) – Les options de mise en encadré personnalisées qui seront utilisées par la fonction
generate_boxing_pass_manager().
Retours
Couches uniques encadrées du circuit donné.
Type de retour
prepare
prepare(circuit, observables, parameters, custom_boxing_options=None, shots_per_randomization=64, num_randomizations=128, broadcast_obs_and_params=False, trex=None, quantum_program=None)
Crée un QuantumProgram destiné à être exécuté via Executor.
Crée un élément pour un QuantumProgram, qui peut être exécuté via Executor. Si un est quantum_program fourni, le nouvel élément sera ajouté au programme existant; dans le cas contraire, un nouveau programme sera créé, ne contenant que l'élément créé. L'option de base permet de créer un élément sans qu'aucune méthode d'atténuation ne soit appliquée au circuit. Si cette option est broadcast_obs_and_params activée, les observables et les paramètres seront diffusés selon les règles de diffusion de Samplomatic, afin de permettre d'associer certains paramètres à certaines observables. Sinon, chaque paramètre sera évalué pour chaque observable (produit extérieur des paramètres et des observables). Il convient de noter que le post-traitement d'un produit scalaire est généralement plus rapide.
Paramètres
- circuit (QuantumCircuit) – Le circuit quantique.
- observables (ObservablesArray |Sequence[SparsePauliOp]) – Les observables permettant de calculer leurs valeurs attendues.
- parameters (ndarray |BindingsArray | None) – Les paramètres d'un circuit paramétrique.
- custom_boxing_options (dict | None) – Les options de mise en encadré personnalisées qui seront utilisées par la fonction
generate_boxing_pass_manager(). - shots_per_randomization (int) – Le nombre d'injections par randomisation.
- num_randomizations (int) – Le nombre de randomisations.
- broadcast_obs_and_params (bool) – Déterminer s'il faut diffuser les observables et les paramètres.
- trex (TREX | None) – Une instance de correction TREX qui sera utilisée pour corriger les erreurs de lecture.
- quantum_program (QuantumProgram | None) – Le programme Quantum permettant d'ajouter un élément. Si la valeur est « None », un nouveau programme sera créé.
Retours
Un qui QuantumProgram peut être exécuté via Executor.
Type de retour
postprocess
postprocess(results, measure_noise_data=None)
Valeurs attendues du traitement pour un résultat concernant un seul élément.
Paramètres
- results (QuantumProgramItemResult |QuantumProgramResult) – Résultats de l'exécution. Il peut s'agir soit de l'objet « résultats » dans son intégralité, soit du résultat de cette tâche. Si la tâche d'étalonnage TREX est ajoutée au programme quantique, ses résultats seront utilisés pour calculer les données relatives au bruit de mesure, à condition que l'objet de résultats soit fourni dans son intégralité.
- measure_noise_data (PauliLindbladMap |ndarray | None) – Les données relatives au bruit de mesure recueillies, à utiliser pour atténuer l'effet TREX. Si la valeur est « None » et qu’une tâche d’étalonnage est présente dans le programme quantique, le bruit de mesure sera calculé à partir des résultats de la tâche d’étalonnage, à condition que l’objet « results » soit fourni dans son intégralité.
Retours
Un tableau de type PubResult contenant les std champs et evs dans ses données, où evs représentent std les valeurs attendues et les écarts-types de ces valeurs attendues. Si cette option est broadcast_obs_and_params définie sur « True », les données contiendront également un champ twirl_stds correspondant à l'écart-type entre les différentes randomisations.
Augmentations
- ValueError – Si le résultat de la tâche ne comporte pas de clé
'_meas'. - ValueError – Si les données
'_meas'du résultat de l'élément comportent un nombre d'axes non valide. - ValueError – Si et
param_shapeobservables.shapene peuvent pas être diffusés l'un par rapport à l'autre, alors quebroadcast_obs_and_paramsavait été défini surTruelors de la préparation de la tâche.
Type de retour
compute_expectation_value
static compute_expectation_value(item_result, observables, param_shape=None, param_basis_pairs=None, meas_bases=None, broadcast_obs_and_params=False, measure_noise_data=None)
Valeurs attendues du traitement pour un résultat concernant un seul élément.
Cette fonction permet de calculer les valeurs attendues d'un résultat d'élément unique non atténué sans avoir à créer une nouvelle instance de classe.
Paramètres
- item_result (QuantumProgramItemResult) – Le résultat de l'opération.
- observables (ObservablesArray |Sequence[SparsePauliOp]) – Les observables pour lesquelles il faut calculer les valeurs attendues.
- param_shape (tuple[int, ...] | None) – Le format des valeurs des paramètres.
- param_basis_pairs (list[tuple[tuple[int, ...], str]] | None) – La correspondance entre les paramètres et les indices de la base de mesure.
- meas_bases (Sequence[Pauli] | Sequence[str] | PauliList | None) – Liste des bases de Pauli mesurées. Le -ième
iélément est une base de mesure supposée correspondre à la -ièmeitranche des données contenues dansitem_result. - broadcast_obs_and_params (bool) – Indique s'il faut diffuser les observables et les valeurs des paramètres.
- measure_noise_data (PauliLindbladMap |ndarray | None) – Données d'étalonnage du bruit de mesure pour l'atténuation du TREX.
Retours
Un tableau de type PubResult contenant les std champs et evs dans ses données, où evs représentent std les valeurs attendues et les écarts-types de ces valeurs attendues. Si cette option est broadcast_obs_and_params définie sur « True », les données contiendront également un champ twirl_stds correspondant à l'écart-type entre les différentes randomisations.
Augmentations
- ValueError – Si ne possède
item_resultpas de clé'_meas'. - ValueError – Si le nombre d’axes n’est
item_result['_meas']pas valide. - ValueError – Si et
param_shapene peuventobservables.shapepas être diffusés l’un par rapport à l’autre.
Type de retour
create_instance_from_passthrough_data
static create_instance_from_passthrough_data(passthrough, trex=None)
Créer une instance de MitigationTask à partir d'un dictionnaire de transfert chargé à partir du résultat de l'exécution d'un programme quantique.
Paramètres
- passthrough (dict[str, Any]) – Dictionnaire « Passthrough_data » chargé à partir du résultat de l'exécution d'un programme quantique.
- trex (TREX | None) – Une instance TREX contenant un circuit d'étalonnage est exécutée dans le même programme quantique. Doit être conservé
Nonesi la fonction d'atténuation TREX n'a pas été utilisée ou si aucun calibrage TREX n'a été effectué dans le cadre du même programme quantique.
Retours
Une instance de « MitigationTask ».
Type de retour