Skip to main contentIBM Quantum Documentation
This page is from an old version of Qiskit SDK and does not exist in the latest version. We recommend you migrate to the latest version. See the release notes for more information.

QuantumInstance

class QuantumInstance(backend, shots=None, seed_simulator=None, max_credits=None, basis_gates=None, coupling_map=None, initial_layout=None, pass_manager=None, bound_pass_manager=None, seed_transpiler=None, optimization_level=None, backend_options=None, noise_model=None, timeout=None, wait=5.0, skip_qobj_validation=True, measurement_error_mitigation_cls=None, cals_matrix_refresh_period=30, measurement_error_mitigation_shots=None, job_callback=None, mit_pattern=None, max_job_retries=50)

GitHub

Bases: object

Quantum Backend including execution setting.

Quantum Instance holds a Qiskit Terra backend as well as configuration for circuit transpilation and execution. When provided to an Aqua algorithm the algorithm will execute the circuits it needs to run using the instance.

Parameters

  • backend (Union['Backend', 'BaseBackend']) – Instance of selected backend
  • shots (Optional[int]) – Number of repetitions of each circuit, for sampling. If None, the shots are extracted from the backend. If the backend has none set, the default is 1024.
  • seed_simulator (Optional[int]) – Random seed for simulators
  • max_credits (Optional[int]) – DEPRECATED This parameter is deprecated as of Qiskit Terra 0.20.0, and will be removed in a future release. This parameter has no effect on modern IBM Quantum systems, and no alternative is necessary.
  • basis_gates (Optional[List[str]]) – List of basis gate names supported by the target. Defaults to basis gates of the backend.
  • coupling_map (Optional[Union['CouplingMap', List[List]]]) – Coupling map (perhaps custom) to target in mapping
  • initial_layout (Optional[Union['Layout', Dict, List]]) – Initial layout of qubits in mapping
  • pass_manager (Optional['PassManager']) – Pass manager to handle how to compile the circuits. To run only this pass manager and not the bound_pass_manager, call the transpile() method with the argument pass_manager=quantum_instance.unbound_pass_manager.
  • bound_pass_manager (Optional['PassManager']) – A second pass manager to apply on bound circuits only, that is, circuits without any free parameters. To only run this pass manager and not pass_manager call the transpile() method with the argument pass_manager=quantum_instance.bound_pass_manager. manager should also be run.
  • seed_transpiler (Optional[int]) – The random seed for circuit mapper
  • optimization_level (Optional[int]) – How much optimization to perform on the circuits. Higher levels generate more optimized circuits, at the expense of longer transpilation time.
  • backend_options (Optional[Dict]) – All running options for backend, please refer to the provider of the backend for information as to what options it supports.
  • noise_model (Optional['NoiseModel']) – noise model for simulator
  • timeout (Optional[float]) – Seconds to wait for job. If None, wait indefinitely.
  • wait (float) – Seconds between queries for job result
  • skip_qobj_validation (bool) – Bypass Qobj validation to decrease circuit processing time during submission to backend.
  • measurement_error_mitigation_cls (Optional[Callable]) – The approach to mitigate measurement errors. The classes CompleteMeasFitter or TensoredMeasFitter from the qiskit.utils.mitigation module can be used here as exact values, not instances. TensoredMeasFitter doesn’t support the subset_fitter method.
  • cals_matrix_refresh_period (int) – How often to refresh the calibration matrix in measurement mitigation. in minutes
  • measurement_error_mitigation_shots (Optional[int]) – The number of shots number for building calibration matrix. If None, the main shots parameter value is used.
  • job_callback (Optional[Callable]) – Optional user supplied callback which can be used to monitor job progress as jobs are submitted for processing by an Aqua algorithm. The callback is provided the following arguments: job_id, job_status, queue_position, job
  • mit_pattern (Optional[List[List[int]]]) – Qubits on which to perform the TensoredMeasFitter measurement correction, divided to groups according to tensors. If None and qr is given then assumed to be performed over the entire qr as one group (default None).
  • max_job_retries (int) – positive non-zero number of trials for the job set (-1 for infinite trials) (default: 50)

