Skip to main content
IBM Quantum Platform

MitigationTask (qiskit_mitigation.mitigation_task)

MitigationTask

class MitigationTask

GitHub

Bases: object

Calcula los valores esperados de las magnitudes observables utilizando el ejecutor.

Esta clase es la clase base para todos los métodos de mitigación. Permite preparar un « QuantumProgram » que se puede ejecutar en el hardware mediante el Executor y procesar posteriormente los resultados para calcular los valores esperados de determinadas magnitudes observables.

Los parámetros de la tarea deben introducirse como datos de entrada en la función «prepare», y las variables pertinentes necesarias para el posprocesamiento se guardan internamente:

task = MitigationTask()
program = task.prepare(circuit=circuit,
                       observables=observables,
                       parameters=parameter_values)
job = executor.run(program)
results = job.result()
mitigated_result = task.postprocess(results)

Para calcular los valores esperados del resultado de un trabajo cargado, se puede crear una tarea a partir de los resultados del trabajo con todas las variables internas necesarias para el posprocesamiento. Como alternativa, las variables necesarias para el posprocesamiento pueden introducirse directamente como parámetros del método estático compute_expectation_value . Ejemplo de cómo ejecutar el posprocesamiento de un resultado cargado:

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)

Crear una instancia de MitigationTask.

Métodos

find_unique_layers

find_unique_layers(circuit, custom_boxing_options=None)

GitHub

Devuelve las capas empaquetadas únicas del circuito indicado utilizando las opciones de empaquetado especificadas.

Parámetros

  • circuit (QuantumCircuit) – El circuito que le confiere sus capas únicas.
  • custom_boxing_options (dict | None) – Las opciones de agrupación personalizadas que utilizará la función generate_boxing_pass_manager() .

Devuelve

Capas únicas en recuadros del circuito dado.

Tipo de retorno

lista [ CircuitInstruction ]

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)

GitHub

Crea un QuantumProgram para ejecutarlo mediante Executor.

Crea un elemento para un QuantumProgram, que se puede ejecutar mediante Executor. Si se quantum_program especifica un a, el nuevo elemento se añadirá al programa existente; de lo contrario, se creará un nuevo programa que contenga únicamente el elemento creado. La opción básica crea un elemento sin aplicar ningún método de mitigación al circuito. Si el valor es broadcast_obs_and_params «True», los observables y los parámetros se distribuirán siguiendo las reglas de distribución de Samplomatic, para permitir asociar algunos de los parámetros a algunos de los observables. De lo contrario, se ejecutará cada parámetro para cada observable (producto exterior de los parámetros y los observables). Ten en cuenta que el posprocesamiento de un producto exterior suele ser más rápido.

Parámetros

  • circuit (QuantumCircuit) – El circuito cuántico.
  • observables (ObservablesArray |Sequence[SparsePauliOp]) – Las magnitudes observables para calcular sus valores esperados.
  • parameters (ndarray |BindingsArray | None) – Los parámetros de un circuito paramétrico.
  • custom_boxing_options (dict | None) – Las opciones de agrupación personalizadas que utilizará la función generate_boxing_pass_manager() .
  • shots_per_randomization (int) – El número de inyecciones por aleatorización.
  • num_randomizations (int) – El número de aleatorizaciones.
  • broadcast_obs_and_params (bool) – Si se deben transmitir los observables y los parámetros.
  • trex (TREX | None) – Una instancia de mitigación de TREX que se utilizará para mitigar los errores de lectura.
  • quantum_program (QuantumProgram | None) – El programa de Quantum para añadir un artículo. Si es «None», se creará un nuevo programa.

Devuelve

Un QuantumProgram que se puede ejecutar mediante Executor.

Tipo de retorno

QuantumProgram

postprocess

postprocess(results, measure_noise_data=None)

GitHub

Valores esperados del proceso para el resultado de un único elemento.

