TwirlingOptions
class TwirlingOptions(enable_gates=Unset, enable_measure=Unset, num_randomizations=Unset, shots_per_randomization=Unset, strategy=Unset)
Bases: object
Twirling options.
Attributes
Parameters
- enable_gates (UnsetType | bool)
- enable_measure (UnsetType | bool)
- num_randomizations (UnsetType | int | Literal['auto'])
- shots_per_randomization (UnsetType | int | Literal['auto'])
- strategy (UnsetType | Literal['active', 'active-accum', 'active-circuit', 'all'])
enable_gates
Type: UnsetType | bool
Default value: Unset
Whether to apply 2-qubit Clifford gate twirling. Default: False.
enable_measure
Type: UnsetType | bool
Default value: Unset
Whether to enable twirling of measurements.
Twirling will only be applied to those measurement registers not involved within a conditional logic. Default: True for Estimator, false for Sampler.
num_randomizations
Type: UnsetType | int | Literal['auto']
Default value: Unset
The number of random samples to use when twirling or peforming sampled mitigation.
If num_randomizations
is “auto”, for every pub executed shots
times:
- If
shots_per_randomization
is also “auto”,shots_per_randomization
is set first as described below, thennum_randomizations
is set asceil(shots/shots_per_randomization)
, whereceil
is the ceiling function.- Otherwise, the value is set to
ceil(shots/shots_per_randomization)
.Default: “auto”.
The shots
value specified in a PUB or in the run()
method is considered part of the primitive execution interface and therefore is always obeyed. default_shots
, on the other hand, is considered a Qiskit Runtime specific option. Therefore, the product of num_randomizations
and shots_per_randomization
takes precedence over default_shots
.
shots_per_randomization
Type: UnsetType | int | Literal['auto']
Default value: Unset
The number of shots to run for each random sample.
If “auto”, for every pub executed shots
times:
- If
num_randomizations
is also “auto”, the value is set to64
for PEC mitigation or tomax(64, ceil(shots / 32))
in all other cases, whereceil
is the ceiling function.- Otherwise, the value is set to
ceil(shots/num_randomizations)
.Default: “auto”.
The shots
value specified in a PUB or in the run()
method is considered part of the primitive execution interface and therefore is always obeyed. default_shots
, on the other hand, is considered a Qiskit Runtime specific option. Therefore, the product of num_randomizations
and shots_per_randomization
takes precedence over default_shots
.
strategy
Type: UnsetType | Literal['active', 'active-accum', 'active-circuit', 'all']
Default value: Unset
Specify the strategy of twirling qubits in identified layers of 2-qubit twirled gates.
Allowed values are:
- If
"active"
only the instruction qubits in each individual twirled layer will be twirled.- If
"active-circuit"
the union of all instruction qubits in the circuit will be twirled in each twirled layer.- If
"active-accum"
the union of instructions qubits in the circuit up to the current twirled layer will be twirled in each individual twirled layer.- If
"all"
all qubits in the input circuit will be twirled in each twirled layer.Default: “active-accum”.