Raises

  • QiskitError – the shots exceeds the maximum number of shots
  • QiskitError – set noise model but the backend does not support that
  • QiskitError – set backend_options but the backend does not support that

Methods

assemble

QuantumInstance.assemble(circuits)

assemble circuits

Return type

Qobj

cals_matrix

QuantumInstance.cals_matrix(qubit_index=None)

Get the stored calibration matrices and its timestamp.

Parameters

qubit_index (Optional[List[int]]) – the qubit index of corresponding calibration matrix. If None, return all stored calibration matrices.

Return type

Union[Tuple[ndarray, float], Dict[str, Tuple[ndarray, float]], None]

Returns

The calibration matrix and the creation timestamp if qubit_index is not None otherwise, return all matrices and their timestamp in a dictionary.

execute

QuantumInstance.execute(circuits, had_transpiled=False)

A wrapper to interface with quantum backend.

Parameters

  • circuits (Union['QuantumCircuit', List['QuantumCircuit']]) – circuits to execute
  • had_transpiled (bool) – whether or not circuits had been transpiled

Raises

  • QiskitError – Invalid error mitigation fitter class
  • QiskitError – TensoredMeasFitter class doesn’t support subset fitter
  • MissingOptionalLibraryError – Ignis not installed

Returns

result object

Return type

Result

TODO: Maybe we can combine the circuits for the main ones and calibration circuits before

assembling to the qobj.

maybe_refresh_cals_matrix

QuantumInstance.maybe_refresh_cals_matrix(timestamp=None)

Calculate the time difference from the query of last time.

Parameters

timestamp (Optional[float]) – timestamp

Return type

bool

Returns

Whether or not refresh the cals_matrix

reset_execution_results

QuantumInstance.reset_execution_results()

Reset execution results

Return type

None

set_config

QuantumInstance.set_config(**kwargs)

Set configurations for the quantum instance.

transpile

QuantumInstance.transpile(circuits, pass_manager=None)

A wrapper to transpile circuits to allow algorithm access the transpiled circuits.

Parameters

  • circuits (Union['QuantumCircuit', List['QuantumCircuit']]) – circuits to transpile
  • pass_manager (Optional['PassManager']) – A pass manager to transpile the circuits. If none is given, but either pass_manager or bound_pass_manager has been set in the initializer, these are run. If none has been provided there either, the backend and compile configs from the initializer are used.

Returns

The transpiled circuits, it is always a list even though

the length is one.

Return type

List[‘QuantumCircuit’]


Attributes

backend

Return BaseBackend backend object.

backend_config

Getter of backend_config.

backend_name

Return backend name.

backend_options

Getter of backend_options.

bound_pass_manager

Return the pass manager for designated for bound circuits.

Returns

The pass manager for bound circuits, if it has been set.

Return type

Optional[‘PassManager’]

cals_matrix_refresh_period

returns matrix refresh period

circuit_summary

Getter of circuit summary.

compile_config

Getter of compile_config.

is_local

Return True if backend is a local backend.

is_simulator

Return True if backend is a simulator.

is_statevector

Return True if backend is a statevector-type simulator.

max_job_retries

Getter of max tries

measurement_error_mitigation_cls

returns measurement error mitigation cls

measurement_error_mitigation_shots

returns measurement error mitigation shots

noise_config

Getter of noise_config.

qjob_config

Getter of qjob_config.

run_config

Getter of run_config.

skip_qobj_validation

checks if skip qobj validation

time_taken

Accumulated time taken for execution.

Return type

float

unbound_pass_manager

Return the pass manager for designated for unbound circuits.

Returns

The pass manager for unbound circuits, if it has been set.

Return type

Optional[‘PassManager’]

Was this page helpful?
Report a bug or request content on GitHub.