Parámetros

  • results (QuantumProgramItemResult |QuantumProgramResult) – Resultados de la ejecución. Puede ser tanto el objeto de resultados completo como el resultado concreto de esta tarea. Si se añade la tarea de calibración TREX al programa cuántico, sus resultados se utilizarán para calcular los datos de ruido de medición, siempre que se facilite el objeto de resultados completo.
  • measure_noise_data (PauliLindbladMap |ndarray | None) – Los datos de ruido de medición obtenidos que se utilizarán para la mitigación de TREX. Si se especifica «None» y hay una tarea de calibración en el programa cuántico, el ruido de medición se calculará a partir de los resultados de la tarea de calibración, siempre que se facilite el objeto de resultados completo.

Devuelve

Un « PubResult » que contiene y evs std como campos en sus datos, donde evs son valores esperados y std son las desviaciones estándar de los valores esperados. Si broadcast_obs_and_params se establece en «True», los datos incluirán también un campo twirl_stds que representa la desviación estándar entre las diferentes aleatorizaciones.

Subidas

  • ValueError – Si el resultado de la tarea no tiene ninguna clave '_meas' .
  • ValueError – Si los datos '_meas' del resultado del elemento tienen un número de ejes no válido.
  • ValueError – Si param_shape y observables.shape no pueden emitirse simultáneamente, mientras que broadcast_obs_and_params se estableció en durante True la preparación de la tarea.

Tipo de retorno

PubResult

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)

GitHub

Valores esperados del proceso para el resultado de un único elemento.

Esta función se puede utilizar para calcular los valores esperados de un resultado de un elemento concreto sin mitigar, sin necesidad de crear una nueva instancia de la clase.

Parámetros

  • item_result (QuantumProgramItemResult) – El resultado del artículo.
  • observables (ObservablesArray |Sequence[SparsePauliOp]) – Las variables observables para las que se van a calcular los valores esperados.
  • param_shape (tuple[int, ...] | None) – El formato de los valores de los parámetros.
  • param_basis_pairs (list[tuple[tuple[int, ...], str]] | None) – La correspondencia entre los parámetros y los índices para medir la base.
  • meas_bases (Sequence[Pauli] | Sequence[str] | PauliList | None) – Una lista de las bases de Pauli medidas. El elemento i éste es una base de medida que se supone que corresponde a la ésta i sección de los datos en item_result.
  • broadcast_obs_and_params (bool) – Si se deben transmitir los observables y los valores de los parámetros.
  • measure_noise_data (PauliLindbladMap |ndarray | None) – Datos de calibración del ruido de medición para la mitigación de TREX.

Devuelve

Un « PubResult » que contiene y evs std como campos en sus datos, donde evs son valores esperados y std son las desviaciones estándar de los valores esperados. Si broadcast_obs_and_params se establece en «True», los datos incluirán también un campo twirl_stds que representa la desviación estándar entre las diferentes aleatorizaciones.

Subidas

  • ValueError – Si no item_result tiene ninguna clave '_meas' .
  • ValueError – Si item_result['_meas'] tiene un número de ejes no válido.
  • ValueError – Si y param_shape observables.shape no pueden emitirse simultáneamente.

Tipo de retorno

PubResult

create_instance_from_passthrough_data

static create_instance_from_passthrough_data(passthrough, trex=None)

GitHub

Crear una instancia de MitigationTask a partir de un diccionario de paso cargado desde el resultado de la ejecución de un programa cuántico.

Parámetros

  • passthrough (dict[str, Any]) – Diccionario «Passthrough_data» cargado a partir del resultado de la ejecución de un programa cuántico.
  • trex (TREX | None) – Una instancia de TREX que contiene un circuito de calibración se ejecuta en el mismo programa cuántico. Debe mantenerse None en caso de que no se haya utilizado la mitigación TREX o no se haya ejecutado una calibración TREX como parte del mismo programa cuántico.

Devuelve

Una instancia de « MitigationTask ».

Tipo de retorno

MitigationTask

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.