iqm.benchmarks.randomized_benchmarking.mirror_rb.mirror_rb.MirrorRBConfiguration#
- class iqm.benchmarks.randomized_benchmarking.mirror_rb.mirror_rb.MirrorRBConfiguration(*, benchmark: ~typing.Type[~iqm.benchmarks.benchmark_definition.Benchmark] = <class 'iqm.benchmarks.randomized_benchmarking.mirror_rb.mirror_rb.MirrorRandomizedBenchmarking'>, shots: int = 256, max_gates_per_batch: int | None = None, max_circuits_per_batch: int | None = None, calset_id: str | None = None, routing_method: ~typing.Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none'] = 'sabre', physical_layout: ~typing.Literal['fixed', 'batching'] = 'fixed', use_dd: bool | None = False, dd_strategy: ~iqm.iqm_client.models.DDStrategy | None = None, qubits_array: ~typing.Sequence[~typing.Sequence[int]], depths_array: ~typing.Sequence[~typing.Sequence[int]], num_circuit_samples: int, num_pauli_samples: int, qiskit_optim_level: int = 1, two_qubit_gate_ensemble: ~typing.Dict[str, float] = {'CZGate': 1.0}, density_2q_gates: float = 0.25, clifford_sqg_probability: float = 1.0, sqg_gate_ensemble: ~typing.Dict[str, float] | None = None, simulation_method: ~typing.Literal['automatic', 'statevector', 'stabilizer', 'extended_stabilizer', 'matrix_product_state'] = 'automatic')#
Bases:
BenchmarkConfigurationBase
Mirror RB configuration.
- Parameters:
shots (int) –
max_gates_per_batch (int | None) –
max_circuits_per_batch (int | None) –
calset_id (str | None) –
routing_method (Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none']) –
physical_layout (Literal['fixed', 'batching']) –
use_dd (bool | None) –
dd_strategy (DDStrategy | None) –
num_circuit_samples (int) –
num_pauli_samples (int) –
qiskit_optim_level (int) –
density_2q_gates (float) –
clifford_sqg_probability (float) –
simulation_method (Literal['automatic', 'statevector', 'stabilizer', 'extended_stabilizer', 'matrix_product_state']) –
- depths_array#
The array of physical depths in which to execute MRB for a corresponding qubit list. * If len is the same as that of qubits_array, each Sequence[int] corresponds to the depths for the corresponding layout of qubits. * If len is different from that of qubits_array, assigns the first Sequence[int].
- Type:
Sequence[Sequence[int]]
- qiskit_optim_level#
The Qiskit-level of optimization to use in transpilation. * Default is 1.
- Type:
- routing_method#
The routing method to use in transpilation. * Default is “sabre”.
- Type:
Literal[“basic”, “lookahead”, “stochastic”, “sabre”, “none”]
- two_qubit_gate_ensemble#
The two-qubit gate ensemble to use in the random mirror circuits. * Keys correspond to str names of qiskit circuit library gates, e.g., “CZGate” or “CXGate”. * Values correspond to the probability for the respective gate to be sampled. * Default is {“CZGate”: 1.0}.
- density_2q_gates#
The expected density of 2-qubit gates in the final circuits. * Default is 0.25.
- Type:
- clifford_sqg_probability#
Probability with which to uniformly sample Clifford 1Q gates. * Default is 1.0.
- Type:
- sqg_gate_ensemble#
A dictionary with keys being str specifying 1Q gates, and values being corresponding probabilities. * Default is None.
- simulation_method#
Qiskit’s Aer simulation method * Default is “automatic”.
- Type:
Literal[“automatic”, “statevector”, “stabilizer”, “extended_stabilizer”, “matrix_product_state”]
Attributes
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
max_gates_per_batch
max_circuits_per_batch
calset_id
physical_layout
use_dd
dd_strategy
Methods
- model_config: ClassVar[ConfigDict] = {}#
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].