iqm.benchmarks.entanglement.ghz.GHZConfiguration#

class iqm.benchmarks.entanglement.ghz.GHZConfiguration(*, benchmark: type[Benchmark] = <class 'iqm.benchmarks.entanglement.ghz.GHZBenchmark'>, shots: int = 1024, 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, state_generation_routine: str = 'tree', custom_qubits_array: Sequence[Sequence[int]] | None = None, qiskit_optim_level: int = 3, optimize_sqg: bool = True, fidelity_routine: str = 'coherences', num_rms: int | None = 100, rem: bool = True, mit_shots: int = 1000, cal_url: str | None = None)#

Bases: BenchmarkConfigurationBase

GHZ state configuration.

Parameters:
benchmark#

GHZBenchmark

Type:

type[iqm.benchmarks.benchmark_definition.Benchmark]

state_generation_routine#

The routine to construct circuits generating a GHZ state. Possible values: - “tree” (default): Optimized GHZ state generation circuit in log depth that takes the qubit coupling and CZ fidelities into account. The algorithm creates a minimal spanning tree for the qubit layout and chooses an initial qubit that minimizes largest weighted distance to all other qubits. - “log”: Optimized circuit with parallel application of CX gates such that the number of CX gates scales logarithmically in the system size. This implementation currently does not take connectivity on the backend into account. - “naive”: Applies the naive textbook circuit with #CX gates scaling linearly in the system size. * If other is specified, assumes “log”.

Type:

str

custom_qubits_array#

A sequence (e.g., Tuple or List) of sequences of physical qubit layouts, as specified by integer labels, where the benchmark is meant to be run. * If None, takes all qubits specified in the backend coupling map.

Type:

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

qiskit_optim_level#

The optimization level used for transpilation to backend architecture.

Type:

int

optimize_sqg#

Whether consecutive single qubit gates are optimized for reduced gate count via iqm.qiskit_iqm.iqm_transpilation.optimize_single_qubit_gates

Type:

bool

fidelity_routine#

The method with which the fidelity is estimated. Possible values: - “coherences”: The multiple quantum coherences method as in [Mooney, 2021] - “randomized_measurements”: Fidelity estimation via randomized measurements outlined in https://arxiv.org/abs/1812.02624

Type:

str

num_rms#

The number of randomized measurements used if the respective fidelity routine is chosen

Type:

int | None

rem#

Boolean flag determining if readout error mitigation is used

Type:

bool

mit_shots#

Total number of shots for readout error mitigation

Type:

int

Attributes

model_config

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

benchmark

state_generation_routine

custom_qubits_array

shots

qiskit_optim_level

optimize_sqg

fidelity_routine

num_rms

rem

mit_shots

cal_url

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