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, calset_id: str | None = None, routing_method: ~typing.Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none'] = 'sabre', physical_layout: ~typing.Literal['fixed', 'batching'] = 'fixed', 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)#

Bases: BenchmarkConfigurationBase

Mirror RB configuration.

Parameters:
benchmark#

MirrorRandomizedBenchmarking.

Type:

Type[Benchmark]

qubits_array#

The array of physical qubits in which to execute MRB.

Type:

Sequence[Sequence[int]]

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]]

num_circuit_samples#

The number of random-layer mirror circuits to generate.

Type:

int

num_pauli_samples#

The number of random Pauli layers to interleave per mirror circuit.

Type:

int

shots#

The number of measurement shots to execute per circuit.

Type:

int

qiskit_optim_level#

The Qiskit-level of optimization to use in transpilation. * Default is 1.

Type:

int

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}.

Type:

Dict[str, float]

density_2q_gates#

The expected density of 2-qubit gates in the final circuits. * Default is 0.25.

Type:

float

Attributes

model_computed_fields

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

benchmark

qubits_array

depths_array

num_circuit_samples

num_pauli_samples

qiskit_optim_level

two_qubit_gate_ensemble

density_2q_gates

shots

max_gates_per_batch

calset_id

routing_method

physical_layout

Methods

model_computed_fields: ClassVar[Dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

model_config: ClassVar[ConfigDict] = {}#

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].

model_fields: ClassVar[Dict[str, FieldInfo]] = {'benchmark': FieldInfo(annotation=Type[Benchmark], required=False, default=<class 'iqm.benchmarks.randomized_benchmarking.mirror_rb.mirror_rb.MirrorRandomizedBenchmarking'>), 'calset_id': FieldInfo(annotation=Union[str, NoneType], required=False, default=None), 'density_2q_gates': FieldInfo(annotation=float, required=False, default=0.25), 'depths_array': FieldInfo(annotation=Sequence[Sequence[int]], required=True), 'max_gates_per_batch': FieldInfo(annotation=Union[int, NoneType], required=False, default=None), 'num_circuit_samples': FieldInfo(annotation=int, required=True), 'num_pauli_samples': FieldInfo(annotation=int, required=True), 'physical_layout': FieldInfo(annotation=Literal['fixed', 'batching'], required=False, default='fixed'), 'qiskit_optim_level': FieldInfo(annotation=int, required=False, default=1), 'qubits_array': FieldInfo(annotation=Sequence[Sequence[int]], required=True), 'routing_method': FieldInfo(annotation=Literal['basic', 'lookahead', 'stochastic', 'sabre', 'none'], required=False, default='sabre'), 'shots': FieldInfo(annotation=int, required=False, default=256), 'two_qubit_gate_ensemble': FieldInfo(annotation=Dict[str, float], required=False, default={'CZGate': 1.0})}#

Metadata about the fields defined on the model, mapping of field names to [FieldInfo][pydantic.fields.FieldInfo] objects.

This replaces Model.__fields__ from Pydantic V1.