iqm.benchmarks.optimization.qscore.QScoreConfiguration#

class iqm.benchmarks.optimization.qscore.QScoreConfiguration(*, benchmark: type[Benchmark] = <class 'iqm.benchmarks.optimization.qscore.QScoreBenchmark'>, shots: int = 256, max_gates_per_batch: int | None = None, max_circuits_per_batch: int | None = None, routing_method: RoutingMethod = RoutingMethod.SABRE, physical_layout: PhysicalLayout = PhysicalLayout.FIXED, use_dd: bool | None = False, dd_strategy: DDStrategy | None = None, active_reset_cycles: int | None = None, num_instances: int, num_qaoa_layers: int = 1, min_num_nodes: int = 2, max_num_nodes: int, use_virtual_node: bool = True, use_classically_optimized_angles: bool = True, choose_qubits_routine: Literal['naive', 'custom']='naive', min_num_qubits: int = 2, custom_qubits_array: Sequence[Sequence[int]] | None = None, qiskit_optim_level: int = 3, optimize_sqg: bool = True, num_trials: int = 10, seed: int = 1, REM: bool = False, mit_shots: int = 1000)#

Bases: BenchmarkConfigurationBase

Q-score configuration.

Parameters:
benchmark#

QScoreBenchmark

Type:

type[iqm.benchmarks.benchmark_definition.Benchmark]

num_instances#

Number of random graphs to be chosen.

Type:

int

num_qaoa_layers#

Depth of the QAOA circuit.

Type:

int

min_num_nodes#

The min number of nodes to be taken into account, which should be >= 2.

Type:

int

max_num_nodes#

The max number of nodes to be taken into account, which has to be <= num_qubits + 1.

Type:

int

use_virtual_node#

Parameter to increase the potential Qscore by +1.

Type:

bool

use_classically_optimized_angles#

Use pre-optimised tuned parameters in the QAOA circuit.

Type:

bool

choose_qubits_routine#

The routine to select qubit layouts.

Type:

Literal[‘naive’, ‘custom’]

min_num_qubits#

Minumum number of qubits.

Type:

int

custom_qubits_array#

The physical qubit layouts to perform the benchmark on. If virtual_node is True, then a given graph with n nodes requires n-1 selected qubits. If virtual_node is set to False, then a given graph with n nodes requires n selected qubits.

Type:

collections.abc.Sequence[collections.abc.Sequence[int]] | None

qiskit_optim_level#

The Qiskit transpilation optimization level.

Type:

int

optimize_sqg#

Whether Single Qubit Gate Optimization is performed upon transpilation.

Type:

bool

num_trials#

Number of trials to perform when choosing graph permutations to minimize CZ gates.

Type:

int

seed#

The random seed.

Type:

int

REM#

Use readout error mitigation.

Type:

bool

mit_shots#

Number of shots used in readout error mitigation.

Type:

int

Attributes

model_config

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

benchmark

num_instances

num_qaoa_layers

min_num_nodes

max_num_nodes

use_virtual_node

use_classically_optimized_angles

choose_qubits_routine

min_num_qubits

custom_qubits_array

qiskit_optim_level

optimize_sqg

num_trials

seed

REM

mit_shots

shots

max_gates_per_batch

max_circuits_per_batch

routing_method

physical_layout

use_dd

dd_strategy

active_reset_cycles

Methods

model_config = {}#

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